Initial commit for newdesignprestation project

This commit is contained in:
KANE LAZENI 2026-02-20 10:54:27 +00:00
parent 04ab9ab715
commit d703594955
36 changed files with 4381 additions and 217035 deletions

35
Cards/Configuration.php Normal file
View File

@ -0,0 +1,35 @@
<?php
class Configuration
{
private static $parametres;
public static function get($nom, $valeurParDefaut = null)
{
$parametres = self::getParametres();
if (isset($parametres[$nom])) {
$valeur = $parametres[$nom];
}
else {
$valeur = $valeurParDefaut;
}
return $valeur;
}
private static function getParametres()
{
if (self::$parametres == null) {
// $cheminFichier = __DIR__ ."dev.ini";
$cheminFichier = "dev.ini";
if (!file_exists($cheminFichier)) {
// $cheminFichier = __DIR__ ."prod.ini";
$cheminFichier = "prod.ini";
}
if (!file_exists($cheminFichier)) {
throw new Exception("Aucun fichier de configuration trouvé");
}
else {
self::$parametres = parse_ini_file($cheminFichier);
}
}
return self::$parametres;
}
}

280
Cards/Confirmercarte.php Normal file
View File

@ -0,0 +1,280 @@
<?php
session_start();
// Fonction pour afficher les messages avec un style cohérent
function afficherMessage($message, $estErreur = true) {
$couleur = $estErreur ? "#d9534f" : "#5cb85c"; // Rouge pour erreur, vert pour succès
?>
<!DOCTYPE html>
<html lang="<?= isset($codeLangue) ? $codeLangue : 'fr_FR' ?>">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/Contestation/favicon.ico" />
<title><?= htmlspecialchars($title ?? 'Contestation') ?></title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 20px;
background-color: #f5f5f5;
}
.container {
max-width: 800px;
margin: 50px auto;
background: white;
padding: 30px;
border-radius: 5px;
box-shadow: 0 0 15px rgba(0,0,0,0.1);
text-align: center;
}
.message {
color: white;
background-color: <?= $couleur ?>;
padding: 15px;
border-radius: 4px;
font-size: 18px;
margin: 20px 0;
}
.logo {
margin-bottom: 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="logo">
<!-- Vous pouvez ajouter un logo ici si nécessaire -->
</div>
<div class="message">
<?= $message ?>
</div>
</div>
</body>
</html>
<?php
exit();
}
// Configuration de la langue
if (!isset($_SESSION['codeLangue'])) {
afficherMessage("<strong>Paramètre langue absent de la requête!</strong>");
}
$codeLangue = base64_decode($_SESSION['codeLangue']);
$tab_code_langue = ["fr_FR", "en_US"];
if(!in_array($codeLangue, $tab_code_langue)) {
afficherMessage("<strong>Langue inconnue!</strong>");
}
// Définition du titre selon la langue
$title = ($codeLangue == 'en_US') ? "Contest a health record" : "Contester un dossier maladie";
// Vérification des paramètres requis
$requiredParams = [
'codeEntite' => [
'en' => "Entity parameter missing from query!",
'fr' => "Paramètre entité absent de la requête!"
],
'idAdherent' => [
'en' => "Family parameter missing from query!",
'fr' => "Paramètre famille absent de la requête!"
],
'dossier' => [
'en' => "Folder parameter missing from query!",
'fr' => "Paramètre dossier absent de la requête!"
]
];
foreach ($requiredParams as $param => $messages) {
if (!isset($_SESSION[$param])) {
$message = $codeLangue == 'en_US' ? $messages['en'] : $messages['fr'];
afficherMessage("<strong>$message</strong>");
}
}
if (!isset($_POST['motifContestation'])) {
afficherMessage("<strong>Paramètre motif absent de la requête!</strong>");
}
// Récupération des données
$codeSociete = base64_decode($_SESSION['codeEntite']);
$idAdherent = base64_decode($_SESSION['idAdherent']);
$numeroFeuilleMaladie = base64_decode($_SESSION['dossier']);
$motifContestation = $_POST['motifContestation'];
$codeBdd = $codeSociete;
require_once "Modelecards.php";
class Confirmercarte extends Modelecards {
public function existeligne($codeSociete)
{
$sql = 'select id FROM societeuser WHERE (codeSociete=? and actif="1")';
$resultat = $this->executerRequete($sql, array($codeSociete));
return ($resultat->rowCount() > 0);
}
public function existeligneconnexion($codeSociete)
{
$sql = 'select count(0) as nb FROM societeuser WHERE (codeSociete=?);';
$resultat = $this->executerRequete($sql, array($codeSociete))->fetch(PDO::FETCH_ASSOC);
$nb = $resultat['nb'];
return ($nb > 0);
}
public function getTauxPaypal()
{
$sql = 'SELECT tauxVariablePaypal, tauxFixeDevisePaypal
FROM societeusersas LIMIT 1;';
$resultat = $this->executerRequete($sql);
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function viderTablesTemporairesUser($login)
{
$sql = "call viderTablesTemporairesUser_saas(?)";
$this->executerRequete($sql, array($login));
}
public function getResultatRequete($requete)
{
$sql = 'call sp_executer_requete(?)';
$resultat = $this->executerRequeteAdin($sql, array($requete));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getTablesbd()
{
$sql = 'call sp_get_tables_bdd()';
$resultat = $this->executerRequeteAdin($sql);
$donnes = $resultat->fetchAll(PDO::FETCH_ASSOC);
return $donnes;
}
public function describeTable($tableName)
{
$sql = 'call sp_describe_table(?)';
$resultat = $this->executerRequeteAdin($sql, array($tableName));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function geUneBd($codeBdd)
{
$sql = 'CALL sp_une_bd_saas(?);';
$resultat = $this->executerRequete($sql, array($codeBdd));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function feuilleMaladieExiste($codeSociete, $idAdherent, $numeroFeuilleMaladie)
{
$sql = 'select id FROM p_feuillemaladie where (codeSociete=? and idAdherent=? and numeroFeuilleMaladie=?);';
$resultat = $this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie));
return ($resultat->rowCount() > 0);
}
public function feuilleMaladieEncours($codeSociete, $idAdherent, $numeroFeuilleMaladie)
{
$sql = 'select id FROM p_feuillemaladie where (codeSociete=? and idAdherent=? and numeroFeuilleMaladie=? and date(dateSysteme)=curdate());';
$resultat = $this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie));
return ($resultat->rowCount() > 0);
}
public function feuilleContestee($codeSociete, $idAdherent, $numeroFeuilleMaladie)
{
$sql = 'select id FROM p_feuillemaladie where (codeSociete=? and idAdherent=? and numeroFeuilleMaladie=? and contestation="1");';
$resultat = $this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie));
return ($resultat->rowCount() > 0);
}
public function feuilleFacturee($codeSociete, $idAdherent, $numeroFeuilleMaladie)
{
$sql = 'select id FROM p_feuillemaladie where (codeSociete=? and idAdherent=? and numeroFeuilleMaladie=? and facture="1");';
$resultat = $this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie));
return ($resultat->rowCount() > 0);
}
public function contester($codeSociete, $idAdherent, $numeroFeuilleMaladie, $motifContestation)
{
$sql = 'call sp_a_contester_feuille(?, ?, ?, ?)';
$this->executerRequeteAdin($sql, array($codeSociete, $idAdherent, $numeroFeuilleMaladie, $motifContestation));
}
}
// Execution
$validercontestation = new Validercontestation();
$_SESSION['codeBdd'] = $codeBdd;
$bdd = $validercontestation->geUneBd($codeBdd);
if(!$bdd) {
$message = $codeLangue == 'en_US' ? "Entity not found!" : "Entité introuvable!";
afficherMessage("<strong>$message</strong>");
}
$_SESSION['BdName'] = $bdd['BdName'];
$_SESSION['BdLogin'] = $bdd['BdLogin'];
$_SESSION['BdMdp'] = $bdd['BdMdp'];
if($validercontestation->existeligne($codeSociete)) {
$feuilleMaladieExiste = $validercontestation->feuilleMaladieExiste($codeSociete, $idAdherent, $numeroFeuilleMaladie);
if(!$feuilleMaladieExiste) {
$message = $codeLangue == 'en_US' ? "Health file not found!" : "Dossier maladie introuvable!";
afficherMessage("<strong>$message</strong>");
}
$feuilleMaladieEncours = $validercontestation->feuilleMaladieEncours($codeSociete, $idAdherent, $numeroFeuilleMaladie);
if(!$feuilleMaladieEncours) {
$message = $codeLangue == 'en_US' ? "Deadline for appeal has passed!" : "Delai de contestation dépassé!";
afficherMessage("<strong>$message</strong>");
}
$feuilleDejaContestee = $validercontestation->feuilleContestee($codeSociete, $idAdherent, $numeroFeuilleMaladie);
if($feuilleDejaContestee) {
$message = $codeLangue == 'en_US' ? "File already contested!" : "Dossier déjà contesté!";
afficherMessage("<strong>$message</strong>");
}
$feuilleDejaFacturee = $validercontestation->feuilleFacturee($codeSociete, $idAdherent, $numeroFeuilleMaladie);
if($feuilleDejaFacturee) {
$message = $codeLangue == 'en_US' ? "File already invoiced!" : "Dossier déjà facturé!";
afficherMessage("<strong>$message</strong>");
}
$validercontestation->contester($codeSociete, $idAdherent, $numeroFeuilleMaladie, $motifContestation);
$message = $codeLangue == 'en_US'
? "Medical record successfully contested!"
: "Dossier médical contesté avec succès!";
afficherMessage("<strong>$message</strong>", false);
}
?>

946
Cards/Functions.php Normal file
View File

