From 35a23f6145bb772b9bfa8c8eeb500aa8c02437d3 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Thu, 5 Jul 2018 00:28:24 +0200 Subject: Version awor_1.0_20070316.tar.bz2 --- final/app/admin.php | 2 +- final/app/apropos.php | 14 +- final/app/auth_dialog.php | 8 +- final/app/css/ice_img/logo.png | Bin 5040 -> 1437 bytes final/app/css/ice_img/titre.png | Bin 23658 -> 5391 bytes final/app/css/ice_moche_img/logo.png | Bin 5040 -> 1437 bytes final/app/css/ice_moche_img/titre.png | Bin 23658 -> 5391 bytes final/app/css/index.html | 0 final/app/details_reunion.php | 23 +- final/app/help/admin.php.hlp | 28 +- final/app/help/astuce_apparence.php.hlp | 2 +- final/app/help/astuce_deconnexion.php.hlp | 3 +- final/app/help/astuce_ical.php.hlp | 2 +- final/app/help/details_reunion.php.hlp | 12 +- final/app/help/details_reunion_admin.php.hlp | 2 +- final/app/help/details_reunion_new.php.hlp | 14 + final/app/help/index.html | 0 final/app/help/index.php.hlp | 8 +- final/app/help/listes_delete.php.hlp | 4 +- final/app/help/listes_modif.php.hlp | 4 +- final/app/help/listes_new.php.hlp | 2 +- final/app/help/profil.php.hlp | 2 +- final/app/help/profil_loginMethode.php.hlp | 2 +- final/app/help/reunion_admin_annuler.php.hlp | 3 +- final/app/help/reunion_admin_creneaux.php.hlp | 18 + final/app/help/reunion_admin_creneaux.php.hlp~ | 0 final/app/help/reunion_admin_dispo.php.hlp | 6 +- final/app/help/reunion_admin_fichier.php.hlp | 16 + final/app/help/reunion_admin_mail.php.hlp | 9 + final/app/help/reunion_admin_participants.php.hlp | 29 + final/app/help/reunion_commentaire.php.hlp | 10 + final/app/help/reunion_detail.php.hlp | 2 +- final/app/help/reunion_dispo.php.hlp | 9 + final/app/help/reunion_fichier.php.hlp | 16 + final/app/help/reunion_new.php.hlp | 2 +- final/app/help/sendmail.php.hlp | 11 +- final/app/images/index.html | 0 final/app/include/je.inc.php | 2 +- final/app/include/ju.inc.php | 2 +- final/app/include/ludo/TODO_list.txt | 24 - final/app/include/ludo/config.inc.php | 2 +- final/app/include/ludo/fonctions.inc.php | 255 ++- final/app/include/ludo/index.html | 0 final/app/include/ludo/mail_textarea.php | 3 +- final/app/index.php | 55 +- final/app/profil.php | 65 +- final/app/sendmail.php | 31 +- final/app/templates/index.html | 0 final/corr_accents.sh | 2 - final/doc/Manuel Utilisateur.odt | Bin 0 -> 796348 bytes final/doc/Manuel Utilisateur.pdf | Bin 0 -> 812553 bytes final/doc/READ_ME.css | 109 - final/doc/READ_ME.dvi | Bin 16892 -> 0 bytes final/doc/READ_ME.html | 469 ---- final/doc/READ_ME.lyx | 582 ----- final/doc/READ_ME.pdf | Bin 77548 -> 0 bytes final/doc/READ_ME.ps | 2436 --------------------- final/doc/READ_ME.txt | 277 --- final/install/RAZbase.php | 2 +- final/install/READ_ME.css | 116 + final/install/READ_ME.dvi | Bin 0 -> 38632 bytes final/install/READ_ME.html | 447 ++++ final/install/READ_ME.lyx | 600 +++++ final/install/READ_ME.pdf | Bin 0 -> 88222 bytes final/install/READ_ME.ps | 830 +++++++ final/install/READ_ME.txt | 278 +++ final/install/index.html | 0 final/install/jeu_essai.sql | 116 +- final/sed.rl | 6 - final/sed.sh | 14 - final/test.txt | 1 - final/test.txt_bkp | 1 - final/test.txt_old | 1 - final/upload_files/index.html | 0 74 files changed, 2966 insertions(+), 4023 deletions(-) create mode 100644 final/app/css/index.html create mode 100644 final/app/help/details_reunion_new.php.hlp create mode 100644 final/app/help/index.html create mode 100644 final/app/help/reunion_admin_creneaux.php.hlp create mode 100644 final/app/help/reunion_admin_creneaux.php.hlp~ create mode 100644 final/app/help/reunion_admin_fichier.php.hlp create mode 100644 final/app/help/reunion_admin_mail.php.hlp create mode 100644 final/app/help/reunion_admin_participants.php.hlp create mode 100644 final/app/help/reunion_commentaire.php.hlp create mode 100644 final/app/help/reunion_dispo.php.hlp create mode 100644 final/app/help/reunion_fichier.php.hlp create mode 100644 final/app/images/index.html delete mode 100644 final/app/include/ludo/TODO_list.txt create mode 100644 final/app/include/ludo/index.html create mode 100644 final/app/templates/index.html delete mode 100644 final/corr_accents.sh create mode 100644 final/doc/Manuel Utilisateur.odt create mode 100644 final/doc/Manuel Utilisateur.pdf delete mode 100644 final/doc/READ_ME.css delete mode 100644 final/doc/READ_ME.dvi delete mode 100644 final/doc/READ_ME.html delete mode 100644 final/doc/READ_ME.lyx delete mode 100644 final/doc/READ_ME.pdf delete mode 100644 final/doc/READ_ME.ps delete mode 100644 final/doc/READ_ME.txt create mode 100644 final/install/READ_ME.css create mode 100644 final/install/READ_ME.dvi create mode 100644 final/install/READ_ME.html create mode 100644 final/install/READ_ME.lyx create mode 100644 final/install/READ_ME.pdf create mode 100644 final/install/READ_ME.ps create mode 100644 final/install/READ_ME.txt create mode 100644 final/install/index.html delete mode 100644 final/sed.rl delete mode 100644 final/sed.sh delete mode 100644 final/test.txt delete mode 100644 final/test.txt_bkp delete mode 100644 final/test.txt_old create mode 100644 final/upload_files/index.html diff --git a/final/app/admin.php b/final/app/admin.php index aad3277..a9a5f4e 100644 --- a/final/app/admin.php +++ b/final/app/admin.php @@ -48,7 +48,7 @@ generate_html_divs_menu(); // TODO : fonctions qui purgent les tables filles selon un id donné, pour chaque cas mère-fille (indiqués plus bas) // Fonctions qui génèrent des tableaux listant tous les objets de la base, et permettant la sélection multiple et l'éffacement (en cascade) - html_generate_MySQLTableSuppr('AWOR_Liste','idL'); // Permet de virer des liste + html_generate_MySQLTableSuppr('AWOR_Liste','idL', '*', "libelleL NOT LIKE 'interne_idR%'"); // Permet de virer des liste echo "
\n"; html_generate_MySQLTableSuppr('AWOR_Fichier','idFic'); // Permet de virer des fichiers, doit purger physiquement sur le disque echo "
\n"; diff --git a/final/app/apropos.php b/final/app/apropos.php index cdea1ff..d2ad9fe 100644 --- a/final/app/apropos.php +++ b/final/app/apropos.php @@ -2,6 +2,7 @@ require('include/ludo/session_verify.inc.php'); require_once('include/ludo/html_elements.inc.php'); require_once('include/connect.inc.php'); +require_once('include/ludo/config.inc.php'); require_once('include/ju.inc.php'); if ( isset($_REQUEST['action']) ) { @@ -19,8 +20,17 @@ generate_html_divs_menu(); > Administration du profil

-
Application réalisée par Jérémie Dénoyer,
-Ludovic Pouzenc, Julien Séré et Andriana Semouchtchak.
+
+Vous pouvez contacter l'administrateur à l'adresse email suivante : " . str_replace( '.', ' [POINT] ',str_replace( '@', ' [AT] ', $CONFIG['adminMail'] ) ) . "

\n"; } +?> +

Les logos W3C présent en bas de page indiquent que ce site respecte des standards définis par le World Wide Web Consortium.
+Effectivement, ce site est valide CSS et XHTML 1.0 Strict, ce qui correspond à l'usage d'un langage permettant une compatibilité maximale avec les divers navigateurs actuels.
+De plus, ce site est conforme au niveau A pour l'accessibilité aux personnes handicapées de déficiences visuelles. Cette conformité permet aux logiciels de lecture assistée de décrire è précisément le contenu de nos pages web. +

Cette application réalisée par Jérémie Dénoyer,Ludovic Pouzenc, Julien Séré et Andriana Semouchtchak.
+Projet Tuteuré à l'IUT De Blagnac, 2007.

+ +
diff --git a/final/app/auth_dialog.php b/final/app/auth_dialog.php index 234b092..caf3297 100644 --- a/final/app/auth_dialog.php +++ b/final/app/auth_dialog.php @@ -50,9 +50,13 @@ switch ( $methodeAuth ) { case 'webetud': - // TODO + // include... + $auth_is_ok=VerifOuvertureSession("quelconque"); + if ( ! $auth_is_ok ) { $errmsg="Authentification WebEtud refusée !"; } break; - // Vous pouvez ajouter d'autres mode d'authentification ici ! + /*************************************************************** + ** Vous pouvez ajouter d'autres mode d'authentification ici ! ** + ***************************************************************/ case 'bypass': $auth_is_ok=true; break; diff --git a/final/app/css/ice_img/logo.png b/final/app/css/ice_img/logo.png index a768d45..896707d 100644 Binary files a/final/app/css/ice_img/logo.png and b/final/app/css/ice_img/logo.png differ diff --git a/final/app/css/ice_img/titre.png b/final/app/css/ice_img/titre.png index d8d9ce6..4870978 100644 Binary files a/final/app/css/ice_img/titre.png and b/final/app/css/ice_img/titre.png differ diff --git a/final/app/css/ice_moche_img/logo.png b/final/app/css/ice_moche_img/logo.png index a768d45..896707d 100644 Binary files a/final/app/css/ice_moche_img/logo.png and b/final/app/css/ice_moche_img/logo.png differ diff --git a/final/app/css/ice_moche_img/titre.png b/final/app/css/ice_moche_img/titre.png index d8d9ce6..4870978 100644 Binary files a/final/app/css/ice_moche_img/titre.png and b/final/app/css/ice_moche_img/titre.png differ diff --git a/final/app/css/index.html b/final/app/css/index.html new file mode 100644 index 0000000..e69de29 diff --git a/final/app/details_reunion.php b/final/app/details_reunion.php index 59f4adb..64731d4 100644 --- a/final/app/details_reunion.php +++ b/final/app/details_reunion.php @@ -75,7 +75,28 @@ generate_html_divs_menu(); echo ''; exit(); } - generate_html_div_help('help/details_reunion_admin.php.hlp'); + + if ( isset($_REQUEST['action']) && ($_REQUEST['action']==='creer_reunion' ) ) + { + //~ echo "DEBUG : generate_html_div_help('help/details_reunion_new.php.hlp');\n"; + generate_html_div_help('help/details_reunion_new.php.hlp'); + } + else + { + $query="SELECT idP_Orga FROM AWOR_Reunion WHERE idR=$idR;"; + if ( ( $result = @mysql_query($query) ) && ( mysql_num_rows($result) === 1 ) && ( list($idP_Orga)=mysql_fetch_array($result) ) &&($idP == $idP_Orga) ) + { + //~ echo "DEBUG : generate_html_div_help('help/details_reunion_admin.php.hlp');\n"; + generate_html_div_help('help/details_reunion_admin.php.hlp'); + } + else + { + //~ echo "DEBUG : generate_html_div_help('help/details_reunion.php.hlp');\n"; + generate_html_div_help('help/details_reunion.php.hlp'); + } + } + + echo '
' . "\n"; echo '
' . "\n"; generate_html_reunion_detail2($idR); diff --git a/final/app/help/admin.php.hlp b/final/app/help/admin.php.hlp index 3b46bdc..356fe2e 100644 --- a/final/app/help/admin.php.hlp +++ b/final/app/help/admin.php.hlp @@ -1,27 +1,27 @@

Aide

Administration. -
Information : +
Informations :

-Cette page vous permet de visualiser les objets principaux de la base de données.
-Vous pouvez depuis cette page purger la base, ainsi que les fichiers attachés qui sont stockés sur disque.
-Lorsque vous supprimez par exemple une personne inscrite, tout les enregistrements relatifs à cette personne seront effacés : +Cette page vous permet de visualiser les objets principaux de la base de données.
+Vous pouvez depuis cette page purger la base, ainsi que les fichiers attachés qui sont stockés sur disque.
+Lorsque vous supprimez par exemple une personne inscrite, tout les enregistrements relatifs à cette personne seront effacés :
    -
  • Les liens indicant que cette personne participe à des réunions
  • +
  • Les liens indicant que cette personne participe à des réunions
  • - Les réunions qu'elle à créée + Les réunions qu'elle à créée
      -
    • Les réponses des participants à ses réunions pour chaque créneau
    • -
    • Les commentaires des réponses des participants
    • -
    • Les créneaux de ses réunions
    • +
    • Les réponses des participants à ses réunions pour chaque créneau
    • +
    • Les commentaires des réponses des participants
    • +
    • Les créneaux de ses réunions
    • - Les liens vers les fichiers attachés + Les liens vers les fichiers attachés
        -
      • Les fichiers physiquement écrits sur le disque
      • +
      • Les fichiers physiquement écrits sur le disque
-Ces cascades peuvent s'avérer dangereuses, mais permettent de garder la base dans un état consitant.
-Il est vivement conseillé de sauvegarder la base de donnée et le répertoire des ficheirs attachés avant d'utiliser cet outil, -l'erreur de manipulation est facile, et les bugs de programmation ne peuvent être totalement exclus... \ No newline at end of file +Ces cascades peuvent s'avérer dangereuses, mais permettent de garder la base dans un état consitant.
+Il est vivement conseillé de sauvegarder la base de donnée et le répertoire des fichiers attachés avant d'utiliser cet outil, +l'erreur de manipulation est facile, et les bugs de programmation ne peuvent être totalement exclus... \ No newline at end of file diff --git a/final/app/help/astuce_apparence.php.hlp b/final/app/help/astuce_apparence.php.hlp index 0f273a7..ff90618 100644 --- a/final/app/help/astuce_apparence.php.hlp +++ b/final/app/help/astuce_apparence.php.hlp @@ -2,7 +2,7 @@ Astuce pour l'apparence.
Etapes :
    -
  • Selectionner la liste des apparences.
  • +
  • Sélectionner la liste des apparences.
  • Choisir une apparence.
  • Valider votre choix en cliquant sur Changer.
diff --git a/final/app/help/astuce_deconnexion.php.hlp b/final/app/help/astuce_deconnexion.php.hlp index 41182d8..5b249a3 100644 --- a/final/app/help/astuce_deconnexion.php.hlp +++ b/final/app/help/astuce_deconnexion.php.hlp @@ -2,7 +2,8 @@ Astuce pour se déconnecter.
Information :
    -
  • Se déconnecter permet de quitter proprement l'application.
  • +
  • Se déconnecter permet de quitter proprement l'application. +
  • Ainsi un autre utilisateur de votre machine ne pourra se connecter avec votre compte.

Etape :
  • Cliquer sur le menu Déconnexion.
diff --git a/final/app/help/astuce_ical.php.hlp b/final/app/help/astuce_ical.php.hlp index 2fc8c4a..d5c6b41 100644 --- a/final/app/help/astuce_ical.php.hlp +++ b/final/app/help/astuce_ical.php.hlp @@ -9,7 +9,7 @@ Astuce pour l'iCal.
  • Cliquer sur le menu iCal.
  • Enregistrer le fichier.
  • -
  • Importer le dans votre agenda électronique !
  • +
  • Importez le dans votre agenda électronique !

Retour \ No newline at end of file diff --git a/final/app/help/details_reunion.php.hlp b/final/app/help/details_reunion.php.hlp index 5434937..75c6554 100644 --- a/final/app/help/details_reunion.php.hlp +++ b/final/app/help/details_reunion.php.hlp @@ -1,4 +1,8 @@ -Cette page vous permet de visualiser les détails d'une réunion.
-Vous pouvez modifier votre disponibilité en fonction des créneaux prévu par le createur de la réunion.
-Il est possible à tout instant de se déconnecter en cliquant sur le bouton Déconnexion situé en haut à droite de l'écran.
-Astuce : grâce à AWOR, vous pouvez transferer vos réunions sur votre agenda personnel. +

Aide

+Détails réunion.
+
Vous pouvez : + diff --git a/final/app/help/details_reunion_admin.php.hlp b/final/app/help/details_reunion_admin.php.hlp index 3102176..2a1cc37 100644 --- a/final/app/help/details_reunion_admin.php.hlp +++ b/final/app/help/details_reunion_admin.php.hlp @@ -1,5 +1,5 @@

Aide

-Détails réunion (Administrateur).
+Détails réunion (Organisateur).

Vous pouvez :
  • Editer les informations de la réunion.
  • diff --git a/final/app/help/details_reunion_new.php.hlp b/final/app/help/details_reunion_new.php.hlp new file mode 100644 index 0000000..644b592 --- /dev/null +++ b/final/app/help/details_reunion_new.php.hlp @@ -0,0 +1,14 @@ +

    Aide

    +Organiser une réunion (Création). +
    Information : +
      +
    • Voici une réunion vierge. Pour vous l'approprier vous devez :
    • +
    +
    +
      +
    • Editer les détails d'une réunion.
    • +
    • Editer la liste des participants
    • +
    • Editer les créneaux
    • +
    +
    +Faire vos modification diff --git a/final/app/help/index.html b/final/app/help/index.html new file mode 100644 index 0000000..e69de29 diff --git a/final/app/help/index.php.hlp b/final/app/help/index.php.hlp index 59ded56..1c8c486 100644 --- a/final/app/help/index.php.hlp +++ b/final/app/help/index.php.hlp @@ -7,8 +7,8 @@ Gestion des réunions.

Astuces : \ No newline at end of file diff --git a/final/app/help/listes_delete.php.hlp b/final/app/help/listes_delete.php.hlp index 4767252..66f2ba4 100644 --- a/final/app/help/listes_delete.php.hlp +++ b/final/app/help/listes_delete.php.hlp @@ -1,10 +1,10 @@

Aide

Suppression d'une liste.
Information : -
  • Vous devez être le propriétaire de la liste pour faire cette action.
+
  • Vous devez être le propriétaire de la liste pour faire cette action.

Etapes :
    -
  • Choisir la liste à supprimer.
  • +
  • Choisir la liste à supprimer.
  • Cliquer sur la corbeille.
  • Confirmer la suppression.
diff --git a/final/app/help/listes_modif.php.hlp b/final/app/help/listes_modif.php.hlp index 11759cf..c6a03c8 100644 --- a/final/app/help/listes_modif.php.hlp +++ b/final/app/help/listes_modif.php.hlp @@ -10,13 +10,13 @@ Modification d'une liste.
  • Depuis une liste :
    • Sélectionner un contact puis cliquer sur Ajouter.
    • -
    • Double-clicker sur un contact (firefox).
    • +
    • Double-cliquer sur un contact (Firefox uniquement).
    • Ajouter tous les contacts.
  • Avec son courriel :
      -
    • Saisir son courriel dans le champs.
    • +
    • Saisir son courriel dans le champ.
    • Cliquer sur Inscrire.
  • diff --git a/final/app/help/listes_new.php.hlp b/final/app/help/listes_new.php.hlp index d04d505..af136ae 100644 --- a/final/app/help/listes_new.php.hlp +++ b/final/app/help/listes_new.php.hlp @@ -4,7 +4,7 @@ Création d'une liste.
    • Cliquer sur Créer une liste.
    • Donner un nom à la liste.
    • -
    • Si vous voulez partager cette liste avec les autres utilisateurs décochez la case privée.
    • +
    • Si vous voulez partager cette liste avec les autres utilisateurs décocher la case privée.
    • Modifier votre liste.
    • Confirmer avec le bouton Valider.
    diff --git a/final/app/help/profil.php.hlp b/final/app/help/profil.php.hlp index 0272bc9..793318f 100644 --- a/final/app/help/profil.php.hlp +++ b/final/app/help/profil.php.hlp @@ -4,5 +4,5 @@ Gestion du profil. \ No newline at end of file diff --git a/final/app/help/profil_loginMethode.php.hlp b/final/app/help/profil_loginMethode.php.hlp index 6511645..ca6b2be 100644 --- a/final/app/help/profil_loginMethode.php.hlp +++ b/final/app/help/profil_loginMethode.php.hlp @@ -7,7 +7,7 @@ Changer votre login et méthode d'authentification.
  • Basculer votre méthode d'authentification dans le mode qui vous convient.
  • Changer éventuellement votre login.
  • Valider les changements.
  • -
  • Il vous sera peut-être demmander le mot de passe. +
  • Il vous sera peut-être demmandé le mot de passe.
  • Confirmer à nouveau.

  • diff --git a/final/app/help/reunion_admin_annuler.php.hlp b/final/app/help/reunion_admin_annuler.php.hlp index 021d691..3db7597 100644 --- a/final/app/help/reunion_admin_annuler.php.hlp +++ b/final/app/help/reunion_admin_annuler.php.hlp @@ -2,7 +2,8 @@ L'annulation.

    Informations :
      -
    • +
    • Vous pouvez annuler une rénion à tout moment.
    • +
    • Vous pourrez la réactiver quand vous le souhaiterez.

    Retour diff --git a/final/app/help/reunion_admin_creneaux.php.hlp b/final/app/help/reunion_admin_creneaux.php.hlp new file mode 100644 index 0000000..dee37bd --- /dev/null +++ b/final/app/help/reunion_admin_creneaux.php.hlp @@ -0,0 +1,18 @@ +

    Aide

    +Modification des créneaux.
    +
    Information : +
      +
    • Pour modifier les créneaux cliquer sur l'icone à droite des créneaux
    • +
    +
    Etapes pour ajouter : +
      +
    • Choisisser la date, l'heure de début et l'heure de fin.
    • +
    • Cliquer sur Ajouter.
    • +
    +Etapes pour supprimer : +
      +
    • Sélectionner le créneau.
    • +
    • Cliquer sur Retirer
    • +
    +
    +Retour diff --git a/final/app/help/reunion_admin_creneaux.php.hlp~ b/final/app/help/reunion_admin_creneaux.php.hlp~ new file mode 100644 index 0000000..e69de29 diff --git a/final/app/help/reunion_admin_dispo.php.hlp b/final/app/help/reunion_admin_dispo.php.hlp index d9b587d..53a1b3b 100644 --- a/final/app/help/reunion_admin_dispo.php.hlp +++ b/final/app/help/reunion_admin_dispo.php.hlp @@ -1,12 +1,12 @@

    Aide

    -Le masquage des disponibilitées.
    +Le masquage des disponibilités.

    Informations :
    • L'activation de l'option.

      -Elle permet de masquer les disponibilitées d'un participant vis-à-vis des autres participants de la réunion.

      +Elle permet de masquer les disponibilités d'un participant vis-à-vis des autres participants de la réunion.

    • La désactivation de l'option.

      -Elle permet de rendre visible les disponibilitées de tous les participants. +Elle permet de rendre visible les disponibilités de tous les participants.

    diff --git a/final/app/help/reunion_admin_fichier.php.hlp b/final/app/help/reunion_admin_fichier.php.hlp new file mode 100644 index 0000000..339996a --- /dev/null +++ b/final/app/help/reunion_admin_fichier.php.hlp @@ -0,0 +1,16 @@ +

    Aide

    +Gestion des fichiers.
    +
    Pour ajouter un fichier : +
      +
    • Cliquer sur Ajouter un fichier.
    • +
    • Cliquer sur Parcourir et sélectionner votre fichier.
    • +
    • Cliquer sur Valider
    • +
    +
    +Pour télécharger un fichier : +
      +
    • Cliquer sur le nom du fichier.
    • +
    • Engistrer le fichier sur votre ordinateur.
    • +
    +
    +Retour diff --git a/final/app/help/reunion_admin_mail.php.hlp b/final/app/help/reunion_admin_mail.php.hlp new file mode 100644 index 0000000..fd211a4 --- /dev/null +++ b/final/app/help/reunion_admin_mail.php.hlp @@ -0,0 +1,9 @@ +

    Aide

    +Envoyer un mail.
    +
    Etapes : +
      +
    • Sélectionner les destinataires du mail (cocher les cases).
    • +
    • Cliquer sur Envoyer
    • +
    +
    +Retour diff --git a/final/app/help/reunion_admin_participants.php.hlp b/final/app/help/reunion_admin_participants.php.hlp new file mode 100644 index 0000000..96e17d1 --- /dev/null +++ b/final/app/help/reunion_admin_participants.php.hlp @@ -0,0 +1,29 @@ +

    Aide

    +Modification de la liste des participants.
    +
    Information : +
      +
    • Pour modifier la liste des participants cliquer sur l'icone à gauche de Personnes
    • +
    +
    Etapes pour ajouter : +
      +
    • Depuis une liste : +
        +
      • Sélectionner un contact puis cliquer sur Ajouter.
      • +
      • Double-cliquer sur un contact (Firefox uniquement).
      • +
      • Ajouter tous les contacts.
      • +
      +
    • +
    • Avec son courriel : +
        +
      • Saisir son courriel dans le champ.
      • +
      • Cliquer sur Inscrire.
      • +
      +
    • +
    +
    Etapes pour supprimer : +
      +
    • Sélectionner le participant.
    • +
    • Cliquer sur Retirer.
    • +
    +
    +Retour diff --git a/final/app/help/reunion_commentaire.php.hlp b/final/app/help/reunion_commentaire.php.hlp new file mode 100644 index 0000000..fbc5ad6 --- /dev/null +++ b/final/app/help/reunion_commentaire.php.hlp @@ -0,0 +1,10 @@ +

    Aide

    +Editer votre commentaire.
    +
    Etapes : +
      +
    • Cliquer sur Editer votre commentaire.
    • +
    • Modifier votre commentaire.
    • +
    • Confirmer en cliquant sur Valider.
    • +
    +
    +Retour diff --git a/final/app/help/reunion_detail.php.hlp b/final/app/help/reunion_detail.php.hlp index 6ca90c9..a2a5c45 100644 --- a/final/app/help/reunion_detail.php.hlp +++ b/final/app/help/reunion_detail.php.hlp @@ -9,7 +9,7 @@ Afficher le détail d'une réunion.
    Remarques :
    • Si vous êtes organisateur, vous pourrez modifier et consulter l'organisation de votre réunion.
    • -
    • Si vous êtes participant, vous pourrez déposer vos disponibilitées.
    • +
    • Si vous êtes participant, vous pourrez déposer vos disponibilités.

    Retour \ No newline at end of file diff --git a/final/app/help/reunion_dispo.php.hlp b/final/app/help/reunion_dispo.php.hlp new file mode 100644 index 0000000..1e31a49 --- /dev/null +++ b/final/app/help/reunion_dispo.php.hlp @@ -0,0 +1,9 @@ +

    Aide

    +Disponibilités.
    +
    Pour chaque créneaux : +
      +
    • Cliquer sur le bouton Vert pour indiquer votre disponibilité.
    • +
    • Cliquer sur le bouton Rouge pour indiquer votre indisponibilité.
    • +
    +
    +Retour diff --git a/final/app/help/reunion_fichier.php.hlp b/final/app/help/reunion_fichier.php.hlp new file mode 100644 index 0000000..518cb42 --- /dev/null +++ b/final/app/help/reunion_fichier.php.hlp @@ -0,0 +1,16 @@ +

    Aide

    +Gestion des fichiers.
    +
    Pour ajouter un fichier : +
      +
    • Cliquer sur Ajouter un fichier.
    • +
    • Cliquer sur Parcourir et sélectionner votre fichier.
    • +
    • Cliquer sur Valider
    • +
    +
    +Pour télécharger un fichier : +
      +
    • Cliquer sur le nom du fichier.
    • +
    • Engistrer le fichier sur votre ordinateur.
    • +
    +
    +Retour diff --git a/final/app/help/reunion_new.php.hlp b/final/app/help/reunion_new.php.hlp index 6a1629c..4fb4467 100644 --- a/final/app/help/reunion_new.php.hlp +++ b/final/app/help/reunion_new.php.hlp @@ -5,6 +5,6 @@ Organiser une réunion.
  • Cliquer sur Organiser une réunion.

  • Remarques : -
    • L'aide vous guidera pour les futurs étapes.
    +
    • L'aide vous guidera pour les futures étapes.

    Retour \ No newline at end of file diff --git a/final/app/help/sendmail.php.hlp b/final/app/help/sendmail.php.hlp index 4a31a5b..073a29f 100644 --- a/final/app/help/sendmail.php.hlp +++ b/final/app/help/sendmail.php.hlp @@ -1,2 +1,9 @@ -Ce formulaire vous permet d'envoyer un courriel de notification aux personnes sélectionnées.
    -Vous pouvez charger un des modèles disponibles pour gagner du temps. +

    Aide

    +Envoie d'un mail. +
    Etapes : +
      +
    • Ajouter ou Retirer des destinataires.
    • +
    • Sélectionner un mod&eagrave;le.
    • +
    • Modifier le modèle si besoin.
    • +
    • Cliquer sur Envoyer.
    • +
    diff --git a/final/app/images/index.html b/final/app/images/index.html new file mode 100644 index 0000000..e69de29 diff --git a/final/app/include/je.inc.php b/final/app/include/je.inc.php index 53b1043..d7d1081 100644 --- a/final/app/include/je.inc.php +++ b/final/app/include/je.inc.php @@ -161,7 +161,7 @@ require_once ('include/connect.inc.php'); $row = mysql_fetch_array($result); echo "\n"; if ($row['estPrivee'] == 'oui' || $row['idP_Createur']==$idP) echo "\"Supprimer\n" ; else echo "\n"; - if ($row['estPrivee'] == 'oui') echo "estPrivée" ; else echo "Public"; + if ($row['estPrivee'] == 'oui') echo "Privée" ; else echo "Public"; echo "\n"; echo ""; echo htmlentities($row['libelleL'], ENT_QUOTES); diff --git a/final/app/include/ju.inc.php b/final/app/include/ju.inc.php index a7154b7..4bb9330 100644 --- a/final/app/include/ju.inc.php +++ b/final/app/include/ju.inc.php @@ -83,7 +83,7 @@ function generate_html_reunion_fichiers($idR) { while($fichier = mysql_fetch_array($resultat)) { - echo ''.htmlentities($fichier["nomFic"], ENT_QUOTES)."\n"; + echo ''.htmlentities($fichier["nomFic"], ENT_QUOTES)."\n"; } } else diff --git a/final/app/include/ludo/TODO_list.txt b/final/app/include/ludo/TODO_list.txt deleted file mode 100644 index 724c46c..0000000 --- a/final/app/include/ludo/TODO_list.txt +++ /dev/null @@ -1,24 +0,0 @@ -Accueil > _Listes_ (virer le lien) - -mysql_free_result après les requetes et mysql_close ? - -configuration de PHP dans un fichier INI : -array parse_ini_file ( string filename [, bool process_sections] ) - - -Vérifier que les redirections vers authentification et le retour fasse bien suivre les paramètres ---> bookmarque details_reunion?idR=1 - - -faire une fonction JS qui appelle une page php ou créer toute seule un cookie qui gère la préférence du css. - -Se préoccuper des accents et des encodages de pages ! - -Faire un pied de page avec nos noms, et les logos valide XHTML, CSS... - -TODO : un script php qui purge la base --> export SQL ancienne base ? --> suppression des réunions plus vielles que... --> suppression des Personnes n'ayant jamais changé leur profil et n'ayant plus de réunion les concernant --> suppression de tout les créneaux non référencés --> suppression de toutes les listes privées obsoletes diff --git a/final/app/include/ludo/config.inc.php b/final/app/include/ludo/config.inc.php index 7f1d587..c016342 100644 --- a/final/app/include/ludo/config.inc.php +++ b/final/app/include/ludo/config.inc.php @@ -1,7 +1,7 @@ 'jmi@iut-blagnac.fr', + 'adminMail' => 'inglebert@iut-blagnac.fr', 'automatedMail' => 'no_reply@iut-blagnac.fr', 'AUTH' => array ( diff --git a/final/app/include/ludo/fonctions.inc.php b/final/app/include/ludo/fonctions.inc.php index 9124ac5..3361827 100644 --- a/final/app/include/ludo/fonctions.inc.php +++ b/final/app/include/ludo/fonctions.inc.php @@ -125,9 +125,9 @@ function generate_html_array_personnes_crenaux($idR) } else { - return "Impossible d'afficher le tableau de la réunion : Erreur de base de donnée\n"; + return "Impossible d'afficher le tableau de la r�union : Erreur de base de donn�e\n"; } - // DEBUG : tests en forçant les variables + // DEBUG : tests en for�ant les variables //$estAnnulee=true; //~ echo "DEBUG : \nmontrerDispoR==$montrerDispoR\nestAnnulee==$estAnnulee\nestFixee==$estFixee\nis_admin==$is_admin\n"; @@ -264,7 +264,7 @@ function generate_html_array_personnes_crenaux($idR) if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo "  \n"; } echo " \n"; } - // Si $is_admin, on met une ligne avec bouton envoyer pour les mails et icône ajout de personnes + // Si $is_admin, on met une ligne avec bouton envoyer pour les mails et ic�ne ajout de personnes if ( $is_admin ) { echo " \n \n"; @@ -524,7 +524,7 @@ function html_generate_MySQLTableSuppr($table, $key_name, $columns='*', $where_c { return "Erreur de génération de la table $table\n"; } - else + elseif ( mysql_num_rows($result) > 0 ) { $row = mysql_fetch_assoc($result); // Affichage des entêtes du tableau et du pied de tableau @@ -539,10 +539,255 @@ function html_generate_MySQLTableSuppr($table, $key_name, $columns='*', $where_c $num=0; do { if ( isset($row[$key_name]) ) { $num=$row[$key_name]; } else { $num=''; } - echo "\n\n" . implode("\n",$row) . "\n\n"; + echo "\n\n" . implode("\n",$row) . "\n\n"; } while ( $row = mysql_fetch_assoc($result) ); echo "\n\n\n"; } } +function delete_from_awor_liste() +{ + require_once('include/connect.inc.php'); + if ( isset($_POST['id']) && is_array($_POST['id']) ) + { + if ( ! base_delete_awor_liste( 'idL', array_keys($_POST['id'] ) ) ) + { + echo "ROLLBACK
    \n"; + mysql_query("ROLLBACK"); + } + } +} + +function delete_from_awor_fichier() +{ + require_once('include/connect.inc.php'); + if ( isset($_POST['id']) && is_array($_POST['id']) ) + { + if ( ! base_delete_awor_fichier( 'idFic', array_keys($_POST['id'] ) ) ) + { + echo "ROLLBACK
    \n"; + mysql_query("ROLLBACK"); + } + } +} + +function delete_from_awor_reunion() +{ + require_once('include/connect.inc.php'); + if ( isset($_POST['id']) && is_array($_POST['id']) ) + { + if ( ! base_delete_awor_reunion( array_keys($_POST['id']) ) ) + { + echo "ROLLBACK
    \n"; + mysql_query("ROLLBACK"); + } + } +} + +function delete_from_awor_personne() +{ + require_once('include/connect.inc.php'); + if ( isset($_POST['id']) && is_array($_POST['id']) ) + { + if ( ! base_delete_awor_personne( array_keys($_POST['id']) ) ) + { + echo "ROLLBACK
    \n"; + mysql_query("ROLLBACK"); + } + } +} + + +function base_delete_awor_reunion($idR_array) +{ + echo "function base_delete_awor_reunion($idR_array)
    \n"; + + // Suppression des créneaux associés + $idR_implode=implode(',', $idR_array); + $query = "SELECT idC FROM AWOR_Creneau WHERE idR IN ($idR_implode);"; + $idC_array=array(); + if ( $result = @mysql_query($query) ) + { + while ( list($idC) = mysql_fetch_array($result) ) { $idC_array[]=$idC; } + } + if ( !base_delete_awor_creneau( $idC_array ) ) { return false; } + + // Suppression des listes associées + $idR_Interne_implode=implode("','interne_idR_", $idR_array); + if ( $idR_Interne_implode != '' ) { $idR_Interne_implode = "'interne_idR_" . $idR_Interne_implode . "'"; } + $query = "SELECT idL FROM AWOR_Liste WHERE libelleL IN ($idR_Interne_implode);"; + //~ echo "$query
    \n"; + $idL_array=array(); + if ( $result = @mysql_query($query) ) + { + while ( list($idL) = mysql_fetch_array($result) ) { $idL_array[]=$idL; } + } + //~ print_r($idL_array); + if ( !base_delete_awor_liste('idL', $idL_array) ) { return false; } + + + if ( !base_delete_awor_fichier('idR', $idR_array) ) { return false; } + if ( !base_delete_awor_repondre('idR', $idR_array) ) { return false; } + + $idR_implode=implode(',', $idR_array); + if ( $idR_implode!= '' ) + { + $query="DELETE FROM AWOR_Reunion WHERE idR IN ($idR_implode);"; + echo "$query
    \n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + + +function base_delete_awor_personne($idP_array) +{ + echo "function base_delete_awor_personne($idP_array)
    \n"; + + // Suppression des r�unions organis�es par les personnes concern�es + $idP_implode=implode(',', $idP_array); + $query = "SELECT DISTINCT idR FROM AWOR_Reunion WHERE idP_Orga IN ($idP_implode);"; + $idR_array=array(); + if ( $result = @mysql_query($query) ) + { + while ( list($idR) = mysql_fetch_array($result) ) { $idR_array[]=$idR; } + } + + // Suppr Choisir, Repondre + if ( !base_delete_awor_reunion($idR_array) ) { return false; } + + + // Suppression des personnes dans les listes les contenant + if ( !base_delete_awor_appartenir('idP', $idP_array) ) { return false; } + + // Suppression des listes privées appartenant aux personnes + // TODO : voir pour les listes publiques appartenant aux personnes + if ( !base_delete_awor_liste('idP_Createur', $idP_array) ) { return false; } + + // Suppression effective des personnes + $idP_implode=implode(',', $idP_array); + if ( $idP_implode!= '' ) + { + $query="DELETE FROM AWOR_Personne WHERE idP IN ($idP_implode);"; + echo "$query
    \n"; + return ( mysql_query($query) !== false ) ; + } +} + +function base_delete_awor_liste($idName, $id_array) +{ + // idName = ( idL | idP_Createur ) + echo "function base_delete_awor_liste($idName, $id_array)
    \n"; + // Suppression du contenu des listes + if ( !base_delete_awor_appartenir('idL', $id_array) ) { return false; } + + // Suppression des listes + $id_implode=implode(',', $id_array); + if ( $id_implode!= '' ) + { + $query="DELETE FROM AWOR_Liste WHERE $idName IN ($id_implode);"; + echo "$query
    \n"; + mysql_query($query); + } + return true; +} + +function base_delete_awor_fichier($idName, $id_array) +{ + // $idName = (idFic | idR) + echo "function base_delete_awor_fichier($idName, $id_array)
    \n"; + require("include/ludo/config.inc.php"); + + $id_implode=implode(',', $id_array); + + // Supression physique + if ( isset($CONFIG['UPLOAD']['relative_path']) ) { $basepath=$CONFIG['UPLOAD']['relative_path']; } else { $basepath='fichiers/';} + $basepath=$_SERVER['DOCUMENT_ROOT'].'/'.$basepath; + + $requete = "SELECT nomFic FROM AWOR_Fichier WHERE $idName IN ($id_implode);"; + echo "$requete
    \n"; + if( ( $resultat = mysql_query($requete) ) ) + { + while( list($fichier) = mysql_fetch_array($resultat)) + { + echo "unlink($basepath.$fichier);
    \n"; + unlink($basepath.$fichier); + } + } + // Suppression dans la base + if ( $id_implode!= '' ) + { + $query="DELETE FROM AWOR_Fichier WHERE $idName IN ($id_implode);"; + echo "$query
    \n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + + +function base_delete_awor_choisir($idName, $id_array) +{ + // idName = (idP|idR) + echo "function base_delete_awor_choisir($idName, $id_array)
    \n"; + $id_implode=implode(',', $id_array); + if ( $id_implode!= '' ) + { + $query="DELETE FROM AWOR_Choisir WHERE $idName IN ($id_implode);"; + echo "$query
    \n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + +function base_delete_awor_repondre($idName, $id_array) +{ + echo "function base_delete_awor_repondre($idName, $id_array)
    \n"; + // idName=(idR|idP) + + // Suppression des Reponses + $id_implode=implode(',', $id_array); + if ( $id_implode!= '' ) + { + $query="DELETE FROM AWOR_Repondre WHERE $idName IN ($id_implode);"; + echo "$query
    \n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + +function base_delete_awor_appartenir($idName, $id_array) +{ + // $idName = (idL | idP) + echo "function base_delete_awor_appartenir($idName, $id_array)
    \n"; + // Suppression dans la base + $idL_implode=implode(',', $id_array); + if ( $idL_implode!= '' ) + { + $query="DELETE FROM AWOR_Appartenir WHERE $idName IN ($idL_implode);"; + echo "$query
    \n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + + +function base_delete_awor_creneau($idC_array) +{ + echo "function base_delete_awor_creneau($idC_array)
    \n"; + // Suppression des réponses aux créneaux + if ( ! base_delete_awor_choisir('idC', $idC_array) ) { return false; } + + // Suppression des créneaux + $idC_implode=implode(',', $idC_array); + if ( $idC_implode!= '' ) + { + $query="DELETE FROM AWOR_Creneau WHERE idC IN ($idC_implode);"; + echo "$query
    \n"; + return ( mysql_query($query) !== false ) ; + } + return true; +} + +// TODO : suppression des listes vides + ?> diff --git a/final/app/include/ludo/index.html b/final/app/include/ludo/index.html new file mode 100644 index 0000000..e69de29 diff --git a/final/app/include/ludo/mail_textarea.php b/final/app/include/ludo/mail_textarea.php index 6db990f..41537a9 100644 --- a/final/app/include/ludo/mail_textarea.php +++ b/final/app/include/ludo/mail_textarea.php @@ -1,7 +1,8 @@ Annulée\n"; break; } - - echo ' '; generate_html_reunion_detail_button($idR); echo "\n"; @@ -92,20 +91,58 @@ generate_html_div_help(); } - // Réunions fixées et passées - + // Réunion en préparation à moi, pas annulée + $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee' + . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Personne P' // Creneau C, + . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP) AND P.idP = '$idP'" + . ' AND R.estAnnulee=\'non\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe)' + . ' ORDER BY R.idR ASC;'; + fill_array_liste_reunion($query); + //~ echo $query . "\n"; + + // Réunions fixées, à moi, pas annulée $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, UNIX_TIMESTAMP(C.dateHeure), R.estAnnulee' . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Creneau C,AWOR_Personne P' - . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP)" - . ' AND R.idL = L.idL AND P.idP = R.idP_Orga AND R.idC_Fixe = C.idC' + . " WHERE ((A.idP = '$idP' AND A.idL = L.idL) OR R.idP_Orga = '$idP') AND P.idP = '$idP'" + . ' AND R.estAnnulee=\'non\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND R.idC_Fixe = C.idC' . ' ORDER BY C.dateHeure DESC;'; fill_array_liste_reunion($query); + + // Réunion en annulée à moi + $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee' + . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Personne P' // Creneau C, + . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP) AND P.idP = '$idP'" + . ' AND R.estAnnulee=\'oui\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe)' + . ' ORDER BY R.idR ASC;'; + fill_array_liste_reunion($query); + + echo "\n"; - // Réunion en préparation + // Réunion en préparation pas à moi, pas annulée + $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee' + . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Personne P' // Creneau C, + . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP) AND P.idP <> '$idP'" + . ' AND R.estAnnulee=\'non\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe)' + . ' ORDER BY R.idR ASC;'; + //~ echo $query . "\n"; + fill_array_liste_reunion($query); + + // Réunions fixées, pas à moi, pas annulée + $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, UNIX_TIMESTAMP(C.dateHeure), R.estAnnulee' + . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Creneau C,AWOR_Personne P' + . " WHERE ((A.idP = '$idP' AND A.idL = L.idL) OR R.idP_Orga = '$idP') AND P.idP <> '$idP'" + . ' AND R.estAnnulee=\'non\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND R.idC_Fixe = C.idC' + . ' ORDER BY C.dateHeure DESC;'; + fill_array_liste_reunion($query); + + // Réunion en annulée pas à moi $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee' . ' FROM AWOR_Liste L,AWOR_Reunion R,AWOR_Appartenir A,AWOR_Personne P' // Creneau C, - . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP)" - . ' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe);'; + . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP) AND P.idP <> '$idP'" + . ' AND R.estAnnulee=\'oui\' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe)' + . ' ORDER BY R.idR ASC;'; + + //echo "DEBUG : $query\n"; fill_array_liste_reunion($query); diff --git a/final/app/profil.php b/final/app/profil.php index bd88afd..16d3449 100644 --- a/final/app/profil.php +++ b/final/app/profil.php @@ -5,8 +5,14 @@ require_once('include/connect.inc.php'); require_once('include/ju.inc.php'); if ( isset($_REQUEST['action']) ) { - $nom_func = 'traiter_formulaire_' . $_REQUEST['action']; - $nom_func(); + if ($_POST['action'] == "maj_profil") + { + if (1==1)//Verification auth puis traitement + { + $nom_func = 'traiter_formulaire_' . $_REQUEST['action']; + $nom_func(); + } + } } generate_html_doctype_and_head("Administration du profil"); @@ -31,27 +37,48 @@ else { $nom = $_SESSION['session_loginP']; } -$resultat = mysql_query("SELECT * FROM AWOR_Personne WHERE idP = '".$_SESSION['session_idP']."'"); -if($resultat != false) +if (isset($_POST['pre_action']) & $_POST['pre_action']=="verif_profil") { - $p = mysql_fetch_array($resultat); - echo "
    \n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
    Methode d'authentification : \n
    Votre login :
    Votre adresse mail :
    Votre nom :
    Votre prenom :
    \n"; + + echo "\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "
    Confirmer votre authentification
    Identifiant : ".$_POST['loginP']."
    Mot de passe :
    "; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "
    \n"; - echo "
    \n"; } -if ( isset ($errmsg) ) generate_html_div_errmsg($errmsg); +else +{ + + $resultat = mysql_query("SELECT * FROM AWOR_Personne WHERE idP = '".$_SESSION['session_idP']."'"); + if($resultat != false) + { + $p = mysql_fetch_array($resultat); + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Methode d'authentification : \n
    Votre login :
    Votre adresse mail :
    Votre nom :
    Votre prenom :
    \n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + } + if ( isset ($errmsg) ) generate_html_div_errmsg($errmsg); +} ?>
    diff --git a/final/app/sendmail.php b/final/app/sendmail.php index 4aeba4a..2013a4d 100644 --- a/final/app/sendmail.php +++ b/final/app/sendmail.php @@ -2,6 +2,7 @@ require('include/ludo/session_verify.inc.php'); require_once('include/ludo/html_elements.inc.php'); require_once('include/connect.inc.php'); +include 'include/ludo/config.inc.php'; @@ -33,8 +34,6 @@ else if( isset($_POST['envoi']) ) { - include 'include/ludo/config.inc.php'; - if ( !isset($_POST['msgObject']) || !isset($_POST['msgText']) || !is_array($_POST['dataParticipants']) ) { $errmsg = "Erreur lors de l'émission de l'email : Paramètre manquant ou érroné"; @@ -107,7 +106,7 @@ else
    - +
    @@ -165,19 +164,23 @@ else
    Contacts disponibles
    -
    - Modèle :  + \n"; + if ( isset($CONFIG['MAIL']['TEMPLATES']) && is_array($CONFIG['MAIL']['TEMPLATES']) ) + { + echo '
    ' . "\n"; + echo ' Modèle : ' . "\n"; + echo ' ' . "\n"; + echo '
    ' . "\n"; + } ?> - - - - - - -
    Objet : 
    diff --git a/final/app/templates/index.html b/final/app/templates/index.html new file mode 100644 index 0000000..e69de29 diff --git a/final/corr_accents.sh b/final/corr_accents.sh deleted file mode 100644 index 1fc15f8..0000000 --- a/final/corr_accents.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -find -name "*.php" -exec ./sed.sh {} \; diff --git a/final/doc/Manuel Utilisateur.odt b/final/doc/Manuel Utilisateur.odt new file mode 100644 index 0000000..4872609 Binary files /dev/null and b/final/doc/Manuel Utilisateur.odt differ diff --git a/final/doc/Manuel Utilisateur.pdf b/final/doc/Manuel Utilisateur.pdf new file mode 100644 index 0000000..29c2b5f Binary files /dev/null and b/final/doc/Manuel Utilisateur.pdf differ diff --git a/final/doc/READ_ME.css b/final/doc/READ_ME.css deleted file mode 100644 index 2dfba7c..0000000 --- a/final/doc/READ_ME.css +++ /dev/null @@ -1,109 +0,0 @@ - -/* start css.sty */ -.cmmi-10{font-style: italic;} -.cmr-17{font-size:170%;} -.cmr-12{font-size:120%;} -.cmtt-10{font-family: monospace;} -.cmbx-10{ font-weight: bold;} -p.noindent { text-indent: 0em } -p.nopar { text-indent: 0em; } -p.indent{ text-indent: 1.5em } -@media print {div.crosslinks {visibility:hidden;}} -a img { border-top: 0; border-left: 0; border-right: 0; } -center { margin-top:1em; margin-bottom:1em; } -td center { margin-top:0em; margin-bottom:0em; } -.Canvas { position:relative; } -img.math{vertical-align:middle;} -li p.indent { text-indent: 0em } -.enumerate1 {list-style-type:decimal;} -.enumerate2 {list-style-type:lower-alpha;} -.enumerate3 {list-style-type:lower-roman;} -.enumerate4 {list-style-type:upper-alpha;} -div.newtheorem { margin-bottom: 2em; margin-top: 2em;} -.obeylines-h,.obeylines-v {white-space: nowrap; } -div.obeylines-v p { margin-top:0; margin-bottom:0; } -.overline{ text-decoration:overline; } -.overline img{ border-top: 1px solid black; } -td.displaylines {text-align:center; white-space:nowrap;} -.centerline {text-align:center;} -.rightline {text-align:right;} -div.verbatim {font-family: monospace; white-space: nowrap; } -table.verbatim {width:100%;} -.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -table.minipage{width:100%;} -div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} -div.center div {text-align: left;} -div.flushright, div.flushright div.flushright {text-align: right;} -div.flushright div {text-align: left;} -div.flushleft {text-align: left;} -.underline{ text-decoration:underline; } -.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } -.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -.framebox-c {text-align:center;} -.framebox-l {text-align:left;} -.framebox-r {text-align:right;} -span.thank-mark{ vertical-align: super } -span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } -div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } -table.tabular td p{margin-top:0em;} -table.tabular {margin-left: auto; margin-right: auto;} -div.td00{ margin-left:0pt; margin-right:0pt; } -div.td01{ margin-left:0pt; margin-right:5pt; } -div.td10{ margin-left:5pt; margin-right:0pt; } -div.td11{ margin-left:5pt; margin-right:5pt; } -table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } -td.td00{ padding-left:0pt; padding-right:0pt; } -td.td01{ padding-left:0pt; padding-right:5pt; } -td.td10{ padding-left:5pt; padding-right:0pt; } -td.td11{ padding-left:5pt; padding-right:5pt; } -table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } -.hline hr, .cline hr{ height : 1px; margin:0px; } -.tabbing-right {text-align:right;} -span.TEX {letter-spacing: -0.125em; } -span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} -a span.TEX span.E {text-decoration: none; } -span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} -span.LATEX span.TEX{ position:relative; left: -0.4em; } -div.float img, div.float .caption {text-align:center;} -div.figure img, div.figure .caption {text-align:center;} -.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} -.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} -table.equation {width:100%;} -.equation td{text-align:center; } -td.equation { margin-top:1em; margin-bottom:1em; } -td.equation-label { width:5%; text-align:center; } -td.eqnarray4 { width:5%; white-space: normal; } -td.eqnarray2 { width:5%; } -table.eqnarray-star, table.eqnarray {width:100%;} -div.eqnarray{text-align:center;} -div.array {text-align:center;} -div.pmatrix {text-align:center;} -table.pmatrix {width:100%;} -span.pmatrix img{vertical-align:middle;} -div.pmatrix {text-align:center;} -table.pmatrix {width:100%;} -img.cdots{vertical-align:middle;} -.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} -.caption td.id{font-weight: bold; white-space: nowrap; } -table.caption {text-align:center;} -h1.partHead{text-align: center} -p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } -p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } -.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} -.subparagraphHead, .likesubparagraphHead { font-weight: bold;} -.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} -.verse{white-space:nowrap; margin-left:2em} -div.maketitle {text-align:center;} -h2.titleHead{text-align:center;} -div.maketitle{ margin-bottom: 2em; } -div.author, div.date {text-align:center;} -div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } -div.author{white-space: nowrap;} -.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } -.abstract p {margin-left:5%; margin-right:5%;} -table.abstract {width:100%;} -.frenchb-nbsp{font-size:75%;} -.frenchb-thinspace{font-size:75%;} -/* end css.sty */ - diff --git a/final/doc/READ_ME.dvi b/final/doc/READ_ME.dvi deleted file mode 100644 index 836714e..0000000 Binary files a/final/doc/READ_ME.dvi and /dev/null differ diff --git a/final/doc/READ_ME.html b/final/doc/READ_ME.html deleted file mode 100644 index fd0333a..0000000 --- a/final/doc/READ_ME.html +++ /dev/null @@ -1,469 +0,0 @@ - - -AWOR - Fichier Lisez-moi de l’administrateur - - - - - - - - -
    - - - -

    AWOR - Fichier Lisez-moi de l’administrateur

    -

    -
    13 mars 2007
    -
    -

    Table des matières

    - -

    - -

    1 Compatibilité

    -

    Cette application peut-être utilisée sur un serveur fonctionnant avec Apache, -MySQL(>=4) et PHP (>=4). -

    PHP - L’application ne nécessite pas de configuration de PHP particulière. Elle -fonctionne quelque soit la valeur du paramètre de configuration register_globals, -utilise les sessions via les fonctions introduites en PHP4. L’application fonctionne -quelque soit la verbosité des affichages d’erreur et de warning PHP, car nous avons -travaillé à éliminer tous les messages ﹤﹤ E_NOTICE ﹥﹥ PHP qui surviennent par -exemple lors d’une comparaison avec une variable non-initialisée. -

    Les scripts PHP n’accèdent pas en écriture au système de fichier, sauf pour -l’upload de fichiers. Le dossier ﹤﹤ fichiers ﹥﹥ doit être accessible en écriture -par les scripts PHP sans quoi la fonctionnalité d’échange de fichier serait -inutilisable. -

    MySQL - Les scripts PHP ne modifient pas structurellement la base de donnée -MySQL, il suffit donc d’un compte permettant les instructions SELECT, -INSERT, UPDATE, DELETE sur les tables de l’application. Pour indiquer à -l’application quel compte MySQL utiliser, veuillez vous reporter à la section -3.3. -

    -

    2 Sécurité

    -

    Cette application a été développée en gardant toujours à l’esprit les problèmes de -sécurités. Nous ne pouvons évidemment pas la garantir failles ni bugs, mais nous -sommes fixé des règles de programmation pour éviter les failles les plus courantes. -Toutes les données issue de l’utilisateur lors des traitements des pages web sont -traitées pour éviter des problèmes d’insertion de code dans les requetes SQL. -L’authentification des utilisateurs est systématique, vérifiée à chaque page et repose -sur le système des sessions PHP. En revanche, il faut noter que le formulaire -d’authentification n’est pas protégé contre l’usurpation de mots de passe car les -contraintes données dans le cahier des charges ne le permettent pas, dû -moins, il n’est pas possible d’utiliser un cryptage efficace (assymétrique) -sans modifier le système d’authentification déléguée et sans utiliser une -configuration de serveur Web spécifique. Considérez, pour résoudre ce problème, -l’emploi sur serveur web sécurisé (HTTPS) et l’utilisation d’une liaison entre -le serveur web et le serveur d’authentification au travers d’un réseau de -confiance. - -

    -

    3 Installation

    -

    -

    3.1 Dépaquetage des pages PHP

    -

    L’application est livrée dans une archive de type tarball compressée qui contient -toute l’arborescence et les fichiers PHP nécessaires. Il suffit de décompresser cette -archive en conservant l’arborescence dans un dossier publié par votre serveur Web. -Les fichiers de configurations sont présent et contiennent des valeurs d’exemple que -vous pourrez adapter à votre situation. -

    -

    3.2 Paramètres de configuration

    -

    Cette application comporte deux fichiers de configuration qui sont dans le dossier -﹤﹤include ﹥﹥. Les fichiers existent dans la version distribuée et ont pour but de servir -de modèle. -

    -

    -connect.inc.php :
    ce fichier contient les coordonnées du serveur MySQL, de - l’utilisateur SQL et de la base que l’application utilisera. -
    -config.inc.php :
    ce fichier contient tout le reste de la configuration de - l’application. Le fichier est un script PHP qui initialise un tableau - multi-dimentionnel. Ce choix à été fait par commodité, et pour permette - de bien hiérarchiser les information, en revanche, la syntaxe est fourbe... - N’oubliez pas de virgule ! Toutes les constantes sont décrites ci-dessous. -

    -

    - $adminMail :
    adresse e-mail de l’administrateur. Affichée à l’utilisateur - lorsque qu’une erreur interne à l’application s’est produite. -
    - $automatedMail :
    adresse e-mail de réponse des courriels envoyés - automatiquement par l’application. -
    - AUTH :
    Paramètres d’authentification -

    -

    - POP :
    Paramètres pour les serveurs mail POP -

    - -

    - SERVERS :
    Chaque élément de ce tableau à pour clef le nom - de domaine du fournisseur de service de courriel ( partie - suivant le @ dans une adresse e-mail) à pour valeur un - tableau associatif de la forme suivante -

    -

    - subdomain :
    adresse complete du serveur offrant le service - POP -
    - port :
    numéro de port TCP utilisé pour se connecter au - service POP -
    - username_is_full_mail :
    Booléen (true ou false) indicant - si le nom d’utilisateur à utiliser pour l’authentification - est l’adresse e-mail complète. C’est utile pour les serveurs - POP gérant des adresses email sur plusieurs domaines - (comme wanadoo / orange au moment où j’écris ce - document)
    -
    -
    - bypass_if_local :
    Booléen indiquant si l’authentification doit - être outrepassée si la connexion s’effectue depuis le serveur - lui-même.
    -
    - CSS :
    Paramètres des styles de pages -

    -

    - CHOOSER_LIST :
    Ce tableau associatif contient la liste des - styles CSS à utiliser. Les clefs sont les libellés des thèmes - à afficher et les valeurs sont les noms des fichiers CSS - correspondants, sans chemin, ni extension.
    -
    - MAIL :
      -

    -

    - TEMPLATES :
    Ce tableau contient des tableaux associatifs dont - les clefs seront utilisées dans les passages de paramètres HTML, - et contiennent des sous-tableaux de la forme suivante : -

    -

    - caption :
    Intitulé qui sera affiché à l’utilisateur - -
    - tpl_file :
    Nom du fichier (avec l’extension PHP) contenant le - modèle.
    -
    -
    - SUPERUSERS :
    Ce tableau contient la liste des login des super-utilisateurs - (ceux qui ont le droit de supprimer des réunions) -
    - UPLOAD :
    Paramètres concernant l’attachement de fichiers aux - réunions -

    -

    - accepted_files :
    Tableau des extensions qui sont autorisées.
    -
    -
    -

    -

    3.3 Initialisation de la base

    -

    Tout les fichiers nécessaires sont rangés dans le dossier ﹤﹤ install ﹥﹥. Vous utiliserez -principalement le fichier ﹤﹤ RAZBase.php ﹥﹥. Appelé au travers du serveur web, il vous -permettra automatiquement de mettre en place la structure de la base de données, et -optionnellement, d’insérer un jeu d’essai pour tester l’application sur votre serveur. Si -vous ne souhaitez pas utiliser de compte SQL ayant le droit d’altérer la structure -des tables de votre base avec ce script php, vous pouvez exécuter le script -﹤﹤ base.sql ﹥﹥ avec votre client SQL favori. Le jeu d’essai se trouve dans le fichier -﹤﹤ jeu_essai.sql ﹥﹥. -

    -

    3.4 Configuration par défaut des comptes

    -

    Dans le fichier de configuration modèle, un super-utilisateur est configuré : -inglebert@iut-blagnac.fr et le jeu d’essai proposé au paragraphe précédent permet de -créer des utilisateurs, et en particulier inglebert@iut-blagnac.fr. -

    Par défaut, vous pourrez donc vous connecter en tant qu’administrateur avec ce -compte. Le jeu d’essai met ce compte avec comme mode d’authentification ﹤﹤ bypass ﹥﹥, -ce qui signifie qu’aucun mot de passe est nécessaire. Pour utiliser un vrai système -d’authentification, connectez-vous avec ce compte et allez dans la page ﹤﹤ Mon Profil ﹥﹥ -pour choisir une autre mode d’authentification. -

    -

    4 Maintenance

    - -

    -

    4.1 Visualisation des objets et des fichiers

    -

    Une page d’administration est prévue à cet effet, et elle n’est accessible que par un -﹤﹤ super-utilisateur ﹥﹥, c’est à dire un utilisateur consigné dans le fichier de -configuration principal en tant que tel, confère 3.2. -

    -

    4.2 Nettoyage de la base

    -

    À partir de la page d’administration décrite dans le paragraphe précédent, vous -pouvez aussi purger les fichiers attachés et les objets de la base de données devenus -obsolètes. L’aide contextuelle de cette page vous expliquera comment faire. Il est -vivement conseillé de faire une sauvegarde de la base de données et des fichiers joints -aux réunions avant d’utiliser cet outil car l’erreur de manipulation ou de -programmation est toujours possible... -

    -

    5 Authentification dédiée - Personnalisation

    -

    AWOR utilise un système d’authentification dédiée de sorte qu’aucun mot de passe -ne soit stocké, et que l’utilisateur n’ait pas besoin d’en retenir un nouveau. -Le code d’authentification à été écrit de manière à être maléable et est -extensible. Le coeur du système d’authentification se trouve dans le fichier -﹤﹤auth_dialog.php ﹥﹥. Vous y trouverez une section commençant par le commentaire -ci-dessous. -

    -

    -
    - /*************************************************** -

    ** Ajouter d’autres mode d’authentification ici ! ** -

    ***************************************************/

    -

    Comme l’indique ce commentaire, vous pourrez ajouter à cet endroit une portion -de code pour utiliser un autre service d’authentification. La syntaxe est la -suivante : -

    -

    -
    - case ’<nom_auth>’ : -

    /* Eventuellement du code préléminaire */ -

    $auth_is_ok=<fonction_ou_variable_authentification>; -

    if ( ! $auth_is_ok ) - -

    { // On exécute la ligne ci-dessous que si l’authentificaiton à échouée -

    $errmsg=<fonction_ou_chaine_explicant_l_erreur_d_authentification>; -

    } -

    break;

    -

    Il vous suffit de remplacer les éléments entre chevrons dans le code ci-dessus et de le -coller dans ﹤﹤auth_dialog.inc.php﹥﹥ pour pouvoir utiliser un nouveau mode -d’authentification. Reste à donner à l’utilisateur la capacité de l’utiliser. Vous -devrez encore, d’une part, ajouter dans la base de données le <nom_auth> à -l’énumération du champ ﹤﹤methodeAuth﹥﹥ de la table ﹤﹤Personne﹥﹥, et d’autre part -proposer à l’utilisateur d’utiliser ce mode d’authentification en modifiant la page -﹤﹤profil.php﹥﹥. - - - - - diff --git a/final/doc/READ_ME.lyx b/final/doc/READ_ME.lyx deleted file mode 100644 index 9c5e090..0000000 --- a/final/doc/READ_ME.lyx +++ /dev/null @@ -1,582 +0,0 @@ -#LyX 1.4.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 245 -\begin_document -\begin_header -\textclass article -\language french -\inputencoding auto -\fontscheme default -\graphics default -\paperfontsize default -\spacing single -\papersize default -\use_geometry false -\use_amsmath 1 -\cite_engine basic -\use_bibtopic false -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\defskip medskip -\quotes_language french -\papercolumns 1 -\papersides 1 -\paperpagestyle default -\tracking_changes false -\output_changes false -\end_header - -\begin_body - -\begin_layout Title -AWOR - Fichier Lisez-moi de l'administrateur -\end_layout - -\begin_layout Standard -\begin_inset LatexCommand \tableofcontents{} - -\end_inset - - -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Section -Compatibilité -\end_layout - -\begin_layout Standard -Cette application peut-être utilisée sur un serveur fonctionnant avec Apache, - MySQL(>=4) et PHP (>=4). - -\end_layout - -\begin_layout Paragraph -PHP -\end_layout - -\begin_layout Standard -L'application ne nécessite pas de configuration de PHP particulière. - Elle fonctionne quelque soit la valeur du paramètre de configuration register_g -lobals, utilise les sessions via les fonctions introduites en PHP4. - L'application fonctionne quelque soit la verbosité des affichages d'erreur - et de warning PHP, car nous avons travaillé à éliminer tous les messages - -\begin_inset Quotes fld -\end_inset - -E_NOTICE -\begin_inset Quotes frd -\end_inset - - PHP qui surviennent par exemple lors d'une comparaison avec une variable - non-initialisée. -\end_layout - -\begin_layout Standard -Les scripts PHP n'accèdent pas en écriture au système de fichier, sauf pour - l'upload de fichiers. - Le dossier -\begin_inset Quotes fld -\end_inset - -fichiers -\begin_inset Quotes frd -\end_inset - - doit être accessible en écriture par les scripts PHP sans quoi la fonctionnalit -é d'échange de fichier serait inutilisable. -\end_layout - -\begin_layout Paragraph -MySQL -\end_layout - -\begin_layout Standard -Les scripts PHP ne modifient pas structurellement la base de donnée MySQL, - il suffit donc d'un compte permettant les instructions SELECT, INSERT, - UPDATE, DELETE sur les tables de l'application. - Pour indiquer à l'application quel compte MySQL utiliser, veuillez vous - reporter à la section -\begin_inset LatexCommand \ref{sub:Initialisation-de-la-bd} - -\end_inset - -. -\end_layout - -\begin_layout Section -Sécurité -\end_layout - -\begin_layout Standard -Cette application a été développée en gardant toujours à l'esprit les problèmes - de sécurités. - Nous ne pouvons évidemment pas la garantir failles ni bugs, mais nous sommes - fixé des règles de programmation pour éviter les failles les plus courantes. - Toutes les données issue de l'utilisateur lors des traitements des pages - web sont traitées pour éviter des problèmes d'insertion de code dans les - requetes SQL. - L'authentification des utilisateurs est systématique, vérifiée à chaque - page et repose sur le système des sessions PHP. - En revanche, il faut noter que le formulaire d'authentification n'est pas - protégé contre l'usurpation de mots de passe car les contraintes données - dans le cahier des charges ne le permettent pas, dû moins, il n'est pas - possible d'utiliser un cryptage efficace (assymétrique) sans modifier le - système d'authentification déléguée et sans utiliser une configuration - de serveur Web spécifique. - Considérez, pour résoudre ce problème, l'emploi sur serveur web sécurisé - (HTTPS) et l'utilisation d'une liaison entre le serveur web et le serveur - d'authentification au travers d'un réseau de confiance. -\end_layout - -\begin_layout Section -Installation -\end_layout - -\begin_layout Subsection -Dépaquetage des pages PHP -\end_layout - -\begin_layout Standard -L'application est livrée dans une archive de type tarball compressée qui - contient toute l'arborescence et les fichiers PHP nécessaires. - Il suffit de décompresser cette archive en conservant l'arborescence dans - un dossier publié par votre serveur Web. - Les fichiers de configurations sont présent et contiennent des valeurs - d'exemple que vous pourrez adapter à votre situation. -\end_layout - -\begin_layout Standard - -\end_layout - -\begin_layout Subsection -\begin_inset LatexCommand \label{sub:Configuration} - -\end_inset - -Paramètres de configuration -\end_layout - -\begin_layout Standard -Cette application comporte deux fichiers de configuration qui sont dans - le dossier -\begin_inset Quotes fld -\end_inset - -include -\begin_inset Quotes frd -\end_inset - -. - Les fichiers existent dans la version distribuée et ont pour but de servir - de modèle. -\end_layout - -\begin_layout Description -connect.inc.php\InsetSpace ~ -: ce fichier contient les coordonnées du serveur MySQL, de - l'utilisateur SQL et de la base que l'application utilisera. -\end_layout - -\begin_layout Description -config.inc.php\InsetSpace ~ -: ce fichier contient tout le reste de la configuration de l'applica -tion. - Le fichier est un script PHP qui initialise un tableau multi-dimentionnel. - Ce choix à été fait par commodité, et pour permette de bien hiérarchiser - les information, en revanche, la syntaxe est fourbe\SpecialChar \ldots{} - N'oubliez pas de virgule - ! Toutes les constantes sont décrites ci-dessous. -\end_layout - -\begin_deeper -\begin_layout Description -$adminMail\InsetSpace ~ -: adresse e-mail de l'administrateur. - Affichée à l'utilisateur lorsque qu'une erreur interne à l'application - s'est produite. -\end_layout - -\begin_layout Description -$automatedMail\InsetSpace ~ -: adresse e-mail de réponse des courriels envoyés automatiquement - par l'application. -\end_layout - -\begin_layout Description -AUTH\InsetSpace ~ -: Paramètres d'authentification -\end_layout - -\begin_deeper -\begin_layout Description -POP\InsetSpace ~ -: Paramètres pour les serveurs mail POP -\end_layout - -\begin_deeper -\begin_layout Description -SERVERS\InsetSpace ~ -: Chaque élément de ce tableau à pour clef le nom de domaine du fournisse -ur de service de courriel ( partie suivant le @ dans une adresse e-mail) - à pour valeur un tableau associatif de la forme suivante -\end_layout - -\begin_deeper -\begin_layout Description -subdomain\InsetSpace ~ -: adresse complete du serveur offrant le service POP -\end_layout - -\begin_layout Description -port\InsetSpace ~ -: numéro de port TCP utilisé pour se connecter au service POP -\end_layout - -\begin_layout Description -username_is_full_mail\InsetSpace ~ -: Booléen (true ou false) indicant si le nom d'utilisateur - à utiliser pour l'authentification est l'adresse e-mail complète. - C'est utile pour les serveurs POP gérant des adresses email sur plusieurs - domaines (comme wanadoo / orange au moment où j'écris ce document) -\end_layout - -\end_deeper -\end_deeper -\begin_layout Description -bypass_if_local\InsetSpace ~ -: Booléen indiquant si l'authentification doit être outrepassée - si la connexion s'effectue depuis le serveur lui-même. -\end_layout - -\end_deeper -\begin_layout Description -CSS\InsetSpace ~ -: Paramètres des styles de pages -\end_layout - -\begin_deeper -\begin_layout Description -CHOOSER_LIST\InsetSpace ~ -: Ce tableau associatif contient la liste des styles CSS à utiliser. - Les clefs sont les libellés des thèmes à afficher et les valeurs sont les - noms des fichiers CSS correspondants, sans chemin, ni extension. -\end_layout - -\end_deeper -\begin_layout Description -MAIL\InsetSpace ~ -: -\end_layout - -\begin_deeper -\begin_layout Description -TEMPLATES\InsetSpace ~ -: Ce tableau contient des tableaux associatifs dont les clefs seront - utilisées dans les passages de paramètres HTML, et contiennent des sous-tableau -x de la forme suivante : -\end_layout - -\begin_deeper -\begin_layout Description -caption\InsetSpace ~ -: Intitulé qui sera affiché à l'utilisateur -\end_layout - -\begin_layout Description -tpl_file\InsetSpace ~ -: Nom du fichier (avec l'extension PHP) contenant le modèle. -\end_layout - -\end_deeper -\end_deeper -\begin_layout Description -SUPERUSERS\InsetSpace ~ -: Ce tableau contient la liste des login des super-utilisateurs - (ceux qui ont le droit de supprimer des réunions) -\end_layout - -\begin_layout Description -UPLOAD\InsetSpace ~ -: Paramètres concernant l'attachement de fichiers aux réunions -\end_layout - -\begin_deeper -\begin_layout Description -accepted_files\InsetSpace ~ -: Tableau des extensions qui sont autorisées. -\end_layout - -\end_deeper -\end_deeper -\begin_layout Subsection -\begin_inset LatexCommand \label{sub:Initialisation-de-la-bd} - -\end_inset - -Initialisation de la base -\end_layout - -\begin_layout Standard -Tout les fichiers nécessaires sont rangés dans le dossier -\begin_inset Quotes fld -\end_inset - -install -\begin_inset Quotes frd -\end_inset - -. - Vous utiliserez principalement le fichier -\begin_inset Quotes fld -\end_inset - -RAZBase.php -\begin_inset Quotes frd -\end_inset - -. - Appelé au travers du serveur web, il vous permettra automatiquement de - mettre en place la structure de la base de données, et optionnellement, - d'insérer un jeu d'essai pour tester l'application sur votre serveur. - Si vous ne souhaitez pas utiliser de compte SQL ayant le droit d'altérer - la structure des tables de votre base avec ce script php, vous pouvez exécuter - le script -\begin_inset Quotes fld -\end_inset - -base.sql -\begin_inset Quotes frd -\end_inset - - avec votre client SQL favori. - Le jeu d'essai se trouve dans le fichier -\begin_inset Quotes fld -\end_inset - -jeu_essai.sql -\begin_inset Quotes frd -\end_inset - -. -\end_layout - -\begin_layout Subsection -Configuration par défaut des comptes -\end_layout - -\begin_layout Standard -Dans le fichier de configuration modèle, un super-utilisateur est configuré - : inglebert@iut-blagnac.fr et le jeu d'essai proposé au paragraphe précédent - permet de créer des utilisateurs, et en particulier inglebert@iut-blagnac.fr. -\end_layout - -\begin_layout Standard -Par défaut, vous pourrez donc vous connecter en tant qu'administrateur avec - ce compte. - Le jeu d'essai met ce compte avec comme mode d'authentification -\begin_inset Quotes fld -\end_inset - -bypass -\begin_inset Quotes frd -\end_inset - -, ce qui signifie qu'aucun mot de passe est nécessaire. - Pour utiliser un vrai système d'authentification, connectez-vous avec ce - compte et allez dans la page -\begin_inset Quotes fld -\end_inset - -Mon Profil -\begin_inset Quotes frd -\end_inset - - pour choisir une autre mode d'authentification. -\end_layout - -\begin_layout Section -Maintenance -\end_layout - -\begin_layout Subsection -Visualisation des objets et des fichiers -\end_layout - -\begin_layout Standard -Une page d'administration est prévue à cet effet, et elle n'est accessible - que par un -\begin_inset Quotes fld -\end_inset - -super-utilisateur -\begin_inset Quotes frd -\end_inset - -, c'est à dire un utilisateur consigné dans le fichier de configuration - principal en tant que tel, confère -\begin_inset LatexCommand \ref{sub:Configuration} - -\end_inset - -. -\end_layout - -\begin_layout Subsection -Nettoyage de la base -\end_layout - -\begin_layout Standard -À partir de la page d'administration décrite dans le paragraphe précédent, - vous pouvez aussi purger les fichiers attachés et les objets de la base - de données devenus obsolètes. - L'aide contextuelle de cette page vous expliquera comment faire. - Il est vivement conseillé de faire une sauvegarde de la base de données - et des fichiers joints aux réunions avant d'utiliser cet outil car l'erreur - de manipulation ou de programmation est toujours possible\SpecialChar \ldots{} - -\end_layout - -\begin_layout Section -Authentification dédiée - Personnalisation -\end_layout - -\begin_layout Standard -AWOR utilise un système d'authentification dédiée de sorte qu'aucun mot - de passe ne soit stocké, et que l'utilisateur n'ait pas besoin d'en retenir - un nouveau. - Le code d'authentification à été écrit de manière à être maléable et est - extensible. - Le coeur du système d'authentification se trouve dans le fichier -\begin_inset Quotes fld -\end_inset - -auth_dialog.php -\begin_inset Quotes frd -\end_inset - -. - Vous y trouverez une section commençant par le commentaire ci-dessous. -\end_layout - -\begin_layout LyX-Code - -\lang english -/*************************************************** -\end_layout - -\begin_layout LyX-Code - -\lang english -** Ajouter d'autres mode d'authentification ici ! ** -\end_layout - -\begin_layout LyX-Code - -\lang english -***************************************************/ -\end_layout - -\begin_layout Standard -Comme l'indique ce commentaire, vous pourrez ajouter à cet endroit une portion - de code pour utiliser un autre service d'authentification. - La syntaxe est la suivante : -\end_layout - -\begin_layout LyX-Code -case '': -\end_layout - -\begin_layout LyX-Code -/* Eventuellement du code préléminaire */ -\end_layout - -\begin_layout LyX-Code - -\lang english -$auth_is_ok=; -\end_layout - -\begin_layout LyX-Code - -\lang english -if ( ! $auth_is_ok ) -\end_layout - -\begin_layout LyX-Code - -\lang english -{ // On exécute la ligne ci-dessous que si l'authentificaiton à échouée -\end_layout - -\begin_layout LyX-Code - -\lang english -$errmsg=; -\end_layout - -\begin_layout LyX-Code - -\lang english -} -\end_layout - -\begin_layout LyX-Code - -\lang english -break; -\end_layout - -\begin_layout Standard - -\lang english -Il vous suffit de remplacer les éléments entre chevrons dans le code ci-dessus - et de le coller dans -\begin_inset Quotes fld -\end_inset - -auth_dialog.inc.php -\begin_inset Quotes frd -\end_inset - - pour pouvoir utiliser un nouveau mode d'authentification. - Reste à donner à l'utilisateur la capacité de l'utiliser. - Vous devrez encore, d'une part, ajouter dans la base de données le - à l'énumération du champ -\begin_inset Quotes fld -\end_inset - -methodeAuth -\begin_inset Quotes frd -\end_inset - - de la table -\begin_inset Quotes fld -\end_inset - -Personne -\begin_inset Quotes frd -\end_inset - -, et d'autre part proposer à l'utilisateur d'utiliser ce mode d'authentification - en modifiant la page -\begin_inset Quotes fld -\end_inset - -profil.php -\begin_inset Quotes frd -\end_inset - -. -\end_layout - -\end_body -\end_document diff --git a/final/doc/READ_ME.pdf b/final/doc/READ_ME.pdf deleted file mode 100644 index 7948fe2..0000000 Binary files a/final/doc/READ_ME.pdf and /dev/null differ diff --git a/final/doc/READ_ME.ps b/final/doc/READ_ME.ps deleted file mode 100644 index 9c293fc..0000000 --- a/final/doc/READ_ME.ps +++ /dev/null @@ -1,2436 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software -%%Title: READ_ME.dvi -%%Pages: 5 -%%PageOrder: Ascend -%%BoundingBox: 0 0 612 792 -%%DocumentFonts: CMR17 CMR12 CMBX12 CMBX10 CMR10 CMMI10 LASY10 CMTT10 -%%+ CMSY10 -%%DocumentPaperSizes: Letter -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips -t letter -o READ_ME.ps READ_ME.dvi -%DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2007.03.13:1229 -%%BeginProcSet: tex.pro 0 0 -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S -/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy -setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask -restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -%%BeginProcSet: texps.pro 0 0 -%! -TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 -index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 -ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ -pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get -div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type -/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end -definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup -sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll -mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ -exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} -forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def -end - -%%EndProcSet -%%BeginFont: CMSY10 -%!PS-AdobeFont-1.1: CMSY10 1.0 -%%CreationDate: 1991 Aug 15 07:20:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /CMSY10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 102 /braceleft put -dup 103 /braceright put -readonly def -/FontBBox{-29 -960 1116 775}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 -7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 -A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 -E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A -221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A -27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF -5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 -0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 -DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A -71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 -4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C -515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD -5F3D998C69E42AA96AA212AD55B676FA2B4F6B519575404233C09AF99014AB95 -767523D9E1F8806E766AC0DD6D81028C3AA9C7536D88D3C2DB6D9949F844935E -420963F40430452DEAAC1F500BFB1C2473C54B9987BE449F042633C7038D5AEB -7E1E11C50911EBCF0979F8192E056A2B2EE9785EB73B1AB874116AD5AA74F32C -BF57FC28FFED335DFD9261AC7A624EAA93BEBC2C0F8B3F898DDA1490D59C6C4B -A651746C8EAD41BDAA1AF4056AFE98D2D3AE3CCEB9C67FE3A63385470EA42968 -34268684A674675AB9EDBB5BFCA81224B22D4ECF40D1F31A39481AC68A87F252 -F4E7C1C340A26E0D514BACCAA51898758A7E7B63D2E7F34E91554151433F0FD2 -4901D3DE9A5FB9306552DC57EAB729AA07780927E1ECCB5D1F59A09A1E3FFF2D -922B6C9B58CB20D687A72B9C22D4EC926771541EDA3B75559510DB21BA4461EA -960B8E5AF4D31D08E8F235D677A9F6EFDB01926967743942C23955678E438F51 -E5E22E2FA2AA7894755053C32B39277B82C00B3D9BE9957CF3ED626852FFFC31 -6E5F0F7489198136A3284B31CC94299EED05B8FA66B8D33F7C47367790D23CD5 -303B0C8E58B0E51BEA9325282F19A3D361A3BEA6BB0CCD09BE735D810E7E0A79 -D1A9C580CFC8CF9FF685D63ECDCCC024C235448BA632F00C3C5BC0E86F44B90A -293817CC93035E5E18548A7E157C2887309BF84C167D8DBED024BB -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMTT10 -%!PS-AdobeFont-1.1: CMTT10 1.00B -%%CreationDate: 1992 Apr 26 10:42:42 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /CMTT10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 18 /grave put -dup 19 /acute put -dup 33 /exclam put -dup 36 /dollar put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 45 /hyphen put -dup 47 /slash put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /less put -dup 61 /equal put -dup 62 /greater put -dup 65 /A put -dup 69 /E put -dup 79 /O put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 120 /x put -readonly def -/FontBBox{-4 -235 731 800}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 -38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF -D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 -EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 -A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 -F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 -4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA -6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E -A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B -E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F -1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 -452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF -8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 -5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA -DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 -BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 -741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 -E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 -E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 -D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE -C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA -726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227 -CEBEF0C9440DC034DAD9C19FB27A350233112B0A339366B7373CE058456E0E1F -139E2DCAA12133B5B6017B0E08E776403F967AF719E0161CDFBF8BBE8490F57E -53C78E97517EF7FB7C00035D601CAC8F4EB2F16F8765614227C71C390C32E960 -FC7E9B9BF26D89F808B05C2E483B9171450E4CF3A86E62886E826B1E34FEC34A -90D3FAC2AF1FB275E094E8D7193F90BC0CB304DF4D689A954C9449169527C39D -9CB9096FC455C5D6142157E548E04DDDE0638C24641FF3EE31B1E35E1A76EA79 -F0DBFAC9967E6C649559B6CA9944962E09541FBB7A00956D1ACA7D8C2355A2C6 -12CA44A7392D8E791DDE1DE818BBF26CE3BCC2568666FCF40BD9C588E28745D4 -49186EDEF6D270E5D8C9BF95B4C1213841128AF3361EE4B989D3A784F916A2D7 -D31A9F2F0C3E4F367427BF3F0C4F36E9276D082BF8C250E469D647AB51DD7701 -4C29231FEB055C147F0A782389800E3ED38D7AE8C6555228CD148541D763D325 -21016A8A5234A8AC19BFD6E3346A94D8A7479DBC59B5796D3063FCC2CE8DBCC9 -1E4139036B4E883A4CBFC0DA2F3BCAAF8BF4DA641882E8CF028D9F9271257FD3 -0872AA684B19CF706474B4F86EE510BEF0164F8504578A9FAE4339270B8C5D81 -496424BE58438D5ECE95BD18973CC66F471E7CA58039ADB2FDEE9329CC788A19 -E852B137500A6F32DEF2742E6C2B182FE2777150BABCF8A2C21FC1FEEC3765EA -8E337F9BDEC3FBD5D4D7857FA703F282EDA0DC7A22E2E44E131DB5D9954B7603 -E2934111D6B57CFA826DB114947DFA87EDCC6CCB33146C2742E7DF664A3BCDA5 -3335EDF6A6C7290939BA0D9937F1D6FA47522D0DCA42AFC7E0EEFDE9B914D5B4 -8039D2C3F063EAAAE10516DDF3DBF97B5F87EE9EA959AC738AB6CDEA63DA8862 -7F7EA32222690E7EDC6F4B3391E834977D476B19D9C14D92420122A733E735A5 -EDED2F02D5A7F3347CB289CA2A440945544A7677C4BD7DA3000FDEA64A4A6E85 -4C1C6C4D16A91AFAB0B84A485CDFC5EDEB03E8E93218694C5426650444AC9972 -98634CB73BF34252A72F838CFABD9F667EB050C113EB222A745B878098AD2C48 -7C6F0817AD96EDA15FB9061832CD91B4270098246BA8D5ADDA339A49DF0292AB -6F7FE225D100F67F3DB412F4D95D464E27AEDB8B76FC8A0930E649E3EE380FC7 -6ECC654D9E901DD295F0A23A3CE88018A2ABA18977775D14695AC02F91E46549 -036939DCE6CFC8BB47CB297D9FF205F900A06DC9F65D2851C66443BE520954B9 -1C98471D8D7746AAFEB2A662A79DB89AC3B2DB327183ED0D4D52CEC819A49BB4 -7E7D4D8B871F85AD43A0441CA8EE86C209F3256BCBF4C4DDF209EFD7E70245FA -E072B99F1F20D4D504AEAB512F477C9B998C466E01238F9E87B3FCC90CE1A90D -4B1A422BA0C0293FD9F58DD4F18ACEA7029B88EB55A2FED83DEAE9F573E9FFCF -05102DC9BD02E9F6D150F3E9D1DFBB8962048508B859CD190DA15732F8D210B1 -7665EED21506DBABBD0E2745D84542555C9FF9ECC3A8043E7EABD1ED5AC7B499 -CEFEDC3164C2C92F5D88C67C6545E9482E70E1DC2C32117ABF99FA7726A43956 -6414DA5B78F70D7A26A8937CB80A705C8048DB26F0CEBD5CCCEA416F19699DF4 -6443C056290A555F50D9BA984B4DA2A19B2BA12E39CAA1EB432E4DD6D2AB907B -3F20B8A3D0FFDFF3258A7AF82A927CD4D54C2F56C1A2DE4C38F1ED186B7F0578 -33B918CB01EE5A839042AB0F740455F1E4DB53A21822CA65333855109335204B -32B6C05D5BE9D260F4AC010996C7CD7C0FD3E5EEA9A66493ABC66E74CD096FED -0175311C18C6F3B577E3C58BFB9A09FEF317B94AC7A1226DD67E2A3A3552CAFC -4314CC03CF0B48320EDF3906F21621B2D7BEE3698299B70EE202F944CE2A903F -6410E7C05A79809B5C875AAEC9A4205DDFC737B3241CD6FBA5327CBF30007B57 -4BFC1497DA3FDD05D8101438ED5BD186D5D8DABEFEA21EB2F25DCB60E2DA4BD3 -6E782FEECF9B0EBCB42E50FF504E8A40C0BE7C6A43DD5BFF2305518944270A32 -34C2D562F9B1A2ACF8C05E3FE0418FDDB10776C8F96B6DA2B554A966C76847D7 -194CF2085C9D9B729CF9DB043259B64A98F96ACDD926E7A27BD6C0A851B0FC76 -26B7C8BAB18706BBBBEEEEAD8B1475B1011A402EFACFA98B097B26A733529730 -FC03A63DB45273DF559D98450186FC0DE013CCAB58E0BF9B23858BC144AF4AAF -584657853F1893F49595536AE79FE8576BFE7320100B1B84E4448B0399C4726F -2783F9DAD23DFD164C8161702A2935C2588CF573F340DFD3DBE1E9B0D813AB8A -C3B13323271662029F9CCD1FB0C45EF425FD4D993A79874B70E579EC97967FC3 -702A9C2F35B4429B48209F97693806A4D959E7831950E43972E39B38FF86AC27 -10822BAC05F1AE05177DB365E1AB065E26FA661FD8207A8FFA1813532E7EC30B -D4E53E9A9ABD40680B88AFAF53FC0571E6AE27BC40A0F76388E5D0229E2E1595 -B503B126B7EEDCC999ECD51714D62F551A0B96EDAF1E79CC134782DB35684CAF -6B740C64F3BD1C89C5AAB48948F52B2FFBC9B1DA9CF690795AB1A3BD7833E4C6 -C0D4086BCD203525410C86C67092B374C9C470E7945A283A16C13CEE9082F647 -3E2DFFFBAB9838FAAAAF0587D48409EB39FC15E666249FFE4A7F800FAE1F4283 -BFB8D88E617E66DB9EB13EA2D41D0BF78158FEB44337804CCB239322ADC61B91 -9419AEC7F3F21374969D91EF2B1A4B13E8588B4987D5C7969C53D292E11C2570 -7B0F5B31E54EA40288EEB3DCA236D122C5D18E8805091C8B443E7DA62C87BD16 -CB4701563393DD13E0C0E7D18B1B37A39837FE150D1A7EDFD2143C33B0EC4428 -2B80952D456CE5183432181468099E9C0B3445AFB24DE79A664BDA3F16B1EE4D -D1DA546437D8569BD9EA0B561A0E7742A4055B8F921F02CE9A8DBB5442A9997D -85626AC2847CBCC69FEE0FE0C50CD0063856A60581C78A9C06347A0F2DC39496 -81AD75A6B5E26D74EE09EE581063774F1831C26DDAF910BCAEC550975C0A7AEA -F9954F1881DB9C496D2197ACAE6A8069ABC257C846BDEEB1D15943FC436B2DEB -11A1D0982DBE0CFCBAB99F52FE5089AAF2D8E16D43D6D1023D4ED077B8C95BCD -09C050584B5F1E65473083CD46C10294187FC277D8F655CE5586D6CBD8C2C145 -1F8DC42A4FBF99379C8FB8D8B5BF501BA6C77C4F7983C3F7F7AD4BB5CEB681D7 -A66EF51E3D222DD88437C16EA4CFD8B31C0644E36F0C968C76A7F2FF3C0462E9 -9497A8D6000A16BCD597E3000E9F85E10F0032708DA7B50FCC53D89BEDFDC56B -7923D6130CF9DB95EF5CB83D01C07EE9B4A5EC5FEC0174DCAA262951747B6669 -D56F651E980237B5C7C558DC0807C3946DC1AA63F0630D5EFB998EDBEAED3900 -5FE4DE1A2AF923B42114D546F936387326B04626B0CD44A0DBFB8B083ED63200 -63AAA6B24E828A62F0E8CC307D1EFB42E738357138AFB63E60752E1ABE891828 -B55B19DC32FFFDA3C41DF9F05DF9239AAAB9F196BA68A763082440804C7B3AB8 -FABCD82C9F552F1AF2CFBFFA1585389CE5A2A5E984CE02F92A91869A5ED0E039 -5B3F9D7E1FC7A070FCC41F92031F5107470AA90D7B535221A748597CC188DFA7 -DA68616806D95752FB176FA137E23517467EAFCAD8FDE4E3733D64E6D9758DAD -6217A2A3C08DA70DC64383B56260575183A08772A7B5657501ACDE1118C5BF44 -9CEEA3D86F0FD2B43EFA5B8F1F58F99168683B393A3F9E84EDAF1D4E92398812 -1A0D12AE549B3557D0150CD0ADC04DA4C5B2D40E7C64C36A26896D6B8401B48F -779C3FB593C2A9A983B533A7C99C9E43BAFA1FC9AF5E65516D2DA32924D352E3 -8371D19559A6FF8C311332C473BE41E55113C711C6AEEFAC9AE3A7CF0011F531 -61C693860994A44793336AA158634D9D756B0F98FC5D3E6826C71F2A1C4E1175 -EFD1047D682263F253E64B0E6119C09CD02016FFE5D7D950C26829B6F41B8798 -37A467DBC484991D9B523BA441E405C395E5187B6264D74FE2E3E82910BE26E1 -5EAC9874C77B5EE2D354270ED47A774CA5674E18F25F4BE6755B7430DD7F39DA -F96CB74DE9C91B00DCAB75876D4586721AAB696EE3290D9F05F39A01695B07E1 -7DBDBD379B9225C291549E5D3C4A3D95B1ED277AF176890E32B2DA66A4DEB9E3 -1DA246BC679C12E6E2ACA3404A185C10F21721E71D84601302776E36F444ECBD -BDE861941397E6ECCAC4EBE71CC0005266E40AF949FC001CE132B71789E0F037 -FF3B56690BA309F623DEA80351B1E5800D809790EE7C96DE82F264BBE9AEA406 -577009EB689F8F9EC15641629C107D8986323703567B547110A99DAF7F16C623 -4F3029BC7E504B4C37B646F9C49CDDCF2DAAADB748686BD9F6D0B2EDAB2051F4 -DA20EB487266D9C55F9F5767EA899C0BCED7720BAE6362A7AD81F5D45F6A709D -3A27E50491A46CE17E585FBF9EFC2A27FFB50F00E4B05138C7D4F45A40B39E7C -2ABB5DC0DDEE77E4BDA3901A67BB93C52241384FCE35EC11F67D6C8677C9F889 -F0FC365893A10E11CEE5CA0155064D8D2E98699961D9B26BE86D4B9A5E2786C1 -3CF260A03857687EA6FBC83DEEF840ABCE7ADBDC897CE6B06F6DE55BF3B8AB6D -777293FEFC61C6DAD78894C873E162A5510A036FFFD9A10977CD627AC3EA4715 -F25A263E6331EEB9BE68DF97C946840841EF83204D9D313202C4ACA7BAF94050 -3B420EBBE797566277CFD3A7FA1AC6CF81FC24E6F336913F4A183B93BEB308A8 -4AE0CEE98B45B2C2683CC06374113AC12F79F98BD19D67F78E2EA586B518FCC1 -4C8B5ED575DD4631BCEAADABE1E9742A364C0D149AF83FD9AEB49EE0E12B08E2 -C4FC73A08F572AA40B58B5B44151974DAFB1FAA29B4D74038519590ABC83B0A8 -A22BD5BD843FB4310EB1E6552B45A5C64F2046DC330559996E77FEF47B4F2062 -3DA41A9E030757F4957BE97725F1DB6FBD15F144F5EFE357FB74BF758AC56A58 -F0F76D03C776F4CB58D7F549F11374DB4E2DF6A8DCF76F0EB394EB110A0477BC -65CEDE077AE2D013A8E46CC2E4F0BBBDE546801E24FD5B9A6A4935F4799DD803 -13FAB011EDBD4431C31C86C4D26C0E729A067C2DEC602A5D884F43BD62EBF59C -F552152162E45D18414D77DB32069C5B3EA64F465D6516335F3D243235FA3524 -E88FA64170BAE32117A35A9C7629DB90066A13160727FCC45C0BC95145AD8913 -075D28ACA02AFBD18B1A659C1DC229D0A6196A308DF639A002EC3A2962B4DCF1 -E9766188B7FA2448F7E3851F896CCE35E5D8644BB33D6F7AA17B3D2E03E2BAC7 -98B122F7370B1322D0A0CA0213CD918EC84EA6FA5BD45EA3B0E1C8EC168D6AA9 -6F6D664531CC8960DB40327B224F12C487FDC6A1E7211D90612B36E02FB7BE85 -36480D2293549DCFD64BEA4DAF4E1281E4FBD4C006C5200BB489246A7EE375B2 -A10826BF9CB311EE708421044375DB5F2165E4E07601BF25A1BD569C31A44CE6 -7E92A0E99939283BD2205B28808FE42C97DDD2C5B6ECD0ABFC114A3244B06213 -21399570C91AD742C71818F58AEF56EC10F0ACC62A20B1F4B9EB01571548218A -CA7D6F9AD9B97D5D03883B8E1194C5BCAA032BBDA9E71572C157D65AEFE2EAF6 -492E40826F692D743DDC26120F0AA543E72E5BB697EE138CABC3295CB819C08B -91F4CC16F5D3FEB1E839682CE56588BFFD94869EF54E061340B5E72257C4901D -BF10C71313A1B9CBC7F7B01C746E9E26E670CC7EC077ECE404425EADC54BCC2A -5854CEDD7563502EC2FE222F66BA55070448D829E3ABBCD360036C0B615E36DA -25911D22FEB2BF2C7D948AD56BF70822D30E4A4B1DEDCD6B531D195D6C7BBE0B -201EC0D8B0D68CA66A79C6968BE0879183BC145413A31466957A467B898778AE -DB9D8A1DE94A5D3FD3DCDA47E121F82F84BEA873A053AA9FAC7D9433C14BBDAB -FDDF6B0A4C73259C8CD62527511025A0B09F14B9CBC0F61A2231A002F8A6B63F -4BB27CC0E6B9CEBDB49561C8BFC5CFEABD91C3BFBA8BF3C0850668A6C55414FD -E3C4D537DE8DEB01A71592FC464ED5C8F43161AFA5020345C1624580F54DFED8 -00F8BD0C0BD0D33D3EAAD0896415FB3F11B6B79FA68DAA3A7C4CED48F322292C -F56F1D21FB55A1ED75AC0CE49334CC8476E08E2A7C3A44F09CB8F78ECA27C5FC -8DE7AFDA8EA8CD255CB0A72130797AC2EF0F0EF4BB9EA369CD72C068EDD01480 -8D8D0B6292FEA04E936758B4852F58FCADD8F9577D77CDCC7DCD3C9F0FF70EAE -E676F83CFC7E5124D4A3DC3A081A5AA9AE33A2B13B416E5E032719A388955CFC -2A9BF6F6D8CAF1D17A86E0041ECF792C4AA3D7CC7A962632D7B4C922BD792BE8 -14C684F6ED9948D2E4291036E2C8A413968B23287A0420D9E141952401E4D1D4 -1CDFFBEB8A5FAEDF20F77FC0BCBFBC94AE4CE330E93EF85E70449F662A4C9C93 -415406EA2619735DDFD879E27F9F90A0950B5508F333C7137DB094F9C3E2A648 -AC37B7849B07DCA55D5FF6FB36481FC33D7568469542DECE246F3D48C812BD27 -4910E2B22CADC88C4137A9EE44CAC9ABE9BAD8C73B3C6FCE1D91C6D4AAC76057 -076A88787D0025778E825B17D74D11C8FFEDFFDABB17E2825EC0FB52BDC32F05 -78E1C412CAB1C4D808C5B49D121E5B63914EE3766C2DDB8093EF9DD5269642CD -E5EE962EE1636E905E62D4D538B595849D14E9EDC126029E2130FC68F1A9EBF2 -F48AC67C7125770DB92090A1E41BC52F6EE7AABD4750767E392C6BA0D751FE90 -AD495954AC54FC1FF8A10F1554DC479404264922F0364071118A9FD48B261653 -65B441634D4CACBC1BCCBD456F9C581EE3437C57039DD63E073E0D2167501081 -485856B43837F64A06A9FB01716D2A175F87E084957416CA9AF22F5B203BFC99 -AAE8C49988502160C91B026E2CD029A8F4B22328FAE0D7D31B11523FC275E7D6 -7DD48755D43734110A4EFFC4423545022E59FE75186D4A7164377C6454F8AA41 -23D5B97851E6FC0921AB5DA9B5F8B2C5835C2B6BCD8A0D02A020D7CCA97FE4C2 -E6DD5823BB7E113D31A8DD39E0BD931C56FB6DD818404B7B65B6056FF4D9754B -5F70C9A2C6FF8AF493C037DCFEF55E8952E50E2617D9A49C9E7AC63F944C9517 -62A46F6BB0964E04C361A567B8ACBF9CFC369A7080A009EE679C25613953BEDB -F96973E3A1DD1497C6E376E1029F3FE570E42F977C36C94F5FD338F243C66D22 -F2AF9FAFBB04047A789EC6043C2EB96C21450B11D25A59EDE8825F10AFB2ED99 -55FB7FC704D7B19B43329EE34919221EBB323A3F7AA7EFA10AB170F84BA486A5 -B14A49211F5D83510E318CA55344C80749364D0C523C8B65DE96C6CD673C3D79 -47F428C0C783810BB54CDDC6A4409CC57C9B627E4AF6B44EE83E516AF8FC51DA -370D4FB0A41B35E868862A183B20114A8D8B577A4E1C274E4CD44875403AB236 -9AA6BBAAC8165DE9EF789151A96E8EADF67AC76E073F9E6BFECCA0BF75A4EDD6 -17D553C3AABCB5C5764405AD3C94D8A54517313C35624CAF96E813947DD0B1E3 -6B76D7F2D089940304D378255DACF0F0CEE0446C7158BCBA554B3B105B3A80E4 -DFDD9A41DA6D6BC69A6BAE21C37C4B25FD255DAB45BA1D5512FAB359C6459E1C -665A7BF9E073977A0918339C1F8AC3C30D4D74EC97C66DADC47C9012C3781609 -F850CD086B04A1DDD9AA28AED8122A02C24823234FD31F396A192D221E3D378C -E44B2200B24CEBD1682E9C26D45A9323A37E48EFF65424B85846D64D563A2AD9 -E63292B1485F5ABAE4ADBF54EA065C5048441FF0A0CBB10D480936D364CC5654 -BFFECF0C2A38489557A84C5667C5DCAD5A4E3B85F3AC770D81103ABC1965F3F5 -C9C887FB3D7FEBECF64315D2EC133B7469263ED10BFB9B4950E3AED113DC74EB -9F381FAD3560B5BFA876AFB34E9BFEE12949063943EEA5F65A4AF4749B0E15E7 -010CAA9C7C6CA9EC2E33D2569D7F62B1FB528C5B5BE1CC6BCF217FA4E1006A0C -ABE037E82F10FA4734FCF14FB4E03FC40CB23CB5F0A0E9654B10A54A131ABD54 -F610C986E1D94AB28BED44BB9ECCE0AE22EE9380B07B01E785A5292EAF8FFD39 -622A7A8EAB9236422239A0BA57ED81D4E2072A299A8D7CB76848606C90B9C06C -4E5E54E967A77E2EC1E3694370311320FBBA2B2B9379F3021D5A99EF9A7C419C -2AADE194C437EDB906B2205F0A412103DC40FBF93579E699A67BDA18858C35A3 -72F73E90D030C6456B59C339069F144783EFCFAB14E7159A8ECB9B0C80999B5B -32E6F3D330DA167BA5DC3558012C0A32521904EA86E0503773D1DC35D512E77F -E96C604769A529E4F66CF17B3612A687BEFA09347A37A4B595FCBD63187138C5 -FAE7BA4EFD0F605652D6658D699049DD525D682721775FEE095C45F52E0193B2 -F5DFF39F9F1CED442CE7D351FE3DBEF0019F65343EEBCFC149CC82030D45DB3E -9FB5F426A5DCCCAF9AB592D7A5A793F99E259E3220A58F9C901E103D7CD721C7 -8333F4519F3926D9056ECDB3E84C6870447ABC0A2BF1A32A5CEEEB042C7553B7 -90A130CE5EE0289EDBBAC28B8F11D3481815AC6EAC746F45F7D72A262448DDFC -F1F4B5206D5C331AD195E7BA74036C74C5B84576603E380AEC07062FE1063C59 -3942E6D9F19C93F90B1DFA3EE57E4D5D527995EFA611D32EE1E483B81056D3B9 -30F1D2DF8AD13A88431539774BA5B148E4EFBB9F2113C54E2831ABD036663D0B -6B75B19BB681CEA9C64DF48805EB4AE8D8CF7D102BFABD9D99BA8574FB1000A2 -586F547090315593FC6F3B2775770DBB7882425AC88A106B9B04832A215FD0F8 -874F46559EE9834EEE8CF349C7A2720E27E52C56DFAA696EB697B5C0D105DCF2 -CCA41D62200CEAA609E9412A57E84C43AD67D30CC5AE207552B3A5173A90E50D -9C7B16886BF6C07B49451530665C8684A9684D17FC0D6434DB503BD770FCFBC8 -06B8AF060E05C9111375699E6D898C00BFC9AE0DE977F13A23763CC5814A1ECB -9CA65D863E26885FE22EBFC256918090E0D8EB3267B8DDD9F03F1469E97A0DE6 -9A6A296137DBE9E3BA094A4372AA30EE525BA638DB2DE2BC600175CD87B3421C -2B60FF41FB2D3CCBEB7C1D12D7A618C2781155DE1407F5F5 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMBX12 -%!PS-AdobeFont-1.1: CMBX12 1.0 -%%CreationDate: 1991 Aug 20 16:34:54 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMBX12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 18 /grave put -dup 19 /acute put -dup 45 /hyphen put -dup 46 /period put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 65 /A put -dup 67 /C put -dup 68 /D put -dup 72 /H put -dup 73 /I put -dup 77 /M put -dup 78 /N put -dup 80 /P put -dup 83 /S put -dup 84 /T put -dup 86 /V put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 121 /y put -readonly def -/FontBBox{-53 -251 1139 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 -B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 -AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 -7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF -20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 -B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D -68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 -D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E -26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D -F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 -77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 -BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E -C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 -30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 -148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C -E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645 -1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38 -583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61 -0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D -B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2E064C03 -13C2E5064E4FB036548B136509EAD0CE1430E8DEB4A519BA4D453CF1A9D08C0A -1370543107E6ACFD6B0EA546D6AE20957BBBD632AEA43F0D35195DD85E1FE38D -9232D3F01B25A601E60C7C08210899521C600251D5A7DE2EC34DEB235CF6D122 -C41907F1D0A9B6E6AA98A95BA8A978B7D3F0275FA21137935B1BA53E81AF302E -909F22939F91C57C2348E8E085DF39BFC1EA7921A5EFCE7C6ED845006548ABAC -3B1C34CEFF31F0CA695352CF3B5E0972F82341178F42A34B85D8F66DFE822759 -EC1CA1BF94BEC645BC4D21B32EB2ED15D19EE2856D554D227313294DB0B2D9A8 -C76A7C0D9591F95741D80B45E803788990332DC2353166D899AB085729208770 -74483B0FA3C2C60B3423B162044839B6FAB217AC35C6387DAECDFBF8A8A737FE -185F2FB4C1541B89B9FF8B93E6CEF5BB0F9B9952AACE0ED10928DE45435C4B4E -E447F1AD61592F900C77FB7C72E64A28403AAE2F4520310EEC70C446537DFDEA -DF4359CA2CE513D87589CC631973179DD6E1AE23E53921FD1A841A90D38F47DC -30F66556F7BF1E05CE14DED5C7089DA72C40B4C44FAB4605F96FD152371B93BB -49C5AC1285CECD661945459A5EB53015D07E10BA67911019F8C84A8823A7F4DC -A995D8B1E661483BF883F7463BD941D5FD7C350291CF305C9B2CC35131C324D8 -CAA9C155DFBC1150D23EA3AFFACA3FAC5D71CC3F076836DF36FA334FD94D06F5 -4AABC54D16F3AA97F6A164A3CEE5F8028F740300097018E3462AB81577E2497F -3BDDD1A974FE984B721DE8C6FB5D2831876A1C8E1AD143451765E99EAEE82DD9 -67B5489546BA5CEB4CEE8171F3964A746699FA3054F85511B71AFCFB8A6A143A -A9F126C167EB2C93D0CA1A648DAE70979CFF590AE1417400B66E1FEAF388613F -9451F520BBBFEEC6E50BBBA0177FD5430AB47BE66761F490537C03FF333C7821 -61AD6FCC384F6A5F4F07B2B1DA50B3EF8FEB9A0C73FBA743BE8695F0331F361F -F43A511C8FEB2274FF1AB3713A60DED4EB43A25435F5519000D68C78FB844EDF -952ED6152D650A91A64F870374834119B28233715E228D2E9EFDD1571DEEC597 -8795250D17E2796A3013E9E1BBB5ECFE2CE29F387C860B87DD499BCD15666004 -FD6008BC8D1A8D3F84B2D5F1AF0A1EA4D05385F36AF908DD66227BEF7BFF6BE3 -FAC8FC06C52CC3DDD060A4CEE689E2CB3E47D6C0575B6F3C73EBE28E98191F73 -8C8ADF27453B58DC94CD68437FF99F02A78B6A277304AC26AA9DC21511F7CBC1 -6A6DB6759FA5CFF28F7B1C3569C8284FF42C63C5CF0155AE7F42199E5A3715EA -BF65A939F173618C61AAEE1C35C4EC4BC15B29EB6A3799A2EC26E4B9D4A24C99 -0531D99928636146EEC0475A746D7079EEF6EA939ADC9AAC19C28116D2BC80ED -7E2F58792DA34AC8E65083ADA7D70F4D019C1769ED665A42305FD10CD718A27E -6679D78234729B44D86FBAAABB4F4E5A13189962B37D602AB9DBAC45621B3F6C -E6CFB15861F3BCA2F089D635C3040B582C0D5D25C361F7841DF3904B5BDFB23D -E0FEC3D7B55C5FF5CF4E90EE20744CA89D5A8B837F61DC175585F452BCC96A0D -FAD5B210F6C783C6F986B1B8273DCA5AA059251C37E68A3450DCE010B9348CCE -916F08B2FF702B996A7B965756A23EEBB57BF02F6D8784186A1009C6FAF71E59 -64F282E70158CD4C9AF483FAC971B3981B3C7CB27F6DD5444D7D451CF8617FC5 -2C3770567A2913E7362BC1B09B1CD05D47D31173195D01BCDB6D2FE2322F8A66 -E54B6C93DE29D1EE67341F40C0EBF6DAC95E0B626A0708B31FF688B35EAFCE3C -6FDF759FDEEC357DDF44028217547D0271C587B373462AD9069BF54117A17405 -A6B495B9C406B64F6652B7E0E40EB9526DFD4CF86DF6C294439A0F1F7EEFE9DF -352ED2FC1DBD2280A18BA536AE3091E02192801AF43EB47C1941C4B0609DE405 -163A8840C553CCBD5198EFC7843119AF94C14B24946DC1C0132B33A02D24CB61 -07FC4F69BB1EC6A1EF2C95FAF2BC3FFE6328F7DD5001257181D5692B7A342B60 -733C6AD92B7176EF777EDFBB0116DDB11D6314D92DF13611E2904DE148F8A1B2 -D85D274A7B0100BA1A2F1D18CA404F0268DED666AB2BBA006560209C1593E563 -1EBF2A9A26B2810804806AEDF9CA1C16E468DEA1AADC36BD103B004EB1BA1F8E -95DCACFAC47162CF34219106CC03D4D36ED72C85AD91971AA16B55F60CE62A37 -320CC49BE3D563BD479994EE19D79EEC05678D93181F4BCA9D5FAD21DDE1F9DB -AF0329CEED9E6C52DB5B43BBF32D54A8D517CBE7C531C3B7193D5C002B14E8D1 -9663E6ECD455F8F1F3A6EDD072ACA0B3AFD9EB7AD8BBBBDCB92BBBC9FA180941 -0C09795F34B71A0851B3063B5F1520D89EF0C4C8B19DD6B4C84D13AB03D65633 -28B6F1129D38D2F0751591ED06311D473B859DB02A515F431979E2FF958861E3 -22C40B1C707761E6C0DE45311C0EB08C39FD68D07F8D484FF6EEA6FCF937B713 -927AB4DF31A781184F1A05672452CAF150D26D6267369A4F704AA369D6ED09AA -B0D816A6B8DD82DF713EC1018029873D980DDD4908A943C8BFF6317E05B21DF1 -1967F084B0E38B58B03FF81FBB9918BEBC8BBD6090123216D9EC57FCC13D0848 -08F6F13155012058161FBE407900624CA6A52E4DABD28D10DA950A9F7BF9D3E1 -8DC09F3C2809B037154AAB286036D3496F3A0E09804ABDB0ECC63EB1E8C6CC47 -AB0750EAB7DD4FDB835C13754C5FE781FE2E80A0E59D439A0EB124AF87E12A60 -C761BE135F2AA7700EEC3ACA40CD473EF2C29CFD4FAC16BB8C33AD44821BE014 -0B3DAC12B8D652177DA038C0807D2FB91F7C200FCEAD90C54A6BAF411A3F0D03 -FDDE2CE9CF3FA21B738C217C159DFA68DA642FEE62F81BF4BD6669CD19C64E1C -A9762DBC3CE34CB63F927B1B97487D91A4734FE956A25FF52E890649681094EA -33B65342017CA48001BCFB6553E76BF33D486C2F1AC58385E34F5F9CD17CBBA9 -18DCF8A07CE105E3C8E2F68CAD80973CEB6DD6A3FF621A0C497DD4DF5196088E -733440AC2225592C85419F50B8D9EFBF003CAA40B351ABCC8FDA09C672EBC90D -5454021DE4E83F88117E12B84F944EE30AF7188428621B9271731346928DD626 -A270543570ECC7381DDB6F141272A319024773908C7ADD9A6A150A419EC46907 -6B9A698E94EC5FBFC60AF0C05F680C9B31A148136496DAE7E06A8D41AE456D48 -2C9A892F0A84D6F5181F097ACE07A931C95003A88774CF0C75E57F3CC7A734E3 -D1D8E68218BB49ECB1228F36C54240F77F68BE47651D92FB90854F7C2B0BC424 -301DCBDABB1C1FF1087A123C085291CFDBE744BB6B9E4F8A820777639487502F -CE9777BE51B8744B00BDD43C323848D0EDADFE493FA998B9C64B9A386FA56361 -D29C95CF34F98A7B5C5D5EE6677147E2A6065636D4614582EBE08B549C3E7011 -8302A5C55F198F793FEB51260A86FCAEBB4A6F12053A64E91FB8FE2127335043 -F56BC57BD9B7A218ECBC579694F22E154CB708806AC19D8A352F2032F924327C -E6E85466E9DDE0BA73A253F08CA279D247BE984CAD4F99AC5115E803A5F9A65D -C978FA3746431F7DE3E7603489A44A582AD05A715AABB7E2F510B7554E487E2F -039F4757BB77AD428C8541D11AE29287344C04B9382C41CE0E848BEE3557AC54 -05150D36FD87986612C5C7C563124004EA1AD708708FDE5DCAF3E196D6CF668B -6E97DD480EE5516C7537760D8D63DF777276E73F2703040CE8FCF7AC2946E929 -2F1F8FE8C6423C49CA41B0476ECA2FA84C7CE4B7CD68B4E232FE98DCC13A9749 -5CE172E850958BBEC4B9571950C359EA9BFF6D45E6158F8AC04829E87D485319 -02A6E7F7A25BE0A9C9FE1AD207AD692269B85343AE3A4356B5A3489683573FB2 -C3A09BE61A6922A8525C30B098F5C1A6A6828B7DF472A651DDC28F2CE8418BF5 -FC6EA6EEE84D345ABB8299A1621B19A457847BEE09FC71D9BE3013D8651F4CD7 -39486C39D7B050BAF21A3F7079190885EBF54CC0C60069458115BDF081E18C25 -D9B7267530E5F6D6EB77C81140B5A824BF1B5DFE96521106F3219205A6A446BE -D03B70C432FF3F25D6C8958989AD94F14FC06880D039EE0BFAB7EF746C48D448 -C7FDC91826DBA6A3756F12B9F7BE5AFAF2541CCC069402766D6D331014119053 -73E4FF09272389AAA61E9E99E2694B09BABB59E0D5A4F8F71B870A1AC9D8BA3B -170EB81339F3B3EC3C5133AB34B13695F42065E55DF4EDD8312F78A44D088342 -E31A30C6E4719931EBA51F917F60ED594F0F590D4BF6C99A74B0CDD3947C7176 -326FF92DE1351CBB50B88FE3194DB20ABC366AD79480259FB7F6AB11CDA44C5A -3FBD301396CE1A2C030843D69A9D32A1A008B3B66AE82941E620A9E7B962C7EF -59E5B3CEA2618E69D265CA5716C0770C081590CFFC044FCF02D37B592FB7F0CF -3A70884DA16D0DFA619908C729184959F84522BA144543350C44E5673CDC23DF -3D2704CE4ED07C1E5D810E0B18861A7ABA52634597EBB9492C9C9889F642B835 -9D4789E637CD54B9F91811CF3496B3457368EEE9A9A6DE2008576A1F935F63DC -2AF34F2859BA1239814B4687E454F4134833EA638EA5A20996991541EDEF8753 -A7EDA763C56C4FD440F3D54B9F57E2CDA2999646BCF2CE002E9DB075F5B45081 -E698CF67A55690310A70F49DDD8A0F0944A48F16AB60C990C346EF863C84441A -347DC73FBF7F46EB6D6C047B222033E2C47A5105203D702EBC91A344D0FC67A3 -E33EED60E68E8ACE6700F33167F971473B5302C529248F4F9A9AD263AAF1DF32 -38C21AAED0DF94B087128237BD41AB40F3662B541932A2E9E851B2262A6CF354 -4DB8993F250FE4533FC2C8D52CD66CEE480D2136F2F1D6E98E0A85597F84418A -3748365A6AF37CBC624166F801379AC1C8543E3E741239EA92D4539BC5B31F03 -0BA0887FE98E8116D143C6C17A83B834FBB55E881AAAE75EB3C3C2DDB2D5DB7E -7AB1C00F8FF392EB7E676B64B9EEFA774F6AF239FF876BE158906764A5AF6480 -B0DF4C5553F8FF1AE094E8C5CB48476EE34B1D3CD20D7F502BC49E03C4FAD6C2 -D4F79A61DA5340F401707AD0005CA2A0022D2AA21F651E9B9EABC388D553A23B -D7CC2E8F192668C93A134D3EB8686F297290C51C56F192AEB20CBA4B6A05E51B -74FE6DEF2E6308F2E8CFD0C38B01D362362205824535E826E154DC0D7B6F4ED5 -7FE86772AC3A8B6C69E2D7155F972EE2FD49580EB15337301E04694E34C2A63B -1C3E3F108B90C7728978E159D5B215E5C0F48EFF93A57BCCFA02737085CA2467 -849195BEC7831A4813EA85E69E6FE5B2D6955876560182899AB2131BBA579D0F -5A82372E80CADCB4760CA9806A6502DE1726EA06E8D2637499215BCA41A4CBE2 -6957947C43991A4F96026B3D3AC9D7DA0F62E8E7CFB78F3755CD7251E45FD8C2 -DC940C5567A0BBAA40720933E02096CFF49A78096EC19EC8A871C119039B5690 -8028E8DA9683BF7DE0CE57DD65DCDA5AA5F4CEEC77A41EB5E58B44A23B54035B -FD9CBCB225A01FA468FAC2BC73211D8BA007D4B503C4F9162656E8302396D3D0 -E4A8102DA684FB5987A8D757539ADC071989A25FB66401FA47034C44581DFF55 -4D3DB44CC54B1284491DBD523520ED0E9D0F6D21FAD634A588BDAB15E8B62C34 -36010545D8732BB30511CEA387ABD636516732CAD9B8F5AB971F489FA9501A04 -482E9A241E1F1922093C7001DDB2EFD42A5AA2826DFCE05830EDD3E7BD069885 -53E46E4F9F6EC01AB0A20BBFE033CC8105E6558D4996F13894E3999C25AEBF26 -0A47BCE971583673197E22F249BF7B3EADE4EDDECB5A8ECB86F50D47F78A8592 -9F2C43682A03170D47B91584D0800AADBE346C3D08CCE6FF70ABCE7D646FC56C -28B95711560A3F4B3803C18C315CBDA5BD44D69F8973F6D6A4F27C174DACAAC7 -BEFE1E513B08116AA34D0C167F2DBC897066A2113241DE5FE997548CE28B7216 -2C6B9896642EAE972A72829FBFF750B6DAF34547BA8A54412C7C53E50EFA2E78 -1C072AAF6B7FDFC2FD19BF07959962C8D09A463B762554843A34EACC39B6E021 -9F5B586B9395074DF8572FEFE494AF7933E125011B9D4265F521D0AA2D37F7A6 -AB040E4C00B86DAD62FA6929320A07D4ABA5691E094680A22E2156337C62E15E -121BFCAF14427AF48D8CB538436C833CCF2635393E5D2C8CD666D2F188231D93 -F75682D8FF364381AF8CEB55476FAD7D14A1B3A86921A5A850012BBA93218464 -B44A46E74D32EC3ED17B1BE5F41D74E614B41D50E6A8F08D4926823B0C889363 -2BE97270358E195A3E1AE699C7A797B850DACB10AC57BFB41D882298AAAAD47B -BC676BBF662C072E08C34A9A0344ACD6C36EF6367091DB6E4134201A0D0A7C0A -7117C901573DD3B4BC619D81CF149FDD408E98E5FA17AC582CE6495EFB58E929 -6B38BA324A22ADD8F039901126DA7C567DCE65530F29379FDE5DAB90B7AF8EAA -93D2CD1D6B93D8036305FA2A27B34EE19694190FB26C4F0466B705BB6CFDC04A -58649C536AA431B4D3BE8708C632362B41F8328F465C79EB988C2487FB850B23 -B6CB90FA4AC671378123F1310A3CB8A744F0C52ABB552C29C5EBC855147D6648 -11F7E33DD8D16A0297DD44AA096CB4AF525C159799FA63A6DFCA438217F4AF62 -4C0FAA45A57E4B64186419F0CE002BA8AC5C92920B78213B159BFC9E884D6C8F -C86A77F1E8041E90D196EA521B6BEAF9F5B24B407E08FAC327EC2BF29C6D553A -1909847CE6F3B5CE06CEE18D8D5C067DECE9539BB0F4E31429F2E022505DFB8A -54443690523A0D3501F699529EFC9C7E24BF7A4438D11CF94174EC0973BAC945 -32E3E36F6EE62078A54CD1D170BD414900BB960ABC4AEDD0F7F59F7BFB1685FE -A8ECCC7C37E078B8BC539B7E936325A14A0EFABFAA5EEF0D45C7FF71B05DC281 -09089CE64CC30754345B006924CA02A837BA1CDBFA960009787D42D1E41BCFB3 -CCEBA95672396D78EC51042E0C4625F6598633F600F261A80235BEB56C58A3EB -ED205E020B4EA27E94D2A9F8B285858640437FD59ECA9702356554B4AE732682 -5CC791971D3022D6603F1B74130D445B5F3E5506E4A43F32F53AD8CB8B804443 -87417A6AC7BB699DDE7A7A1DFA2718C9E15846F0B2F93E0167E6FAD982A27B7A -321775ECAC4F754CA1B31B301BC04B9B6ADBC8BEE1B6E9A6E9E8A757409D383B -16DE94701AA9FB5ABA8F4AAF2E837264C03C404A82C7325EBD039F84BC1D26B1 -B8CE48355D8CB477C3258967584B6F96874145650C67A02CDC9B8E6A650CF202 -BFEA60F42AB20CD4D5186E538496CB286A5B1214C6091D9F3578793B2E92C70E -5A8AEE69B0E231B4DB103B55A09E9EB23CDB972FC4523CC2E308D5414A41D7AA -D474204A26058BA8EE73EB67BC853B9054F281E6502C0C7974D2B2B62FCE2783 -AC2333F9F368978F6A176226B8DFC549E39408BCDA00546B8C722A872A055485 -B15A54C4B85DD07CB35B73A2C0E737B5B2A1FF3552E6343155EDBC8A99BE7E68 -F7F1D6D7C6ABAD3362058555D65C4297B5C3A413E2E0CBF52C7AD06D2D09F7EB -3F168C29D302A80C12733DE283EEC15C1627EDC01E27919E5AE0DD8F3B1BE62A -6F5D87B84E9FDD5E9FB8CBB4F11EEF7AF43D9FC2BAC32E036692586E597B27D4 -D185FBD9FEA7D046B74AFB4196CF5076780651A505A0B919104CDAE6A1EC9C85 -92BA6F1446FFABC3D296A9DB02827E29B4C92F334DB756EE76360EB21AF99FCB -A20A4BBDA16D64E16C5169936ADDB2FBADE60B77A2CAF1BEC80B1AABC9955128 -EA4BB285DD06F40ED0D0AA7E78C4939556395ACB463057BFCAEE217F45BEA317 -09568F6AB7745F4843FF77667960C9FB70C93ED996E32863C21AD727953749A8 -CFE1E148260E000C4BD9CFFC417C564DBFFFF052842D55FCA7D7583F26154F68 -608FE787F89AD663E9BC56B2D99F822DA2D7159D9D2EAEB104AD3632EB9372D5 -7B5B52EE3456C394D713CE8576CF00CBFD5CD6E36FCC2D4CAEF4FFA2327786EA -A52DEFF2282F0910D3DCB80564B33BE82A9CDCF7830F3FCD26DA16434E875B2D -EBBA68588F1FB3051DF91E2A472B22435F9485E47970F530C09D6F80834EC05F -919B2BC0AC81354A9714D4E0D86B98C788673E66CF8FDE6E71DB02E84992BBF0 -015B844D82089A445BE246CBC4F594DCCCD9A061F06DF82D6032B6766C3CA618 -737A4B2B77E02B6676EC1FAE5B581EC6041B203EB29E5C283714FAB41CAB5FB2 -F7EE493F5C340E3F9DD75D55206C380E29AEA710700220570409411E26AFEE04 -5AEAF8C66DE51744E4F0E68756813B1D83C784D8C75B66EDA5496C344DBD8458 -CE4C3A4BF330C67D3E07A40610917D7033A9D4A95EE0CBF09D9A7BF34B766886 -2A8AFEC912FB362355DCCC05FE08EB6C777C52714B5E762CAED332D44CBD2398 -CE9501E630E08692B0F80E10A7B9C6210C94DA7D37244823C08D954DEB16922A -076AB888FBBE54D762AF975A1ADC5BA78AB6403621C368A37E1C3607978BFD0B -C758ED01EBCB6B64CDC7044981DC7868C9B784A94A6CC8B046A79712773CCE41 -361785FCD1834E16D4FDBC7B2107C298C988C8540398740631EC15CDFA8BFB07 -1013096885A529 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: LASY10 -%!PS-AdobeFont-1.1: LASY10 1.001 -%%CreationDate: 1992 Oct 23 20:19:17 -%%RevisionDate: 2001 Jun 05 20:19:17 -% Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.001) readonly def -/Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def -/FullName (LASY10) readonly def -/FamilyName (LaTeX) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /LASY10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 40 /a40 put -dup 41 /a41 put -readonly def -/FontBBox{-19 -192 944 683}readonly def -currentdict end -currentfile eexec -D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E -F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9 -1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538 -4E7DF30628B47D6551F93A50553E592B5E1540B411A313F39E4149341C981D3C -705F8AD7782F59531404B3C001D8B882E0C5468D00B26040A352ED823D7C8DF4 -B632A37A034C6304A39F28739AC3D634CDC707B53474E63135975E7F0FFF2458 -99878B3A6D8D7AC6F2A2728768B8C2226075299B8CB08B76AED9A00BF448A646 -87014E8B1C1723204BCBB97BF0F735E436F1805B4026CA792A2464E1FDFC4385 -B407DAC19BC7769BBEA6BDD0EE65133044D18530C5A3915AC9272AA4A7FC35A4 -93A7A0CA8BD1CFA4382085D949EE819A51062591606ECEB5B37419223CC0400E -158F1A0849868CFAE0F71DA6B4FA47A636EDE756530425A6BFE45B8080808B59 -6B886D033437677B151285B047C84C2E2FCB71CCDF34E20E925269E5F1A210F0 -391066823D8F21E03746BF79AAC6FF91517631686722226462D6A9EC5FFCC806 -B959AED95F492481324749E00CA117821C347F9B924BEC8C64C954570252E909 -5C33AC8B1320BB1992A88C619DEA7A8FDDE42390EC82A07BD8BB7F0014A41EC8 -04225B5063D3F04723F51128DE8ADB79F62903E1955A7D49220223CA34FDC3EB -8FB71700EB9CC40DF747C4CC60AD11D3FC038CB2051F7E97CF7C7F7D0F49CA1F -E0FEFCE664544CD1F7C23B05BA649D373539E7BCC761611C17489084912F77C3 -5FB3BC1E91E2B4A47C27BF4989C7703E83C5A505108037DE5006D4F510B8FE1A -570E42E4569FAEBF66058F9D9608A771BEACA2A8AB629DBE939CCBBC116E8BCD -BEC3A33CBF185A68DB60CAC5B21AF4D9B46B3FF4FDFBD6BC3C8101BE15E79245 -F0CF8F670CFA19ABC08C34D85B10C17190497EACEF6E401F322B1E281C1755F0 -BBF9838AF83A0A1601D78E78FD599819762347A77C71374AB428093048E3F1C9 -40CFD63B86C7F70BCD2AC3092DDD3BC91CA714BA28263EB863D5E6E2DBD4FA08 -6B22C1D18B16D7042219B9F0BDF5BF10AADB658CBED51C8B272E4DFA11C5A603 -8B4A437EABAA699B86819EAA072F7D90A9CE1B52287DD3D26C470BE0A8D8ACB0 -5CEF12390D0EDE45B1F5B2FE4ABCA8844F713CB5901221BBEF0144FB694EC8A5 -A5E80F582257A84E0FDB4150D9EA8A82A434C5FC1CB93C7F457B95A68E52F916 -2B90E294A0C787EDA95A4EB1F978ABC0A8E1FC9128E7605D591F601BE0B37F6E -E1786F2302F2783D5CDC07AA5F3A20101D527E22B8D689A3A60B5993894A7038 -E068BE74CA3F9CD7A33223131E6149FC75A1FFE4E1A12553A8B8DA3AA19DF672 -D355FC0E824840735280F6D4BE31FE762B5027E292F82AF13EF5CBB0633E66A0 -950CE5EA51EF5C6C7FD1599353416342E89607998DAD7D6A8FC650ED12369274 -4E9BF9AFEA1822896412672B1F9EFA94BB86BEB37F2926B7BC7E032C71572F05 -C203EB5E44E55504D98264D3CF7A77F62C183F65364525AE9E84511F4BB67ABC -164068BA9321842E23882000D27069B07181EADBDAF4374F7FE019BD6D9C88E2 -793462102092A647D903EDE28729B02369DF181C898DEDEBCACB047E79B284F8 -CABFDC5B460D9CD7C3D0A7422E6268DC3CB573DFF7304841C3557355B620DEA6 -74A36D5AA575719613 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI10 -%!PS-AdobeFont-1.1: CMMI10 1.100 -%%CreationDate: 1996 Jul 23 07:53:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 60 /less put -dup 62 /greater put -readonly def -/FontBBox{-32 -250 1048 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 -990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E -6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB -DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 -59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 -D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF -8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 -6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 -1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE -03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 -95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 -74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 -3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 -47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 -AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 -42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 -40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 -B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 -95601766777978D01677B8D19E1B10A078432D2884BB4F7B8C3293B68BB78100 -16724E495064BA0168CC86D413CB48560D6D318357397832F7A858CD82030C7D -8A4A1919716E8B26AFF8789AAF489EE4E0A88DC477551A87C7DF2856189E4596 -FE015956AFE5CC019F5CA6323A12B763B7B08B92C1A2940D3C566C43729E5482 -63C6DC5E834AEB4DAFB5AE8F0B8931A4687C94D11587B9071C8D81DA14F12776 -53A1985A3EBE37827656BD4635E03F09C3231F906874645E7DB3E59045A59D67 -E745D8487CF73FC50F64060544F624F357BC998A87FBE468DEBB38A09449EBCA -D041D7C29225ACD16CB8A59E87924D15A9125F064710A6CCCA3AD3103D8FCC94 -CC3571C6F9192774FCFE5BB42A14B27960903144D28BF047BF4C77646EA7BF6F -440D4EDEB712C63F2E8080419E42D1D58EED685EB5CDD49F80DB6E5553B519FA -C6A39A093155802F3EC607721F390307E91ECB597ABA60A537E3F8C045BF5DD3 -D88CF6518D37FCD95D2F295D902D617440D23516D962F47750A682A319ACE1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMR10 -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 11 /ff put -dup 12 /fi put -dup 14 /ffi put -dup 18 /grave put -dup 19 /acute put -dup 24 /cedilla put -dup 33 /exclam put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 58 /colon put -dup 61 /equal put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 72 /H put -dup 73 /I put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 90 /Z put -dup 94 /circumflex put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 -87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F -D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 -92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C -295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 -409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C -4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF -2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E -0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E -B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 -24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B -43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF -D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 -5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC -96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 -7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 -0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 -B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D -AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 -97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 -FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 -20759B6A4C4466E2D80EF7C7866BAD06E2A1040FAF2DE1FD6AFD5FD97EAAB614 -956897A7BA8B194E613047BF469C7B4261CACC1DF1648E8A86E926F8702B5ACA -6CEB4E3E85EF23EF5C9C53097F3BF17243B8D4BF0E6B0C5982FD14E4E916D363 -E265322DF0823E9990F966A842ED69BADFAC2CD1754FC84C0FF6750D2373F997 -362DDA16A0D73B178FB7B67307204AF174AB871C254B8E7CD77058113B702B2C -13F341A972B67756D65C6A9F553C365E20F0BA59F8537C88E0C13F87CEC69C9E -0775F760C4EE10819388782A2CC2E9C000DCBA76E4EFC7B390E50611F3D4F6A9 -CE60FC3B742F046E84B4A302F5DB51092CD59F103DEE2910757696C3F131517C -416687E6DF671911BFEFE08D1C5D0B16F9302960E29760EE101C5BDFBA4176A0 -260ED46500F88BD388506DA361B0E9FD796196E66B332C82CFFEB7974F9E4428 -B82C64ACBDF865B4356C4E2C8E6ED840AD52C326F7D4869F5BFCDA189FE81641 -832D1FDAA78EEEA4F41976945501F32BB383455467D217777DB74219F49EE8C7 -89A9BC7F63500C8A735DF316A6823E6ABD3D815E7369EBCB3C06B404819E48BF -00F1A4AC2AA9ED69D6A974D6BA21C4923B7B93F52AEB5D7015E7FC8611A4E0F2 -A5242C167F9F3A9DE6EB0786EB41F72EC2051BE8C69BC1B1B47F21FA1BEBF913 -0D7EC2A3169AC17909A5BBAC615E64359C00C372BEFA892491D23712AF8C81CC -E4FA41958C4AC483487725FEFD17514840A8DAED5656D30F6676EE5B168F047E -593111CCAD76A790BE700F40845719C742C604416C9BEF74E50B7FB02CE92C8F -5E0304486FF092FDEBC48FE92F1F52FAE037C4B1732069467138960FC946CEC9 -B00FD964782929B9AD606B2AAEDF7500359B651D48580BD33330FCB2407ABE56 -D006C8BD1BDE90C70ABCC7D3B6186DA6BBED163DF48D7A8B32CA1902B754E7D9 -FC214E64D31D5AD5AE0B3173DF92DCAE433F2CDE165599A1C215236AC9534751 -86BB44083AEADAEA87780CADC3AEBF28597D3577B2DFCC3322B4A0C8FB994DDD -A42FC7D1E078FC6226E7E00E79197F001EEFE43DACE61835F9F2B68009B65D20 -582467F445293736BE2E3E2C0CF247224ECF9FFD37BCC76EDFD31368D2F26B8B -5EB0322B44FF635A73A6936F73859582F33AC1160F6616E30499ED3896F2C687 -4D6C2CC91C1BB8DB13F27E1CB8F68A2E38A842C7467137A3435F71A463998130 -CD5836CA448E139EF8FFD2E4F5F8D7C0250D45A42B2419EC7A7B3B0BC09305F7 -CF0967E85B2F51339FAD5776CBFAC932048FDB039C9EF6E90A79019FA9622A92 -3A5E8EF2336DD18F1B504E989A98F4F9501DCF69FCD920AE53740A9F9D70195E -C25A9858529B445A93E3A2E9C542485F86983F69F2D314B33AAFF216180EADEA -AADB62FDC1625F363D784CB1E372FE3BBACA8E9942D43400E1CD716E472C288E -DF4AB8FF861F2635E835B3EB01BA56E16A9A50BFBB44CA544C1F8E8B4937809E -EFC33FCDBF9B0380605BB91032980A58E8451B04C9C5771E2A2E80F0F0980DD9 -505F6C8B216B39CBA66474ACDA857B80BD701F6AA093E2330D2F7D6CA6A129AD -911EAD4E5FC1818F6A4EEDAAB5FCB6CFD6582C82A5328A129014399BE8217004 -EF372A4976AB13089DDC03C0061932C2954E3B3365E4FC98747CE4E05779D38D -BC544D15C2C0ABBAF5D0374F4751EC5A6CD6D7B0A67E51EC762805E5587BF103 -3F9B3443959F5A9C1CD11891DC55FA47FE954C1FEA592BEFC735A2318BEC285D -14F4C4EBACB91CA7C4C3E0F076C5E0310C357657628032E94584B384B19FE322 -5EDAC73733EC192187F028F3F6D9AB27140D799D45924A38683D5F92C8C6285C -9DE66A0A9ECBC9F59054D9D03CB913E899CDD5DDD755566EECD5180DB6BA4510 -FC244A395EDB3DC1AA44F88E7AD74983B06C93F19ACA5D48572EE12B23BBB1AD -6A6FEA136FB1294B0E12F6DF56A9A0276990E3E4E7027D41DE471FFAF8117FE5 -3DD9941E02B6750797BA878A153265967EB0B29244729949C39522311BA05F38 -A0AACC9E8978BAA786C7F85D3C869707364D7FEDC5737126406895456839A067 -CEF34760D0ADB87D95FD034D026683B786E131486360D8FA0E9573C21990A666 -CEA3085429F1D569FEBA7F02CA32B3A8A65885FC25ADFFA3165CB97DF5E00730 -8F32E045C7B2A5F96DC270F846FF246662864F0EC43AAABD94006F5355AB2C1F -68A8284D6CB8974514BE0DCB823A943D67D4ECA2C3DB223341C9CB09AD81DF89 -1D8158CD2563121708A43560AFA3396D61285D2BD9043CBFABDF2A75B91DAC3B -FA2276677EE444C08EF8F25EB68F625252C73B6E57B1823F0B7E3B0539DFDE67 -92D7A8B391B01B53497D4A5ADC5DC56D6CE71E37D93D1F246A7544A19B266593 -43898136491179CF62265CEE84A98984C40FE94BADC196EEE5C2988321E8AEB5 -5E6D5AF54AFD6B1147E4950F9D6BF4D732DDFA4EC5867EDE061E3CAF13DF2021 -96D14A9BB98A6EE506D001069DAE8F592CD7B85564B435F0B1084C1CE10D88EC -88A74BA11029B60A80FF7A0C3D56C1C17707DFC270837C6C6D85DE9D83994D17 -3976A7E98C34A11CEF234FE9EEF6DAD47997596841AC39AE5E18BAB55972A5B7 -0DDB5BCB504035380E2296270A47D69D7A31911CC590F71C776DD313684831F7 -7221CBC90AC921247C320A48A90B387924D9FD599049C421032EC95E9482B010 -944BDE291FE248231FAF0B13E5139646142216E116C57F5F3496D7718651E19C -57EB0BF3C8F0CE8B4E10D5EE6BF9B36B9DC87420973E17B3A05B82CABD297239 -80D7C6EC0C13AB1B1FA48BC6F119C99C90C725677AE4015900AF6B1F634E461D -C00C07AA2B22CDA45C159A79DA4168112FAC556353A31259F413649F77B45ED6 -4189237119A17374C20CA37F477EEA80922E6E22E2A575C481A8129AC41F4654 -0AAF818B4CAAE9DA11DCCF531C7C9ED757C33FB40363BDDD80057795E259DC14 -5FA1BB9A5090B21C92782C688D6628BAB06C516EFF0DC3FE6347146667868672 -415B8A6A89172FFF885E5C9A2F01D8BFFD5F057945D2C3D9A6AAD62735739AB6 -A340BBADD7C15833B367957AF8F44DDFD6FB691F0F1E4D85F84D80BF2EB42066 -0B67031382586543D505599808B1D46132BFA5B77FBFE9BC7B689ABB6E899B1A -00D56C8AA184A7C734911F19DB34E935E2087BBC0D15BB529036BD73C24AF691 -BD3242631C7541421DDF84AC7E9B7349DFFB2DD5AA11C917520DA78470C46542 -1E9E0011C970C7DC4E65861747B9C12B1631B157A0704B91A02DB671EBB5E386 -940A6F5939F20CBF99163DE8BA963BEB22161F612B314CDBB6334213489B96AA -621444217A5D1435C143479B47FC5FCE3AB0788D729A4A1F029DBC94AF166731 -B20673550A5C9489DE639CDFF1AFEC92CD5BCB00A0406230263BFF12FF2E0157 -C27B3C331D859E29EC39BFBE3076D9B159B269C71C110901CEAFE0B3BD833029 -2A4692ECC37ABC5F3805E7CA3653C677C95E59456724F6562A24624DAB7C57D5 -7A34BE46181B52DE1D01E2A2DA8222E2D31BB40AFB3924D79354973F7A67BF38 -BC4391960D23D0F317FCA92F0191E51ABE703BDF07DCD28E2FB77494F6EA15ED -38032FAF4E90CB4F75F7BD02E2A8E79530F76B4F0F02CA602F31D7E5031A8953 -C6F3C38D25AD19EE77A0F4D3CDC17BBA141E72DB6EB331A3B0B50A4FFF737D8B -455F934A56F51A5A4D19ABA0C3CEB3B574AB1A9ED80F40BEA61B2AEFF7EB98CD -4B6A7F2E414E89EFBA4CF541C1BD3C0697C39C7338B6873D4146013AD76D03B0 -6586C68D4FB8E60B7A4C3A40AA6FC93C39CD37577B72DC97A150674BD92349E3 -30EB87559E38082463B3ED0203AC8873F113BB08F681DEB4870075F46B620343 -6A1953AC9EC496BE435CE6DC593152EEEA6331CB9945AA4FE008937E16A9F570 -3E2A309C5171F683CFE26DF6836EE5FE3A4DD04C4BDB109D56832915B9B32F97 -F3B44A5D327125246A5BEB3FD21BE265ED7B5B1674922F26DE19C9F7F6495444 -9DC6F6D13F371C756A2B862AA499032BDD961BE5B4527B45C3C4D74E23260CC2 -944798F5AD2DA5DF397047D040940B8C916E7F272B21734BE30CB5E59FF211E3 -7EC389FFF7D3EA7358DECFC374280D67495C695C6EACD289C9E7B735D5DCCFF0 -36A614F61465ACD63DA0D2FFDFD4FC801E1C93EE257A04DC26AB406B149815F6 -21870221DF60CA8ADF2311C293B41CCD15E75A0433F057070C25F0D2EF94E4F4 -ECDF23A7D617EF72B213A03730ADBE66A54B1BF76049CBC3A3F035D31BAC2898 -63F269297D946552549A259B9C9601FA72E45AD8F5D0A7FD4DE2D32211C92A41 -7E764DB6EFF62D7CAC71DC4E92BAB291585199A4CD51431DA91429CE4127E30E -EE8FCF90605AEF343296596357A978DFC772DEC9439BABD866E794CBA07FD9B4 -F64283A6EE91E42266FDFF7CD69847A940FE7C0181F77D55A07A16ECD9AE83ED -91435DC75F6D7C5AFF4DD7A3C20EE0DA4BA99FE2036A7B7456AF936659D9FED4 -FD1939EE0AD25B550E8A655AFDA23EF4DA39777AC2A04890F29C0BC97DDBAE9D -D6347B5469A0EA8721773CC685F7066FBC2E8A1574559E8F2955397CE23839A5 -7E99457317916D57AA5B35FECB0706FCE9914535A0F487831925E4AC4335EF33 -66890184550188AE57854F3ADD15A0991E45EDA27974C06E74FE12FA49A5C2A3 -F276B5C2489FB288F49D072C468FCD9037E4D99E1C40F18D80D1E63FDFDC427B -660E4E36851A5D4A90F0E5F2D5FCBD2EC830242703F36BFFE66D61E50067A882 -A10E0CB20C81B0792A5B8EFE9302969644803E04D7DE8A7C24DDACB4563B604F -2FAE7D6F5112DF03C1F462E4154EF4BF0D8C09416E3805B036ACA990D432DC7C -7C8261DC2118E6E9921AADB908048076A12EA72E4A09C1C0916C88BB39677A04 -4563356556730E59164F949D62257E34B3036B22D454A3A61409F21CAC5544B6 -D3A94ED495AF043EED3EA880BFE5382B6C6D0B2A84B07F4DDBFF7B9A9F06A305 -A5227333C1A529E5C968E0E82E02622EED266332A6E033839A194FFB188B1947 -67AF109D37A85041C61A185E5A1023CCCF3D15BED794D8EA7666D35169031B0A -83A96D05B5E7D059BFB292452EAEE5EA78201B3A698086B3DFDDC56D59C0895C -7414F9CB0FFF74536B9E2EDDBD8D56357CC66EB7BF793C2CDFCD84B573378D4B -7D2F6E7E9E4890714FCC9FE519D33171DDC13689CCB9C6E08D6D4ED46EB6794B -D77251233A6FC717E811D800480690DAA62C8ACC2B5AD4958DDA02408288147C -19D919C3496BE7B150C321791081AB9EBEFF8FF49D2F51728FB366309CDFD835 -D0EE508C80D162DD9D64028FFBC05E8F98CE0253A8BB2A4C5D3EF860372B08C9 -10D9C2976E41B0DF1BE7A40B82078414AB72F44BE8D34347E10CC21A9A960FDE -9F8BA277A737A8B18F92D066911803886463A96BECABC509FBED1F053F58DF79 -27CF6A1BB379DF14784B2EC04A4E7D8DF6C3036697CD6285F02F23F61B3EB6C9 -2AEAAE6ECD0DC3FB6BF56ECA9678770446858BE8533EDAFE2D4CCB5FA1DD1B8A -7C4957E1FDC355445D79897FF7CC04DF352E6D87B8C72AE9635507B10B626EAE -FE63366EC0F60767E0FC4DD0C209C37E82D0FC40C3B36A2F5FF778176884A376 -5B8EC65A935F3326A9B2C27D8F27EF544D823E864AFE7CC3E399FA2F2E563097 -3D9BBF566FD818EA4305647A74A874712471D15108027C8881D9795177530DB8 -94D463FEAF96809727837C8CD9696E0D2BF53DE8D57A07F6D85A9E750B157CA4 -F4AA6426346ED5B82001E647B58614E1E76D57EAF6455617C43942D4B05DEBE7 -B6C682F9F567ED835EE288D289751F359AF7BE222268A6A3992699DF1C91C0DC -A04CB2840C4DA5AE2CD0A12EB0CE03735640EAF0AD9228EDD2215831550B6D33 -C4CDE9DC1A15CCFEDBFEF5CDF6114D99E3C558C01FF803B4C21805A4525E18CF -238164756D0F1BCCE87DD8077C8FA13C6AD8C761B5D76A8295806E530E5BB17C -8786E0C335371447342AAA37FF1B887958B720AECEF39D3DFB0FBADB7C9131F7 -A960B7BAAC9E37B76A85ADAE8B9261355A27DBAD91E00C301064C9883FD76985 -F58AE44E71A981FF35256D93B68260DCC27BED91A7C28C804784A04EFCC8A934 -A4B30BECBD9AE562F6EB682BE9F98BF17FE8BD62A64053EF0A0F211D4E7C9F8D -F31E5DF5FED9C2ED9F3B975C8B8026CC85B94EC649D76538B2757E08277600FA -0EB1607EDCEC8CA2634C58D4DB7F1A1233D3321E19097C8E93295876C0D5EE44 -5EC69BF603205FC7A32EC71382D6BB7D119D593EA158DF5BAD228CDB66C6F6B8 -2FB03F1DDC1B3FE3FC644E7C6072993BF25FD5DE26A114A1E9145D638C8A95C6 -AF48BBEF411D550085F04BAD83701B754C8B7FA377A00A59611D042732997CE2 -913727947DE68DA049D61363519AAE1F608EF8B06DD1E4E5EB9DF23219A98D56 -8D5C93AF071CE20E738255E965D39CC1821CF05928A21D66E662BDB1E6089A8E -D4F32DAB2AABCAF118C85FF17E8AB3B735E91E90FC07F84842C1467501B623C6 -4297CDC14D3D6F311C1B03C3E89CF6C02126BDEA141075AE10C7A6FE9164837B -ECDB43216E61AFE41F28D9A2FFF96412AA7DD7D621BB96A834676EE18BD6D6CC -1279613EDDF8191641AD1E5D65C77530A1C553C54C272FB12D34C6767FB8981F -C39A3588D4A3BB12CE53AA32B141493F49D23105F94365BEE1F5AE81B91504CE -5324CD2081E72CCB8FF5D9A0EE95A4A44EB358437D2CFFEDAA7E2022BE555810 -BCB2F1F321D87BF06F840C73FC6FAC2C8116ED530556C0CF5DA5595E10229A58 -C89DC8ED385A0A64FFDB5AECEB502354D9FF152C047371A96C4800CEEBEFF331 -BD0E4F7BFA507C6676B0FC809283DC4F2CD14C6490916D07FB2BD35C784C0AAB -A786064E65B87DF2F71FEB03ADC4750633F8493E16152BE1A3127F16AFACBA96 -32B71CE871E3C7AC466EE601B4119AF454B7819E06D400A017EBD36DDB4CFE93 -9CFA6D66C95F88AC649D468FF4528652949C049CC93C681D5F4D79501C664FED -4FF3CCF1033BFD65F94222F45235A0606524CCC728EF38906DDBF57FFAC469E4 -DD554A5407C8169C47E954FBA8EC7CCF65278F833AF690F191608E507417CBC0 -7E938578EAD15C2745526608B71829E327C9A841B9AF6CFC373E070BB6D45E6A -9CF939CA5B6704D3581DA8D0125B07CFCB1D3C3420242D77B98DD728A263F898 -C89FE77D8D6A60DD6A56486721EFB4C19A44829DF70DAB6EACE3CBE46EE6DA76 -2D6C5C6A8978AB1EDBE79B3654A1F45D1F5D28E7E28D631F1A1ACE0B065C1B6A -906F3335A11759333FBFB454DC2D4ED0E1E2DC6CD4F2400DC384A059FC3C9E05 -279154B5456FFE9AF248C5B9B3FF3B051DE80C0EF51F70D48A7518D5954F90A7 -18E633478D4AB1758BA882F9027A3AE05A61BFA2FCB1EC5108E416033E78166B -F5CEB7FA00B24FB99D6A8F4D1554F9B36D2E65B1C13FEDA184C21962C81C9AB8 -53312F75AC7DA7BCDA2749B5C4CC6BB13F259A8148E3DB5F54821C3FC7D201E7 -3C9FDC0D4D174B7BA121E3FA4FCD2F7BF0572C9C02CEC4567F13FC51E191EA2C -DCEA62F78EBAF4A6253ABE48B0FFACECD1EBD686556D37482A5264E10FC183D4 -318C62D02F83B6365968350625FE1AF810BEFD57A19CCFBFB98BEB52FF1D937C -821A47DEB8E32047A92D9B687E147BCF7574CA5C6986450213E09152818F5311 -451EFB7C35AE79B8796BB8044839FCB5CFBA818C685DFB969EC60CFEA7D89045 -78FBCB9FB388FCE88F6DDF752DED634A4695B7CFAE70BA244373E63F6BC966A2 -6CFE08A09400E99E5ADAC8E6E11AA2DC438A37CF2D6A76C264B0744734D9A333 -BC478007283D9E995C163066C9AB0AF0DF2E87E44D71FFFF528817E48D75B615 -DAF8B8077A2B89192FE3FE3562D2DB1BC90BF21817153D68F47FF99FC59E888D -E96F639852110E20E51AA0D38E6B6EF7E52709073A1543EF3F90DB8A3BCAFD25 -94253612B08220345B015060AEDDFA5C04723F2F404D2BC4FC05CB5B050CC48A -E0103205372BB9C2340EA48EE063E19F3FEDB608A88000CE31BAFE3B46C70E9F -D12E73A31F2F2C619791EA73EA25416E21832E3013B0D2E41EDB25BECDFD59F1 -C2B25AF3442F6A5932EDEC77444C98802C0CAEF592452EB8AE26CBC4287C4920 -2F2301F3325DC2436C820D00C3AC29A1D7C0E7C8AD36EF205E3E01A61E2EBA56 -9BD79E674AA28AEBE93512EC76BFC9050524FD0170EF7AD9AE841F23054D7D4E -C201CD6C410DE13B7E6FE62385D647EBF0E725C098215DB60E8B01C8A5199CEA -BC6BBD05B3438EEF8F078E49758AC7F89C56509ED0873F89A811BEAF4FD29391 -0CC11DE414B07372559A27496C5F6DC4E9C36BF610E62FA696015FA98E8FF19C -C9CDB89CAFADC73493EE09CA6C1A632D8FA74CCBE0665655592F74B3472A7FA7 -2F577472D31923EF5B522C0CD76B81FCDA5F29659381EB7CB7631643298D2DF2 -F0B4B52E16551CDB0A0C1568ACFD00AAA39AAF18A2ECCE85CD763A5A7D792ABC -96C3DC5E42103389D88A50B54B300AAC071CEF2D354BC2E0CC6311EAFB22D0A2 -B71D16408EE497CB67C78796D1E9C294B88632957ABADB2B0B2BFCDED25819A5 -93FCB13ACF15BBF42234B27AE9ABC68573CA90DFCBC40F6463BA4C68AEAC13F7 -76093C87BE8778E48C7226B1DAF7412972FA7B5DE9A4312EF26B6453850BD2C3 -F0323DC1C655CEDACCB4E87213F82BEDF619BA12AB5A40129BC9E179579937DB -DC0C8FAFE50906850AE32D086DCADE33248C3381345A6474EDADFDDE24E0DA67 -05F03E822CDAD8A958ADFA7FC1EFC7D03BD31582FE4EED7A768EF13550937C1C -3478C937ADB7FD2776D75797B8748C5DA78C097A114ACF556037F86C5382B33E -8307CFC43B5571B5CD5EA192263B287397EEB9C277B0FCC88E140F58569B3255 -60DE9D1916480549168EE6E23E2DC616602E8F0E14FE938408EAFF0C8DAC948A -666477512E5375B85B3AB5B5254B948CA04CD71562E5AD6493534C0A47C060D7 -4FC6632A43E59050751751B5FB9EFB71D259A7D4FE08CAB2DE97DF71FBB24156 -4CFF70E87AA9AAB3C5A00198E6B9D12E7BE079B1CBABBD4FBF5A297EE121A18F -7F154782F76055C3F9742F4C193E0F958D04D1CCC929DE24F56FF2AB17D05DF7 -418F0E0000E5521A9F3E03D6C1E8A1C6BA04AFC719C418C8BF41F2F489EBC2DF -7AC5C115938B085F94C4A5AAFEC2694F360BC2E509E8967426D8BB92C3B46E81 -5D23FBB6F8654BB103565967C9671B0D0CCC30406E729EAF5447AC65B9BD0AEC -E68BC9CCC4F58051A993BBBEF40145FC3E85D3AD817AE74C95C2F777F5DA2814 -6CEB79BFD601EBD0A1C72FBB67B73266D6A0ED656F93ED61C44EC7DE891D28A8 -4B25729F58DD478932367018AE6C63FA5C5FC7EB2EA175CDE388750897A798A8 -03A92331596419241961FE5DC38DCEA02AE7962D68C5D6667DA0BFAEF3E816EA -D3DC17F8B1708D1ED52C3F4A0244C63A3B639C393C735F0FB332AB0B7848D0A0 -C94FF616B38BE032BBD0A450E101E8592C804219F62A5A675365A56265B93881 -D66BFC01FA08FF58C502A7D3CA28BF0DAD846E836A1E520E60C2C1ABABDD2DF0 -6FB012B947E376BB0064CD07691A26CC0F5D1AC3F48FEF04BADC4DA29B4412F5 -5FAD7FE00E477B22FDDE54F922BFC45029EF69BACEE71A9DF13C0508095FE617 -9CCBD486080DD2650490CAD32D201A05E71F43FAC32C97C07A74DE38CC390040 -141F33F809E3407FE2880F0F6763247A3E245527113676B8DA900777A79B21C0 -C891D196420C52833150FC6EFC62387AFB1E402DA2E556AA19359D0BE0A75593 -7C66F47D6DAC7CA25957CDAFD550AD5E2A33F5021F4D81988A2A4D90FA11C9A9 -45E2B57705A81D89F0160705E0FB4CB4EF5793704A3EE8C6491CF3C6F44242EC -42836E7125E349053B034C181E9AD0C71C56E316133E58EBC1751862B9302994 -351FA8A4FBBD3E681A6D9BD40C0B415B1E6E17917D229ABCA18BB2B0825D8BDF -C69AB3D2CDF0C9E3FB6500C9D58A6ECD17E882DA0A0B150482D1EB95FD491D59 -7F82C6051BCEE0AC84C2A85AFE67B83D71D2769E8FE0C5ADACB7DB9AE25926E4 -8D80B9A1B949C4443F271983D0DD52EFD327AC4283B7FDB6957BC7EC2D335619 -9A78A6CCD89454970CE1DA66B35AE8573100B338DF0C8C5476A6B78418BF9E20 -8A33D3D7D725BA7A23C1273ED7F731BD7392D8AC0194D67C61B8C334CCFC38B7 -FF9F3118B5C2751EAFF59A191C2E0A8AE8364CC560BE42D88C6F4DDE4B61D02F -6C10C010B55F27AD5DBFEA393202663EAD9D3DF5825E5CC91C43DA4CF1AEC0C6 -DF07F1642005687C63BAEAB5EE6744CCD0E6FC73C1FC22E0B5888063E3120618 -F788F234AE16821CF04E5791335C82225921712DBE75C540AFC913A501F72E0E -7BE4ED1B412C91329B707D61F2650EBC2FDD72B3930ED5F1C886737C0D6956C8 -F1C2765A9533919FEBB984527C7821CB5B1297C5963EF29F19F8DDAB7BE15B76 -9FCA6313E60D34D8369880F9526242FC937FE3425324AA3A9714809B142CC61F -39831558321DE167C4DABD38F10E880FBB15623E8296350C84510473A6008DA4 -24CC989D0ABB7A8DD597ED36A171812D48849BAF64F6F441BAF818933D3F9986 -E8C4EB771A96921349DBE1E92CE009CC5C67D7BF9132D569F645D0ECD44BAEB1 -590FCBCD3706FA20D1872A1ED643503A3966676DD0A816056CFBAF9151B7D841 -335F94557872EC441BA4505C65A7F1477431805C7DFED9CEBDBEC7EE49E87D2E -1084BD0DA9B891BC23F3840FB44CDAE8E7DFE6C06A92A11FD13FA19C78F38B6D -605D03A4A6C62EED344B590BBF935F4D51BF641FE8D2D10529D7A7EFEFC2F0B7 -B8D42B6A17A6D3A87AC8AB15BADFD2BF2839AB869D3EA978DEA0044AD7BC0E9B -B6CC856AD362AEE4673D9C1DA8AEE8F084EBE1857A22EFFCFD8EA111D073C6E6 -CA63E3A78EFA85F24FE4BC1F382A48B8922D09D6231CC3AEB3412E8040ABBE80 -0BC85CEB792A99115DF49286848704B00BB1A8D25148FFDA511FDA7D9B3C527C -2277FBBB031CEC10E41E416875FCB893C94588B0FC2C2F2C734068F500C5BC78 -485A960F3C7ACF3DB22810D5257CD74EAC2AA6A30E870A38241084DA09FAA76D -2F00C09474A4B5070ACD2B027A0718F0B8E8BA85089C2D63EF04B6CBA6F22D3C -BD0701F7E05EDDC1C54220CB8AEECB99581B77062FD897731CD4481FF512C4C1 -23C2F7442A2A6E21EC05B2C9874627A1B4C552286F91D172BC5B47ACDAEDBAE8 -F001525DBD896E2C07E98DE32057A257590868DF95715577B69169DF9637B00E -A708AD09933515D26944A373FE442F64D488A91AED5C8F8EDD54A554EAD49218 -CB22C6196D32FF0EE679CD0259036452AA245BFF051359A8A2F3A9D06BE188E0 -7421CA5E3D070C565AE3A70AFF0ADC3A517330CFECD29FF5B3940FA54F187639 -D37091DF4BEE09D29F2E52A32AB5AB9AAC098E0BFAB4B7B706726038E1CFE2CD -D83B1FAEFE1F4234182DBD5BE8E9AC7B2B887E01CD374A825C3D764C3157CD92 -64DA53FB9A596AF2E9C3F3D86A5D73850EBFF025A4D2D1A4BC97407AE88ACEA7 -DE8ABA009D7359F2620B4DFEADA09CB8EB68104E65B22F054EE6FE649F72FAD1 -B2F00BC4435D55EBF44035F5934A35A2A0621A5FB4F93C9615C2421A5AFB510D -D1260BD366D5CED0073ABA8B7E3D0C59C63F5C48C2E3C77553B91AAFADE691D8 -D8ACE45C20166C35503CF73B48434A90A516B24C9F38700652A96F41E4AE95A0 -2E5D31470F2ECEBC3D75C6AD794F66494ABE216CC25A1E385D5B9398CF4ACF5F -3705DB2A8FAA799803538AB3F81E1F798EE3EC152DE1CEAE132555D3F55F7F90 -B94FBD0889CA3B0BA1AAC8DD6C3B0CDAD21B799F5478A789F9A74EC7127E4259 -FD98E4EBBE489F471E799ADEEB0613E92EBAE7E0F9E09AC03B342ED5141D5774 -5AC364916D8116EB103E6C9E1819E19832ABD66F6452753F7F6795F274D82D83 -7FE689CF8A181CB425833B97F2DA9764732AA0717F0CE55DE70F938A37689301 -6F1A1586AF803C0AE64645D97B1A9AA141A24A9B997040714330351792616442 -70C8BA50FA4DD5238E2D7D6A16C9B5DE3F8A7FAB2F4E5655DA00481EC4B15B48 -E047AC737F5C380DA17F57A835FFA2D01B8EB20C0F3CCE270E208514915B8058 -CE3C9C8888F53CD8952492A00674F53D94C4B8A68EA98E34D37CE574C3F312D5 -D302E1F5218CC62C9C8D75092D00AE3F603E568E95CE6DD81931B352C8D8BB15 -AC9F11BE312D2729F0BDDBA215A8A0CDFFAE68BDB49F696DA0C3EBBF349B5273 -3D4A7A36CCA0446F7D16A668D51B5165D70625E3E96758387E40A330BF5787DF -73C781B1F15EF16055DAB842029CE24A9677CC6E981A57A0209DE6EB62328DA5 -A05486E785AB73C5302172A5730586EEA3706801D39C02AF42B3C37F918AF5A1 -EDE8CBB0ACE44EC34B1BACFCFBE962549D05B30B572658B677C4B7D56E5FB7EB -D2F632888454FDDD3B8A4DD6C226284B56FBFDEEAF915D6BC129939729AA95F1 -B0AAEE02C119EEA3756BB7AB638DC15185D7D1BC5442E4E2037786DFC19E06F9 -5758344DCACFF12EA0D465A4F1AFCBCCA6B22B07A96E5433CC81475570A793E3 -6899A1F9BC3750C9EDA5A5010D7CBA24970D19555A6613E1C0A20B2CA1A2305C -6C59C11DE0E8DC0F51FE5F58EFF84F2DE7F18ED0EE7EC3C508951BAA11816F45 -53ECCE80B0D09AB23E189B890F3C9A4CEDCB7F0AC07E1B52B2CF8B6ECD6174BF -D5E66D5EF94326CA6BEBEB2D04A2F5C87A0DF0CDB072318F0329C49E799458DE -A2B772A5CE622C262F6294A8F691D83A188A377A8D78BAF59F08790BFAE3053B -85DC75CD7AD0E641F0C41202EA3CB49848C5269DFDDBE3EB5C9764FDCADF7E6A -2762909FA8C166070F69E0AEBCB03C8F97AE8DE40C7802FBD751A030425BD053 -161DEEB4A6FB85FFB9CE609F06D425C05EBAB2D4820FEBC450A3144341C0F597 -88B4917D4F9FE6D4CAF30D06E1129488AE8EE622325F21789B1CD274094CC311 -19819EAA3DE9703A5002BE9DE1BCA7D769A3069EACAB8261900A2A9E8A9444DA -D7A922A26CD7BB9CC9942DB574AFF1411F44208538967F4249A3BF4BBFE81B81 -92840607C3F4C8E804FD630403D6C6DE60A3F0D0BEB9635A28BF4BB3A789D090 -E754F4367E29F13DF28304F2178275A71938185F6E680782AFC6BC35C9FD842D -73EB566DEAF118649070090E43FA7E572036A606FD3FF47578B9594FBFE2C56D -35AC38CBE303AC04F36D889113D9CD423FDCAE23D8A63AA3C6CC2F6CEAC37032 -B1AA79C500AE5DF39CBC57BB4C8492B1EF276BC4D2864F67CB09C14E6E811F33 -46DD35E4899A072C788BD80D5476648416FE383B9FFA64BD69D5948A5E10C8DB -6774A701585216700E825306A23996B549A865255DE7A565840CF8F86EA30177 -E1CE3B1866D2F94AC553A0D4DB307A7D633D8CFB67D621294C32E8D4D5F48459 -994EC4BD53794F2FAB1B95431B0F40690CE80ACFBF249249FE6A070914080BB4 -8D56F73210F053B4DFA0403A2A30E4CB0DCD0E721E4143FC1EB918E6B7C2D977 -26D86B1B7F1D652166F169A3B058551A8BBA687A391FCBAEF337B3964CEFA7F1 -0A030C097F440A1D16FC14D9AC1243ABF8FE0C4572C14296FEF8B8EC6E859392 -96EB8291718357C6EC7422D8ADA872CB672AF4637086BBE35951C61789A335FF -5B904F17DFFE9F4E60523D427DF645C22377E1DE1407A41DA9748FABB258B3A0 -14E168C2A2373900246A6BD88F25D3FDCFD2A91A5197B63C1CF59AC4F26C42CA -B1958989A1B36641B51A0E91FE03E90BDAF96A7504EE3193728FA8F86B1F0665 -39A56B4283E9C789309ACD9445483EC16BCB5331571D67F2E6135234A855C65D -2702310B488CA8FDBEE958C382E40B96C543F58E2065D5385558D2DC2AF550A6 -DBC437EBC53BB1B3B8563195B5D1198FD906DAC9D906CBF59B7BBEB92BD29131 -B42F42B6B0B4656E0FD8D18BFE640FB479447BF606F361108FF3C9A9499038EB -87A370E44E8AA019689A900F20992619915ECE3FB679F5834F1B0EFE293595CA -0D37BDC0ECFC4D8528D52A14E40F8D3B0FB3AE69ED29FC7EF377F6C48A5E8ED5 -9EAD17923AA47F3A6FD58A19889C31DF0B8FEDEE49EBBE4749746C54362547BD -678CF0153BBE1A8BABAE7046182A542A9E91572F980E33B2D8AEAF2945E0693B -870787BF000663167C0084EDF0C35E055F3208A331F34CE8112D63EC8A71D129 -2EA41C7079AA2CE261F2C3E47E051635E5177AEA3626D7A4D7B5E42F66986E4A -BFB5FCF022A6DAB4DE877AC2DE05D1BAAE32B6D5CE1F24E570D1A123F8D27C53 -7E166783BC7A9437F9C3B6968C5386E9240DCF5EDA0BD2B2D91BCE2DADBE00B7 -20C262DDED733040979E62454C5303F01DF1CA7EDDF9E158E62251914918CD4C -88CB370FB1F68866CA2370CD9926A54BE41E1363236189AEF679E6560EA9765D -E5B44C035CF0378A4D684516387CDE0FADC607F86962DB50E2C82126391A8E87 -DB03285E829D39FAC94FFAF70123C3AD7F083D93A066B6E73186EFFF1CB951B7 -E746E52F54B0EB268EF21109CECBDBDCC99C59F5B545A8E93C6CEE6EA416D3D5 -5073DEEC1C4501BA4CCE7AF100C9F0ABFA5563B61F0DF4A1FDD5484B49D13032 -BBA269116BEEF5EC05650610408544C375DB8C4DA370941BF2AAA1ECA9BD4AF9 -783F2B651A22B51DE953BE94FB5A296E6EA54E9FDADC818BE4743EB53913172B -2C2411BF4D60D5ECFB84906F4ABFDBD4B70327EF53F465BDEC2506FC278CCEC6 -8A89151EE4616DBFAD66CF4422DC9F0E15D9639E54E1B47BE6648059084D58CA -110F38D77EF76775570E085F2F9496A4F2646EEEC6C269EE35DE9F756117850A -8E722DA4B8C26B836B428520A904EB109F4EA09F47FF99CA22F86C951D24B873 -83B9403DDB0720DC3FC4BA6C33478C13370509EF5C7CD49C10CD5FFD25043AD8 -1DD09529FF9C91157E9006A017B2DAEE542B39AB665EA760F6D24A9460FC0A6B -5C3964882F4471BF38E858EBA3BCE70230CEA3B511DADE4E892451711E4C41A9 -679CD4D9067575783774FCD8BF7F20B53D8B19AEFD81F44ACB4704352BF0D25F -F8B14D5D0477925D6792B93E3395089540C5BD082D7A718304B12AC0B99EF0D4 -4588EDE56AD2CDC1A23AF9D2B50FA87319D0A0610D04B69D9CE7DEEEAB2B7B88 -45097DDC86E8F91875F259B8D033C44D1C966262A5E9A2DF0C9C16858E97D4D9 -3DBC278F765AE2DFF9191DFAD87577F7AE031045AB54BC67FB0C54199738DC50 -D761374A1F6CD36067A595D5D052EE1048CD4F6C3C1A093B04FBA24FBA7144E5 -BCB6438235EFC35F222EDCEFF7940C1F91FBD93525F8B9D3CBC3BA58DCB29043 -E720B4C7300FD78BA24C70BFBDE3398AA91F00BAE8A4C04A04C9ADB9EDAE27EF -6C6CB5DB6FF0E4FB3127901F0CC575A8D8A492EE03AE4E8ECEA6E55D60563015 -4A157433C362D46B61908BE9445CBC25E50EB1F664072ACC5FD11B24449E6C29 -296E9AE446A63956BEE6A25607E2EBBE7F4F4D4FD4C98FA3A22AC043441F3140 -5ED2C4F32A54F05F1C3CC03B638FE8744F2C053FDDF6F0F87861298971C972D0 -EF6429BD3C44D3606D6A10AEE77E32B88B0648519D6F2FB2380290F7C873451A -C378B78290346C03047129A7F529018AF6B56057FB08B40B13AF74C7257C15CE -38810F7D912FBC3AB457B7018C985F31EEB76FDA63B95BBEB1F8950E5BA5926E -876F0FE954AC8D5A7E5778B3598D4661783645DEE64AD6CE7B7D027D2DC61298 -27C56100FCDBF2ABA512AFA2DB1EAEEC0DC39551C5EF23334FA516B9C10A6FBB -34A23712A73876EF7C71AF2A581B68F618C32DFF596CE1069B3EC5DA24451225 -A8522AC59A84EDB613A4B00D2AE058FDC9E1AF8DDA2F29C9D4954DD815FB4372 -D7C07781E7AAAEB3DA9FA9CC3721C870076F01787F31B455E68082BCD1F1C3E3 -84126C4B5668492DFCA2531A2DE135C588F328470497CE27EEE7FCC2B74C1BA0 -30EF399E8BA5C616A4D45BEBF2DA0BE55E96936CA2B9BDFA632A9725B3147B59 -C74FDB36D91C92B60DF2F7111CD4C7F59A47E43C0DB5A440C727BFCD133EA099 -7B8A5B801ECD69A1201134DE7C6B6EB80FAE9C8DABFC970F6DC03AED9A383C73 -A463FD3CF42EF5873F9639D55050FEB92D5C74BCB69536D645D763BA62BA4771 -9830AABE85B84CD6ECC2B2CFB4501480B5DF833C836804A0B463F57CE5AC08E2 -15480D47EC254D02391279E72A146A0834988FB0F8EF95573A359A4FD262E44E -79FA3F29C27CF9934B03881A8561C3943B2928967097613921B68E014BC60C93 -012446D334D3C539383A01371CF0CB6D3FE6E15955ACDA7F74C8E0F1DF3A2FB8 -D741248FCFD64378DF4DC90DE0256840826A6E0892A17E7E90AB1851A26D3D05 -F4C4DDCCC2A0B758B90C236C0BA05FDA098BA199228AFE1DBBCAFA7DA390E07D -61250CDE484356AF8B6A29E4595A98D0FEC0770B2A4ED9E5566C7FEE4E9409CA -99DB69F7353F599AA573A251F8BAE3D6A6ECFACF07CADBE1B63A5E55568C903D -0EF6B59B3484B13321C3ADD862A135F4305F3F2F21D188D7F1CFEDAE964AC4D2 -0250A68B5F36419E41AC852BC8E3FEE7259BDFFE250AA71009240C138C546574 -340F7C6395E904AAB07C05032FCA7BB333A9F95ED35B115E8449C26E8C6D8CA2 -99C1C38D652A5E14BD7E8F4B4F89D0EDEB082BBF8A0058E95934FBFEAF63A99E -076DF6A6259389002B0F4D44BC0D54FCAF8874606138F4DB1C39DE366938F12B -0018E1586F0284619962950D8A17343E -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMBX10 -%!PS-AdobeFont-1.1: CMBX10 1.00B -%%CreationDate: 1992 Feb 19 19:54:06 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMBX10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 19 /acute put -dup 36 /dollar put -dup 45 /hyphen put -dup 46 /period put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 58 /colon put -dup 65 /A put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 72 /H put -dup 73 /I put -dup 76 /L put -dup 77 /M put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 121 /y put -readonly def -/FontBBox{-301 -250 1164 946}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82 -7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378 -77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18 -2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91 -FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F -DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68 -7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4 -9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176 -CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D -6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6 -E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E -8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E -3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99 -EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4 -0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9 -4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF -1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910 -757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E -0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665 -6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED -E067598E1B8B78188FA4BCFB0B51692D07B0BEBB930C6F0997B437E2C51B876B -61A563A2673932C2045833FAA35DB22ADE12102335D5DC734AE3AC5EEE6658D7 -92EB62131E1DFBA441F53EFF9021D9D4C491F26BE8F54C61165CAD778CE8695C -EEAF70E3B20C64D4C2B34A084B5770BAB2A8B7069E84EE1039A2E43E0DECBBEF -93189055A49EE66B5906996FBA7A2F052D44A9EAAB6DED6ACACBD4742887E4A8 -FA3D14EC60A2413277027F80FC9B4384EE6F9A1528F7E58A9CB23E3EDE43B06F -E978B03C604B50A5F91C47346DE482B3A922A5D0236FBC7C8B46BB2355A1E805 -C6E30E5B2156F4C26F2C5BEE2DB03051D5824E81313B77E67A9C745F9F696E81 -3BE9158CE6330EFB07FC15E8618153D1E4D5E46141140D9ED2D64A1706E81687 -7BFF07DA3877D7DAEFFD70643D1A32AEE36CC2C0B376F888AF34291450DCA410 -6A49A4D5E8C2D1CF884B6A975FCC00E143C634C2CAAD10F354EA13055C6C7F35 -65B4A26C6C28C08567BF5860D0930D7CCE02B8A16F7DB74AF6D8B7A401DF26D9 -B605F7DA453F60E8E89DF07C2A11C0E1F89B02D061B7C9EE6274B3669D367C6F -F13C336537B67F235795800CA8EF1EA8591DB59BDAECC087BD360B3B50F5CAEA -8BD4F3EE074773D8C969DDB7B64C6A7BE3956ADBECF9836714BC6E754FC09E57 -DFDD95F1A01A3106AC80DB85CE663658EE74C714E6297496EC70890CD6EA37F6 -148CE94413F1D6CE5A3592EF3F99297874E13A7829B3C18BA66F9D093C3DAAEA -AFEB3F714A5449DEB7DE2F19851B4E65DE0679B74D83F1ECA1FEE76D0AA42B5F -5DF085720F44508D5782551D7A7978F3681929E6EC093D73DDE8DE8A938C149E -7E436F574115EB02F9CBA61AB32B9F27625CBFF17E3AEDB5195B493A149B1449 -5EEE848F16BB2EA1457FB44A45453D9990FA4F9FB258AB55FBAA37CE0AF7AB18 -8C46E921805055944A406128C21CC380EDD623BC1FC5523E9FE0F860F4D5E543 -1E9615777533FF7F92D1F1233151D7EACC678C1448D79712A58F2ED9C68137DF -777A3403B563AA12F66BFFC69A9213D8E0990F3D44409A0F041E1F33662D0E2A -7ED134E654ACEF0B5F8C6FB271BBC84A300794A6EA89E6058A07F4A84C33DAE7 -967153F4C4E65357C34143980E9EF1C04FFDB7A683287B101AC4D7EF91B7D648 -141E4DB0E49806215706B1F4A5174C9EC19AE3C55E3191A9D7EAD3294E77818C -EC06549E92C90D62BF85EAEAE51E4D7B7D66B4481823B60F897D0DF74FA1B72C -6FC4C10EEEE3A3B686AEAF763059525C69BDE039B398A8115F5C53217FFA8280 -DD9A35A85E0DF9D40780E0E6D62E9AC1BF6BA810B780AD3D79CFE274CEFE48B0 -40F7B2369A722FFC2D5292C5B5CC8D29CB56B98AB182463EE08956A36219A079 -7E92BC33856ED2F4DD53ED0809CA4F368E41C1210E655BDB2E58BC91D520289A -07B72F3DA93330C41876A4F13ABD480EDCD34370F71F9BFE330C32D011AD62C7 -16DC3E93BF9AE378B09A0C3AA2A43A1C61B02ACBC9061C116C0AB42EB60BE12F -F80FC95C5C51CE79794C620B420C9DD83667150F6EAA923D0CB79A60CEC8B9F8 -3E7C0F58421A0C349525E14A369FC591BA86A3748B4618EA8BE788D5227FDA5F -AB37F8302DFCE43E3800BC945E9A96108301AA65DB2DFE6E371F1D24AA406458 -C3838FBFCF37E7F1B589D820F6D54818D2A0224D8A76A420DA12C56C7856BBC8 -3A3AE827418D1F3561CE924B03E75EC9E1318767385C09EEDD5152CD0932818E -5B5D087D070E53435F5A3A63FC5C25CF064F69AD37837C7808597FF974708DC1 -7ED44F6CED31A17EE951B7D86A1728BDD8B0D862601489A7140F932EFB90BD98 -4FC42505AE9F6CE40DCD06ACEC02DF178935876CB42DA115A08F9BD7DA700CCE -3B11AA257116B2E1FCCDCD7D6D692D3912D23DD521AA0CAD0A040ADDF0E27259 -40F6A9FB2F302732594F8ACF5369209B553ED9DDEA20CA52E42FF30569D80212 -01A544C966EF2F1EA5559CF516784B964A5C4668FBDD158DE9FC0E8C8F5A66EA -1CD364F124CE3569AD8CB4BAC0A9B9758AC7A9ADE015CCF6BEF9ACEF00F0DB2F -A9A7C2E5FD498FC0033CE4B5764D0B2B6BBA47D9927FB015152AE37802E598F3 -5CA408DBDBEAD7A02FB943460B80F02AF30FE483134DE7A89A70569E590BC20D -493B2EDDADE1CB532D51C268CAA0F98CAD9DCF4CD3F5FBBBDB16A2D65B415CC0 -59EDF3602478BCC8F7D2313203FBE416AFFB93D61871F5A9F10A6549DCAC851A -4FFDD7F922D1EE32F6F67E53967D7C12178F5AD3B8B483AF98E6A8959607562F -22CB9FB8EA545F007C34F3A1C7D3D560545E145A8E57FF58BFB486B844037C09 -1C219D212F4C13A1736AD7D55100BEB709D110C4B95D589B1471CF7E074CB3A4 -72C0E75E5CB831D092D7D872A34E373415A1D7DF6C0B52D9F1535A852874B282 -9BB014AFA74EA7A091E2FB1F3B3EF01D6F86C3F46AA79FA519489CEBB95AB5D8 -BDE011394DDAD57A318199FFF087A8C495D3D93025285FD85947D5297DB85333 -575E25F03FD37F8F85AC0A082B8E62CD160D93840EF8AA09F90D0BAE848C08D6 -DE2FB5F5DE2D6C4462B82C19868CE9E969EA4DFB9EDD2AE3F83EC0F238FBC1F8 -89192A00EA10936B77EC8A9E64109FA7EE534C395D415A106F65E09F512D7A56 -F4FBF94178527775519FC4B96E8EFE5F4F3AF95502B02DE37A065B438653FD0D -E4EA28180CF2C3C166070F69FFFAE746DD8E57B302DA740B4340222F597ADD7A -E49E33AD526598C818E5886EE0EA7263871585DCE480770E3D8B4B8B13EEDD0F -962C92E58088CAAC81A6A9BF7912485EF079D2DAED54A01635A4C16EAFC60FD2 -DE6F2EEB2DA95829A7028DB2F58983F4AFE39B58BE62A2A73B300B6732A981B1 -DEF8B09C43F22767946F11BCF1FCD38E32320B412D0BAF7E679ADAA54B28DE94 -9D78C58B0D4BC1CE211E395CD560A49D0F9A7A4329C9FCAAC6B6B84C46510657 -1ACB0238DFC93E208D389647E379A2636A640C00DD91CF5B4751817DE2958735 -F9E0EE7EF7115008A55EB83DC993CBA141888F4A2C9C51E888EE2F9D605DE520 -0CC0CAC86ED519F766C6A74EBA418A22647CD8D933F3BF23B75C96D445E57402 -BBF9E0302C546C094DD18372E64D85C42E6AC4D4AD13290BE6161314A56144AE -02DE38A0019173F1AAD039B9B3E7F1E7D123A10677A7B3E38465CC6EC3D64BBC -145275796055097F7176178F8872C20BB4CA7FF78D90090DBEC1FA708FAB9C8A -94376FAEEE7FAD0CC8B47D82AC78BFE2C2E2CAAF47D7CBF1912708D4FFBCD602 -09779152E0A031921640B5E13A02857653E84718155DF220E0B92385FEC5B006 -D22F936A6B604B241769E52A7028089163507B81D5B6AF5E55B991789F2FCD0E -60AA72063105ADCA6746EE997E9417A457EC9C9AFF9D1F82AF16F26051289374 -29340F530E3FEE1A93663D60BE0F64E58A669ADFD3259BC9C4CCE5825EA5C335 -133CC9CB740B6980FE711F77FEAF776CF5ABAFBAE54853F94E8F2356574555F0 -AB8DE9FB57768BB67C13D58DD33E2F176161164A48F628427EFC3B5F0A8F2427 -D58A7E8BFE8C7031EA69317676012924C3AFA986C3062BA67BE5A71359851EC1 -23D529291F51D4B9616C906D9E5EB72406D037B35AB82F5FA32068CE1B0DDB5E -FA5DED13B4AC002FCAFEBA0DE4F6B9CDD9CA7BDED2B894DF5F381CCDEF003B16 -55B99D680DC6C885B2B33FC8F3BA106B0902EEBBD3237D18FABDE44FF2EB163B -131578EBC15CE149894C5EE6578DF9D6708839A032490BCECD052E20A7C94367 -DB0F920AE0DD15372FD44423C4600A289060B39BB34FB0EA116788F9EE088D46 -172424C79482F2DD7F66FA5B01C9F5D0BE92456BFB89156BD93AED6EF1D7D891 -949962B3CB8D7D6273BE685CA811CC28B230782EAD939009D7DFC00E9285B108 -CCC7D9D6A43DCE13FF2059CBD423FBF87A40E694AED1CF6E0D9A12972C904EEC -C425AE9234F026393CF082E3BA95FB9FCEB37C35DA6FE24EF295CCE723C55FC7 -F6F9EC01A8D464A390E891C572293A15D6DCDDB56EE751524F7F19975E9FEC92 -43313C65E41D8561551EDAAC6D5AE5EBFB7DF225A6646B9A185DD7955B87F880 -F919BEC708EE9B5D386D8BD82745AA3F03DACBA1F58A70E4C30096FA18ACB48D -557FBD3763536FD5C19E75E150DAFBA4BBC3690D677FF20886F8836D53EC801E -AAE0AABFE8903DFA95AE1E27962CD337BB39A91CC69BCA07C1B0C0A7F93244A0 -63C454846DE0FCD53DF32ECACAAA5589B06D218597CF2076D59B7CA9EB78A67D -28B42DF3C1E286700D4AFD82A63D9BCEB2CAB1F1602DABAF1684328249F7B787 -1DB3A707CAA7C9EC158CA3574DA91F049A888053D64D393F20C52C30C15B3EFE -6E87A1351D0839826E0195AD8A334607649AA0A9847EF013757971E9461EB47B -289F74DFD982DF89019E0265FDD4A10AD14CD3EDD5D6555A9A6338C1CC83EA08 -CE3FDF7393CF854A9788CC31C30FF76918B9D694D00E746276EDA71AA2AF30CB -82CC3931F250AEE451E196ABA1FAD6F21D2628F7B1D80CC88FAAD65B515C3FEC -7C55048257F947F1D0F1FAE362D23BC9FA2FEEF3722744FABB62FC4AFBEEAD5A -CB2E2CE2A38529E30CE60A3A5872C24CCE96A5D55E5094ABA181B7A0F847D72A -BA111318B5DEF40B30BE6195CE55EF9DA4EF2823A58540951EF7F707DEE0E6C2 -993E63470DC417F365EA6BE16611E03CD04BDFFADEF0BD7F91BE48AD0E0E8B7A -2A0A6EF99328287344684F5AFC534E01730826B6B80C511ED31F3D3B8D17841B -468452FBB53F059624C5746659552EA69A4EDAFA627AC8EF574D996A421E4D39 -C62690AEEDF4775F150447EBC3FF6FBFFD853CA384864F2B73302B3CB72F3E2E -7B7855C7A9B106238946B75C3A5807A597C4FAB43E624093C6AD508D3F105C77 -25D7C76F35DDCB1C01E4212D90A7AEDC5F1F2DE963113967B512D4DF995312F4 -9981987A4CC089BE75D34EE2DEE750C346D8D8ECAB28CC25D871B62AF82D2C1F -0040F9D102F166E25C649E69F9D7CD31F2FD018956E6038692C57D849887F52A -F06D991D0A889A07D3793A055A887E8E12C61AC168C80591F6789D8D1D68B395 -27219CC88670B013DCAD7EF948A7C1F7085621A397D35C3AED7C8C3B0D3AE829 -253310A9DDF1ED9F0A724091BA58E7B287BCBBB0542896EE6984BD224F413057 -1CDFF59B22C30E04E8C2F1521C01E3922819AB0D2812545688EFA078F31DD367 -C1F4E7730B4D1B6DD06E13AA4EF98FCC3FE27B38151DFAAB1D0246A90F19A551 -D098EBDBA701C465052C13AAF120CD03A3207383EF6CBF2475FB4DEBB47CE59E -68E915611C92CB85904EDA1E5B9F221025C6C5156FEABC2D361DDAE74424C730 -9E5BD34D77784928BFB53D163BD1C7DDE31F5A1E391DA1218D99287B95A1732B -316BF5FD63B237A3B1B7AC39522C41BCC109020DE6A8F683D856EF2E6D2F3158 -8A978267A0DCCDB9E6C4E4A793FBF2FC49647DBD6601FB7F59D77FF18DCEEBC9 -456A9F46AF2C3B5A4FE0ADFE49BD1CC6434B59415E6B783B079C94DB69005148 -1BC9897FE8E1196F41DA53F2261ED3CAB21D0EA3B3E85EE4BDB280F8740D2AC9 -85B0799AB4586E3B8B8D693B5975943D9D217B8B331E9DDEDB482BAA1121174E -C0F93158A672DA9AFC520CFB4BBF7A8ACA2FAAB5714C7D182D09367304A6E0D7 -BEA0D00E7204FA4AD608B12E0A2C3708DA6E3BE762BF189FDD8781B6E647F8CA -2E745B58CD65B2DEA153A707697216B6C1E3E44AC6FD29E71901D8E45E92AED3 -259A0434957ADAF00C28C3F1F7E31B25C5E248BE9659F0DC71FBB71057871848 -8872954943AECD35C954CD5C45A3E8AADCD16F28CCC7F06EBE7C54348A2D57A0 -1FEF1F7C6FF89001BFD7E90C17695BFD89EF9E1E4EF27DDCAA3DB1405CAD5D3F -D93E8C76596EA4B5F3AE567D9EFA1F8A166D0EB66010FE8298DF313D55786E77 -7E249978C56096C200D53A255B0EC5C4BF9B9C1BBF40D114E8742BC16041A5F1 -CAEA142873E106E3972E6DB3044A5A0BD5C5F729991EB7F0CD2615F7526144A0 -CAF82F826610D30824A5A20A9020ECF95742E79F4EAB6DC0DA8B8C0CB0823A46 -14C71EFA8722F7E1B8983DA273F676080C3B37E9EBDCCF0FCCC552C0BC7DAB1C -CACED3ED8A6E4F579B0CC2D6E83CF63BDF068E3750DCB74EB1B1D09A2D0AC2CE -E5DE1E51A328687B1D40B7C011A0DF846C330CE4F038727C3BF4DE1CD061B5A7 -E5DE34583149FA8AE50EF5D016F5EF062B32CA4DDB1A33CAA9E8DF666E2475F1 -512A72EE0DF61AD226368A33F85E419E50A8E032293EB3925BAF909A2AE0E647 -81C9A413D670CFFF4F93E3F6F4775CE58E982B945329C30481ADB922C6E17274 -F7636E1789B101662F5689519334046F48BBC27479522BDE80BD9C5EE6D1BE08 -1995B10936BD8AC9D7EA990F51D9A96A1A5D7718B2A64117C88CAEFF73F60112 -993CB70B0FEE7DAAE9F6CFBA9F991DA740C041DCCCC4AE132DED46A45A4552C1 -808CC0FFB9A3AC893EF4EA85DDDA4E7651B617BC79088376B1D15F3F1B9154D2 -3AB2AE51D7E654F95E87070909087AE6B716D37A4ED3D8D359EA9BC211736C08 -6EE76436477578E23BC81CBE87D326D57EE33A172BCA70856877970E80114F30 -8E5F85A908352425B2CCDB5697CFE2EF90465642FF498CCF0FD7A6A77068172D -9AEFBF70F58A3FB26C0CDB83C83255B6506F3012EA903F8E89B75CBE99BC3713 -E1FD46ABF2850ACA11561F9BBEFD0B851F953DBE273D2736D1F370768C89825B -2994D3DE37E086813FC462F696902455A1A1A947DFB91629FB1C62531F01A4CC -2A74FCD447F3EA20EF0418941C251190EBECBC87DDEB852EE693CEEE2B89E2DC -237416451ECB9291D7F2C0E68F3447B72392438B7C42A1B921A742BCF5DA0B58 -836BED4BF5B234325AA1EB97ED9A8E6CD13ADD33DE2C9283CF46DACEDE73A35A -1675EEAAC0D8F8FC0CF023581ACB1D0241B477390395DBADAC3C3815CC55B6D1 -DB62D7AD5AE09BA334CCAC1323802CA544A75CE8E324CDA9787255CB60566D6B -6DC410F02C1357DDF54910FA24E6B8B53E4DDEC2028D357B0A51C0CE6A073EE4 -638C2C756E43D59269E67879CC7848C63ADD63412AB0EB9246DF01C8F85ADB37 -FEF0C7D637D6F40FCD92C4CE62B6F0D62292F84CDE1A70F596142B16F7E76407 -7A6ECA2F8A49CC56ED141963EFC7EFB72C02D04DD52CB6E865E94AA41238C971 -3F76D94EE30ACEED4321E70110E7F3A1595244FE7A9669C948A048D598AC0E65 -F6C7B52A5D7742C1B105F9C86C68E592F65D541CFAD7FA0085DA65F7F9B566B7 -9298CADC6B3921FC9029C5213F8834866A752E938D2DB8FFBB071A3F24CBB7CC -99F5E3CD857A74D8974A443071B4E4C86CD7E700B6219C2ECF568CEA17A9DF39 -3B4FF618889CD94B59239C3F4F7C7658DE5421DF18CDA1F5854B73782651023A -5F474AA8D6181E37C60C95F19A6990C4E4432D2336CB8EB361F9E5AAD3B7E2D5 -350959A1F309BF66A1A1569247407D9979F99BC85AFD41D44D8B8982F7071B27 -B31A8FDFA4D4484F6E3EDC218904D7B11D4EF38204AE27DC669F35F7CBCCB01E -4B79845D084998E34B830F5600AF514E58D154557F13737AF20D5432BDDF5936 -D07F72C83FB5AE846BD8B083E0AAA5FDC73F4EF305ADD1C03CCA924CBB35C252 -352A845DF3D2159EED08E9EAB16647515E5930DAEBEDE91EF946787ACBA4BFA2 -BA898C60FFC0696A9764A51D01E31B6B39F22D289B4DD78D02D85D7FFFB3C3C4 -52CA50C8874F3C5557C22D7EC19236B0C25D89A6A9C64B2ED30932DF1D7D16FB -278EE0F2F86B4F0130B5FA464C8257465F18F72FF723F67A438014D1823EB70F -008077C1E6BC7D4E64D257E57A9891E052A5C2E0E8F03AEAE1FDCEE4D340F104 -583391A709680C96EA751B85951C99CBDD2D7CDEEFF6E4D747CE5D0D18599327 -AC37FE3AB145C19B76A511C0B440C98323B4F5941CE43979523DCC9640B346C2 -9C17C7C0D83D8ECE3D08E45267D3B4E2AFD78535ECD8CD65931D8E402A024C76 -6B5FADC434AD3D70E3538008BB3088EA45D7973E559581740258CC81E56F96E4 -E396A070BCD36CCF68623F05A817634D7C20BBD4313E36ADAFA35B412DD114A3 -87D0D92B6FA2EEB56779CF5A8038BBAF6C22A516C5D4CD09BBE9CD6F292C4F30 -0D078EE1EBD47EC7AF11EAEF72555F940B59942CE640BB461D529B3DD7DC59DE -83B869FD97A69A92D01166B47DAEC3BA68DC8E314D8988F0A313FB0E971E20D1 -5C30A9225E2F537B23FFF0D9CE204B87A96E5B4E502BFBC67DBCA89E8C938F4C -0F1712B956A6CE28D508359914E634DF70994A9430D90E9358BDE2800A05AD21 -3DA296BEA7E9C501908BD0DEA98436FE603B787FCB265AF2F69D0AF42A3F8D98 -AF22321E0CEEDDFAC5223B86E5E7E04FD4EED7ECE93255C2D546F8B423FF8DE6 -C7A6915AC6357A5FCD42D4262C9B06FAC29BC958CB7000F61B03C3C373295DE1 -92DB914B0FCC9D774E357A8B3AA97594D86484E056BCCE7C875ABDC6E04BFA6C -F23CD3C39F7A5E652F9E7B1825258B791E840911685C5DB9EE0317229CAB1FAC -BD966C2C1C947E84B9721A9C098AFE5C67EC3C0CD18E249D172E8F353896D153 -ECC2085BF67478C1A62C186283ECDD8F8ED860D88C72B3D84F116DB67AA63274 -302BBEAF09C4F5D04F2407BF9A43403B97FFB4672569B5E4A018CA9F412A7456 -728F70A0CC6A14E0EF7DA545D530BDB37CE47E65D836E211DFD18A0099356A35 -B68245F0ABB1D3653FCEB198083485B91F33C5C3D2AA2C5B3F07DBE2901FF1B3 -CEB2BEF981FE56D8554758720B4B984A509F8AEF743949ECB64310F87DA5B522 -A5BA72E3A5E1DB9EE74F912F1E70398D7D6699F670B0E1DC4C2F76D7B9D5CFFE -E70B75564D3E930077DD78FCC47C55FB783B1E48901324CB5CF178B8583CB540 -BF03FC20E649F1C4BE64F1EE83B9722EF6E1447AD95F821378DEBBC0D846BDFB -4D6F42800C967E6CBF3ACFE43A0A634F2F74DF741419344E838721FE98FF6C04 -79C8D8B5929D6D3F73E856F2085AE5C5CB4B028B091B211BFE3E9629B1C37772 -749960BFC86C941A4B3FFC4552D15B4CF9F2C9D44767CD34D134469FD2BADCC6 -77E651AD7C0E31DBAAA712A08080FE248AC5E592F8049A07FA1114A75C481DE4 -CD775562068C95B2B1D4B3242E5C43C5E5B7D6F5F57E1FF4134F8DB69F825F47 -0548185608CFE84477ABA83256F6B8BBBE668E8C525387D8D2448976E28BA5B1 -342148FFAF5903756F07F8F71DC9F323CB7448ED6C1FBF7CB916BACE2BCF1C71 -2C5DCDF9E344BF509AFAC07A0A48E819708927B36AB4EDA1D85782DF76D20280 -ECFCFC7003E60DE083654CB094F0216D7D8028DEB3C1F622EF341272FAFD9449 -3424D8428F4C8A51353F494C1E14534174F3F901C36E7743FBB03A665732D738 -4F78FB4AEB235F68CFD835818268C099317D49B8F794399CF8265ADF1120CD66 -75B2F9A5BAF86F4087CD1D18B168F3C555FC5C2FF0DC84CC14E6E4D92A366B66 -83C4E672E166ED8CEC9754EFC094AFDD263355A5FC1A81AD06ACA951CFF941C1 -93B4B036933CA8CE859C8073AD96CA9D2B706A0B17368F350F0BB90303766D59 -1D7551ADB6C952F499864B2B48790665243350A1294CA9FAE96DE3B4E160DDFF -86E47810B8F00E46BA2008532C238525273C1EE87D706901EE95B73A6EF33DAF -1DB033BAEC49324F2F4A26F510FDDF44F3F1884CD4D56751C144A2106EF7C63A -C6D5CB11307FAB4C66D83D3E347DB503E3C98A49763B748B8EC5DA1C42167F5F -D215865D84D7E2B01F94F62400F1FD81EB194CB80A4B33C1A5C5808164D8AAAE -D261DDBFE916BE95BCE0D1B9936A36CC6E75DB412D4291EEFEB509053453FF14 -8D5F081E5FE7225C94D9627878D66BA4B4965DB12C1EB17ABB0A2D87A948292D -D051934F33CCC97CC09548282BD24F04E37B724719138C0269DE4EC3E056FA2F -CBCE254B977F1EA5B6CF56D590F5066911300AE3632E97B4807BD7947530D2D5 -1DE251686C5FEF4A851FE9AEA61BE752E37E5F5501B878BDBE054CA1516D0DB7 -54CEF32EAD3D936315C8702E5048B9109A6036FF5159FA3A0675A469CAA1959B -A33B6322D0CC76A5B30546D41C3CF17B67B8E7FAD383D16F14620698749EC178 -80048C97D029E229BDF6227E4FC6666606FBF3673FB8205D5DCF3F5A83313227 -D1295134EE8C71E00DEC1487994483E9B81A642C53A8198EF57DDA9274FBCE4C -6628EEC75C302F7ED41D10CB5F1B2AA4B12A5415E4510D25B1F576CC16C8F9A6 -5ADEE2248A1B46DDB499D779F8A63E09F674E27F74D53AB4642FBE6615094FF7 -B8040EBA84D850675C55AED0C9E1C4153428E1FC7AA8D9335B42BBB41C1C779B -8717A00E96D2B9B4138DA60D818A8A303367CEEFB73A9DC01E24A7F160CD9AD9 -D375A71CAE6115FF29A61796418CC67255735BA3471D6542ACE20572B5E2C9A7 -494AB3EF0C728D7EFB42FE593A7F39821061B599A0772181D74438C5C7766CBB -18D035AAA6A54F9922972E44D7AEF4AEC40CB0301FCEE83E1FE18196114EA8A0 -F7C91BC4339F87CD35A68ACDA8FC9F10E1386A040D910BAD5767C8DB06F5CC53 -35FA824C791B0870312C89048EA85093F0BE8FB4FD778BA03C048209D29BB315 -D601635271F36B8D38F83E8069482FDAE6C74249BF1CA70058C2BC8CDFB7C7D0 -9D19E903961561A4DE07D412030BB1748DD16F9DF7EE1CD8673B5DDC9CBB4DDA -81716505A58E2C6E7EAEB44F7BC67FFA1A8C0583A92AB1710B618FE04312C778 -878DE8282AF5EE543222716741000EFD5267AD23DBB8D17B354AD4255D1625D8 -FE10341752CA2896F2E8A045B179A083595332706A62C34035AAF0D54F529A87 -AC9D67975E894EB72C5F15CAF1EA10B500CA39AFB32E3CF8A3332DBE41B41EBE -3E0C9D2D68EADEC7F175885AFAF975DF62225114CCC3030D6D93F0C7FBBB2D43 -B4137595D7337DB70A5C763B9CBF597668A5BF3181473785A20D959750642B32 -04709F214C67F2E84943B39CBE069E84EE7514EEA255F5919750DB4A2D497AD5 -BCE3E4836DBF351BCC9AE7B05F8562B3411D3B29B807882AFDD951AB1987C040 -B21B661F8F9F37B724648CCE293CEBC503E812D03B366E18BD8E20F91AD432CC -3A569F63867572311E492AD3A72B67B9DCE970CC21DF69492F2B60BF59AE176B -24118C7A1350A243143600FF6E83C7762581746ED1D1FD64BA1A1E8DDB4888AC -F2A2A33A81730F2E26DFE89631EE000C0D99EE8E8BB0E3A37614A4F8631ED982 -002CCC4DB0A2AAC85688A56D48D701C99321CFC5CE97BD3193A8925F3A4E19E9 -A34E7F53D9535359FCC9599BD30466D5EF6A64DD80F981BE451A3E34EDC1C278 -BB9305EFB756371853152D313CBE01808F60CAF2D894BF5D5905A54DA745D2D4 -29E3876D1E7A187BAE9D6207AA1F70222B7272A863F05EC0D29EA4562B7DEDCF -66B369DA7FE7C7CF8D433A75D45486F864CC7BD0FBE940FEE9068C9F7B41ABF5 -97BE7ED06EBBE935C5135967A89EB2182457374C83C0D795D50A6ADC0384DB46 -BBADE8D2CE0A37FEB55F28425C25F26049590EECE560D135C8C7F5A4BFFA0AC2 -3ED2FF71A36867C426D8B9C9 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMR12 -%!PS-AdobeFont-1.1: CMR12 1.0 -%%CreationDate: 1991 Aug 20 16:38:05 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 55 /seven put -dup 97 /a put -dup 109 /m put -dup 114 /r put -dup 115 /s put -readonly def -/FontBBox{-34 -251 988 750}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C -68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 -3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E -59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28 -51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23 -DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A -AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F -45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31 -821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE -96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D -9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379 -26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4 -140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213 -1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498 -1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB -377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A -0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03 -5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4 -ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15 -FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB939AD2EEB -4370BA2C96960CE9E6882316268ABAF1023ED9D2D13969EF9E53F52BC143383C -AFC14F27A7530C1EF399707711B3AD971D9F57DE244315EED5A16F9CB6AC1524 -65C8C8458FB03FB8619B8A925DCA3AB2518F044DA696A4D6F8DAD182E1C15D7B -C108C9538896A23A043EE66E18808902D215E82AEBA183D813D46B89A3FC847B -A7F6E0082DE9AD8C0A83F521219955FE964A660826FE921E1EA12D7B34D65EAB -B5E40E74A9666CBEBBFCB9A26A0526B72AF9F31F6A04305FA0284816DDEA6D1A -5786756F613EF9040290DD2D2B27B88ECC0A1FE0DCC2035211919CBCD2DD7A8F -35EF236D4E0749256874CDF5BA703F0C7B49EC0C9EB5C65AE1E7F7288452C619 -E013FCD5D5D5F8A517DA7305F04B4EE61B12A1A2A26C08A46982A7D1EEA07D01 -809552DB4B07FB6EE5A798324C57FC6C2A7D31D102E1BD5F296E9051464CA3CD -F37695EB0EB77BB83F258039FCA21B8252F70CE5D3D9D74E452617B055E19B5B -600B421C921B026BC7356AF63F2690C62B1CD9E479D62EF8F964D9BC29AE1447 -F096FA9ECF5E52F1F7E2FB34B02BDDE6C210D3A43AAADC40636AE8271DF2174A -A63236C4BEA8FD7A6E841B4AEC2CADAA7FC481A16322BEBF01A31E4CD5A577C7 -EEA43211AC7C2C40A6EEEEE7BEEFA146BC3322E6A9E157641A67823CB2661C97 -07C1DE919CF5D1EB4550B08A8452972330B08C87A6AC91BB519667CF32F2885E -71D69B398E7C59F815FA730BAFDD7F54260EEE5BBF6219A7A39D65B0624C9555 -CD34EAE5E7E9AA681B06C1EA575A6C41DD490E0FA258A93766707B6C8A35638A -653E9244B25045CC2381F4998278F9844FF704AC420696AA6E18C8EA78D98163 -52ED5CDADE35979C4CEFDCA0B7C1A26211F04907D036016EE8A1F40BC4143093 -19D3F937DD6D6328882E40141CA000D42EDCD4D47A5516E5FD5205CB31F88D21 -8E855C79000D919BBFDBB843C29FE353B33833A36A6C76581DA65B8037DB5DD5 -1BA21BF81BFABEE02759C35002E9A0DDC78D460989B8948527120ECBCF5881F9 -F035B80F9269B0A846780272A15B14204B8C03A1A135092E31F162EE4BAF20BE -D3C1EDC193FFDA52128313E51CD76189A911E82207A822DDF92F6E821A75BC5F -762E99FD94B1148E71E873C01B46C0158170047A0E6BF5962863113893C71AF0 -FA1BB71520E364053B404B3D912E011D226A95C7ACFB4A1E7166F4B9BA67B4F7 -908FFA34D2C2199F7E5309E6DC0C76FC502D88752F6BEA537262DEC294E3CB05 -E511CA14CDF663D8745BF6703AC16FD61B43F7C3C6A903AE586FA783EA4515FD -B3CC71B68757A66338CD91E4A09DAFEF053737D76A1A9B32BAC308021E7720A7 -8E0A341A4BA2DCAD4E0112DE60DE99539FA7B0EE73CE05BB245A1F5CFE242333 -8BFA62C67C95F0843B7369BD117C489DE934BB69D927069C072920398CC2DAB8 -62101720901D3DA6465303ABB9C19525DBBA151D0F1D8BAF70121CD368934EFB -A68A210B8FD29391D25ACF6D77969768CF3C008DDDE81E2869083F86463FBE15 -E43370010EF7B374F3CBE74E86E80985B498014ABB6D28188DC087973B2AF56B -71C3D7A500949D5950E745C3718317BD7E22F54D169EE7C702EA4C37AAFC853B -2B6575BF17C3B0A910E47AB0F85C0F296B161F77E2D7E7967BE4951510732D40 -96F8C2B6D322DC5709576DC8F2E270822AE3A0C38DC54AE36A1D612D356C1347 -6E4A9C592787048C21E2D833263B65C8E4427B64AADD32C311361B018994ACC2 -ED31DE81A87D2944190F1EC792E28663DBDA732BBB7C1B39E0C9B652BC2519A9 -78AE3F205990732DB91653B03D317CEBACAB797FDFF3F01BB33C5B78B86D8783 -7AFF1ED5B3163983678D361A2B3CBD4CA1EEFDFC587E6FE91F62506F235109B6 -8E51CB8295F64F6C7E69CAE94466DE4B186B50D5551D51316DF9AB44EE853071 -B6FB652DB8B5C09EC2F4FFF2E231955CB58224DD864AB8D71468EEB44D967276 -7F048872912A3B92B0F54D5ABD5AD013B4BF2706D53FE5ADE3882F71C296F3E1 -35F4AF44A0B84D7840BFD29D466FC2D2F4E8C81B2B69C8EE5C2DAD4C1678F026 -144B7FE3A72CFAB5E1950EE2F8EAD198EED539DDCAB4840FB8ADB9ECCF6B31B7 -39B70FEE5F3BA9E758DFD9ECE3A627FB99495BCCEF3475FB360F235ED73DC910 -A787A5C59AE1AB0777ED3D08E5202A63E090D88B13C4752DC4D95113A259787E -4C42D6C564AC849D5F9780D8EF59CE68268D052563C19581B06F7789AB1DEC3F -EAC624CF6DDD2A821ED46B01F14A668F7ABE74A5529C94F086DB03C71EF817CA -AD815C4D3588F99AB3A90B53EC855DDA69D299CA7C6EFCD2 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMR17 -%!PS-AdobeFont-1.1: CMR17 1.0 -%%CreationDate: 1991 Aug 20 16:38:24 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR17) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR17 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 39 /quoteright put -dup 45 /hyphen put -dup 65 /A put -dup 70 /F put -dup 76 /L put -dup 79 /O put -dup 82 /R put -dup 87 /W put -dup 97 /a put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 104 /h put -dup 105 /i put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 122 /z put -readonly def -/FontBBox{-33 -250 945 749}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5F075EA0A10A15B0ED05D5039DA41B32B16E95 -A3CE9725A429B35BAD796912FC328E3A28F96FCADA20A598E247755E7E7FF801 -BDB00E9B9B086BDBE6EDCF841A3EAFC6F5284FED3C634085BA4EE0FC6A026E96 -96D55575481B007BF93CA452EE3F71D83FAAB3D9DEDD2A8F96C5840EAE5BE5DC -9322E81DFF5E250DEB386E12A49FC9FBF9B4C25C3283F3CEA74B8278A1B09DA7 -E9AE4FBAAF23EDF5A3E07D39385D521547C3AAAB8EB70549756EBA8EF445AF4A -497CA924ACCC3DD5456F8E2C7E36946A5BF14E2E959895F7C94F49137256BE46 -4A238684D52792234869EAE1A6D8ADF4E138B79472D2A90A6CA99E2394CC20CD -3841733046175B20CEBE372327BF13428EED6A3E2FDF84C2DBA4B0AD584EE9DF -B51828D3B8F385846158C29C9AC3496CB9692DD10219697B2ED4D425C3957FD8 -C4600D76E045C561216EF05D38177243C314877A69A1C22E3BEC611A2EE5A216 -9B7C264CF6D1839DBBD78A40610F2C0D7C2FE09FFA9822FF55035AD52546970F -83EED2D30EABB1F303091EBC11A5379B12BB3F405E371519A53EA9D66174ED25 -A2E55463EC71A97BE4C04B39E68112956117C8252DB6FB14AB64534B4BCD568B -246DB833982B38CDE7268BBF74B6B0C18091E1B1F87D32D66F4DD023D1F10D2A -7736A960F72AC01F733A11023832CD68FB6288A5977743F6F3F23E0C1657CF5D -E8374835BDBD2DED3690C84A1EBB8E2383A5E49E610B6F5F0F5F5EC43CFD16FF -24FEEFB92425CCB577E17FDE4EA6C50E1448DC5726A21888E25B6D6B52DA3D3C -E4C4C6A73C176DFEB60B6B6191B336AC4F5BAA123E1B3B6FAE4B3FA9DC8F7E39 -335277EF2294315BE95F64EBDB1F393B293FD0FDB9DEE6C89082232013130D28 -9234FF12DF47D454558A1EE8603B2832772E5CA07D18B34A4763D5B890F7173F -B8FD38B08F847FE570367C2500AA592E8561878A86491A611865254BA6BE10DD -700C01A3F0D254A5AA0ADBC4DA708CC9909EE3B1692657B5A07BF14258EEE82A -137F69C604328C9E5B0F08F0C2F9A9E805CB3B78BD67578F2468DA55B04C5602 -47A6191304EA7CD9C8E48C02D0DBD1FE8CAF94EB5A41EE79C5989E3DCF332E0C -C15A728C039FE5FB62F6E38B496E9EB7FC4DC700408E90DDB5585FF577079F94 -B4E90C8CE6DC50C1AA95F6122C334614199AD3C4E665C978E487DD75504449BC -51586C840BC8896F38A17B41614817AF7855558578F7C3E185C523E10156BE88 -85BF39E5762F3485EB514EA2ECC3636EC62B4B6A8264F2833247FF346CB2F9E7 -A60B614898EFBCF22DC8ABFBE9124AC221ADC674209C3E008F48CFF08950DB97 -A467AAFF342F299F24EE591282FE7A0683CAC644AD052C6AE6FEE2093286820A -1B300A7B807CE97A8AE52914D5B59529AF3549D5D7E66A82D7D3FF2447922C1D -CD5686E54BADBDBA8A6C7BB3CF398616A993058E89F4C1BE85696A780B0B9BF8 -4A4D713CCD7DE2B305407FF0B453507B3358443FA4218550A893CAB19E69B85F -AA7E14C6CCAE0BAC75A8848420F36B2A81903CB97527CAB8958D5B168CFBB1E3 -3FFCE29907DE48683ED44B0682FD00C9C4E9160B324596E092DE8DA82D985B84 -7EBEC02E90C23EB9DDBC078E37ED09A882ED52EDF3DE1778D9DC0C6E23202F54 -FF45BB75860360C4A4A191014DF0D8F72DE57B79A7EDB8C52306217C11545A50 -28C9CFA7694C8523544E15E364E3909089872528B191CE387B3EBD9E5C92609A -71C221C41EB2E4DEE5AB10D44746C8E8D57D5710F5E51D4C5ADADE0462CA1C6E -798812EC34CD814C0792DEAC9822367468020311E7791FE7DAB1732EDE77F295 -72BB1C054A8997E3756C6DC7A2BFB7B0A703EA991872FFABD8F03DBD72017FF5 -6216FD51066BE58C345D713218D73A9D32E54931FC794F5F464F17D0F76769DE -0A9BEF54CD93899972807164A286B6DDCF966646B26E93483B504C57B5106300 -DDB17C126CBF0C324F7B9B2F7E296AE4FEACFC248A55C607B075E5C265F00DAC -BE7D3FE89941F270BC33DC1462A42A97FD5201A4AD94EC4C93B283E374C238A0 -D0832624C868FB36749A117030A6BA50F0F201D0F0C46FCFC1808B9B8D0E84B8 -20377A74E1AD9DE13FD281D9450467C5FC28EEBD9DC47F5180FDD007DC16ACEB -42A2B2B8520ABFE8F89D2C54EB9AC77284FA19B6812999E14C4512A43A3166E2 -F6B46E8D9E021691B0C02969558B00714B0DB60BFA58D64D86707E7BECA25A89 -2BFD8ECDC6F009D2DB760E57CDF17579EAB32D86CC5657CEDE8D8753F2D5055A -26C4F19519023FE8AA01BF84D0829D9C316F2061487CC5F4309FB8707D8F8FCA -7340D30EAACEFFC78E7FC94E6D3BC634294B3DE805DA5C44BAA53056754ADA43 -1737E9EA0FE90D2AD000A6BCCFAAF21266AF7D81D878AB96C1367FF462022559 -6266E00EDCE370F06FC755C4D4F0B5EE3C2779D922EE3750EA75199BAB8D50F6 -F6D0AECD37440413249E41C339290C346EC53E530428592BFF99A43EFC69C784 -3F0B877A34BB0690DEB5104413E1B59C89070235212216DBF040FD1205486C69 -C673AAA2376AA7047124AA3508BB89784DE93A2E934533D5153235A6C5D23173 -B6B385566DCF0B313B59ABCD3428BAA592165389CE18E40E959DFDC17F88F998 -FA4D9AA18E98FAB3F92448B4A5D28B4102A4359770DC554BA58DE980F60D2305 -15C612737EAC879401BA470508AEC08397019C14E1C34244B0FE994843FCE823 -719EC52F6E00B75675FC3D3FC0B1F2EDB0B37BAAA2A0EC1389F395D3F4AD6EB2 -7CD220661BAC0E5438E80D8D64CD68230B07085DC27306B956F542D479EE7CF3 -FDFB6FC9DFA01C25792ADA79575324AF12F4447DA2947957FBE640092DDEB879 -5BE484280D01DD910B6D69282E772C9140F49B2742651DCA95B7EAAC55CE08B5 -13FD71F51B11F7FF7021AF93FEE2A6FF5A6223B155A4D1F92E99C576088EB402 -519C9189B7D5D345CFA9347845D916F2ECA2C6B4142EE4B33C13F86D18ACE6E1 -9CE6DAB6B6F336197E4EC25ED0B38D7DC087A45C32B520454E42E248D18A4F11 -DEDF9778A9BB1FDC30768B3DC7E5A39FD51434223B46716387F7A379182B21C7 -CAB5A86AC0AD2900E20EB2566190931E7E86C548F88DC1B55C8B80879E84E7E3 -0B5739D30B7FE204E59D281670EC90E986AC08BD38230E9A341A460149702565 -214704BDDC9176033F68721B3D0C6118484BC8D06B15CB3D8531E19AAC3B3A3E -4F44BF226AA4770612D4B3537988141D895CBD36718996ECA4138F10EFBA52A4 -1F89FDB0450D353E0B5F2BA4BC42372B12DD4ACA8521EF5E9C1DF0A575C4AD65 -379F55A3725DFB5C6D8C14B7B8BC22AEDF86886F95E2CB00134C55DB9CB49981 -CF944A6F2B744806FEED501FFCCBEE919F6B1E2973881A0941D9AF8E6781491A -0C32555340FD74545C59D6886619F873207E9961516E26AD9241C2BAFED73CF4 -9DB9995BBEFC11174B83DB92E3E329A7817DB69DF9DF73CC18B369F0C060EFEA -B8D36C848A571210EE2A2AEC9B341F0E8AD42D99702FE7442E2DA2111DB02444 -E0C0C2BD78E6E6268EE7922FBE5202F186C0FF0FF59071ED4BD5E8E3606EEF7C -302A5B8A4686CC8EE8D5D6EC6716103D156FFC7B8DA9D7180918EA1464543DFA -96B98E10C561E05C6BC273B5C3B55D4A58357E1C6DF714F5345B8225F582D978 -793B743C53485EDDBFEAB2E2E8827FF86F1891AE4683EABBFEF7265B23254B57 -98FDEAD48C78800991815269E9F029A7A095DDCAA3BBF39D8186CE1A4F83463B -A176DA3E3CB4AEA081BE712543BBD541A73671E44D7A6141AB3E629DE47EA084 -BB7D9EE21C8A895960FAA8B4EAA51BEAB75E8E08D4BACD3C0BD48956BE5DD244 -94E1C304AEDB176FF7D74D0E42F3475C9E500D4F6D2C49AEF88C3969A08DFA04 -C985CAFED0983FF889341CFFA5BAB503A33F21252B56D3AC1E688871A645BA49 -76DAA7AA27E605D1B6B3D7E3908A55D1579E700512C5E85FD4FF22F977063AF9 -B4906B791A6C5052B70B4CABAB353C68F6273D47708C871FB6D9B7AE2EFE1867 -830FE235F724072DA524A2B3CB4B64B40DE23C7700EE771F0E603E7C2321BE21 -F86601E481AA131BE8ED78F0099B56587F301B59DAD2AC84175B806E3B2FF14D -6D3F7545B656173C68D813B22D6C07F9457FACEEB2B4524C034F9663E8DBFADF -556CBF171715929F315E271F1E8F0828523D8CE00E875260FE7BF156EA661B37 -1C1ACB041A7145A2E7C9085477D60BBA7176892BA16A65F5C769586281F93629 -269BBA849FD795648D8A78E6F0B49758B70C52DE747071076D994972B2B4AA0D -8308D55B2B70E64CBA7576D90C07D4D026255E70E7C1ED3F1D4B5E1FA63B1270 -136D2FA2AFED86EC1A2B33126B2650077DF2545AB0E93A578E846E9BE957350B -AB6B4545EDAE7114C2043DA611FDC14EE57341E0A186E89A87BEB9AC325B68D4 -12C366E1F55F865C4DC08D6F495324505F54EF25FE095878929A1A12D1E9D65B -B4FCE8F49CDE56B57DB3DB98239C05E4E3212F0E49DE66C60690021C4FD89E0F -76936ABC611CE8BCD007093F0FD9BB44D3A96CEE2FF315F61757FD230D70FA59 -6E97772DCD8C97CA2A41B7EC8155089CA0ABE2BBE4FE34E23A817198FA9B9950 -E7FF865182FFAD297584F5B124674B7245B11F0262A605B7B113C4E64B5C90FA -1FCFB30FE868A71B558DFE3C39BCB53FC058EABA5F257A467521096772B103DA -320FC5C1F8C68A85537DE55B26BDE4B0AEFFB406EDACE2FFA3F47D47968BF947 -4B369F88DF79C6317AF228E8CA78E9372CBB935C7469C25B59B67653B188A06C -49FAFE69BD5D933E2C4DE9B1207A7314931FD59C06C3A0EFF498140FF5E5A761 -F2E2ABB6CB4A9F8F25737551D2F5828649C64BD8C138528263793C663B9F550D -CB4F7AF7E007F677A50E29891452D56F654F30AD5FB93C46A86E03CDB4CB379A -4378C69E1C48CD65BC06918D149E529EE07A9DB2B9D6C5E951CD90CAF69C2744 -85064E6D9565F9F4C337E492C28AAB023D78B2A72AEC70392F89F15D69616FEC -E74774C9E8995EB344A88B6B86ECB9ABABFCFAC17041554C30F1612B072E261A -12326F2768BA7301FDF714039B7FCAE28D8D826573B48B9FD1A2F48A570C3443 -05D1AD4D1290773FDA57D3348D8D2EE3B13D587E7F2A5EDEC4D089F88633BF15 -1DE1907A9104FB30E8A06DB14FF31C6211D14AE824A8AC9D46ABEFA42CACD26C -D9F4BE702C46FF3F3B916EA275E6B4BA5C868ECBE76728C3EEDCE84CB9BBFB63 -1CE927FE28AAE0925BE97C450FB410E63B0A76350559DDBFA5E61216B289750C -DCBCEBCEEBAE0B9788760F581B4DE35184968D85F716BF65EEE3896DE814713D -B0958CA9D120ABF2776830D3535DCB1866428EC9D01702F8372E27E5A2E57446 -0572381313C196FD1E86AEBB69E917D331E63C9DBB30E2D5F28360B2D3C002F4 -08F945B48D5F5B740071C39779ED7FF1AEFB8D2DE646EE0A5BADC9634CBD3812 -64615760C5BCEAC7F714A14682358B116855E098B007925A3E52D59DB0D18CC2 -FABFA3B8824E65C765A858EFA69AB3EA2AF6116937256D131D565CAE163E832C -CC3C91102FF3487087EFCE11B21778F7CBF8F71D04C66B6314A6857D1FB7F127 -C83A5C9C2CAF3BC8A3663F7EEEFF0432AEDB16C77034088071026D5AD497D517 -40297AC8E77B69FD44FB1E2ECC96B5ACE9504C7C92633535E8AC8E186EEE1183 -A2ACC6E3F8ED98C0BF04E227F1E5EB273C28DAB32246F163BFCA0E1455831E25 -39D7AEAB974C4E1218973954E1A6E46551A9FE1334FA483E9DD671C2445EBDA2 -B9503AD86BFE89B4FF5B6F49618C835B82C0380F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -TeXDict begin 40258431 52099146 1000 600 600 (READ_ME.dvi) -@start /Fa 152[42 42 102[{}2 83.022 /CMSY10 rf /Fb 135[44 -1[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 -44 44 44 44 44 17[44 9[44 3[44 2[44 44 44 44 44 10[44 -1[44 2[44 44 44 44 2[44 2[44 13[44 44 18[{}41 83.022 -/CMTT10 rf /Fc 134[59 3[62 44 44 46 59 62 56 62 93 31 -1[34 31 62 56 34 51 62 50 62 54 10[85 5[77 1[88 4[42 -88 3[86 81 14[56 56 56 56 2[31 26[56 56 5[62 12[{}36 -99.6264 /CMBX12 rf /Fd 214[28 28 40[{}2 83.022 /LASY10 -rf /Fe 193[65 1[65 60[{}2 83.022 /CMMI10 rf /Ff 133[37 -44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46 -42 25 37 46 37 46 42 2[42 3[51 2[85 62 62 60 46 61 65 -57 65 62 76 52 2[30 62 2[57 63 60 59 62 65 2[65 2[23 -4[42 42 42 42 42 1[42 23 28 23 2[32 32 23 5[23 8[37 4[42 -42 3[69 1[46 48 11[{}69 83.022 /CMR10 rf /Fg 134[50 3[53 -37 38 39 1[53 48 53 80 27 2[27 53 48 29 44 53 42 53 46 -10[72 73 66 53 72 72 65 72 1[91 57 2[36 75 2[63 73 69 -1[72 6[27 4[48 48 48 48 48 2[27 32 8[48 16[48 6[53 12[{}46 -83.022 /CMBX10 rf /Fh 138[75 52 53 55 1[75 67 75 112 -37 2[37 75 2[61 75 60 75 65 12[94 75 2[92 2[128 3[50 -5[97 1[102 11[67 67 67 67 67 3[45 25[67 67 5[75 12[{}32 -119.552 /CMBX12 rf /Fi 140[38 38 4[81 11[49 41[49 3[49 -49 49 49 48[{}9 99.6264 /CMR12 rf /Fj 133[58 4[73 51 -52 51 2[66 73 111 36 2[36 73 2[58 73 58 1[66 9[137 4[98 -2[103 2[83 5[86 4[99 19[43 5[36 39[{}23 143.462 /CMR17 -rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin -%%BeginPaperSize: Letter -letter -%%EndPaperSize - end -%%EndSetup -%%Page: 1 1 -TeXDict begin 1 0 bop 614 872 a Fj(A)-15 b(W)l(OR)44 -b(-)f(Fic)l(hier)i(Lisez-moi)d(de)i(l'administrateur)1665 -1295 y Fi(13)32 b(mars)h(2007)515 1653 y Fh(T)-11 b(able)45 -b(des)g(mati)m(\022)-64 b(eres)515 1835 y Fg(1)76 b(Compatibilit)n -(\023)-46 b(e)2117 b(2)515 2018 y(2)76 b(S)n(\023)-46 -b(ecurit)n(\023)g(e)2353 b(2)515 2201 y(3)76 b(Installation)2217 -b(2)639 2300 y Ff(3.1)84 b(D)n(\023)-39 b(epaquetage)26 -b(des)h(pages)g(PHP)20 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h -(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131 b(2)639 2400 -y(3.2)84 b(P)n(aram)n(\022)-39 b(etres)24 b(de)k(con\014guration)35 -b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) -f(.)h(.)f(.)h(.)131 b(3)639 2500 y(3.3)84 b(Initialisation)27 -b(de)h(la)f(base)84 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) -f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131 b(4)639 -2599 y(3.4)84 b(Con\014guration)26 b(par)h(d)n(\023)-39 -b(efaut)27 b(des)h(comptes)79 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f -(.)h(.)f(.)h(.)f(.)h(.)131 b(4)515 2782 y Fg(4)76 b(Main)m(tenance)2159 -b(4)639 2881 y Ff(4.1)84 b(Visualisation)27 b(des)g(ob)5 -b(jets)28 b(et)f(des)h(\014c)n(hiers)68 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.) -h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131 b(4)639 2981 y(4.2)84 -b(Netto)n(y)n(age)26 b(de)i(la)f(base)50 b(.)42 b(.)f(.)h(.)f(.)h(.)g -(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) -h(.)131 b(5)515 3164 y Fg(5)76 b(Authen)m(ti\014cation)33 -b(d)n(\023)-46 b(edi)n(\023)g(ee)30 b(-)i(P)m(ersonnalisation)935 -b(5)1926 5255 y Ff(1)p eop end -%%Page: 2 2 -TeXDict begin 2 1 bop 515 523 a Fh(1)134 b(Compatibilit)m(\023)-64 -b(e)639 705 y Ff(Cette)22 b(application)e(p)r(eut-)n(^)-39 -b(etre)21 b(utilis)n(\023)-39 b(ee)20 b(sur)h(un)g(serv)n(eur)f -(fonctionnan)n(t)h(a)n(v)n(ec)e(Apac)n(he,)515 805 y(MySQL\()p -Fe(>)p Ff(=4\))26 b(et)i(PHP)f(\()p Fe(>)p Ff(=4\).)515 -1020 y Fg(PHP)83 b Ff(L'application)21 b(ne)g(n)n(\023)-39 -b(ecessite)20 b(pas)g(de)i(con\014guration)d(de)j(PHP)e(particuli)n -(\022)-39 b(ere.)19 b(Elle)515 1120 y(fonctionne)k(quelque)f(soit)h(la) -g(v)-5 b(aleur)22 b(du)h(param)n(\022)-39 b(etre)21 b(de)i -(con\014guration)e(register)p 3083 1120 25 4 v 28 w(globals,)515 -1220 y(utilise)38 b(les)g(sessions)e(via)h(les)h(fonctions)g(in)n(tro)r -(duites)f(en)h(PHP4.)f(L'application)g(fonc-)515 1319 -y(tionne)29 b(quelque)g(soit)g(la)g(v)n(erb)r(osit)n(\023)-39 -b(e)27 b(des)i(a\016c)n(hages)f(d'erreur)g(et)h(de)h(w)n(arning)d(PHP) --7 b(,)29 b(car)515 1419 y(nous)h(a)n(v)n(ons)e(tra)n(v)-5 -b(aill)n(\023)-39 b(e)28 b(\022)-42 b(a)28 b(\023)-39 -b(eliminer)29 b(tous)h(les)g(messages)f Fd(\()-17 b(\()22 -b Ff(E)p 2441 1419 V 30 w(NOTICE)g Fd(\))-17 b(\))30 -b Ff(PHP)g(qui)g(sur-)515 1518 y(viennen)n(t)d(par)g(exemple)h(lors)e -(d'une)i(comparaison)e(a)n(v)n(ec)g(une)i(v)-5 b(ariable)26 -b(non-initialis)n(\023)-39 b(ee.)639 1618 y(Les)28 b(scripts)f(PHP)g -(n'acc)n(\022)-39 b(eden)n(t)26 b(pas)h(en)f(\023)-39 -b(ecriture)26 b(au)i(syst)n(\022)-39 b(eme)26 b(de)i(\014c)n(hier,)f -(sauf)g(p)r(our)515 1718 y(l'upload)e(de)h(\014c)n(hiers.)f(Le)g -(dossier)g Fd(\()-17 b(\()20 b Ff(\014c)n(hiers)g Fd(\))-17 -b(\))25 b Ff(doit)e(^)-39 b(etre)25 b(accessible)g(en)e(\023)-39 -b(ecriture)24 b(par)h(les)515 1817 y(scripts)i(PHP)g(sans)g(quoi)g(la)g -(fonctionnalit)n(\023)-39 b(e)26 b(d')n(\023)-39 b(ec)n(hange)26 -b(de)i(\014c)n(hier)f(serait)f(in)n(utilisable.)515 2033 -y Fg(MySQL)83 b Ff(Les)22 b(scripts)g(PHP)h(ne)f(mo)r(di\014en)n(t)h -(pas)g(structurellemen)n(t)f(la)g(base)g(de)h(donn)n(\023)-39 -b(ee)515 2133 y(MySQL,)33 b(il)h(su\016t)g(donc)g(d'un)g(compte)g(p)r -(ermettan)n(t)g(les)g(instructions)f(SELECT,)g(IN-)515 -2232 y(SER)-7 b(T,)23 b(UPD)n(A)-7 b(TE,)24 b(DELETE)e(sur)h(les)g -(tables)g(de)h(l'application.)f(P)n(our)f(indiquer)h(\022)-42 -b(a)24 b(l'ap-)515 2332 y(plication)j(quel)h(compte)f(MySQL)g -(utiliser,)h(v)n(euillez)f(v)n(ous)g(rep)r(orter)f(\022)-42 -b(a)27 b(la)g(section)h(3.3.)515 2607 y Fh(2)134 b(S)m(\023)-64 -b(ecurit)m(\023)g(e)639 2788 y Ff(Cette)19 b(application)f(a)d(\023)-39 -b(et)n(\023)g(e)17 b(d)n(\023)-39 b(ev)n(elopp)n(\023)g(ee)16 -b(en)i(gardan)n(t)f(toujours)h(\022)-42 b(a)18 b(l'esprit)g(les)g -(probl)n(\022)-39 b(emes)515 2888 y(de)28 b(s)n(\023)-39 -b(ecurit)n(\023)g(es.)26 b(Nous)i(ne)h(p)r(ouv)n(ons)c(\023)-39 -b(evidemmen)n(t)28 b(pas)f(la)h(garan)n(tir)f(failles)h(ni)g(bugs,)g -(mais)515 2988 y(nous)34 b(sommes)g(\014x)n(\023)-39 -b(e)33 b(des)h(r)n(\022)-39 b(egles)32 b(de)j(programmation)d(p)r(our)g -(\023)-39 b(eviter)33 b(les)h(failles)h(les)f(plus)515 -3087 y(couran)n(tes.)19 b(T)-7 b(outes)21 b(les)f(donn)n(\023)-39 -b(ees)20 b(issue)g(de)h(l'utilisateur)g(lors)f(des)h(traitemen)n(ts)f -(des)h(pages)515 3187 y(w)n(eb)g(son)n(t)h(trait)n(\023)-39 -b(ees)20 b(p)r(our)f(\023)-39 b(eviter)20 b(des)i(probl)n(\022)-39 -b(emes)20 b(d'insertion)h(de)h(co)r(de)g(dans)f(les)h(requetes)515 -3287 y(SQL.)g(L'authen)n(ti\014cation)h(des)g(utilisateurs)f(est)h -(syst)n(\023)-39 b(ematique,)21 b(v)n(\023)-39 b(eri\014)n(\023)g(ee)20 -b(\022)-42 b(a)23 b(c)n(haque)f(page)515 3386 y(et)k(rep)r(ose)f(sur)g -(le)h(syst)n(\022)-39 b(eme)25 b(des)h(sessions)e(PHP)-7 -b(.)26 b(En)f(rev)-5 b(anc)n(he,)25 b(il)h(faut)h(noter)e(que)h(le)g -(for-)515 3486 y(m)n(ulaire)19 b(d'authen)n(ti\014cation)i(n'est)g(pas) -f(prot)n(\023)-39 b(eg)n(\023)g(e)17 b(con)n(tre)i(l'usurpation)h(de)h -(mots)f(de)h(passe)515 3585 y(car)27 b(les)i(con)n(train)n(tes)d(donn)n -(\023)-39 b(ees)27 b(dans)i(le)f(cahier)g(des)g(c)n(harges)f(ne)h(le)h -(p)r(ermetten)n(t)g(pas,)f(d)r(^)-44 b(u)515 3685 y(moins,)33 -b(il)h(n'est)f(pas)g(p)r(ossible)h(d'utiliser)f(un)h(cryptage)e -(e\016cace)h(\(assym)n(\023)-39 b(etrique\))32 b(sans)515 -3785 y(mo)r(di\014er)22 b(le)g(syst)n(\022)-39 b(eme)21 -b(d'authen)n(ti\014cation)i(d)n(\023)-39 b(el)n(\023)g(egu)n(\023)g(ee) -19 b(et)j(sans)g(utiliser)g(une)h(con\014guration)515 -3884 y(de)k(serv)n(eur)e(W)-7 b(eb)28 b(sp)n(\023)-39 -b(eci\014que.)26 b(Consid)n(\023)-39 b(erez,)25 b(p)r(our)i(r)n(\023) --39 b(esoudre)25 b(ce)i(probl)n(\022)-39 b(eme,)25 b(l'emploi)j(sur)515 -3984 y(serv)n(eur)c(w)n(eb)h(s)n(\023)-39 b(ecuris)n(\023)g(e)23 -b(\(HTTPS\))k(et)f(l'utilisation)g(d'une)g(liaison)f(en)n(tre)g(le)h -(serv)n(eur)e(w)n(eb)515 4084 y(et)k(le)f(serv)n(eur)f(d'authen)n -(ti\014cation)i(au)f(tra)n(v)n(ers)e(d'un)j(r)n(\023)-39 -b(eseau)26 b(de)h(con\014ance.)515 4358 y Fh(3)134 b(Installation)515 -4557 y Fc(3.1)112 b(D)n(\023)-54 b(epaquetage)39 b(des)f(pages)g(PHP) -639 4710 y Ff(L'application)j(est)h(livr)n(\023)-39 b(ee)39 -b(dans)j(une)f(arc)n(hiv)n(e)f(de)i(t)n(yp)r(e)f(tarball)g(compress)n -(\023)-39 b(ee)39 b(qui)515 4809 y(con)n(tien)n(t)18 -b(toute)g(l'arb)r(orescence)f(et)h(les)h(\014c)n(hiers)e(PHP)h(n)n -(\023)-39 b(ecessaires.)15 b(Il)k(su\016t)g(de)f(d)n(\023)-39 -b(ecompresser)1926 5255 y(2)p eop end -%%Page: 3 3 -TeXDict begin 3 2 bop 515 523 a Ff(cette)27 b(arc)n(hiv)n(e)f(en)h -(conserv)-5 b(an)n(t)26 b(l'arb)r(orescence)f(dans)i(un)g(dossier)f -(publi)n(\023)-39 b(e)27 b(par)f(v)n(otre)g(ser-)515 -623 y(v)n(eur)f(W)-7 b(eb.)27 b(Les)f(\014c)n(hiers)f(de)i -(con\014gurations)d(son)n(t)i(pr)n(\023)-39 b(esen)n(t)24 -b(et)j(con)n(tiennen)n(t)f(des)g(v)-5 b(aleurs)515 722 -y(d'exemple)27 b(que)h(v)n(ous)f(p)r(ourrez)f(adapter)h(\022)-42 -b(a)27 b(v)n(otre)f(situation.)515 951 y Fc(3.2)112 b(P)m(aram)n(\022) --54 b(etres)38 b(de)g(con\014guration)639 1104 y Ff(Cette)33 -b(application)f(comp)r(orte)g(deux)h(\014c)n(hiers)f(de)h -(con\014guration)e(qui)i(son)n(t)f(dans)g(le)515 1203 -y(dossier)f Fd(\()-17 b(\()24 b Ff(include)f Fd(\))-17 -b(\))p Ff(.)33 b(Les)f(\014c)n(hiers)g(existen)n(t)h(dans)f(la)g(v)n -(ersion)f(distribu)n(\023)-39 b(ee)32 b(et)h(on)n(t)f(p)r(our)515 -1303 y(but)c(de)g(servir)e(de)i(mo)r(d)n(\022)-39 b(ele.)515 -1433 y Fg(connect.inc.php)31 b(:)41 b Ff(ce)32 b(\014c)n(hier)f(con)n -(tien)n(t)g(les)g(co)r(ordonn)n(\023)-39 b(ees)29 b(du)j(serv)n(eur)e -(MySQL,)h(de)722 1533 y(l'utilisateur)d(SQL)f(et)h(de)g(la)f(base)g -(que)g(l'application)g(utilisera.)515 1653 y Fg(con\014g.inc.php)k(:)41 -b Ff(ce)35 b(\014c)n(hier)f(con)n(tien)n(t)h(tout)g(le)g(reste)g(de)g -(la)g(con\014guration)e(de)j(l'ap-)722 1752 y(plication.)k(Le)g(\014c)n -(hier)g(est)g(un)g(script)g(PHP)g(qui)g(initialise)g(un)g(tableau)g(m)n -(ulti-)722 1852 y(dimen)n(tionnel.)f(Ce)f(c)n(hoix)f(\022)-42 -b(a)36 b(\023)-39 b(et)n(\023)g(e)37 b(fait)h(par)g(commo)r(dit)n(\023) --39 b(e,)37 b(et)h(p)r(our)g(p)r(ermette)h(de)722 1951 -y(bien)h(hi)n(\023)-39 b(erarc)n(hiser)37 b(les)i(information,)h(en)f -(rev)-5 b(anc)n(he,)39 b(la)h(syn)n(taxe)e(est)i(fourb)r(e.)14 -b(.)g(.)722 2051 y(N'oubliez)28 b(pas)f(de)h(virgule)13 -b(!)27 b(T)-7 b(outes)28 b(les)f(constan)n(tes)f(son)n(t)h(d)n(\023)-39 -b(ecrites)27 b(ci-dessous.)722 2191 y Fg($adminMail)k(:)41 -b Ff(adresse)23 b(e-mail)h(de)g(l'administrateur.)g(A\016c)n(h)n(\023) --39 b(ee)24 b(\022)-42 b(a)24 b(l'utilisateur)905 2291 -y(lorsque)i(qu'une)i(erreur)e(in)n(terne)i(\022)-42 b(a)27 -b(l'application)g(s'est)g(pro)r(duite.)722 2411 y Fg($automatedMail)k -(:)41 b Ff(adresse)31 b(e-mail)g(de)h(r)n(\023)-39 b(ep)r(onse)30 -b(des)i(courriels)f(en)n(v)n(o)n(y)n(\023)-39 b(es)29 -b(au-)905 2510 y(tomatiquemen)n(t)e(par)g(l'application.)722 -2630 y Fg(A)m(UTH)33 b(:)41 b Ff(P)n(aram)n(\022)-39 -b(etres)24 b(d'authen)n(ti\014cation)905 2770 y Fg(POP)32 -b(:)41 b Ff(P)n(aram)n(\022)-39 b(etres)24 b(p)r(our)j(les)h(serv)n -(eurs)d(mail)j(POP)1060 2911 y Fg(SER)-11 b(VERS)31 b(:)41 -b Ff(Chaque)26 b(\023)-39 b(el)n(\023)g(emen)n(t)27 b(de)h(ce)g -(tableau)g(\022)-42 b(a)28 b(p)r(our)g(clef)h(le)f(nom)1201 -3010 y(de)d(domaine)f(du)h(fournisseur)e(de)i(service)f(de)g(courriel)f -(\()i(partie)f(sui-)1201 3110 y(v)-5 b(an)n(t)27 b(le)g(@)g(dans)g(une) -g(adresse)f(e-mail\))g(\022)-42 b(a)27 b(p)r(our)g(v)-5 -b(aleur)26 b(un)h(tableau)1201 3210 y(asso)r(ciatif)g(de)h(la)f(forme)g -(suiv)-5 b(an)n(te)1201 3350 y Fg(sub)s(domain)31 b(:)41 -b Ff(adresse)23 b(complete)i(du)g(serv)n(eur)e(o\013ran)n(t)g(le)i -(service)1284 3449 y(POP)1201 3569 y Fg(p)s(ort)32 b(:)41 -b Ff(n)n(um)n(\023)-39 b(ero)39 b(de)h(p)r(ort)h(TCP)f(utilis)n(\023) --39 b(e)39 b(p)r(our)h(se)h(connecter)e(au)1284 3669 -y(service)27 b(POP)1201 3789 y Fg(username)p 1604 3789 -29 4 v 34 w(is)p 1703 3789 V 34 w(full)p 1873 3789 V -33 w(mail)k(:)41 b Ff(Bo)r(ol)n(\023)-39 b(een)38 b(\(true)j(ou)e -(false\))h(indican)n(t)1284 3888 y(si)k(le)g(nom)g(d'utilisateur)g -(\022)-42 b(a)43 b(utiliser)h(p)r(our)f(l'authen)n(ti\014cation)1284 -3988 y(est)28 b(l'adresse)e(e-mail)h(compl)n(\022)-39 -b(ete.)26 b(C'est)i(utile)g(p)r(our)f(les)g(serv)n(eurs)1284 -4088 y(POP)17 b(g)n(\023)-39 b(eran)n(t)16 b(des)j(adresses)d(email)i -(sur)g(plusieurs)g(domaines)g(\(comme)1284 4187 y(w)n(anado)r(o)26 -b(/)h(orange)f(au)i(momen)n(t)f(o)r(\022)-44 b(u)27 b(j')n(\023)-39 -b(ecris)27 b(ce)g(do)r(cumen)n(t\))905 4327 y Fg(b)m(ypass)p -1186 4327 V 35 w(if)p 1277 4327 V 34 w(lo)s(cal)k(:)41 -b Ff(Bo)r(ol)n(\023)-39 b(een)37 b(indiquan)n(t)i(si)g(l'authen)n -(ti\014cation)g(doit)e(^)-39 b(etre)1060 4427 y(outrepass)n(\023)g(ee) -21 b(si)h(la)h(connexion)f(s'e\013ectue)h(depuis)h(le)f(serv)n(eur)e -(lui-m)n(^)-39 b(eme.)722 4567 y Fg(CSS)32 b(:)41 b Ff(P)n(aram)n(\022) --39 b(etres)24 b(des)k(st)n(yles)e(de)i(pages)905 4707 -y Fg(CHOOSER)p 1387 4707 V 33 w(LIST)33 b(:)41 b Ff(Ce)19 -b(tableau)g(asso)r(ciatif)g(con)n(tien)n(t)g(la)g(liste)g(des)h(st)n -(yles)1060 4807 y(CSS)29 b(\022)-42 b(a)28 b(utiliser.)h(Les)f(clefs)h -(son)n(t)f(les)g(lib)r(ell)n(\023)-39 b(es)28 b(des)g(th)n(\022)-39 -b(emes)28 b(\022)-42 b(a)28 b(a\016c)n(her)g(et)1060 -4907 y(les)33 b(v)-5 b(aleurs)33 b(son)n(t)f(les)h(noms)g(des)g(\014c)n -(hiers)f(CSS)i(corresp)r(ondan)n(ts,)d(sans)1060 5006 -y(c)n(hemin,)d(ni)g(extension.)1926 5255 y(3)p eop end -%%Page: 4 4 -TeXDict begin 4 3 bop 722 523 a Fg(MAIL)33 b(:)905 680 -y(TEMPLA)-8 b(TES)33 b(:)41 b Ff(Ce)28 b(tableau)h(con)n(tien)n(t)g -(des)f(tableaux)h(asso)r(ciatifs)e(don)n(t)1060 779 y(les)g(clefs)f -(seron)n(t)g(utilis)n(\023)-39 b(ees)26 b(dans)g(les)g(passages)f(de)i -(param)n(\022)-39 b(etres)24 b(HTML,)1060 879 y(et)k(con)n(tiennen)n(t) -f(des)h(sous-tableaux)e(de)h(la)h(forme)f(suiv)-5 b(an)n(te)27 -b(:)1060 1036 y Fg(caption)32 b(:)41 b Ff(In)n(titul)n(\023)-39 -b(e)28 b(qui)f(sera)g(a\016c)n(h)n(\023)-39 b(e)26 b(\022)-42 -b(a)27 b(l'utilisateur)1060 1164 y Fg(tpl)p 1183 1164 -29 4 v 34 w(\014le)k(:)41 b Ff(Nom)d(du)g(\014c)n(hier)g(\(a)n(v)n(ec)e -(l'extension)i(PHP\))f(con)n(tenan)n(t)g(le)1201 1264 -y(mo)r(d)n(\022)-39 b(ele.)722 1421 y Fg(SUPER)m(USERS)32 -b(:)41 b Ff(Ce)19 b(tableau)f(con)n(tien)n(t)g(la)g(liste)g(des)h -(login)e(des)h(sup)r(er-utilisateurs)905 1520 y(\(ceux)28 -b(qui)f(on)n(t)h(le)f(droit)g(de)h(supprimer)f(des)h(r)n(\023)-39 -b(eunions\))722 1648 y Fg(UPLO)m(AD)34 b(:)41 b Ff(P)n(aram)n(\022)-39 -b(etres)14 b(concernan)n(t)k(l'attac)n(hemen)n(t)f(de)i(\014c)n(hiers)e -(aux)h(r)n(\023)-39 b(eunions)905 1805 y Fg(accepted)p -1272 1805 V 35 w(\014les)31 b(:)41 b Ff(T)-7 b(ableau)27 -b(des)h(extensions)e(qui)i(son)n(t)f(autoris)n(\023)-39 -b(ees.)515 2038 y Fc(3.3)112 b(Initialisation)39 b(de)e(la)h(base)639 -2191 y Ff(T)-7 b(out)28 b(les)g(\014c)n(hiers)f(n)n(\023)-39 -b(ecessaires)25 b(son)n(t)i(rang)n(\023)-39 b(es)25 b(dans)j(le)g -(dossier)e Fd(\()-17 b(\()22 b Ff(install)g Fd(\))-17 -b(\))p Ff(.)28 b(V)-7 b(ous)28 b(uti-)515 2291 y(liserez)d -(principalemen)n(t)h(le)g(\014c)n(hier)g Fd(\()-17 b(\()21 -b Ff(RAZBase.php)f Fd(\))-17 b(\))p Ff(.)26 b(App)r(el)n(\023)-39 -b(e)26 b(au)g(tra)n(v)n(ers)e(du)j(serv)n(eur)515 2390 -y(w)n(eb,)j(il)g(v)n(ous)f(p)r(ermettra)h(automatiquemen)n(t)f(de)i -(mettre)f(en)g(place)g(la)g(structure)f(de)h(la)515 2490 -y(base)24 b(de)g(donn)n(\023)-39 b(ees,)23 b(et)i(optionnellemen)n(t,)g -(d'ins)n(\023)-39 b(erer)22 b(un)j(jeu)g(d'essai)f(p)r(our)g(tester)g -(l'appli-)515 2589 y(cation)h(sur)g(v)n(otre)g(serv)n(eur.)f(Si)i(v)n -(ous)f(ne)h(souhaitez)f(pas)g(utiliser)h(de)f(compte)h(SQL)g(a)n(y)n -(an)n(t)515 2689 y(le)k(droit)g(d'alt)n(\023)-39 b(erer)28 -b(la)h(structure)h(des)g(tables)g(de)g(v)n(otre)f(base)g(a)n(v)n(ec)g -(ce)h(script)g(php,)g(v)n(ous)515 2789 y(p)r(ouv)n(ez)24 -b(ex)n(\023)-39 b(ecuter)22 b(le)j(script)f Fd(\()-17 -b(\()19 b Ff(base.sql)f Fd(\))-17 b(\))25 b Ff(a)n(v)n(ec)e(v)n(otre)g -(clien)n(t)h(SQL)g(fa)n(v)n(ori.)f(Le)h(jeu)h(d'essai)515 -2888 y(se)i(trouv)n(e)g(dans)g(le)g(\014c)n(hier)g Fd(\()-17 -b(\()22 b Ff(jeu)p 1573 2888 25 4 v 31 w(essai.sql)e -Fd(\))-17 b(\))p Ff(.)515 3121 y Fc(3.4)112 b(Con\014guration)39 -b(par)e(d)n(\023)-54 b(efaut)39 b(des)f(comptes)639 3274 -y Ff(Dans)30 b(le)g(\014c)n(hier)f(de)h(con\014guration)f(mo)r(d)n -(\022)-39 b(ele,)29 b(un)h(sup)r(er-utilisateur)f(est)h(con\014gur)n -(\023)-39 b(e)28 b(:)515 3374 y(ingleb)r(ert@iut-blagnac.fr)e(et)i(le)g -(jeu)g(d'essai)f(prop)r(os)n(\023)-39 b(e)25 b(au)j(paragraphe)d(pr)n -(\023)-39 b(ec)n(\023)g(eden)n(t)25 b(p)r(er-)515 3473 -y(met)j(de)f(cr)n(\023)-39 b(eer)26 b(des)h(utilisateurs,)g(et)h(en)g -(particulier)f(ingleb)r(ert@iut-blagnac.fr.)639 3573 -y(P)n(ar)19 b(d)n(\023)-39 b(efaut,)21 b(v)n(ous)e(p)r(ourrez)h(donc)g -(v)n(ous)g(connecter)g(en)h(tan)n(t)g(qu'administrateur)e(a)n(v)n(ec) -515 3672 y(ce)32 b(compte.)g(Le)g(jeu)g(d'essai)f(met)i(ce)f(compte)g -(a)n(v)n(ec)e(comme)i(mo)r(de)g(d'authen)n(ti\014cation)515 -3772 y Fd(\()-17 b(\()20 b Ff(b)n(ypass)f Fd(\))-17 b(\))o -Ff(,)26 b(ce)f(qui)g(signi\014e)g(qu'aucun)g(mot)g(de)g(passe)f(est)i -(n)n(\023)-39 b(ecessaire.)22 b(P)n(our)i(utiliser)h(un)515 -3872 y(vrai)i(syst)n(\022)-39 b(eme)27 b(d'authen)n(ti\014cation,)h -(connectez-v)n(ous)f(a)n(v)n(ec)g(ce)h(compte)g(et)h(allez)f(dans)f(la) -515 3971 y(page)f Fd(\()-17 b(\()22 b Ff(Mon)28 b(Pro\014l)21 -b Fd(\))-17 b(\))27 b Ff(p)r(our)g(c)n(hoisir)g(une)g(autre)g(mo)r(de)h -(d'authen)n(ti\014cation.)515 4246 y Fh(4)134 b(Main)l(tenance)515 -4444 y Fc(4.1)112 b(Visualisation)39 b(des)f(ob)6 b(jets)38 -b(et)f(des)h(\014c)m(hiers)639 4598 y Ff(Une)28 b(page)e -(d'administration)g(est)h(pr)n(\023)-39 b(evue)26 b(\022)-42 -b(a)26 b(cet)h(e\013et,)h(et)f(elle)g(n'est)g(accessible)f(que)515 -4697 y(par)31 b(un)i Fd(\()-17 b(\()23 b Ff(sup)r(er-utilisateur)g -Fd(\))-17 b(\))o Ff(,)33 b(c'est)f(\022)-42 b(a)32 b(dire)g(un)g -(utilisateur)g(consign)n(\023)-39 b(e)31 b(dans)g(le)i(\014c)n(hier)515 -4797 y(de)27 b(con\014guration)f(principal)i(en)f(tan)n(t)h(que)f(tel,) -h(conf)n(\022)-39 b(ere)26 b(3.2.)1926 5255 y(4)p eop -end -%%Page: 5 5 -TeXDict begin 5 4 bop 515 523 a Fc(4.2)112 b(Netto)m(y)m(age)37 -b(de)h(la)g(base)650 655 y Ff(\022)639 676 y(A)31 b(partir)f(de)h(la)f -(page)f(d'administration)h(d)n(\023)-39 b(ecrite)30 b(dans)g(le)g -(paragraphe)e(pr)n(\023)-39 b(ec)n(\023)g(eden)n(t,)515 -776 y(v)n(ous)23 b(p)r(ouv)n(ez)h(aussi)f(purger)g(les)h(\014c)n(hiers) -g(attac)n(h)n(\023)-39 b(es)22 b(et)i(les)g(ob)5 b(jets)24 -b(de)h(la)f(base)f(de)i(donn)n(\023)-39 b(ees)515 876 -y(dev)n(en)n(us)31 b(obsol)n(\022)-39 b(etes.)30 b(L'aide)h(con)n -(textuelle)h(de)f(cette)i(page)e(v)n(ous)f(expliquera)h(commen)n(t)515 -975 y(faire.)c(Il)g(est)h(viv)n(emen)n(t)f(conseill)n(\023)-39 -b(e)26 b(de)i(faire)f(une)g(sauv)n(egarde)e(de)j(la)f(base)g(de)h(donn) -n(\023)-39 b(ees)26 b(et)515 1075 y(des)g(\014c)n(hiers)f(join)n(ts)i -(aux)e(r)n(\023)-39 b(eunions)25 b(a)n(v)-5 b(an)n(t)25 -b(d'utiliser)i(cet)f(outil)g(car)g(l'erreur)f(de)h(manipu-)515 -1174 y(lation)h(ou)g(de)h(programmation)d(est)j(toujours)f(p)r -(ossible.)13 b(.)h(.)515 1449 y Fh(5)134 b(Authen)l(ti\014cation)46 -b(d)m(\023)-64 b(edi)m(\023)g(ee)46 b(-)f(P)l(ersonnalisation)639 -1631 y Ff(A)-9 b(W)n(OR)32 b(utilise)g(un)g(syst)n(\022)-39 -b(eme)31 b(d'authen)n(ti\014cation)h(d)n(\023)-39 b(edi)n(\023)g(ee)29 -b(de)j(sorte)f(qu'aucun)h(mot)515 1730 y(de)40 b(passe)f(ne)h(soit)f -(sto)r(c)n(k)n(\023)-39 b(e,)38 b(et)j(que)e(l'utilisateur)h(n'ait)g -(pas)g(b)r(esoin)f(d'en)h(retenir)g(un)515 1830 y(nouv)n(eau.)32 -b(Le)i(co)r(de)f(d'authen)n(ti\014cation)h(\022)-42 b(a)30 -b(\023)-39 b(et)n(\023)g(e)30 b(\023)-39 b(ecrit)33 b(de)h(mani)n(\022) --39 b(ere)31 b(\022)-42 b(a)31 b(^)-39 b(etre)33 b(mal)n(\023)-39 -b(eable)32 b(et)515 1930 y(est)e(extensible.)g(Le)h(co)r(eur)e(du)i -(syst)n(\022)-39 b(eme)29 b(d'authen)n(ti\014cation)h(se)g(trouv)n(e)f -(dans)h(le)h(\014c)n(hier)515 2029 y Fd(\()-17 b(\()22 -b Ff(auth)p 747 2029 25 4 v 29 w(dialog.php)g Fd(\))-17 -b(\))o Ff(.)28 b(V)-7 b(ous)27 b(y)h(trouv)n(erez)e(une)h(section)g -(commen\030)-37 b(can)n(t)27 b(par)g(le)h(commen-)515 -2129 y(taire)f(ci-dessous.)722 2312 y Fb(/****************)o(**)o(***)o -(**)o(***)o(**)o(**)o(***)o(**)o(***)o(**)o(**)o(***)o(**)o(***)o(*)722 -2411 y(**)43 b(Ajouter)e(d'autres)f(mode)i(d'authentificati)o(on)37 -b(ici)42 b(!)i(**)722 2511 y(*****************)o(**)o(***)o(**)o(***)o -(**)o(**)o(***)o(**)o(***)o(**)o(**)o(***)o(**)o(***)o(/)515 -2693 y Ff(Comme)30 b(l'indique)g(ce)g(commen)n(taire,)f(v)n(ous)g(p)r -(ourrez)h(a)5 b(jouter)29 b(\022)-42 b(a)29 b(cet)i(endroit)e(une)i(p)r -(or-)515 2793 y(tion)d(de)g(co)r(de)f(p)r(our)h(utiliser)f(un)i(autre)e -(service)g(d'authen)n(ti\014cation.)g(La)h(syn)n(taxe)f(est)g(la)515 -2893 y(suiv)-5 b(an)n(te)27 b(:)722 3035 y Fb(case)42 -b('')f(:)722 3135 y(/*)i -(Eventuellement)38 b(du)43 b(code)f(pr\023)-44 b(el\023)g(eminaire)38 -b(*/)722 3235 y($auth)p 947 3235 V 30 w(is)p 1065 3235 -V 30 w(ok=)o(;)722 -3334 y(if)43 b(\()g(!)g($auth)p 1252 3334 V 30 w(is)p -1370 3334 V 30 w(ok)g(\))722 3434 y Fa(f)g Fb(//)g(On)g(ex\023)-44 -b(ecute)41 b(la)h(ligne)g(ci-dessous)d(que)k(si)f(l'authentificaito)o -(n)c(\022)-44 b(a)43 b(\023)-44 b(echou\023)g(ee)722 -3533 y($errmsg=;)722 3633 -y Fa(g)722 3733 y Fb(break;)515 3875 y Ff(Il)27 b(v)n(ous)f(su\016t)i -(de)f(remplacer)f(les)f(\023)-39 b(el)n(\023)g(emen)n(ts)25 -b(en)n(tre)i(c)n(hevrons)e(dans)i(le)g(co)r(de)h(ci-dessus)e(et)515 -3975 y(de)k(le)g(coller)e(dans)i Fd(\()-17 b(\()p Ff(auth)p -1348 3975 25 4 v 29 w(dialog.inc.php)p Fd(\))g(\))29 -b Ff(p)r(our)h(p)r(ouv)n(oir)e(utiliser)i(un)g(nouv)n(eau)f(mo)r(de)515 -4074 y(d'authen)n(ti\014cation.)i(Reste)h(\022)-42 b(a)31 -b(donner)g(\022)-42 b(a)31 b(l'utilisateur)h(la)f(capacit)n(\023)-39 -b(e)30 b(de)i(l'utiliser.)f(V)-7 b(ous)515 4174 y(devrez)32 -b(encore,)h(d'une)g(part,)g(a)5 b(jouter)33 b(dans)g(la)g(base)f(de)i -(donn)n(\023)-39 b(ees)32 b(le)h Fe(<)p Ff(nom)p 3049 -4174 V 29 w(auth)p Fe(>)g Ff(\022)-42 b(a)515 4274 y(l')n(\023)j(en)n -(um)n(\023)g(eration)20 b(du)j(c)n(hamp)f Fd(\()-17 b(\()p -Ff(metho)r(deAuth)p Fd(\))g(\))23 b Ff(de)g(la)f(table)h -Fd(\()-17 b(\()p Ff(P)n(ersonne)p Fd(\))g(\))n Ff(,)22 -b(et)h(d'autre)g(part)515 4373 y(prop)r(oser)c(\022)-42 -b(a)20 b(l'utilisateur)h(d'utiliser)f(ce)h(mo)r(de)g(d'authen)n -(ti\014cation)f(en)h(mo)r(di\014an)n(t)g(la)f(page)515 -4473 y Fd(\()-17 b(\()o Ff(pro\014l.php)p Fd(\))g(\))p -Ff(.)1926 5255 y(5)p eop end -%%Trailer - -userdict /end-hook known{end-hook}if -%%EOF diff --git a/final/doc/READ_ME.txt b/final/doc/READ_ME.txt deleted file mode 100644 index ce42282..0000000 --- a/final/doc/READ_ME.txt +++ /dev/null @@ -1,277 +0,0 @@ - - -AWOR - Fichier Lisez-moi de l'administrateur - -Table des Matières - - 1 Compatibilité - 2 Sécurité - 3 Installation - 3.1 Dépaquetage des pages PHP - 3.2 Paramètres de configuration - 3.3 Initialisation de la base - 3.4 Configuration par défaut des comptes - 4 Maintenance - 4.1 Visualisation des objets et des fichiers - 4.2 Nettoyage de la base - 5 Authentification dédiée - Personnalisation - - - - - - -1 Compatibilité - -Cette application peut-être utilisée sur un serveur -fonctionnant avec Apache, MySQL(>=4) et PHP (>=4). - - PHP - -L'application ne nécessite pas de configuration de PHP -particulière. Elle fonctionne quelque soit la valeur du -paramètre de configuration register_globals, utilise -les sessions via les fonctions introduites en PHP4. -L'application fonctionne quelque soit la verbosité des -affichages d'erreur et de warning PHP, car nous avons -travaillé à éliminer tous les messages "E_NOTICE" PHP qui -surviennent par exemple lors d'une comparaison avec une -variable non-initialisée. - -Les scripts PHP n'accèdent pas en écriture au système -de fichier, sauf pour l'upload de fichiers. Le dossier "fichiers" - doit être accessible en écriture par les scripts PHP -sans quoi la fonctionnalité d'échange de fichier serait -inutilisable. - - MySQL - -Les scripts PHP ne modifient pas structurellement la -base de donnée MySQL, il suffit donc d'un compte -permettant les instructions SELECT, INSERT, UPDATE, -DELETE sur les tables de l'application. Pour indiquer à -l'application quel compte MySQL utiliser, veuillez vous -reporter à la section [sub:Initialisation-de-la-bd]. - -2 Sécurité - -Cette application a été développée en gardant toujours -à l'esprit les problèmes de sécurités. Nous ne pouvons -évidemment pas la garantir failles ni bugs, mais nous -sommes fixé des règles de programmation pour éviter les -failles les plus courantes. Toutes les données issue de -l'utilisateur lors des traitements des pages web sont -traitées pour éviter des problèmes d'insertion de code -dans les requetes SQL. L'authentification des -utilisateurs est systématique, vérifiée à chaque page -et repose sur le système des sessions PHP. En revanche, -il faut noter que le formulaire d'authentification -n'est pas protégé contre l'usurpation de mots de passe -car les contraintes données dans le cahier des charges -ne le permettent pas, dû moins, il n'est pas possible -d'utiliser un cryptage efficace (assymétrique) sans -modifier le système d'authentification déléguée et sans -utiliser une configuration de serveur Web spécifique. -Considérez, pour résoudre ce problème, l'emploi sur -serveur web sécurisé (HTTPS) et l'utilisation d'une -liaison entre le serveur web et le serveur -d'authentification au travers d'un réseau de confiance. - -3 Installation - -3.1 Dépaquetage des pages PHP - -L'application est livrée dans une archive de type -tarball compressée qui contient toute l'arborescence et -les fichiers PHP nécessaires. Il suffit de décompresser -cette archive en conservant l'arborescence dans un -dossier publié par votre serveur Web. Les fichiers de -configurations sont présent et contiennent des valeurs -d'exemple que vous pourrez adapter à votre situation. - - - -3.2 Paramètres de configuration - -Cette application comporte deux fichiers de -configuration qui sont dans le dossier "include". Les -fichiers existent dans la version distribuée et ont -pour but de servir de modèle. - - connect.inc.php : ce fichier contient les coordonnées - du serveur MySQL, de l'utilisateur SQL et de la base - que l'application utilisera. - - config.inc.php : ce fichier contient tout le reste de - la configuration de l'application. Le fichier est un - script PHP qui initialise un tableau - multi-dimentionnel. Ce choix à été fait par - commodité, et pour permette de bien hiérarchiser les - information, en revanche, la syntaxe est fourbe... - N'oubliez pas de virgule ! Toutes les constantes sont - décrites ci-dessous. - - $adminMail : adresse e-mail de l'administrateur. - Affichée à l'utilisateur lorsque qu'une erreur - interne à l'application s'est produite. - - $automatedMail : adresse e-mail de réponse des - courriels envoyés automatiquement par l'application. - - AUTH : Paramètres d'authentification - - POP : Paramètres pour les serveurs mail POP - - SERVERS : Chaque élément de ce tableau à pour clef - le nom de domaine du fournisseur de service de - courriel ( partie suivant le @ dans une adresse - e-mail) à pour valeur un tableau associatif de - la forme suivante - - subdomain : adresse complete du serveur offrant - le service POP - - port : numéro de port TCP utilisé pour se - connecter au service POP - - username_is_full_mail : Booléen (true ou false) - indicant si le nom d'utilisateur à utiliser - pour l'authentification est l'adresse e-mail - complète. C'est utile pour les serveurs POP - gérant des adresses email sur plusieurs - domaines (comme wanadoo / orange au moment où - j'écris ce document) - - bypass_if_local : Booléen indiquant si - l'authentification doit être outrepassée si la - connexion s'effectue depuis le serveur lui-même. - - CSS : Paramètres des styles de pages - - CHOOSER_LIST : Ce tableau associatif contient la - liste des styles CSS à utiliser. Les clefs sont - les libellés des thèmes à afficher et les valeurs - sont les noms des fichiers CSS correspondants, - sans chemin, ni extension. - - MAIL : - - TEMPLATES : Ce tableau contient des tableaux - associatifs dont les clefs seront utilisées dans - les passages de paramètres HTML, et contiennent - des sous-tableaux de la forme suivante : - - caption : Intitulé qui sera affiché à l'utilisateur - - tpl_file : Nom du fichier (avec l'extension PHP) - contenant le modèle. - - SUPERUSERS : Ce tableau contient la liste des login - des super-utilisateurs (ceux qui ont le droit de - supprimer des réunions) - - UPLOAD : Paramètres concernant l'attachement de - fichiers aux réunions - - accepted_files : Tableau des extensions qui sont autorisées. - -3.3 Initialisation de la base - -Tout les fichiers nécessaires sont rangés dans le -dossier "install". Vous utiliserez principalement le -fichier "RAZBase.php". Appelé au travers du serveur web, -il vous permettra automatiquement de mettre en place la -structure de la base de données, et optionnellement, -d'insérer un jeu d'essai pour tester l'application sur -votre serveur. Si vous ne souhaitez pas utiliser de -compte SQL ayant le droit d'altérer la structure des -tables de votre base avec ce script php, vous pouvez -exécuter le script "base.sql" avec votre client SQL -favori. Le jeu d'essai se trouve dans le fichier "jeu_essai.sql". - -3.4 Configuration par défaut des comptes - -Dans le fichier de configuration modèle, un -super-utilisateur est configuré : -inglebert@iut-blagnac.fr et le jeu d'essai proposé au -paragraphe précédent permet de créer des utilisateurs, -et en particulier inglebert@iut-blagnac.fr. - -Par défaut, vous pourrez donc vous connecter en tant -qu'administrateur avec ce compte. Le jeu d'essai met ce -compte avec comme mode d'authentification "bypass", ce -qui signifie qu'aucun mot de passe est nécessaire. Pour -utiliser un vrai système d'authentification, -connectez-vous avec ce compte et allez dans la page "Mon Profil" - pour choisir une autre mode d'authentification. - -4 Maintenance - -4.1 Visualisation des objets et des fichiers - -Une page d'administration est prévue à cet effet, et -elle n'est accessible que par un "super-utilisateur", -c'est à dire un utilisateur consigné dans le fichier de -configuration principal en tant que tel, confère [sub:Configuration]. - -4.2 Nettoyage de la base - -À partir de la page d'administration décrite dans le -paragraphe précédent, vous pouvez aussi purger les -fichiers attachés et les objets de la base de données -devenus obsolètes. L'aide contextuelle de cette page -vous expliquera comment faire. Il est vivement -conseillé de faire une sauvegarde de la base de données -et des fichiers joints aux réunions avant d'utiliser -cet outil car l'erreur de manipulation ou de -programmation est toujours possible... - -5 Authentification dédiée - Personnalisation - -AWOR utilise un système d'authentification dédiée de -sorte qu'aucun mot de passe ne soit stocké, et que -l'utilisateur n'ait pas besoin d'en retenir un nouveau. -Le code d'authentification à été écrit de manière à -être maléable et est extensible. Le coeur du système -d'authentification se trouve dans le fichier "auth_dialog.php" -. Vous y trouverez une section commençant par le -commentaire ci-dessous. - -/*************************************************** - -** Ajouter d'autres mode d'authentification ici ! ** - -***************************************************/ - -Comme l'indique ce commentaire, vous pourrez ajouter à -cet endroit une portion de code pour utiliser un autre -service d'authentification. La syntaxe est la suivante : - -case '': - -/* Eventuellement du code préléminaire */ - -$auth_is_ok=; - -if ( ! $auth_is_ok ) - -{ // On exécute la ligne ci-dessous que si -l'authentificaiton à échouée - - - -$errmsg=; - -} - -break; - -Il vous suffit de remplacer les éléments entre chevrons -dans le code ci-dessus et de le coller dans "auth_dialog.inc.php" - pour pouvoir utiliser un nouveau mode -d'authentification. Reste à donner à l'utilisateur la -capacité de l'utiliser. Vous devrez encore, d'une part, -ajouter dans la base de données le à -l'énumération du champ "methodeAuth" de la table "Personne" -, et d'autre part proposer à l'utilisateur d'utiliser -ce mode d'authentification en modifiant la page "profil.php". diff --git a/final/install/RAZbase.php b/final/install/RAZbase.php index 9b9fa25..82bdba1 100644 --- a/final/install/RAZbase.php +++ b/final/install/RAZbase.php @@ -125,6 +125,6 @@ if (isset($_POST['confirm']) ) } } ?> -

    Retour à l'index

    +

    Retour à l'index

    diff --git a/final/install/READ_ME.css b/final/install/READ_ME.css new file mode 100644 index 0000000..2cfcdd1 --- /dev/null +++ b/final/install/READ_ME.css @@ -0,0 +1,116 @@ + +/* start css.sty */ +.cmmi-10{font-style: italic;} +.ptmr7t-{font-family: monospace;} +.ptmr7t-{font-family: monospace;} +.ptmr7t-{font-family: monospace;} +.ptmr7t-x-x-172{font-size:172%;font-family: monospace;} +.ptmr7t-x-x-172{font-family: monospace;} +.ptmr7t-x-x-172{font-family: monospace;} +.ptmr7t-x-x-120{font-size:120%;font-family: monospace;} +.ptmr7t-x-x-120{font-family: monospace;} +.ptmr7t-x-x-120{font-family: monospace;} +.pcrr7t-{font-family: monospace;} +.ptmb7t-{ font-weight: bold; font-family: monospace;} +p.noindent { text-indent: 0em } +p.nopar { text-indent: 0em; } +p.indent{ text-indent: 1.5em } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +li p.indent { text-indent: 0em } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +div.verbatim {font-family: monospace; white-space: nowrap; } +table.verbatim {width:100%;} +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +table.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 1px; margin:0px; } +.tabbing-right {text-align:right;} +span.TEX {letter-spacing: -0.125em; } +span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} +a span.TEX span.E {text-decoration: none; } +span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} +span.LATEX span.TEX{ position:relative; left: -0.4em; } +div.float img, div.float .caption {text-align:center;} +div.figure img, div.figure .caption {text-align:center;} +.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} +table.equation {width:100%;} +.equation td{text-align:center; } +td.equation { margin-top:1em; margin-bottom:1em; } +td.equation-label { width:5%; text-align:center; } +td.eqnarray4 { width:5%; white-space: normal; } +td.eqnarray2 { width:5%; } +table.eqnarray-star, table.eqnarray {width:100%;} +div.eqnarray{text-align:center;} +div.array {text-align:center;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.pmatrix img{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +img.cdots{vertical-align:middle;} +.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} +.caption td.id{font-weight: bold; white-space: nowrap; } +table.caption {text-align:center;} +h1.partHead{text-align: center} +p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} +.subparagraphHead, .likesubparagraphHead { font-weight: bold;} +.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} +.verse{white-space:nowrap; margin-left:2em} +div.maketitle {text-align:center;} +h2.titleHead{text-align:center;} +div.maketitle{ margin-bottom: 2em; } +div.author, div.date {text-align:center;} +div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } +div.author{white-space: nowrap;} +.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } +.abstract p {margin-left:5%; margin-right:5%;} +table.abstract {width:100%;} +.frenchb-nbsp{font-size:75%;} +.frenchb-thinspace{font-size:75%;} +/* end css.sty */ + diff --git a/final/install/READ_ME.dvi b/final/install/READ_ME.dvi new file mode 100644 index 0000000..6563125 Binary files /dev/null and b/final/install/READ_ME.dvi differ diff --git a/final/install/READ_ME.html b/final/install/READ_ME.html new file mode 100644 index 0000000..8a5b4f3 --- /dev/null +++ b/final/install/READ_ME.html @@ -0,0 +1,447 @@ + + +AWOR - Fichier Lisez-moi de l’administrateur + + + + + + + + +
    + + + +

    AWOR - Fichier Lisez-moi de l’administrateur

    +

    +
    17 mars 2007
    +
    +

    Table des matières

    + +

    + +

    1 Compatibilité

    +

    Cette application peut-être utilisée sur un serveur fonctionnant avec Apache, MySQL(>=4) +et PHP (>=4). +

    PHP + L’application ne nécessite pas de configuration de PHP particulière. Elle fonctionne +quelle que soit la valeur du paramètre de configuration register_globals, utilise les sessions +via les fonctions introduites en PHP4. L’application fonctionne quelque soit la verbosité des +affichages d’erreur et de warning PHP, car nous avons travaillé à éliminer tous les messages +﹤﹤E_NOTICE ﹥﹥ PHP qui surviennent par exemple lors d’une comparaison avec une variable +non-initialisée. +

    Les scripts PHP n’accèdent pas en écriture au système de fichier, sauf pour l’upload de +fichiers. Le dossier ﹤﹤ fichiers ﹥﹥ doit être accessible en écriture par les scripts PHP sans quoi la +fonctionnalité d’échange de fichier serait inutilisable. +

    MySQL + Les scripts PHP ne modifient pas structurellement la base de donnée MySQL, il suffit +donc d’un compte permettant les instructions SELECT, INSERT, UPDATE, DELETE sur les +tables de l’application. Pour indiquer à l’application quel compte MySQL utiliser, veuillez +vous reporter à la section 3.3. +

    +

    2 Sécurité

    +

    Cette application a été développée en gardant toujours à l’esprit les problèmes de sécurités. +Nous ne pouvons évidemment pas la garantir failles ni bugs, mais nous sommes fixé des +règles de programmation pour éviter les failles les plus courantes. Toutes les données issues +de l’utilisateur lors des traitements des pages web sont traitées pour éviter des problèmes +d’insertion de code dans les requetes SQL. L’authentification des utilisateurs est +systématique, vérifiée à chaque page et repose sur le système des sessions PHP. +En revanche, il faut noter que le formulaire d’authentification n’est pas protégé +contre l’usurpation de mots de passe car les contraintes données dans le cahier des +charges ne le permettent pas, dû moins, il n’est pas possible d’utiliser un cryptage +efficace (assymétrique) sans modifier le système d’authentification déléguée et sans +utiliser une configuration de serveur Web spécifique. Considérez, pour résoudre +ce problème, l’emploi sur serveur web sécurisé (HTTPS) et l’utilisation d’une +liaison entre le serveur web et le serveur d’authentification au travers d’un réseau de +confiance. +

    +

    3 Installation

    + +

    +

    3.1 Dépaquetage des pages PHP

    +

    L’application est livrée dans une archive de type tarball compressée qui contient toute +l’arborescence et les fichiers PHP nécessaires. Il suffit de décompresser cette archive en +conservant l’arborescence dans un dossier publié par votre serveur Web. Les fichiers de +configurations sont présent et contiennent des valeurs d’exemple que vous pourrez adapter à +votre situation. +

    +

    3.2 Paramètres de configuration

    +

    Cette application comporte deux fichiers de configuration qui sont dans le dossier +﹤﹤include ﹥﹥. Les fichiers existent dans la version distribuée et ont pour but de servir de +modèle. +

    +

    +connect.inc.php :
    ce fichier contient les coordonnées du serveur MySQL, de + l’utilisateur SQL et de la base que l’application utilisera. +
    +config.inc.php :
    ce fichier contient tout le reste de la configuration de l’application. + Le fichier est un script PHP qui initialise un tableau multi-dimentionnel. Ce choix + à été fait par commodité, et pour permette de bien hiérarchiser les information, + en revanche, la syntaxe est fourbe. . . N’oubliez pas de virgule ! Toutes les + constantes sont décrites ci-dessous. +

    +

    + $adminMail :
    adresse e-mail de l’administrateur. Affichée à l’utilisateur + lorsque qu’une erreur interne à l’application s’est produite. +
    + $automatedMail :
    adresse e-mail de réponse des courriels envoyés + automatiquement par l’application. +
    + AUTH :
    Paramètres d’authentification +

    +

    + POP :
    Paramètres pour les serveurs mail POP +

    +

    + SERVERS :
    Chaque élément de ce tableau à pour clef le nom de + domaine du fournisseur de service de courriel ( partie suivant le + @ dans une adresse e-mail) à pour valeur un tableau associatif de + la forme suivante +

    +

    + subdomain :
    adresse complete du serveur offrant le service POP + +
    + port :
    numéro de port TCP utilisé pour se connecter au service + POP +
    + username_is_full_mail :
    Booléen (true ou false) indicant si le + nom d’utilisateur à utiliser pour l’authentification est l’adresse + e-mail complète. C’est utile pour les serveurs POP gérant + des adresses email sur plusieurs domaines (comme wanadoo / + orange au moment où j’écris ce document)
    +
    +
    + bypass_if_local :
    Booléen indiquant si l’authentification doit être outrepassée si + la connexion s’effectue depuis le serveur lui-même.
    +
    + CSS :
    Paramètres des styles de pages +

    +

    + CHOOSER_LIST :
    Ce tableau associatif contient la liste des styles CSS + à utiliser. Les clefs sont les libellés des thèmes à afficher et les + valeurs sont les noms des fichiers CSS correspondants, sans chemin, + ni extension.
    +
    + MAIL :
      +

    +

    + TEMPLATES :
    Ce tableau contient des tableaux associatifs dont les + clefs seront utilisées dans les passages de paramètres HTML, et + contiennent des sous-tableaux de la forme suivante : +

    +

    + caption :
    Intitulé qui sera affiché à l’utilisateur +
    + tpl_file :
    Nom du fichier (avec l’extension PHP) contenant le + modèle.
    +
    +
    + SUPERUSERS :
    Ce tableau contient la liste des login des super-utilisateurs (ceux qui + ont le droit de supprimer des réunions) +
    + UPLOAD :
    Paramètres concernant l’attachement de fichiers aux réunions +

    +

    + accepted_files :
    Tableau des extensions qui sont autorisées.
    +
    +
    + +

    +

    3.3 Initialisation de la base

    +

    Tous les fichiers nécessaires sont rangés dans le dossier ﹤﹤ install ﹥﹥. Vous utiliserez +principalement le fichier ﹤﹤ RAZBase.php ﹥﹥. Appelé au travers du serveur web, il vous +permettra automatiquement de mettre en place la structure de la base de données, et +optionnellement, d’insérer un jeu d’essai pour tester l’application sur votre serveur. Si vous +ne souhaitez pas utiliser de compte SQL ayant le droit d’altérer la structure des tables de +votre base avec ce script php, vous pouvez exécuter le script ﹤﹤ base.sql ﹥﹥ avec votre client +SQL favori. Le jeu d’essai se trouve dans le fichier ﹤﹤ jeu_essai.sql ﹥﹥. +

    Vous devriez supprimer ce répertoire dès que l’installation sera terminée car il peut poser +des problèmes de sécurité car le fichier ﹤﹤ RAZBase.php ﹥﹥ pourrait être lancé par n’importe +qui, et les fichiers SQL contienent des informations sensibles. +

    +

    3.4 Configuration par défaut des comptes

    +

    Dans le fichier de configuration modèle, un super-utilisateur est configuré : +inglebert@iut-blagnac.fr et le jeu d’essai proposé au paragraphe précédent permet de créer +des utilisateurs, et en particulier inglebert@iut-blagnac.fr. +

    Par défaut, vous pourrez donc vous connecter en tant qu’administrateur avec ce compte. +Le jeu d’essai met ce compte avec comme mode d’authentification ﹤﹤ bypass ﹥﹥, ce qui signifie +qu’aucun mot de passe n’est nécessaire. Pour utiliser un vrai système d’authentification, +connectez-vous avec ce compte et allez dans la page ﹤﹤ Mon Profil ﹥﹥ pour choisir une autre +mode d’authentification. +

    +

    4 Maintenance

    +

    +

    4.1 Visualisation des objets et des fichiers

    +

    Une page d’administration est prévue à cet effet, et elle n’est accessible que par un +﹤﹤super-utilisateur ﹥﹥, c’est à dire un utilisateur consigné dans le fichier de configuration +principal en tant que tel, confère 3.2. +

    +

    4.2 Nettoyage de la base

    +

    À partir de la page d’administration décrite dans le paragraphe précédent, vous pouvez aussi +purger les fichiers attachés et les objets de la base de données devenus obsolètes. L’aide +contextuelle de cette page vous expliquera comment faire. Il est vivement conseillé de +faire une sauvegarde de la base de données et des fichiers joints aux réunions avant +d’utiliser cet outil car l’erreur de manipulation ou de programmation est toujours +possible. . . + +

    +

    5 Authentification dédiée - Personnalisation

    +

    AWOR utilise un système d’authentification dédiée de sorte qu’aucun mot de passe ne +soit stocké, et que l’utilisateur n’ait pas besoin d’en retenir un nouveau. Le code +d’authentification à été écrit de manière à être maléable et est extensible. Le coeur du +système d’authentification se trouve dans le fichier ﹤﹤ auth_dialog.php ﹥﹥. Vous y trouverez une +section commençant par le commentaire ci-dessous. +

    +

    +
    + /⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆ +

    ⋆⋆ Ajouter d'autres mode d'authentification ici ! ⋆⋆ +

    ⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆⋆/

    +

    Comme l’indique ce commentaire, vous pourrez ajouter à cet endroit une portion de code pour +utiliser un autre service d’authentification. La syntaxe est la suivante : +

    +

    +
    + case '<nom_auth>' : +

    /⋆ Eventuellement du code préléminaire ⋆/ +

    $auth_is_ok=<fonction_ou_variable_authentification>; +

    if ( ! $auth_is_ok ) +

    { // Si l'authentificaiton à échouée +

    $errmsg=<fonction_ou_chaine_explicant_l_erreur>; +

    } +

    break;

    +

    Il vous suffit de remplacer les éléments entre chevrons dans le code ci-dessus et de le coller dans +﹤﹤auth_dialog.inc.php﹥﹥ pour pouvoir utiliser un nouveau mode d’authentification. Reste à +donner à l’utilisateur la capacité de l’utiliser. Vous devrez encore, d’une part, ajouter dans la +base de données le <nom_auth> à l’énumération du champ ﹤﹤methodeAuth﹥﹥ de la table +﹤﹤Personne﹥﹥, et d’autre part proposer à l’utilisateur d’utiliser ce mode d’authentification en +modifiant la page ﹤﹤profil.php﹥﹥. + + + + + diff --git a/final/install/READ_ME.lyx b/final/install/READ_ME.lyx new file mode 100644 index 0000000..d9e336e --- /dev/null +++ b/final/install/READ_ME.lyx @@ -0,0 +1,600 @@ +#LyX 1.4.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 245 +\begin_document +\begin_header +\textclass article +\language french +\inputencoding auto +\fontscheme times +\graphics default +\paperfontsize default +\spacing single +\papersize a4paper +\use_geometry false +\use_amsmath 1 +\cite_engine basic +\use_bibtopic false +\paperorientation portrait +\leftmargin 1cm +\topmargin 1cm +\rightmargin 1cm +\bottommargin 1cm +\headheight 1cm +\headsep 0cm +\footskip 1cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language french +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\end_header + +\begin_body + +\begin_layout Title +AWOR - Fichier Lisez-moi de l'administrateur +\end_layout + +\begin_layout Standard +\begin_inset LatexCommand \tableofcontents{} + +\end_inset + + +\end_layout + +\begin_layout Standard + +\newpage + +\end_layout + +\begin_layout Section +Compatibilité +\end_layout + +\begin_layout Standard +Cette application peut-être utilisée sur un serveur fonctionnant avec Apache, + MySQL(>=4) et PHP (>=4). + +\end_layout + +\begin_layout Paragraph +PHP +\end_layout + +\begin_layout Standard +L'application ne nécessite pas de configuration de PHP particulière. + Elle fonctionne quelle que soit la valeur du paramètre de configuration + register_globals, utilise les sessions via les fonctions introduites en + PHP4. + L'application fonctionne quelque soit la verbosité des affichages d'erreur + et de warning PHP, car nous avons travaillé à éliminer tous les messages + +\begin_inset Quotes fld +\end_inset + +E_NOTICE +\begin_inset Quotes frd +\end_inset + + PHP qui surviennent par exemple lors d'une comparaison avec une variable + non-initialisée. +\end_layout + +\begin_layout Standard +Les scripts PHP n'accèdent pas en écriture au système de fichier, sauf pour + l'upload de fichiers. + Le dossier +\begin_inset Quotes fld +\end_inset + +fichiers +\begin_inset Quotes frd +\end_inset + + doit être accessible en écriture par les scripts PHP sans quoi la fonctionnalit +é d'échange de fichier serait inutilisable. +\end_layout + +\begin_layout Paragraph +MySQL +\end_layout + +\begin_layout Standard +Les scripts PHP ne modifient pas structurellement la base de donnée MySQL, + il suffit donc d'un compte permettant les instructions SELECT, INSERT, + UPDATE, DELETE sur les tables de l'application. + Pour indiquer à l'application quel compte MySQL utiliser, veuillez vous + reporter à la section +\begin_inset LatexCommand \ref{sub:Initialisation-de-la-bd} + +\end_inset + +. +\end_layout + +\begin_layout Section +Sécurité +\end_layout + +\begin_layout Standard +Cette application a été développée en gardant toujours à l'esprit les problèmes + de sécurités. + Nous ne pouvons évidemment pas la garantir failles ni bugs, mais nous sommes + fixé des règles de programmation pour éviter les failles les plus courantes. + Toutes les données issues de l'utilisateur lors des traitements des pages + web sont traitées pour éviter des problèmes d'insertion de code dans les + requetes SQL. + L'authentification des utilisateurs est systématique, vérifiée à chaque + page et repose sur le système des sessions PHP. + En revanche, il faut noter que le formulaire d'authentification n'est pas + protégé contre l'usurpation de mots de passe car les contraintes données + dans le cahier des charges ne le permettent pas, dû moins, il n'est pas + possible d'utiliser un cryptage efficace (assymétrique) sans modifier le + système d'authentification déléguée et sans utiliser une configuration + de serveur Web spécifique. + Considérez, pour résoudre ce problème, l'emploi sur serveur web sécurisé + (HTTPS) et l'utilisation d'une liaison entre le serveur web et le serveur + d'authentification au travers d'un réseau de confiance. +\end_layout + +\begin_layout Section +Installation +\end_layout + +\begin_layout Subsection +Dépaquetage des pages PHP +\end_layout + +\begin_layout Standard +L'application est livrée dans une archive de type tarball compressée qui + contient toute l'arborescence et les fichiers PHP nécessaires. + Il suffit de décompresser cette archive en conservant l'arborescence dans + un dossier publié par votre serveur Web. + Les fichiers de configurations sont présent et contiennent des valeurs + d'exemple que vous pourrez adapter à votre situation. +\end_layout + +\begin_layout Subsection +\begin_inset LatexCommand \label{sub:Configuration} + +\end_inset + +Paramètres de configuration +\end_layout + +\begin_layout Standard +Cette application comporte deux fichiers de configuration qui sont dans + le dossier +\begin_inset Quotes fld +\end_inset + +include +\begin_inset Quotes frd +\end_inset + +. + Les fichiers existent dans la version distribuée et ont pour but de servir + de modèle. +\end_layout + +\begin_layout Description +connect.inc.php\InsetSpace ~ +: ce fichier contient les coordonnées du serveur MySQL, de + l'utilisateur SQL et de la base que l'application utilisera. +\end_layout + +\begin_layout Description +config.inc.php\InsetSpace ~ +: ce fichier contient tout le reste de la configuration de l'applica +tion. + Le fichier est un script PHP qui initialise un tableau multi-dimentionnel. + Ce choix à été fait par commodité, et pour permette de bien hiérarchiser + les information, en revanche, la syntaxe est fourbe\SpecialChar \ldots{} + N'oubliez pas de virgule + ! Toutes les constantes sont décrites ci-dessous. +\end_layout + +\begin_deeper +\begin_layout Description +$adminMail\InsetSpace ~ +: adresse e-mail de l'administrateur. + Affichée à l'utilisateur lorsque qu'une erreur interne à l'application + s'est produite. +\end_layout + +\begin_layout Description +$automatedMail\InsetSpace ~ +: adresse e-mail de réponse des courriels envoyés automatiquement + par l'application. +\end_layout + +\begin_layout Description +AUTH\InsetSpace ~ +: Paramètres d'authentification +\end_layout + +\begin_deeper +\begin_layout Description +POP\InsetSpace ~ +: Paramètres pour les serveurs mail POP +\end_layout + +\begin_deeper +\begin_layout Description +SERVERS\InsetSpace ~ +: Chaque élément de ce tableau à pour clef le nom de domaine du fournisse +ur de service de courriel ( partie suivant le @ dans une adresse e-mail) + à pour valeur un tableau associatif de la forme suivante +\end_layout + +\begin_deeper +\begin_layout Description +subdomain\InsetSpace ~ +: adresse complete du serveur offrant le service POP +\end_layout + +\begin_layout Description +port\InsetSpace ~ +: numéro de port TCP utilisé pour se connecter au service POP +\end_layout + +\begin_layout Description +username_is_full_mail\InsetSpace ~ +: Booléen (true ou false) indicant si le nom d'utilisateur + à utiliser pour l'authentification est l'adresse e-mail complète. + C'est utile pour les serveurs POP gérant des adresses email sur plusieurs + domaines (comme wanadoo / orange au moment où j'écris ce document) +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description +bypass_if_local\InsetSpace ~ +: Booléen indiquant si l'authentification doit être outrepassée + si la connexion s'effectue depuis le serveur lui-même. +\end_layout + +\end_deeper +\begin_layout Description +CSS\InsetSpace ~ +: Paramètres des styles de pages +\end_layout + +\begin_deeper +\begin_layout Description +CHOOSER_LIST\InsetSpace ~ +: Ce tableau associatif contient la liste des styles CSS à utiliser. + Les clefs sont les libellés des thèmes à afficher et les valeurs sont les + noms des fichiers CSS correspondants, sans chemin, ni extension. +\end_layout + +\end_deeper +\begin_layout Description +MAIL\InsetSpace ~ +: +\end_layout + +\begin_deeper +\begin_layout Description +TEMPLATES\InsetSpace ~ +: Ce tableau contient des tableaux associatifs dont les clefs seront + utilisées dans les passages de paramètres HTML, et contiennent des sous-tableau +x de la forme suivante : +\end_layout + +\begin_deeper +\begin_layout Description +caption\InsetSpace ~ +: Intitulé qui sera affiché à l'utilisateur +\end_layout + +\begin_layout Description +tpl_file\InsetSpace ~ +: Nom du fichier (avec l'extension PHP) contenant le modèle. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description +SUPERUSERS\InsetSpace ~ +: Ce tableau contient la liste des login des super-utilisateurs + (ceux qui ont le droit de supprimer des réunions) +\end_layout + +\begin_layout Description +UPLOAD\InsetSpace ~ +: Paramètres concernant l'attachement de fichiers aux réunions +\end_layout + +\begin_deeper +\begin_layout Description +accepted_files\InsetSpace ~ +: Tableau des extensions qui sont autorisées. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Subsection +\begin_inset LatexCommand \label{sub:Initialisation-de-la-bd} + +\end_inset + +Initialisation de la base +\end_layout + +\begin_layout Standard +Tous les fichiers nécessaires sont rangés dans le dossier +\begin_inset Quotes fld +\end_inset + +install +\begin_inset Quotes frd +\end_inset + +. + Vous utiliserez principalement le fichier +\begin_inset Quotes fld +\end_inset + +RAZBase.php +\begin_inset Quotes frd +\end_inset + +. + Appelé au travers du serveur web, il vous permettra automatiquement de + mettre en place la structure de la base de données, et optionnellement, + d'insérer un jeu d'essai pour tester l'application sur votre serveur. + Si vous ne souhaitez pas utiliser de compte SQL ayant le droit d'altérer + la structure des tables de votre base avec ce script php, vous pouvez exécuter + le script +\begin_inset Quotes fld +\end_inset + +base.sql +\begin_inset Quotes frd +\end_inset + + avec votre client SQL favori. + Le jeu d'essai se trouve dans le fichier +\begin_inset Quotes fld +\end_inset + +jeu_essai.sql +\begin_inset Quotes frd +\end_inset + +. +\end_layout + +\begin_layout Standard +Vous devriez supprimer ce répertoire dès que l'installation sera terminée + car il peut poser des problèmes de sécurité car le fichier +\begin_inset Quotes fld +\end_inset + +RAZBase.php +\begin_inset Quotes frd +\end_inset + + pourrait être lancé par n'importe qui, et les fichiers SQL contienent des + informations sensibles. +\end_layout + +\begin_layout Subsection +Configuration par défaut des comptes +\end_layout + +\begin_layout Standard +Dans le fichier de configuration modèle, un super-utilisateur est configuré + : inglebert@iut-blagnac.fr et le jeu d'essai proposé au paragraphe précédent + permet de créer des utilisateurs, et en particulier inglebert@iut-blagnac.fr. +\end_layout + +\begin_layout Standard +Par défaut, vous pourrez donc vous connecter en tant qu'administrateur avec + ce compte. + Le jeu d'essai met ce compte avec comme mode d'authentification +\begin_inset Quotes fld +\end_inset + +bypass +\begin_inset Quotes frd +\end_inset + +, ce qui signifie qu'aucun mot de passe n'est nécessaire. + Pour utiliser un vrai système d'authentification, connectez-vous avec ce + compte et allez dans la page +\begin_inset Quotes fld +\end_inset + +Mon Profil +\begin_inset Quotes frd +\end_inset + + pour choisir une autre mode d'authentification. +\end_layout + +\begin_layout Section +Maintenance +\end_layout + +\begin_layout Subsection +Visualisation des objets et des fichiers +\end_layout + +\begin_layout Standard +Une page d'administration est prévue à cet effet, et elle n'est accessible + que par un +\begin_inset Quotes fld +\end_inset + +super-utilisateur +\begin_inset Quotes frd +\end_inset + +, c'est à dire un utilisateur consigné dans le fichier de configuration + principal en tant que tel, confère +\begin_inset LatexCommand \ref{sub:Configuration} + +\end_inset + +. +\end_layout + +\begin_layout Subsection +Nettoyage de la base +\end_layout + +\begin_layout Standard +À partir de la page d'administration décrite dans le paragraphe précédent, + vous pouvez aussi purger les fichiers attachés et les objets de la base + de données devenus obsolètes. + L'aide contextuelle de cette page vous expliquera comment faire. + Il est vivement conseillé de faire une sauvegarde de la base de données + et des fichiers joints aux réunions avant d'utiliser cet outil car l'erreur + de manipulation ou de programmation est toujours possible\SpecialChar \ldots{} + +\end_layout + +\begin_layout Section +Authentification dédiée - Personnalisation +\end_layout + +\begin_layout Standard +AWOR utilise un système d'authentification dédiée de sorte qu'aucun mot + de passe ne soit stocké, et que l'utilisateur n'ait pas besoin d'en retenir + un nouveau. + Le code d'authentification à été écrit de manière à être maléable et est + extensible. + Le coeur du système d'authentification se trouve dans le fichier +\begin_inset Quotes fld +\end_inset + +auth_dialog.php +\begin_inset Quotes frd +\end_inset + +. + Vous y trouverez une section commençant par le commentaire ci-dessous. +\end_layout + +\begin_layout LyX-Code + +\lang english +/*************************************************** +\end_layout + +\begin_layout LyX-Code + +\lang english +** Ajouter d'autres mode d'authentification ici ! ** +\end_layout + +\begin_layout LyX-Code + +\lang english +***************************************************/ +\end_layout + +\begin_layout Standard +Comme l'indique ce commentaire, vous pourrez ajouter à cet endroit une portion + de code pour utiliser un autre service d'authentification. + La syntaxe est la suivante : +\end_layout + +\begin_layout LyX-Code +case '': +\end_layout + +\begin_layout LyX-Code +/* Eventuellement du code préléminaire */ +\end_layout + +\begin_layout LyX-Code + +\lang english +$auth_is_ok=; +\end_layout + +\begin_layout LyX-Code + +\lang english +if ( ! $auth_is_ok ) +\end_layout + +\begin_layout LyX-Code + +\lang english +{ // Si l'authentificaiton à échouée +\end_layout + +\begin_layout LyX-Code + +\lang english +$errmsg=; +\end_layout + +\begin_layout LyX-Code + +\lang english +} +\end_layout + +\begin_layout LyX-Code + +\lang english +break; +\end_layout + +\begin_layout Standard + +\lang english +Il vous suffit de remplacer les éléments entre chevrons dans le code ci-dessus + et de le coller dans +\begin_inset Quotes fld +\end_inset + +auth_dialog.inc.php +\begin_inset Quotes frd +\end_inset + + pour pouvoir utiliser un nouveau mode d'authentification. + Reste à donner à l'utilisateur la capacité de l'utiliser. + Vous devrez encore, d'une part, ajouter dans la base de données le + à l'énumération du champ +\begin_inset Quotes fld +\end_inset + +methodeAuth +\begin_inset Quotes frd +\end_inset + + de la table +\begin_inset Quotes fld +\end_inset + +Personne +\begin_inset Quotes frd +\end_inset + +, et d'autre part proposer à l'utilisateur d'utiliser ce mode d'authentification + en modifiant la page +\begin_inset Quotes fld +\end_inset + +profil.php +\begin_inset Quotes frd +\end_inset + +. +\end_layout + +\end_body +\end_document diff --git a/final/install/READ_ME.pdf b/final/install/READ_ME.pdf new file mode 100644 index 0000000..5083d12 Binary files /dev/null and b/final/install/READ_ME.pdf differ diff --git a/final/install/READ_ME.ps b/final/install/READ_ME.ps new file mode 100644 index 0000000..1eb460b --- /dev/null +++ b/final/install/READ_ME.ps @@ -0,0 +1,830 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software +%%Title: READ_ME.dvi +%%Pages: 5 +%%PageOrder: Ascend +%%BoundingBox: 0 0 595 842 +%%DocumentFonts: Times-Roman Times-Bold CMMI10 LASY10 Courier CMSY10 +%%DocumentPaperSizes: a4 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -t a4 -o READ_ME.ps READ_ME.dvi +%DVIPSParameters: dpi=600 +%DVIPSSource: TeX output 2007.03.17:1703 +%%BeginProcSet: tex.pro 0 0 +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: 8r.enc 0 0 +% File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30 +% +% @@psencodingfile@{ +% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, +% W. Schmidt, P. Lehman", +% version = "2.0", +% date = "30 October 2002", +% filename = "8r.enc", +% email = "tex-fonts@@tug.org", +% docstring = "This is the encoding vector for Type1 and TrueType +% fonts to be used with TeX. This file is part of the +% PSNFSS bundle, version 9" +% @} +% +% The idea is to have all the characters normally included in Type 1 fonts +% available for typesetting. This is effectively the characters in Adobe +% Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol, +% MacRoman, and some extra characters from Lucida. +% +% Character code assignments were made as follows: +% +% (1) the Windows ANSI characters are almost all in their Windows ANSI +% positions, because some Windows users cannot easily reencode the +% fonts, and it makes no difference on other systems. The only Windows +% ANSI characters not available are those that make no sense for +% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen +% (173). quotesingle and grave are moved just because it's such an +% irritation not having them in TeX positions. +% +% (2) Remaining characters are assigned arbitrarily to the lower part +% of the range, avoiding 0, 10 and 13 in case we meet dumb software. +% +% (3) Y&Y Lucida Bright includes some extra text characters; in the +% hopes that other PostScript fonts, perhaps created for public +% consumption, will include them, they are included starting at 0x12. +% These are /dotlessj /ff /ffi /ffl. +% +% (4) hyphen appears twice for compatibility with both ASCII and Windows. +% +% (5) /Euro was assigned to 128, as in Windows ANSI +% +% (6) Missing characters from MacRoman encoding incorporated as follows: +% +% PostScript MacRoman TeXBase1 +% -------------- -------------- -------------- +% /notequal 173 0x16 +% /infinity 176 0x17 +% /lessequal 178 0x18 +% /greaterequal 179 0x19 +% /partialdiff 182 0x1A +% /summation 183 0x1B +% /product 184 0x1C +% /pi 185 0x1D +% /integral 186 0x81 +% /Omega 189 0x8D +% /radical 195 0x8E +% /approxequal 197 0x8F +% /Delta 198 0x9D +% /lozenge 215 0x9E +% +/TeXBase1Encoding [ +% 0x00 + /.notdef /dotaccent /fi /fl + /fraction /hungarumlaut /Lslash /lslash + /ogonek /ring /.notdef /breve + /minus /.notdef /Zcaron /zcaron +% 0x10 + /caron /dotlessi /dotlessj /ff + /ffi /ffl /notequal /infinity + /lessequal /greaterequal /partialdiff /summation + /product /pi /grave /quotesingle +% 0x20 + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three + /four /five /six /seven + /eight /nine /colon /semicolon + /less /equal /greater /question +% 0x40 + /at /A /B /C + /D /E /F /G + /H /I /J /K + /L /M /N /O +% 0x50 + /P /Q /R /S + /T /U /V /W + /X /Y /Z /bracketleft + /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c + /d /e /f /g + /h /i /j /k + /l /m /n /o +% 0x70 + /p /q /r /s + /t /u /v /w + /x /y /z /braceleft + /bar /braceright /asciitilde /.notdef +% 0x80 + /Euro /integral /quotesinglbase /florin + /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft + /OE /Omega /radical /approxequal +% 0x90 + /.notdef /.notdef /.notdef /quotedblleft + /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright + /oe /Delta /lozenge /Ydieresis +% 0xA0 + /.notdef /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft + /logicalnot /hyphen /registered /macron +% 0xD0 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde + /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def + + +%%EndProcSet +%%BeginProcSet: texps.pro 0 0 +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 +ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ +pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get +div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type +/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end +definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup +sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll +mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ +exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} +forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def +end + +%%EndProcSet +%%BeginFont: CMSY10 +%!PS-AdobeFont-1.1: CMSY10 1.0 +%%CreationDate: 1991 Aug 15 07:20:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /CMSY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 102 /braceleft put +dup 103 /braceright put +readonly def +/FontBBox{-29 -960 1116 775}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 +7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 +A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 +E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A +221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A +27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF +5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 +0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 +DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A +71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 +4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C +515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD +5F3D998C69E42AA96AA212AD55B676FA2B4F6B519575404233C09AF99014AB95 +767523D9E1F8806E766AC0DD6D81028C3AA9C7536D88D3C2DB6D9949F844935E +420963F40430452DEAAC1F500BFB1C2473C54B9987BE449F042633C7038D5AEB +7E1E11C50911EBCF0979F8192E056A2B2EE9785EB73B1AB874116AD5AA74F32C +BF57FC28FFED335DFD9261AC7A624EAA93BEBC2C0F8B3F898DDA1490D59C6C4B +A651746C8EAD41BDAA1AF4056AFE98D2D3AE3CCEB9C67FE3A63385470EA42968 +34268684A674675AB9EDBB5BFCA81224B22D4ECF40D1F31A39481AC68A87F252 +F4E7C1C340A26E0D514BACCAA51898758A7E7B63D2E7F34E91554151433F0FD2 +4901D3DE9A5FB9306552DC57EAB729AA07780927E1ECCB5D1F59A09A1E3FFF2D +922B6C9B58CB20D687A72B9C22D4EC926771541EDA3B75559510DB21BA4461EA +960B8E5AF4D31D08E8F235D677A9F6EFDB01926967743942C23955678E438F51 +E5E22E2FA2AA7894755053C32B39277B82C00B3D9BE9957CF3ED626852FFFC31 +6E5F0F7489198136A3284B31CC94299EED05B8FA66B8D33F7C47367790D23CD5 +303B0C8E58B0E51BEA9325282F19A3D361A3BEA6BB0CCD09BE735D810E7E0A79 +D1A9C580CFC8CF9FF685D63ECDCCC024C235448BA632F00C3C5BC0E86F44B90A +293817CC93035E5E18548A7E157C2887309BF84C167D8DBED024BB +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: LASY10 +%!PS-AdobeFont-1.1: LASY10 1.001 +%%CreationDate: 1992 Oct 23 20:19:17 +%%RevisionDate: 2001 Jun 05 20:19:17 +% Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.001) readonly def +/Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def +/FullName (LASY10) readonly def +/FamilyName (LaTeX) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /LASY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 40 /a40 put +dup 41 /a41 put +readonly def +/FontBBox{-19 -192 944 683}readonly def +currentdict end +currentfile eexec +D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E +F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9 +1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538 +4E7DF30628B47D6551F93A50553E592B5E1540B411A313F39E4149341C981D3C +705F8AD7782F59531404B3C001D8B882E0C5468D00B26040A352ED823D7C8DF4 +B632A37A034C6304A39F28739AC3D634CDC707B53474E63135975E7F0FFF2458 +99878B3A6D8D7AC6F2A2728768B8C2226075299B8CB08B76AED9A00BF448A646 +87014E8B1C1723204BCBB97BF0F735E436F1805B4026CA792A2464E1FDFC4385 +B407DAC19BC7769BBEA6BDD0EE65133044D18530C5A3915AC9272AA4A7FC35A4 +93A7A0CA8BD1CFA4382085D949EE819A51062591606ECEB5B37419223CC0400E +158F1A0849868CFAE0F71DA6B4FA47A636EDE756530425A6BFE45B8080808B59 +6B886D033437677B151285B047C84C2E2FCB71CCDF34E20E925269E5F1A210F0 +391066823D8F21E03746BF79AAC6FF91517631686722226462D6A9EC5FFCC806 +B959AED95F492481324749E00CA117821C347F9B924BEC8C64C954570252E909 +5C33AC8B1320BB1992A88C619DEA7A8FDDE42390EC82A07BD8BB7F0014A41EC8 +04225B5063D3F04723F51128DE8ADB79F62903E1955A7D49220223CA34FDC3EB +8FB71700EB9CC40DF747C4CC60AD11D3FC038CB2051F7E97CF7C7F7D0F49CA1F +E0FEFCE664544CD1F7C23B05BA649D373539E7BCC761611C17489084912F77C3 +5FB3BC1E91E2B4A47C27BF4989C7703E83C5A505108037DE5006D4F510B8FE1A +570E42E4569FAEBF66058F9D9608A771BEACA2A8AB629DBE939CCBBC116E8BCD +BEC3A33CBF185A68DB60CAC5B21AF4D9B46B3FF4FDFBD6BC3C8101BE15E79245 +F0CF8F670CFA19ABC08C34D85B10C17190497EACEF6E401F322B1E281C1755F0 +BBF9838AF83A0A1601D78E78FD599819762347A77C71374AB428093048E3F1C9 +40CFD63B86C7F70BCD2AC3092DDD3BC91CA714BA28263EB863D5E6E2DBD4FA08 +6B22C1D18B16D7042219B9F0BDF5BF10AADB658CBED51C8B272E4DFA11C5A603 +8B4A437EABAA699B86819EAA072F7D90A9CE1B52287DD3D26C470BE0A8D8ACB0 +5CEF12390D0EDE45B1F5B2FE4ABCA8844F713CB5901221BBEF0144FB694EC8A5 +A5E80F582257A84E0FDB4150D9EA8A82A434C5FC1CB93C7F457B95A68E52F916 +2B90E294A0C787EDA95A4EB1F978ABC0A8E1FC9128E7605D591F601BE0B37F6E +E1786F2302F2783D5CDC07AA5F3A20101D527E22B8D689A3A60B5993894A7038 +E068BE74CA3F9CD7A33223131E6149FC75A1FFE4E1A12553A8B8DA3AA19DF672 +D355FC0E824840735280F6D4BE31FE762B5027E292F82AF13EF5CBB0633E66A0 +950CE5EA51EF5C6C7FD1599353416342E89607998DAD7D6A8FC650ED12369274 +4E9BF9AFEA1822896412672B1F9EFA94BB86BEB37F2926B7BC7E032C71572F05 +C203EB5E44E55504D98264D3CF7A77F62C183F65364525AE9E84511F4BB67ABC +164068BA9321842E23882000D27069B07181EADBDAF4374F7FE019BD6D9C88E2 +793462102092A647D903EDE28729B02369DF181C898DEDEBCACB047E79B284F8 +CABFDC5B460D9CD7C3D0A7422E6268DC3CB573DFF7304841C3557355B620DEA6 +74A36D5AA575719613 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 60 /less put +dup 62 /greater put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +95601766777978D01677B8D19E1B10A078432D2884BB4F7B8C3293B68BB78100 +16724E495064BA0168CC86D413CB48560D6D318357397832F7A858CD82030C7D +8A4A1919716E8B26AFF8789AAF489EE4E0A88DC477551A87C7DF2856189E4596 +FE015956AFE5CC019F5CA6323A12B763B7B08B92C1A2940D3C566C43729E5482 +63C6DC5E834AEB4DAFB5AE8F0B8931A4687C94D11587B9071C8D81DA14F12776 +53A1985A3EBE37827656BD4635E03F09C3231F906874645E7DB3E59045A59D67 +E745D8487CF73FC50F64060544F624F357BC998A87FBE468DEBB38A09449EBCA +D041D7C29225ACD16CB8A59E87924D15A9125F064710A6CCCA3AD3103D8FCC94 +CC3571C6F9192774FCFE5BB42A14B27960903144D28BF047BF4C77646EA7BF6F +440D4EDEB712C63F2E8080419E42D1D58EED685EB5CDD49F80DB6E5553B519FA +C6A39A093155802F3EC607721F390307E91ECB597ABA60A537E3F8C045BF5DD3 +D88CF6518D37FCD95D2F295D902D617440D23516D962F47750A682A319ACE1 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 39139632 55387786 1000 600 600 (READ_ME.dvi) +@start /Fa 152[42 42 102[{}2 83.022 /CMSY10 rf /Fb 75[50 +59[50 1[50 50 50 50 50 1[50 50 50 50 50 50 50 50 50 50 +50 50 50 50 50 50 13[50 13[50 3[50 2[50 50 50 50 50 10[50 +4[50 50 50 50 2[50 2[50 2[50 30[{TeXBase1Encoding ReEncodeFont}39 +83.022 /Courier rf /Fc 75[33 58[50 3[55 33 39 44 55 55 +50 55 83 28 1[33 28 55 50 33 44 55 44 55 50 10[72 5[61 +1[72 4[39 78 3[72 72 14[50 50 50 50 2[25 15[33 27[55 +2[{TeXBase1Encoding ReEncodeFont}36 99.6264 /Times-Bold +rf /Fd 214[28 28 40[{}2 83.022 /LASY10 rf /Fe 193[65 +1[65 60[{}2 83.022 /CMMI10 rf /Ff 71[28 3[28 43[28 13[37 +42 42 60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42 +42 28 37 42 37 42 37 6[51 2[78 60 60 51 46 55 60 46 60 +60 74 51 2[28 60 2[51 60 55 55 60 76 2[47 2[23 4[42 42 +42 42 42 1[23 21 28 21 2[28 28 28 5[28 2[28 27[46 2[{ +TeXBase1Encoding ReEncodeFont}67 83.022 /Times-Roman +rf /Fg 75[28 58[42 3[46 28 32 37 1[46 42 46 69 23 2[23 +46 42 28 37 46 37 46 42 10[60 60 55 46 60 65 51 65 1[78 +55 2[32 65 2[55 60 60 1[60 6[28 4[42 42 42 42 42 2[21 +28 8[42 33[46 2[{TeXBase1Encoding ReEncodeFont}46 83.022 +/Times-Bold rf /Fh 75[40 62[66 40 47 53 1[66 60 66 100 +33 2[33 66 2[53 66 53 66 60 12[80 66 2[73 2[113 3[47 +5[86 1[86 11[60 60 60 60 60 3[40 14[40 27[66 2[{ +TeXBase1Encoding ReEncodeFont}32 119.552 /Times-Bold +rf /Fi 140[39 33 4[78 11[44 41[50 4[50 50 50 48[{ +TeXBase1Encoding ReEncodeFont}8 99.6264 /Times-Roman +rf /Fj 133[64 4[72 40 56 48 2[72 72 112 40 2[40 72 2[64 +72 64 1[64 9[135 4[96 2[104 2[88 5[80 4[104 19[48 5[48 +39[{TeXBase1Encoding ReEncodeFont}23 143.462 /Times-Roman +rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%BeginPaperSize: a4 +a4 +%%EndPaperSize + end +%%EndSetup +%%Page: 1 1 +TeXDict begin 1 0 bop 527 880 a Fj(A)-13 b(W)o(OR)34 +b(-)i(Fichier)e(Lisez-moi)g(de)h(l'administrateur)1601 +1315 y Fi(17)24 b(mars)h(2007)440 1678 y Fh(T)-11 b(able)30 +b(des)g(mati)1187 1677 y(\036)1180 1678 y(er)n(es)440 +1864 y Fg(1)83 b(Compatibilit)1023 1863 y(\264)1018 1864 +y(e)2208 b(2)440 2046 y(2)83 b(S)616 2045 y(\264)611 +2046 y(ecurit)824 2045 y(\264)819 2046 y(e)2407 b(2)440 +2229 y(3)83 b(Installation)2291 b(2)565 2329 y Ff(3.1)86 +b(D)5 b(\264)-33 b(epaquetage)18 b(des)i(pages)g(PHP)65 +b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)166 b(2)565 2428 y(3.2)86 b(P)o(aram)5 +b(\036)-33 b(etres)19 b(de)h(con\002guration)79 b(.)42 +b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)166 b(3)565 2528 y(3.3)86 b(Initialisation)19 +b(de)h(la)h(base)58 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)166 +b(4)565 2628 y(3.4)86 b(Con\002guration)18 b(par)h(d)5 +b(\264)-33 b(ef)o(aut)20 b(des)g(comptes)79 b(.)41 b(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)166 b(4)440 +2810 y Fg(4)83 b(Maintenance)2236 b(4)565 2910 y Ff(4.1)86 +b(V)-5 b(isualisation)19 b(des)i(objets)f(et)h(des)f(\002chiers)63 +b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +166 b(4)565 3009 y(4.2)86 b(Netto)o(yage)19 b(de)h(la)g(base)75 +b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)166 b(4)440 3192 +y Fg(5)83 b(A)l(uthenti\002cation)19 b(d)1209 3191 y(\264)1204 +3192 y(edi)1315 3191 y(\264)1310 3192 y(ee)h(-)h(P)n(ersonnalisation) +1220 b(5)1851 5662 y Ff(1)p eop end +%%Page: 2 2 +TeXDict begin 2 1 bop 440 535 a Fh(1)119 b(Compatibilit)1276 +534 y(\264)1269 535 y(e)565 721 y Ff(Cette)16 b(application)d(peut-)5 +b(\210)-33 b(etre)14 b(utilis)5 b(\264)-33 b(ee)16 b(sur)f(un)g(serv)o +(eur)f(fonctionnant)e(a)n(v)o(ec)j(Apache,)f(MySQL\()p +Fe(>)p Ff(=4\))440 820 y(et)21 b(PHP)g(\()p Fe(>)p Ff(=4\).)440 +1041 y Fg(PHP)82 b Ff(L)-8 b('application)20 b(ne)j(n)5 +b(\264)-33 b(ecessite)22 b(pas)g(de)h(con\002guration)c(de)j(PHP)h +(particuli)5 b(\036)-33 b(ere.)21 b(Elle)h(fonc-)440 +1141 y(tionne)h(quelle)h(que)f(soit)i(la)g(v)n(aleur)e(du)g(param)5 +b(\036)-33 b(etre)23 b(de)h(con\002guration)d(re)o(gister)p +2792 1141 25 4 v 29 w(globals,)i(utilise)440 1240 y(les)29 +b(sessions)h(via)e(les)i(fonctions)d(introduites)g(en)i(PHP4.)f(L)-8 +b('application)27 b(fonctionne)f(quelque)440 1340 y(soit)e(la)h(v)o +(erbosit)5 b(\264)-33 b(e)22 b(des)i(af)n(\002chages)f(d'erreur)f(et)i +(de)g(w)o(arning)f(PHP)-9 b(,)24 b(car)g(nous)f(a)n(v)n(ons)h(tra)n(v)n +(aill)5 b(\264)-33 b(e)28 b(\036)-33 b(a)445 1440 y(\264)g(eliminer)18 +b(tous)g(les)i(messages)e Fd(\()-17 b(\()15 b Ff(E)p +1447 1440 V 30 w(NO)m(TICE)f Fd(\))-17 b(\))19 b Ff(PHP)g(qui)f +(surviennent)f(par)h(e)o(x)o(emple)f(lors)h(d'une)440 +1539 y(comparaison)g(a)n(v)o(ec)i(une)g(v)n(ariable)f(non-initialis)5 +b(\264)-33 b(ee.)565 1639 y(Les)17 b(scripts)g(PHP)h(n'acc)5 +b(\036)-33 b(edent)15 b(pas)i(en)22 b(\264)-33 b(ecriture)16 +b(au)h(syst)5 b(\036)-33 b(eme)17 b(de)g(\002chier)m(,)f(sauf)h(pour)f +(l'upload)440 1739 y(de)26 b(\002chiers.)g(Le)h(dossier)f +Fd(\()-17 b(\()18 b Ff(\002chiers)g Fd(\))-17 b(\))27 +b Ff(doit)j(\210)-32 b(etre)26 b(accessible)h(en)j(\264)-32 +b(ecriture)25 b(par)h(les)h(scripts)g(PHP)440 1838 y(sans)21 +b(quoi)e(la)i(fonctionnalit)5 b(\264)-33 b(e)18 b(d')5 +b(\264)-33 b(echange)18 b(de)i(\002chier)g(serait)g(inutilisable.)440 +2059 y Fg(MySQL)83 b Ff(Les)16 b(scripts)f(PHP)h(ne)f(modi\002ent)f +(pas)i(structurellement)d(la)j(base)f(de)g(donn)5 b(\264)-33 +b(ee)14 b(MySQL,)440 2159 y(il)30 b(suf)n(\002t)g(donc)f(d'un)f(compte) +h(permettant)f(les)i(instructions)f(SELECT)-6 b(,)29 +b(INSER)-5 b(T)f(,)30 b(UPD)m(A)-9 b(TE,)440 2259 y(DELETE)32 +b(sur)h(les)g(tables)g(de)g(l'application.)e(Pour)h(indiquer)k(\036)-33 +b(a)33 b(l'application)f(quel)g(compte)440 2358 y(MySQL)20 +b(utiliser)m(,)g(v)o(euillez)f(v)n(ous)h(reporter)j(\036)-32 +b(a)20 b(la)h(section)f(3.3.)440 2638 y Fh(2)119 b(S)692 +2637 y(\264)685 2638 y(ecurit)990 2637 y(\264)983 2638 +y(e)565 2824 y Ff(Cette)34 b(application)e(a)39 b(\264)-33 +b(et)5 b(\264)-33 b(e)34 b(d)5 b(\264)-33 b(ev)o(elopp)5 +b(\264)-33 b(ee)31 b(en)j(gardant)d(toujours)37 b(\036)-32 +b(a)34 b(l'esprit)f(les)h(probl)5 b(\036)-33 b(emes)440 +2924 y(de)26 b(s)5 b(\264)-33 b(ecurit)5 b(\264)-33 b(es.)26 +b(Nous)g(ne)g(pouv)n(ons)j(\264)-33 b(evidemment)24 b(pas)j(la)f +(garantir)f(f)o(ailles)h(ni)g(b)n(ugs,)g(mais)g(nous)440 +3023 y(sommes)j(\002x)5 b(\264)-33 b(e)30 b(des)g(r)5 +b(\036)-33 b(egles)30 b(de)f(programmation)e(pour)33 +b(\264)-33 b(eviter)29 b(les)i(f)o(ailles)f(les)h(plus)e(courantes.)440 +3123 y(T)-7 b(outes)15 b(les)h(donn)5 b(\264)-33 b(ees)14 +b(issues)i(de)f(l'utilisateur)g(lors)g(des)h(traitements)e(des)i(pages) +f(web)g(sont)g(trait)5 b(\264)-33 b(ees)440 3222 y(pour)29 +b(\264)-33 b(eviter)25 b(des)h(probl)5 b(\036)-33 b(emes)24 +b(d'insertion)g(de)i(code)e(dans)i(les)g(requetes)f(SQL.)h(L)-8 +b('authenti\002ca-)440 3322 y(tion)25 b(des)g(utilisateurs)f(est)i +(syst)5 b(\264)-33 b(ematique,)24 b(v)5 b(\264)-33 b(eri\002)5 +b(\264)-33 b(ee)29 b(\036)-33 b(a)25 b(chaque)f(page)g(et)h(repose)g +(sur)f(le)i(syst)5 b(\036)-33 b(eme)440 3422 y(des)24 +b(sessions)g(PHP)-9 b(.)23 b(En)g(re)n(v)n(anche,)f(il)i(f)o(aut)f +(noter)f(que)h(le)h(formulaire)d(d'authenti\002cation)g(n'est)440 +3521 y(pas)27 b(prot)5 b(\264)-33 b(eg)5 b(\264)-33 b(e)25 +b(contre)h(l'usurpation)f(de)i(mots)f(de)h(passe)g(car)g(les)h +(contraintes)d(donn)5 b(\264)-33 b(ees)26 b(dans)g(le)440 +3621 y(cahier)h(des)h(char)o(ges)e(ne)h(le)i(permettent)d(pas,)h(d)7 +b(\210)-35 b(u)28 b(moins,)e(il)j(n'est)e(pas)h(possible)f(d'utiliser)g +(un)440 3721 y(cryptage)22 b(ef)n(\002cace)i(\(assym)5 +b(\264)-33 b(etrique\))22 b(sans)i(modi\002er)f(le)i(syst)5 +b(\036)-33 b(eme)24 b(d'authenti\002cation)d(d)5 b(\264)-33 +b(el)5 b(\264)-33 b(egu)5 b(\264)-33 b(ee)440 3820 y(et)19 +b(sans)g(utiliser)f(une)g(con\002guration)d(de)j(serv)o(eur)f(W)-7 +b(eb)19 b(sp)5 b(\264)-33 b(eci\002que.)17 b(Consid)5 +b(\264)-33 b(erez,)17 b(pour)g(r)5 b(\264)-33 b(esoudre)440 +3920 y(ce)24 b(probl)5 b(\036)-33 b(eme,)21 b(l'emploi)h(sur)h(serv)o +(eur)f(web)h(s)5 b(\264)-33 b(ecuris)5 b(\264)-33 b(e)24 +b(\(HTTPS\))e(et)i(l'utilisation)f(d'une)f(liaison)440 +4019 y(entre)16 b(le)i(serv)o(eur)d(web)i(et)g(le)g(serv)o(eur)f +(d'authenti\002cation)e(au)i(tra)n(v)o(ers)h(d'un)e(r)5 +b(\264)-33 b(eseau)17 b(de)f(con\002ance.)440 4300 y +Fh(3)119 b(Installation)440 4502 y Fc(3.1)99 b(D)742 +4501 y(\264)736 4502 y(epaquetage)27 b(des)e(pages)g(PHP)565 +4657 y Ff(L)-8 b('application)26 b(est)i(li)n(vr)5 b(\264)-33 +b(ee)28 b(dans)g(une)f(archi)n(v)o(e)f(de)i(type)g(tarball)f(compress)5 +b(\264)-33 b(ee)27 b(qui)h(contient)440 4757 y(toute)k(l'arborescence)e +(et)i(les)h(\002chiers)f(PHP)h(n)5 b(\264)-33 b(ecessaires.)32 +b(Il)h(suf)n(\002t)f(de)g(d)5 b(\264)-33 b(ecompresser)31 +b(cette)440 4857 y(archi)n(v)o(e)16 b(en)i(conserv)n(ant)e +(l'arborescence)f(dans)j(un)f(dossier)h(publi)5 b(\264)-33 +b(e)17 b(par)g(v)n(otre)g(serv)o(eur)g(W)-7 b(eb)m(.)17 +b(Les)440 4956 y(\002chiers)24 b(de)g(con\002gurations)d(sont)j(pr)5 +b(\264)-33 b(esent)24 b(et)g(contiennent)e(des)i(v)n(aleurs)f(d'e)o(x)o +(emple)f(que)h(v)n(ous)440 5056 y(pourrez)18 b(adapter)24 +b(\036)-33 b(a)21 b(v)n(otre)f(situation.)1851 5662 y(2)p +eop end +%%Page: 3 3 +TeXDict begin 3 2 bop 440 531 a Fc(3.2)99 b(P)o(aram)957 +530 y(\036)951 531 y(etr)n(es)26 b(de)f(con\002guration)565 +687 y Ff(Cette)f(application)e(comporte)f(deux)h(\002chiers)i(de)f +(con\002guration)e(qui)i(sont)g(dans)g(le)h(dossier)440 +787 y Fd(\()-17 b(\()17 b Ff(include)e Fd(\))-17 b(\))p +Ff(.)23 b(Les)f(\002chiers)g(e)o(xistent)g(dans)g(la)g(v)o(ersion)f +(distrib)n(u)5 b(\264)-33 b(ee)21 b(et)i(ont)e(pour)g(b)n(ut)h(de)g +(servir)g(de)440 886 y(mod)5 b(\036)-33 b(ele.)440 1031 +y Fg(connect.inc.php)20 b(:)41 b Ff(ce)19 b(\002chier)f(contient)g(les) +h(coordonn)5 b(\264)-33 b(ees)16 b(du)i(serv)o(eur)f(MySQL,)h(de)h +(l'utilisa-)648 1130 y(teur)g(SQL)i(et)g(de)f(la)h(base)f(que)f +(l'application)g(utilisera.)440 1260 y Fg(con\002g)o(.inc.php)h(:)41 +b Ff(ce)17 b(\002chier)f(contient)g(tout)h(le)g(reste)g(de)g(la)g +(con\002guration)d(de)j(l'application.)e(Le)648 1359 +y(\002chier)k(est)h(un)f(script)h(PHP)h(qui)e(initialise)h(un)f +(tableau)g(multi-dimentionnel.)d(Ce)21 b(choix)i(\036)-33 +b(a)652 1459 y(\264)h(et)5 b(\264)-33 b(e)20 b(f)o(ait)h(par)f +(commodit)5 b(\264)-33 b(e,)18 b(et)j(pour)e(permette)g(de)i(bien)e(hi) +5 b(\264)-33 b(erarchiser)19 b(les)i(information,)d(en)648 +1559 y(re)n(v)n(anche,)13 b(la)j(syntax)o(e)f(est)h(fourbe.)c(.)g(.)i +(N'oubliez)h(pas)g(de)h(vir)o(gule)c(!)j(T)-7 b(outes)16 +b(les)g(constantes)648 1658 y(sont)k(d)5 b(\264)-33 b(ecrites)20 +b(ci-dessous.)648 1818 y Fg($adminMail)g(:)41 b Ff(adresse)15 +b(e-mail)g(de)g(l'administrateur)-5 b(.)14 b(Af)n(\002ch)5 +b(\264)-33 b(ee)19 b(\036)-33 b(a)16 b(l'utilisateur)e(lorsque)830 +1917 y(qu'une)19 b(erreur)f(interne)24 b(\036)-32 b(a)20 +b(l'application)f(s'est)i(produite.)648 2047 y Fg($automatedMail)d(:)41 +b Ff(adresse)28 b(e-mail)g(de)h(r)5 b(\264)-33 b(eponse)27 +b(des)h(courriels)g(en)m(v)n(o)o(y)5 b(\264)-33 b(es)27 +b(automati-)830 2147 y(quement)19 b(par)h(l'application.)648 +2276 y Fg(A)l(UTH)g(:)41 b Ff(P)o(aram)5 b(\036)-33 b(etres)20 +b(d'authenti\002cation)830 2435 y Fg(POP)g(:)41 b Ff(P)o(aram)5 +b(\036)-33 b(etres)20 b(pour)e(les)j(serv)o(eurs)f(mail)g(POP)985 +2595 y Fg(SER)-5 b(VERS)23 b(:)41 b Ff(Chaque)24 b(\264)-33 +b(el)5 b(\264)-33 b(ement)20 b(de)h(ce)g(tableau)j(\036)-32 +b(a)21 b(pour)e(clef)h(le)h(nom)f(de)h(do-)1127 2694 +y(maine)j(du)g(fournisseur)f(de)i(service)g(de)f(courriel)g(\()h +(partie)f(sui)n(v)n(ant)g(le)i(@)1127 2794 y(dans)c(une)g(adresse)g +(e-mail\))k(\036)-32 b(a)22 b(pour)f(v)n(aleur)h(un)g(tableau)g +(associatif)g(de)g(la)1127 2894 y(forme)d(sui)n(v)n(ante)1127 +3053 y Fg(subdomain)i(:)41 b Ff(adresse)20 b(complete)f(du)h(serv)o +(eur)f(of)n(frant)f(le)j(service)f(POP)1127 3183 y Fg(port)g(:)41 +b Ff(num)5 b(\264)-33 b(ero)26 b(de)i(port)f(TCP)i(utilis)5 +b(\264)-33 b(e)28 b(pour)f(se)i(connecter)d(au)i(service)1210 +3282 y(POP)1127 3412 y Fg(user)o(name)p 1477 3412 25 +4 v 29 w(is)p 1561 3412 V 30 w(full)p 1711 3412 V 30 +w(mail)21 b(:)41 b Ff(Bool)5 b(\264)-33 b(een)14 b(\(true)h(ou)g(f)o +(alse\))g(indicant)f(si)j(le)e(nom)1210 3511 y(d'utilisateur)39 +b(\036)-33 b(a)36 b(utiliser)g(pour)f(l'authenti\002cation)f(est)i +(l'adresse)g(e-)1210 3611 y(mail)e(compl)5 b(\036)-33 +b(ete.)32 b(C'est)j(utile)e(pour)g(les)i(serv)o(eurs)d(POP)j(g)5 +b(\264)-33 b(erant)33 b(des)1210 3711 y(adresses)15 b(email)g(sur)h +(plusieurs)e(domaines)g(\(comme)g(w)o(anadoo)g(/)h(orange)1210 +3810 y(au)20 b(moment)f(o)7 b(\036)-35 b(u)19 b(j')5 +b(\264)-33 b(ecris)21 b(ce)f(document\))830 3970 y Fg(bypass)p +1075 3970 V 30 w(if)p 1156 3970 V 30 w(local)f(:)42 b +Ff(Bool)5 b(\264)-33 b(een)32 b(indiquant)g(si)i(l'authenti\002cation)d +(doit)37 b(\210)-32 b(etre)33 b(outre-)985 4069 y(pass)5 +b(\264)-33 b(ee)21 b(si)g(la)g(conne)o(xion)c(s'ef)n(fectue)i(depuis)h +(le)g(serv)o(eur)f(lui-m)5 b(\210)-33 b(eme.)648 4229 +y Fg(CSS)21 b(:)41 b Ff(P)o(aram)5 b(\036)-33 b(etres)19 +b(des)i(styles)f(de)h(pages)830 4388 y Fg(CHOOSER)p 1251 +4388 V 29 w(LIST)h(:)41 b Ff(Ce)25 b(tableau)d(associatif)i(contient)e +(la)i(liste)g(des)g(styles)g(CSS)990 4488 y(\036)-33 +b(a)31 b(utiliser)-5 b(.)30 b(Les)h(clefs)f(sont)g(les)h(libell)5 +b(\264)-33 b(es)30 b(des)h(th)5 b(\036)-33 b(emes)34 +b(\036)-33 b(a)31 b(af)n(\002cher)e(et)i(les)f(v)n(a-)985 +4587 y(leurs)25 b(sont)f(les)h(noms)f(des)g(\002chiers)g(CSS)i +(correspondants,)21 b(sans)k(chemin,)e(ni)985 4687 y(e)o(xtension.)648 +4846 y Fg(MAIL)e(:)830 5006 y(TEMPLA)-8 b(TES)23 b(:)41 +b Ff(Ce)19 b(tableau)e(contient)g(des)h(tableaux)e(associatifs)i(dont)f +(les)i(clefs)985 5105 y(seront)e(utilis)5 b(\264)-33 +b(ees)19 b(dans)e(les)h(passages)g(de)f(param)5 b(\036)-33 +b(etres)17 b(HTML,)g(et)h(contiennent)985 5205 y(des)j(sous-tableaux)d +(de)i(la)h(forme)e(sui)n(v)n(ante)g(:)985 5364 y Fg(caption)h(:)41 +b Ff(Intitul)5 b(\264)-33 b(e)20 b(qui)g(sera)g(af)n(\002ch)5 +b(\264)-33 b(e)24 b(\036)-32 b(a)20 b(l'utilisateur)1851 +5662 y(3)p eop end +%%Page: 4 4 +TeXDict begin 4 3 bop 985 531 a Fg(tpl)p 1087 531 25 +4 v 30 w(\002le)21 b(:)41 b Ff(Nom)20 b(du)f(\002chier)g(\(a)n(v)o(ec)h +(l'e)o(xtension)e(PHP\))i(contenant)e(le)i(mod)5 b(\036)-33 +b(ele.)648 691 y Fg(SUPER)n(USERS)21 b(:)41 b Ff(Ce)34 +b(tableau)e(contient)g(la)i(liste)g(des)f(login)g(des)g(super)n +(-utilisateurs)830 790 y(\(ceux)19 b(qui)h(ont)g(le)h(droit)e(de)h +(supprimer)f(des)h(r)5 b(\264)-33 b(eunions\))648 920 +y Fg(UPLO)m(AD)20 b(:)41 b Ff(P)o(aram)5 b(\036)-33 b(etres)19 +b(concernant)f(l'attachement)h(de)h(\002chiers)g(aux)g(r)5 +b(\264)-33 b(eunions)830 1079 y Fg(accepted)p 1145 1079 +V 29 w(\002les)21 b(:)41 b Ff(T)-7 b(ableau)20 b(des)g(e)o(xtensions)f +(qui)h(sont)g(autoris)5 b(\264)-33 b(ees.)440 1317 y +Fc(3.3)99 b(Initialisation)24 b(de)h(la)g(base)565 1473 +y Ff(T)-7 b(ous)23 b(les)h(\002chiers)f(n)5 b(\264)-33 +b(ecessaires)24 b(sont)f(rang)5 b(\264)-33 b(es)22 b(dans)h(le)h +(dossier)f Fd(\()-17 b(\()18 b Ff(install)f Fd(\))-17 +b(\))p Ff(.)23 b(V)-11 b(ous)24 b(utiliserez)440 1572 +y(principalement)d(le)i(\002chier)g Fd(\()-17 b(\()17 +b Ff(RAZBase.php)g Fd(\))-17 b(\))o Ff(.)24 b(Appel)5 +b(\264)-33 b(e)22 b(au)h(tra)n(v)o(ers)g(du)g(serv)o(eur)f(web,)g(il)i +(v)n(ous)440 1672 y(permettra)i(automatiquement)e(de)j(mettre)f(en)h +(place)g(la)g(structure)g(de)f(la)i(base)f(de)g(donn)5 +b(\264)-33 b(ees,)25 b(et)440 1771 y(optionnellement,)19 +b(d'ins)5 b(\264)-33 b(erer)20 b(un)h(jeu)g(d'essai)h(pour)e(tester)i +(l'application)e(sur)i(v)n(otre)f(serv)o(eur)-5 b(.)20 +b(Si)440 1871 y(v)n(ous)25 b(ne)g(souhaitez)f(pas)h(utiliser)g(de)g +(compte)f(SQL)h(ayant)g(le)g(droit)f(d'alt)5 b(\264)-33 +b(erer)24 b(la)i(structure)e(des)440 1971 y(tables)c(de)f(v)n(otre)g +(base)h(a)n(v)o(ec)f(ce)h(script)f(php,)g(v)n(ous)g(pouv)o(ez)f(e)o(x)5 +b(\264)-33 b(ecuter)18 b(le)i(script)f Fd(\()-17 b(\()16 +b Ff(base.sql)f Fd(\))-17 b(\))20 b Ff(a)n(v)o(ec)440 +2070 y(v)n(otre)g(client)g(SQL)h(f)o(a)n(v)n(ori.)e(Le)h(jeu)h(d'essai) +f(se)h(trouv)o(e)e(dans)g(le)i(\002chier)f Fd(\()-17 +b(\()16 b Ff(jeu)p 2700 2070 V 30 w(essai.sql)g Fd(\))-17 +b(\))p Ff(.)565 2170 y(V)-11 b(ous)19 b(de)n(vriez)f(supprimer)f(ce)i +(r)5 b(\264)-33 b(epertoire)17 b(d)5 b(\036)-33 b(es)20 +b(que)e(l'installation)g(sera)i(termin)5 b(\264)-33 b(ee)18 +b(car)h(il)g(peut)440 2270 y(poser)i(des)h(probl)5 b(\036)-33 +b(emes)20 b(de)h(s)5 b(\264)-33 b(ecurit)5 b(\264)-33 +b(e)21 b(car)h(le)g(\002chier)f Fd(\()-17 b(\()17 b Ff(RAZBase.php)f +Fd(\))-17 b(\))21 b Ff(pourrait)k(\210)-33 b(etre)22 +b(lanc)5 b(\264)-33 b(e)21 b(par)440 2369 y(n'importe)d(qui,)i(et)h +(les)g(\002chiers)f(SQL)g(contienent)f(des)h(informations)e(sensibles.) +440 2607 y Fc(3.4)99 b(Con\002guration)26 b(par)f(d)1522 +2606 y(\264)1516 2607 y(efaut)h(des)g(comptes)565 2763 +y Ff(Dans)15 b(le)h(\002chier)f(de)g(con\002guration)d(mod)5 +b(\036)-33 b(ele,)14 b(un)h(super)n(-utilisateur)f(est)i(con\002gur)5 +b(\264)-33 b(e)13 b(:)j(inglebert@iut-)440 2862 y(blagnac.fr)k(et)j(le) +g(jeu)f(d'essai)h(propos)5 b(\264)-33 b(e)21 b(au)h(paragraphe)e(pr)5 +b(\264)-33 b(ec)5 b(\264)-33 b(edent)20 b(permet)i(de)g(cr)5 +b(\264)-33 b(eer)22 b(des)h(utili-)440 2962 y(sateurs,)d(et)h(en)f +(particulier)f(inglebert@iut-blagnac.fr)-5 b(.)565 3061 +y(P)o(ar)30 b(d)5 b(\264)-33 b(ef)o(aut,)29 b(v)n(ous)h(pourrez)e(donc) +h(v)n(ous)h(connecter)f(en)h(tant)g(qu'administrateur)e(a)n(v)o(ec)i +(ce)440 3161 y(compte.)18 b(Le)h(jeu)g(d'essai)h(met)f(ce)h(compte)e(a) +n(v)o(ec)h(comme)f(mode)g(d'authenti\002cation)e Fd(\()-17 +b(\()16 b Ff(bypass)f Fd(\))-17 b(\))p Ff(,)440 3261 +y(ce)27 b(qui)f(signi\002e)h(qu'aucun)d(mot)i(de)h(passe)g(n'est)f(n)5 +b(\264)-33 b(ecessaire.)27 b(Pour)f(utiliser)g(un)h(vrai)f(syst)5 +b(\036)-33 b(eme)440 3360 y(d'authenti\002cation,)18 +b(connectez-v)n(ous)g(a)n(v)o(ec)j(ce)h(compte)e(et)h(allez)g(dans)g +(la)h(page)e Fd(\()-17 b(\()17 b Ff(Mon)j(Pro\002l)d +Fd(\))-17 b(\))440 3460 y Ff(pour)19 b(choisir)h(une)f(autre)h(mode)f +(d'authenti\002cation.)440 3740 y Fh(4)119 b(Maintenance)440 +3942 y Fc(4.1)99 b(V)l(isualisation)24 b(des)h(objets)h(et)f(des)g +(\002chiers)565 4098 y Ff(Une)19 b(page)h(d'administration)d(est)k(pr)5 +b(\264)-33 b(evue)23 b(\036)-33 b(a)20 b(cet)h(ef)n(fet,)e(et)h(elle)h +(n'est)e(accessible)h(que)g(par)f(un)440 4198 y Fd(\()-17 +b(\()16 b Ff(super)n(-utilisateur)d Fd(\))-17 b(\))p +Ff(,)20 b(c'est)k(\036)-33 b(a)20 b(dire)f(un)g(utilisateur)g(consign)5 +b(\264)-33 b(e)18 b(dans)h(le)g(\002chier)g(de)h(con\002guration)440 +4297 y(principal)f(en)h(tant)g(que)g(tel,)g(conf)5 b(\036)-33 +b(ere)19 b(3.2.)440 4535 y Fc(4.2)99 b(Nettoyage)25 b(de)h(la)e(base) +581 4672 y Ff(\036)565 4691 y(A)31 b(partir)g(de)g(la)h(page)f +(d'administration)d(d)5 b(\264)-33 b(ecrite)31 b(dans)g(le)h +(paragraphe)d(pr)5 b(\264)-33 b(ec)5 b(\264)-33 b(edent,)29 +b(v)n(ous)440 4790 y(pouv)o(ez)c(aussi)j(pur)o(ger)c(les)k(\002chiers)f +(attach)5 b(\264)-33 b(es)27 b(et)g(les)h(objets)f(de)g(la)g(base)g(de) +g(donn)5 b(\264)-33 b(ees)26 b(de)n(v)o(enus)440 4890 +y(obsol)5 b(\036)-33 b(etes.)18 b(L)-8 b('aide)19 b(conte)o(xtuelle)e +(de)i(cette)g(page)f(v)n(ous)h(e)o(xpliquera)d(comment)i(f)o(aire.)g +(Il)h(est)h(vi)n(v)o(e-)440 4989 y(ment)h(conseill)5 +b(\264)-33 b(e)21 b(de)g(f)o(aire)g(une)g(sauv)o(e)o(garde)d(de)j(la)h +(base)f(de)h(donn)5 b(\264)-33 b(ees)20 b(et)h(des)h(\002chiers)f +(joints)g(aux)440 5089 y(r)5 b(\264)-33 b(eunions)16 +b(a)n(v)n(ant)i(d'utiliser)f(cet)h(outil)g(car)g(l'erreur)e(de)i +(manipulation)d(ou)j(de)g(programmation)c(est)440 5189 +y(toujours)19 b(possible.)12 b(.)g(.)1851 5662 y(4)p +eop end +%%Page: 5 5 +TeXDict begin 5 4 bop 440 535 a Fh(5)119 b(A)-6 b(uthenti\002cation)33 +b(d)1547 534 y(\264)1540 535 y(edi)1699 534 y(\264)1692 +535 y(ee)e(-)f(P)n(ersonnalisation)565 721 y Ff(A)-7 +b(W)o(OR)18 b(utilise)h(un)e(syst)5 b(\036)-33 b(eme)18 +b(d'authenti\002cation)d(d)5 b(\264)-33 b(edi)5 b(\264)-33 +b(ee)17 b(de)h(sorte)g(qu'aucun)d(mot)j(de)f(passe)440 +820 y(ne)28 b(soit)g(stock)5 b(\264)-33 b(e,)28 b(et)g(que)f +(l'utilisateur)h(n'ait)f(pas)h(besoin)g(d'en)f(retenir)g(un)g(nouv)o +(eau.)e(Le)k(code)440 920 y(d'authenti\002cation)c(\036)-33 +b(a)28 b(\264)-33 b(et)5 b(\264)-33 b(e)28 b(\264)-32 +b(ecrit)22 b(de)h(mani)5 b(\036)-33 b(ere)27 b(\036)-33 +b(a)28 b(\210)-33 b(etre)23 b(mal)5 b(\264)-33 b(eable)22 +b(et)h(est)h(e)o(xtensible.)e(Le)g(coeur)g(du)440 1019 +y(syst)5 b(\036)-33 b(eme)20 b(d'authenti\002cation)d(se)k(trouv)o(e)d +(dans)i(le)h(\002chier)e Fd(\()-17 b(\()16 b Ff(auth)p +2345 1019 25 4 v 29 w(dialog.php)e Fd(\))-17 b(\))o Ff(.)21 +b(V)-11 b(ous)20 b(y)g(trouv)o(e-)440 1119 y(rez)g(une)g(section)g +(commenc)-32 b(\270)r(ant)20 b(par)f(le)i(commentaire)d(ci-dessous.)648 +1401 y Fb(/)698 1416 y(********************************)o(*****)o +(******)o(*****)o(***)648 1516 y(**)797 1501 y(Ajouter)49 +b(d'autres)f(mode)h(d'authentification)d(ici)k(!)3138 +1516 y(**)648 1616 y(*********************************)o(*****)o +(******)o(*****)o(**)3194 1601 y(/)440 1783 y Ff(Comme)26 +b(l'indique)f(ce)i(commentaire,)e(v)n(ous)h(pourrez)f(ajouter)31 +b(\036)-33 b(a)27 b(cet)g(endroit)f(une)g(portion)f(de)440 +1883 y(code)20 b(pour)e(utiliser)j(un)f(autre)f(service)h +(d'authenti\002cation.)d(La)k(syntax)o(e)e(est)i(la)g(sui)n(v)n(ante)e +(:)648 2027 y Fb(case)49 b('')f(:)648 +2127 y(/)698 2142 y(*)797 2127 y(Eventuellement)f(du)j(code)f(pr)2043 +2126 y(\264)2043 2127 y(el)2143 2126 y(\264)2143 2127 +y(eminaire)2590 2142 y(*)2640 2127 y(/)648 2227 y($auth)p +903 2227 V 29 w(is)p 1032 2227 V 29 w(ok=;)648 2326 y(if)g(\()h(!)f($auth)p +1251 2326 V 29 w(is)p 1380 2326 V 30 w(ok)g(\))648 2426 +y Fa(f)g Fb(//)g(Si)h(l'authentificaiton)1984 2425 y(\036)1984 +2426 y(a)2084 2425 y(\264)2084 2426 y(echou)2334 2425 +y(\264)2334 2426 y(ee)648 2525 y($errmsg=;)648 2625 y Fa(g)648 2725 y Fb(break;)440 +2869 y Ff(Il)30 b(v)n(ous)e(suf)n(\002t)i(de)f(remplacer)f(les)34 +b(\264)-32 b(el)5 b(\264)-33 b(ements)29 b(entre)f(che)n(vrons)g(dans)h +(le)h(code)e(ci-dessus)h(et)h(de)440 2969 y(le)23 b(coller)g(dans)f +Fd(\()-17 b(\()p Ff(auth)p 1099 2969 V 29 w(dialog.inc.php)p +Fd(\))g(\))19 b Ff(pour)i(pouv)n(oir)g(utiliser)i(un)f(nouv)o(eau)e +(mode)i(d'authen-)440 3068 y(ti\002cation.)28 b(Reste)33 +b(\036)-32 b(a)28 b(donner)j(\036)-33 b(a)29 b(l'utilisateur)e(la)i +(capacit)5 b(\264)-33 b(e)27 b(de)h(l'utiliser)-5 b(.)28 +b(V)-11 b(ous)28 b(de)n(vrez)f(encore,)440 3168 y(d'une)19 +b(part,)g(ajouter)g(dans)h(la)h(base)f(de)g(donn)5 b(\264)-33 +b(ees)19 b(le)h Fe(<)p Ff(nom)p 2184 3168 V 28 w(auth)p +Fe(>)k Ff(\036)-33 b(a)21 b(l')5 b(\264)-33 b(enum)5 +b(\264)-33 b(eration)17 b(du)j(champ)440 3268 y Fd(\()-17 +b(\()p Ff(methodeAuth)p Fd(\))g(\))15 b Ff(de)i(la)h(table)f +Fd(\()-17 b(\()p Ff(Personne)p Fd(\))g(\))n Ff(,)18 b(et)g(d'autre)e +(part)h(proposer)j(\036)-32 b(a)18 b(l'utilisateur)e(d'utiliser)440 +3367 y(ce)k(mode)g(d'authenti\002cation)d(en)j(modi\002ant)f(la)i(page) +f Fd(\()-17 b(\()o Ff(pro\002l.php)p Fd(\))g(\))m Ff(.)1851 +5662 y(5)p eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/final/install/READ_ME.txt b/final/install/READ_ME.txt new file mode 100644 index 0000000..34046ad --- /dev/null +++ b/final/install/READ_ME.txt @@ -0,0 +1,278 @@ + + +AWOR - Fichier Lisez-moi de l'administrateur + +Table des Matières + + 1 Compatibilité + 2 Sécurité + 3 Installation + 3.1 Dépaquetage des pages PHP + 3.2 Paramètres de configuration + 3.3 Initialisation de la base + 3.4 Configuration par défaut des comptes + 4 Maintenance + 4.1 Visualisation des objets et des fichiers + 4.2 Nettoyage de la base + 5 Authentification dédiée - Personnalisation + + + + + + +1 Compatibilité + +Cette application peut-être utilisée sur un serveur +fonctionnant avec Apache, MySQL(>=4) et PHP (>=4). + + PHP + +L'application ne nécessite pas de configuration de PHP +particulière. Elle fonctionne quelle que soit la valeur +du paramètre de configuration register_globals, utilise +les sessions via les fonctions introduites en PHP4. +L'application fonctionne quelque soit la verbosité des +affichages d'erreur et de warning PHP, car nous avons +travaillé à éliminer tous les messages "E_NOTICE" PHP qui +surviennent par exemple lors d'une comparaison avec une +variable non-initialisée. + +Les scripts PHP n'accèdent pas en écriture au système +de fichier, sauf pour l'upload de fichiers. Le dossier "fichiers" + doit être accessible en écriture par les scripts PHP +sans quoi la fonctionnalité d'échange de fichier serait +inutilisable. + + MySQL + +Les scripts PHP ne modifient pas structurellement la +base de donnée MySQL, il suffit donc d'un compte +permettant les instructions SELECT, INSERT, UPDATE, +DELETE sur les tables de l'application. Pour indiquer à +l'application quel compte MySQL utiliser, veuillez vous +reporter à la section [sub:Initialisation-de-la-bd]. + +2 Sécurité + +Cette application a été développée en gardant toujours +à l'esprit les problèmes de sécurités. Nous ne pouvons +évidemment pas la garantir failles ni bugs, mais nous +sommes fixé des règles de programmation pour éviter les +failles les plus courantes. Toutes les données issues +de l'utilisateur lors des traitements des pages web +sont traitées pour éviter des problèmes d'insertion de +code dans les requetes SQL. L'authentification des +utilisateurs est systématique, vérifiée à chaque page +et repose sur le système des sessions PHP. En revanche, +il faut noter que le formulaire d'authentification +n'est pas protégé contre l'usurpation de mots de passe +car les contraintes données dans le cahier des charges +ne le permettent pas, dû moins, il n'est pas possible +d'utiliser un cryptage efficace (assymétrique) sans +modifier le système d'authentification déléguée et sans +utiliser une configuration de serveur Web spécifique. +Considérez, pour résoudre ce problème, l'emploi sur +serveur web sécurisé (HTTPS) et l'utilisation d'une +liaison entre le serveur web et le serveur +d'authentification au travers d'un réseau de confiance. + +3 Installation + +3.1 Dépaquetage des pages PHP + +L'application est livrée dans une archive de type +tarball compressée qui contient toute l'arborescence et +les fichiers PHP nécessaires. Il suffit de décompresser +cette archive en conservant l'arborescence dans un +dossier publié par votre serveur Web. Les fichiers de +configurations sont présent et contiennent des valeurs +d'exemple que vous pourrez adapter à votre situation. + +3.2 Paramètres de configuration + +Cette application comporte deux fichiers de +configuration qui sont dans le dossier "include". Les +fichiers existent dans la version distribuée et ont +pour but de servir de modèle. + + connect.inc.php : ce fichier contient les coordonnées + du serveur MySQL, de l'utilisateur SQL et de la base + que l'application utilisera. + + config.inc.php : ce fichier contient tout le reste de + la configuration de l'application. Le fichier est un + script PHP qui initialise un tableau + multi-dimentionnel. Ce choix à été fait par + commodité, et pour permette de bien hiérarchiser les + information, en revanche, la syntaxe est fourbe... + N'oubliez pas de virgule ! Toutes les constantes sont + décrites ci-dessous. + + $adminMail : adresse e-mail de l'administrateur. + Affichée à l'utilisateur lorsque qu'une erreur + interne à l'application s'est produite. + + $automatedMail : adresse e-mail de réponse des + courriels envoyés automatiquement par l'application. + + AUTH : Paramètres d'authentification + + POP : Paramètres pour les serveurs mail POP + + SERVERS : Chaque élément de ce tableau à pour clef + le nom de domaine du fournisseur de service de + courriel ( partie suivant le @ dans une adresse + e-mail) à pour valeur un tableau associatif de + la forme suivante + + subdomain : adresse complete du serveur offrant + le service POP + + port : numéro de port TCP utilisé pour se + connecter au service POP + + username_is_full_mail : Booléen (true ou false) + indicant si le nom d'utilisateur à utiliser + pour l'authentification est l'adresse e-mail + complète. C'est utile pour les serveurs POP + gérant des adresses email sur plusieurs + domaines (comme wanadoo / orange au moment où + j'écris ce document) + + bypass_if_local : Booléen indiquant si + l'authentification doit être outrepassée si la + connexion s'effectue depuis le serveur lui-même. + + CSS : Paramètres des styles de pages + + CHOOSER_LIST : Ce tableau associatif contient la + liste des styles CSS à utiliser. Les clefs sont + les libellés des thèmes à afficher et les valeurs + sont les noms des fichiers CSS correspondants, + sans chemin, ni extension. + + MAIL : + + TEMPLATES : Ce tableau contient des tableaux + associatifs dont les clefs seront utilisées dans + les passages de paramètres HTML, et contiennent + des sous-tableaux de la forme suivante : + + caption : Intitulé qui sera affiché à l'utilisateur + + tpl_file : Nom du fichier (avec l'extension PHP) + contenant le modèle. + + SUPERUSERS : Ce tableau contient la liste des login + des super-utilisateurs (ceux qui ont le droit de + supprimer des réunions) + + UPLOAD : Paramètres concernant l'attachement de + fichiers aux réunions + + accepted_files : Tableau des extensions qui sont autorisées. + +3.3 Initialisation de la base + +Tous les fichiers nécessaires sont rangés dans le +dossier "install". Vous utiliserez principalement le +fichier "RAZBase.php". Appelé au travers du serveur web, +il vous permettra automatiquement de mettre en place la +structure de la base de données, et optionnellement, +d'insérer un jeu d'essai pour tester l'application sur +votre serveur. Si vous ne souhaitez pas utiliser de +compte SQL ayant le droit d'altérer la structure des +tables de votre base avec ce script php, vous pouvez +exécuter le script "base.sql" avec votre client SQL +favori. Le jeu d'essai se trouve dans le fichier "jeu_essai.sql". + +Vous devriez supprimer ce répertoire dès que +l'installation sera terminée car il peut poser des +problèmes de sécurité car le fichier "RAZBase.php" +pourrait être lancé par n'importe qui, et les fichiers +SQL contienent des informations sensibles. + +3.4 Configuration par défaut des comptes + +Dans le fichier de configuration modèle, un +super-utilisateur est configuré : +inglebert@iut-blagnac.fr et le jeu d'essai proposé au +paragraphe précédent permet de créer des utilisateurs, +et en particulier inglebert@iut-blagnac.fr. + +Par défaut, vous pourrez donc vous connecter en tant +qu'administrateur avec ce compte. Le jeu d'essai met ce +compte avec comme mode d'authentification "bypass", ce +qui signifie qu'aucun mot de passe n'est nécessaire. +Pour utiliser un vrai système d'authentification, +connectez-vous avec ce compte et allez dans la page "Mon Profil" + pour choisir une autre mode d'authentification. + +4 Maintenance + +4.1 Visualisation des objets et des fichiers + +Une page d'administration est prévue à cet effet, et +elle n'est accessible que par un "super-utilisateur", +c'est à dire un utilisateur consigné dans le fichier de +configuration principal en tant que tel, confère [sub:Configuration]. + +4.2 Nettoyage de la base + +À partir de la page d'administration décrite dans le +paragraphe précédent, vous pouvez aussi purger les +fichiers attachés et les objets de la base de données +devenus obsolètes. L'aide contextuelle de cette page +vous expliquera comment faire. Il est vivement +conseillé de faire une sauvegarde de la base de données +et des fichiers joints aux réunions avant d'utiliser +cet outil car l'erreur de manipulation ou de +programmation est toujours possible... + +5 Authentification dédiée - Personnalisation + +AWOR utilise un système d'authentification dédiée de +sorte qu'aucun mot de passe ne soit stocké, et que +l'utilisateur n'ait pas besoin d'en retenir un nouveau. +Le code d'authentification à été écrit de manière à +être maléable et est extensible. Le coeur du système +d'authentification se trouve dans le fichier "auth_dialog.php" +. Vous y trouverez une section commençant par le +commentaire ci-dessous. + +/*************************************************** + +** Ajouter d'autres mode d'authentification ici ! ** + +***************************************************/ + +Comme l'indique ce commentaire, vous pourrez ajouter à +cet endroit une portion de code pour utiliser un autre +service d'authentification. La syntaxe est la suivante : + +case '': + +/* Eventuellement du code préléminaire */ + +$auth_is_ok=; + +if ( ! $auth_is_ok ) + +{ // Si l'authentificaiton à échouée + +$errmsg=; + +} + +break; + +Il vous suffit de remplacer les éléments entre chevrons +dans le code ci-dessus et de le coller dans "auth_dialog.inc.php" + pour pouvoir utiliser un nouveau mode +d'authentification. Reste à donner à l'utilisateur la +capacité de l'utiliser. Vous devrez encore, d'une part, +ajouter dans la base de données le à +l'énumération du champ "methodeAuth" de la table "Personne" +, et d'autre part proposer à l'utilisateur d'utiliser +ce mode d'authentification en modifiant la page "profil.php". diff --git a/final/install/index.html b/final/install/index.html new file mode 100644 index 0000000..e69de29 diff --git a/final/install/jeu_essai.sql b/final/install/jeu_essai.sql index 889d4f6..7723733 100644 --- a/final/install/jeu_essai.sql +++ b/final/install/jeu_essai.sql @@ -1,2 +1,114 @@ --- phpMyAdmin SQL Dump --- TODO !! +-- +-- Base de données: `awor` +-- + +-- -------------------------------------------------------- +-- +-- Contenu de la table `AWOR_Appartenir` +-- +DELETE FROM `AWOR_Appartenir`; +INSERT INTO `AWOR_Appartenir` (`idL`, `idP`) VALUES (1, 2), +(1, 3), +(1, 4), +(1, 5), +(2, 1), +(2, 2), +(2, 4), +(2, 5), +(3, 1), +(3, 2), +(3, 3), +(4, 1), +(4, 4), +(4, 5), +(5, 1), +(5, 4), +(5, 5), +(6, 1), +(6, 2), +(6, 3), +(8, 1), +(8, 2), +(8, 3), +(8, 4); + +-- -------------------------------------------------------- +-- +-- Contenu de la table `AWOR_Choisir` +-- +DELETE FROM `AWOR_Choisir`; +INSERT INTO `AWOR_Choisir` (`idC`, `idP`, `estDispo`) VALUES (1, 3, 'oui'), +(6, 1, 'oui'), +(7, 1, 'non'), +(1, 2, 'oui'), +(2, 2, 'non'), +(3, 2, 'oui'), +(4, 2, 'non'), +(5, 2, 'oui'); + +-- -------------------------------------------------------- +-- +-- Contenu de la table `AWOR_Creneau` +-- +DELETE FROM `AWOR_Creneau`; +INSERT INTO `AWOR_Creneau` (`idC`, `dateHeure`, `duree`, `idR`) VALUES (1, '2007-04-01 07:45:00', 645, 1), +(2, '2007-04-03 09:15:00', 75, 1), +(3, '2007-04-10 09:15:00', 75, 1), +(4, '2007-04-17 09:15:00', 75, 1), +(5, '2007-04-24 09:15:00', 75, 1), +(6, '2007-06-20 10:10:00', 80, 2), +(7, '2007-06-25 12:00:00', 30, 2), +(8, '2007-04-25 00:00:00', 0, 4); + +-- -------------------------------------------------------- +-- +-- Contenu de la table `AWOR_Fichier` +-- +DELETE FROM `AWOR_Fichier`; +INSERT INTO `AWOR_Fichier` (`idFic`, `nomFic`, `idR`) VALUES (1, 'r1_READ_ME.pdf', 1), +(2, 'r2_IUP MER.txt', 2); + +-- -------------------------------------------------------- +-- +-- Contenu de la table `AWOR_Liste` +-- +DELETE FROM `AWOR_Liste`; +INSERT INTO `AWOR_Liste` (`idL`, `libelleL`, `estPrivee`, `idP_Createur`) VALUES (1, 'interne_idR_1', 'oui', NULL), +(2, 'interne_idR_2', 'oui', NULL), +(3, 'Amis', 'oui', 3), +(4, 'interne_idR_3', 'oui', NULL), +(5, 'interne_idR_4', 'oui', NULL), +(6, 'Créateurs d''AWOR', 'oui', 1), +(7, 'interne_idR_5', 'oui', NULL), +(8, 'MaListePerso', 'oui', 2); + +-- -------------------------------------------------------- +-- +-- Contenu de la table `AWOR_Personne` +-- +DELETE FROM `AWOR_Personne`; +INSERT INTO `AWOR_Personne` (`idP`, `courrielP`, `loginP`, `nomP`, `prenomP`, `estAdmin`, `methodeAuth`) VALUES (1, 'lpouzenc@wanadoo.fr', 'lpouzenc', 'Pouzenc', 'Ludovic', 'oui', 'pop'), +(2, 'jeremie.denoyer@etu.iut-blagnac.fr', 'jeremie.denoyer', 'jeremie', 'denoyer', 'non', 'pop'), +(3, 'julien.sere@free.fr', 'julien.sere', 'Julien', 'Sere', 'non', 'pop'), +(4, 'soule@iut-blagnac.fr', 'soule@iut-blagnac.fr', 'Soulé', 'Geneviève', 'non', 'pop'), +(5, 'inglebert@iut-blagnac.fr', 'inglebert@iut-blagnac.fr', 'Inglebert', 'Jean-Michel', 'non', 'bypass'); + +-- -------------------------------------------------------- +-- +-- Contenu de la table `AWOR_Repondre` +-- +DELETE FROM `AWOR_Repondre`; +INSERT INTO `AWOR_Repondre` (`idR`, `idP`, `commentaireReponse`) VALUES (1, 1, 'Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...Test de commentaire un peu long...'), +(1, 3, 'Un commentaire à [ | ) @ {[| @#~{[#`|['), +(3, 1, 'Réunion juste pour le test...'); + +-- -------------------------------------------------------- +-- +-- Contenu de la table `AWOR_Reunion` +-- +DELETE FROM `AWOR_Reunion`; +INSERT INTO `AWOR_Reunion` (`idR`, `objetR`, `ordreJourR`, `lieuR`, `remarquesR`, `montrerDispoR`, `estAnnulee`, `idP_Orga`, `idC_Fixe`, `idL`) VALUES (1, 'Recette du projet tuteuré', 'Recette de cette magnifique application :-)', 'Salle 219', 'Aucune', 'non', 'non', 1, NULL, 1), +(2, 'Renseignez', NULL, NULL, NULL, 'non', 'non', 3, NULL, 2), +(3, 'Réunion annulée - essais', '', 'Nullepart', '', 'oui', 'oui', 1, NULL, 4), +(4, 'Réunion fixée pour tester', '', '', '', 'non', 'non', 1, 8, 5), +(5, 'Renseignez', NULL, NULL, NULL, 'non', 'non', 2, NULL, 7); diff --git a/final/sed.rl b/final/sed.rl deleted file mode 100644 index e93250b..0000000 --- a/final/sed.rl +++ /dev/null @@ -1,6 +0,0 @@ -s/é/\é/ -s/è/\è/ -s/ê/\ê/ -s/ù/\ù/ -s/à/\à/ - diff --git a/final/sed.sh b/final/sed.sh deleted file mode 100644 index ae75b59..0000000 --- a/final/sed.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -echo $1 -cp $1 $1_bkp - -sed -f sed.rl $1_bkp > $1 - -for ((i=0;i<10;i++)) -do - sed -f sed.rl $1 > $1_old - sed -f sed.rl $1_old > $1 -done -rm $1_old -rm $1_bkp - diff --git a/final/test.txt b/final/test.txt deleted file mode 100644 index b290a3d..0000000 --- a/final/test.txt +++ /dev/null @@ -1 +0,0 @@ -2àùèé diff --git a/final/test.txt_bkp b/final/test.txt_bkp deleted file mode 100644 index b290a3d..0000000 --- a/final/test.txt_bkp +++ /dev/null @@ -1 +0,0 @@ -2àùèé diff --git a/final/test.txt_old b/final/test.txt_old deleted file mode 100644 index b290a3d..0000000 --- a/final/test.txt_old +++ /dev/null @@ -1 +0,0 @@ -2àùèé diff --git a/final/upload_files/index.html b/final/upload_files/index.html new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3