From 46b235c139709fd1e2410da5f60b8f5c4a4892e4 Mon Sep 17 00:00:00 2001 From: John Date: Tue, 20 Feb 2018 15:08:57 +0100 Subject: [PATCH 01/52] add auto select model when select type on create invoice --- htdocs/admin/facture.php | 70 ++++++++++++++++++- htdocs/compta/facture/card.php | 63 +++++++++++++---- htdocs/compta/facture/class/facture.class.php | 17 +++-- htdocs/langs/en_US/admin.lang | 1 + 4 files changed, 131 insertions(+), 20 deletions(-) diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php index 1f574175898..ae3b0a66ed5 100644 --- a/htdocs/admin/facture.php +++ b/htdocs/admin/facture.php @@ -240,6 +240,32 @@ 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'); + } + } + + +} /* @@ -469,7 +495,7 @@ print ''.$langs->trans("Preview").''; print "\n"; clearstatcache(); - +$activatedModels = array(); $var=true; foreach ($dirmodels as $reldir) { @@ -588,6 +614,48 @@ foreach ($dirmodels as $reldir) print ''; + + +/* + * Document templates generators + */ +print '
'; +print load_fiche_titre($langs->trans("BillsPDFModulesAccordindToInvoiceType"),'',''); +print '
'; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print "\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; + $curent = !empty($conf->global->{$thisTypeConfName})?$conf->global->{$thisTypeConfName}:$conf->global->FACTURE_ADDON_PDF; + print ''; + print ''; + print ''; + print "\n"; +} + +print '
'.$langs->trans("Type").''.$langs->trans("Name").'
'.$trans.''.$form->selectarray('invoicetypemodels['.$type.']', ModelePDFFactures::liste_modeles($db) , $curent ,0,0, 0).'
'; +print "
"; + + /* * Modes de reglement */ diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 19612349214..277a3bc9697 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -2505,7 +2505,8 @@ if ($action == 'create') // Standard invoice print '
'; $tmp=' '; - $desc = $form->textwithpicto($tmp.$langs->trans("InvoiceStandardAsk"), $langs->transnoentities("InvoiceStandardDesc"), 1, 'help', '', 0, 3); + $tmp = $tmp.''; + $desc = $form->textwithpicto($tmp, $langs->transnoentities("InvoiceStandardDesc"), 1, 'help', '', 0, 3); print $desc; print '
'; @@ -2524,7 +2525,8 @@ if ($action == 'create') }); '; - $desc = $form->textwithpicto($tmp.$langs->trans("InvoiceDeposit"), $langs->transnoentities("InvoiceDepositDesc"), 1, 'help', '', 0, 3); + $tmp = $tmp.''; + $desc = $form->textwithpicto($tmp, $langs->transnoentities("InvoiceDepositDesc"), 1, 'help', '', 0, 3); print ''; @@ -2548,8 +2550,9 @@ if ($action == 'create') { // First situation invoice print '
'; - $tmp=' '; - $desc = $form->textwithpicto($tmp.$langs->trans("InvoiceFirstSituationAsk"), $langs->transnoentities("InvoiceFirstSituationDesc"), 1, 'help', '', 0, 3); + $tmp=' '; + $tmp = $tmp.''; + $desc = $form->textwithpicto($tmp, $langs->transnoentities("InvoiceFirstSituationDesc"), 1, 'help', '', 0, 3); print $desc; print '
'; @@ -2559,7 +2562,7 @@ if ($action == 'create') $tmp='' . $langs->trans('NoSituations') . '') || (GETPOST('origin') && GETPOST('origin') != 'facture' && GETPOST('origin') != 'commande')) $tmp.=' disabled'; $tmp.= '> '; - $text = $tmp.$langs->trans("InvoiceSituationAsk") . ' '; + $text = ' '; $text .= ''; @@ -2583,7 +2586,7 @@ if ($action == 'create') }); }); '; - $text = $tmp.$langs->trans("InvoiceReplacementAsk") . ' '; + $text = ''; $text .= ' '; - $text = $tmp.$langs->trans("InvoiceReplacement") . ' '; + $text = ' '; $text.= '('.$langs->trans("YouMustCreateInvoiceFromThird").') '; $desc = $form->textwithpicto($text, $langs->transnoentities("InvoiceReplacementDesc"), 1, 'help', '', 0, 3); print $desc; print ''; } - + + if (empty($origin)) { if ($socid > 0) @@ -2637,7 +2641,7 @@ if ($action == 'create') }); }); '; - $text = $tmp.$langs->transnoentities("InvoiceAvoirAsk") . ' '; + $text = ' '; // $text.=''; $text .= ' '; else $tmp=' '; - $text = $tmp.$langs->trans("InvoiceAvoir") . ' '; + $text = ' '; $text.= '('.$langs->trans("YouMustCreateInvoiceFromThird").') '; $desc = $form->textwithpicto($text, $langs->transnoentities("InvoiceAvoirDesc"), 1, 'help', '', 0, 3); print $desc; @@ -2677,7 +2681,7 @@ if ($action == 'create') // Template invoice print '
'; $tmp=' '; - $text = $tmp.$langs->trans("RepeatableInvoice") . ' '; + $text = ' '; //$text.= '('.$langs->trans("YouMustCreateStandardInvoiceFirst").') '; $desc = $form->textwithpicto($text, $langs->transnoentities("YouMustCreateStandardInvoiceFirstDesc"), 1, 'help', '', 0, 3); print $desc; @@ -2685,6 +2689,40 @@ if ($action == 'create') print '
'; + + + // 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 ''; + + + + print '
'; if ($socid > 0) @@ -2782,7 +2820,8 @@ if ($action == 'create') print '"; // Multicurrency diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 7edc3b65b41..91e05827032 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -4023,13 +4023,16 @@ class Facture extends CommonInvoice if (! dol_strlen($modele)) { - $modele = 'crabe'; - - if ($this->modelpdf) { - $modele = $this->modelpdf; - } elseif (! empty($conf->global->FACTURE_ADDON_PDF)) { - $modele = $conf->global->FACTURE_ADDON_PDF; - } + $modele = 'crabe'; + $thisTypeConfName = 'FACTURE_ADDON_PDF_'.$type; + + if ($this->modelpdf) { + $modele = $this->modelpdf; + }elseif (! empty($conf->global->{'FACTURE_ADDON_PDF_'.$this->type})){ + $modele = $conf->global->{'FACTURE_ADDON_PDF_'.$this->type} ; + }elseif (! empty($conf->global->FACTURE_ADDON_PDF)) { + $modele = $conf->global->FACTURE_ADDON_PDF; + } } $modelpath = "core/modules/facture/doc/"; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 91a503ba6a6..005b77bd5c2 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1204,6 +1204,7 @@ WebCalUrlForVCalExport=An export link to %s 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 From d0ef8fe75a0b783b4c93c9b15a21fe81776ae94c Mon Sep 17 00:00:00 2001 From: John Date: Thu, 22 Feb 2018 09:54:36 +0100 Subject: [PATCH 02/52] fix travis errors --- htdocs/admin/facture.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php index ae3b0a66ed5..0db1ffc72db 100644 --- a/htdocs/admin/facture.php +++ b/htdocs/admin/facture.php @@ -250,7 +250,7 @@ if ($action == 'setDefaultPDFModulesByType') foreach ($invoicetypemodels as $type => $value) { - $res = dolibarr_set_const($db, 'FACTURE_ADDON_PDF_'.intval($type) ,$value,'chaine',0,'',$conf->entity); + $res = dolibarr_set_const($db, 'FACTURE_ADDON_PDF_'.intval($type),$value,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; } @@ -645,10 +645,10 @@ if (! empty($conf->global->INVOICE_USE_SITUATION)) foreach ($listtype as $type => $trans) { $thisTypeConfName = 'FACTURE_ADDON_PDF_'.$type; - $curent = !empty($conf->global->{$thisTypeConfName})?$conf->global->{$thisTypeConfName}:$conf->global->FACTURE_ADDON_PDF; + $current = !empty($conf->global->{$thisTypeConfName})?$conf->global->{$thisTypeConfName}:$conf->global->FACTURE_ADDON_PDF; print ''; print ''; - print ''; + print ''; print "\n"; } From 227e4ef9a662ed739779a3635792a545dc277d9b Mon Sep 17 00:00:00 2001 From: John Date: Tue, 3 Apr 2018 10:50:15 +0200 Subject: [PATCH 03/52] fix php compatibility --- htdocs/compta/facture/card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 04217fee7cd..9d2205fc98e 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -2820,7 +2820,8 @@ if ($action == 'create') print '"; From 5ac0f77d0e0acae668eade5d9efe03be1d73c0b3 Mon Sep 17 00:00:00 2001 From: BENKE Charlene Date: Wed, 2 May 2018 17:29:31 +0200 Subject: [PATCH 04/52] Add trigger for virtual stock Allow to add/sustract some qty for GPAO OF running --- htdocs/product/class/product.class.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 2f36fd59035..2fa802a532c 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -3925,7 +3925,7 @@ class Product extends CommonObject */ function load_virtual_stock() { - global $conf; + global $conf, $user, $langs; $stock_commande_client=0; $stock_commande_fournisseur=0; @@ -3975,6 +3975,16 @@ class Product extends CommonObject if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) { $this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur; } + + // Call triggers + include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('LOAD_VIRTUAL_STOCK', $this, $user, $langs, $conf); + if ($result < 0) { + $this->errors=$interface->errors; + return -1; + } + } From 70c9ed960d67f1ff14023d32dcec069dec1fd6bb Mon Sep 17 00:00:00 2001 From: BENKE Charlene Date: Sun, 6 May 2018 22:11:24 +0200 Subject: [PATCH 05/52] let's play with hook --- htdocs/product/class/product.class.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 2fa802a532c..9bdb286db25 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -3976,14 +3976,15 @@ class Product extends CommonObject $this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur; } - // Call triggers - include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - $interface=new Interfaces($this->db); - $result=$interface->run_triggers('LOAD_VIRTUAL_STOCK', $this, $user, $langs, $conf); - if ($result < 0) { - $this->errors=$interface->errors; - return -1; + 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->resPrint; } From 8ed3b3e49c9e230592c43283b74cbf03e20e3a7b Mon Sep 17 00:00:00 2001 From: BENKE Charlene Date: Sun, 6 May 2018 22:12:43 +0200 Subject: [PATCH 06/52] Update product.class.php --- htdocs/product/class/product.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 9bdb286db25..06ff0bd3ee6 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -3925,7 +3925,7 @@ class Product extends CommonObject */ function load_virtual_stock() { - global $conf, $user, $langs; + global $conf, $action; $stock_commande_client=0; $stock_commande_fournisseur=0; From 523b03e1324984a073b84666dd1149b6ec7655ed Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 28 Aug 2018 13:32:38 +0200 Subject: [PATCH 07/52] Fix for new stripe API 2018-08-23 Fix break with change API --- .../triggers/interface_80_modStripe_Stripe.class.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php index ab0cd62eb82..f9985461df8 100644 --- a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php +++ b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php @@ -136,7 +136,6 @@ class InterfaceStripe $service = 'StripeLive'; $servicestatus = 1; } - // If customer is linked to Strip, we update/delete Stripe too if ($action == 'COMPANY_MODIFY') { dol_syslog("Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id); @@ -148,19 +147,22 @@ 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 = array( + "tax_id" => $object->tva_intra ? $object->tva_intra : null, // We force data to "null" if empty as expected by Stripe + "type" => 'vat', + ); // 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 ($vatcleaned != $customer->tax_info) $changerequested++; if ($changerequested) { if (! empty($object->email)) $customer->email = $object->email; $customer->description = $namecleaned; - $customer->business_vat_id = $vatcleaned; + $customer->tax_info = $vatcleaned; $customer->save(); } From 90de2698c3668bc50e75eb34a5b3597963b39748 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 28 Aug 2018 13:34:59 +0200 Subject: [PATCH 08/52] Fix for new stripe API 2018-08-23 Fix break of change API --- htdocs/stripe/class/stripe.class.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index b8472d0b821..bf4103e51a8 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -166,7 +166,10 @@ class Stripe extends CommonObject { $dataforcustomer = array( "email" => $object->email, - "business_vat_id" => $object->tva_intra, + "tax_info" => array( + "tax_id" => $object->tva_intra ? $object->tva_intra : null, // We force data to "null" if empty as expected by Stripe + "type" => 'vat', + ), "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'])) ); From 289dfc7fbeeab2c5269324f81fa0c9357c57ceac Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 28 Aug 2018 13:37:17 +0200 Subject: [PATCH 09/52] update API version We need to downgrade this change to V8 because some breaks occur if Stripe API is updated in dashboard to 2018-08-23 --- htdocs/stripe/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/config.php b/htdocs/stripe/config.php index 7aa22678d7a..802dad47737 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-08-23"); // force version API From 25be9f59896ebe323a034abd0255a2db87580cc3 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 29 Aug 2018 13:19:03 +0200 Subject: [PATCH 10/52] fix if null --- htdocs/stripe/class/stripe.class.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index bf4103e51a8..e8c0d7a3f12 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -166,13 +166,16 @@ class Stripe extends CommonObject { $dataforcustomer = array( "email" => $object->email, - "tax_info" => array( - "tax_id" => $object->tva_intra ? $object->tva_intra : null, // We force data to "null" if empty as expected by Stripe - "type" => 'vat', - ), "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'])) ); + + if ($object->tva_intra!=null) + { + $dataforcustomer["tax_info"] = array( + "tax_id" => $object->tva_intra, + "type" => 'vat'); + } //$a = \Stripe\Stripe::getApiKey(); //var_dump($a);var_dump($key);exit; From ff44e65c38c640f5097e5570791af6d759e46995 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Mon, 10 Sep 2018 12:31:34 +0200 Subject: [PATCH 11/52] update api changelog 2018-09-06 introduce no change for dolibarr with 2018-08-23 --- htdocs/stripe/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/config.php b/htdocs/stripe/config.php index 802dad47737..1c15b547fad 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-08-23"); // force version API +\Stripe\Stripe::setApiVersion("2018-09-06"); // force version API From 95989019335d08499c8b33e1e1ca7d78e12d49b6 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Thu, 27 Sep 2018 09:43:43 +0200 Subject: [PATCH 12/52] Update config.php --- htdocs/stripe/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/config.php b/htdocs/stripe/config.php index 1c15b547fad..6141c2a32f8 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-09-06"); // force version API +\Stripe\Stripe::setApiVersion("2018-09-24"); // force version API From af66a8971a323ba43448a1d01b747e9a7bea9ba5 Mon Sep 17 00:00:00 2001 From: John BOTELLA Date: Tue, 2 Oct 2018 15:51:17 +0200 Subject: [PATCH 13/52] NEW Hidden conf INVOICE_USE_DEFAULT_DOCUMENT --- htdocs/admin/facture.php | 75 +++++++++++++++++----------------- htdocs/compta/facture/card.php | 66 ++++++++++++++++-------------- 2 files changed, 74 insertions(+), 67 deletions(-) diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php index 71fa035ee00..6e0f4bf681d 100644 --- a/htdocs/admin/facture.php +++ b/htdocs/admin/facture.php @@ -610,47 +610,48 @@ foreach ($dirmodels as $reldir) } print '
'; print $desc; print '
'; 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); + $curent = !empty($conf->global->{'FACTURE_ADDON_PDF_'.$object->type})?$conf->global->{'FACTURE_ADDON_PDF_'.$object->type}:$conf->global->FACTURE_ADDON_PDF; + print $form->selectarray('model', $liste, $curent); print "
'.$trans.''.$form->selectarray('invoicetypemodels['.$type.']', ModelePDFFactures::liste_modeles($db) , $curent ,0,0, 0).''.$form->selectarray('invoicetypemodels['.$type.']', ModelePDFFactures::liste_modeles($db), $current,0,0, 0).'
'; include_once DOL_DOCUMENT_ROOT . '/core/modules/facture/modules_facture.php'; $liste = ModelePDFFactures::liste_modeles($db); - $curent = !empty($conf->global->{'FACTURE_ADDON_PDF_'.$object->type})?$conf->global->{'FACTURE_ADDON_PDF_'.$object->type}:$conf->global->FACTURE_ADDON_PDF; + $paramkey='FACTURE_ADDON_PDF_'.$object->type; + $curent = !empty($conf->global->$paramkey)?$conf->global->$paramkey:$conf->global->FACTURE_ADDON_PDF; print $form->selectarray('model', $liste, $curent); print "
'; - -/* - * Document templates generators - */ -print '
'; -print load_fiche_titre($langs->trans("BillsPDFModulesAccordindToInvoiceType"),'',''); -print '
'; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print "\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)) +if(!empty($conf->global->INVOICE_USE_DEFAULT_DOCUMENT)) // Hidden conf { - $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 ''; - print ''; - print ''; + /* + * Document templates generators + */ + print '
'; + print load_fiche_titre($langs->trans("BillsPDFModulesAccordindToInvoiceType"),'',''); + print ''; + print ''; + print ''; + print '
'.$langs->trans("Type").''.$langs->trans("Name").'
'.$trans.''.$form->selectarray('invoicetypemodels['.$type.']', ModelePDFFactures::liste_modeles($db), $current,0,0, 0).'
'; + print ''; + print ''; + print ''; + print ''; print "\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 ''; + print ''; + print ''; + print "\n"; + } + + print '
'.$langs->trans("Type").''.$langs->trans("Name").'
'.$trans.''.$form->selectarray('invoicetypemodels['.$type.']', ModelePDFFactures::liste_modeles($db), $current,0,0, 0).'
'; + print "
"; } -print ''; -print ""; - - /* * Modes de reglement */ diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index ecd9ad09bbf..074558fd4ac 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -2779,37 +2779,38 @@ if ($action == 'create') print ''; - - // 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) + if(!empty($conf->global->INVOICE_USE_DEFAULT_DOCUMENT)) // Hidden conf { - $thisTypeConfName = 'FACTURE_ADDON_PDF_'.$type; - $curent = !empty($conf->global->{$thisTypeConfName})?$conf->global->{$thisTypeConfName}:$conf->global->FACTURE_ADDON_PDF; - $jsListType.=(!empty($jsListType)?',':'').'"'.$type.'":"'.$curent.'"'; + // 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 ''; } - print ''; - - print ''; @@ -2902,8 +2903,13 @@ if ($action == 'create') print ''; include_once DOL_DOCUMENT_ROOT . '/core/modules/facture/modules_facture.php'; $liste = ModelePDFFactures::liste_modeles($db); - $paramkey='FACTURE_ADDON_PDF_'.$object->type; - $curent = !empty($conf->global->$paramkey)?$conf->global->$paramkey:$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 ""; From 8160dcec6a488be11b3d17a0df5bc2c7795a7c9c Mon Sep 17 00:00:00 2001 From: Abbes Bahfir Date: Tue, 9 Oct 2018 16:10:04 +0100 Subject: [PATCH 14/52] Fix: Undeclared global variable --- htdocs/modulebuilder/template/class/myobject.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index b04dd735e49..ec4b95ad94c 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -382,7 +382,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 From b917fd0cf2b921a1f475025e76adba571aac682b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 9 Oct 2018 19:41:53 +0200 Subject: [PATCH 15/52] do not trim int --- .../bank/class/paymentvarious.class.php | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index 45a992b5cb8..1878dd58f50 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2017 Alexandre Spangaro + * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -120,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(); @@ -320,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) @@ -534,26 +535,26 @@ class PaymentVarious extends CommonObject 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]); } 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'); } 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]); } 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'); } } From 03fcc2f088c61e5bb5d6fba717aa7c61265f39ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 9 Oct 2018 20:31:14 +0200 Subject: [PATCH 16/52] Update paymentvarious.class.php --- htdocs/compta/bank/class/paymentvarious.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index 1878dd58f50..c997ff1a4f7 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -121,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=(int)($this->fk_bank); - $this->fk_user_author=(int)($this->fk_user_author); - $this->fk_user_modif=(int)($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(); @@ -321,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=(int)($this->fk_bank); - $this->fk_user_author=(int)($this->fk_user_author); - $this->fk_user_modif=(int)($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) From 24988f075cbd105f3dcbfe69b7f3500ab85abdcf Mon Sep 17 00:00:00 2001 From: atm-greg Date: Wed, 10 Oct 2018 14:01:20 +0200 Subject: [PATCH 17/52] Add archive generation for documents directory --- htdocs/admin/tools/dolibarr_export.php | 82 ++++++++++- htdocs/admin/tools/export_files.php | 190 +++++++++++++++++++++++++ 2 files changed, 268 insertions(+), 4 deletions(-) create mode 100644 htdocs/admin/tools/export_files.php diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php index c9ef19dae98..b8ddddeaaaa 100644 --- a/htdocs/admin/tools/dolibarr_export.php +++ b/htdocs/admin/tools/dolibarr_export.php @@ -493,6 +493,7 @@ print ''; +
@@ -505,21 +506,94 @@ print '
';
- +
+ + +
+ +
2 +
+ trans("BackupDesc2",DOL_DATA_ROOT).'
'; print $langs->trans("BackupDescX").'

'; + ?> + +
+" />
+
+ +'; +print "\n"; + +print $langs->trans("Compression").':   '; +$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 ''; + print ' '; + } + else // Disabled export format + { + print ''; + print ' '; + print ' ('.$langs->trans("NotAvailable").')'; + } + print '     '; +} + +print '
'; +print "\n"; + +?> +
+
" id="buttonGo" />
+
+
+ + + +
+
+ +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 '
'; +?> + + +
+
+
- - -
+ + + + + * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2015 Raphaël Doursenaud + * +* This 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 . +*/ + +/** + * \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 + */ + +$_SESSION["commandbackuplastdone"]=''; +$_SESSION["commandbackuptorun"]=''; +$_SESSION["commandbackupresult"]=''; + +// 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'); + + $resultstring=''; + $resultstring.='
'.$langs->trans("Error")." : ".$errormsg.'
'; + + $_SESSION["commandbackupresult"]=$resultstring; +} +else +{ + if ($what) + { + setEventMessages($langs->trans("BackupFileSuccessfullyCreated").'.
'.$langs->trans("YouCanDownloadBackupFile"), null, 'mesgs'); + + $resultstring='
'; + $resultstring.=$langs->trans("BackupFileSuccessfullyCreated").'.
'; + $resultstring.=$langs->trans("YouCanDownloadBackupFile"); + $resultstring.='
'; + + $_SESSION["commandbackupresult"]=$resultstring; + } +} + + +print '
'; + + +// Redirect t backup page +header("Location: dolibarr_export.php"); + +$time_end = time(); + +$db->close(); + From 6eeb860514aaffc3521afb25278f8b841d0383e3 Mon Sep 17 00:00:00 2001 From: atm-greg Date: Wed, 10 Oct 2018 14:09:38 +0200 Subject: [PATCH 18/52] delete useless code --- htdocs/admin/tools/export_files.php | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/htdocs/admin/tools/export_files.php b/htdocs/admin/tools/export_files.php index 53896f965b0..14889a649c3 100644 --- a/htdocs/admin/tools/export_files.php +++ b/htdocs/admin/tools/export_files.php @@ -69,10 +69,6 @@ if ($action == 'delete') * View */ -$_SESSION["commandbackuplastdone"]=''; -$_SESSION["commandbackuptorun"]=''; -$_SESSION["commandbackupresult"]=''; - // Increase limit of time. Works only if we are not in safe mode $ExecTimeLimit=600; if (!empty($ExecTimeLimit)) @@ -156,27 +152,7 @@ elseif (in_array($compression, array('gz', 'bz'))) if ($errormsg) { setEventMessages($langs->trans("Error")." : ".$errormsg, null, 'errors'); - - $resultstring=''; - $resultstring.='
'.$langs->trans("Error")." : ".$errormsg.'
'; - - $_SESSION["commandbackupresult"]=$resultstring; } -else -{ - if ($what) - { - setEventMessages($langs->trans("BackupFileSuccessfullyCreated").'.
'.$langs->trans("YouCanDownloadBackupFile"), null, 'mesgs'); - - $resultstring='
'; - $resultstring.=$langs->trans("BackupFileSuccessfullyCreated").'.
'; - $resultstring.=$langs->trans("YouCanDownloadBackupFile"); - $resultstring.='
'; - - $_SESSION["commandbackupresult"]=$resultstring; - } -} - print '
'; From 2d395b23c4a323f3c76cf69a76b7f7f33e449a38 Mon Sep 17 00:00:00 2001 From: atm-greg Date: Wed, 10 Oct 2018 14:35:25 +0200 Subject: [PATCH 19/52] fix for travis --- htdocs/admin/tools/dolibarr_export.php | 2 +- htdocs/admin/tools/export_files.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php index b8ddddeaaaa..4c69f2ead48 100644 --- a/htdocs/admin/tools/dolibarr_export.php +++ b/htdocs/admin/tools/dolibarr_export.php @@ -537,7 +537,7 @@ echo $file; ?>" />

-'; print "\n"; diff --git a/htdocs/admin/tools/export_files.php b/htdocs/admin/tools/export_files.php index 14889a649c3..809cea3b271 100644 --- a/htdocs/admin/tools/export_files.php +++ b/htdocs/admin/tools/export_files.php @@ -110,7 +110,7 @@ $utils = new Utils($db); if ($compression == 'zip') { $ret = dol_compress_dir(DOL_DATA_ROOT, $outputdir."/".$file, $compression); - if ($ret < 0) + if ($ret < 0) { $errormsg = $langs->trans("ErrorFailedToWriteInDir",$outputfile); } From c7eb935cb8949f3f7883411fbe20104422a5ff5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Octavio=20Garc=C3=ADa=20L=C3=B3pez?= Date: Wed, 10 Oct 2018 22:57:08 -0600 Subject: [PATCH 20/52] FIX Fixed translatable field name in stock movement table --- htdocs/langs/en_US/stocks.lang | 1 + htdocs/product/stock/mouvement.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index 951178b8183..410ee2e887d 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -45,6 +45,7 @@ MassStockTransferShort=Mass stock transfer StockMovement=Stock movement StockMovements=Stock movements LabelMovement=Movement label +TypeMovement=Movement type NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php index 07432766fbc..8ee5383ded0 100644 --- a/htdocs/product/stock/mouvement.php +++ b/htdocs/product/stock/mouvement.php @@ -104,7 +104,7 @@ $arrayfields=array( '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.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), From ded5c4c3ddb029ec73d5f0f269c3f58277ed113a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 12 Oct 2018 11:02:03 +0200 Subject: [PATCH 21/52] Social network module --- htdocs/adherents/card.php | 18 +++++- htdocs/contact/list.php | 38 +++++++++++- htdocs/core/actions_sendmails.inc.php | 2 +- htdocs/core/class/commonobject.class.php | 17 +++++- htdocs/core/lib/functions.lib.php | 67 +++++++++++---------- htdocs/langs/en_US/admin.lang | 6 +- htdocs/langs/en_US/boxes.lang | 4 +- htdocs/langs/en_US/companies.lang | 28 ++++----- htdocs/langs/en_US/mails.lang | 8 +-- htdocs/langs/en_US/main.lang | 2 +- htdocs/societe/index.php | 2 +- htdocs/theme/eldy/style.css.php | 3 + htdocs/theme/md/style.css.php | 3 + htdocs/user/card.php | 74 +++++++++++++++++++++++- 14 files changed, 204 insertions(+), 68 deletions(-) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index bc29c67c244..e9aa0f98146 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -980,7 +980,7 @@ else print ''.$langs->trans("PhoneMobile").''; // Skype - if (! empty($conf->skype->enabled)) + if (! empty($conf->socialnetworks->enabled)) { print ''.$langs->trans("Skype").''; } @@ -1218,12 +1218,24 @@ else print ''.$langs->trans("PhoneMobile").'phone_mobile).'">'; // Skype - if (! empty($conf->skype->enabled)) + if (! empty($conf->socialnetworks->enabled)) { print ''.$langs->trans("Skype").'skype).'">'; } - // Birthday + // Twitter + if (! empty($conf->socialnetworks->enabled)) + { + print ''.$langs->trans("Twitter").'twitter).'">'; + } + + // Facebook + if (! empty($conf->socialnetworks->enabled)) + { + print ''.$langs->trans("Facebook").'facebook).'">'; + } + + // Birthday print "".$langs->trans("Birthday")."\n"; print $form->selectDate(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc'); print "\n"; diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index 04132fa9b75..cd536118f8e 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -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'); @@ -156,7 +158,9 @@ $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.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), @@ -217,6 +221,8 @@ if (empty($reshook)) $search_fax=""; $search_email=""; $search_skype=""; + $search_twitter=""; + $search_facebook=""; $search_priv=""; $search_status=-1; $search_categ=''; @@ -311,6 +317,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 ($search_status != '' && $search_status >= 0) $sql.= " AND p.statut = ".$db->escape($search_status); @@ -601,6 +609,18 @@ if (! empty($arrayfields['p.skype']['checked'])) print ''; print ''; } +if (! empty($arrayfields['p.twitter']['checked'])) +{ + print ''; + print ''; + print ''; +} +if (! empty($arrayfields['p.facebook']['checked'])) +{ + print ''; + print ''; + print ''; +} if (! empty($arrayfields['p.thirdparty']['checked'])) { print ''; @@ -671,6 +691,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 @@ -801,7 +823,19 @@ while ($i < min($num,$limit)) // Skype if (! empty($arrayfields['p.skype']['checked'])) { - if (! empty($conf->skype->enabled)) { print ''.dol_print_skype($obj->skype,$obj->rowid,$obj->socid,'AC_SKYPE',18).''; } + if (! empty($conf->socialnetworks->enabled)) { print ''.dol_print_socialnetworks($obj->skype,$obj->rowid,$obj->socid,'skype').''; } + if (! $i) $totalarray['nbfield']++; + } + // Twitter + if (! empty($arrayfields['p.twitter']['checked'])) + { + if (! empty($conf->socialnetworks->enabled)) { print ''.dol_print_socialnetworks($obj->twitter,$obj->rowid,$obj->socid,'twitter').''; } + if (! $i) $totalarray['nbfield']++; + } + // Facebook + if (! empty($arrayfields['p.facebook']['checked'])) + { + if (! empty($conf->socialnetworks->enabled)) { print ''.dol_print_socialnetworks($obj->facebook,$obj->rowid,$obj->socid,'facebook').''; } if (! $i) $totalarray['nbfield']++; } // Company diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php index 6afd6b1e354..153c5ca9364 100644 --- a/htdocs/core/actions_sendmails.inc.php +++ b/htdocs/core/actions_sendmails.inc.php @@ -425,7 +425,7 @@ 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 diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index a11cd3dd49e..76e2b1a093a 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -609,12 +609,23 @@ abstract class CommonObject $out.=dol_print_url($this->url,'_goout',0,1); $outdone++; } - if (! empty($conf->skype->enabled)) + $out.='
'; + if (! empty($conf->socialnetworks->enabled)) { - $out.='
'; - 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 (! empty($conf->socialnetworks->enabled)) + { + if ($this->twitter) $out.=dol_print_socialnetworks($this->twitter,$this->id,$object->id,'twitter'); + $outdone++; + } + if (! empty($conf->socialnetworks->enabled)) + { + if ($this->facebook) $out.=dol_print_socialnetworks($this->facebook,$this->id,$object->id,'facebook'); + $outdone++; + } + $out.='
'; $out.=''; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 4424d3fa904..8883d1ad89c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2189,50 +2189,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 ' '; + if (empty($value)) return ' '; - if (! empty($addlink)) + if (! empty($type)) { - $newskype =img_picto($langs->trans("Skype"), 'object_skype.png'); - $newskype.= ' '; - $newskype.=dol_trunc($skype,$max); - $newskype.= ' '; - $newskype.=''; - $newskype.=''; - $newskype.='   '; - $newskype.=''; - $newskype.=''; - - if (($cid || $socid) && ! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create) + $newskype ='
'; + $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=''.img_object($langs->trans("AddAction"),"calendar").''; - $newskype='
'.$newskype.($link?' '.$link:'').'
'; + $newskype.= ' '; + $newskype.=''; + $newskype.=''; + $newskype.=''; + $newskype.=''; + $newskype.=''; } + 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=''.img_object($langs->trans("AddAction"),"calendar").''; + $newskype.=($link?' '.$link:''); + } + $newskype.='
'; } else { $langs->load("errors"); - $newskype.=img_warning($langs->trans("ErrorBadSkype",$skype)); + $newskype.=img_warning($langs->trans("ErrorBadSocialNetworkValue",$value)); } return $newskype; } @@ -3151,11 +3153,13 @@ 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', 'list', 'listlight', 'off', 'on', 'play', 'playdisabled', 'printer', 'resize', - 'note','switch_off', 'switch_on', 'unlink', 'uparrow', '1downarrow', '1uparrow') - )) { + 'note','switch_off', 'switch_on', 'unlink', 'uparrow', '1downarrow', '1uparrow', + 'skype','twitter','facebook' + ) + )) { $fakey = $pictowithoutext; $facolor = ''; $fasize = ''; - $marginleftonlyshort = 0; + $marginleftonlyshort = 2; if ($pictowithoutext == 'switch_off') { $fakey = 'fa-toggle-off'; $facolor = '#999'; @@ -3237,12 +3241,13 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ else { $fakey = 'fa-'.$pictowithoutext; $facolor = '#444'; + $marginleftonlyshort=0; } if (preg_match('/class="([^"]+)"/', $moreatt, $reg)) { $morecss.= ($morecss?' ':'').$reg[1]; } - $enabledisablehtml = ''; + $enabledisablehtml = ''; if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $enabledisablehtml.= $titlealt; } diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 9d9abd92f4c..d4665bb4ccd 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -898,7 +898,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates DictionaryRevenueStamp=Amount of tax stamps DictionaryPaymentConditions=Payment terms DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types +DictionaryTypeContact=Contact address types DictionaryTypeOfContainer=Type of website pages/containers DictionaryEcotaxe=Ecotax (WEEE) DictionaryPaperFormat=Paper formats @@ -1137,7 +1137,7 @@ 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 (contact address) ExtraFieldsMember=Complementary attributes (member) ExtraFieldsMemberType=Complementary attributes (member type) ExtraFieldsCustomerInvoices=Complementary attributes (invoices) @@ -1695,7 +1695,7 @@ 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 -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses +GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contact addresses Threshold=Threshold BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang index 4254c2cacaf..cc46e702a75 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -15,7 +15,7 @@ BoxLastSuppliers=Latest modified suppliers BoxLastCustomerOrders=Latest customer orders BoxLastActions=Latest actions BoxLastContracts=Latest contracts -BoxLastContacts=Latest contacts/addresses +BoxLastContacts=Latest contact addresses BoxLastMembers=Latest members BoxFicheInter=Latest interventions BoxCurrentAccounts=Open accounts balance @@ -34,7 +34,7 @@ BoxTitleLastFicheInter=Latest %s modified interventions BoxTitleOldestUnpaidCustomerBills=Customer Invoices: oldest %s unpaid BoxTitleOldestUnpaidSupplierBills=Supplier Invoices: oldest %s unpaid BoxTitleCurrentAccounts=Open Accounts: balances -BoxTitleLastModifiedContacts=Contacts/Addresses: latest %s modified +BoxTitleLastModifiedContacts=Contact addresses: latest %s modified BoxMyLastBookmarks=Bookmarks: latest %s modified BoxOldestExpiredServices=Oldest active expired services BoxLastExpiredServices=Latest %s oldest contacts with active expired services diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index fbdd9685975..ef0328b9349 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -3,7 +3,7 @@ ErrorCompanyNameAlreadyExists=Company name %s already exists. Choose another one ErrorSetACountryFirst=Set the country first SelectThirdParty=Select a third party ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? -DeleteContact=Delete a contact/address +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 @@ -19,9 +19,9 @@ ProspectionArea=Prospection area IdThirdParty=Id third party IdCompany=Company Id IdContact=Contact Id -Contacts=Contacts/Addresses -ThirdPartyContacts=Third party contacts -ThirdPartyContact=Third party contact/address +Contacts=Contact addresses +ThirdPartyContacts=Third party contact addresses +ThirdPartyContact=Third party contact address Company=Company CompanyName=Company name AliasNames=Alias name (commercial, trademark, ...) @@ -40,7 +40,7 @@ ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Vendors ThirdPartyType=Type of company Individual=Private individual -ToCreateContactWithSameName=Will create automatically 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. +ToCreateContactWithSameName=Will create automatically 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 @@ -289,16 +289,16 @@ SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Supplier=Vendor AddContact=Create contact -AddContactAddress=Create contact/address +AddContactAddress=Create contact address EditContact=Edit contact -EditContactAddress=Edit contact/address +EditContactAddress=Edit contact address Contact=Contact ContactId=Contact id -ContactsAddresses=Contacts/Addresses +ContactsAddresses=Contact addresses FromContactName=Name: NoContactDefinedForThirdParty=No contact defined for this third party NoContactDefined=No contact defined -DefaultContact=Default contact/address +DefaultContact=Default contact address AddThirdParty=Create third party DeleteACompany=Delete a company PersonalInformations=Personal data @@ -315,8 +315,8 @@ ValidityControledByModule=Validity controlled by module ThisIsModuleRules=This is rules for this module ProspectToContact=Prospect to contact CompanyDeleted=Company "%s" deleted from database. -ListOfContacts=List of contacts/addresses -ListOfContactsAddresses=List of contacts/addresses +ListOfContacts=List of contact addresses +ListOfContactsAddresses=List of contact addresses ListOfThirdParties=List of Third Parties ShowCompany=Show Third Party ShowContact=Show contact @@ -333,7 +333,7 @@ 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 @@ -390,7 +390,7 @@ 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_2=Contact 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 @@ -409,7 +409,7 @@ YouMustCreateContactFirst=To be able to add email notifications, you must first ListSuppliersShort=List of Vendors ListProspectsShort=List of Prospects ListCustomersShort=List of Customers -ThirdPartiesArea=Third Parties/Contacts +ThirdPartiesArea=Third Parties and Contacts addresses area LastModifiedThirdParties=Last %s modified Third Parties UniqueThirdParties=Total of Third Parties InActivity=Open diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang index 8f9c49d8bff..6c6b31db764 100644 --- a/htdocs/langs/en_US/mails.lang +++ b/htdocs/langs/en_US/mails.lang @@ -99,7 +99,7 @@ MailSelectedRecipients=Selected recipients MailingArea=EMailings area LastMailings=Latest %s emailings TargetsStatistics=Targets statistics -NbOfCompaniesContacts=Unique contacts/addresses +NbOfCompaniesContacts=Unique contact addresses MailNoChangePossible=Recipients for validated emailing can't be changed SearchAMailing=Search mailing SendMailing=Send emailing @@ -138,7 +138,7 @@ NbOfTargetedContacts=Current number of targeted contact emails UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other MailAdvTargetRecipients=Recipients (advanced selection) -AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target +AdvTgtTitle=Fill input fields to preselect the third parties or contact addresses to target AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like jean, joe, jim, you can input j%%, you can also use ; as separator for value, and use ! for except this value. For example jean;joe;jim%%;!jimo;!jima% 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 @@ -159,8 +159,8 @@ AdvTgtDeleteFilter=Delete filter AdvTgtSaveFilter=Save filter AdvTgtCreateFilter=Create filter AdvTgtOrCreateNewFilter=Name of new filter -NoContactWithCategoryFound=No contact/address with a category found -NoContactLinkedToThirdpartieWithCategoryFound=No contact/address with a category found +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) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index b1c51659b07..5a017330f20 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -434,7 +434,7 @@ LatestLinkedEvents=Latest %s linked events CompanyFoundation=Company/Organization Accountant=Accountant ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party +ContactsAddressesForCompany=Contact addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events about this third party ActionsOnMember=Events about this member diff --git a/htdocs/societe/index.php b/htdocs/societe/index.php index f53a9042fca..0759008c435 100644 --- a/htdocs/societe/index.php +++ b/htdocs/societe/index.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2015 Laurent Destailleur + * Copyright (C) 2004-2018 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2014 Charles-Fr Benke * Copyright (C) 2015 Jean-François Ferry diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index 82f50a5771c..bb43aa0af55 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -696,6 +696,9 @@ textarea.centpercent { height: 28px; vertical-align: middle; } +.divsocialnetwork:not(:first-child) { + padding-left: 20px; +} div.divsearchfield { float: ; margin-: 12px; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 23575680acf..b347d305dd9 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -689,6 +689,9 @@ textarea.centpercent { height: 28px; vertical-align: middle; } +.divsocialnetwork:not(:first-child) { + padding-left: 20px; +} div.divsearchfield { float: ; margin-: 12px; diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 888550a6408..9dee03e87c6 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1000,7 +1000,7 @@ if ($action == 'create' || $action == 'adduserldap') print ''; // Skype - if (! empty($conf->skype->enabled)) + if (! empty($conf->socialnetworks->enabled)) { print ''.$langs->trans("Skype").''; print ''; @@ -1011,7 +1011,41 @@ if ($action == 'create' || $action == 'adduserldap') } else { - print ''; + print ''; + } + print ''; + } + + // Twitter + if (! empty($conf->socialnetworks->enabled)) + { + print ''.$langs->trans("Twitter").''; + print ''; + if (! empty($ldap_twitter)) + { + print ''; + print $ldap_twitter; + } + else + { + print ''; + } + print ''; + } + + // Facebook + if (! empty($conf->socialnetworks->enabled)) + { + print ''.$langs->trans("Facebook").''; + print ''; + if (! empty($ldap_facebook)) + { + print ''; + print $ldap_facebook; + } + else + { + print ''; } print ''; } @@ -2195,7 +2229,7 @@ else print ''; // Skype - if (! empty($conf->skype->enabled)) + if (! empty($conf->socialnetworks->enabled)) { print ''.$langs->trans("Skype").''; print ''; @@ -2211,6 +2245,40 @@ else print ''; } + // Twitter + if (! empty($conf->socialnetworks->enabled)) + { + print ''.$langs->trans("Twitter").''; + print ''; + if ($caneditfield && empty($object->ldap_sid)) + { + print ''; + } + else + { + print ''; + print $object->twitter; + } + print ''; + } + + // Skype + if (! empty($conf->socialnetworks->enabled)) + { + print ''.$langs->trans("Facebook").''; + print ''; + if ($caneditfield && empty($object->ldap_sid)) + { + print ''; + } + else + { + print ''; + print $object->facebook; + } + print ''; + } + // EMail print "".'global->USER_MAIL_REQUIRED)?' class="fieldrequired"':'').'>'.$langs->trans("EMail").''; print ''; From cb53e18aa49db8b8b53460c80aeca3015d9596ba Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 12 Oct 2018 11:12:29 +0200 Subject: [PATCH 22/52] Social network module --- htdocs/adherents/card.php | 24 +++++++++++++++++++++-- htdocs/adherents/class/adherent.class.php | 21 ++++++++++++++++++-- htdocs/user/card.php | 10 ++++++++-- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index e9aa0f98146..908a46c91d1 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -301,6 +301,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'); @@ -443,6 +445,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'); @@ -467,7 +471,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; @@ -985,7 +993,19 @@ else print ''.$langs->trans("Skype").''; } - // Birthday + // Twitter + if (! empty($conf->socialnetworks->enabled)) + { + print ''.$langs->trans("Twitter").''; + } + + // Facebook + if (! empty($conf->socialnetworks->enabled)) + { + print ''.$langs->trans("Facebook").''; + } + + // Birthday print "".$langs->trans("Birthday")."\n"; print $form->selectDate(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc'); print "\n"; @@ -1220,7 +1240,7 @@ else // Skype if (! empty($conf->socialnetworks->enabled)) { - print ''.$langs->trans("Skype").'skype).'">'; + print ''.$langs->trans("Skype").'skype).'">'; } // Twitter diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 21f6c3407d9..888e3043de1 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -88,7 +88,11 @@ class Adherent extends CommonObject public $state; // Label of department public $email; + public $skype; + public $twitter; + public $facebook; + public $phone; public $phone_perso; public $phone_mobile; @@ -468,6 +472,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"); @@ -574,6 +580,8 @@ class Adherent extends CommonObject $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; @@ -613,6 +621,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; @@ -1100,7 +1110,7 @@ class Adherent extends CommonObject $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.= " 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,"; @@ -1172,7 +1182,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; @@ -2265,7 +2278,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'; @@ -2372,6 +2387,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; diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 9dee03e87c6..cf733932129 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -201,6 +201,8 @@ if (empty($reshook)) { $object->office_fax = GETPOST("office_fax", 'alpha'); $object->user_mobile = GETPOST("user_mobile"); $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"); @@ -348,6 +350,8 @@ if (empty($reshook)) { $object->office_fax = GETPOST("office_fax", 'alpha'); $object->user_mobile = GETPOST("user_mobile"); $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'); @@ -588,6 +592,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]; } @@ -1023,7 +1029,7 @@ if ($action == 'create' || $action == 'adduserldap') print ''; if (! empty($ldap_twitter)) { - print ''; + print ''; print $ldap_twitter; } else @@ -1040,7 +1046,7 @@ if ($action == 'create' || $action == 'adduserldap') print ''; if (! empty($ldap_facebook)) { - print ''; + print ''; print $ldap_facebook; } else From 82c89f739d3389b11b7154fc3037f0c4105d5a31 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 12 Oct 2018 11:29:47 +0200 Subject: [PATCH 23/52] social network module --- htdocs/user/class/user.class.php | 41 +++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index f3fa431daa0..da0e39d9ad7 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -69,7 +69,11 @@ class User extends CommonObject public $gender; public $birth; public $email; + public $skype; + public $twitter; + public $facebook; + public $job; // job position public $signature; @@ -220,7 +224,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,"; @@ -325,6 +330,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; @@ -1220,6 +1227,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; @@ -1433,7 +1442,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); @@ -1483,6 +1496,8 @@ 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)."'"; @@ -1567,7 +1582,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; @@ -1615,7 +1634,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; @@ -2474,13 +2497,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 @@ -2591,7 +2616,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'; @@ -2745,6 +2772,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}; From 53b099858f40ca77697125e8dc78be1e67e415fc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 12 Oct 2018 12:04:04 +0200 Subject: [PATCH 24/52] FIX cutomer or supplier categories visible or not when required --- htdocs/societe/card.php | 161 ++++++++++++++++++++++++++-------------- 1 file changed, 105 insertions(+), 56 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index ee4d05231ee..1fbabc01462 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -1063,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(); @@ -1421,22 +1454,20 @@ 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 '' . fieldLabel('CustomersCategoriesShort', 'custcats') . ''; - $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 ""; - } + //if ($object->prospect || $object->client || (! $object->fournisseur && ! empty($conf->global->THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER))) { + print '' . fieldLabel('CustomersCategoriesShort', 'custcats') . ''; + $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 ""; + //} // Supplier - if ($object->fournisseur) { - print '' . fieldLabel('SuppliersCategoriesShort', 'suppcats') . ''; - $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 ""; - } + //if ($object->fournisseur) { + print '' . fieldLabel('SuppliersCategoriesShort', 'suppcats') . ''; + $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 ""; + //} } // Multicurrency @@ -1488,11 +1519,6 @@ else } elseif ($action == 'edit') { - /* - * Edition - */ - - //print load_fiche_titre($langs->trans("EditCompany")); if ($socid) @@ -1612,8 +1638,10 @@ else $sub2=0; }else{$sub2=1;} - print "\n".''."\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".''."\n"; } @@ -2022,34 +2075,30 @@ else 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 '' . fieldLabel('CustomersCategoriesShort', 'custcats') . ''; - print ''; - $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 ""; + print '' . fieldLabel('CustomersCategoriesShort', 'custcats') . ''; + print ''; + $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 ""; // Supplier - if ($object->fournisseur) { - print '' . fieldLabel('SuppliersCategoriesShort', 'suppcats') . ''; - print ''; - $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 ""; + print '' . fieldLabel('SuppliersCategoriesShort', 'suppcats') . ''; + print ''; + $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 ""; } // Multicurrency From 4000845970445be656ca2c6df51469c4f6909b86 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 12 Oct 2018 15:57:38 +0200 Subject: [PATCH 25/52] Update screenshot --- .../dolibarr_screenshot5_1920x1080_b.jpg | Bin 126498 -> 274292 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/images/dolibarr_screenshot5_1920x1080_b.jpg b/doc/images/dolibarr_screenshot5_1920x1080_b.jpg index 5f7d8a5b573d9e7b3e055a62890cb02fa37e1ae0..0b5c749cb5c70905cd0c946c31b53e9ac62c5476 100644 GIT binary patch literal 274292 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 hQy}rGx_fFhk`G*Ux3r`< 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