@ -0,0 +1,946 @@
<?php //ICB0 81:0 82:908a ?><?php //002cd
if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199);
?>
HR+cPzW9zVe7SCxztXvWsMXYWC8Y95/jYfoEjRsuJJ76BcucnbI+a3Rclh91H/PLw1dTBUeNHIBF
Fh4piVN0dy6i34RVb9tTQNV175O77gkHug/S/adnr+O0u2JZ2y7WNJJBPVBoiP0dyxXNpChEE/sl
jYQX4uUzF+aTSBOGzRsp7MesOuAfBOuL3qb8rpTrbJDtLNgHNNQb9HfqCpD56nWdyTOqdohQjA3p
hg7gdX7Y2lnrX119cAjMFqKVxE3IzZMjW4U8VgL/C8ChUCrE4pKvyElxF+jhFhyhDvewBQ2/gBaQ
wmaA6hJTzmM5G76laY1fA/hktyZegqsY4O+jnDibYWnQV7B03S9HqGTWW96LiYM8YD9KAwb018vJ
S5Q2m8cxNl4Kk0ahAak3r1m3LE/gGKGcXuLuDi6QtryG57O4IGJphTA5PelyBJwPYMrLPZ777KR0
LlrxvgQLTV3CMrd9AM7pw+jurPLXFq4LsYsOMUfp//DiSxxVrgfWGHBgubUQoafd2b+W4lH42Y5P
U4cWQ8iGJeDGcXrkddvUcyoALpMP4rdjcRu1iWX3V8IZ1AE5ijQUPN6jpWpXNV1ErwHR2cLL++Fb
NeYTnxsvcOKxaUGEd7dfGfm7PlaoYzyfb2j9MVVAGHX3EI5NJ7qbRzesS2VuboxHys4EIWIbKH0f
I5N0xUornDKk71cwuhgCX99do9rTV9uDAnOIVXUlVqkQV9WZHxEnL6bNVxBZO2wNtf2uVAwtJiMr
ES6a8n+PeAKHMyv2jfNge5Mts0xjYE0avhflVYV49j+lAE9VkPoK15DXi4x4fdVV5X/qyEcb8w7D
s9MDnKfRBQ9AB2d75avJY0YpNfAw/nEca0mSunwfVwhweYlp+ebqzPVJPT1ddNdy5ilPWOvjHAvT
ssPkgDQN3towYPnsRGQ+IV/CNpMDlY0pqsxiJF8dCfKw+pEIvxjInECKOKZfUQy3EV/XQ0SQ08NE
TsWVJr3OBg+azSo5WOgItO0qOlyOh/MZ0i+UDRbL5nDvfDsdKiGDfAZ97JFT0aZVOHj9922rKeY9
KfyZweqANu0SOly8QLUfwzged2RDKeoD6TjL8HCoJQh8nzkMk5NSl3wKDfjSz1QwWbrJqLSr/WsB
fALV48DBJ9Sl/x4pnM0r+PddmYgtcvpd97B11wsf6Pv3P273MY394/DN9k6cEi5ElAip77vPN+uv
r1AztjFUNinKo7lXQgjMiXreUhL8lJkGUPn/CCpcebmWcwKKmmrwHzpJckEGe1E5nPS0TEIZMRKj
+1oiyv5Z1sJrmrKkNHUS1a+ssCKaUuUtOKWLKzOIM0hDMkkgpylW9kP8EsCsziai/xFgY88w/apa
fMR7RQfw3DGYFwBzJvj/ZQ0BhC3REU9Xu89cw+pd5lshkE6pyZtKUMVGsgK/Vq40SpKnPG1sFW7v
hr9Hwk8uOIB/ne7KJUBgY7ISnU2oyW9HXwn1abTvo9QZtnBb5/o4JhraxV0mz2phAYYXOhHDJwrQ
hX1YIghTgtY6OZ+tMNOz7mg4+OV3tPdTULBByLWIAU4z10CU7m49xiEcT7vTUyMUgnFWynDrYeA5
nXJ09JVkBbSML73CiBNLR4qnTlgK/+JbAVdCp0Kgda/B8eMvXs9UiP8m2iQF3JuWaZAEAWITZBn7
H+NQtCFH56chNMj6D80TrU/7cGN/8M9Td7pu4XvQO3Oh2nrdNgqbpcCH5ZRcsLVBYjFXoN4fIFdf
0Nv7dbNgIfdP3x1oiglYUKSb8ZTcXqSg++RQgLvp/BLyeTKx4wzFd/sefoJhqETM6lsneKN3hZKg
ZVUNdo2Rm585NlwzOttk8tqKdMzUIpXvPDocN1zIMR/1wyZZsLcnlH4Kr8caj0eKMNrLTvJiPspu
q0rrHgIojLrLIbkRep82HdsqrlwL0SHGUEMRHuA5jNcFtqUBt9ZFKyyrXh/0+Z6FGWIKxPV6gKT+
4c7iS9sb8mX0H5vBUpdsPd9fQY10/eX4N53M8VrShAqbO5aqB1SEzGQNHX2K3yzdJgyLjBDnNoyD
5SiBZ1AXYr8fY8LZo9uD6MWf8PIVn2mLQZJah6w/FMg9sBevKN4roGrqLKgHvzbBLmZ9tbJqI03M
zD8BmD/eOy3//WxmAFMBYKXO7BJErF9VonxUrFUcxBoLsnyZrDeCp+XHHbSi9r71tIZACmMOdO/1
/Do+jo6Kr/TCsN1nZgGKQBB0+1BlBKfOyU2a/xAuegoAwOzVusVEvam01AWG8iK6k+p6teBkZi4G
JmuwxzOl6Td+8WerGQs9naZh20f4/o0nH6d3FQMleSMO6LghIUkIbJg7AhuktlDy2qzwiqyctFAm
C0640vIxVegVt9bGbYuZUiyj3/FQdXqNNhT5W1OTr0LrMH7vOOYABdum5YS113ZqUQllNle8+g2L
aMZG6K+qKVFvJ3dj6uNxXn7XlfbuBHCvu2+zhT1QLeWPGOPJtNwafL9QtV/RnsyDZwLUKEcrByWA
6OV/P8AN/1I8LgBaLrI3J9RwHp+vnTXo+tzRr/E9gqWB02mDmSdntzC9mePtYnigncoGsPANou7B
blXgZVCHcOm4/By800/wMYvgrdxYIY/zYA422eBXUKhjM8hvFyI9QtDWWb7jnezpdga6/jO7kmP0
HbyUkg4BswN/Ydw0Oaom19nuq5LNM5VAzI0movRZePG0GXTYW1Z8cJHVvMNiG9ftmHhYUlnOh1Il
YmXrcfGXG8DsEM1OQ5XXcwgx0kMUijtkjsh6Ty4Ow4FmIjarzYvL15KAPsmmwZf7Lj0Xr3i0+iRp
MEOMtvG/kicwhDshKtgHQ2XLS9Stro4pMZ7UeKgeQp0zfsKtQIkNn1nkPTLIN/0Jd0R7JpKCd1Fk
zLh/7OnwYCH0YOGKSs0/vp6Y98VFuxuS8zZgj8XzLVJsY3MyPfgDoD3GI9dfMspm4qh8EwaoqXZu
d71R758aP89SdNPCwha2ahcwnvvDRMU8vpqddFLHm3UQJ7hj7sva6X9VSu6jcq3H/2i9oEDqS1wE
GqjEUcIed0BwDsNRnQe7K0M638NV35lnZkqNxl3X3jO24lzxHVSNU38ovmw4AGtVaAIZRgyUR3W3
+fmqSPAqxO1YvYT1/2Q2FjtE3+WOlIIjd+T8W8jk+ojWN4KA4C/mj1p3I/Yp7+t98etxPoe2/37L
rn438fcQWwX/RGjV87LAjUVS2wYGckU/P/LPPKrMo7g1dBEcB9/9LjFlPz5tk50sgchinZzXdzC9
ClQDsiyMZyQYB/5gRMJEbK6g6KqfoQDeHAmMilCgfYE3oRlpE7kLEQ9afDg96ZWPx5KeGO4wuMxh
cN/WyxJDMfpXwY3wWPcRKAoSw+1qs0xf3pEiEk+9OGIHr24/fqNdDjR7++Ge54HHtxTc1nuTNkp6
LmZQI/zcGyrNIHhiAvMz2YX2mDpZsFnu2sOH+t5acYt8qkIGagp9ZBI5yFGVcuraVPU+99R39BuH
7ijMsDXE04CnoKtCsdeCFs+6N1ox3UuVEcuQApNr6f1+8J4VCNgcTyzLZGSlkcZg3xBfE9JjVn5G
fcswzuoIUGmsGDpJwwZc8nVZ2kYRiQVDvLzEO70CTKgHv4VLdkRFybAKIG0OuqJWlJJXojFuakp1
JYDVUXRlyXwpeNnJcGH1JgVveawwOUcwIe0xgc9URPIFlpTXr7vdlR/cQLpiCSRMg2D6EbHDfgPk
k8Qv6Fm4n/0VG0EkebnFbq3XyGLnKH0FgRRfwZQeccw0JNGziGaLhIbfGxJxb0XaqVVQu8C8EDk0
HrLKYHSxKWOga3PBcSUkH98G4la0sM9DPfHsxNZS793EBnNbBFaUVW93m3XaEMU5jLRjTK11Gr05
rirtwrMc0QFpfMxzjWYy9wsZHsGHzSU/I/4C5OjNBzMR21mZovBP0ZhAlCoKGAQXWS3Y8fZV+CNS
nqfWZpvMsRwkXeWHCgoSp4vor7vjSp1febwD46lk7Dq1IOWmFrrvN+QWug1e1L5KXSjwx06XfEou
I0dFw30wQF7MdbE9Hyq3pofr8FTNRKeSQMVClLp4GF06+DSnURQx0HSWo8vBdtKDJwCs/DpvKfD/
gqrcKVUCeyEcKmifJC+MuiOh9UGM925cTQnaGzToi3HRUD7lE7b9ChD+kzjlVF5g8wDnrPizCTf9
seBN38uSBp15rZiw+UzmfAaUTIIwCL6lnF31IkiLxNF/ZKUh8GMXZlUCUpuxFeb97nIEsAi6V4e7
3T/IskGUW04NofmZHspg9iPbMGvNbgo5dGG3ny2p5bV7Fh8ly5K8lKvBqSoItRPq2zMCDquuJTs7
qEdSBv+g0CfzR1l1tCJUp/WN9rp9ccmLhrpFVRlmHkp9uYoxnD9kADf87q82SxWp4b1JG4BHgKcQ
0FlLQsJnN2WGpialWdNnqQ68RDk5SniQA0fRRapPqDwa1PZ1Lx/j+Jbx12cuX2kSFvTd/r2LIguL
klFgKyXm7KHM3IQ8JKoOf2q53Dwwih43JpDME8nHYH2uwuF2URIvuI5/HRPO4eFPYeiVtUCA6YPO
uk8zwfeDktCo2qRUjx+No5y5TdANQLGzaaCLdtcVwIlhs2butQOjzRZrDBJc61eNWIiinAH7baJC
Kx7RhZte2CLPHxbEoibCwTVpig+G9PDNkY96gKcvbNw0hLlSUWzqg8NQVjeOhj/BqcHx0dIxe4Ea
Kz3kIvCQDi008JWju81uQOT4TSJ3Fmd3+wGFYaQeNz290fJev2HY7VCoB4P1oseBwhp0lXlvPt/e
X6nkjHhDgRa5g7aKzKsctpVcmBtj5qN/+Fs3FvkD0mWKTC0ackuGUcz+1b2C9hym4xX0nsNhQxl2
RjPqaysvojjcYaaVK+LgzCVgvJbPH96wDrwPQoT3jF+A2V15Y+8xNPRlXCAnrp8df7oYUjJjW1Mr
M3rOMTZ+DQQls2E08y+l/bAPAkf31Rc0fKrH/S3WPdvWKwIzhrLRfuIpWrvh3jgoZU8iT6xEYImA
QQxP3SLtbHhf+SuhbSYxaNV3JFww4s1vuueUqclx5AbE7icaZPJ5NNbXDTG6+yOldcCbx/sptx54
2Jw1ZomvHLp5wpGKX/u9q1mMHWftvazILmA2cRB3Y/Ev1qtwTyIFaeGnhfTTvFBj7H1VO/zTkOTF
UsmsVTjE4Zuf6YLh+13AXxuDG9UdXdobz8PLvzxzNoQYp29NN+81Tqenb3c7cHjn+Kh92C4g7piB
9HcBCt0D4oc/zEyZ0YnyT0g6uLH5sUbK/IIyJwRe6u0qJXkXeb7ki1JCVwOSgQHGBVw7GFaRMaut
g9vapV4LphjdTpaZN6LJ8pT2S27qJPeuzarlcfGP41k1Ebh62XsmJiGVVIAgEHuFflt8OxJvPM4h
+nhhNmQkPfbELBaWmaILZJwf0YH7vEPDXJlfMP92064kcKEWEn5YSn7W6Nv9MigpEa/f5HrW8lOU
dnokuoKxZrh8YF4D22rWcHzrNVuXqPuH53V6zjL7He6ev0bJIDfzxbg5b+NPaI8NwlUU6Vdv+1vV
egVu80P2aWMTghzXGn/oRn/BRYoo2X/qSMQEsCvO1mcsk7olSozu4lD6t1DkTSkfoFzsPRZJzCRi
BRFh4kD1N/wNnU2BKMClV6laSQiSOQnkbixwcP2gTRv0SbsKpCoTdIDewBIR0zmSDUWfwaqr1zx7
OQbIYC5Gxw2iuJsthXmCHm7lKbTHB2gql5nEPAEjtLWfN6gtPswz+0QTsvrgpoUbpQo2tWchAhit
5SGMw6t85OYNzAG7Lt+ookRaHmIAn/UDkqFyFJ0rLEcqPJwIw+P2koR39I5QlZEe+xtVuNwZzcR/
Isb/WW+iutcWlW3a6vWiDVwnsF+T0P7ysEAj+ErfkFAazMWQu4Xp6iuvyMwTU+goL/pzgPnrhKi+
vVhNfdxjg9kKDPWrh0BPm9KZZbhTRV64NX9HDVXKMorOh7xJ1pRfZesAEY2dyUkrVK+kn/nvrVU4
7lJ8B023AwIhXDgC18j/UvxpFRl+Pb5NRNmXGY9J4cKbikiYRYtZS1arVKp5VweiOAuGvxiuMw23
LkFq38sj+0PLQNZqYx0kRRS9ee022kYBW+g3hrYGZ9V/xOHyXHqkVsytVOY2YRQH/O4V6vZwzdz5
CmEHbuKC41j+mOBO+Rz1LVSVJAkNPjT4M/QsUAXXa4y/py6QlLveaDnNx1qWxP+5kwY6KBFej1vN
5WPpfPNNPXv93Dp6GvqjPqj/X9bRqWJz3ZcYcQSZ4CDI6vVoivCUVrqxmxIkEsfghFws74G++D0P
f2GtSEfnF+CfOU1lT878wbBy0zviPJzaKqU+7nLvYZtXlumh7GsqtDrn0z+q74kkD5sWJY9d5cBd
uXsgj3BMOye43C5znI2rS1LVxkSFWl2IKfsOjLSB5e2wRGUbMAOZfu+NXrrALY92GbLJ4/mXWpy+
SDLfOfGT4XKJKL/8aKHMWLQ5SEB1rCQqpQqZge3NX+oQyWd/+HakoK4t+HjSY6x/nOh4rnMtWp2D
B4RzdruFdaK8XI7P6QOL1bh8NbiI2lHaZEtEd0J1T+Nx6wx3DIrsHEdQl/k7Fs89dHT0VsuAPnoE
rz+y2HVK4wdXhrZ2iNG6YCoDCxca4tnuch1Jcnrh6L5Ib6ut8xDcPB9faGgAy/f+t0hY8d4QtoZK
YZljwmfaCN64vTZc108YOL0iMArMkR6lyHtC0LMAtnrtFdmqdsCfvLp5omSVsKUIoj5rZmWZO5Y/
MEa8P/xFcyz1zR6zX4iYBaE7RvHCauhWE7JZpVXnhokK5aUQ5x3/TeKXVijXJLzeFqgbjetVj+FL
hfWFlbCrJWfGk4s5tKHM2JQYxvpaa0n/4u1WuI4egPtCxXPbIWd/dJvAP7UK6xDLjiSojaU5UQiG
wxANO5PXmcvfPPXBpn8kPkhbSyUyKOu0IjHfNFJoxaiQIgRkWgsoniYB4P3hm5obECt5U+mPtf6C
9dDlBnaxw5rQ7JKToqb1oJFCDKYum69H1UHMYEwzx9hR5c/dEPix6rOi/XEroRyMxtY2akyG+sHd
Y+ITC3hhtIo4DBP3II7X93ugT1VIxgG71h6PHWN/5SR/LuSnB4E5+tPrHDGw9jk0XtFqWD6ECQJZ
OrwfdA2/FSd0cqZYpuSjWV98vQPaG4R3odGlTFUerK2LND75MIHz7rSU4ik2DONB6XUDkMjpAdf5
MhgzhWr6Z73kNLzWWVLO73+j8h/cq5suf8kTBAJWADSAzG5sZ1Mp7520DQJL8G+YxfzfEuBT58s3
xy9GLvma99vmjqC9zCI/D6fBhR/TjR3qbqCMNIaZ90r9WaUGDxRn85HzYIhETd68wvslCfz4hWm0
EB/prGiEfp8C1v/xLR5UnnuZYMqtQoBYJ/oJxiM0iYLAWrtJ0XEaAyjY9TJOi91FHVclAqPep/H5
Z4z8mRqKLnKDdyNBs85alh5FFIssBh1Ukrxvoj+yhKauDGbUfPSJX90wCKahDiQPzqa6CUnDVK1R
yrNy1cV0Bmizbz5hklUeXXCGLKC3MJDSyvALASN1hOw4dwDN+tBKmJedLBb2UjFQM6Ifkf+PTYn1
M6BOPz9nC/yS2UWuTdlmwYMaRf0K4linISBbOT5J+szg2FneGYYcymD9W/p/sB/t8tA+/Gh0Skb2
yodeIkh8cr+/c6YlwuUf0wfcYxfnUrVTqafiuOPNQzmjn8UpoFwiTcAD+pQySCJrud2HwynSqAta
6eaXFiy9EfDRmxavPO4Cuz8ZKe81RXZr+Nq4Cyx2S6QM6zbnkkzo79/DxfjJNEB5N+S2SYXXEUpV
auObdlc8Xa3VoenWe8GB7NlrzxvP4bP1Ovwo0CjZi9kk1RRE1YA8SI+ORKUkk21VDMNrXqOSBjWo
BpeTjoG1f2nzAZXJFluqVX36tHozJchJGpM1uZKRAMzWxtoOVk2LK0JUm8gsgrFkEgyt6TUng3UW
cBshZyK/Sfml/vFwyRAWQC2b76OPRfP/LOXkMAG0VG5atW6XvzP3XXm1y2d1vvhozJ+i7sqhPgaQ
PbmtqDjLGGJywqdX6wo3WwqFzXzp1QWm09I1Exy270lSnkz5rBowdJ8/LwEv9YLHdzIC/yaq6S+o
HwiWiZyql3BBJfsHvV31PArJYx4eVNwyrfH+0A6yWe0MPTzfuLBFxmGkRDSBaAaxE0DRFuubyudp
E3vnQ3jmX9jHPhzxHuRz0hxfqbzi/HgHeQBC4XTK//Dj3xRBl76MM7ziE0me7KSSHIetqzErXvKl
6rxibaXf73OF5jWrd7FsOZFYUVHu0Ba2X+U3UxH0/0RVlog5DrTgk9rtgalLR/RnutH2+2jsoKoe
Q2P4Krjr9Xngd4rYANs85GzXJBFrtJE/U9dqswdW7mG3ACM5O/VsQLIThlouo5gIl0Nw1qj2IWyB
6F3vvo6cXIzfyWCL8iL9u6sgZyIv2vOU2sqHx1Lq4fU2GMb2AEAwX36P8Dyk3R+oj1zdUgd0OuRD
ce3abxIqUK4Zlg/z75I3qrGgWFfoUoCZ/Fx+Xk/T7NJZ0KANWH9ObQDqKXmPNSpIVlJ2kGfyPvDZ
l8zj8lJJFS5dR9KnmhFcxg5Xq/xQJ2acE+1X/wsnIjMxI08+yqfQ+8c58Rfoo3VJ5hpsaSgqxM5I
vDJ2syeIVqLgdqJnsR6978dvObSTNfRN/SPVBOWPcaY+iLqu5Wl5DXy2NPF5REvHvls9Ctrq6BF+
4rpVIX2D+mkKQmI24IYhIm60wiJt6/sHrSLYi9LlX/uT+HH9tEQpP5lhj5KPzykEKbcE5SCqPlEK
sTOilMJUz2tO352EOVypEG4A/IjdPPsoVanghk7mODCt2R2WEGnQYyFKLT35RTAqRlyrGOpEBPP2
JmKkHcijxfJnZs3ruX3iB8mzZDYJtF8EMafapXVgaYscqaplhb9/QbBkwedTdBWLTwU3HqPkYa//
V35rI+ROfotGOCc41zCx62O8n/zhr46/sL56RvY7AI9opsp0dGm40Ml0tYQdW+9BAKBWbHs2MEho
/DMMjEX8XmJTdxNKwyCTXByRPVJAZMUGNEL5JSyFZS1+87tKYCE65AMEqi6kaEeU5m4zB8BwDYez
V7rtDSRKlzBvGP5Cja6i3AqfACfynqZkbznQ8D26xQbqZJd7LuXVnyHEec3XmftAsjYSSIfFgN5u
EC9jsWxgpwXhdEqQ8+feCGrCnLOvW60IL+ZX/cJJX0CK6FR07bAPKMNccM+cwjgN5A3sI5QbTXVX
p+geY9F0e8z58div68rsgREBnnz2Ed6zCpDuMabuulEUvZ3DEFPRtlP+/YI3JAF9e476QkNtcQwV
WXTCfVTb7aMlW7Zz/REYYobIy10eEWzE77c1cTepk0LRYI1KoRWXtTIhX/QYchuUjKTkpY2Eaq9r
yuZIyQ6Gy2O3IvQv2Eqs3pBNWColiJPZrzkvvBcuXlgY93Y0ZTO7XytyhT9Nqe91VjZYLQTiAYbs
mdr84hwqJKOgUwnebZJMJKdQ3YExpnGAtGNNDFwSckcqZEOxHKtdEF/DdY+v01HauLwocDAGCHz2
O34e9ShADxkKKZkAmxvLVxuBDHfO9Bhie38fXU9jDr6XGwZreBW9JtGAoF5EJ+WP3ogQnGeJqn9k
J/qe/xM78MDQD8ICZ3Q4nPW0SwTXLXwb/DdOdywCNGG6g3Sso2nUwt7VfX5PN35Xv4Gp2bycGB78
P2JfWUWQslSY4BKDvkWN5Ys5HNT96UctxbA0lkZDL6u8MFl3axoQ5keKurx/MSifQITcTtwIVjkf
gweNQxzwZLogQD93TRb7jrkgy9QHos4ICOA/EJJue0I1aK8++TKbxmTauSG/vo3e3Ojg16nvWf0J
YJJrwcktrideCrwGuAYOKHxXo6vnLyAnXLe/GRlKUp9bm+mvAVIo4OtGL9Bdwsr8NAhlRg51AKUH
OrCfjo6CwS2KT7lG2h22OBgWFwn1EB3IYrag34cmf7l/ogKdG8N/rEoO9F1CZ3ydCXEr3SHeKw8d
UmoHAJbjxCCENOi3j9tkX4gm6nDFJ33+laLmirL6Ub5b8LrtKqN5bgp5P0vrLnRm+l1EIiZmAgJD
b8HaH8RIHQ2KZ85j/HPCuxn9Vt72ot9Vzp2/ULnt57mZXGoSH4wvpRU3U3z2gzG039DPtLGkySJZ
o9mr+za++8aD+arXU2329/b8a3snVK9OIKSSptaQgmANZX/OOb1EFpsSkbwgWn0x3yqHj6B+H5eY
dNvegOz5OP/LIM4NCcWryIPcN4IrfrmBf4hWg4zNpvD2GAG/OfseEfOhunf4uWrItms/WxFdH5Pt
x8nX6TS0OYrYgUFzXAnzzPz0Xc1+PJD3MBibEfH/hSP2vln9z1+0gBWzi0PtuN7z3wfQxDphEH93
7xNv7mFDMVYFPuoiBcR/wFMudU+P9jIskW9zxp6wUPvRcBDaxCugpFUoht+0whMk3x90pTpBOwx8
X9BM/qmwLa7/CJ/lNcBioQQvAbXhgSnwtpNotnnAAmsvxOYngL0pHWWCKOtCCCmH7eAM6tnqSqOX
JxdICPJwxuVQ0YLCNJAQbp4mJvt3UiGPI9HCe/GdHqLcGv56r1oxOK5qKV9BjyOkTPc3EIUWSmFi
UnCnr9e9lYThCKG0IFqpSxBLzzv4/pZhWx2GtxMWeY67bRi7/vfQXL0LsbSO/hI8ewOhO0QttCBq
r2OqzPgHSHtW3QcDbZQxcSOWKflIiIIo9YdmVRCxryBavZ3UxgJuAGjOltf8M2QwzwcbC/W75c75
8s6T1sShpzDCl2RA4trxLpgae3snbOmEsbE0oCo5CY3UNWrXKyVSpoQ9pYqOMjIefMuc+PbiwM59
U259oczZoFpoXLzLZYs89EADmJSso2XfE4uogWzKTTkAPWvVMRjz0gkgy7h/aK6eXkL++TvbeDoS
IOwDRgCnCm5QlkipGTWNQSMt4wKPyV1DzVHF7K79xtdCaidZuLpQrC9XSh57yGZ/xDm6QSXlO9Bq
fZlokJM2p0TDKE3Pu4zI0bLQgXYArP/YJ/VYvWxgqjo6xj3zEKifrlxLU6cnurLSnomdnRoUVgwD
Tus9jp61ooOXYRhZx+gKPyrnSE+glEvz4MOeYJA7KRketELOCPl99Zyl6PKPvZqDqQomKaE92jdn
WXKaGkDV2kcpvy5ahwurHgWLQWnbW4GQRyVf9Tqlc6bwQ50aqRwfsjJcnsVelsTE0dD5a13jcvVx
7nQrrqLLqiH7AtyExyLRYnXIjHPRd9sbbUDAT6igZT6qmSi4KlxBR9by0Fqg+af3CJq1AOg7xr0j
o1tE9GDd+L97ZFwUVc2pLGlwiD0kqP5+AnMBoYqMkxasasl2SCzkd1C9Ew1I6P0e36UP3ZjpxnnV
VGxRBOW3UqFdCU6geWage5PuuqVEZVVbaDUgk+ltb4FTtcooCfSe0LQrl7IoQ87tmvz8ixLotzHQ
VMsR5AyMBJb88v5OIyYqARfUcvKnczYQkYyz38TP36fPAA4OFUrQeMfiAIh2HsYcsRC+3K7yoVqF
UOVLDg1Laypb4XujyaesuWd2a4Wz91gJTbkOhKEPS7PjI77BfRLD9eGWNHO2pQaoVnD3Iup4wfh9
986ncvdytSM/MsPLWXRFqMh+VME6LPz6qin3cVxi+cmTbFDkUWCVk6DyEeRWeq3P/sgB6JHVCM1R
CGaIY97IaS1q4gAZQQ53jsr93lh85C0E1S2uK6Bqykhv5ME2axQmCt7L2gUQy2aiJmKI1UASk1XA
NRdZUE9w7OHx3c0BdYFbOAh9uWOcgEPgR6Z6K2GcbeWXNckG17WXhgXsqAgw7NyudXl3/Y8Ke8SR
iqXWwJ1zTIUYsvewpQm/Y94V9rZfXMU7DU0EffjVppVE86GpLfmgEpDZe7HDJxvefiarQA6BiN7F
sJCgVk/5JlVSOFpg/7a8qUXGApQPpS9z0jtaJNOwK3949v6ZIPPaX8Ym2prFDPVqkBTRsCnkW+l3
ZDzxK+plwJ2YaOLUy+E3EbvEoqqu98xX/kz5DznARa+Kq5ssnH/6RDCKH2hZLuA3JWgVUEr7x5w4
sPra3HfHKVLxqWCoFa4mns3pQ7aCt0h6d1KbKXdAGerY15VTrfww4DFpU5iRQr0ltxReVHCBfZgi
jYbKO1QVo54L6f3XfVz0t23vJFJg1bHzGCbE9ZXyEM0SWpKXwIP37SFJzxqn8MKOfn5LZmQm6fNm
9IJy/nH3CwA4C45sSVvOYNGxoVy1GJv+KlviBi7mOeRJI2pbEo851xd7tf+pYaqe282uOqf/tvl8
8LLKQzM0npFgT5pbV/o4bQDBtF/Zw52HgvEbN71wAljkw4leRLhDUd71IYsZ6UC+aRwdlhj4c/pi
xyeTpFFC0PfrJw/rnD3Ije4RR1MOk3SC1jPXqyLFiFvrRCFb8vNpqlSF7gHsbNqRrHOXqQHj7A6s
U+zshHndwVRL/+ixyFD3t8/BBSZ45wa2iu0s0I8Y0Rdz6/wGY1bretEBvm1DWd4WDVGEdiefTdTY
RCX19UlESb1SG2HRvEDXOCwbdlh/nbaDNg5K4ajxEpAIdlCcLYPWIs9ZY0QZtX5/9DlrmICtWXgq
cjzFJ9Tn98tYhKq5l53ny7zhDBZQeolrl+3zSdN19qJy51ORviF7ShVXBaj4S9S5QPD3T4arsNFr
VyDIxoceAxSCaCXNmikdkbGqhonHk0lNAeCJva1gZPkzL+h650cxnG8+R/8/UgUU5OqpDXVi8c59
yWjH1+tnL8eDd2dOJnyHOUnR+Ikk2+GKLZ3IPXiSMjbc3sWifO2fZem4FHTLouB4TJ8cUMRmqBM6
DbIENivrU8xWPgjnKYepcqaHKAK7bkY7LEw6CZFbHB2ZSOHYwoxiKhr2sI52ZeyPHCj7O5B2cpfZ
PBLGIcA4/LGBvCCerh1rkIAvYGUc1IZXwcZLj3WG9P51ZxdYHVn3dyvJzvT/RsfgMZFtp0qtpAb9
6q/BMvsU5RSHlmCdIHmrwkbhkRfEvhjAYpijKCeGrY16LFlBkS9QH8Cbz3h3p3zqgFMLNK6N/1jV
kMTfrngztfsGvz6LBfNQ4ONFs2Vhe667nMsVNtIaiWq3+fSQGkeOrJltNqDHJdsPnaVw1xbGevVc
GJ73j+zafDatsczwD6LrfYCq8+hnlMbentgothgtymOs1VGLr+OFQIYkm0Hf2+SsQvzg3iMaBhhG
UkhDnJP13qPO46gmjCAd6PRRPV8cCPyz+fZL3OF5eazB9LoqdE1d4ROCwkZfwG94ti9lOSRVEKo3
SmHBCIaHDm7h7OrGrK2hdPkaAshBQxJfcBTsS2ycAbNot2fUXAiJHSAjNCqzgsH9qQPdp1INwJRs
9gM0HiWk2F5Rp8TxKaLB3NkJ4vQc0nK8iInr04y0T2MI4+xjRmd/t3PZ9j8FKcm0ru00d0x0kkeQ
cd7PdXcH+vzEOJ4DLJfLlobmEeWi83P1vvbiTf6pUIwa3AG9rKdPGtVdcQ10cLzozi3LeKUpT81Y
1xrsBMFA7Y+Yu8VBP11by7Q5tUMwVSTpAywYQN+50KPnW6a2/wJSTPZ8H4AC7Xvuzj2TY5TcU+BN
Ylz+ULSjtxHvHzxdaOhCbOjGQsz+994TNBLbJJgBPeUCEmvUEqpXrHAoXQKB83jiODWEdoywR8p9
28BZ1hkAaytFJDyfS3MGRhzfU11ZxeUwt+yPx+i6pCGem258an2T3R+UiW6lsEkbOmo8+etg6Esh
hUOS8FKt0Gx+wUJLwh6jduweHId8amu6MDuMkgjeU5/48rLIyoakKXfUoeNPnQgEl2ZOirAACm1G
k1Ez0YL68WWjIFVhsfeqAWwk6Rm+f9IlwER5FffZo+25yGk42cITe2sTZjpHjGKkpQp3rTtB+uo+
WS0ga6ztEVGYOigyHOcOSYxXZeMr2BZXtL6GENqkQBBHR2sVWbtlWbtxpA6jBYQH2DlUivqtnNf9
oFMkCOXTHkgB/HpvPxbe7jWrvL7abpaL4q1pktg8hih6vojTMqU393etDaJFFuVrC/US7b1qpfNK
+K34ubf/lmh54A35ppO46RmGa5UbAnIptVN2LzFjXWplu/vHCMEwFXfvZ+whEnLKhA7M7xE/2ys0
2siBRii2batxoB2XBnVuuuGH+fTwiDqm7DRQBkZpyPFpDLGb7vIu2TNgS1bEXJdls2TVXj3Kl9cN
jMLShbEqRux8HQCaHNqJagoqG/Na7VxeaIA1+1Y2gp1Crx0FA/nL28RICr1WxlD5c5RWeuvbQyiC
P3yzZGOnNl0d8P5XMrL1wvpH6HjrodlBrIFvkPyiivskYmu6uX5uP6G6VRJQ/ez7PP3LHuFhxeJy
yZcUDkTEj20x4tW7XdzMdyPlQlaSXj65tU47xSBr1tVpDsZiHMdSpFRM+f4LV4fLMJRwouF4X3dI
+M1tfRzFGDM9DgHxC+fqsYa20fEnaZbnYJ+UOH/SGy8s3yQXFRTevijeYHPxpRLZ6lqV02T69Ibn
YhWsZwq5LupE+vblWFfVkKWDuVK5IQOEEnO1mLXMJve3P5WJwVSAuzc7/Y4OXjlwps4eClsFR/pr
oq1ejRi0yIoGwpx7FdgC9WGh7H+Wd4BqsUylGX5JfJDdyUajM+FnioMfIXu6hImc2e/2lvG+IUHz
mvM6a4CnRQqqdjwFOcsxZTfz1hmlFe7gcP0uZrWnVhexMNHoeWP9zRW0ebXfO5EPKgWMASWp8hJB
vBpf27yEoXtxBgxS3hSguAPyxr+XlKQCIIHAnrfG8hf9sBUJIohIGQlsNm/eLK1tXpUDEyuiMvr4
5HTRIkS0OoxR0xTNyglwnYPbEpD4ZmI5wYe9OyiHWUozp9ifVFC67RyN1NSO0ofWUmgirBJZKvlK
sojJdBHi5/dgOM8Zbznwvgj0LvmPgLina5dOLdp2jiEB3xRGvx7wuWuAUSxpLL+VRQ97sgJCmF+Q
xhvVkXNPZRvDYf8ObF1QO37DD2kfRRmHwozZN/uXB6osqwWa8ib14OK103KZo3ZQdGh05NliSI7h
SVJvFIB+FrbwZMI6j060hR1WGbRu9fWEM2Wkx8DCRNBa92a+unAid4zYriJIYI+w9NXQ5Mufye8Y
WR8k8YvaHntkFYDN+0aDbPrvE9Imyd+tJEvR8jchORLib8ZK3kpzW6ab+u908ofNBKka6vHm2B7v
b3s7PQvR64/JXCkgjwmtst+7VmC7LPMV94u5HDYvzJIEvrBrmZKG6lLiGL3XJXwltnYVfIDO9bVi
TZv3Xwx8jhhBx3SAVG+ayotLZn2oSNmUNGJkCWPQnkXAj4+A4woDd+QUu6Al4SKLplA99dYWIocu
IY9NkXQ3bJWJZRgiTiV6Hjy41mhQqHlO5XYCkXdS/e9mhMUU47btv1zSK0jTC61f7GFBKKnd9c3x
QsEB432YtHXQ/18+wasjtfg5GAr67Hle+YpKCGD9mGBvTzNjhYfqGfKV+cS24OxOhXQF2bpfwVAe
SrAVOgA/dyQy+vbmjl4jOiaX/Uvtc+1Jugzu6WqJEIuNUBcUUC7Rwr98YLq6dwH7aKlPzjDs/x7W
k68Wp5e1D5pat43Ts04cLthZgsCiSyYtc6LGHf68rriNZMzDOJOi1YIlvEzYnepDLS+5yzspVKEE
E0LPN/G1gLurj3jIomJ23uSNNo9lNJPD9Momph+Pdkknnerlw9lo3EWa/OKkTXEQG7euZxv0SRj3
f0EQO5C7qKxzpv8q3Cjwf8AKWDCmzQe1tAHU5ZrJXKNQHh7nigFvO0aUiBHak4/EZSwtrX3gaa5q
A7IjjhmVXEpN0Y6i72qfHoQnjBY7KfWZRRNty5AyItBmx3HINK6TvAhpQxjabYokGOoJ3HE5kgVI
dgAQ0ssR06X+rFXYWildA7QiSXi+BPuq3qp/YUU39RyTz0ff0MUSL7L+s1L81ODOfwrEltmQVkoq
IrEFOaNaixnwnLdq/EV1Ud3w4qiBfaa9q3YtALoe4nf7vWPQ4rbij/6kSI4jQGOjnilQFLQvMCLf
L1Qz4ZBocmDaniwHFPNHuDgzxvoZDh6RlR9vBEjl3eI+sRYM5+DnBPj53x9HyEIjebkWxucErJFR
JSEKI/c8tlRdF/kAYAfRAeu90F3QaQPTYYDCcRHcnp5szJuJbq5zFRBFhjLTiPEwO8BLy2V7YvaW
f4z6LyhGErg3T+/XPDp3+CEk+YXPCq+g5cgmM6nytqa84+ldUBrpqpOorfkLdHSBEPpqfDkB5V+U
TI7h9fTjshAthZCcldLkDGrq7TVjyUQxVhxWqw+O20yoqnTRWrKGuLRdR5E6L6JoNYu5mfZAQyze
gsmETWurXzcEcvv1PMfmKl6ExWoaYIc/5RoxHBKYFPnWiyAOeRPR3jhYRCsCbLaTX2a9kw+AaY8c
N76M/EF1I+gQHdHEEH1OXuLf7EDH9KTlLxjvUhFMOhWMrx4el1Wn57Q38YWTs8Fh2FGEZ8EOphOf
RYbLiLyaBnYCoh3CIHumbl0vpU0zcqevs1eohJHpgSkxEmrGBdHPpGHTQ7NYTXEWORwZMImANZBQ
9mM4ub34ZTP/ptdPNCGpgDkCHcsZqSyAxTiRwpwSEpjVKn1Y3UJB+2pEt0EOaiH6/MU/4zljeqgN
XRY+xMUxU2yHvS5sPKuujO2vudsCsUPlBH+4XivcpVkNAQ4eTVxmPDRoNBPHDvSvs8VNveWN4rjr
WKVLJ7r1qWfjwBCn3vDBk5olai/r2K13sHd/3Smaguy5DF/aVhVwgGplB5QkdfnZaG8fZRfkgupL
N/gFmjUMw0K1b0ZM3YxtQEGrg7zOOrtGRegwHfltiwE+ScaEM7DZNSYvrNKgGJresKr/8aSbDT4Q
qatyxZzZ7/u5gE5S7ZZmrG/S79MuXuzU/bX88ZCtjIO20BQRZoGJvh49ugNdLWCSnp0jwYeU8Qd4
BJJ/29skZYr4b2ru0GXtZl+EKyXxIgT1dLDrxHAZGIHvj0+Gl7VAw8WYtSypeVlFu4kzZQR6tjqa
4hn9amDBwEbgvhJqBwVHByW1DzpNBK9X/+sCDfCgzjF0ujMluTZw+4nIppPhXk3DJElyrW3PkBFL
IWH7ApOCoRhS07dw0WXgFq6ECXKWNfWFRfllfsyZ/22C4vD1EItt8Mv+ty3FNrTumZFoIBy4Arlg
bqi4MpwFAAckRXUp8BOUu+bCpiexhVc2hnAEnpkPO/+GsIO3AydXDQ6Pb9QONMhS2hswpIwqv4Y3
DBH5e2lUM7AR3bTpAw28r2tW0jrDWPxZvqRyQ0At8HwOAiFWfzyauVYm2v4W93VwI/UGu2aNIrk+
0mEUjH610txWIODBSyxymqfkfTNscJKIw7JyPH43LAd6Px7xbDcZNuS6PksCvOVl0CPDunFapj7A
y/99cIn0k29GwQfwa4MaMK7nJmiegRM4vfsvfZxBf6toz8JPBIu7pOoeXUsSZ/33+1eGNb9cHKSS
ApgYzAOm9i7RJEhC87ZS6B+gvLcL//1yH8NaS0TaxE7Te7XCPyLL/6QxJQSk4XU6Hl9X/0ImPsde
97djhXeFFeYZn1Kn2X8UJrpXY8GKGCMvgtatBhbpFv3NkCQWRbLUxnz4MjsOzqnefKaDe/efojJP
48Yj0a9Wa2fjKor85CYeN8F1SrEMMhM1DK6+Xo1zGzg3iHotuAGk6enadyTTZ9D9QLt/oEaKIr2w
8w3aysaHmj9356q25nYLzJOYoD6zqFo+7zveeD8zKqsz+FUVuJA4bFQu/h/NfA22v+tdL2dTO2Sw
Vg1PcHwqHTAulWM5pMQHbTC+R2QIEQJeCzOp2PIgix9CnO1Md80XCsxDVTGe0DGUb64rJHYCmgb2
NDnzVjJ6NCqW2SwZlCfgzFJlnAdhXTbLRvJCV/qQ+pS6eCoicozdfMO/KXjZ63VX/iDEuOpv9jXc
0SrJc7MWuJ8oW4bsqCDYVJWZ05QPWltiLDyugC9pB2Nw1dsNG5wmwUNVxa0kUbz+jmc7efi3V9WY
caHr1POo05Kit/g8u55rNdvp5SWoNqWrZzuheM6cbz6J1cab/QxITOpIQCEtdnlw6g7zo89U38IM
sQ7R2TGrIOO2yxteJDWiDpjZ1BdvO6LTgutuWmyEKwFOWmuGZFf0qTimdPYZgc+n5b4FcVOurecI
MbHtmx7UaVR8jxWTzPUED3KlOgzpkb1j9sp7Vs0t26sNlIvYO+QC1ATJVGsU26ywiq/9mwsAMxur
p/4Amvnd0WF+GGwRjqsxjFD61EUPryzDjeeNgMz44Wyl0z2Y7Td9QRwbuQPCwEOpI8+NH1FLongK
gTJT4gxC4wNxQ0qBmBY+TAzXxzf8WtqDBVr6gIOZIq6k6vh09UBc814ImZaUiXs4cJKZvjqMC1Gm
UZ7HYzls1S69NWIwETl5MZXo3srcyRyKbFSdj8Z9EB9e3O3sw6YBVA9B8JdtOnaehfyFHDlo7gdZ
zmtcb4Wb7ke87PuKJZuNdMz8W1kzte4UuMEjM31gASL9CEVrFeHPUMoPsM90NNNQsyR5QPy1WOAi
wtUKThRGhgHO1Y27Uz4LhCIB7ESxbEmrJxOM+uz5vG7wHIJL3kp54wSqXKDHcMydvc7ky/64dt1V
xVdGS45bE5Zoj/j9sAsteVeoicm9SUnRah5b++XDHTYrOQWiFvCqYM6lazmUdK48ekBDjwFOalxp
+sxbdghArrK2eo3dyepNiuttc7GdE0iRkQdPsD1Qr++lx19X/1M2L/NgbN3/9eD/PNMTM3EWdQuk
MnIkMPSNlPe5iWl5lWN6crmM4RhxCWZ7cNI6q+cy7mWkIdZWat/PTIv4aE4R4KRVQisH/eHYw1LE
fRXF1YPl/+i9cSZYQ9PwTYz8zhum0kTBva/YXikXzjS9m/Z9aQivHOXaUrnfu2HIrTpE6j5IdE97
yjB3RcfZ60Hkdd5sfUtLi9W/DkNKY5YdqO/UkesPjyOXwqaxOeHfq+WZiIQVKyHeH0W5wI+naSPt
NcM6WDxsVsxaX/JIj6HtRQWJMHCXPZR/X44iIOkl6MXrOZ13e5CT4IaBYZIu5XmaV8wq0GkY3xam
8/l6do/AxL61K2whpuFmPvXwBR5XR1a/7cQadKomE42+BGi8fGCL2KhRLyPbnQG4Fuu21z/3DSZB
ORoqKvX54H5qgJgcLgIMucMO889eX/lcTp8/buRhVe2BuW0PqY2dZIBDshtcIw3sXu1t0BFrRLd+
FRO67fXLKL3G8P4F3ZglxYe+bVcbFVY5vbaBP8Bzp1KpWhy9CerJPRIcgOrgH5OIOjWDHGXfHk3q
EZdEYu8MZXVDVrM2S+aSMG6h1cqcIK4JYgswa8IY8TMCydb1BBtSdCwB7032hT6U358b83DrYyvr
nJOwepZ/T9XAx3gkXaSoyo80Y1gX7uJw0UWW+dEC2YeY+jAYxkNxYsjouj94D920zLdBG5mciFHG
tltP8W7hE6uTydWsyPNhRbSzR0nXCPYVhPv7I5ASDmoc/kM0QVC0EPXnDOCxVKQcdPIIRuI7m9/N
YH/3LDq5XqJ19EfpvFqG/5tNOe7f2B9YeynatpLZbleEClhMzftoGS3AB1fQn7c/vbKQ3quX6bxP
kA9U1FQrKm0FwNR0PEj5XyEGKQmUnBWNQVPOj7AHFJlAZrm6edH0I1qzkleUmkyXa2vidhIrJCLc
q5lcHDSPLkT2NxmWdFPxCnhvkhNXnj4vAIemJeg2sOjLS29edYcKMZ5pMxrVPbXLAmw4UMOBO1bm
oMCwf404hLViGyEzZvCB/HDGteCR3tz/XrRteZAEOfrMcthDM8mKDUfHNklSRnEElP2tEQZmu3vv
HLVODvIMZqYphbCLPSrmmFDaou6BvwO85I3l9+49DCJz9dRBTMoo4WWkegVtfLS94N5XLojfv+GA
CrWjxLii/CwlCUd9xeXygsTy3RdLEeDncWpKFziVWySmD19kZzFMx+Z3XPRb7+3Wo37z1Lr0969y
y/DEbX1fjSoIAR+ERIO5QKQeIHXSQsHfko6KJc7AXeLeOpZYFeMKe9KkPpYUk/vdK3YP0oy7hyxL
KLVousKz8JLMd13JPd9hABCkdYn5RHDgm1tV5yGfJueQNcPH3/LoS8oB6BJwHvVR3rh2wjIppwvz
90SU+gB9PIDJH8MxDC6PhX54CkC8+YJuQGBz2VEgrIOOgF5Ok1oqweH0sS1ffDjr7sMLZrXLdQOP
ltjfFVNWaRcXIww59Hz6k42bA8+kWkt4wB+iKhw21CFOaAG7LnkdDmdsFOdUYyuwqPbtAIJWNIsu
b5LPCyyiGH2ICzVMHQr3ClGdgio/t3F3p3d371cNhZLKmUkIsIsGFZ5auZhY5p8AkdPyYpBjqZbB
3+N6YeO4BaUet+ENkpU6rXrmF/70RL1jUHhfWJFNtihR6+aeFub7oTi4CJtpqowASM/Tax58ZfrE
+JaE+mMA87JQfrrXKiFwCzmzWSQD8wsVfaeV1v5a9JJhrmQ9Fk5qKfMtdWi2r0/8bWD2a7KpTCPv
fwMo2MkE07+URBU/9ShLnRJxKdheYF9L+ob4TaiHKZvdB7ODvyyRKA8n2oXhRsUqPHmWXKKLmIzQ
R9rst9ysTtNp1KZKAUWH7UeDhQLN9asPw2Z/EEuKPS/28cxWTVQ3tzGT3zyHOyoi4oCAQiEL3mrd
LVBZLyzWVOvU6wmcVKYM+E7FirfafH4MDylA0R3aDC60jBSE5A2H0j/NyI7wv+Ct+bF04qupCP4+
LailJ/WLCH4qtjqT7fHlkhk87o9zR3FokDMXa3I2TzV4kez7od8bfXnN1PtsCBagV2LSKIGiRCZs
BFPSYCrlLAv4gXy+sV4jrHYiSBsrMezfNCPh3QeeeG60W8gWQwE1bBt4CFTjezT4Rw8EIBgFbXLO
95n/H0OPkXYGKlP2zyfRqzORTGV+YrXNTIQyjTL+a/Jovy1tPeUv6YfemndPkoR0LdgA3RIhP/1u
yqWa2JATdlJhcJt+7WrJaqLatPRNxVq1ZeG+Xy61p0S2OFgLZolJH01TrtOYWtaQTjoRE5Udoq8i
pP5Cav2ATIOokVfJvrdkAG/idGsC+lwXt0cNlU/q7bRFOlJKT1H+1gPC9jcbJGkhW0XqFlFqadrn
jwjUHc90mrMYW2AIuRKfIecWjQ/ic+IeTFT99g7UQcdLieLlTUI2WPn5Ee3w7o6OpZu1K9A981vO
vmVWKZGkAjjx0yzI0FqigVHhcKU090/H/HaBCoEvgTao/vaVCRZJo7wVCsL9IFzLWsVZSIRapqk+
VK4IkVts7zC2wBcIn6lMViH6indSgJJCEASCamJKFzOjOYlEztKt8OR6vN8fk4sRYpDJK+iTW67E
SZNxwaRBUmBz/KB8tSpMtAN8gClDY3/ib6j7FurH1UYa1cSdoXyJ7ZcwV8GCN2I2KOiTUqbs1+ka
+XOXLQYQ8HiVu0JLWijhBuk0RWAhU8KKRTgvXo9zqFBsuHdTnLM9EdVsO6AynmaGAwsvNaHyONcD
mTTqQKb/j1s/WUuP3WIqvCpGtc3m2eNTbK0YvNBqaHuVIJcF9JTQfam9A49PmI+PzYaisChbUW59
jGW1NAY+sED5ustc9lndmtr7cnXDgdn9DW+pjT76VOpk3Bnj0eoyUWmNcBfXUJHljkMfEOBZ7UWm
gJTBJbujrExGS7uKyL9FhpZZ1l6fczX4iFuPDXxdaFyQPDhXk0iH0Hx8pfJGMt+DwuO1BrcJhbKD
2sKNWph2l0D8GR2IlzhuE+SXjoNUBC84q6AoWskkM2t5iOyYTNStt0ewulDxfBiDT0kfJK01dIuW
NOrShUe2sNIuX0l6ySnEr/oQ2SsDJm9ctMCrETqGXeqHuQ62B1ApP2A5Eynncer1sTUxUdaxcj00
plI7YV+/uRQwqnO/pyfu58wN7MaseLQzQH+5rAiOoaZj7HT2L/cOrmCPNpHQznEiFsIrwPdl9bSK
z3BVzTQG/CZUw03YMV6wbfJ/9NsNXGOh9vh8dkU4bDS39AUE56kd8Zg1Mw0gcLWmLM5gjjwZ+4qp
zA0HLms6HEilfQPhwuJf9cpXAs/+Sqn+HQcBcbb1Tis6gUBLxro57c5t7I5k4a/F2+SLAT3b5vY9
+zfhKbp7MbJKjoreyqXy8tf59B7cZT8qhLyjwLRVe3CI7oAICVCLEvO9JFFBr/q7S4L+bl8GX1Yr
RWYMqWoh58rJ6sbAdrPn1dt30lRlAv5l0zKwCR79TskRzZbRuEmfkvGdi+SH8+uj9fIOMkPpKkxW
bdpzH8c3FgClzzvJ1sgMkeXiX8csD8wHFS0nqrDrl+P2dqkRchPpAQTtcTlqLmHixw1lf9bDKDzp
VU6x9ZZFRGha9WiGJKrWC7hYbAZzvfu2K0xuK0NO7PTT+1BvOjZWX2HPRctCw867Sk8z1nsOqJUJ
3xMSVR9lLXv+RJLlzlFQhmQeKNiM1tRMcylaPEfQugSeTL9gb/Q4H7oYXOf1ZQEztaEj/0Ug3Rrn
sS0sZw7LJyWFwTftY6xXEEDXGmSizBadpHOlM/9x3cE/4DS4aIbiXAaiP0O3YUZ88khU1ygyqdli
sZB7mw5Bdd6hpTVPFQnbCapWXjVIzOgSTJq2bZr8m5jqu6dRlyyGS3UYRgUv6D14cm+jcDY4dynW
ivEf9IF0sI4rtHVyuxg5gVfvcut1a4Mn8EeTxUHIlKOjV/MNsbvIKEasFYdIMY0wropwSI2M7EOl
XM2fh4NNYEC2fkhN8A/6oIM+UpNfBTcA1jWNXvQs267piZybBpkIENWWVj10em9lx3g3gryssV2l
irhI4mmMvfx/IoE1YCltsl3CbGshuUKoDJxCWvPEZTlA5j61VxriMFeRKJ2hFYZ/7AIy0bROW4m3
cjE3CXwFxEtUppho0At9zEDINzSLW+W5lpkl8U3YlSbfHzC/sgzhJ2MBOujLQz92o0KZARWGVV1a
mdOVIzw4rUBUUN58kvsiv/hs49HVB+AHh2BtsdIm3YaFHcBc/o3uylkTY+qL7HgNu0h7fPgHd9rs
PQVdu24Am5VZSrryPfm6jGsuyi7fIi6sXekkrUYN6QhZe1kY0EPGBmQantboCqH8n+TDlrWcfF5t
I/B6NfbuTSzXcyKgYIlzU+Jn7yD/tWDJT9Fwbc0mYZ2XykpaepzdgWUS6t2g6sXz3h090HqLj3Xx
9ZyiKFuvv3CuohevajzKJApEHY68pzs9MY55Kwj3T+GIbhhsMKnP6qqeTuFsBQD/o2oV2H66C6pT
1agq6+BXstJQDPDniuxt/uKHmOnnouOleRBWdmjTDbcMxgQiKgI+1CFhjOCFbNJx/BDEkG3OqMI3
H2VAFJEvH6BHG50lQn+sEsYDjhk7MyMFxoNdLNymbXU+KyhNGTuNEumbOkPExnJtsKii1pD//qHL
lB5J13lFn9LBW3HtzbDL//ROlClDmQfo2J9CKHISQIj/3j7odkW5494f0+KIIMCR8ekDpwUgzgkU
ZLZEzvEBGfx0XCuxVMET+ISwMfgPvRJMX7hTHteWgitQn0Zfv49cw3C+TFs3trtI+CzO/++88RlS
M+QO+Op/z1jtw1+E6rDplpcZ7W1yrQQY2pbvvsb/i+Tdm4c3L/fdysRcvxFaOJg2gqVVQTZCi2ic
rxMo01skfer+nZGoS4rlOrUj19zJo0Bt6ndbbdE3xYyUdbuxhA5fAbKdgL0XOJJsw25lhNRQj7qe
0QWnQGE+7qEcA/jfkdl7jRbBvYkRnlA0J67JH5WSSyuM9zXjEurtKDnrS8meNQURE0q+K2l1ygyv
fD7FqXF8tQYdP6qZUWYhGPF3ioLzQF9+1spj24wKu+275akPP2GB6w7Sq1uIt1CpYF7cJ2fL3i9I
ZJKH30TooKPKB7o8IeLodLuILEh9HJBdFe3DNMbce6pGkGleGmZJzLBuLVscF+4D7eMTFSrPR3E+
don6wOX3hr46sxi+Y1WpD+QCRqaUA9lCcr8kS/EMKvAQuAXTiTxHA+eR2Xqo07EGUpOEQyS+VwYb
Oh8uCgTGN4raEidPgc8x586uKSg4iplIqhSudoRxAJkWcUjA1Gfj33raDN268iP648uEt1k/16Nb
Wn5gG8chCW05EUkHXOFILMfC4YAV9iWKwmVsgwpOilvl3HVTQPhpYXRB+WYjjN00WsW2KanuL3Yn
f0NOcju3EatGR65makhF/uEAoA4wubgKrRDradDD5oh6Wh/5NYZbcy7VQQwGLvprMt/puytoKu5z
ZSWX8z1jQoE2Welkx+4AnWAuuL9ZjDEanldbl+tSbyO/yTypJKGYA2f+1ZEyq+z9ziDh9iBuZ0/D
iJEwFzjI1bn8Cna6We5IZxfvgMT0y41/OA3ecVf3TaRXu2elkvA5DepvuHKKdJdEY2dPFMFFjAMS
5mpLoUWO39J3wnYmR6+JP4HzkCku1qn0/K/5MAuEahcJ5LE+OpgPtG9+uJGxxPh/IMICyjQUwji+
3Dron96akuQOBEZ3++NNxu5ssyWxXSpHzocSXIemJ39qtvkrK4bOol5Afs3gMRxcGvpfB5o6QgqH
BlbCgzzxwIbEBvmdp0K+Q+FeQHaxxloAydZsxOfsxorp9W2qVVTv1VxtXSr2ju6TeYjrtwHPGjJ1
1R0kIKv1r8fBOYXrWPZMIeQd2GBnJcFiypCECMctTH6QHnBIrJFMmE/1jL10ClPM/w5DbxGpDZdr
ej6oFnbJu8s9Xrkn2dMnZxkOhS69+lifq0+VOl7gfo2wDB4aVHnC+47hpcLconjX80wBHQyDr56g
3P8wmgOuA3rPDkZLbQ6VcHrrmEq1UTXn9emj6sQoAufoi0SGntg+irM9HhNnEPEofHV2pT8AZAn+
W6zU2M4i9H6z1zXYs1Nb4sObPiHWMc3sel9KKUIzzYfps28j75NyiVQ/bgLv3sEFwSIg8Cp/oc2E
9Hh6Ba6NxUaPLRNlinm9lfVzZaqSpDhdApHqigZ82c4hAO9BeYxAVPKocZRzMA33ZFwlGu+GxYPB
T8gPbN9nhwYWSXI/POjdf1AAenTIiqCuOKEHLS5dmJNCJtKGbu/2Oi6sEnzGo//+O3Z9/n5D32IQ
bGhE6osSXQMOKz0TCHEKF/qik0ZqiI6XnlAY2jvHDhRe0HK40zhVczGPfu4pKcVOA8w186nHeC1P
I8b2YyNhXENf+qy4tQvZYHSpMe+NVlbtBjlzb9gzWPmxDUGvTZXGH138EDu6WAmRoQ4/e8+6xRLJ
agHAJATVBW8cp5ZlQEOS5RE36CjjtXlZnf0NWDyLxh4ZUDVR2FzG/tKIhbdBJmjDEUleQkeOutVk
5dCcrYraythOlXmMcZyAsKZasK8Qwxfel7GpvThDJkcTK/f8Ob0nwtEYZZtX77x/8zSAiP7udY08
3omhrhoeBTOmT3/M4sJI5ldt3zFBAva9Cag4pITB85+6DgwFn7JAG7BNAY9ZJm3kgBMZeeme1IYQ
1c+W49ewb1CnklzN9jpyFHLA2PwqbMNp43vtOJhXUZ9ILhgx/N7EHgqQPDhrfI+6VPwV1VqeIuGM
EROpyxDVfiQCR/Vxyiw1uhE/zVIlUKT97sVZl3UV+mXsNobSUJ9zPIoPs4TSdgKjUy0K3ivr3mCA
5j8x8H2gBvKv/mxZDgOehXQtvZjNm7VFJ1ZPYv78hos/Rw4maoxxmqKLId/hVWvZawWnr5CogBV7
0nhDH3dej6CUtN2XXfH4gBO66nGxnJ0N8T/kKyu+4zpXXOQYKcfYZ6+ANRTJkE9mHaGcB0tmfikl
FoXbnWOvxiKbxKsSEHl7I4iDgm9uzJ+IKCaxNUb/ppyws02xtsoWnqnFPhfbSSvnNlNrgak1U3Wf
McW2Dplq5RTJMR5Kh+R/a4YV5MEkdRXZWWOpQzgfvnU2bKWJBNWLTSUHO24SsGkh/saxT4uftKR3
nza/v4B809Gn66zouZDFoHY/91y56qprVD67Lb+wwVh/zuIeUdO8UIhvSTYyWPgMurxsNhXyR1w+
7LxXegVyLuSEa74z/stvTHrDeGSKtRufwQzPJr6isw/jbyBWg2YGls/y9j1ITLCKVXLQTT2KUaXy
wYzxwpgjeQSsb/jgpd0QlwASMr0lAJYKpEavADoFp33Gp2fIGg7k/5O+Qb0uQ2iXzj8vx9bHeETQ
ZE8vd8F3eCIAncY8ltUUQSfO5MKiitxUAGVbpCdaNCeopnaUksDgKPbPCxr1FZOMlNTMtP1EhNaC
VCSzXWeP/ZNP5cu3LpxlZJ6/9NI465bb1wNQZZWudn3I0X28LhiUwytIEc6Hj+NuXSblmakJpPBq
gFe8LHEjtLyXPBcA4//X6SwVQdcXHblk/iGa9tYaRB5NoKDjrJy+DW/mvjUdvg6SO2yMv38HwdFI
dsKVeQsTbpGZWpW0AwH+/+iDm9ARh0tkqGOK9fMcAPyuCOZj3epgki2t4QY9ew9C23OD6HYQQ0TX
IzMNbUjtXkq8bTWG50o4lVlkQf6/8wkU9PuLsIigO54DK92gh7ZzqhNnl+U8cWp+CE8PtC0nqtq6
qd2k+5kVxt10JktPanRWlNE2vtnFLkDqkEQziYuOg7AhPbHex47zDqVlNll0vjn+YaNIL7sTp074
MYbyhvOM138btLoj2mzlspDM44+BdRVq4sTYDkARiXmn1hP0zXtRlG4j//RAq1Vj5TPCARbMDF1r
FTyc72pLVh2O7uip14/oCD92yMRHGtx7lDr8b6JSEWEC1ptuiEi7AUjCge9EwOObqIV3zXRlh9LY
YnLolFUrPwy4pIvTkv5igETwjBI8PatcotxOb613SIaET7rGZG5+dNG+DowNjpU1n2hGawLhJIPd
V/SoFQMibVuHvUIl369561xMmZi3CSc1AXntyCWQZm9OWdD0PyQSirFYT6zEr2JjG5owB48CryK9
qpfV6d1qWWLuJkCZXBc2stUi/GLbN6sgyj5BUbzdT+pVebE80UlPxGPtQ0Aax3tu9lDFpSyPWrzL
1GdxQsMmTEcVCU8avpR/3qGOd5ZtX+z4I2WWbnBG4s8H6mIb84PgEV/CeIHvBAlybp4dp4M8q6F6
esGHFz3THiZoQJ4PN/jP9MHfu7OXGFXmo4Qz5qQ+9ruBUo4RqSdmcQhnhningwytR3+eH9V9a02S
CUQ68F0unxAW28nzApSMueXGO+9lP9EVgQtuKJDlP34SoISQC73IG343SmGjxSNhJGGhIxG8lGjv
n+46YNVEp9KgKC+FWr0DQlf/oxXqswZrrPlIklKAAEOSev6i3JdW0cJk7qJ1uqSbghyCYuEhO69A
VW589aeMEAMAi96x45cCbFTn1JMW5wECIYc/E+zoS5Qi7zDVPireLwp32l/DIjo2/LltgQljA3r+
XllWUgYMfKTfCGf+l7O8CpBZ9h2fRGFMOJ8uOcwJcfW2rkxD9kBgGVI0y1y0k53adS6KGqhASYmd
erxBwg9Wjd5QR4r6z/dQqGplp/6QuL78HTrcEcIjBwW/bfoPNKEvqqf7vbWKMU3jp76ctKcP+xHr
qRaS4AioQIM3BsHWsV6MPAdzAm8uJ9ldlcHkNuqTo0PSsN2mLktiSkVYSnbjzhazwBGAzaeOQ5Gb
5Y2Z0nz1xdBIYdiJywgGawxDe86o7Mw6FXn1sVAz9sRwxl+5FQPeZXJ5cHkUBeXfgVFcwUBuBxzW
qAwVzj2zLMGTCF7F0reK/zXpxaJu+0ACyEw8VB5dQLUskpMCEDRPShpMmofI/Fw8LjDy+XwFZ8Sx
d2nv596xqsD6HbM04OS9EO9Qr1AMzi6ZHoCK3yM2w0FtmfXGdr2Ljmj2HIqrXbTIiATYCCGvJLAf
VEJWzYFB0SYlAyUHLli7JAIVRqE40jI2s3s/ym5lWnyk/HGE4t/PLW3Zva9BKWZOq5tNiRFFuQZo
B3qrxP8PS6ZTuO3cMWz6nBi2XltiX3xuE8VefDgVkJ72L0EeAbxlvkGlAc/rfsU/yw5orGU3k2dZ
PDLE5PWa3j1XTVvoGqqeJaQfxdzaO1ULK9NyD85viKfQMTfJFmZud0qu5uf8LlxVJ0szCdMwIyTd
2JEYR0qtAgWE+0Z1q9DPm4TQ9odRzCtQqvsRn84fwFT6k7MEDBFE9r3fFLxGDbp+ArvNrT8aMksw
8/QSQxwqig7wgbdS1SxB41cyQbgtIwBZnOvcg6WNlHJrZByum+x+drJbN9TKdODVINsTqlgxlwV3
0uJqKAIYQzJvWz4frvH/5XsGeQxH1bBur1BY5Uc7RRsehfNPpVEfQ8HJjnjBvAJ2rhH9Jp85KkzV
3zL7+pNlW+zpD5K7NxdtZqlZjzQBgkbbH7ujMt8kf0teUpanGFCohzQvnvnvHvQJK3fCS8X/7sDR
/Z8CnCcWJxtsiFVA9rnePJqPQcf64CBiavYTDUtT2m8z142f5qk7EM5Z3vr3C+M4LpdoLkg92TXD
boA7huojXqB/7J2NgSWqFhBbgYqZZnv3ZCXMY7yGvd0hcdlhZZPvLHszpOnI1WO60nx4XuWq7yCI
O8SNPq5WkGxy6haepJ5iz0iFuqLNGyqxeccsDdGZpSTHKquAvMJSK/vg4Wd+zGWM4uPpGFNWnlmB
mxG8/DTx+QRTXK1LCT2vRPBhlgMSBi2YmTrupN5MFkcsthUoaID23OLVb5XJM1NSNa6nGb+NMsxK
BinTMh8U6xCWjzhdVjdmOfMj9kWzif7AJca2+lGdvGQ20u+gpafXoQreCtHgdWwBQAx78XG5CEMo
LVsAitlmOTsBwCuz4kHghwYgzm40NV2T4UyAk8bydlcZOu9V96eZUUpdDcn3KSQCRxNAvD7WTtYJ
6pWnDxlyjNeAdgCfyrNBhJVLZYV/0yRSEy9zucb26BI8L26xiB0/8XJxfoTbkqTe1KTpVe4RTsMF
YOKjUVZY/h5EwDsBTgf9pC4oXEhylRRWJywc6utbmHSRHETNycmCTw3r6Ol7Fvn6mViTUbc8TILG
yFom+WyjlDGT707ucDqI2mBgqiRwBTJ/cfeMaNak9i1OGOHNs2NBOQj3wZUPZijfsPjkUuMfU7e7
WlGUSqX8+rsJbJ9B9uXjhmfqx/12v+0paP/o0cb09WIz8n0e520ssCgiB7976UX9yOO6vwWehvO6
LwOZFs2S/nGhSLdgO0TdE9b37vP+fF11Y5L5vKlRm2Co9hy8Mdb5Xsfh4DGkIDZ9HjQw49PGexW9
fQNfYLjgUw16iAPGT5V0QV9BItbVU5ZWuTenDBnpg13+/yRRA8WGn3YstR9fGyGPKR+UbNnQHCEJ
nJjjRaaXgtOsLZ829TiQ3+K2rI8Tmw9nq5Md9HoGnVTZ35lmXXtr2SfTbCnxQZTtaT8cncT6dqFG
4cQUvvqMulfqMPZ+7jB6ZKiO/A6PP04moyWDXfN9r2TBENV+bCjo+tD12ne2uOhfbLffa1WLOoV/
vtqF5PrzuRSlwvLfMWnb+MqdNxwhDhTWcH0UcCDHSzsRO+aciRMfxG76fUi5NoBs8MasWrTlMMej
4zNYC1ocEcL9iZHsH5ZcquBnTFCkStRqzA5iac0uH/nK1y8kO+ZUZTSE+3Cf03SFiZa4p0iebeqP
cDa8cAOWr5n/0+UyoSydAbuAupcJ2iU2p1IthmdNTfq0U3W2HTh7DrNVXYO3GNdaXHE5wWnCEDOG
UzX2G7CXO4RHvuHB/u4W1p0c9uak+gtJ5C58kUIFYfNvUqd/zRYYu21a754QO+4B5ATRCcK9T5AG
szNr9Hsvq1SKrQZbkvwAtDuQlAonXlREPL5XHFykCHG1TVQflAnD4Y0x4XZl6uR9F/QHKQ+y0C5F
cQ4CqCnSmOt3qBTNBUWBeGq2hdgEcM9DaZiZ65qCZv/OwlFGAoMUcYqnbohKEvzdkfdvwNFeDB3O
SlI415bPwlyWaetvmgwZyrnG27EdhVsaazWXiezOT8OoFRL9foigsXNMnCJtTB40IvuKpKCXJiSh
r5rQ0yYankxriv7nbIM+DX2a3JQNW9uboXcE/T8OGDoGgwWWh6oN7CKkknF2kgOio5tEbeVMnD8I
hd83/Mv4pWOQB9dmMAIqwOEIC48daO9gjkDHsOEs6D0+SU0FQnQypXajbiGDLEMT9bKpPBogHJ9L
oAeOvDV0DHrjpwO8JjMRr/CtMUMZuTzzVlnio0KTLbJxgeH/RMEEdCt+4cHf5YSiOSrtD1M9nX+d
A7ZDZJxL1S3lt18vz5RerkxWYNdwyvGAvm0BxO9ufl5Lwl6XNMhvpFjpgwIdZ7LRyepX7+nVCKMt
GLi7gYlnjUz2c90/0k8iaU6TNxbcXICk/9QMFLd5iLWm0sbxd3WhWWPD+/aPyrQWoTMXL1NEmp4j
5GvhUeKmfdRV91TcFbmckaQvELlO2nbWqbBKsjCzbM08Da7qLa6oUGKvnSZRhEyHl+kQ3BWUQQY5
KJwqVFxeqrDB4S70JuiuxmUWDyPpvmg4/kpr1KaxnJ//uy8VrVaKkbBzA5BiiaDXSBYAH5NMVYOk
T5NXudSN/CEUgm3IIgLLGeK64w1HUW5GmFWJgIiteXsXt97IayI+cA9sUdodBlA9tem9R79v/8gt
poEiPAts5aQ/YdcTPmT6tUSzJYu53k6WA5Okm5XdSzBeLo3ky3ctCi1JwpcCN81B2Ui7aBRYm2PO
Po0JH1mvgPTS+CA2GkOc3IIwS0aF8Dht7RSFZeWTm5bNa1ditTL3r1Ztkj3jJfG5r0YoHNhLMy3o
FNDa0fTBMgxM8DrpbESenwEtLlX3M8gGfiY5FfmNnUBkvi6Lye4kujfIVDSwSROmqtOk7JcH9G3N
ON4WSVylH4oLGiaVBiDsSF3w31Wiwm/m9eLN/V3VvQwETD4to50D0Ko0Bpwrj4RZckC49UtEM6Np
K0K4pdjxi5xtSkKBRGseAmClm1I5/cY560TAP7b6JGAO+hFIh3GmazSHH2LsvNMxoo9aHCpHFt7V
oxfBmq2+DYB4jSv4EVddOEroBcu+NC4QH1leubwlzV8hcbNrCdNtrs4W7Kwg2e8IJQbQlXR2hZSH
FPyok5tiC1nI0ksSXrQHgua8003OMKdjvkXv+cAzyXxVYGXPut0CZFOMbfCbvNTw6ptBO1k3sFij
tcjNiBEp9pfRZeP7zcPFN9akGzTGiLbynr6CoTzFnLaz/uksxMlYqO4XryGwc04W2F8L1nAUgv2d
5MmEMq5lVUKih03BCumo4YYyeKUyCwGUQS+e072xcru46My6jPzIUPtG01p0Of+HVWzVWsNCLyGg
A2TLA4o16tRu319r655pYGQFYvE92Ep0zfEWTlsIwDLAxTvV2uwHy7RIYSi6DCZJVTnoNiKBkMTF
cw8TOVaki0RmIYuvpht+hgS/x5QNE/1RMW7orKMa7NohzGMmDXE5cP9cazBOrVk/jy0+se6U13KU
Nk28VOnKV2QadcHjpQbMgC2RiK3OEHsIpSVi7TFUT4mFPRRP+vJ/74mg850YEy/eTcNIuMsM/rMl
4lBZcaBA3wF2OPfWh3tyOm74+OwtyxHtcoz1lMFxDTUEPMuYtvm1BJcRXvTM/8i5jDWgqZ44aPJc
5qQquJB2RleE/SJaxAJFWIQF+TAlx4CRbY/Q5kC6tHnzTFOkBfhjngcpg6wbThMLEbCQldLgCQ8T
tQxVPh8lUxo3i7kSsv+eqjqmf8WTLuoHhRB9Q2I+wSPCeN5m3k4DrG+J6SGrk0B+bNitZV0cJUhi
iyDDWzfK7qqckhd1jPA4lB+dvr8uOJBOKjq6wilT+BkMp06en8937JGS7Yc//mkdZO1tUwcEGPRy
iFru3SrpKr33A3igY9hnQeIHcRbk1xxwqKquu5ao8M/IZM519JhXiqOLMfj7vQAs2CG/HfrERL1a
nINNz5NvxLFUEQu/DM8Rid890tReGokVzSbi1HYiAs3PBhty2WpRXIGf2XTWGb20fN7OCh+9+JKT
zrkjXcnska9WsAaS1iCU/l68QyoV/yFzn8ecROELlK9O29Ro9iK6xFzigna3wVFkZcAyOj6EAGl7
mi+T/y+05q9gH+mVtI1TxPLs7KB92BeIwfhJMghjYo0hIpuiwAX+gtrlusKfiD9uc7+IT7DR8ZXk
BRoC19d7m8AxVKB4wFGp6OrMGBC5bjJUAxEefOXaSS5iAbUZDim2gLR7x1ZQJLXNFNuKx8JjwMoX
cdukyMAHaRrdk4Em50npq/ArXYrZ2qjlyuB6pJUF8n89WoP66y56a/6ctQqqjHeosX67guXu/mo4
MPTAPN+HdeQWDTTW2eA9KyhdiCMdbsxSn/A09AjJIIsdIfFGqoF1WerKJfcHTM/+6Pp8BGua+Zss
yoXY4kZuoevnky+jEMNHf5H9qipa0M+hBl2Bquoitt6ImHLlybluzj0592u8Wa0hJK4KHenRqitC
P5fhGz4GV+CoK+T3SkQahya0HcjAlXyL40AQJQnnJcBvwRyhNapvCGoeUmPGs9VhioSD/Sto7tcS
HjW6aSc2BQegSdjZI/8UDWUngs4XLVmVgUhdupLGjQnCpz53AwWkfyvYbzOr3QD+37QMbUGGh5J/
azkoZGc86rUr93ly1xG4WPkbGrD00/zs/vvu/h8hRcjk03qZi2sNVhKiMJyEdnyoTZJupRTfGUQO
xIGrOMuII09S3nn2qt0ed2k33LlMwln5/ycCbixVN6cdP7NNbXh+NRZZRcXATnAMahAamtzlFVEG
ThJ5mG9aBN5ZVl89x8/GpX7GaCmjg47lP1+Ho7SLNX0Y6RfRhiVT2F2Ma1zd5YcuumVi1Tp8SFcr
NhbOpq2nnQyEN56b+qc3Fv2fRQPwZboydmGd19jVce6l/drJTkPwPv7EJ2v6NRC5gEM/nZ6LWFw0
1RfTS7UJxoFktNhqHPbtZitPGRYWMQBuyfPikmHqec5pazBswg7OwCGI3z1U+HT+gZO8gGUd1dbp
1GGd6OF8LOYre2oYcfs4Nmp9pul0Haf8bzzz0neXi1PLxaVmBVlU4qWKyH3rWJN7Bell5To5EeMj
bWr6oORdXzr/NoEpFZK608qcBdM0EOkkeIE7MZZIusDOcHcEg0e/CkHNt9MTXzsoANMIQvXVzouw
Tj9qKBCiwg6d4fFwDcjiHTYuEAYq9xXV0IjoLCFwDaJ6oQLiJYjHSM703QSv3ou+lGCdWtz+EfH+
NzsEydPVDZ4NKlLc+J7FzaN9I3r2UhaPWf6j/1/Y8g1qtl0w6FHvC6vTRzusGbZw127gONaWFff9
pj1j/Wr9HmHZpkYzd+V2qj7LH1XpzgZ0zcAw5UF9KExZXHTMakvl8mMwMvRxnPZQq1o+tn+zzUQ6
6qV+RPviCZhIACgIPo8zOyOPJUPFivK7Mc+Qm+gK+A9+zDxNxOvSpXaTEC0w5vAcGroRX7PWcsrn
JU2RlWO/Y5KJ9NzeyOTpJwdjm8SL95s5IPgNq+5WtgIbICSGebhA2WglfDw9nLlb+3HElZSOfFgT
kzk+eNnvd1rjyc6aostxPskERnZd3wrjRU6ozhDo4NhVaDP2HMWmsmyQNX98U5oHR2tFf0Cn2vIj
QkhiFT/jv6mmXspPruOSfjAoEpTx8o01zgNXbdAqoxSx8w6LbXo8O/zeNMOIOKz1CN0KpW2DHqbw
HRJD6POnEIBfbcyBgHYmi0Z5W4tj870Uhmf0w6PhJ9gJ1inACYa3Zh4XIcGCfm575ZU8QnIDH0M3
U738jr2Xfk1XirN353hmrGsl9D6jHV1PXJyvXmR1v7tEFbiT0n0SBOWNkDljlRv3hRebE8RAKw8f
XONsCC7NbRRmxGChc6maL9YfqrxyMeQGnmQAVdF4jL4b8vPWmsPvHdyLHyqZjrBpK6m9btGt6ABg
TMgYDZkW37e7YZ52I6M5nEJdTmrfSIl/W7S84wTHvUHqzKY4DHUqgq6aMRv0gQBzJQjEL85Wufxp
ct7i7LkA68L1oGWx/uYaj7x4TKXVWjYeTOSwbXkbMeDc9tp0iWtcgAiPMvQQFwkpP1cJbHI8i+ql
1spvaHf+ZEnVxzgQ9eyE0UyBL57hpYgKPw84sCy4GzCSvjFfezUsibmHAH2UX7Q+SqzRwu/S2qdk
QtnmCf2zzInJ/lABomrV50MQ59MMOc5gQ+0/q21ADwLdz3eA9Qs+aGqZ3rJ+47rj8YhlWPz9bZZU
xP+3rGCkaoPfdvtiBDk3ASL+QX9cTWQmHlmHtDZnFTPkiZ2G5FaGinfh3iXByc651aXpBFneyMAc
qGxtY7ztCYtmcRSYkLueZBCxWksXWtfjBohOF+wxrcVFGLoqaCMhcsaYlMkNDZAdXNk8VQuggNfJ
evpYcNu1YlQex+5WVTICNl7Y8eb7VdEylCqEQL1dOqRzSua6mv36A8f5z1QBC8Ypi7NNEqF6veEf
hUjM2PiVqifG7+1zQZ8aATrW4ODei9MGVLhQ/UvkoQKkoLCPvSyNWU9OBTO5ou3FBF1fS5CpL56J
v/PQuntfaOA7tsWLKdhblN4kvA7PnqbldhDaQEfHJWrL4AUIiuYcmENqH9cgirIQYjiK5ROcg46c
LvxwCnVR2K1jCTjuERU6trQ2okFvtNoJqCDAQVw+jwlMMbLeLN7H8KLJV9ipUxBVCkbiNJxlZiO2
oUTarNBcVhYZeEcVSnUuGSZTEFyd07lCVOstlPlY2AMRlyVkEcWduCK89VGHDlrhRIYvK7bRh2Vh
gxloAaOglsxSQx/RMBKIiiE3igyIBKEXj0xEtCUwLTl8p4/qKIAwI9IYzFH/QnS+tlJVx5klDd3G
C/nJMsIS0f2/Pw44ojCTG2QVs2Q6XhJWVyU0d1cVi00cd/S2OxGHVFxd10LwxaCJIOvoKbD6BjIf
FsloQgMYtwfTFkTehhizbpjCsBc4/z8woG4+a5k70941yOU/ridMNSYsgGq3txP793GhkHir1n2z
oztnLfhtclJPavfkIfvw3CicyU+sEiBRS1fnJDx0REhV3tlUAGKWUlCwc+FwuDj81nwIg1XHQ7A8
qXttA1UJvv7E0EFp6VsDnpqMxW+/1QXvviCOxE+xekB1hu07vNpgcqQvZ7nR0ls7PF2VlQss8Fb8
Y3Z9JMksUe67SJTd6OCknhK4S9kP5JdM+Czmr5PE3jw1TNii9fuiJnrjR4bvcB9zwlcUrn1YCXVq
IHrrw5mELijSj4mRRVab+9iKGYtXDUWDez1FlamCYnM8HmBL3PrkvawodyfmW1IqW3Lr21CqwSFy
6DdNTJE3Sgm70f33ucI5UkyXiB6UsNJaYzIyjs9tdDPYfuTQxdDWag4sqd/ffUEj+IqTNxUfh6a7
J0eKgXeNEsXQTQAvdLBHSLRFofy3zMd/7VcpxjrG7EhHlmM+YAEVU9MVgj7s1ns5xJcF/Uk+GRhL
M9LLbTv8wouuN+5/B3rES8n1B/XrHVF3aYrGUryrW88meQrhAjOgnchF9eQB3+vUfPZ1igF8yp5V
HOvC6DZLBTXEqCy+5VPXL1/+OqA3l2FOf10/32/A/eN98n0K+ngwiwr9h4Nrq9Q9mesTm4H6jfLx
Yio34pHvz8e0wWSpLp/Mvk2f/h0Y0ZPsTYKVRcegB7bcttWXzOpqb3C+0VG7C50TXFxhEJ21d7Q1
f0c4gRADiIkjgaTRsehtHMA7Jw3IYkd0NhS7zzaVtq7T9/Lh3GQSNTqUt6MidP2D4AoiRdYRmSpU
TUOtxs46BT13TwWuAkzhwcJ+Pn5ZDfBiUMM0byjwjs/6gwupje6Bg/6YRo/Tf2HQQqxd8JIOLOM+
SLXAHoBv6nKtC7IQgArrlccOZ8yQJ+Pi4qGwc4xZ8KG9nQuMKdJJtOWGHQWvf9BOA9tGd9rX6NiE
lZIdpxj2bG===
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

