From e80f29c271f6e75f8771447c12e37526222092c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Wed, 16 Sep 2015 12:46:50 +0200 Subject: [PATCH 01/46] Fix: [ bug 1794 ] - Error when cloning Proposal gives error in a malformed page --- htdocs/comm/propal.php | 10 ++--- htdocs/comm/propal/class/propal.class.php | 54 +++++++++++------------ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 99119414971..aefef2af68e 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -112,20 +112,20 @@ if (empty($reshook)) { // Action clone object if ($action == 'confirm_clone' && $confirm == 'yes') { - if (1 == 0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers')) { - setEventMessage($langs->trans("NoCloneOptionsSpecified"), 'errors'); - } else { +// if (1 == 0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers')) { +// setEventMessage($langs->trans("NoCloneOptionsSpecified"), 'errors'); +// } else { if ($object->id > 0) { $result = $object->createFromClone($socid); if ($result > 0) { header("Location: " . $_SERVER['PHP_SELF'] . '?id=' . $result); exit(); } else { - setEventMessage($object->error, 'errors'); + if (count($object->errors) > 0) setEventMessage($object->errors, 'errors'); $action = ''; } } - } +// } } // Delete proposal diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 483b6ec8258..ba361ea6aa5 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -956,35 +956,35 @@ class Propal extends CommonObject foreach($this->lines as $line) $line->fetch_optionals($line->rowid); - // Load source object - $objFrom = dol_clone($this); + // Load dest object + $clonedObj = clone $this; $objsoc=new Societe($this->db); // Change socid if needed - if (! empty($socid) && $socid != $this->socid) + if (! empty($socid) && $socid != $clonedObj->socid) { if ($objsoc->fetch($socid) > 0) { - $this->socid = $objsoc->id; - $this->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); - $this->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); - $this->fk_project = ''; - $this->fk_delivery_address = ''; + $clonedObj->socid = $objsoc->id; + $clonedObj->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); + $clonedObj->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); + $clonedObj->fk_project = ''; + $clonedObj->fk_delivery_address = ''; } // reset ref_client - $this->ref_client = ''; + $clonedObj->ref_client = ''; // TODO Change product price if multi-prices } else { - $objsoc->fetch($this->socid); + $objsoc->fetch($clonedObj->socid); } - $this->id=0; - $this->statut=0; + $clonedObj->id=0; + $clonedObj->statut=0; if (empty($conf->global->PROPALE_ADDON) || ! is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) { @@ -993,32 +993,32 @@ class Propal extends CommonObject } // Clear fields - $this->user_author = $user->id; - $this->user_valid = ''; - $this->date = $now; - $this->datep = $now; // deprecated - $this->fin_validite = $this->date + ($this->duree_validite * 24 * 3600); - if (empty($conf->global->MAIN_KEEP_REF_CUSTOMER_ON_CLONING)) $this->ref_client = ''; + $clonedObj->user_author = $user->id; + $clonedObj->user_valid = ''; + $clonedObj->date = $now; + $clonedObj->datep = $now; // deprecated + $clonedObj->fin_validite = $clonedObj->date + ($clonedObj->duree_validite * 24 * 3600); + if (empty($conf->global->MAIN_KEEP_REF_CUSTOMER_ON_CLONING)) $clonedObj->ref_client = ''; // Set ref require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.'.php'; $obj = $conf->global->PROPALE_ADDON; $modPropale = new $obj; - $this->ref = $modPropale->getNextValue($objsoc,$this); + $clonedObj->ref = $modPropale->getNextValue($objsoc,$clonedObj); // Create clone - $result=$this->create($user); + $result=$clonedObj->create($user); if ($result < 0) $error++; else { // copy internal contacts - if ($this->copy_linked_contact($objFrom, 'internal') < 0) + if ($clonedObj->copy_linked_contact($this, 'internal') < 0) $error++; // copy external contacts if same company - elseif ($objFrom->socid == $this->socid) + elseif ($this->socid == $clonedObj->socid) { - if ($this->copy_linked_contact($objFrom, 'external') < 0) + if ($clonedObj->copy_linked_contact($this, 'external') < 0) $error++; } } @@ -1028,16 +1028,16 @@ class Propal extends CommonObject // Hook of thirdparty module if (is_object($hookmanager)) { - $parameters=array('objFrom'=>$objFrom); + $parameters=array('objFrom'=>$this); $action=''; - $reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks + $reshook=$hookmanager->executeHooks('createFrom',$parameters,$clonedObj,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) $error++; } // Appel des triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($this->db); - $result=$interface->run_triggers('PROPAL_CLONE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROPAL_CLONE',$clonedObj,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } @@ -1048,7 +1048,7 @@ class Propal extends CommonObject if (! $error) { $this->db->commit(); - return $this->id; + return $clonedObj->id; } else { From 3818bff86af9a9d0b98114e5fc6a88b926844f2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Wed, 16 Sep 2015 12:49:05 +0200 Subject: [PATCH 02/46] Fix: [ bug 1776 ] Undefined $deliverycompany variable in pdf_build_address --- htdocs/core/lib/pdf.lib.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 8b0091a6f6d..054cc633cf3 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -301,7 +301,6 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target if ($mode == 'source' && ! is_object($sourcecompany)) return -1; if ($mode == 'target' && ! is_object($targetcompany)) return -1; - if ($mode == 'delivery' && ! is_object($deliverycompany)) return -1; if (! empty($sourcecompany->state_id) && empty($sourcecompany->departement)) $sourcecompany->departement=getState($sourcecompany->state_id); //TODO: Deprecated if (! empty($sourcecompany->state_id) && empty($sourcecompany->state)) $sourcecompany->state=getState($sourcecompany->state_id); From 2d35124c71b683ad8a2ebc015792564b28b7e7ef Mon Sep 17 00:00:00 2001 From: Alexis Algoud Date: Wed, 23 Sep 2015 11:11:19 +0200 Subject: [PATCH 03/46] FIX no need to remove file into mail form, the temp dir will be deleted after any sending --- htdocs/core/lib/files.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index bcc6c165472..a4e26f116ef 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -1115,7 +1115,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio * @param int $donotdeletefile 1=Do not delete physically file * @return void */ -function dol_remove_file_process($filenb,$donotupdatesession=0,$donotdeletefile=0) +function dol_remove_file_process($filenb,$donotupdatesession=0,$donotdeletefile=1) { global $db,$user,$conf,$langs,$_FILES; From e22fb3c538bd214cca9f97c1fb65796e9cc5d795 Mon Sep 17 00:00:00 2001 From: philippe grand Date: Fri, 2 Oct 2015 12:39:09 +0200 Subject: [PATCH 04/46] fix : Typo --- ChangeLog | 2 +- htdocs/comm/propal.php | 2 +- htdocs/commande/card.php | 2 +- htdocs/compta/facture.php | 2 +- htdocs/fourn/commande/card.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 43203e0f938..30084927aaa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -126,7 +126,7 @@ For users: Use accesskey on form search. - New: Intervention documents are now available in ECM module. - New: Add attachments on user card + in ECM module. -- New: Can add __PROJECT_REF__ and __TIHRPARTY_NAME__ into email topic or content template. +- New: Can add __PROJECT_REF__ and __THIRDPARTY_NAME__ into email topic or content template. - New: [ task #1204 ] add Numering contrat module free (like leopard in product module). - New: [ task #712 ] Add warning when creating invoice from proposal or order, when there is already one invoice. - New: Enable supplier price log table. diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 5fef6f8ae29..865358c6438 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -2255,7 +2255,7 @@ if ($action == 'create') $formmail->substit['__PROPREF__'] = $object->ref; $formmail->substit['__SIGNATURE__'] = $user->signature; $formmail->substit['__REFCLIENT__'] = $object->ref_client; - $formmail->substit['__THIRPARTY_NAME__'] = $object->thirdparty->name; + $formmail->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name; $formmail->substit['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:''); $formmail->substit['__PERSONALIZED__'] = ''; $formmail->substit['__CONTACTCIVNAME__'] = ''; diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index c326959619a..336b39e43b1 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -2345,7 +2345,7 @@ if ($action == 'create' && $user->rights->commande->creer) { $formmail->substit ['__ORDERREF__'] = $object->ref; $formmail->substit ['__SIGNATURE__'] = $user->signature; $formmail->substit ['__REFCLIENT__'] = $object->ref_client; - $formmail->substit ['__THIRPARTY_NAME__'] = $object->thirdparty->name; + $formmail->substit ['__THIRDPARTY_NAME__'] = $object->thirdparty->name; $formmail->substit ['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:''); $formmail->substit ['__PERSONALIZED__'] = ''; $formmail->substit ['__CONTACTCIVNAME__'] = ''; diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index dc04004653f..a69b35c9559 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -3627,7 +3627,7 @@ if ($action == 'create') $formmail->substit['__FACREF__'] = $object->ref; $formmail->substit['__SIGNATURE__'] = $user->signature; $formmail->substit['__REFCLIENT__'] = $object->ref_client; - $formmail->substit['__THIRPARTY_NAME__'] = $object->thirdparty->name; + $formmail->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name; $formmail->substit['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:''); $formmail->substit['__PERSONALIZED__'] = ''; $formmail->substit['__CONTACTCIVNAME__'] = ''; diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 4daacc43f8a..20abbdf8378 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -1981,7 +1981,7 @@ elseif (! empty($object->id)) // Tableau des substitutions $formmail->substit['__ORDERREF__']=$object->ref; $formmail->substit['__ORDERSUPPLIERREF__']=$object->ref_supplier; - $formmail->substit['__THIRPARTY_NAME__'] = $object->thirdparty->name; + $formmail->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name; $formmail->substit['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:''); $formmail->substit['__SIGNATURE__']=$user->signature; $formmail->substit['__PERSONALIZED__']=''; From 7b2fbdd638d96f0c5e479914cd79247b484d102b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 5 Oct 2015 10:04:34 +0200 Subject: [PATCH 05/46] FIX Can't change the admin with default setup --- htdocs/langs/en_US/users.lang | 3 ++- htdocs/user/card.php | 14 ++++++++++---- htdocs/user/class/user.class.php | 16 +++++++++------- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index e6764df49a2..81e1d48d46c 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -44,7 +44,8 @@ ListOfUsers=List of users Administrator=Administrator SuperAdministrator=Super Administrator SuperAdministratorDesc=Global administrator -AdministratorDesc=Administrator's entity +AdministratorDesc=Administrator +AdministratorDescEntity=Administrator (for its company) 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). DolibarrUsers=Dolibarr users diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 4cfb2a96562..5d63c755417 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1883,10 +1883,16 @@ else else { print ''; - $nbSuperAdmin = $user->getNbOfUsers('superadmin'); - if ($user->admin - && ($user->id != $object->id) // Don't downgrade ourself - && ($object->entity > 0 || $nbSuperAdmin > 1) // Don't downgrade a superadmin if alone + $nbAdmin = $user->getNbOfUsers('active','',1); + $nbSuperAdmin = $user->getNbOfUsers('active','superadmin',1); + //var_dump($nbAdmin); + //var_dump($nbSuperAdmin); + if ($user->admin // Need to be admin to allow downgrade of an admin + && ($user->id != $object->id) // Don't downgrade ourself + && ( + (empty($conf->multicompany->enabled) && $nbAdmin > 1) + || (! empty($conf->multicompany->enabled) && ($object->entity > 0 || $nbSuperAdmin > 1)) // Don't downgrade a superadmin if alone + ) ) { print $form->selectyesno('admin',$object->admin,1); diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 5f5fd60bd9b..b1b7819985c 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -2195,25 +2195,27 @@ class User extends CommonObject /** * Return number of existing users * - * @param string $limitTo Limit to 'active' or 'superadmin' users - * @param bool $all Return for all entities + * @param string $limitTo Limit to '' or 'active' + * @param string $option 'superadmin' = return for entity 0 only + * @param int $admin Filter on admin tag * @return int Number of users */ - function getNbOfUsers($limitTo='active', $all=false) + function getNbOfUsers($limitTo, $option='', $admin=-1) { global $conf; $sql = "SELECT count(rowid) as nb"; $sql.= " FROM ".MAIN_DB_PREFIX."user"; - if ($limitTo == 'superadmin') + if ($option == 'superadmin') { $sql.= " WHERE entity = 0"; + if ($admin >= 0) $sql.= " AND admin = ".$admin; } else { - if ($all) $sql.= " WHERE entity > 0"; // all users except superadmins - else $sql.= " WHERE entity = ".$conf->entity; + $sql.=" WHERE entity IN (".getEntity('user',0).")"; if ($limitTo == 'active') $sql.= " AND statut = 1"; + if ($admin >= 0) $sql.= " AND admin = ".$admin; } $resql=$this->db->query($sql); @@ -2227,7 +2229,7 @@ class User extends CommonObject } else { - $this->error=$this->db->error(); + $this->error=$this->db->lasterror(); return -1; } } From 143c1e03f8f4ee5227c02742deeb09994d3dea68 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 5 Oct 2015 10:30:49 +0200 Subject: [PATCH 06/46] FIX Missing menu entry for list of thirdparties when using auguria menu manager --- htdocs/core/menus/init_menu_auguria.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 091e94f91bc..8444a855650 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -68,6 +68,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left -- Third parties insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 500__+MAX_llx_menu__, 'companies', 'thirdparties', 2__+MAX_llx_menu__, '/societe/index.php?leftmenu=thirdparties', 'ThirdParty', 0, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 501__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/soc.php?action=create', 'MenuNewThirdParty', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 502__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?action=create', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/fourn/list.php?leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/soc.php?leftmenu=supplier&action=create&type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 506__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/comm/prospect/list.php?leftmenu=prospects', 'ListProspectsShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 3, __ENTITY__); From c9d8e041d56a7bd5cc32681f2be8bdf0ec18fdde Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Mon, 5 Oct 2015 15:20:55 +0200 Subject: [PATCH 07/46] FIX : New adherent from, always redirect on entity --- htdocs/public/members/new.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/public/members/new.php b/htdocs/public/members/new.php index 255e7fe9134..e9c8264d549 100644 --- a/htdocs/public/members/new.php +++ b/htdocs/public/members/new.php @@ -304,7 +304,6 @@ if ($action == 'add') $urlback=DOL_MAIN_URL_ROOT.'/public/paybox/newpayment.php?from=membernewform&source=membersubscription&ref='.$adh->ref; if (price2num(GETPOST('amount'))) $urlback.='&amount='.price2num(GETPOST('amount')); if (GETPOST('email')) $urlback.='&email='.urlencode(GETPOST('email')); - if (! empty($entity)) $urlback.='&entity='.$entity; } else if ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'paypal') { @@ -315,7 +314,7 @@ if ($action == 'add') { $urlback.='&securekey='.dol_hash($conf->global->PAYPAL_SECURITY_TOKEN . 'membersubscription' . $adh->ref, 2); } - if (! empty($entity)) $urlback.='&entity='.$entity; + } else { @@ -324,6 +323,7 @@ if ($action == 'add') } } + if (! empty($entity)) $urlback.='&entity='.$entity; dol_syslog("member ".$adh->ref." was created, we redirect to ".$urlback); Header("Location: ".$urlback); exit; From bf262c2cae6dd7369bb830bcab3aa393789b76fe Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Mon, 5 Oct 2015 15:41:28 +0200 Subject: [PATCH 08/46] reenable search criteria in sql clause --- htdocs/core/class/extrafields.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 8ce0a1b3b45..b46540ad6d9 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -753,7 +753,7 @@ class ExtraFields $sqlwhere.= ' WHERE 1'; } if (in_array($InfoFieldList[0],array('tablewithentity'))) $sqlwhere.= ' AND entity = '.$conf->entity; // Some tables may have field, some other not. For the moment we disable it. - //$sql.=preg_replace('/^ AND /','',$sqlwhere); + $sql.=preg_replace('/^ AND /','',$sqlwhere); //print $sql; dol_syslog(get_class($this).'::showInputField type=sellist sql='.$sql); From e3f225e0389a5ada0927bc6204589b6df345c259 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 5 Oct 2015 17:40:17 +0200 Subject: [PATCH 09/46] FIX bad link into project box --- htdocs/compta/facture/admin/facture_cust_extrafields.php | 1 - htdocs/compta/facture/admin/facturedet_cust_extrafields.php | 1 - htdocs/core/boxes/box_project.php | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/compta/facture/admin/facture_cust_extrafields.php b/htdocs/compta/facture/admin/facture_cust_extrafields.php index 58d4e46f8dd..b9dce92e80f 100644 --- a/htdocs/compta/facture/admin/facture_cust_extrafields.php +++ b/htdocs/compta/facture/admin/facture_cust_extrafields.php @@ -66,7 +66,6 @@ llxHeader('',$langs->trans("BillsSetup")); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("BillsSetup"),$linkback,'title_setup'); -print '
'; $head = invoice_admin_prepare_head(); diff --git a/htdocs/compta/facture/admin/facturedet_cust_extrafields.php b/htdocs/compta/facture/admin/facturedet_cust_extrafields.php index e69060aa3cf..addc23a8378 100644 --- a/htdocs/compta/facture/admin/facturedet_cust_extrafields.php +++ b/htdocs/compta/facture/admin/facturedet_cust_extrafields.php @@ -67,7 +67,6 @@ llxHeader('',$langs->trans("BillsSetup")); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("BillsSetup"),$linkback,'title_setup'); -print '
'; $head = invoice_admin_prepare_head(); diff --git a/htdocs/core/boxes/box_project.php b/htdocs/core/boxes/box_project.php index 703d35b408b..771547686ea 100644 --- a/htdocs/core/boxes/box_project.php +++ b/htdocs/core/boxes/box_project.php @@ -104,7 +104,7 @@ class box_project extends ModeleBoxes 'td' => 'align="left"', 'text' => $objp->ref, 'tooltip' => $tooltip, - 'url' => DOL_URL_ROOT."/product/card.php?id=".$objp->rowid, + 'url' => DOL_URL_ROOT."/projet/card.php?id=".$objp->rowid, ); $this->info_box_contents[$i][2] = array( From d24f5538f9cf1c5e0ce8b0eb7a559111f9b50963 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Mon, 5 Oct 2015 20:25:55 +0200 Subject: [PATCH 10/46] Fix: wrong parameters order --- htdocs/core/class/extrafields.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 99ec23c6a73..40ba0e666ae 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1155,7 +1155,7 @@ class ExtraFields else if (in_array($key_type,array('checkbox'))) { $value_arr=GETPOST("options_".$key.$keyprefix); - $value_key=implode($value_arr,','); + $value_key=implode(',', $value_arr); } else if (in_array($key_type,array('price','double'))) { From 41354ca00d63888f46de15c3ae6c657b3824856d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Mon, 5 Oct 2015 20:30:55 +0200 Subject: [PATCH 11/46] Added type hinting to extrafields object --- htdocs/core/class/commonobject.class.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index f9eeffbb018..a812ccc7bf7 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -3564,16 +3564,16 @@ abstract class CommonObject else return 0; } - /** - * Function to show lines of extrafields with output datas - * - * @param object $extrafields Extrafield Object - * @param string $mode Show output (view) or input (edit) for extrafield - * @param array $params Optionnal parameters - * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) - * - * @return string - */ + /** + * Function to show lines of extrafields with output datas + * + * @param Extrafields $extrafields Extrafield Object + * @param string $mode Show output (view) or input (edit) for extrafield + * @param array $params Optional parameters + * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) + * + * @return string + */ function showOptionals($extrafields, $mode='view', $params=0, $keyprefix='') { global $_POST, $conf; From 3fdd59bf0a06798476566b6fc173ebb3540ef5cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Mon, 5 Oct 2015 20:39:14 +0200 Subject: [PATCH 12/46] Fix #3666 checkbox extrafields on edit --- htdocs/core/class/commonobject.class.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index a812ccc7bf7..99e497046e0 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -3601,7 +3601,16 @@ abstract class CommonObject $value=$this->array_options["options_".$key]; break; case "edit": - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$this->array_options["options_".$key]); + if (isset($_POST["options_" . $key])) { + if (is_array($_POST["options_" . $key])) { + // $_POST["options"] is an array but following code expects a comma separated string + $value = implode(",", $_POST["options_" . $key]); + } else { + $value = $_POST["options_" . $key]; + } + } else { + $value = $this->array_options["options_" . $key]; + } break; } if ($extrafields->attribute_type[$key] == 'separate') From afbee44993e6c5c6ae80f7e46f5eba72bd523fab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Mon, 5 Oct 2015 20:51:17 +0200 Subject: [PATCH 13/46] Fix #3667 checkbox extrafields on edit For actions and members. --- htdocs/adherents/type.php | 11 ++++++++++- htdocs/comm/action/card.php | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index 14bbcb8e854..1819925e723 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -678,7 +678,16 @@ if ($rowid > 0) print '

'; foreach($extrafields->attribute_label as $key=>$label) { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($adht->array_options['options_'.$key])?$adht->array_options['options_'.$key]:'')); + if (isset($_POST["options_" . $key])) { + if (is_array($_POST["options_" . $key])) { + // $_POST["options"] is an array but following code expects a comma separated string + $value = implode(",", $_POST["options_" . $key]); + } else { + $value = $_POST["options_" . $key]; + } + } else { + $value = $adht->array_options["options_" . $key]; + } print '\n"; diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 2e35b8004f0..c011717c0cc 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -1202,7 +1202,16 @@ if ($id > 0) print '

'.$label.''; print $extrafields->showInputField($key,$value); print "
'; foreach($extrafields->attribute_label as $key=>$label) { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options['options_'.$key])?$object->array_options['options_'.$key]:'')); + if (isset($_POST["options_" . $key])) { + if (is_array($_POST["options_" . $key])) { + // $_POST["options"] is an array but following code expects a comma separated string + $value = implode(",", $_POST["options_" . $key]); + } else { + $value = $_POST["options_" . $key]; + } + } else { + $value = $object->array_options["options_" . $key]; + } print '\n"; From f1cf629b80f3e88dbcc3ff7fb94cb9a6ed5a6f51 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 5 Oct 2015 23:52:54 +0200 Subject: [PATCH 14/46] FIX List of project for user that are restrited as sale repreentative to some thirdparties. --- htdocs/projet/list.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index 0debcab2449..ab01f922797 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -48,9 +48,9 @@ if ($socid > 0) if (!$user->rights->projet->lire) accessforbidden(); -$sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"]; -$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"]; -$page = isset($_GET["page"])? $_GET["page"]:$_POST["page"]; +$sortfield = GETPOST("sortfield","alpha"); +$sortorder = GETPOST("sortorder"); +$page = GETPOST("page"); $page = is_numeric($page) ? $page : 0; $page = $page == -1 ? 0 : $page; @@ -140,7 +140,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_lead_status as cls on p.fk_opp_status = cls.rowid"; // We'll need this table joined to the select in order to filter by sale -if ($search_sale > 0 || (! $user->rights->societe->client->voir && ! $socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +if ($search_sale > 0 || (! $user->rights->societe->client->voir && ! $socid)) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON sc.fk_soc = s.rowid"; if ($search_user > 0) { $sql.=", ".MAIN_DB_PREFIX."element_contact as c"; @@ -190,7 +190,8 @@ if ($search_opp_status) if ($search_opp_status == 'none') $sql .= " AND p.fk_opp_status IS NULL"; } if ($search_public!='') $sql .= " AND p.public = ".$db->escape($search_public); -if ($search_sale > 0 || (! $user->rights->societe->client->voir && ! $socid)) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale; +if ($search_sale > 0) $sql.= " AND sc.fk_user = " .$search_sale; +if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND ((s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id.") OR (s.rowid IS NULL))"; if ($search_user > 0) $sql.= " AND c.fk_c_type_contact = tc.rowid AND tc.element='project' AND tc.source='internal' AND c.element_id = p.rowid AND c.fk_socpeople = ".$search_user; // Add where from hooks $parameters=array(); From 9f2bcf0e4f03960abb95ff96b4d017e3f236ec30 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 5 Oct 2015 23:53:49 +0200 Subject: [PATCH 15/46] FIX The admin flag is mising. --- htdocs/user/class/user.class.php | 3 ++- htdocs/user/hierarchy.php | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index b1b7819985c..e375a3c3d80 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -2358,7 +2358,7 @@ class User extends CommonObject $this->load_parentof(); // Init $this->users array - $sql = "SELECT DISTINCT u.rowid, u.firstname, u.lastname, u.fk_user, u.fk_soc, u.login, u.email, u.gender, u.statut, u.entity"; // Distinct reduce pb with old tables with duplicates + $sql = "SELECT DISTINCT u.rowid, u.firstname, u.lastname, u.fk_user, u.fk_soc, u.login, u.email, u.gender, u.admin, u.statut, u.entity"; // Distinct reduce pb with old tables with duplicates $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; if(! empty($conf->multicompany->enabled) && $conf->entity == 1 && (! empty($conf->multicompany->transverse_mode) || (! empty($user->admin) && empty($user->entity)))) { @@ -2388,6 +2388,7 @@ class User extends CommonObject $this->users[$obj->rowid]['entity'] = $obj->entity; $this->users[$obj->rowid]['email'] = $obj->email; $this->users[$obj->rowid]['gender'] = $obj->gender; + $this->users[$obj->rowid]['admin'] = $obj->admin; $i++; } } diff --git a/htdocs/user/hierarchy.php b/htdocs/user/hierarchy.php index ccaf6687da9..ca37b1ff2d3 100644 --- a/htdocs/user/hierarchy.php +++ b/htdocs/user/hierarchy.php @@ -88,7 +88,9 @@ foreach($fulltree as $key => $val) $userstatic->email=$val['email']; $userstatic->gender=$val['gender']; $userstatic->societe_id=$val['fk_soc']; - + $userstatic->admin=$val['admin']; + $userstatic->entity=$val['entity']; + $entity=$val['entity']; $entitystring=''; @@ -109,7 +111,16 @@ foreach($fulltree as $key => $val) } } - $li=$userstatic->getNomUrl(1,'').' ('.$val['login'].($entitystring?' - '.$entitystring:'').')'; + $li=$userstatic->getNomUrl(1,'',0,1); + if (! empty($conf->multicompany->enabled) && $userstatic->admin && ! $userstatic->entity) + { + $li.=img_picto($langs->trans("SuperAdministrator"),'redstar'); + } + else if ($userstatic->admin) + { + $li.=img_picto($langs->trans("Administrator"),'star'); + } + $li.=' ('.$val['login'].($entitystring?' - '.$entitystring:'').')'; $data[] = array( 'rowid'=>$val['rowid'], From d92604f6462a803825b93e01fc9fe72d6aff925d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Oct 2015 00:46:26 +0200 Subject: [PATCH 16/46] FIX Link of project must be cickable if user has permission to read all projects FIX Missing information into the alt of project picto --- htdocs/core/lib/project.lib.php | 2 +- htdocs/projet/class/project.class.php | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index 89d658fa01a..15c4627c4d7 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -348,7 +348,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t $projectstatic->id=$lines[$i]->fk_project; $projectstatic->ref=$lines[$i]->projectref; $projectstatic->public=$lines[$i]->public; - if ($lines[$i]->public || in_array($lines[$i]->fk_project,$projectsArrayId)) print $projectstatic->getNomUrl(1); + if ($lines[$i]->public || in_array($lines[$i]->fk_project,$projectsArrayId) || ! empty($user->rights->projet->all->lire)) print $projectstatic->getNomUrl(1); else print $projectstatic->getNomUrl(1,'nolink'); if ($showlineingray) print ''; print ""; diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 094ae60c59e..68aa963ca8c 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -882,15 +882,17 @@ class Project extends CommonObject $result = ''; $link = ''; $linkend = ''; - $label = '' . $langs->trans("ShowProject") . ''; + $label=''; + if ($option != 'nolink') $label = '' . $langs->trans("ShowProject") . ''; if (! empty($this->ref)) - $label .= '
' . $langs->trans('Ref') . ': ' . $this->ref; + $label .= ($label?'
':'').'' . $langs->trans('Ref') . ': ' . $this->ref; // The space must be after the : to not being explode when showing the title in img_picto if (! empty($this->title)) - $label .= '
' . $langs->trans('Label') . ': ' . $this->title; + $label .= ($label?'
':'').'' . $langs->trans('Label') . ': ' . $this->title; // The space must be after the : to not being explode when showing the title in img_picto if ($moreinpopup) $label.='
'.$moreinpopup; $linkclose = '" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">'; - if ($option != 'nolink') { + if ($option != 'nolink') + { if (preg_match('/\.php$/',$option)) { $link = 'ficheinter->enabled) || ! empty($conf->agenda->enabled) || ! empty($conf->deplacement->enabled)) { $head[$h][0] = DOL_URL_ROOT.'/projet/element.php?id='.$object->id; - $head[$h][1] = $langs->trans("Overview"); + $head[$h][1] = $langs->trans("ProjectOverview"); $head[$h][2] = 'element'; $h++; } From e776f685ba3c509fe64eb07534b1e8f77d33365d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Oct 2015 16:09:24 +0200 Subject: [PATCH 19/46] FIX when editing time spent, date of line suggested was a rubbish value --- htdocs/projet/tasks/time.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index f5eab2587cf..7721633c4e8 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -430,6 +430,8 @@ if ($id > 0 || ! empty($ref)) /* * List of time spent */ + $tasks = array(); + $sql = "SELECT t.rowid, t.task_date, t.task_datehour, t.task_date_withhour, t.task_duration, t.fk_user, t.note, t.thm"; $sql.= ", u.lastname, u.firstname"; $sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t"; @@ -444,7 +446,6 @@ if ($id > 0 || ! empty($ref)) { $num = $db->num_rows($resql); $i = 0; - $tasks = array(); while ($i < $num) { $row = $db->fetch_object($resql); @@ -470,7 +471,7 @@ if ($id > 0 || ! empty($ref)) print '
'; print ''; print ''; - if ($conf->salaries->enabled) + if (! empty($conf->salaries->enabled)) { print ''; } @@ -491,11 +492,11 @@ if ($id > 0 || ! empty($ref)) print ''; From d4a85d9fba6aa47e6643633d3612f0e900e4eae6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Oct 2015 16:12:09 +0200 Subject: [PATCH 20/46] Fix missing css --- htdocs/product/admin/product.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/admin/product.php b/htdocs/product/admin/product.php index 949d180a5ba..c188fb94973 100644 --- a/htdocs/product/admin/product.php +++ b/htdocs/product/admin/product.php @@ -354,7 +354,7 @@ if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) $current_rule='PRODUI if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) $current_rule='PRODUIT_CUSTOMER_PRICES'; if ((!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) && (!empty($conf->global->PRODUIT_MULTIPRICES))) $current_rule='PRODUIT_CUSTOMER_PRICES_BY_QTY&PRODUIT_MULTIPRICES'; print $form->selectarray("princingrule",$select_pricing_rules,$current_rule); -print ''; print ''; From 1f742c7464f9ea99ae8923b120c792da7372f3d3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Oct 2015 16:38:27 +0200 Subject: [PATCH 21/46] FIX Add a test to save life when ref of object (invoice ref, order ref, ...) was empty. The was no way to go back to a clean situation, even after vaidating again the object. --- .../comm/askpricesupplier/class/askpricesupplier.class.php | 4 ++-- htdocs/comm/propal/class/propal.class.php | 4 ++-- htdocs/commande/card.php | 4 ++-- htdocs/commande/class/commande.class.php | 6 +++--- htdocs/compta/facture/class/facture.class.php | 2 +- htdocs/contrat/class/contrat.class.php | 2 +- htdocs/expedition/class/expedition.class.php | 2 +- htdocs/fichinter/class/fichinter.class.php | 2 +- htdocs/fourn/class/fournisseur.commande.class.php | 4 ++-- htdocs/fourn/class/fournisseur.facture.class.php | 2 +- htdocs/fourn/commande/card.php | 5 ++++- htdocs/livraison/class/livraison.class.php | 2 +- 12 files changed, 21 insertions(+), 18 deletions(-) diff --git a/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php b/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php index bee62cb384d..957ea33f60c 100644 --- a/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php +++ b/htdocs/comm/askpricesupplier/class/askpricesupplier.class.php @@ -1289,12 +1289,12 @@ class AskPriceSupplier extends CommonObject $soc->fetch($this->socid); // Define new ref - if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref))) + if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life { $num = $this->getNextNumRef($soc); } else - { + { $num = $this->ref; } $this->newref = $num; diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 421b2506e73..bfbc45b613d 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1481,12 +1481,12 @@ class Propal extends CommonObject $soc->fetch($this->socid); // Define new ref - if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref))) + if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life { $num = $this->getNextNumRef($soc); } else - { + { $num = $this->ref; } $this->newref = $num; diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 94d5c91c94f..db8b94d769a 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2014 Laurent Destailleur + * Copyright (C) 2004-2015 Laurent Destailleur * Copyright (C) 2005 Marc Barilley / Ocebo * Copyright (C) 2005-2015 Regis Houssin * Copyright (C) 2006 Andre Cianfarani @@ -165,7 +165,7 @@ if (empty($reshook)) } } - // Suppression de la commande + // Remove order else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->commande->supprimer) { $result = $object->delete($user); diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 767bf294d6f..e681bfc7726 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -263,14 +263,14 @@ class Commande extends CommonOrder // Protection if ($this->statut == self::STATUS_VALIDATED) { - dol_syslog(get_class($this)."::valid no draft status", LOG_WARNING); + dol_syslog(get_class($this)."::valid action abandonned: no draft status", LOG_WARNING); return 0; } if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->creer)) || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->validate)))) { - $this->error='Permission denied'; + $this->error='ErrorPermissionDenied'; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); return -1; } @@ -287,7 +287,7 @@ class Commande extends CommonOrder $result=$soc->set_as_client(); // Define new ref - if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref))) + if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life { $num = $this->getNextNumRef($soc); } diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index f0668bb0987..80ca5e1f139 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -1827,7 +1827,7 @@ class Facture extends CommonInvoice { $num = $force_number; } - else if (preg_match('/^[\(]?PROV/i', $this->ref)) + else if (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref)) // empty should not happened, but when it occurs, the test save life { if (! empty($conf->global->FAC_FORCE_DATE_VALIDATION)) // If option enabled, we force invoice date { diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index eea23be7ae8..e88f4c95d54 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -402,7 +402,7 @@ class Contrat extends CommonObject $result=$this->thirdparty->set_as_client(); // Define new ref - if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref))) + if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life { $num = $this->getNextNumRef($this->thirdparty); } diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index edd8aa0cd39..b43afdfc206 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -589,7 +589,7 @@ class Expedition extends CommonObject $result=$soc->set_as_client(); // Define new ref - if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref))) + if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life { $numref = $this->getNextNumRef($soc); } diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index d0bcee286d0..fe93bc42143 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -400,7 +400,7 @@ class Fichinter extends CommonObject $now=dol_now(); // Define new ref - if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref))) + if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life { $num = $this->getNextNumRef($this->thirdparty); } diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 9d77deff3ee..54022429fb3 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -388,7 +388,7 @@ class CommandeFournisseur extends CommonOrder $soc->fetch($this->fourn_id); // Check if object has a temporary ref - if (preg_match('/^[\(]?PROV/i', $this->ref)) + if (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref)) // empty should not happened, but when it occurs, the test save life { $num = $this->getNextNumRef($soc); } @@ -684,7 +684,7 @@ class CommandeFournisseur extends CommonOrder $soc->fetch($this->fourn_id); // Check if object has a temporary ref - if (preg_match('/^[\(]?PROV/i', $this->ref)) + if (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref)) // empty should not happened, but when it occurs, the test save life { $num = $this->getNextNumRef($soc); } diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 6a209174d9f..890772326ea 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -925,7 +925,7 @@ class FactureFournisseur extends CommonInvoice { $num = $force_number; } - else if (preg_match('/^[\(]?PROV/i', $this->ref)) + else if (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref)) // empty should not happened, but when it occurs, the test save life { $num = $this->getNextNumRef($this->client); } diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index fccd2652ed3..50bcefc36b2 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -1672,7 +1672,10 @@ elseif (! empty($object->id)) $object->date_commande=dol_now(); // We check if number is temporary number - if (preg_match('/^[\(]?PROV/i',$object->ref)) $newref = $object->getNextNumRef($object->thirdparty); + if (preg_match('/^[\(]?PROV/i',$object->ref) || empty($object->ref)) // empty should not happened, but when it occurs, the test save life + { + $newref = $object->getNextNumRef($object->thirdparty); + } else $newref = $object->ref; if ($newref < 0) diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php index 3a1704f8d8d..175d20a3952 100644 --- a/htdocs/livraison/class/livraison.class.php +++ b/htdocs/livraison/class/livraison.class.php @@ -379,7 +379,7 @@ class Livraison extends CommonObject $soc = new Societe($this->db); $soc->fetch($this->socid); - if (preg_match('/^[\(]?PROV/i', $this->ref)) + if (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref)) // empty should not happened, but when it occurs, the test save life { $numref = $objMod->livraison_get_num($soc,$this); } From c460873c8517527082ab562106d1ed8350b67701 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Oct 2015 17:13:35 +0200 Subject: [PATCH 22/46] FIX The filter on thirdparty prices should be visible if there is at least one thirdparty price. --- htdocs/product/price.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/product/price.php b/htdocs/product/price.php index b3b884cbd7e..49f4779d4e4 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -1286,18 +1286,18 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print ''; print ''; - print ''; - print ''; - print ''; - // Print the search button - print ''; - print ''; - if (count($prodcustprice->lines) > 0) { - $var = False; + print ''; + print ''; + print ''; + // Print the search button + print ''; + print ''; + + $var = False; foreach ($prodcustprice->lines as $line) { From 8426e2e50654f27d1eec24b29c6ef66b8a4f6352 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Oct 2015 18:38:43 +0200 Subject: [PATCH 23/46] FIX Can't reopen a canceled invoice. --- htdocs/commande/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index db8b94d769a..8748b283abe 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -150,7 +150,7 @@ if (empty($reshook)) // Reopen a closed order else if ($action == 'reopen' && $user->rights->commande->creer) { - if ($object->statut == STATUS_CANCELED || $object->statut == Commande::STATUS_CLOSED) + if ($object->statut == Commande::STATUS_CANCELED || $object->statut == Commande::STATUS_CLOSED) { $result = $object->set_reopen($user); if ($result > 0) From 72cabe2fc3fb9fbec5962b190a7c572eeffae399 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Oct 2015 19:27:48 +0200 Subject: [PATCH 24/46] More complete description of margin rules calculation --- htdocs/langs/en_US/margins.lang | 2 +- htdocs/langs/fr_FR/margins.lang | 2 +- htdocs/margin/admin/margin.php | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/langs/en_US/margins.lang b/htdocs/langs/en_US/margins.lang index eeaace73523..eb77ca9fe4c 100644 --- a/htdocs/langs/en_US/margins.lang +++ b/htdocs/langs/en_US/margins.lang @@ -36,7 +36,7 @@ MargeNette=Net margin MargeType1=Margin on Best supplier price MargeType2=Margin on Weighted Average Price (WAP) MARGIN_TYPE_DETAILS=Raw margin : Selling price - Buying price
Net margin : Selling price - Cost price -MarginTypeDesc=Margin on best buying price : Selling price - Best supplier price defined on product card
Margin on Weighted Average Price (WAP) : Selling price - Product Weighted Average Price +MarginTypeDesc=Margin on best buying price : Selling price - Best supplier price defined on product card
Margin on Weighted Average Price (WAP) : Selling price - Product Weighted Average Price (WAP) or best supplier price if WAP not yet defined CostPrice=Cost price BuyingCost=Cost price UnitCharges=Unit charges diff --git a/htdocs/langs/fr_FR/margins.lang b/htdocs/langs/fr_FR/margins.lang index ce14fb1e4ed..dd74d684d68 100644 --- a/htdocs/langs/fr_FR/margins.lang +++ b/htdocs/langs/fr_FR/margins.lang @@ -36,7 +36,7 @@ MargeNette=Marge nette MargeType1=Marge sur le meilleur prix fournisseur MargeType2=Marge sur le Prix Moyen Pondéré (PMP) MARGIN_TYPE_DETAILS=Marge brute : Prix de vente HT - Prix d'achat HT
Marge nette : Prix de vente HT - Weighted Average Price -MarginTypeDesc=Marge sur le meilleur prix d'achat fournisseur: Prix de vente - Meilleur prix d'achat défini sur la fiche produit
Marge sur le Prix Moyen Pondéré (PMP): Prix de vente - Prix Moyen Pondéré du produit +MarginTypeDesc=Marge sur le meilleur prix d'achat fournisseur: Prix de vente - Meilleur prix d'achat défini sur la fiche produit
Marge sur le Prix Moyen Pondéré (PMP): Prix de vente - Prix Moyen Pondéré du produit (PMP) ou meilleur prix d'achat si PMP non défini CostPrice=Prix de revient BuyingCost=Coût de revient UnitCharges=Charge unitaire diff --git a/htdocs/margin/admin/margin.php b/htdocs/margin/admin/margin.php index 2ad51c4fb28..b332deeb4a9 100644 --- a/htdocs/margin/admin/margin.php +++ b/htdocs/margin/admin/margin.php @@ -164,7 +164,6 @@ print '
'; print ''; print ''; print ''; From 425e7ce808009500ab04f0ef885723a629a68c22 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Wed, 7 Oct 2015 22:31:23 +0200 Subject: [PATCH 25/46] Fix : ER Show date in english format --- htdocs/expensereport/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 7220e869350..fed76abed07 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -1669,7 +1669,7 @@ else print img_picto($langs->trans("Document"), "object_generic"); print ' '.$piece_comptable.''; } - print ''; + print ''; print '\n"; // Can edit @@ -197,7 +197,7 @@ if (! empty($conf->paybox->enabled) || ! empty($conf->paypal->enabled)) print '\n"; } diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 94f12a61f8b..a2fe0763e97 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -249,7 +249,7 @@ if (empty($reshook)) } $lastname=$_POST["lastname"]; $firstname=$_POST["firstname"]; - $morphy=$morphy=$_POST["morphy"];; + $morphy=$morphy=$_POST["morphy"]; if ($morphy != 'mor' && empty($lastname)) { $error++; $langs->load("errors"); diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 580770e7ba2..ae8ce969f70 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -913,7 +913,7 @@ if ($id) print ""; $colspan=count($fieldlist)+2; - if ($id == 4) $colspan++;; + if ($id == 4) $colspan++; if (! empty($alabelisused)) // Si un des champs est un libelle { diff --git a/htdocs/cashdesk/admin/cashdesk.php b/htdocs/cashdesk/admin/cashdesk.php index 7571befb121..15f15cedc10 100644 --- a/htdocs/cashdesk/admin/cashdesk.php +++ b/htdocs/cashdesk/admin/cashdesk.php @@ -164,7 +164,7 @@ if (! empty($conf->service->enabled)) $var=! $var; print '\n"; } diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index b9876bb8382..7814b198a02 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -1164,7 +1164,7 @@ class Categorie extends CommonObject { $cats = array(); - $typeid=-1; $table='';; + $typeid=-1; $table=''; if ($type == '0' || $type == 'product') { $typeid=0; $table='product'; $type='product'; } else if ($type == '1' || $type == 'supplier') { $typeid=1; $table='societe'; $type='fournisseur'; } else if ($type == '2' || $type == 'customer') { $typeid=2; $table='societe'; $type='societe'; } diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index e4afe6f2b25..c5ca2ef3835 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -343,7 +343,7 @@ else elseif ($links[$key]['type']=='payment_supplier') { $paymentsupplierstatic->id=$links[$key]['url_id']; - $paymentsupplierstatic->ref=$langs->trans("Payment");; + $paymentsupplierstatic->ref=$langs->trans("Payment"); print ' '.$paymentsupplierstatic->getNomUrl(1); $newline=0; } diff --git a/htdocs/compta/stats/index.php b/htdocs/compta/stats/index.php index cfd816c29b6..8dfb0d76fc0 100644 --- a/htdocs/compta/stats/index.php +++ b/htdocs/compta/stats/index.php @@ -298,7 +298,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++) if ($annee_decalage != $year_end) print ''; } - $total_ht[$annee]+=!empty($cum_ht[$case]) ? $cum_ht[$case] : 0;; + $total_ht[$annee]+=!empty($cum_ht[$case]) ? $cum_ht[$case] : 0; $total[$annee]+=$cum[$case]; } diff --git a/htdocs/core/lib/memory.lib.php b/htdocs/core/lib/memory.lib.php index a6fae1c7b1f..b68016c3a46 100644 --- a/htdocs/core/lib/memory.lib.php +++ b/htdocs/core/lib/memory.lib.php @@ -231,7 +231,7 @@ function dol_getshmop($memoryid) global $shmkeys,$shmoffset; if (empty($shmkeys[$memoryid]) || ! function_exists("shmop_open")) return 0; - $shmkey=dol_getshmopaddress($memoryid);; + $shmkey=dol_getshmopaddress($memoryid); //print 'dol_getshmop memoryid='.$memoryid." shmkey=".$shmkey."
\n"; $handle=@shmop_open($shmkey,'a',0,0); if ($handle) diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index f3e77916c4b..6b636e99462 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -121,17 +121,17 @@ function task_prepare_head($object) $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/task.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; + $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/task.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':''); $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'task_task'; $h++; - $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/contact.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; + $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/contact.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':''); $head[$h][1] = $langs->trans("TaskRessourceLinks"); $head[$h][2] = 'task_contact'; $h++; - $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/time.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; + $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/time.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':''); $head[$h][1] = $langs->trans("TimeSpent"); $head[$h][2] = 'task_time'; $h++; @@ -147,14 +147,14 @@ function task_prepare_head($object) $nbNote = 0; if(!empty($object->note_private)) $nbNote++; if(!empty($object->note_public)) $nbNote++; - $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/note.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; + $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/note.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':''); $head[$h][1] = $langs->trans('Notes'); if ($nbNote > 0) $head[$h][1].= ' '.$nbNote.''; $head[$h][2] = 'task_notes'; $h++; } - $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/document.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; + $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/document.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':''); $filesdir = $conf->projet->dir_output . "/" . dol_sanitizeFileName($object->project->ref) . '/' .dol_sanitizeFileName($object->ref); include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $listoffiles=dol_dir_list($filesdir,'files',1,'','thumbs'); diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php index 011f3d26de0..de705111b9d 100644 --- a/htdocs/core/lib/tax.lib.php +++ b/htdocs/core/lib/tax.lib.php @@ -494,7 +494,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, $sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2)"; else $sql.= " AND f.type IN (0,1,2,3)"; - $sql.= " AND f.rowid = d.".$fk_facture;; + $sql.= " AND f.rowid = d.".$fk_facture; $sql.= " AND pf.".$fk_facture2." = f.rowid"; $sql.= " AND pa.rowid = pf.".$fk_payment; if ($y && $m) diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index cd3a35e4060..989418794bc 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -376,7 +376,7 @@ class ImportCsv extends ModeleImports if ($obj) $tablewithentity_cache[$tablename]=1; // table contains entity field else $tablewithentity_cache[$tablename]=0; // table does not contains entity field } - else dol_print_error($this->db);; + else dol_print_error($this->db); } else { diff --git a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php index c074cba31e5..18f0c2fed88 100644 --- a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php +++ b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php @@ -416,7 +416,7 @@ class doc_generic_task_odt extends ModelePDFTask $project= new Project($this->db); $project->fetch($object->fk_project); - $dir = $conf->projet->dir_output. "/" . $project->ref. "/";; + $dir = $conf->projet->dir_output. "/" . $project->ref. "/"; $objectref = dol_sanitizeFileName($object->ref); if (! preg_match('/specimen/i',$objectref)) $dir.= "/" . $objectref; $file = $dir . "/" . $objectref . ".odt"; diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php index 1a89a377fef..cf30a7dfcac 100644 --- a/htdocs/livraison/card.php +++ b/htdocs/livraison/card.php @@ -383,7 +383,7 @@ if ($action == 'create') */ print '
'; $quantite_commandee = $line->qty; diff --git a/htdocs/opensurvey/card.php b/htdocs/opensurvey/card.php index 70e1b49ad48..7096c3947b2 100644 --- a/htdocs/opensurvey/card.php +++ b/htdocs/opensurvey/card.php @@ -367,7 +367,7 @@ if ($comments) { } else { - print $langs->trans("NoCommentYet").'
';; + print $langs->trans("NoCommentYet").'
'; } print '
'; diff --git a/htdocs/product/composition/card.php b/htdocs/product/composition/card.php index ec616b2f222..89760dc66ba 100644 --- a/htdocs/product/composition/card.php +++ b/htdocs/product/composition/card.php @@ -252,7 +252,7 @@ if ($id > 0 || ! empty($ref)) $productstatic->type=$value["fk_product_type"]; $productstatic->ref=$value['label']; print '
'; - print '';; + print ''; print ''; } print '
'.$label.''; print $extrafields->showOutputField($key,$value); print "
'.$langs->trans("By").''.$langs->trans("Note").''.$langs->trans("TimeSpent").''.$langs->trans("Value").''; if ($_GET['action'] == 'editline' && $_GET['lineid'] == $task_time->rowid) { - print $form->select_date($db->jdate($date2?$date2:$date1),'timeline',1,1,2,"timespent_date",1,0,1); + print $form->select_date(($date2?$date2:$date1),'timeline',1,1,2,"timespent_date",1,0,1); } else { - print dol_print_date($date2?$date2:$date1,($task_time->task_date_withhour?'dayhour':'day')); + print dol_print_date(($date2?$date2:$date1),($task_time->task_date_withhour?'dayhour':'day')); } print ''; +print ''; print ''; print '
 
 '; - print ''; - print '
 '; + print ''; + print '
'; print ''; print ''.$langs->trans('MarginTypeDesc'); -print ' ('.$langs->trans("PMPValueShort").')'; print '
'.$objp->date.''.dol_print_date($db->jdate($objp->date), 'day').''; if ($objp->projet_id > 0) { From 0e343ae3b2920ccd01353f2216d4d81ac0d66470 Mon Sep 17 00:00:00 2001 From: philippe grand Date: Thu, 8 Oct 2015 09:34:02 +0200 Subject: [PATCH 26/46] syntax error --- htdocs/adherents/admin/public.php | 4 ++-- htdocs/adherents/card.php | 2 +- htdocs/admin/dict.php | 2 +- htdocs/cashdesk/admin/cashdesk.php | 2 +- htdocs/categories/class/categorie.class.php | 2 +- htdocs/compta/bank/releve.php | 2 +- htdocs/compta/stats/index.php | 2 +- htdocs/core/lib/memory.lib.php | 2 +- htdocs/core/lib/project.lib.php | 10 +++++----- htdocs/core/lib/tax.lib.php | 2 +- htdocs/core/modules/import/import_csv.modules.php | 2 +- .../project/task/doc/doc_generic_task_odt.modules.php | 2 +- htdocs/livraison/card.php | 2 +- htdocs/opensurvey/card.php | 2 +- htdocs/product/composition/card.php | 4 ++-- htdocs/product/stock/valo.php | 2 +- htdocs/projet/note.php | 2 +- htdocs/societe/canvas/company/tpl/card_view.tpl.php | 2 +- htdocs/societe/canvas/individual/tpl/card_view.tpl.php | 2 +- htdocs/webservices/demo_wsclient_actioncomm.php-NORUN | 4 ++-- htdocs/webservices/demo_wsclient_category.php-NORUN | 4 ++-- htdocs/webservices/demo_wsclient_invoice.php-NORUN | 4 ++-- htdocs/webservices/demo_wsclient_other.php-NORUN | 4 ++-- .../demo_wsclient_productorservice.php-NORUN | 4 ++-- htdocs/webservices/demo_wsclient_thirdparty.php-NORUN | 4 ++-- .../email_expire_services_to_representatives.php | 2 +- .../email_unpaid_invoices_to_representatives.php | 2 +- 27 files changed, 39 insertions(+), 39 deletions(-) diff --git a/htdocs/adherents/admin/public.php b/htdocs/adherents/admin/public.php index 088f96b00c1..e8381584355 100644 --- a/htdocs/adherents/admin/public.php +++ b/htdocs/adherents/admin/public.php @@ -164,7 +164,7 @@ print ''; print '
'; print $langs->trans("DefaultAmount"); print ''; -print '';; +print ''; print "
'; print $langs->trans("MEMBER_PAYONLINE_SENDEMAIL"); print ''; - print '';; + print ''; print "
'; print $langs->trans("CashdeskShowServices"); - print '';; + print ''; print $form->selectyesno("CASHDESK_SERVICES",$conf->global->CASHDESK_SERVICES,1); print "
 '; $quantite_livree = $commande->livraisons[$line->id]; - print $quantite_livree;; + print $quantite_livree; print '
'.$productstatic->getNomUrl(1,'composition').''.$productstatic->getNomUrl(1,'composition').'
'; @@ -401,7 +401,7 @@ if ($id > 0 || ! empty($ref)) $productstatic->type=$value["fk_product_type"]; $productstatic->ref=$value['label']; print ''; - print ''.$productstatic->getNomUrl(1,'composition').'';; + print ''.$productstatic->getNomUrl(1,'composition').''; print ''; } print ''; diff --git a/htdocs/product/stock/valo.php b/htdocs/product/stock/valo.php index 7c73da3794c..59b4f895b73 100644 --- a/htdocs/product/stock/valo.php +++ b/htdocs/product/stock/valo.php @@ -31,7 +31,7 @@ $langs->load("stocks"); // Security check $result=restrictedArea($user,'stock'); -$sref=GETPOST("sref");; +$sref=GETPOST("sref"); $snom=GETPOST("snom"); $sall=GETPOST("sall"); diff --git a/htdocs/projet/note.php b/htdocs/projet/note.php index b581ca01be9..0091ffcc23b 100644 --- a/htdocs/projet/note.php +++ b/htdocs/projet/note.php @@ -131,7 +131,7 @@ if ($id > 0 || ! empty($ref)) $colwidth=30; include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; - dol_fiche_end();; + dol_fiche_end(); } llxFooter(); diff --git a/htdocs/societe/canvas/company/tpl/card_view.tpl.php b/htdocs/societe/canvas/company/tpl/card_view.tpl.php index 4ea5afcbdcb..26c1e77742f 100644 --- a/htdocs/societe/canvas/company/tpl/card_view.tpl.php +++ b/htdocs/societe/canvas/company/tpl/card_view.tpl.php @@ -107,7 +107,7 @@ dol_fiche_head($head, 'card', $langs->trans("ThirdParty"),0,'company'); trans('EMail'); ?> - control->tpl['email'];; ?> + control->tpl['email']; ?> trans('Web'); ?> control->tpl['url']; ?> diff --git a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php index d2fc7e5551b..bc83f2955da 100644 --- a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php +++ b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php @@ -106,7 +106,7 @@ dol_fiche_head($head, 'card', $langs->trans("ThirdParty"),0,'company'); trans('EMail'); ?> - control->tpl['email'];; ?> + control->tpl['email']; ?> trans('Web'); ?> control->tpl['url']; ?> diff --git a/htdocs/webservices/demo_wsclient_actioncomm.php-NORUN b/htdocs/webservices/demo_wsclient_actioncomm.php-NORUN index 1e14c07a5bf..d3044fc9bd8 100755 --- a/htdocs/webservices/demo_wsclient_actioncomm.php-NORUN +++ b/htdocs/webservices/demo_wsclient_actioncomm.php-NORUN @@ -160,6 +160,6 @@ echo ''; echo '

SOAP Message

'; echo '
' . htmlspecialchars($soapclient->response, ENT_QUOTES) . '
'; -echo ''."\n";; -echo ''."\n";; +echo ''."\n"; +echo ''."\n"; ?> diff --git a/htdocs/webservices/demo_wsclient_category.php-NORUN b/htdocs/webservices/demo_wsclient_category.php-NORUN index 0793fd1806c..e0d78681eac 100755 --- a/htdocs/webservices/demo_wsclient_category.php-NORUN +++ b/htdocs/webservices/demo_wsclient_category.php-NORUN @@ -92,6 +92,6 @@ echo '

SOAP Message

'; echo '
' . htmlspecialchars($soapclient->response, ENT_QUOTES) . '
'; -echo ''."\n";; -echo ''."\n";; +echo ''."\n"; +echo ''."\n"; ?> diff --git a/htdocs/webservices/demo_wsclient_invoice.php-NORUN b/htdocs/webservices/demo_wsclient_invoice.php-NORUN index ad6612692fc..8708e89e13f 100755 --- a/htdocs/webservices/demo_wsclient_invoice.php-NORUN +++ b/htdocs/webservices/demo_wsclient_invoice.php-NORUN @@ -136,6 +136,6 @@ echo ''; echo '

SOAP Message

'; echo '
' . htmlspecialchars($soapclient2->response, ENT_QUOTES) . '
'; -echo ''."\n";; -echo ''."\n";; +echo ''."\n"; +echo ''."\n"; ?> diff --git a/htdocs/webservices/demo_wsclient_other.php-NORUN b/htdocs/webservices/demo_wsclient_other.php-NORUN index 60c801e10fc..0de1ac6b71a 100755 --- a/htdocs/webservices/demo_wsclient_other.php-NORUN +++ b/htdocs/webservices/demo_wsclient_other.php-NORUN @@ -99,6 +99,6 @@ echo ''; echo '

SOAP Message

'; echo '
' . htmlspecialchars($soapclient->response, ENT_QUOTES) . '
'; -echo ''."\n";; -echo ''."\n";; +echo ''."\n"; +echo ''."\n"; ?> diff --git a/htdocs/webservices/demo_wsclient_productorservice.php-NORUN b/htdocs/webservices/demo_wsclient_productorservice.php-NORUN index e27db313bfc..e684a39b1e7 100755 --- a/htdocs/webservices/demo_wsclient_productorservice.php-NORUN +++ b/htdocs/webservices/demo_wsclient_productorservice.php-NORUN @@ -177,6 +177,6 @@ echo ''; echo '

SOAP Message

'; echo '
' . htmlspecialchars($soapclient3->response, ENT_QUOTES) . '
'; -echo ''."\n";; -echo ''."\n";; +echo ''."\n"; +echo ''."\n"; ?> diff --git a/htdocs/webservices/demo_wsclient_thirdparty.php-NORUN b/htdocs/webservices/demo_wsclient_thirdparty.php-NORUN index 3260549b712..45f3d89939f 100755 --- a/htdocs/webservices/demo_wsclient_thirdparty.php-NORUN +++ b/htdocs/webservices/demo_wsclient_thirdparty.php-NORUN @@ -223,6 +223,6 @@ echo ''; echo '

SOAP Message

'; echo '
' . htmlspecialchars($soapclient->response, ENT_QUOTES) . '
'; -echo ''."\n";; -echo ''."\n";; +echo ''."\n"; +echo ''."\n"; ?> diff --git a/scripts/contracts/email_expire_services_to_representatives.php b/scripts/contracts/email_expire_services_to_representatives.php index ae51af38009..44ccb4c7e97 100755 --- a/scripts/contracts/email_expire_services_to_representatives.php +++ b/scripts/contracts/email_expire_services_to_representatives.php @@ -116,7 +116,7 @@ if ($resql) $oldemail = $obj->email; $olduid = $obj->uid; $oldlang = $obj->lang; - $oldsalerepresentative=dolGetFirstLastname($obj->firstname, $obj->lastname);; + $oldsalerepresentative=dolGetFirstLastname($obj->firstname, $obj->lastname); $message = ''; $total = 0; $foundtoprocess = 0; diff --git a/scripts/invoices/email_unpaid_invoices_to_representatives.php b/scripts/invoices/email_unpaid_invoices_to_representatives.php index 2960e2eb685..2870766ff21 100755 --- a/scripts/invoices/email_unpaid_invoices_to_representatives.php +++ b/scripts/invoices/email_unpaid_invoices_to_representatives.php @@ -120,7 +120,7 @@ if ($resql) $oldemail = $obj->email; $olduid = $obj->uid; $oldlang = $obj->lang; - $oldsalerepresentative=dolGetFirstLastname($obj->firstname, $obj->lastname);; + $oldsalerepresentative=dolGetFirstLastname($obj->firstname, $obj->lastname); $message = ''; $total = 0; $foundtoprocess = 0; From 0841feda4709c8404070956d8a779795205bb520 Mon Sep 17 00:00:00 2001 From: philippe grand Date: Thu, 8 Oct 2015 09:40:00 +0200 Subject: [PATCH 27/46] syntax error --- htdocs/adherents/admin/public.php | 2 +- htdocs/contrat/card.php | 2 +- htdocs/public/api/explorer/lib/handlebars-1.0.rc.1.js | 4 ++-- .../api/explorer/lib/handlebars.runtime-1.0.0.beta.6.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/adherents/admin/public.php b/htdocs/adherents/admin/public.php index 187f71e93a8..299f315fc7a 100644 --- a/htdocs/adherents/admin/public.php +++ b/htdocs/adherents/admin/public.php @@ -200,7 +200,7 @@ if (! empty($conf->paybox->enabled) || ! empty($conf->paypal->enabled)) print ''; print $langs->trans("MEMBER_PAYONLINE_SENDEMAIL"); print ''; - print '';; + print ''; print "\n"; } diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index 1d2e3355b24..ef7ff8e5522 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -793,7 +793,7 @@ else if ($action == 'confirm_move' && $confirm == 'yes' && $user->rights->contra setEventMessage($object->errors, 'errors'); } - $result = $object->setValueFrom('ref',GETPOST('ref','alpha'));; + $result = $object->setValueFrom('ref',GETPOST('ref','alpha')); if ($result < 0) { setEventMessage($object->errors, 'errors'); $action = 'editref'; diff --git a/htdocs/public/api/explorer/lib/handlebars-1.0.rc.1.js b/htdocs/public/api/explorer/lib/handlebars-1.0.rc.1.js index 05346370a20..81524621ae5 100644 --- a/htdocs/public/api/explorer/lib/handlebars-1.0.rc.1.js +++ b/htdocs/public/api/explorer/lib/handlebars-1.0.rc.1.js @@ -726,7 +726,7 @@ Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); }; this.comment = comment; }; -})();; +})(); // lib/handlebars/utils.js Handlebars.Exception = function(message) { var tmp = Error.prototype.constructor.apply(this, arguments); @@ -791,7 +791,7 @@ Handlebars.SafeString.prototype.toString = function() { } } }; -})();; +})(); // lib/handlebars/compiler/compiler.js /*jshint eqnull:true*/ diff --git a/htdocs/public/api/explorer/lib/handlebars.runtime-1.0.0.beta.6.js b/htdocs/public/api/explorer/lib/handlebars.runtime-1.0.0.beta.6.js index 987a5cd4d66..d73e043af18 100644 --- a/htdocs/public/api/explorer/lib/handlebars.runtime-1.0.0.beta.6.js +++ b/htdocs/public/api/explorer/lib/handlebars.runtime-1.0.0.beta.6.js @@ -156,7 +156,7 @@ Handlebars.SafeString.prototype.toString = function() { } } }; -})();; +})(); // lib/handlebars/runtime.js Handlebars.VM = { template: function(templateSpec) { From 1f2a86078a22767782cc0fa41b3f09a2b21b1776 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Thu, 8 Oct 2015 11:03:08 +0200 Subject: [PATCH 28/46] FIX : Always use type send in parameters in showCategories method --- htdocs/core/class/html.form.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index a4716ba40cc..87d177e5d7d 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4696,7 +4696,7 @@ class Form if ($rendermode == 0) { - $cate_arbo = $this->select_all_categories(Categorie::TYPE_PRODUCT, '', 'parent', 64, 0, 1); + $cate_arbo = $this->select_all_categories($type, '', 'parent', 64, 0, 1); foreach($categories as $c) { $arrayselected[] = $c->id; } From 497c751fb9e8a740c70735d3e6671558a593963c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Fri, 9 Oct 2015 16:24:42 +0200 Subject: [PATCH 29/46] Fix: remove debugging leftover --- htdocs/societe/class/societe.class.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 11f29f79089..af54c7b8742 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -3386,8 +3386,6 @@ class Societe extends CommonObject // Diff if (is_array($existing)) { - var_dump($existing); - var_dump($categories); $to_del = array_diff($existing, $categories); $to_add = array_diff($categories, $existing); } else { From 3f8e9bd1810450d05974d770fdf64d8707139273 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 10 Oct 2015 19:24:31 +0200 Subject: [PATCH 30/46] Remove warning --- htdocs/product/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/index.php b/htdocs/product/index.php index a8502498e41..2803c2d06ad 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -299,7 +299,7 @@ if ($result) if (empty($conf->global->PRODUIT_MULTIPRICES)) { print ''; - if ($objp->price_base_type == 'TTC') print price($objp->price_ttc).' '.$langs->trans("TTC"); + if (isset($objp->price_base_type) && $objp->price_base_type == 'TTC') print price($objp->price_ttc).' '.$langs->trans("TTC"); else print price($objp->price).' '.$langs->trans("HT"); print ''; } From 9f1fa7e212be3a879e8604b7140469b6f973ed60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 11 Oct 2015 12:32:02 +0200 Subject: [PATCH 31/46] Missing changelog --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index f83979aa8e0..51ae09529f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,9 @@ English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 3.6.5 compared to 3.6.4 ***** +- Fix: [ bug #1794 ] Error when cloning Proposal gives error in a malformed page + ***** ChangeLog for 3.6.4 compared to 3.6.3 ***** - Fix: [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask From fd9f51df88927d9a41c62d50fc6a04d2d6fa515a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 11 Oct 2015 12:39:42 +0200 Subject: [PATCH 32/46] Missing changelog --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index f83979aa8e0..3bc56c5de5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,9 @@ English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 3.6.5 compared to 3.6.4 ***** +- Fix: [ bug #1776 ] Undefined $deliverycompany variable in pdf_build_address + ***** ChangeLog for 3.6.4 compared to 3.6.3 ***** - Fix: [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask From f8f600828df1abc384acad4284be3c6fd72f35e2 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sun, 11 Oct 2015 19:18:03 +0200 Subject: [PATCH 33/46] Fix: wrong files name --- htdocs/install/inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php index c0af9185d35..7768422451b 100644 --- a/htdocs/install/inc.php +++ b/htdocs/install/inc.php @@ -375,13 +375,13 @@ function pHeader($subtitle,$next,$action='set',$param='',$forcejqueryurl='') print ''."\n"; if ($jQueryUiCustomPath) print ''."\n"; // JQuery - else print ''."\n"; // JQuery + else print ''."\n"; // JQuery print ''."\n"; if ($jQueryCustomPath) print ''."\n"; else print ''."\n"; if ($jQueryUiCustomPath) print ''."\n"; - else print ''."\n"; + else print ''."\n"; print ''.$langs->trans("DolibarrSetup").''."\n"; print ''."\n"; From a8e52f9c541a17120df28d062897af4ea96813d8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 11 Oct 2015 19:45:53 +0200 Subject: [PATCH 34/46] Update filelist --- htdocs/install/filelist.xml | 2218 +++++++++++++++++------------------ 1 file changed, 1105 insertions(+), 1113 deletions(-) diff --git a/htdocs/install/filelist.xml b/htdocs/install/filelist.xml index fb931f9fcdc..0484184115b 100644 --- a/htdocs/install/filelist.xml +++ b/htdocs/install/filelist.xml @@ -1,5 +1,5 @@ - + d41d8cd98f00b204e9800998ecf8427e @@ -66,7 +66,7 @@ d41d8cd98f00b204e9800998ecf8427e -09889ea5df64284a0e7753cbdf134a53 +7aba69716e92939377bccee8b5c4ada2 d41d8cd98f00b204e9800998ecf8427e @@ -96,11 +96,11 @@ d0a6afda3d75393d3a09e43bb1135b87 -9f1898d4f913c53b7135cb00cccd872c +0f28a7630e864c959d4fb6d6f92304b0 a92b0b6374f698c980928a3bee17ff9a 92c1d275d0117efbece0312787a0736c f8ba5662241d9c908f1f791f72481eb7 -2f1931c293e0ab260b31e2d1b0134f73 +491d3762c5040d7f09f82be0b27ddbea 7367da82258c07fb35aaf3aafd3e1bb7 dd9cf0fdcd7a32f49882b31d894f9bcb eb6e5f08d24f10bdb9f17e6da6f1df6e @@ -111,7 +111,7 @@ b702c4be259106f2e031a8d7a57462a9 ab13e413223fede4e27cdd0d5a112cd4 876371cf283ebd2982d4cacc1640536c -7f5ed41c70e65cc91e731dbf88692d8d +c7db3ca4d5477082bd3251f7d02170ea e3fa076bfc94a80430f9a32aee318da8 c31f65e979da57d157bfb7ec4cdc65df 2a13bfa6db4c63aeab46d3aa2beb353c @@ -127,7 +127,7 @@ 408203a970401705d1735235ba7be850 -9f7444785dc0a2a5670401c4d029f80a +f931df27f98e7f817c266281013860cb b3d708e374e21a5b90cd9b4fc0be482a 52c51ac0c1e841314d48328b7c32b7d3 9d56c5024279a4f5f9b799c6950f18ef @@ -189,7 +189,7 @@ 8868b7d0779aa09e9b52c965e1e96b8a 5c06b9772a487667c388ae2b5714fa91 b2e983fe3f64bb7ec0bd09a8d7225acc -479c9172c6429e0b8a59745beaaff7e2 +f4852e3a84cb84e07ab5a08e082bdb69 bc667a42f1ade75c59cb5ad6103847b7 d63455783346f56c804c166f71bf72b0 31bbae8a1de3e1fb630ac4d83db62d71 @@ -208,7 +208,7 @@ d41d8cd98f00b204e9800998ecf8427e -a5cff5f7aba2c3c8537838168d619b3d +59cb9f641e231673bed98341a8208d40 667cd8a71a675fe06ea29427443e4642 @@ -6029,7 +6029,7 @@ c2187f1d78aecd78bf874e49a926eeb1 -113c537c0a66f07a58e9ba754a7ee2a7 +1c8f0e528720a9c9ded24e76518c9341 6d6695e08c63ce635ca3e2f6a1d6f402 1272ec0d12432850c50005d9c1bb9d92 @@ -6045,7 +6045,7 @@ e3620f73f3a1650f7fdb53e6c44a1c07 -c9851093aa835ac2ab1bdd30e6c9befb +b6255a08ce51ab32895aa41e6230a3f7 7724aa95e287dd12bfcd6a4a9c0e0e72 c2e932610f10f683fb0111a7b7722565 @@ -6060,7 +6060,7 @@ 93b60211370f85ea2df9ee8602e27ac4 -e53980bde7980a91e1a3928370d83559 +e697c15fe969eb5405e16bc49264fa01 0860d2328e5a333731cf95de440f4356 3a728460147fb9af7faf0e587b9fbf42 e80584be003f3f3d859e629c1e84f65f @@ -6068,7 +6068,7 @@ 7438b3ef10b182042dfa722f99ef2574 0899f764c85bbcc13206e3dd8318e678 9f8b43fd1df78dca0827c73e29890865 -ec44fc1fce201dba598024843be29c80 +69583ccb35ec8ad521dd0d9f6814b865 bfefe70e3951f1883a84e7bc4033fe97 @@ -6088,7 +6088,7 @@ ac2861b424e2b7e30a532f37b33d6889 4b9acab98ecbda7e226a1f6848ddfc41 913604462a67f54fd2b2e439373687f1 -b9f9aa3edd84818810e333354981c3ad +cc81befc15da5b8f83fcde8548f3b443 d727abe4a721179026bbf1092cec946c @@ -6151,7 +6151,7 @@ d41d8cd98f00b204e9800998ecf8427e -45b8385dda542a916314adeab20de308 +043214cfec88cbe08e22a93ca425eb13 7b22629626fc5f780cced1f6d817d57b 7dc0092414e8a0160f715413907ef350 @@ -6193,17 +6193,17 @@ 4d9613e1a21fa012ac864d96f1a62112 858d2732221359ba9e0a9965353848c3 -df81fe06744adbdbcf27a69f0b4ce55e +877f5ab5413561ff0dc4afaee336b4a0 d59f578b7eb5f374eda40295072f0fae -c24b93c08c98cf333d2e7652e60456c9 +b928537bcc970549c357bb80ef5ad16f d41d8cd98f00b204e9800998ecf8427e 5c09b3d75fcba736c3353468236e5338 563dbdf25cbfd4e4b50649530f7e1151 -655f7d2edc22d92a676b4f5ea041879e +261d1bb522fccdea41b2573ee4fbf277 0a81d81144952f49baecb31cfc610fee @@ -6224,17 +6224,17 @@ d4bf21d9624e8fef1f9d20465d2e5503 62fc08bff6c9c08fc68bd5ddab35e443 24ec97e48bfe034f3ee795ae9ceb282f -4ec443ce7e02d8c6dff96fc0cbd6c285 +f1039a951ab36cebafbbabd8a4117e73 -a297bb14700fc91ffe3a8ace3d2f7751 -cead2ff721855338e0d61128ffc2ecc5 +b0ddf2ae9be37ebe13ac48a6881616a1 +e4a04d30006545f88d06bd507e542506 25b3ce6e2f12f227c4a1ac8db9fab357 af321d136a1e674037ba2c163db3d2b2 0d79377d6dbbc92ac4ca0db3ede4c00f -9293af8f80fd01193d0379c1761bba8a +05087939aa7580314356261375ceff17 637c350b86faf4b9066532d41dc87fdb @@ -6248,12 +6248,12 @@ 9b2c6de73503cceb102e875a364f6626 -80a3e34168be19d0387e287da1d7f42e +71f0213600f7ced820366e2a29cd1830 65e54e9e6458c353a92eeaafdb0d0022 d41d8cd98f00b204e9800998ecf8427e -ea318b0397fe12ffd8f748d80e09a6ea +18cebf1db58bdd4c52b6b36a9fab1e14 aaeb594d255628a742d183b0c4fff3c6 @@ -6273,8 +6273,8 @@ d41d8cd98f00b204e9800998ecf8427e -e901d2a8027ea0d4a2fd0a2f0c4254c4 -967fa07d1b551bc6bbb1fa5634a783a1 +bc43add6b32c31d1b01ea56190143f5c +09546c41a854e762844c9fa4f2000aa0 abefa8f7d035ae87eb5b45b0c43843be @@ -6288,7 +6288,7 @@ ad62122318a931843599ec66c81cdf02 -0ebc16ded1e4b42a4f1c0d6b9f1dda5e +4ca6185ba6db6546cfeb895c29bbdd34 71d1ef869b5ab59897f399b0d15f6e5f @@ -6302,24 +6302,24 @@ d41d8cd98f00b204e9800998ecf8427e ee74a794201de6cf45f08cc56c789ad7 -214e0edb381e28e12ea19bcc941d71e4 +493e569e803559c55dd06ca35411e0b4 dd8891037d36d4a87969e74f93d88e49 -7513073720e3165c5b9b2a8080eecd18 +655a1635fdf3202e7d7c074a029bf277 b3fd9f9544438ef81401c880177d40fd 5c0c423540accb30a32265a7e909078f d41d8cd98f00b204e9800998ecf8427e -d8f4d806cc9823e961151c44826ffd77 -31ee8e43f5401dc71817b7260a86beab +86fe8e6f4ba1e0da06a5523b1747310e +ee9e658395eb5f6e4e4415ad4b952a1c 502547de717912a19aca06ddd223995c 08d09a43fb6c23ea07250e482e0116d2 311259a2b28384c64ff2443c7feb9d21 -b0446ea619a94e5fa2b3178e293ff30c +c1a2f4393f1fdbcffc80b181fd828d0a d41d8cd98f00b204e9800998ecf8427e @@ -6351,7 +6351,7 @@ d41d8cd98f00b204e9800998ecf8427e -3e83426161f9a2ba6044124f02f345a6 +f1aaa2ddccc69adf4fc2c6e9aad9fe61 7f74cf4fc62967e4f18a2b2d5f49a3f5 50bc7526a36a03c57dca47022c735425 d5093b1fa8a05ed2885905be1351aa57 @@ -6379,9 +6379,9 @@ 20c72a55796b1e64cff84f004b04e76b -e03eba31d58eafe6aad3ff94814bab8c +530655125f0ab31a2406b744e62ae2e0 f15bf7e5916adfd39a30d1d984c28b75 -5c1defd3f977bdde6c68ecca0a596b2f +aaca3ca32321aced0a33feaad8be2867 d41d8cd98f00b204e9800998ecf8427e @@ -6395,9 +6395,9 @@ 3e8b72640f3dd0117bde24b366b7a8f5 56ab66872574c4005a138883a610053c 5c07caec4119e65b0f413c36382fc1fd -45b121da7ae1043feb0990220f7af311 +a651cfc57d02e13f28a7888e42936c6f eb8aec3b6223e224d7e0a3d275119d2c -305f16b73e13c5fd024f6dfce15d6152 +7d586422806dee9c2b3b1bc2040c103a d8bb05e304774532c20b3bfd2640be79 @@ -6587,7 +6587,7 @@ d41d8cd98f00b204e9800998ecf8427e 7a257121b2c9d54226e1e51d67232505 6b6851714ab5e4f9491c2500a26c8ceb -85d3d8fc243475727700d322daf769c8 +8236206d490740be0c025f905d8fedc5 594c6fadbe917f7e36c7b72cfd6a6af2 @@ -6609,16 +6609,16 @@ 8cc4b11d20b0e01eb7e7b7401c2f12c8 10740fb22bfc2ac1b339e9d784cb9c23 e72a1897ed9a078b81e72d66eb3895fc -ed61f7e507113bbde00c18af5b6d8594 +ee2a09d80f4c4301c4c7a35dbac74255 29e218c7e580c35cf99d19f5876b1709 bd68e17f01cde910409d40075ec640bf -abf21aa57d70ffb9f31b5d6071ab8fb1 +19841d0071556ffdf8fbe94d0cddd464 b7c3b27785924f5b023754855bbe3177 2775e6e61e2ab0bdfd17b7ed63dea86e 83554ef1749b5f877cda2173c4fd71f2 3c5adedd71ef8c08b8dfd0213767a814 fa1602ccc625f1e35a7be5e0a2083020 -7621f387a352d44ede2cf4afe0662679 +c4c69d5940cb93e0c41bdb62ff59a2f5 a4a1f69d36f0c22e9eb2767ea3f0adbd @@ -6635,7 +6635,7 @@ 30834b09409d2e8bdf19a7c03ee3e0c0 -8b1537f1d750ea8d2d94e9f17b71ebe4 +c89ef8b181cebf914f489a4849014df4 7fbd04fb747c9df920e68d90c28f6853 @@ -6677,12 +6677,12 @@ 0db78f95e23062feab46593d28704532 d13a1b0fbbc6cafcecd93f460a494cbd 084f9694188a61f84e337a78ed05441d -904fa6ad71728ebc126514a863305f11 +40d4b7bcf8ab72c9640862b4450c1332 02c3c91fb006d3ae2e15455d1d559a91 -1dcbc5b11a925b933b59aa44ac588854 +0fdcd38ce537746580c763cc3bad3867 a5fa4f2f169cad1915a191fc151ad265 fc4eb48545c609f71eaaefb2e061d91b -bf8b3d955aa1deb2e041496544de5f04 +481ba4d57ac39c2afe7e74987c509503 c663d2cee4ea71d024f2defd840527bc 4d33c44d7e7704e5e67b2bc7b183d8ba f0bf2d1c291cff3b62bf2a656b32ea62 @@ -6693,7 +6693,7 @@ 7ab52342b3b370b5b6f6298dc5d4c182 4e6fa59e238b5d4855818e3197dc9931 6cbfa567b0f4153bbc7f74adfe6bb4d2 -6183a5dffea32afc6d961f7d35b80f6e +a50413b4e11d40568247b0f3aeb6edd1 bf50bfa23a12e840e06fdf7f53e157b1 ff02ed2bea96d88f500167a09413c7c0 59877377a38dd5dcee93798ea7923bee @@ -6713,7 +6713,7 @@ 5ab4686cbf0b0d798b37873a6c9bb3df 1889b6eeeef65ae427813873a606a06f 126d87de4a1d8e863a5ad85f840caf2c -56a4403ca54afb568def56c118ac1f3f +f96b3c7931490587edba909bc2a3d73c 4b09fb6f2102d0dc31cccb6a021a275c 56ca46312806229c2d361e9c46ab4533 0b631c9349d4997aca6fa2bcd6a60fc7 @@ -6743,10 +6743,10 @@ dc056bd161ceeab388b54c28790ad27f d41d8cd98f00b204e9800998ecf8427e e403f819edbccb676580a4bab5dc9b85 -9d9ad7310241ddf16640d3f800dbb7bf -327de623b6318783a31bf2402764855e +8ffa067fe180a67ba149c4ae7f319b09 +67ba0ce54c69bd89a57e925941319ae3 07374752b32e65ac21f86c1801ada777 -abbc5ea531df4a7c03949868ee141c38 +b6333dfcde8674d1f76a8fb5b8386627 84b8be2d20c1d6d6811f0298d2234ca8 223bb15e53ca059b66188e2c5d196195 62ecdcff5b99f8bd94f75e2ab7eacd71 @@ -6764,7 +6764,7 @@ 1258865536912e11c70ae0c343576d11 07e043e1c42a0fe90d2226eaacb013e2 f6d4c9c91e2608f8ae916ddf86816560 -c4aae5b40cc7eb4a71878111763cedc4 +1ac25140f51596243217b5ebcdad96fe 78f6029aabbd9f1e2568187f7d2f98c9 a969dd13ed2ab6f921564ecd22121515 ef0ba347561ad5fcd763fabb899bfad0 @@ -6772,7 +6772,7 @@ fb6dfe418a92f6803616c17def007cd2 48cf595e8d99291e756b6f0945c4a656 60c540c4dfb653ef65e67a628645f590 -8caa3b39351927e5159b5a42d5c0f29f +27e975f676e3cda57ed150f82a970644 cc545e426ed2e735bd00cbab8db381bd 98ca2d412c720690b46b8bf566cf4fb5 a9d45ffd6281800146fcfb2e3ab90ab6 @@ -6780,13 +6780,13 @@ 33293e2db3dedadfccccd5d6ac23eaf9 b416db3eacff1ad448692d14aadff327 6e53a89f128e41918ccf5b20b96976b0 -16159cdb43a8ad0715b528bb858a2420 +1c73eacab2a1a619dc70e2f24fba4d1e 0bbc469b628cbc940ebdd59f2e218b6c eff5fc174c1ec328e58b76a3d70a5f2f 116c4c10fccce8d73c9193e742834d3a -aae21d60ccd315a64cd407d301514a94 +f99ce992ef00dd16272190000ca9518d dc63bf62b746ea8d1b1e7833675475d5 -fe594e68a36f30b5fb0931ce4e7944a7 +e5782fe8434c4a711e0d8b3d9c198d75 35cc6ac5381635a8a49523616f0d5e18 595325924223d40b0ea97c9df4ebfde4 aa7ebaddf8d815b3dfd1b3281f26de84 @@ -6799,7 +6799,7 @@ 4eaa5c0e7ce4116e821af9c6ce8c53ed 540b65a840a2f9876551a7963a2aa1bf 48f9b2c134655de1b0f5f7d50f01b765 -e04716adac419184c905fbd611e66931 +be3c22b06cfbbc6e8771a5ba0f7447c3 70c6fc7d08f3c562322c9f53273f1393 @@ -6812,7 +6812,7 @@ 505eddd29e439ed2971f69ab8d38e289 f44ef38f3ae6b30def1d8f4d8b309ba5 68f1afb0ba44e0f93c89b4768001ddde -5bffeecac1842d72c52b88dfa38a0d45 +67e301d4222ce8df3e27dd2b6bacac0d 2616ba6e3e277acabedbe7b36114d851 637f30cfefd948ec5aea16cc25f00f91 4cb7f6d97d38884b63a5adb65dc85870 @@ -6877,7 +6877,7 @@ d41d8cd98f00b204e9800998ecf8427e b4e9f07aa5268af49d3bb9429719b201 8293bd60fe13ac64c22f8500b346821c -8c43c3a33ce5882354b25ea6eedd6b0f +dcf77950d1dae6b1e4eb4c8473318bac 413af6ca18377689660d2b2eeed2be98 d2df1ec90f2bebb3ebfb74eba81bcec7 c3b801c60645dff594d33cf0acc43fa5 @@ -6955,7 +6955,7 @@ 0bf2e38d4ce8df49eea23b091ea492f1 -7aeda3f29b8d3517e7134b36fb4f3800 +26eac71fe10cf9b45357d18da527bd63 d41d8cd98f00b204e9800998ecf8427e @@ -7006,14 +7006,14 @@ d41d8cd98f00b204e9800998ecf8427e 4d1fa853732216f28ce54fcf8e4e6207 1277e5c01232300f48a75b9b02bf6e4c -acf8cbedc321fc847761004a22c3557f +9b4de98bf9f90966db0305e9d8aa0de5 7f9e9451a7893997bbda81950b9bf3da -537deaee8ef58fe9387bd4da41e240a7 +934db34fc5470e87467d07401027b6ac 640847d555597c2573213b5dc5515cf1 e8b39a8d6ef02915ddf04bbc93b92d82 184c417ca2d9d734f73867da2c1287f3 -f173dea4e119b8a274e13d67c975e859 -86c7f6e4aaac3b2a30c86cb3d5d083f8 +ae0615307ed643d4c7b0e0bfe4b7e45b +011f89953f9ad322e178a8d183de886e 9836a974ec46db2376f688070eb5f577 4bbee56e9f7b9e39373a5afc8983bd22 @@ -7034,7 +7034,7 @@ d41d8cd98f00b204e9800998ecf8427e 6b8b8ce50599e40cb74603a883f5d49b -b694666f3fab63aa002cf57d9221184f +eb4430a638d6c94ba5e1d0114babe300 d41d8cd98f00b204e9800998ecf8427e @@ -7092,7 +7092,7 @@ 13e922bcc8c5b80bccd436037b6d1983 -00c95231958ea34cb8c2ab03d977fad7 +74bda525f0dda4ec97c808e29637ecb6 d41d8cd98f00b204e9800998ecf8427e @@ -7186,7 +7186,7 @@ d41d8cd98f00b204e9800998ecf8427e 0f7bbaf52bc8737d3a20ff0822895e6a -5ad19942c767e2b7b40bcf7a4557ef96 +2783cf290e6cbfdf4bc3fb56e2d40191 5cba7b9316b591829c756097ae0485cb @@ -7196,7 +7196,7 @@ 5a24a30915985f4921e9977ef5591d37 -1a81e2c1584303fcbd35ffa7959a9548 +38c48f781dec1c3d5af764d1a186e273 581bf4f5d80169d20b9ac13270b44e0c @@ -7210,7 +7210,7 @@ d41d8cd98f00b204e9800998ecf8427e 4dfcdf4d3cb3af826834c1fbb852f513 -9dee214cb227c61a780e61bdb328d8c9 +848dda602b15a270752ab3d14d83e2b6 469386ee98ede1646eb80de2443edb92 @@ -7302,7 +7302,7 @@ 6bcc750e4e3bcf3e3f130e84fa76c000 -c541a34207adc5350b2dc5c1f09b999c +a34e477e026937ded25b3db75628102f d41d8cd98f00b204e9800998ecf8427e @@ -7366,7 +7366,7 @@ d41d8cd98f00b204e9800998ecf8427e 1f21bb9a5810af59b93c076fd23f22f8 abdede0b95ba0317afc2b84d41c6d466 -24061f96041726ee8c39737cf7977c39 +5d52e0ea49c4d289ebcda2e1da293202 8132fb847569fa766adc0c4573f88d01 890b8461abd8f0b87b126e9e770b9909 1f02fab7a9f6f9c4f7e6f55b70d39ad7 @@ -7405,15 +7405,15 @@ 11b50c97effbc90d2bb3a8fdfdf10d82 aec2cbb607f3e669bf11d95c6a2c2a57 9fb34a6db51d3aee921928ca1d42a3db -420ca27e9e8703f76580acfe7dbd081b +b6afeec640440ad686b7ce7ae0cc2a04 98a5d4c239d3736d1f4d477225fa75f3 1921a40ef2e203a9c7e33e33d8481630 -3055a2f7266a60df732a08529a6ca5d1 -eac772a94850fe421d7cb668f16d8502 +20bd3b11f5fcbbcf18440a548e98db90 +74a3eff04b216cdb9d6ec3e20df82f9f d41d8cd98f00b204e9800998ecf8427e @@ -7424,17 +7424,17 @@ 7d040a1858a6f1e8b3d8e7fc68b1b008 -15aec3de90cf1c5a1a4edd5f46cb2bc6 +d2beb46931bb641bf0126092d91149fc a267dd6d9a787dbaa95ee81e9812a81a d41d8cd98f00b204e9800998ecf8427e 890365ca9e5d7857e3532d4c0366f94e b3586b44a75323dbf02f85aea44e25db -6473ee94ef64fe6935f95790230b7574 +5ec9b9433c17cd7e39efe73b6ca47fdf -1699071ff4bb09210ac267d430c05352 +98b2b5f2c5fbc11b2d101f74e6f53550 dfc38f61ccb28814db587e30de81dbc1 e608bfdc1dcb6e0083ef2f07d6abcc80 3c7eb3a309b7b07b8a64dd1c04b1e652 @@ -7461,7 +7461,7 @@ 884f200f728cff6292071327f3333432 -ba371d6791ddb47139e9273fc89e4348 +4c4a05e064908129d88383e08a9a6975 b78b788d5b3e07d4453369e56c1d659a f51c8778bc72faf4f5fd6f52f43b5238 626d8b5925475bd539d310df50ba813d @@ -7476,10 +7476,10 @@ 2f12577c1d455111bb528f3866b65893 -26a046368f569fab6879bf7b4149b5cb +5896d6563d302d330c365a3c64d8408b 280a1ab7fd33d892d6726f352e555c4d 68dc3ea2cd9c6508a925df50fa011221 -8748d27b61bab3f4fe7a2f5fbc4fbea0 +85919d63e768559c976903b253070b04 deac83a4c0eda829eedb0f9136a1fae5 @@ -7487,7 +7487,7 @@ d41d8cd98f00b204e9800998ecf8427e c89f71e71b16be64c27c7859023fd58a 690c8e0cee2b6698e3b48fd0ac4de529 -91acbb4ca5dbdf0dcd92975e15f19e1e +c120700122ee082bcd1bbfa5dd0398bc d41d8cd98f00b204e9800998ecf8427e @@ -7568,7 +7568,7 @@ d41d8cd98f00b204e9800998ecf8427e -e3346a9e88067fed71d467321021ac84 +23752bba338ea1a8b3a230ca8179e4c3 0d1749857d83ca714437ed891e35f046 @@ -7588,15 +7588,20 @@ 6bd38b6af505407d62c60a9eefdf208b -d10524316d94a05190315ed2a537e590 -9698e999326e603af9f0271bb3126e5b -c1ac4d0440f0210376068d50d51c11a5 +d69969e2a9166108538a95b086599544 +740bf2ea7c400568aae6e3ebbb7efac2 + + +e9e895d857f4fadb5d169d98cecc4cb4 + + +c9fa8f71196dbd4da6c319f00412a394 0529ddc77e8c681c33c47b9b7687e810 faa2eda13c5607ace72e34e9c0966a0c 72ddc5bafe07d7b1963a002ff2638ce9 -b8410b68abe62b98765d35b9d68775c0 +55292d144ee7e11471fbba2b249494ad 9e6bbdc99eed41d9480ff63f9c187e81 fc788306c40f210227d440befeb605d2 @@ -7604,14 +7609,14 @@ d41d8cd98f00b204e9800998ecf8427e 6b603e643ce203e1268c44f2560baece 495109ce3cd762f708dea35bff725ecf -d41a0862545eff600497a0bea3f1ab9d +a68a62a40bd64f627b6ee6a3f4aeef96 -c48bf12c8ab59a7e5288dec2171fc487 -766996c5832c22283f845d85c69050b6 +b554b95843ce324153cf63af81c4f467 +49211ad04c8d6486b554f5dfa2549211 b029262dc429f54b44eaac3bb3673fb2 -1f302e022d85d26a771d480ca57c3904 -5b62ce52c0ce74104923cb08c4a2c755 +25cfef0428da4c37fdb47852f49bc1b2 +199b29d1446f63ab1880745ec589933d e2ae08bd4f83213f865545056ac6dd35 43cc87a6b84afe612af178e9c0945279 @@ -7768,9 +7773,9 @@ 3a8904966a2f450f621c5267098f7360 -1c942203fda2bcad764d878ebc0c47a5 +5f6fcd5535f2233dc3dc9fe6312f1fc3 d41d8cd98f00b204e9800998ecf8427e -6d5ed19523464e46013936df91c6ed3c +9d7603b11033ad6fbcb3bbc46d5503d8 9568715bc1f4d7aa42744b4096afb922 @@ -7784,15 +7789,15 @@ be4909eb830f52517bb34572822210b6 d41d8cd98f00b204e9800998ecf8427e 2a2702bd2167fd28271eb4eabca6363c -8da3d77c235c7a7d054ea4ae7311e156 -bb29d8dd50b7570b5744da807dceab8a +fd2dd2fbd7f099628630db64aca7e94f +eac5c0f76e5ff1988532c66b922e800f 26e616b72a49ae4b326a093bd0713303 32e6a6b4b2bc4a78d07dfdcee485c09b 289aeb68be3c5ff2a4cdd57a64257b8e 31431bfb5d4f361b35887e63a0099655 -e03dcf6c18969e1baea2d9828a30f779 +d4e648a77c85398d52bf5915e981484e 3e8c8ff5959ed24ad35c169286978b20 @@ -7800,11 +7805,11 @@ 14182aeabccd7c3a761d93d1564a27f4 -b7fba61cf5866b9933b7ace9bc4f9146 -09d76b5c0967e0be88129f9da3c37531 +0ba364012068975254ac02cf15ccd1b2 +4045e0030818c05ec539a2bd6f3a6d17 -2bd1e1553a9cc566113d900b41bc0fa8 +3042db4b42f2e098badf2c40163287d5 d6d047f9389cde6f11b9175ffda432ac @@ -7817,7 +7822,7 @@ cb26417ed98d172fa1fd331e1985d799 -351fe37b4b23a7ed9d7f1300463e5b39 +9bdff8a4621202d256b03029cdb5bf29 946760ff06abcff5d8863b1e782893f5 d77afff33da4f512b0fb46d1be520cd0 @@ -7878,7 +7883,7 @@ fde1dac27ff95323136138883a8cb086 -2fab1fadb7f83179967aadf4b5d4ddee +bbe63bc9761891dd1f47f5639ac8fd44 d41d8cd98f00b204e9800998ecf8427e @@ -7892,9 +7897,9 @@ 33164d88351d201cc651f7142656c3ea 759762a86ea42322a44b7eadd4b76959 6c456bf952ac5c6889d0360ae3d327a1 -083a136f4b46fc248af19e10563c48cf +188746369ab37b18b1f84b20aced9f0d 80a28b7d54cfb242e531baebbb30e4fb -4d57992c87ecb429b912f6ff7a518656 +6efb95c81d5c8e640155ad63842987e0 fe62c00b682dd677dbca4764d5f0fe97 @@ -7910,7 +7915,7 @@ b6fd5cc801d681b05256bf8b413c9786 104960714a8b404303b3436ef291f2d1 -0ffcb06a700db2a4795b2a1cad18ebe8 +1d56c1cff5f6f94c0fac9cf48fe819ba 2b061d246bb5f2342b9867c346f3f1a7 d592551b67e9dd797f7a36a1b257684b 204000f10fb031ceb45970d4b4996fca @@ -7930,7 +7935,7 @@ ea1a3bd45013d291cafdce135ebbd13c -e8fc223a34a1c80800a0140f5ed6cb09 +f9a7c3d80ef15ebdb16b9f9a4289eaed 221d0b581479c434f039e58da4718a8d a6f5b10b14e766e788351b506b6f6024 cd10645e90733c7d081f7bedaa56b891 @@ -7943,11 +7948,11 @@ d41d8cd98f00b204e9800998ecf8427e -0be05b0ba5c70336ad3873274d006fa0 +191ad6a413e35342ca7cd3460dd9f31a d41d8cd98f00b204e9800998ecf8427e -13c5568a0f6073a044a0fa8c95432c7e +920415a8d70425c1c0476200edc745b3 616dcb2aa65aabb125304d44c6efe355 @@ -7982,20 +7987,20 @@ f47f735ec8627b7b3e9ce6a5e1643d4c 79e09419acc819e70f82f56d7fa81d20 605bb5fb9f548a1cfb766c12c98aa303 -27fe10718d47636d063f37ef9ac4be0b +d5b503dc10a91fc2867f11b806e43aee 0b0532af9e3f441fe8f2e530df0e8b60 61bcd0fc159ba4ac9b4ca405006a458e d41d8cd98f00b204e9800998ecf8427e bcfa3b276dd79437d1d60139fe51de01 -bc057e396358b8d68d513598117a4af9 +b38990d47a4975ee30ed0e3af4a378e3 f9cfd60be746eaea8b3e69fc3fe9fee5 2068f6bb040e517d593f0e5607b8724a e9075781de163cf107fb3202edb3e002 -0ef37e21d2e25895a090ad77e9605685 +5fbdf018aa95b4d6fba8a6520c1395cc 6a6c8a4f2f8305f324705e111f5ab746 9cac9f75f05ba54c2255f7c789a5ab0e @@ -8008,52 +8013,52 @@ a6eeebb304bbe571ffbab0db1d030569 -7e0c6b54f531098e4f352f83f4d34234 +f6145207c408075fd530e364b06a805d e531ddc71cd65c765c78bcadbf10f8d7 ca8137cb50689abf0c3bebe34978dcf7 -abb298e664b2fb11fd634e3d3dbed05a +f924847ab85674ba3200ca27277e0030 db7986081e563555bbb45d35b1dfc823 458d70e686a207a21618c43bb1b9779a -128445fe765c61f01a8f6822e07dfcfe +12fe6ef54baa77f95b323f66280726d9 59ddd81ed9bf99d543f6f3aecb613f99 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 23b68fe48b368fc328f5dadcd75fdfe1 6b1640bc51b7f7eb47b7502f0aaf0d2c 23f198c26ee64d43c1673947c8865329 -7a3a40afaa184399b3341c8d3752ec7f +d425b192e4e4f644e3233a2d63ab5f61 ef10d5d01e0c99da899694a920063a6b -87cd39aa024571ecab3ccadc961e264c +2aaee86d73909262c225b9360c1671c5 fb330418c81c08843a8ecc7b41911c3e -7fbffe58c311fdd7f2c94a75e32d3936 +ec0f990c4626353903979ab05aefc6a3 d9bd6150df07f9517e4ca5056dbe663f d3328f22bef875e75fcc41b404ce8460 -9ee4015d43e5e0d6912b836b06a13de9 +269be72b4c109b1d9407168cc255a548 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 95bb2af8fabef4d78ebdf2a5a9799ecb 8fa3145942e5d0df587b19b538a59e2b c3fb35dd0fefe93bbf0dfd8976709bb7 1ee548ff699369a2ef3328d8c3010048 -6c86fdb742038112276b77762d104b23 +8349c7c6bc6c2d51c9d617d196588c41 d51def48233e07c836e1c7a673186824 -459a9508eb6538bbf7fbdf224bcd4e3f -aa67d5c5a46ddfc225448043268e38e2 +5a7e53549b13ba69bb551e3d13785e3d +8a0ccbf9bbd36a4cc3aeb30517c48280 b7f38fe9df82f9bfdeb39d490bcf2273 c5d8a435b760308bd0c43e3494dea231 -bd5ee5b58b2511b8fe23e96db9451902 -3f6dfeee5347762fb5f9c2993d6fea12 -4a138c319788fb8de9b68cdf175461a4 +b154606cfec9ae71a3084379c3f52643 +2103918d3f7bbc6b25c9ebe75e5ba5bb +8383b83413ec5080325c0104121cc34c be603b1e11232e8e4df3956712576964 afab86bd75994dd422cde6c39712e684 3324c82b9c0e239b743efceb0b1ee4a1 6d984b6497a4521ab43b53f8ffa97239 af2c055b31358dcfbcaff19b8f32d741 0b811b8a0f1113a872111a69e771d294 -8b9a65f71f3a9ea000c870a2a094b5af +f0a5af4ef3fcf089d999c72424dd1534 e1514692701903c4fa8ab6f93685fe9a -183abda9ebd7462f00f4ee7095c84195 -0131eac3feaa89273e8e26c91c2cac37 +7c5ca268a2ea7a6376036f2c81f5b10f +b1e3e3f8550be02bc85065afb34f2465 aa3dd95196d0ec83718e74c22d0a0da3 e2e3cd92d8221808b6348ea0dce50716 2b89db2c940374d7c69527633eb17a27 @@ -8064,56 +8069,56 @@ 55f29464b755eabef4cf655705d4e4fc d7de9e65df06622427243a6b3ed53cd4 c093fba925641be12ad8f06bb542160a -d12217cdca71111f70be333c4eef99dc +5d05efac98c6fd3106f56295ce0b8673 ed3b811dbf2f5f0da999aac45470a2eb -4b3a795b74f619b597f1d2ebd5f0ed4d +d7d541404e019a6d8f45d1347bef2be7 36d8c10a2ce5713bc959bebc6b9bb3af 55323f24685f41d39d6a5d297e3654db -b9c19de6ebfce5bf046caa3bbd6738bb +e5247dca22fac3bb18e72e0171a09447 762641475619347539e2028a53f2ddf9 -9feb7142f076e8cb6562176417105676 -a338de2b2e184a6a79b27c41ef758527 +aadfd180c094b155f2c8ecedf9b7d377 +a3e9bc5dfe51c558cc8277d44fd5c4d4 c7e95ae701ec540f03a566203de781b3 -d9a551b3b77910142a904b5bff66b447 +d67ca33509c6f0eabbd6c661a27ab0e2 c19d107b0434906fbc0b459f61f85117 b273aa429a16fe1379be33876a4d49f7 8869a3a7b2a620a7621d4870c57aef75 -e1161971bb06488cabe9066c8e827741 -5477536cee0c749079f446676f85ba11 -886b27ac5b94fa8a293aeae7226314c5 +1222fe864b75c9d423009dbdad938cdf +9939c5fec9087bfdc82d8dccb2c2f64d +d4bed0644268bf6cd99128f64db17e9a 81ed7b9e30bf240d51d7e60c65e169d8 -8af9297add438b147e7144fc9f16429c +1a1e47204edfd7a39a48bc94a6d87039 94cd6326697d1468356fd7860c279f39 abdc5b264864f9054c2bd3582aa7f290 -5824fe01751d0af34d9a3075de49ca2b +d9c27d2d19632b11e7b5df247d1cb5ce d11b836dcf659c52b30c12fe751664c2 3b21f916c1cc442741493663d4d870f8 8d6ef3890b3855e9c9901f905906f84a e8df1b36eeaf2d3020a71b0e273a4d99 97af8c6ef82a0f244fc815e6e16ccf90 90ec5a83c874481c4db7a861ea540e62 -012cf35d940aed1700ac751a07331a41 +123e1ced012cf5ca86c9b7a4d713bed6 fbbf6dd97870502f3b527a7855cc22fd -171adcd57eecc43d8ebea5bd3cff21dc -a9b978311e891d61a5a0a001933d7a6d +673b7b9a03cff6437a53f372059947bd +b8636271987e671c88b7a23c312319dc 8ff03a197fb775293900b1652cbc2cae bbcc88993e093b880a682371243cc500 -28eb991ac8777246895a581c360a9daa -7b7811b0028140c1b0369fe9aa94304c -0c898de20d09cf4914877ebf2695dd53 +7b3c1047d31736f0b995520bf5c770ec +d74e66986a63465cfd73af9d5dd1a180 +c2855a7d06669f944c7aaca53532b7d8 10d1641217a535f93ec6a25fb693b58f 72edeb3570c0c46201f53a9ecafea7cf -47f5032648762db635d3ac9e03848d6d +39b1a98ee31c34a9a67fd7f2eccf931d f3b0f3b7f9597a5081dd6901be2eef39 c1da4b8a0934373f032daa2da245a23b 9bc9627697f6507eaac340ce462ea48f -d31e5e9b017c68c52f39451f6a4888ee +7d6fa21f3d0ab0a5b4b676a64fe44c6a fb0d8c3726d85a9e032c4aba68fe5ca7 -eb245be274ad480eb8d849529678aea9 -1f5d636a4df5141cf03332bf7192e96a -4c3b11586abcc5df7e395609ee7131be +312ed461e418e5e8b3e152dd2227bbae +3dfd632c14282d44c6d202e30378822c +a77857a410bf6a20d1bc65d57df426e3 45bc4e783f1c8f3b4cc8887ff320ac8a 02140c8aab60d378c25d218f29d4fd51 6a019476090e0d2e7e18ff0cb90d8244 @@ -8121,68 +8126,71 @@ 344d119920534915d078b0bcf8139e6c 537f4288b80ea71ac01cd85436796b2b 5a39128e50a6a619cab4a84ed21fb5b0 -6d59726d14209ced062616f6eabb9963 -65b5c3e29f240fad7628e628e4f4b988 -ef7b6fa3ddd58753aa2f9e99c606c61e +9bdc51515920cae4374eecfd6037275a +a2da3a94a599ef497665bb9273f94082 +a81beb34507c2da511e5cd5783f2d2b3 1fb6c4f678f781062defcb85377e1223 -c294d42b0c532a0d0ed0ecd75b2da20f -02b4f98405e26fe54399ae5cf3d8e884 -dc9564fc481ddd3101734b4e01c40027 +503179eef2a75e444e6ed540ab5816af +3a63b5ca883378d2e5b3ffc0bd8367ba 329a3456692fb25e9ddd96dba6698739 -5b5402436d2e5525c68fe96889c8628b -14b937be198fc9c37d706a131f110c68 +cf2e582534edc6a59ece7d22c939c00c +28f44c26afebd0f551578f04045c6496 +6230437ad4adfb173f89c5c9b1cd3301 +378e17fcf077672377ccbeef64dad311 da1eb7c39da28b862a798f37efa7ee43 -538ab10324a9a151d1944f94b590e3e2 +b2ee3e61485fdeb685fc7f73bf802b23 +7d6b8f45303f24ad769fb402b9416bb5 dd8e45a37c5ef0fc6089df59605c284e +db59948d8443a30f976ef562646c108e -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 +6134c80e606fc3eeedd5bf6a39c3e77a 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b 33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -78faa2226aeb9f90e52c0f6239002838 -69cfd106af7ce7110c61b93f7f0a1968 +34c7fde492170f80fe8e0e6434f3eb0b +829a72b83190364f8f94374443eea9fa 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 59b195fcff4d3877045fee21c364d524 @@ -8193,55 +8201,55 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -f8ae1145d1789cc4f49042e9c9b8c394 +d6c2e5a1d98c4af9f39c3e6f602f9f65 737685ba123e361bbd63da12001d1853 ead226130a7b08a13a2aeabf710b3b7b -7e44776be6e3c6d6cf1e14df5499c125 +2a441d2cb8444b1051bf199845319bfc 2e6a497a7e9cc16c543c8691b7505ce8 -3ff6460227ded412fd9384126ad371e8 +a39f58718f334dc2bae68db45ff92b87 19c4c6055000b1d4fe6f5735d4c344c2 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 840f7c27d3d7920e11ef771581c42ea1 255944687f37fefd684d3ec9d2fbb0d8 9e6b10b82ff6650b119aebde1eb1e0da -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec 045853f5d4a94bb75d809d8355dab2b6 -54d7a28c58f4312aec39202174880572 +0fcff1379b65914e20e00b24b81a5e6b fb330418c81c08843a8ecc7b41911c3e -bbfe995401a355c459f71be7d355d4af +e6737bc70917737b05e2b3cc3e87cee0 a8853724a7797b14ab7a125c5a64aa3d 30c6a2ac8f5dc2c78135a1d2d958c7d3 -0c8b5fa7e69e59bdf0a4dc3acffced55 +846d37ac463e033347b10ce9c69184e6 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 483de5a7392121b04ca4b28d9629bce0 9aa8f16badc4733edd5b5d1b099e7c21 a1314605a33f143e8730909f6688403c eb84b44b99e2dab255db18f924ed970b -9a2e494b0015d39ff38593c80af1b23f +f59114c9b51282592f8c26e304872d54 f1d4b49dc349f942ecce7845d2bb5562 -bbf6109af99a85f4492dd98a94a6f7b2 -5650c49c3370dd17bca99b655f184c76 +34e7dd73d29e8efc0d0a013026575768 +4d1cb0d2dde73ab7da101afb1eba3f55 d819c152ecb177c120f1e3c9eaabc2c6 cc6c17551a0b45c91fc5fc79f276258e -500aff15daa34730554493980806940b -1510fab77add6d9b505698b3d2f7abb4 -9cf350ea476110799c0f33a2281a19f4 +832cb306580ca6ce4e267ac8892c8732 +9ed685e1553ee8262bb9cf750db98968 +8a4585aaed5ab770db248832f2e1a7b5 802cd3b09bda10a75bbaf7f4597f9364 31e4db724dddc41b42b165ed8c66f3a5 e80b6464c4a540b59ab03e8b66369968 11851279ded53a68d299e1dd00c0b7dd c6aa5d300ad94789a9f2c4cabc6cd8de f5e9da89cf45e535117232b359317405 -19aa2f949963e51bfcbd51f21ad8838f +c07ed48d4b65bab104ce0c4dc1cde684 4b57bd5427c18abceb5c20abd89f5ba9 -5cb1e21306f9b67ae5817cf248ea2b80 -e39bff0a25907b8b65fc68ef96c7e160 +e70293904baa38c90c8be8ca5aa447b0 +06eebf61b89a60cd11340a036f47f3cd 1d7a55d13ebc889af056ef71120d26ec 119d9afb003f18c3adbfa0f2cad74211 b99f23c57218db693329dea5e53bdaca @@ -8252,55 +8260,55 @@ bd3718cc7fbf6dc1b46753b2a07892bf 9d370bdd2d27879fbffdf88d5b937e80 7d428fe710ba23ac644fbeae1e05174e -6201731125e1425b9680ece9fa2f53a7 +06ff7a812c4416c03336b3d0ff683da9 cdfa3838283c176556fd986e1d077a37 -eba82bd2e88b7d544b96c6d99e3a0fb0 +63dc3d49dac194089653e65425d6e5d5 c9310d0a5a4f7e1f6b85201c0dc2fc5e 6e04edde5694fc8e6bbb47aa579d974f -9d3c42abc625b3259d4e5371f06263dd +0ff8f5b9e25ca077b7d7d698b2e76e3e 97157f5de97d427dad060de635f0cbb2 -4d40e9d36ff84f7214a61043608504ce +b1dd4cd2ca514afb48faf71803fb072b 74a51ee9815a4e81828f00e102f2b977 0c1d539dd0e536ab43cab029104330a2 f4edcec9ef405af2798f27a4d7902e12 f70756497c931aadd89edbe485e88fb7 f5e8ae5dcbf8191e1830afe13c85f33d dc628590b54606da6a6d3510ea4c94d1 -86b10d96c3a969dbf3a625859ee245fe +1f81e0757051db526d536d732ef22e3a fb4f2e0c1a0a003c40b83cec58eb358d -2e93d30362c8d78a190c48a84ee14fcc +eba7f7e57d85ab19a005e825dd7779c0 236eb01d61d0a87dc150f17fdd070f65 -52bdee3176be9266973887c2b2862dba +df71b03d06e518df446ee6e9792dcf89 1402d10037a08d56070eee0ebf921e4d f8e9d0e2f7ca86f855a1fe6a39eab4d1 -09f6758e377ebd553ff2a713b1e14f90 +25d873287aec9a21451e9717306db54f 1461952a71c3b0dab73956e09db90725 7a75cd5ac5590263657b0fe81c2e9686 742a6fcd6d5322ea47f1f7c8ecf85bc3 1a7bfdc52688934752339f4d77e7e84e 4bfee5904f91bea7f89e69b65d84edef 41880d289bea521ebd8f24215e6d5f07 -10fe8c6fba8b8a39a3fe4015c16a2fc1 +577c8ffc2f6319016ce9d416e7929d50 aaaf43f06ec3b56fa2ce44165d8b2227 -ece08cb7ed6810cdb3f0c1c917ec986c -7942ec5d8cbd1ded094458fae7db8f64 +e775cffe814bc94a4328cd886366ffe2 +87c46b335353a6fc640ae4c902b7f278 7f1cf10b121b601826c8160b97d9201a 18c683d449cb983a0199f72f41bfa394 -eb93565549b324f373ccb8ae14a9e82c -f567192aeedd26a512a273c46a1b2e01 -4620d5383d98264739be856cdfad21fe +511bf9b42503b99cc5df0cb7b229a287 +610f3c4ba9b4ef8d830a46b8a1f93853 +1d62bb5c969457e698342f5f8c22d153 526eded1162a09941869ab46ef83ef71 bf1409395306f2b2924a67beac05dd56 7ec990a748195e943c1d78619a7be987 ecb08089d6cffff8cce5bc9928dbfda5 e0a2135bf8ba78d71c0162491021d9bb ae2a39ed84e9a8b31e97d34efd50bf79 -6e5d7e32d2d4c4c9bb5b54e9b974c2fa +46a53285a864300207f4759f5a35b928 95562f393025b7c7156e666cb8b45bc6 -7da38e511cb16a90594a443f9575c810 -67a5de359f633e9e24a8ef12bd1fc575 +f722bd816e9904cf0c1a20c807b43493 +81e4b3dc3d76e5272b16447d10ae43a8 2ba914ba1f287a51e96117c8734d0370 98035fec612b1dea0f11fa299377d2bd cc44d8f6611ef62af800332274ddf91d @@ -8311,59 +8319,59 @@ 1bb02f5007b998c89755a783129afce8 d7db058dfc7cd6d999d30e337b78fb5c df5f2db52f342e27dde87f01bcbd8e7e -cb066077c3f9a76a2d5bca265971d2dd +df44b34058c4cbb5c49a9493dd42014c 98e1082970a865bf1264472c0367b2ea 83d58d7245d7473a79ece8004d881b7c -11daeb226361692832cbfc06ea1f4c52 +617b7a71655bef18290227c4bf1bcf31 c4000c3a5f961950001bdbf0eada3ea1 7d36ebf391461a17289c2b5be7cf3e85 -3334f3288a65d910ed596c68a2043d00 +1d2b135a0149df6a6cb2e76713216b4b dc5d5cdb1ddb2cabc4a153dc8153de91 -f3146c00e2d0b6667d17c5eebc31360f +6202f865512c891966572c07fed1bb3b f42193f1b045aa8b255d4c544bbfbffb 577770bc1b047e531d1c8915b91c1b3a f2a97948d26385dbf048ef0cf2c525d7 b46d5511e9d6998ff9c889cb8c0da1e8 0206639eae0df85877c2e2bcf3a6f449 5e31f5e7cbecac3ea5023184356defd2 -a4f7de71fffb7fe66bbe1ead04e43890 +d71799a2249c450279ae7a1ac3d0f805 f8a9ee9349754eca7dd8fa4a3b30923c 208960ca78917b6337d736cd20344a7f -590a8bd1778eddcb5c069279b124e929 +132a5130a93dc5d9c2427643a6a77f9f e7c013349082da3d9d5648c430c5fa17 -703ed24e2722902f0bce8d3a3f7a59dd +378829f3a958e6a275729ee6bfe3884e 403bc95d966adfd004f72ad0b8d859ad 426904859bbfa17b03832bb45bb04199 -1625f57e5654ad47f05fd7eccd6fb90b +f366f1450962fc633c712a57bcffe300 c5c8e08bddcd4b099e4421c7b876d3ca 2bad6855dcaaf4b18c3c92f32d94893f 81bfbfd57357a74c3f3af6987afe6f12 6df89d2d8ac7b9a5f06251fa71023e8e d2eecb1e8e4fb988dda81bbeb97746c2 6986b606c49e4c713e68f9e22eea0545 -7d3d3e6035c01723f19d42755a382e96 +c92a97950deec22447c477d27006cb2f 0cd221c2bb64eec3f3b8ba5efd62ea57 -dba59ec36d373ca112d6392ad83b0006 -dd488606462dc194ebe947c4dcc2dade +bc2b11200433ed6ba13c2b7b6adae99d +95b9193442f1d15db4c8183833ca0b14 e9ad12e8ccc33746292e9e23f1b8f140 cba7b7e8e5181e09cfcc945401729cb6 -2ba0518b06449c1440e2b4e99f206b4a -4887a6d3247ae186478768439e194ef4 -bd2a0c503f02d6245394150b274f4d3e +d0c65ac03d5b84bf70da4651a599d923 +a89a9c412846d94b22ded4a4b1214e1a +84ce4e1c0ec963dde4e4763f0a1aac85 5b5244f55e8874f9677d30a8decd9347 2a5e5c20e225efad5f6b841ad0847617 260a28780209a054543aeee4e3431afd ca1db9bd5d22039d6b84051acb6a1d96 02117a18e23e6d3fa6af33209fb0e6b4 491fa67114d3c382ca11c8beda1d2481 -5ed950ce4cceab6d20489e7ac57531bf +b8c1b21a0a71c89c4ad86f0caad6bf5c fda71a80dc11279fb51ad436388c1256 -94faf36ca44e55f0562c06b20b801c9f -425ba45315eed3b973749855951b51d3 +b2e188e8065680615a750004643b9886 +d4f2c2105d4c3202307ff7271e0126c7 f0b4dcb4ff338aae365219b7c90568c9 0495a2ce04fae425dc6a1d880ceb1dbe f7261490003c49efcba34cb82f632fa8 @@ -8374,55 +8382,55 @@ b3b43d5b59898b53c3438acc767d5fb3 8fe26f5460eea59779e88aca24436dbc 6f17157fa2d3d23e0552c7ef33efd818 -214b4bf175d9a576e99aa32a33ab3ae8 +364c9b4bc0b3ffbbed25ffed1975bcad 381fda47b3c28be5e86909a54ecf6f72 -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -e6bf5a738bcaa7c7bcca6d4aa9dedb97 +e9d9615574990c4896b9dfe4feab490a 5d9b7ccd6766e9e943b206c4e288cea8 -03ef6810bffa7841d4a99f232564f8b1 +7402b6940e9c0b9451d1961728a1377d 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -544d1e567d9c598375d0b2d08cf632a1 +3aff154bc0917d13e720e626aef6d884 d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b a4689ed797b5bb6aa0712da0992c463e 87204bb4bc4b2de9530578fce343498a -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f d91a412e4582686aee55e22120f10420 -a63bd5dd26ac98782168488c85a94aa0 +4cb220fe081dc71e7a79155fb4baf1f9 05a11b19b5162789760c9838a936df75 -7b66369f2447bf5361d9460cd162a092 -24076c897f856af4bf47d86d96078688 +53f30292c85bf4e6ec62ba51a1411794 +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff 453b10bf9feae2447a1e1a28d2d6ed05 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -439b41e3fa181ac18f501a9f331fca6a -de65eb4e97ed530f9a08d0322b8de7cc +3e338d94a6d5b803d52b5c431597e35a +bc244d4f47eb26a3a24f2e61ed6fe324 3e3baa2a47af2ba7525ad71522d6ed85 3122c8015a2583d254fbdead8e4fde52 464e3cd1b9ccd7bb22bfdffb69ecf33b @@ -8433,16 +8441,16 @@ 678a224c72ab87f381b25228890f9eb6 9cc0a9a23709b0640fdc94021a6b953b d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -e422e39f79913300450eb2b1a534c0bf +3ef9403b403f368448802a108a9faa69 c3e50ad0d4c93692a2810e136ada70d7 62922eb1ad1501e02b86da4f0c8f1126 -54dd8fefcc17f9df92c5685090720478 +f9002a564c0dd7ff3ed4f7974a32c568 a395d5fa15b0fd8a40e70a9a71e1df04 -51de93aa4306f467a0089db4d2ffe5e6 +686db095e45737b7253cc56f3ae90a99 e272b24123a940834eb7384c732c3c51 e696620abb33dd46cbcc1d87e8f0abca 7db2f1cdec58e462f71191b33e61c71c @@ -8462,16 +8470,16 @@ 5568084ceebffcae386fc1ec48e7ffa8 01d7079eb9464d34ebc58d2987977733 681bb6760c742ae699ed900dca34241d -28ef3589fb3b052ea0c95358a09f5198 -081ddaf3beab038b809eb6db2957285e -4bef9d9f98b859f810c3c295e4494498 +e91158781f161b3767242ebd45da0518 +fb08e158e49baf04efa53b9e931b2710 +149cd6bc5dea21091638b42ec3340592 eead927af63207df007d30bbefa0bb40 d7ce2327d263736100f77cd6eb4cb24b 75fb4c310c4f0554d3ac9859d0c5b646 3314a3c5291bc6ae803c15e9bbf5198b -7ac550b131a480505f0160feb1984344 -dd92cd5ed8097a6e9c9695e90cc9f360 -22ef825d97a6b50b40818f5ec3d9bd38 +20e258227a894b386eede1b35678519f +fda688eba93b22d6968c70f168bf6726 +27b1a2f505b85bddf00c3be9a1f82edc e32ccf9a79a12abea200e2a94c2a95d3 6f3b6f771da549d8e22263e795ddecaf 824683c2bba8c209bd757096e7b7e21a @@ -8496,51 +8504,51 @@ 924c656e4301df08646901c0ff6971ed -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 +6134c80e606fc3eeedd5bf6a39c3e77a 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b 33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 4e186ea8084c33de3fec3182f57150ec fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -5539cd1403e4efd60edd5498b95e5144 -58c41f60235ea1a5fb3991bc4fa6a24b +a918453d2232f6042139a51f4be59995 +bdb86969718f38f7c3ec9d78b8708f02 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 c95d9dd5cdb6d9a6824a6bdbefb48531 @@ -8551,56 +8559,56 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -75f7a995a409dd82cda1129e31244bea +3fc8f6eea78a72252d5beaa95980b119 a8c0d300734b6d141fea36463cafb665 ac0b80589a46c746d461c26c203976ed -035e6eb42c043ba5af6accc410b52b11 +46574f10a368b3bc5dd28bd954e438f0 301653ecefd6bf66f64c9d1295320592 -199a9c93ab681670df77a92e8a152891 +ea428c8c8795d443e495cc24c1d4564e bfefaecf0b2d4c3cbca546a629f13a3d 07bbf1314ee53209e4d8cf452881caca a844ce312e01fb23c7007783d7e8444e 06b09b671e4f3c2c4f6d6543f6d01e36 6860a3f3b0469b68220888089b64141b fd3a3c865fdf8572f4afcb889760a65d -39015974e9a1c6c4589591ae58a154d7 +4095b242985be141d15d3dee76e155b4 817e3122945ecefbc4ce8abe613858b3 e17c63b9d34d92e8079dd835dcfd50e4 -6c361dd356bd383d023ca8031b4ad2f8 -31898c1fe7ada24be26bd7142e373e49 -768b38f2f8ced6fe7878d67e8effb5f3 -27e34fde56947d8ccacb40d95d6d5c74 +a8d8861b0947a0c3b0e4b783a8c91878 +ba4e18112a68a41da78cd63499f03a27 +98ee8520e083cd3278a60b8210d5856c +85c2fec90c3e685ac938f0abedcd5af0 0d0f009398a7487d59b485e07c6fbc73 -e70aa14d470aef28733b11c4aba13fa1 +45c213d6037f4cafb6f20e00e41dde29 e5f10f65ec52fdd1433f2a477b70e5ad a5affc357e84c82d0cb507e7d977faad 6b6af95ceda28abd4dc15b6ca31163d8 856330df4d912ce65a7471b677c00e1b 86c9af02e6afad6b682cab386e7ea8c9 3edb04f22096528f3007755fdb835f19 -7ebb4c84508fc27b412111a824347556 +7bbc958481dc3893f3cf8773d423a431 64944593ac8346ad7b11d39a2271b7a4 -4c9a10303debb2b3c8bc16ac22e3eeb8 -fb9d20ab22467a99935a21ff18a27835 +e9d05511b26b0ef2129febfed311fd82 +28f76487cf245a01c1aef56ed36952b9 0fc0876df57f7f77cc4ea959f60cde11 87d2058dc22f63411ce8ac827f7448c1 -2b788321ab02b92fae511a41d908ee2a -11e3cb037686b2cd0b7df9c481590312 -9ac152e843481d327aec088d002a5cb3 +0a23c46c92cd5ce1e5d14d1024f23c23 +b55b4d1269910ed9d04300d6bd1177d5 +18de668a964f71520a4c13247f012fd6 694ca7bee57efa02867473a6d8a2facd 686ec6633c3b45fa9982eb392deabb4e 71355302efbca5596c245b4f75b1a24a -ea27c50d59f4b4a016cab14c783ebfe3 +40d150eef5fa77907360c362ed0f51a1 49bb3d81ae611eb1f8b7868143b2c6e0 32e21134466b972be3ac1268599f9b5a -a744bce00ed9a1dcb9d55eaff5434e7f +e95c5f8ecb76148b002032075db39a4d dbc7149f4d61e7d862146daa4f28d9c6 -7de1eea10fcca31f68d2925ca4c266c1 -c930ceecc0a71f664c0953bb03824138 +a2f38be9f4d829be2f19131667e6acef +c8b51b30dbf56b8f6db92072e172189c 9cd23f8d97fddad9f3408b5d5152cdcf 578c7ef90ce4f50122f14d6630079c47 db18fa6d13acfd83d28575f83a3f395c @@ -8609,57 +8617,57 @@ f4b0c998c31f5889f65deebd633f7fe4 33f56a87ec96204fe40ffbc69fc9aafe c6f42df909428c4ac4a2a5a0d1020d2a -4aa8fd6ec900cc3a9dea82f633273d67 -9b8daa5ee37a6c06c852d668290f1fcd -a9fd12754a461c731ccaf3bb49125bc7 +fda8fcbfef4dc90fd00742cc546048e5 +14fefc7629e7e8b1aa195c290306cbea +b88bcae402852cf0a1ade81c22d70ddb ccd8e25db8a9a768172fcd2e45b95162 -6cd8fb971c3d34ecb6cda3077c0ec82f +2a83de4de86c7c4cddd5490d96adbe0f 223494e86e72306be4f941b847db565a dfa97a9faf2ba1a451e553c77076d2a3 -aa2358d42179cadddd15d8352db5f65f +e7321cb16b9e21054e745a347a57efc0 5d9b7ccd6766e9e943b206c4e288cea8 -f1da541989d72a37bc503fa1ecde4e6b +a05de2beef80af2512e8f3c61f25dcc9 d4b33c76f50f3d94ad1af21601d68e7e 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 b23a1732f01a5c23da70dc85205c1bea 044e22c98deb3d6da5898931cee7224c c09f84e25a1c8970c5572077805ac0fc -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec e8510da20738abbfa73214de54c93984 -2d785842413a38762fc194334e3633a3 +e572268f81dfafbf40cc085b745e52e6 fb330418c81c08843a8ecc7b41911c3e -ba1e5153fcf6e96df24487f8e7a3ff83 +549b51a8af5c6eabe8b7fdb9f981da00 36fe95f9d0f092d61a637e11e3c32a27 c0c0cda5b564e56624844d49d7592502 -05f1523ccec48c3ce24b630b960b3a42 +a1c9e5d5a5cc8920f578a1817aa181b0 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 e652cc0024d38444e191c28a95943594 17da2830504929531702d918d538bece 3d8ba71a2cf2af3c2a9e9bda1cba64e4 b1d534a15eb4b0b99bda0de853ae40d6 -be2a6591d6bfee711de3d3df5e202388 +81ac81600fa899832975179408bd4ce2 05a11b19b5162789760c9838a936df75 -2fbda69e2a3f012225508714b51c0f89 -24076c897f856af4bf47d86d96078688 +bd3a753cb12c1a7c828fecc73e5b052b +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff 5826378cfccf1f9dc0798b3357870fa9 -fe515bd6d1f29593b84f3d34109f039f -22fe87d6626de9d7ef505f8997309e1a -030dd07e74db277689a78529dc1186eb +e50f64efdbb21cc02ec473069dd5d5c3 +58ce4b88e87e271384435fc25c0f8144 +3450069da49e2b34436578915d3812eb 254a30763f15f9f555e82ccc4accdbac 1ca4e724a542dd90368a4612a878aa7a a5e8c5e7b6e275f6fc080d12bc66afb7 cbd8a157fa609eec0ae1d041083cbd38 262b3b0bc7533232290f81311955da86 f326d01ea1f9cb89d96aafdbf65dfcf7 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 49f5a91ffbc90b04607fbca87a866532 -de489808a43df892e70928d6c8c1af3b -587159bbf4f62528945f90269c3a7f53 +c149e810ccf8f48a95c04a544050cab8 +126ca4a6ad5a178e0a091196ba5b7a37 71976afc3ec5e0f9c2e3711d8261e0b4 5dc4c70ab6811882ea50d20e2c4ea6e5 f9f034777e38a444b4bde55bc7e37b1f @@ -8670,7 +8678,7 @@ 449de434949a3e2b8780a87e7b179d3c 3a1f51816608cc8b2c9ae16fb92b4ec1 16504bda24ef73dfed5a0ca25a2649e0 -57e911f6a4818352cbc9b14842fa6afc +6f3a1ed7c63d57511c1dde760e76e320 efb80873052a0acac270873400da3e43 @@ -8678,51 +8686,51 @@ cf387e494e1e47b7da074828e0994d78 -00d770ac36c1ad6b43a34d0f90f45a11 +79e35bad8654e5df8c4e9546da9fb559 ab07c46fbd99585cf69935bef969c5d5 0dd290bbca23f1341e63156248ae06a8 -5d79a6c5b00b1b46d1f52b4b43a829f6 +25485ee150a22e1a49407c26c037da7e 198b3a29bd95db8f58b32d7db4bff003 -0e42cb9139c1cecb18bf40882da184e2 +38b9cfeddef49251a216d410d7fa855a 58c19042214fce0286d38a8553680674 5f9bc55c61786609f6d57cc987d8f688 f2a97948d26385dbf048ef0cf2c525d7 ab89fbf62d7046c7327249be47ccefeb 4eb5ad81317fab87396acc720d75138d d01407b81e6e2b6828c77cc12e908df7 -e1161971bb06488cabe9066c8e827741 +11d893fe91006d73a3558095fea02ea2 20b3e0e6e75fd590b98bb3cb3773ea01 -e37b2888a049752461749305cba2261f +c10315e367f8b9a00c84683b55e7b18f 34ef2a5c01a6de0d058eb647a73cda4f -66d599a5d64fdd125525f0ba69459838 +9a9b37f72b28548b6785b6b1b9baf57d 7df456c127e3cb8ae8ae1a74f56c9c16 593a0056ee80a54a01c01c0c266034d4 -c0aa0c1b0a8218a9bec70fd09f811600 +b0b74e46aa192d770330430bbcfe1879 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 c055194f1ab2455af2250ede540f75b3 df87ce706058e3da66cfb2d15979958b 8ed0c3b65f002cc1c9ee534820e5f961 40e0c792b4859dc438412503a3cd5a5a -7d8d7ea2cd51941b244855a8c9dcc5fd +c954418bd592b9882830e1befcde1281 2b8391c74ac95a9c89c539f0e332ad49 -b62ebea33a09fdfd3cd7eee4ced9187a -db17b7dddbc7f8f6c0c0906c8b8bc62b +5df5b3e78e06355290ce7d76b900f925 +f4d054deaa28f3e99a6d0914aab68185 311ad06ab23f03ff3440597edf1da3fc 0edeb4fdfd326d018af56a8424a10428 -8fe0462446378e7cfbc4814a66437619 -48a90a6ecd1210a0f60e8efa08299fd7 -120c2c37e7d3db4cd41824139478567e +a2917a00203975ddeba877800e723ea1 +5a28672d7b6bd9aca2b7a79b616369bf +ef1f2c378f4f4b96dbd7a370d52d495c f074e9bd2d03d456bfb5c45d912515f9 15558c69fd903afd9e88439226123622 768f3e2b92cc551d7136bbf830e93951 1085ef3d0869bfe5d3d113ad6d651da1 6312dc067c98595bb72d77dfcc9344b4 95c15ca3dd5f1f6760ef60df52b6dac5 -1538105a599084c46759fc0103f3fc3c +81026f55013298b6e61a890c55ce2fa5 d360b1161b553a45255a5806f55382eb -8b75cf8f0252a48aa1c4d2af802b17f3 -575d2dc8514dac008055d79898b96b7f +4b01e02157fd54947a64cffdba8d2d18 +44648ef9b872cfcba9ce4649b09a274f 2c7e63fd6233af8fabc598cea968cd6b 16e0a85f28a66c9fe5ef46a42e9775cb 536398fa35f4c75fa3c3d65c98c37939 @@ -8733,55 +8741,55 @@ 312c298b22e1902df441bf41c0598c88 bf2fa0709a1afa93c391eef32d37f171 a9761ba2043c4b97757891489f325dd4 -344df4d83ea29eb8f3295b17040f6017 +faf406bb0e3127ee1e9f424a9db81d48 db1b7476ea8ce223faa772b7f66621b8 -a28caa2416a41f9b818505186c025c07 +e29675921ca8b0602917a823d5028e29 afaf8c79e4a90aa57382f99ed2d40f1c 67ea5ed5ea373574dce57608e11f429d -236896e291993cb701f29f4dfc562172 +63fb124d0f5976ec609fece7f3ad23ad cb363e312cfa50f3d9536bdaf33441bf -3ca9d098eb608fa5c3069b11f475d881 +018d30f9195ff56d94346d8d21780af2 e5e7ed101e5fbf690c1f58d77b666720 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 66dbdb37fcb836537092935a31655cdd b1d0a182408ca65a6bba2eccf83f05f0 16737b3e033c599ba1de2b1653ff5591 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec 0ff5cad40b13007a6e4dd81f9bd72dbd -9e50d916c35aa824279f0ca09ad90973 +006597a6e9af4637e424f47a28a7b247 fb330418c81c08843a8ecc7b41911c3e -73e794ac80f6aecd1298a31d38d54de1 +ccc22346e54d37117a732ab094d41986 1116f9450413c4fe11aecad38e8ed25f 7e2ccffaf9bf9dffea7c800c687a3a6c -97338416f7ad4bbdc93a194b4a1ca013 +bf512a71c20efd497ab01bd83f07737f 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 2104a3716b6074c739b153108c99c597 9dde1229f064c66f6497f31dde78906a 6373b95c48af4f71972938535912fc8a 367f6bfe53285d7880def87ab63b790a -756ba0b32450071ed8336d6d31794f2e +31f32d0cb237acccded5584aaa05225a a05af8369cf1eca3ea4b3b0cafa3ffed -1a5e128366cf4e045d2679f34f956be9 -4481308c948517420735347eeb7cfdf6 +020f5f3eae4387d4dc019eccd30a2d1b +85d5865b208ca3ce1c68e597d6834f92 69a140a13b73949262053829615d06ef 02289e9b37a7aecba5c0fa022f167487 -6dc685615964d68b3ccb2f7d08058566 -05d052d88d6627ae08917327de247894 -ff2a1e1463a2e8f10288639a2f0e3175 +fda33aa5946bbd06f06d3889c81f135b +e32a6738b9127c8a9c976478fcda233e +ed2cdba45964552b59ebf9bdb1b566e8 121f5d278e77c82d476ddbcaab81a331 d35a21763c1765d888ce5e9f7192d161 b1ae2db4e6abd7b1b88a48e222cf37a5 a04d9cb8e3a3b5e923c349a2dfed9290 2af14f6c4b858b8816b24c596aaa0888 f326d01ea1f9cb89d96aafdbf65dfcf7 -df7d0a03fd8a798030dc7f885b36844d +0003fa5cfecb0311b7f260d15b8c55a0 f07e3aa557243cfef5ef06bdd8dba07d -062c661a13250ac4e5739505ebdb45b6 -5dc5b1df3c26f08416f27b894b89b548 +b9499528fcf9dc3b194032dabb39dfce +6a44563847fd7fd414a91594576d6ff3 d9f11c2cc6a7b5929a915d7a998e925a ef8d5f107a66b6aacb79a8a4f5d01757 9db68f434b6113836433bb3a671e71d0 @@ -8792,57 +8800,57 @@ 449de434949a3e2b8780a87e7b179d3c 5f0890bbb168309b359831a191a3e8cd ea7921a38541879d8044e9729c9e87d8 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f249c5416780b6370b92514232af8da7 -0a86e4d4cf2f78188088bbcd94636dc5 +27d3cdf8f704d01d0b46f8579d39b967 96d264ca8820d06e79142a24331876a2 236388ae2d5c562bd3b7123817527f73 -7e60ab0c29e2988abb2c38706a25d810 +2a7d1b0f704d29951c30ea866c85c530 0d26a4183a05beee36f73348e05ac1a9 -b72976e76e3b5b1e06e3bdfe32f21bbf +74f2da3d9db3fd92bcf151c99c38c332 7372240ddcfd567371833e17c55cf3bb 5fd0cdbdc0238bc2f9c0fde2e1cec05c 45ffe99a918a7bbc4a6042bd1f7ded89 edcd6f0e266ebd3f8889d44444b1f874 6ffdee3464337d9022910038309669df 2213ae80db2f9c6a475e1209d31ed2f7 -699b645ecaba7ee82e5a2b9c8e04d599 +0ae23305ea3cfd8406dc0c57deece00c 817ce0b47f0dba9656d1ad1583596161 -360250f28958a294923f493023127c1f +39cf133dcfab23f3646c1de536a6c44a 5ed5c5747e7602e1b128fc541e0a2ffb -13885e7bd616e8210d416328c572935c +6d3c96840e498d14d87f582c06075e37 507560124bb9af9903a36e155fba3c96 94bb9cad9889690d55670af89e832ee8 -1bbbd210a5b9232c6e58fee38086c5f8 +5c83c1f4cfc547129cf52ea69fe2a19a 4c7673b351fab33e0a33fa2910faf0d6 c36fa900ef2e082506bccd1fa51eed31 e93c689a6bd1cf8e7670e4aec826d763 d19ff90add77cc081a9daf23f5b604fe 3080ff9fdb247eaf98b234710abdc34b 87a5230bbfe882e0fbafacdd6fdcc67e -e55061d5b57b555a836c9943bf8a0ce7 +9adc818af1aae210b0d7d81c03a676ee 41f6a7ee8a9f798c0af92c1ca1dcf5bd -8b1f59559c969a8b8733993c72569c3f -df8be38ee0615e261ce232877c0a80a1 +1baebe20cdfdc3217fe9a2ca774cadde +57976b7ef9e27bc6d12064dafff2eea1 64d4f3497d67b4e8da246b865501955a b66283810f815e888bc6f5ae1b52a6ac -9ec513148be43126359a4b2929a63e43 -ca0d391cb42af1a44e3583eda0d35444 -b3236f8c827a0eb88cee1c906b5bedea +d35b6c40bdb2346fff2069c5616acd9a +f4f6df6dba47bcf07161c5eab2fda0e4 +c3777bb05106623a66ab54852c8dc6d2 77d571e5b03acdb7a2029a4f9218a323 a40157ef24e9a8c6ddfd3885dc186a96 056998dce70220b02ec8ed7855ac8b8f 50d7642780c847932b5928f5ddc419bd 3533fdfc61408e851bdb68653ea870f0 cf24f0f04a6026a4d06cdaa7617586ac -fa070151663aee0383a3c518d6a628d4 +78ac49e887ee1d6d5dd1840b6a81a3b0 2f46b0cf8ce598febf0c2f66eff0b230 -be743d008c1c7503dc8fe449ef70d31a -63bd42d2a260631f2b4eb7e32bff21bf +b7e633ee1c659326e118ecc31f6dc763 +4168e4479deb6e95d53ffbced50238f3 53794030a3a02da1d3ebd2b15b95af35 -8f8b08ea0127e8dd80c06c9e79896a61 +8c97316eb2f2f1cecc299b68969243fb 6f3ad06950f1c62f4bd86e51a7ddae95 96efcb427a067568896a54d9cba6a836 2d1ed344ed1f795dc8ca3acc51cfeaa8 @@ -8851,64 +8859,59 @@ 4c1471fc81697146f2072c4c55b16a9c 24ec07bccd0232ebebd94716dd6abaf9 7f96e18c0ac56314a33e35de090c5045 -cbc1e4a4d481e1d180266b8a84c3df6d +6eb12d57ce64ecf36d5a78932208d1bb cbfc8102d5d4b206ce17095f41a08013 -c294d42b0c532a0d0ed0ecd75b2da20f -322d2f0d1f63bdac9a7179e8f597321b -dc9564fc481ddd3101734b4e01c40027 -5b5402436d2e5525c68fe96889c8628b -2ec28d7d8a03797203f724f8e5cdd8d3 -14b937be198fc9c37d706a131f110c68 -538ab10324a9a151d1944f94b590e3e2 +a287d462bc71f579eea372c586ca1e65 +9f5ba8d00d619d312d40c07f38b35c6e -0b184c77fe31ae048a9527291610ab4c +e0758c864058df5f23cc35ab0df1d31d 055d1c1ecd19be7fe0fc879d5b9e3920 2cc2731ed536bf38737bfc2897163b4f -9bf96050ded29c68658a0bdaf7fdb3e5 +1dc894ddc8e2fa310a70a3bccf815df8 10bfcf3c45c4b93043b846371d2de319 -3d2a1d008de0e21b9505ce8b6342162d +2dbd45b0367937f1ef79d8cd02d8eb4d 4ed0fa2252887fdaad281c4fdd581138 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 5f236327d99c1d860357c98d6123b40c 8105015382c2477cc7e91f83ef6c4e61 5d687f7e28621e97af2a7b1290efc658 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec dc396506b334ea8af343c8c8161be20a -103ccf0be8fe475c66984161813980d7 +0fd2a60ce0edd282a64cae89f30106cc fb330418c81c08843a8ecc7b41911c3e -13420baa6e004ffb9bb8851bdec6573b +7f5889f7023d1c96adf6c6917fa4c7c3 4362e150d6fd5db1d2ec3bf6033cf31a f6a494807c8bd81146bf7308b9e74507 -cdb4a3999101c8a97f346af5b2c871a3 +e8b8a56f3c8046b724afa033496599c6 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f 4377ad93f7965f894e7d49f0972a144f -672666d2be832522a2d1da2808663ecc +b26249640072d8246a812bc6d7a4903e 05a11b19b5162789760c9838a936df75 -7bc61a1f1daf334bc893dd1f0b05ca37 -e4e2a6f4a944f694c2930314578cfc73 +74e5138e0485400d0958b5c137a8634e +c2b2f7000a5d742699adbc6be9b8011a 5f93e31d32cd99d38e3d59c80b4137ff 28e10eab33216fe841a693440d577e21 -b34ee3fcd8a6978cd33ce47539e8e5a1 -22fe87d6626de9d7ef505f8997309e1a -261f809c9e46da5c59f0e5c3d66da997 +3892d45ad15c38243a4c8c570f3db7e0 +58ce4b88e87e271384435fc25c0f8144 +d929cf33013487510df075f5cd5ed46c 8cfda215fb90242c0bee3c08f424d05e 1ca4e724a542dd90368a4612a878aa7a e92ab1ec80639a8bcba78163e7f632aa 125545332e86e9da0c16e857d488f35f 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -3ef47d126feed7366cb5ca7fcee9fca8 +16e708648f259125b73168462459fdf3 c57c2471c7a6eddd29d27909cc422e41 -19de93c653769b4abc72bec70750ddbf -b35268616dd215650f008578de78244a +1305dad2e2014d290bc66c328ff0a8e1 +2f35f2744e4e6626a2390abb5effedc2 2b7b7694e9c574c9017760d04b71d385 336e659b54ee694568f9e17c14ba4a44 6f225dc643f02ed2509b857ca08a1695 @@ -8919,55 +8922,55 @@ 449de434949a3e2b8780a87e7b179d3c b4a7bf2dc4b9d17e3bf96711789653f1 cd854c5b10b4fbfc95edef5d88b16bf2 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 +6134c80e606fc3eeedd5bf6a39c3e77a 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -bc44f9076de8f3941692c1139b6715e7 +6b36869fa70561852f0dd2237168b73b 33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d addb82a5473d88074f998158dcf6d184 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -78faa2226aeb9f90e52c0f6239002838 -58c41f60235ea1a5fb3991bc4fa6a24b +34c7fde492170f80fe8e0e6434f3eb0b +bdb86969718f38f7c3ec9d78b8708f02 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 59b195fcff4d3877045fee21c364d524 @@ -8978,7 +8981,7 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -bec84422f0047d771c9af28213629bc4 +f4977effe39cac6245f3789b7dc2eff8 f1f34d8c0f864daa5e8ab56801027430 @@ -8988,13 +8991,8 @@ b72997707e75dd3fb9bb3344408f0fd8 -c294d42b0c532a0d0ed0ecd75b2da20f -322d2f0d1f63bdac9a7179e8f597321b -dc9564fc481ddd3101734b4e01c40027 -5b5402436d2e5525c68fe96889c8628b -2ec28d7d8a03797203f724f8e5cdd8d3 -14b937be198fc9c37d706a131f110c68 -538ab10324a9a151d1944f94b590e3e2 +a287d462bc71f579eea372c586ca1e65 +9f5ba8d00d619d312d40c07f38b35c6e fb46bbe6fd59edc488ae4cf9c9e59be7 @@ -9002,51 +9000,51 @@ 64bfc7f928c8265b954a94f6ba47a472 -686a81c818a0a224bca0aa9518e30f7a +24e25ba55b35cdcc2dc5a14d7d10570a cf956add0c79021627f8d296bd9c0bee 3639365574f377b3d9192eed3012b81b -c1bfeae3937b6f48c77771c5001cf6e9 +e6bdc0042aaecd4af937d23e028fe6d3 297d7b4aaed48a75f49c2a5d7856b4bb -bc9253b980d8b35dd5a701efea21fb9b +7e6f23680749d50953f078c6718e402c 3f97ab7226e1b96805f110c23a0a4e8c 91db205f032419631535b76600d49ef3 3ab8cb2ffce4a45ccc2bd36bf7188ba4 3999a6c16fbac8f142b6ba5c83843135 e66c5201b53aff421ab597e250adc59b a7f8b687d5627915cc22a52b0332af77 -2d07e3dc90596e3bf5815017b9fef1cd +4e8f553ac2056a7b9e7e66f9f8cc3b8f 2c978233c9c2113210abb8d6b7815be6 -9b76759382b2cb4c46403832fd11da8d +bb854c1ff453090ff74b5c40bffed07a 02b66c8cb37d08bd011ec596985e5b07 -d34df2be536aa5f1959c5d23536e72f6 +17b01c65b668f83ee0e343f558f1f717 b5cd71ce52f0ea483266db95c9dc08f0 0c3ea1ed6f3bef86e72457af9d477b22 -805bb38537bb72d4f9b1377e78212aea +c093d74471eff6a5f33e586d3fdf7843 6bd7bd915222c47f064d3cfee5fc59c0 f10cedbccc9475f55d46269a683f0cf4 0a8e6c7063772f6766b3265f9b54bc8a a951ffe3e490fa57e2d8b58326957f4d 8cd714c35a68b56c9190c03579baf70b e2073338990d8009a30b20f79c1e2658 -02f87fd5322e9ca3ab84f2baa2a26d66 +6a1722dc73e6612827ab1dcdd24d0ae0 50360defe4eda5645728358a612f8df7 -16ca8987db92c91d71d494e4b4721d5c -9373f76eb4da633bd14e44f1006dce26 +b959612b1474a1f2fb2aeb746072551f +e700debbe7f28659cd6ba34da1ec09cb 5a6bb3c42b5a0bec8c86824f1975083c 87ca04b6f32ec9c86ff4a9496a7e2e83 -61056a28a359783cd881f127512996af -8518f9148a890e14466038f254c2f701 -7bab9e644fdcca3dd68f097c80e8f263 +0563e414f40984e0f2ad2a584b88bef4 +443c0149b9f505cadf88de780d7c5462 +69a9ea27bd1ff96e536096fbba4d3033 1eebc6a132b4831df2374914d2398d06 abeec7cab968b8b816c16b0dea5dd6df 988b1fd1092a601c62d214658970a600 07bb126b5d3a17c508adf9c9201baedc d9f0c52c0880cd2a167ea745276e7d34 f89420ea2cea158b44d851d13331691b -e4a6501096ba4fc1f0f379f30594ac34 +71dcffbcc86f23f9cf452fba195be1d8 6699eb3eef6a6a05645ff11dd7646491 -a4feafb6c78b04c19f3425ded8f01ec6 -d141d44dd458f40ccb09a857d53e1111 +028f2dff098e653e92a92e51a4d56f99 +89bafed728ed1123e0a9884966bd38df 354a01f32d385c5166d852822ad9d471 02e5e0d91e8cc1b008004845a60230d7 b86122de22bca131f7b1e591d0ad05d9 @@ -9057,55 +9055,55 @@ 198738d85a77c59567f81577a6235b7a 476d5ab66502092cc71290f7b3a635a0 d87251d2fa6e1c8d95ef7c0a2e21f6ff -eae486731cb10ec858687482099b54f3 +07b06e9223c78d3d8156d51254b0fdd0 fb318dd514da9a7e91e4835a22a8b317 -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 +6134c80e606fc3eeedd5bf6a39c3e77a 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b 33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 4e186ea8084c33de3fec3182f57150ec fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -53bf12dc00002400cee9505c3c4a2738 -58c41f60235ea1a5fb3991bc4fa6a24b +74617c4c134f60f3087c0b1f0451b538 +bdb86969718f38f7c3ec9d78b8708f02 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 c95d9dd5cdb6d9a6824a6bdbefb48531 @@ -9116,73 +9114,71 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -c294d42b0c532a0d0ed0ecd75b2da20f -02b4f98405e26fe54399ae5cf3d8e884 -dc9564fc481ddd3101734b4e01c40027 -5b5402436d2e5525c68fe96889c8628b -14b937be198fc9c37d706a131f110c68 -4dc7f339b479b935f54185ca937b5200 +503179eef2a75e444e6ed540ab5816af +3a63b5ca883378d2e5b3ffc0bd8367ba +cf2e582534edc6a59ece7d22c939c00c +28f44c26afebd0f551578f04045c6496 +6230437ad4adfb173f89c5c9b1cd3301 +378e17fcf077672377ccbeef64dad311 +b2a770a6440bfa70194e2bed28f4d39e +7d6b8f45303f24ad769fb402b9416bb5 +db59948d8443a30f976ef562646c108e -c294d42b0c532a0d0ed0ecd75b2da20f -322d2f0d1f63bdac9a7179e8f597321b -dc9564fc481ddd3101734b4e01c40027 -5b5402436d2e5525c68fe96889c8628b -2ec28d7d8a03797203f724f8e5cdd8d3 +a287d462bc71f579eea372c586ca1e65 86edd8b14802f697dde804a0b134a9f9 -14b937be198fc9c37d706a131f110c68 -392ef1b0569abd200f863d93d88ad77e +47e41f42a075152d70958fe89cbf8d37 -37ed2423117fa214345519409b790293 +8c5cd3077f35b4d9a54fa1e2eaf99029 37d8e465a4c969aeb37a190555547cd0 f42d1bee9041dfc962483f895dc51516 -37693934d0491da5e6e72a865fee2435 +e9df7e30e9fdbb6344a469b3ba149587 3a4b04e37555e1b591460bef9515a31d -6f3e35798a1962ec9a056cac680877c2 +6ce380aa4925459fd2018f1b969afac4 e75dd31e0976099cfc0d9e00f9381947 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 03979b34915083ba410a0007c328ad2f 7ef7a01bb8bfaa1bcf2a56e60d5dd02a 35d341887139a758d99d30648927ee09 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec f15b010a942b145c786fa8acad689cb7 -aec6ae4bd3c5941c6e2c8a50f252e12e +25c26fad23173a7dbdec5924b8b1b004 fb330418c81c08843a8ecc7b41911c3e -4201d532b15c490bb6ea56b3d7d4032b +751c73c02279b8c3741aa37bec82ba2c c247f188b836bd51267c422c407ae500 9f8037a9a12a3775f77152459d1d56eb -99e612e491a6475aa946bd01df897e25 +05728779c925f68cf37badeb98b828a8 1898ba53941f49ece5a58b90fdac3ebd 0d9854420987f4e57f2b1f9d3c4aa726 109473a1938eb45b52bd3826fb672d9d f1a79c9a55705140a6d893b3690085d0 8533867c20217e5aeae7d0dac180cd11 580097c19dd53748b11f75fd6daa95d5 -6e5a54042600e4afb79f09f52f3d8bea +0f68c23818e6bc4499f54ac914e4282f 7a64d641a544fce0c38f713f0664d193 -edebaaf030b310580975751b4b7007e4 -1700083ef9212badec296d94e212cd0c +f511f6074269da3134eed7e12c84de03 +798688bb6771a235f9f222336ce5f4ba 2c27edeee3a6e7883ed719fe44d6d145 a47439737e5532545747c6f73d6b90cd -43db758beb5f856b7e9b6baea10c3a50 -39ae77d3255b573476dbf4bac144c91f -32cdae7ed3b21f35edbddf5810f28711 +b83baa83e617bf718a588fb2e026aa49 +40304c1f3cff2f503ecd99a6ac503613 +af7f6ae4b129a71eab154f67ec4f9d59 9d81ac794e19939a076c93c618837b30 791d08fbdcfe6f2029c0c400d4f3778f af08cb31c426c69cee3d5be5dc8702c9 5545078e333f5fa834e187b6d571738a 1364b5c7f6f46e8a9d5fe21a4aa0b8fe f326d01ea1f9cb89d96aafdbf65dfcf7 -acc68e425ce7d196d394a296bd193161 +a6798cd4ef3ea5a0028b7e33867373d0 095b99ae7775132e9700de77b2e6f898 -b67199996d1f95a5961244f2e9b1431b -4e8c1a65dd260044e60bd594dc9f165a +27f2d10ac233068065707bb949750e31 +f56bdc64d89a098500278cca09fa304d a2ae9917403521ede786d9e643a53439 abfff4dbeb6fb2a25396303105f5642a ecc8a0bde690b00e0836ea7764a2fb4c @@ -9193,55 +9189,55 @@ 7f54f89d0966306d4f60a669e23b402a 07edba7de542d83b61a622e33d5a25f6 57c2154f2836596753680dff1c63f6e7 -54c89c67f919574d509c1566c6dfafee +977750e7a21659d6215e7f843e69c058 7e2d917c34973b82cd21c55635057d46 -e11c5151b866a5ca2c5d6e81286f4bd4 +bc93932dfa364d57694b5107bd221965 15df5a3b4ebb165f9986273c4ebe8798 d91271f2eee42c07a5138547a0f6c091 -e0455d672a8e4a9c3bc177b39e54749e +534aad3e7ff4b4e2fd40ad24338e359e cc477bf80635d2022a70f38dcac5b6e1 -03673f79cf22ee1bee5a588a8a27bfcc +91a570ab57e4e0ac714cf48c40e8e323 e2f570e2e66df747bf8f6b3db227bdeb 642b1d3edd6abf2fdfaf30d3995d3f4d a313c383e151fb72d0eaad1757188000 7d8c8e9bc16ad8accad451a2a6c5a046 716fac49d69b624c15ac9c91f370187c 32ae8012fb080e21bffa6e556916d602 -a12cd5e8e20bf30fa844fbd106e7b0ca +c2211488a1337a74d003a9ddb3873a31 270b61424746a236c6ada6678eb0a344 -408470b9760ecb31693e3e124ba21abf +ddb2d71f37194b210d54203f580211e6 5460d3ff345466ce89636dbeae2a34fd -18f002c50ea1cbcf33facb7660991897 +dcda5413c3dc3ef55f5b843256bdaaa2 fdfc437c24ae7b6ca2b931569363aa35 ebf4f23c07bb09dca7337a86991819fe -1b632400c042bfe9be49ebb25d1fbc8e +d005f2b3d8abdd71761243ac5bce19cb 1856c76dda9f60666256d04b1f964000 fffe909199241a85bd97495f34b80378 e8af2be464edfcb655c37b7915b678ef b86448d50cb02dcfafee6f9723c1dcc3 3ab7d54a87b3c68cb046ebb54eefd70c a63ab8aee2fbc9a1107042a070b1716a -68c3c0c712e5c1d21d46285dca52d5f0 +5d9c6213e92a9c18858795ff00848db6 2a5b90cb833fa873670d7322eb4eabef -2d807ca607e492b30eafb3d8914b95cf -79326023ad040ebb246828a681033b2b +152fb2933996d8803475656021ee1adb +d1312f31922c4819a5582de37d0e05a9 817b0ca846a290585a5395b65a65d68f 24216c82e991c6828e21333d95b808cf -95e57c35a792c252a2e8b35861c61dd5 -d5d9a12fb58fd9eb1b81b9bb6933f8de -35d645f11e3ddd313256b498d69501dc +7b522a98d7a900c03121f5c35d905d84 +f5e34703342979377ef0c6e0d12d5299 +236e91cfdc41d006da0b3f67e78ac64b 2b48e1bf7846022de872d815250a7b05 79da3afa1b6e18f33269de3e58e20500 3199b9e77ad97d719d306bfd9fe1f5bc 94ba7022b5a214208b24339a91e8b417 75025c0ce9c0230f5b2a777164d34624 78baf615e8d1c00a89cc8eda5229f342 -e8a0e5d9c0b2cacd8163d4342ade690e +e1055159f7b283cb7468daf14a8684a1 c6fa5046b17fc49c8763a64a2190559e -18edf0bd49b184615ba8344dfa9f5666 -2d5be814bbfcd9268d903ddb7a98f289 +fc98a808ed9dd80c9d4c5091473b8a9d +d26a73cb7efe81080f769a3ef26e0f14 70a872670c64c2f1bfba189669cf2899 441e0f2ccdbec200a6056f9fdc0c3c97 73eee42ab2bef0da14d9c3fa7e1f1e3e @@ -9252,67 +9248,62 @@ e644544bcf0068e86a44d37c204ec963 4ab7bcf0d217d86468075ece0c83929d 850f81668e8529bc785988b981aeb25a -cb9edacac9feda06dc8441fd267fe15b +dca08dfec11f90b90a5ffe1e4344e5ca 86d18225c3ec4d2ab47d5b96594e1d74 -c294d42b0c532a0d0ed0ecd75b2da20f -322d2f0d1f63bdac9a7179e8f597321b -dc9564fc481ddd3101734b4e01c40027 -5b5402436d2e5525c68fe96889c8628b -2ec28d7d8a03797203f724f8e5cdd8d3 +a287d462bc71f579eea372c586ca1e65 4a73b1420652c433015ba38d07a82126 -14b937be198fc9c37d706a131f110c68 -09cd93b89ceaf280cdf4e3ed95113d5e +7e05aa55be140022b44bb77adef4c3d1 9d0003b476b04cb18293d40e8e5f9e4b efdb5a6169890e8d2250eac7fffe7942 -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 +6134c80e606fc3eeedd5bf6a39c3e77a 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b 33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 -2bea354421fe050e91df715efbbf39b6 +9cd49e7f744d8de62eba542e0195fdeb 05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -78faa2226aeb9f90e52c0f6239002838 -58c41f60235ea1a5fb3991bc4fa6a24b +34c7fde492170f80fe8e0e6434f3eb0b +bdb86969718f38f7c3ec9d78b8708f02 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 59b195fcff4d3877045fee21c364d524 @@ -9323,14 +9314,14 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 3c1901d15b11b7c8d9411305c2c10e47 -f0b73e105427c026e55c1eb06adccac1 +43f67ab455d8d7d37792adf1b07c5d9a 0f4cabd5c702824c0432a5b16dedf3ef -f22819b1a3eb265c2e589bcc71fc7562 +79d85b51749f47c08f869e8d88792b96 e5be41a111cad12948b3c30fcd5a41c3 f8c35e3878a1834751fd9ceaf8e6bb7d ed92d742de3415fde0de3efc2b84e990 @@ -9340,7 +9331,6 @@ 616c29b85368aae480120bb30455f2e8 d87b686508e12bb408c58888689211a2 5e5684f776f1a7354578715682f38651 -2ec28d7d8a03797203f724f8e5cdd8d3 fedf292cca2809a18d78f474c1334447 b1d9c0b57b93cd0b5584fab53a6c227d dcd4b0caa14caf886102e9aca04e8b7b @@ -9349,14 +9339,14 @@ 48774123b922c982e9db9735f78cb033 f47f15a53c307b7b6b14ce44989bc3e6 7e99379d64b67784419dbe4472109e8a -b5b11dfd8d85a817097aff93636326ec +f02aa204b8f08a2b24b5259e84d3ab65 5707af36b38fd6a63cc64e6852320ac9 d2a16e475bb3d3501ca097eccf16f3f5 4a208b83b250a5fa06add548e5f4675f 82a6941cc4dc14b88f1053af0b499e4e 59addea31dca998c1b712c1ed87d3f9d ba8ea3ba48fae1c8c7bf1e4a44d31dd1 -9747da73ccbc43226cc6b5a74ffc4fa6 +380507f4784c904ee80136f10dc4c93a 85086256e7de8ee29545bcd5c1063a55 5695f95ab75430e71ca7e91b1d4a7993 5df22313fdd1f6434b42a5a11f635460 @@ -9367,51 +9357,51 @@ e5dabc12813a485062ab5b77b5426679 -1a8ce93f9288fa37df53a35e1dfdde6f +8f2df396846f56c36b7f5981c55b09af 632d62425fd80b2ae185fb09da005b35 41a82da1a38fdb0731f1af8f23e1b884 -eeb5081b297e0efea247ed89213a05a3 +42bdbc393938fe75a1d853bf20f51164 e349f1a124686686a7e6e55d5e728e66 -7d7947925a62a4dc3de04918b3876448 +7c87dfe04f9013e7205e49361b771a8c 36526b8dab4e59d4f4ad236d6c90907e 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 a46e84e226776d1c036b5c45cf3bebc9 f760a8a4dbcb446b2b9d4a57519b97a3 8586f1e6313f1760b3c4b35d5446662e -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec 5b34db46dd8cb293738572404ed3b225 -971521a0a3a41ce840a88a0179d49f98 +bf649dc0dc28169978f52fadfd74c2ed fb330418c81c08843a8ecc7b41911c3e -f8462bfe02b86e870ea7183dcf53b2d7 +338c2613ad6cc390448329775b4d2468 f0777bfe665957f9c9cebb90f151c62b 49070aa4eba7e3e1b439d12caaee9952 -2559959902d060ca1ceb8d7a29871043 +d11f46d9d4869fd71bcb552f8d51522f 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 d1d57eea51657033e41f1634e96c2560 53ef803ac43a6382f578eb37280e612c 83fef6c66e36ad20cb4fe764f9f68e06 a4171eccf1d40752d26b29b5153b11b2 -a0ee6c43a52bc1229636b74109771bbc +0c962e7cdb40d7dad2a747913d2fa93c a80d982a5473732ba1961c022070788f -effb241913bf2477516477291789d0d7 -c40e12c3e7e5a1367f1c6217c38f1cf4 +87397eaf064ce70b2c5ee2f26a101eb9 +054e37b9444d3500de55fb2873fd01ef a0057248da365d8652f6b193da290302 c12cf1d469986ba2dc003196939d366d -efb32b89df497db2be8b2b094f5184b3 -9529ef58f9d820b6b140fb0f6367a299 -83c894aea542188b6d72b6907849f786 +a0b716a86724f2cde471e7dc5a99bc5b +55ec9a397c40c4bc20ab7a911bb56d65 +decda49a23434f20a901c6c9582898e5 af5b7c3ff0f794fcf79548c1ec0cad94 cd19eae6497fdab036c304d1de48166f 6a99d337f18961deee4388eb086941c2 09294bbf65aa3b16330b0b16119474d5 306523293000765d47944a1d49176227 f326d01ea1f9cb89d96aafdbf65dfcf7 -1dbcc3e832e6dae45827b9b01e372d51 +aecc83c5c5055247d60a4ad36fe5d27b 0266e81927355c5ace41047baab6f273 -f35cbdfdf620bc6e752ff70881a0744b -3c9dac5d6e08ee323eb0713413aa7d23 +00a227b4e7ea9b1ea5ebae93307cadf2 +92fb47ee68846daa048091fde37e7fce dd0c0d28fc4a2ed9db92b4ba84a9a561 62412b0b947b92addce88be9b0d465c1 e3a663c28cda435414f95b1683b36d3e @@ -9422,55 +9412,55 @@ 449de434949a3e2b8780a87e7b179d3c a0c8b26b80f18f02804d0e01e64c031a 436361c24dbbb8a017932053886910ed -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc 96c57fcb231c8ac82ea65c0892a50555 -0d577e482960cb5459adb57b4aa803af +41d78d8a65914f0ef18af000e6a63052 150ef0a3188079477ca03d406201c48b 046d11412aa0f261834b9ae1e91bac48 -b15b7bf3ac07e453058851977d51e213 +a4fc1d9078c00df5c8ca169878cb4dbd 868f7d6e16df1caad6ea1baff31016cb -bc3e3b3476143094419b5db2e88c175d +28cced83490f2d718f9c1e2c61606266 3cb79c768f575725f294e75ef620f846 a4c048ac4494e32101da4774e4d56102 f2a97948d26385dbf048ef0cf2c525d7 4fabc8a6936621fc03a2dd32a9ba7531 5f8b1d14fad5cda81df0c2d95fb0b9a6 302723b8a8150728e2868ef843784434 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec ae976b8b3ceff8461a54f6440a533b23 -696d5223809ae9ef74d5340d97712366 +f62445c9c54f7bc3a3790331bc282c32 fb330418c81c08843a8ecc7b41911c3e -90ba34f01cf900c232a804be94755cbf +d2fdef24cece2f67b802f0ff0a9246d0 a1e2fe9ace3039db5aedeb81476f34fd 54ee3269dc7dc1a5ad6b8e105b6d1c4a -8b23297081ff7cd9dfc4aa728c9baf0e +2b456e7e028515f07a6887c35bf6ff11 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 0377bbaabc9f554edfd5252b8280b6ef fd4e96a1dfb6310eaf9ca8e3d5d1c03b d4a4ee924ffb170772d19d8fb868d8b5 6189a60e665e8910cf6e08c7b8cb34e4 -7d4c9b0fdc8ca72ffdd4ac204add47fc +521554f32c542b54887e7b042fdce454 9b01fee9c9212da2f9f5d7388424cc9d -369a11697afc5fc08c9d9a119312befc -5cb30f4a7b7794b22249cc63086ce1b8 +6689a5cb779685d445bbedb7079f68f4 +e3b584458fa916fc13d478c9d06d66b0 5f249fd236d741add5cd1989e73a179e ba76df4a1a0806f87e68830f08b4c334 -4486ffd5730ec74acb7f165d032a354d -2cd212404efd4df30ef931e3c7eb334f -3342d6e329506071cce933f693a7c26b +74d91a7555f00214e4fc66025c26e7c6 +c99f08ea02baca67b2f7d3b53d831686 +025679c597154f7ba721c6a2bdc0a376 3db9a24b9c05a584f57e76bf796775e8 30af1f1daa6808bc69afab5eef6d8777 05295a96fc118adfbe34fed9ab5695cb 0eb4171c9641b54f4b0e99d38ed774d1 e2590b64c46acd99b18bf01068bda97f f326d01ea1f9cb89d96aafdbf65dfcf7 -89b689d8bfdef01c695a75602168e86c +be1e2d4df3f16e6e724b6e8322e2e34e b62965af8cd454ed73aa42db77882ce8 -e34f203f621a58e6a025f8d5776c747c -b79ef3622f679533a44325aebaf50f74 +6d806208ab89956ede6d771dd22caf33 +18f85545aab45cfaaf39f9beb9170e19 f11caf85f97048d91c71324fa554e8cf d7076d1ba0b16124aa157994fdb7ec3e c16ead4fa40f9b157f7c4f0ec8afefd5 @@ -9481,64 +9471,75 @@ 449de434949a3e2b8780a87e7b179d3c 8bd26ffb64c2d28d90aefe0d30932b98 c91758455ce161836aafe2a059dd9009 -7bfa336838a135bab143a6b5b0758af1 +32b016e33ecde84463dde239f1b9edb8 ef990f1dec41193b1367ff9ff985ca67 -c294d42b0c532a0d0ed0ecd75b2da20f -1db1d7ff0f6ef232f1aaac2c2cb56b43 -dc9564fc481ddd3101734b4e01c40027 -5b5402436d2e5525c68fe96889c8628b -2ec28d7d8a03797203f724f8e5cdd8d3 -14b937be198fc9c37d706a131f110c68 -65d76d4a51649d67a90d5c49c8ca7430 +0b12f786acead1817589d807f26db930 +a287d462bc71f579eea372c586ca1e65 +93fc25faef2e4a631602c033427fd12b + + +02f561f8057e8cadb399c18635e6d799 +d635affc1ece9aea78418df8eeaa6315 +a74186274ce78332973e48f79e3c21a2 +22a4f8ef288cc8029481984e6ea2ac8b +090e9b99362f9653758ae819aff75512 +5410dd2cdb6ca3af79ee9d2dfbe90ead +418697d8893dc092be6f18415df3efbd +a1d25b7f08b331845b86c40c2ce5074f +9eb5f6e1266870f5c28554b6722a995e +7b57014d652d44232899ffaf1894e8ac +dad6705b5a32e68b107566565d958801 +772d360cc224f9125941df93cb5c39c5 +1a11cd258abcd332148d1c2c08dcac6d -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -27534eb72e590038e0fa11d8df5a15d6 +05639cd1f431af20d67cbb44362109f5 5d9b7ccd6766e9e943b206c4e288cea8 -4c2cde2a7b3cabf2a3056b98f5e0ab9d +6c2a478ad90eccc4dc58825b3955f8ea 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -3d553783df165b8fbf3ebee134c980dd +3205d55a96cffd3b1b029104458ccbfe d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b e108d4f278f102da00319763761567e8 87204bb4bc4b2de9530578fce343498a -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f d91a412e4582686aee55e22120f10420 -282e62eaceade858ea0158c0f8bca19e +78851b6f8f660d86b00238d80980f375 05a11b19b5162789760c9838a936df75 -7bc61a1f1daf334bc893dd1f0b05ca37 -11f3242d58ace647e398a9844855545b +74e5138e0485400d0958b5c137a8634e +17c25bcc2889cff3d487e3053feabbc9 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 485f95503bd19520f6ca020ae9f337db 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -e5358509c768563b7eb5ed56913086dc +161157a60b6d31aa2eb6787c8e5b6001 c57c2471c7a6eddd29d27909cc422e41 -5ba7ac8405f49bca38bb086f6cffa95c -056cb81138164d85bb0d50ab0d312e86 +4364c1e5068618c97951cfab09ca12cc +cfd54dec6e531d2713c649687eb771cf 8cc192424d2a8a3a8439cf6c9e9c866d 3122c8015a2583d254fbdead8e4fde52 6f225dc643f02ed2509b857ca08a1695 @@ -9549,67 +9550,67 @@ fb4a6f0b8120de5bf4484b514147bf27 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -52caff2f9a03cfbc8f6104bf2403ec25 +06712412e2918006f5ffb08e351cf4bc f1f34d8c0f864daa5e8ab56801027430 -c294d42b0c532a0d0ed0ecd75b2da20f -523ab8741e3df41c6147df2003e726a8 -21f130550e39e481ce9cb357516e6ab1 +11548ca929c3b33650644377a193fafa +d78f2f3c7cea8650f256384b115de5bd 3332e7e07f91da6313b26cb61dbca6ee -5b5402436d2e5525c68fe96889c8628b 2cd37a211a31a13ce61875112cd9b50b -14b937be198fc9c37d706a131f110c68 -34e9924a5543f5c9f8d42f68852aa1ce +28f44c26afebd0f551578f04045c6496 +6230437ad4adfb173f89c5c9b1cd3301 +6f99a2ec953cb62fbd44e00f8d7f1573 +7d6b8f45303f24ad769fb402b9416bb5 68459fc84ea935a6d7c3c01688685585 -73e9edb0163694ae2e0a80744ec41138 +78ac41701d68b2929c5083654857ae83 -0ffa472d5ef751a84b9c10bd5e7b5700 +b96ab3897fa257c512682880b7b78918 8a54b70546ddfb4c37311eed7fe97f37 5d4bc708b7463a1439b6e450ecfe14a4 -50cb15cb36ba9f2ed19f40adf6a47429 +8dc2592780c57ff8e1844b9685952aad 10f30659042ecce2c07c210ac2194652 -6824d83658f42d96b9069b6fc83a0798 +1e3c22aa2adfc5c06708acf0e4b7d3f0 14a61298c64c7c9be5640d0c4e4fb421 110e015c9a8e5ca0f74c16973fcfd6e6 fdec511a494d5027c2acfc28a9699401 b724824ea94f4d3ab2ef94500dcfb952 d2f5adfad0a886c9fd4f01bcd8e2b407 4e5fa484c5e828a1850cdcc41c2e21ad -299d941a9f02e17c8b02434fa9e8030f +e780b269169220334ce8a881ed8df86e 8645e85dff01d97ec7a5592842fe8e9a -43676fefb1fdfc39d88827b4ba9392f6 +785ac550d923a2372210f8ec6fdde91a be34fcb006606de6d45c9017d0e6c0d0 -46d424d421b1da5570db5547a77ad14e +6009271825117e12a5a0c602659cf797 94d8e090abeb11d9024dcc7e3eb86871 e131a7ffecf41104dee00ebbce281fab -13e6a2ce352dccc6172c60efe0bd80f3 +b52b425ac660948cac6079e24ad6fdab d5878227c86ff4802e669af1c7596a5f a1b4f1a132ee1c2910d45a3ddf0b116d 46696aca52e1960099b43cd82dbbc95d 3004b16ebee23d327f659b2a7473435a 184f8b89087e7c5bf304a8fb05056c81 907459d92ccbbbeb7cedf07b093bab8d -900d9aa8de0eeab5acfd4db34d3ce735 +283d11015b1e9abf93cf98db0ac9973a 88b274f352239ce9434388ff31bcf56e -ecc6587f01a3e2b2fbb938a01ed61ff6 -f9e5e501d5824bdb2edd34487ef753e4 +abee0268a8e107361ff47312a5e87a6d +ce77e314a51b996a81e15c9446978458 953b6481373f49567196fa44c135b46e c628021e320e7a63491f3bface328003 -67709582399a59b174d58d7de1362fb7 -8023455375808279a7d309c595cf9aeb -48a16119e02b8de2108e34c83b18b326 +5c2e760538e1597f18d4c7743b92dd27 +fe1811d2f86bbbc548324f42cc4ed4aa +7558a825e0490735e28cab2de8014817 3678347d4536b92af9d398a603ec0aa9 ac2e49c27102ae56b3deed5e8d7c4175 44f79429dad38940b566f2f1537df733 47ec124cb943c866b2782fc3b47ef4a6 3a4777f67a135a1cfdf7a47069d350f0 1b7f4ed47e2733ed7daf1f068dc5a43a -833cb774486fc673341c35eece6a9327 +a15804da968df59a893dc273d4ab4c7e dc01728427612699c305b8f285cd1262 -4f85a3bc141a740f1d3931a7581d5048 -79cb9d37e25d660b3dc8c5de296332c7 +811b43fb9701e272813f4ce0f8dcdec2 +19fc6c7a0821552c6a710175261e8d91 87286fa247ed09647335fabb2a9ea2c8 0b44cc53b25de22d65ec652eb81f2709 f941b0dd2760b7fbc53b3ad0e10e50d7 @@ -9620,55 +9621,55 @@ b75222a8f89443a5fdd5270fd5cb15bf 8ccf673ff2d8d21f4d4b27fe023b422a 1560ee8237facda4df210cb12b9153e7 -e7f8a431579831db43cf42cb3ecc7ba5 +e7f841597d7e6fc358643b5bab47094c 6ad1e01b6d442e0d1300992628e095fa -37a644fdadbc320cd7badcb3f2160581 +8204668d38a45472f4e6d12de692f2c0 40da036c3ed6060360c70640de106608 e79dbc779c33fba7f5c1a7a2f7b57bf8 -af1916d0892dc13be2174e6d2a6acb59 +9d450f24216624c693008f7e5f16e7b8 9c9c90168c862a478d6fea10cadbf68f -f03e1ce24e60569fd52286622d5e9898 +a471db266232d971a875494230cc7c48 52427798b2a5dcb70d70d56d3e192716 1d053fd20fee7157bb530d6ed8656535 0b5a5f0f19db04cf9782504c32fde043 bbd2e9eb5a38d949037f38c2b160f5e3 ecfd8bb10368f489e38e4a6d70cf19f4 14486d10d969cfb5063318a4d1fdf997 -60777f0319f1b3dae65db8ae22ac8b83 +bfdf26f7b6a89a2378f0c86830195f57 be16e99465614871bf39a938b331739b -33c88a07438fee635a31e31f1b82b1ca +48f087a382b785b2b48900bf02fda7de 3833a731abeca153bdb91e6ae155a90a -03be67f2459dacb52f4419c05d9cf9c7 +98d75e356fd2b8346ddce25d95e0ae71 e9fc552212d3dcde62ce079b3ae7da14 690c87d366aca89d2768a17c445cb045 -da307033d9af4e73d15dfff967f301cd +791e669d26928837be4fe2ef749411f3 0cd2d97cc04d767f61df46295f3689bf b5685b4431db742c4d8e5eda463ac680 36ca80ebf0280ebf1d58db67f6491dda 4cbbdb44f239d315bc124680b44e79a3 f286f5bb77bf7a5d6a3133d47ca2def2 4e48782ba5e3db06fe07b7a077ec5639 -7039961c9bac00c7d741ba4411aa01be +62e3883c35027c39bf1e314e7c24a570 09e9a424a7a3756529a6a9802317131b -b536e6b3720ab1a0bd19d0cff38bc56c -38c5e9d111751c319c3b15390e924b17 +130c00d386078dace2cf9ff36b9f5c02 +34b0430074749f12cff0ff3c6ffeb334 819885d528aca06ddc71e73fc4f53c60 d95092bbd49344e2a07606621b38780f -019c8545f027aa2de1002d8f97911304 -107c60ff2789cb0af7faad68c7cfc5e3 -4c0c45c1fda83bbdc69cfa4ae7365f72 +a24cf2d2bdde87993488aa5ac2311bde +058fd071b124431edbe806c875a55025 +b1383da3b366596a1c0417fc06168e06 0a4b3147837c4b2697386b70940cd60d 6c350cab97cc78a5355817fefdde8d1f 0102a1534d2964a0ff588ae23e2effb2 3954cfb000ac4f676ed6fc06af23dacd 984ac2a148088665cbda36e3c2d1e226 84d22376b36901d38526d6ebe0e10281 -b904ea77e96218942b531e429d73ca9e +05be9a7471ce388b5e2e5fe2954b1424 65e9e1b5f51015b08fd5e36ee6766fe6 -18cd624bbffb0755b7d6debd18339380 -0eebc1b879f218ff0bc49f20bebe7d62 +ef25f47ee67eac94eeeb0dd9b5d569fb +9f783348297844ee23cb6f1cd01a212f 89da70a234eae57c52a2c2c94993f02a fc98abd696e8be5f5f266fc5a88e952c ab4ecb5d3233c1e528042934ce93a740 @@ -9679,55 +9680,55 @@ 76fd170989412fcfb3cc9f0019c0f184 ea995e584eea2e034db3f28d8fd9bb6a 1b0c0949ff8e57770f7e88e433b4deb3 -f4fac5306d75577287c3e93685617f2e +75ef924e15af16ffa6eb2ccdf9d8ddf4 7457fe1789a9f0f07205824fb97aee9d -c32c79d19fba449a6293b9779c854a57 +a025ed1d0dcf70880fb1c0c9afc6ac1d 8c05bca341db9c1e806bf122cd6129b0 f8f7a172a28516637112bfb05e9b0bbc -cc8bb28a1c987461257eb130d150c152 +44ba92975e6660ad82e875ca2bf70c9b 443bd303b15816349244d32e532803f1 -24587a4f7f28aee1e9ec50831ebe0471 +772113b2cf9a9a23788e28aaa3616e44 4a9dd02753c248d33d39dea3efa7acd2 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 425da8d00f099c5e145c34080a297f90 a4122ffd8f45e924d0008ac3b433753a be6f11bef46d99c22eb5966366c90559 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec c6596953a71008b40a07dbccc4246f00 -989b7a105e98561e21f4e9e07902bcfe +73a17ac88ca0270e05f2159971ea7d85 fb330418c81c08843a8ecc7b41911c3e -613ef77327120476191a189d589ff35d +42caf35eadf47ce63212b7293613c26a 901903fc1de65fc69091fd2329c420ce f5b0214673d66b795a0b2384d50a0f6e -16469179573686b8a93127543b96179c +93f882d6f3b53b2356fcb729ac5a66b8 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 71069986b806fc1ff7a81389411f3758 812a612df294643f768e53dedf53d8a8 912352c3ea040bb64208b06524d3e69f 59e6bc72bc79cb2058f3a3142ddbf65a -8f2146768829eca23aaabece6b2de026 +259c1b20b9f05320ec796e70839fc4f5 bec38e846ba9a13225c6530b1a282c4b -cb9aeac6d97c3f64441c933400ac7c5e -da6e81368af413212a22d190a7e87f05 +c5df93c6c0e803924ce6e3768655ed6e +a8f1aa8e916a8bdc0840628322b2109d 29274ab30398ff24199850dd8f263b78 91d7a4a1383f1b0fc2d3e378d46415fb -a58164e67d27a30b24604c0a0b1bb162 -432b10c20f8a08bb5c9e226c82ef3ff9 -f639fc0842e405e701daeab5a78ee0fb +b1cc8152608356ba4ba7f1391d54fbaf +ca7c24aefa1e07793edac9f3ddbe80d9 +a5f494a9067158c4b81af693e44ca2f4 12ab9dfa0dd2b8b003da7ae04c38bb2c 4c37f0937bc0bdf3829712cb5d05255c 096f70f880dc63e09b098ab89df0e483 6178270f145f619a39ba9638617557b3 fa985871fb4d0f74795b3c61bf129d8d f326d01ea1f9cb89d96aafdbf65dfcf7 -2cd6906712928cfa690ee48663264147 +b7b25caac3ac1481adcc45577b1fdb59 0df5c94ca0fefe23e45d64cfb4e3a943 -261aae0db831ce67279d2ffca7015545 -47da69f211c95f6cba5dc0eff1fbd761 +b25fa99e7044413d193297bd3909410f +8354a1df4b6e9dcfa5e89a6c44d82e2f c734b464a1378316c70ab63dd8a36e34 46f4fd2960c180e57bf42a4003b95789 d855926b2e6609fa7bce6078ee3fc9bf @@ -9738,55 +9739,55 @@ 449de434949a3e2b8780a87e7b179d3c e7c1d3a1b5e1cf7d3216cefaf1f2685d 0d4ee93669987ff793623dda488a0cc9 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc e4fc2e43ec963c474b2f6f9ecccf3ea1 -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 +6134c80e606fc3eeedd5bf6a39c3e77a 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b 33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -78faa2226aeb9f90e52c0f6239002838 -58c41f60235ea1a5fb3991bc4fa6a24b +34c7fde492170f80fe8e0e6434f3eb0b +bdb86969718f38f7c3ec9d78b8708f02 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 59b195fcff4d3877045fee21c364d524 @@ -9797,113 +9798,113 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -001f89497d83b75fd374517b88d782ee +f8a9693752fbd4548c1ac8da7c8107be c3e50ad0d4c93692a2810e136ada70d7 -2cc2731ed536bf38737bfc2897163b4f -cd00474a5d3f6c553107276daaebe05c -5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 -545b1414d82cdd476e8d6676161e3103 +445a46a82a229836e2a48281bfaab919 +1d9a45779fc4c9ddca70d2112c570cd9 +005ba3bd0008292e2a85386ddd1fa04f +6134c80e606fc3eeedd5bf6a39c3e77a +e53cc4766956ee5ea80f16d007d510f6 83d51da6ce128a36cd2e5d2dbab76ce0 -f2a97948d26385dbf048ef0cf2c525d7 +4ac3174e1e2b105f8a57d7cb28a3d399 8cd10e297876e0c2d47a576dfcf61a2b -044e22c98deb3d6da5898931cee7224c -599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 -d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a -fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0f546518edb041564ac25ba94055b263 +8814f2d26ff511d967f395d57acd5685 +50168662e94e4db72ff2ed9dffcc4115 +3a925c7039a115c8e6ef0d90f31dff5f +a1da5aff187e7e5b5f81bb9c2d661d5b +7c00b3d8a22adb8465d426fe5761fa35 +0a95085c8a3f3efcd5a63702b1bf537b 33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +d78ac4ef6dde0ad5fe7658f9d1ce627d 1898ba53941f49ece5a58b90fdac3ebd -7353c73dcba6a3beb03620ccb68802b3 +4a8c0a31962422325855a971a1c7710c 5568084ceebffcae386fc1ec48e7ffa8 -17da2830504929531702d918d538bece -681bb6760c742ae699ed900dca34241d +13f83052a3d8a7d4436fb7aaeb7913cf +8b01757f2b296289c0f7db30ec11d96f 59862f5cdca62471f71fcab151781df3 -ee05f7fb91d29da2977b7374f9cff85f -05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 -5f93e31d32cd99d38e3d59c80b4137ff -df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea -5b4aa669a151dc30f4dba6f345177d91 -92ac14a3dd5307e6bc4429f625ac3f5b -07692372f9f22331da5ca1cc604206c4 -f5c74ffcbb82b66d295e84cb0c11b477 -6448daf1b06217c7dc989bed6f3709a2 -fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 -c57c2471c7a6eddd29d27909cc422e41 -976677f9986a37f46dd8cb078afdce50 -4dc8101030bd3c2080accb4bcb04f9cd +1e741510c30fa2894a498d766b788feb +9c64532d564956b7d3d3a257d242b3db +b23badd5a8357651688c3f6df1316769 +8b1c537db8ab0fe4c3f8927b2fb0cb9e +54d6d201342c97b3711f80827d656538 +9fbe301bd2b07340be501d7484824647 +a6c44b297a558b313b308619d0156073 +119f3dc07f5def810e5ef2db590bc1b3 +02f8d83c5adfb6d65ebf8b68fca9b672 +218c313a6e7da245be69de66b962f49e +cd47d93ba321bc08b38a92a265f6b3b0 +2ed2a2b1bf98711b45ff827f312a4e7c +60612a3459c02626f55f8d6d0d3402a2 +2cd7d3f7497c93d075b5ccb792446c39 +7757d7cb0a69e68eb61016da1eb117e5 +5c421382d1ed9e5e1f86f3bea1f29cc9 +dcbe961b1ff65aa4f20d45fedf7f134e +f533529636168b23109deace45243288 +5a95f66a1bae23db97588196ad92077a 8cc192424d2a8a3a8439cf6c9e9c866d -228b0316d26bdd36e56a9158eea64ef6 -59b195fcff4d3877045fee21c364d524 -f6118b412225605b9bfe2d33480f8f4b -bdb2338095a4ea340c6d023c861169c6 +e86011217ac83cd8b8952eba36da554f +291adbc7d79c325be982f0c0d155a12d +037be0b259ed6f2c8c88156f1287a353 +03cb1e67010459bfa029a017a1772908 b59c994938b335efe318af6e6cd7d977 -449de434949a3e2b8780a87e7b179d3c -3ecfa35141eae057f996daee3608c0c8 -d7385726059a0035f5c91a2c1602f235 -a95fc4e5f314aab5e20f6265a8f35682 -f1f34d8c0f864daa5e8ab56801027430 +b898ceb0904d8567be7de10c55a0729f +66e0502fccb30a28be66dd050968f0b2 +ac055953468913e48cf4428070d1db18 +1483402c0b4004bb0547e572f2c6837d +6d68e6d9d94c46be0cc3db9e41e2f99d -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 +6134c80e606fc3eeedd5bf6a39c3e77a 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b 33f2afb3d4f651ff3a4856891f26faa3 87204bb4bc4b2de9530578fce343498a -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -7bc61a1f1daf334bc893dd1f0b05ca37 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -5ba7ac8405f49bca38bb086f6cffa95c -4ffa9d84aaad0e85fa501f82879cc18e +4364c1e5068618c97951cfab09ca12cc +3bb50d344204ac6115c3799e8e7d51ca 0ad67108567f99662f7dabc9585331da 3122c8015a2583d254fbdead8e4fde52 6f225dc643f02ed2509b857ca08a1695 @@ -9914,55 +9915,55 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -044bf44c5d7d18859115ee1c381a6128 +f58703fa42071506f754084771533803 4f3dd930710082c606d630d8399cb483 fe0cac1dcd26398b7af88d0463c11bf0 -5ce211155fc5ed69d2c580fb0ca5f1c9 +fca2cbd48c60d97608b0bd8dc7f72ffe ef412501addaf9bc480e7de2bfb2d445 -cf91e13332c13625c1cf2ea4636ef527 +85241cbe975bbd8c97ddcdd93d5649c2 24a463840569e7c31797c226dbca70d8 83d51da6ce128a36cd2e5d2dbab76ce0 25e1ba7efdf7ca4514b81e86f1b0434e 6830bc73f64c593602b0621587983a53 f45ee6f7e075dc07091427a65d80bc3d de802721fcfbac64dba34c4e57db1d77 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec f224691cb7bcc2759a3892662c9db80e -22594888bfb7449667e2bc9e473123f3 +7993356c4b4d0e06e33e6aae2d86d338 fb330418c81c08843a8ecc7b41911c3e -b541caea5c767a4f5592528667133bf4 +5d07d2a675f1aee608bafb069211de4d 004a58ead0e46cc37a0012f34830d7e9 63a1a0c3dc2beff496d15938130fbc1e -2385f20e749585b5d5662263217ea2ff +974a5c0861d9dbc8812376eb626d1252 2364fb2d06a0eb002e0053bbd30989b9 1b07213c7405612a72c82628826d7d5b be187e899e7a47ffd467e9ce35b8f4cc 17da2830504929531702d918d538bece 6b2bd775e06aa7cbd2f7a8848f5aba67 992fdd617035a1127aba5caa02e9bf7b -c350f2eeae2f5d929365041bb54c9a13 +42e733a579888b558a3e2469456ccbc2 6421a8b039e088359548c024a50070b9 -10da288c55fecaa85ef7af08f041e3f6 -dbee74bc9545487c0b6806e498cd2aea +e54187fd82fe00c9c2271ba19d36c01c +1900a6121679c88999a0b9d2fdfcfd8a 5f93e31d32cd99d38e3d59c80b4137ff ecbbb1603ab59fbe960202b3470413c5 -893511fb018dffe28b1f0c479ba7bdcd -c102737cc01f004013986c097d8c13fa -70e1da0a51b6247be17eaecbd9417225 +767dd7ba08cd361151b6d8390298a342 +59d9c7c8cf2b1a6d3429e1ca7ff1a031 +65c7492b9042f2489146986293c84674 e2bea3db3349c137767eab56bb706958 aa04bdeb89f5b4ddbd80395ebe09c29a 7560df62010de03bd1597143b8909d9c 501787b615deed8af323325510e4479c 2bb94b0f66048dd210f0b149544f69a3 999992f3bf87ecc74a951085c24ab54c -fde64a2155b288f66c1ae7aeedefc3bb +70dc7c7ae05155db57ef2978e8c065c2 967f6c4724c7c5a3807ac81fd7d42d57 -cef93c9c42f305fcedf9bf3ae8d9f7eb -e89af39677088e95fd2c457d10487b12 +c5e22bb5166a4b69d304414f519b359a +1eea27d8dc099de59fbd653e5bac258f 3bdff0ea3ff709e917be270c3e96a1e9 c0ce2218241f69e739b177fd5c140033 9768913e4af639ec2118c264a5ca3583 @@ -9973,43 +9974,43 @@ 1130ef43c1a7437b844db1579e3c434f 9544b3406665c8454ca7ab39e2a6393a ccd751e3f9c583aae56b1eefc3bafbbb -fec167baa346c43989cd7357a091ee68 +0545a8fe6b0d4712665045332c5a73fd e77cfae1b2c9124ddd567cc6f0bcd7a9 -9eb7de069f59815934e071aa4bc8a400 +d04237165096c4ab4aae777ac08a63c1 d644237a73e898a62393491905b4ed87 -4160f02f654932bedd29edd671b51d46 +857cfdee8d1a70d9357f829ff7465ec3 b39c038e6e8b0628c90d5114271dc50e -72b5eccc9277874ce99e16752aba159c +8b1af0ee9bd757f406a9085e52cb3e1a 18381fbfd3da6eb62195dd3d7c2025b5 fab0071a1a02bdff2c962825b43c2dfd f254234f7743f533f091e707ae5c6e5a 93d2324320ddf2609d33828f0070e552 -5b5402436d2e5525c68fe96889c8628b 07dba3c5fa878727518a110582690996 -2ec28d7d8a03797203f724f8e5cdd8d3 169e53e9bb18aead3d080bed0fb9a311 -14b937be198fc9c37d706a131f110c68 721f864f34ed9957a1da79a505146c16 f03b0dcf6c6febaec231650b079d2f69 0dcf4ac06cd149d2c5828b8563cbe01b -1a6ce5cdb1c6c8e0101031ed7aa4cffb +436545df3d1465a5a48adb9868ac07a4 d0e4982b7bc6a1cd62b339dd4edef863 a946d614786a829d9964c0e27d143e0c -c294d42b0c532a0d0ed0ecd75b2da20f 08acb8a8ca3a1dd92759d583424913af -5db0fae663b6387d4176b8cd656f89b9 -1f9c4608541c8e95cd6189b122aaec7b +525957b57a0fc667d697fe991b9430d1 +20bc5f32b32f8e0916ce1a5457227126 86a67dc27f4eab8f63ed174e5c3b5d6b 7c997211d0f9484e255a5c00ee139c30 +ccce0cde4bf1a228f603f64e14dfd505 741a1338d8cd1eedcaa67bb2a3988c56 f698b9faa688684b6932c41c48845c65 -14b937be198fc9c37d706a131f110c68 -3d09d84e3192b9ff3f2086ba9cc60080 -d1fe9d7d18e6a94eece41486639cd0ff +28f44c26afebd0f551578f04045c6496 +6230437ad4adfb173f89c5c9b1cd3301 +73bfa19aad8a9d2f4456d5c6e05bc7aa +c586c55023f5ff1cd37e7bf4795ac916 +7d6b8f45303f24ad769fb402b9416bb5 +9ed2bf9282af9c376568885348569e87 b9f82ae7cb411ea9546ce513e57af1f2 @@ -10029,51 +10030,51 @@ c2d7742f87130bde6c3b91332f04c837 -a3e9281777bf6379e3e532d4f86f9918 +a2319b6bafdc046d8782498e721068df 76391c0def140fedc6931ffbf18ab295 4c6700b866e64fb8761e87c807f31801 -7620117a87ac76a0abdf1e3f2a0dd2a8 +2f5b0a47cdfe19b77022593d65a9ccb8 a75be484704fc95dcd1bd88579cdc6ac -83541ff8d9a8403b1c4d65fec49f1def +85ba8085df5fa8598b2b64e97db1f12c 93f3338fc21f2da47f79c1446f3f5da0 9a61b8f01d920877ac43574d7a89d139 0a27701667ce4d505e2ddbd6a16b8cc5 8361914c0ee551857cc25cc0fdf97fe9 d0aab202d384152857a67a5910d74da1 7dd6c7b2a261d29947a77e876c528bb7 -978c57249da23e3f3d93de87b2c135fb +b99ad87df98f3a06424fbd9ebd338e80 5e43b0e94632b0f67f274968d54e1066 -bea204cbd818b1018e5ba6a410128f11 +79176c1d8bb3143c78f0830dd414f606 cc5a2dc3e5de619ff865e9d7c81e128a -c09c45f624a9bb96d696b4e736810495 +fe7ed9ea8c32d40babb3bb89739b8880 cf47d01f997d687b8a1bc38e0cb6485b 31f372c93f03315c680f0ccf7d1df897 -5b6e8355297f48719eaa508a1dd0242b +b9731741850079b9e831f8a6890ec89b 254cc450c35f98ddf34271255f4eb6d9 22ec38a9e1c8d0a8ade2b378df4dfd5e c679cf1cb4b8e13fa28a98eefa89e436 caaf489a26511afefc97a0624f47f2e0 e296aa7dae0e0d5d91a2a7cab148a042 1c9f2e419e96a7abf36d46c2cde71e7a -88aff64c2a387f2558e14f5dcdff75cc +e0e6e54c2cb89b008ee551ee9bd97804 24359d62453ef0883ebce7a118371c6a -68bdddeadf40d3061dd009fe77eec5d2 -487ac2c661ac6747c4931ffd4e094d6d +7512bb4a63889927a99524df2da76f7d +9cf7b617ca05a4066e7e0d5d02db6512 bfdffc1cf6e42979f52384d3125b72ad 5136e39159be1875f8f6ba4489500d09 -8028b9965a200c62fd4a16eee39c0e19 -6dea95444fa084d9f9f33be87ab60a07 -2edcb98d384fa73b9452c76b88602e06 +05cf692312e366e5f262d956d0c11eca +70cd971784454b3e119e1d0e90d1de8a +24717a755baaf426eed7c691330616a4 45dbd2119c3d6fc009c327ef5510af98 c7e70b20d22458e1c7625cde28fd7c3a 8847fd5eb933c577a1a58d65274df4fc 26d9830c8d765010486530413e4827e6 ce9447e5187596bbbc50d0906cac35fb c35de5bd5cec0c5e363104a2e2e4bef7 -198b5c8e1cd19cb1a5338b8cfd7e11fb +7c452999b4237bc2856f5c3119ffed49 9af1f73d600a2a75987f983e3cfa6d1d -dfbe3c60c4f1647c6956c3960f848fee -506490e627de09b3c0121d57b10a76da +afecc22449ba878a459caa37bef63609 +21a333e51f000e1ff0aaeefc9312caf5 17835e9b0f75e2f6dcc0345f888cdf4b 5d8da5928c310fe821026ff6eb52477f 50aa8753f776052cdf34c558afff98e3 @@ -10085,55 +10086,55 @@ 737511d96be3c80851cdd4018b27fd21 138735e3488e4289f0efaca31ebd99fb 9860471a626d8cb68c4f882a84bc7bf3 -d9a68560ac879c04862d375e8163dcd8 +275b46de50035e1d052d6f2798871d0f 3afb85eee792fc054a42df621767b520 -5f817922fde15eb48895573dfaa51975 +cad8ddff1d4ce01b74a4c89b39950974 7cec430ac1104bd3b19e5890319c7fa9 fdafaf7353ac65d8c09de8af2a8f3d02 -02de4123dc8fcd35b12d2de81258b94a +c1381bf5be0a69e660a8520b87db5f21 f29476a4ccd176b6dcb06054bd905662 -bf7415a185821421221aacb0adc59af7 +70ce0f35d14c6abfeaa210d3d1be0036 38e0e2f17c3b5559b77b0f2406a3be1d 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 6b0bd777843664a8aa07dc3ff7c4e056 af10bf1c20c1f623bbc427dffcf8d85d 5d81b77669a8e33aedfb22e0a89257f3 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec 6c946d22da24cf980129bca6e8dd85ed -0f859bffb657420f91289f3404c3ac5f +0c36ee899709c26ef7a38003fa609e23 fb330418c81c08843a8ecc7b41911c3e -70bab55d7cb9bda9286475b0e83d5667 +743e2013f8b645af5a9affaaba23e2e7 c89a0952620429ffc07402cf29cb6343 db6c98d5d67b4033e5b2c0669a0defcb -440254be3afebcb1e39048e3d150f20d +f7c72dc1b9159c90e8985a0b5023367f 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 98e462f88ab14c1a545de484f1b66166 72ccc97c1267b7432a5a34838c729dbd 8568e4d03cdcc1874f6f39e21f994007 70b002fd1a16e5e9f19e1ca9c51797ba -0ad29ff756130d52f6263650570736a3 +a23db72fe18e54fba427eb4e66257e76 cc12ebdf72077be80525d64e6a7ed5ec -418be20b4d4d50ff450dfb18734e4722 -11972a00c6080c23c92f9dfb07d15d6c +7b3826dc0f092040df5f5356d8ff8e09 +9193f8cbd4f4442768a02e8c54ca1fd2 c101b90fd10577eafb85a1e9adb6c0a5 8c3a12722573cf513d5435feb7f71adf -54e9748ff0d518f522fb93e68804396c -6937cd0dab5849cc6e6090ebfa6d4ff6 -54f0ec2e4bd20af4a2c9ac8d15c5d3b1 +237f3ad73e2160a8b54aaf96262ab5c0 +d9933cfcb7f8c7ccbc4bd7f0042f1e46 +0fc0ed7a2924a23996079448796c537e 5940b1e0d9e4ef0693e6f862f1fca63c 976e6f39654ffd979a1633da2107011e 7e73be5f5ef1f54d09eae743625e6e72 23688a6549a080e528796537be16b9fc 2b39e01ef2d55c7b3a24671fcd570e59 0b5290b5856769452f96d8557ae4af4f -b5468bbd78484c8d55f8cb41dba6bc7a +135327918b1b40a9d85e0e11c22191a6 4de88dd01e059e9f95fa2110ae7f8009 -1024af8ab77e45327b7d2346f5f7986d -d79ce4f27f06d0289029d762e1c6ab01 +c5cefe593185d53e4916a9ebb1db00e4 +d108704ee03b60d892f36b81181c0ff9 eed8a78914dc69097046ef05aaefbc39 1f1976a8a42bad235f1ed009fbc606ff 4404ecf29a07974f4cf843216d86641c @@ -10144,7 +10145,7 @@ d0739d358ed00196d99144e88cdd7f7a 3e1b068f6c8c349c1deff0e88c8ca80a 0e72f1e88211f93ee64eebbfe1564d1d -b13be9ebaee90884f0445788681ac8fe +9d02a0c2396beed8f487a5dba939317d 1e261eaa004ceeffa908ff6569fc2119 @@ -10153,51 +10154,51 @@ cf97318c23bd26d18d237b60384ddc66 -1460f43ddf5814a3663461d0beb1ef5c +e605ad7b957a19d8fe36c93fc33dccee 5d320d584645765ff1a2708f271845f8 2660b72b66426a56722e0907c756ae68 -79bba0d100143d3830684fbe1a9a7fc0 +cdc6878c246cbc6b8f17ab2411979043 e83f4473fff2b4082532ad331f1b1f7b -9389e860be256922eb37d0e88199a8a0 +a8b512f6071708646d9a300e34959efb bbd623fc654d0934ff37ed00c28de1a8 e25797bc9974d0b299076b48287420c6 771dd023b76d580a4e7da4a064ba3d0f fc033883d6d13c24d580e557ef1717ec ca07f1bf74a5f4a2b92039d15a99c224 d08b34780ab4980ce0bb45d9130b6a7b -6a62458b8fea7eb058c3a932d6ce7a0d +151bf9e4c6174b12870e484fd6118b4e bf6cb3413093d75713ac70cf41034423 -ab594236bf2e2a55fda6cffe5735ce5c +60c087c4745633837a1cf463913f9a56 413e0555429b0e7292bedd1e52f4600c -e124372c58861b189c5ec1d4cb40b06b +233aed69397182ef49de87742d88bedf 4d29fd256a903cb9fb12b7795385a7be ef3b8f2d379827209d56fbacb1dd0292 -b27f43f0542902f3cb417db5f3cd5b98 +59467fe98c12db57d65e60d1621c95cc ba1cf48d1f6d031d8adf51752f179275 3646fd310e96bcd7ad15253c92d3d083 30d2ebfac928b67212840b7560e43f0c 5a71ae000c909a6928a183bb4a2d941e db53803710393c0486f2e99c7029bfca 390875fe099502f31e29c8772af30ef1 -97a45b0930edaac8165252d084ba0832 +4dc2ed86e4551a07e4ff21e17d1a29aa 65a69690e67238c7a65cdae57faaf825 -5ffb6a54b7cb00a3b3094b84c0d76053 -7d41815aedfbd86c8d0ac1aebd7fd21a +415260e3759dc4f23f9926b7ba5b64b2 +ba37223ce257f3662e2be96311962fce 0eff879e0e50e8ce01972f38551cf1ea 6a52787b07ef94e8737e8d822bb0ecf1 -acc831f5d2aa1117c678b0a8f74b32a4 -d18ba6977fe772f40a242719ecc449e9 -e457cadff463da8d5ce8617c6f99fb1e +f27618bda8ad19e01c07c6f3db26d92b +7e3428d77f981288b2a3174809ec7ea4 +d09bc0973279364ed47cdefa6a79c155 8f8a364b8d31313a165b00cba801409b 4663e58b350137c5a7d311f08ab90d09 794c2d9924dbe3f2fe7679c7069eb5c8 11af8e473e963199d9566b7b376b3050 622fe99e2e633f0d3e1b6184ff06b958 3f924c148e0c0f512570e1a1c65d81bf -f6a3a43c74a436c4303dc9a6f079342c +bfb6d02a7e828b4654cfc5cc18aa866d 2d2a97a666b366adedfcae6b76159247 -0e4ab4daa9a9227ce179d13e344d2d8a -6f04c7df289a8477a4179a8b931d6da9 +6802765991e1038ff058fe43a58ac024 +e829de6a10c74866f41c0fd415c1edae 4d96011de54501b073ca0dc8543778ff 0e1a650c3666abf86528bfd3562aa763 14497fd6edd5c6ff712f50e79dfc66d5 @@ -10208,73 +10209,71 @@ 062c2a7a4996394f673ca9d98ef3bf7f 05360e7849dce6f236187fadbeaae20f 42432835fda1f793609eaca22b834d19 -d465a5533ec53c1b957840c88f7422a2 +ad6aac2b4e1f77a3b57113392fe5c869 69e863de65c7c11b4d4359dd33933737 -c294d42b0c532a0d0ed0ecd75b2da20f -322d2f0d1f63bdac9a7179e8f597321b -dc9564fc481ddd3101734b4e01c40027 -5b5402436d2e5525c68fe96889c8628b -2ec28d7d8a03797203f724f8e5cdd8d3 -14b937be198fc9c37d706a131f110c68 -538ab10324a9a151d1944f94b590e3e2 +a287d462bc71f579eea372c586ca1e65 +9f5ba8d00d619d312d40c07f38b35c6e -c294d42b0c532a0d0ed0ecd75b2da20f -02b4f98405e26fe54399ae5cf3d8e884 -dc9564fc481ddd3101734b4e01c40027 +503179eef2a75e444e6ed540ab5816af +3a63b5ca883378d2e5b3ffc0bd8367ba ab59d61bbffe26c3fdf53d3c6b5b05d9 -5b5402436d2e5525c68fe96889c8628b -14b937be198fc9c37d706a131f110c68 -538ab10324a9a151d1944f94b590e3e2 +cf2e582534edc6a59ece7d22c939c00c +28f44c26afebd0f551578f04045c6496 +6230437ad4adfb173f89c5c9b1cd3301 +378e17fcf077672377ccbeef64dad311 +b2ee3e61485fdeb685fc7f73bf802b23 +7d6b8f45303f24ad769fb402b9416bb5 +db59948d8443a30f976ef562646c108e -fb147cbb17dbe7162bdfe77907095f58 +d9f9fec3917d6b53367053b70488dde9 ac16b396be4bae4e72ddb087f590c2e2 7634fa5841088e340e78dd026a207001 -47d151d6c9f7edc4b8abd57c104c7850 +57092700792f07b4546c0943ebe8a1c4 53f1a80837a5b81364f828a9e284f4e2 -1dcf4436524efb1a8a13230391447a27 +93da2c233743613b21beb6dd691197ce f0bdb95e6126f2d5e550583f455f55d9 83d51da6ce128a36cd2e5d2dbab76ce0 31a8687a8d2cbf8992c607e1f21e0a7d eef423b5c9410bec537cf0b8eaf84d33 bf78ef45d31ebca84115e960baf244e7 adf891c20d96e4184023d04552078088 -b4dc1d5d3383cd97553fd3ba3df420b5 +99d11807fc3d60ef8532b0dcb0e7566b ede3fa28a1d3a5680ef13c9e227b42ba -e5d9dd14cc3d69083f2c281ed9a48c3f +18783aee3a3acd1e542de7cec9e576eb c20563eb5ab144e4caac3d422a3f7a4c -6fc249c7cb724140382a596a1b373c1c +9ed840b9544e41d2db4391c20dccd674 eebc91d4fab1259c05415ed82cd19879 007da2b3bc701f7be0efb50a99d72e98 -7597120b5a11d00a52eb601534845ec1 +4086f5653c691655e505bc0fc5cc6481 97cf9622d28bae2a510eda4aecbe0319 d3988891f5f080e84de28bbfde083477 508ba851c0f230bfaa3c32b813d1fcd8 979ec7bc5aa8684ffd8ff718bdeca9b0 9f887891e44e6ccd4160a5863c49cc26 9ef6d1074b9e0752a3622a84e8905b34 -6d2b54979cb5388a8dd1815643da9e06 +04c89392f04467d77eb2a2517bf57322 620efc55eb30835ab25b36b1f23c7290 -bcb7d212efff9d2f016db69793c8fa33 -742b0e2ef45c74154110cf689a6a0f29 +fbeea858e27c8b3de5a1c75afcc9c9bc +771c64d563aefc79aa6989565a94920f 1099de7c892403a38bcb3f388002b114 a9bd45c8e4c6e67f48f99a56ef46b676 -35bf75e1e9a05b941031c4f40d49a9e8 -8a0018034fdca48eb496dce3958b16e4 -91441652fe9dbc65fc40d5dc679ab051 +1bbced61a157b36189a79c706f547db8 +60dcaaf4d25545cc93de4a34c5958b25 +be156233bfbb3efe91d096016210b107 bf0ffdd73c0e91aad6aa4e4b86f2f4a0 0bd9d42b67a73a9b4df222e4245a5fcc 6ecb7391c7998ccbeca8f1209166c7e7 090ad581e9e8c566eb52aaa42dc8fb72 3caeaa1071c0c238662aa44dd4e6ba7b df6baaf86ed9f3d0e4b94c391d77f33f -343ded92c22f650d69a9fcfb35378364 +ca74ee128540b79d6796998342fc7312 a33b50027d330ad44adcd5e9e827bd42 -81bb0c6d4650c32d2fbc032040c48b4e -7568f35163d68aadbb84ea44330a13f0 +309cca9ee7dd88c3fd4f5442e19dea63 +4bb861c191c93953e11e510fc40536c8 677f664243cf071749383041adec0414 a14311660639a521042796c468a23b1d 17645bfcf4473c061cffa6613cc4626f @@ -10285,16 +10284,16 @@ 182eb0be249cd128f6aa5be40849afc0 defbcdd0247cab8d6f14fa0ae50220de 936cad9093a2d6bced1c9bdd5a8c8f9a -75bba8fb899d23990e498f170e323e78 +762207d326766599a5862e6f616ee67b 2a02d65f7ee53f1a006212dd415343c4 -17826ac0abf776f5bc6d8c68e09c17d5 +5dd7d20f01960b03734721e766ba8100 dc2cd95b6531d5b5cc7d52251523506a 57282ab3ba26185cd568d1838e0ab8f3 -b12fb144c4254826c2d04579be5b5f45 +d5f0a740213ba25091cf3f1cc4905229 826aba4abd3429ff665409aebda73e5e -f2ba671f9d17aef7228fc204ed1b7398 +ba85b46a82d3f8c4955e4043245e961a a094115816a8df0c006766c4000861c6 3e5ce3b248f7dda5c1eb88b75a642f5f 25088723418dcc167b4665c455714951 @@ -10303,12 +10302,12 @@ b05c8370bfbe8bc89c37c083624b5dff 910620b9e594d851f1f8a1f286890aec 601f004f8adb4995ee968e7a3c01b5df -d9c71112e2d9ed882f346e18ef246004 +006f9f9a3aee411c145e072f21dea29d 6b93db41124ee6e53e738d483b6f87ad -24c57b650c2e20498aa850503992564d +7f8510d9f8d1ddce0364899ac4508960 fe4355e5361957737c127212b9ab7777 3509f62c9752bbac4f9bde2df2c7c8f0 -99414bbf1bf1e685f4f730c760b96fd4 +62e75f5e1fb98278a1126f706f0738be 20422b3e39bd1f7a977afcc1b14f3103 0a0f23a2b23ab6686de48bbba96bc1ce 27883e43e8af16b177867e0b22809805 @@ -10318,12 +10317,12 @@ 07fa6f601297cb41a1a6668d8a4137c1 90c202b94dcd09173f067e8bf5164b77 4b3416e5ad27f1623f5c9222cf93f491 -4f30c615b5054649acfe658b41c64664 +8b2e7f4dd5a2e5d494f167f6d0b38cc6 6f11fdfa4b04669635edc07ca6efeca4 48a83412d06860f170a73a68d6d1d607 5c3ad5663f3d6527148247ff7312b385 -2e611ed7fc633ec32354afd2809d8312 -3b991a186f3742555e60e6f61785e885 +acca800c8cdc980d7fdccc5e9faf3e56 +4f54e2cff46f1c74c68cf63780efb881 ea89357f6a833ce27bdaa3c633b73559 838ea08d95f65f9a06957a7d066f0891 925e7c28144a75b7e0fbc57715f523f8 @@ -10333,7 +10332,7 @@ f804018f508887af815f81d054905620 6e9ac5f9954ea167f40c686de9be6b7b 562889c108c03eb1b52e7c4819b3b125 -d1a2602d42b8e7df617ca9c2ad3fb71f +0573bdbe1c4fa3214e77435e3bc64f9e 285145b8adf6d1d7e53a1c102b25c177 673f3e0c4062e13cdef27b581fb66461 d74248250355b90443c5340490731dcf @@ -10344,64 +10343,59 @@ e0f4c93906c140661ee859581b1a168f feb14dfc2c998cee54ba6247bb784862 48ec52231c3493ab0344cba74e220a61 -813838a5f1d8832941b8ea61ed2c7271 +d8c806886f45ef4647f2dbd94e81a84a e17ab7d7f81ddef4dc5e5ff071a5152c -c294d42b0c532a0d0ed0ecd75b2da20f -322d2f0d1f63bdac9a7179e8f597321b -01ecdb579e7aaa2f7a35a9d9f9e706a0 -5b5402436d2e5525c68fe96889c8628b -2ec28d7d8a03797203f724f8e5cdd8d3 -14b937be198fc9c37d706a131f110c68 -538ab10324a9a151d1944f94b590e3e2 +8e7647cbe7536c0a885439de89bf2d16 +9f5ba8d00d619d312d40c07f38b35c6e -6656b3e6dc07ae24df1501e0932f5ce5 +b2af4183c35c8368957a7e64377cc57f 2da9b931d17ade2a435827c23455e872 54f046768f3455e3fb35867c5b0f1ed7 -9be923895e488ec1757cf0a45a39a5fb +579b992f766daae40b1605aeaadf619e 08e9fc5f52a0c53994887f92e1fcc44a -4f1b28f5fabec7c2e7cba7b1baedec07 +8bcd04bae3ad9c4f6d9643f29e9b498e c7888707a258ca1950680b39e80cd6eb 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 cd8e0a63a6201e157c9382e9ed179a09 0c2770f61da58d89d7a3e470abcbde21 56f667c49490cffec8ff2af43be01505 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec 23b458105b635bbae85e8543b714f466 -2a429e1a02d9f3305cf6db2eea26714f +ba86eb94b183aef4f2799ca2634ef9db fb330418c81c08843a8ecc7b41911c3e -ed56660e07d6d83851450fae4059f07c +c27d3f95f804e12715a63ad998966bfe 00031f18fd4104d1b3e39b63c3d6dc2e 79089255158765aeec5fcef88335c136 -58c57248c7881f25664f38bdf8a9cd64 +04b23547bf3a6201101e44f05cddb03b 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 2cd9e20c479aa18f908135af201a395d c949765e7e8fc39653e1d97d91d47b01 7b38146af31c9a2d81c95b41efd3855a 8eb7f101d38e1a354b316641fe4ad6e7 -377e3fe36becd2edafe1a82c880b5e6f +a8be8c5ca25dd947988ca9303c489275 5168ede7bbba74044a5a8745af74676e -a7fa3d4ce82fda303db4c0e92a25ff8f -050543336f887a276a9c6e130f1a118c +eddd90e362600b18430210de2678e89f +d8c0da3df4be8cf922d5ef2432d44c44 19e47714f4bbb927bde7107edc730d9f 09fcf901f0bc76651c15015c36971ba6 -22ed1ea1d7eee7eb18438d47888a926a -a8b28dd3467b6f9462fcf4f8b4fd2619 -62e9ea41e1c061dac2602181fe68acd0 +54796b8197ef6dfca9f7d998219c18a3 +20be3b587e448c9e895c857eab0e43b0 +af01e7f97733e4cc9f43563044dfa05d ee8a076945ed7cb442619baa9be2442f 15587334eaa9a54668859526ef2a173d ae0b2989e0a8a56c8b4a3b9a77429586 87fc4e5a3fa058627fed5ec8543bd51b 5c3fca1a0fe9b4eb6ffe3c9d9f8f7062 f326d01ea1f9cb89d96aafdbf65dfcf7 -e0a1d61c2106bcc5f3b9725a1eb5afd1 +9fe1ac554c7c1de5066b3d7b81f22639 06d2f80c85c95fe57a57f846f411bae6 -305f3329e4c7cae712862c6869f738c5 -c0fb37d9b7860c7cabe50b6ee00ddd7e +6ca627368273e87b0d8e15e7545a160b +593da56badfaf10ce8795be74ed1ff79 2be4d4a4c067b0e7d6abb9364ac01a7f 64d8c175fbdf22de3a58f0fe7a5d568d 64cbf57e30411b123cad22aecdec8857 @@ -10412,55 +10406,55 @@ 449de434949a3e2b8780a87e7b179d3c e0ba63b632488657acea03751b852a64 c8ab1ce70a23df70ca4f14487cf22f69 -e381c02e0afe8e2e8f09da697882807c +28e1b5322211ded0107896817fe3011f aae9d37af7193f531dd6b5ad8adadd3f -9cd84209473651f97c3104ba68683faa +389aace5ef7e4ff0b68a58638c29bd20 b62f02efdf9ac0a86c18a81908c92501 eab69fb2035665be0d1a792c15829bec -c4e28aa0e00eabde40d653f4f45e8edd +831d40cba1c92e8bd28c98c34ce247b9 804ed0670b3482332fc7410c05f2f835 -a26fe15779d39140f8b3e9d391368e42 +942ccaf3d1c8683ed112385b9b7cc2f6 4692462d58a2fd80d42a987c7ea8aee2 d90e588833456a9940a42f86e8542454 d52c7d2657535ea3b294a12cabdf39f5 9a0d9dd121a0bccb33e4928ea6f5c04b 5adb21f679d4fcb748ca9c7ca58893ab f2aff6a51a5f3b1e5070d8296c0461bf -266192aec98a0387a8023d984029ff76 +9582f4b3d033986832619b97359d8201 3da38f4ea86ed7257ddd3008e847ca93 -14b56945bcce39241bafdf5900176d1d +133dc348a86a495c2938ed78de122070 123a86fb0a51a6eb103794ccb2067ccd -047dbbd17226b58dc08692395ac3fd39 +410f30b698885f34c74e908963581a3f c632a366dcaa89159c561a5339552432 2eda9af82d13ef3affd1c4942fd3472f -56bfb296ce3e472c9ed60c59cac8f0bd +f5bdf1242284d362828647ebd96dfba2 765bb7cd6ac5f4a20b68e8027c9b3885 f8f96ff7d44cbfc3936eb112c11a2462 df070d5cf97903c24e69d1b203cd6131 c8d0d57fd5a8a90d3dfff59f1ff9c8ee 3e3f45be57bcb65cafc6165966deafcf 5fc61c1ea6a87f56d1e825e990ac0c3d -591d5fb87ce8f828eff137f82f6b070a +1c59494edcce7fa08fd90722764d58b8 fca9396ebf7b2d75dba9615adf461163 -f071d8490f9dcfb84809ae212b48ba8e -95c672d950e58c2f823cb29d16a17933 +b079e3a29f77815a5b9173c2feabb557 +7ab6aba718d40a2d6a60c8afcff7b082 02d605d8edf28de0d16ea863656a65db 371a05c7fd519e92e711b412705409ae -74d1fa4fde5edbf44b0c31187d32780a -333b68fdfa93dd089339149f79ee30df -91f3346e73ea2f142701a879907da30b +0ca244d08e809687c9f7e79e279a84fc +c417682e9f6d01290365f42b78edc704 +334a5d89c989883df00d10b86b384f9e 9b1fb82ce3b0aca36928900f127917af e7a5b910b574a29bc09a1396d1567d38 a6cb6f452563d756b01b256916a59348 d91fc3113104d8ba67c51b2476661514 de4fc74e022f46aaf85ea0ffbb360a25 540b636ced7493d4b7ead20e7c43962e -21b3b4c2539ab8e634694c48bfa437bb +8ae01631961eb7a276be73a9051fd502 0d9a2bb9d65f21b755512afff479d8bc -4facaf16a4afd6222fab22a6dbc4f93f -bf1d49b310154027adf1145539cc9d07 +9a06edef2a49690033289089d6cd9b07 +7960432eec8021e35327245eefc4fcb6 13c5ddf75492c68962c91afab763ab5d ab399d53ef38c91f15f5b8401f1919b2 ced9fbcf9c28efff2dd84d3b0de4f469 @@ -10471,55 +10465,55 @@ 9b0594e3a334ebd57337950e1374b48e 3260650c0ae93ef2b410b2c4d71511c2 ea971260dafded2f5fe7aeb3f5ef5d26 -ce7f65478ac60238d60f16e432c5de9a +30efed0e9ff5b5555b46115180371c5c 61d7d9b8502d45fb6dae1a0889effd14 -b53cd6293e534fa9a1647621110670fe +40451a6173526794176acb864c2fc4a0 3262db34410c13ae4d777e263d779217 31d65a4ce3cf788da72de88f7a6b2d06 -3b8e62e491e04f7a0cb9a405355e7d89 +05ae9f00f719f3aaef5bec5bd86853be 4dc3511b315c7d298a44c38ce7af2126 -e156cc73788016169fb0b981aa35c926 +28d327e71731c909c076b309ec901332 256de69b0185b8ac1e1164f52be30df4 7083dd601a0dd21afa5d5ffc09440d4a 5a302a8547e9d98cab90f51dc839a878 151c5afe182c4e64644b1489449515a9 78d057e8e8be68913e0cf967773afc71 f5c8597db76285b1ade05d7d6bef6955 -186dbbf4b11a9684557157006bf2a232 +94fecf363679c8ee6595eb087106921f d4adc458cbbf4ae1ae05b81bc08dc2d4 -4aa381d9960a082fe174a717f922caaf +cd56da9abe9272e55a18e1ff59dd4b25 7a6572951716b3e4ebee8fe54ffc4023 -8b88abc6a7cf70ce1acfbc1f92663f7a +fc70bbf4fa6b1fa0bbb0335f779570b9 a7181cacaf1235aefbc2b3aebf8047dd f5f165bb15c6391fc12ebac3e0a0f3e6 -8119a59c27aac8df56ce4b2c4d5613e5 +8ee2efd2f7aa53ba65adea0a1946030a 40f20ba0e389d91edb8b29b71da6c2b2 7508982db7d5e9e5c7fec3f096de32b0 08209ad0a5c53c953fa64bcb29dacf90 a083abb5e95590fe1cd60565bbadbfce 769fa149d74c5645c53a89575a1cea0b dc02836368ba0678cfc7289e18edc4f3 -7f005dc1c4048f02914f491339a5669b +ee618e253aedfa719a95d72dc404842d 0c4ca601c83dcfc8d0f4f45dc773e2f7 -2da0a1995db50d0752d2e509a3bca37f -215c2affe164ae37a7089481fb874de3 +012b10e345bcdc9dc702a284684fb2b7 +e89ff63b9c6b27b12455800068bee19c 10c2dcc555137e38039193ccedfc0cd3 bb194e9b127b46bb2271d19ed84603d3 -15be1fe8f10c081149a3003de6ec6921 -a1c2c9bfc0b6f28497c1869f91b54afa -d816d6622fcaf3c5f4e8f0a516128d20 +f54ac1724115231e8ade619a8782e374 +b1432edb772d35f2950db364b6154bc8 +95eb96950c687de257c61cc86bffd485 548bc532286b35f7a6ffee2a2801502a 199dcc4ae427c0d0e5fbde6c0d2d2f99 1be19aee93ff0725138722e0b534e207 df05fb48ea5f4eaf82df101331b39e84 8c8991fdd1f8a737640549006175fdce db71e7656127c95fb902fc19efa94945 -0db4c61ae8b84b7812fba61a45ea3826 +28eabc15dba99547f5f302a46df90cc9 b19954c856288b7fba6053c64471aebe -2e8be846099c5d7baeb4118704b5c7a8 -32fd9960b92f92505a61f1032c2bb842 +d1581462a134051a2b06e3a3e33f0f32 +c76b5db17f8f117cfa0a3b045375090c a475fb087b707ca8fa0d87a0a7e38dbd 7c8a83bee9be22e875c81d9fd80097f5 5146388b914ad2a67ff419d124e12748 @@ -10530,55 +10524,55 @@ 739dcbdb1af7be20fde77fdb159f53a3 9a001cf479a5f9de7ecc25311cc65302 056b4d4acab5eaf8f5b5cf2c568b1bcf -0117a2510602eb75bcd4a2dbc035a0fb +cb67a68604047b11312538d9a75423a1 87eae3bfbea127d8e90970cf3fe8a9a1 -6a3f53e106a9855477acf063ac72a81c +4cc9580e715a23e03ebd5d0d02f98ba1 2495aaa5b99df2676b6409c322d2d2ef dc3e7510d95a4e41c33aaea7347f7cf2 -a6e0277e377b1e3d616e6ee2dd878b1f +32ac2d68b9657dd18e2b73929e5b9821 c4ee7398d07dbb57e9caddca4813a666 -adee349ef6622b70a76756e80e2467c5 +600e610c0502f431e628d73363f10970 0221d29ac695e320aa365ec04ae2985c 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 0184a33f9c3389b35fcde8600ff95417 8ff0acf9aba961d05e0715ccbbf04736 dcae4e329492e2d99f0578f6e6c9397f -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec ee2fbf76bab8bb7fa64c3fb5c1f8da89 -333be837bd37efd00269ae5bcaf73d6e +5f7d5eb287f87b84a3b12b680a5b92be fb330418c81c08843a8ecc7b41911c3e -9bd2f1b9f94f34b489b4f604f75c9034 +28f31bee732a0bf5e12c489c08f70d28 f27d3b01a2b69930de1169490ac21d39 606ec4e8caaa77b3b8428f6d048ebdd8 -ad31feff80027308a7ae4f17a1b14aae +2185e7d1d2e0257c466077e8c32a91f9 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 84aa8a05ba6f4023339aa1fbb9a3eabc dd079ae8cedc46e35d279c27543a81be 7709eb325cb2fc85c78639890ebd925c c668be265797094334ea182a0824494b -a92ebb74af2774ebdfdcfe7e56109808 +d7618ef878fcc5fb51bd88137dd4373e cad19d84a46e0e9153e4a0fe0e6059a2 -4ce126e3a1d64bf191bcc3a693a4d1e8 -07b4c6a0da6bdda6961e9362edff649e +78d542183f7dc43cf0ad4febaba14e80 +76eb5e38af6ed0393868555475cf3a5f 9af8cb14d88c4c8e0c58571545917dc1 a3be14202734967e6859f61f03850e47 -7d479610d62b7c06e474a7cae6565d60 -e159504fce68ecac57037ae2393e5de0 -2a838e25d2bb6bdc96edc985f0a150c7 +1270f8bc9bdb3cbd36ae2768d919fb3d +ee59ec630478e670eab50fbd61477bff +c4315f3f31f39fd6f395deddfc2e7f65 b0061480473128d4e3faacce851d5b5b ee23c6c8670ec36d43be842613bf1516 986d6c4908854449bc9ac2b008e75a7f 83c16bd1d6727db3aaf2d25e72d37977 62f9203650557bc104780fcc7d9af944 f326d01ea1f9cb89d96aafdbf65dfcf7 -93ac5288276460d632069b043ee9b2f4 +a5bae1dd788536412dabc9981d316438 65cd279199c6ec5e320dedd7544c7a08 -a65b43dafa8181d31d7444209d4e76b6 -b31a45fe5b315405019d9abad5544128 +fd7c096315d8e230f821458516443589 +074c1fb786f0a605640392863724462a dee392760d4c24a3c7f6a9a218422148 4f3b5893f55d2462354b05f22afeeecc 74ca1c6583f0481aeafc21696c6df0b2 @@ -10589,67 +10583,63 @@ 449de434949a3e2b8780a87e7b179d3c 4e561adb5b30f6f32722022523612456 066cbbeeb72e13ce72244a35760d8e4f -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc 8670dccfd7a31fa4c44bc8fffd978739 -c294d42b0c532a0d0ed0ecd75b2da20f -725c0db804f21f04b78982da61ff2d7e -e9ab65cca74d0d1069c0bb6b50074d1a -5b5402436d2e5525c68fe96889c8628b -2ec28d7d8a03797203f724f8e5cdd8d3 +36d54cc80744708ba9ec226b550c8daf +b445026a015b310e55204739eab1d577 921ab7227ed3abcda2db9bf141411751 -14b937be198fc9c37d706a131f110c68 2172e11a30b062324fc2a90d1f6de9b2 34ea25003f05ded5624df898f2c1ac4b -3007373ed2951f690530327240c5f115 +7210212c531b08cb22055f395769fec4 -1f16414a30aa0a40379d1cf47ac9a6f4 +3dcd7f6ebcb8c13721d94494608c85cb dd301d88f6d45a5b41cc61fd0398013d 707db11ae318f0427fb4de517d7e73ec -42b67a1a0346b608e443e12f29b69e8d +37eecd1179765425b3c0ba7df71152db bbc2657930596c2b154f00988ddcaedb -b439730a1adbbf881e2fddf1e0c83748 +700cf29f7e2bf55c009cba529e1311d8 e88891dab9672d1abf2a93d6083e18b6 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 f979dd15c52b991d1b7f7bebaf1904a9 136b84df355623b8cde74d6e8f46a98d 2b9513da76017124bddcbe355cde8b1b -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec f207e426d375d1a5fd4be856861f2a1a -86348ea789ef1314a6e53a41b454f065 +6adea116192ac7731c26d0c24346db9d fb330418c81c08843a8ecc7b41911c3e -87ff59e320e9a3038f5a4a82bf3cd622 +42c308614d57e7929e8831e861aaeb46 a2efa498bb6ec2e917bc885ebe972a2d a53138e64ad08cc1eeccebf36b7ee960 -57556165ee5bc8d1536476cddaeda687 +8678b550fc3e1b54584cb1fb8526c765 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 17d68c416413db1e496ad110d8a68bd8 f2200cc41cb26e664754ccdad356e8b9 c3fb35dd0fefe93bbf0dfd8976709bb7 0f24e3f9b662529afcd2611dc32f47f7 -4a6daa4bad5d06c18e1375e326e5426d +28fcf85f29b6d66e69be37342b1ef2b9 97cdffb50afd0bd901cc9b4260e41f6c -3e2cfc1dbeef169bb2bec99537ba3acf -1c7dc815c1409f1801dda799e0c4b93e +c320e189357c0a45b74d8a25de90857a +5352cf064fa3607504409fe7cc84472a 3d9f9e874cfd7dc5eb4cb48ce2767545 ec324a67cb8145820e9ea896a36b29f9 -bd0bfc8b701484438eb51ca355c9e2b4 -cc7f2006caac14a1e4e2ae4cc0875814 -f1583dac9a5e2b71250de9a8b2e34377 +f721863a4725d02319ed4879dcf92263 +c614918642df8a8819e1dd7edd49ddce +f757a92ab1bb8a7d9212b9164923cd01 8536e6609b02d26a3181678fa36d9761 ba65eb70925e2e80ec40306484253483 eb7629f4b3e417ac96b46ea2457ff477 90d13efe717f8457b7851bba57dd5a44 4b0317bacbf44db749d81e899c0d0540 1bc2c11dc61564329b6e8db3603fe42d -9e6347a68f6318ed12e65da37c98183d +ec37bf3f902eb3662495668553f89272 0aa68b2277a2af4acfa5e470260c4e0d -351174de3584d284c0a2f111b1c096a8 -298b684f1124cb649afa6081ee5b31da +527222ce739124433f5aca935f030d18 +986e206bcc02718c3cd04e0095e62206 aa3dd95196d0ec83718e74c22d0a0da3 7b3cd67f5f1c421536def5926d137a9d ed7a4a7839b90c6a2abc4bda4006def1 @@ -10660,55 +10650,55 @@ 449de434949a3e2b8780a87e7b179d3c 14f0f8c0c9ce76174baabd31994fda59 a9b8e7319dc463d1e2bc9d41dd80f1d5 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc 9e65675700f44cd62f5ce4c4f3aa8226 -704c314279365af2f7c32e3c634ec423 +90dd88c8b1fafe1a2b93f36e8219ae9e 09e6a05a8cfe5f1533fe8144beb1d05b f423a14d136e03186e7f43e2df7c3744 -ca81d1f11cc2b18f78819d3856c0117a +4e5f5fa0ca8ec3a93d2061399c61e4e7 2a2912ece2fdf7a2e3c0c9ba78d3007d -50047740e8970baa3cfc5d3431f0f9ed +272250f7b5f5f117598b5ad29775034a 30f79908815a64fd943b8085d018e472 56abeea9ab436058834bac282558fd24 8fa599046396625428fddf3cccdc1bba fe22473d89990b28abe768719a9309d5 16fb90752c058fa355caed219a1db6f4 92f2d8f8299919cd0d2fe2ee8ddf6594 -3096e6efc0f60e8072255213788ecab9 +52c74036b772b36f3da5b0f30cfd4feb 7416a64dd5ed04c73228284cff4b6e0a -f41d6cc473a9edf9689bba196dffeaf3 +185a78a293a14d6ffc849d6f91b63fe8 df0c9e9884678ca5fd289648f5d4af47 -4d09328a05ef25857faec9b18cfe925f +36027a7c1df765c78f8e9c2018881bb7 d8880eb89d2c17dfd2040914d4b41bfe d99b7ed121c50b6b1cb0d9ccbc65bbc8 -1b70c21c20d31a6dfcbb39ab299afcfd +4ebdd338fd8d79e60c7dc7a455854647 f5f46d2641ac2af573c70801a388a5b3 c5ffae12b8dbf993f93b82f81e07b7dc 5cd42f6767cdb4b451fc4f8e297dda01 a593b69458210cb28c54e1d4b39ee75c 0314cfeae04a5fe2c53b979688e15fe2 dfb1bc2fafa4eef62911dae18a41f28c -212d48ba08bf3758cd311791838056bb +9d9a893113bfa52b0e1e4434ea304f71 ba79d520b3293c9582b0646a29cf18d1 -56e80512ad1d9bf5e1ea6baa776aa748 -b2a363d7ed5df1e955d8f5703db1ee9a +ee204960e7c9e9f251a6f9c14af0bcaa +54e94d0a2c6da3464fc52793dd31a74b a3ec4dfec292f3fd441f5e5d3010c20f c26a8142ff296d988cfe13332fb14bfc -ab305cce806b6aede7aacb7b0804fecb -d704c39224c814f121dbd4768d18660f -645fac5cb8fe7cb33064128459eafe54 +8181b7cc8039893c7db69f6e35adda51 +e7baf0389ce6728637443d9962e57b83 +99a72eb49507e17b6e1ac9a0239e9690 f7cc76455b53c9fb37c27554ed0967d0 55d24007a85eb0d6649e589f8b7c2a69 351d775a3d652783a5d015060c47a446 a5aff1132e18ab1546a154bcc75b3691 7ddff73aac78b8badf4bdba11cd541d2 7cbeff2cf852ffd059a2371bf23ec176 -d9c8363725cb3312dd3bcd8455939ece +695a5ee4a8341fd08dd10e8ee0c01237 b6600bbd673dc1a967e3d613935b691b -c867458a5c775c30db28c085c83c1af0 -cc7759c6e5d64dd12aa85dfd9d0ff480 +0569afd539a3d7f7b99511cd179cc185 +39bb4828de43b5f2a8155ce7395ffef7 116c07ff8a67e2cdc94c62376e4290aa da0fb653b20f60acb1b32e763c94ee84 8079141a1827f5d200d3df625684982d @@ -10719,55 +10709,55 @@ fab7ad4774c8821b32f59a87368821de ce461eba9060cfd90008040553ae19d8 c19f8ce8e5075509c5203a5344f42c37 -2f730e10e6ff1e342e722e985b54d863 +8e77915c4597f8f884195e93997644d3 338d9c56e6653c910dac441e3a519d25 -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -244ce95591c641e140899ecf82e3a091 +6134c80e606fc3eeedd5bf6a39c3e77a 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b 33f2afb3d4f651ff3a4856891f26faa3 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -de30767cf0a5d454269ab9986fce13c0 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 74f49c52ba746096316a8fabfdd197cb f5c74ffcbb82b66d295e84cb0c11b477 6448daf1b06217c7dc989bed6f3709a2 fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -78faa2226aeb9f90e52c0f6239002838 -58c41f60235ea1a5fb3991bc4fa6a24b +34c7fde492170f80fe8e0e6434f3eb0b +bdb86969718f38f7c3ec9d78b8708f02 8cc192424d2a8a3a8439cf6c9e9c866d 228b0316d26bdd36e56a9158eea64ef6 59b195fcff4d3877045fee21c364d524 @@ -10777,55 +10767,55 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -4a55e4d7f22e7d44ef5aec63acdadfc6 +5311f11bfb6f48d45b579989963be072 cec5dc207fc9e4399548607def63b953 481d05b63d8ecea12b14c26156a6f286 -a89ac2972c17bd2c21b6e71f900bbefb +2c21e0cc9f70124dd60382c5849d9801 0117e9eb4ec62ae70cdc2cdb032ea4a3 -9c4a32938bb8475020d126dd27add3ea +b81b467bd411968fa82c2154930af428 41cb1b4912e7e63055cc42cd34501683 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 7ad74748bcdbfa3f6d5fade21ad3abaf c97628c3391c9fa7f0628260d579799b 32469a0fb52c4ff01ae369e67964bd6d -e1161971bb06488cabe9066c8e827741 +32d4ac2fc85cd81163d3e5a3877c2c8b e0ec416c7a5ab7c6ec37f1451273a21a -6df07d84b58a137e49213c42629dc6ca -fb330418c81c08843a8ecc7b41911c3e -23fa1196e7e0bf14078a6439fab7debb +d5a61aae8249911d500db5a7b88576fe +081fb0fd1b55ff714d4779e63e4bea77 +ff0350c1a83eb0d283c498b1b915b536 d9b279a5b8b4444c22234eff94697dcb 9a09d0e39657eaa250296b8b7e11a986 -64437501af41e6600d6817c47cc9bf59 +1fcfd5d89b406c6248a629712866e053 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 1a2f787c54fbe6b561fbd776a25872fc 3c474980a7bb1fd8a758009a01992640 b5ac41b2d7993ff82acb9a8358a17202 6177e3c17c2beae1066e42d26b0a921b -587567f577fe01bd0a203203b11e082a +c47b778b31bbc39ddc2c933ad2788575 312e64c5493d745c91c4bf83e3eb0b01 -c3666f4bf323f11ef7117f2952a0d6dd -260f5ff084bfd5c323b9d0cb01a37c18 +b4fa02045bdf797ca90cb154d0ec63fa +5f477631417f724965c004f9434cb18d 57160d6901b4fe33370e429c4cb06aac 04b5877b7648ce36557698aa48eab05e -053842730e380dfddffb45bf4684d34f -37b60d2d094535b36fbb865ba1b4d779 -8bee2c0a737282254675a9452c0d445e +ed7b0a314c45978c41f6c88b54c33268 +70d3b934c48d4fc82f2fe8487b88399e +430c59370c4a7ef39ccaa467e99629b8 27eaeadcf2739876f33c94d429c8a19c 1f2dfe32a45c0cc407b1e41483875c6d 889750973024b5b9ee80157128fdade9 48a054998227d1b323709fd33f76506b 0b2ff41b32ddac3abfdd5615b520392d 4a64102233f5cc6a326d74c738ed1333 -2a0e599244a9d226987f6316bd4470ed -b0056be7d136075c92352bb09ba6db76 -4f46917d26218717d682a103465dd0d4 -fcc762cbe281878d82d7fd73350d5d97 +1ff74927c61de2226faf161f47feaade +4f4e8ced4b1c098a97ac133e3cf16aba +8d499dee22c1b0aa3bcf3aab7b562264 +92d4b14e5af7fc2cd850f1fc26819501 a2176e70d49f029e4ef345e258cabcd2 1ec82f780ad10ccf1017f53ad0a982fb 9a2353991fa9c9eb24f8a542ac8bd396 @@ -10834,57 +10824,57 @@ 29b63a9f892720cd883ad2e1936fcc87 fcf9a22383bc602b4753feb9f2e09129 4468f3a8b5d7713027614c35c4edb4ba -c88f0b05f3446517570cd23270b79c9b -8dcd2c6de97e085c2f3129bbab2ad105 -dcda25012e278d3a5725e260f37fbeeb +ea657fdc5456475fabe2196f5599c26a +627f0cb9b40a5cad12eb3fc54055e34a +d4847efca6fc5676a965a94360258c7a ad72b32fa88b149015f6e9e0f8fd9411 -8fe8a1661fce90674ba71e87e478fb97 +fefdec042c8287c924f7d412433f0b12 59c457c3403be06b525dd7b8c427701b d68cfe7e1c70fc21a50eab0606fb7ea5 -51cb1664bd3521843659cb05fae8a51b +97dc3ecc0046aed1ad5edd25b6b54373 826484beb032b1d93a3741e5607c7070 -e404ca3a2e8446294b1e470e47d53004 +170a3447dec13b5255279d8f9cda7312 2ac1903fa962c3d3b928b911581cf300 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 644d4340e8a233b2490f8f399a60bb16 cbe4722c302b0de603f0a6786b191b85 36b265e2c6ae9a266426658b4646578d -3418d50e2adfabf40c3272735e88bb53 +8e5d65934184f09c60bab131b3eda509 11321835cdb2fefd6e81e49b46e3a283 -494d686e5feeb9726ed87d6d96dbe693 +8bb42b9d4a1756c1109ec7326c82c266 fb330418c81c08843a8ecc7b41911c3e -48d5fbbfba60dc8cf1d182fd728c9283 +4c1b10958aeb625192a7a6c28536e16d 75c36a756bdd4b4625cd7a68a6c9d496 17eae49005c9eb8ec8aacd15dcf38b6b -7bcfc21fdbb79da96f7374f381bae4f9 +8db87c99c9359f086f6bf5bd9eac9827 8fd7ce4aeaf2b3be11f39bf9b2be332b 28de826c00f8408c18c1060cacc44808 015eef4f2ab821df5c61bc738def628f 431b1b78a4a4fafd05d4e0bbc2c47263 5bb64010fefff4ea7f80e1ab6a6e0122 e6d541551ff358ea366fa5705aa03f33 -d6580ceeb4576c2ccb4f78a1a2ec77b8 +c1d953128756a7da01bd104b2d8cb906 553f742a0252568f24b9cc15e948f336 -7952397f4d6f94f800d8c6d06b4067e7 -25750dea41c887e9ea61faa23b1516cd +dca34b43d04a94d319bfa034c531af0f +4b48d7be1eea3640653b4b0dc5efe085 fc591b6dcf00663001336aeb2459e123 539a0357c179e6ed2094b7ca1ebbc344 -ad0d58fc24b771522ca045e1ac65f943 -93a0e71d518587e3bf856496319c775a -521b394ce8ec2f87ae79770ccf5dd58b +340bd8239ef9566f005c8085593e2279 +c0f772041db7e81650e2068587476450 +789184f4b4eac3dd80414fd933797b37 ec4d6fe04de1980f496e9caf6fabe534 0f18fd5af1f9ce788f5053e652842feb bb7be4d52dba41ff906024591864300e 4f3542ab71b20d7d28ae60817b2eb1d5 1d998745c1680fa335fed152b242cca5 a72a089766a7cf669f6b68270ce8f5ab -14aaefd3cb1b4bbfeafd6bef7c185285 +7f8461bf7298a4f3b95a478054c892f3 4146dd4f46253b59caf76dc6970cfb61 -879db84b3a960660b5c1dfb7338234c8 -cf9e4c942d0a11ae766c0fed96b23144 +cdab51cc365677bff479257c690307ef +97b2d586afd72ce6439462b10716bee2 4900f43900b2677888e3f7ec9a376c99 9c8629c3110dac7a00b21c554e869282 607e87ee590ab6b6e3c1f2017f310bb9 @@ -10895,55 +10885,55 @@ b6786821a9641b2e90eb60d1cf955593 29567ae731d5a20740dadb635820c0d7 83da48fa37c40e4f8c5ca323d585e7d9 -233e3c0da4808e32e5bff1b70a00caf7 +d310d10dc4d402c846a3dda26c1fda13 1be24d68eebff59f8a3d55d1d248cdfb -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -df410eccf21d001f9f5e65da30258122 +ff20e35d737a171fdebff3fffe219596 5d9b7ccd6766e9e943b206c4e288cea8 -3265e4dbbf3e0c99bce19777eb25094b +824ee00230cd20dd50324f22ad2344e8 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 8cd10e297876e0c2d47a576dfcf61a2b 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d4a0ea69d0b59441b8f0697456cc3140 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b a9abc615abd8dcb10635fb127bfd511b baf38b4ec10a43d12a333a1c2a28224f -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -7bc61a1f1daf334bc893dd1f0b05ca37 -844b39f8467ece7a7932e4bfee4bee76 +74e5138e0485400d0958b5c137a8634e +2b8eee0e36e32de0279eb6f59fd579c7 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -8986c14f9db4b7871a5f96050aff82ef -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +8dbb1e2f5a1ef86eff3672cc4c3cb786 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 68633b9a396403744b2f3e762bbf5a19 f326d01ea1f9cb89d96aafdbf65dfcf7 -21bad97ed84232f24a79e21f9f438961 +8df081e6094878f0535027338dfafa8d c57c2471c7a6eddd29d27909cc422e41 -3777bff94a23590b1939610196e43a32 -0015287d927b33b71d654076c2b0773b +d4f924be5a1d7312869b4fc769fbe907 +c621ae31c1038848045b5a54cdef80d1 8cc192424d2a8a3a8439cf6c9e9c866d d32aa2e1c7b5bd07001c90bc13dc7b50 6f225dc643f02ed2509b857ca08a1695 @@ -10954,28 +10944,28 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -6cc0c652a67b7a726760dcdc608db98b +a72601b36102fe74a5da294296ed25d6 a7a17bad11811e39b0164573964f3c18 3814711841ff79bfb1bffb653cfde0fb -ce04cd21ab1a71817562e3bfa4207f49 +a3b4d63e077d255c6cf6f57319b42cfa 40da93d7868af1bcee8c47d560dad545 -f7b95693315b045c22b7868e83fa419a +484822ce4f486e645146a1be6dfa1c5f d7a12190e2704590b4523ba5b60dd6b6 d85c3718dd925b2f2749a6293f5cb8a6 6173cfe37fe100bca15d634b617e43ba 3da2d86b46b9f04a99b688e4341d9750 3394594b3b0fd3566c00254fbb89dc74 407ba5abeaf3f08069464027cb52bbba -8c6845892177aee173dbaa73e8cd8ddd +7252bd36ac08f9518f548aa69d88fc86 c314672849f4fb6754bc916bceaa7103 -de693f4543cb9af1e5999b8486f4da41 +af10d52e58cccf9ef9ec405040b3bc9e baa8fc8768d82c06e62f9309cdcdd518 -34b072a62869a2440744c844b1883efe -861dd1133b381989d899332f484cc543 +c7097dc5f0c9eadc72216ef7ab8dfea9 +870fc47eaef3c3972adde5908d4b582a b80c70a4104afbcdddb55fea9a09f703 b2b79aa2d9b051ea649c131c5d7fc69c 1f454c455358e56662f3ddf5e1832a39 @@ -10984,25 +10974,25 @@ fc4ad53fd61f746fe581f447bf76d79e 70e166ce8c734b2c4b6215bef0875c3d 93350f7c0359f3cff6c242f2e5924e3c -21f823c2cd67de9d315e5db41c85aee0 -d62dc162efce8a950de403e522b4657b -e7e60217406bf671e98ae7124f69e8f4 -8fb6625d18bc2283bc2b745f7cfb47f4 +d33bcb7fbfa69a65c95e76933385907f +01f607491907d35587191c4fb9169462 +7c91aa49753eb42b22afa9cc2f91d373 +48e94c383945bbd1041cf1374ab56358 bcaf0ee7ee4ede4c0b11d33262e06913 4508eefc4cbf06183f780a47550b51fd -624f8ffd5c36af2b87a06aee63b17bb0 -88f572d21982792d5393ee999d2c443b -c283b0ba64ed9301e67a9d18923aed60 +421d8650975e65a657de36a0e89bd987 +c9976744983ca5b3a00062185293abaf +d30e629b77caad35ab1bad4a4930bc94 307d48fb06eea97b2818146fbb8929cf bee0636e455ad5d9a8dcc288ac2abb4c 9875bc160f395b95a197ffbb4ac22190 af0368dd00b10198d8770cabebd9e6ed 77def64e09174fe0ebc597e0e0f643da 7b075b656401153b43a2fe09321bcdf1 -d2e91c6a29e54a76ca5b983547d8850c +f8c7c74a5a1f14cb6bfe57e7703379f2 fe7b10789faa1e33034ed5bea8a9520d -73c05b103c926a9cd6f6d4adb14bc0e8 -a0ee07d48296bba0fbe1154d8bf4f292 +791a1575c6fe5bbc51995bd299771d5e +fec9ffcbf2d43061cc0f2cd71d41260a 2bac51be88c59c5ee21511836859e221 0889424a15f7ae4d5147e680d379e3c0 1da322fd765395f75d1bbd0857995779 @@ -11014,55 +11004,55 @@ becd3ff12eb9f1b6de5082ea51c5bf9b ba79a127979def278922a780ad5b1c5b 322469f3805d514f7b1d9c762d6cd232 -a519d93c30b602096b8eb9025f0a0441 +36627e0497fd8aaf39664403ae6daa96 af1f4c3b96562f5bf2f6a74c89f86c30 -301730ddc5a7a3b114fc6ad7ed7bbb4b +452a9821ef1ce8558bbd614701dae135 9e04b2cd1b93f421705034d5206749d8 6d53c83d0c2f41f894615f0efd6c8cc9 -dc118354cf69a5a9d83213658f3dcd93 +da34918d0b1a456b0f5804c7604bc6bc 7abcf80b038ed1d22f9a8025a6576eb7 -c2f264e2d0ffde1e9ffd64015d6882ee +d00f7b831a3a4ee6886a57307c445a55 7519e01ebfaf184e31451303d0fc5faa 83d51da6ce128a36cd2e5d2dbab76ce0 70ba2538054b4121e9e5869a5a611933 5091bcab97706bf0b5ad791622590c58 25ad1618cb45d3588c3e0f8e6944c4da 5048c5e51454ca4696b60c9602346380 -54e556dc87e7e004fc79a780d8a15b5f +c20ab41f5aa4a840ba470dfd3c1721e6 a87a5823097f9b179e9ca41f4df15ff5 -d198da62a38f45957224d91d0bb33871 +39bc7a0d47d973990f7cceaf54eebe9a 5220ad42964fc5e17e0737370f1b02cd -8994f5de93743791446f9e43ce29d16e +bd58aa4fd49df12490b2939804dc014d be9aaca861b2c4ec30707d2afc503f25 87204bb4bc4b2de9530578fce343498a -3e6bd2e8c70356bb4529f497588c3d95 +57a194e6fe07e08d93593ad2afd6222a 1898ba53941f49ece5a58b90fdac3ebd 74acfae0cf773d1140832af7e5667186 b8d00cecdd692f0b6cdbe4957f4ffcf3 95edb6168835f5a622cd7fb18fa665d3 a42be7db361dd5993f28868e4a3f358f 2e649b660a18eb203a07078ca6f0ddb0 -c63461bcd3764df8a686a5a17087c1b7 +f7a45f1637139cc5d99a4ae6e7d505e8 c590c3f7bd0bc1c8991c0b7f173d46cd -7bc61a1f1daf334bc893dd1f0b05ca37 -edce79cf3df5bc7d0df0017ec94811ed +bc42bdb14826011d606a142a4e116bc3 +fa802c1dfdd44a7ecb89c77d60838a9a 5b4959ed0c32ed6a409144c78c8b9fb4 54ce90907c5b76dfccd2b3ce0eb7bcbc -deb9e5e980af806b4cdb486e1f6dc295 -2789e50ea7509c174142c258d1165c88 -2a07790ed7e677fcc256d2460e5590f4 +8560f8e577caef690e5546fec123b76c +bf1988713292dc8e6133795d8fde1b0f +0c909a51481d661330ed83a8f0d6a5fa be52ecc505ea2cd13064e83f28eead68 1ca4e724a542dd90368a4612a878aa7a a114ac6eecd4701929fe3fd8f172dee5 e17132c2639ccf18dab581736d16ab19 a7af99484311ff510f4378fe059ed4b5 f326d01ea1f9cb89d96aafdbf65dfcf7 -b1a1a60d95cd68deeb4cb45550dc804c +55feaae249a847ccaa0432b7c84bb41b 45045a9eec7c672c032ec3f2697cf63c -c2e1993c06302b75188c19cbcc1f2f15 -1b352ca85acfb0a6ca7ec47574221626 +10c76b7bdf44361e8c5a37855d450a9c +387ae164057bda4a65b16b3d4da03026 0ad67108567f99662f7dabc9585331da 9e73e48da807bd19ea533c4e65a2e6c7 31b983b50ce8d8e45c4d311797756dce @@ -11073,16 +11063,17 @@ 1c69f14e9f4dfa446476883fe9faf925 369ab954165562248ee42ab33e6b12a0 2772e4b190f0ac3a3de994f9edf10074 -2db7fe18b1200b7eb75af0c44f79edbf +7538088f7af45b9a359a090b9bd18121 56d8a0b2df579f5cead684b83fdef191 -c294d42b0c532a0d0ed0ecd75b2da20f -02b4f98405e26fe54399ae5cf3d8e884 -dc9564fc481ddd3101734b4e01c40027 -5b5402436d2e5525c68fe96889c8628b -14b937be198fc9c37d706a131f110c68 -538ab10324a9a151d1944f94b590e3e2 +503179eef2a75e444e6ed540ab5816af +875e0a4fbf2f9e739dd18dd9787966a9 +28f44c26afebd0f551578f04045c6496 +6230437ad4adfb173f89c5c9b1cd3301 +b2ee3e61485fdeb685fc7f73bf802b23 +7d6b8f45303f24ad769fb402b9416bb5 +9ed2bf9282af9c376568885348569e87 eb0d31b8fe30bfb4b4a2cac24e104c61 @@ -11093,54 +11084,55 @@ e70e0c0be5993759f867484624b7270f -9f5ba8d00d619d312d40c07f38b35c6e +9f8505322412399b5acbf5ee73337eab +3fd084ee76aa52b4e20b601babbb11cb -001f89497d83b75fd374517b88d782ee +4e9739c5d4dd7d7150093400f77e392e c3e50ad0d4c93692a2810e136ada70d7 2cc2731ed536bf38737bfc2897163b4f -fd49f158c63c1e262131727166661df4 +d2920c2ffdac4cb2905142099ba74fe8 5d9b7ccd6766e9e943b206c4e288cea8 -e7cbb3f5347a6186501681bdbda58f9e +1f17d66cf1563e4c46196516bcc73b42 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 55b226d18eb7824edad5050c3090b348 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -d195ddd5ec7ed1f150a7ee113edc1a6a +249a59e20ad0f29165045c375cf123ca fb330418c81c08843a8ecc7b41911c3e -2b2a2539bf08025ea2794371cb5d5edf +0a95085c8a3f3efcd5a63702b1bf537b 89d74d9cd7885c8ceaba6f9a15ec3589 d976f528676688719bb4ed9da722c798 -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece 681bb6760c742ae699ed900dca34241d d91a412e4582686aee55e22120f10420 -081ddaf3beab038b809eb6db2957285e +7b331d712e358d5793e19167ab42d4b9 05a11b19b5162789760c9838a936df75 -eead927af63207df007d30bbefa0bb40 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 92ac14a3dd5307e6bc4429f625ac3f5b 07692372f9f22331da5ca1cc604206c4 f5c74ffcbb82b66d295e84cb0c11b477 4e186ea8084c33de3fec3182f57150ec fb5913e34a812d5fdf9e25b8ca8c9fb2 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 c57c2471c7a6eddd29d27909cc422e41 -87aea5e86e2ac2e10e0f98c23a552640 -ab667e6064cd5ecf206e86210ef81994 +33ac9fc2bc7ea230d394ac0b811677c7 +19e964a00e47d79e98eac8e4e3cfe3dd 8cc192424d2a8a3a8439cf6c9e9c866d 3122c8015a2583d254fbdead8e4fde52 c95d9dd5cdb6d9a6824a6bdbefb48531 @@ -11151,55 +11143,55 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 d7385726059a0035f5c91a2c1602f235 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc f1f34d8c0f864daa5e8ab56801027430 -f67efb48f1c66c4a32a71e6f70f49b7d +df295d90be1a982bfcf7cf01c641aa75 9e04b2cd1b93f421705034d5206749d8 2cc2731ed536bf38737bfc2897163b4f -ed09fddf882d9beadb8043fa20872c5b +4b408813ba07c4aaf7494a0dce45db2b 58d8a88c479e8ef6bfe376130f2d7fd7 -46100ab9de7bbd18588c7d8bff0b7eb2 +bf0bfe2c95f6532f0440971af8572697 545b1414d82cdd476e8d6676161e3103 83d51da6ce128a36cd2e5d2dbab76ce0 f2a97948d26385dbf048ef0cf2c525d7 d1a443d8f9c8f096368d1d3871ad69e2 044e22c98deb3d6da5898931cee7224c 599619a98b0411989a763faf1c6ede75 -e1161971bb06488cabe9066c8e827741 +9074eff322d7513a6589a181dfc089ec d255ea5b9df613deb7f8f85bc5c93241 -73cdaf1b551687a5a117792c1f128fcc +8b4845bccbb06c9c8d6870a50486ac45 fb330418c81c08843a8ecc7b41911c3e -4e48bd3662bd4f3d43cac92e7796d89c +8f385289997f3f192b47d00582f52c24 06b696eb0e3787682befe68fb70ea395 87204bb4bc4b2de9530578fce343498a -1ec6007e78b7fef3a0c46b285f5345f7 +f28c1d91837eecde379d863333ad3da7 1898ba53941f49ece5a58b90fdac3ebd 7353c73dcba6a3beb03620ccb68802b3 5568084ceebffcae386fc1ec48e7ffa8 17da2830504929531702d918d538bece a42be7db361dd5993f28868e4a3f358f 6debf0d0e4964cc8c9e574386a87e036 -6f5383381ed0ddbf7be82d2bd8e158d6 +3ccfaadb5ee1a1c4fe90a33682336ba6 05a11b19b5162789760c9838a936df75 -7bc61a1f1daf334bc893dd1f0b05ca37 -24076c897f856af4bf47d86d96078688 +74e5138e0485400d0958b5c137a8634e +ab80eb398c1cfa95b56a5b1dc2b7ce7d 5f93e31d32cd99d38e3d59c80b4137ff df979559da6c099664af3c61b83b9e14 -7ac550b131a480505f0160feb1984344 -22fe87d6626de9d7ef505f8997309e1a -4f231e473fa377b7f6cf6b3a778952ea +3b9488c55a6633217590c01acb9c0d8e +58ce4b88e87e271384435fc25c0f8144 +bb6a51f4eb6b3c8f00bfe1cdb89cd76a 5b4aa669a151dc30f4dba6f345177d91 1ca4e724a542dd90368a4612a878aa7a 07692372f9f22331da5ca1cc604206c4 589333633b6d1adbabfd86f078697ed1 309215b54637ec841c73ad9cb60c92c2 f326d01ea1f9cb89d96aafdbf65dfcf7 -3868fe6746505c0449f7ab2550a54795 +5c421382d1ed9e5e1f86f3bea1f29cc9 e0ba51b98a7560425f1296e931803c92 -fd5f5dbca99d9cd162b36d466d05397d -22a55c993f07ee610d137edab7539923 +8f91213f34f0244a5160d7e826d145c2 +c88e3c2e66b2d80b141a1e0bbc1e002b 3c262e53abae368513df941815512cac 3122c8015a2583d254fbdead8e4fde52 5b30fbe3329f2544372a731e50272392 @@ -11210,7 +11202,7 @@ 449de434949a3e2b8780a87e7b179d3c 3ecfa35141eae057f996daee3608c0c8 392d29d07b9eecdc15f88bbade3f4553 -98df0b16465e8526f1a34f0e24e1d25b +c04c20e9e0d8940e6a34a3de26975bfc 5e857db1c2b2f3c5b49fd68ef1fbad23 @@ -11229,7 +11221,7 @@ adf4d0f538de7decd6b3e4c5140c159a -5b06c4c900114c4ce894c39022aad38f +c8c27baf9e354f8b070f18500c4b9896 d41d8cd98f00b204e9800998ecf8427e @@ -11250,7 +11242,7 @@ d41d8cd98f00b204e9800998ecf8427e -5fbf322b32b161612161d4fdfcca5749 +6a9c570caec888fedf9faa0032a902a8 f30fdf4ab338c390c86e1617a5426e0f @@ -11260,7 +11252,7 @@ d41d8cd98f00b204e9800998ecf8427e -170e38a1cefb8b8ddb43d563dcf06f9f +aef2c07fde9b49868ac5cfeb890e3c3d d41d8cd98f00b204e9800998ecf8427e @@ -11889,7 +11881,7 @@ d41d8cd98f00b204e9800998ecf8427e -05f5994a4740a525f681f2da3778400e +4e96b9d5e319317867034cb5d44d7edf d41d8cd98f00b204e9800998ecf8427e @@ -12156,7 +12148,7 @@ d41d8cd98f00b204e9800998ecf8427e -6079976684703359a26c4544f46ea8c4 +1fbe45ac17223930f63f72b33108f3be d41d8cd98f00b204e9800998ecf8427e @@ -12430,7 +12422,7 @@ d41d8cd98f00b204e9800998ecf8427e -068fcbee3df8f8886aadbd76bdf937af +01232047a4537a7eca790bf2e64eac10 d41d8cd98f00b204e9800998ecf8427e @@ -12660,7 +12652,7 @@ d41d8cd98f00b204e9800998ecf8427e -0903d36e5451be75a51d379ad4d4fb9b +f2668d60b62d550468381be65ed1630d d41d8cd98f00b204e9800998ecf8427e @@ -12904,7 +12896,7 @@ d41d8cd98f00b204e9800998ecf8427e -0f5f369eab5868128d08085572f6a912 +454717ceabbc959f7902beb3903f011e d41d8cd98f00b204e9800998ecf8427e @@ -13231,13 +13223,13 @@ 11689e5722e4204b9d01e5e4483b92ef -7529966db8d111e5c265262581e19e1e +08938fc6d6d375cf72fb4a9e14b1f3c2 a20a84fb09238e216ab80d91674426b1 d41d8cd98f00b204e9800998ecf8427e -4b94e9ad89c520b4cc4ab986a1cfb5f8 -86af0ee60c4aae4f6efeef2a521a0039 +bc3aa842090496571e579929dbb67946 +20d05f87e3dcc4cc34783e807d53af33 70c0bcc71422c17305e134929089ed0a @@ -13245,7 +13237,7 @@ 353d0788a1b27e81a7c62446ca190de1 24ec433a2020143f3a634ff9bf695024 5e1aea18f899b4a763a0291dcf1f2b90 -b2c7012ed8f4226c6fda016a3ea1aff3 +3d9e24b7399dffbfbd97e4e63efb30b6 9dd4c109f77db954d5afcb20d5af9e4c @@ -13259,12 +13251,12 @@ 24b8f65ab4a24ff8241b8af469928f75 -e876e30d4e723313b9e22fc158a80117 +faee7623b7d24024c8f024cf8d523736 7770e9e8e3fb4b98bc149059c5bc9633 d41d8cd98f00b204e9800998ecf8427e -094b73de61eaad218343e1183fe4a67a +88b846ea65a9fba4dc31bbf408820f24 7b7cde9c324feeed6e94f50e1655ba40 @@ -13282,7 +13274,7 @@ 0b959ec99ed9ee63f065c7d40454b9ec -178dc806a0546aacf323c2bd61b0b6fd +f406b3b391eb6648f00807bbfd3ecaec d41d8cd98f00b204e9800998ecf8427e @@ -13325,7 +13317,7 @@ c8794336eba88e9ce0af56f8b5cded4d - + 7c7d00777d21ed95c127af574c6ec4dc 391071254a71e5fe29f6a22cbfc27543 From a9a3c3b97f37fe83fd0f77c3e3c9b7f0c381d139 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 11 Oct 2015 19:47:47 +0200 Subject: [PATCH 35/46] Exclude file from sources. It is generated when building package. --- htdocs/install/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 htdocs/install/.gitignore diff --git a/htdocs/install/.gitignore b/htdocs/install/.gitignore new file mode 100644 index 00000000000..7e55df64ce7 --- /dev/null +++ b/htdocs/install/.gitignore @@ -0,0 +1 @@ +/filelist.xml From df39a1054e0a4a74f4ae89fa69ad0b3d5b5c346c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 11 Oct 2015 20:19:52 +0200 Subject: [PATCH 36/46] Fix 3.8.1 --- ChangeLog | 68 ++++++++++++++++++++++++++++++++++++++++ build/makepack-howto.txt | 8 +++-- 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index adf616485b8..119db9f9c91 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,74 @@ Upgrading to any other version or any other database system is abolutely require make a Dolibarr upgrade. +***** ChangeLog for 3.8.1 compared to 3.8.0 ***** +FIX: #3521 postgresql migration error +FIX: #3524 +FIX: #3529 +FIX: #3530 +FIX: #3533 +FIX: #3533 Load categories language +FIX: #3534 +FIX: #3572 Impossible to attach project in order +FIX: #3599 Not saving legal form +FIX: #3606 +FIX: #3607 Better categories setting and unsetting +FIX: #3628 +FIX: #3630 - Wrong balance report when module salaries and donation disabled +FIX: Add a test to save life when ref of object (invoice ref, order ref, ...) was empty. The was no way to go back to a clean situation, even after vaidating again the object. +FIX: Admin fiche inter page do not take good action +FIX: Always use type send in parameters in showCategories method +FIX: avoid SQL error in getValueFrom common object when all params are not send +FIX: avoid SQL error when no sortfield send to method +FIX: bad link into project box +FIX: Bad title line in project view when using jmobile +FIX: Bad translation key for project "Overview" +FIX: Can create Proposal on close thridparty #3526 +FIX: Can't change state on a contact +FIX: Can't change the admin with default setup +FIX: Can't delete thirdparty if there is some discounts +FIX: Can't reopen a canceled invoice. +FIX: Creation of tables or keys must not be done with a random order. +FIX: debian install when module mysqli is not installed. +FIX: Description of tags was mandatory in edit mode but not in create mode. Should not be mandatory. +FIX: display error on extrafields on ficheinter +FIX: Email selector contact must not include inactive contact +FIX: error in SQL due to a previous fix +FIX: Error retrieving customer prices +FIX: Event from ical stream should not be movable into calendar view +FIX: facturestat bad sql when customer view is limited +FIX: Filter on status of thirdparty list and bad encoding of url +FIX: icon into export profile may be not correctly output +FIX: Init into bad var +FIX: Link of project must be cickable if user has permission to read all projects FIX: Missing information into the alt of project picto +FIX: List of project for user that are restrited as sale repreentative to some thirdparties. +FIX: Mass Mailing activity don't display all status +FIX: Missing contracts into list in page of Refering objects of a thirdparty. +FIX: Missing menu entry for list of thirdparties when using auguria menu manager +FIX: Missing validate button if permission are not valid. +FIX: New adherent from, always redirect on entity +FIX: not closing CSS. +FIX: not responsive part for project page +FIX: Only are showing one object linked +FIX: order ref must not be translated +FIX: Payment form for paypal and paybox was not centered. +FIX: Pb into pagination scroll widget FIX: Style of previous-next card when using dolidroid +FIX: Regression on bad use of fk_account showing the bad bank account on PDF. +FIX: Removed warnings +FIX: remove twice same test +FIX: select of project using ajax autocomplete option +FIX: sortder field was missing so manually added values were moved to begin. +FIX: Syntax error in Debian Apache configuration +FIX: The admin flag is mising. +FIX: The filter on thirdparty prices should be visible if there is at least one thirdparty price. +FIX: Thirdparty is missing on card +FIX: update2.php test res befre assign it +FIX: When delete actioncomm also delete actioncomm_resources +FIX: when editing time spent, date of line suggested was a rubbish value +FIX: When filter with empty status, by default get canceled status (-1) +FIX: When update a member login for a member linked to a user, the login of user was not sync (not updated). +FIX: Wizard for restore does not show import command + ***** ChangeLog for 3.8 compared to 3.7.* ***** For users: FIX: #2519 diff --git a/build/makepack-howto.txt b/build/makepack-howto.txt index 813db9bb4b8..953e207d28d 100644 --- a/build/makepack-howto.txt +++ b/build/makepack-howto.txt @@ -8,7 +8,9 @@ This files describe steps made by Dolibarr packaging team to make a beta version of Dolibarr, step by step. - Check all files are commited. -- Update version/info in ChangeLog. To generate a changelog, you can do "git log `git merge-base 3.7.0 origin/develop`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" +- Update version/info in ChangeLog. +To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git merge-base x-1.y-1.0 origin/develop`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" +To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log `git merge-base x.y.z-1 origin/develop`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" - Update version number with x.y.z-w in htdocs/filefunc.inc.php - Commit all changes. @@ -28,7 +30,9 @@ This files describe steps made by Dolibarr packaging team to make a complete release of Dolibarr, step by step. - Check all files are commited. -- Update version/info in ChangeLog. To generate a changelog, you can do "git log `git merge-base 3.7.0 origin/develop`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" +- Update version/info in ChangeLog. +To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git merge-base x-1.y-1.0 origin/develop`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" +To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log `git merge-base x.y.z-1 origin/develop`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa" - Update version number with x.y.z in htdocs/filefunc.inc.php - Commit all changes. From 87fad70f4a7c6989983d6a519517b95a2f0c5725 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 11 Oct 2015 20:42:49 +0200 Subject: [PATCH 37/46] Revert "FIX no need to remove file into mail form" --- htdocs/core/lib/files.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index a4e26f116ef..bcc6c165472 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -1115,7 +1115,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio * @param int $donotdeletefile 1=Do not delete physically file * @return void */ -function dol_remove_file_process($filenb,$donotupdatesession=0,$donotdeletefile=1) +function dol_remove_file_process($filenb,$donotupdatesession=0,$donotdeletefile=0) { global $db,$user,$conf,$langs,$_FILES; From 0251728e286a99f5f013f878c9872dde0fbcabf7 Mon Sep 17 00:00:00 2001 From: Alexis Algoud Date: Mon, 12 Oct 2015 17:36:24 +0200 Subject: [PATCH 38/46] FIX double db escape add too quote --- htdocs/product/stock/class/entrepot.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/product/stock/class/entrepot.class.php b/htdocs/product/stock/class/entrepot.class.php index b65c01f6840..2b1b368ef8c 100644 --- a/htdocs/product/stock/class/entrepot.class.php +++ b/htdocs/product/stock/class/entrepot.class.php @@ -135,14 +135,14 @@ class Entrepot extends CommonObject */ function update($id, $user) { - $this->libelle=$this->db->escape(trim($this->libelle)); - $this->description=$this->db->escape(trim($this->description)); + $this->libelle=trim($this->libelle); + $this->description=trim($this->description); - $this->lieu=$this->db->escape(trim($this->lieu)); + $this->lieu=trim($this->lieu); - $this->address=$this->db->escape(trim($this->address)); - $this->zip=$this->zip?trim($this->zip):trim($this->zip); - $this->town=$this->town?trim($this->town):trim($this->town); + $this->address=trim($this->address); + $this->zip=trim($this->zip); + $this->town=trim($this->town); $this->country_id=($this->country_id > 0 ? $this->country_id : $this->country_id); $sql = "UPDATE ".MAIN_DB_PREFIX."entrepot "; From 8aaa1993c6b1107db00a180d6c36dbc6aa14fa2a Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Tue, 13 Oct 2015 09:37:33 +0200 Subject: [PATCH 39/46] FIX : #3724 Bug: Blank page after cloning proposal with changed client --- htdocs/comm/propal/class/propal.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index b818de76a0e..69f36c83136 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1063,7 +1063,7 @@ class Propal extends CommonObject { global $db, $user,$langs,$conf,$hookmanager; - dol_include_once('/projet/class.project.class.php'); + dol_include_once('/projet/class/project.class.php'); $this->context['createfromclone']='createfromclone'; From 00b610d87fec9815bb73626d52b27335512d1d23 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Wed, 14 Oct 2015 08:23:52 +0200 Subject: [PATCH 40/46] FIX : fix HTML into formconfirm box --- htdocs/core/class/html.form.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 87d177e5d7d..b75bd01d2aa 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -3233,7 +3233,7 @@ class Form if (! empty($more)) { $formconfirm.= '
'.$more.'
'; } - $formconfirm.= ($question ? '
': ''); + $formconfirm.= ($question ? '
'.img_help('','').' '.$question . '
': ''); $formconfirm.= '
'."\n"; $formconfirm.= "\n\n"; From 727db565765037705c50905c400d45ef17f77e3f Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Wed, 14 Oct 2015 08:27:56 +0200 Subject: [PATCH 41/46] FIX : #3724 Bug: Blank page after cloning proposal with changed client --- htdocs/comm/propal/class/propal.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index dbd03788293..c5c432610ee 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -961,7 +961,7 @@ class Propal extends CommonObject { global $db, $user,$langs,$conf,$hookmanager; - dol_include_once('/projet/class.project.class.php'); + dol_include_once('/projet/class/project.class.php'); $this->context['createfromclone']='createfromclone'; From 6b8707516e9ef2ea56827e2e724508034f0008b3 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Wed, 14 Oct 2015 10:05:42 +0200 Subject: [PATCH 42/46] FIX : skeleton class must use db->order rather than ORDER BY into fetchAll --- dev/skeletons/skeleton_class.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/skeletons/skeleton_class.class.php b/dev/skeletons/skeleton_class.class.php index 2f8c78556e1..1eeae9a9fd2 100644 --- a/dev/skeletons/skeleton_class.class.php +++ b/dev/skeletons/skeleton_class.class.php @@ -244,7 +244,7 @@ class Skeleton_Class extends CommonObject } if (!empty($sortfield)) { - $sql .= ' ORDER BY ' . $sortfield . ' ' . $sortorder; + $sql .= $this->db->order($sortfield,$sortorder); } if (!empty($limit)) { $sql .= ' ' . $this->db->plimit($limit + 1, $offset); From e9facbf1086fb9ee3674729cc6ab695848e70e5b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Oct 2015 10:53:38 +0200 Subject: [PATCH 43/46] FIX bad property so after creating an event from calendar, filter were lost. --- htdocs/comm/action/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 94905919022..32d5a34aa52 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -323,7 +323,7 @@ if ($action == 'add') unset($_SESSION['assignedtouser']); $moreparam=''; - if ($user->id != $object->ownerid) $moreparam="usertodo=-1"; // We force to remove filter so created record is visible when going back to per user view. + if ($user->id != $object->userownerid) $moreparam="usertodo=-1"; // We force to remove filter so created record is visible when going back to per user view. $db->commit(); if (! empty($backtopage)) From 68aac4476c7c2f5266a483dae30f48088614b3e0 Mon Sep 17 00:00:00 2001 From: fappels Date: Wed, 14 Oct 2015 12:16:54 +0200 Subject: [PATCH 44/46] FIX: #3605 deleting a shipping Get lots to move back to stock. Move lots back to stock. Do not log object because it will be deleted Improve error reporting --- htdocs/expedition/class/expedition.class.php | 97 ++++++++++++------- .../class/expeditionbatch.class.php | 9 +- 2 files changed, 69 insertions(+), 37 deletions(-) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index b43afdfc206..6c2214c7e82 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -7,7 +7,7 @@ * Copyright (C) 2013 Florian Henry * Copyright (C) 2014 Cedric GROSS * Copyright (C) 2014-2015 Marcos García - * Copyright (C) 2014 Francis Appels + * Copyright (C) 2014-2015 Francis Appels * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1002,7 +1002,7 @@ class Expedition extends CommonObject } } - /** + /** * Delete shipment. * Warning, do not delete a shipment if a delivery is linked to (with table llx_element_element) * @@ -1011,9 +1011,13 @@ class Expedition extends CommonObject function delete() { global $conf, $langs, $user; - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if ($conf->productbatch->enabled) + { + require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionbatch.class.php'; + } $error=0; + $this->error=''; // Add a protection to refuse deleting if shipment has at least one delivery $this->fetchObjectLinked($this->id, 'shipping', 0, 'delivery'); // Get deliveries linked to this shipment @@ -1024,15 +1028,6 @@ class Expedition extends CommonObject } $this->db->begin(); - - if ($conf->productbatch->enabled) - { - require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionbatch.class.php'; - if (ExpeditionLineBatch::deletefromexp($this->db,$this->id) < 0) - { - $error++;$this->errors[]="Error ".$this->db->lasterror(); - } - } // Stock control if ($conf->stock->enabled && $conf->global->STOCK_CALCULATE_ON_SHIPMENT && $this->statut > 0) { @@ -1041,7 +1036,7 @@ class Expedition extends CommonObject $langs->load("agenda"); // Loop on each product line to add a stock movement - $sql = "SELECT cd.fk_product, cd.subprice, ed.qty, ed.fk_entrepot"; + $sql = "SELECT cd.fk_product, cd.subprice, ed.qty, ed.fk_entrepot, ed.rowid as expeditiondet_id"; $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd,"; $sql.= " ".MAIN_DB_PREFIX."expeditiondet as ed"; $sql.= " WHERE ed.fk_expedition = ".$this->id; @@ -1056,26 +1051,62 @@ class Expedition extends CommonObject { dol_syslog(get_class($this)."::delete movement index ".$i); $obj = $this->db->fetch_object($resql); - - //var_dump($this->lines[$i]); + $mouvS = new MouvementStock($this->db); - $mouvS->origin = &$this; - // We decrement stock of product (and sub-products) - // We use warehouse selected for each line - $result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $obj->qty, $obj->subprice, $langs->trans("ShipmentDeletedInDolibarr",$this->ref)); - if ($result < 0) + // we do not log origin because it will be deleted + $mouvS->origin = null; + // get lot/serial + $lotArray = null; + if ($conf->productbatch->enabled) { - $error++; - break; + $lotArray = ExpeditionLineBatch::fetchAll($this->db,$obj->expeditiondet_id); + if (! is_array($lotArray)) + { + $error++;$this->errors[]="Error ".$this->db->lasterror(); + } } + if (empty($lotArray)) { + // no lot/serial + // We increment stock of product (and sub-products) + // We use warehouse selected for each line + $result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $obj->qty, $obj->subprice, $langs->trans("ShipmentDeletedInDolibarr", $this->ref)); + if ($result < 0) + { + $error++;$this->errors=$this->errors + $mouvS->errors; + break; + } + } + else + { + // We increment stock of batches + // We use warehouse selected for each line + foreach($lotArray as $lot) + { + $result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $lot->dluo_qty, $obj->subprice, $langs->trans("ShipmentDeletedInDolibarr", $this->ref), $lot->eatby, $lot->sellby, $lot->batch); + if ($result < 0) + { + $error++;$this->errors=$this->errors + $mouvS->errors; + break; + } + } + } } } else { - $error++; + $error++;$this->errors[]="Error ".$this->db->lasterror(); } } - + + // delete batch expedition line + if (! $error && $conf->productbatch->enabled) + { + if (ExpeditionLineBatch::deletefromexp($this->db,$this->id) < 0) + { + $error++;$this->errors[]="Error ".$this->db->lasterror(); + } + } + if (! $error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet"; @@ -1094,13 +1125,13 @@ class Expedition extends CommonObject if ($this->db->query($sql)) { - // Call trigger - $result=$this->call_trigger('SHIPPING_DELETE',$user); - if ($result < 0) { $error++; } - // End call triggers + // Call trigger + $result=$this->call_trigger('SHIPPING_DELETE',$user); + if ($result < 0) { $error++; } + // End call triggers - if (! $error) - { + if (! $error) + { $this->db->commit(); // We delete PDFs @@ -1127,8 +1158,8 @@ class Expedition extends CommonObject } return 1; - } - else + } + else { $this->db->rollback(); return -1; diff --git a/htdocs/expedition/class/expeditionbatch.class.php b/htdocs/expedition/class/expeditionbatch.class.php index fd424fc4990..49a59b726e1 100644 --- a/htdocs/expedition/class/expeditionbatch.class.php +++ b/htdocs/expedition/class/expeditionbatch.class.php @@ -189,11 +189,12 @@ class ExpeditionLineBatch extends CommonObject $sql.= " WHERE fk_expeditiondet=".(int) $id_line_expdet; dol_syslog(__METHOD__ ."", LOG_DEBUG); - $resql=$db->query($sql); - if ($resql) - { + $resql=$db->query($sql); + if ($resql) + { $num=$db->num_rows($resql); - $i=0; + $i=0; + $ret = array(); while ($i<$num) { $tmp=new self($db); From 6c2b46f9398645ea290ddef63680a52dc5446bdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Thu, 15 Oct 2015 10:13:52 +0200 Subject: [PATCH 45/46] Fix #3728 Properly remove last category --- htdocs/adherents/class/adherent.class.php | 10 ++++++---- htdocs/contact/class/contact.class.php | 10 ++++++---- htdocs/product/class/product.class.php | 10 ++++++---- htdocs/societe/class/societe.class.php | 10 ++++++---- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 29cc0aac249..de3b937094a 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -1991,12 +1991,14 @@ class Adherent extends CommonObject // Process foreach ($to_del as $del) { - $c->fetch($del); - $c->del_type($this, 'member'); + if ($c->fetch($del) > 0) { + $c->del_type($this, 'member'); + } } foreach ($to_add as $add) { - $c->fetch($add); - $c->add_type($this, 'member'); + if ($c->fetch($add) > 0) { + $c->add_type($this, 'member'); + } } return; diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index c48408ab281..7af2a763ad1 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -1155,12 +1155,14 @@ class Contact extends CommonObject // Process foreach ($to_del as $del) { - $c->fetch($del); - $c->del_type($this, 'contact'); + if ($c->fetch($del) > 0) { + $c->del_type($this, 'contact'); + } } foreach ($to_add as $add) { - $c->fetch($add); - $c->add_type($this, 'contact'); + if ($c->fetch($add) > 0) { + $c->add_type($this, 'contact'); + } } return; diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index a51a1a77c7b..6f4e37c8ab2 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -3976,12 +3976,14 @@ class Product extends CommonObject // Process foreach($to_del as $del) { - $c->fetch($del); - $c->del_type($this, 'product'); + if ($c->fetch($del) > 0) { + $c->del_type($this, 'product'); + } } foreach ($to_add as $add) { - $c->fetch($add); - $c->add_type($this, 'product'); + if ($c->fetch($add) > 0) { + $c->add_type($this, 'product'); + } } return; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index af54c7b8742..7bf8d6c45cf 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -3395,12 +3395,14 @@ class Societe extends CommonObject // Process foreach ($to_del as $del) { - $c->fetch($del); - $c->del_type($this, $type_text); + if ($c->fetch($del) > 0) { + $c->del_type($this, $type_text); + } } foreach ($to_add as $add) { - $c->fetch($add); - $c->add_type($this, $type_text); + if ($c->fetch($add) > 0) { + $c->add_type($this, $type_text); + } } return; From 4cdf17d8b5f405d6329a3bfda40139dbddd4d358 Mon Sep 17 00:00:00 2001 From: fmarcet Date: Thu, 15 Oct 2015 12:17:57 +0200 Subject: [PATCH 46/46] FIX #3689 Bug on workflow module --- htdocs/commande/class/commande.class.php | 186 +++++++++++------------ 1 file changed, 91 insertions(+), 95 deletions(-) diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index e681bfc7726..16c889c6e61 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -1045,116 +1045,112 @@ class Commande extends CommonOrder $error=0; - // Signed proposal - if ($object->statut == 2) + + $this->date_commande = dol_now(); + $this->source = 0; + + $num=count($object->lines); + for ($i = 0; $i < $num; $i++) { - $this->date_commande = dol_now(); - $this->source = 0; + $line = new OrderLine($this->db); - $num=count($object->lines); - for ($i = 0; $i < $num; $i++) - { - $line = new OrderLine($this->db); + $line->libelle = $object->lines[$i]->libelle; + $line->label = $object->lines[$i]->label; + $line->desc = $object->lines[$i]->desc; + $line->price = $object->lines[$i]->price; + $line->subprice = $object->lines[$i]->subprice; + $line->tva_tx = $object->lines[$i]->tva_tx; + $line->localtax1_tx = $object->lines[$i]->localtax1_tx; + $line->localtax2_tx = $object->lines[$i]->localtax2_tx; + $line->qty = $object->lines[$i]->qty; + $line->fk_remise_except = $object->lines[$i]->fk_remise_except; + $line->remise_percent = $object->lines[$i]->remise_percent; + $line->fk_product = $object->lines[$i]->fk_product; + $line->info_bits = $object->lines[$i]->info_bits; + $line->product_type = $object->lines[$i]->product_type; + $line->rang = $object->lines[$i]->rang; + $line->special_code = $object->lines[$i]->special_code; + $line->fk_parent_line = $object->lines[$i]->fk_parent_line; + $line->fk_unit = $object->lines[$i]->fk_unit; - $line->libelle = $object->lines[$i]->libelle; - $line->label = $object->lines[$i]->label; - $line->desc = $object->lines[$i]->desc; - $line->price = $object->lines[$i]->price; - $line->subprice = $object->lines[$i]->subprice; - $line->tva_tx = $object->lines[$i]->tva_tx; - $line->localtax1_tx = $object->lines[$i]->localtax1_tx; - $line->localtax2_tx = $object->lines[$i]->localtax2_tx; - $line->qty = $object->lines[$i]->qty; - $line->fk_remise_except = $object->lines[$i]->fk_remise_except; - $line->remise_percent = $object->lines[$i]->remise_percent; - $line->fk_product = $object->lines[$i]->fk_product; - $line->info_bits = $object->lines[$i]->info_bits; - $line->product_type = $object->lines[$i]->product_type; - $line->rang = $object->lines[$i]->rang; - $line->special_code = $object->lines[$i]->special_code; - $line->fk_parent_line = $object->lines[$i]->fk_parent_line; - $line->fk_unit = $object->lines[$i]->fk_unit; + $line->date_start = $object->lines[$i]->date_start; + $line->date_end = $object->lines[$i]->date_end; - $line->date_start = $object->lines[$i]->date_start; - $line->date_end = $object->lines[$i]->date_end; - - $line->fk_fournprice = $object->lines[$i]->fk_fournprice; - $marginInfos = getMarginInfos($object->lines[$i]->subprice, $object->lines[$i]->remise_percent, $object->lines[$i]->tva_tx, $object->lines[$i]->localtax1_tx, $object->lines[$i]->localtax2_tx, $object->lines[$i]->fk_fournprice, $object->lines[$i]->pa_ht); - $line->pa_ht = $marginInfos[0]; - $line->marge_tx = $marginInfos[1]; - $line->marque_tx = $marginInfos[2]; - - // get extrafields from original line - $object->lines[$i]->fetch_optionals($object->lines[$i]->rowid); - foreach($object->lines[$i]->array_options as $options_key => $value) - $line->array_options[$options_key] = $value; - - $this->lines[$i] = $line; - } - - $this->socid = $object->socid; - $this->fk_project = $object->fk_project; - $this->cond_reglement_id = $object->cond_reglement_id; - $this->mode_reglement_id = $object->mode_reglement_id; - $this->fk_account = $object->fk_account; - $this->availability_id = $object->availability_id; - $this->demand_reason_id = $object->demand_reason_id; - $this->date_livraison = $object->date_livraison; - $this->shipping_method_id = $object->shipping_method_id; - $this->fk_delivery_address = $object->fk_delivery_address; - $this->contact_id = $object->contactid; - $this->ref_client = $object->ref_client; - $this->note_private = $object->note_private; - $this->note_public = $object->note_public; - - $this->origin = $object->element; - $this->origin_id = $object->id; + $line->fk_fournprice = $object->lines[$i]->fk_fournprice; + $marginInfos = getMarginInfos($object->lines[$i]->subprice, $object->lines[$i]->remise_percent, $object->lines[$i]->tva_tx, $object->lines[$i]->localtax1_tx, $object->lines[$i]->localtax2_tx, $object->lines[$i]->fk_fournprice, $object->lines[$i]->pa_ht); + $line->pa_ht = $marginInfos[0]; + $line->marge_tx = $marginInfos[1]; + $line->marque_tx = $marginInfos[2]; // get extrafields from original line - $object->fetch_optionals($object->id); + $object->lines[$i]->fetch_optionals($object->lines[$i]->rowid); + foreach($object->lines[$i]->array_options as $options_key => $value) + $line->array_options[$options_key] = $value; - $e = new ExtraFields($db); - $element_extrafields = $e->fetch_name_optionals_label($this->element); + $this->lines[$i] = $line; + } - foreach($object->array_options as $options_key => $value) { - if(array_key_exists(str_replace('options_', '', $options_key), $element_extrafields)){ - $this->array_options[$options_key] = $value; - } + $this->socid = $object->socid; + $this->fk_project = $object->fk_project; + $this->cond_reglement_id = $object->cond_reglement_id; + $this->mode_reglement_id = $object->mode_reglement_id; + $this->fk_account = $object->fk_account; + $this->availability_id = $object->availability_id; + $this->demand_reason_id = $object->demand_reason_id; + $this->date_livraison = $object->date_livraison; + $this->shipping_method_id = $object->shipping_method_id; + $this->fk_delivery_address = $object->fk_delivery_address; + $this->contact_id = $object->contactid; + $this->ref_client = $object->ref_client; + $this->note_private = $object->note_private; + $this->note_public = $object->note_public; + + $this->origin = $object->element; + $this->origin_id = $object->id; + + // get extrafields from original line + $object->fetch_optionals($object->id); + + $e = new ExtraFields($db); + $element_extrafields = $e->fetch_name_optionals_label($this->element); + + foreach($object->array_options as $options_key => $value) { + if(array_key_exists(str_replace('options_', '', $options_key), $element_extrafields)){ + $this->array_options[$options_key] = $value; } - // Possibility to add external linked objects with hooks - $this->linked_objects[$this->origin] = $this->origin_id; - if (is_array($object->other_linked_objects) && ! empty($object->other_linked_objects)) + } + // Possibility to add external linked objects with hooks + $this->linked_objects[$this->origin] = $this->origin_id; + if (is_array($object->other_linked_objects) && ! empty($object->other_linked_objects)) + { + $this->linked_objects = array_merge($this->linked_objects, $object->other_linked_objects); + } + + $ret = $this->create($user); + + if ($ret > 0) + { + // Actions hooked (by external module) + $hookmanager->initHooks(array('orderdao')); + + $parameters=array('objFrom'=>$object); + $action=''; + $reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks + if ($reshook < 0) $error++; + + if (! $error) { - $this->linked_objects = array_merge($this->linked_objects, $object->other_linked_objects); - } - - $ret = $this->create($user); - - if ($ret > 0) - { - // Actions hooked (by external module) - $hookmanager->initHooks(array('orderdao')); - - $parameters=array('objFrom'=>$object); - $action=''; - $reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook < 0) $error++; - - if (! $error) + // Ne pas passer par la commande provisoire + if ($conf->global->COMMANDE_VALID_AFTER_CLOSE_PROPAL == 1) { - // Ne pas passer par la commande provisoire - if ($conf->global->COMMANDE_VALID_AFTER_CLOSE_PROPAL == 1) - { - $this->fetch($ret); - $this->valid($user); - } - return $ret; + $this->fetch($ret); + $this->valid($user); } - else return -1; + return $ret; } else return -1; } - else return 0; + else return -1; }