r-nSMh5pl+f>u=M7e z?Um?1|3c{JSFAk}-@M#=<`}_N%Ue=Hvc2BUu1TV_lSB;2Lu4$Gq-2vj7>oWct=>*O zn4#oC1@GAwTs%D|l$z)0^B$`%5D(elu~-;^Of!JnK=2$mpy&mS)Q%_89ork9pKeIf zw8LSX5Zne2XNz|%vN|W{0hn}z0Q_1Y^7x-jic%3PaPlV>`;*t5xeO*vB1_d8rN@s8 zF82;@mlQn!nsW)#FPdMA46%s*?t1&Tg_O5Se$Omk3x0IX%OD1_`&Z$hFzP7zEx*^qDuIH*duzAk$ z>*ETmEBONtnp9uk6!t3p+B<#zwaKM4`Uu4{g;&AHDP(VucJ1o@HlEbo_A8Gg38UFH zEJ@i@11H3@m-x0H#_ZR6dO0}b!==)p?h2rsAvPwZMc%q>AM>4XyUC(`!;arCYK{6P zpW)Az#lxM^?7-#RoY(H5;C)XX)+f1j+TsEOX%cHaWawS<(~}~w5=-F_?@?(wjkgqv zvr&g+2z*`(DMCY6qTaae{r#vCOEtucflA?70gye%u5{}SAsSc+AtoSN$3uW<7&zH1 z+rUzU_`aqga-5pm>C;+$Wu@Syk6J*gNx!0+oz+3!Gu1(A74m!q2mcsCdj_mHkJv%2qH?W!(I-~i`(%l+jfQeNdMv*RM%jeROH8 z>Z8SOlyJ#iv8cdrybG#&`fhp=&IX66iksVVmh37nA?s?l^+PBzY*%GhXGcc^^KW!G zi`TSeM+CI-eey3cPCI#ia;jdAu)^9t?}XoCr*V@><^U)r#_#`b54^M{>X-Oc;gZYH--!s^(iwY3tt^N5R+QzM1b zQ@vrkr1JwEAGx+wFCRO>_VpaSLtEUwGX%ew5OwR2>V3z6Y*GRvbD5ZE&n3xv!kKB`C{dh zjE73%W6{5>EL>rV{MG68h&O@Zh)GpZF;N`NKV@v!>0rRbQQoydhQa!sIxCth`8B#Y z7KOY)DGvg4&7`MJE6Ek~{7qE|lD)3H_6pTAu{rXd{K@0#tfPLx-Z|@xJJ$l z+v$#sg$;_k42|VI^>sAmx>l~cojpq$?ToQF|N6tOf_}J(+x^^f5Him@R;c!ya@&dI zoxjK@6sTeJU4^-gwdtE!OO%X*eN#SlJfB(>Qf-72g{APRVjIZ4PF1nk#35nxOzxs2 zek-*nPW!REFgPnAwj6ltOtQrRM@YsQWyE#t$nQrE#2YIXKRnad7l?(heh^_Y7H@J( zZuSD_bI4EzLd6MSxggOxLjqk4FIrJq+vb$xE0$X|VCdwnE)zz#DfS~zx~A{X-FaeK z?a5XO`&ie$9F8hX`y3jmGm$?F=wZo;7qiROnmH`ko*^MtrJW>aP~H=ZO~PSeFyx~V zw=&yi?DHh6MEZlEd2gQzH9Vh1#y`o(xBgH#^-g@-i1(-7r)n{xj$?_wwDv;wX*Oz|C{YC*!M`u(63m3`-{2wP)M# zPcGS8&X0;%jiQ$=60zbyYWuyrG?>frV2VsvIWaZP#XFqt2?3jCSGW zy}_6DAeLLKs{ZON#H@8&WXSzaoY(-?6Ee7tgd?T|tPW(dP}pkOurOr;mW~)9fCye0 zI6*pwvMQa@Z5qqIw^gPX(XdG>l-<;ic(v4O@#4!>>T0AID|G1C<4fXt>+9!oPxS%} zrNRl#7(!{bFN(Ed1x<`XLwtm~&W@}%?zPE8zZs|K+KWg`%sXrGHFTk5TFYl0UKybf zCb4*FC%*lxRy_&Hjj~r&XG-5$Jp4&YUW;anziA2QF>x(+-~Jk7woM5N8C z?`CVsZ*ErSqcCcBf1h26{2H=AYF#&MT_^qYS0IFnXSFdk*?F$Ep@jrD!WxFkT5))j zBxE1`p)F4mKG-IzQc7@7;KE@XBpRA!70?dxofQqK>Jc7F>aRiUWm;mbsnQGBEQfC7 z=a>0xD^ayJd0}P!{pK#o6n`hD^36(7lxdi}dIp&1nuKUTN+CM8dp0r+g=Zb0O5B@v z{aZTu^0@Yhb?Tp({TkAdC`8*c+a=t%@D8h$B)jyC0l&7y9() z`2O;Be+B-mX<3J=SiJG|!B1QB4Iz$=W$qe?A7{IU!Raz5BnFm2*x?mBRhcYk>nP^C{RuWSBxY~kzP z!k-lT93JfJ>Y-g0P|ydEJCo0PyHk}n)*2owAxBiDFAk+L8XmqIT9kbyR#7njp^fM| zC_NNkCTe@iB2n2WF+t&7#tdPGPe?Q2+j5*gjmcMV4?g9%W?4s8*>|N~I8-?f%#=Ae z@!f(W?x~77Z}%;%>vSi6ead<6kmd6j2L+&~p5o$rU>qR$#p-V7L~?FUUb>jr0|^@# z8D*g{5O-ObB#94aqDE=9CHGpXmKr4*wNIvz`_fZ8uh~|9P1E+(TkLXux_QTYtMnay z>0Q^O_t)pCayGeii)W>!N)f0i!tpxe=2VC7=r&&)wpvd~-UJ$C31XBOxCNMGErYD0 zgo~&bi&5cKz9z2gZu=*4iynkEnkPxrackaD`W1JGG1qwA`MjwkbnDHY;#V797-bk9 zKdFgmJ3h<>x5>C-;QAzuT8bJlGB8%2S|9H`KV+%Kz93$t7b@3Y-lr;>Gw;qho(2_5 zRN|E3#GjO6QVT*zrt6;zU%XrYU~>f6WHV8#D<<^%hItzvBPrq;rK*X`#S1rW-S*kO zh~ZbbrqSt1G=~m@2n;(CneOImIRl{QcXG*4$CemZz;midvGtnn6X0&#v<^bZcBd0}38q@{393Ktd1g1H5XYy|kBw(!q zmO6vj2@?~TNyfqx5p*LuV(O0Tq7-qP>TA4R8Ns2}<~$*`#zxdIb`m}$_~yL25gO8O zsnLBC;yO}M&k;!b4h-Mm|VrC_`x^`O9armXO_2j?DJ`EG0p)aDke`aR8kTP zS3~FE3nPe-nn(=Vi|-pc?X;cM$SY=N{vT7_qYAxtx3pw)yUIic!{dOsLTIaMFOeiL zY~&>&Z%g8n;1a52O(qsLzv^$;nzH=RDZ{}IY!MhNn zpNmWB;V~F)8yC57N&JSpsZnoK9Yr$m>{NH(0SCf-8(X%fpLC`_iX$iqOGp6F0we*J zCU<;Xy_^*F?{(+@PeZm3wkdfTvOX0DBHt*Yytq1ZzzYXN<-u^7BQ~%wV&yb{;PlD6 zEx7%$+!b&9Ckw zGuE2q*C?)J8jJ;lYUR2vt%MfoC0&=3NAet%Ho8Oc3|3JCFxuk5q%U<&I)BlP*@W7lQk_ zGu!!@;BcPx1LF~61BjDaGa7~NLDJMpN!DIcvz#Ob$0dM8+Ml&+h%Nuc`(OWHY`eWR zEonM*O!V%9lOG*IyYx>^^S!@yCH&_4ZKbRE`)^f!%Nsi>EF);=w9^Set_K}J{LRR8%3QT-H}KhKJeaiCAm`bf<(QkO&SJHGRD^Y zSos`Z%0x=;c&Ch|xlJw&4jDpdcLFO5GyZ_>F_cjTfmL8sc>#P6__Wa#P2&&Q8 zMISE|bm*h1v)Q)@^7nbG6YA)x^AIAM*CIh07B$myPJ#CBB;~ zZ9_pHEAO1hd^@Uj$M#9#-NT>Uh?Lcqa~lhBTf4MvO+ALv{_6q{5v4y{Lik_1GxppBcP}k@{)wq<$)hc}VzKi^>_~7{pgH?M=JELlUd>OH`hD zeOrM-jb;9@IYnI#GY27o=IjB=g9gnIAUF*)LlA=*0X>4p-4h3T1dp4F3iM&hlbixN zg(+AavI?d=Bhfz~(e573qt$m^Qkyzo_`V)cR*aVu{z#ba`48eG1XI$uo4hj;uvube zM{#k&PcA7g-^b0*{OmBqYB`(T`fnrnRr}8zt@81~bjo~b0jQZ&d-3e!h5zmUYFBHU z_VcfILht2ZWfx!$|56KXZ`^d{EJGcoE(^D#=P9?c2H3Q)FnngxAGoNzk-tKfr$^J^ zAoeE!>knb2jhdy8n8@x%IZO z`c-fo4dRlHhpI4DVzcGm5)$&_nz<&YW?`54A87deaVbh>fIM7ND+#a_kOqi_zyTe- z2p$6fQvuKvvC?$#nGDjv5=?+|rBkjRk1lZt$Ri4^C7UcH6_xOxRMB3RSGBl9nu*E+ z_+r2&Y63CRT5WR_HUk36lP)7~%i+A3FERZs1(NO%VZ1 zLOcKt40TyB9CK{WQQ4Fv0b+n;rRmkX#SM)QKaD)E)Zm2@{b03lzydG=h7G7q4#YHY z8<;2y?gwxuN*#qa@+bSP-Prw*njqQZ#m2&Rm|vsPbNjdKu|;4Y{Fjmbf5u4>~ zs8y;u=PjgY80h%Z;p*2(9>P(%`PT-`Y*NJ5a} zs8crH`kL}_-6}LU?P8+ePf2IqstiRy5EcTQ0M%k7V-Z+FJQBe~>3%)mMsFVEd5v4u z@94fXXR5p@UUJezsyX$tS=jl7x({f3dZ`xfn6ZKT^fzX4&)WYDQPqX-D^8<$vX-2S#gLx8Jo*m4ucg z3sX!T-UvJ1-Y0is{MGk?3-!O9rFNhQ|GJu4LWfkVxmiAZY$;s`gmtzSMGlRp(=miN z;A;$3xASJJZGZNdU5Ih?vNCs2mIsUVz`zUO-dGq7W(Waf4SX+uBZ!WWhQa;qoDonw z;C_+QRgY z7TWT;Sr#l!OL!kGGoLmDnm$*uibsN&$tS@;j%!HD4rd$l2e+z@S4qgh@u3#3kD-8CMh=3@rmKDxw>?2RkdTgL7TYCY% z@B*=r&he~td~`%G)Y=6xvi+v%K|+hF(0$PcRj#TCKGl0^)IfJH4K}r(nWw6rwX}j* z`MXl!Oo-9}4V~{@E&7x6B5PYdK7Zqep1^!Kp|gZG?#J=sf6sWd%6JuEMy~>hEM`JR z`0`d88wo!7954AZcw3sDs)KnfHrIrSi>M&6Zd-RmdF0BQJMA@}os;H2qx zweZW~eA7z@6+A{~8gui+5cj|qhXb290xaOggDa6B9OMbXICDBLzPln1nQsS=vwJ8W zZcr&=5o~4i(k~YIxQqqdm1F+&(Ry^^sEFT~T=LlDsQ6Li4d_TwjNCe9fv@bhqWXg? zxQt6;xJ8P)LxWhWXHNlvxfSx|NyN2)5BVgGP*tD+d`(Lb;%Tn0XI)NqX%r?r_rmb60uP*J$+5 z#ee8*H1SdoNJ$Sj+T6>4M=5GKn?J%s2Q9(e|F}T@#^{1DVBW&f?q+H( z2X_{S&byZ`kq$j@(%`p!66&i2`X~L0;poQ~1x<#>RVnzV2!L(bm{AnqECX6V+o+My_$v``RFbpq}&%`X%CwbLVE-h0ob)~ra$cdb+fSy>@Y-kUpO}wPD z{sTJt^&=TE73_G()&FnMgDM-a{~1hTvc3xF6zp&J2C)ABy0HQS2}I#3|6Ig08F>Tg zAuMw6bahJI4JH}X^!OB3B~sjTVm$zDwm>EKahKVzo!5|vh1yU0QjcAw+o@Tpd6t@h z2P9)l-2uY+CpYkobNBd@v*2JIrzbU`gLGwbLCagsC~L&N)#)R3o?0XFy~{5zYJV3l zuglHZp*+%{kjg#H@UK)Fjw)jXrUOQh21o(}m6h6n*aJpX8VQ5*a)AYEfIS|vEItob zxz0hr%lQdFwDm9hVxF2q<0*{p-N*k>43=zq-G=^s4@2@L$q`k9#kW1fWfak*xU8pD zzd}drU^L+ALIMR46swtWF(Xgb zpeGw8$|f0qQ`^Y1^Q#<= z)SxyF*Z~VdgCGLZ4~r?KA@G1Sbchg#yj}~F;*u00A6r~a2{J?wkr|@NNeCip^xbbi zpdJOt*Z8BK{`HyWUt+^!*fbv1aDN8OSN!z2Kq%us3Qzp6_p@uWX{RS$pm_KzfDoXc zoiiW*#a{*VEhA>|1Kd${iu?-fYJLU?S*fwWN;EPX>S<_}lSePzL-dB76TbMh9@TVr zN*@7V7+AQRbobnS$8`l&VG^@vZpl3_BcqQ~axX`g1%w<%6F`UlnP7ql zyL-4eZufuIKsIN6@oeFQf6rLKCf(&p51=7u}_a@swDVe&bIW&_57rlm!&T| zMd6}Xhr}Nq)H*oyKJn9~B-5L^+Iqv!Y~D<;U5-90aFw8c{&LwNUDK(3#m2v-pI<&i z)DO5^bydxD=2$_+=Fa!wLzeoUmus#nna)n+mgmtob}x_oRXJ8_J*mRNTx0d?#|ft~ z35aBBCk_jn42K3|n@(PnFFA%57VTT9oel+!5*hKh)=25@GE&)#u+1pnA_kZ%wU?6* z^`^^v$|MRT@|XkVECwjZ5L2P&A##j~vX)3*B!Ny=fcu$Q_oY8JZ5!$lh^48pfTywS ziTiv9tp>xJi#|GUXxrMcR($qDQgljzh{X8bxSj(J%JZ!WxmT3zvL4y-OCx3th?q5a zrIA2vX%4fe|L4Spb%!MXKFx7;_Kw@fPZ4-qrbqxI3=)VCHUQ%Y5|)_(r31bIlE4|8 zInTx09=NX?!3Z~XR#ous7)u;fuyU3NlReGFzbqODR3-*O@>)WeY;(yn8Rp718Ne@c z4ib$Nfrcw)3}a7vEb>|1driTcV z1$fw?6{qYez>LV1TI6zqHsjT0nM*#ZcnC-+9$q;MZ~{O^i83JEWMdbcp?d81lEn9_BGbFZ3EVaCG; zCSR}Np9ma$+7qFqwa2Or)mdP9(^UPVU&BD5VDTeyTx03XwXCYwi|ZOn0mqNGEj(WJ zDOo>5+gfPIKVmsvuhwQes-q-FS7tuR8f#G}@xqUu8k#n!FJ<<^IJ!pE)P1Gz_4~Tj zQKR~t))anBhngux;Lk%?y@vDW10R|W*6zIfK#XzK?b5@af27B87Om5=GTt@!;Yp3b z`NS8yB2Nf<{deSoOBnBNF1?m*1r{ZN2IG`2MEU^;DOO41!vYFrk-#cBX<`Z=&M1J} z-?K82A-##*iK@f~v-k-B{LKbCk+buKr>7(<`DxP_X+&E&A9h3aIX=P5!Xa)27)twI zgK5EHraA``KaZ$Nu`We&@V7B!W9vAR#_o8EaFM8MgxZJ5tG|&*~%vq zh>i8ymLyHTyCn-$*~<3GQ9HiCrXn#EAFkKUB5}Y>D09DNJT87fN;-?yw+7`Hj64>X zaWIc8#rIYB2Ss$bYI()fhTiYIbxB7r>fW5M!SdUt(3$4dV#XDTjUe4Q{abn^ zCrpSt>y@ch*NmN2ZhU(bw(SrNt-Zc&pZCHcFpBCE$Jmk=0H1q7qE$TBl1LbY>rWg? z&JrVn=~!bT7n$5ohc`(}OM~aj+^><=Y3g>4YXB5{Hc2%|{-*Y7$VORTJYA7EgrNLpCjoBr9PO^412D;@ncEgRl0MjZYC{XyqO+vrbJk&ZWyH z%hy}7q!w1-jdL^%`t9WZKhE9*tf{7J8;u$fPQ_(63~7W`@B18lWNq;D&y(*9{S;lYZeIxl? zUWuw1-t%)X;@4XtzryJEdJmTUCiTXPbPR87Jf3#jj1ZY_D?LvN3R|~>$5W~-4!5;4 z%qo|q2@HndfXoE5(C`89s{kKt=Hk);JWR}tQRit+t*fZ3ab#qK`;#(tit;O85-vUD z*7D!*cWvugml04j0^2MPcrH-pw5C2*tJ`}m$BGvntiv>XmEQ^@>>@~Z6Dus;#fK_f zLAxvtycdsM3~7iq`o5v0J=ANMky1v@!BUlO>qfI)MV2XM;w^w^B<3)>XV+=R2t)> zTRV>>$$QA7)SuA|b3hkVQGXjp2?>}OslVDfC$vh$Iyu#3I_*Q^y|9FiZ8D;-#`>ZvyMd6~V7 zwku6W)fXK-N*amDu%mU+Gv2nS;4{2@^?SJ<*dniy&Q;d6$U@T_)$d!CETRD~c){@$ z72K6yG8Av6x|&brg>2Rq+P@+2QA7NNn^nPNN#oU6tn&CxNqV2q5s`81O7G1PY$|Q6 zQi{k8zII)$*3sO!uoD`woj3J{^{kS=-rR9@d@|+!b+9VAxW>JzvwiGEU;mf92LgGM z*GAV4f5y8#p-g*sU#DuYnGre4!@=>?JsnZ2JzOyEL^fRi{orNa&}!9Kx{0w@>{>UX z$|Jp2_3@Uv#Y5$>dgA6`|L-8=nVs5`R zY|VUFXfMNqYu2W(q3uqEgHnxJiuE=T_y^>NsNCE z-$p)5+{p}&l@BUUpX1LuPf(d8G-AamtVL5{YvP>u`Su`;Ai!+~k>0y)S=DW^?=!ib zV0hm>hLQKWKDJ7`F<$Ox_lx-KzIGivn*_V9CtGEEu~p_L z`Kt?QrboeJaq)#wi;Liem2b3Sa@9c9i(7l5F&hFgx01z%CaIQlLbz=$iD~4NTT4=m z->4_Dl+|CrJ_*tV|YAx|4StA77^wi4P<2zwwThmM-PTld?wz%W6AnJAD;5H$GIlk2dj* zyz|+5kW=)4-y>V-6RKp+Rk*J>Zaracet)Dq!534W;)_W!Nxh69T&tcPo4)fY-Zr1Y zB<^kE0doTP2$Jq8IqkSB_1>5Qo8(4t;%M}{x3t1Zmm5P;s$1F-W{gtuSGP-XDq zT@|~hg-058E+gi-!Ma69-9wOj`{6Nw3N1+7p}jv3!=;ep}xIk>&``*|E>PmZ{UiTasS?P@5E|o1_YL z6!p#R9ngoDqi9eEPMV|TNvsoloNq`-m3e6jikY=+tgJK1P=1B?>}$N$uWO5_gbr5| zr6hnn?IG;_i#&oNWl{zmfWvv56x)99%)* ztqai11D7U)oezYdT;X4)898ZOqKaU=dg1os`Mhrw#7>Na?_sjUU@8L3V9a<9+>;$2 zb`I>D2p}eG)QsWL6Mj7VwY%`u@vxnw?e3%AmA5W^)wIWlV(8^(TFN8K2+6sNw<%fX0~u1PSq}<@nj7jJP<0pQN#3;_G-U{VSizwXvHlyQ*#Rh8RZK3W7G4etsdY51G0Tv$N*Y>3cih z`^FvZRvpBpssDj#Ap0InxjSvG;-LgDaxZ`#Hq2ZKnO9*9YSeNEuUN10+Ry+O1Ku0; zLap_a4YjF>IHQ%QZH9++(t6d+);>~ZnBaxm@1Y^#icX-?f_n~Q7ld6n2keWRo~R;e zNOTh%aLa-y!%)2T?&G;N2!UQP2wyK`XWS-;d@DE~7G`gpv>72(J z00x}Inj6hpgQ1>}GAt5{$`ZW6jj^fF3Ds4qE|QN+zHIMYnIx>R9MO9~EMe)}OnSKd zxl<^Kvdsut_GPK8brm<_H(rez9FK~kmdf{u`fi>GKdim0c|)d__a&$Y5qI7N^|RZ6 zpw7dgO`aq<8U|+O2&x3Z_veDB;kPfy3%{stV}n~2CAsM&l8=x!O2nHamfgfUgYmyV z8}UQ%>)*k{K$R8&e=mFX7uY!tI4IaV1RGTfkz{~T!(r@KRACR3;U6`hx2Q~>x3sCz z3B_{q=*WGpl6QL>BN$r^-cTX&>MK_1!rTy4)9k^JWKyd%X)ei#M=ri!`-H_`8|w+#&+J$DVu6&qL80luV91iw zlsKKJV2Dn{Y$d+(-r&9WZiqfroTb~nn9w2RAVIB3ju&jOhrxxEc|+k~g-i_;LO?b7 zIeY-@G&-Mg?mVb*!Wod~TjkkwvkkyBmge>Z9^h!Oi4$mpuli~}?0i5}Wr&-OHQRX) ztEBZb?>m;p!NJdQgND7w(K>X;(*OLxuiOTB_78%0eY7AkHR8G}H%uY~SM}q%amVzo zQIUKrACFE;Wx|l)-L>B6AVJ1pQn#$n2}u;LwuWYCLna5GU#aYSB!hvHG?`(7AEUWK z(6Qs1u3_79^Bk25A`RBJOm5u3a@PdXKTXW1ep)z2{WQ_AqpFm7aeNT_Fl{uErJ#t# zi8whruk-GEHLz6-pp>;h4gcYD=*jbQP?_sIU^iPPl{!kU;kK3C6%@G>$NeQ=31ne9 zq2QQS{A9K3!UWy`@PRAf7OP64FO=sT$a$+ z>cZS%5-PD7t(5yxQShZgZi-gZq#Ld_Vjk8|+lyLL4j>S8rrtR@owr%NXx3;Qsl$gL;$C5_w4Y9q+A=;WMu4=4Y8DXlw zbPvM<2{V_mAM=YVy&sTd&P9JqMJA7}&s86biHi6ph;jhAUxb7k!Ar%S4f?f#k_ zaiLHF-cXbi+zNwiec@}h>)ZqZz9Ie@Q-;a&@!Gz`DacReF>8^~SF-;5Aw_xYZzhLK zw6Z>qX>)=54}hifR#+n3K#zj+KvepTxACiWv|?uYyS7G6#`PJ^>nG@ z49Z%=Sz9qQ6oU5QpeeP1mtW>XHpAJIvtRLV88AHxhdYL|cfS!GEEAJeb*XpI1$Pe8 ztrAGu;C+V)z96tN@to5P57yEKm569U z!N1$A=N>EQ4GdO#|H_GINo2xs+rVTk+raVel+$4WkMz?v$EqR+tCZ znB93JI_F>zRbj5su@KgHrWk{H?vY>`B+wHJcgKQ4-J(LlvO>^j`HJV2vP|mo^1A{w zEL3TSW0LzNV$N$liyEck3*)0n&YP=!eQwFiRy4xO{2Hpog4F^NWtRLEt(Gq?F@!>C z47gGRx>%%$it#!80$5LkTnJDm-~<~8C+A_L*QjDRU--C;+J#fAhl#nSqJIsSTct@l zjbx``-0tSSApzMQ^aD2-U@Oi*b}d1+a0gx)|IYj&G}T> zus2=7THJfl>e^;hh}VQgTB4q}9zz)LybS*mtM0WbG!%eqpk=1<62(6y$PQ zFm^C`xCkGFWq@Eq2#Y|ojm01U(LRRps=U8V2m=`xuPpGQ_f!BQsxUH(=(>A`Y94x; zy458&u+9YqT=P`jqHWA0XhVRt^PSR&8%`{+=wMP!@?g^2&nL397&fAeOA>X;66Llk zyI8X15rdpr9=+_TpDPn5KG)ylEYedd(~i0%92uJ<-5C{QVH~6uk^tBn{MbNQ94iQB z4B#nPc7UL?`F05S;kCcV88@ zj8Nj&#p-cr<*HyA3bpVV{P3r{Sf%-c6I4H1aH}7X2RX%R zHfV=G7#!9)jnAo5P+0x1T<|AmUVjI$@;ZWK5y%4#2Kj``phA)t2tUXivuAyLQ6&;O zKOL!oA~?%OD+F&M{0Z9&9ZKrULB?nuzZ`N-9q2%j=#Lf%c4)LRE!$cFgyhiBpwp4e zLGQz#ND}_%&51ksJN)>&E&I|qO_98fBbgJez>OQ~s6z6tG~890`QQUs`TSMKsZ*$R zrm67Yvy=Jvuxj#Cu>5nrfLoA~qz(MBP>T=}Q{l(i2jn`8Q@<6;1mN@wgs>%9112Jf z1bu*${T(K>r1qJ37`iU_fsI+-%LDzWU~P@q(r zPUh3X#~F2G#_F8X7nQ*1ahg_?2et+_GUX4BRE()6mv+i*(>&81P#@fZNmSL(5~m2q zAkMp)I3XDPgrmwx?hr&OA_gx4IQ`Y5gkn5f9wGD+nbjIfih~BQMzn?w$p~}I7~D-7 z4wMeY0s05#*U6L(o0knUHs6U*Vz!T*Z;4hu;j{*JB97Gx(+;@!F>4Nz8vqt(N%*5P zQFs&myO7<8YI0c&5ud@Cf`I^-oYxVM9f58TZ^_y37DCb!EA;O}_GL)C95V=Yj*~Qs z7TE$o^bn^}k?7V?#1QmhlDE;yl6Mu;;Xv1Lk{t%;Yesk5!xU)E<|v8lVvEw4V~%L> z4-lNei3-aI(Zsu|K`P|v6eVsFCk}ar!hg>Ww2uRhKLFHX@C0FI+kg2LglPbFKMO7m zIdWhZ&?m9NXMoU1#W+ZHXD-ocN^cCH{1=|B!EAYuAdl^XJPms}lU;_R&2Ns96z9-5oB&6l;D)?CRy7NF`*&SJGIpTb zvta`iLr}jQ2RvKerW9vR{OOMps(uoX7=OtEV4vOqhcAZkU@n8Sf-{-+a#ABTVrNhD z_{6^zl+cCgDfU517H58)2=8Jw6#)DaFc8Z~$k^gU3)~L;35WPI*mVJa0RFUnQHAWx zHV~^oEaPVZ92;`{zo_@7Bw6eRW+MNOh76*;9^$MSeTP&-hgeZ3TEm!Rz|W_a=-}Go z`%>DEw=Dl66KD=VfISiCeUy;*0f;*l>M{TazzKvu4f!>&3s8*#&j0>J9Hdov2j~hS zEF21HfN_xBq#AM%NPq$#v4qB*c^xuKnK`YFAv}?-!w)Wf>t4XYwWaz?`8_~LzyoJT z(~%;>&nVXt!Dx2(JEta*Kv)*=7@XJO$OvfN62TCG1IS+xOVd=i>;KA==BI?-1v)wF z*xxe(kS?&#UpXk)iXg>XKsdo)jrNMvh&ze2PRc&DMyMkKR5&2l1+;r+-v8DK1)B|f z;I)6f9{L!L6dAzKA!i~6G?D{hg*R%t5yI;Kh6`XC2%>*2W7ZnH28JA-2$X>=Qf9L_ zL`zv5JOW~vLB4&rfu2ya$O)jKP#z~q&gE}nD}GC|sqn7PD=H3F6zw#|PlFxoVHT?EzrF%Nh zdMexixoQd!fcR(0twJ24NrVgrO1f04eJjIVUQ3y|As8z+%$^h_gwJXfZ_9ymF#u^z zUD2j-HDTZuOnN{pLKar*$pA!4tA2h@^oGQ2dUD)U(Xiqs`ijGnNH- zn`8)w|1MT-?q{_EC4XQqm?Y(T77$vq4HXS}!Koq0iJVQA(Em2dUvPqhfnx;ikVUur z5AQ-k0b*m`2kajSIt7-iFjI!Wf+M$GhKQTD%ma_YaQy@4#Q_TXnAL+zUdOg1TL@I7 znzsKaL6J@3mn_L5<-c8X1F{6(_?PG4B#rSOahg9H>Aynh21C>k5i|$}=oLn@RIu~ZS4T))I7N{( z<%|@860WLv@~GdWu&+za?He>I+|%5W7HEQxG~ul)tW$|-wIYx@;GBIjfCzC$)ggy8 z2a&Nc5C#D2-}nY1+TTn70$sE+Af#L8ea0?V!S~X5%DVvGA+{&=XOt7|;}3zbFv8}y z|Kq{;s#{@-*(t}=9yc0A)Uz8oF1g>gpvxQA z?uprA%M+l75C8HT$bNwH#Q`EZgV-75aY}GgW!3)}|Z zC7>{wH2O(Dze>|PT+gI1^t7loNete=G73KMu=L~X1RW~S{XPrbxH{eV_<(z|fV^GI z5;Dcly5pr=BC%tW!uo`WK1Qx*1h4~8(8#~afbv419*C6A{1USe4I*k8P@Q;Av@apS z9+~g2mc10z*rK8iuwhHbU!m-bQ|yMuufMk&Y++PLv2hA%C4X4~q%24a=Fd%kQ1Pky z$m8<(ga^?^&h_ypcijW;4mw#p>QNMf_ebHa^D|5jXf|aGHoQff_hS_5i^K+MxuNL! zFHC7V&04!b7#^{+g@MWo?w%4V&-+PTF;<5KUf$k4&-v8}=h zc6uLm<;`fVugQ~#a3`7?a0`)yyu4}GAa=21@Ls^$CQ<6A-#o-kk+W0rh0;fAvKQ@Q z7PHTERZslLreJ!|X39zkarXm1Q#>w`pGgI>h)_!Kx(+834mnHzk!KOO3r-?pMTP7^ zFK-U>+ldAR%Sg>~y8vbCVcQeF*JbaE%3EXqz{&(w`{S(j#a9e-@6L;c^M~AZXBHhW zH!X-vO0T6)HRnWMp7m@n;g<8Tv^AEhxckg}S^6Zk@ZpBoz1_h+X@Lcr(yqa#tl6fl z!G=jRYi0oteUG=}{}mAuv~d4^TKCSz!4PBd zorgoh0(Sh|!nV8FLz<}@y)TY2zNMvJTv->S%|} z(*`YAajEK>({kf+qBMS#QD$BfeZnuqx2XL=(YzJQzv|jP^j*?qTm@BCgO9qCnpM+# zs04gumto3X53|X3Ws~*F==|d;Su(|}|FJVN>kb7M$S1z};UmkG*=F>njSGh$m$xX1_ zehaRnYvjfRt$gs88!2=wsT23Py~i>4^4}-&Eewm-Rcq)v8i(5@ys^)X z|75Gx8X3D*L{1*?CoSMpraCHGic@CdU{1K#QM8E8v(89*8^l`E?qmK6&1-lp zrcZ9v+8*V+W>DUm>!_C!A?;Gob4q{>DR*%SdPka5Xx5?P`auWSw#BKSMAINUk&P;h zrX$o^aB=7N{qUiOnp5fdnp4SP9+r#J6LhljpQ4&s_{H$n_5`hMEu~Y71gc*bOzE-V z|0tAv3;~-C8>HvP#PvE0nV74;Kp0NaOgZ{O~8D1HjxWZb@Nl@D1XBVla$HMdC)4lMC z6yx6Z7rh_DI$oM!vt7gx^l}}jyKM{lLS$H$I}|crri7VtqTxu4e4ExqW%=t{Zhi7% zq_hdfD8<~zTRk5^=umWb%)DglQmt3)D}m|yff-%4=^O5NiPFtR$zFc7##g7v1O;Ge zI%g0UbPl(tBn_7fnz?Z{@)KVeF2@BV4`X}H31e=$@h@Z^R@L|Wx?ZVK=c{|QMJ_>-?|YzpPL_MbjhNEIcS?wte#*eTGb$`SHCITF`tQ`)H7*T$TQZ;2f1U` zwLGtwW$L18@9k_y|AW)gc}`7MuB%nfMc-CSr^13QkGP1|#)(#DUh_+iv5iwu2U>aF zd{f7m+UI4Xl=|#c?BG;9_L7a;Rk}c=uSC(+VN2VHY8SzwAEEsC3tB#4?k$n{OL=dm z!KGm$R8y3zb?GhN(FmAbhpTrppjq0Xt!gyIqeU>?hY2D&@on}M{V zuz{QuAG1Vg!V1DXNZR%pTcQO7nHu!uv`Mp=esRT-=mi%7OF0viAwab2%y+I0`X(FD zVWx=WZRWHxPSkXfGz`Vdjtcrg>KO-|CoKsWYG6)u*ch$-DV+REi(M{vz$8=0hUbV$ z_WPZw!~jKit?-S>6^OwqI(G!cThZCMkc)KrNul%9zOMC4${+fmb(J9JIctBD1^1Dz zwHnVoGn5ol<7GEPqo&{6t%-?V+Lry8>k&w25leF&_xQ_!?(V6I?s`I$Rs0N_tfgSD zt5`jEy_0APXNt`{l0D%|xx;l^nvDwdUpCY}X`L z%TPe}V=;>QNJR^C!^EyqL;eLT=0;5d$Y`s61t4<|n%4@^xA|=pF0boF8)6s|{wd#c ztAD7@!?N1L(t>XM$e-@z4W+$C6c6jIU@*LsxkQmi#Xbj=i<1@Xp5!v1_{Dx!N*Fof z(Xe`U$-(8>fqPtjVrta!rCNTW2T^%f@9-A8)s1Cd+#h||A0uL(XKZNQ=}$=^M3?n` z)?0)ye51l!L_qzjHp!DDF*?!7@jtN8u-9WsqeZn_%<_CoddPIkXf-K1UEg*50}$k7 zDSWo%M(fn>i#ZmPCVINmd`Vb(EUI9Iz9(qzRZnt1@CFP02$xEISkIsRGD~8?Yp2o!L%GRVJV+EC1OzkyWheamp|l&d-FL=?ST_6v-{GM3ILx0GhiX z;cV$}rVRke)R-dm{txT#J}v7nNDy;ntn8cgz`Z8HCX*!Ym*SW6Myfr;uVHnnZWyB< zcec%iQ{0V-YKaCp!9|a-Xw%>6*#4G(TpV#k+2LH+ zGlUI@SsWn)yTSr(1lM@1%qXkwd)&N(;7-;mNC`tXlQjltlNwGEQPK>OSo$d3D(j3} zXO1>=h`vLBJtK6_r1>UOr|uW6e4_0bO;P773pQzCJ?nddjtT|Ux&~SdR%waG;Awp?E{%oI-FlO`Wnrfg@1nd zc&m4);IvnsZu~I24sB30C95c==@35BV&R~T(PiAE&;%VbLu2S*&4+>#Yn`JH#llcs z9?SJt?TCrd8%L)9T%>FzVQ9x}_T)SMfibslw{C#a7<2km-Lo=qXN8N0xFC5ZFPs{Z zcjnu^G>vB(N-2_cKqgZ6;)h`Q&t{sgs(b3CD^`Py3&@6RaR_9jnz|g~UZmRNBrqXu$!8Tonj+}AN_zjm ztWwHjhZz!+@*lCCDExlyD~jxlR{phmbcyKTD^>bAUlYQ=6E%oXg?vX=KZ_ZTC!l23 zWArf*+Xklf28*$~2uleKQtLEAHGok@7 zCtXyQs`T78sR%xL2a&_w?-KZ+SPUlJGHA=4N$~Zd?gfxtpW@z-C=zF4~&30+UE;HL@EwmV5T2%5gnPs zLB!ZTsS@GD9BuwMoXa5n3#d#`0!d3efRMs7Ri|mQ6HgU{XBAncScFZczw+_c*NY>3 zcf!8w6w8laN!TdHti<<(Bsyo!d%ZpF8IPd~m;c)CDMRdsuSMB)8lxSo_r;iruTxiQ z_$Y@_94(4MUa!{Sp%DvbUcv&4U zG|zM@DUhHgpC&{i@Ve6+_>jg5E|^P{>Syh*NChmhX#~$Hqw+T2pNv_|ycHHc?Ma}) z>J!(|YV%+JAsznv?&%&16K}8LFkcIz2(k3#+Wix5wqngT-3xYe>554;c zK!8)Wv%{pFqwDh~i})-)fH9OYdK*g3)>?Xg^OLAQ1S=(G0Hjiot#rxZrZ?BVONi{OM45K9xZmpeVK1D+T8&X`dlma+Zhvc!TmHXliVj;cko9Sd(*{(;3O zU(d!#1jRWpW5>A$+bsL6uW=@rumBvMt>>=mZ#Np68suV5(xd(9$=CPa*J9qMHrLGDFzM*bJUJF+ z1oe`D-AqEktSd?=WvRtl^K#&{QZ>*9mk=8S|jhuCOjm+G-zA0`51VPS&obNT8n5_ zZtDcJw2B&tTrgTP%i2t&%}!Zrd@Jt#k+%0$u`%mPWwIwhbMSoivEnb0#3e3m^fJAVvY1URV zW46E29K6J)_+qv>LM~djXfxhox-agxhgwQ0`VOsT79X+fZ`W2j`DHQZ%z(B1(_ydS zD(z?2Lz8KeJhN<0B>Z<;>4l7nuG%LgZDt=?hG;~f% zNS2hDlWKnJ=PMpR;1kyD`vc1tluGooY|FZ#6FaR86h9%dGp#%&JUnll@cN-Q|3=`? zsw$-O=1IX1Wc#clkB9#^AANoweUY}8T8MAxpBrv}V6|J5qBiMo{skm5TYshLX6;bL z(r`uUo>1da<^f(GZEsJiZDpk2JUVqM-^27{)Q3x9iFxVXPCo-=-(q^gX%a&lf>t#U z?azoJ5bd^z%wL-0!lz?T6?EGgpFO?WH72^VYXKrxQq)uRE`woEXIcF8%69^PJv?aQ zEN(p`^C!n>2VRSyaXJtRi9lG+Fb~qN+c&ay4Qn}JLC6wz=FFPAFQnS>Y*K&0?#X1R zK;)kpisyrir%yMq{Dkpv;PNnHR{&zVFa!DNliCc@aA|6txkeEM?T>B2lFb*_}s$mbq4uvEv$(_O&ryr z^iR?pJmOoSR_WlG?x1{vr0 z4(GZhu_PB>kWqm36&ZYn9S~E1;XVBD$J?YH{jz`8c3eZxR{ZP{jWo^Q*nw9*INe13 zXntmE$uj;1v0}}%$|Hry0Hdrqv(y>lBx47JbXaGuUEe}gpvs1!M1oAI=!8@CJbRAB zA6TJ%?li7T=hq9iV15a8D9`uXYo>IlV&?AWguS`$p=8a_bAj4{;%g`kiYwjeG>@z9 z<#(LyE$E3I1=ef~i#eOSTVsaBOhWH&r1{2ZMonZ3J0iL35v1!zLrr(SuO%n?asyjv z5lTENe&#@L?7A*lwmS5TzL00g&^vSL{wppXEA{F%KVoRzQ6{pPf;bzj7C4A@)rAF~ zT(;oe!>U_|B^lD1|2P0yN#c1G9?Nw~{>$lvoLs35?$;MaZFmaD`1pS4TmQ17Nv0Xz zr#)8pnpI>nlWRLAdv@8J+V*Qq?}&?2l}4GBf>BZ`kFfgO(%e=$devH3Qs@?h6D>ju zDz+_C5d6-n!ww}s8uK-Nan)`UIPQcw`k%xgHBCn zro$FGTWqSy%zkul%j~dejz1~^md&BH;5(fLiwY1CD6Q&i!HNL54XlqZ@+4gO*R8TDx|tHdsjc(OjL5aQBz zsnotfX#?UL;0dyT_4dv6(LXSrs=fISIh%CmF8S8x@5*&Tr(Mg3SpA5`e*6$w82JNZ zS(U`(>eXsayuD(8GYfO`sfqNSjTF^yCwh?H{^6(k19Jf$0tgJp zUKq2J@Pn11Q+O@1hH&iXo8Xdmj>M2@AM^WTZfqYqy2CB064cqqIuy)LTPsr%iL?`m zROP=Hf^4&lk=I;W;sAi}AQ%916{G_6w2AuixoRlX9i=i?YC4)qsW-$MuD=hI|G=`9 zhTQ`-^L#HMb-Txp9JhMiqrU9go(O_7<-b8}Z@BJkGXH^%jX!AHGhRRo2;9$-q~z)B z{`GZtTB7~8=ib7|Z~d|COW(*by6$+K0&18%Riz)z3a_q;o33dDB=6J?Sx7a-SaJr^ zTrzL-6S*8t5n)NQRM)<_#~Cvm6x^icOOZV>WmyAm1+n6pX&G$T5S>%d9~l2-CT{1n zi_B&U21BR)H7z3Bml4k$;YQWe77hbwe_Px82?<1--B_+%3Ns< zewSt*<~#EhrHDyzvUz~Te6DeI7+7%OUyY|=8QOi=neDC39sFfyVUTmFKi~_$>7Y}# zs~BysUSh&TlDr~H&HmcXwaHiot6$U%&i~icsuxAN4j_Z}6HumK`l!LZHmC z6&-$(L<&I#O$6WXuVq)7l>7j~R6dFs51l#LjNcLYx+L1ZdGbbe!oKcnp&6U!hZsc7 zk55HClWlb7eDhZM^hj+?g6ormgk9>CPHf-E>PX+%*MFW26)ld;(6t7Zv1zQrVz6Gwrw&rMmaYDNL3Sw$w#Q;VOlWmtKTb`ScSdyEu`vJpH)#d z`!olq&F}$p_W0}T<{JIm49=cNmX^ow(`o*HZR012$%>$We(Bm3Gv8_V)SSP`!5wPs zcaO5w_0XM-ENgU1DfgEK{DLNq@0F(#z9Zw}GaIejGi>wLRXt7-U-zUA?c2WjUP;_l zrdx2d%E+_51*c9%q{J}gg>wrv?Lu+{`|3bnQ-C9K_?;2 z$5~|(uB#dWJY`ajoo|B{Or|#4p_8|7>;b+$?mxZ9&86-&-?luGYa~K1+!#nG^rb?K zb5MfVqjt&i*x^uv-uw@Yq+lPCH)7{7_2&TEUiRR0V}6;Gbwc`Owu*AJuqAxzw8!@({%gck z<4HpE^#qU{EY^37HtGi#54lhA3pv{_BNgiD{m^_jCKkMX?>}gpiQRc>_&c06<)$e0 zW5%h0trZVfRQ*)nh3DTyb!N4L)memY>L_|`rIq}668t?ST;Iu(re}19qcd{RsgL_v zO+=tY?@tlbjb4mqghScqUXr`cxsbB}`*)8rm5~kAAM)Goy5uD@PE|S8-ibocW4lhc zF9`_jcX##PD95}lYOvJ*sTi8`RG+SDRWhB2XZ}&wlas1rL1H_^hDX`v0Wh8#F!!GR z;I-)c?P?F&Bci+NHODELEBbWoCX0UR-hUmmBr4yQ9YcL1IhfGY--`08N4nbOYJ z6Ua~7E0*BGyJ*_+DJpluFej5^Q5w#OBVW%nC`U|V3tEb0zYA9Bz&V#twDA`H9D)dLWXpZ*H%uSB+DI zUfKQAFWZ}lY8s-Ec{}ed1cjB=ia#S^re3UV+Ylz71|&5$xDAJO#T_8qlRXVQQSQ3O zVIQzd8zE-wT-fD8+u`tS=JGl37SRx)5RA_hb~`**~f&m>JVbI`-uDx}zpI;Btr ze8Ol>sH)WM2wY#8#h2You>S+Q_YVC#OPj+u#|p{!2WEbnvv@PIu}|^J)A&LkB87-~ zFDFxQ=*@C>n+*z4`1>E_DyaqOzx@wBpI-ke@fdW}Z+G&wc5+68PuShPT3?6&9je2U zkE@{kt85@ESpcJw)-5v6^f84;wkNL791R?=YSP*N4N3IhdyD~BOYy>hIzSJ-RJq|bZTtq zO>=UsHP7jTuM(Q+b8fz4ziX|VBqdrVynqkRV~)v@jB$upBj$7u@JWslY#bT=P-ZBBOVcyK(E^&kjD-e0Nu zRcwtuzWe)o2z0HbosK_au90Rg6-0%t5eJ6kHZ!&-&mh+oKpIO;jdcwX&5UWCnt*Kz z)5po~{C{BW`**$%d!`khvgvMgZp~a@!0FJ!QD3rD$D2%FC^rdw2T~g0zsbvgvKUY& z`iE!Ux*7~Vh5k6L$;W}uD}4}nS;QV{_tA;_uBXG7&>z0RzSQA}5s6kU<&){+@tCQ1 zJRNBOcrmI!t$PDwO_;`yyl?D}>U{R}kmsG7_gLrW)V^NzXg&X*h3g!xncM>zjtlxp?0s@TO33E-#(D)U|Ig#V&M7RShhl^ zPfos)&E@Oal#AU9lGp9E9ge-EPTMq01~yy%!1`;=%BPMJ81xQRM6Iz*b-EKG8k1{J z6D7aS9=}67xX0W6ZE?0%akds*;4bQ<{+aA5xCg{u>gK0kZ-8FHp2dsQc33ZdJz9Ct zAD>C|^^|oAbNEafq9Sr+uHx0dNYZ7qkhx?(1A3@``g`_x8tp*U(Wb!9r{)xr5LqVh zKk==4-nQivlu@vzsEH;y3C`KJ3+=)gSqB@i|bb~Xi&WyNZRXsU4N za?Ykr2l(W1^(eT^BW?+#U+WJS+i4dTNWRt^=BTi{*wL!NNI$KvKnqF}v|$h%4{kjY zRusu38rL|!=PtE$;uSi`6gt8jtyIJr%?BUNvIYVb7h z3xC`c(Wu5T%3Whu$|@@)Hxxey@-X$4mvZADF^HekXB|l;B})Sgau7-r%7Bvd-%Oe~ z2mHgm3&%Zyp2LZ6r{~GmNWH8DrNbLP9Hs9*&bqq$@I?V@A30oFO7ribBqN0ywLHyF zrIz=!t(Wz}MoeaCOyVODHN<^Czn#dNOpl_*19_NyR{!<(yRj?;GPs8h!^?~oT>hC8 z0#k1`W){JMjDwSBQK;tTyZ?KlDFw!GqyC)eMyp6 zA+@`iajNCzTjo=M?9rG(Kdo>24M#Ttc@+Fu`njEVs;J7m&&d=rTCM}R zP(WnWo$5v$8l6(U^x0brBhyKyc~h4OreD*opPSxa_8Ch3sp_%GH?!Y9ESNv+nm=5P zYy0^lg83t^xK`ahvVYc=M+KKhd9NG1e`-x|kfJ#1bls@!scqnB(o@^~(a590gY0#c zr?wiUqDMphB@4HzVvqW?*To`AmTy(09JOT}y~DLPIY*$CfmU#oS8$Y8a1@7Y;RQ#p zptgOK-HcZMU5HxB*!FtaWR2=`dAo#aGf(H}ja}?~$I}@xezXDwVO*NQ5T0{#n*B9- zrcu{uyKpU{5Ul}P!J0+^ctnGXjtfygGPWCDzFQ+YEI>`Wfb)%-L+8^@=je}I>Tq5V zyYDQ~7+O~q$^jsin_{S}rIY@Bc|ZqbyFypqV_Q1$V%J ze7ZP5^Ro}jKh~t!4hyu%im*P3d9aBal6EbWegX`L=nk}-CeTn8+t3a&4n5w z`tj)j!Ky7!b<=j**dso5nQ^-6%4pM- zhPNSGI|)Fa9F{3wZ%fF@zp}l!MYZ)x;wbjMkBtBmDody0mTu&NY1gOpYtwvm%Oukk zblW5|d~`oaW}H$F1AR?rk~|hrI|cVWoCLE~GIbd7k2T9O|Mzl zsF1?4Jjsg2*3@cw>%2U4=>xC>u3bNmOV=P+;20!}kBGlOR-+nZa=+yi!iy+mR!oRw zBOT?gM=oebsmpWcPKxkHcw_Bz3Q@`(vtB-4kviona=rSNeq?r02v=UlZ+GN7gW;pu zsz%5Ec*qr+c~yEl&)ZFIXgK!i%Iz|z$L*A{*^JlGFKqRrio;j3Y<2Mjz-&j(NvfeY zyrb@73pXFw4uT`I^+GN2*^3kI(aK=Hf-6CNlyCvt-c6o@TcD6gALg+dJT}`JF ztiU&ey`>Fd+79HOGZu4NR9Xl7Sx>40L!xh}gnZ5g|1Xl`C|8k`M<*!jAg?R++2?#M zLPedZ5oV>*@VuOGdj}L!S6*JaM(2JwPff9|cWI4I5Z{i>Q8Cutjzp1}TcS8j7dvjk z%*dH6ROXyrR65MNZJ>S-kVN_3#U8F+V{GO;iL;)W)@9ni!gnmFTwS@3q1T zS4ITo6&b?yLM9z42}8e?$~o>sL+SCbZ+GqSkjS#Bq-zDE2~}SV+wu%w_uu*z&Sgoh zi?1Po;z|kw-|zB*EcJv^qfCSI4!GK3BgOIo8MMtAT$fTp`=OUyeBgz4=|ySnLP|^Z zLSkpvF}D?kj?x!JD4X#@rq}!A?wCZIBt zG@~i9?GCf5pc1LBxZ>h0EY83Bc#;2yS;U8A!dk5#m|=7Gp9bwwrPr`zipaNxzv}sr zL)v*STZ=-NqQy_ZTt`Y~gv&lv{*R zZ`iJxDp8H=&#P=q76p~2zHTb8)NxJ=EGQ7_YW3Catf8Y5{VvuU&v!5N?lzHF8Y=Eu zaJU)Yiaul8UV!@6%Zc{d#@F9WTRxP#XeL%N^eT;2Oo_QBIA8PTQ#2iZNK>SlNOdxF z;}sg-5#n_S0{LM-T1-gXv{#Q)G%Bdfoy(zZoVMdyoX_t9aJ7j4X~ldn!UnKB=M6<( zU%p?ht1?~&I^N<**_VXKyv;4hMa=uPk?t~Cc^$Ko^vQw%i}oV{=+1b12RaPnJsNW# zB4;r&>vDg|cc30}87S~$o<+d#_+WV@V%>>867VfW56=JIY2afEx5`%#Ht-d+NxY}% zl|{(U#zx1tC=CX`h{C>^ESYm6SOr+w+d*foUB7f{y`3pY=dALf|mrycJ`tKpf* zzX=a(P!+rM16|YCwzSWjRm-0-xsp5d4eYI4C@dK2jG?Ypq?YOmpHLK{MW%)+B4hfo z;Hr!S#jMjbWpYLPku^+)4($*t7^DVA_zSvkvvSmfJu@_!R;tN-gb@~wJuhQ5{TO~I zEfv|1-TuE=d-HfG+wXC_rzC5Z!PvrB#y0j*lqJL1vXdoSGnQ=0Ad&DS#*BU6B8*O=@*t-p$LUAl#I%Bo?%j?tb#=bQ!3;*RNg7F-$~ zyEo3!eZf7YUBXn8$QkqB1=qRsg(L+X4_K7ba&Q_dt`qgz5BdUQT=JZL3VMy z=$UgT>$Ta-<&C^{xAV>1d$|=aGKGn2mMosDr*~Pp9Lv+het6y6|4H)Igwx8Djvk7R zq*%Ayut>NT%$0MTr$exLOKyx`8^F9^c-m95{jFKsBMyR$3aP%0pPCBWH}V{{{NSYo z`kTb1eyt_?~7W2`Vn2l=gOTL^VIKtyM<%>{1st1$&VlOOc8#E6tmz@(Gjyfd^ z6Cu3_bSRV+`FQS8SW<%x|GsKz-2KBsvD1tEv1pjEiJUk;J548=E>Y zX^MR0Kf|}nArp7KSzQxm3YR%|vetIWfvHH7b~km|J-4f*@E%X=mva(#bGwK7##tXE zUS!`Fyt^YmY~#Jd|CnacUXtZ;@^O+w+cDPYoPr+B9$v?~gpK58YFv6uH}>)@ivr{N zvKOo^f|+WRjP>H>Rqgy2pDM(dDiw`9F?AH)_ii8q>C&SEQu1y26?%@en!XTuQ*26h z(4$KYj^yiuV3x{^wDe1RT&Xo5?_ePt2RX^E#YPcucGKZ!!*+;KL z%0MU_+p{27Q_4o^$XQi2Y)}tdv*H;lIxkYfWt_XGlxrI09iPqHulnYY}> zl+gy4cSnyj$QT-?KXaqaAiyh0e#AKI@Od$*KG1F82{hvyK+k(PJ0SJ7tSV&GyR**H~A$UxpS%#RvsP<%3b#$dhJ?^4A~>?&AG ztv@$&mO_DXPCcA_p>uoz`{$Ah^z!Kl@9K_B#QQN#B%7CtJ@Ag{6X@O7eUJ&1H1dtJ zVT07ODY*YHE`IJZwcB)1ld&e+QvbRw+JqHDbEW59^|o$~KXgNjdiWlhZUzc)x4!`_B+SR zZH?-SX-oX;9*L*uY|Uwl89B=*Zy3gtavS)f0QX#eIc(Ar=0QCrML~C9qn1N1gus#Z=17w4ewDwS{-zTJ>LfKbQpOnb6X|a7x?6E!F zH{$bxJQ3fTcHPx0rD7mTf@w?&X;@(lIaRr+pMQ&SiO*Y7pMa(u- zMh6uc7bFXlH>YSy(z8geAK)qTF5~)~)P>hG{rJ*{^GsB{BOj6oEl0wj%Fa7up(K-hYj`20ntoi7 zl&JHC3|;%dHF=8V``0cpiyX>|tnt-fz0?r9{;5GhUyN7)(T1l`jPa#2&Z7uq%(f!4 zsYoG3z~soqbbp8@-^LZ(KCbHX=8h2U^UjLki(}G^G3M3*J%uKqI2$ZtYlx}w&W)Qb z17;19NB(>Fm-sIfW`iv<2t{x)V^d59QVd$vh|6lvnA#MysOGr&la8*U4Z@67`~IbY zTwJw4K3|J4#|=<8CeEhL2QcNVdh+oR@Jz}-`ycRWFuD-7lR?4paftPep{J22?iq zJ{syv<}NRP$z$;-HsQWwwtR+xvg-&~k4+uuY9%jwl3VUTgItytQ=1o&Y|nDhVE+Ma zfn8Z0j5l9hyv_V)sBBcimFLSqTmazVG=Q_+OQs6EB1utW;P*eJWB_Z>!bl)zlE4Z< zb21Lpzjt^6*r1&rH1`ANt+fh@xjK77m!JxDodc3+$%3N{z&@rBhfBu*|A74uL~Lic z*E7~m(7FDfdLo?<j}iVWSFoG}iei9gBy)%{U84<7o@0o-0@?>|?HqgSP}Q4) zsgmNIJ(9*gw1ApL))gJq8soc68ulvxgH`0}II^z)Th9kRNgk5~)CLq^ko(+AO(NLS zJ38Pn8R|bG{)d)7ZRM)BfV-)E4&|#u4@hEsXj9O4Q-${)OKBwP{7<2P)Bc&|A6EVO z^q*2f5N<&OH}F%S$*~JZBDBw0xOeS)${_P@yaS1SF- zxc@J@h(L1WT@^q9FOUw1wPX>Inf6Du$SXu&$jnIl4<*SKrPz>;=Vt%Go7~>}zj#IV z5Me8F`*2Z?elEFD?Ab8o=^D z73VvkZ~1>gB!|M|dvavM`~Qb2{EHMRLW%+^_D4_ueFvSBAc}*?_D4+s+5d!9vQ?3t z0q-n073ea~n>PNxP!!(f1-sISF@fE${-QVue*QX5-mV7h-uM?Y<4Hd0%P=FE>!pO~3eVrK-1I%vQ#<&sikOsWK7P&cI=Vd>B&W`QX0j!a?W zz|66-v3C>iV-lXc2t_g66*IGRiehm4^UFy$imn2)REWk~mTyEx(SflDnWaK) z_AVJ9V+UTRUTpgu`uL=E^fC1ET|HJYgls2X2>?7E^=BUORHboCCqkB9bl?P-o3Wly zYRq$mjrSzjXr{cMjb|l=JSw8%e-G|wKc1J#q;W&-37x;KqghEDkQvXm8JVU(q(xU? z7Qr}x(w|8kIsrz0hF!7%u01^XLNoAK3KdGI4Q)x=(No8aT^b|Yz zf=qb@W({zpp96qlGAZ;1B)XYBv+Vyf1V)=z%-K-Y*CjKjWi`LsZNMY|r0q))E3}XRW-kbk4>-`IOrw_bM_9QGtoW9#g~yrXcl`#mNZpf%$?m zNGqyRlUkoj%s%oy5S8tpvqIFz~nLr9f-)nU0&CiR%}fVs5A?2o3H zZ2M!P@72F(iepHibqD-|(K@hi)iV*ls!&f-q-6J?<{a36EI7=M@{`!WAS!EKl#H?) zc@Av*duHMzUr9EZ=-7PrtuUB}1COyXRmZMTWQzDS3P_{7^0vf4fHi=cN9!(}$Nq@= zt04&mrDfmMQ)bRZ6LBm@1+j`WVBPZ{&uVm4vUxSFocPt1F@d z*(_+;yMQ9FA+DX_Dt@Xm8SO9;Ch?kq3b2YX3`ToD+9?VuG1Mg!9gyQuBNH8H!3n;m zLLI+B)u_-KQa+H`02E_QbM#%s9dHe({G?FOZ=!qV(RZL`VEQiLgW5koTGW7fgj~(h zY?=J=E7A2=9A}}rgxp!`w}nBhwC=pcBZtKA&sz@*h=-0jUnrlaBaiA64jU7mY^xxv zHrwJzFe}^V$C7LS75aJW%Mz& z$8Rc%$OFqA*_Lj4bB7}GfJu1H6`r@3Dz&-` zHC3yGxCUPTIFs@}43f(GGSF&5I_A`YIuOWij&m4)rCt!FGGHG9;jhF)X<2bIib#ca zECXJ>fF(2>_+gk6m0f5jUghi83fAn+k{IK@-64KI7%SA|K#_289^r}wGE{*neRh6+XLGBOm?d}km~E9+F1xC z#66}<0?Z+;>=`OP3*p4?FPFT&OEGpTV8#4dAVue4*!IQrc7E+gf-t{%zg}iU)n{3a zB}~rg@-V_cSKkIgiR>VqA{6eqs3TMqqg%1U3A9z5)dm6=2@{0uq*Lnb-KTSpBd~-( zLht9sFxmFGbT)^WXa`=bJe`9eNSdnoudwm(R-xJ@+GPkpQDrusKh5Jk9p&M`dx^bE z^{GsBwpO&vW<|6^&QtKlW6l^S6vyGf-o3LVvxZ_DH?u^w9Xw_XZv*OiccPz-_wA!? z$@4&m>4M&TGYTK*l5J=Ixoo!xlr+4JEIi(P6!ZmIW4*zL?Pb(Xi6!_X=}bOUf;zZ# zUNQO{vwAX;NZ$hx@xFOiGd35b_Ma% zG(FW5b-4L*qtXq%rOtj$CX;XweR|$1ndKQ{7u`<>BL)kgp;1Fsje%VtFlwmq8$Jk|@(yzvR<=P|1Jb895hD_C`I;PnjppNK7BpUifz}j4wJI_4223v};0FjLAlL!#&iw}qwR80q#rN)*pp_AzRy~$H`HetH8#2=9NpVa>iV*5|`om7$tjxfdpA7altN;&v0moUB5=U+7JVXG=>>!g;8%MalQAaR-}az_>r+!IfHZ5Q z87!D>dZ`EsLcfW(3?6K&UZvm9d}mvVm9Zi3{3;Eig4(CWA3bI zGD76=52E&;BxjMz%3-4*k?P~QaZw>hYu}~lvBwU&qKAp8{8o&;pFTfDZ7_zvBu~=* z2R2YC1`*W2onAp-t=q?(7BeCY=x`XB(>&9+k4bu*r$AttEd!oUuxwXP`FT5vto9({Au2C@W*RxypKtKF0(hMA zE}7LoXGPUtlJ^3ML^6!Z(t)RQ)!j@$}8$u=y8(MCZX9bsI{NA;zl*h_Qo<+kSLRbd!%yj@c zIA#sNWfA4i>Udgq41~?{7spEM`sveT2DY{c$oO5a=qNp@;^m!xc z?PDDD6wz3DQ2`A-RZ>N3>#Hyr)0daOPcSQt^!~b@emJc4J;|^mv&Anpgokq<^uMRWyL`NB$Oi{J|K=<1o3;HBVV#Mo1v=UbMCc1#CZRXeIaaGR#zC!Q8??JY|5MwXJ|0gwJtm(S`W)<*X z_E2!8CYJpD0A~|or(ymf97Ny+l4RtkFr%iOl;*tzT6nmJXHN? zkXea#T#wW{0<=f9)<<-NN+?)D>V*iB#Qymp=MVG(JxbZAJsgKms})nEX;-( zC~{{dF#A+2vVI$Ta@Yo^j>TIBdvr~7K+efk;@Gpaumc{6Y#c5sXuP+#QbioA`1>L+ zVyHuDbg)g=1XP16OOvg)f8xL>48|HtYFl%{!_91QPvj`R2y53*{K|+)AP#t@Pen!o zO$WL|y04YzgckwFu$teMwNYYbb{b&cND$#jeQZlI(ZLm|9G1d{>ioD;VCB#&yl*Et z;}U(7im{B16foMa+9-ZGX~`EbD*J2XNbD5HKxIW{RR_$|f#)k5?__$HN<=ca_z5EJ zE=Z_IeC0+fIEaz)b&U7@yb%ESs2Y^%@Tp>r(A z`0{`DJEc@Txqklp+mA=K#*4R z8pBXV)3-TYTn_gsSHbF5_1wbvuzB?8Y-E+wfZK-*kp+mqbe!A$2h)J`S@e% zv`Jt1RtS@mFoo2H%d!bPmiy`tk)&-WFVeC(Tf+>Oypu_to5-)qzYX0M-itE#g=Lf! zpb^@o*eAiAQ89W66i0$OsQLat|Z8rUq$O{7B132xFxL{tTjoC7_`y6u72W_5Uqx>I$OR&mu9~i`&{I5o}6Q| z-`dmcts?V0kzCC%GTSta;TH5MhK-|exBf`xB2t2skln8lY~6r+_uVZaIaA52+(umH z9*?FoDoHH5V)W|XLM)vqJ7MOMgpLJ$4SVrBw2L;);gNG~R?ksJpL7ll*praH;t^1T z@7ft3QHVUNsY0F< ze**uJ*4$lBa~2DFwuE-VNPDDibZWc8#^hCF-B0pPa0BaUYvNjuyIWV;6KXT#o~idG z$*U#>zc^_B#!Io`5GDPKo*xG45X~9-q;k}~fA|a7d#R~Uvu`}vELd~y?u{Lu_j&S7 z*m40iEoKFr0sELZ-4H?~7NI))ltxx3*(vG0IvFm3=Pv9$M{AddA6Na=wZtM4s4?4BZd zM(qd5W3wT$XIZW|N6>!ssx25%;C_2MoV8sugN2x-Q2anVT-K8khj^CY?V2i)mHB$! zRI!~&f=r@E4Xp4SM>`X3hWA*hFkNL9D$qhIrNP|^v3iyDK8rrLOl3mb;AyY|glRSDV9go-Z21+c3m`!Tr_@0Xvm*IwzqH^p|xd2KOY08={3z9eI>oSja!ZPK>>{bw>!EZhVmnXKI-viG<56g`i6~Pyy`Tl1n@O6xS>#;4 zUZloIJHe|rr7gpfecUA1@ut21WBjrZUuOQV=?s#G6i@tv&OJ z!n0nDPn*mvXn4Xiw-s=lI|>frnZnB+9R*tvJr+&jUuIkyo?h3IV969E3~_4=ie_2D z@!^{ZB?UJ+?1a3VZ^j{ubTs=@w9AB?W3(u)3ag&fp6|cm?3hu~Y|gbG<*b~5nJKu4 zbWdyJB@`y%uUdT+zftluV!86cJ2L#;MbEbhvI%K=qmi#(GcW#}Nw87SXI8)xxfMFO z5zjcP*l5M+@N>7t7HlCyjvp3%#s|@k=FBB^+C9mG=+fluBJ=RRK6m98hv<|mQKCHw zxS%?e6n}XTE!%2QRUk#=T*8G@)T$32nFaRi;75Lme~yy-%nZ8miU>qHPHraSD0l! z7VndK7{wzb;GF-e>@)@deZm?FNi}}qg-woSQ=BV_oPBXsqgteGhf-eVw=l{w>X~%h?G;J8<@wp86e9nKGPJz$nSJA1V4j?gUR^+-CVGpN z<>>denU72+GP)yR;_RwfbK6@?->x5$3JMH_Ogl1TQK=G?^FFo@6Vu1^k>*UI_I^LC z>)uP~6*!F{Q|>fg(J6>FuFAHi6llL-fLsl2%>&|1~x`K=YyT;qW7PC)yY1%VH3 zp6}tKzUy+1MNytdI;r9(N`v~7tgP!SEBs8(+p?jrJNBp9&X=;bhmG+kXvA`(5^qSP zg!0Q1o+)<2Z@wlnVntF`QNK^jWU0a|YkH&t&+qB`4ri zH;}C1i@{xoS@w4lY6Ha@_>I*&Ea-5nmYagvfjZE2S!4g#A+DkiB|Q6J>Kl?Kvc{eo zQz{g@kt$s?*_GpiHy$8U!WVBh-JF{4+`2%!*4I%G1D|SfnV+iD5-_*17_890nkH#q zoy2{mI|S@*qSwH2r=Lw^@@bl8vN@%Hnvz`S;18<3^7(y~P95iP(Hjrl+iTMj)_w(* z`J#-|1_4!D7GknLQ>R;8A(KR@EzytD)d>GIkItVy!6@Zb1>0&JZLcCspEBjR47W@S z^}M9y$XlOP78QoOCJ4(+c!o`K>NVZAjw7K9Pd{=K6Fnc`g^>+hM;V6RXgwYOHVa`@ z&crSHZGF{KrOHT{O>PTM01~CTqfRWuabVB(9VmCe7aG|Bgr|^anIlQ>g=`3{Q!!+^5ze7 zG@S0@Ng2UY?|+IIwg+Ka&P^qOh?BOb_33E;+rew!&rjl^ zX>CE@!h*Vhj^!24p@50%#h>gB`?p%9pc5WN_LuJLEy#Un`{`X_X<1M*@L{R5>shXO~LboCU0P1tEw;3rxEVh zZcaombB?Q`=q^)>qfiSSkJMe#0Smz-%KQ9PHiwXtad$royx_EgB%LEnkB39+aOsb<*i@=ob_H|wLRK2sMJWCqyG1!ebt#?H*2*$Djp zL*`fCUis0eMv?KNgDx_~%Jhy^DGz0mT4AcwAbKRYZE;UxdU4C)N6I(MVL|tX6T(7! zA;Xo}u*+0;KJpdrvN~7jqG@0Bc-$8y8mM!%yS%`wQ5Wa*IOZkNVa%Sy*26y|W0H)u zrd$!0qcMVWCQdhG%)4bCTHB^XvGuLK9dsI*bwSEqQM!_u5Zrc{k4KngD)t=N3CaZD zv3L>Z?8n(2=cZLPiPK&4=XulFy2-*gFASLu7pZn`8Ix%v>5m$%t_Z!PohK?dnI)*O zN>KyX<#{W@xr-jkvitKkEwOIKsXtbghp981!g%B6)Q9{>JOY!cW4bA@2xk$y4+A>S z3wjg;B5vM9&2O&%;VQ{tUY>>UFw%X-4`I0}FJ~>EhEB*G?pG?Em_MAuOnbofw8<*^uH=lX=_S3OWm$&WFrrJ%khI8MImmxh>-E)uPfHJ_rL`*1#I zMe$R~4S(lw>+?%q^X)Hn4Xck(^XZ$g2;!mf+0kT^Qo2B+5nW^T7anRcqI0Y0c5nHb z(zdmYwADcUmX)dG7V!9%$l$(n5A7TNNSDY2FNx74S)+e`j0o_qQ%KHG^s{Wi{XUVz zh7c7g7M6lgA36q7aVNe>3~yO%NLS6-mrpmQ~$Y13hcpk{GW+gA4C@K6BD=Er6Ro*bjFUrAs z1 zu_JBnYd1_7ZdAQI8Wj!6TR40)2+Q10xA&HAqSG%iEha)|aSG;d-yFU@atfRXaqFu_ zXisg(b4v!zi)GF$MlW$D9KyrA`{t@NZ0S{tOmn~bgzse;n$o^W3}t&A?YX);;TFQ0 z7%MLVUBLwF8LC6p`NAhlncW`IC7L?m+zGh0;!}ro_6N?;>1b7T#;A>u#rOIXiG2uF zc9WnRKkpQOx8t3ve29+HPpoM5&Ys)#(@eg~B6;vo_rgbEA>{+Xs;uOnkNPVjXp*0% z3JL!z2^r96>9Qy?sFs>Xf1Um~=oM6_F+Q~qnanFFLn3K?*Y4iU%H1c5N=(E(B{KFwT2Cbi2jXZICivG&H>)so8Ri_tc zw?pc9cmx$(MQ*e;KLI}EOmPTywMfUwBfS~j9ybvJA-<#>i{z3T4wZ5ZXLvD2XHe#! zpqU$k_1L6d!>rZ%B}3+2@Cp^upP4fsbR02Z+NwWI<(NPzjIbr7$t;GBSXI|>w)SLQ zr~_xMrSx2%5AmfbR#cVc9WibV+m34w`_S=~>d{-C_YtmYD)4BLyv~S7D(mneXBKNq z|8g|XYg*?4M)ft`O)jdm7on;(uR1{AKIq^f<630eSJ1iBcR1y!i(1V%yMX!urAG58 zNm8*$IkQS_g-~m^B(Z!ng)l&-MCX;XZA8KY?dPRG;pwx}eXD4l@3Ff<<@N*GA^w3n zho;gSzfa)t3N7jRfg!WqfePhHmha9A#?2RyjywliC?WWJj3VyaGMi436}anOwXUM^ z&)t7%a(lH_Rh><}jz!bmg3zO~Waqr4-+nj`9}zhj!oM&jUJkGTVFh{&=>g(pE5jJ&uO8qyX&#&BlY4;Y`L1HRvi+)$^xc+;rRzH(6$7m+pcymc!JDJ*|C{p&n=<_E zuI-Z09eerqFLl?TaQnvp;PmwoTxyefH&XZ|G+G6Z^qTLV)HS+tRY{BY1*vOdGO;3p zu*q$0+fnZQuASaUA0(Hgb=vDqWSo1gb~=cD)S_q&fu&5UbdIPvq3T`jU3(QTzy z)jH2|Q#ZVLrl6e6CHd7c+0sj1u{U4$MVXGZ@JIVW?TE3K&Si-u^@p%&Ld4ANa5)WS zdd6*}`tS&Y`v2+AOJ9GKG9KL755F+i*mLK2pn*tMB0qRsU+@{B#@rl;DgS*#H?A@H z3wHz!pz^6*Z*GX21Q(5;{}#7s%_cED+;r*ZzV-{m zUY>s$Yywvgwp$r>zT}_K9zj^61CPFH4=+-19Df1)F;k$hNK&@h$IsncUagh8g|oG` zoi!0PbTS^RhGt?Nk|NAH=*nzAaTHZkY)APn*2l&m4EK|jMT*&z6DJxxkGq_xE0J?9 za(J@!zDOzy$xXt*#aL=?_qs9aFk2OIWl}k8elFt1CoL1jR)t-dQT5Ui{Bspe=DuFc zKAOvYtQiE16=}6>`$kEBmz|ugLlVsre_RDAfl??az_dZAaVg5&sXSNi+zN zZ5o&S_-X?Y1Am~Fm&s9>Y31y{=)DN?8DIN4PzQFj5?|G6zursRBU~T;zFxmbV;ZSV zT-_*eb;9JGCt#m5;Z`qsPLOW{-k7(|%y^nPS@zZ)2p5198FfK&{tI#`-(>X$rLo>i zePPz0I+e?H-aqWiJ9l~+e^3Ap2C{+EhhwO&ICn-=7OHw%CP#S=*OiS&wT0-o=!*<{ z4_Wm)7QDlF>*rgnxCzM_m*A^~U$#VLsXS6selv|Qt1~(J^62-8&*dJj`Pxkv78B<* zlU+3vyW>o|ONF>r+zF8!ul=O-X1BMf*PqREkt+ zdnx;Ad*=6v&Kqaq^#Y^bEoe;)I-T(<+tm!dfcfbY(F0fR2@1sbd1}b+GkYZ(B~BuV zB`#t%qgJWGD?wT3qIOn8xN1Xg#g_%fAMDX0o~A_c_f#TWkv~fhXe;v0I6$8}Fchsr z4xE35I!s5rt3{}?>7=2pd~Kn2>jc{eeGGPO9d=C*U^8vOb)5?ko&}YrR_x7*s}N(F zf+aU7``7iil6|~(T`FDl(^3{$c4{)~YG2pI|9jRkGrFLhxU;ID-N3GV=X%KckQ86~ z9^cM7l)MY#avhk8{0FG-lUj$Xf0+ypWN%;(x??f(aEm(5o55~w)}M!>RPI$-+)0qX zAS`PzyEyltA(q@Qh?bCDbQRT6{aoR{x#C%j{NCSapk?ZYwP^tk~BAJoh@E*W=| z=ZxAbZpL0y zbXg>&yDTQ{-astor^Z@I-T1NUtGCFVpA2-MPf<(6zW>>}Fkox$zW z(IEM{IqmTd$POG`KO2^;{2^BF{^NnsE6!oN^g@N}$NS6y76A1IZv&Q2`VT)d{Bt^| zvD3^-65?254OvTI->n8o@|)6egLI(vA124ZlXMD52{F4$vpaxeJ`C$tSCfC-PQg3M zUUh8LQE+Ut7+EvbR2GF@rbcvzB~FiX+_1vA$a81s+08|GYAwrvJWd z=60a*hB%F9F(G;6K@N&#OH~h<1_?_YK3K&H?ul4OTZ4aJ`ncQjo#Sr@^~MMF$UGz$ zliDvNOY!9lmPCy82!D5jZBhSv=RNOJ6MqZTY&u1;0izoM{-n9j(~NPJFD^+&QsXC^%5jIqxP z8O|3n)zgd^Ukol5y{%BbAVGjRN2`SA9*u$&#t=5j4D* zCbBhWs*qsXQKhJdn^Vs4XO84Z{`*rnDS=yt+iP1CiV1jL+EL(Dx2S1OpSJn;EKzH_ zN{D4_Uuktv##a#sUYxX&#oOSyG5P84PLuPlNC90$)E%8-xX1k1*M))a)we}cXciU9 zyqw^@B~Mbvg_%pS<$8u^>60RvW39&X6CS(Fo5*vI5sXpGd+roDoxJ_A!G#$2mB>x# zWQfheep;JYvb8Fa)O%RSTjz4E<&?(k{&~~M|4@GM-p=_x8b5~()y0n*43boc5B$qNalp|Mj-x? zqh?jjE&V=LsSls2g|+I=8?%0cil^|t_5+U0vv1O}rcSiMgY)}=JZVu3O6Pt=mUPA6Z38@8kPD{H*-#GrGDh+Sbn59Io!gEW`|@Lb798j9@e!{fxSTl8{q~$^(F97?UNGW1LD| zi7M|(G`JP)plg!Gh6F!Ko-{V>!z0w=-Jy)l$(zB%dB%Y}>5(YhboQnVF%bN-O81zg zU-hbxz<6{j^zcu+%UHby68KV5nCK~=V@jrPb+K7F%{AWUAjbba%|dO3Fr|{` zq^sueM^tX)rKcNIXi(Eeb6_IgP>4fjbK^BXNz3*xQ#r#K)i5^BXNDm(2pT(r8j0Qk zCyEQ-4uQPd02@B;i-*>N7nhex>n_M*=EBuYG;(xrU7vW-AusW^^i%mpPC>J}Y=taW z&-SIHMyUiP0@mED$H8wxxHFF6S>5e4SK0q%3F|0NZ#f#kC@3b&H|{14__(>+cp-W~ z4NKIw4-6=9_`lyezGpuC z>moBS=bJ;z&$MdT#gs$2d^xI^reZj2o;z%}Ra}J7TgNSYqh{)f*H()k_MC7zKXLDr zr_9H^Lyk;HG(c7$K_vMJka_e4cBfP>o*;;fbT<7f?PT4nWNva`w#}TeI29Ud3NoJd zdN9i@HP&!kdR#7?13{_x#)tdOSB&S6Wg2gGk zsokkvH`r*_yZ{MnkH&uwC(x_y-kmk^2(jN_gvf9-y1j&qs= zOh|W`rtlVIX2nP&IcMvmioc!9uuS*lPu8`;2&myXg81+NF}@@q=*s?O>ToQMg0Zmc zdeC3eB-)c{Bzk%XY2HTko8JR1GfsL6>T|iTL-IE1`a0%uS%4$ib7T_^r=kA|D{8-) zK2kn;GyEVYNV-g~hHOMLmq-DSo|Je;4SCKcd_Jz_)M~f?-pKHPfwVIX1(70MCM;hq z_0uW`@RtJO5ZHMdQ4KJ;6JXe^5^#2qS$?2_*PXW8uBW3yLoAl?o82%1Q|2CQfq5^eS%q#6j8YGi4zJ6moSdAE2Z3f|hMU)OaejX(g zMo(#l*>R=on7?;bB<*w?BVb05G!P4mk!BijuzDhq;wQIJzSJ=tg`LFpfnjBR&HF*Z zH^*R`^hz?%y$;VrEVsbuI@)~YK)3W?;F(Uk>av3OPN_w_I{)d-;j%Lv65VOsb00=& zSpb}YhwOoJRkyRwu6*Q)@13#nYvqo6t?oEg zoSYAW?3KBCh77*UKzh<@6XG2&kKNDh$F%T7?2YyGbu8=2v0euDl^{(vBQ7u5ab63c z6nQElz_w}!KsgevMTP%-UoYt9E#{~^xX7nc}Pde`pr@MT>kcrzYEdIk2vL3B0}GGffZ1 z0btf_tSq4@piASJR9^FVz+PcSG@P6(yy<|m5^^Kkni#WB0+*9qNS;JZ`Fkn8rSSe5 z^jvjq*iNrc<_5P0?+8Pv@!oO?joBkg!~o_kK_@J5v78LGKJ-CSOOY)L zH(m33(<2?Fdwks;-*d@hQSM1A+R6+){nq<(b#|5*kxJfVsZz=I{jC`J0K4@}fy^rp zbK~XOPq_BLmP18I$wP<(;DqU<4;gx#jnegi$bmG3QJ5VyU~vS#@={#b3I+T^uE`FH zG5Z2XU{?;dC5SQIgxJvrb~U?@R7Vh8&{lZV)ts|=hvQ`?{Zzqu59OlakJs^5GUv-j zdy&2Gdp@y3O;th@*Bpf&-+^%U_=smRf8G#KGCalm#?GALpuOd6rr#E)`&H!+gnS*Y zrXQ^1=O)VEmOSZsuo_3L#uuOX=^}(qRehc#8P23ec986Pbj{5WnvOP+GBKc&_sKjn zNqfu~#z)#K>IrTQ(a3?xlo`Mw#2=g;?qBqttM;^aKB1u-y#fiSloa!Y4OyUHJUH*k z_;y@qDfeUTNbNUD8}x*U^IIe1$NBZF_Qw40Bdsq*D~dim-80qSbL0037q=RyBXW;n zR+%?De0>|e<=TQPy|g8scNpOpLV0i`cW$b2!S&Qe2a~qWT{8d5!{kKt_(Mf0TybHY zL6#_trTN9QB2eK-J)&y@n(e-MC?W55M_7!i{-DNJJSn7aVm;Eh&xhCXb{j@%K1K?1 z-*l85iijwae%m!}g$^xyht7>B$y~cGKkc&5dws@R`rbIUUO(en$@HAo_*Yi`NjLE* ztM8VgU-Ozw`y{w|z6vPWpSWQapmju@nbuRh=prw_ca84{^VF~Wdp~7vO09wQVYSAV z=)uQ-5I4azL0IQhnjs*RVOWeTEl7}I9Ci50v9+UoP3CYYXwwRBIS;+v`u^^z-zP?8 zo)_^wY3YT0ky+-bWb1HV)(`y9$f(<6A;A^xrc+FPH|;zsEe9(9%9?MCd4O=?tMSd# zGs{g^nLd*Qr;_Bw*m}&|QAJ7Wc5SIyvRhu=FK0^fk%9%HD!jJMnuJ@LKBj!dl`FDu zUx+M4XUpeq^*=r35jpwL>W603oYG%MKG6DM!`|18`Tjpozi4^MInhG7aHLPWgro?T z2Dw96XK(~XTV+@qRc`rn4Phg2-L}k9xDp1t=;|dEoKyY?&=Ky(r9BxF(V-&HJ#r^0 z^T7BfY7ow#(0%XP1N8EcEG{p7q41(IMMlbm#tlauoL$k{+Sw=7a09(zqt7Q0`I#A` zMo%S9HL1HrMm}?{pfDNu$RBW?$;&TJ#+re)t+9g3QK-CyIkJ$J?@nE+hevhgc?pgl z&XBCIn$^CJV1$Eea=BRDBg%+o%FH+N>%MYZF1Ht^pZCNaIsYBOf|R{7QcV009Y&Uq zfv(4g38O`I?P|#>b@Sgf$f!5|@`3I3cfg)g3)M48dI4U6TEkwGmM?{NDellzSa4~23fjDK z{bgH|-*dmnJ_sG>g)BAx0A@zxQ#iPQz25L;??Fp>aj&}&^row~97ao+b0t_UoL9g= z((Pud8iKFqQSQ5=Rt|U?&arCA*^GI?6!u(lYbei^BW=Q<7WOdd(e*3CXIr!L>&iu2 z^t}8iTc2a_u{xUBuV;%d#wm3A^fAiAlsTVVGcSM)iEoA9847=WGD_($hF=dZeBDAm z=5&V_*A%6y=nKVUF<&f=`_@|Y{Pc3zHa7}FJ059Q0{FjN_!R|h^p~e}L(;xm*(-p_ zkT43_)M0IHd5(Va+x6+TeDA9$<$Jy4JO|W^p~-NWx>~9jeR&g$S63}yc~8UL%{IQ| z;Y8z#8N3I2s4|&fU?|Z;xU-iyHVnmJqW2O8kpnyQnNN`}z0X*5uP*K)(0qNw3tU<} zp&O7FT47t~+IS8b*XSPNvtU2yF5yr63R6Xu6Xo5eb)P3|-ow7&jA)EdB;86@&ANE= z^Q^1*E7drM($CNuy%)~W&H6GQlTZ(?l^jjU7jC)q^p8-#rGUva!LGak?NQmt!dFdS zkqkEaCl7LF!;*}_j%`OdDn^fW)Jq}QYB$Wx`C20aL+hdXf*bU zg;!yA?+E;c_6y3T>H(81QM>N;uywt4rq>!;E{+rOvo~L=Vi>jSdLF-W?_Y4nE{VCh z!9z!CDl!cGd7N|ZkL$EJ-|S8ay|bOffqtOxmbu%n-7~7yvnOltNoWhzm)&}0jCzzT zuU1`q)NKUqhbryO7eVe9?$bNi=Vgr%_N`h@-?A|ED;W&<#qmOTVt_pWQTC&igB0LN zSLEt>aY>LBr#bK|^1P&$^^kF)Momo86(4vVy_t*sVuYZ}?emFp`mP0fHP{MIwL&P_V0=%bGPJ(^E#M zp|mtv4&HQ8+F;wgKz_;ctHb}t)>lA96?Ok2oiZ@w(A_MkZf9+{_lq#Ne1 z4mOp46UB1;flwsny!Jhvk4P-7d7F#}eK2&2|F$k)dwK*Ua(gc)`|#sMc0o;j=pY_QomHGydxeY5c@UUc&9MZC8AJ- zVPE4iXCf6-HEu~70>q>G;5JeShxc~c09^+0sW`w6(x>ulrvpX zbp}Zr-{Z2@fWjXtvHaNb5mbT@o~h!RRS~eHl90oD8;Zs$*Etq*dF-}E?5;n}FD~Ja zkHCA~Y}zC6q=5a&h%Y*7c+kjkHX>V*y+vp5S4mF>vA!B_AB+v~MGX%pQr~UmY#8X` zNtD#RPwh~66BNVfMCF8KIs8(*Vq0MKE5xP8XhTHR-l$ z1;BK;t9mFsEp_oc&Iwh*Zb)wWi#F5eCXb^u;8Skx;|Nod%`Z>4T)6TiAUrd zyb*>z5Sd8c&rDUC`K4so?iLNj-Nf5?w}gkgOGTUpdI`1PiC4ogkiU>dIaP~!1kLio z2QaS~dl+gc`CE^v=2tqlJax~l^f1C{g2GGMIhKgvMvQ%Vs)lkQS=nPwbRPL68){eY zfD$qAYV=-gN2%&?>!5XozQ)IXk1v0WB>Lr;#M#TC&aX2fj%dbNmYh-7axUdgk+ zF`mfIlaGtzy1Yr4IN+RJKJyQtF4t-TY@|Ret`I=P6;>8^7rW3~NsSVT9L?d^R&d;M z(limfJ(n}pvihKCzOwN8r@7O^Q6@ zw2EvNQ#WXgqehlHQFw{4p%70fd7aHrVT!)j^u}CX7nxP(>wbNmu%BxC82Hl(&Fi`E zp5evSW|h8dFj4rBL7Mx^N3?$?!}c*a$mF}dJ2+nv@%EA-JNv6j&1`<6R!IZvsy}-$ zk*%{F*7Fp1lAdJ&Ym}`;U4VvhcC)#H)(Qc`#G&;g2ChJBsqlX*V1+;hW~4yqtc>Wb z3?3Y?sAB+IzkguTWp^yMauiEMe|nPH*;ang?q#T2F{190>E?ku>jhXW_KGWHW=f%H|QjCxWm>FDvo_*XFy?>M-};&);VX6zsjabN?C8~ zbJKbohpCuT_!pV@ZR@a$_}p`qN*A%{RS)5hBIK>pV*1ZlrQK8wiM}83Zo9qrq>F@& zPnSA7u&HEyfB!DFx?UKzI{R3Z+D$Duf;Kackpr&=vNt?WQHI>O&fICaH*dG^*A6cA z`KS|&6Ns$eiQNMrGF|1e)0HH_$Tg+d5V*|4Pnd}PTv643<)@y8_-CkgfQQ{ASGCPE z3L-P%OZikR^*s-k%@kqR&?md!1B-B&?=ZihJH#2BTWmo-U&z05h(HMwrfAM+ZFV$# zuRC8OtD1oc^!D?y_M&AuIrBP=D02BreT)fa$OFmks-K#_75b-Q#; zf`;|QW#^RAkS3GsaTiYCt3QTIfjW zk@A#fnzRs|Hr$taAM=*%@wvs1UnDn>-U~6W!!QXY-?wrb<)|ZL9h72q1L!O}bNADg zyCw+(d)D_4gYv-X47Vix!5J;u9VE(~S$yvdYAPJQ8ya?i#{3^nYwK^4U-lhGHSWg( z{8gXiQs3?cMedaLbVn5O$#tH`Anh}e8#}M?Ay;~DVMwpQouC+PztF)R8Y)@kaR~RX zsW>lg7cA~fm~q|S1TR0bh`vDdvFozO(<9TV)akC&Ep^kwu@4X2-*p3&YfZ`aiwYfv zDQga(2GO-)m#Sw~bJVD54y3xlLKTpUoy+7s8#FH;OX>?O?D&_E9TT zFB1h?Ib8fGvPg=kbj^E+PLpgX+VowD1j%fjziJOT)HUuBJQNx3_9#PLoRkJJbv~6A zL1ru8q|IJ($4S*5j+&CVt7dSxfqk?+mTEK>h>FDPtR&P07W^jQh2e>o?7{=Qr%z(#+tLTHz!XhFf!gES|O>His z-7s{pt-%3~jRZnaa0MndYS43)?kr#{(pGPjR;eG$=Ga&xJd@nEtbB7gGHvigB|o7l zP)JNvoI+P@*kM%D98>9Kv2v5z0pG@$f=xmf!SErc!j{P*%f^h`9QL1{_dPQmUc;~Ey&Pl8MYg8O zpHi|4B;E=&#+P#iuH$NjI2jYaL@ zScR~Q{#Bm#H9u}4jDjH=)3wuJcx%#Q!vRV$0<{MI}HZW9W1+|NclG;)1F-PO#mqEYfqsUt_jj4ur<6kB-f2Hch zUdVWm%1VXu(Mu9Oz8`7r_ZA!|lEWOA`9lm4!qWo`8-M;7Z4HSu3CN*G61KKytxZ<- z`X_a?2bh2!^40Ss&!TsWb<5y0$md49bi838S!HHsVqkahZv%xYi=@q;iTuP0rj!-5 z;eUK7(`3}Mwu1SCpPW$(uB$;Gz7sQ~>nfq1scBn=NvHGG%aN2?0;%Wmlzhs0sQINR z=R=~J6?ZJ`2#SCy{O!Y-Bs`h8pLoZLaLnMQlhH7ZuS~e|03oA#!`rui%M8&ch1-o~{8Cedxqx7|y zpiHsXIPQ_-l)t0pbWInq7pP=nSCd~;uY%)1JP^X5hTRD|I>Ii|#kr04r3jluqE@xn ze7V%Cx5{R8rNqn~y~z<9Q!nO1`vNkHFWKG<8+<#8-JKx(i#AL+c%3 zH6%S#4a)Se0=S$k#kh_uaK7B(Q0u54*HJV4`Xq`g1ORgZXg+vuZl9%7gwbQ(`&;Jf z6Kk3R=Ft;Yk`VxhNhUF%M>KRFQx`_Y`1lF7iZZDdRnx+Bvowell?0vLQE!bT2Aq-TTMf1j z^?W4lqfefatZ zo3es0iQwB6_Q9DWFfv`(x?j?tuhK*QzsW}|yT|G(D2#KO$pA3qXxoM9A}hsz`uRe@ zCXmu_IjWE|e zx+Gu7d67rgmpcQaLtuLdNSjAHfQx z6LTtY{CuD!B6jj3FXOq4SmHz+0V8 z#dK`#lx~kT9m}`QPeh%ant5KFc4m#(K-ghqF@($BTbd4{S4UlQ0ME*0;OIHzA;-$c z?O>r-?P-iaq5_~#BP5PjCa2=2#PWB!a1kop;15ET8qs;rD8 zBb#p#ru#BopX84>)&6u4IAr>g)K5eKn6hF7oA8od#2|&9GRNqNvQGt$s)$F;PCY)2 zpmVMSq(>{=MDda*(%(vzm6$(*^+=VKWE-tyIB8F(65vbCptlXlc@7nL`Y)g{&k`F7R?vfi_ z=V(?m%SJa@X?XleRzjJ{1;6om*XUR7A@`hyf~ zNYe0F@aA`JbjOG5x|W1?5=&mkrPKl&y~W5`$8(n|Q~NO~3LM*|F$-NAl!>AKrBPlo zCLA8MubJ%_SVmHh0;o|ni-&eJoN-O2&AZJuH_wYF|Cn>V^%d>YgF@ti(!buGkJyOl z>08+*p*NTU)xF@#?D9!ta=s9GM2{(Fo2t%O((pv_m$r7L{yYKi?dSH^M6~f;O1X4T zZ(dKFODE?tpzmSsN6DXo-}%6hwAR|*Bd=a3$NG~GAKDdsZ_wx@0kL6MGe~3}`co92 zkdhM;mr5iD0Ro^t*n>`GlwF5P; z;6>vwc9sX}&wi!@Hyw=)V26(x7Fn-~II62$@GYl&=j%|$`eBr>`19#)ZvUq=Q^J!Q zjm{#>cV3XjRYb*VV?-`T52Bz+d+PBITU^vWX@GF#X0Uos32Nlv32m+~GYd}2%;u!y zU$nlzXty?inV5Z~s#I9ynI48he9<~ey3s}s3sS+rXp?Tf5b{O=O)l|bj{Gs?$9}w``&Psum;B2O zlS3;?^e@^sOYx@4MV+)jv8c48WhH(WNjt-qIRN39Y;sETU~>yw#qIgx&m&&aV;Fe- z{OsExlwj7D>Q*d0ls=qbx9Xo3)Bti$;nlzaO5w;R2d2uYPQte}FVa3&J)^p+iUAm^ zuo*!4h0-b+Sf8_zZqc?8f8@0KZ_*}9-k_eYv3yXs9Nv5gyP=!!##@_FowV%c37>X? zKt<&m8VH$jB6RUgpy!HHyoV}02BKnv8ks?@Ol7eIu*2*KCmtt$;}b=h&z4iBP_62E z2w9AX_~y!;in?K8+vJbwFu}L}V~Uy3zcOAdrCqWP>Fxqs(o_4OLhf4T^8s?- zUArdy@Ra8RWUiAsZWh($f05r79NeKBy(?U~AAxnY4CT{e8uN~z?&{Q33e41L3KN(W zJgcGTOoE~yRg%ciZVjDcnnGFa%W#rW2Mk#z1CuF)d07DcjgXV|Q+dAV{{r(zBy?FN zx%iV0i=*R!E=Jmm%NB0Y8jeOABD-(kq%B+4!>H?UxgLR~JHn^w4tZ-76`egnb{E-4 zJzeuZ+uvge5O|g(Y$<%QmLLDrWFH)NNq)q$X*ArJYRTLU``^BT_ZBP<6VXp|2IXOI z&>i?N1!{5myF3gG?CfAs&OU$9Qjz3MR?-oWl#!8?)b}K}RY%lc*g8`on)4r9bv!ht zVomfY%2`PXUTE|uiOx76RoNT7#6Iklu>9227o6GTtCb2=z@Hr^4@$&)oJ(u1K>Ppt zEEKajbwYWd8OtJo1$rwyR}fot=*@BdP+)SWI$lh%YyVMeFZg#fvPFn|LmwU+w3o-g zgfYgE`t_0U+ptQ9W9*C!HO}mz8yxCqQF%q`cS6M$oe&6w;h731l3+KZJ$??QF}nk} zgyCHnim->810P16C7pAoG+Cluoqk8Z7b0zPSs6=6J%T!V&m1Uj-Qjl%$(kG~8C}>q zl-qeZQtP%HLGTRTSUcu5JAtztoN_lK)4J=F)Wh|lAvj&>cgf-QQ)k1rttX1@(9t`U zk-=8lxz3z-Pw$ZNJXUM6y)$D?cQeb|pZmwtXuusy90v-n*aO?kz_AxG&u#V%+m#>A?NiIY|8U1tY%x$$QgTuU=?6MZRi~YXh&dCl6(trowmPJ;|oX7xu{rr?{wDelERsCLTAK z|2{M85TQC1pM+SJ&e+az4yC2w;*E1#m(BRV!oKnc+eDg5J!Laet=hckmR!}>SIGof zLgYJg$)2zOWF*~BHNwzk?|x1%0mv}~4{bWEqW+>`0xn2yqE=LmJkbrV#Uh@lDJ>3` zGj-?@C+5ksMc##XTs)L4+C7I;5vmGhV4Z`weI^GAF~d(MlOI(ap`jVC+9Z`ML7J$& z^vaBHKdmdvi_%u)2JPcVXjy~@0+`b{S=(4Y7X3*?Khv;fFcO-AU&RAQ72d0NcGmt! zv)iU+e=L!@=`^R0P3=_lP2p;>M2#UG1XRnKQI?gs4c4ST=Z%(yeHtdHyXx?o zy{32^Uf!cccwaIE6(ccbV`MM(9MG}-jW$jUq4Z%2=Ba<~7H zJrynakEt*L?M7v5RX(jmjKfcZ#5SbqwNM9Y0x9Dr#DN!GZYlJ(R#6{DP1yaQ&A_qe zq|f72Y4S$oPm`?RjnW_4ds#MQnrlGu*3{V?TJ50ZTn~P=)@gM-Fu~_&P|@W`2erp` zRW`^e2V{csU6c#exknXc@&isTX^?3DuUz4Ni@QGt6V;l)?2`B(>Ro!f`z$9s0{bH2E zJ;L45sAol*0dYSrLkWYo z8f8^j6=;3&^ZQl8q~rDMU$oDWdP!0IjhY=x8Suo~0{*_aLSK6F=upapsRp zKMS|XH|3^zZMqg}6lBJ~iF{2~;;_r^P>c{yKzf@>NbB--56~QZ{QXD%HP2FWGMQ6v zDX6>QgOTO{1o1}oCqweUmNSyW2E$F=dB>sRY^aPka#ZMDUx1@-3wM>9BI#`Kw2G|G zi98q|5UnW#Je0C(96R~ri{D|7E66Az!flt(@a48k;jL%D8InhAz2;}cMW3NQ5^pwH znb-7EZ)hGiy$ulcb6Ntbs3X%^vj!OUKLy=rZ%zt049e)1;RANrJy;}@Pyy$xsFb|K zjp`)Hg+qe2fh^XwA}b#^A_KgS>*ml3`K-$!DzG7saX&%7b~bdDo%a2&zeu*(==I-W zu{U{GdjMiE6vb`~2mx?XCUaPHX18xP4hwHDdgt(BN?+OpmTZS&lkdqAy}+PBn|da#g$(67Cp^bIA%(7=ZOGQcPN{x*@BVqqM=$w|EUIiM>h!NY#Ze{8G4Tf-Hp)QG)F>`fSBvXxpT{I@<&0 zCkx{gzhiJ}W7C&(O!p&vkpMqhC6%*M{qpt_9*|HJQk1CrV+X zUM)~Fz>6n&CH(rQq?$Ky`||&8quvESdCtn1+23lTDW8LL*qzSk&*tCOyO{oexA!Hs zaza4#?LU#KK;u7CaWnA0Xwi_53>l#ubv1bf$VKE@$DKCa9Pn?w(6+y5c78=GBtiNu zJ)eAhhdjx>=SV0q%}9{6bfr%?I<_X5HaQ=?PG$|(jz!5KHA$byWp4oG^Tgo(KYjo3 zzqLzl#W!WD-cdC4Cd&xkw2bY~9Pa}Ojhl@!lKVIyP`{E=F|bjFzvYMw>r1pq9+t^=dyomLZvG*_Oe?1=!c zivq$KD43C28yFjoh_|J1LYZS1dLB;=<<|c%z1haW}`H-)*17~J*<-gqC&~f za<0hCSelY1z3SecLDQ#I?5ieA+p3pu6F&W71B_6*LCxOAyPq%4<;M%Yt^SZ|*y}iL zQ9A*fDYUF@x=(?gXtGYU7nuw2ey-Q}xMe{U#Q7YnL8>j~H}o$Wl_PbRjqSbJ@XvMt zZnn7EKmeHuJ4O+tNFhLkUE*nJ5JIqE`ZZ8q6av`df=MLR>~o}ZjLVU69XNT68k1>{ z86$>|WRh8i8`ODQ{v;t6dEj#Q8#69W^STm73U-|?Xb5GoWfSLdnCF4id4QIawJF&$FwK( z1w;dOadXh|Cc#1X#K9*blkQ{w6zdFyC-jK$W@OVE%9cOB1Mf~Zl=4Y+tTr~Uv4ANk z=Rf=*B3?elI~AY*SXu;!etgMi%EQCM*?^A%E@04N^c*5t{~^-r8nKyWl2a~qN9TMu zk4%YChUhrDKsAP5chJ1vZlR8s(XQWKr!%2E7m*m-ig;^hi zSFJAPvv{Ygeu8CA{JgfcGn0#C3VJ7R{Gl)>Pc9!<0X4M$bJHgjG_=hB8}h9_mLH*QCD~;2L7ygDDYr&GLT56R0Pttlze_m zxTLBh*>fgNu{HRUV@t~Eh=7LYlOi%`=oh70zqZLIMOz4j9u&f}guEzInp=yg3lFFk zW7T|4&_cl#>s-uNnG1xM?=O;Rdezj;0D7305!?NxOa0#;2JB$!!{^8%>^1p>P*Mtb zPaxqMP4Wf9(DsIH9e2zV2W5x}$>XsYm@3l&>!0rIMGY@rdR)bG*U&g1nV<&^qQ&Jn zVHYX|*`9eHeUN|X7`W-{%LMh9EL7xbDJlE@l!%V_|r(;@g)5DhNGZAFJ-4KgFdyI8E3AVUTkty-PDda;)+pw zTbn}YTJmy@Ar>lNhzytK0UAq3IhcFayY{Cf|KKXD1%!?;= zQzkm+&+~X0lkXE0+Fn7xISCtj&L60)_cXMd*jCl~o(#LB%$p`U<%-NE?fOab%dTw8 zYNk}ZZ&2~Gm2BEuoNF!!1Wph>BDdtvnDmc68RAC97z_9g%H==>Cmzs4E4Y*;fPF%M zQuXxbwpJY02rCmxULyXoeIszhM_JoGx&LK#|I65(2mcVHVRrw^@LtmJe$wRr!=Al| z-=$*?m?dFmr44Ew+?yY7CpOk`O>Jaxnm>rkXXaVZC!@-|QKkB1P<9NHEVvzff0P@x{M6n;m6SvB+Z*>j zA*aZGrXT=Zw*e8Oh|4%Rh>B;12_o!6LN5!^HE>_b&mFJH&Qb`Pj2$oqI&AYTqD zbiOfl@VsD|saafu(*Bvxo+@G$i+XjsonHA zPUcMPv+gf{qbU0<3sL)Q-~;$>L7rt|qby#S@G&&4SNyVgifXgur`g1IE6;6i^iiuQQ3Vp76L3__RB%(}PA=Xdc{nuOo=+44bC$aO3 zo#=^Y`hl~Co#zMpH=%PL6$eiN%gZd&E3N}(mO9Fkp~{)0OIs?b>=pBao)R3S*O{b}Gz@OdXS2ff>BJ zaV#bOWm6j}0KfPj7nm;|oz6dVg5xs zqA*pq01`_9l&Syo!uNjeF|kzCDenM`)}8B_bB>?`>2IE2uai%nUx`ed%lt+2{?Gm0 z-A}jMFDust@BfYbZ>#(NM*dCi9dQ+!x_*HmsalKvEw#<$GJ~4y3oOnns=?@RDPYmW z!?QB~w|a&sgj%XzuEs0esD%u?t=S#R)P0U zN)`|>y~WXo##@i*r!(fJL*}~Ah>b7UNVC2jX-v_x^!t&ls(3X^r}LUhH%(vZD=8^M zsDQnRIWr=h-Qo9XMN;Mu!rAjV8rE|0bpW*&X7L&}sQ7TMR32tj&h}O&DB$iSB&m4ZKpi z9kwDcRaC#zJbD{`9UP){s70}_`utqpF?9BJK_jr}mp1TJeuVCK(=FH4@rkPSnfw~V zUefRVxk9F*cKN{2-*2XMKe@}>$lDB*U1N6>SN0M=Kv3HwsH{;Y%61M84)*vlij*CZ zr}W~BzZi<98jACz74EkGqLKL(x#v9q=xqUHeRDhUEHOrqp+nw1bnJHhn&n(||Kat4 zU$lqc8y~-+fXvT4n~g;mmg7p646`Lt35N{EtQ5lFuRyj=BXq|2<}cdSZ~%8G%`ctE zZ4$t~1h4h}vy+IIfp`8zGtCSc;s16@1j>OzffU;=LpA`nHyBU<8#pTm?)yX0;`{N3 zro7_UPbVg=k{)lSJzT#}cWPHwz?4BxSTjSUKoJ%L-gxp`ITz2Z3x2L(|MrmI?!V1m z-Di@w7J1P}`Qyx0u(dJV8jJ4vD4uC8iuFS+iml2*)w;N2T{+yFRF>hRis=%Qfjix+ zwHBq&iKeeKaTlT$M&9jmK60Q7jP+!M9OFgbMuIEx2f0h)M=yXdHcDkrz7FDy8x%`z zw2<{_felwh#R$v8Hwn2U?a#loD6Q&((;kQNfBfB%;9NSzX@NjGtQmBKDfS6t@%HgtRT0lvZO=UhA@ z}pJ{?)vl3%J3nse2-N;de$odtz zi!qY-T*c8F)EijyZJk7<-Ur4+)4zAcYt~cSY}pdaRm7?T(@?UVK|i?|6iYDB-I%|A8-- zx)qG8a*7}5Nkv1f;~W&z0|=hkBs3j<#UNA!#p6aPrN+d>BqT&(F_CgJR>3jbm5Iv< zFnd39wnT0_DM>UE{?QO~zQRCq%itDJl_x9{DNNJ(?*_!?GbI{l&JZB@joFliM+Dos zPc#hX#3`8>Gk;Kj#GYaQN{wt}smWO@6KxVEi+Sv6Lx1{1w~=epjv)P8cu0Ozw6DRh zVapp^HaXN8{|u89>3d2hmZ|Trhlmu!bMp?_YYvH0{oicPe%Z-heHZ3>a6ROGAiu_B z!=;`$m_1qf6B$Bt$nMCMAG!9)Q{+{CO-NM71wks`d~m#{_z~M4>BucQM@1!(;Oy{f z##71B0^n?Wl^@akDX&KCU0f%SFP!S#pfMyV#6$RV{o51FrDwrnHxsioCZ z!EqWB1?$u`)D3tZuE7x+jdZNrX3-r_C#);Yi(NS6rAja92^}if2EW-}ypo3y0fCak z&zXI;;DIbZ+_UFB`DNXT?r@Dsu-{D^yBp^C%qB{4^&%zR_nP2k>1x<;dTVg(16I?4GeD?4P@DZ zo^4X>DZ41Q64ta@EUJ(!L4lu-t6DK&iwkS4faEesVP;#08^6O0i>hM$-xiiw)46Rz->)z>5v>kZO?&R6hGw!bxoVfxAmn!(6ovIhxtm{hvS5XV?= z=`jK!nOHVSBq@C7@|d_j+TCO%ByO!EgMQJ%O{Qs#pHauq-_oU-BH$f|(L-j@+NM={ zH-q2l!da^rW`or=*+l3DW$U37rIzgz7qc^BMib`z`1ch%Kt;f$V}_&4yDTM>(hJFG zHB*HrE3ORu?Qc-!<>#{&rG^{IcqT?OZJ9phB7#@Jzv=e~mGmj$9;3T8LPXRl>g-$^ z!`}J4_IPjt<99I*DPsu@V7yY!r?WyYFs(AHW;pllBwPD>`o~jpHy0y>BeiGJlHxf&gKG$xW4s~Q{`4<`*NF@SS zRqdhoLSlg=0&QfXGW~2K!Ha^WtGN;m?@S_hHXw4!rL6Ioar5INf5@Ki6FezXLK&Uv zlqn8fQ$A9v5n%|3Y}1g98k>V)(~*SpaA(*C`Ag42L6cZtH%0OoSsXbMo7-W1us)86 z+O|^=;n2zYPKu1TUNK-Ri_ASM6RIUh*BKnM*9aFYgk`)ejgc7`1CZ0F9C&+P$L7RU ztGKJeX+(smGsUSEm=u_@rxBBGsAs9tu{AX*i85*A>&)yC!U}Z(i5}AB=g9pQN%~-X zd*_gpqBl!mbIpX#;Ah-+Fq`SXGMN4k2)1g@wKzKwk&e60a?OE>2!9cE81w4&M`xqy z*?We>$bX&2vqBXncS6DzoB^XKf({{FlPZe7%0!#zuYTkl&Ou2lajI>l7|Jm1Rru;P6&>seG_p81*fBYB+1q)K zm2|wO5(2x#>LP>snH&Xs2yqeFdX&4R4t;szf5Hit5*;#;+$k(5Hp9F_uX*bsHu4FwWa51Wfx; z#&*MspolvBg0dFLKOwH<)KvzPh{O|7OlizYbE=-${A~af8Z=I1BBVzSRal4RTJMM` zE+5!IV&U`Lv=4G^Sp!oXby~pXtgU3$;Zib9T~#O#&q7>CKH}u7Xc0ndX{fH4<@^qzDOk)*|zw6sD;Pm0XzK9ol2mScAq9yqa%P zD_#A|QX;@iU-`6U`lXaMWdnVXV+kQr>iox|b^|-TR-zDOWrC)xDyCZ+_$kC;$cO() zB{iD+XPXxiQEq0>61eBy3Cs{Mdz3y?PK3*((fIcIewm^T)U+6!h+I_RGbH3uaDxVE zx2t?tEjt_6`wmu8?uC1__o(oNWFzRN?xh*M)Gk z$NgP&cmu{l=`1szbr<4?z0Nts*cbvyOVL+n;y^%X?`R(1Z#}DoYkd2WQsucZam5#P zm{gmJGkr!d9l{UCgJ0)0I3igon5`aX^I4C+Eu0_hiZ4a9j^_~{`D9TM;^F&nik2iO zt8S?|a?QDEW~qntq@-a$dwH_sQ)$(`lDs> zZz*RjhfdmEHr8A@cC^~{C8ZT&(wOE-M$c3j*>bJNlPi{Tuu?^g)P=FC5HUg`a(Fm@x7fBIxVRul8Xl1f8tngeI@m zKy{>94%5YE{(Xe7!@8340?+E(M8S++4RbdlYqLGNw33t3s-^+PKecakHc6q%k{`UI zD^gv*C(RK(qbqCjO`2?14&ChSkx#o)TnuhyQ+vtchEq}P#^y!v*Al4jD;rQ&jbx;eI^ z5Q`&=oHFvzRM2(Q)fWh&5}-7DDm9u>{xL!HtRC8!hpZ^|o=ivICmRG7xTqvNR1z^Q zy{sAh31iIga22qXX>4o^P!W-*PUctK1?q;+kKq{~Jr57NCcC#oLs=0M*B1311l&Q4B;B7iQ*Tv?$a=l%xkm!`hcR zU;-tJ{uYiFFHlDW&Gb&epxL>vsgo+h2IiTcQmv~ukD+I5_Gfz(Y6G`m$y-i1ItlgW1P9&wP6<$7|TjqH0RVGmte8^ zgga-^U+!3ZxZkD+Wi_*N#4rW&%0I%o-`Ef|tWZ+Y_y(9jSJDc+I>nucvW$Zyk0(D# zys+QXL~PO=!>>rPk;b8_;V2;TBF^ouZW~T?rnH|){@%|1ki*rH=#2WSXsQ5K3t?M1Csk#=v}U>@%{e$XP|Pw>TT+_$82 z-%@06m{}x*Nv=fA(%8eb>t%+nM+IXV-q4$H868J!!bPH(@8pno(&mM9O;NJS%v3li^6ImqwJ6-5kmGdmo|fY2>~b#kT^wwx5DXZXE@p}-#7h)Hq`E4%F&uKi zYi4Z|X^7Pe#!z^JW3^B4>hWR{9uhBs;|4>~3TUM_%pyXWqY2oEb&5mN2g8~XkL>F= zfgPBEo?z&{VNrO)B8xmH?h5I%ZvU3r3?t8t35~eEg%syB14$a~i^|9z7tBK{4NIUE zK$@V!M1iUysv`#fYXm*ftqe%p7Ed+vy^aOh6Ku<=J}p}wSe z1b0tj7$ZQ7gzN$rH9)C9G1_5{HNwO`j)#Pv6@(xO&!w_ICzM-1PwooY_)P_%v6YUF z4PR+m^AbOhM|a2k?kSEQ`VhG&&EbNFX-IaJ2q7~3P7@b&#t65$Z?yKm3&4L&S1#2_ z*{p%g+}xB%;lA-r=FxV5@WTbrwXl|1 zNnxA`sPxHU#Fm5B=fgm{Cf1qwMz=1UH(z8Xirf%zzNJ% zB9wXQK8bm$7G@Wo1f?UKpvDoED!ha%*`7Y#s)baUH~@$0PoEO@Z?9X05=;ov2JioJ>b~q6=+89@ z4JY~XCF1iA264OfcY20w#k#SC($8QI4wM!XmtkPGG?%+ddfr27QzLEkr3p&!$swu4Q5#1FE! z9Sj{DRO8^B?5GzwR(l2MEr2lafJ$L9kVT~oFhlj)6WSnNZ0;PXG6j9z(y0*{VwSA ztsTG^dkuiH6!dlZc~FVFi~Yn1J0x^eD5>MeI`Ee#7Ek=K6Yu)TNHt?@ETPU|0DzgX z_Qh?O@{MUglIb1tBYk6-;|OYF6v4m5NwTP|8zp4>+Wnex;Xr5qq7e>8LLh_Jw8ZZd zLSJE=fEbGZs3+L@^PqcTEi?Z|Jn?NX^5uU-6?eiA@LexZk!i(%J;L~)07)A!J>+3E zxZ&46E^zY<0w`l!8k*hbsapX-g=pe&dh5CPyrum*TFjl8l#X#cZRYSj5R422BTul1 z=x4$^jnn(y(#I!cvHlH+Dmo5sgnBmKBtSq4LR7B)@9z`&@Qii`6P@ z{WQ9XE*L|s!0>@Nylp=PvxPCfKtsi;!A<#@ZOUK~(NtQEpROcJT3AJN7@^>6a134v)#Ch-5-36JZdRe>`HN!@tQ|4GAUO1! z8r?f{x6mY4)aU-V&6s-NjE1CqWtzeHO9YTnN_<-<`;KXr9d$ zH(&~VhDV8*?1vm4(!Z{gFe3e01~wxS5i_tAF5QW>InFt=4@ z&{BV?27?wGjPfN2ke<~3krH)v3E!@;+var@+yF2Wm(fhr^LLduoQ=XfD&fM~GmgTE z2-}ymHZ`VQ!uGiDf`ZrTFPwcA?Ni&DifEeyoCnHOE(acrw%kQv5L%;;lYCp~LSuN~ zQEyuDctP63DYwOKtcep9U>Dq;CAeIy^`SskVH17QM+)%_^F^_!OV&~*5$5r6Dk|MJ zNM|;0uu}7u2Jy2aEIUrEM=3O7!}TXHaf8COY09^ z*Wc8;t*|nH7_gs0;OPf1vS{e{cnt65p z&~LsOCKxdxb3VcAd*>7P@I8F+V|#dOd8;|~RIat-&pv%uv!u7_ z$c|AFh%ZxFcwj&yE>Jx6WAe^#q9C;FVkrXZzC5~lecp@>chYcV5=|`L!BfCa{QJ_*5+RL403{} zDDl&T3ETN{L!K#@_X@sYB9t)Ml{~y?G=Pbx|uTm_VLY_e(#B;RZ%0@&2i2DchIzhga@x z*6xUHR;-V_XwXM!;h40?6Y_UwmDK&_=S}IhxP?ibShE;YHQv0TkI{vPdiI?<0z+}E z1_SfD%^GjUC)`NZYFS0pML@BPJ;7HR4=LXB@bw~NAKn-uY(hMF-tpMcO8v~i6VF4|aUh!|@L#mrRxq|ff6%wxCf?Tp_QZi=CIH6Rc=p?7JD-b#}anv_rk0i{TXNCyoa6zqah zgGdnwgc2YWsiAj}4${H@L7(?~-s}5+x%Nsq=VW$vW_EUdbN1{ar8k!oWoo*scCXv^ zUE6r|6A5R&(j0F6j1SZKs)71L_P?JRmXhH+AdosvWYzfR0Gs7J?}uIa3i3za@x6zx zKCkQ_A6okU28DIJJT_Vi!Unz26sv$u(TPczJt^@vkU4RC&c&k3`zOs*R5rA_h98ZWhV$I`Q(?T=ZoO>wqTBbd- z-CAcQ2L=$75IXs`yI``X@51boB>`jJ0!j8JU05|xY6g0xWD_2IY*mt5{F2cyC_4Bq zvr?S;=q%LOc!Ri~T{qE@PV$pb%eByi$z{{FIxZ}}>bz7BDHW1jZgxygAR>E{`QhHP zwY1Q}WcW0tY=l0jsYP-Z{Fgpg1M%Y>GrHoVt>t`Xa>EC(S~#kCH3ri*($tZVBom%ZQ+NN5WmrhDmr{Ci5z4M-+BgCH-KwJg7|ts zO-77Bx4CEl9$K~k5k?x0<|OukHpu~kq<5o`RFsfrq6)J*UpbXR7%A)S4X*GmnXjOYk{KBk+Xt1e zGb7yp?vDQo8I21H@BUU$YKgypod3owxaHyQuPS3U%c~z!y-Z^~c&?juKo{)YNIet7m!2rO z3sAlgHTVP%$970|;#_Zu-39g^7Z91$d1&YC2g7n@Tq{4UeSp>@?rSsN8W0s^y(4ks zpgYfmrduV6F*G8I^blyGQ;E|?`&21^IRf+c~{ulXqy zUt*Py%^&hVB761KisLqI`_zf!osE6r%R|MC#_QpP11$P&&V!e>1_LuqGQAPo)G}FJ zaOr38-DDXSeIaih#oJ*DX{PX$Xs(Jjt`IEP8_NZd_Sp=6bdaPl_Zw7A$ln{Ybe4{p zzxs0^8sZ*f_e1I!@*A|PWYh$LeoX(@oR3=rl#J4Ol&}@axALxXCsL@NToM~0R?#YR zI}F;NB+>ZSGyswO|H@A3-Fq{o{OGkFTDc=~I-7I!s^nN2*?PsStkYfA_Yz@>QA$C= zHo@xfk9^>rBvy?mj$1n9eCix#V99}Y#@^)r2hG2=?9@g53RF1Jy}VnV$C;CU{mNCz zjhLCbM#J^K&mUE3mSZ>}!1OO>F%2$!EPN+k%r1hHFA_Wr<^ycG_nE@9DSWqMauYRn zatQkky5O6UAoHKfc4}AsU5!eA7B3t4pwbuhH*%@xUfUf6Z}F`@`-nz~mM?$Iy|nn8 zlv3tfc;(Jt7TblUQDQ}4F;E0`1wgIS%qLsqYG3$YUN3YB6kycEygK7IS*mX8kI*2n z+^7{L-6c^7h1=n;e!S)MkvfcgDZ@GadD%-UnYhB>|4_y$sB5xr+g$W+Ne1|CV~azA z`&ok7AIh9X$ua{M%)@toec-h_WjtFCbaXb9s1$5hfc0<{A3(o;+;Fw~76wvT_KH;* z*Gb?YA8V5NAIj8`G>rW17nHXE%75wn=Up|DobiHd2Kdh5bG=fN^M;MPa)}?ks8f2l z!bk+3f~8H?h#wr^`}Xjie&xFn7EKND&}s%rC;y?-0S#B@dav>SqJ{`0_%On|Aos9GK+fc2~yfxA)s7w<*VX4ZfCdr(L^3x` zhP6>DR03xeeKgZrPUh@{NX>OJE2h>u9>+1TOPM~T*f2<{!9A!j)Cn*UP{X@ z?jJuz@so0VribI<0QLLMjH=$b-dKfAFzYpXW~xl<3(~RFy$O<7YDN-jkT2*aaAX_! z`Nz=yyvxkd{V%R-%&G8DUcS_NAhvuX9NXFWZn|9BXY75>N$W85(<21y;m2#hbAhKrIYpKgBYdn=~i&iG~cFVk@XCggl%)SzY%V;JB@ z;6<8b-8H{K8`N5Kp_eX^kkL!sq=_Q&+DwqCf4;k2#|P`s67xcRc;^xfg&`VgnXHtW zAuxxVaKQo^Y9QA#ytQ9q;4aQ!*#X$u5w6BrwrxBm^wqRAg61*>w{$*KqF)Yx9su zB>oXdbkp}sK3>2k26aG9fBXf2CPBw!5|NTk%Vc0_@|*M^x?ZX?eeCC2Y_Tl1Sn@Z> zKH--_cF=uvAY4$5nP4_Wpwr%WT(J*`Gk2}}m2LkT=UO+*F!@I+&p7kh6C~T7nOvY z$adU88%jjtNHW6XU>WMv@b?Uj+##LA zi9y5Q3$A}k=pgRA<_*xhO#8{Dn59XJyfkasctXVWi-EAp{*oE3L7EZQyT6pco5E5; zGSQ7%cxAaSbbEfVc?#qc zo|E9&g#=5|`liwg2BBfk1VVqru4?|mWIhaB-_}l1t={EWD}6fY#`3P=3mzn?K`F+c zBt{m;As8X%+rc_uEW`rLKsF^uM1W|)d^gy22TU*8bI@=C=3?o(wCc5~vq#1E&rjDJ z-6;Z@d4!ql&v8w8Z!OY@0{LAvu;iC>odvN71}>jYp;S{2pBsEYG|5O}1QO8Z2>&ah zB#=6g(J&>e%=Iw>y8muc&>Cn581hk^t7{*C!NLz?lA0{^^`fcOA%Vbol{1UNQ95=+ByO`AA86>@MP5}=osV`;d0(=EF0 z-oKmu2@~FMw5${8Ns&!?*Q|5d!diGInT#}+eA-CH%)G4C0vf-A?jt9myHL6AH(c9S@Qt_*cmXXZ`> z2$aBMr+Kt$y8$MNkUM16AzkqChb1lW;xJ!oAMdg=kY8yw{PYpBN60$te9tF zuXKbmzV82n4tgM*in%Ucx7A%2IF^hVwY`plmrlArGEIuzRcq+isGbUqOm5KkVe2+C zN%OjtIH1jJRUG<_rsEn!*mb%Scd{DCerGd7Cu8WwAcD{S^EaVBO6u_13^f>Y+SBIW zpzT6A>3>JGM*itZar^)#bI;DU_;)N$dZ4rY=E==7>2HaaC95VLP4|xkPZ-zepeTe8 zBwNe;mPDZIWnfa+M(sUBU)6+t_79TNZJuuf464I6zvLp?p{#iUgl`0m>xQlaqzP9L z=8T+AqN-yDeU>i?{L&IzqWjohkMsX>uiw#nxy50J zUrdynVLWdv^VS&_N)~HrRCN1-tC{~5+6tgMAV)nUm+_*2QEBe%+!Y|MV_~ zE);t%+4rT^E4n1Jo9#O!VXu)k~f|ept>Pq{*KdWoj2z~jiQ8cG#%3PE1kJ@6EViq5Xp=u8!7*@9(wpt;Z#aJ(` zVw0AygT58Md2$zVd0zNolIc{mrEx}AS)cZmUr!os%X+OfzVcDXCuU6v`aS*)QfFj2 zBX}O1*Dj%w{oXkO|iVv*QfiW>U}i7^ildbt~j)6t6#o-=b0WBx+=(B+t}j zc;u6B(Xqb9{i^=ffuI&1%yazQknMELr$vCnKtiw{5^@&X?|(boZ&1UDM0uvOkI*d* z=^h8}RTWFNOxV%Mgd$OWV5(WKLgf;KzIIM`%{@Fr_Cd8pK#%NeijJ$rel^zS%C0{4 zal)xAB6(zQ6<&mu8AD4!pn+x$9oxUO&xy+oC?F2`0M4rL8`_-?whLl zeDuDlerM39NSl0jHJl_Ik2YC${AxsjPfU)$JK1N@Gy`U)0a{Kn zAuLYjRoor6QNJoOXls4UDm!~3x#sg!)cpG>r||l@-rTDvppOe_WADEUGtj|hlW49q z(7yU+=_>YcOlGe3I^QP&n#~BvDmwphHl%n#o{}p~(<3dZQUWD*^8RDYWgq^M9kb56 z!V{5>3wf-vbuS0c9PH(=&)P|!<$qiHOf7Ww%9O!&HNx`Ew>X!NPeh(QbBtNUYFMlm zQu8JH7RLl_O<^7{#TTzTQ*toHm{-t9ZdUSRvkd+&Fm|vwXb};*~}cYY;p}8PA{ZD+b=#l){k)x5)cG8g&Rp zHlbU{3tL&4NxAby>3<2E5a_OnV&0lkJ?6W5cYxnTZ_M}|G2qgCOwhV&BLzRzM93Z^ zX!!iwq3}n}g>NslfSuO+JFqeQ3|~P`3cKpYRO7DfWA}j#qQsa;fPJAzNlD2-Bor54 zft((&K@^{qq`Jn2@ytw@_yQmCr;C+|>pQAfyHaXN+;XSqLvlh} z*-B@_OTFeE)JAzzkGhaCaH=*S{$<-g?8)E`9ROd zXN8R9&n{n!(u`vxQfjGn{rL)cYbfP3dg+RvBkc5sM7!fH2&FTyemg=ZlgoQ_o*3G| znCxvw#1UsAg)=`nje=v3A}L}6C%xOV3vqqaanx+vk?gZFhT`mwV%q9uN+}&qc!_px zF-9wYEn)NxaeZygY-6bM1SQa*Zp3nOX{!iJ~LeXp% zEOM6o8WGJ_JzHs#=Kve+l!Z`b(|VLzn>C!i;Q&DQ23X` zEq_gZZ8E{w?(pIGcG|`C$Q7{b7Awa_*{U zJgxRqZ#%i}Ddw2IQpbvWP(T=kB;iQRc8r#+HlR1HI7$l4h_r?DLWbiNK(&_UjSt_yDP6Y$sGmV}dk9^pHj~%gKW=gP(=5exs>Z?~gu+ zW@LmQmjFXdQjP}bY#s2Y%j%%qw4xd15&>%gw)@pq2>a$(acT%PG{4|9!0kuIB5ZYk zM|2U;;S_^cI?@uTqQB*nQ{o4DeliwkWs7v#yTYZfw8kq%g zbyMCb#xseMU)#>{^k8sv-n2V1QYQ{d8>}9`O;TYPYFriF#_kSCi5bs4#45&yKw`jI z(hF$0W`1pQT3syx>++T=KmcqjDP8wJQ^W!Ek~p?1c2ZXN>g!NP?P4-5{Hc*C%sunwi~T)8#VCen3q7^PX(Z#gKZnUyw4Q-P{IAv2$X6 zZm_ya;G1|Gi0h75j1Q)?-3NwPNominz2{$An89w0`c^h=KFz$!sU}~w@`TXf+jI=f z4=Jr~3dk7WE%~s560R3<4|-0r>Kfa(gBebxsttuh%W5&LrExxFh?Oz{L_G7x5SON_ zeMhcG#cojRimF#PhKOSm>M~k@&HztZt)`zj(Ex*&aIOy2M}#5iPf;aB@dU z%0aEIZ+;{xSGhnKr~AtJ2t}$ady-|&+BoNjXCBZk&I>-5T2xNvQ`GVy4JB36$zAd_ zcj3tQ(GnSV6{RY|r>lRF0lXoXh#4CT`DD=Tp`ZhNyonC&VRA5HwVA*@RyK!x2ne^l z=iLf#@rv6N*Jznn_?ZM74;ch5Ta{mdEcrtBW-!Uvq6Z5-;sR@HIHC0zz7*qW*#cqy zb-Y7P(Mg7oplBtAlPWi5RdohIXzgYJ3`CQf|+)UV1w;2Ru_P9{P7V2D`zsBZu?-3biN!U50A zh0pb{rM#yaYiukQsiWRdCAxLkmB>cM@2J1;pd>^QTgBowV)t_nDpW@ao+1 zcIf;LPs7jJyYl{+l7X{JK}*OO4u__tG1W<;m!dtw=r>3+e{EYpFe77%VeCTtNK7zq zqUzV@?fKHt#ZYs*^H-xUjvvm2xlP1pk z;I>+5MPm{@kNieeRdo!}i*Bm)>p5^UmG@k);WwzK;4~QsI#r&oe|=i8RHK%<2CTPy z-UeiPyiR@sZ@Z^Yk3s{9$SpVz@4a{9cm)9e6Uz5bOly@1ySu;xc9WQ%f#0BlgOru; zikn@@!hcrK?5j?R=Rj>=*6O@W zj}9~H3NjDowI6N~yci~d3RDS!!y8Lo+()T+EEn&d_=S-FTgE(V{$?S1I4>TJOwpiX z5MPJw+p_O1Mc|>O3C0B=zz~+kyiD^LPDi6KM0@_q0;YnYNom5zt-yn)EYpF4?+Fbm zUr&vKtpLJY5scH5|E{PR!eMJx3LBfNszIt$@tZAeJ&&2NVr^?K!v}3Xzj)pqgO*F(`VTX_I7{85=IKhS`K*&ee399ckw}5gLMl(6OU`QPSgqkRaE9W zZHZS_=DIYV9E(D?v{L1yn|tISPRDB=z-wziw1Mc=ob%@)&x_|iFG^~&|LFfZ5IE06 zb(!cz&fGptM4s4euER2>#^6cJJ^p}Drb;&V_5s(7hnD^KRpsC|_$7|yVE>_bb)$eG zEqov7mMcNNuNl_k|12HTn!FHCd+}1!Jvqri)-iyHq1=CD9BS${x;ofE!TSbnKI+nx zn4I(<$>aX>xpi_L3oXataCmFkjwl*hwfA{^jMoo4YaO2o$AWk8P^49LqwM!}!0go~ zMaKghpzX?0LB=h4NWX3DbHgcY_S(Pd)yPbrq!JmG!`Vn3Ib=n|A@VM5h+Hm^WvPDmK1#+?4(h>{l)l{=@3re^UBjmD5aXydjy>K zNL0D>RI6P1P3iZnCdx+wwdFv_CNveG@k3$G^yZg_e|T^CZ_uu;(ET7Az7*=5cUL^c zg$-x-UG;ubbuF(quMDU3YtughpF+*RZ$@wTbHcCxY>EkaL>(0C=+RzMnRfF)#NQxf zD{>;+V<-T}9K=2gc{ENo;7)Er<-PL5gL8Gi-Guqc91(i^J>&QAYe(U~u*-3=Q;ffI zPAPxP2?1f&P1|@RM!q}%VNdJT9OJoZql`N>&DTt6xX%B?E3_z@?lpM2dd5zT%dR#I z1^!}a;IwgnmA-bVsMG5!S;8FE!zjvu6GRgW`>A;1XYl}}<*9=7Q?^%3XX+urh>rYq z1CMJ~7mBOK%4xTR`onXEfz%3|f(zZ?l$h$~Yzsx1OJ-{hJixuNBzpodYBo0B zdo&;Una&zR8J!rN=aqvVUyz8G3;b5Sy0D6$$dP7=k%P7yIEfSU?l+4gJ=chTQjX2o zdDS72SuH-v}*^pyZ0MUwdQOF6ryhlC}GpS=a(Kxb$XqJ{HDen;x74gQa^^-XAkg>6$ z(}?Z?4(&b&EEYPGaW^{c8pm1jA#eDZJ&hM#Rdwz>UJ+n%wZAoA$EqrzXu;Vu$H0$A}l< z3ff}(JH5r_nRtfRr^(pd|8XFTpbKi{JxY~jtxL!+-33;Hk!)<|iPKBaigbA6A32rx zJgMBe9t(*77&r)3vjnJVI2BO(V#bK>?pKLV@3QfF0f_GEA4Eq&Movm{vFR_6>AXO6 zeEb)P?$%BFEuYlBnebOlc4dDs9mxfzo0Q{ZmE=sz7e1A~9j`>IEv?#X4t-`BT5cAv z$Qq>?*5twI8ee85*!WsnY$zed@Y?Jxh1!&x?Hu4p{>)G1tWoNX9-QDoHX*?<@kjx; zcAcu2wGO+KDDAcOtZ|HzsV@++HS;r(jyRnQ!wnBp4pWsL@iV?u_w0I&(k?WrNCY4T z9|l~RjB>1q(d5q{l2kgDJKYdwd(9d$EeBL6VG+P5xK2_FM7u)zjv>?4&V~x9;*5A` zjN$cJv68WBxA9N@YZb(6S7vRo{DMPQE&yrKb-`KNme`hL{WwQ;NltKOYZ@LJowbW- zjF`xRqRis&1!@cMX3~wObz~N{L}|hsk0Jm(^6|MQe-n}uz!P!WA=4EJF`P7X2kKC$ zg0r&$gma+&#L8xz(k!~ zNlEMPST5|%?NOW3u1!rhn$qDcVS&&R;=|t0f}*XrORuV z^LDXmQQhv}o_nm@!Q!n2Zwv{kF47iYrKU@=YB_U82U`pjOLH)!AR{7u@ec=1cz%7o%vYXW00Puzy$Ohq_R1{vBu^xk z5Y<+#=!AAbx&D;QXhlDYi@roox$!)G`>NI~Fe;ln3h+U6wM4XQoX|dFXelz1Qpa)& zKy(i|sl!PsJ*0&U(f8ZMY$eUf-qYv{{h%rXh#DNfCpH>z8DV>KYRz2IRhud>K7TC220Q^~145o2{QD*FpOn-KhfujwCsZFe0r1VAD(f^Jqc=(GYS)oj&Wehs ziv<6Au^aeE^}7lK?``M}{c3xA@GdDuk$tLwb>U#DD1S;^xShN!G%G&C=>y3na<;X0 zM`Mcz(fmxHky>d^7PkBCj_UHx8rdJ1J=?VKDh}N$Z z^|q&PKiIY}-{lQtgK|Q%9=;jHy%u2a0!$akeslr)ivd6~Q)#*Y0$&4uMoH$M(v65W za;}9giZrri;zHU+t-(7+blxr_zAErL||*IDKMf zBB5O*XX^uU57~u-9{{`Lpc~W9iZ8q9gn^nygKTf+R^V{e>(@HB_KVAV672~lcZgh* zxi1z5-il}aoNo7=qKoL;Zew@W;?EwuaUnUtMTn1<0&H3!H2E3%Fo{tyZfk~STx|X8 z_EfjAgENmO@5Msa2tq$^HpS0>OZxHTw*x50n%VNczh>1_pvfF&9z>Vn`!R>!ak z1-pl^oXasNElsM9eO2eYlgu4zgRyYAoDz3)J#pTen)>W8Ko1+!7SG-y+C~*%pNXB- zUP1zR121nPuVP)^BU4%?f>;OWsW(=ZrpkUzEB(A_kk5l$SkF;~dR+MO?PWxp5;3}w zQFShki;_syac$dGVY7lJ_=c*I+~h;Nl1$#QeD8H1a4adAD*#lsm#eB+8G%(p=-<7W zS)8<1?S(MpG!WyD-;CALM~x`-#8!h;E?0YsL3K+GBlG8*RTt9^W9pOqiI0Ji zs=fq6Y?`E$=yM07GTCzN1w4xlE#e&p0v}grFjTr+9;>1kbE-eXVMlG8| z!yE$kYUn4>dglvOh3grdPRR^$iimZ9pVl#n{kXZ-I-#cgB5X%peZ`*<3g5PMS$ym$ zj+V)v=-KtIH5R1?{vKn0JsuWC9lUi|R+|C2F?CHj^rkegfJ4e877E9$Egz;Ur+Pu~SeP_0iZ?A0 zA4SuTn?-adCtLfzBosXU@K0?WuJskJJ+s0gp%jQHiVe+vcq6XJO(vB0=*3^BO0?!Q zFJKQs?sHvep$8r!dHKW$vTmb%^ax>zE=pz-pMxq0f2w&!TbB%_11aHnDh0sd>1Yn3x z)iHrR^xz<%4M+vY7FbcpR5Dgou|q^k;vm$-l!fQ#MJdAApH^k8TPqRSqALHy2nNilX0W@f= z%5#|FT}>O|qaApgDW9g?_<2lVLfz4ef*M^)%?*}{0;cF3hq32}X@ERpoDmA5EqZmZ z_dKfemsCRzngf0nFcXn=6)>hoZ@~#fYtk3Wph&%~FWbLC499g`=K*TFUJ_GJe@&ff zOsPFRIak|YKLSwk#!$t<`S-e0Rr&MU-=I$fucd8HxyADnkOP3be3uUN zg1o1efGH+K<=DO7pabzWHA2C*h{Ew^eBdN!)_fAh0&kW~;BKhwwlLZN56?X`%{*vW zx2$q-aH(kXN^E#Y;xVn27dt36(Z;-o|%g$4^g6+`FrKbRozUa-ibC2+i-ypdo z0S8ly?ID6F#dg!?{t)r0JC+D7g3b%$g0_SwA4Db-e8c zk)fQ3+zVD?-ip=g+dWUkw#Ak`?qPt$E3j9h{oq1D#(TjGOq24{5_7$9Hi;V)V z^*GP9qHqEl`(uwrFjR=ZE0L686ZoG`3@!7ec6NL+AvN}9~6jFQ;NvX}e#Vj)^K zD751Jt&x*Z$8=}06;5Cc#s|A-pFBmJ#R^z%H~j-FZ+k=Y%&j;=pYlV-$b zy@cTIypj%DG5%Ro0@*WP`oNfutr*ml(|lTNYDYjqSy^mbaHn~xeu#N#)n1D> znSh#w%WDg*dOT$_Ej`d1EnIY)1>#N;9eZp;>ESgp=?ZWxCLikIpg$CFZ7%-q*Qfu+ zvneJ(RX-0Akqyh*Aupx-Pj9Gj@fn{KNUsk7H-Vf!`5%&!xKxcGk(STxQbx+iXQ;a4 z*%3rTq*6HMnD8x-i8l!R4rRbn+**A8c^;W?&HAvkqNL@Yx|3V~$Kb2`i6QYD``r8H zv=%hXfRU5M=0Jf3NtLYv%Brw(b_83M^OL$?<+#DGU(v#)7sKW1rrQtekdcZ%+bE$#0D=hy||OCP0uCUJ$QWDdy^> zbJOk*5C&kf z8e=v!>jXHFBc{rA1 z8mlw>V7+)~xjUQz?Hgd2ufCCi)($jzxR#PWX8mwR%70{H=c0l@`{kf51*gWMRYbBxMwMqqYw&gb{;n43yTw=&#ZiOQ-A`wsR zmfXqb)`f%7HAzlzEyXAs`Z2tzNH~m4U$m0+6Wd6)rAgSbq1gsnFO|isEWm{Ki07}h z|Gs)VkY1XQE4`jF#F|8#U_{ina_4;<8{9*xiHAgJD`-gH*#HLgah=sKEyOH_#c{U{=Ovzk1C_~^dQ1jJ2 zLvF667NK~d)%uD#c$q4@@}nZ83$8s%!=c5~p|;vj7w7T>#**a6H}0qCt16z(;0{cz z`6{^XMOX<$(!W3SPzmA{@}_bx*d;cn`K+w zGTtI2>oh>fYgzef-tx#gc*&LbJwUViqVzoLl88dkYI&YuDNt>N!Pzqc~d976mi%8xgb?(dtS%#dY~rM z9$`I|P#6PM0lm$qJ7xb&GQ4v{3x zLo0SId+dh2tVeKX(hMwZfnQkI#|Mvk(~`^;pu_{g209-)%Ti;%>&^@K28@p5ycoMi zIH5_xKK}MTS6XMXrdJsf$|?h*ySq$$$-0speJK{(feQd@Ay)wUOcom@yL75a_#&;N z2eZZXn-&QOy!I9PFiDPV^K=z5jy8xHXD`2DJ}Rs8$-UPGW?h-XuPchH5der8o2aB- z_y?AyQ)I+cbc~kqjLM9gnOT3}15#fPGQ&j54JiTeqxbsBfcu4bTH`O9mmykK`k>~R z<&nJkGNH^gBa?EgqK#PHS=Ii_3=e$^Fw=Fg4EBg%C*%F@QL*~!4o6+i{fLE{Os>zj zfT;G9iUdfl><`y~$%Iw@+zE`@@zq!KXCEj2oUJ zs4Ta`3F8>51`F_08xcE-yXwi8r_;IrX-S-}lX~$bh=WVdZQIlhTb1n2)30ob2;vq{ z$ZK93AgX((H(OIS8~3XP8%(p|ddwiTDZFBa9VE+-S`*jIhucTzYY|P{-oc3}LBIGrz3=5mJ>UBx}2Xb1Oe$oi4?{ zHj2lJf+B9bF~C{JJFkPm9lh=qxuWcm{_r@Zw!UPW_gYh+i>)3u&;=Ll((EHjOHO~F z^3ce{^F%r8cCN7Rr4+pWtP6_nm5#!)DtpY<9vAesiB;hOBp=mXRh;B$_o7R-$X>AW zGoK@$PoPKx_rEv`4(mz@r%kf19>CLRks!7Ew`;Tr9FOuN#^X+AK-I^clALN>T_Qmn(#(WrlFd$w>==mpB&L z<01_h+q1uvZb1QM#&mq)dwAw-if30X#@sK5%WkzvZ6*i;FGNaJ#J|~qV=g$;TqkA0& zdC5}4;iaUUb^n#emHRotEc+c0KhMnvRz(X^+sh5GIoXn6=-SQKJQjj?<;5pm94wfC zeX62Lr7gJhXV-O8X18o;=`k-F1yR>;j|b3S-$LKgw=p zKNlePblik=ZP-5!8wFe(CH*rlBL~h@64D@f$x;rw95UgQZFw+G%IO1mkM#C6IhrKj zUU}`s9#Lj~`n0icB+sr$Aza?EY)xq)k?Lvvy8ObaEj^+>f>A)fiR;M-#gH*deYyQs zg$B`rRua`t!x^N%6)KQ6+H-P4um{p_E7lwg?Tcn+b`8V+sgulYoXCIN);ZR=Z$E$Z z(<9T40y$djg z35!&IZ-1_+!shydovX2dNI9o)vO1X|UZ|&+%=;b#F07>-I0MB6Y&aZU9!k)fkzM8} zY>Y_mqW7Gm?b>kC@JNg>ywZ}SboGW$pS$H?O462MV)sONY8QJBWshT8w(Ds#|_9@HcPk3VWdQas>#y-oc z%oMV)DG8&Pzh<>yT_aytO8UsJ#EIu;{!Gd>=*v?Q>e?K*Yzp%d%7eOK9$7fJOD;}O z&}NR8P4psix`?eNioa@_lKO*`&s}{DSnQAP|6KQsJ2Fk2$vz|`91^02RYl6Smb(&C z?g=ex;pC&*v`sWGcUI`n&SkI&8E0-WrJ8~@H-FDs^s%1WO#M!UY$bj;WD6p zRTf*$FA1#{qf40`{B@z`!MI7}PnJX{y@&cyRsQLMD7b_S@};&y0Z%+&DlW~4HM~X_ zRZza2uNu@#QqY_y&fSoPf%$9rw*448I}kMOU4_QcZyhBP)RlYwv^}xN4shTx7AB%N z_x_LVVbLtF0k1<6HfAo=@dOND#~FU+Jg(BRypP=|)Us5f=W7AUXMPn7+6CIq&qIvk z&gnZ=tAbKHlHyz)`r?_*ms7f^aZZN{Wr$hl0AK^{G9{yN^YkEFmc;e`eL~cs2@5ZM zye(%N>cpiD_Q_o`{8)1#Yy-Pc^G^SekCY19UPE9SGf$#+@ei_|qxF#b$kmW;3j~H+ z1)P9S2GXW@R(l5Ybtv2&g5EV+ymL<)il#JTAn)Oyl^a39VV1u>nHM%OI%8>koOjw6 zU8EJG%H=2x#aoj2W;L~vA}`~@aLQ&PG`!z={__(k3zH(F7wScMjYPzoC&PHxv)vYq|WyV%aZLb#%t^hs+69TV`*z z?Ul%7J>8|Z0&Qk(ciZ%AqEVtb>pt+2GSRFPYy4sbZ~j=^RH$w_1hrwc>3C=yESj*q zEZc_qa*iY#i}eVPvgrj{kIzw3p%E+z6;dqCdP0Wuw<};#6XnL(g20L1>f3XwFxv|u zB*BfnXT8xtGfcK>>~^ozGCaOzomQ*md#O~K(?rOJtWw|Fh9?rZcKI3B%}QG=xN-4z zCJ(TuW2UDEa3e)Hm9|$4MK6kdHN9Ldz(kvw+hb$VUlZ2j8udR@a22yVVwa8L7_ zSSSL)O_z&Hp|REv4&1zEN>7q`=P-*3vwN?7=3=LoAoXi$A3DKRXQhUB{e=7J*yYQD zg>q#pPv#1>^dEG5`q`S4h$>UEdXo74u3f)y(roa?9S@`#nY~X&j~sTxT4RNz4V9dj z0R#u{9;}TLln-rb)6ax>;Y^96S)MIr|D`8eVNmX`j_&N3e57!=+th9j+v} ztue9-L$XY~gn*D&FjG9W)WES^VY&DnH>Jv@wf1JdD@k55MxX8AjmR}HTAM+~rP+N> zRXU!Ag!J}X21%aWy(SUup|a0%9A-?c(IOrr%PNAGTUt|Pa|BnPqA*Vu6`A@V=6gUm zJ8S3xJo`~#@?`F<_!)z4O9pJWJDx>(Z?1@A(l=dls{zA-e=u-o$fs`7FkdjiWLZ2{ z)Kfo4a6@l%zuGzYt;ih+rN`m(JHuUHu5~r-)GQ6n{{~t8^CCQPh}p;8mDijug}&E* zk_k^+XJeJ-pcm7sr{f=891L>4b~Gi^(Eo3+gT?n?D=v62iRz@1?|9rTX549V0_)xfp}Q{$eNq~ z-G}91m%j2Req3=6bSD!YwHcY`c*t7iS>@;c3RvFlOEWU9pDTjx=X;op`AznkcDDAj zk*$-}`ET((>SR|7LclKLMY(DPU8=ahywAJRp3D5U_7sej!w4h4{6tDj{Fra!(7lX| z6kHr7qaRxuW8Eg{3f+2aZxmDt?@XG1F~&TI!24W}ZtS<=^U0#WJtMW1eduS)xs^GN zC#B7VmjRygvEAdmuFv)~x`UA@2Ig`7xk73#8~R9In#5a<>Kcpk(p;lQdBC9RO9D6& zEny(;h^l`F7=;9oDR`xC6F6!AIHJj8sgM&o1c(GD(X4*sktXM!;|gHam&YYbk4-A% z9CN=pGu%Gady|@v9+*b7qL%$)J_Ymx7AHnzv+JrqS902qIFqPooqsgae?+eM1h0yini!ZLf-jhLX7a%QeA>s>QtWAcP;f)uDZbw~ zU}2HSz7)Wy7>_4In{2^*fHD15@h382^z1#x?JJAy%=?*b&3;C~A_^9aq=BM{cKfhR zAPK_oc)W8_PtwW|82q=d#h2DH??0b=d1&Nd4WUS-7lq}N)m@B(=5%R|9gdQ4jb4)h z%ONLfz@~w2Kz>UJ;c!c~*rESNG-K2iSf5blP*q%yq4rLjmqq4YL&7QB6Bs@}2|Fv< zuOzqhy@*?NU&(iXWq^IM^}BY%Zomp^c^J2U5!NJJczoO=;IjvAgWo9U8QT25v+F#P zy8C_kQ-&PO4=1a7mw_))((rsMtNe7vmp5}~2Rj)6Qxwv)xJ%1sh2nZd{q_0mmXQOO z^{fvIQC^vpER(CWCUbG8Z4wyeViw6Bj0lxmSZnp(Mgi({zdVlDW)I}T)oqv8MC?+O zTa6evmR8&`fdfEdURVDLeIb~-hhXFxY&(3CYhNbz^{ymq4RhPJbo42SU_@H-g z=Q`Wk^rm)m#phx8JI$obZE1?6hrF&_wdK6L$tb|(?qYOyF?UXgbMjYKs;N{1&g@}M z`v@c*Ua@;I5y&{Cj5j*4fn%&t*7s2cTCViaFIv1b%NAL78UfK=p3aJO+wiVG!3*R< zt#}^>&u3hQV-A*cfbQdN))dr*%sdWXBqOQFAxAMgOX1u(v)t6Rl)`hJxS?YPQpFB7 zXy}_%)@A4J{Ny_hKlW6~M4Luc?pALqw^_Na5=@jTkQlk8;TaVv*Z?=TQbk`5k9cvL z*GFw5ixyAPfZ5To7d6qPM=4(=1D+bR{s2-+ z7933{8a47_=N?-YBO*Qa!SBzZvtb+EFM5M&{s~KVne*L-QIw}$=FP2%X$$fVxwW0M zi}1%Zo95nI&>t}cUo>_L-t`BI(-raIQcFgdm8g9Joq>3WCP^+{x-nw&5<84*(iK44 zfSC&pkfRN08FWm9*8AM8^1>-5*`>Mp?d&8y&}bTFPT1wP!g1l}F?u&1>qsvXjMzk~ zN}fP0p1jkN!|;Okpr@h(ZN?SN`FHJ0Dho_5cBOMB(m{gWs@MW|HSW)^w2T|K>GgI| z1zMLWM!voIHeKz}#4;7myV^slMHI8#yie%J<+}d*<0@j}U~i#G`nyUYDJtCbWqRp!Q(;r_q_Zc#n)F2kH9hu7zYdn7rryb%kVlYxcWPtTS zkPsMbARQvz`5{IqAtj1n&?BX5)Yu3`x>I6wgZKFPe((L=|L#49?VR%%`(v;7>-~!7 zt4@gkh0HCgv<9uLyRAJqDu7)H*g4EmjFzt+d52yO8ZGM|zEkKU#m;>b9HntJeJxt_ zPOJ_b!^@Ss2J63I@1E6#R+*lG_Xy*TB~N_$GIgvvO<%Q-tdO4R7s*6*Ux9#9p~qG& z%y+$)gO@xWHAI8H#kdzB40&Cc7So!Qr9CG&dU{unb4F>Im|26vNn zYSP63hR}%_?jd#shab1R4m#BuMY*-7-|GNmg9ulAQ}I1m4bvF%okFnBDsQ%of=K<| zvNX|!SB9?TsC0!S_4x@s+XPxWn6V2#&W(N{OSBEsHkWXXbo0IUxlJ^q`6%Y=YV_yc z>&~ic(~4t+r(9QuShb=Iws0fV#|qd&2y^5Mx5&BXxnH$m_hF8QB)M0YyYy=m7HP&# zkC&H^jT^`Qb?BNecj#WnEX#q9XD*x~-tQku&XS$Jj;g91MhE*2bNVz}__m zxDoB?h&+!c6^%pukfN8p*SkWRz#B^- zvsgQ)Y|03G(~u%RXNTWouQm|+@e;Gl!ry$ShbsD~zxJtF^cFjyRrHgN?#;YPPM7Dr zt6Uw?$aq(R3*n02dUZKR*dRhe=v7=VJpI=qiut7wRbQMgd}Bj6h|l%LZ^2BoL2l)S zb_HWW|5y@B;$5hwdwu*@r<_0+a?))u%>G ze9$E1=xR1r`=f)Dgbx&@%L^T1)d37Hu@5@JSyZ|ne%~)fw^sbnm0PRMRZg4Oq@w9S z9ej{fosC+vrFhnDTt7Wc)QHalkE68<($|m%Y;%1AZFK{VAJg~xS8NFtW$oUcCjP2E z2pY+yr6ni2<4qSoc&U@jg;SrpB*%M3C?&SUOVOHmX5MGHa~MV>%quMUHY@y`;$d}u zPnz|Af2YR%qpwr`eLhBJXG`$GpiUYhL;2IPWI`kG>6C|cgO`6YtSu6yNPE}s|} ztOPkpQF_eVw!TnSYreb*wb(xHIZZol;{+cVv{c-b&TaalNHD^z9REQfF@dIx=p%^q7f=@(&1yqW4i*Z|p zJn;vYLpcaMJ`*xl^tRS+q-g%sNDqt~^T4hQCoT@{m8mq7nBzJ@Ox!kKjHSYO zE$;MesnI}Sg&&wre{a(YF-%}C#nH+@ph?_!RqGy#5JQ%@8cnU+7_jQ2u{Bvin5!zV z#Bwli4>y^WTo)X}SLoxuwacZ5=jRx|+`Cn$x@svKJbJ-1LYZ?Tke%Z4W=@g}z5sVr z3TfovPg4$_C2%r?T2}zMlfufHcl--JhfgBuY)78`6~{mOu%`n0(4Gg+C523i-b|;}h+;a3 ztTsi#Cn4CC|A@Dz*nn$g4vx%l0^SLxH> zn^$|3QuqpY9KkfA+O{y(MLRIZY&+w|`jpVPk>ig;A&Y4R?f$CyRq@dcPa2|R1h+Ld zcn7tfQ}0Bo1!d{_sU?U#T++FOdY>U9@X*ypZ+9txKrDy>#gCcDT?)eIdq*vb{sTA0 zh%CnFh{r~mG%IkP83Pl`_Cp`hpj4wLuD_;7K+lkEk$Q+i?H?&y3Y$j$bjzpV!Tbsr zg-+s!aWcvhIzY!lCLEyh;TFl)kkY0KQcCA;;#pc?cF0(b$*FYTZ`d~^~sLkL3XQ}us>wnG8zV2 zojJ{fElW^|-mxIRX8oWj=xbb<5I;;qLGN^W;^G7ZNn5R7m0xGnhEaU`lFa_3L=HXY zo5G|SYHz?WEcz+c!}}f&Jvc$x4X^Ec@ww*kJ6)#f+aR8^d5`A0E?rP;p&f72Tx_S{ zmzb}2Qvh#9qm=0yu~Eo@9rOsbbqB&QM5H!#dmUHl5igX+1j@G1e4)syaE=!^l*Vzc zTUI}rh|3M|bpHivFP<|GND8E1^lU$HOgxUh-*qrZ3^K(?ZZnJNGBR{4Q#X_q*!j8N z2k%nK_QujMi!?r-H>Ub6KZp#E&8@nsIHSD*kIXmZCmaO12CW@nNob;5FfiBr9g^|b z>+HTYFjCf)5zv~A;n30CskR_V=1xDO`fpPTlP)c{#md#Z`$Ex!EtaB4JhVi86@U)} zS*|?hl^9)(hI9QY?udQ9PyKf?GF}A-JG+-xfyr?*?5lLZ{q_MSCEHZJf})B6F~8b* z_tc|P`y*_nQSM&E)d-Eny8I;}x7ODg4GVEg$_KwE4{P_V_w{`kEH&{Ug+VYw&|X%A z%zD|^WtX53YMwOR7ZNs&>1F3%8uC~@pHnTyF17yr{w!GO<#Qgmv4fP^aj6IN3v;}b za;`h4WpYEZ#aqUMK}3cDgD-({H=3DdqP@`Hs!h?r>ssV^l;ve&qUghF{I1ezXFxf}usI6$gA{ zRg%+z`Z=!0KI@^I#t6;Y@{D-AM1)R=5_m)ERzs3?DjYuYkmDB2^9zX|7J;Q>cBSM= z5yMg{F>Cj^&OKyfgUi;^MS|a@_(E9{dDdv&M817*-#24z2{laqAOit~c*O2<8uaC( zJ$b?LJ9Wu@l`ksj@(w#{{!j>C7W^{Awk5*>Hm9NFXV*@PFMvDg?2um$agl<-GZ237 zsVKo*dZW;%i@00!iE*x&5J>B6{QPcT=vy*R%YnsKt}kNNlZiCeugRhP%OQtA_PBhPf#SY z`j;^`WVRZwzjxD1Cj zR+sdnWsQo+(lAwhQk{?!H<8fZBQp5!Otz_}tK_W_&}bIbTB58MV2>QotU2bU z_|!9qak0|Mg+7hao89l(R3uhi8+Kb$E!<>xVlZw~JFF~xb%~w=LYMPKrR5Dizw|6L z)_$U|nX43ITIzQe#jtbW)PIcTz)iGEb?@#;*91In8r1e}RC%<88m*$)EqA+%ynY{{ z-8^<%dD*mUB5V2iBTkYW%7~NK9irBj!bY)8#ch`?8G*lMlk+A6R*hP_>dtfRogQNJ zP{U2uKW_(DW7HWqdnL>z>8m#F2De0XmSE?7&Io_VY7DPo19gLhQ6-M~6C8rWd=yTB z-w|4asiYp!>%2^H)EJ3ta5i-49elOIG8Cxcll=t&MX;jjOS_#G;+_p25bFXaxuRE3 zF|7yYQ&miM)rfPr>U2Oj^DL6dp1Gc}W8|PT^Og(N34Q-t_Xa#vl+E8GD~d`!`lno- z4{u4|5I9DfQy{Kb)_NthMt%}(tX#iiX@9-p+v69pxEoXr87-c(k>Ca2Pw2&GvFpuv zYQU^xTxPo;(Mr63w$0z&m(gN>w`&d+h7XUv53KN`7tyWB@ z;oM+~%hyx4x>Q)BfG9-PFpRh{1;qbas%eQ&Co|JLvs94qA!! z7_qHre|5m)Fc&V9eFaR7!4BXUYeu&v~41d zC#I8;R)Csp7v_kmqX&iM*irJtdUs}Z>57zI7xo@|RuM1r{!Z9KkYcKb`Ff*_m`%!n zvCBvb3R>UVuE>@I3v*ihj zd%t1dhfbavr2;+h)u~pR2_VTol&57UVtzMl1o3o2CFzjeC7uk07BxJUzamtDSYXftRjx*IR)`K0Hx-X zo@v|f>PBfh`U_gBZ%e67f-y&-{%Qp7FR$e=EdD8hmoSg09OGRbtvM;9IRj4mm)*Mh zvS!@Bq~{o=DapKBfzL-Hrx3r4hWx8du7#t*dlh zLJaJ^Fi|@xT*s1@&Jp*FvPz)b5`FWN78Rl@hHPN`5sszJ^AClW^`juAPl<6-nz?f% zH6F@To}T=Wo-qpExm7ilGhLvPe8chvD8LnTKFlzkY*ntW_4rd;-VZsJuF^*@+*!)v zC7&&_-V=Qi1&i?gm{DvuDl|`-ij-|i$d)`5R-Ks+dft=4U31?<*%~5k5M+uv0kcd1|!T z9rZGj`e~cpZBW9jjmtYixp(9jWFmiML>HG$DzR#ik6Y@Y3d4@s7VWE6YDm}jFji#L73L=BQaGW(gtd#R6|z0Xl~ zhc2ov8@!Zzl}#H4i}Ju>^5JpF&VHk^A(c`X=Hri6gafJQ2(p?18(0|?lKegf{6_!? zwz9qEuipR>ZBK>`@k?tCbrwuC=+m(C^sZJdHx;l`+nH-RVFFI>xhHOTrD!Mr5U+qZ zx^T!ZMR0p)Kp5@6G47VCD#bg>fJ7E$CUix2!vmKvT|b&%j)-7E;Hy_X|G{oN9Fg|7 z7(cK*WpU-tG{*MA!cJpNx{vXrh@6Go34S*kNcIxxH=mY7NZn)B(lB$_Ydnr2~! z7N=Za1jl8H|1iu;3e}}TY}`cF6~f=shg zU%BZed7-JXfMZO*@*>Bj+B*`BZ@&-|T)@}WNLTyycE@Enjed;tXy%qgjeiY(+hQXG zd&quuLVlVhf6y{En~IfkMlwHDWJt5)RTLE`|q>RHRmaG<--8^E*1{kn|RvdHyxoQ<{{ee`E858%d}2M{ zifZ$NN#B@@?kdrPz@%rxq0DPpeThBUhJxpXvZ5p7)U11t-$nfR5tHgPY{&9U3Mfc_ zNXt7c+YK6JpMPfhi12?wBebz8H&}Ceu?3SdLQ2$T&IPrlO9mv$Gn= zP)P3{vqCc7`8_Y1k`yKz#{p^I1D9GaSH{$yAe+eA;p?jM8L^#%eGYloc{CFKMqBNM z*o9Y6!>D`*g7=Xof=SI9#w)#2hE9LoXTVbc!do#CCrh0Ld{ym)WCTPn zr~aVH?&i9I>y1f&c;mG8K&S3J+`)(EuPt-sn^HxJZBW~*b`{zleB$66N|&w9SO{dU z)dqvJb`kaUDSeUgK~tL{)Z#Sha=)a&YZ@4#F{K!~Q|^9<(=xrQB+Ei0u0XcN{qC#Z zo}sya?3~}pUN}S*$w6rGfA4FNL>6MYI=77bal&6IPUWoG{Sy$_dn`l=5&ucN^w{G z;`p8=*1r8rVWWSmA$&LSXzhdj^COQ2KuXT>JZ9bl#3a;8M>t8p;%{k-oI|f<1_FYU z1n7h5A6?6kU6q8Ovol2oveW;5j)0{5)U09k@2thg?xSC)XBV0+yUPky$lKbBq|Nnq zP8p={oEn4x=`)Xs`~?O>fJ=Md>X8sJ(Veb+{^peW7tVj82@(w8l@ympL0Oy=mv6s& z-csxHheBR2vI&{?ozjL{-&oib`;=?6y^y}jM&W+*5CR1IXmX22S+O4U`fC3Av5~pN z^e7^kgIY5YdST87+cYG9#k%@~X1CU_n;Ir>4kIJ*>F&zeptIUgzZD`UrS;m>OqL#B_ zR$qnE^P&lx`KL+&ll<04FA`F$A?2LCuI>}M-u%K2AfSy71jZYD7QsRwiSoz5mk>LI z#?zv-ZEErBAC;x2fYE<*gn7{9IA^@QHiyf`OI}{a_!})TeS@#F2M-^t=!*ubi~jU9zaWsj=H>($9$jJc z-aTtq;0fg~I&5C6AT1hvfBcR84!k~OB(O83FGAvuSApno)N z!Dlc)puwShdcFidi{QC7CCxD=JAJV-fsB9sJ_X)u^rsK!8_M8UvZaq`OsFC)^0q3G zh%G%WP5mJgDvw-&ZUc|^UPN?0{k`WihgpP)edZ&E^3~q6tQ52;@UMG4J!nS5{}WZ; zXxIYVEZg-iR2oGnO`TKx9@`Ey;rj)`S5bV@{{7AIc&On4BjH&L*^6S!v;Wi?Pzbd`jtY)l_wdW~` z)|VEpO}9aWJ$p6&nT44l?;a$?=ckCfIh@`1iWK%G4|$p|e)p%-Yjov*2Z;_XJ(Yj0 zj-7$ge^*Xj(sha%-T(fb!&_g0A$PXyu(TXjoNOvZBQDb^lHRMZ2h=Ia6r8V2i@QSi zaJ;gukylr;JRSa9h*|drFox=>^`Ii?^=P>;Kd)D>bZ;a?D+K zh)54p2Rk8n0j&x1=np_Kp1^k>Ej%fQXHC96qXeS+nrkCa}u3Q%w*Lg+~(*h zBrt1397|1e1VhsqSLTzKjT09)a<(#?C zo2LKSfuM4Wd>DMBu}^qmXqnZU!)VeM;Ut|{dsgK0lpDa28#<+wkl8{8!e73OTNdg^ z*=m2a;3&?{PSB#XG+89#ZoHU_{yf`a^72aspZPh|2Lml&Y-y%fKn{Ibz7NyAA*&%G zJ;3Kx-WT7(8kelLa$H?Ak+!4%Ty{@-V$%|75L|Y+T5-4{6vm^(Y^YTr*T|tQm6lQ* z`OmQ59LrAQVZIBM6k>BA`dGvEV|fn>jw$V!Oa4l&?9uCqKQJ2n zmO>0Iqaha4hx#&z98+^*)PB(y*lGGb>chGsU%^b1*gf@oMCf%_#u`ry*CnKL`-6cb zOw{DYR;jYC%bTps*`Uwj4_K6PbM#n&^H6sG#S46R@3fG?ts( zp;MD>P4^Cj+4VAg4o7p#`M>}*!7iKxPC55$u|l93+}utWNkO@G^G(>d?Mcg@4C`Rb7>jSdL7&R{v&*hedFH@ zzi0h>XpGKkM{>ojzVTI?jljaal7`UAnR?b!AN92J{OQBJQfpgZBxS4HzdZ6a8O+-nJUCW)$N z4zXSK`o3G$EDrPYdyd;|4vJm6zDmoY-?$^#+n?G8;YO>$>-pE}>eT$%m~GXG{7*y4 z`QQM?{QK9Qq>~}R))1M&FTrDVXylC*f0oOV>IEbKA!c6JrzY)a`zUQ2h%D6qiuNwK zvrs=YqB$#2Nj6lW|GAO{S=lq+<>~bnATxPwKG zurF#>kKuEc7St!Zzh1w$yhQ9vU{jvw(oqz@6`WN)X2kf9%W);7pT?p_%e{TQZ|!o} zXb@O58Yl(UL}03!=X#!w$l8lFbI-@b_{mvu+QIrY+uK)gJ+nP0#$xZVj-p-P#K#HXo zSYzl>_4%eh#o`}e)RAXz-TPyQgB0TH!-h3}`FCx#n1ZDhP05_V@}7Bi_7T5zuRxPB z*OBr#PWY7_eKRtvU&-x16x_NoV($6tj{YP)rEyo={UDxD1^<-(;OaWAz0=XLvl4BB z-j9r~G$Lp9SkMOKOR|(wCoR#1tc3Vb2)o@^@ZcIJ(6LO96Q6E!oly&k{#89YQTrKUNc0%{xL`!C_LojpBw^HE=meFG;5 zg315hz&h^ZE&_#HA$t*j|ZVplrJrhTzL6h%Ro-rTemiP&n%B z^uYlw8PJZCFPuLngBjB9-e9!MY{jpC*c!jM$WomJ@{3zW>dgeQHc9}qnM)>9VKh#l zMk#mfOEH6d@RX-9XX1xt`-d&RG)=zKe6(I++@YXcaPSV)t&QyYMHKW5G@*It(VEFp zuAr(^zZf{cr_tR?L!X7Q-)Vr_Cn=bsue&KSy3dy^YC&efJJyOvv1bPYdS1J}s5MR$FSzp$4 zyFp!7Gkv7Ubo~^_p+%ZXSuN?!{oDC3O`A-Pv{w+O@7EZ%Mg_F=W>FF!` zj)Se0qnPE2SCm@@QGt}d_b@=Z38^`H{YYRI5dnzRyhb-%^liv1LZi@StQZSr7>}52 zxeVTHoiI;vxDO6`;+}s9kO%`eP#Ct*!#{Ct6bW5o8fl&+530^ji!>2iFRxnH@&?Jv!0isw#rz?}Zy zEr`(L$>{ht-)j*zeU7Fmi4G;>S_!OhbTuRWuM6qkpMy0nvNX>y)%X7W;Vw9FjJJqR zwUJN22u_h)reGKXSyufGF|<n|j;$(CEPVPI6Lb!_oya1?WY63A0eX2k~e$Qj0IU z71-pC2yfh0%xLv$boxs703c<75C$M@jk43iwm$VPDeegz)m#Xz_#ote6ZX(5bf@Dh zQ&Vv%l5rV<(}RI69of{r8kU;fpkU9t22^f50$q`rivCi=dGz@Wa*gMzw>@YpmqXg< zU!}37mP~j|lFI~B6!4Gv(**HJPb`|VGGdYCsE8KRPPE*0nN&~TrJ_uukQ$>`%upi+ zQ5RbGNL$7Z*9;|@S|a?W^%5aIw%9W^swH#8<1%qJCFRm)^fIa*orQFigp znHWSusjWB7eOQKD<6qFyhI+Eu3DS?dCWYr*CSE3Pfjw_a&J0hgj6@&8rCE2(bs7It z*sn_gG`OjC}hKK#3pjh$fZ0|JmfeoamXUCD> zPH%{e`Lf+rG(HHR{zKtFFduS0Jqi4|VKMxQoc6R|%R1%b=enC##A{bQD)p;ryqEAN zjr)>&J3@l_mAGsAF;Dp+eL?RZ;nR7+2e>W$Wfp&pT9=F$TzDy4lM%9RY%rJq#@rrlFssB7z zqK>h5th>c4&%4onQo8-9fXC%O*|j>ztuw2r;L=d2`!vne*pxud^P?DN?G>n7b1+7V zSNM3U?9B8{(Ddw_mt5)Xw)Dig)IX$ME4a7lf^MFf7P6T2uC6$~uT|@3!Z!#mmMeb^ z$IQv`(l|9G=l`1ih-+VL!Lv2JXjm!7XqxR+YV?YxsEAi{_iVW_I$n>bn6nVq{N^-@ ziQCTW5>4o;E z-}my$skq=_KBP$OEW&t&K-e>m%xjoEw5YYH4WF{}oif@Dp5oh{2n*Y=5v@yet_S)I zg^octA?<==U6Y_H$uKSqm(kS*9;eZCP(E0LS~4`FD%1+rivLGA%V;Cn+lY3y(+t~W z3Y4j+q&RVet9bIz5IZWY#(zsN8oW*H-YpCKP1fSU_8c0x^|g{(yC<@&80N}0RXqQR zpK-Ca%e3&3$k(s!Ti_R;I8kE`S?u(c7fEcqI3?!3t2I>?dr|6K9*1>$_b7N*gL2ad zRyOGT!t(-{k->C0o#+5B1Axcm&ve2`mN4LV53z9*OvWy}Y|FMC{QO>Zw*2Mrm1Ocj z^xH(s-65bQqDz!ZU7KQxk^dsKm*XFbK!amMls{o3N7hB>jd23Z!yVJJ`lTjx?%;|Yy4E2)3Psz(&s6|JV9;5fZ}bXg`qn5F6f#-H|~+I()b(Vkm0 zgUWA~Pd|-MB2y(LfFqRb$+C-+qo?j&wVXLCu{s{{YV4cD${w3dLTJ*@jThdle<%#f zJBoi36>w$mGL-ejUoe_2E(aHvj#{F%PjzMR(wF*j6R_Xx$^Kzw|0qQ$t8wydO7aaA z)&{XeB~U}BZl~#+3b0a}=C@3Bc^QdaUU(%lAFWBP*h`Ip>2c4B_CK8%Ejth4mLwMu z0$k<}llR{eRfaBZEH#$~Ja$t;;73%7YWXvz`gY5evt-tdz5J!A))$VaM0QKp8$J1? zdj=-GoQZAUPsUzLzn$S1@AWclTvMgdWF!ywHui8xnEaajUpBAnmSn?W`UwCXJT3v+ z^;s@S{flLeavRNi_0`Tl6byh&izRgGj{n&B?duPE{od-Jq-Kqz$G$9FpNfy%~s}2X0_eRQYP(oMLIWQ zn@!=hUcU*iBV}Xt&`{|qq8I$~!1Ax`G(MU|rLbd@$br<^9n3as+4;L|rn-!T#$F}9 zIXA?|m`ucHZUc*vKuFpWqPvC3oxNjUa-^loAnT)rmo%%nZ<7hg;&=~ig4r}WHvFdD zb6UM~2F~Hx%gGC@J~KthM)NIQ%72H+GFQ8fovWecPc1Ha`)it#`sCB~THf~qeP7Jpvy_My^Pgxd zfNedZL#s5hnPS)Hy=1s@k(b9&PVr%7S0!w`wMKi##5+6C^t7+q^7W}znH?`9X++=m zKgr&1-7+e^2B9S3sONvs(w1df-)(atK`!JcFYcB7`ioc-aI(Pg`6MLaMBXI19n!-o zv&y9V<49qJT{UbU?E{nOO)ppQ=Q#?T9!DLNd|#o`ov=JeI|vw{^*$erdtW{HA8EfqVi)6&67y^nwA)_pUv)g( z@!u$>F{C>|Ga7cKbHheotk#wH=f0_C%V4q+>@G-MOA9H#RRdyJ>I_{$@T9-Yr|R6L zx*smHTn>6PK+#7T+;0unM+pV_4PUpMFHyJ_3h)Lw-u)pDs{l6azN0^&6kbLF|VJTW9qQ) zwTsKkVl7r_$3{FQ$w2FwSuDjBKI2iC!j>>C6fepQ8)@7)YXZTw!~{3_2L4cJ(o(^5 ziF%uS=+~+T*&+-OyPO1-2H{dWH+iIz_cpk8^~K6*mGkbJt!vx8EUm6ItyWaLZ;5m= zW+K}MzY=eD=D}J1syw1b8AvLyqXpG$D#0U(+Tvdi6QmwK57!+1a4sQzA#*|1lJMg4 zDekn%Gw}5$Y4d#ae7a7x?htbruzo?F%$fZE_0hdw1lRMEi_;y+7)&#OK!pj?iTa2k zwH~dUj+T>oH2Zm9M8`*d#72+|0rv+ueE1$MdP_@qcV=Qh^&A)z8{B8GfA~lP2bCs2oAapCDnhKd*xuAq5Q_7^=<0W8+Yv< z$ClpmzB}L3#ymgUpfq^8NIWB&!H@uskV8z(iWf&_J&g|bZT#}!v8pZ-6%7J#U)%qd zNa@#`u*`YG&a_yct9Al3j@~(1%TKDf{I}Vj75=I+I#tV`v;2}}V!F>vHz#IY@ z!>&L1hKCsuo7YoRIEz34CJ@Y~&BZrsSJdp>Wx3_kt-4qdlKaJ1alaD-6FcviP z`Z2^(3)6g-A<1fVh$M+qq|{PaFR|!Z^j?qVs&)K5@`vJ5c$C|5yuA>WlRcLiCz>g} z3)W*TkUh6BzhxbGFEe^qc+@Z++#Ez1a}{jiVZI@f}OXa z)-!e1s89|-LCrv;d*>_$q{7_YDL2>EuoQ{8BVK2H%s~#{9h6p^Dsm|%?uUW2>E)Ps zN3&6(mTquZy|=YY?dR8%ROcG&*xVo6xo>c<*H~O3ge?z#Z>i!$dy^ntW`k|%;AOT9EdxpM2>P}$C zLKPhL3y3iS+-aR;phkrW_^vaPt!_md*@~J+&8kFx`w8$Zf?H}*1it>>!qL)_Iaf10 zdfKLOxBm`;yr(2l0D;}ollcN-m0^^8!tOp9Y1M9olC%4kZT1Udw_`r zw9ppCj2%3`&KG1!H@V7NCCMjUv**8fLAK5JpYH#QMhY<`eI53&TY zTCr4oPxCHM(s}{dYy2Dy{^Q4i$3`d!)i*|2yLIjLWBL+})~i?<+;Y5%!^%TW#|Z0Y z0CycUs#LNpN>wJB$@})QcUs$Hp64&!MwMbLIstpJZ=nhSXxxExhdm#fM=MUIy1pi4 zUKZLTPHa#hJud`EmPTW8Q#|)C%=}fRpJuW1TQ<)32b2lOpT%@5kNEex1d1byoI{?e zISu(z!xa0gtfrH|oO>I86+*nC@QPFs#?G~j;gD=OS@$V-E8daWver(?S!xt5u=TQf z-`V=1{@s|FX^Ya9E(qtI;>^JH6x$*gn zZ>rz+G5Z097bQP)ezpA<7XV_nx1}0EYZSp$muT5kjGN;%^Em)Z_^*?*k7il%ajMX6 zXd>~@?r|O|Tu8xjd4xS5D}dpb-`}@oH(-tnp`vPS`;n@L9c$bjIJ^}2tF>jUt#WP^ zwRBkBU^Cf|YCLvM8Uw^GxN*n~c{EeQ=}H(RH>5Ti0h$E;nuz zu*?W?jk|)y8#`+}DGwylltU!5Y0Yo9P5p9o%cbmk9{pj%l}$7m{5G|g5Y54ic;hB? zXQllzvlAZ&B+5~|IVL!+`Td7X-Pw=OR|7G>?c|RfBH}%)6{!hj(3#g=-Y8KQj2n;8 z5oARZ^$`KXP0w<+^W^ z5O+|!frJf#am%+8n7#q#z8bk8KjEXY*VMVbB5>t(?D*Iax(5^r;bH8rGvn78S}2tH zPLsiqiCj661B{y%SMCvupP{cBy+-i$QySVroDsgE zGe7hHacI_xp(6Vn}2OKFW3lgZX0V(dJ zncYbi;Rq%g%kr$C_%JS!@RxUkze#zI^)A^PgP_!}X;?slMtxav+;*{N1-rA&-7nM3 zBm}{1$hdsu{P(sC7^X{>r=kn|jXj)U$2~P7c5LcF0?+63=pw_1gDhRmcVxaFOpP+u z6J@wFEq@d@CeTFxCj8g_6e#QHRA2Ss#eD6LRMbTBiXmS)1VRBX3-f`nCxH?*AwQf-e&-|enJb(HBJ~iEsrH4!YJ3sAHglY5lU7}?c zQ2V=y{^vqUaT5wkYh4=IPX~?^6F?MxQrcr}t>6n)`^^{O57d9oZ2t!22jEWu2Qk?; zGRpj5%K8rl6l{51zS&A{=AbVht5jJM(uPxHovH>5N zrJ-u2_tOIT%M<=kFxx&Uzf&RGB4?$LX!=fxK{Fd1o5{`@j;3z@*_QR;wPLdX`$HnL z)L4eL0N#iS()}43Mtt|h+Bw3r9deuT8N@fS$aOb_y-ux0DNSE@Mp^Ev^m4&@0e|0V zPKzU)U-K_grV^R^01a!+E-G_?M?U-E19ctB2?at8u>UBq0fWIOj8^0#^BuEtaZB9L z2#L1B{bBEt`dXmKsITA*&a1{UTJ=jsAa0eQ9>oKyA7b%L?BPZzy$GCH{?vFo6$gHx zx6a|$P%_9<@p|J9=1%2Z3VRW#2esC0edP=HoT-)SBCPH56iMaR|1PX6Kh^|q@1ZbG z+wK3!FC;eQo0}G=8)=wEX_flvdytBolGN-Z*?+-60NkVm`9gg@Ayf5bppaNh7u&F5 zQ_K)ipzs2gKi1s(o|CeahgUK59Ch5}ek6(2MwrJY1BeNbhO{q~SNf@hI4ID+!t%Ql z>Bpx6fQ5iuMLXG~W4zN?e5>Pw`$w(ta3~o>L!@2fJ|$_7tI8iuVq<_6WjTr2s9M&; z*563C1AQdAfiZ!fsuar;cARSqJQrDQzBa4ZEFY!#V>`%yahs);ThQbe4HqUCFBY2? z|GzH_w3J=x*y`PY@4#C?;AS_+knUv6L zKPla-=GQ)965x~!h`3X4F5(J#&IqUR* zQ24Sxrt}Kju-c4&fk?e&T5pF4xClt z0`yrYyC{PdPGHQy0ht}CtR8tkD{4Ki{87>Ej^5&yUhw6c+w-|ROKP&>-i{PMi&Br- zEjbS~Ac3;#?uy&WXHWjyjRXy~?bHckcxUuO%day3NIkl(S3!oi(?@rQs#)}T=V>+8lZFi8l zRVsb|?C%~%dC<-5Av)paTU5VkUou46jXt&gH~NuK<}1b92}`{X!>D<-YG09~@v?IV zAG3MJEc)A-C+e={?=?n%UQ*EEIk5$Hv=A zI%C=xSg|V+T4&2g%x$-jk}dPCLsdlcT)z`XV$P2xvdZBPEJu_vW^$M1aKfzd)uiFhl6?#n}!k4nEs%22$sP5PW}Asf^QCaIz##78anj z+21~#R-W7;~FNkH%~9o1uv0 z)~26LE%ot<7ab?`jg2XeqzbAaOV@_P=NY%h?rE4WsI!zdzoCre>FnYbNv_4r!5FY9 zS%&ocy8GXNlOA~K{_p+Y=l_4FF7Q3^{V%+o3r){)fsZv^j&0PtDA~gLF2pZdl5bOT zkT1Vs5<7hH@&7q;F9cpZEWB_eu9DwObd2cn}o%gBn2%jkSWy8kY$R z3UiG;t&Xs4jt@O1e*!cZ?*FRlJ;2%A-~Vw+sbh1FQMG43Vz;rQMvYS1Iv=IBkmwOL zYeno?n-(deO54*`O9VxYB6f&X6?+q#5L^F`p7Z(su796gT&_et&-=dL_xm2N`*mvr zRe*$qG!vohlYo;i15}G%YIp}A<$$=W*7nmcqO&`CDdkUqaAST^Y4iMUe0ch3U}><< ziwUMl8Q)7mUQdI=4SC}Sug0E_>m2CmgQpz?ygs?k?gJ_Pe^uz_?9soO^3XJ-r4M}4SAIGp8(6NpSg3%G}Qltgvuo$>vreoRtEcwx0h2IsvH&(P9cBD>N z2b6C(L&vtQsTZGbZ@-`&BI+Wx+T8pt-+HRG%}t$DoxmoHm@+ zQK0Do*Yo#|E6>m0d#wPJFJF$Q9#a~cDmR3C11^zAmsq2hUB40>A+X}wIR85WC3f)HO;mgm`mZ;(@ zLOtUH>tw)l;hwQ@#|{A=6mUr4gd&p(M*YApmW=fyv(bwRDsATpB|jAdNC>o9j`=ZZ zhH!^cLYIUd%LV=cMooE!{Ln|i6lj<)5kC&)WopC-KMZzaaC&iui^p(;sn z$0qx@wp?=|zEb6T!Lg0xd77W9zQcBNU*}LwQ`l5`&qn9N!{d4SWccO2mlm@tbiTbe z@tB4Ds&+eN2E&8D7gX!-<_|0=D;@9{E?45`<VXU`8mn~dV#CEJpV6t_bBmdY%Mcz zbm?EuOOqPwLf_M#*^SxM)(JaM5Dyk$Tbo#MQ^s6gR!|S_Apv%MjqyeBkBnd*p*4rz zU9YSmFwl&0tS85s$J?M2|IUIV zzQy6t-J2se=jy@{cLW*o}u6gb%`(O+?w=nhzz%oO%h@zb4TWj*LwZ*$^^Ckv8j1Bq`|7v^cY^#-dyx*goAAXn0V{GJe zy>sl;vj5_LnWG_6?kH_Iog2OF;5RRp34h zqK1Z&gSja~nN%Hfw?VxN+~mK)+@n7fVF{rHB*|Z>D=3uw(w1*&hM7Z`(af6sf5QIv z(*SV76wr{1Bktm5mL)FWnM`HJA#Bn9g z9vQoY*>}8;@jGhe8RW+8T@)htYhZ%Lj0^Xl;*`uB(3TVWo*c@}R6j*LSUqqqNd8tb%f{r?VuqjJhVcJX+0_Y4t?LTFFhvUp4) zvys_Qoew{0#E7f)U!FJ35AEGLTP}1vOl$c`gC6%e_;T_YGSD>s3aF3qb{;ZNiB$sT zyc2e3#k*!c)Rq3Gc}QBb(-wPAaj@dbhUW47z@eAr@G;k#3W#V3@R14%#htO*U|%YN zbm@O-$`wEXfaF8?<$pvkr4*UTk;M(#6BE;xF4k5{>-VY)xf%ZT!HNFdxd|zo_=zZy z=99Xx@}YAc-N`{R`L9a1(QJICU3*R?4G1yhF7miKb9}XSJkRvpn}>#l5r`D`lzXyo zl)qK6S1&ND4r2-~ZX84Qeq#6=S2Sg)p<~K+_SKqanYN&$KIN&1Pavl1TSF;7k6%iO zhrp=0A=T`r1pIzOVKqsuZ`$3ASgO!ee6FxtU2=EEA>IR%^?o0NfyfTND+a_oydni; zo_HcF?ibN>09{!CKuEDdhZh{OMEv$kuVXYKGIFH?qBPhOHc%f?Lo46UKbdZ@Cmm@> z4f`rOUsf4wrN!AQ9u13KP0WXxo+NZ9u-9KqcZF6R7kp4j@z2Uvp zH^hk)_ptAi`s<=9WG>;#(D^Q`_cHeKce8{ zkgFFNAS@c*6N-PooduvoVA{G20$>!k2TN-S$3<`JojI<9JwMX^Qg5Ll;ut`rzOO6* z(oGyIN>R$X^ql`s+c}Os56TS7c2^ypcY;s$ewZN;=9PA?O9nE!LRbE4eOJhb=9!bZ zq$|tpL*qHtD;i)_9J|7~{+E*c58LqI#n5n`0|U~=z!-9mZTd;%8zCK83wP=8$dXXU zO5Mh>18J{Hul~T7i~;VujKy|cql}~Hb>JKeSFgcv`cvLP5&(v{0WT$lv{{?pvH8F$ zRL>)zJar=X9;N}ms8+(?h5$`UBpm!RFi0ial^~HRB%13X!SRo}{u%^u?Zoq7%dquy zp|SI@>1Dv+_IXbHUOh7hUTN~;TA{^sWPDtvm#{y z^R4?Cnz>&R-wxHn5OsNXzc)cRTf z#B@WGbJ*Nj+sVg+hwEkIj`cuXHG}e^TXQA>PBf^XM;ZzIiT$~@=qlg>te2hnR@1BH ziF3(9H@}0X4bD>yWW$gn<#F}$m!*PphV;#hrZMn};B3>_^|8keKWTQ@f!wT6%9^xO z_>)pdYgzccl~eAb?}fTP+d>kVtSI`&Z~IHRY@;?nTD=BUAfDLwaUjk+mOzIbH#-=L zRJpQZtp(~8XXs(We1K1q&ujV_I$DYzLK$%xK7QJ`B361F`RIJ50L{!*|X z!hO&~{djRT@0T%-G<7*Hlt~XCM)@+MHs|f@-ExfCCmm~mwdy|GKY#s`MqT zGrkoK9ezyw$HYA#cYMWQ%PEBYVevpSi@)yN{aRNi))@+Ot&?>sB7u^oMyYSOwkP3} zcg1`lhua!s;eg`L273JD^1wjW6z1?b3tp_vkJjMi`~il(4FRwL$E*isMu!DCW%m%)W8i6lsnp)FFT8%tn47|QgcKV#2FM?qHl;FcW4djAN6jR|aXZ31N zqJCkLlznZ5G8<>QejRuXVd6UU@rsj5ywqsIQ>8I)>-rl3Tk37~xaq$tSh3ZHHFoPh zt@TGCmt2ito_(pLw#;XXS`zAN{4ZO9qz@D_Il=_zC*s^^o9h)FB2)$MEhI)u zsanIT(pR(vY;T_3`$^N_b0B;GHEtKYTo@5fr@U|3e}zY4q%BddRLVu$c+S@z=TbkU zsobaSC%^r*BjnMtI2Ub_TZ){FIEd+#=fcVFMWa|T=sayd&_xNeqOaN+h{Ljbb1#ff z5yGK0u=e}Pu<#o5Mx(+)oI(BKhC}cA)b}O8jZGprxKIFVpEur+N2*_3p90?KU3ci+ zaPXyisUrickPp8En|3?2{rk?Z_kaC*??!Lzl=G^MmE)03_@diSnio0eJdUTOO^5nv zE46*gNeZWuUCkRbPP*ef;kN-48MDr7fc-*N0rbfN z9^X8E16-GnZ~wXsHu<)f;4g>Jk(})idmy!+IZnkwi{SIXQL_&;bgIAz4FDmI1Q{qk z%Aws>l=Z%K2E=O`2v`fU6gN`+|JoO{Wlg}o$?hB-r|rjQ0+VR~t?|Qr0v0f*zXDJu zTW$Vq!i7>{YWLtn)Q8gz!ZQKZ>}>DDlePh`GTYSf)9jt}NB{AHn{D#O2Jt4;-=1?2 z+qw9@;qZOKAM^`^g+FLAHl z;?10c^x%%Ri!tM20Zsqc80G^_>eqv>R3ue^ns*>@fIN^rNb1>FP#A7%b721z1gV-i z&ROUE=i11*xVCZ%_8s8ggA1*G(p-Ak-7zoG+d)U`%i+qLZKPPgFmL z=fj!K*d4-C_fTeg4w-vUB~zHaq(_B6EuV>Gbn&05(SIkG64I@)+6>x^uke{BfZYMq zWDcn45~_i=V*sUX;)W}^SfpP?#9zm}!mDZTy>J`}fplP~Xp20b9THTAU)vjT&xg^; zSn%+I;1>G0pEL`4@2$Vb<5=_Kyd%6{Uiy(MBO@6&CW2_zFBhgxuJh9|^R?fettMlZ z6SYnpPyMlpF&a$j>CgSeHcRS9ZOFiJF{Ew&5&vLWo81sFqQAUBOq7WVklq7CUZ}h# zpVl^(^FMPr1okFF4BEM+RvN$MqdRz zdAs?Jggw$&jEywgUb_-!{_IxfD@}nY+C?Gqt%mMwRk7wQV5E+?+ow%t9MO^$r(HA0{By_Zv&SYg$B$=^ zuh00{SvE7Kdhz}sG7b}khb?%&!{fIsXwTr-Q}nvd4XQB4Hma=oqxXN+{;GEby<_ZA zXx;7cf!I8O_sE@@SgcAmy*hsrzH|Pjsrz zY4RXv+VadxTg&FClvs26l-SZ+7^52J|8$ltmV}HJQc2E}3jAM{l zve)JOrKfwuq6=*?I($_! z{JjDI=YH{%rv1?$=VW(T$=4-T=LDddW~0zW0b1Qd98VrJP2`*}e4#F?9;3b1yM_0G z03ocaY1pyOvDPNMs>z2QYCwUXuc=aPbn1GVMsU8zQ$`~_lNAT&3c~HnN5ad2IHBbo zGO&%pga9&AI}+{`j4%N>3YB5FW?+6$C@^No%X1yK0SUmiE3vpRek0oLg)|5N&j372 zyM~m+5?uTDy7~(S00b%iGs+P*?f;WzZ*(t4wbB5trnH~!7Y<~&^MP3el1V%gSP6Up zw)`UX`Nfn^Ff=3=3q5>)kwgKKmi(_B&^bB++F`vvX?D8`t(w@us5^#a$U!s{^{_si zS%(qwWjGrMGJ*f-|1uL7q1iw28UOx8d@hmc&xc>VPM~(5)1m5>e$vb@=_C~}gihf# zYnfZgAkyB89M?0_g(2$ZhXCU168#Cw-xmjv>{5J0>O^zZ$fBLOC60XMgY8$e@{yHo~% zuE-D;z(N7*MSQ2Nj08(A|D?(2z|a4riN(}72$x9j>4jS|6Df|RxLc=^CL z(_6q#ppc!fknE9AKo>tI^b|lLTLD&|o{+vco#sMw#{6`Vb|U5-RJjT5#0iwCW!2I! zT}GGt`ti5(m2eXCNl`dL`@B~81R9R;+Dy@m-mU3AQl$@y!HGlRA&}{f-?FIx=D2{q9<=jqE`S?D^rFM&ZM$j%A{; z4X;?^R7Xg*ThR8f1-4_sEI;0ER~^c&tl5Y@D#6H&(y8mozpwS7grj~Ym5rK zs5=G4J@KH!rB;THy)5eq(FxLb->ov$RY|_)zNg@}8Z{IPHDN|Tp68|$ORJpEXTK!2 zZyPUlPc!}sEpXBq>i5Jc1l2&hJfVPk;p7z>aiX=S)eDYtH7M4z-~Dm@oK4i&1PwE z#<&4TF~sGr#U~uNP=Ff@*?zdWj^L?DudXlXF;d zc&w~Yr6)Ed8=HVtxBkXtK&-99-F+ATy88rJ@zgq-23pqGG1IVgt#kx(%2(g5IA7^{ zjCC#9>A8>OXxgl5zZFCkF~vBjA3sRDPR(|2;Gp*O^4&CLHs-#qh%6Ox;3_2XH<4wQ zH}3?Z;J%DgriDz24)$Os=(R`qz_i4STj%ewu1NoH5yU{AN57$!#{#jBRSG}gBLZc9 z&*xOi>enLwQLUP+c`Pav$7f}Ig|18pi#f^(=38@fT@qSJVI?A^6-Nx)l7ug>763HS*1t}I zU-AGtr*NE{{rm8KWfu>R1({Z=n(#FdH+?LJZjG}3K0!+E7*MWooQ7z7}T)dp@{d% zCOmM)a`~%9EY-C-6w~LX+FWC(2Hm|jcQvWz3)JRy1G8BB&^wVMQq%|`xdL<<0mUn} z`$xw885}X(1y@d;uZq#pjaX5~u{N*6`s%ztOK36Cojz=rm^TyuCKsk=ig5@HBQ5GtvS^jM;WIXLsFgca+@3{srl@KsWWt#diwR z4y`Ff6=1wZum8m(?Mb_fU354;rP{63c(1`S>}tRFmf@G*>198at7%7c&o@`8TM^`&79ooFaStMmr2GYPU+_n#7^<6j^S9-)fb;xv z^{#3;$qMg)+`z6OnD@x|t-u}SfR+ki`SH#(OB(p+*iP&Er>@kc2X zVgE^jN+wEV0+glyb5vo(2Y9wc70(UtEc5=D*S;J+1+tq39=2#=ep7o zNu2sKur<_HhF`oPg)F7P084j{zJy=EattC}+cK0WqAs^1MMPU&TY6Vs47XLPI}2#& zw+m$vINtVCL`5Fz-Hlc+8|?m`RoY<7sGO_zd|N%)dW>6i(^|j&YB}|ZmI*)xnn>gC zH`eZ)OuESuEN4Kc$nU-7GW?S!Sbb1EU0wew=+0tK6h0>RZk{vqG+J_`y%^f!@5@h4 z7K2|dT$tcnOwR3LYuC*k^k;E!JHmc+oC2gPQ*vqV=iBXG;{l5BcV6Bv?mCr!w&)f-x4ahY+S9`pOwbt>@YNna{e9i@R^xp)ZeDoB)QT=7tR{4lS6Lm#l6}x?G z9RSJJ3c*C1@PAG0#7)PIe7;g?NbuNCpH4za2{4I8yJ|L^+)8IK@Ra}%iPodCz9aI! zb~CMdn$jP+2Q*a3CO`}11>=v2#14!P(fV&l!kU{D)~`kUU54y3M;s9P5f1^?bLHDt z!mP|}QV=FdbZ#-7^(Nn?@a>{pnvY31^!*wN}+!eO$_Y=7T5o>WO56txBZYP(R z&4WdB7sPJZfJUCVD^1gn19M^6Oa(yw@K1MFqxui1IZp{rgh#>Mrn;nW~6>o`o zg{X>X*kVJ!RnpGCH5(AGHJt3tyYpU>BtHQ3*=3D2zR^?@08FCECv&% z=(bzL!NDMJIZe@NknQK_TkVEsT=YRdcyf_TJUm@3gq73-t_ViW2@b8tqf~wA!FDDm z-#haxi9cFwJjC6rEubsO6?Vfzw>E2*6e5r46P3CyF{ zSi%@B7x2G>8H5AUvS75e&GBDp_W;J@8V$_S;sOfMFdkNmd%Q$^rBnz>@Mn7`z(9PH zCo!Xu`6@`7hvi1Zl~K&jzIZe2J%Q=qm0OqrDf6%Ag;r@vhV=u`MZZl8L-=EKHex={ z%~8#^(8RXpptg9CwYTY4lNovi=wUSl5fmDry7Y7#?HAuSG(x@Ze&NUq<-X!>r3+Np=C?;OMZ=iRFe1T z#qiNL5dvDt-7mo7W*lo==NjD`oI8|*kK6T8_Z2l~qLj?43xP|q?ur$EZ=D+4(3Uw& zNleXCMO{;sMmxFic}!Qm0nfL)mTE6HIkVhDbCF{ov7loW#$`L3KIRso_|Xh1 zwHswxs@a5^ES5zL1^ZZY>?MZBl)9=$)~ z@6+GoPmEXx`^8XQ&2+2Pg<9#>-0QEP=-yKVbaFS(kG>GakGT!(wF1vHL}ZwpyK^iwDj3;F}NbcUHAlKR^(Z_ zQbm!{nq6$nbgm@OvdnCpovGh2;kABZf0y=>q-#wdH1-er?ehS>8(W@N12t{7YV=B? z6-P@FSq$4jroFSy%$$o!h9U>$8ZQHL&v}-xQ{4pc{o*eAjRq|3n3Q5G0zXKndFQbJ z4WG+j$IY+1xwLz1WvukCa6vcd;+SQ%XG*!KKI3Q*-&e)-Lpf-CXjVgPiI#N%Z8z9b zNh$d;-B%vYQduM8ynma z?t|^w^rf+<-`2{iVK2>>DpGE0nG^t??gWn!5}QlRc3^0_yR#gRe-F9N@n6o| zbo4+DIyprGpTTWrZN&O^cW^3EJ&pAS{{6S^+8fv;_LSm|WKe7@K3@>WEZXJj95XCh zB~T!x9(aeQEwN}>@h1(e?|!T8Exjrv7agP{*hw^82DMvvW$-079!t&Szz-$` ztOf$`5Mkowm$NgZ)0YOw_~k6@HT~RyPihs+ zM!5gHg_%Ky)Ydn$(HZcRO7*JT~*^^pPZ*D7i7z6#?l81sgKgO@{4sm&y zl6$a7Nb+bL`-{wPr=NZ!2rjo#kZyzV5brBwW${X}%~dZ<#U69npOj#L)#a8_Lj zqy6#?83SsPL=XFPiM24bxZn#-oz2#=jTYTjArBdQA74d+!&()nwEyS!{E}-!FPdOw zuV#JFKzS~8!-#|cMRiG0x0}rpYr3I6mptk}YJgZ65N`zg1lBT1)NB|G9-Ixdce`c( z=|6B#=?oEkVx2LfOU|Cqmq~m}ZCDo{o6le{xIM?qoyRG&fK_(d=&j&0zgujR zzw{kEDq=XIZEa|7)p{Qw$rnl3otOBgt|_NAT`&4^z3M)PJ2}(;cU-$u?&spItK!NH zET-?WVBGiNuxr*rU5YcU0<76`4kH#~2rZ+JAMO?a) z#a*TaD}hp|A6-{;?&Sr~51#DfV*BC1l+ zzxUM^-ZR%z>Dj#F7Zt89M1ho}hX*_K%`4jC0N&A}V_{=eLsY5FBO~8Hv=cBy%*#pr zn#Yu?LZ0V`@b@r2#y}kp1W#W!f&`@N0sBZGp%DP_Lk^NxRQCv~%JdgwG;ZokXi>zqMtj*3R_1sc6z(Q6u;H={}Twmc=E zuZ^R7z`wfZ28jFV+Jz{AMs^ZFmDSe+VLM!B@4e+UNp9u^xz1!PY9Ye zWqNqcV(t(05V>c3Wwid9cczuT2F&B34>~}9N~MlDnf>vQMYkBVEPw3Sio05P&v7Vc z|Bpy#q%ApWb}wrFatmDy9}Xbczdg(2VIFF`Y2{~`axMZ41mL9DpwnVRhX}8Haj}MHg~-b#+msFWmj$0h>p1g!_XJBU*ZNf4 zWaU5TNz*QxiT*x$^>g@|bT=9B=XJwB95?4wLqdH68~ep+u{X?==lDopDtk zKNPKXmFZNWQT*ZvkqY?k`WKdxJ;~n3DEy{R$8>i|9D$MoqeQ%q4d?e_+vjwQwG%ZH zHbmYE@yIjNo+3JxLSjr`C0WTp>gmMK;Kdg5Qtue|4w znoSYG+i}o0quW@nk_9?b*f-cYkQPnuCu%j7o%0{ZZYAetax9BGRq`}C-RSc||7hEB zA!lSvm-bS+yB~IYpsH(?$qG|8==|E*N??6Dt^^L-9y;){=4S#$Ljvxf1qS}yF?vX6_HPvo{Ti^5i#6^7s@42?N*odhe-vL5i+lyRN^S!bEfI(to|2FgVbO2_w|(eh zk@11qLxYYhH~42gzsSBVQ5?k%B*`i{Uyfsr`Rd;K=7YiK7_6tKtk*`9nKjZHshU`^ zTj3kO%uXb;_HpMcT-PeuOli;7H4`U0ubV2OUd_BZjMz5z8MxvS9*IF89;F9<@vgWEs%>%9EgT-gE4-Im>>?E= zf7lV`tynt0C*%h&h5<{v6awJkwQm}1xDwgjb6zys+$_M{6kJ|zb4CB>!yX=C@1OI! zhk}!DL^PBx+KkKjhA*bXrXiWW%YOxG81iAhHOu21f6*LdpKuN1Aj~K(rFT=7mjY=E zxN7(yU-hi0x&iOfeChqCgMM|?+ZZrZnC1(yzfTA!z?>2 zO!3SZ&n6evT#Rm8Spplz_$M=&1INvVy$Ue&t9#Klb|Iay<6;5+a`14%EQb^0e=H z5;U0QyRX#?7tRRj^j5_VwgSdST$NPG=3s%To1{rQ`$`!h+j3i`_3DuDaI#ed5Nwn zxua63UsHF3J~hUWkNGyH=W^PsHQWkJMR3GIwYCw-#{n|n(7l`_6p4S31rATSfVu#j zyDObR@g(n$;S7jA`q}|8FL<~-!koQNx`I15L@rNT1^%H&vq#a4)Xb#;!~fk%Gh(6m zysd~te@lE72dc9ebbRceE-hh$Vq3*#T+8ajW>hAG?9Sx*GyrAI3T*e8NMo+^!fz-b~}y ze(PP~o!X*lTx7OU882W>O`Q9+Ft;`Y6SQ9iL}^+hltjrKIk(4*d3dD1#lVYF*VrwY z*?_9E67=m&ELluUO#FLpizq{HVG>YpUVa-=ePQQ_MX{;F8sZE-g8kV~^aiuil$8pE zIaoPQyO)Kw1=NA#Sw-V1&|s0^!(G5)-j`e9t9dv2^=O<{`v4{I2NsdAAPjbhsBjdK z`>_aKLVYKwY{?P(hX1PW`DNEywwq+UR^!%@<&)=D)#j+bRddYm<$T#JrQ3cjXYsfB z+M3)q;paZmV-B~1MCc*y95IYyGGPIl%y~}`nxvHwiwL3~(U1oj_H8upkHV6oeQA9O zbN@6MgPvN!1d3Kgxopas;Xdd?m&7oyjtq1mFM?K1&J@{ zu*5uVgY7fXS|c!ffI#aa>n8OX1zA(iTUQ=O#A$Z;SP)8LGTnAPHhyp>v&eJfcwD)_E7>x2TCfBGp)j zSv4!#1aE++3*Mx3I#94F8_yB26Q|nv+Un%Skv_=1P+jks8LTNBpa@8dArSTZ3%nkf zfi;;u{TYOh%YtFyBc7U;W3NlbfCrSxNw3^ez0B;bVE74f3|qAELpWuns-03))v zrS2H~cq-aQLps%0sqCy7`Fh9mwST*v4TexG;NV(YduMEPxBgzf-j3jV`*|oM$5-oG zkU-)x7m^>(H*fv>F;jgUSqtD;R5R=@Gd5$dt43%)Bk;z1t(-~U0Q@xmRQ zTLs>cWBmg3o9$bF3nNutgYhp$jRHi}qZXn!TmY^w9z1Q4H;buVMQ}>SlE8~@&o3)> zL*$|B?Yd6kEp1L;xKVQi`q;;NqTZ2sx&*MG+P1a-1)@_!TPXj;bV!?72?pvg+arDx zyHT?OYGC9UFOC01v|&a326Hz0r#w=tYJCjy#%nA z_zgB%E|L$_@&1`8e0GP*bIsc?tFX?y%<(?^|A*YrY=?@r4BZ-H93V|NR$Qwr603uU{4A(TahuW|*)7QU8W<%7#JwM#9T{O~zocExdNB;-b# z14wVm$Vjp-LtfwQ#+lrKrgkJ|a<3{7CFNU?{9dig_tj2@H}OqtV-EkZ9hA)Ie7V_W z1}JjR4=7#yRe8Yi_>KxCtrF^pcBkU+x>3@4;;%#G+Ofq%2hxuc#g3me&Ju;U7@(i0 zIaaO73BR83E-2enK!7W>6d|(L;CJ5yPI0oy9p+4rKF*OaO(F}=mjNhyy$GNcSBS3NSfe6S;)s3oc9KrhdGC3=>&EwUXb z-qQO6x7YCrw~At;hCs3dR>uweH3Th82G-u`iN^7*U=qs}XUXeNY2yz8kfJ!iIHw0y z+6KzpJQ_;<71q}ND{He;W*EvM#By294{~p<6hk#fOiY;~FqC+eW%l6R`tm-c@>|Sa z&2o>k3uZ4zu~zh!-w?aKv6K$n_$N)(l-cr@>~oCUk=y!d`O#ga>oSLE{FsLVH{4bg z>=0)IYe!i8&0-=kx)N$M(;$@c#f(sA1CZ$NX#iN2Rzb$kA&sxa#E1sCrwESOs$&~O zW*h)0%<9-ylE~_Z{LK~zvX1_YAo%3NkjvdB1Po>QCM9Fa2-zdW=EQ*tTu3K=nYw`o; zInBszrFs@Gmfoc}iuW4RlKzK_Gh_u57f=Ymnt)^zP6cMOA%_Nbb(5a>Tw|05C%YAo z`DZ1NwWs!mP*nUt+IbyNHV9FH16?bmy=W!t^=mDDkcXMOQ?^}BOJ-gJzJ3Z*kGhvO z<#LeM+TFj!7%AVoMhxN3)od$BuP2l5F|-QTPj1c`DNj^XBmbM%@LUZ64}!LI;UA9) z^gm0R^I{(iRCx0?@di_z6HH!Q4eR5az}3+LH^Gv_1jq=W11vf`$6>!1^yfiFTb!w##y`DjQ8wd2aBtpq33GU%t8f(p)tQP;t^qoPxwrXK=n&U)fpiQR|dp zUDsByC$EkDBJ1KCNvq$b1lY8k17gR7A8RUR2;4UEMRN)l2hE9yNUw^DP~$7LUs0pS znDCbvixGQ~{dgXo+;RU9aEOd?y0Lnqx_iA?x-DwZqio9Isong3=F=B-*(A>}rXSjV zfB;m;e5vsdgi6zg`o~08Y| zVgEce!YJ;~*r3>11HF}qTi#K^?wTmz-hl@Qh#u#-A_3iY0@#Rwy@`bmpBfdf0hrS~ z=|mom{FbHP-Q8J!(hO^~JzG2`-L=V|cx@}|wbn)~1|y~|Zjs{OhLi#svf+@W-dyL@ z_bX}iWRP{~1ZhqfPeXSwKrE%}50UfVx=DH2-sp?$`?S!ftVzs28e0s^5mw)FJ;=&= z@YGA=AiiF3sS&W&g_=FGH&uaog=E==9JKvnn<--aCOWHLBA^&6CL26z-%8fZmJX`8 zn>d3Kf9gWd#O}jEd&!5flI=&F;vBoX;45J0DU_}3~1&4W$Ipe|~^j|NObZ27M^b(aH&I?;#bhRSnJ|a0rVMFkL-Q zwWzn0{gvO_2ZeNJW%`ra!v1^HMs>%I>MF~CS%>&7I!{>uw|-rF;Q+XQh;J3}RpV6R zLgfmOd*u}I`lBgRX-x-HX_ZBVU?jmY_`#Ih0ioJ*u)Dl;8{{LWIK*J62aKbHNJRzkOOkBv;DPAQF z4zDxAI5@Yj?Bhyhv076<*a5C=CuL4FPVRV#_z{xzJrC@R`yOx8+V7tXvZsa4zEbV; z81hIyBIfA9`@EN+zihwHQt0d!?vlS3lKaz0=rWOe@gQG4|EPiz zY=T<6)>A0kBOUxqj)28>vyZS;Pn7gH=06Nl(1>M(9mtj}O8n;zQAJu>N|EF$0a zg}&>y2rhdL7^)*;Htau-?blBT?n?tV2LP#%Crgj|EP>$iWGs*P{D|0llk%K$bN4yr zKXxBA|MR`Si#2|1T^t+0Rr8feI%<5y0g`@VG$tVqIMa_==7dJr03f3iH37;%&-YIM z*YY4@mNH z^?qai9*7JZ6G8*-Ejcd?oumX4HUydllva#G;DVC*o;(FA$l`ZR$Z6y<8@w~CV7V`J z*^pwDM^Ybg4Bnj@o(g?uex{H=KX^2zftvufSMNb@_{5Y6a9Z0c)e`JqWPe{_WfSq@ zQYuN~QgQ%gpn;C;bH=;#@pr|d@M7#2y2i3?6gzt%9>G_)6`$z=&j8>Kf6|mxXxOP| zum_ntZ}As6s~LI^-r&^<3ikl}2p1sY&&&+mx^bBLy*?Cw$45+FIN%xg=A!t4AQ?zf zKPCQ+>&LNT-m_(IIcW40QQ$(Jd2^1)Nw=wcx7&=&DfXIuDd&`H1g!$U8OUPdkmek93vvz0NRbR$xfwv#3ioJ!tRJ5sShPWl*M7CZ z?#^~a(Y2~V8WBl^nu2WVT@7;qB6 zx<7bOB++_beKEdkeiC8M@aju`K_!#2^&bWqk@yP83_IWG=-e&ye9?!7#Kpw z)fP4Vd@1zp5gY>V3q7_AZlEkfNR&cIw#ww-k8YGikFx<26Vu$ahBq5PYgWU%pqwvv z=T_nZopd8OoC4}OuHD+;>qypbxjui1{sD$_<<_rlEFjF7wg^~$WhrdCuJaOiZXY5P wuPd4l!9LSdQSv-6BiY!a3;$SjMUbqBcD;LtZ0E_xerv>!NjkJX;Xg_LAMD8M1poj5 From 6a363fd1ab2d17d96d8e2b008dcdcf26d05b5015 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 12 Oct 2018 19:26:00 +0200 Subject: [PATCH 26/52] API Stripe 2018-09-24 --- .../core/triggers/interface_80_modStripe_Stripe.class.php | 8 ++++---- htdocs/public/payment/newpayment.php | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php index 43dc796bd5f..04326e7a3fe 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: @@ -148,9 +148,9 @@ class InterfaceStripe { $namecleaned = $object->name ? $object->name : null; $vatcleaned = array( - "tax_id" => $object->tva_intra ? $object->tva_intra : null, // We force data to "null" if empty as expected by Stripe - "type" => 'vat', - ); + "tax_id" => $object->tva_intra ? $object->tva_intra : null, // We force data to "null" if empty as expected by Stripe + "type" => 'vat', + ); // Detect if we change a Stripe info (email, description, vat id) $changerequested = 0; diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index a03c0a719c6..08e50e58be7 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -495,12 +495,17 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) } else { + $vatcleaned = array( + "tax_id" => $vatnumber ? $vatnumber : null, // We force data to "null" if empty as expected by Stripe + "type" => 'vat', + ); + 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' => $vatcleaned, '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', ...) From 2bbf9a3429b9d46b37ef61250c35bb83d4bae226 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 12 Oct 2018 20:37:59 +0200 Subject: [PATCH 27/52] Hide feature that need re-engeneering --- .../class/actions_datapolicies.class.php | 77 ++++++++++--------- htdocs/datapolicies/lib/datapolicies.lib.php | 11 ++- 2 files changed, 47 insertions(+), 41 deletions(-) diff --git a/htdocs/datapolicies/class/actions_datapolicies.class.php b/htdocs/datapolicies/class/actions_datapolicies.class.php index d65de390b8c..45e443cb274 100644 --- a/htdocs/datapolicies/class/actions_datapolicies.class.php +++ b/htdocs/datapolicies/class/actions_datapolicies.class.php @@ -363,45 +363,48 @@ class ActionsDatapolicies global $conf, $user, $langs; $langs->load('datapolicies@datapolicies'); - $dialog = '"; - $dialog .= ''; - 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 ''; - } elseif ($parameters['currentcontext'] == 'membercard') { - echo ''; - } elseif ($parameters['currentcontext'] == 'contactcard') { - echo ''; - } - if (!empty($object->mail) && empty($object->array_options['options_datapolicies_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 ''; - } elseif (!empty($object->mail) && empty($object->array_options['options_datapolicies_send']) && $parameters['currentcontext'] == 'membercard') { - echo ''; - } elseif (!empty($object->mail) && empty($object->array_options['options_datapolicies_send']) && $parameters['currentcontext'] == 'contactcard') { - echo ''; + return false; + }); + } ); + '; + 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 ''; + } elseif ($parameters['currentcontext'] == 'membercard') { + echo ''; + } elseif ($parameters['currentcontext'] == 'contactcard') { + echo ''; + } + if (!empty($object->mail) && empty($object->array_options['options_datapolicies_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 ''; + } elseif (!empty($object->mail) && empty($object->array_options['options_datapolicies_send']) && $parameters['currentcontext'] == 'membercard') { + echo ''; + } elseif (!empty($object->mail) && empty($object->array_options['options_datapolicies_send']) && $parameters['currentcontext'] == 'contactcard') { + echo ''; + } } } diff --git a/htdocs/datapolicies/lib/datapolicies.lib.php b/htdocs/datapolicies/lib/datapolicies.lib.php index 59366d1f93d..cca255801a8 100644 --- a/htdocs/datapolicies/lib/datapolicies.lib.php +++ b/htdocs/datapolicies/lib/datapolicies.lib.php @@ -40,10 +40,13 @@ function datapoliciesAdminPrepareHead() $head[$h][2] = 'settings'; $h++; - $head[$h][0] = dol_buildpath("/datapolicies/admin/setupmail.php", 1); - $head[$h][1] = $langs->trans("DATAPOLICIESMail"); - $head[$h][2] = 'settings'; - $h++; + if (! empty($conf->global->DATAPOLICIES_ENABLE_EMAILS)) + { + $head[$h][0] = dol_buildpath("/datapolicies/admin/setupmail.php", 1); + $head[$h][1] = $langs->trans("DATAPOLICIESMail"); + $head[$h][2] = 'settings'; + $h++; + } complete_head_from_modules($conf, $langs, $object, $head, $h, 'datapolicies'); From 1e635cff1b3bf7d21cb78f2ed1c7669d23dafe43 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 12 Oct 2018 21:00:33 +0200 Subject: [PATCH 28/52] Fix new stripe API --- .../interface_80_modStripe_Stripe.class.php | 23 +++++++--- htdocs/public/payment/newpayment.php | 46 +++++++++++-------- htdocs/stripe/class/stripe.class.php | 19 +++++--- 3 files changed, 55 insertions(+), 33 deletions(-) diff --git a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php index 04326e7a3fe..cb03315496a 100644 --- a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php +++ b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php @@ -147,22 +147,33 @@ class InterfaceStripe if ($customer) { $namecleaned = $object->name ? $object->name : null; - $vatcleaned = array( - "tax_id" => $object->tva_intra ? $object->tva_intra : null, // We force data to "null" if empty as expected by Stripe - "type" => 'vat', - ); + $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->tax_info) $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->tax_info = $vatcleaned; + if (empty($taxinfo)) $customer->tax_info = array('type'=>'vat', 'tax_id'=>null); + else $customer->tax_info = $taxinfo; $customer->save(); } diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index 08e50e58be7..e0234fcd1f9 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -413,12 +413,12 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) $dol_type=(GETPOST('s', 'alpha') ? GETPOST('s', 'alpha') : GETPOST('source', 'alpha')); $dol_id=GETPOST('dol_id', 'int'); $vatnumber = GETPOST('vatnumber','alpha'); - $savesource=GETPOST('savesource', 'int'); + $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; @@ -444,7 +444,6 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) $servicestatus = 1; } - $thirdparty = new Societe($db); $thirdparty->fetch($thirdparty_id); @@ -455,9 +454,11 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) $customer = $stripe->customerStripe($thirdparty, $stripeacc, $servicestatus, 1); // Create Stripe card from Token - if (! empty($savesource)) { - $card = $customer->sources->create(array("source" => $stripeToken, "metadata" => $metadata)); - } else { $card = $stripeToken; } + if ($savesource) { + $card = $customer->sources->create(array("source" => $stripeToken, "metadata" => $metadata)); + } else { + $card = $stripeToken; + } if (empty($card)) { @@ -468,9 +469,9 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) } else { - 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; dol_syslog("Create charge on card ".$card->id, LOG_DEBUG, 0, '_stripe'); $charge = \Stripe\Charge::create(array( @@ -495,24 +496,29 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) } else { - $vatcleaned = array( - "tax_id" => $vatnumber ? $vatnumber : null, // We force data to "null" if empty as expected by Stripe - "type" => 'vat', - ); + $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, - 'tax_info' => $vatcleaned, + '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. diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 5aabb60f07c..db2553ee167 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -189,13 +189,18 @@ class Stripe extends CommonObject "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'])) ); - - if ($object->tva_intra!=null) - { - $dataforcustomer["tax_info"] = array( - "tax_id" => $object->tva_intra, - "type" => 'vat'); - } + + $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; From e5cc4ae61b21bb34ca58297ea2fb25598a8a3f38 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 13 Oct 2018 12:00:59 +0200 Subject: [PATCH 29/52] Code comment --- htdocs/core/modules/import/import_csv.modules.php | 8 +++++--- htdocs/core/modules/import/import_xlsx.modules.php | 7 +++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index 60dc9bf6c15..34bff81e55c 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -633,6 +633,7 @@ class ImportCsv extends ModeleImports //print 'listfields='.$listfields.'
listvalues='.$listvalues.'
'; // 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
"; @@ -644,7 +645,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); @@ -680,10 +681,11 @@ class ImportCsv extends ModeleImports $error++; } } else { - // We have a last INSERT ID. Check if we have a row referencing this foreign key. + // 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 be know if record exists or not for the rowid. + // 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'; diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index 36b57e2d69a..2c37caa5d40 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -656,6 +656,7 @@ class ImportXlsx extends ModeleImports //print 'listfields='.$listfields.'
listvalues='.$listvalues.'
'; // 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
"; @@ -665,7 +666,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); @@ -704,7 +706,8 @@ class ImportXlsx extends ModeleImports // 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. + // 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'; From 31152e10f6915f318ea7735db4eb8d52ba8ca2d5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 13 Oct 2018 13:27:59 +0200 Subject: [PATCH 30/52] Trans --- htdocs/langs/fr_FR/users.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang index e0f461cd196..fa5e772fe7e 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 From 8a928a72faeb7b99d09e7b8a439c5539f501d44c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 13 Oct 2018 14:03:32 +0200 Subject: [PATCH 31/52] Sync transifex --- htdocs/langs/en_US/accountancy.lang | 12 +- htdocs/langs/en_US/admin.lang | 212 +++++++++++++------------- htdocs/langs/en_US/agenda.lang | 12 +- htdocs/langs/en_US/banks.lang | 10 +- htdocs/langs/en_US/bills.lang | 66 ++++---- htdocs/langs/en_US/blockedlog.lang | 6 +- htdocs/langs/en_US/boxes.lang | 6 +- htdocs/langs/en_US/commercial.lang | 2 +- htdocs/langs/en_US/companies.lang | 38 ++--- htdocs/langs/en_US/compta.lang | 14 +- htdocs/langs/en_US/cron.lang | 4 +- htdocs/langs/en_US/deliveries.lang | 6 +- htdocs/langs/en_US/dict.lang | 2 +- htdocs/langs/en_US/donations.lang | 2 +- htdocs/langs/en_US/errors.lang | 16 +- htdocs/langs/en_US/exports.lang | 6 +- htdocs/langs/en_US/externalsite.lang | 2 +- htdocs/langs/en_US/ftp.lang | 2 +- htdocs/langs/en_US/holiday.lang | 20 +-- htdocs/langs/en_US/install.lang | 8 +- htdocs/langs/en_US/ldap.lang | 2 +- htdocs/langs/en_US/link.lang | 2 +- htdocs/langs/en_US/mails.lang | 18 +-- htdocs/langs/en_US/main.lang | 48 +++--- htdocs/langs/en_US/members.lang | 8 +- htdocs/langs/en_US/modulebuilder.lang | 8 +- htdocs/langs/en_US/multicurrency.lang | 2 +- htdocs/langs/en_US/opensurvey.lang | 4 +- htdocs/langs/en_US/orders.lang | 8 +- htdocs/langs/en_US/other.lang | 24 +-- htdocs/langs/en_US/paybox.lang | 2 +- htdocs/langs/en_US/paypal.lang | 4 +- htdocs/langs/en_US/productbatch.lang | 2 +- htdocs/langs/en_US/products.lang | 6 +- htdocs/langs/en_US/projects.lang | 4 +- htdocs/langs/en_US/propal.lang | 2 +- htdocs/langs/en_US/salaries.lang | 2 +- htdocs/langs/en_US/sendings.lang | 2 +- htdocs/langs/en_US/sms.lang | 2 +- htdocs/langs/en_US/stocks.lang | 9 +- htdocs/langs/en_US/trips.lang | 4 +- htdocs/langs/en_US/users.lang | 4 +- htdocs/langs/en_US/website.lang | 10 +- htdocs/langs/en_US/withdrawals.lang | 6 +- htdocs/langs/en_US/workflow.lang | 4 +- 45 files changed, 316 insertions(+), 317 deletions(-) diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 7475c1640e6..0e59bf9a5a3 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -58,19 +58,19 @@ 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. +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. 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 %s, and click into button %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. 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. @@ -165,7 +165,7 @@ 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 @@ -191,7 +191,7 @@ 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 +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=List of the accounting accounts diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index d4665bb4ccd..93a48d763cd 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -23,7 +23,7 @@ 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 application is installed from an official package XmlNotFound=Xml Integrity File of application not found SessionId=Session ID SessionSaveHandler=Handler to save sessions @@ -96,9 +96,9 @@ 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
Example for ClamAv: /usr/bin/clamscan +AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
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 @@ -184,7 +184,7 @@ 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) @@ -199,7 +199,7 @@ ModulesDeployDesc=If permissions on your file system allow it, you can use this ModulesMarketPlaces=Find external app/modules ModulesDevelopYourModule=Develop your own app/modules ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you. -DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com 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)... +DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com 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,7 +208,7 @@ CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s SeeInMarkerPlace=See in Market place Updated=Updated Nouveauté=Novelty -AchatTelechargement=Buy / Download +AchatTelechargement=Buy / Download GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules DoliPartnersDesc=List of companies providing custom-developed modules or features.
Note: since Dolibarr is an open source application, anyone experienced in PHP programming may develop a module. @@ -286,7 +286,7 @@ MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email o 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 langs/%s 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 langs/%s 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 langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup ModulesSetup=Modules/Application setup @@ -309,11 +309,11 @@ 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/unzip the packaged files into the server directory dedicated to Dolibarr: %s UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:
%s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: %s. NotExistsDirect=The alternative root directory is not defined to an existing directory.
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.
Just create a directory at the root of Dolibarr (eg: custom).
InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. @@ -333,7 +333,7 @@ GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A 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 %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s DoTestServerAvailability=Test server connectivity @@ -347,25 +347,25 @@ 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 "Need help or support" on login page DisableLinkToHelp=Hide link to online help "%s" -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?
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?
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 configuration ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories -ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: +ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
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: 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 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 %s must be enabled first if you need this feature. @@ -377,7 +377,7 @@ 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 +387,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 +408,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: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: 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.
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.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($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'

Other example of formula to force load of object and its parent object:
(($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).
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).
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')

for example :
1,value1
2,value2
code3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')

for example :
1,value1
2,value2
3,value3
... @@ -439,7 +439,7 @@ 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 @@ -450,22 +450,22 @@ EnableAndSetupModuleCron=If you want to have this recurring invoice generated au 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).
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).
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) 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 a server of them, so few of your sent Emails may not be accepted (be careful also to your email provider sending quota).
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).
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: %s. 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: +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 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=
For form to create a new thirdparty, it is %s,
If you want default value only if url has some parameter, you can use %s PageUrlForDefaultValuesList=
For page that list third-parties, it is %s,
If you want default value only if url has some parameter, you can use %s EnableDefaultValues=Enable usage of personalized default values -EnableOverwriteTranslation=Enable usage of overwrote 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. +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 @@ -476,7 +476,7 @@ 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 @@ -487,7 +487,7 @@ Module1Desc=Companies and contact 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 @@ -541,9 +541,9 @@ 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 into Dolibarr (with assistants) +Module250Desc=Tool to import data into Dolibarr (with assistance) Module310Name=Members Module310Desc=Foundation members management Module320Name=RSS Feed @@ -584,7 +584,7 @@ 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=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. 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) @@ -592,9 +592,9 @@ 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 @@ -625,7 +625,7 @@ Module50150Desc=Point of sales module (Touch screen POS). Module50200Name=Paypal 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 installed on server). Module55000Name=Poll, Survey or Vote @@ -692,7 +692,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 @@ -700,25 +700,25 @@ 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 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 @@ -761,7 +761,7 @@ 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).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
Not effective for projects (only rules on project permissions, visibility and assignment matters). +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
Not effective for projects (only rules on project permissions, visibility and assignment matters). Permission271=Read CA Permission272=Read invoices Permission273=Issue invoices @@ -771,7 +771,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 @@ -810,7 +810,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) @@ -848,8 +848,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) @@ -915,7 +915,7 @@ DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Email Templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves +DictionaryHolidayTypes=Types of leave DictionaryOpportunityStatus=Lead status for project/lead DictionaryExpenseTaxCat=Expense report - Transportation categories DictionaryExpenseTaxRange=Expense report - Range by transportation category @@ -962,7 +962,7 @@ 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 NbOfDays=No. of days AtEndOfMonth=At end of month CurrentNext=Current/Next @@ -1072,7 +1072,7 @@ DisplayDesc=You can choose each parameter related to the Dolibarr look and feel 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 %s/%s access, but only during access made by other sessions.
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 session.gc_maxlifetime, 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 %s/%s access, but only during access made by other sessions.
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 session.gc_maxlifetime, no matter what the value entered here is. TriggersAvailable=Available triggers TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...). TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. @@ -1097,17 +1097,17 @@ NoEventFoundWithCriteria=No security event has been found for this search criter SeeLocalSendMailSetup=See your local sendmail setup BackupDesc=To make a complete backup of Dolibarr, you must: BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. +BackupDesc3=Save content of your database (%s) 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 cannot be guaranteed 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 directory (%s). 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 (%s). 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 %s by an activated module PreviousDumpFiles=Generated database backup files -WeekStartOnDay=First day of week +WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP @@ -1130,7 +1130,7 @@ 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 any attributes not already available by default, 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) @@ -1151,13 +1151,13 @@ 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 :
* Systemwide: menu Home - Setup - Display
* Per user: Use the User display setup 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 @@ -1166,16 +1166,16 @@ OriginalValueWas=The original translation is overwritten. Original value was:
%s' that does not exist in any language files TotalNumberOfActivatedModules=Activated application/modules: %s / %s 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 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. +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. +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. @@ -1188,7 +1188,7 @@ FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are ex 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 @@ -1217,7 +1217,7 @@ MustBeMandatory=Mandatory to create third parties (if vat number or type of comp 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 %s format is available at following link: %s @@ -1366,8 +1366,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 @@ -1415,10 +1415,10 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf 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 advice 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.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
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.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
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 @@ -1433,9 +1433,9 @@ CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gi CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses 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 you create a new record, and/or default filters or sort order when your list record. -DefaultCreateForm=Default values (on forms to create) +TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +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 @@ -1445,11 +1445,11 @@ 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 language of the third party +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 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) +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 @@ -1465,7 +1465,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 ##### @@ -1486,7 +1486,7 @@ 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".
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".
For example: /usr/local/bin/genbarcode BarcodeInternalEngine=Internal engine BarCodeNumberManager=Manager to auto define barcode numbers ##### Prelevements ##### @@ -1529,7 +1529,7 @@ FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) ##### OSCommerce 1 ##### 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' succeed but database '%s' could not be reached. +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 @@ -1563,7 +1563,7 @@ ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? 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:
- on delivery for goods (we use invoice date)
- on payments for services @@ -1582,15 +1582,15 @@ 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 by emails (remind option/delay can be defined on each event). Note: Module %s must be enabled and correctly setup to have reminder sent at the correct frequency. AGENDA_REMINDER_BROWSER=Enable event reminder on user's browser (when event date is reached, each user is able to refuse this from the browser confirmation question) @@ -1599,17 +1599,17 @@ 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
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ 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 the same computer as 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 StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management @@ -1630,7 +1630,7 @@ 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 @@ -1682,7 +1682,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 vendors payment type IncludePath=Include path (defined into variable %s) ExpenseReportsSetup=Setup of module Expense Reports TemplatePDFExpenseReports=Document templates to generate expense report document @@ -1694,14 +1694,14 @@ 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 contact addresses Threshold=Threshold 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. +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 %s to allow this feature. -ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; 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) @@ -1729,7 +1729,7 @@ UrlTrackingDesc=If the provider or transport service offer a page or web site to 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 @@ -1755,10 +1755,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 ChangeLog 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 ChangeLog 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 useful only if your prices for each level 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 ChangeLog 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 @@ -1779,19 +1779,19 @@ 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 correctly. 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 in the list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands in the conf.php file. +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter $dolibarr_main_restrict_os_commands in the conf.php 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 +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")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)
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 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 impact adversely 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 a illegal 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 @@ -1803,9 +1803,9 @@ 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 +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 here a text or a translation key for a text to show on a tooltip when this field appears into a form +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:
%s ChartLoaded=Chart of account loaded SocialNetworkSetup=Setup of module Social Networks @@ -1814,7 +1814,7 @@ VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only ##### Resource #### -ResourceSetup=Configuration du module 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 diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index a68bac6d961..cd39a43abe8 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,8 +31,8 @@ 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 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=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. @@ -111,7 +111,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/banks.lang b/htdocs/langs/en_US/banks.lang index a83b3cd755b..7650613341e 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -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 @@ -105,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 %s to %s of %s %s has been recorded. @@ -136,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? @@ -163,4 +163,4 @@ 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 diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 0eb53d1af98..f2a46bd3077 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -25,12 +25,12 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and replace completely an invoice with no payment already received.

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=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

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 credit note 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 credit note 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 +invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount ReplaceInvoice=Replace invoice %s ReplacementInvoice=Replacement invoice @@ -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 ?
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 ?
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?
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?
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.
Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoice. -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay.
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.
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.
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' @@ -146,7 +146,7 @@ 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 @@ -180,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to sta ConfirmCancelBill=Are you sure you want to cancel invoice %s? ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice? +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice? ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I regularize the VAT with a credit note. ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid (%s %s) is a discount granted because payment was made before term. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I accept to lose the VAT on this discount. -ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note. +ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid (%s %s) 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 has been provided with suitable comment. (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 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 bad customer is a customer that refuse to pay his debt. +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A bad customer 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:
- payment not complete because some products were shipped back
- amount claimed too important because a discount was forgotten
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:
- payment not complete because some products were shipped back
- amount claimed too important because a discount was forgotten
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 %s %s? @@ -304,8 +304,8 @@ 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. +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 @@ -323,19 +323,19 @@ InvoiceNotChecked=No invoice selected CloneInvoice=Clone invoice ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? 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 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 %s %s into 2 lower discounts? +ConfirmSplitDiscount=Are you sure you want to split this discount of %s %s into 2 smaller discounts? TypeAmountOfEachNewDiscount=Input amount for each of two parts: -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount. +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 third parties bills but same parent company @@ -346,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 @@ -410,8 +410,8 @@ 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 @@ -438,7 +438,7 @@ 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. +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 @@ -447,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 @@ -476,19 +476,19 @@ 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) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices @@ -535,7 +535,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 %s - %s - %s. -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module %s. 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 %s. 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) diff --git a/htdocs/langs/en_US/blockedlog.lang b/htdocs/langs/en_US/blockedlog.lang index fb52e8476ee..88d3662be9c 100644 --- a/htdocs/langs/en_US/blockedlog.lang +++ b/htdocs/langs/en_US/blockedlog.lang @@ -8,7 +8,7 @@ BrowseBlockedLog=Unalterable logs ShowAllFingerPrintsMightBeTooLong=Show all archived 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). +KoCheckFingerprintValidity=Archived log is not valid. It means someone (a hacker?) has modified some data 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. OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously. AddedByAuthority=Stored into remote authority @@ -22,7 +22,7 @@ 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_PAYED=Customer invoice paid logBILL_UNPAYED=Customer invoice set unpaid logBILL_VALIDATE=Customer invoice validated logBILL_SENTBYMAIL=Customer invoice send by mail @@ -49,5 +49,5 @@ BlockedLogAreRequiredByYourCountryLegislation=Unalterable Logs module may be req 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. +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/boxes.lang b/htdocs/langs/en_US/boxes.lang index cc46e702a75..8a519879ac3 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -15,7 +15,7 @@ BoxLastSuppliers=Latest modified suppliers BoxLastCustomerOrders=Latest customer orders BoxLastActions=Latest actions BoxLastContracts=Latest contracts -BoxLastContacts=Latest contact addresses +BoxLastContacts=Latest contacts/addresses BoxLastMembers=Latest members BoxFicheInter=Latest interventions BoxCurrentAccounts=Open accounts balance @@ -34,7 +34,7 @@ BoxTitleLastFicheInter=Latest %s modified interventions BoxTitleOldestUnpaidCustomerBills=Customer Invoices: oldest %s unpaid BoxTitleOldestUnpaidSupplierBills=Supplier Invoices: oldest %s unpaid BoxTitleCurrentAccounts=Open Accounts: balances -BoxTitleLastModifiedContacts=Contact addresses: latest %s modified +BoxTitleLastModifiedContacts=Contacts/Addresses: latest %s modified BoxMyLastBookmarks=Bookmarks: latest %s modified BoxOldestExpiredServices=Oldest active expired services BoxLastExpiredServices=Latest %s oldest contacts with active expired services @@ -83,4 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard -BoxAdded=Widget was added in your dashboard \ No newline at end of file +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/en_US/commercial.lang b/htdocs/langs/en_US/commercial.lang index a130ce82f79..0a0deb99a1f 100644 --- a/htdocs/langs/en_US/commercial.lang +++ b/htdocs/langs/en_US/commercial.lang @@ -76,4 +76,4 @@ WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals 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/commercial proposal %s -FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled \ No newline at end of file +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 ef0328b9349..e026ac5673d 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -3,7 +3,7 @@ ErrorCompanyNameAlreadyExists=Company name %s already exists. Choose another one ErrorSetACountryFirst=Set the country first SelectThirdParty=Select a third party ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? -DeleteContact=Delete a contact address +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 @@ -19,9 +19,9 @@ ProspectionArea=Prospection area IdThirdParty=Id third party IdCompany=Company Id IdContact=Contact Id -Contacts=Contact addresses -ThirdPartyContacts=Third party contact addresses -ThirdPartyContact=Third party contact address +Contacts=Contacts/Addresses +ThirdPartyContacts=Third party contacts +ThirdPartyContact=Third party contact/address Company=Company CompanyName=Company name AliasNames=Alias name (commercial, trademark, ...) @@ -40,7 +40,7 @@ ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Vendors ThirdPartyType=Type of company Individual=Private individual -ToCreateContactWithSameName=Will create automatically 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. +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 @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default HasRelativeDiscountFromSupplier=You have a default discount of %s%% 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 %s %s -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for %s %s +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for %s %s +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for %s %s from this supplier @@ -289,16 +289,16 @@ SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Supplier=Vendor AddContact=Create contact -AddContactAddress=Create contact address +AddContactAddress=Create contact/address EditContact=Edit contact -EditContactAddress=Edit contact address +EditContactAddress=Edit contact/address Contact=Contact ContactId=Contact id -ContactsAddresses=Contact addresses +ContactsAddresses=Contacts/Addresses FromContactName=Name: NoContactDefinedForThirdParty=No contact defined for this third party NoContactDefined=No contact defined -DefaultContact=Default contact address +DefaultContact=Default contact/address AddThirdParty=Create third party DeleteACompany=Delete a company PersonalInformations=Personal data @@ -312,11 +312,11 @@ 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 controlled by module -ThisIsModuleRules=This is rules for this module +ThisIsModuleRules=Rules for this module ProspectToContact=Prospect to contact CompanyDeleted=Company "%s" deleted from database. -ListOfContacts=List of contact addresses -ListOfContactsAddresses=List of contact addresses +ListOfContacts=List of contacts/addresses +ListOfContactsAddresses=List of contacts/addresses ListOfThirdParties=List of Third Parties ShowCompany=Show Third Party ShowContact=Show contact @@ -333,19 +333,19 @@ 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 %s 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 intra-Community VAT on the European Commission website VATIntraManualCheck=You can also check manually on the European Commission website %s ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s). -NorProspectNorCustomer=Nor prospect, nor customer +NorProspectNorCustomer=Not prospect, or customer JuridicalStatus=Legal Entity Type Staff=Staff ProspectLevelShort=Potential @@ -390,7 +390,7 @@ 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=Contact addresses and attributes +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 @@ -409,7 +409,7 @@ YouMustCreateContactFirst=To be able to add email notifications, you must first ListSuppliersShort=List of Vendors ListProspectsShort=List of Prospects ListCustomersShort=List of Customers -ThirdPartiesArea=Third Parties and Contacts addresses area +ThirdPartiesArea=Third Parties/Contacts LastModifiedThirdParties=Last %s modified Third Parties UniqueThirdParties=Total of Third Parties InActivity=Open diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 3a18ae3e376..6ad5e357b35 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -6,7 +6,7 @@ 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. @@ -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 @@ -111,7 +111,7 @@ Refund=Refund SocialContributionsPayments=Social/fiscal taxes payments ShowVatPayment=Show VAT payment TotalToPay=Total to pay -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted on %s and filtered for 1 bank account +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 @@ -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 grouped by personalized groups SeePageForSetup=See menu %s 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 @@ -256,4 +256,4 @@ 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 \ No newline at end of file +PurchasebyVatrate=Purchase by sale tax rate diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang index f968d2ac1fb..63d56feca61 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 +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 diff --git a/htdocs/langs/en_US/deliveries.lang b/htdocs/langs/en_US/deliveries.lang index 1c9cb791900..0d432c3f426 100644 --- a/htdocs/langs/en_US/deliveries.lang +++ b/htdocs/langs/en_US/deliveries.lang @@ -17,11 +17,11 @@ 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 diff --git a/htdocs/langs/en_US/dict.lang b/htdocs/langs/en_US/dict.lang index 0993d8bfb9a..59e7cc058f4 100644 --- a/htdocs/langs/en_US/dict.lang +++ b/htdocs/langs/en_US/dict.lang @@ -354,4 +354,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/errors.lang b/htdocs/langs/en_US/errors.lang index 9e179519739..29dbf4b4287 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -74,7 +74,7 @@ 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 "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) +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 another object. @@ -116,7 +116,7 @@ ErrorLoginDoesNotExists=User with login %s 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 %s 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 %s 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 %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated @@ -140,7 +140,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 @@ -198,7 +198,7 @@ ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s 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. @@ -213,7 +213,7 @@ ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with fre ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container %s has the same name or alternative alias that the one your try to use # 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 safe_mode is on so command must be stored inside a directory declared by php parameter safe_mode_exec_dir. WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) already exists. @@ -221,14 +221,14 @@ WarningPassIsEmpty=Warning, database password is empty. This is a security hole. WarningConfFileMustBeReadOnly=Warning, your config file (htdocs/conf/conf.php) 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 %s source record(s) 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 install.lock into directory %s. Missing this file is a security hole. +WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file install.lock into directory %s. 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). 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 diff --git a/htdocs/langs/en_US/exports.lang b/htdocs/langs/en_US/exports.lang index fa34b7f49ae..179556ddb19 100644 --- a/htdocs/langs/en_US/exports.lang +++ b/htdocs/langs/en_US/exports.lang @@ -84,7 +84,7 @@ TooMuchErrors=There are still %s other source lines with errors but outpu TooMuchWarnings=There are still %s other source lines with warnings but output has been limited. EmptyLine=Empty line (will be discarded) CorrectErrorBeforeRunningImport=You must correct all errors before running the definitive import. -FileWasImported=File was imported with number %s. +FileWasImported=File was imported with number %s. YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field import_key='%s'. NbOfLinesOK=Number of lines with no errors and no warnings: %s. NbOfLinesImported=Number of lines successfully imported: %s. @@ -118,7 +118,7 @@ SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude th 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 +NoUpdateAttempt=No update attempt was performed, only insert ImportDataset_user_1=Users (employees or not) and properties ComputedField=Computed field ## filters @@ -130,4 +130,4 @@ FormatControlRule=Format control rule KeysToUseForUpdates=Key (column) to use for updating existing data NbInsert=Number of inserted lines: %s NbUpdate=Number of updated lines: %s -MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s \ No newline at end of file +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s 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..8ecb0c55cad 100644 --- a/htdocs/langs/en_US/ftp.lang +++ b/htdocs/langs/en_US/ftp.lang @@ -11,4 +11,4 @@ FTPFailedToRemoveFile=Failed to remove file %s. FTPFailedToRemoveDir=Failed to remove directory %s (Check permissions and that directory is empty). FTPPassiveMode=Passive mode ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s \ No newline at end of file +FailedToGetFile=Failed to get files %s diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang index 5c9c9e04200..1411ae3ad56 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,7 +15,7 @@ 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 @@ -25,8 +25,8 @@ UserForApprovalLogin=Login of approval user DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. -MenuConfCP=Balance of leaves -SoldeCPUser=Leaves balance is %s days. +MenuConfCP=Balance of leave +SoldeCPUser=Leave balance is %s 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 @@ -121,4 +121,4 @@ 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.
0: Not followed by a counter. NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter -GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leaves to setup the different types of leaves. +GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leave to setup the different types of leaves. diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index e8a89657b6a..bcca348c861 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -127,9 +127,9 @@ OpenBaseDir=PHP openbasedir parameter 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 +MigrationCustomerOrderShipping=Migrate shipping for customer orders storage +MigrationShippingDelivery=Upgrade storage of shipping +MigrationShippingDelivery2=Upgrade storage of shipping 2 MigrationFinished=Migration finished LastStepDesc=Last step: Define here the login and password you wish to use to connect to Dolibarr. Do not lose this as it is the master account to administer all other/additional user accounts. ActivateModule=Activate module %s @@ -208,4 +208,4 @@ ErrorFoundDuringMigration=Error(s) were reported during the migration process so YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).
YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file install.lock in the dolibarr documents directory).
ClickHereToGoToApp=Click here to go to your application -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. \ 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/ldap.lang b/htdocs/langs/en_US/ldap.lang index 67824ccd237..abe11602147 100644 --- a/htdocs/langs/en_US/ldap.lang +++ b/htdocs/langs/en_US/ldap.lang @@ -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 '%s' ErrorFailedToUpdateLink= Failed to update link '%s' -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 6c6b31db764..d4f835874e7 100644 --- a/htdocs/langs/en_US/mails.lang +++ b/htdocs/langs/en_US/mails.lang @@ -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 %s, 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 %s , 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 @@ -75,7 +75,7 @@ OnlyPDFattachmentSupported=If the PDF documents were already generated for the o 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. +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 @@ -99,13 +99,13 @@ MailSelectedRecipients=Selected recipients MailingArea=EMailings area LastMailings=Latest %s emailings TargetsStatistics=Targets statistics -NbOfCompaniesContacts=Unique contact addresses +NbOfCompaniesContacts=Unique contacts/addresses MailNoChangePossible=Recipients for validated emailing can't be changed 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, %s recipients at a time for each sending session. TargetsReset=Clear list @@ -121,7 +121,7 @@ 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. +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,12 +133,12 @@ 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 '%s' 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 __SUPERVISOREMAIL__ 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 __SUPERVISOREMAIL__ 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 email;name;firstname;other UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other MailAdvTargetRecipients=Recipients (advanced selection) -AdvTgtTitle=Fill input fields to preselect the third parties or contact addresses to target +AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like jean, joe, jim, you can input j%%, you can also use ; as separator for value, and use ! for except this value. For example jean;joe;jim%%;!jimo;!jima% 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 @@ -159,8 +159,8 @@ AdvTgtDeleteFilter=Delete filter AdvTgtSaveFilter=Save filter AdvTgtCreateFilter=Create filter AdvTgtOrCreateNewFilter=Name of new filter -NoContactWithCategoryFound=No contact address with a category found -NoContactLinkedToThirdpartieWithCategoryFound=No contact address with a category found +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) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 5a017330f20..fb2f2a8e9fb 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 %s is not defined inside Dolibarr config file conf.php. +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back. +ErrorConfigParameterNotDefined=Parameter %s is not defined in Dolibarr config file conf.php. ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s 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,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 @@ -154,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 %s? +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to %s? Delete=Delete Remove=Remove Resiliate=Terminate @@ -232,7 +232,7 @@ Numero=Number Limit=Limit Limits=Limits Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s +NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s Connection=Login Setup=Setup Alert=Alert @@ -348,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 @@ -429,12 +429,12 @@ 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=Contact addresses for this third party +ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events about this third party ActionsOnMember=Events about this member @@ -445,7 +445,7 @@ Completed=Completed Running=In progress RequestAlreadyDone=Request already recorded Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s +FilterOnInto=Search criteria '%s' into fields %s RemoveFilter=Remove filter ChartGenerated=Chart generated ChartNotGenerated=Chart not generated @@ -507,7 +507,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 @@ -659,14 +659,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 @@ -692,7 +692,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 @@ -705,14 +705,14 @@ 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 %s is allowed to use the application at the moment. +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login %s 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 %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. +FieldsWithIsForPublic=Fields with %s 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 @@ -794,7 +794,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 @@ -926,15 +926,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 diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index e5975516e4f..e28f242d964 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -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,7 +61,7 @@ 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 @@ -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 @@ -125,7 +125,7 @@ ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that you ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:

ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.

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.