86
Cards/Modelecards.php Normal file
View File

@ -0,0 +1,86 @@
<?php
require_once 'Configuration.php';
require_once 'Functions.php';
abstract class Modelecards
{
private static $bdd;
protected function executerRequete($sql, $params = null)
{
if ($params == null) {
$resultat = self::getBdd()->query($sql); // exécution directe
}
else {
$resultat = self::getBdd()->prepare($sql); // requête préparée
$resultat->execute($params);
}
return $resultat;
}
private static function getBdd()
{
if (self::$bdd === null) {
$dsn = Configuration::get("dsn");
$login = Configuration::get("login");
$mdp = Configuration::get("mdp");
self::$bdd = new PDO
(
$dsn,
$login,
$mdp,
array
(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
)
);
// $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
}
return self::$bdd;
}
private static function getBddAdmin()
{
if (!isset($_SESSION['codeBdd']))
{
$_SESSION['codeBdd']="ebene";
}
$dsn = $_SESSION['BdName'];
$login = $_SESSION['BdLogin'];
$mdp = $_SESSION['BdMdp'];
self::$bdd = new PDO
(
$dsn,
$login,
$mdp,
array
(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
)
);
return self::$bdd;
}
protected function dernierId()
{
return self::getBdd()->lastInsertId();
}
protected function executerRequeteAdin($sql, $params = null)
{
if ($params == null) {
$resultat = self::getBddAdmin()->query($sql); // exécution directe
}
else {
$resultat = self::getBddAdmin()->prepare($sql); // requête préparée
$resultat->execute($params);
}
return $resultat;
}
}

361
Cards/Verifiercarte.php Normal file
View File

@ -0,0 +1,361 @@
<?php
session_start();
session_unset();
function afficherMessage($message) {
echo "<!DOCTYPE html>
<html lang='fr'>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<title>Erreur</title>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
<link href='https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css' rel='stylesheet'>
<style>
.error-container {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.error-card {
background: white;
border-radius: 12px;
box-shadow: 0 8px 30px rgba(0,0,0,0.12);
padding: 2rem;
max-width: 500px;
width: 100%;
border-left: 4px solid #dc3545;
}
</style>
</head>
<body class='bg-light'>
<div class='error-container'>
<div class='error-card'>
<div class='text-center mb-3'>
<i class='bi bi-exclamation-triangle-fill text-danger' style='font-size: 3rem;'></i>
</div>
<h4 class='text-center text-danger mb-3'>Erreur</h4>
<p class='text-center text-muted'>{$message}</p>
</div>
</div>
</body>
</html>";
exit();
}
if (!isset($_GET['lg'])) {
afficherMessage("Paramètre langue absent de la requête!");
}
$lg = $_GET['lg'];
$codeLangue = base64_decode($lg);
$tab_code_langue = ["fr_FR", "en_US"];
if (!in_array($codeLangue, $tab_code_langue)) {
afficherMessage("Langue inconnue!");
}
if (!isset($_GET['codeEntite'])) {
$msg = $codeLangue == 'en_US' ? "Entity parameter missing from query!" : "Paramètre entité absent de la requête!";
afficherMessage($msg);
}
if (!isset($_GET['idAdherent'])) {
$msg = $codeLangue == 'en_US' ? "Family parameter missing from query!" : "Paramètre famille absent de la requête!";
afficherMessage($msg);
}
if (!isset($_GET['dossier'])) {
$msg = $codeLangue == 'en_US' ? "Entity dossier missing from query!" : "Paramètre dossier absent de la requête!";
afficherMessage($msg);
}
$_SESSION['codeLangue'] = $lg;
$_SESSION['codeEntite'] = $_GET['codeEntite'];
$_SESSION['idAdherent'] = $_GET['idAdherent'];
$_SESSION['dossier'] = $_GET['dossier'];
$codeEntite = $_GET['codeEntite'];
$idAdherent = $_GET['idAdherent'];
$dossier = $_GET['dossier'];
$title = $codeLangue == 'en_US' ? "Contest a medical record" : "Contester un dossier médical";
$label = $codeLangue == 'en_US' ? "Submit" : "Soumettre";
$labelMotifContestation = $codeLangue == 'en_US' ? "Reason for the contestation:" : "Motif de la contestation:";
$placeholder = $codeLangue == 'en_US' ? "Please describe in detail the reason for your contestation..." : "Veuillez décrire en détail le motif de votre contestation...";
$action = "/Contestation/Validercontestation.php?" .
"codeEntite=" . urlencode($codeEntite) .
"&idAdherent=" . urlencode($idAdherent) .
"&dossier=" . urlencode($dossier) .
"&lg=" . urlencode($lg);
?>
<!doctype html>
<html lang="<?= $codeLangue == 'en_US' ? 'en' : 'fr' ?>">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?= htmlspecialchars($title) ?></title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css" rel="stylesheet">
<link rel="icon" href="/Contestation/favicon.ico"/>
<style>
.contestation-container {
min-height: 100vh;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 20px;
}
.contestation-card {
background: white;
border-radius: 16px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
overflow: hidden;
max-width: 700px;
margin: 40px auto;
}
.contestation-header {
background: linear-gradient(135deg, #4caf50 0%, #45a049 100%);
color: white;
padding: 2rem;
text-align: center;
position: relative;
}
.contestation-header::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,0 L100,0 L100,100 Z" fill="rgba(255,255,255,0.1)"/></svg>');
background-size: cover;
}
.contestation-header h1 {
font-weight: 600;
margin: 0;
font-size: 1.8rem;
position: relative;
z-index: 1;
}
.contestation-body {
padding: 2.5rem;
}
.form-label {
font-weight: 600;
color: #333;
margin-bottom: 1rem;
font-size: 1.1rem;
}
.required::after {
content: " *";
color: #dc3545;
}
.form-control {
border: 2px solid #e9ecef;
border-radius: 10px;
padding: 1rem;
font-size: 1rem;
transition: all 0.3s ease;
}
.form-control:focus {
border-color: #4caf50;
box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25);
}
.btn-submit {
background: linear-gradient(135deg, #4caf50 0%, #45a049 100%);
color: white;
border: none;
border-radius: 10px;
padding: 1rem 2rem;
font-size: 1.1rem;
font-weight: 600;
transition: all 0.3s ease;
width: 100%;
margin-top: 1rem;
}
.btn-submit:hover {
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(76, 175, 80, 0.3);
}
.character-count {
text-align: right;
font-size: 0.875rem;
color: #6c757d;
margin-top: 0.5rem;
}
.info-section {
background: #f8f9fa;
border-radius: 10px;
padding: 1.5rem;
margin-bottom: 2rem;
border-left: 4px solid #4caf50;
display: none;
}
.info-item {
display: flex;
align-items: center;
margin-bottom: 0.5rem;
}
.info-item:last-child {
margin-bottom: 0;
}
.info-item i {
color: #4caf50;
margin-right: 0.75rem;
font-size: 1.1rem;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.contestation-container {
padding: 15px;
}
.contestation-card {
margin: 20px auto;
}
.contestation-header {
padding: 1.5rem;
}
.contestation-header h1 {
font-size: 1.5rem;
}
.contestation-body {
padding: 1.5rem;
}
}
@media (max-width: 576px) {
.contestation-container {
padding: 10px;
}
.contestation-header {
padding: 1.25rem;
}
.contestation-header h1 {
font-size: 1.3rem;
}
.contestation-body {
padding: 1.25rem;
}
.info-section {
padding: 1rem;
}
}
</style>
</head>
<body>
<div class="contestation-container">
<div class="contestation-card">
<div class="contestation-header">
<h1>
<i class="bi bi-clipboard-x me-2"></i>
<?= htmlspecialchars($title) ?>
</h1>
</div>
<div class="contestation-body">
<!-- Information Section -->
<div class="info-section">
<div class="info-item">
<i class="bi bi-info-circle"></i>
<strong><?= $codeLangue == 'en_US' ? 'Information:' : 'Information :' ?></strong>
</div>
<div class="info-item">
<i class="bi bi-building"></i>
<span><?= $codeLangue == 'en_US' ? 'Entity:' : 'Entité :' ?> <?= htmlspecialchars($codeEntite) ?></span>
</div>
<div class="info-item">
<i class="bi bi-person"></i>
<span><?= $codeLangue == 'en_US' ? 'Family ID:' : 'ID Famille :' ?> <?= htmlspecialchars($idAdherent) ?></span>
</div>
<div class="info-item">
<i class="bi bi-folder"></i>
<span><?= $codeLangue == 'en_US' ? 'Record:' : 'Dossier :' ?> <?= htmlspecialchars($dossier) ?></span>
</div>
</div>
<!-- Contestation Form -->
<form action="<?= $action ?>" method="post">
<div class="mb-4">
<label for="motifContestation" class="form-label required">
<?= htmlspecialchars($labelMotifContestation) ?>
</label>
<textarea
id="motifContestation"
name="motifContestation"
class="form-control border border-success"
rows="8"
required
placeholder="<?= htmlspecialchars($placeholder) ?>"
maxlength="1000"
oninput="updateCharacterCount(this)"></textarea>
<div class="character-count">
<span id="charCount">0</span>/1000 <?= $codeLangue == 'en_US' ? 'characters' : 'caractères' ?>
</div>
</div>
<button type="submit" class="btn-submit">
<i class="bi bi-send-check me-2"></i>
<?= htmlspecialchars($label) ?>
</button>
</form>
</div>
</div>
</div>
<script>
function updateCharacterCount(textarea) {
const charCount = textarea.value.length;
document.getElementById('charCount').textContent = charCount;
// Change color when approaching limit
const charCountElement = document.getElementById('charCount');
if (charCount > 900) {
charCountElement.style.color = '#dc3545';
charCountElement.style.fontWeight = 'bold';
} else if (charCount > 750) {
charCountElement.style.color = '#ffc107';
charCountElement.style.fontWeight = 'bold';
} else {
charCountElement.style.color = '#6c757d';
charCountElement.style.fontWeight = 'normal';
}
}
// Initialize character count on page load
document.addEventListener('DOMContentLoaded', function() {
const textarea = document.getElementById('motifContestation');
updateCharacterCount(textarea);
});
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

BIN
Cards/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

12
Cards/prod.ini Normal file
View File

@ -0,0 +1,12 @@
; Configuration pour la prodction
[Installation]
racineWeb = /
[BD]
Data Source Name
;En ligne
dsn = 'mysql:host=localhost;port=3306;dbname=bdfacturationsas;charset=utf8'
login = intersante
mdp = 7YmJfe89k7gQ68YB

View File

@ -16,6 +16,20 @@ class ControleurAjaxmessagerie extends Controleur
$deconnexion='0';
$dureeSession = (isset($_SESSION['dureeSession'])) ? $_SESSION['dureeSession'] : 10;
$session_expiree = session_expiree($dureeSession);
/*
var_dump(
array(
"dureeSession" => $_SESSION['dureeSession'],
"derniere_action" => $_SESSION['derniere_action'],
"dureeSession_time" => $_SESSION['dureeSession']*60,
"time" => time(),
"diff" => (time() - $_SESSION['derniere_action']),
"session_expiree" => $session_expiree,
)
);
*/
if($session_expiree)
{
session_destroy();

View File

@ -17,7 +17,7 @@ class ControleurConnexion extends Controleur
private $garantie;
private $societeusercentral;
private $menuvue;
private $menuvue;
public function __construct()
{
$this->utilisateur = new Utilisateur();
@ -770,7 +770,15 @@ class ControleurConnexion extends Controleur
$this->rediriger("Kine");
break;
default:
$this->rediriger("Recherche");
$carteAvecDonnees = $utilisateur['carteAvecDonnees'];
if($carteAvecDonnees=="1")
{
$this->rediriger("Rechercheparcarte");
}
else
{
$this->rediriger("Recherche");
}
}
}
}