-ThisIsContentOfYourCard=This is a remind of the information we get about you. Feel free to contact us if something looks wrong.

+ThisIsContentOfYourCard=This is a remind of the information we get about you. Feel free to contact us if something looks wrong.

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 diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index ffbb345fb1c..940088368d5 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -4,7 +4,7 @@ EnterNameOfModuleDesc=Enter name of the module/application to create with no spa 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): %s ModuleBuilderDesc3=Generated/editable modules found: %s -ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory +ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory NewModule=New module NewObject=New object ModuleKey=Module key @@ -49,7 +49,7 @@ SpecificationFile=File with business rules LanguageFile=File for language ConfirmDeleteProperty=Are you sure you want to delete the property %s? 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 @@ -95,7 +95,7 @@ YouCanUseTranslationKey=You can use here a key that is the translation key found 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 +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 \ No newline at end of file +UseSpecificReadme=Use a specific ReadMe diff --git a/htdocs/langs/en_US/multicurrency.lang b/htdocs/langs/en_US/multicurrency.lang index 048e6721310..47c5590b862 100644 --- a/htdocs/langs/en_US/multicurrency.lang +++ b/htdocs/langs/en_US/multicurrency.lang @@ -17,4 +17,4 @@ rate=rate MulticurrencyReceived=Received, 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/opensurvey.lang b/htdocs/langs/en_US/opensurvey.lang index 356f1ff6efe..906de8c2f37 100644 --- a/htdocs/langs/en_US/opensurvey.lang +++ b/htdocs/langs/en_US/opensurvey.lang @@ -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 @@ -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 e5518951222..4cd600bdc8b 100644 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -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 @@ -145,14 +145,14 @@ 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 d9197b04383..67b9681fa3b 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -51,11 +51,11 @@ 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 @@ -80,15 +80,15 @@ 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 test mail (the word test must be in bold).
The two lines are separated by a carriage return.