View File

@ -0,0 +1,172 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Beneficiaire.php';
require_once 'Modele/Menuvueutilisateur.php';
class ControleurRechercheparcarte extends Controleur {
private $menuvue;
private $beneficiaire;
public function __construct() {
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue("Rechercheparcarte");
$this->beneficiaire = new Beneficiaire();
viderContexte();
$_SESSION['p_numeroBonOrdonnance_C'] = "-1";
$_SESSION['p_numeroBonExamen_C'] = "-1";
$_SESSION['p_numeroBonOptique_C'] = "-1";
$_SESSION['p_numeroBonKine_C'] = "-1";
$_SESSION['p_okId'] = "-1";
$_SESSION['p_okId_face'] = "-1";
$_SESSION["proforma"] = "0";
}
public function index()
{
$donneesCarte="";
if (!isset($msgErreur)){
$msgErreur="";
}
/*
var_dump(
array(
"msgErreur" => $msgErreur,
)
);
exit();
*/
$this->beneficiaire->getModeBiometrie();
$_SESSION['p_okId'] = "-1";
$_SESSION['p_okId_face'] = "-1";
$_SESSION['p_vueRetour'] = "Recherche";
$derniernumerobeneficiaires = 0;
$_SESSION['p_d1m_C'] = isset($_SESSION['p_d1m_C']) ? $_SESSION['p_d1m_C'] : $_SESSION['p_debutMois_C'] ;
$_SESSION['p_d2_C'] = isset($_SESSION['p_d2_C']) ? $_SESSION['p_d2_C'] : date('Y-m-d');
$_SESSION['etatFeuille'] = isset($_SESSION['etatFeuille']) ? $_SESSION['etatFeuille'] : '2';
$_SESSION['p_dEntente_C'] = isset($_SESSION['p_dEntente_C']) ? $_SESSION['p_dEntente_C'] : $_SESSION['p_debutMois_C'] ;
$_SESSION['etatEntente'] = isset($_SESSION['etatEntente']) ? $_SESSION['etatEntente'] : '2';
if(isset($_POST['donneesCarte']))
{
$versionTagCarteEncours = $this->beneficiaire->getVersionTagCarteEncours();
$donneesCarte = $_POST['donneesCarte']; // ex: "IS1|ebene|ESI6936000602|b18e7d5e-0ac2-11f1-a875-d05099ffadf8"|nfc => SVMx|ZWJlbmU=|RVNJNjkzNjAwMTcwMw==|b18e7d5e-0ac2-11f1-a875-d05099ffadf8|nfc
$parts = explode('|', $donneesCarte);
/*
var_dump(
array(
// "POST" => $_POST,
// "donneesCarte" => $donneesCarte,
"parts" => $parts,
)
);
exit();
*/
$versionTagCarte = base64_decode($parts[0]);
$codeEntite = base64_decode($parts[1]);
if (count($parts) !== 5 || $versionTagCarte !== $versionTagCarteEncours || $codeEntite != $_SESSION['p_codeSociete']) {
$msgErreur = 'Carte invalide / Invalid card';
}
else{
$numeroBeneficiaireCarte = base64_decode($parts[2]);
$tagUuid = $parts[3];
/*
var_dump(
array(
"versionTagCarteEncours" => $versionTagCarteEncours,
"versionTagCarte" => $versionTagCarte,
"codeEntite" => $codeEntite,
"numeroBeneficiaireCarte" => $numeroBeneficiaireCarte,
"tagUuid" => $tagUuid,
)
);
exit();
*/
if($codeEntite<=" " || $numeroBeneficiaireCarte<=" " || $tagUuid<=" ")
{
$msgErreur = 'Carte invalide / Invalid card';
}
else
{
$derniernumerobeneficiaires = $this->beneficiaire->getnumerobeneficiairesperdu($numeroBeneficiaireCarte);
/*
var_dump(
array(
"versionTagCarte" => $versionTagCarte,
"codeEntite" => $codeEntite,
"numeroBeneficiaireCarte" => $numeroBeneficiaireCarte,
"tagUuid" => $tagUuid,
)
);
exit();
*/
$beneficiaires = $this->beneficiaire->getBeneficiaireTag($versionTagCarte, $codeEntite, $numeroBeneficiaireCarte, $tagUuid);
$nbLignes = $beneficiaires->rowCount();
if($nbLignes==0)
{
$beneficiaires->closeCursor(); // Fermer le curseur
$msgErreur = "$numeroBeneficiaireCarte : Carte introuvable / Card not found";
/*
var_dump(
array(
"nbLignes" => $nbLignes,
"msgErreur" => $msgErreur,
)
);
exit();
*/
}
else
{
$beneficiaire = $beneficiaires->fetch(PDO::FETCH_ASSOC);
$beneficiaires->closeCursor(); // Fermer le curseur
/*
var_dump(
array(
"beneficiaire" => $beneficiaire,
"nbLignes" => $nbLignes,
)
);
exit();
*/
$_SESSION['p_idBeneficiaire_C'] = $beneficiaire['idBeneficiaire'];
$_SESSION['p_idBeneficiaire_sav'] = $_SESSION['p_idBeneficiaire_C'];
$this->rediriger("Fichebeneficiaire");
}
}
}
}
// var_dump($msgErreur);
// exit();
$this->genererVue(array('msgErreur' => $msgErreur));
}
}

View File

@ -1,14 +1,16 @@
<?php
require_once 'Functions.php';
require_once 'Societeusercentral.php';
class Cronnettoyerfihierstemp
{
private $societeusercentral;
public function __construct()
{
// $this->societeusercentral = new Societeusercentral();
}
// function suppression($dossier_traite , $extension_choisie, $age_requis)
function suppression($dossier_traite , $age_requis)
{
$repertoire = opendir($dossier_traite);
@ -19,20 +21,10 @@ class Cronnettoyerfihierstemp
$infos = pathinfo($chemin);
// $extension = $infos['extension'];
$age_fichier = time() - filemtime($chemin);
// if($fichier!="." AND $fichier!=".." AND !is_dir($fichier)
// $extension == $extension_choisie AND $age_fichier > $age_requis)
/*
echo "Chemai, : ".$chemin." Age : ".$age_fichier;
echo "<br>";
*/
if($fichier!="." AND $fichier!=".." AND !is_dir($fichier) AND $age_fichier > $age_requis)
if($fichier!="." AND $fichier!=".." AND !is_dir($chemin) AND $age_fichier > $age_requis)
{
unlink($chemin);
}
@ -66,11 +58,51 @@ class Cronnettoyerfihierstemp
}
$nettoyerfihierstemp = new Cronnettoyerfihierstemp();
$nettoyerfihierstemp = new Cronnettoyerfihierstemp();
$societeusercentral = (new Societeusercentral())->getSocieteuserSaas();
/* KANE => maj 14/02/2026
$nettoyerfihierstemp->suppression( "../Temp" , "3600" );
$nettoyerfihierstemp->suppression( "../Temp/import" , "432000" );
*/
$tempProduction = $societeusercentral['tempProduction'];
$tempPrestation = $societeusercentral['tempPrestation'];
$tempGarant = $societeusercentral['tempGarant'];
$tempAssure = $societeusercentral['tempAssure'];
$tempRh = $societeusercentral['tempRh'];
/*
var_dump(
array(
"tempProduction" => $tempProduction,
"tempPrestation" =>$tempPrestation,
"tempGarant" => $tempGarant,
"tempAssure" => $tempAssure,
"tempRh" => $tempRh
)
);
exit();
*/
// Production
$nettoyerfihierstemp->suppression($tempProduction."/Temp" , "3600" );
$nettoyerfihierstemp->suppression($tempProduction."/Temp/import" , "432000" );
// Prestation
$nettoyerfihierstemp->suppression($tempPrestation."/Temp" , "3600" );
$nettoyerfihierstemp->suppression($tempPrestation."/Temp/import" , "432000" );
// Garant
$nettoyerfihierstemp->suppression($tempGarant."/Temp" , "3600" );
$nettoyerfihierstemp->suppression($tempGarant."/Temp/import" , "432000" );
// Assure
$nettoyerfihierstemp->suppression($tempAssure."/Temp" , "3600" );
$nettoyerfihierstemp->suppression($tempAssure."/Temp/import" , "432000" );
// RH
$nettoyerfihierstemp->suppression($tempRh."/Temp" , "3600" );
$nettoyerfihierstemp->suppression($tempRh."/Temp/import" , "432000" );
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,63 +1,103 @@
<?php //ICB0 81:0 82:bb0 ?><?php //002cd
<?php //ICB0 71:0 81:d29 82:16fb ?><?php //002cd
if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199);
?>
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
0/DscIXTNQXK+qFKBSISuXuqLOxZkztEb8m==
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
lwThnMvN
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
jAehVfImOjaXCRIDYTAGlkLNTri==
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=
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