__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__ +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 @@ -188,7 +188,7 @@ NumberOfUnitsSupplierInvoices=Number of units on supplier 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. +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. diff --git a/htdocs/langs/en_US/paybox.lang b/htdocs/langs/en_US/paybox.lang index 89e7ff48b79..cf0bd40b716 100644 --- a/htdocs/langs/en_US/paybox.lang +++ b/htdocs/langs/en_US/paybox.lang @@ -35,4 +35,4 @@ 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 \ 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 c088debc518..d34bb4baf18 100644 --- a/htdocs/langs/en_US/paypal.lang +++ b/htdocs/langs/en_US/paypal.lang @@ -18,7 +18,7 @@ NewOnlinePaymentReceived=New online payment received NewOnlinePaymentFailed=New online payment tried but failed ONLINE_PAYMENT_SENDEMAIL=EMail to warn after a payment (success or not) 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. @@ -31,4 +31,4 @@ 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 \ No newline at end of file +ValidationOfPaymentFailed=Validation of payment has failed 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 0dde8ad538a..90436801571 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -130,7 +130,7 @@ 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 +PredefinedServicesToSell=Predefined services to sell PredefinedProductsAndServicesToSell=Predefined products/services to sell PredefinedProductsToPurchase=Predefined product to purchase PredefinedServicesToPurchase=Predefined services to purchase @@ -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 @@ -292,7 +292,7 @@ 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 supplier descriptions of products in supplier documents ProductSupplierDescription=Supplier description for the product #Attributes diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 29216b7d8b3..ce94a6dcc46 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 I'm explicitely a contact of AllAllowedProjects=All project I can read (mine + public) AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for @@ -126,7 +126,7 @@ 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 '%s' to assign task now. +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s 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. diff --git a/htdocs/langs/en_US/propal.lang b/htdocs/langs/en_US/propal.lang index 21ac0a0d503..0a036a588ea 100644 --- a/htdocs/langs/en_US/propal.lang +++ b/htdocs/langs/en_US/propal.lang @@ -82,4 +82,4 @@ 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=Supplier proposals statistics diff --git a/htdocs/langs/en_US/salaries.lang b/htdocs/langs/en_US/salaries.lang index 2ba84f19514..620517b5324 100644 --- a/htdocs/langs/en_US/salaries.lang +++ b/htdocs/langs/en_US/salaries.lang @@ -16,4 +16,4 @@ THMDescription=This value may be used to calculate cost of time consumed on a pr 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=Salary statistics \ 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..2b46ada5ee9 100644 --- a/htdocs/langs/en_US/sendings.lang +++ b/htdocs/langs/en_US/sendings.lang @@ -56,7 +56,7 @@ 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 %s. Correct stock or go back to choose another warehouse. +NoProductToShipFoundIntoStock=No product to ship found in warehouse %s. 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. diff --git a/htdocs/langs/en_US/sms.lang b/htdocs/langs/en_US/sms.lang index bf92a7b63cf..79bd8827198 100644 --- a/htdocs/langs/en_US/sms.lang +++ b/htdocs/langs/en_US/sms.lang @@ -48,4 +48,4 @@ SmsInfoNumero= (international format ie : +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 410ee2e887d..b3313f5ff73 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -45,7 +45,6 @@ MassStockTransferShort=Mass stock transfer StockMovement=Stock movement StockMovements=Stock movements LabelMovement=Movement label -TypeMovement=Movement type NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low @@ -79,7 +78,7 @@ StockLimit=Stock limit for alert StockLimitDesc=(empty) means no warning.
0 can be used for a warning as soon as stock is empty. PhysicalStock=Physical stock RealStock=Real Stock -RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +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): 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, ...) @@ -138,7 +137,7 @@ MovementLabel=Label 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 @@ -178,7 +177,7 @@ inventoryMvtStock=By inventory inventoryWarningProductAlreadyExists=This product is already into list SelectCategory=Category filter SelectFournisseur=Supplier filter -inventoryOnDate=Inventory +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 @@ -204,4 +203,4 @@ RegulateStock=Regulate Stock ListInventory=List 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 \ No newline at end of file +ReceiveProducts=Receive items 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.
- User: %s< ExpenseReportPaid=An expense report was paid ExpenseReportPaidMessage=The expense report %s was paid.
- User: %s
- Paid by: %s
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..68fffde3bb0 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -35,7 +35,7 @@ SuperAdministrator=Super Administrator SuperAdministratorDesc=Global administrator AdministratorDesc=Administrator DefaultRights=Default permissions -DefaultRightsDesc=Define here default permissions that are automatically granted to a new created user (Go on user card to change permission of an existing user). +DefaultRightsDesc=Define here default permissions that are automatically granted to a new created user (Go to user card to change permission of an existing user). DolibarrUsers=Dolibarr users LastName=Last name FirstName=First name @@ -108,4 +108,4 @@ 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 +DateEmploymentEnd=End date of Employment diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index 9ed064b5d1e..55db08c3785 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -1,4 +1,4 @@ -# Dolibarr language file - Source file is en_US - website +# Dolibarr language file - Source file is en_US - website Shortname=Code WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them. DeleteWebsite=Delete website @@ -16,7 +16,7 @@ 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.
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 "%s" 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 website properties EditMenu=Edit menu @@ -45,12 +45,12 @@ CheckVirtualHostPerms=Check also that virtual host has permission %sPreview %s in a new tab.


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:
%s
URL served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
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. +YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor. YouCanEditHtmlSource=
You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $weblangs.