View File

@ -22677,7 +22677,7 @@ function creerbonhospitalisation()
var div_patientez = $('#div_patientez');
div_patientezhtml('<div style="padding-top:80px; text-align:center; font-size:14px; color: #4caf50;"><span><i class="fa fa-spinner fa-spin fa-5x" >' + '</span></div>');
div_patientez.html('<div style="padding-top:80px; text-align:center; font-size:14px; color: #4caf50;"><span><i class="fa fa-spinner fa-spin fa-5x" >' + '</span></div>');
$.ajax({

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1301,5 +1301,19 @@ public function getTarifActeAdherent($idAdherent)
$this->executerRequete($sql, array($idOtpprestation, $otpStatus, $user));
}
public function getVersionTagCarteEncours() {
$sql = 'SELECT versionTagCarte FROM societeuser LIMIT 1;';
$resultat = $this->executerRequete($sql);
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
return $ligne['versionTagCarte'];
}
public function getBeneficiaireTag($versionTagCarte, $codeEntite, $numeroBeneficiaireCarte, $tagUuid)
{
$sql = 'call sp_p_get_beneficiaire_tag(?, ?, ?, ?);';
$beneficiaire = $this->executerRequete($sql, array($versionTagCarte, $codeEntite, $numeroBeneficiaireCarte, $tagUuid));
return $beneficiaire;
}
}

View File

@ -74,7 +74,6 @@ class Utilisateur extends Modele {
$_SESSION['p_lang'] = $codeNewLang;
setcookie('lang', $codeNewLang, time()+365*24*3600, '/');
$_SESSION['p_lang'] = $codeNewLang;
}
public function verifiermotpassdefaut($codeSociete, $mdp)

View File

@ -7,7 +7,7 @@
?>
<span class="login100-form-title" style="font-family: Play-Bold; color:#e5e5e5; margin-top: 12px; margin-bottom:10px;">
Centralized Service Provider Portal
Service Provider Portal
</span>
<?php if (isset($msgErreur) and $msgErreur>" "): ?>
@ -25,9 +25,9 @@
<?php if($maintenance!='1'): ?>
<div class="wrap-input100">
<label for="langue">Language</label>
<select class="selectpicker" data-live-search="true" id="langue" NAME="langue" style="text-align:center;" required AUTOCOMPLETE="OFF"
<select class="selectpicker" id="langue" NAME="langue" style="text-align:center;" required AUTOCOMPLETE="OFF"
onChange="javascript:changer_langue_connexion();" >
<?php liste_options($langues, $_SESSION['p_lang']); ?>
<?php liste_options($langues, $_SESSION['p_lang'], true); ?>
</SELECT>
</div>

View File

@ -12,13 +12,11 @@
</style>
<span class="login100-form-title" style="font-family: Play-Bold; color:#e5e5e5; margin-top: 12px; margin-bottom:10px;">
Portail Prestataire centralisé
Portail Prestataire
</span>
<?php if (isset($msgErreur) and $msgErreur>" "): ?>
<!-- <div class="text-center p-t-70"> -->
<div class="text-center p-t-10">
<!-- <h4 class="txt1"> -->
<h4 class="txt3">
<div class="col-12 alert alert-danger">
<?= $msgErreur ?>
@ -30,15 +28,15 @@
<?php if($maintenance!='1'): ?>
<div class="wrap-input100">
<label for="langue">Langue</label>
<select class="selectpicker" data-live-search="true" id="langue" NAME="langue" style="text-align:center;" required AUTOCOMPLETE="OFF"
<select class="selectpicker" id="langue" NAME="langue" style="text-align:center;align-items: center;" required AUTOCOMPLETE="OFF"
onChange="javascript:changer_langue_connexion();" >
<?php liste_options($langues, $_SESSION['p_lang']); ?>
</SELECT>
<?php liste_options($langues, $_SESSION['p_lang'], true); ?>
</SELECT>
</div>
<div class="wrap-input100">
<label for="codeSociete">Entité</label>
<select class="selectpicker" data-live-search="true" id="codeSociete" NAME="codeSociete" style="text-align:center;" required AUTOCOMPLETE="OFF"
<select class="selectpicker" id="codeSociete" NAME="codeSociete" style="text-align:center;" required AUTOCOMPLETE="OFF"
onChange="javascript:changer_entite_portail();" >
<?php liste_options($societeusers, $codeSociete); ?>
</SELECT>

View File

@ -22,7 +22,7 @@
</tbody>
</table>
<?php if (isset($msgErreur)): ?>
<?php if (): ?>
<?php if ($codeEtatBon=="1"): ?>
<div id ="msgErreur" class="alert alert-success" style="height:38px; padding:5px;">
<H4><?= $msgErreur ?></H4>

View File