You can also include content of another Page/Container with the following syntax:
<?php includeContainer('alias_of_container_to_include'); ?>

You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
<?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

To add a link to another page, use the syntax:
<a href="alias_of_page_to_link_to.php">mylink<a>

To include a link to download a file stored into the documents directory, use the document.php wrapper:
Example, for a file into documents/ecm (need to be logged), syntax is:
<a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
For a file into documents/medias (open directory for public access), syntax is:
<a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
For a file shared with a share link (open access using the sharing hash key of file), syntax is:
<a href="/document.php?hashp=publicsharekeyoffile">

To include an image stored into the documents directory, use the viewimage.php wrapper:
Example, for an image into documents/medias (open directory for public access), syntax is:
<img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
ClonePage=Clone page/container CloneSite=Clone site @@ -90,4 +90,4 @@ EmptyPage=Empty page ExternalURLMustStartWithHttp=External URL must start with http:// or https:// ZipOfWebsitePackageToImport=Zip file of website package ShowSubcontainers=Show included containers -InternalURLOfPage=Internal URL of page \ No newline at end of file +InternalURLOfPage=Internal URL of page diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang index 6162bfe6aa1..c2c384793c4 100644 --- a/htdocs/langs/en_US/withdrawals.lang +++ b/htdocs/langs/en_US/withdrawals.lang @@ -61,7 +61,7 @@ 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 @@ -80,7 +80,7 @@ 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: +WithdrawRequestAmount=Amount of Direct debit request: WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount. SepaMandate=SEPA Direct Debit Mandate SepaMandateShort=SEPA Mandate @@ -103,7 +103,7 @@ SEPAFRST=SEPA FRST ExecutionDate=Execution date CreateForSepa=Create direct debit file -### 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
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 3dab69667c4..c16caf44765 100644 --- a/htdocs/langs/en_US/workflow.lang +++ b/htdocs/langs/en_US/workflow.lang @@ -1,4 +1,4 @@ -# 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 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. @@ -17,4 +17,4 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source customer ord 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 From 1e58b837f070ea3e12e5e86105968a7afc159a43 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 13 Oct 2018 14:11:44 +0200 Subject: [PATCH 32/52] css --- htdocs/core/tpl/passwordforgotten.tpl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php index 0e1942c1c64..101c9ec7e67 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -184,7 +184,7 @@ if (! empty($morelogincontent)) { -