@ -110,9 +110,11 @@
}
$lienPhoto = "";
$handle = null;
if($_SESSION['p_lienPhoto_C']>" " && $faceRegistered=="1")
{
$lienPhoto = $_SESSION['p_dossierPhoto_C'].$_SESSION['p_dossierSociete'].'/Photos/'.$_SESSION['p_lienPhoto_C'];
// $lienPhoto = $_SESSION['p_dossierPhoto_C'].$_SESSION['p_dossierSociete'].'/Photos/'.$_SESSION['p_lienPhoto_C'];
$lienPhoto = $_SESSION['p_lienPhotoFace'].$_SESSION['p_lienPhoto_C'];
// Vérifie si le fichier existe en essayant de l'ouvrir
$handle = @fopen($lienPhoto, "r");
if ($handle) {
@ -125,6 +127,21 @@
{
$faceRegistered="0";
}
/*
var_dump
(
array
(
"faceRegistered" => $faceRegistered,
"p_lienPhoto_C" => $_SESSION['p_lienPhoto_C'],
"p_dossierPhoto_C" => $_SESSION['p_dossierPhoto_C'],
"p_dossierSociete" => $_SESSION['p_dossierSociete'],
"handle" => $handle,
)
);
*/
$activerOtp = $_SESSION['p_activerOtpPrestations_C'];
$otpStatus = $this->nettoyer($beneficiaire['otpStatus']);
@ -174,7 +191,7 @@
<!-- Icône d'aide simple (?) -->
<span class="help-icon" data-bs-toggle="modal" data-bs-target="#helpModal">?</span>
</legend>
<!-- ------------------- -->
<h5 class="alert alert-danger" style="height:35px; padding:5px; text-align:center; margin-bottom:5px;"><?= _("Patient") ." (". $beneficiaire['numeroBeneficiaire'] . ") => " . _("Effet") . " : " . dateLang($this->nettoyer($beneficiaire['dateEffetBeneficiaire']), $_SESSION['p_lang'])." => ". _("Garant") . " : " .$garant." => ".$produit ?></h5>
<?php if($_SESSION['p_vip_C']=="1"): ?>

143
Vue/Rechercheparcarte/index.php Executable file
View File

@ -0,0 +1,143 @@
<?php
$this->titre = "INTER-SANTE - "._("Recherche du patient par carte") ;
?>
<style>
/* Masquage du texte */
#donneesCarte {
color: transparent !important;
text-shadow: 0 0 8px rgba(0,0,0,0.5) !important;
user-select: none !important;
}
#donneesCarte::placeholder {
color: #6c757d !important;
text-shadow: none !important;
}
/* Animation lors de la saisie */
#donneesCarte.reading {
border-color: #4caf50 !important;
box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25) !important;
animation: pulse-border 1s infinite;
}
@keyframes pulse-border {
0%, 100% { border-color: #4caf50; }
50% { border-color: #66bb6a; }
}
/* Indicateur visuel simple */
.reading-indicator {
display: none;
text-align: center;
color: #4caf50;
font-size: 18px;
margin-top: 10px;
}
.reading-indicator.active {
display: block;
}
</style>
<form id="frmrechercheparcarte" name="frmrechercheparcarte" method="post" action="Rechercheparcarte/index/">
<INPUT style='font-size:40pt; height: 50px; text-align: center;'
class="form-control"
TYPE="text"
id="donneesCarte"
name="donneesCarte"
autofocus
AUTOCOMPLETE="OFF"
placeholder="<?= _("Veuillez scanner la carte NFC ou le QR code!")?>">
<div class="reading-indicator" id="reading-indicator">
<i class="fa fa-check-circle"></i> <span id="indicator-text"><?= _("Carte détectée") ?></span>
</div>
<input id="lancerrechercheparcarte" name="lancerrechercheparcarte" class="sr-only" type="submit" value="<?= _("Rechercher") ?>" >
</form>
<div id="div_wait_nfc"></div>
<?php if (isset($msgErreur) && $msgErreur>" "): ?>
<div class="alert alert-danger" style="height:38px; padding:5px; text-align: center;">
<H4><?= $msgErreur ?></H4>
</div>
<?php endif; ?>
<script>
const inputField = document.getElementById('donneesCarte');
const indicator = document.getElementById('reading-indicator');
const indicatorText = document.getElementById('indicator-text');
// Protection
inputField.addEventListener('contextmenu', e => e.preventDefault());
inputField.addEventListener('copy', e => e.preventDefault());
inputField.addEventListener('cut', e => e.preventDefault());
// ========== MAINTIEN DU FOCUS (Solution combinée optimale) ==========
// 1. Empêcher la perte de focus
inputField.addEventListener('blur', function(e) {
setTimeout(() => this.focus(), 10);
});
// 2. Surveillance par intervalle (backup)
const focusInterval = setInterval(function() {
if (document.activeElement !== inputField && !document.hidden) {
inputField.focus();
}
}, 200);
// 3. Capturer toutes les touches vers le champ
document.addEventListener('keydown', function(e) {
if (!e.ctrlKey && !e.altKey && !e.metaKey && document.activeElement !== inputField) {
inputField.focus();
}
});
// Nettoyage à la soumission du formulaire
document.getElementById('frmrechercheparcarte').addEventListener('submit', function() {
clearInterval(focusInterval);
});
// Détection du type de scan
function detectScanType(value) {
if (value.endsWith('qr')) {
return 'qr';
}
return 'nfc';
}
inputField.addEventListener('input', function() {
if (this.value.length > 0) {
this.classList.add('reading');
indicator.classList.add('active');
const type = detectScanType(this.value);
indicatorText.textContent = type === 'qr'
? '<?= _("QR code détecté") ?>'
: '<?= _("Carte détectée") ?>';
} else {
this.classList.remove('reading');
indicator.classList.remove('active');
}
});
inputField.addEventListener('change', function () {
// alert(this.value);
if (this.value.length > 3) {
const type = detectScanType(this.value);
const message = type === 'qr'
? '<?= _("Traitement du QR code...") ?>'
: '<?= _("Lecture de la carte...") ?>';
$('#div_wait_nfc').html('<div style="padding-top:80px; text-align:center; font-size:14px; color: #4caf50;"><span><i class="fa fa-spinner fa-spin fa-5x"></i></span><p style="margin-top:20px;">' + message + '</p></div>');
this.form.submit();
}
});
// Focus initial
window.addEventListener('load', () => inputField.focus());
document.addEventListener('DOMContentLoaded', () => inputField.focus());
</script>

View File

@ -0,0 +1,98 @@
<?php
$this->titre = "INTER-SANTE - "._("Recherche du patient par carte") ;
?>
<style>
/* Masquage du texte */
#donneesCarte {
color: transparent !important;
text-shadow: 0 0 8px rgba(0,0,0,0.5) !important;
user-select: none !important;
}
#donneesCarte::placeholder {
color: #6c757d !important;
text-shadow: none !important;
}
/* Animation lors de la saisie */
#donneesCarte.reading {
border-color: #4caf50 !important;
box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25) !important;
animation: pulse-border 1s infinite;
}
@keyframes pulse-border {
0%, 100% { border-color: #4caf50; }
50% { border-color: #66bb6a; }
}
/* Indicateur visuel simple */
.reading-indicator {
display: none;
text-align: center;
color: #4caf50;
font-size: 18px;
margin-top: 10px;
}
.reading-indicator.active {
display: block;
}
</style>
<form id="frmrechercheparcarte" name="frmrechercheparcarte" method="post" action="Rechercheparcarte/index/">
<INPUT style='font-size:40pt; height: 50px; text-align: center;'
class="form-control"
TYPE="text"
id="donneesCarte"
name="donneesCarte"
autofocus
AUTOCOMPLETE="OFF"
placeholder="<?= _("Veuillez scanner la carte NFC!")?>">
<div class="reading-indicator" id="reading-indicator">
<i class="fa fa-check-circle"></i> <?= _("Carte détectée") ?>
</div>
<input id="lancerrechercheparcarte" name="lancerrechercheparcarte" class="sr-only" type="submit" value="<?= _("Rechercher") ?>" >
</form>
<div id ="div_wait_nfc"> </div>
<?php if (isset($msgErreur) && $msgErreur>" "): ?>
<div class="alert alert-danger" style="height:38px; padding:5px; text-align: center;">
<H4><?= $msgErreur ?></H4>
</div>
<?php endif; ?>
<script>
const inputField = document.getElementById('donneesCarte');
const indicator = document.getElementById('reading-indicator');
// Protection
inputField.addEventListener('contextmenu', e => e.preventDefault());
inputField.addEventListener('copy', e => e.preventDefault());
inputField.addEventListener('cut', e => e.preventDefault());
// Feedback visuel pendant la saisie
inputField.addEventListener('input', function() {
if (this.value.length > 0) {
this.classList.add('reading');
indicator.classList.add('active');
} else {
this.classList.remove('reading');
indicator.classList.remove('active');
}
});
// Votre logique existante
inputField.addEventListener('change', function () {
// alert(this.value);
if (this.value.length > 3) {
var div_wait_nfc = $('#div_wait_nfc');
div_wait_nfc.html('<div style="padding-top:80px; text-align:center; font-size:14px; color: #4caf50;"><span><i class="fa fa-spinner fa-spin fa-5x" >' + '</span></div>');
this.form.submit();
}
});
</script>

View File

@ -0,0 +1,126 @@
<?php
$this->titre = "INTER-SANTE - "._("Recherche du patient par carte") ;
?>
<style>
/* Masquage du texte */
#donneesCarte {
color: transparent !important;
text-shadow: 0 0 8px rgba(0,0,0,0.5) !important;
user-select: none !important;
}
#donneesCarte::placeholder {
color: #6c757d !important;
text-shadow: none !important;
}
/* Animation lors de la saisie */
#donneesCarte.reading {
border-color: #4caf50 !important;
box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25) !important;
animation: pulse-border 1s infinite;
}
@keyframes pulse-border {
0%, 100% { border-color: #4caf50; }
50% { border-color: #66bb6a; }
}
/* Indicateur visuel simple */
.reading-indicator {
display: none;
text-align: center;
color: #4caf50;
font-size: 18px;
margin-top: 10px;
}
.reading-indicator.active {
display: block;
}
</style>
<form id="frmrechercheparcarte" name="frmrechercheparcarte" method="post" action="Rechercheparcarte/index/">
<INPUT style='font-size:40pt; height: 50px; text-align: center;'
class="form-control"
TYPE="text"
id="donneesCarte"
name="donneesCarte"
autofocus
AUTOCOMPLETE="OFF"
placeholder="<?= _("Veuillez scanner la carte NFC ou le QR code!")?>">
<div class="reading-indicator" id="reading-indicator">
<i class="fa fa-check-circle"></i> <span id="indicator-text"><?= _("Carte détectée") ?></span>
</div>
<input id="lancerrechercheparcarte" name="lancerrechercheparcarte" class="sr-only" type="submit" value="<?= _("Rechercher") ?>" >
</form>
<div id="div_wait_nfc"></div>
<?php if (isset($msgErreur) && $msgErreur>" "): ?>
<div class="alert alert-danger" style="height:38px; padding:5px; text-align: center;">
<H4><?= $msgErreur ?></H4>
</div>
<?php endif; ?>
<script>
const inputField = document.getElementById('donneesCarte');
const indicator = document.getElementById('reading-indicator');
const indicatorText = document.getElementById('indicator-text');
// Protection
inputField.addEventListener('contextmenu', e => e.preventDefault());
inputField.addEventListener('copy', e => e.preventDefault());
inputField.addEventListener('cut', e => e.preventDefault());
// Détection du type de scan
function detectScanType(value) {
if (value.endsWith('qr') {
return 'qr';
}
return 'nfc';
}
// Feedback visuel pendant la saisie
inputField.addEventListener('input', function() {
if (this.value.length > 0) {
this.classList.add('reading');
indicator.classList.add('active');
// Mise à jour du texte selon le type détecté
const type = detectScanType(this.value);
if (type === 'qr') {
indicatorText.textContent = '<?= _("QR code détecté") ?>';
} else {
indicatorText.textContent = '<?= _("Carte détectée") ?>';
}
} else {
this.classList.remove('reading');
indicator.classList.remove('active');
}
});
// Soumission automatique du formulaire
inputField.addEventListener('change', function () {
alert(this.value);
retur;
if (this.value.length > 3) {
const type = detectScanType(this.value);
const message = type === 'qr'
? '<?= _("Traitement du QR code...") ?>'
: '<?= _("Lecture de la carte...") ?>';
var div_wait_nfc = $('#div_wait_nfc');
div_wait_nfc.html('<div style="padding-top:80px; text-align:center; font-size:14px; color: #4caf50;"><span><i class="fa fa-spinner fa-spin fa-5x"></i></span><p style="margin-top:20px;">' + message + '</p></div>');
this.form.submit();
}
});
// Focus automatique sur le champ (utile après rafraîchissement)
window.addEventListener('load', function() {
inputField.focus();
});
</script>

View File

@ -0,0 +1,98 @@
<?php
$this->titre = "INTER-SANTE - "._("Recherche du patient par carte") ;
?>
<style>
/* Masquage du texte */
#donneesCarte {
color: transparent !important;
text-shadow: 0 0 8px rgba(0,0,0,0.5) !important;
user-select: none !important;
}
#donneesCarte::placeholder {
color: #6c757d !important;
text-shadow: none !important;
}
/* Animation lors de la saisie */
#donneesCarte.reading {
border-color: #4caf50 !important;
box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25) !important;
animation: pulse-border 1s infinite;
}
@keyframes pulse-border {
0%, 100% { border-color: #4caf50; }
50% { border-color: #66bb6a; }
}
/* Indicateur visuel simple */
.reading-indicator {
display: none;
text-align: center;
color: #4caf50;
font-size: 18px;
margin-top: 10px;
}
.reading-indicator.active {
display: block;
}
</style>
<form id="frmrechercheparcarte" name="frmrechercheparcarte" method="post" action="Rechercheparcarte/index/">
<INPUT style='font-size:40pt; height: 50px; text-align: center;'
class="form-control"
TYPE="text"
id="donneesCarte"
name="donneesCarte"
autofocus
AUTOCOMPLETE="OFF"
placeholder="<?= _("Veuillez scanner la carte NFC!")?>">
<div class="reading-indicator" id="reading-indicator">
<i class="fa fa-check-circle"></i> <?= _("Carte détectée") ?>
</div>
<input id="lancerrechercheparcarte" name="lancerrechercheparcarte" class="sr-only" type="submit" value="<?= _("Rechercher") ?>" >
</form>
<div id ="div_wait_nfc"> </div>
<?php if (isset($msgErreur) && $msgErreur>" "): ?>
<div class="alert alert-danger" style="height:38px; padding:5px; text-align: center;">
<H4><?= $msgErreur ?></H4>
</div>
<?php endif; ?>
<script>
const inputField = document.getElementById('donneesCarte');
const indicator = document.getElementById('reading-indicator');
// Protection
inputField.addEventListener('contextmenu', e => e.preventDefault());
inputField.addEventListener('copy', e => e.preventDefault());
inputField.addEventListener('cut', e => e.preventDefault());
// Feedback visuel pendant la saisie
inputField.addEventListener('input', function() {
if (this.value.length > 0) {
this.classList.add('reading');
indicator.classList.add('active');
} else {
this.classList.remove('reading');
indicator.classList.remove('active');
}
});
// Votre logique existante
inputField.addEventListener('change', function () {
// alert(this.value);
if (this.value.length > 3) {
var div_wait_nfc = $('#div_wait_nfc');
div_wait_nfc.html('<div style="padding-top:80px; text-align:center; font-size:14px; color: #4caf50;"><span><i class="fa fa-spinner fa-spin fa-5x" >' + '</span></div>');
this.form.submit();
}
});
</script>

View File

@ -0,0 +1,66 @@
<?php
$this->titre = "INTER-SANTE - "._("Recherche du patient par carte") ;
?>
<form id="frmrechercheparcarte" name="frmrechercheparcarte" method="post" action="Rechercheparcarte/index/">
<INPUT style='font-size:40pt;height: 50px;' class="form-control" TYPE="text" id="donneesCarte" name="donneesCarte" autofocus AUTOCOMPLETE="OFF" placeholder="<?= _("Veuillez scanner la carte NFC!")?>">
<input id="lancerrechercheparcarte" name="lancerrechercheparcarte" class="sr-only" type="submit" value="<?= _("Rechercher") ?>" >
</form>
<?php if (isset($msgErreur) && $msgErreur>" "): ?>
<div class="alert alert-danger" style="height:38px; padding:5px;" >
<H4><?= $msgErreur ?></H4>
</div>
<?php endif; ?>
<!--
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
const input = document.getElementById('donneesCarte');
const form = document.getElementById('frmrechercheparcarte');
let buffer = '';
let timer = null;
// Capture globale (lecteur NFC = clavier)
document.addEventListener('keydown', function (e) {
// ENTER → soumission immédiate
if (e.key === 'Enter') {
if (buffer.length > 0) {
input.value = buffer;
buffer = '';
form.submit();
}
e.preventDefault();
return;
}
// Ignorer touches spéciales
if (e.key.length > 1) return;
// Accumuler caractères scannés
buffer += e.key;
// Reset après 300 ms d'inactivité (sécurité)
clearTimeout(timer);
timer = setTimeout(() => {
if (buffer.length > 0) {
input.value = buffer;
buffer = '';
form.submit();
}
}, 300);
});
});
</script>
-->
<script>
document.getElementById('donneesCarte').addEventListener('change', function () {
if (this.value.length > 3) {
alert("submit");
this.form.submit();
}
});
</script>

View File

@ -0,0 +1,66 @@
<?php
$this->titre = "INTER-SANTE - "._("Recherche du patient par carte") ;
?>
<form id="frmrechercheparcarte" name="frmrechercheparcarte" method="post" action="Rechercheparcarte/index/">
<INPUT style='font-size:40pt;height: 50px;' class="form-control" TYPE="text" id="donneesCarte" name="donneesCarte" autofocus AUTOCOMPLETE="OFF" placeholder="<?= _("Veuillez scanner la carte NFC!")?>">
<input id="lancerrechercheparcarte" name="lancerrechercheparcarte" class="sr-only" type="submit" value="<?= _("Rechercher") ?>" >
</form>
<?php if (isset($msgErreur) && $msgErreur>" "): ?>
<div class="alert alert-danger" style="height:38px; padding:5px;" >
<H4><?= $msgErreur ?></H4>
</div>
<?php endif; ?>
<!--
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
const input = document.getElementById('donneesCarte');
const form = document.getElementById('frmrechercheparcarte');
let buffer = '';
let timer = null;
// Capture globale (lecteur NFC = clavier)
document.addEventListener('keydown', function (e) {
// ENTER → soumission immédiate
if (e.key === 'Enter') {
if (buffer.length > 0) {
input.value = buffer;
buffer = '';
form.submit();
}
e.preventDefault();
return;
}
// Ignorer touches spéciales
if (e.key.length > 1) return;
// Accumuler caractères scannés
buffer += e.key;
// Reset après 300 ms d'inactivité (sécurité)
clearTimeout(timer);
timer = setTimeout(() => {
if (buffer.length > 0) {
input.value = buffer;
buffer = '';
form.submit();
}
}, 300);
});
});
</script>
-->
<script>
document.getElementById('donneesCarte').addEventListener('change', function () {
if (this.value.length > 3) {
alert("submit");
this.form.submit();
}
});
</script>

View File

@ -464,21 +464,36 @@
</a><!-- End Notification Icon -->
</li>
<li class="nav-item">
<a title="<?= _("Gestionnaire d'assurance santé");?>" style="margin-left:10px; margin-right:10px;" class="nav-link nav-icon" href="javascript:alert_ebene('<?=$_SESSION['p_nomSociete']?>','<?=$_SESSION['p_nomSociete']?>');">
<img src="<?= $_SESSION['p_lienLogo'] ?>" alt="Profile" style="width:100px;max-height: 60px;" class="rounded-circle">
<span > <?=$companyDisplayName?> </span>
<a title="<?= _("Gestionnaire d'assurance santé");?>"
style="margin-left:10px; margin-right:10px;"
class="nav-link nav-icon d-flex align-items-center"
href="javascript:alert_ebene('<?=$_SESSION['p_nomSociete']?>','<?=$_SESSION['p_nomSociete']?>');">
<img src="<?= $_SESSION['p_lienLogo'] ?>"
alt="Profile"
style="max-height:40px;"
<span class="text-truncate d-inline-block" style="max-width:300px;">
<?=$companyDisplayName?>
</span>
</a>
</a>
</li>
<li class="nav-item">
<a title="<?= _("Prestataire conventionné");?>" style="margin-left:10px; margin-right:10px;" class="nav-link nav-icon" href="javascript:alert_ebene('<?=$_SESSION['p_prestataire_C']?>','<?=$_SESSION['p_prestataire_C']?>');">
<i class="bi bi-shop"></i>
<span ><?=$_SESSION['p_prestataire_C']?></span>
</a>
<a title="<?= _("Prestataire conventionné");?>"
class="nav-link nav-icon d-flex align-items-center"
style="margin-left:10px; margin-right:10px;"
href="javascript:alert_ebene('<?=$_SESSION['p_prestataire_C']?>','<?=$_SESSION['p_prestataire_C']?>');">
<i class="bi bi-shop"></i>
<span class="text-truncate flex-grow-1" style="max-width:200px;">
<?=$_SESSION['p_prestataire_C']?>
</span>
</a>
</li>
<li class="nav-item dropdown pe-3">
@ -620,11 +635,6 @@
<div id="contenu">
<div id="div_test_gabarit">
</div>
<?php
?>
<?= $contenu ?>
</div>
</section>
@ -877,7 +887,7 @@
<!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.css" integrity="sha512-3pIirOrwegjM6erE5gPSwkUzO+3cTjpnV9lexlNZqvupR64iZBnOOTiiLPb9M36zpMScbmUNIcHUqKD47M719g==" crossorigin="anonymous" referrerpolicy="no-referrer" />-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js" integrity="sha512-VEd+nq25CkR676O+pLBnDW09R7VQX9Mdiij052gVCp5yVH3jGtH70Ho/UUv4mJDsEdTvqRCFZg0NKGiojGnUCw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="Js/fonctions.js?ver=2025.10.31.00"></script>
<script src="Js/fonctions.js?ver=2026.02.11.00"></script>
<script src="Bootstrap/js/bootstrap.min.js"></script>
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>

View File

@ -180,7 +180,7 @@
.wrap-input100 {
text-align: center !important;
/* border:solid; */
margin-bottom: 15px !important;
margin-bottom: 5px !important;
}
.wrap-input100 input {

View File

@ -0,0 +1,18 @@
#!/bin/bash
# Prestataire : De DEV vers PREPROD
SOURCE="/var/www/html/prestation/"
DEST="/var/www/html/preprestataire/"
EXCLUDES=(
"--exclude=assets/icons"
"--exclude=Config"
"--exclude=Temp"
"--exclude=Cron/prod.ini"
"--exclude=vendor"
"--exclude=Societes/ebene/Docs"
"--exclude=Societes/ebene/Ged"
"--exclude=Societes/ebene/images"
)
# Commande rsync
rsync -avz --delete "${EXCLUDES[@]}" "$SOURCE" "$DEST"