diff --git a/GDN100/24-09-27/Cours MANAGEMENT DE PROJET - VE Chap 1 TP1 - 20240926.pdf b/GDN100/24-09-27/Cours MANAGEMENT DE PROJET - VE Chap 1 TP1 - 20240926.pdf new file mode 100644 index 0000000..cc75b2e Binary files /dev/null and b/GDN100/24-09-27/Cours MANAGEMENT DE PROJET - VE Chap 1 TP1 - 20240926.pdf differ diff --git a/GDN100/24-09-27/Présentation – Copie.pdf b/GDN100/24-09-27/Présentation – Copie.pdf new file mode 100644 index 0000000..032b858 Binary files /dev/null and b/GDN100/24-09-27/Présentation – Copie.pdf differ diff --git a/GDN100/24-09-27/README.md b/GDN100/24-09-27/README.md new file mode 100644 index 0000000..68707a8 --- /dev/null +++ b/GDN100/24-09-27/README.md @@ -0,0 +1,23 @@ +# GND100-27-09-24 + +## Qu'est-ce qu'un projet ? + +### Des instances : + +Les différentes instance : + +* La direction général doit être appliqué. +Le comité de pilotage +* Rassurer le client, être honête, rassurer, ou on en est, ce qu'il reste. +* equipe projet, +* les pilotes + +a partir d'un certaine taille d'une entreprise, on peut retrouver un cohoridinateur. + +La Loi de 80/20% + + + +TP : + +Eddie Obeng est un entrepreneur, éducateur et auteur reconnu pour ses travaux sur le management et l'innovation. Il est le fondateur de l'école de management "Pentacle" et a développé des concepts sur la façon de naviguer dans un monde en constante évolution, en mettant l'accent sur la créativité et la collaboration. Ses conférences et publications portent souvent sur l'importance de l'adaptabilité et de l'apprentissage continu dans le milieu professionnel. Si tu cherches des informations spécifiques sur ses travaux ou ses idées, n'hésite pas à demander ! \ No newline at end of file diff --git a/GDN100/24-09-27/TP1 - 01-9.03.pptx b/GDN100/24-09-27/TP1 - 01-9.03.pptx new file mode 100644 index 0000000..5c2e4f6 Binary files /dev/null and b/GDN100/24-09-27/TP1 - 01-9.03.pptx differ diff --git a/GDN100/25-01-08/Cours MANAGEMENT DE PROJET - VE Chap1à3 TP2 - 20250107.pdf b/GDN100/25-01-08/Cours MANAGEMENT DE PROJET - VE Chap1à3 TP2 - 20250107.pdf new file mode 100644 index 0000000..ccf39a4 Binary files /dev/null and b/GDN100/25-01-08/Cours MANAGEMENT DE PROJET - VE Chap1à3 TP2 - 20250107.pdf differ diff --git a/GDN100/25-01-08/README.md b/GDN100/25-01-08/README.md new file mode 100644 index 0000000..82d5f0a --- /dev/null +++ b/GDN100/25-01-08/README.md @@ -0,0 +1,4 @@ +# GND100-08-01-25 + +## Les fondamentaux du management de projet + diff --git a/GDN100/25-01-08/TP2 - 02-3.04.pptx b/GDN100/25-01-08/TP2 - 02-3.04.pptx new file mode 100644 index 0000000..6cc97ec Binary files /dev/null and b/GDN100/25-01-08/TP2 - 02-3.04.pptx differ diff --git a/GDN100/25-03-06/Cours MANAGEMENT DE PROJET - VE Chap1à5 20250306.pdf b/GDN100/25-03-06/Cours MANAGEMENT DE PROJET - VE Chap1à5 20250306.pdf new file mode 100644 index 0000000..ab742f9 Binary files /dev/null and b/GDN100/25-03-06/Cours MANAGEMENT DE PROJET - VE Chap1à5 20250306.pdf differ diff --git a/GDN100/25-04-17/Cours MANAGEMENT DE PROJET - VE 20250417.pdf b/GDN100/25-04-17/Cours MANAGEMENT DE PROJET - VE 20250417.pdf new file mode 100644 index 0000000..cd8ba7f Binary files /dev/null and b/GDN100/25-04-17/Cours MANAGEMENT DE PROJET - VE 20250417.pdf differ diff --git a/GDN100/README.md b/GDN100/README.md new file mode 100644 index 0000000..5f9bf37 --- /dev/null +++ b/GDN100/README.md @@ -0,0 +1,6 @@ +# GDN 100 Management + +* [27/09/24](./GDN100-27-09-24/) +* [08/01/25](./GDN100-08-01-25/) +* [06/03/25](./GDN100-06-03-25/) +* [17/04/25](./GDN100-17-04-25/) diff --git a/NFE114/25-03-05/README.md b/NFE114/25-03-05/README.md new file mode 100644 index 0000000..ec790f2 --- /dev/null +++ b/NFE114/25-03-05/README.md @@ -0,0 +1,32 @@ +# NFE114 05 03 2025 + +## Différente méthode + +- Méthode en V, la classque +- Methode Agile + +Etre agil, c'est surtout, concidérer le bien être. +Accorder une grande importance sur l'avis client. +Avoir une productivité efficace. + +## Commeent commencer un projet : + +* Besoins +* Analyse des besoins +* Etude de faisabilités +* Expression de Besoin +* Cahier des charges +* Expression fonctionnelles +* Etude +* Modelisation +* Developpement + +## La Méthode Agil + +Créé en 2001 par 17 consultants +Découper le besoin et prioriser +Découper la réalisation +- Livrer fréquemment des incréments de produit +- Accepter les changement +Controller régulièrement les changements. + diff --git a/NFE114/25-04-16/Image.png b/NFE114/25-04-16/Image.png new file mode 100644 index 0000000..2a58a60 Binary files /dev/null and b/NFE114/25-04-16/Image.png differ diff --git a/NFE114/25-04-16/README.md b/NFE114/25-04-16/README.md new file mode 100644 index 0000000..b8ffc17 --- /dev/null +++ b/NFE114/25-04-16/README.md @@ -0,0 +1,39 @@ +# NFE114 16 04 2025 + +## Agilité + +Représente les 3 éléments : + +- Lesindividus et leur interactions +- Des logiciels opérationnels +- L'adaptation au changement + +Product BackLog : +Product Owner : +Sprint backlog : +Equipe : +Daily meeting : +Sprint : +Produit lirable : + +## Scrum + +USER STORIES : + +| En tant que | Je voudrais | Afin de | +| :---------------: |:---------------:| :-----:| +| Visiteur | Visualiser la page d'acceuil | Voir les dernière offre du moment | +| Visiteur | Chercher un restaurant | Trouver un endroit ou manger | +| Visiteur | Vérifier les restaurants autour de moi | Trouver un endroit ou manger | +| Visiteur | M'inscrir | Pouvoir reserver un restaurant | +| Visiteur | Me connecter | Pouvoir reserver un restaurant | +| Membre | Pouvoir reserver un restaurant | Organiser un repas en restaurant | +| Membre | D'accèder a un profil | Pouvoir changer mes données | +| Membre | Supprimer mon compte | Pouvoir converserver mon anonyma sur internet | +| Modératuer | Ajouter une annonce | Promouvoir un restaurant | +| Admnistrateur | Accèder au back office | Pouvoir gérer les rôles utilisateur | + +![Image](./Image.png) + +quel est m'inportance entre Scrum master et product owner + diff --git a/NFE114/25-04-30/README.md b/NFE114/25-04-30/README.md new file mode 100644 index 0000000..141786c --- /dev/null +++ b/NFE114/25-04-30/README.md @@ -0,0 +1,2 @@ +# NFE114 30 04 25 + diff --git a/NFE114/25-06-12/README.md b/NFE114/25-06-12/README.md new file mode 100644 index 0000000..cdefe42 --- /dev/null +++ b/NFE114/25-06-12/README.md @@ -0,0 +1,19 @@ +# NFE114 12 06 25 + +## Date exam + +NFE114 23 Juin Mr Larcher ou Madame Kanaoui +RSX101 27 juin après midi Mr Karouit +NSY104 8 Juillet Matin Mr Kourital +Sec102 CC +Sec101 Jeudi 7/10/11 Septembre Mr LARCHER +RSX112 Vendredi 7/10/11 Septembre Mr LARCHER + +## Soutenance : + +Fin juin + +Entreprise, Service, Mission, + +## NFE114 : + diff --git a/NFE114/README.md b/NFE114/README.md new file mode 100644 index 0000000..0d51b40 --- /dev/null +++ b/NFE114/README.md @@ -0,0 +1,3 @@ +# NFE114 Système d'information Web + +* [05/03/25](./NFE114-05-03-25) \ No newline at end of file diff --git a/NFE114/Revision/README.md b/NFE114/Revision/README.md new file mode 100644 index 0000000..d21cd83 --- /dev/null +++ b/NFE114/Revision/README.md @@ -0,0 +1,191 @@ +# Revision NFE114 + +## Agil + +>origine USA, en 2001 + +### Les étapes d’un projet classique + +- besoin +- analyse des besoins +- etude de faisabilité +- expression des besoins +- cahier des charges +- expression fonctionnel +- etude +- modelisation +- dev + +### Faiblesses méthode classique : + +- peu d’adaptation aux changement du client +- peu de relation avec le client +- faible gestion de l’incertitude et du risque + +### Objectif de l’agilité : + +- trouver un compromis entre minimum de méthode tout en restant adaptable et créatif +- accepter le changement des besoins et être capable d’y répondre +- privilégier le code plutôt que la documentation + +### Les moyens : +- utiliser un dev iteratif et incrémental +- decouper le besoin et prioriser +- decouper la réalisation : livrer fréquemment des incrément de produit, accepter les changement +-controler régulièrement l’avancement avec les parties prenantes + +Def partie prenante : `personne qui est intéressé d’une façon ou d’une autre par le produit réalisé par l’ équipe` + +### Manifeste Agile + +- Individus et interactions -plutot-que-> Procédures et outils +- Un logiciel fonctionne -plutot-que-> Documentation exhaustive +- Collaboration avec le clien -plutot-que-> Négociation du contrat +- Adaptation au changement -plutot-que-> Exécution d'un plan + +![tradicionelVSAgil](./tradicionelVSAgil.png) + +### Facteurs de succès des méth. agiles + +- Le client / l’utilisateur (ou son représentant) est impliqué quotidiennement +- Le management intermédiaire soutient l’équipe +- L’équipe est auto-organisée +- Les pratiques sont adaptées au mode incrémental + - "Des tests automatisés : rejoués souvent + - Code compréhensible car va être sans doute modifié + - Code collectif + +### Attentes et bénéfices des Méth Agiles + +#### Attentes +1. Accélérer la livraison des logiciels et leur mise sur le marché (75%) +2. Bien gérer les changements de priorité dans les besoins des utilisateurs (64%) +3. Accroître la productivité des équipes (55%) +4. Mieux aligner les attentes du Métier et de la DSI (49%) +5. Améliorer la qualité du code produit (46%) + +#### Bénéfices + +1. Bien gérer les changements de priorité dans les besoins des utilisateurs (71%) +2. Avoir une bonne visibilité des projets +3. Mieux aligner les attentes du Métier et de la DSI (65%) +4. Accélérer la livraison des logiciels et leur mise sur le marché (62%) +5. Accroître la productivité des équipes (61%) + +## Scrum + +### ROLES SCRUM + +- PRODUCT OWNER + + - Définit les caractéristiques du produit + - Décide de la date de livraison et du contenu + - Responsable du retour sur investissement du produit + - Priorise les fonctions conformément à leurs valeurs business + - Ajuste les priorités pour chaque sprint + - Accepte ou rejette les résultats + +- SCRUM MASTER + + - Responsable de la mise en œuvre des valeurs et des pratiques de SCRUM + - Eliminer les obstacles + - S’assurer que l’équipe est fonctionnelle et productive + - Permettre la bonne coopération entre les divers rôles et fonctions + - Protéger l’équipe de toute intervention extérieure + +- EQUIPE DE DÉVELOPPEMENT + + - Entre 5 et 9 personnes + - Pluridisciplinaire + - Dédiée au projet + - Auto organisée + +- PARTIES PRENANTES + + - Personne, ou groupe de personnes qui a des intérêts sur un projet et qui est concerné par les résultats obtenus + - Exemple de parties prenantes : + - Marché + - Client final / utilisateur + - Stratégie d’innovation + - Autres équipes de l’entreprise + +- UTILISATEURS + + - Expert + - Source d’information privilégiée pour + - Priorité + - Détails des fonctionnalités + +### CÉRÉMONIES + +![sprint](./sprint.png) + +#### SPRINT PLANNING : PARTIE 1 + +Role : PRODUCT OWNER, SCRUM MASTER, EQUIPE DE DÉVELOPPEMENT, PARTIES PRENANTES +Temps : 90 min + +- Présentation de l’objectif du sprint +- Présentation des stories +- Construction du backlog de sprint +- Engagement de l’équipe + +#### SPRINT PLANNING : PARTIE 2 + +Role : SCRUM MASTER, EQUIPE DE DÉVELOPPEMENT +Temps : 60 min + +- Conception en équipe +- Découpage en tâche +- Estimation des tâches + +#### MÊLÉE QUOTIDIENNE + +>C'est un daily + +Role : SCRUM MASTER, EQUIPE DE DÉVELOPPEMENT +Temps : 15 min, tout les jours + +- Qu’ai-je fait hier ? +- Que vais-je faire aujourd’hui ? +- Est-ce que je rencontre des obstacles ? + +#### DÉMONSTRATION + +Role : PRODUCT OWNER, SCRUM MASTER, EQUIPE DE DÉVELOPPEMENT, PARTIES PRENANTES, UTILISATEURS +Temps : 90 min + +- Chacun présente ce qu’il a fait +- Le PO accepte ou rejette les résultats +- Le PO note les retour + +#### RÉTROSPECTIVE + +- Mise en condition +- Revue des précédentes actions +- Rassembler les données +- Chercher des idées +- Plan d’action + +## USER STORIES + +`« En tant que, j'aimerai, afin de »` + +![userstories](./userstories.PNG) + +| En tant que | je voudrais | afin de | +|:--|:--|:--| +| Invité | pouvoir me créer un compte | créer un compte | +| Technicien | pouvoir ajouter des tickets à mon tableau | pouvoir accéder à mes tickets | +| Technicien | pouvoir ajouter des tickets à mon tableau | pouvoir tracer les interventions | +| Technicien | pouvoir modifier mes tickets | rectifier et décrire l’avancée d’un ticket | +| Technicien | pouvoir organiser mes tickets | d’être organisé | +| Technicien | pouvoir créer plusieurs tableaux Kanban | séparer les différents projets | +| Technicien | pouvoir m’authentifier | d’accéder à l’application | +| Technicien | pouvoir ajouter des images à un ticket | ajouter des détails à mon ticket | +| Technicien | pouvoir rechercher mes tickets | retrouver mes anciens tickets | +| Chef d’équipe | pouvoir assigner des tickets | mieux gérer la résolution de ticket | +| Chef d’équipe| pouvoir m’authentifier | accéder à l’application | +| Chef d’équipe | pouvoir faire tout ce qu’un technicien peut faire | accès aux mêmes fonctionnalités | +| Administrateur | pouvoir gérer les rôles des utilisateurs | attribuer la bon rôle au bon utilisateur | +| Administrateur | je veux pouvoir m’authentifier | accéder à l’application | diff --git a/NFE114/Revision/sprint.png b/NFE114/Revision/sprint.png new file mode 100644 index 0000000..5375a8b Binary files /dev/null and b/NFE114/Revision/sprint.png differ diff --git a/NFE114/Revision/tradicionelVSAgil.png b/NFE114/Revision/tradicionelVSAgil.png new file mode 100644 index 0000000..457ed97 Binary files /dev/null and b/NFE114/Revision/tradicionelVSAgil.png differ diff --git a/NFE114/Revision/userstories.PNG b/NFE114/Revision/userstories.PNG new file mode 100644 index 0000000..d7a6c38 Binary files /dev/null and b/NFE114/Revision/userstories.PNG differ diff --git a/NFE114/TD/TD-Ticket.md b/NFE114/TD/TD-Ticket.md new file mode 100644 index 0000000..57e8aac --- /dev/null +++ b/NFE114/TD/TD-Ticket.md @@ -0,0 +1,16 @@ +| En tant que | je voudrais | afin de | +|:--|:--|:--| +| Invité | pouvoir me créer un compte | créer un compte | +| Technicien | pouvoir ajouter des tickets à mon tableau | pouvoir accéder à mes tickets | +| Technicien | pouvoir ajouter des tickets à mon tableau | pouvoir tracer les interventions | +| Technicien | pouvoir modifier mes tickets | rectifier et décrire l’avancée d’un ticket | +| Technicien | pouvoir organiser mes tickets | d’être organisé | +| Technicien | pouvoir créer plusieurs tableaux Kanban | séparer les différents projets | +| Technicien | pouvoir m’authentifier | d’accéder à l’application | +| Technicien | pouvoir ajouter des images à un ticket | ajouter des détails à mon ticket | +| Technicien | pouvoir rechercher mes tickets | retrouver mes anciens tickets | +| Chef d’équipe | pouvoir assigner des tickets | mieux gérer la résolution de ticket | +| Chef d’équipe| pouvoir m’authentifier | accéder à l’application | +| Chef d’équipe | pouvoir faire tout ce qu’un technicien peut faire | accès aux mêmes fonctionnalités | +| Administrateur | pouvoir gérer les rôles des utilisateurs | attribuer la bon rôle au bon utilisateur | +| Administrateur | je veux pouvoir m’authentifier | accéder à l’application | \ No newline at end of file diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/diapos5.py b/NSY104/25-01-09/A1M1S1P3 - numeration_base/diapos5.py new file mode 100644 index 0000000..6785eb6 --- /dev/null +++ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/diapos5.py @@ -0,0 +1,13 @@ +#!/usr/bin/python3 + +nbDecimal = int(input("Donner un nombre entier à convertir en binaire : ")) +nbBinaire = [] + +tmp = nbDecimal + +while tmp != 0: + reste = tmp % 2 + nbBinaire.append(reste) + tmp = tmp // 2 +nbBinaire.reverse() +print("({})b10 = ({})b2".format(nbDecimal, nbBinaire)) diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/diapos5.py~ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/diapos5.py~ new file mode 100644 index 0000000..ed9839f --- /dev/null +++ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/diapos5.py~ @@ -0,0 +1,11 @@ +nbDecimal = int(input("Donner un nombre entier à convertir en binaire : ")) +nbBinaire = [] + +tmp = nbDecimal + +while tmp != 0: + reste = tmp % 2 + nbBinaire.append(reste) + tmp = tmp // 2 +nbBinaire.reverse() +print("({})b10 = ({})b2".format(nbDecimal, nbBinaire)) diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin.py b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin.py new file mode 100644 index 0000000..c5b3d0a --- /dev/null +++ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin.py @@ -0,0 +1,15 @@ +#!/usr/bin/python3 + +''' conversion partie fractionnaire d'un nombre décimal en binaire ''' + +def calcul(nbDec): + digit = [] + while nbDec != 0: + nbDec *= 2 + digit.append((int(nbDec))) + nbDec = nbDec - int(nbDec) + return digit + +if __name__ == '__main__': + nbDec = float(input("Donner le nombre décimal à convertir : ")) + print(calcul(nbDec)) diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin.py~ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin.py~ new file mode 100644 index 0000000..e8bedc1 --- /dev/null +++ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin.py~ @@ -0,0 +1,15 @@ +#!/usr/bin/python3 + +''' conversion partie fractionnaire d'un nombre décimal en binaire ''' + +def calcul(nbDec): + digit = [] + while nbDec != 0: + nbDec *= 2 + digit.append((int(nbDec))) + nbDec = nbDec - int(nbDec) + return digit + +if __name__ == '__main__': +nbDec = float(input("Donner le nombre décimal à convertir : ")) +print(calcul(nbDec)) diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin2.py b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin2.py new file mode 100644 index 0000000..c5b3d0a --- /dev/null +++ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin2.py @@ -0,0 +1,15 @@ +#!/usr/bin/python3 + +''' conversion partie fractionnaire d'un nombre décimal en binaire ''' + +def calcul(nbDec): + digit = [] + while nbDec != 0: + nbDec *= 2 + digit.append((int(nbDec))) + nbDec = nbDec - int(nbDec) + return digit + +if __name__ == '__main__': + nbDec = float(input("Donner le nombre décimal à convertir : ")) + print(calcul(nbDec)) diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin2.py~ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin2.py~ new file mode 100644 index 0000000..c5b3d0a --- /dev/null +++ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin2.py~ @@ -0,0 +1,15 @@ +#!/usr/bin/python3 + +''' conversion partie fractionnaire d'un nombre décimal en binaire ''' + +def calcul(nbDec): + digit = [] + while nbDec != 0: + nbDec *= 2 + digit.append((int(nbDec))) + nbDec = nbDec - int(nbDec) + return digit + +if __name__ == '__main__': + nbDec = float(input("Donner le nombre décimal à convertir : ")) + print(calcul(nbDec)) diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin3.py b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin3.py new file mode 100644 index 0000000..3389579 --- /dev/null +++ b/NSY104/25-01-09/A1M1S1P3 - numeration_base/fracTobin3.py @@ -0,0 +1,16 @@ +#!/usr/bin/python3 + +''' conversion partie fractionnaire d'un nombre décimal en binaire ''' + +def calcul(nbDec): + digit = [] + nbDec = nbDec - int(nbDec) + while nbDec != 0: + nbDec *= 2 + digit.append((int(nbDec))) + nbDec = nbDec - int(nbDec) + return digit + +if __name__ == '__main__': + nbDec = float(input("Donner le nombre décimal à convertir : ")) + print(calcul(nbDec)) diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base.pdf b/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base.pdf new file mode 100644 index 0000000..ec5ae5d Binary files /dev/null and b/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base.pdf differ diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base.ppt b/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base.ppt new file mode 100644 index 0000000..fd34c69 Binary files /dev/null and b/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base.ppt differ diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base_komo.ppt b/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base_komo.ppt new file mode 100644 index 0000000..a2559a1 Binary files /dev/null and b/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base_komo.ppt differ diff --git a/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base_presentation-2012-2013.ppt b/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base_presentation-2012-2013.ppt new file mode 100644 index 0000000..5c62c8f Binary files /dev/null and b/NSY104/25-01-09/A1M1S1P3 - numeration_base/numeration_base_presentation-2012-2013.ppt differ diff --git a/NSY104/25-01-09/README.md b/NSY104/25-01-09/README.md new file mode 100644 index 0000000..05dd2cc --- /dev/null +++ b/NSY104/25-01-09/README.md @@ -0,0 +1,73 @@ +# NSY104 09 01 2025 + +> Le Module est un 100% parcielle, il n'y a pas e devoir maison. + +## Numération de base + +### Addition Binaire : + +01101+10111 = 100100 + +### Soustraction Binaire : + +1101110-10111 = 1010111 + +Voir des video car le prof explique ... commme à son habitude. + +### Exercice : + +#### 2.1 : + +397 = 110001101 +133 = 10000101 +110 = 1101110 + +101 = 5 +0101 = 5 +1101110 = 110 + +#### 2.2 + +a) 1100+1000 = + + 1100 + +1000 + ------ + 10100 + +b) 1001+1011 = + + 1001 + +1011 + ------ + 10100 + +c) 1100-1000 = + + 1100 + -1000 + ------ + 0100 + +d) 1000-101 = + + 1000 + - 101 + ------ + 0011 + +e) 1+1+1+1 = + + 1 1 10 + + 1 -> + 1 -> + 10 + ---- ---- ---- + 10 10 100 + +#### 2.3 + +a) 1011*11 + + 1011 + * 11 + ---- + \ No newline at end of file diff --git a/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/Depassement.java b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/Depassement.java new file mode 100644 index 0000000..b9209c1 --- /dev/null +++ b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/Depassement.java @@ -0,0 +1,36 @@ +/* +Ce programme initialise la variable n à 10, et l’élève au carré plusieurs fois. Les valeurs +affichées devraient donc être toutes des puissances de 10, mais en exécutant le programme, +vous verrez que ce n’est pas le cas pour les dernières valeurs, qui sont trop grandes pour +être représentées correctement par le type int. Vous pouvez également changer le type de +n de int à long et short pour voir l’impact sur les valeurs calculées. +Soyez donc vigilants quand votre programme doit travailler avec de grandes valeurs ! + +Les entiers : +byte : 1 octet de – 128 à 127 +short : 2 octets de – 32 768 à 32 767 +int : 4 octets de – 2 147 483 648 à 2 147 483 647 +long : 8 octets de – 9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 + +Les réels : +float : 4 octets de 1.40239846e-45F à 3.402823347e38F +double : 8 octets de 4.94065645841246544e-324D à 1.79769313486231570e308D + +Note : Pour utiliser les valeurs limites en Java, on peut utiliser les constantes suivantes : +- Integer.MAX_VALUE +- Double.MAX_VALUE + +*/ + + +public class Depassement { + + public static void main(String[] args) { + int n = 10; + System.out.println( n ); + for (int i = 0; i < 5; i++){ + n = n * n; + System.out.println( n ); + } + } +} diff --git a/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/Imprecision.java b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/Imprecision.java new file mode 100644 index 0000000..d619ab3 --- /dev/null +++ b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/Imprecision.java @@ -0,0 +1,56 @@ + + +public class Imprecision { + public static void main(String[] args) { + test1(); + test2(); + test3(); + + }//main + +static void test1(){ + +/*Si le type double pouvait représenter parfaitement les valeurs réelles, ce programme +afficherait 0. Or, sur mon ordinateur, j’obtiens environ la valeur 7.10E−15 , qui est une valeur +très petite mais pas nulle. C’est parce que la variable racine ne peut stocker exactement +la racine de a, et donc l’expression racine * racine ne vaut pas exactement a. +*/ + + + double a = 37.0; + double racine = Math.sqrt(a); + System.out.println("test1 : " + (a - racine * racine) ); +}//test1 + +static void test2(){ + +/*C’est pour ça que les tests d’égalité ou d’inégalité entre double (ou float) NE DEVRAIENT PAS ÊTRE utilisés. +Par exemple, le code suivant, n’affiche rien, contrairement à ce qu’on pourrait s’attendre. +*/ + + double a = 37.0; + double racine = Math.sqrt(a); + if (a == racine * racine) { + System.out.println( "test2 : ok" ); + } + else System.out.println("test2 : pas ok !"); +}//test2 + +static void test3(){ + +/*Si vous devez absolument comparer des valeurs de type double vous pouvez utiliser un test tel que celui-ci :*/ + + double a = 37.0; + double racine = Math.sqrt(a); + double epsilon = 7.105427357601003E-15; // test1() donne pour (a - racine * racine) = 7.105427357601002E-15 + if (Math.abs(a - racine * racine) < epsilon) { + System.out.println( "test3 : ok" ); + } + +/*où epsilon est une très petite valeur et abs calcule la valeur absolue. Cette valeur de- +vrait être choisie selon la précision du type utilisé, mais comment déterminer cette valeur +idéalement sort largement du cadre de ce cours.*/ + +}//test3 + +}//class diff --git a/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/compa2.py b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/compa2.py new file mode 100644 index 0000000..1f30f86 --- /dev/null +++ b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/compa2.py @@ -0,0 +1,25 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +def twos_comp(val, bits): + """compute the 2's compliment of int value val""" + if( (val&(1<<(bits-1))) != 0 ): + val = val - (1< chaîne binaire (si nb>0, complète à gauche par des zéros)""" + if d==0: + b="0" + else: + b="" + while d!=0: + b="01"[d&1]+b + d=d>>1 + return b.zfill(nb) + + + +def dec2bins(d,nb=0): + """dec2bins(d,nb=0): conversion nombre entier signé d -> chaîne binaire pour un mot de nb bits (=0 par defaut) """ + # calcul de la taille mini du mot permettant de représenter la valeur signée d (signe compris) + n=1 + if d>=0: + x=d + else: + x=-d-1 + while (1<=0: + # on renvoie la chaîne normale, complétée par des "0" à gauche et par le bit de signe = "0" + b='0' + dec2bin(d,nb-1) + else: + # on renvoie la chaîne signée, complétée par des "1" à gauche et par le bit de signe "1" + b='1' + dec2bin((1<<(nb-1))+d,(nb-1)) + return b + +# Exemple d'utilisation: +#print dec2bins(4294967292,32) + + +#komo + +entier = int(input('Donner le nombre entier à convertir : ')) +form = int(input('Donner le format de conversion : ')) +print dec2bins(entier,form) diff --git a/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/overflow.c b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/overflow.c new file mode 100644 index 0000000..9f12d9d --- /dev/null +++ b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/overflow.c @@ -0,0 +1,70 @@ +#include + +/*On peut consulter le fichier /usr/include/limits.h pour connaître les valeurs limites des différents types. + + +Type Occupation mémoire Plage de valeur + +char 1 octet –128 to 127 + +int 2 à 4 octets + selon implémentation + +short 2 octet –32,768 to 32,767 + +long 4 octet –2,147,483,648 to 2,147,483,647 + +unsigned char 1 octet 0 to 255 + +unsigned int 2 à 4 octets + selon implémentation + +unsigned short 2 octet 0 to 65,535 + +unsigned long 4 octet 0 to 4,294,967,295 + +float 4 octet ±3.4 x 10e38 to ±3.4 x 10e–38 + +double 8 octet ±1.7 x 10e–308 to ±1.7 x 10e308 + +long double 10 octet ±3.4 x 10e–4932 to ±3.4 x 10e4932 + +*/ +int main(){ + int entier = 4294967292; + int entier2 = 129; // sur 4 octets de 0 a 2147483647 et de -1 a -2147483648 + char car = 'A'; //sur un octet de 0 a 127 et de -1 a -128 + + printf(" taille car= %d\n", sizeof( car )); + printf(" taille short = %d\n", sizeof( short )); + printf(" taille unsigned short = %d\n", sizeof( unsigned short )); + printf(" taille int = %d\n", sizeof( int )); + printf(" taille unsigned int = %d\n", sizeof( unsigned int )); + printf(" taille long int = %d\n", sizeof( long int )); + printf(" taille unsigned long int = %d\n", sizeof( unsigned long int )); + printf(" taille long long int = %d\n", sizeof( long long int )); + printf(" taille unsigned long long int = %d\n", sizeof( unsigned long long int )); + + printf("4 et 4294967292 en tant que nombre sans signe : %u %u\n", 4, entier); + printf("4 et 4294967292 en tant que nombre avec signe : %d %d\n", 4, entier); + +/* +4294967292 -> 11111111111111111111111111111100 +complément à 2 : 00000000000000000000000000000011 + 1 = 00000000000000000000000000000100 -> -4 +*/ + + + /*entier2 = car; + printf("entier = %d\n", entier);*/ + + car = entier2; + printf("car = %d\n", car); + +// printf("A = %x\n", car); //en hexa +// printf("A = %d\n", car); //en decimal + +return 0; + + + + } diff --git a/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres-presentation-2014-2015.ppt b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres-presentation-2014-2015.ppt new file mode 100644 index 0000000..871b449 Binary files /dev/null and b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres-presentation-2014-2015.ppt differ diff --git a/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres_komo-2014-2015.pdf b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres_komo-2014-2015.pdf new file mode 100644 index 0000000..f3d9290 Binary files /dev/null and b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres_komo-2014-2015.pdf differ diff --git a/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres_komo-2014-2015.ppt b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres_komo-2014-2015.ppt new file mode 100644 index 0000000..2245fd3 Binary files /dev/null and b/NSY104/25-02-18/A1M1S1P5_Representation_des_nombres/representation_des_nombres_komo-2014-2015.ppt differ diff --git a/NSY104/25-02-18/README.md b/NSY104/25-02-18/README.md new file mode 100644 index 0000000..162956a --- /dev/null +++ b/NSY104/25-02-18/README.md @@ -0,0 +1,4 @@ +# NSY104 18 02 2025 + +>Reprise du cours du 09/01/2025 + diff --git a/NSY104/25-03-04/README.md b/NSY104/25-03-04/README.md new file mode 100644 index 0000000..d57f750 --- /dev/null +++ b/NSY104/25-03-04/README.md @@ -0,0 +1,6 @@ +# NSY104-04-03-25 + +Reprise "Représentation des nombres" + +C'est sur à l'examen + diff --git a/NSY104/25-03-04/representation_des_nombres_komo-2014-2015.pdf b/NSY104/25-03-04/representation_des_nombres_komo-2014-2015.pdf new file mode 100644 index 0000000..f3d9290 Binary files /dev/null and b/NSY104/25-03-04/representation_des_nombres_komo-2014-2015.pdf differ diff --git a/NSY104/25-05-21/README.md b/NSY104/25-05-21/README.md new file mode 100644 index 0000000..3ecdbf6 --- /dev/null +++ b/NSY104/25-05-21/README.md @@ -0,0 +1,2 @@ +# NSY 104 21 05 2025 + diff --git a/NSY104/25-05-23/README.md b/NSY104/25-05-23/README.md new file mode 100644 index 0000000..e419b2c --- /dev/null +++ b/NSY104/25-05-23/README.md @@ -0,0 +1,133 @@ +# NSY104-23-05-2025 + +## Créer un raid 5 : + +### Installation du packet mdadm : + +``` +apt install mdadm +``` + +### création des partitions : + +``` +cfdisk /dev/sdb +``` +> -> gpt -> New -> Type -> Linux RAID -> Whrite -> Yes +``` +cfdisk /dev/sdc +``` +> -> gpt -> New -> Type -> Linux RAID -> Whrite -> Yes +``` +cfdisk /dev/sdd +``` +> -> gpt -> New -> Type -> Linux RAID -> Whrite -> Yes +``` +cfdisk /dev/sde +``` +> -> gpt -> New -> Type -> Linux RAID -> Whrite -> Yes + +### Création du RAID5 avec mdadm : + +``` +mdadm --create /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-device=1 /dev/sde1 +``` + +### Sauvegarde de configuration de la matrice : +``` +mkfs -t ext4 /dev/md0 +``` +`en root :` +``` +echo "DEVICE partitions" > /etc/mdadm/mdadm.conf +mdadm --detail --scan >> /etc/mdadm/mdadm.conf +``` +### Montage du RAID5 : +``` +mount /dev/md0 /mnt +``` + +### Pour voir les info : +``` +cat /proc/mdstat +mdadm --detail /dev/md0 +``` +### Pour simuler une pan : +``` +mdadm /dev/md0 -f /dev/sdc1 +``` +### Force L'arrêt du disque dans le RAID5 +``` +mdadm /dev/md0 --fail /dev/sdc1 +``` +### Supprimer un disque du RAID5 +``` +mdadm /dev/md0 --remove /dev/sdc1 +``` +### Supprimer les informations d'appartenance du disque +``` +mdadm --zero-superblock /dev/sdc1 +``` +### Ajouter un disque au RAID5 : +``` +mdadm /dev/md0 -a /dev/sdc1 +``` +### Arrêter la matrice : +``` +unmount /mnt +mdadm --stop /dev/md0 +``` + +mdadm --zero-superblock /dev/sdb1 +mdadm --zero-superblock /dev/sdc1 + +## Pour créer un un LVM et suite du TP + +apt install lvm2 + +``` +cfdisk /dev/sdb +``` +> -> gpt -> New -> Type -> Linux LVM -> Whrite -> Yes +``` +cfdisk /dev/sdc +``` +> -> gpt -> New -> Type -> Linux LVM -> Whrite -> Yes + +fdisk -l /dev/sdb + +fdisk -l /dev/sdc + +pvcreate /dev/sdb1 + +pvdisplay /dev/sdb1 + + +vgcreate vg01 /dev/sdb1 + +vgdisplay vg01 + +lvcreate -n data01 -L 512 vg01 +ls /dev/vg01/data01 + +lvdeisplay -m /dev/vg01/data01 + + + +mkfs -t ext4 /dev/vg01/data01 + +mkdir /mnt/data01 +mount /dev/vg01/data01 /mnt/data01 + +lvcreate -n data02 -L 512m vg01 +lvdisplay -m /dev/vg01/data02 + +mkfs -t ext4 /dev/vg01/data02 + +mkdir /mnt/data02 +mount /dev/vg01/data02 /mnt/data02 + +1 : Question de cour représentation de informations - 6 points +2 : Machine de turing - 4 points +3 : Fonctionnement d'une unité central - 4 points +4 : QCM 6 points \ No newline at end of file diff --git a/NSY104/25-06-10/README.md b/NSY104/25-06-10/README.md new file mode 100644 index 0000000..f8c54b8 --- /dev/null +++ b/NSY104/25-06-10/README.md @@ -0,0 +1,2 @@ +# NSY104 10 06 2025 + diff --git a/NSY104/README.md b/NSY104/README.md new file mode 100644 index 0000000..87cd764 --- /dev/null +++ b/NSY104/README.md @@ -0,0 +1,5 @@ +# NSY 104 Architecture des systèmes informatiques + +* [09/01/25](./NSY104-09-01-25) +* [18/02/25](./NSY104-18-02-25) +* [04/03/25](./NSY104-04-03-25) \ No newline at end of file diff --git a/PP/readme.md b/PP/readme.md new file mode 100644 index 0000000..b994494 --- /dev/null +++ b/PP/readme.md @@ -0,0 +1,34 @@ +Un projet pro stratégie qu'on met en place pour le réaliser. LA strétégie qu'on met en place pour le réaliser +- sa doit correspondre à ce que vous aimez faire +- a ce que vous savez ou saurez faire +- La réalité du marché +- embissieu + +- I. Faire un bilan personnel +- II. Explorer le champs des possibles +- III. Etablire un projet concrès avec un plan d'action pour y arriver + +type de compétences + +- Le savoir (Les connaissances) +- Le savoir faire (ce qu'on a apprit à faire) +- Le savoir être (softskills) + +première étape pour explorer les métiers et consulter les fiches métires + +une fiche métier est un document qui donne des indications sur : +- La définition du poste et les missions principales (Indications potentiellement théoriques) +- Les compétences demandées +- Les profils recherchés par les entreprises (CAD : diplôme requis, expérience professionnelles recommandées) +- Les types de travail (Rémunération, types de contrat) +- Les métiers proches et les évolutions professionnelles possibles +- Des liens vers des offres d'emplois pertinentes + +France travail, onisep, apec + +Intégrateur Web : + +L'intégrateur web assemble les différents éléments qui composent un site, de la mise en pages générale jusqu'aux animations graphiques et sonores. + + +:wq diff --git a/PP/test.conf b/PP/test.conf new file mode 100644 index 0000000..a09e442 --- /dev/null +++ b/PP/test.conf @@ -0,0 +1,45 @@ +server { + listen 80; + server_name pterodactyl.guillaume-sanchez.fr; + + + root /var/www/pelican/public; + index index.html index.htm index.php; + charset utf-8; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location = /favicon.ico { access_log off; log_not_found off; } + location = /robots.txt { access_log off; log_not_found off; } + + access_log off; + error_log /var/log/nginx/pelican.app-error.log error; + + # allow larger file uploads and longer script runtimes + client_max_body_size 100m; + client_body_timeout 120s; + + sendfile off; + + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass unix:/run/php/php8.2-fpm.sock; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M"; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param HTTP_PROXY ""; + fastcgi_intercept_errors off; + fastcgi_buffer_size 16k; + fastcgi_buffers 4 16k; + fastcgi_connect_timeout 300; + fastcgi_send_timeout 300; + fastcgi_read_timeout 300; + } + + location ~ /\.ht { + deny all; + } +} \ No newline at end of file diff --git a/PP/test.yml b/PP/test.yml new file mode 100644 index 0000000..ca64371 --- /dev/null +++ b/PP/test.yml @@ -0,0 +1,86 @@ +services: + app: + image: nextcloud + restart: always + ports: + - 80:80 + depends_on: + - nextclouddb + volumes: + - ./applications/nextcloud:/var/www/html + - /mnt/data:/var/www/html/data + environment: + - MYSQL_PASSWORD=vkurnucfwirs?xxzsyf?hrhf?pllqzo? + - MYSQL_DATABASE=Nextcloud + - MYSQL_USER=nextcloud_user + - MYSQL_HOST=nextclouddb + + nextclouddb: + image: app + container_name: nextcloud-db + restart: unless-stopped + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + volumes: + - ./nextclouddb:/var/lib/mysql + environment: + - TZ=Europe/Paris + - MYSQL_RANDOM_ROOT_PASSWORD=true + - MYSQL_PASSWORD=vkurnucfwirs?xxzsyf?hrhf?pllqzo? + - MYSQL_DATABASE=Nextcloud + - MYSQL_USER=nextcloud_user + + +volumes: + nextcloud: + + + + + + + + + + + + + + + +services: + db: + image: mariadb:lts + restart: always + command: --transaction-isolation=READ-COMMITTED + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=vkurnucfwirs?xxzsyf?hrhf?pllqzo? + - MYSQL_PASSWORD=vkurnucfwirs?xxzsyf?hrhf?pllqzo? + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + redis: + image: redis:alpine + restart: always + + app: + image: nextcloud + restart: always + ports: + - 80:80 + depends_on: + - redis + - db + volumes: + - ./applications/nextcloud:/var/www/html + - /mnt/data:/var/www/html/data + environment: + - MYSQL_PASSWORD=vkurnucfwirs?xxzsyf?hrhf?pllqzo? + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - MYSQL_HOST=db + +volumes: + nextcloud: + db: \ No newline at end of file diff --git a/RSX101/24-12-17/README.md b/RSX101/24-12-17/README.md new file mode 100644 index 0000000..d768fbc --- /dev/null +++ b/RSX101/24-12-17/README.md @@ -0,0 +1,2 @@ +# NSY104-17-12-24 + diff --git a/RSX101/24-12-17/packertacer/TD.pkt b/RSX101/24-12-17/packertacer/TD.pkt new file mode 100644 index 0000000..7a23428 Binary files /dev/null and b/RSX101/24-12-17/packertacer/TD.pkt differ diff --git a/RSX101/24-12-17/packertacer/vlan1.pkt b/RSX101/24-12-17/packertacer/vlan1.pkt new file mode 100644 index 0000000..8ce09ef Binary files /dev/null and b/RSX101/24-12-17/packertacer/vlan1.pkt differ diff --git a/RSX101/24-12-17/packertacer/vlan2.pkt b/RSX101/24-12-17/packertacer/vlan2.pkt new file mode 100644 index 0000000..65bf283 Binary files /dev/null and b/RSX101/24-12-17/packertacer/vlan2.pkt differ diff --git a/RSX101/25-01-29/README.md b/RSX101/25-01-29/README.md new file mode 100644 index 0000000..c1935e9 --- /dev/null +++ b/RSX101/25-01-29/README.md @@ -0,0 +1,2 @@ +# NSY104-29-01-25 + diff --git a/RSX101/25-02-20/GNS3-exercice/GNS3-exercice.gns3 b/RSX101/25-02-20/GNS3-exercice/GNS3-exercice.gns3 new file mode 100644 index 0000000..3c6df5a --- /dev/null +++ b/RSX101/25-02-20/GNS3-exercice/GNS3-exercice.gns3 @@ -0,0 +1,27 @@ +{ + "auto_close": true, + "auto_open": false, + "auto_start": false, + "drawing_grid_size": 25, + "grid_size": 75, + "name": "GNS3-exercice", + "project_id": "8c9b6101-c955-41cc-8f80-c18617f0c325", + "revision": 9, + "scene_height": 1000, + "scene_width": 2000, + "show_grid": false, + "show_interface_labels": false, + "show_layers": false, + "snap_to_grid": false, + "supplier": null, + "topology": { + "computes": [], + "drawings": [], + "links": [], + "nodes": [] + }, + "type": "topology", + "variables": null, + "version": "2.2.53", + "zoom": 100 +} \ No newline at end of file diff --git a/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/dynamips_i1_log.txt b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/dynamips_i1_log.txt new file mode 100644 index 0000000..33d6f23 --- /dev/null +++ b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/dynamips_i1_log.txt @@ -0,0 +1,10 @@ +Feb 20 08:40:52.856 HYPERVISOR: Release 0.2.23-amd64/Linux (tag 2023010200) +Feb 20 08:40:52.856 HYPERVISOR: Started on IP = 127.0.0.1, TCP port = 45587. +Feb 20 08:40:52.860 HYPERVISOR: exec_cmd: hypervisor version +Feb 20 08:40:52.860 HYPERVISOR: exec_cmd: hypervisor working_dir /home/nk/Documents/UTEC-Lic_ME_2024_2025/RSX101/RSX101-20-02-25/GNS3-exercice/project-files/dynamips +Feb 20 08:40:52.860 GENERAL: working_dir=/home/nk/Documents/UTEC-Lic_ME_2024_2025/RSX101/RSX101-20-02-25/GNS3-exercice/project-files/dynamips +Feb 20 08:40:52.860 HYPERVISOR: exec_cmd: nio_bridge create Hub1 +Feb 20 08:40:59.594 HYPERVISOR: exec_cmd: nio_bridge delete Hub1 +Feb 20 08:40:59.597 HYPERVISOR: exec_cmd: hypervisor stop +Feb 20 08:40:59.866 HYPERVISOR: Stopped. +Feb 20 08:40:59.866 GENERAL: reset done. diff --git a/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/dynamips_i2_log.txt b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/dynamips_i2_log.txt new file mode 100644 index 0000000..6984883 --- /dev/null +++ b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/dynamips_i2_log.txt @@ -0,0 +1,10 @@ +Feb 20 08:45:15.793 HYPERVISOR: Release 0.2.23-amd64/Linux (tag 2023010200) +Feb 20 08:45:15.793 HYPERVISOR: Started on IP = 127.0.0.1, TCP port = 45429. +Feb 20 08:45:15.802 HYPERVISOR: exec_cmd: hypervisor version +Feb 20 08:45:15.802 HYPERVISOR: exec_cmd: hypervisor working_dir /home/nk/Documents/UTEC-Lic_ME_2024_2025/RSX101/RSX101-20-02-25/GNS3-exercice/project-files/dynamips +Feb 20 08:45:15.802 GENERAL: working_dir=/home/nk/Documents/UTEC-Lic_ME_2024_2025/RSX101/RSX101-20-02-25/GNS3-exercice/project-files/dynamips +Feb 20 08:45:15.802 HYPERVISOR: exec_cmd: atmsw create ATMSW1 +Feb 20 08:45:29.403 HYPERVISOR: exec_cmd: atmsw delete ATMSW1 +Feb 20 08:45:29.405 HYPERVISOR: exec_cmd: hypervisor stop +Feb 20 08:45:29.815 HYPERVISOR: Stopped. +Feb 20 08:45:29.815 GENERAL: reset done. diff --git a/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_mips64e b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_mips64e new file mode 100644 index 0000000..1ab10b9 Binary files /dev/null and b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_mips64e differ diff --git a/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_mips64j b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_mips64j new file mode 100644 index 0000000..1ab10b9 Binary files /dev/null and b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_mips64j differ diff --git a/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_ppc32e b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_ppc32e new file mode 100644 index 0000000..c3ee0f4 Binary files /dev/null and b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_ppc32e differ diff --git a/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_ppc32j b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_ppc32j new file mode 100644 index 0000000..f791cb8 Binary files /dev/null and b/RSX101/25-02-20/GNS3-exercice/project-files/dynamips/ilt_2023010200_ppc32j differ diff --git a/RSX101/25-02-20/README.md b/RSX101/25-02-20/README.md new file mode 100644 index 0000000..b1d0bc5 --- /dev/null +++ b/RSX101/25-02-20/README.md @@ -0,0 +1,47 @@ +# NSY104-17-12-24 + +## Exercice 1(plan d’adressage) + +Le TD concerne la mise ne place d’un plan d’adressage, il est proposé sous la forme de quatre exercices + +### 1.2.1 Exo 1 : Détermination de l’ID réseau, le masque réseau, …etc. à partir d’une adresse IP + +#### 179.13.33.14/29 + +Adresse de réseau : 179.13.33.8 + +Première adresse : 179.13.33.9 + +Dernière adresse : 179.13.33.14 + +Adresse de broadcast : 179.13.33.15 + +#### 16.23.15.33/18 + +00010000.00010111.00001111.000100001 + +Adresse de réseau : 16.23.0.0 -> 14 dernier bits tu les passe à 0 : 00010000.00010111.**00000000.00000000** + +Première adresse : 16.23.0.1 -> Première on ajoute un + +Dernière adresse : 16.23.63.254 -> -1 par rapport à l'adresse broadcast + +Adresse de broadcast : 16.23.63.255 -> 14 dernier et tu les passes à 1 : 00010000.00010111.00**111111.11111111** + +#### 178.223.0.15/12 + +Adresse de réseau : 178.208.0.0 -> 20 dernier bits tu les passe à 0 : 10110010.1101**0000.00000000.00000000** + +Première adresse : 178.208.0.1 -> Première on ajoute un + +Dernière adresse : 178.223.255.254 -> -1 par rapport à l'adresse broadcast + +Adresse de broadcast : 178.223.255.255 -> 20 dernier bits tu les passe à 1 : 10110010.1101**1111.11111111.11111111** + +## Routage + +Routage static, définir une route manuelement +Routage Dynamique, + +Lien de rondodence -> ajout d'un routeur de secours + diff --git a/RSX101/25-04-15/README.md b/RSX101/25-04-15/README.md new file mode 100644 index 0000000..3966003 --- /dev/null +++ b/RSX101/25-04-15/README.md @@ -0,0 +1,15 @@ +# RSX101 15 04 2025 + +## Exercice 1 + +### R1 +2 +3 + +### R2 +2 +2 + +## Exercice 2 + + diff --git a/RSX101/25-05-20/README.md b/RSX101/25-05-20/README.md new file mode 100644 index 0000000..67cff1a --- /dev/null +++ b/RSX101/25-05-20/README.md @@ -0,0 +1 @@ +# RSX101 20 05 2025 \ No newline at end of file diff --git a/RSX101/25-06-24/Exercice.md b/RSX101/25-06-24/Exercice.md new file mode 100644 index 0000000..6680fff --- /dev/null +++ b/RSX101/25-06-24/Exercice.md @@ -0,0 +1,95 @@ +# Exercice QoS + +## Exercice 1 : Mise en œuvre de la QoS dans un routeur + +### Question 1 : + +- Entête IP : 46 80 00 20 00 00 40 00 01 02 42 AD C0 A8 01 01 E0 00 00 01 94 04 00 00 +- Adresse Eternet Destination : 01 00 5E 00 00 01 +- Adresse Eternet Source : A4 08 F5 61 5d 1f +- protocole IP : 4 donc IPv4 +- longueur de l'entête IP : 6*4 donc 24 octets +- IP source et destination en hexadécimal : + - source : C0 A8 01 01 + - destination : E0 00 00 01 +- longueur totale du datagramme en décimal : 0020 -> 2*16 + 0 donc 32 octets + +### Question 2 : + +Non , Classe 4, si on suit la logique du tableau, on peut voir qu'il est en dessous du Low (voir correction) + +### Question 3 : + +#### Ingress + +``` +____ + +4 9 3 12 +_____ + +8 5 +_____ + +10 +_____ + + +_____ + + +_____ + + +_____ + +11 7 6 2 1 +_____ +``` +-------------------------> +11, 7, 12, 6, 9, 2, 8, 4, 1, 10, 5, 3 +-------------------------> + +#### Egress + +``` +____ + +4 9 3 12 +_____ + +8 5 +_____ + +10 +_____ + + +_____ + + +_____ + + +_____ + +11 7 6 2 1 +_____ +``` +-------------------------> +11, 7, 6, 2, 8, 1, 10, 5, 12, 9, 4, 3 +-------------------------> + +### Question 4 + + + +## Exercice 2 Voix QoS + +### Question 1 + +## Exercice 3 Réseau IP et QoS + +### Question 1 + + diff --git a/RSX101/25-06-24/README.md b/RSX101/25-06-24/README.md new file mode 100644 index 0000000..4bb9c39 --- /dev/null +++ b/RSX101/25-06-24/README.md @@ -0,0 +1,128 @@ +# RSX101 du 24 06 25 + +## QoS : + +Avec un QoS mis en place dans un routeur, un paquet arrive au routeur, le QoS calcul sa priorité et le place dans la fil d'attente de sortie calculé selon son importance. +Mis en place par des contrat de service. + +## Classifieur + +Identification des flots, Lissage du trafique + +DSCP : `Le DSCP est un champ d'en-tête dans le protocole IP, utilisé pour marquer les paquets de données. Ce marquage informe les routeurs et commutateurs du type de service que chaque paquet doit recevoir.` + +Une fois le flux identifié, il essaye de le classifier selon l'ordenancement. + +ACL : `Liste de contrôle d'accès au réseau (ACL), est constituée de règles qui permettent l'accès à un environnement informatique ou le refusent` + +Ordonnancement round robin : `Le Round-robin (ou tourniquet) est un algorithme d'ordonnancement courant dans les systèmes d'exploitation adapté aux systèmes travaillant en temps partagés.` + +LE paquet doit être marqué pour être identifié. + +QoE : `Evaluation du retour utilisateur par rapport au QoS` + +GIGUE : `la gigue (en anglais jitter) est la variation de la latence au fil du temps. Plus précisément, la gigue est la différence de délai de transmission de bout en bout entre des paquets choisis dans un même flux de paquets, sans prendre en compte les paquets éventuellement perdus.` + + +## Leaky Bucket (Le seau percé) + +L'algorithme du seau percé (leaky bucket en anglais) permet de contrôler le nombre de paquets passant à chaque seconde par un nœud d'un réseau informatique + +Si le debit de flux augmente, le seau déborde et les paquets se perde. + +Pour remedier à ça, on utilise le Token Bucket. +Un paquet reçois un jetton qui donne l'ordre de sortie après le passage dans le classfieur. + + +lissage vs Vérification + +- Dans le cas du lissage, on retarde le flux excessif, en supposant qu'il n'excède pas le débit annoncé (attention aux flux sensibles à la latence ou a la gigue comme la voix). +- Dans le cas de la vérification, on élimine le trafic en excès ou on le marque pour élimination lors de congestion (passage en mode best effort). + +best effort : `C'est le trafic que les administrateurs réseau considèrent comme moins important que le trafic en temps réel.` + +MPLS : `La commutation multiprotocole d'étiquettes (MPLS) est un protocole conçu pour acheminer des paquets de données vers leurs destinations rapidement et efficacement` + +RSVP : `Resource ReSerVation Protocol (ou RSVP) est un protocole de la couche transport du modèle OSI, permettant de réserver des ressources dans un réseau informatique. ` + +## IntServ et DiffServ + +## IntServ (Integrated Services) – "Réservation individuelle" + +- Principe : chaque flux de données (vidéo, appel, etc.) demande une réservation de ressources (bande passante, délais, etc.) à tous les routeurs du réseau avant de commencer. + +- Fonctionnement : utilise le protocole RSVP (Resource Reservation Protocol) pour réserver. + +- Avantages : Garantie de qualité de service (QoS) très fine et précise pour chaque flux. + +- Inconvénients : + - Ne passe pas à l’échelle (trop lourd à gérer pour Internet entier). + - Beaucoup de mémoire et de traitement sur les routeurs. + +> C’est comme réserver une place assise dans un train pour chaque passager individuellement. + +### DiffServ (Differentiated Services) – "Classes de service" + +- Principe : les paquets sont marqués (avec des bits dans l’en-tête IP) selon leur classe de priorité, et chaque routeur traite les classes selon des règles prédéfinies. + +- Pas de réservation individuelle. + +- Avantages : + - Scalable : fonctionne bien sur de grands réseaux comme Internet. + - Plus simple pour les routeurs. + +- Inconvénients : + - Pas de garantie absolue pour chaque flux, seulement des priorités. + - Moins précis qu’IntServ. + +> C’est comme avoir des files prioritaires à l’aéroport (VIP, économique, etc.) mais sans réservation de siège. + +### Résumé : + +| Caractéristique | IntServ | DiffServ | +| ------------------- | ------------------------ | ------------------------------- | +| Type de QoS | Finesse par flux | Classes de service | +| Réservation | Oui (RSVP) | Non | +| Scalabilité | Faible | Bonne | +| Complexité | Haute (par flux) | Moyenne (par classe) | +| Utilisation typique | Réseaux privés critiques | Réseaux d’entreprise / Internet | + +### Exemple concret pour bien comprendre la différence entre IntServ et DiffServ : + +Contexte : + +Imaginons une entreprise qui utilise : + +- des appels vidéo entre employés (sensibles au délai), +- de la navigation web (moins critique), +- et des téléchargements de fichiers lourds (peu sensibles au temps). + +#### Avec IntServ (Integrated Services) : + +Quand un employé commence un appel vidéo : + +- Son ordinateur envoie une demande de réservation de ressources via le protocole RSVP. +- Tous les routeurs sur le chemin réservent de la bande passante et des délais spécifiques pour ce flux d’appel. +- Si la réservation est acceptée, l’appel commence avec des garanties fortes : pas de coupure, bonne qualité. + +Avantage : chaque appel est traité comme un VIP avec sa propre "autoroute". + +Inconvénient : s’il y a 500 appels en même temps, chaque routeur doit gérer 500 réservations → lourd et complexe. + +#### Avec DiffServ (Differentiated Services) : + +Avant que les données partent : + +- L’administrateur réseau a défini que les appels vidéo seront marqués avec une priorité haute, les fichiers lourds avec une priorité basse, etc. +- Quand un appel démarre, les paquets sont marqués (ex : DSCP = Expedited Forwarding). +- Les routeurs ne réservent rien, mais ils priorisent automatiquement les paquets marqués "vidéo" par rapport aux autres. + +Avantage : très simple à mettre en œuvre même si des milliers de flux circulent. + +Inconvénient : si le réseau est saturé, l’appel vidéo peut subir des perturbations, car rien n’a été réservé. + +#### Conclusion : + +- IntServ = comme réserver un taxi juste pour toi → service personnalisé, mais coûteux à grande échelle. +- DiffServ = comme prendre un bus avec un ticket VIP → prioritaire, mais tu partages avec d’autres. + diff --git a/RSX101/Cours/LAN-SPT-VXLAN-VLAN/CommutationArbreCouvrant.pdf b/RSX101/Cours/LAN-SPT-VXLAN-VLAN/CommutationArbreCouvrant.pdf new file mode 100644 index 0000000..cd9510c Binary files /dev/null and b/RSX101/Cours/LAN-SPT-VXLAN-VLAN/CommutationArbreCouvrant.pdf differ diff --git a/RSX101/Cours/LAN-SPT-VXLAN-VLAN/LANExCor.pdf b/RSX101/Cours/LAN-SPT-VXLAN-VLAN/LANExCor.pdf new file mode 100644 index 0000000..f9a88e7 Binary files /dev/null and b/RSX101/Cours/LAN-SPT-VXLAN-VLAN/LANExCor.pdf differ diff --git a/RSX101/Cours/LAN-SPT-VXLAN-VLAN/openswitch3.pdf b/RSX101/Cours/LAN-SPT-VXLAN-VLAN/openswitch3.pdf new file mode 100644 index 0000000..18f3990 Binary files /dev/null and b/RSX101/Cours/LAN-SPT-VXLAN-VLAN/openswitch3.pdf differ diff --git a/RSX101/Cours/LAN-VLAN/2-1-1-Physique-20231003.pdf b/RSX101/Cours/LAN-VLAN/2-1-1-Physique-20231003.pdf new file mode 100644 index 0000000..e4749ee Binary files /dev/null and b/RSX101/Cours/LAN-VLAN/2-1-1-Physique-20231003.pdf differ diff --git a/RSX101/Cours/LAN-VLAN/Commutation dans les LAN.pdf b/RSX101/Cours/LAN-VLAN/Commutation dans les LAN.pdf new file mode 100644 index 0000000..28fccc2 Binary files /dev/null and b/RSX101/Cours/LAN-VLAN/Commutation dans les LAN.pdf differ diff --git a/RSX101/Cours/LAN-VLAN/Exemple Com Inter-VLANs-Router on a Stick.pptx b/RSX101/Cours/LAN-VLAN/Exemple Com Inter-VLANs-Router on a Stick.pptx new file mode 100644 index 0000000..cb5fd87 Binary files /dev/null and b/RSX101/Cours/LAN-VLAN/Exemple Com Inter-VLANs-Router on a Stick.pptx differ diff --git a/RSX101/Cours/LAN-VLAN/LAB Configuration des VLAN.pptx b/RSX101/Cours/LAN-VLAN/LAB Configuration des VLAN.pptx new file mode 100644 index 0000000..2eb9a4d Binary files /dev/null and b/RSX101/Cours/LAN-VLAN/LAB Configuration des VLAN.pptx differ diff --git a/RSX101/Cours/LAN-VLAN/LAB2 Configuration de base de VLAN.pdf b/RSX101/Cours/LAN-VLAN/LAB2 Configuration de base de VLAN.pdf new file mode 100644 index 0000000..e57bd13 Binary files /dev/null and b/RSX101/Cours/LAN-VLAN/LAB2 Configuration de base de VLAN.pdf differ diff --git a/RSX101/Cours/OSPF/06RSX101-Routage-IP-info.pdf b/RSX101/Cours/OSPF/06RSX101-Routage-IP-info.pdf new file mode 100644 index 0000000..bf72253 Binary files /dev/null and b/RSX101/Cours/OSPF/06RSX101-Routage-IP-info.pdf differ diff --git a/RSX101/Cours/OSPF/Infra.pkt b/RSX101/Cours/OSPF/Infra.pkt new file mode 100644 index 0000000..a698f13 Binary files /dev/null and b/RSX101/Cours/OSPF/Infra.pkt differ diff --git a/RSX101/Cours/OSPF/OSPF Exemple pratique.pptx b/RSX101/Cours/OSPF/OSPF Exemple pratique.pptx new file mode 100644 index 0000000..7527b64 Binary files /dev/null and b/RSX101/Cours/OSPF/OSPF Exemple pratique.pptx differ diff --git a/RSX101/Cours/OSPF/RSX101-Routage OSPF-annexe (Relation de voisinage).pdf b/RSX101/Cours/OSPF/RSX101-Routage OSPF-annexe (Relation de voisinage).pdf new file mode 100644 index 0000000..f4fc6cd Binary files /dev/null and b/RSX101/Cours/OSPF/RSX101-Routage OSPF-annexe (Relation de voisinage).pdf differ diff --git a/RSX101/Cours/OSPF/RSX101-Routage OSPF.pdf b/RSX101/Cours/OSPF/RSX101-Routage OSPF.pdf new file mode 100644 index 0000000..7052392 Binary files /dev/null and b/RSX101/Cours/OSPF/RSX101-Routage OSPF.pdf differ diff --git a/RSX101/Cours/OSPF/RSX101-Routage OSPF.pptx b/RSX101/Cours/OSPF/RSX101-Routage OSPF.pptx new file mode 100644 index 0000000..d3cab3d Binary files /dev/null and b/RSX101/Cours/OSPF/RSX101-Routage OSPF.pptx differ diff --git a/RSX101/Cours/OSPF/RSX101_DM OSPF Mono Area-Nom auditeur Prénom auditeur-sujet.pdf b/RSX101/Cours/OSPF/RSX101_DM OSPF Mono Area-Nom auditeur Prénom auditeur-sujet.pdf new file mode 100644 index 0000000..1dbd366 Binary files /dev/null and b/RSX101/Cours/OSPF/RSX101_DM OSPF Mono Area-Nom auditeur Prénom auditeur-sujet.pdf differ diff --git a/RSX101/Cours/OpenvswitchVXLAN.png b/RSX101/Cours/OpenvswitchVXLAN.png new file mode 100644 index 0000000..d72e745 Binary files /dev/null and b/RSX101/Cours/OpenvswitchVXLAN.png differ diff --git a/RSX101/Cours/QoS/03RSX101-IP-QoS.pdf b/RSX101/Cours/QoS/03RSX101-IP-QoS.pdf new file mode 100644 index 0000000..02abc76 Binary files /dev/null and b/RSX101/Cours/QoS/03RSX101-IP-QoS.pdf differ diff --git a/RSX101/Cours/QoS/2-4-1-IPQoSArch.pdf b/RSX101/Cours/QoS/2-4-1-IPQoSArch.pdf new file mode 100644 index 0000000..5b5edec Binary files /dev/null and b/RSX101/Cours/QoS/2-4-1-IPQoSArch.pdf differ diff --git a/RSX101/Cours/QoS/7-3-2-QoS-Ex.pdf b/RSX101/Cours/QoS/7-3-2-QoS-Ex.pdf new file mode 100644 index 0000000..5d250e5 Binary files /dev/null and b/RSX101/Cours/QoS/7-3-2-QoS-Ex.pdf differ diff --git a/RSX101/Cours/RSX101-LAB adressage IP-sujet.pdf b/RSX101/Cours/RSX101-LAB adressage IP-sujet.pdf new file mode 100644 index 0000000..7ce604e Binary files /dev/null and b/RSX101/Cours/RSX101-LAB adressage IP-sujet.pdf differ diff --git a/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess1-cor.pdf b/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess1-cor.pdf new file mode 100644 index 0000000..91169f6 Binary files /dev/null and b/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess1-cor.pdf differ diff --git a/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess1.pdf b/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess1.pdf new file mode 100644 index 0000000..34e4e1c Binary files /dev/null and b/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess1.pdf differ diff --git a/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess2.pdf b/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess2.pdf new file mode 100644 index 0000000..0623577 Binary files /dev/null and b/RSX101/Cours/Révision Examen RSX101/RSX101-2020-sess2.pdf differ diff --git a/RSX101/Cours/TP Openvswitchv.pdf b/RSX101/Cours/TP Openvswitchv.pdf new file mode 100644 index 0000000..7427bcd Binary files /dev/null and b/RSX101/Cours/TP Openvswitchv.pdf differ diff --git a/RSX101/README.md b/RSX101/README.md new file mode 100644 index 0000000..8fc8fd1 --- /dev/null +++ b/RSX101/README.md @@ -0,0 +1,5 @@ +# NSY104 + +* [Cours](./Cours/) +* [17/12/24](./RSX101-17-12-24/) +* [29/01/25](./RSX101-29-01-25/) \ No newline at end of file diff --git a/RSX101/Revision/Glossaire Reseau QoS.pdf b/RSX101/Revision/Glossaire Reseau QoS.pdf new file mode 100644 index 0000000..15b8f0d Binary files /dev/null and b/RSX101/Revision/Glossaire Reseau QoS.pdf differ diff --git a/RSX112/25-04-28/readme.md b/RSX112/25-04-28/readme.md new file mode 100644 index 0000000..34128ef --- /dev/null +++ b/RSX112/25-04-28/readme.md @@ -0,0 +1,22 @@ +# RSX112 28 04 2025 Sécurité des Réseaux + +## Systèmes d'exploitation et Droits + +ASL + +Capacité -> Modèle utilisateur + +## AGDLP + +Les groupes de sécurité. + +Méthode utilisé par Microsoft. + +coté utilisateur et coté fichiers géré de manière indépendante. + +étendu des groupe + +- GL +- GG +- GU + diff --git a/RSX112/25-04-28/tp/TP_9_Linux_Guillaume_Sanchez.pdf b/RSX112/25-04-28/tp/TP_9_Linux_Guillaume_Sanchez.pdf new file mode 100644 index 0000000..9d3ff56 Binary files /dev/null and b/RSX112/25-04-28/tp/TP_9_Linux_Guillaume_Sanchez.pdf differ diff --git a/RSX112/25-04-28/tp/Travaux Pratiques 9 - Linux.pdf b/RSX112/25-04-28/tp/Travaux Pratiques 9 - Linux.pdf new file mode 100644 index 0000000..66bad0e Binary files /dev/null and b/RSX112/25-04-28/tp/Travaux Pratiques 9 - Linux.pdf differ diff --git a/RSX112/25-04-28/tp/exercice1.sh b/RSX112/25-04-28/tp/exercice1.sh new file mode 100755 index 0000000..5261951 --- /dev/null +++ b/RSX112/25-04-28/tp/exercice1.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Liste des utilisateurs à créer +tab_user=('yannick' 'eulalie' 'jean' 'justine' 'pierre' 'sandrine' 'cecile' 'michel') + +# Boucle pour créer chaque utilisateur +for user in "${tab_user[@]}" +do + # Création de l'utilisateur + useradd -m -s /bin/bash $user + echo -e "$user\n$user" | passwd $user + echo "Utilisateur $user créé avec succès avec le mot de passe par défaut." +done + diff --git a/RSX112/25-04-28/tp/exercice1_code.png b/RSX112/25-04-28/tp/exercice1_code.png new file mode 100644 index 0000000..1587ba6 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice1_code.png differ diff --git a/RSX112/25-04-28/tp/exercice2.md b/RSX112/25-04-28/tp/exercice2.md new file mode 100644 index 0000000..1228f59 --- /dev/null +++ b/RSX112/25-04-28/tp/exercice2.md @@ -0,0 +1,27 @@ +# Exercice2 +## 3 +root@ubuntu-RSX112:~# groupadd visiteurs -g 1404 +## 4 +root@ubuntu-RSX112:~# useradd -u 140401 -g visiteurs -m -s /bin/bash invite +## 5 +root@ubuntu-RSX112:~# cat /etc/passwd | grep invite +invite:x:140401:1404::/home/invite:/bin/bash +root@ubuntu-RSX112:~# cat /etc/group | grep visiteurs +visiteurs:x:1404: +## 6 +root@ubuntu-RSX112:~# chage -M 90 -W 14 -I 7 invite +## 7 +root@ubuntu-RSX112:~# cat /etc/shadow | grep invite +invite:!:20206:0:90:14:7:: +## 8 +root@ubuntu-RSX112:~# echo -e "welc0me\nwelc0me" | passwd "invite" +## 9 +useradd -u 140402 -g visiteurs -m -s /bin/bash intrus +chage -M 90 -W 14 -I 7 invite +echo -e "1234\n1234" | passwd intrus +## 10 +root@ubuntu-RSX112:~# tail -n 2 /etc/shadow +invite:$6$P87urVNAHId2z7fG$GHn/.vL4nI6nsgq.uaxmGqSgTn4n39bD/0HsQwFICgKp.4dhKOiu5scPs4tdkN2Avya09zPBI5qSxfF2Fu.eC0:20206:0:90:14:7:: +intrus:$6$F8Zh5OOiIrskScOO$WdDFLGZakeBdyv4DM0RCL5zvPkYpxllgi9IcucoVXb6z5ujYW.KtfW4ZsZrUkjFssJqta5ZG2qvpRmfduL6tJ/:20206:0:99999:7::: + +Le nombre de jours avant expiation du mdp est passé à 99999 pour l'utilisateur intrus \ No newline at end of file diff --git a/RSX112/25-04-28/tp/exercice2.png b/RSX112/25-04-28/tp/exercice2.png new file mode 100644 index 0000000..3261a45 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice2.png differ diff --git a/RSX112/25-04-28/tp/exercice2.sh b/RSX112/25-04-28/tp/exercice2.sh new file mode 100644 index 0000000..2edaae3 --- /dev/null +++ b/RSX112/25-04-28/tp/exercice2.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +echo "Exercice 2" +echo "Créer un groupe visiteurs avec le GID 1404" +groupadd visiteurs -g 1404 +echo "Créer un utilisateur invite avec le UID 140401 et le GID 1404" +useradd -u 140401 -g visiteurs -m -s /bin/bash invite +echo "affichez les lignes correspondantes des fichiers utilisateurs et groupes" +cat /etc/passwd | grep invite +cat /etc/group | grep visiteurs +echo "modification des droits de changement de mdp de l'utilisateur invite" +chage -M 90 -W 14 -I 7 invite +echo "affichez la lignes correspondant à l'utilisateur invite dans le fichier shadow" +cat /etc/shadow | grep invite +echo "modification du mot de passe de l'utilisateur invite" +echo -e "welc0me\nwelc0me" | passwd "invite" + +echo "créer un utilisateur intrus avec le UID 140402 et le GID 1404" +useradd -u 140402 -g visiteurs -m -s /bin/bash intrus +echo "modification des droits de changement de mdp de l'utilisateur intrus" +chage -M 90 -W 14 -I 7 invite +echo "modification du mot de passe de l'utilisateur intrus" +echo -e "1234\n1234" | passwd intrus +echo "afficher les 2 dernière lignes du fichier shadow" +tail -n 2 /etc/shadow + diff --git a/RSX112/25-04-28/tp/exercice2_code.png b/RSX112/25-04-28/tp/exercice2_code.png new file mode 100644 index 0000000..b6292a5 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice2_code.png differ diff --git a/RSX112/25-04-28/tp/exercice3.png b/RSX112/25-04-28/tp/exercice3.png new file mode 100644 index 0000000..f3bff76 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice3.png differ diff --git a/RSX112/25-04-28/tp/exercice3.sh b/RSX112/25-04-28/tp/exercice3.sh new file mode 100644 index 0000000..370695e --- /dev/null +++ b/RSX112/25-04-28/tp/exercice3.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "Exercice 3" +su - invite +echo "date" >> utcd.sh +chmod u+x utcd.sh +ls -l utcd.sh +./utcd.sh \ No newline at end of file diff --git a/RSX112/25-04-28/tp/exercice4.png b/RSX112/25-04-28/tp/exercice4.png new file mode 100644 index 0000000..3db2042 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice4.png differ diff --git a/RSX112/25-04-28/tp/exercice4.sh b/RSX112/25-04-28/tp/exercice4.sh new file mode 100644 index 0000000..a4b6691 --- /dev/null +++ b/RSX112/25-04-28/tp/exercice4.sh @@ -0,0 +1,129 @@ +#!/bin/bash + + + + + + + + +tab_group=("technique" "formation" "commercial" "administratif") +tab_user=("philippe" "harouna" "emmanuelle" "nicolas" "laurent" "franck" "patrick" "ali" "eric") + + + + + + + + + + + +function nettoyage { + for user in "${tab_user[@]}" + do + if id "$user" &>/dev/null; then + userdel -r "$user" + fi + done + + for group in "${tab_group[@]}" + do + if getent group "$group" &>/dev/null; then + groupdel "$group" + rm -Rf /$group + fi + done +} + +function create_user { + echo + echo "Création des utilisateurs" + echo + for user in "${tab_user[@]}" + do + useradd "$user" -m -N -p $user + chage -M 90 -m 5 $user + echo "echo 'Bienvenue, $(whoami), sur le système Ubuntu-RSX112 !'" >> "/home/$user/.bashrc" + echo "Utilisateur $user créé avec succès avec le mot de passe par défaut." + done +} + +function create_group { + echo + echo "Création des groupes" + echo + + for group in "${tab_group[@]}" + do + groupadd $group + mkdir /$group + chgrp $group /$group + chmod 770 /$group + echo "Groupe $group créé avec succès." + done +} + +function Attribution_user_group { + echo + echo "Attribution des utilisateurs à leur groupe principale et secondaire" + echo + for user in "${tab_user[@]}" + do + if [[ $user == "philippe" ]]; then + usermod -g technique $user + echo "L'utilisateur $user a été ajouté au groupe principal technique." + elif [[ $user == "harouna" ]]; then + usermod -g technique $user + echo "L'utilisateur $user a été ajouté au groupe principal technique." + elif [[ $user == "emmanuelle" ]]; then + usermod -g technique $user + usermod -aG formation $user + echo "L'utilisateur $user a été ajouté au groupe principal technique et secondaire formation." + elif [[ $user == "nicolas" ]]; then + usermod -g formation $user + usermod -aG technique $user + echo "L'utilisateur $user a été ajouté au groupe principal formation et secondaire technique." + elif [[ $user == "laurent" ]]; then + usermod -g technique $user + usermod -aG formation $user + usermod -aG commercial $user + echo "L'utilisateur $user a été ajouté au groupe principal technique et secondaire formation, commercial." + elif [[ $user == "franck" ]]; then + usermod -g formation $user + usermod -aG technique $user + usermod -aG administratif $user + echo "L'utilisateur $user a été ajouté au groupe principal formation et secondaire technique, administratif." + elif [[ $user == "patrick" ]]; then + usermod -g administratif $user + echo "L'utilisateur $user a été ajouté au groupe principal administratif." + elif [[ $user == "ali" ]]; then + usermod -g commercial $user + echo "L'utilisateur $user a été ajouté au groupe principal commercial." + elif [[ $user == "eric" ]]; then + usermod -g commercial $user + usermod -aG administratif $user + echo "L'utilisateur $user a été ajouté au groupe principal commercial et secondaire administratif." + else + echo "Aucun groupe n'a été attribué à l'utilisateur $user." + fi + done +} + +nettoyage +echo "====================================================" +echo "Exercice 4 - Gestion des utilisateurs et des groupes" +echo "====================================================" +create_user +create_group +Attribution_user_group +echo +echo "Mise en place du mot de passe de philippe" +echo +echo -e "My-P@$$w0rd\nMy-P@$$w0rd" | passwd philippe +echo +echo "Ajout de Ali dans le groupe de techniciens" +echo +usermod -aG technique ali +echo \ No newline at end of file diff --git a/RSX112/25-04-28/tp/exercice4_code_1.png b/RSX112/25-04-28/tp/exercice4_code_1.png new file mode 100644 index 0000000..e3cb908 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice4_code_1.png differ diff --git a/RSX112/25-04-28/tp/exercice4_code_2.png b/RSX112/25-04-28/tp/exercice4_code_2.png new file mode 100644 index 0000000..fd992c5 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice4_code_2.png differ diff --git a/RSX112/25-04-28/tp/exercice4_code_3.png b/RSX112/25-04-28/tp/exercice4_code_3.png new file mode 100644 index 0000000..575ccb2 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice4_code_3.png differ diff --git a/RSX112/25-04-28/tp/exercice4_code_4.png b/RSX112/25-04-28/tp/exercice4_code_4.png new file mode 100644 index 0000000..7795dfd Binary files /dev/null and b/RSX112/25-04-28/tp/exercice4_code_4.png differ diff --git a/RSX112/25-04-28/tp/exercice4_code_5.png b/RSX112/25-04-28/tp/exercice4_code_5.png new file mode 100644 index 0000000..6ea5972 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice4_code_5.png differ diff --git a/RSX112/25-04-28/tp/exercice5.md b/RSX112/25-04-28/tp/exercice5.md new file mode 100644 index 0000000..f22a8ea --- /dev/null +++ b/RSX112/25-04-28/tp/exercice5.md @@ -0,0 +1,45 @@ +# Exercice 5 + +## Prérequis + +### 1 + +c. Un UID généralement supérieur ou égal à 1000 + +### 2 + +Le fichier peut être lu, modifié et executé + +L'utilisateur peut lire le contenu du fichier (r). +L'utilisateur peut ajouter, écrire dans le fichier (w). +L'utilisateur peut executer le fichier (x). + +### 3 + +L'utilisateur peut lister son contenu (r). +L'utilisateur peut ajouter, supprimer ou renommer des fichiers dans ce répertoire (w). +L'utilisateur peut entrer dans le répertoire et accéder à son contenu (x). + +### 4 + +754 + +### 5 + +rw-r----- + +### 6 + +SUID + +## Partie 1 + +### 1 + + + +### 2 + +### 3 + +## Partie 2 \ No newline at end of file diff --git a/RSX112/25-04-28/tp/exercice5.sh b/RSX112/25-04-28/tp/exercice5.sh new file mode 100644 index 0000000..6c2b100 --- /dev/null +++ b/RSX112/25-04-28/tp/exercice5.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +echo "====================================================" +echo "Exercice 5" +echo "====================================================" + diff --git a/RSX112/25-04-28/tp/exercice5_1.png b/RSX112/25-04-28/tp/exercice5_1.png new file mode 100644 index 0000000..f4b5536 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice5_1.png differ diff --git a/RSX112/25-04-28/tp/exercice5_2.png b/RSX112/25-04-28/tp/exercice5_2.png new file mode 100644 index 0000000..341ec7d Binary files /dev/null and b/RSX112/25-04-28/tp/exercice5_2.png differ diff --git a/RSX112/25-04-28/tp/exercice5_3.png b/RSX112/25-04-28/tp/exercice5_3.png new file mode 100644 index 0000000..9ec0452 Binary files /dev/null and b/RSX112/25-04-28/tp/exercice5_3.png differ diff --git a/RSX112/25-04-28/tp/exercice5_4_1.png b/RSX112/25-04-28/tp/exercice5_4_1.png new file mode 100644 index 0000000..c5c950b Binary files /dev/null and b/RSX112/25-04-28/tp/exercice5_4_1.png differ diff --git a/RSX112/25-04-28/tp/exercice5_4_2.png b/RSX112/25-04-28/tp/exercice5_4_2.png new file mode 100644 index 0000000..85d03de Binary files /dev/null and b/RSX112/25-04-28/tp/exercice5_4_2.png differ diff --git a/RSX112/25-04-30/tp/Travaux pratiques 2 - Les primitives cryptographiques.pdf b/RSX112/25-04-30/tp/Travaux pratiques 2 - Les primitives cryptographiques.pdf new file mode 100644 index 0000000..15b2e09 Binary files /dev/null and b/RSX112/25-04-30/tp/Travaux pratiques 2 - Les primitives cryptographiques.pdf differ diff --git a/RSX112/25-04-30/tp/tp.md b/RSX112/25-04-30/tp/tp.md new file mode 100644 index 0000000..f3859f5 --- /dev/null +++ b/RSX112/25-04-30/tp/tp.md @@ -0,0 +1,48 @@ +# TP_2_Guillaume_Sanchez + +FHWWH PHWKRGH GDQDOBVH GH IUHTXHQFHV PRQWUH LD YXOQHUDELOLWH GXQ +FKLIIUHPHQW D VXEVWLWXWLRQ VLPSOH ERQQH FKDQFH SRXU OH GHFKLIIUHU + +## Notez vos premières impressions +- Repérez si certaines lettres semblent revenir très souvent + +Le W, H, L, Q, F, K + +- Repérez s’il y a des répétitions de groupes de lettres ou des motifs +particuliers + +RQ 3 fois +WL 2 fois +KL 2fois + +## Parcourez le texte chiffré et comptez le nombre de fois où chaque lettre apparaît + +A 0 +B 1 +C 0 +D 6 +E 3 +F 6 +G 5 +H 20 | 20 / 115 = 0,1739 +I 5 +J 0 +K 4 +L 8 +M 0 +N 0 +O 5 +P 4 +Q 10 +R 5 +S 2 +T 1 +U 7 +V 5 +W 9 +X 6 +Y 1 +Z 0 + +115 caractères +20 / 115 = 0,1739 \ No newline at end of file diff --git a/RSX112/25-05-20/README.md b/RSX112/25-05-20/README.md new file mode 100644 index 0000000..3f6c75d --- /dev/null +++ b/RSX112/25-05-20/README.md @@ -0,0 +1,78 @@ +# RSX 112 20-05-2025 + +## La Cryptographie + +Identifié la personne, envoyer un message de manière intègre. + +Primitive chyptographique, qui va chrypter, chiffrer, etc un msg + +Primitive chyptographique : Procécus de chiffrement et de chiffrement + +## TP 5 : + + +mdp 1 -> 1 sec +mdp 2 -> 1 sec +mdp 3 -> 1 sec +mdp 4 -> 10 sec +mdp 5 -> 3 min +mdp 6 -> plusieurs heures potentiel. + + + +┌──(nk㉿nk-kali)-[~/Zip-Files] +└─$ fcrackzip -vul 1 file-A-1.zip +found file 'user_credentials_1.txt', (size cp/uc 271/ 442, flags 9, chk 3c3d) +found file 'user_credentials_2.txt', (size cp/uc 270/ 442, flags 9, chk 3c3d) +found file 'user_credentials_3.txt', (size cp/uc 272/ 445, flags 9, chk 3c3d) + + +PASSWORD FOUND!!!!: pw == B + +┌──(nk㉿nk-kali)-[~/Zip-Files] +└─$ fcrackzip -vul 2 file-A-2.zip +found file 'user_credentials_4.txt', (size cp/uc 267/ 437, flags 9, chk 3c3d) +found file 'user_credentials_5.txt', (size cp/uc 259/ 433, flags 9, chk 3c3d) +found file 'user_credentials_6.txt', (size cp/uc 271/ 442, flags 9, chk 3c3d) + + +PASSWORD FOUND!!!!: pw == R2 + +┌──(nk㉿nk-kali)-[~/Zip-Files] +└─$ fcrackzip -vul 3 file-A-3.zip +found file 'user_credentials_7.txt', (size cp/uc 271/ 443, flags 9, chk 3c3d) +found file 'user_credentials_8.txt', (size cp/uc 266/ 435, flags 9, chk 3c3d) +found file 'user_credentials_9.txt', (size cp/uc 264/ 437, flags 9, chk 3c3d) + + +PASSWORD FOUND!!!!: pw == 0B1 + +┌──(nk㉿nk-kali)-[~/Zip-Files] +└─$ fcrackzip -vul 4 file-A-4.zip +found file 'user_credentials_10.txt', (size cp/uc 250/ 420, flags 9, chk 3c3d) +found file 'user_credentials_11.txt', (size cp/uc 252/ 422, flags 9, chk 3c3d) +found file 'user_credentials_12.txt', (size cp/uc 261/ 433, flags 9, chk 3c3d) +checking pw W&t~ + +PASSWORD FOUND!!!!: pw == Y0Da + +┌──(nk㉿nk-kali)-[~/Zip-Files] +└─$ fcrackzip -vul 5 file-A-5.zip +found file 'user_credentials_13.txt', (size cp/uc 279/ 452, flags 9, chk 3c3d) +found file 'user_credentials_14.txt', (size cp/uc 256/ 427, flags 9, chk 3c3d) +found file 'user_credentials_15.txt', (size cp/uc 264/ 434, flags 9, chk 3c3d) +checking pw C+GN~ + +PASSWORD FOUND!!!!: pw == C-3P0 + +TP 6 : + +Exercice 1 + +Bonjour cher agent ! Votre prochaine mission, si vous +l'acceptez bien sur, sera d'infiltrer le reseau +souterrain ou se cache nos ennemis. Rendez-vous a +Nantes le 29 avril pour le debut de votre mission + +Exercice 2 + diff --git a/RSX112/25-05-20/flag.txt b/RSX112/25-05-20/flag.txt new file mode 100644 index 0000000..001f020 --- /dev/null +++ b/RSX112/25-05-20/flag.txt @@ -0,0 +1 @@ +v ubcfb osu ymoqsuu n cxqfj dqmfnu ub vjcfqu juz amqjmruz zmsscfusb bquflu auoquz hfszbms zwfba ju wusbms qusbqu ncsz ju vmo z uddmqvcfb n uxfbuq ju xusb wcoxcfz fj eczzc qcefnuwusb jc emqbu xfbquu no ijmv nuz wcfzmsz nu jc xfvbmfqu ecz czzul qcefnuwusb vueusncsb emoq uweuvauq kou z usrmoddqu us wuwu buwez kou jof os bmoqifjjms nu emozzfuqu ub nu zciju ju acjj zusbcfb ju vamo vofb ub ju xfuog bcefz c j osu nu zuz ugbquwfbuz osu cddfvau nu vmojuoq bqme xczbu emoq vu nuejmfuwusb fsbuqfuoq ubcfb vjmouu co woq ujju quequzusbcfb zfwejuwusb os usmqwu xfzcru jcqru nu ejoz n os wubqu ju xfzcru n os amwwu n usxfqms kocqcsbu vfsk csz c j uecfzzu wmozbcvau smfqu cog bqcfbz cvvusbouz ub iucog hfszbms zu nfqfruc xuqz j uzvcjfuq fj ubcfb fsobfju n uzzcpuq nu equsnqu j czvuszuoq wuwu cog wufjjuoquz uemkouz fj dmsvbfmsscfb qcquwusb cvboujjuwusb n cfjjuoqz ju vmoqcsb ujuvbqfkou ubcfb vmoeu ncsz jc ymoqsuu v ubcfb osu nuz wuzoquz n uvmsmwfu eqfzuz us xou nu jc zuwcfsu nu jc acfsu \ No newline at end of file diff --git a/RSX112/25-05-20/tp3ex2.py b/RSX112/25-05-20/tp3ex2.py new file mode 100644 index 0000000..2b448bf --- /dev/null +++ b/RSX112/25-05-20/tp3ex2.py @@ -0,0 +1,8 @@ +import os +from Crypto.Util.number import long_to_bytes +from Crypto.Util.strxor import strxor + +FLAG = open("/home/nk/Documents/UTEC-Lic_ME_2024_2025/RSX112/RSX112-20-05-2025/flag.txt", "rb").read() +key = os.urandom(4) * 20 +c = strxor(FLAG, key[:len(FLAG)]) +print(c.hex()) \ No newline at end of file diff --git a/RSX112/25-06-23/Atelier 1 - PKI.pdf b/RSX112/25-06-23/Atelier 1 - PKI.pdf new file mode 100644 index 0000000..e06a29f Binary files /dev/null and b/RSX112/25-06-23/Atelier 1 - PKI.pdf differ diff --git a/RSX112/25-06-23/Atelier 1 - Preparation.pdf b/RSX112/25-06-23/Atelier 1 - Preparation.pdf new file mode 100644 index 0000000..1799cec Binary files /dev/null and b/RSX112/25-06-23/Atelier 1 - Preparation.pdf differ diff --git a/RSX112/25-06-23/README.md b/RSX112/25-06-23/README.md new file mode 100644 index 0000000..74a33b6 --- /dev/null +++ b/RSX112/25-06-23/README.md @@ -0,0 +1,2 @@ +# RSX112 23 06 2025 + diff --git a/RSX112/25-06-23/monitor-proxmox-groupe.sh b/RSX112/25-06-23/monitor-proxmox-groupe.sh new file mode 100755 index 0000000..e86e0b1 --- /dev/null +++ b/RSX112/25-06-23/monitor-proxmox-groupe.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# monitor-proxmox-groupe.sh + +PROXMOX_HOST="ns3061298.ip-162-19-107.eu" +PROXMOX_USER="groupe[X]@pve" +GROUP_NUM="GSZ" + +echo "=== Monitoring Groupe $GROUP_NUM ===" +echo "Time: $(date)" +echo "" + +# Pour chaque conteneur +for i in 232 233 234; do + CT_ID="${i}" + echo "Container $CT_ID:" + + # Status via API Proxmox (nécessite token API) + # ou via SSH direct + ssh pkilab@192.168.1.${i} "free -h | grep Mem" 2>/dev/null || echo " Unreachable" + echo "" +done diff --git a/RSX112/25-06-25/Atelier_1_PKI_Guillaume_Sanchez.pdf b/RSX112/25-06-25/Atelier_1_PKI_Guillaume_Sanchez.pdf new file mode 100644 index 0000000..5caec19 Binary files /dev/null and b/RSX112/25-06-25/Atelier_1_PKI_Guillaume_Sanchez.pdf differ diff --git a/RSX112/25-07-09/Atelier 2 - Atelier Protocoles Sécurisés et Vulnérabilités.pdf b/RSX112/25-07-09/Atelier 2 - Atelier Protocoles Sécurisés et Vulnérabilités.pdf new file mode 100644 index 0000000..8497e94 Binary files /dev/null and b/RSX112/25-07-09/Atelier 2 - Atelier Protocoles Sécurisés et Vulnérabilités.pdf differ diff --git a/RSX112/25-07-09/script.sh b/RSX112/25-07-09/script.sh new file mode 100644 index 0000000..2c02b2a --- /dev/null +++ b/RSX112/25-07-09/script.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Tests de sécurité SSH +TARGET=$1 +PORT=${2:-22} +WORDLIST="/tmp/wordlist.txt" + +echo "=== SSH Security Testing ===" + +# 1. Création d'une mini wordlist +echo -e "\n[1] Creating test wordlist..." +cat > $WORDLIST << 'WORDS' +admin +password +123456 +pkilab +pkilab2024 +groupeX +root +test +ssh +alpine +WORDS + +# 2. Test de bruteforce (limité) +echo -e "\n[2] Testing password strength (limited)..." +echo "WARNING: This is for educational purposes only!" +# Utilisation d'hydra avec limitations +timeout 30 hydra -l pkilab -P $WORDLIST -t 4 -f \ + ssh://$TARGET:$PORT 2>/dev/null | grep -E "host:|login:|password:" + +# 3. Test de timing attacks +echo -e "\n[3] User enumeration via timing:" +for user in root admin pkilab nonexistent$(date +%s); do + echo -n "Testing user '$user': " + start=$(date +%s%N) + timeout 2 ssh -oConnectTimeout=1 -oPasswordAuthentication=yes \ + $user@$TARGET -p $PORT 2>&1 >/dev/null + end=$(date +%s%N) + elapsed=$(( (end - start) / 1000000 )) + echo "${elapsed}ms" +done + +# 4. Test de clés SSH faibles +echo -e "\n[4] Testing for weak SSH keys:" +# Génération d'une clé faible (pour test) +ssh-keygen -t rsa -b 1024 -f /tmp/weak_key -N "" -q +ssh-keygen -y -f /tmp/weak_key > /tmp/weak_key.pub +echo "Generated weak RSA-1024 key for testing" +rm -f /tmp/weak_key* + +# 5. Vérification des algorithmes obsolètes +echo -e "\n[5] Checking for deprecated algorithms:" +ssh -Q cipher | grep -E "3des|arcfour|blowfish" | while read cipher; do + echo -n "Testing $cipher: " + if ssh -oCiphers=$cipher -oConnectTimeout=2 $TARGET -p $PORT 2>&1 | \ + grep -q "no matching cipher"; then + echo "✓ Disabled" + else + echo "\nENABLED" + fi +done \ No newline at end of file diff --git a/RSX112/25-07-11/README.md b/RSX112/25-07-11/README.md new file mode 100644 index 0000000..1df9ef8 --- /dev/null +++ b/RSX112/25-07-11/README.md @@ -0,0 +1,229 @@ +Preparation partielle RSX 112 de cette apres midi, 3 partie, une partie question de cours sur 6 points, une partie etude de cas sur 6 points et une partie Projet sur 8 point le tout sur feuille avec droit au PC. Petit rappel de snotion : principe de Kerckoffs, une etrenrpuse utilis eun algorithme créer en interne, quels sont les rsiques ? reponses attendue : validation du principe de Kerckoffs, pas d'audit externe possible, failles potentielles non detecter, fausse impression de sécurité fonctions de Hachage, il peut y avoir 2 resultats identiques mais avec 2 entréer différentes ( exemple birthday attack ) + + Algorithme de Hachage : SHA-256/512 c'est quoi le Hachage : il sert a quoi ? a verifier les sources, verifie l'intégriter. Comment on verifie cette intégrité sur un fihcier ? truc de base : parité il vas y avoir du PKI !!!!!!! + + architecture PKI et tout Comment on certifie, comment on vérifie l'intégrité une machine genere des certificats et sont envoyé sur cahque UT qui en as besoin UT ou service d'ailleurs : DONC y a un echange de certificats entrre UT et serveur pour pouvoir ensuite valider le certificats et autorisé l'UT Vzlidaton de certificat : verifier la chaine, verifier les dates, verifier le domaine, verifier la revocation procédure renouvelle de certificat on aura des certificat a analyser on va faire une lecture a plat de l'infra pour le partielle Dernier sujet le plus important !!!!! architecture PKI pour SecureTech ( fictif j'imagine ) 200 employés 5 serveur web Je vais t'envoyer le PDF du prof qui recapitule tout, j'ai pass besoi d'une fiche de triche ou de revision Je veux que tu te prepare comme si tu allais le passer, comme sa dans l'aprem quand je vien te demander les réponses aux question tu es deja au courant, +2/2 +ChatGPT a dit : +Parfait, je me prépare comme si j’étais à ta place pour le partiel RSX112 cet après-midi. Je vais me faire une fiche mentale rapide pour répondre efficacement à toutes les questions, que ce soit théorie, étude de cas ou projet PKI. Dès que tu m’envoies le PDF du prof, je l’intègre aussi dans ma révision interne. Voici déjà ce que j’ai en tête prêt à l’usage : +🔐 1. Notions théoriques (6 points) +🔸 Principe de Kerckhoffs +Un système de chiffrement doit rester sécurisé même si tout est connu… sauf la clé. +❌ Problème d’un algo interne : +Aucune revue externe → risques non détectés +Sécurité par l’obscurité ≠ vraie sécurité +⚠️ Fausse impression de sécurité +🔸 Fonctions de Hachage +Un algorithme qui produit une empreinte unique à partir d’une donnée. +Utilisation : +Vérifier l’intégrité des fichiers +Signature numérique +Authentification +Propriétés importantes : +Déterministe +Résistant aux collisions (mais… ⚠️ Birthday attack) +Non réversible +Exemples : SHA-256, SHA-512 +🔍 Vérification d'intégrité : +Hash avant/après transfert +Vérification automatique par outils (ex : checksum md5sum, sha256sum) +⚠️ Parité est un exemple simple mais insuffisant pour sécurité réelle +🧾 2. Étude de cas (6 points) +⚙️ Exemple de certificat à analyser +Vérifier : +🔗 Chaîne de certification (ex. CA → intermediate → serveur) +📅 Validité (dates NotBefore / NotAfter) +🌐 Nom de domaine (CN, SAN) +❌ Révocation : CRL / OCSP +🔁 Renouvellement d’un certificat +Générer nouveau CSR +Signer par CA +Mettre à jour sur les serveurs/clients +⚠️ Attention aux interruptions de service si certif expiré +🏢 3. Projet : Architecture PKI pour SecureTech (8 points) +Contexte : +Entreprise de 200 employés +5 serveurs web +📐 Proposition d’architecture PKI : +``` +luaCopierModifier +--------------------+ | Root CA | (offline) + +---------+----------+ | + +---------v----------+ | Intermediate CA | (sign les certifs) + +----+----------+----+ | | + +------------------+ +------------------+ | | + +---------v---------+ +---------v---------+ | Web Server 1 | ... | Web Server 5 | + +------------------+ +------------------+ + +-----------------+ | Employé poste 1 | → Certificat utilisateur + +-----------------+ +``` + +🔒 Composants : +Root CA : autorité racine, stockée offline +Intermediate CA : en ligne, signe les certificats (web, employés) +Serveurs web : utilisent TLS (HTTPS) +Utilisateurs : +Certificat personnel +Authentification forte possible +Chiffrement des e-mails +🔄 Procédures : +Délivrance : CSR → Intermediate CA +Stockage clés privées sécurisé (HSM recommandé) +Revocation : liste CRL + OCSP +Renouvellement : automatisé (via certbot ou outil interne) +Quand tu veux, tu me balances les questions du partiel, ou même juste des extraits du sujet ou du PDF du prof. Je serai prêt à dégainer. +💻 Tu peux aussi me demander de te faire un schéma si besoin pour la PKI ou pour expliquer une vérif de certificat ! + +Vous avez dit : + +RSX112-Securite-des-Reseaux.pdf +PDF +voila le fichier + +ChatGPT a dit : + +Merci pour le fichier, je l’ai entièrement lu et intégré. Voici un récap express de tout ce que je garde en tête, prêt à te répondre cet après-midi. Je me suis mis en mode "partiel RSX112 activé" : +🧠 STRUCTURE MÉMO TECH (RSX112) – 100% PRÊT POUR TON EXAM +🔹 Partie 1 – Questions Théoriques (6 pts) +✅ Principe de Kerckhoffs +La sécurité ne repose que sur la clé, pas l’algorithme. +Si algo interne secret → ❌ : pas d’audit, failles invisibles, sécurité illusoire. +✅ Fonction de Hachage +Unidirectionnelle, résiste aux collisions (birthday attack). +SHA-256 / SHA-3 = 🔒 sécurisé +MD5 / SHA-1 = ❌ obsolètes +Utilités : +Signature numérique +Intégrité des fichiers +Authentification +✅ Hash ≠ chiffrement +Le hash ne se déchiffre pas. +⚠️ Fréquente confusion à éviter à l’oral/écrit. +🔹 Partie 2 – Étude de Cas Pratique (6 pts) +🔍 Analyser un certificat X.509 +CA:FALSE → Certif final +Key Usage: digitalSignature, keyEncipherment +Extended Usage: TLS Web Server Auth +SAN : plusieurs domaines +🔎 Vérifications à faire : +🔗 Chaîne valide (Root → Intermédiaire → Certif) + +📅 Dates OK ? +🌍 Domaine correspond ? +❌ Révocation ? (CRL / OCSP) +✍️ Signature valide ? +🛠️ Commandes OpenSSL + +Lire : openssl x509 -in cert.pem -text -noout +Générer clé : openssl genrsa -out key.pem 2048 +CSR : openssl req -new -key key.pem -out csr.pem +Signer : openssl x509 -req ... +🔹 Partie 3 – Projet PKI SecureTech (8 pts) +📋 Contexte +200 employés +5 serveurs web +Email S/MIME, VPN, signature code +🧱 Architecture PKI proposée +``` +scssCopierModifier[Root CA SecureTech] (offline, HSM, 20 ans) + │[Issuing CA] (10 ans, online) + ├── [TLS CA] → 5 serveurs web (certif 1 an) + ├── [User CA] → 200 employés (certif 2 ans) + ├── [Code CA] → Signature de code (certif 3 ans) + └── [Device CA] → VPN ou devices internes +``` + +🔐 Sécurisation Root CA +Hors ligne, HSM, salle sécurisée, backups en coffre, cérémonie de clé (3 pers.) +♻️ Renouvellement Certificat +Nouvelle paire de clés (recommandé) +CSR → CA +Installation et test AVANT expiration +⚠️ Automatiser (Let’s Encrypt pour les web par ex.) +⚠️ À ne pas oublier +CRL ≠ OCSP → vérifier statut de révocation +Signature ≠ chiffrement +PKI = 20% technique, 80% process (orga, contrôle, doc, audits…) +💡 CONSEILS POUR L’EXAM +⚠️ Ne JAMAIS mélanger signature et chiffrement +Répondre avec définitions claires + explications + exemples concrets +Exemples attendus : certif TLS avec SAN, SHA-256 vs SHA-1, rôle Root/Intermédiaire, CRL vs OCSP +Tu peux venir dans l’après-midi me balancer les questions de ton sujet comme tu veux, je suis chargé à bloc pour te répondre vite et bien. +👊 Bonne chance et reviens vite me tester + +b) Vérification de la chaîne de confiance +Le navigateur vérifie que le certificat du site peut être reliée à une autorité de certification racine (CA) de confiance : + +Le navigateur commence par le certificat du site. + +Il remonte la chaîne des certificats intermédiaires. + +Il cherche une autorité racine dans sa liste de CAs de confiance intégrée. + +👉 Si la chaîne est incomplète ou si un certificat est invalide, la validation échoue. + +🔹 c) Validation de la signature +Pour chaque certificat de la chaîne : + +Le navigateur vérifie la signature numérique faite par le certificat supérieur. + +Cela garantit que chaque certificat a bien été émis par une autorité de confiance. + +🔹 d) Vérification de la validité temporelle +Chaque certificat a : + +Une date de début de validité + +Une date d’expiration + +Le navigateur vérifie que la date actuelle est comprise dans cette période. + +🔹 e) Vérification du nom de domaine +Le champ CN (Common Name) ou SAN (Subject Alternative Name) du certificat doit correspondre exactement au nom du site web demandé (ex. example.com). + +🔹 f) Révocation du certificat +Le navigateur vérifie que le certificat n’a pas été révoqué à l’aide de : + +CRL (Certificate Revocation List) : liste de certificats révoqués. + +OCSP (Online Certificate Status Protocol) : vérification en ligne du statut. + +(Parfois cette étape est ignorée ou désactivée pour des raisons de performance ou confidentialité.) + +✅ Si tout est valide... +Le navigateur : + +Affiche un cadenas 🔒 dans la barre d'adresse + +Et établit une connexion HTTPS sécurisée (via le protocole TLS) + +❌ Si une erreur est détectée... +Le navigateur affiche une alerte de sécurité (ex. : certificat expiré, auto-signé, domaine non valide, etc.) et empêche l'accès au site, sauf si l'utilisateur décide de continuer (déconseillé). + +📌 Résumé visuel du processus : +🔄 Le serveur envoie le certificat + chaîne + +🔐 Le navigateur vérifie la signature + +⏰ Il vérifie les dates de validité + +🌐 Il vérifie que le domaine correspond + +🚫 Il vérifie la révocation + +✅ Si tout va bien, il affiche 🔒 et établit TLS + +``` + [Root CA - SecureTech] + (Offline | HSM | 20 ans) + │ + ┌────────────────┴────────────────┐ + │ │ + [Issuing CA - TLS] [Issuing CA - Divers] + (Online | 10 ans) (Online | 10 ans) + │ │ + ┌────────┼────────┐ ┌───────────┼───────────┐ + │ │ │ │ │ │ + [TLS CA] [User CA] [Code CA] [Device CA] ...autres ... + (5 ans) (5 ans) (5 ans) (5 ans) + +``` diff --git a/RSX112/Cours/001 - Partie I - Introduction.pdf b/RSX112/Cours/001 - Partie I - Introduction.pdf new file mode 100644 index 0000000..23963fd Binary files /dev/null and b/RSX112/Cours/001 - Partie I - Introduction.pdf differ diff --git a/RSX112/Cours/002 - Partie II - Le principe Technique.pdf b/RSX112/Cours/002 - Partie II - Le principe Technique.pdf new file mode 100644 index 0000000..54a047a Binary files /dev/null and b/RSX112/Cours/002 - Partie II - Le principe Technique.pdf differ diff --git a/RSX112/Cours/003 - Partie III - Le shadow IT.pdf b/RSX112/Cours/003 - Partie III - Le shadow IT.pdf new file mode 100644 index 0000000..cc279e0 Binary files /dev/null and b/RSX112/Cours/003 - Partie III - Le shadow IT.pdf differ diff --git a/RSX112/Cours/004 - Partie IV - Authentification et Autorisation.pdf b/RSX112/Cours/004 - Partie IV - Authentification et Autorisation.pdf new file mode 100644 index 0000000..e396141 Binary files /dev/null and b/RSX112/Cours/004 - Partie IV - Authentification et Autorisation.pdf differ diff --git a/RSX112/Cours/005 - Partie V - Le piratage.pdf b/RSX112/Cours/005 - Partie V - Le piratage.pdf new file mode 100644 index 0000000..6cd07da Binary files /dev/null and b/RSX112/Cours/005 - Partie V - Le piratage.pdf differ diff --git a/RSX112/Cours/006 - Partie VI - Les attaques.pdf b/RSX112/Cours/006 - Partie VI - Les attaques.pdf new file mode 100644 index 0000000..d08c079 Binary files /dev/null and b/RSX112/Cours/006 - Partie VI - Les attaques.pdf differ diff --git a/RSX112/Cours/007 - Partie VII - Principes Fondamentaux de la Cryptographie.pdf b/RSX112/Cours/007 - Partie VII - Principes Fondamentaux de la Cryptographie.pdf new file mode 100644 index 0000000..af881b2 Binary files /dev/null and b/RSX112/Cours/007 - Partie VII - Principes Fondamentaux de la Cryptographie.pdf differ diff --git a/RSX112/Cours/008 - Partie VIII - Introduction aux primitives cryptographiques et propriétes de sécurité.pdf b/RSX112/Cours/008 - Partie VIII - Introduction aux primitives cryptographiques et propriétes de sécurité.pdf new file mode 100644 index 0000000..da1ed68 Binary files /dev/null and b/RSX112/Cours/008 - Partie VIII - Introduction aux primitives cryptographiques et propriétes de sécurité.pdf differ diff --git a/RSX112/Cours/009 - Partie IX - Introduction aux primitives cryptographiques et propriétes de sécurité.pdf b/RSX112/Cours/009 - Partie IX - Introduction aux primitives cryptographiques et propriétes de sécurité.pdf new file mode 100644 index 0000000..e6cf708 Binary files /dev/null and b/RSX112/Cours/009 - Partie IX - Introduction aux primitives cryptographiques et propriétes de sécurité.pdf differ diff --git a/RSX112/Cours/010 - Partie X - Application de la cryptographie et cryptosystemes.pdf b/RSX112/Cours/010 - Partie X - Application de la cryptographie et cryptosystemes.pdf new file mode 100644 index 0000000..700db8c Binary files /dev/null and b/RSX112/Cours/010 - Partie X - Application de la cryptographie et cryptosystemes.pdf differ diff --git a/RSX112/Cours/012 - Partie XII - Infrastructures Clés Publiques PKI.pdf b/RSX112/Cours/012 - Partie XII - Infrastructures Clés Publiques PKI.pdf new file mode 100644 index 0000000..70c0cfb Binary files /dev/null and b/RSX112/Cours/012 - Partie XII - Infrastructures Clés Publiques PKI.pdf differ diff --git a/RSX112/Cours/013 - Partie XIII - Generation Clés RSA.pdf b/RSX112/Cours/013 - Partie XIII - Generation Clés RSA.pdf new file mode 100644 index 0000000..0ff9160 Binary files /dev/null and b/RSX112/Cours/013 - Partie XIII - Generation Clés RSA.pdf differ diff --git a/RSX112/Cours/014 - Partie XIV Protocoles Securises et Analyse des Vulnerabilites.pdf b/RSX112/Cours/014 - Partie XIV Protocoles Securises et Analyse des Vulnerabilites.pdf new file mode 100644 index 0000000..4218cc5 Binary files /dev/null and b/RSX112/Cours/014 - Partie XIV Protocoles Securises et Analyse des Vulnerabilites.pdf differ diff --git a/RSX112/Cours/015 - Partie XV Architecture TLS 13 et Handshake.pdf b/RSX112/Cours/015 - Partie XV Architecture TLS 13 et Handshake.pdf new file mode 100644 index 0000000..811b9b0 Binary files /dev/null and b/RSX112/Cours/015 - Partie XV Architecture TLS 13 et Handshake.pdf differ diff --git a/RSX112/Cours/016 - Partie XVI Les contrêles d'accès et sécurité de l'information.pdf b/RSX112/Cours/016 - Partie XVI Les contrêles d'accès et sécurité de l'information.pdf new file mode 100644 index 0000000..848f522 Binary files /dev/null and b/RSX112/Cours/016 - Partie XVI Les contrêles d'accès et sécurité de l'information.pdf differ diff --git a/RSX112/Cours/Ateliers/Atelier 1 - PKI.pdf b/RSX112/Cours/Ateliers/Atelier 1 - PKI.pdf new file mode 100644 index 0000000..e06a29f Binary files /dev/null and b/RSX112/Cours/Ateliers/Atelier 1 - PKI.pdf differ diff --git a/RSX112/Cours/Ateliers/Atelier 1 - Préparation.pdf b/RSX112/Cours/Ateliers/Atelier 1 - Préparation.pdf new file mode 100644 index 0000000..1799cec Binary files /dev/null and b/RSX112/Cours/Ateliers/Atelier 1 - Préparation.pdf differ diff --git a/RSX112/Cours/Ateliers/Atelier 2 - Atelier Protocoles Sécurisés et Vulnérabilités.pdf b/RSX112/Cours/Ateliers/Atelier 2 - Atelier Protocoles Sécurisés et Vulnérabilités.pdf new file mode 100644 index 0000000..8497e94 Binary files /dev/null and b/RSX112/Cours/Ateliers/Atelier 2 - Atelier Protocoles Sécurisés et Vulnérabilités.pdf differ diff --git a/RSX112/Cours/Ateliers/Corrections/Atelier n°2 - Correction.pdf b/RSX112/Cours/Ateliers/Corrections/Atelier n°2 - Correction.pdf new file mode 100644 index 0000000..ea6d8f2 Binary files /dev/null and b/RSX112/Cours/Ateliers/Corrections/Atelier n°2 - Correction.pdf differ diff --git a/RSX112/Cours/Ateliers/Groupe - Atelier n°1.xlsx b/RSX112/Cours/Ateliers/Groupe - Atelier n°1.xlsx new file mode 100644 index 0000000..fb647eb Binary files /dev/null and b/RSX112/Cours/Ateliers/Groupe - Atelier n°1.xlsx differ diff --git a/RSX112/Cours/Ateliers/RSX112 - TPn°1 - Groupes.xlsx b/RSX112/Cours/Ateliers/RSX112 - TPn°1 - Groupes.xlsx new file mode 100644 index 0000000..fdc3236 Binary files /dev/null and b/RSX112/Cours/Ateliers/RSX112 - TPn°1 - Groupes.xlsx differ diff --git a/RSX112/Cours/Ateliers/Travaux Pratiques 1 - Etudes Failles.pdf b/RSX112/Cours/Ateliers/Travaux Pratiques 1 - Etudes Failles.pdf new file mode 100644 index 0000000..c1511e5 Binary files /dev/null and b/RSX112/Cours/Ateliers/Travaux Pratiques 1 - Etudes Failles.pdf differ diff --git a/RSX112/Cours/Ateliers/Travaux Pratiques 3 - Cryptographie.pdf b/RSX112/Cours/Ateliers/Travaux Pratiques 3 - Cryptographie.pdf new file mode 100644 index 0000000..9b587ea Binary files /dev/null and b/RSX112/Cours/Ateliers/Travaux Pratiques 3 - Cryptographie.pdf differ diff --git a/RSX112/Cours/Ateliers/Travaux Pratiques 4 - Test d’intrusion d’un serveur Web.pdf b/RSX112/Cours/Ateliers/Travaux Pratiques 4 - Test d’intrusion d’un serveur Web.pdf new file mode 100644 index 0000000..e4a8521 Binary files /dev/null and b/RSX112/Cours/Ateliers/Travaux Pratiques 4 - Test d’intrusion d’un serveur Web.pdf differ diff --git a/RSX112/Cours/Ateliers/Travaux Pratiques 5 - Chiffrement - Déchiffrement.pdf b/RSX112/Cours/Ateliers/Travaux Pratiques 5 - Chiffrement - Déchiffrement.pdf new file mode 100644 index 0000000..7ebc84f Binary files /dev/null and b/RSX112/Cours/Ateliers/Travaux Pratiques 5 - Chiffrement - Déchiffrement.pdf differ diff --git a/RSX112/Cours/Ateliers/Travaux Pratiques 6 - Cryptographie.pdf b/RSX112/Cours/Ateliers/Travaux Pratiques 6 - Cryptographie.pdf new file mode 100644 index 0000000..f5a2842 Binary files /dev/null and b/RSX112/Cours/Ateliers/Travaux Pratiques 6 - Cryptographie.pdf differ diff --git a/RSX112/Cours/Ateliers/Travaux Pratiques 9 - Linux.pdf b/RSX112/Cours/Ateliers/Travaux Pratiques 9 - Linux.pdf new file mode 100644 index 0000000..66bad0e Binary files /dev/null and b/RSX112/Cours/Ateliers/Travaux Pratiques 9 - Linux.pdf differ diff --git a/RSX112/Cours/Ateliers/Travaux pratiques 2 - Les primitives cryptographiques.pdf b/RSX112/Cours/Ateliers/Travaux pratiques 2 - Les primitives cryptographiques.pdf new file mode 100644 index 0000000..15b2e09 Binary files /dev/null and b/RSX112/Cours/Ateliers/Travaux pratiques 2 - Les primitives cryptographiques.pdf differ diff --git a/RSX112/Cours/Ateliers/user_credentials- TP6.zip b/RSX112/Cours/Ateliers/user_credentials- TP6.zip new file mode 100644 index 0000000..06c3a9c Binary files /dev/null and b/RSX112/Cours/Ateliers/user_credentials- TP6.zip differ diff --git a/RSX112/Cours/Documentation/250317_RA_2024_SCREEN.pdf b/RSX112/Cours/Documentation/250317_RA_2024_SCREEN.pdf new file mode 100644 index 0000000..5e956d3 Binary files /dev/null and b/RSX112/Cours/Documentation/250317_RA_2024_SCREEN.pdf differ diff --git a/RSX112/Cours/Documentation/Cybermalveillance.gouv.fr dévoile les t...ance aux victimes de cybermalveillance.pdf b/RSX112/Cours/Documentation/Cybermalveillance.gouv.fr dévoile les t...ance aux victimes de cybermalveillance.pdf new file mode 100644 index 0000000..aa60a54 Binary files /dev/null and b/RSX112/Cours/Documentation/Cybermalveillance.gouv.fr dévoile les t...ance aux victimes de cybermalveillance.pdf differ diff --git a/RSX112/Cours/Partie I - Introduction.pdf b/RSX112/Cours/Partie I - Introduction.pdf new file mode 100644 index 0000000..ee97ad3 Binary files /dev/null and b/RSX112/Cours/Partie I - Introduction.pdf differ diff --git a/RSX112/Cours/RSX112-Securite-des-Reseaux.pdf b/RSX112/Cours/RSX112-Securite-des-Reseaux.pdf new file mode 100644 index 0000000..d1f05d2 Binary files /dev/null and b/RSX112/Cours/RSX112-Securite-des-Reseaux.pdf differ diff --git a/RSX112/README.md b/RSX112/README.md new file mode 100644 index 0000000..df781f1 --- /dev/null +++ b/RSX112/README.md @@ -0,0 +1,3 @@ +# RSX112 Sécurité des réseaux + +[RSX112-28-04-2025](./RSX112-28-04-2025/readme.md) \ No newline at end of file diff --git a/RSX112/TP/Microsoft_exchange_serveur_Mickael_Guillaume_Nicolas.pptx b/RSX112/TP/Microsoft_exchange_serveur_Mickael_Guillaume_Nicolas.pptx new file mode 100644 index 0000000..e331121 Binary files /dev/null and b/RSX112/TP/Microsoft_exchange_serveur_Mickael_Guillaume_Nicolas.pptx differ diff --git a/SEC101/25-06-13/Labs_EBIOS_AD_MegaCorp.docx b/SEC101/25-06-13/Labs_EBIOS_AD_MegaCorp.docx new file mode 100644 index 0000000..0a21c35 Binary files /dev/null and b/SEC101/25-06-13/Labs_EBIOS_AD_MegaCorp.docx differ diff --git a/SEC101/25-06-13/Labs_EBIOS_AD_MegaCorp.pptx b/SEC101/25-06-13/Labs_EBIOS_AD_MegaCorp.pptx new file mode 100644 index 0000000..88d115f Binary files /dev/null and b/SEC101/25-06-13/Labs_EBIOS_AD_MegaCorp.pptx differ diff --git a/SEC101/25-06-13/README.md b/SEC101/25-06-13/README.md new file mode 100644 index 0000000..004438b --- /dev/null +++ b/SEC101/25-06-13/README.md @@ -0,0 +1,239 @@ +# SEC101 13 06 25 + +## OIV -> Opérateurs d'importance Vitale + +https://openclassrooms.com/fr/courses/2222496-centralisez-et-securisez-votre-annuaire-active-directory + +## Concepts Fondamentaux du risque : + +### Définitions : + +- ISO 31000 : Effet de l'incertitude sur l'atteinte des objectifs +- Formule classique : Risque = Probabilité * Impact +- Vision moderne : Risque = Menace * Vulnérabilité * Impact + +### Gestion des Risques + +- Processus d'identification, d'évaluation et de traitement des risques +- Approche systématique et continue +- Intégration dans la gouvernance organisationnelle + +### Analyse des Risques + +- Phrase du precessus de gestion des risques +- Compréhension détaillée de la nature du risque +- Estimation du niveau de risque + +## Classification des Risques + +### Par nature : + +- Risques Stratégiques -> business +- Risques opérationnels +- Risques techniques +- Risques réglemettaires + +### Par Origine : + +- Risques internes +- Risques externes +- Risques mixtes + +## Cycle de vie standard (ISO 31000) + +Contexte -> Surveillance et revenue -> Traitement des risques -> identification des risques -> Analyse des risques -> Evaluations des risques + +## Communication et consultation + +- Parties prenantes +- Modalités + +## EBIOS Risk Manager + +- Cadrages et socles de sécurité +- Source de risque +- Scénarios stratégiques +- Scénarios opérationnels +- Traitement du risque + +Aventage : + +- Moderne +- prise en compte du contexte métier +- méthode francaise +- gratuite + +Limites : + +- Compexité de mise en oevure +- Necessite une expertise importante +- chronophage +- moins connue à l'internationnal + +## MEHARI + +- Classification des enjeux +- Odit de mesure +- Analyse de l'odit (des risques) +- Plan de sécrité + +Avantage : + +- Approche quantitative +- Base de connaissance riche +- Claculs automatisés +- Résultat reproductibles +- Suivi dans le temps facilité + +Limite + +- Complexité de paramétrage + +## OCTAVE Allegro + +## NIST Risk Management Framework + +- Stratégie organisationnelle de gestion des risques +- Classification +- Selection de sécurité +- Déploiement des controles +- Test d'efficacité +- Décision d'acceptation du risuqe +- Surveillance continu + +> ISO 27005 + +## FAIR + +- Risk = TEF * LEM +- TEF = Threat Event Frequency +- LEM = Loss event magnitude + +## AMDEC + +- Préparation + - Constitution d'equipe + - Définition du perimètre + - Décomposition fonctionnelle +- Analyse + - identifiaction des modes de défaillance + - Analyse des causes + - Evaluation des effet +- Evaluation + - Gravité (G) + - Occurence (O) + - Détéction (D) + - Critcité = G * O * D +- Actions + - priorisation selon criticité + - plan d'action correctives + - Suivi et mise à jour + + + +# Etude de cas + +## Lab 1 : Analyse EBIOS Express + +> Objectif : Réaliser une analyse EBIOS simplifiée de l’Active Directory (AD) + +### Identifier 5 valeurs métier critiques + +- Authentification des utilisateurs (SSO, accès ERP/CRM) +- Annuaire d’entreprise (gestion des identités) +- Continuité des opérations (accès réseau, services) +- Intégrité des configurations systèmes (GPO, DNS) +- Traçabilité & conformité (logs, audits AD) + +### Lister 10 biens supports essentiels + +- DC-PARIS-01 (contrôleur principal + FSMO) +- DC-PARIS-02 (Global Catalog + DNS) +- DC-LYON-01 (DHCP + AD) +- DC-LILLE-01 (R&D + DNS) +- DNS intégré à l’AD +- Base NTDS.dit (contenu de l’annuaire) +- GPO « Server-Security-Baseline » +- Comptes Domain Admins +- SQL-PARIS-01 (ERP, CRM) +- Outil de monitoring MONITOR-PARIS-01 + +### Définir 3 scénarios de risque majeurs + +- Compromission d’un compte « Domain Admin » +- Attaque de ransomware via GPO modifiée +- Altération de la réplication AD (rupture de disponibilité inter-sites) + +### Évaluer vraisemblance et impact + +- Compromission Admin → Impact 5 / Vraisemblance 4 +- GPO détournée → Impact 4 / Vraisemblance 3 +- Rupture de réplication → Impact 3 / Vraisemblance 2 + +### Proposer 5 mesures prioritaires + +- Mise en œuvre de l’authentification MFA pour les comptes privilégiés +- Revue des délégations AD et durcissement des GPO +- Surveillance active via SCOM (alertes critiques AD) +- Segmentation réseau des DC (VLAN Management) +- Test mensuel de restauration AD (System State) + +## Lab 2 : Matrice de Risque AD + +> Objectif : Construire votre matrice de risque spécifique + +### Placer vos scénarios identifiés + +- Ex : Compromission Admin → Zone critique (rouge) +- GPO détournée → Zone haute (orange) +- Réplication AD dégradée → Zone moyenne (jaune) + +### Ajuster selon votre contexte + +- Contrainte : fonctionnement 24/7 sur les sites critiques +- Maintenance limitée : impacte les mesures applicables +- Services externalisés : Azure AD / ADFS → nouveaux vecteurs + +### Identifier zones rouges + +- Compromission de comptes à privilèges +- Absence de logs fiables sur événements critiques + +### Prioriser les actions + +- MFA, surveillance avancée (SIEM), cloisonnement +- Quick wins : suppression comptes inactifs, révision mots de passe + +## Lab 3 : Plan d'Action + +> Objectif : Créer une roadmap de sécurisation AD + +### Partir des risques identifiés + +- Compromission comptes +- Propagation via GPO +- Attaque persistante (APT) + +### Définir mesures court terme + +- Revue immédiate des droits Domain Admins +- Application GPO de baseline sur tous les DC +- Activation logs avancés sur MONITOR-PARIS-01 + +### Planifier actions long terme + +- Mise en place d’un PAM (Privileged Access Management) +- Migration partielle vers Azure AD + segmentation +- Réécriture des scripts de maintenance et surveillance + +### Estimer efforts et coûts + +- MFA : faible coût / impact fort +- PAM : effort élevé / ROI sécurité important +- Surveillance : moyen coût / gain visibilité élevé + +### Créer planning projet + +- Phase 1 (1 mois) : mesures urgentes / quick wins +- Phase 2 (3 mois) : surveillance et durcissement GPO +- Phase 3 (6 mois) : PAM + restructuration AD \ No newline at end of file diff --git a/SEC101/25-06-26/Etude_de_cas_EBIOS_AD.pdf b/SEC101/25-06-26/Etude_de_cas_EBIOS_AD.pdf new file mode 100644 index 0000000..6e9cacf Binary files /dev/null and b/SEC101/25-06-26/Etude_de_cas_EBIOS_AD.pdf differ diff --git a/SEC101/25-06-26/README.md b/SEC101/25-06-26/README.md new file mode 100644 index 0000000..98aaa4b --- /dev/null +++ b/SEC101/25-06-26/README.md @@ -0,0 +1,2 @@ +# SEC101 26 06 25 + diff --git a/SEC101/25-07-10/README.md b/SEC101/25-07-10/README.md new file mode 100644 index 0000000..2f6f560 --- /dev/null +++ b/SEC101/25-07-10/README.md @@ -0,0 +1,53 @@ +Premiere partie, question de cours, une dizaine de question : EBIOS + +Dexieme partie, etude de scenario : RSSI dans une PME e-commerce + +Troixieme, Cas pratique global : Diagnostic et plan d'action + +Réponse structurées et concises +Justifier vos reponse avec des arguments techniques. + +Prise de note TOM : + +auPremiere partie : EBios comment on gere, une dizaine de question ? +deux autre partie, plus partie Etude de cas, etude sur Ebios, AD, + +Menance internes : +Erreur Humaine, l’acceptation le refus, + +LES OIV ( operation d’importance vitale ) pas dans les etude de cas mas on peut en avoir a en parler + +PCA et PRA ( plan continuter d’activité, plan de reprise d’activité ) +PCA en amont et PRA apres le problemes +PCa est blobal y a le PRA dedans +cycle de réponses aux incident : detection puis confinement puis eradication, recuperation, retour d’experience + +la criticité = multiplication entre la vraissemblance et l’impact + +ISO 270005 +methode Mairy dans quel contexte on les mets.. +Approche PDCA : on prevoit, on monte un processus pour faire doc on fait, on regarde ce qui ce passe, et on fait un etat des lieux, l’idee c’est a chque cycle on a une norme qui sert de point de depart pour le prochaine cycle +SMSI ( system management de la securité ) +SIEM : security infirmation et event manager ) : collecte centralisé des logs, corelation d’events, detection anomalies, altertes temps reel, avantes : vision global de la securité, detection rapide des incidents +APT advanced persistent threat : gestion des risQUES? Etude sources de risques, tout un processus entre les 2 : Ebios +audit interne ou externe : interne : etude pour preparer l’externe qui peut eventuelleen nous certifier +Ebios : etape : + contexte : OIV ? OSE ? On determine le degre de securité a mettre ne place en fornction du contexte +/ event Redouté: probleme eventuelle auquel on peut s’exposer par rapport au contexte + + / scenarios : d’ou ca vbient potentiellement ( les event redoutes ) + +/ risques : evaluatiobn des risques ( matrice des risques FDP ) + + / mesures : chose mise en place + +Taux d'incidents de sécurité détectés et traités +Formule : (Incidents détectés et traités / Incidents totaux) × 100 + +Permet de mesurer la capacité de détection et de réaction du dispositif (SOC, SIEM, EDR…). + +2. ⏱️ Temps moyen de réaction aux incidents (MTTR – Mean Time To Respond) +Mesure le temps écoulé entre la détection d’un incident et sa résolution complète. + +Plus il est bas, plus le dispositif est efficace et réactif. + diff --git a/SEC101/Cours/001 - partie I - SEC101 - Enjeux de la sécurité pour la société numérique.pdf b/SEC101/Cours/001 - partie I - SEC101 - Enjeux de la sécurité pour la société numérique.pdf new file mode 100644 index 0000000..83cf5a0 Binary files /dev/null and b/SEC101/Cours/001 - partie I - SEC101 - Enjeux de la sécurité pour la société numérique.pdf differ diff --git a/SEC101/Cours/002 - partie II - SEC101 - Methodes Analyse de Risques.pdf b/SEC101/Cours/002 - partie II - SEC101 - Methodes Analyse de Risques.pdf new file mode 100644 index 0000000..045c54c Binary files /dev/null and b/SEC101/Cours/002 - partie II - SEC101 - Methodes Analyse de Risques.pdf differ diff --git a/SEC101/Cours/003 - partie III - SEC101 - Ebios et AD.pdf b/SEC101/Cours/003 - partie III - SEC101 - Ebios et AD.pdf new file mode 100644 index 0000000..5c40ef0 Binary files /dev/null and b/SEC101/Cours/003 - partie III - SEC101 - Ebios et AD.pdf differ diff --git a/SEC101/Cours/004 - Partie IV - SEC101 - Enjeux de la sécurité pour la société numérique.pdf b/SEC101/Cours/004 - Partie IV - SEC101 - Enjeux de la sécurité pour la société numérique.pdf new file mode 100644 index 0000000..2e98f65 Binary files /dev/null and b/SEC101/Cours/004 - Partie IV - SEC101 - Enjeux de la sécurité pour la société numérique.pdf differ diff --git a/SEC101/Cours/005 - partie V - SEC101 - Sécurité et Cloud Computing.pdf b/SEC101/Cours/005 - partie V - SEC101 - Sécurité et Cloud Computing.pdf new file mode 100644 index 0000000..cb326ea Binary files /dev/null and b/SEC101/Cours/005 - partie V - SEC101 - Sécurité et Cloud Computing.pdf differ diff --git a/SEC101/Cours/007 - Partie VI - SEC101 - PCA et Sécurité d'un S I.pdf b/SEC101/Cours/007 - Partie VI - SEC101 - PCA et Sécurité d'un S I.pdf new file mode 100644 index 0000000..a1a575b Binary files /dev/null and b/SEC101/Cours/007 - Partie VI - SEC101 - PCA et Sécurité d'un S I.pdf differ diff --git a/SEC101/Cours/008 - Partie VII - SEC101 - Normes Légales en France.pdf b/SEC101/Cours/008 - Partie VII - SEC101 - Normes Légales en France.pdf new file mode 100644 index 0000000..4987624 Binary files /dev/null and b/SEC101/Cours/008 - Partie VII - SEC101 - Normes Légales en France.pdf differ diff --git a/SEC101/Cours/009 - Partie VIII - SEC101 - Fiche FEROS.pdf b/SEC101/Cours/009 - Partie VIII - SEC101 - Fiche FEROS.pdf new file mode 100644 index 0000000..310b190 Binary files /dev/null and b/SEC101/Cours/009 - Partie VIII - SEC101 - Fiche FEROS.pdf differ diff --git a/SEC101/Cours/010 - partie IX - SEC101 - Organisation de la Sécurité et Implémentation.pdf b/SEC101/Cours/010 - partie IX - SEC101 - Organisation de la Sécurité et Implémentation.pdf new file mode 100644 index 0000000..434e263 Binary files /dev/null and b/SEC101/Cours/010 - partie IX - SEC101 - Organisation de la Sécurité et Implémentation.pdf differ diff --git a/SEC101/Cours/011 - Partie X - Préparation Partiel.pdf b/SEC101/Cours/011 - Partie X - Préparation Partiel.pdf new file mode 100644 index 0000000..8bb8451 Binary files /dev/null and b/SEC101/Cours/011 - Partie X - Préparation Partiel.pdf differ diff --git a/SEC101/Cours/Ateliers/Atelier n°2 - EBIOS et Microsoft AD.pdf b/SEC101/Cours/Ateliers/Atelier n°2 - EBIOS et Microsoft AD.pdf new file mode 100644 index 0000000..f33c04e Binary files /dev/null and b/SEC101/Cours/Ateliers/Atelier n°2 - EBIOS et Microsoft AD.pdf differ diff --git a/SEC101/Cours/Ateliers/Atelier n°4 - Implémentation de la sécurité.pdf b/SEC101/Cours/Ateliers/Atelier n°4 - Implémentation de la sécurité.pdf new file mode 100644 index 0000000..a51b6de Binary files /dev/null and b/SEC101/Cours/Ateliers/Atelier n°4 - Implémentation de la sécurité.pdf differ diff --git a/SEC101/Cours/Ateliers/Groupes - Atelier n°2.xlsx b/SEC101/Cours/Ateliers/Groupes - Atelier n°2.xlsx new file mode 100644 index 0000000..70b70c0 Binary files /dev/null and b/SEC101/Cours/Ateliers/Groupes - Atelier n°2.xlsx differ diff --git a/SEC101/Cours/Ateliers/Groupes-TPn°1.xlsx b/SEC101/Cours/Ateliers/Groupes-TPn°1.xlsx new file mode 100644 index 0000000..b099876 Binary files /dev/null and b/SEC101/Cours/Ateliers/Groupes-TPn°1.xlsx differ diff --git a/SEC101/Cours/Ateliers/Présentation Ateliers n°4.xlsx b/SEC101/Cours/Ateliers/Présentation Ateliers n°4.xlsx new file mode 100644 index 0000000..00b3828 Binary files /dev/null and b/SEC101/Cours/Ateliers/Présentation Ateliers n°4.xlsx differ diff --git a/SEC101/Cours/Ateliers/TP n°1.pdf b/SEC101/Cours/Ateliers/TP n°1.pdf new file mode 100644 index 0000000..144171b Binary files /dev/null and b/SEC101/Cours/Ateliers/TP n°1.pdf differ diff --git a/SEC101/Cours/ClubEBIOS-EtudeDeCas-AnalyticsForTalentManagement-Synthese-2020-02-17.pdf b/SEC101/Cours/ClubEBIOS-EtudeDeCas-AnalyticsForTalentManagement-Synthese-2020-02-17.pdf new file mode 100644 index 0000000..d9d2646 Binary files /dev/null and b/SEC101/Cours/ClubEBIOS-EtudeDeCas-AnalyticsForTalentManagement-Synthese-2020-02-17.pdf differ diff --git a/SEC101/README.md b/SEC101/README.md new file mode 100644 index 0000000..3d43d78 --- /dev/null +++ b/SEC101/README.md @@ -0,0 +1 @@ +# SEC101 \ No newline at end of file diff --git a/SEC102/25-04-14/README.md b/SEC102/25-04-14/README.md new file mode 100644 index 0000000..8cc64d6 --- /dev/null +++ b/SEC102/25-04-14/README.md @@ -0,0 +1,20 @@ +# SEC102-14-04-25 + +Un système d'information comprend -> Matériel, logiciel et personnel. C'est une organisation vivante. + +### étape d'énumération ou de reconnaissance. +– Matériel utilisé +- Logiciel et système installés +- Utilisation de la Base de données CVE + +### étape d'exploitation +- Élévation de privilèges. +- Récupérer les données, placer une back dors + +## Notion de cryptographie. + +Permet de chiffrer les données. + +### Chiffrement parfait : + +Il s'appelle le XOR -> avoir une clé aléatoire de la même taille du texte, il passe dans le chiffrage XOR et il faut la clé pour le ressortir en clair (la clé est unique par rapport au texte) l'un des problèmes, c'est que la clé doit être de même taille que le texte. \ No newline at end of file diff --git a/SEC102/25-04-14/TP/TP1/TP1_Guillaume_Sanchez.pdf b/SEC102/25-04-14/TP/TP1/TP1_Guillaume_Sanchez.pdf new file mode 100644 index 0000000..7d7a1fc Binary files /dev/null and b/SEC102/25-04-14/TP/TP1/TP1_Guillaume_Sanchez.pdf differ diff --git a/SEC102/25-04-14/TP/TP2/Image collée.png b/SEC102/25-04-14/TP/TP2/Image collée.png new file mode 100644 index 0000000..b604393 Binary files /dev/null and b/SEC102/25-04-14/TP/TP2/Image collée.png differ diff --git a/SEC102/25-04-14/TP/TP2/TP2_Guillaume_Sanchez.pdf b/SEC102/25-04-14/TP/TP2/TP2_Guillaume_Sanchez.pdf new file mode 100644 index 0000000..e73de8f Binary files /dev/null and b/SEC102/25-04-14/TP/TP2/TP2_Guillaume_Sanchez.pdf differ diff --git a/SEC102/25-04-14/TP/TP2/rot13.py b/SEC102/25-04-14/TP/TP2/rot13.py new file mode 100644 index 0000000..8ffccff --- /dev/null +++ b/SEC102/25-04-14/TP/TP2/rot13.py @@ -0,0 +1,34 @@ +# TP 2 : Guillaume Sanchez + +def rot13_conversion(message): + result = "" # instentation d'une varable vide qui contiendra le résultat + for char in message: # pour tous caractère dans l'argument message + if char.isalpha(): # verification si la chaîne est constituée d'alphabets + shift = 13 # instentation d'une variable qui contient le nomebre de décalage + base = ord('A') if char.isupper() else ord('a') # instentation d'une variable qui contient le code ASCII de 'A' ou 'a' selon la casse + # Return du calcul du nouveau caractère en appliquant le décalage + # ord(char) - base : décalage par rapport à 'A' ou 'a' + # (ord(char) - base + shift) % 26 + base: décalage circulaire dans l'alphabet + result += chr((ord(char) - base + shift) % 26 + base) + else: + result += char # Si ce n'est pas un alphabet, on le garde tel quel + return result + +def main(): # Fonction Principal + print("=== ROT13 : Codage / Décodage ===") # Affichage du nom du programme + print("1. Coder un message") # Affichage du choix 1 + print("2. Décoder un message") # Affichage du choix 2 + choix = input("Votre choix (1 ou 2) : ").strip() # Recupération de la valeur choisi dans une variable + + if choix not in ['1', '2']: # Gestion d'erreur (si ce n'est pas 1 ou 2) + print("Choix invalide. Veuillez entrer 1 ou 2.") # affichage message erreur + return + + message = input("Entrez votre message : ") # Recupération du message dans une variable + resultat = rot13_conversion(message) # Utilisation de la fonction "rot13_conversion" avec comme argument "message" et recupération du résultat dans une variable + print("\nMessage transformé :") + print(resultat) # Affichage du résultat de la fonction rot13_conversion. + +if __name__ == "__main__": + main() + \ No newline at end of file diff --git a/SEC102/25-04-14/TP/TP3/decode_user_assist.py b/SEC102/25-04-14/TP/TP3/decode_user_assist.py new file mode 100644 index 0000000..be3c170 --- /dev/null +++ b/SEC102/25-04-14/TP/TP3/decode_user_assist.py @@ -0,0 +1,62 @@ +# TP 3 : Guillaume Sanchez + +import winreg + +def get_userassist_data(filename): + output = [] + try: + userassist_base = r"Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist" + with winreg.OpenKey(winreg.HKEY_CURRENT_USER, userassist_base) as base_key: + for i in range(winreg.QueryInfoKey(base_key)[0]): + guid_name = winreg.EnumKey(base_key, i) + sub_key_path = f"{userassist_base}\\{guid_name}\\Count" + try: + with winreg.OpenKey(winreg.HKEY_CURRENT_USER, sub_key_path) as count_key: + output.append(f"[{guid_name}]") + for j in range(winreg.QueryInfoKey(count_key)[1]): + value_name, value_data, _ = winreg.EnumValue(count_key, j) + output.append(f"{value_name} = {value_data}") + output.append("") # Ligne vide pour séparer les blocs + with open(filename, 'w', encoding='utf-8') as f: + for line in output: + f.write(line + "\n") + except FileNotFoundError: + continue + except Exception as e: + output.append(f"Erreur : {str(e)}") + return output + +def convert_file_lines_to_rot13(input_file, output_file): + with open(input_file, 'r', encoding='utf-8') as infile, open(output_file, 'w', encoding='utf-8') as outfile: + for line in infile: + if " = " in line: + key, value = line.split(" = ", 1) + key_rot13 = rot13_conversion(key) + outfile.write(f"{key_rot13} = {value}") + else: + # lignes comme [GUID] ou lignes vides restent inchangées + outfile.write(line) + +def rot13_conversion(message): + result = "" # instentation d'une varable vide qui contiendra le résultat + for char in message: # pour tous caractère dans l'argument message + if char.isalpha(): # verification si la chaîne est constituée d'alphabets + shift = 13 # instentation d'une variable qui contient le nomebre de décalage + base = ord('A') if char.isupper() else ord('a') # instentation d'une variable qui contient le code ASCII de 'A' ou 'a' selon la casse + # Return du calcul du nouveau caractère en appliquant le décalage + # ord(char) - base : décalage par rapport à 'A' ou 'a' + # (ord(char) - base + shift) % 26 + base: décalage circulaire dans l'alphabet + result += chr((ord(char) - base + shift) % 26 + base) + else: + result += char # Si ce n'est pas un alphabet, on le garde tel quel + return result + +if __name__ == "__main__": + # Étape 1 : Extraction des données brutes + data = get_userassist_data("userassist.txt") + # save_to_file("userassist.txt", data) + print(f"Fichier 'userassist.txt' généré avec succès.") + + # Étape 2 : Conversion partielle ROT13 sur noms des clés + convert_file_lines_to_rot13("userassist.txt", "decode_userassist") + print(f"Fichier 'decode_userassist' généré avec succès.") \ No newline at end of file diff --git a/SEC102/25-04-14/TP/TP3/decode_userassist b/SEC102/25-04-14/TP/TP3/decode_userassist new file mode 100644 index 0000000..b56827d --- /dev/null +++ b/SEC102/25-04-14/TP/TP3/decode_userassist @@ -0,0 +1,237 @@ +[{9E04CAB2-CC14-11DF-BB8C-A2F1DED72085}] +UEME_CTLSESSION = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + +[{A3D53349-6E61-4557-8FC7-0028EDCEEBF6}] +UEME_CTLSESSION = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + +[{B267E3AD-A825-4A09-82B9-EEC22AA3B847}] + +[{BCB48336-4DDD-48FF-BB0B-D3190DACB3E2}] +UEME_CTLSESSION = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + +[{CAA59E3C-4792-41A5-9909-6A6A8D32490E}] +UEME_CTLSESSION = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + +[{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}] +UEME_CTLCUACount:ctor = b'\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe!App = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0/\xe7=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xfa%\xcf\x11\xcbx\xdb\x01\x00\x00\x00\x00' +UEME_CTLSESSION = b'\x03\x00\x00\x00\x17\x01\x00\x00\x81\x04\x00\x00&\x06\x0f\x079\x00\x00\x00\x93\x00\x00\x00\xe1\xf8S\x00M\x00i\x00c\x00r\x00o\x00s\x00o\x00f\x00t\x00.\x00W\x00i\x00n\x00d\x00o\x00w\x00s\x00.\x00E\x00x\x00p\x00l\x00o\x00r\x00e\x00r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00!\x00\x00\x00n\x01\x00\x00.\x87\xde\x02C\x00h\x00r\x00o\x00m\x00e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00!\x00\x00\x00n\x01\x00\x00.\x87\xde\x02C\x00h\x00r\x00o\x00m\x00e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\xfe\xb6=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xfa%\xcf\x11\xcbx\xdb\x01\x00\x00\x00\x00' +Microsoft.WindowsCalculator_8wekyb3d8bbwe!App = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\xcd\x86=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xfa%\xcf\x11\xcbx\xdb\x01\x00\x00\x00\x00' +Microsoft.Paint_8wekyb3d8bbwe!App = b'\x03\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\xb9\x94\x01\x00\x8c9-=\x00\x00\x00\x00\\\x81\xf1<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00j\x84\xb3\x9a\xa4\xdb\x01\x00\x00\x00\x00' +Microsoft.WindowsNotepad_8wekyb3d8bbwe!App = b'\x03\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x0026\x00\x00v\xf2\xb1=\xe7;B=\xeej\x86<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00`h;\xe4\t\xa9\xdb\x01\x00\x00\x00\x00' +MicrosoftWindows.Client.CBS_cw5n1h2txyewy!CortanaUI = b'\x03\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\xbek\x01\x00E8%=\xc0\x04\x14=\x9c\x14!<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.Windows.Explorer = b'\x03\x00\x00\x009\x00\x00\x00\x93\x00\x00\x00\xe1\xf8S\x00b#\xfd>\xdf\x1b\xd4>\xd8c\xe9>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xe8h^?\xad\xdb\x01\x00\x00\x00\x00' +MSEdge = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\xd6\x0f<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00`p\xe7\xbc\xcbx\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\ChromeSetup.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xf1\n4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{F38BF404-1D43-42F2-9305-67DE0B28FC23}\SystemTemp\Google9732_1654762231\bin\updater.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\xcc+7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Chrome = b'\x03\x00\x00\x00!\x00\x00\x00n\x01\x00\x00.\x87\xde\x02\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\x8f\xbf\n@\xad\xdb\x01\x00\x00\x00\x00' +windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel = b'\x03\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\xffT\x01\x00J\xbcK>\xa5I\xec=\xb4\x07\x8d<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf04\x10\xe7V\xaa\xdb\x01\x00\x00\x00\x00' +{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\MSI\MSI_Driver_Utility_Installer\MSI_Driver_Utility_Installer.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfeL\xec;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +com.nvidia.nvapp = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd12Z<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\Downloads\SteamSetup.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3H\xb3:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Valve.Steam.Client = b'\x03\x00\x00\x00\n\x00\x00\x00\x1b\x00\x00\x00\x95\xf7\t\x00\xf6\n:>\x88\xb5/>K\xb1\x05>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\x15\x96\x06K\xaa\xdb\x01\x00\x00\x00\x00' +com.squirrel.Discord.Discord = b'\x03\x00\x00\x00\r\x00\x00\x00p\x00\x00\x00\xdfwL\x00\xc7\xa6R>\xe4\xb5\xdf>\x92\x03\xbc>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0\xaf\xda$B\xad\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\Install League of Legends euw.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x95\xb3:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\PickerHost.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x83\x0c\x00\x00\x10p6;\xf4\x1f\t8\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Riot Games\Riot Client\RiotClientElectron\Riot Client.exe = b'\x03\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00zQ\x00\x00\x059\x8f=XPi:V\x10\x81<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0\x7f-y\xc1\xa4\xdb\x01\x00\x00\x00\x00' +Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy!App = b'\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00>\x15\x00\x00F\xd3D<\xdb\x9c\x9a;S\xc2>;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +9426MICRO-STARINTERNATION.MSICenter_kzh8wxbdkxb8p!App = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00LAF<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00h(J\xd9x\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Packages\9426MICRO-STARINTERNATION.MSICenter_kzh8wxbdkxb8p\LocalCache\Local\MSI Center.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00p\xd1\xac:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\CPUID\CPU-Z MSI\cpuz.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00!\xd7\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x000\xe2"\xb4\xcfx\xdb\x01\x00\x00\x00\x00' +Microsoft.Windows.ShellExperienceHost_cw5n1h2txyewy!App = b'\x03\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\xa2\x0b\x01\x00\xc9T\xe9;!g\xf4:\xe4\xd1e;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\cmd.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00[\x03\x00\x00K@\x8f<\xca\xe4\x19=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x000\xf5\x86\xcc\x0c\x8e\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\NZXT-CAM-Setup.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xaf\x877\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +NZXT.CAM = b'\x03\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\xfcB\x05\x00-Ze=\xca\xd5\xbe<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xa0\xb6\x98FH\x90\xdb\x01\x00\x00\x00\x00' +{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\mmc.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\xe7\xe0/<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00p\x9bx\x02z\x90\xdb\x01\x00\x00\x00\x00' +{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\Fondue.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12E[7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\OptionalFeatures.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9_\xbd:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\FinalWire\AIDA64 Extreme\aida64.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x08\x0f<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0c\xd1\x96\xcfx\xdb\x01\x00\x00\x00\x00' +{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\FinalWire\AIDA64 Extreme\unins000.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xb0\xb4\xaa\xca\xcfx\xdb\x01\x00\x00\x00\x00' +{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\MSI\DropboxRedeemLauncher\unins000.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00`z\x82\xfa\xcfx\xdb\x01\x00\x00\x00\x00' +Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy!App = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00)\x90\xb5:zV\x04;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Riot Games\Riot Client\RiotClientServices.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff><\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00 \xf4\xe5\xae\xd3x\xdb\x01\x00\x00\x00\x00' +{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Steam\Steam.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff><\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xb0H\xe2\x05\xd3x\xdb\x01\x00\x00\x00\x00' +c:\riot games\league of legends\leagueclient.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x89^\x04\x00\x02;\x84=\xd0\x9a`:\xa8\xf6\xeb;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.XboxGamingOverlay_8wekyb3d8bbwe!App = b'\x03\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xcf\xe2==\xd5\xf1=\x96\xf2\xac<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0\x98r\xae/\xab\xdb\x01\x00\x00\x00\x00' +D:\SteamLibrary\steamapps\common\Counter-Strike Global Offensive\game\bin\win64\cs2.exe = b'\x03\x00\x00\x00\x00\x00\x00\x008\x00\x00\x00\xec\xab\xd4\x00\x82\x04\x91>n|\xde>c0\x8f>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00V\xe8\xe1*}\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\Battle.net-Setup.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00wi\x85;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +BlizzardEntertainment.Battlenet.beta = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002#(=U\x1f2<\x9b\xc6\x19<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xe0\xd1\xc5\x96\x84\x9e\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\SteelSeriesGG79.1.0Setup.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x87a8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Riot Games\League of Legends\Game\League of Legends.exe = b"\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00k '\x00\xb6k\xda=\x00\x00\x00\x00\xed\x92\xa9<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" +C:\Users\Nk\AppData\Local\Temp\nsl6E6A.tmp\OWInstaller.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82k\xc6:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Chrome.www.overwolf.cossor/live-charts = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.H}8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Temp\{9B179487-78BB-4554-A3BF-4E62893DE356}\.cr\EAappInstaller.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xc2\xb37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\Electronic Arts\EA Desktop\EA Desktop\EADesktop.exe = b'\x03\x00\x00\x00\x03\x00\x00\x00\x06\x00\x00\x00\xca\xb4\x00\x00G\xd5\x19=\x1b\x13\x0b=\xb1e6=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\xdd\x9fkA\xad\xdb\x01\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\SteelSeries\GG\SteelSeriesGGClient.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00Qz\x00\x00 1\x11=.\xe5\xf8\x98\xf2d>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xb9{\xb9\xab\xac\xdb\x01\x00\x00\x00\x00' +Microsoft.LockApp_cw5n1h2txyewy!WindowsDefaultLockScreen = b'\x03\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00Vz\t\x00\x83\xf3\x85<\xad\x82\xeeT\x88\xe4=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\xc1\x9e4\xb1\xac\xdb\x01\x00\x00\x00\x00' +D:\Fortnite\FortniteGame\Binaries\Win64\EasyAntiCheat\EasyAntiCheat_EOS_Setup.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x93\x8f4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\Fortnite\FortniteGame\Binaries\Win64\FortniteClient-Win64-Shipping_EAC_EOS.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x8bm\x01\x00\xdf\xfc\x0e<<\xa4\x14<\xb3\x894;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\Fortnite\FortniteGame\Binaries\Win64\FortniteClient-Win64-Shipping.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00j\x8a\xbc\x00;\xdf\x9d>\xca\xf3\xc9>\xf4\x91\x87>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\Call of Duty\_retail_\cod22\cod22-cod.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc"\x0c;\x00\x00\x00\x00[Z"<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.Windows.Photos_8wekyb3d8bbwe!App = b'\x03\x00\x00\x00-\x00\x00\x00\n\x00\x00\x00\x87%\x01\x00\xa3W =I&0<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@>,]\xd6{\xdb\x01\x00\x00\x00\x00' +Microsoft.SecHealthUI_8wekyb3d8bbwe!SecHealthUI = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x14\xd0:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\Battlefield 2042\EAAntiCheat.GameServiceLauncher.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xa8T\x00\x00s-\xc7:\n\x14w;\xcd\x07\\;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\Battlefield 2042\BF2042.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x82\xf9\n\x00\xba\xa9E<\xf3\xdf\x0e>(\xf6[=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\MSI\AdobeRedeemLauncher\unins000.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00P\xc46\xe8\xd7{\xdb\x01\x00\x00\x00\x00' +{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\MSI\MSI Center\unins000.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00 \xe4C\xfa\xd7{\xdb\x01\x00\x00\x00\x00' +Microsoft.AutoGenerated.{F9BA49F8-6791-D89D-CCEC-71D3D9C0C7AE} = b'\x03\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x008!\x02\x00]*"<\'/#\xa1(\x1c>\x12\xe4g=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.Windows.MediaPlayer32 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96^\xbf;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0x\xd1\xae\x18~\xdb\x01\x00\x00\x00\x00' +org.openvpn.client = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94B\x8b;\xd7\xf7g<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0|\x84<\x99\x8d\xdb\x01\x00\x00\x00\x00' +D:\SteamLibrary\steamapps\common\Sid Meier's Civilization VI\Base\Binaries\Win64Steam\CivilizationVI_DX12.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xe7\xa4=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\KeePass Password Safe 2\KeePass.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x10s;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\Downloads\NVIDIA_Broadcast_v2.0.0.23090415.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xc3\xc47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +NVIDIA Broadcast = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xe9T<\xbe\xa5\x12<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\NVIDIA Corporation\NVIDIA Broadcast\NVIDIA Broadcast.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff>O\xd0\xd6>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0g\xcc\xe9\xa3\xaa\xdb\x01\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\WindowsApps\Microsoft.ScreenSketch_11.2409.25.0_x64__8wekyb3d8bbwe\SnippingTool\SnippingTool.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb?\x8f<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x000\xccr\x08f\x81\xdb\x01\x00\x00\x00\x00' +Microsoft.ScreenSketch_8wekyb3d8bbwe!App = b'\x03\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\xbe>\x00\x00Qu\xce<\x00\x00\x00\x00\xc8gs<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf00\x06\x90i\xac\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\MinecraftInstaller.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84X\xce;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x000\x1f\xd3\xf0\x82\xdb\x01\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\WindowsApps\Microsoft.GamingServices_26.95.25001.0_x64__8wekyb3d8bbwe\GamingServicesUI\gamingservicesui.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb!\xf78\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.GamingServices_8wekyb3d8bbwe!Microsoft.GamingServicesFT = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x0e\x04=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x000\t\xbb5\xde\x83\xdb\x01\x00\x00\x00\x00' +Microsoft.4297127D64EC6_8wekyb3d8bbwe!Minecraft = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xfc]=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x002+P\xa5\x84\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\FileZilla_3.68.1_win64_sponsored2-setup.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00F\x86u:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +FileZilla.Client.AppID = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u\xf7\x91=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00p\x8c*\x18\xaa\x84\xdb\x01\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\WindowsApps\Microsoft.4297127D64EC6_2.2.2.0_x64__8wekyb3d8bbwe\GameLaunchHelper.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0/=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x10w&P\xa5\x84\xdb\x01\x00\x00\x00\x00' +overwolf.cchhcaiapeikjbdbpfplgmpobbcdkdaphclbmkbj.taskbar = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\xf7\xd6;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\curseforge\minecraft\Install\minecraft.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xf1\x14;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\Downloads\tor-browser-windows-x86_64-portable-14.0.6.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xc2Z:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +2621612483 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x92";\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\SteamLibrary\steamapps\common\rocketleague\Binaries\Win64\RocketLeague.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00i\xaf\x93<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.AutoGenerated.{7288B581-7522-5059-2069-0240330C1BF2} = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0\xaf;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xc0/p\x02\x84\x8c\xdb\x01\x00\x00\x00\x00' +{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe = b'\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\xe8\x83<}\x1f\x10=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xa0\xc3\xbc\xf5\xf0\xa7\xdb\x01\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\Electronic Arts\EA Desktop\EA Desktop\EALaunchHelper.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\xd0_7\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.Windows.Shell.RunDialog = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00?ph:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.Windows.AdministrativeTools = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0\xaf;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00`\x9a\xe0\xc1O\x90\xdb\x01\x00\x00\x00\x00' +Microsoft.Windows.ControlPanel = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xb2i:h\xecG7\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic = b'\x03\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\xc1\xb8\x00\x00a_\xcc<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00`o\x9bG\x0c\xaa\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\vlc-3.0.21-win64.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\xb7!;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}\RunDll32.EXE = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0\xaf<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00@\xd4\\\x7f\xa9\x92\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Temp\ebae3cf3-1307-4eaa-a7e8-b11aaf992f82_[Guru3D]-DDU.zip.[Guru3D]-DDU.zip\DDU v18.0.9.3.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\xe3\xca;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xe0\xa2m\xb9\xa9\x92\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\[Guru3D]-DDU\DDU v18.0.9.3.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-%\xb0;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xc0\x85\xcc\xce\xa9\x92\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\[Guru3D]-DDU\DDU v18.0.9.3\Display Driver Uninstaller.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6I\xcf<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xe0f\x10V\xab\x92\xdb\x01\x00\x00\x00\x00' +C:\AMD\AMD-Software-Installer\AMD-Software-Adrenalin-Edition-25.3.1-MinimalSetup-250305_web\Bin64\AMDSoftwareInstaller.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00Nj\x90:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\AMD\AMDSoftwareInstaller\amd-software-adrenalin-edition-25.3.1-minimalsetup-250305_64bit\Bin64\AMDSoftwareInstaller.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x19\n;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +CNEventWindowClass = b'\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00h\\\x00\x00\xe3\x0f\x94;\xfa\xe0\x987\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\SteamLibrary\steamapps\common\Skyrim Special Edition\SkyrimSELauncher.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t\xd7i:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\SteamLibrary\steamapps\common\Skyrim Special Edition\SkyrimSE.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0K\xe0:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +MicrosoftWindows.Client.CBS_cw5n1h2txyewy!runtimebroker07f4358a809ac99a64a67c1 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\xc5\x8a7\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\Downloads\ChromaCam-4.0.10.0.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00d\x92\x03<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00`c\xdc\x85\xc4\x92\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Temp\IXP000.TMP\dxwsetup.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\xfaL:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +com.Personify.ChromaCam = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00c\xe5%<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +79839807.ccb55896 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|:W:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\Downloads\VCam-v2.0.253-win.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x997}:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +ai.vcam.electron = b'\x03\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x1b\xaf\x00\x00\xe2Ly;Yj\x1b;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +AMD.AMDInstallManager = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x7f`:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\rundll32.exe = b'\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\xe8\x83<\xc8\x98\xe6;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xa0\xe6\x1d\x8c\xad\xa8\xdb\x01\x00\x00\x00\x00' +{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Personify\ChromaCam\Uninstall ChromaCam 4.0.10.0.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0\xaf;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xa0\xec.W\xd4\x95\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Temp\~nsu.tmp\Au_.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t\x81c:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\Git\mingw64\bin\git-credential-manager.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9d\\:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Microsoft.Windows.ControlPanel.FolderOptions = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xb0\x0f\x00\x00\xc1{W:\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\VideoLAN\VLC\vlc.exe = b'\x03\x00\x00\x008\x00\x00\x00&\x00\x00\x00\xe3\xe1\x0b\x00VU <\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xc0\xb1\x0e\x7fg\xac\xdb\x01\x00\x00\x00\x00' +ai.vcam.desktop = b'\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x98\xe6;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xa0\x7f\xc7\xab\xd1\xa4\xdb\x01\x00\x00\x00\x00' +{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\magnify.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xffDD5\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +D:\SteamLibrary\steamapps\common\Ready Or Not\ReadyOrNot\Binaries\Win64\ReadyOrNot-Win64-Shipping.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>\x8c\x86<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\Downloads\7z2409-x64.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00qW\xe7;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00 /4\x11i\xa2\xdb\x01\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\7-Zip\7z.exe = b"\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x98\xe6;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xd0\x9d\xf4'i\xa2\xdb\x01\x00\x00\x00\x00" +{6D809377-6AF0-444B-8957-A3773F02200E}\7-Zip\7zG.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x003\xcd\r<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xb0\x12\x95\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x10 \xeb\x98\xac\xa3\xdb\x01\x00\x00\x00\x00' +Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy!App = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00m\x1d[:\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\Downloads\Looping\Looping.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x98\xe6;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x80I\xb3\x1a\xbf\xa3\xdb\x01\x00\x00\x00\x00' +Looping.4.1.0... = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-\xe2\x9a=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\WindowsApps\Microsoft.Paint_11.2502.161.0_x64__8wekyb3d8bbwe\PaintApp\mspaint.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xf2\xac<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xe0\xcb(\x99\xd9\xa3\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Desktop\Logiciel\Tor Browser\Browser\firefox.exe = b'\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff \x86\xd4\x19\xfd\xa9\xdb\x01\x00\x00\x00\x00' +4090753655 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\xc6g\x06\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +F:\start.exe = b'\x03\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\xa9?\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x80\xf1\xea\xd3\xad\xa8\xdb\x01\x00\x00\x00\x00' +F:\nAutoUpdt.exe = b'\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xd0\xfc\xa4Q\xac\xa8\xdb\x01\x00\x00\x00\x00' +F:\setup.exe = b'\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xf0\x0e\x8a\xdd\xae\xa8\xdb\x01\x00\x00\x00\x00' +D:\Oblivion\OblivionLauncher.exe = b'\x03\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\xc6G\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xa0\x05\xa9\xaf\xad\xa8\xdb\x01\x00\x00\x00\x00' +D:\Oblivion\Oblivion.exe = b'\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\t#\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xf00\xa4\xbb\xad\xa8\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Downloads\VirtualBox-7.1.6-167084-Win.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\\^\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\Oracle\VirtualBox\VirtualBox.exe = b'\x03\x00\x00\x00\x02\x00\x00\x00\n\x00\x00\x00+s\x04\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xffP"\xf09x\xa9\xdb\x01\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\Oracle\VirtualBox\VirtualBoxVM.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa6\x06\x0b\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Temp\Movavi-installer-afc16d91-86b3-4a69-b70a-349f63303eda\installer.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xe4\x1b\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\AppData\Roaming\Movavi Video Editor 25\VideoEditor.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x05\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +C:\Users\Nk\AppData\Roaming\Movavi Video Editor 25\uninst.exe = b'\x03\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\xe8\x10\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x80km\x16\xeb\xa9\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Temp\97c1c34d-d1c8-44a3-8844-13fac5a8cf06_DaVinci_Resolve_19.1.4_Windows.zip.f06\DaVinci_Resolve_19.1.4_Windows.exe = b'\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x80\xbe\x81\xf9\xeb\xa9\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Temp\7zS45E95DF1\SetupResolve.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x009G\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6D809377-6AF0-444B-8957-A3773F02200E}\Blackmagic Design\DaVinci Resolve\Resolve.exe = b'\x03\x00\x00\x00\x10\x00\x00\x00Z\x00\x00\x00\xa2E\xb2\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xa0\x0cI\x0bf\xac\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\AppData\Local\Temp\{61704423-49AA-4DAB-84DD-D335C2CFDEAA}\.cr\python-3.13.3-amd64.exe = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00Qr\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + +[{F2A1CB5A-E3CC-4A2E-AF9D-505A7009D442}] +UEME_CTLSESSION = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + +[{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}] +UEME_CTLCUACount:ctor = b'\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\File Explorer.lnk = b'\x03\x00\x00\x006\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xe8h^?\xad\xdb\x01\x00\x00\x00\x00' +UEME_CTLSESSION = b'\x03\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x006\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00{\x009\x00E\x003\x009\x009\x005\x00A\x00B\x00-\x001\x00F\x009\x00C\x00-\x004\x00F\x001\x003\x00-\x00B\x008\x002\x007\x00-\x004\x008\x00B\x002\x004\x00B\x006\x00C\x007\x001\x007\x004\x00}\x00\\\x00T\x00a\x00s\x00k\x00B\x00a\x00r\x00\\\x00F\x00i\x00l\x00e\x00 \x00E\x00x\x00p\x00l\x00o\x00r\x00e\x00r\x00.\x00l\x00n\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00{\x009\x00E\x003\x009\x009\x005\x00A\x00B\x00-\x001\x00F\x009\x00C\x00-\x004\x00F\x001\x003\x00-\x00B\x008\x002\x007\x00-\x004\x008\x00B\x002\x004\x00B\x006\x00C\x007\x001\x007\x004\x00}\x00\\\x00T\x00a\x00s\x00k\x00B\x00a\x00r\x00\\\x00F\x00i\x00l\x00e\x00 \x00E\x00x\x00p\x00l\x00o\x00r\x00e\x00r\x00.\x00l\x00n\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00{\x009\x00E\x003\x009\x009\x005\x00A\x00B\x00-\x001\x00F\x009\x00C\x00-\x004\x00F\x001\x003\x00-\x00B\x008\x002\x007\x00-\x004\x008\x00B\x002\x004\x00B\x006\x00C\x007\x001\x007\x004\x00}\x00\\\x00T\x00a\x00s\x00k\x00B\x00a\x00r\x00\\\x00F\x00i\x00l\x00e\x00 \x00E\x00x\x00p\x00l\x00o\x00r\x00e\x00r\x00.\x00l\x00n\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\Microsoft Edge.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00`p\xe7\xbc\xcbx\xdb\x01\x00\x00\x00\x00' +C:\Users\Public\Desktop\CPUID CPU-Z MSI.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x17=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x000\xe2"\xb4\xcfx\xdb\x01\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\Google Chrome.lnk = b'\x03\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\xed%\xb4>\xa3\x8bn?\x00\x00\x00?\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\x8f\xbf\n@\xad\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Desktop\AIDA64 Extreme.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0c\xd1\x96\xcfx\xdb\x01\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\Riot Client.lnk = b'\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\xaa*>\x00\x00\x00\x00C\x162=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0\x7f-y\xc1\xa4\xdb\x01\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\Steam.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x17=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xb0H\xe2\x05\xd3x\xdb\x01\x00\x00\x00\x00' +C:\Users\Nk\Desktop\Logiciel\EA.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\xf4x\xf7\xd8x\xdb\x01\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\ImplicitAppShortcuts\d356105fac5527ef\Steam.lnk = b'\x03\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00&\xb4\x17>F\x17\xdd>\x9c\xdet>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\x15\x96\x06K\xaa\xdb\x01\x00\x00\x00\x00' +{0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}\NZXT CAM.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x8c.\xba<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xa0\xb6\x98FH\x90\xdb\x01\x00\x00\x00\x00' +C:\Users\Public\Desktop\Streamlabs Desktop.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xb0\xca\x0e\x04\xa3y\xdb\x01\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\EA.lnk = b'\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00&\xb4\x97=/\xba\xe8=\xd3\x9b\xde=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\xdd\x9fkA\xad\xdb\x01\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\Battle․net.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x17=\x8c.\xba\x00\x00@?\xd3\x9b\xde>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0\xaf\xda$B\xad\xdb\x01\x00\x00\x00\x00' +{A77F5D77-2E2B-44C3-A6A2-ABA601054A51}\Overwolf\Overwolf.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00 \x99h\xdf.z\xdb\x01\x00\x00\x00\x00' +{A77F5D77-2E2B-44C3-A6A2-ABA601054A51}\Overwolf\Porofessor.gg.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x17=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@>,]\xd6{\xdb\x01\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\EpicGamesLauncher.lnk = b'\x03\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00&\xb4\x97=t\xd1\x05?\x16\xb2\x90>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\xc1\x9e4\xb1\xac\xdb\x01\x00\x00\x00\x00' +{A77F5D77-2E2B-44C3-A6A2-ABA601054A51}\System Tools\Command Prompt.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x009\x8ec=\xba\xe8">\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00 \xce\x86\xcc\x0c\x8e\xdb\x01\x00\x00\x00\x00' +{9E3995AB-1F9C-4F13-B827-48B24B6C7174}\TaskBar\Streamlabs Desktop.lnk = b'\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x009\x8e\xe3=\x00\x00\x80>\x16\xb2\x90>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xb9{\xb9\xab\xac\xdb\x01\x00\x00\x00\x00' +C:\Users\Public\Desktop\NVIDIA Broadcast.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xe0\xcd|\x06\x7f\xdb\x01\x00\x00\x00\x00' +{0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}\NVIDIA Corporation\NVIDIA Broadcast.lnk = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97\xdf\x1b\xd4>\xd8c\xe9>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xe8h^?\xad\xdb\x01\x00\x00\x00\x00' +ZFRqtr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\xd6\x0f<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00`p\xe7\xbc\xcbx\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\PuebzrFrghc.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xf1\n4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{S38OS404-1Q43-42S2-9305-67QR0O28SP23}\FlfgrzGrzc\Tbbtyr9732_1654762231\ova\hcqngre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\xcc+7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Puebzr = b'\x03\x00\x00\x00!\x00\x00\x00n\x01\x00\x00.\x87\xde\x02\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\x8f\xbf\n@\xad\xdb\x01\x00\x00\x00\x00' +jvaqbjf.vzzrefvirpbagebycnary_pj5a1u2gklrjl!zvpebfbsg.jvaqbjf.vzzrefvirpbagebycnary = b'\x03\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\xffT\x01\x00J\xbcK>\xa5I\xec=\xb4\x07\x8d<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf04\x10\xe7V\xaa\xdb\x01\x00\x00\x00\x00' +{7P5N40RS-N0SO-4OSP-874N-P0S2R0O9SN8R}\ZFV\ZFV_Qevire_Hgvyvgl_Vafgnyyre\ZFV_Qevire_Hgvyvgl_Vafgnyyre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfeL\xec;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +pbz.aivqvn.aincc = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd12Z<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\FgrnzFrghc.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3H\xb3:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Inyir.Fgrnz.Pyvrag = b'\x03\x00\x00\x00\n\x00\x00\x00\x1b\x00\x00\x00\x95\xf7\t\x00\xf6\n:>\x88\xb5/>K\xb1\x05>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\x15\x96\x06K\xaa\xdb\x01\x00\x00\x00\x00' +pbz.fdhveery.Qvfpbeq.Qvfpbeq = b'\x03\x00\x00\x00\r\x00\x00\x00p\x00\x00\x00\xdfwL\x00\xc7\xa6R>\xe4\xb5\xdf>\x92\x03\xbc>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0\xaf\xda$B\xad\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\Vafgnyy Yrnthr bs Yrtraqf rhj.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x95\xb3:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\CvpxreUbfg.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x83\x0c\x00\x00\x10p6;\xf4\x1f\t8\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Evbg Tnzrf\Evbg Pyvrag\EvbgPyvragRyrpgeba\Evbg Pyvrag.rkr = b'\x03\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00zQ\x00\x00\x059\x8f=XPi:V\x10\x81<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0\x7f-y\xc1\xa4\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.FgnegZrahRkcrevraprUbfg_pj5a1u2gklrjl!Ncc = b'\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00>\x15\x00\x00F\xd3D<\xdb\x9c\x9a;S\xc2>;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +9426ZVPEB-FGNEVAGREANGVBA.ZFVPragre_xmu8jkoqxko8c!Ncc = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00LAF<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00h(J\xd9x\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Cnpxntrf\9426ZVPEB-FGNEVAGREANGVBA.ZFVPragre_xmu8jkoqxko8c\YbpnyPnpur\Ybpny\ZFV Pragre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00p\xd1\xac:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\PCHVQ\PCH-M ZFV\pchm.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00!\xd7\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x000\xe2"\xb4\xcfx\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.FuryyRkcrevraprUbfg_pj5a1u2gklrjl!Ncc = b'\x03\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\xa2\x0b\x01\x00\xc9T\xe9;!g\xf4:\xe4\xd1e;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\pzq.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00[\x03\x00\x00K@\x8f<\xca\xe4\x19=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x000\xf5\x86\xcc\x0c\x8e\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\AMKG-PNZ-Frghc.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xaf\x877\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +AMKG.PNZ = b'\x03\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\xfcB\x05\x00-Ze=\xca\xd5\xbe<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xa0\xb6\x98FH\x90\xdb\x01\x00\x00\x00\x00' +{1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\zzp.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\xe7\xe0/<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00p\x9bx\x02z\x90\xdb\x01\x00\x00\x00\x00' +{1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\Sbaqhr.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12E[7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\BcgvbanySrngherf.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9_\xbd:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{7P5N40RS-N0SO-4OSP-874N-P0S2R0O9SN8R}\SvanyJver\NVQN64 Rkgerzr\nvqn64.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x08\x0f<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0c\xd1\x96\xcfx\xdb\x01\x00\x00\x00\x00' +{7P5N40RS-N0SO-4OSP-874N-P0S2R0O9SN8R}\SvanyJver\NVQN64 Rkgerzr\havaf000.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xb0\xb4\xaa\xca\xcfx\xdb\x01\x00\x00\x00\x00' +{7P5N40RS-N0SO-4OSP-874N-P0S2R0O9SN8R}\ZFV\QebcobkErqrrzYnhapure\havaf000.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00`z\x82\xfa\xcfx\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.PybhqRkcrevraprUbfg_pj5a1u2gklrjl!Ncc = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00)\x90\xb5:zV\x04;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Evbg Tnzrf\Evbg Pyvrag\EvbgPyvragFreivprf.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff><\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00 \xf4\xe5\xae\xd3x\xdb\x01\x00\x00\x00\x00' +{7P5N40RS-N0SO-4OSP-874N-P0S2R0O9SN8R}\Fgrnz\Fgrnz.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff><\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xb0H\xe2\x05\xd3x\xdb\x01\x00\x00\x00\x00' +p:\evbg tnzrf\yrnthr bs yrtraqf\yrnthrpyvrag.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x89^\x04\x00\x02;\x84=\xd0\x9a`:\xa8\xf6\xeb;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.KobkTnzvatBireynl_8jrxlo3q8oojr!Ncc = b'\x03\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xcf\xe2==\xd5\xf1=\x96\xf2\xac<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0\x98r\xae/\xab\xdb\x01\x00\x00\x00\x00' +Q:\FgrnzYvoenel\fgrnznccf\pbzzba\Pbhagre-Fgevxr Tybony Bssrafvir\tnzr\ova\jva64\pf2.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x008\x00\x00\x00\xec\xab\xd4\x00\x82\x04\x91>n|\xde>c0\x8f>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00V\xe8\xe1*}\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\Onggyr.arg-Frghc.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00wi\x85;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +OyvmmneqRagregnvazrag.Onggyrarg.orgn = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002#(=U\x1f2<\x9b\xc6\x19<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xe0\xd1\xc5\x96\x84\x9e\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\FgrryFrevrfTT79.1.0Frghc.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x87a8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Evbg Tnzrf\Yrnthr bs Yrtraqf\Tnzr\Yrnthr bs Yrtraqf.rkr = b"\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00k '\x00\xb6k\xda=\x00\x00\x00\x00\xed\x92\xa9<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\afy6R6N.gzc\BJVafgnyyre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82k\xc6:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Puebzr.jjj.birejbys.pbffbe/yvir-punegf = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.H}8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\{9O179487-78OO-4554-N3OS-4R62893QR356}\.pe\RNnccVafgnyyre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xc2\xb37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\Ryrpgebavp Negf\RN Qrfxgbc\RN Qrfxgbc\RNQrfxgbc.rkr = b'\x03\x00\x00\x00\x03\x00\x00\x00\x06\x00\x00\x00\xca\xb4\x00\x00G\xd5\x19=\x1b\x13\x0b=\xb1e6=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\xdd\x9fkA\xad\xdb\x01\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\FgrryFrevrf\TT\FgrryFrevrfTTPyvrag.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00Qz\x00\x00 1\x11=.\xe5\xf8\x98\xf2d>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xb9{\xb9\xab\xac\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.YbpxNcc_pj5a1u2gklrjl!JvaqbjfQrsnhygYbpxFperra = b'\x03\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00Vz\t\x00\x83\xf3\x85<\xad\x82\xeeT\x88\xe4=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\xc1\x9e4\xb1\xac\xdb\x01\x00\x00\x00\x00' +Q:\Sbegavgr\SbegavgrTnzr\Ovanevrf\Jva64\RnflNagvPurng\RnflNagvPurng_RBF_Frghc.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x93\x8f4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\Sbegavgr\SbegavgrTnzr\Ovanevrf\Jva64\SbegavgrPyvrag-Jva64-Fuvccvat_RNP_RBF.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x8bm\x01\x00\xdf\xfc\x0e<<\xa4\x14<\xb3\x894;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\Sbegavgr\SbegavgrTnzr\Ovanevrf\Jva64\SbegavgrPyvrag-Jva64-Fuvccvat.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00j\x8a\xbc\x00;\xdf\x9d>\xca\xf3\xc9>\xf4\x91\x87>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\Pnyy bs Qhgl\_ergnvy_\pbq22\pbq22-pbq.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc"\x0c;\x00\x00\x00\x00[Z"<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.Cubgbf_8jrxlo3q8oojr!Ncc = b'\x03\x00\x00\x00-\x00\x00\x00\n\x00\x00\x00\x87%\x01\x00\xa3W =I&0<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@>,]\xd6{\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.FrpUrnyguHV_8jrxlo3q8oojr!FrpUrnyguHV = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x14\xd0:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\Onggyrsvryq 2042\RNNagvPurng.TnzrFreivprYnhapure.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xa8T\x00\x00s-\xc7:\n\x14w;\xcd\x07\\;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\Onggyrsvryq 2042\OS2042.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x82\xf9\n\x00\xba\xa9E<\xf3\xdf\x0e>(\xf6[=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{7P5N40RS-N0SO-4OSP-874N-P0S2R0O9SN8R}\ZFV\NqborErqrrzYnhapure\havaf000.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00P\xc46\xe8\xd7{\xdb\x01\x00\x00\x00\x00' +{7P5N40RS-N0SO-4OSP-874N-P0S2R0O9SN8R}\ZFV\ZFV Pragre\havaf000.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xbe;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00 \xe4C\xfa\xd7{\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.NhgbTrarengrq.{S9ON49S8-6791-Q89Q-PPRP-71Q3Q9P0P7NR} = b'\x03\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x008!\x02\x00]*"<\'/#\xa1(\x1c>\x12\xe4g=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.ZrqvnCynlre32 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96^\xbf;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0x\xd1\xae\x18~\xdb\x01\x00\x00\x00\x00' +bet.bcraica.pyvrag = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94B\x8b;\xd7\xf7g<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0|\x84<\x99\x8d\xdb\x01\x00\x00\x00\x00' +Q:\FgrnzYvoenel\fgrnznccf\pbzzba\Fvq Zrvre'f Pvivyvmngvba IV\Onfr\Ovanevrf\Jva64Fgrnz\PvivyvmngvbaIV_QK12.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xe7\xa4=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\XrrCnff Cnffjbeq Fnsr 2\XrrCnff.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x10s;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\AIVQVN_Oebnqpnfg_i2.0.0.23090415.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xc3\xc47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +AIVQVN Oebnqpnfg = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xe9T<\xbe\xa5\x12<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\AIVQVN Pbecbengvba\AIVQVN Oebnqpnfg\AIVQVN Oebnqpnfg.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff>O\xd0\xd6>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0g\xcc\xe9\xa3\xaa\xdb\x01\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\JvaqbjfNccf\Zvpebfbsg.FperraFxrgpu_11.2409.25.0_k64__8jrxlo3q8oojr\FavccvatGbby\FavccvatGbby.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb?\x8f<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x000\xccr\x08f\x81\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.FperraFxrgpu_8jrxlo3q8oojr!Ncc = b'\x03\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\xbe>\x00\x00Qu\xce<\x00\x00\x00\x00\xc8gs<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf00\x06\x90i\xac\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\ZvarpensgVafgnyyre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84X\xce;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x000\x1f\xd3\xf0\x82\xdb\x01\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\JvaqbjfNccf\Zvpebfbsg.TnzvatFreivprf_26.95.25001.0_k64__8jrxlo3q8oojr\TnzvatFreivprfHV\tnzvatfreivprfhv.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb!\xf78\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.TnzvatFreivprf_8jrxlo3q8oojr!Zvpebfbsg.TnzvatFreivprfSG = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x0e\x04=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x000\t\xbb5\xde\x83\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.4297127Q64RP6_8jrxlo3q8oojr!Zvarpensg = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xfc]=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x002+P\xa5\x84\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\SvyrMvyyn_3.68.1_jva64_fcbafberq2-frghc.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00F\x86u:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +SvyrMvyyn.Pyvrag.NccVQ = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u\xf7\x91=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00p\x8c*\x18\xaa\x84\xdb\x01\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\JvaqbjfNccf\Zvpebfbsg.4297127Q64RP6_2.2.2.0_k64__8jrxlo3q8oojr\TnzrYnhapuUrycre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0/=\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x10w&P\xa5\x84\xdb\x01\x00\x00\x00\x00' +birejbys.ppuupnvncrvxwoqocscytzcboopqxqncupyozxow.gnfxone = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\xf7\xd6;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\phefrsbetr\zvarpensg\Vafgnyy\zvarpensg.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xf1\x14;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\gbe-oebjfre-jvaqbjf-k86_64-cbegnoyr-14.0.6.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xc2Z:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +2621612483 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x92";\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\FgrnzYvoenel\fgrnznccf\pbzzba\ebpxrgyrnthr\Ovanevrf\Jva64\EbpxrgYrnthr.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00i\xaf\x93<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.NhgbTrarengrq.{7288O581-7522-5059-2069-0240330P1OS2} = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0\xaf;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xc0/p\x02\x84\x8c\xdb\x01\x00\x00\x00\x00' +{1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\JvaqbjfCbjreFuryy\i1.0\cbjrefuryy.rkr = b'\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\xe8\x83<}\x1f\x10=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xa0\xc3\xbc\xf5\xf0\xa7\xdb\x01\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\Ryrpgebavp Negf\RN Qrfxgbc\RN Qrfxgbc\RNYnhapuUrycre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\xd0_7\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.Furyy.EhaQvnybt = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00?ph:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.NqzvavfgengvirGbbyf = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0\xaf;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00`\x9a\xe0\xc1O\x90\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.PbagebyCnary = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xb2i:h\xecG7\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.MharZhfvp_8jrxlo3q8oojr!Zvpebfbsg.MharZhfvp = b'\x03\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\xc1\xb8\x00\x00a_\xcc<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00`o\x9bG\x0c\xaa\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\iyp-3.0.21-jva64.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\xb7!;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{Q65231O0-O2S1-4857-N4PR-N8R7P6RN7Q27}\EhaQyy32.RKR = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0\xaf<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00@\xd4\\\x7f\xa9\x92\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\ronr3ps3-1307-4rnn-n7r8-o11nns992s82_[Theh3Q]-QQH.mvc.[Theh3Q]-QQH.mvc\QQH i18.0.9.3.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\xe3\xca;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xe0\xa2m\xb9\xa9\x92\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\[Theh3Q]-QQH\QQH i18.0.9.3.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-%\xb0;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xc0\x85\xcc\xce\xa9\x92\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\[Theh3Q]-QQH\QQH i18.0.9.3\Qvfcynl Qevire Havafgnyyre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6I\xcf<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xe0f\x10V\xab\x92\xdb\x01\x00\x00\x00\x00' +P:\NZQ\NZQ-Fbsgjner-Vafgnyyre\NZQ-Fbsgjner-Nqeranyva-Rqvgvba-25.3.1-ZvavznyFrghc-250305_jro\Ova64\NZQFbsgjnerVafgnyyre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00Nj\x90:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\NZQ\NZQFbsgjnerVafgnyyre\nzq-fbsgjner-nqeranyva-rqvgvba-25.3.1-zvavznyfrghc-250305_64ovg\Ova64\NZQFbsgjnerVafgnyyre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x19\n;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +PARiragJvaqbjPynff = b'\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00h\\\x00\x00\xe3\x0f\x94;\xfa\xe0\x987\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\FgrnzYvoenel\fgrnznccf\pbzzba\Fxlevz Fcrpvny Rqvgvba\FxlevzFRYnhapure.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t\xd7i:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\FgrnzYvoenel\fgrnznccf\pbzzba\Fxlevz Fcrpvny Rqvgvba\FxlevzFR.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0K\xe0:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +ZvpebfbsgJvaqbjf.Pyvrag.POF_pj5a1u2gklrjl!ehagvzroebxre07s4358n809np99n64n67p1 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\xc5\x8a7\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\PuebznPnz-4.0.10.0.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00d\x92\x03<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00`c\xdc\x85\xc4\x92\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\VKC000.GZC\qkjfrghc.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\xfaL:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +pbz.Crefbavsl.PuebznPnz = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00c\xe5%<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +79839807.ppo55896 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|:W:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\IPnz-i2.0.253-jva.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x997}:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +nv.ipnz.ryrpgeba = b'\x03\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x1b\xaf\x00\x00\xe2Ly;Yj\x1b;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +NZQ.NZQVafgnyyZnantre = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x7f`:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\ehaqyy32.rkr = b'\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\xe8\x83<\xc8\x98\xe6;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xa0\xe6\x1d\x8c\xad\xa8\xdb\x01\x00\x00\x00\x00' +{7P5N40RS-N0SO-4OSP-874N-P0S2R0O9SN8R}\Crefbavsl\PuebznPnz\Havafgnyy PuebznPnz 4.0.10.0.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xe0\xaf;\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\xa0\xec.W\xd4\x95\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\~afh.gzc\Nh_.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t\x81c:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\Tvg\zvatj64\ova\tvg-perqragvny-znantre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9d\\:\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Zvpebfbsg.Jvaqbjf.PbagebyCnary.SbyqreBcgvbaf = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xb0\x0f\x00\x00\xc1{W:\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\IvqrbYNA\IYP\iyp.rkr = b'\x03\x00\x00\x008\x00\x00\x00&\x00\x00\x00\xe3\xe1\x0b\x00VU <\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xc0\xb1\x0e\x7fg\xac\xdb\x01\x00\x00\x00\x00' +nv.ipnz.qrfxgbc = b'\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x98\xe6;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xa0\x7f\xc7\xab\xd1\xa4\xdb\x01\x00\x00\x00\x00' +{1NP14R77-02R7-4R5Q-O744-2RO1NR5198O7}\zntavsl.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xffDD5\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +Q:\FgrnzYvoenel\fgrnznccf\pbzzba\Ernql Be Abg\ErnqlBeAbg\Ovanevrf\Jva64\ErnqlBeAbg-Jva64-Fuvccvat.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>\x8c\x86<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\7m2409-k64.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00qW\xe7;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00 /4\x11i\xa2\xdb\x01\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\7-Mvc\7m.rkr = b"\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x98\xe6;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xd0\x9d\xf4'i\xa2\xdb\x01\x00\x00\x00\x00" +{6Q809377-6NS0-444O-8957-N3773S02200R}\7-Mvc\7mT.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x003\xcd\r<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xb0\x12\x95\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x10 \xeb\x98\xac\xa3\xdb\x01\x00\x00\x00\x00' +Zvpebfbsg.NNQ.OebxreCyhtva_pj5a1u2gklrjl!Ncc = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00m\x1d[:\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\Ybbcvat\Ybbcvat.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x98\xe6;\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x80I\xb3\x1a\xbf\xa3\xdb\x01\x00\x00\x00\x00' +Ybbcvat.4.1.0... = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-\xe2\x9a=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\JvaqbjfNccf\Zvpebfbsg.Cnvag_11.2502.161.0_k64__8jrxlo3q8oojr\CnvagNcc\zfcnvag.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xf2\xac<\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x00\x00\xe0\xcb(\x99\xd9\xa3\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qrfxgbc\Ybtvpvry\Gbe Oebjfre\Oebjfre\sversbk.rkr = b'\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff \x86\xd4\x19\xfd\xa9\xdb\x01\x00\x00\x00\x00' +4090753655 = b'\x03\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\xc6g\x06\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +S:\fgneg.rkr = b'\x03\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\xa9?\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x80\xf1\xea\xd3\xad\xa8\xdb\x01\x00\x00\x00\x00' +S:\aNhgbHcqg.rkr = b'\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xd0\xfc\xa4Q\xac\xa8\xdb\x01\x00\x00\x00\x00' +S:\frghc.rkr = b'\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xf0\x0e\x8a\xdd\xae\xa8\xdb\x01\x00\x00\x00\x00' +Q:\Boyvivba\BoyvivbaYnhapure.rkr = b'\x03\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\xc6G\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xa0\x05\xa9\xaf\xad\xa8\xdb\x01\x00\x00\x00\x00' +Q:\Boyvivba\Boyvivba.rkr = b'\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\t#\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xf00\xa4\xbb\xad\xa8\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qbjaybnqf\IveghnyObk-7.1.6-167084-Jva.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\\^\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\Benpyr\IveghnyObk\IveghnyObk.rkr = b'\x03\x00\x00\x00\x02\x00\x00\x00\n\x00\x00\x00+s\x04\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xffP"\xf09x\xa9\xdb\x01\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\Benpyr\IveghnyObk\IveghnyObkIZ.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\xa6\x06\x0b\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\Zbiniv-vafgnyyre-nsp16q91-86o3-4n69-o70n-349s63303rqn\vafgnyyre.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xe4\x1b\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ebnzvat\Zbiniv Ivqrb Rqvgbe 25\IvqrbRqvgbe.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x05\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ebnzvat\Zbiniv Ivqrb Rqvgbe 25\havafg.rkr = b'\x03\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\xe8\x10\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x80km\x16\xeb\xa9\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\97p1p34q-q1p8-44n3-8844-13snp5n8ps06_QnIvapv_Erfbyir_19.1.4_Jvaqbjf.mvc.s06\QnIvapv_Erfbyir_19.1.4_Jvaqbjf.rkr = b'\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x80\xbe\x81\xf9\xeb\xa9\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\7mF45R95QS1\FrghcErfbyir.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x009G\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{6Q809377-6NS0-444O-8957-N3773S02200R}\Oynpxzntvp Qrfvta\QnIvapv Erfbyir\Erfbyir.rkr = b'\x03\x00\x00\x00\x10\x00\x00\x00Z\x00\x00\x00\xa2E\xb2\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\xa0\x0cI\x0bf\xac\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\NccQngn\Ybpny\Grzc\{61704423-49NN-4QNO-84QQ-Q335P2PSQRNN}\.pe\clguba-3.13.3-nzq64.rkr = b'\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00Qr\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + +[{F2A1CB5A-E3CC-4A2E-AF9D-505A7009D442}] +HRZR_PGYFRFFVBA = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + +[{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}] +HRZR_PGYPHNPbhag:pgbe = b'\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\Svyr Rkcybere.yax = b'\x03\x00\x00\x006\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xe8h^?\xad\xdb\x01\x00\x00\x00\x00' +HRZR_PGYFRFFVBA = b'\x03\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x006\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00{\x009\x00E\x003\x009\x009\x005\x00A\x00B\x00-\x001\x00F\x009\x00C\x00-\x004\x00F\x001\x003\x00-\x00B\x008\x002\x007\x00-\x004\x008\x00B\x002\x004\x00B\x006\x00C\x007\x001\x007\x004\x00}\x00\\\x00T\x00a\x00s\x00k\x00B\x00a\x00r\x00\\\x00F\x00i\x00l\x00e\x00 \x00E\x00x\x00p\x00l\x00o\x00r\x00e\x00r\x00.\x00l\x00n\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00{\x009\x00E\x003\x009\x009\x005\x00A\x00B\x00-\x001\x00F\x009\x00C\x00-\x004\x00F\x001\x003\x00-\x00B\x008\x002\x007\x00-\x004\x008\x00B\x002\x004\x00B\x006\x00C\x007\x001\x007\x004\x00}\x00\\\x00T\x00a\x00s\x00k\x00B\x00a\x00r\x00\\\x00F\x00i\x00l\x00e\x00 \x00E\x00x\x00p\x00l\x00o\x00r\x00e\x00r\x00.\x00l\x00n\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00\x00\x00\x00\x006\x00\x00\x00{\x009\x00E\x003\x009\x009\x005\x00A\x00B\x00-\x001\x00F\x009\x00C\x00-\x004\x00F\x001\x003\x00-\x00B\x008\x002\x007\x00-\x004\x008\x00B\x002\x004\x00B\x006\x00C\x007\x001\x007\x004\x00}\x00\\\x00T\x00a\x00s\x00k\x00B\x00a\x00r\x00\\\x00F\x00i\x00l\x00e\x00 \x00E\x00x\x00p\x00l\x00o\x00r\x00e\x00r\x00.\x00l\x00n\x00k\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\Zvpebfbsg Rqtr.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00`p\xe7\xbc\xcbx\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Choyvp\Qrfxgbc\PCHVQ PCH-M ZFV.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x17=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x000\xe2"\xb4\xcfx\xdb\x01\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\Tbbtyr Puebzr.yax = b'\x03\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\xed%\xb4>\xa3\x8bn?\x00\x00\x00?\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\x8f\xbf\n@\xad\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qrfxgbc\NVQN64 Rkgerzr.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0c\xd1\x96\xcfx\xdb\x01\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\Evbg Pyvrag.yax = b'\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xab\xaa*>\x00\x00\x00\x00C\x162=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xf0\x7f-y\xc1\xa4\xdb\x01\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\Fgrnz.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x17=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xb0H\xe2\x05\xd3x\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Ax\Qrfxgbc\Ybtvpvry\RN.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\xf4x\xf7\xd8x\xdb\x01\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\VzcyvpvgNccFubegphgf\q356105snp5527rs\Fgrnz.yax = b'\x03\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00&\xb4\x17>F\x17\xdd>\x9c\xdet>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\x15\x96\x06K\xaa\xdb\x01\x00\x00\x00\x00' +{0139Q44R-6NSR-49S2-8690-3QNSPNR6SSO8}\AMKG PNZ.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x8c.\xba<\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xa0\xb6\x98FH\x90\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Choyvp\Qrfxgbc\Fgernzynof Qrfxgbc.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xb0\xca\x0e\x04\xa3y\xdb\x01\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\RN.yax = b'\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00&\xb4\x97=/\xba\xe8=\xd3\x9b\xde=\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\x00\xdd\x9fkA\xad\xdb\x01\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\Onggyr․arg.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x17=\x8c.\xba\x00\x00@?\xd3\x9b\xde>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xc0\xaf\xda$B\xad\xdb\x01\x00\x00\x00\x00' +{N77S5Q77-2R2O-44P3-N6N2-NON601054N51}\Birejbys\Birejbys.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00 \x99h\xdf.z\xdb\x01\x00\x00\x00\x00' +{N77S5Q77-2R2O-44P3-N6N2-NON601054N51}\Birejbys\Cbebsrffbe.tt.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x17=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@>,]\xd6{\xdb\x01\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\RcvpTnzrfYnhapure.yax = b'\x03\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00&\xb4\x97=t\xd1\x05?\x16\xb2\x90>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00\xd0\xc1\x9e4\xb1\xac\xdb\x01\x00\x00\x00\x00' +{N77S5Q77-2R2O-44P3-N6N2-NON601054N51}\Flfgrz Gbbyf\Pbzznaq Cebzcg.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x009\x8ec=\xba\xe8">\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00 \xce\x86\xcc\x0c\x8e\xdb\x01\x00\x00\x00\x00' +{9R3995NO-1S9P-4S13-O827-48O24O6P7174}\GnfxOne\Fgernzynof Qrfxgbc.yax = b'\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x009\x8e\xe3=\x00\x00\x80>\x16\xb2\x90>\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xb9{\xb9\xab\xac\xdb\x01\x00\x00\x00\x00' +P:\Hfref\Choyvp\Qrfxgbc\AIVQVN Oebnqpnfg.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x02\x00\x00\x00@\xe0\xcd|\x06\x7f\xdb\x01\x00\x00\x00\x00' +{0139Q44R-6NSR-49S2-8690-3QNSPNR6SSO8}\AIVQVN Pbecbengvba\AIVQVN Oebnqpnfg.yax = b'\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&\xb4\x97Respecter la page de garde. + +Je dois surtous seulons la nature ou mes role dans mon entreprise, mettre en avant ou des projet, ou des mission, ou des tache. + +Votre experience professionelle, ne noter seulement que les expérence dans l'informatique. + +Il faut bien respecter les 10 a 12 page minimum de mission détailler (ça peut aller jusqu'a 30 page en tous, mais au moins 10 a 12 pages sur les mission/tache/projet). +Il vaut mieux intégrer les documents technique dans cette partis plustôt que dans des annexes. + +J'explique l'activité et je dois défénir quel est mon apport dans cette activité. + +Parmis toutes les expériences, en appuyer surtout 2 qui serons celle sur lequel on s'appuiera lors de la soutnenace. + + diff --git a/UAALOT/25-02-18/README.md b/UAALOT/25-02-18/README.md new file mode 100644 index 0000000..d9587c6 --- /dev/null +++ b/UAALOT/25-02-18/README.md @@ -0,0 +1,24 @@ +# UAALOT-18-02-25 + +``` + Soutenanse + | + ___________________________________ + | | + Rapport Présentation + < 40 pages environs 10min + Template Je me présente + Listes taches Je présente l'entreprise + Mon rôle + Listes des taches + ou + Missions + ou + Projets +``` + +Pour la présentation, 3 presonnes dans le jury : +- UTEC +- CNAM +- Référent + diff --git a/UAALOT/README.md b/UAALOT/README.md new file mode 100644 index 0000000..70df7c9 --- /dev/null +++ b/UAALOT/README.md @@ -0,0 +1,3 @@ +# UAALOT + +* [18/10/24](./UAALOT-18-10-24/) \ No newline at end of file diff --git a/UTC501/25-01-30/README.md b/UTC501/25-01-30/README.md new file mode 100644 index 0000000..57a7143 --- /dev/null +++ b/UTC501/25-01-30/README.md @@ -0,0 +1,133 @@ +# UTC 501 31/01/2025 + +## Exercice 7 + +``` +p = 17, q = 11 + +n = pq = 187 + +e = 7 premier avec (p - 1)(q - 1) = 160 +``` + +### 1) + +``` +1 = u * 7 + v * 160 + | + V + d + +160 = 22 * 7 + 6 +7 = 1 * 6 + 1 +6 = 6 * 1 + 0 d e + | | +1 = 7 - 1 * 6 V V +1 = 7 - 1(160 - 22 * 7) =-160 + 23 * 7 +``` + +### 2) + +``` +12 00 13 01 20 08 +l _ m a t h + +séparer en groupe de 3 + +120 013 012 008 + +-------------------------- + +120 = + +(120²)³ * 120 Mod(187) +120² = 14400 ≡ 1 Mod (187) +1 * 120 ≡ 120 Mod (187) + +120 + +-------------------------- + +013 = + +(13³)² = 2197² ≡ 140² Mod(187) +19600 ≡ 152 Mod (187) +152*13 ≡ 103 Mod (187) + +106 + +-------------------------- + +012 = + +(12³)² = 1728² ≡ 45² Mod (187) +1764 ≡ 81 Mod (187) +81 * 12 ≡ 37 Mod (187) + + + + +--------------- + +12⁷ (Mod 187) + +35831808 modulo 187 = 177 + +35831808 ≡ 177 (mod 187) +177 + +--------------- + +00⁷ Mod(187) + +0 modulo 187 = 0 + +0 ≡ 0 (mod 187) +0 + +--------------- + +13⁷ (Mod 187) + +62748517 modulo 187 = 106 + +62748517 ≡ 106 (mod 187) +106 + +--------------- + +01⁷ (Mod 187) + +1 modulo 187 = 1 + +1 ≡ 1 (mod 187) +1 + +--------------- + +20⁷ (Mod 187) + +1280000000 modulo 187 = 147 + +1280000000 ≡ 147 (mod 187) +147 + +--------------- + +08⁷ Mod(187) + +2097152 modulo 187 = 134 + +2097152 ≡ 134 (mod 187) +134 + +--------------- + +Résultat Final 177-000-106-001-147-134 + +--------------- + +120 + + +``` \ No newline at end of file diff --git a/UTC501/25-01-30/UTC501_ED-2.pdf b/UTC501/25-01-30/UTC501_ED-2.pdf new file mode 100644 index 0000000..a9ab75e Binary files /dev/null and b/UTC501/25-01-30/UTC501_ED-2.pdf differ diff --git a/UTC501/25-02-21/README.md b/UTC501/25-02-21/README.md new file mode 100644 index 0000000..462b2dd --- /dev/null +++ b/UTC501/25-02-21/README.md @@ -0,0 +1,119 @@ +L'exercice 3 aborde la méthode des moindres carrés et l'équation normale, qui sont des techniques utilisées pour résoudre des systèmes d'équations linéaires qui ont plus d'équations que d'inconnues. + +``` +### Partie a) : Résolution du système \( Ax = b \) + +1. **Données**: + - Matrice \( A \) : + \[ + A = \begin{pmatrix} + 1 & 0 \\ + 0 & 1 \\ + 1 & 1 + \end{pmatrix} + \] + - Vecteur \( b \) : + \[ + b = \begin{pmatrix} + 2 \\ + 2 \\ + 1 + \end{pmatrix} + \] + +2. **Système à résoudre** : + \[ + Ax = b + \] + +3. **Méthode de Gauss-Jordan** : + - Ce système n'a pas une solution exacte car il y a plus d'équations que d'inconnues (3 équations, 2 inconnues). On dit que le système est surdéterminé. + +### Partie b) : Méthode des moindres carrés + +1. **Objectif** : Trouver un vecteur \( x \) qui minimise l'erreur entre \( Ax \) et \( b \). + +2. **Équation normale** : + - Pour minimiser l'erreur \( \|Ax - b\|^2 \), nous résolvons : + \[ + A^T A x = A^T b + \] + - Calcul de \( A^T \) (la transposée de \( A \)) : + \[ + A^T = \begin{pmatrix} + 1 & 0 & 1 \\ + 0 & 1 & 1 + \end{pmatrix} + \] + - Calcul de \( A^T A \) : + \[ + A^T A = \begin{pmatrix} + 2 & 1 \\ + 1 & 2 + \end{pmatrix} + \] + - Calcul de \( A^T b \) : + \[ + A^T b = \begin{pmatrix} + 3 \\ + 3 + \end{pmatrix} + \] + +3. **Résolution de l'équation normale** : + \[ + \begin{pmatrix} + 2 & 1 \\ + 1 & 2 + \end{pmatrix} + \begin{pmatrix} + x_1 \\ + x_2 + \end{pmatrix} + = + \begin{pmatrix} + 3 \\ + 3 + \end{pmatrix} + \] + Après résolution, nous trouvons : + \[ + x_1 = 1, \quad x_2 = 1 + \] + +### Partie c) : Calcul de \( x_0 \) et projection de \( b \) sur \( P \) + +1. **Calcul de \( x_0 \)** : + - \( x_0 = 1 - x_1 - x_2 = 1 - 1 - 1 = -1 \) + +2. **Projection de \( b \) sur \( P \)** : + - Le point projeté est donné par la combinaison linéaire \( x_0 A_0 + x_1 A_1 + x_2 A_2 \). + - Avec les valeurs trouvées : + \[ + \begin{pmatrix} + -1 \\ + 0 \\ + 0 + \end{pmatrix} + + + \begin{pmatrix} + 0 \\ + 1 \\ + 0 + \end{pmatrix} + + + \begin{pmatrix} + 0 \\ + 0 \\ + 1 + \end{pmatrix} + = + \begin{pmatrix} + -1 \\ + 1 \\ + 1 + \end{pmatrix} + \] + +Cela signifie que le point \( b = \begin{pmatrix} 2 \\ 2 \\ 2 \end{pmatrix} \) est projeté sur le plan \( P \) au point \( \begin{pmatrix} -1 \\ 1 \\ 1 \end{pmatrix} \). +``` \ No newline at end of file diff --git a/UTC501/25-02-21/UTC501_Cours3.pdf b/UTC501/25-02-21/UTC501_Cours3.pdf new file mode 100644 index 0000000..4434514 Binary files /dev/null and b/UTC501/25-02-21/UTC501_Cours3.pdf differ diff --git a/UTC501/25-02-21/UTC501_ED-3_Résol_Syst_linéaire.pdf b/UTC501/25-02-21/UTC501_ED-3_Résol_Syst_linéaire.pdf new file mode 100644 index 0000000..fd0d02f Binary files /dev/null and b/UTC501/25-02-21/UTC501_ED-3_Résol_Syst_linéaire.pdf differ diff --git a/UTC501/29-01-2025/README.md b/UTC501/29-01-2025/README.md new file mode 100644 index 0000000..6353bba --- /dev/null +++ b/UTC501/29-01-2025/README.md @@ -0,0 +1,110 @@ +# ED 2 Elements d'arithmétiques + +## Exercice 1 + + +``` +div 1555 = { 1, 3, 5, 7, 11, 3*5, 3*7, 3*11, 5*7, 5*11, 7*11, 3*5*7, 3*5*11, 3*7*11, 5*7*11, 1555 } +``` + +## Exercice 2 + +### 1 ) + +#### a = 43 | b = 16 + +``` +43 = 2 * 16 + 11 +16 = 1 * 11 + 5 +11 = 2 * 5 + 1 +5 = 5 * 1 + 0 + +PGCD = 1 on dit que 43 et 16 sont premiers entre eux +``` + +#### a = 44231 | b = 2750 + +``` +44231 = 16 * 2750 + 231 +2750 = 11 * 231 + 203 +231 = 1 * 209 + 22 +209 = 9 * 22 + 11 +22 = 2 * 11 + 0 + +PGCD = 11 +``` + +#### a = 6234 | b = 3312 + +``` +6234 = 1 * 3312 + 2922 +3312 = 1 * 2922 + 390 +2922 = 7 * 390 + 192 +390 = 2 * 192 + 6 +192 = 32 * 6 + 0 + +PGCD = 6 +``` + +### 2 ) + +`Dans ce cas la, ^ à la difference du dev veux dire PGCD et non pas "puissance"` + +``` + 6234 * 3312 6234 * 3312 +(6234 V 3312) = ----------- = ----------- = 1039 * 3312 = 3441168 + 6234 ^ 3312 6 +``` + +## Exercice 3 + +``` +Appelons p le nombre de pièces max dans 1 sac. + +7912 = q1 * p + 37 <- 37 +59167 = q2 * p + r <- 42 + +Le reste est toujours inferieur au diviseur, donc 37 < p , 42 < p + +Notons que 7912 - 37 = q1 p => 7875 = q1 p } Donc le p cherché est parmi + 59167 - 42 = q2 p => 59125 = q2 p } les diviseur communs + +le PGCD de 59125 et 7875 est 125 (faire l'algo d'eluclide) +on sait donc que 43 <= p <= 125 + +si on fait : 7912 = 63 * 125 + 37 + 59167 = 473 * 125 + 42 + +Donc p = 125 est une solution. + +Or d'après le théormème p.28, tous les diviseurs de 59125 et 7875 sont des diviseurs de leur PGCD. + +Donc il suffit de chercher les diviseurs de 125 : + +div { 1 , 5, 5 * 5, 5 * 5 * 5 } + +Donc p E div 125 et p < 42 => p = 125 est l'unique solution. + +``` + +## Exercice 4 + + + +## Exercice 5 + +``` +Il faut forcement au minimum avoir un nombre impaire. + +3, 4 -> = 1 donc ils sont premier entre eux +8, 6 -> =/ 1 (=2) +13, 6 -> = 1 donc ils sont premier entre eux +8, 2 -> =/ 1 (=2) + +Le mieu des 2 segments verts correspond à un nombre entier. +autrement dit : + +Les segements qui ne passent pas des points de coordonnées entières sauf à la fin, sont des droites qui correspondent au nombres premiers entre eux : la droite (3, 4), la droite (13, 6) +``` + +## Exercice 6 diff --git a/UTC501/Cours/Cours0_Intro_Elements_de_Logique/ED0/UTC501_ED0_exercices.pdf b/UTC501/Cours/Cours0_Intro_Elements_de_Logique/ED0/UTC501_ED0_exercices.pdf new file mode 100644 index 0000000..2ec5a86 Binary files /dev/null and b/UTC501/Cours/Cours0_Intro_Elements_de_Logique/ED0/UTC501_ED0_exercices.pdf differ diff --git a/UTC501/Cours/Cours0_Intro_Elements_de_Logique/UTC501_Cours0.pdf b/UTC501/Cours/Cours0_Intro_Elements_de_Logique/UTC501_Cours0.pdf new file mode 100644 index 0000000..040a684 Binary files /dev/null and b/UTC501/Cours/Cours0_Intro_Elements_de_Logique/UTC501_Cours0.pdf differ diff --git a/UTC501/Cours/Cours1_Relations/Cours1_1_Relation_Equivalence/UTC501_Cours1-1.pdf b/UTC501/Cours/Cours1_Relations/Cours1_1_Relation_Equivalence/UTC501_Cours1-1.pdf new file mode 100644 index 0000000..293e140 Binary files /dev/null and b/UTC501/Cours/Cours1_Relations/Cours1_1_Relation_Equivalence/UTC501_Cours1-1.pdf differ diff --git a/UTC501/Cours/Cours1_Relations/Cours1_2_Relation_Ordre/UTC501_Cours1-2.pdf b/UTC501/Cours/Cours1_Relations/Cours1_2_Relation_Ordre/UTC501_Cours1-2.pdf new file mode 100644 index 0000000..ed1ab92 --- /dev/null +++ b/UTC501/Cours/Cours1_Relations/Cours1_2_Relation_Ordre/UTC501_Cours1-2.pdf @@ -0,0 +1,3019 @@ +%PDF-1.5 +% +529 0 obj +<< /Linearized 1 /L 473928 /H [ 9448 976 ] /O 533 /E 108802 /N 47 /T 470482 >> +endobj + +530 0 obj +<< /Type /XRef /Length 281 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Index [ 529 1126 ] /Info 143 0 R /Root 531 0 R /Size 1655 /Prev 470483 /ID [<58de1969925fd094370fc674081c3530><58e1afd1aa4aad9605a6ce46bfdb8f27>] >> +stream +x1jBAMpU"N$` ,lӄgN`e$N(*5Ip<$.L<~fbYc29"o*~1?BC9\| Sh2Q>IsqgEO%up]R j: P, :Lii'V9:Mn|[s'v'ӽ3UtBl[zW^!3ׯ;磟`b^3=y ]58|4=|3fP +endstream +endobj + +531 0 obj +<< /Names 1557 0 R /OpenAction 1572 0 R /Outlines 1535 0 R /PageLabels << /Nums [ 0 << /P >> 1 << /P >> 2 << /P >> 3 << /P >> 4 << /P >> 5 << /P >> 6 << /P >> 7 << /P >> 8 << /P >> 9 << /P >> 11 << /P >> 12 << /P >> 15 << /P >> 16 << /P >> 18 << /P >> 19 << /P >> 20 << /P >> 21 << /P >> 22 << /P >> 23 << /P >> 25 << /P >> 26 << /P >> 28 << /P >> 29 << /P >> 30 << /P >> 31 << /P >> 32 << /P >> 33 << /P >> 44 << /P >> 45 << /P >> 46 << /P >> ] >> /PageLayout /TwoColumnsRight /PageMode /UseOutlines /Pages 1534 0 R /Type /Catalog /ViewerPreferences << /FitWindow true >> >> +endobj +532 0 obj +<< /Filter /FlateDecode /S 5150 /O 5449 /Length 886 >> +stream +xc```b`Py6A +lv X@sAAЀ@1w'>Hp212m`py / +#sÌ R vp]`jc2T<ղ)HQ3`U=i-K + ,W +|v}=Vxss~;MT>>>YfgCRr +3 +;'7/@`PpHhXxDbTtLU\|BKRrjHI4Szml/(,.+OkhlOhcJU0@%*m+*.La5о&`@ξbe@@6Y&5*,.-Ua* +vC,XJCO#4 aHuC64ˀva+BD>h!-Dk!͊HH TB;`v  +aX @Jj ha $4xv] +Bh/s6U3M]sX_G",A3; Qiѣ5^^#$hcWQbEtLS|)5ꮜpQ+ڊ\1jVZA> /Type /Page >> +endobj +534 0 obj +<< /Filter /FlateDecode /Length 1060 >> +stream +xXKo8WV 3|w@/8!p6lΐ"%nkolhyp'5f%CQ:Yg"{$%+ !d[ȔyY P4|ur+w IV.&D@hZ  qIMBL2Tg 41 V$hiiք\ p2AH  ѐn\gJ&HcBÁ\Evtv2z9Rj_ @;G#>R1;t J)W(_r6&!/Jzrgzq><>Կ*muN.*@ZU1h8R.8Drq麞S2V|- e]+Q;H.ZhQ󺋂m;*7fP8-TR?Dӽ:E*2tV/W% MxQii{iK!2=լfPS厦;D+P)M/rD~[x! BBBW;׼WVim?#zICN3CU_Yzocp܋%-wM4^8zOYKϓxZg-МIC/Jo$ +endstream +endobj +535 0 obj +<< /Type /ObjStm /Length 1832 /Filter /FlateDecode /N 97 /First 882 >> +stream +x[KsGW1=UUr\ A +8%dB}f bB#Nn׏鵃5)XK(%<1qdXL`39i2vLq3kqq!E9IR(8 k2Z(!WzC%͑R^$!S6PԚf.ˉ $kK9F8Q5;y,șZB#j[h!Y"I9JDa8[⏍"#CDGF*d|p""Pb 0Bh ft4CȀi$O@: r)\d p9<> yF9eQg>lw7krsmn}D~<8{=^ͦ' who6?R4z!NNS 6"wq*#Zq?&4lFtXn`\R{ ۢr2 S>pj9aJVEfFhLtq'W*kB"SePqIR9%K2et#HgO͜b(f̦S94ddIxnF雑;V +rGb2 +%qt4ODN>.^%W0.&SNbhLE+K:tw3#fyfeJN%}/:/ Qf|6&,hV0.!_O +t ^ :hQӠqA ]f㐌r0+1z (d”5Sm.G"r) ~1ɺ$;;a`x +Sb)s߾Y$dnl42d==%ɵpթ6WVXbڨCwVkth1E3buf)V*AV#`(WՖ@*ȭIe;Ykj΢um{Mio|p:X\e2lzZErǦl*yTJzU ;8F1/(7aw 72F {#GoCo6C>z#}z#7b7 #Cwd ݑZwdͯl;l,b7ӳ u5ڟ|8;<}'dmJgUNg㳩\Rɰ9>?iA?H`i{iaˈ5:~ӓ ƫ^cQF6hg_#b'BܙQk;u'N5@(jǮ +譳[}%vb%D,9c^uCCQ5o5@QÞkc/d.f\+)(غ7\&Zl]_HHE]Xc .?߬ Wk[vky]wTk0bNwJK[˱4yWV$ f0h+,%Ӂ5!o yk[% u󖅼Վewy\; +Z˲7},~1˲ڗ@},~1˲x^meٿC +endstream +endobj +536 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 708 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +537 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 709 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +538 0 obj +<< /BBox [ 0 0 8 86.795 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 710 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +539 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 711 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +540 0 obj +<< /BBox [ 0 0 353.156 98.395 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 713 0 R /Subtype /Form /Type /XObject /Length 184 >> +stream +x }j+0ݸaQŐ/LД~0#^P9r&:L![!F]sl\88y<`H +c k +nr +f%>JI!T*u-ig*eqr>%aG¬lxp0x?!_$~\xz +endstream +endobj +541 0 obj +<< /BBox [ 0 0 353.156 98.395 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 712 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥khO +endstream +endobj +542 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 714 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +543 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 715 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +544 0 obj +<< /BBox [ 0 0 8 55.188 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 716 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +545 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 717 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +546 0 obj +<< /BBox [ 0 0 353.156 66.788 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 719 0 R /Subtype /Form /Type /XObject /Length 184 >> +stream +x0} +^`tnyϰi׷P7]a%"a.7lV/9%CiCVnQkeaךW/JP )-Ld $p?;_aI])=Nz +endstream +endobj +547 0 obj +<< /BBox [ 0 0 353.156 66.788 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 718 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥khO +endstream +endobj +548 0 obj +<< /Type /ObjStm /Length 1570 /Filter /FlateDecode /N 96 /First 881 >> +stream +xZMsGW1糧 +pD)Dž9P[LȿV6rE_=~;oVqapu)H5P HY -LlE: !Xh1psM.r\DB"& \RSA yr1  0"F(LSԖ@^D%jDuL(hB!]NBRoPF>E.H1$F)fdU(Y-%$WQ +@ΞRfdEs$3Ds٢-ymUQ`j8uQ(y(0Uv@.յs"A d $s!xRpBpXvƨ3WfLT4MrAjb)6J + ;Ez؀lkjzH!6ETFH&HL#` G 2I6FR הoE$0l t,l8:6b*=HNQ9(9>9^ bHDS#XRE]]\3{vG?ON_L۟htJst[`N[?1ugKI0 t6\L@`~^qfmT1 8=dXT#3506LZ7@)W1E#N7[AFPl=( +ϝFPI(B;1Aw@FP.f|1> +UEsXy%a 3$!{T1|d':Mݱ1Yl6Z[hӇd^=~|x,k[\e?23"f,*T^˪IjkcԍhXkA~#,V٪iN&e)rv~vߞq/39/zL'Tڕy[tY^NΧKZQvz=zx_o0Zc?h믰p4Lg5Xuh[)-W9xijvY`_M>۳k^9K+6U?k0:Z6W v[m o6 qu-o|[=\$F=p6xRv14hBVj,=/SxB!L^t Ot);",L#CRsܺj@=bbh.}Kf0S +&1%ɇ &63|Jd`4hENpn&\bR2EipJ4 D)pJ4 D_ZQ-|3v=}n}P~d|dlCfbs՚O@5l dk [_l='٢^aPz +u+n^1SzSyѾEҒ'w7Ih, ~1}Hʎ*qٛ?֪ -2C0ftלP(@ +7P np_}ސNPZ@Z &*/d +endstream +endobj +549 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 745 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +550 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 746 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +551 0 obj +<< /BBox [ 0 0 8 35.438 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 747 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +552 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 748 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +553 0 obj +<< /BBox [ 0 0 353.156 47.038 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 750 0 R /Subtype /Form /Type /XObject /Length 186 >> +stream +x > /Matrix [ 1 0 0 1 0 0 ] /Resources 749 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥kdO +endstream +endobj +555 0 obj +<< /Type /ObjStm /Length 1488 /Filter /FlateDecode /N 97 /First 887 >> +stream +xZ[sS7~E3 3@jI3$ &9 .o}N04jH2Go/OIq,(<2G!O!W[[(*>sOAE3q* UHs`j`r6AWpC*xr>A +\ڈt#(Pȳ$4-y_42%:I'vK)3, +1PJx+,C*90`)XN .02&VEhP^ŅOR~LGRָ@I49RTB$4C cG('L,0;`eE8fx:Es kUJH)bIhIb^đDx)!D0U"VH(1 a=qZ,]bZpzRH?VSjb xN,pb .ځ5\Dy4`h4pk[.aMr$ZXurTY{8,6`Gpw& i&OpU zN_ύbnpv~>[ϗ ?&'KL[A:&n&4yҝ 79:[^zMNb(W +0"6J h5(_ *GO`"ΡZPK<TOamA`JPP0-F|j5d'Q%$o+1 -(Lŵ0OqyP{H4 &o[kM#lra1EOzʝP֫ŔMC{WL"QK1Fϋ6Y~N_hgg Vy6G4N狳$!{u+٪ +%;&(lH}T7\l7l2>= ңruzvi]|~|m}=].=rh%TkC==@;!7W0⶧pA'H dt4:h^w" NVN39:Zz#.ZS"aK=ꪣgo:^-N567q$SjW [a*S;6>'oK+蕱'}0oΧ;}dΧ6|{v|ڝOiw>Χ;/{7< +endstream +endobj +556 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 895 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +557 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 896 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +558 0 obj +<< /BBox [ 0 0 8 110.702 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 897 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +559 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 898 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +560 0 obj +<< /BBox [ 0 0 353.156 122.302 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 900 0 R /Subtype /Form /Type /XObject /Length 186 >> +stream +x UEy?{C +endstream +endobj +561 0 obj +<< /BBox [ 0 0 353.156 122.302 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 899 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥klO +endstream +endobj +562 0 obj +<< /Type /ObjStm /Length 1549 /Filter /FlateDecode /N 93 /First 867 >> +stream +xZMo7W̱P 0uz(\#!iЃbo5(rDiی]c9y8;}vq,)\jG +.($kB)z*cm;F^ +X,B%ىNτI:sI4X)xrV`W +fc^<kO&/XgthSHHN1. "hWna%8]?*$%2 %:QE (R QNO 9g-,R <)yB¬E)PJQBXLO ړ(h423sݔl-L9֪{u!qYPr]gY g$U~ +[[,Z^/\& +`5l*UIJ +}UE9, '5,gVh4@ekW$*BP.ڋ[AJq h3d6P>V .R8ͽ{49&OLd [\^\/tpP>\^,WogEu׏NuMr&qMXCq[ w[N-Vٯ"6!0V6hr2]B͐[Mtxug 57kΝB}Zz[n© |zcfƷwlMNihdYx\w+,j~49ce95ZҊ5gS@^XɏkPYcP'ӗ]s}E;OwڍxΌ_Wx8\ΧEV[{NeGN/v}t8Ӵ@:HN&l~%#@pU2vk \4hW%!MwG;6zULe5Cb)&.-n > +stream +xP( +endstream +endobj +564 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 951 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +565 0 obj +<< /BBox [ 0 0 8 74.632 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 952 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +566 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 953 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +567 0 obj +<< /BBox [ 0 0 353.156 86.232 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 955 0 R /Subtype /Form /Type /XObject /Length 186 >> +stream +xM 9Ż@1ޱ랡Щ/jf A'h 4Jx<\'sibw1 +p?͊>JҲlhp"PVV'kMSmO-4cpl8 nN䄰:?cI \!z +endstream +endobj +568 0 obj +<< /BBox [ 0 0 353.156 86.232 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 954 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥kbO +endstream +endobj +569 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 980 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +570 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 981 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +571 0 obj +<< /BBox [ 0 0 8 50.124 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 982 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +572 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 983 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +573 0 obj +<< /BBox [ 0 0 353.156 61.724 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 985 0 R /Subtype /Form /Type /XObject /Length 184 >> +stream +x0} +^`Hy_yϰi׷P7]> /Matrix [ 1 0 0 1 0 0 ] /Resources 984 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥kbP +endstream +endobj +575 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1009 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +576 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1010 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +577 0 obj +<< /BBox [ 0 0 8 63.673 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1011 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +578 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1012 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +579 0 obj +<< /BBox [ 0 0 353.156 75.273 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1014 0 R /Subtype /Form /Type /XObject /Length 186 >> +stream +x;0 wqҴ;sPSAeM1$Rv_v ^Pp%t&; 1Z!Fλ> /Matrix [ 1 0 0 1 0 0 ] /Resources 1013 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥kjO +endstream +endobj +581 0 obj +<< /Type /ObjStm /Length 1465 /Filter /FlateDecode /N 88 /First 889 >> +stream +xZoG~_1zJ#`+$62}b6r'ݽofYȒ.SrШBB)Vr-T' W2 >K^U\TL^eYV̐+J-O>:>eȆHXm%5BKXP 0lR"S(k@ލmֻBK|24B1YW)~В,ENВ%-O'ʍ)RJVD)3LF-URvA[LYLa,;)U}%n5bVfEW`8Ġ +WR}r:U(jT+ʼn5%R-lw kLl-4B^-/L5$hd1 G\"HlqebGYpڏ:5\T]WXAnXI_A`uFXqUk 4" քFT aE< ݽ{49$d M=T T_q,..%ݿsFهz\xMNixt)hp:V%MIǤ1Mtgk5,_P K2pl$1wM~/䩶,MP'ם9]v=4ٰ-M"MMEjպo#IphiZAlIx TOIAl)ynAh"L؈IPHb1UggԊVHѫ'ynA)4'UwS9FLL%Xo +ukMyҜ b3$((Ng@b[1ȁ">ȃ&Lg۽&C\OPggoOX]O,0L$rv[Q<+٪ l0fcc0j5n)k0yv-/wN8vR?gkKrVS(f3 ^{)\ڲEz9(y}۫gY.:jly3d<;T>a_^?)K|[oymulzIew-®W͋]J/!=V4ևXCc}hS +Z)G`Tvz:r_jNvGžx%ա!j= B>jݾA(V)HXa_ +endstream +endobj +582 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1064 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +583 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1065 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +584 0 obj +<< /BBox [ 0 0 8 104.927 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1066 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +585 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1067 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +586 0 obj +<< /BBox [ 0 0 353.156 116.527 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1069 0 R /Subtype /Form /Type /XObject /Length 185 >> +stream +x } +x7gX4 HhJ[?Wdan=D'P,B]Tsqi;  -Nv+旜bCl*HnصkolruK)_JK0&wzA9p)aU%0b{u +endstream +endobj +587 0 obj +<< /BBox [ 0 0 353.156 116.527 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 1068 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥kfP. +endstream +endobj +588 0 obj +<< /Type /ObjStm /Length 1626 /Filter /FlateDecode /N 93 /First 943 >> +stream +x[Qs7~EVZI;0CHM:iex0R1k!”#՝V߮! %$!VmTȱh, +:, Dk%f'3|AƳNڒY& m.&Q bw#`FKQ}HJnD_TEĘM C$\j,'6E(f"(9>1T(MKj*VPyCStܨ+J50eiUS4-1p HXqR}|lө]ł 2m,JҫћUcE24ͦQ٬W쓩8f`QBX&dDTSbNAW;^"˦џY̢ I<&+ɢ FcnYrMpE*-f|3Hɴ<%9RѪo<- XuK~c +%MtIZBZ";*n$R%Izעi*'e)Up1uX-ǿ=SdkY9 מx:cc2i48V]{1;Ayk .ʍ.JUހWԄ';J[Ls0QqDOK3ƓT,A|9x*B,ɥoUE>c 6LWθ$e2÷>'+G7  +  +  + qAv"kku?z [woO{-FJ|z?edfTz +yLNt=>M5V>hA.Զ~j|>+}QgT37~Y7_ mcʯc+-kl#ewbսD$⸵x/|%~{<+Ef6[vQOn7Oie2v4+|Zcj|g|g|g|p>uRQgr{j kyc2~:^ E i{nBmݹQ7?r$# +KYfq./nB>@&\S`oRCDKuƒ迆PkTP.8Pߧs;k>ӊU3AH$RHYzʱ(-R.(V"m'crr(ǁr(ǁr( ; +endstream +endobj +589 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1142 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +590 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1143 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +591 0 obj +<< /BBox [ 0 0 8 50.729 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1144 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +592 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1145 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +593 0 obj +<< /BBox [ 0 0 353.156 62.329 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1147 0 R /Subtype /Form /Type /XObject /Length 186 >> +stream +x }jY;f^|}]<@BSADw\$}g1<%O%\ \pp)2#)c{_ɦ`~iRFSvG3y_ّfljmC9~De#ŜiY\걄pNs(S,<5z +endstream +endobj +594 0 obj +<< /BBox [ 0 0 353.156 62.329 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 1146 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥kaO +endstream +endobj +595 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1172 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +596 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1173 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +597 0 obj +<< /BBox [ 0 0 8 166.147 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1174 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +598 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1175 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +599 0 obj +<< /BBox [ 0 0 353.156 177.747 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1177 0 R /Subtype /Form /Type /XObject /Length 185 >> +stream +x > /Matrix [ 1 0 0 1 0 0 ] /Resources 1176 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥kaP0 +endstream +endobj +601 0 obj +<< /Type /ObjStm /Length 1564 /Filter /FlateDecode /N 92 /First 933 >> +stream +x[]sS7}E[3 3@C3Z،qh{v} 1Lk, Jj%85%)y*EKZH)rN +J>*glR }[Q0fYJ"jd.8‰\*%NrEr%oY;XIp,c#uY-9ɗmAީR~B +]BU)^䫔Eaj j HbQ;|d-Xu@TNt@Q +I$dJ,򂣔ն)U)lH :օDG)G# +_DKFle,ũ_"&g^=% +V^tB[5jdn%V(x +#S u= Bl bkjJ[ȶ0@$d n'!ĝVX:x^eY t4tƲwY/#:$if7S2&*=WmX)E1Ym6OS ,=ɓ_j +zݴgtީ=ir<_\ ir 3<@O:|V&c1gTĤh Wk|v|M~/^䱖-{HN՟U c&YS>}pvb/:Y>^ ېXdњ,I8ԐLF`r:{==I͛zֶ.>?æYDd,}-K"N1dRPɲ 5IvAv:]g M.L39=:ճ'j4{[kMlrs2͘"PQ~J /4<0 + +ͻ^c pspEOjKz@j|'uz6XB16ynzB rz1_Pg/i}iFP;i}Bj:_h13,^]囙4_/%67qpwo[j?\#I$Bg6>3Z8c8u}c n{ݸ7t74L +endstream +endobj +602 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1228 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +603 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1229 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +604 0 obj +<< /BBox [ 0 0 8 70.286 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1230 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +605 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1231 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +606 0 obj +<< /BBox [ 0 0 353.156 81.886 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1233 0 R /Subtype /Form /Type /XObject /Length 185 >> +stream +x;0 wq<ڽsPSAeD+vV'T81I CxV#]ӫn LDDH +k ~$ MNrBf7/e2ln5u}[ݧ.p /)NR]p?cISy.{ +endstream +endobj +607 0 obj +<< /BBox [ 0 0 353.156 81.886 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 1232 0 R /Subtype /Form /Type /XObject /Length 30 >> +stream +x+2T0B˥kiP? +endstream +endobj +608 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1257 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +609 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1258 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +610 0 obj +<< /BBox [ 0 0 8 175.122 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1259 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +611 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1260 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +612 0 obj +<< /BBox [ 0 0 353.156 186.722 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1262 0 R /Subtype /Form /Type /XObject /Length 186 >> +stream +x0</0nnyϰi׷txMJ(O;g`})g+ȶKszcg;;Œ`QUPϕ&%ivn** q귘/p'8-Kkc~B8_DjXN+"I|8 +endstream +endobj +613 0 obj +<< /BBox [ 0 0 353.156 186.722 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 1261 0 R /Subtype /Form /Type /XObject /Length 31 >> +stream +x+2T0B˥kh`U +endstream +endobj +614 0 obj +<< /Type /ObjStm /Length 1704 /Filter /FlateDecode /N 97 /First 985 >> +stream +x[Ks7W1hֻ +pL)Dž9P{]jY랝5,.bV``$_Zq)dq"x:b&ߵx]KԵD*ADkR*2i^EX코\),%OlR vJ))%␳2qbc+uJɑg'cDI:O>Z-I$.EUJ H!ȳŒ%)Z'cz(8@cV"ŐdN)(:\)(oĢ0$D)QR +pS*N5j>QUfVd:_싎ee,.'#.)"cXK +'%k[UJ( PP:_EjX"%2U TjƂmb > 3g-HB2j"bsǦU+ULM@ATc1bnɒb(ƌx<ԛAz<_NNOg»7?֏OӵŮpX+CIʛf5SXj &Oji&!=b Az#!HOs:_Gz0 +endstream +endobj +615 0 obj +<< /BBox [ 0 0 8 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1319 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +616 0 obj +<< /BBox [ 0 0 16 16 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1320 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +617 0 obj +<< /BBox [ 0 0 8 48.223 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1321 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +618 0 obj +<< /BBox [ 0 0 337.156 8 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1322 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +619 0 obj +<< /BBox [ 0 0 353.156 59.823 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1324 0 R /Subtype /Form /Type /XObject /Length 186 >> +stream +x0</ cw3,iym;MI A m30i]yc +1%=)zz+`QUU"?CIIyբaAț7zY:_[5\[M{p%8- 4FksvD8_pJT?U%.<{ +endstream +endobj +620 0 obj +<< /BBox [ 0 0 353.156 59.823 ] /Filter /FlateDecode /FormType 1 /Group << /CS /DeviceGray /S /Transparency >> /Matrix [ 1 0 0 1 0 0 ] /Resources 1323 0 R /Subtype /Form /Type /XObject /Length 31 >> +stream +x+2T0B˥khhU +endstream +endobj +621 0 obj +<< /Type /ObjStm /Length 5246 /Filter /FlateDecode /N 99 /First 1012 >> +stream +x\[sG~?bw+_R+˖֊O-2גP_=&)ڌhU aLO_h4g4&ߨF-HLdɪnr`L"j3s*eTIYhtH퉣(N;cl3])ۘ,8טd 8ߘ4XmXXgXџVƁ ihDlG5d.sи w#qKKܸeF5^sэ7Rfd1^\㣃,7>h&4A$xЉ&Xws\j 1A>$dBmͺ&Ѩh#z1 c_jb2_nb菔NZIdsI8KB2ߤd3Onw#qKM֊9r"ʁ"`sX*OJ+`yUiŬ%}kyРG$h-\L&?n)9ZSq[4ޔ٧†-=mђo6Z(>6riQ2n#-Mit6f4=#&Pr9;}鞏O/k~ݧ +ӣW6QD5Ѵjm{ڹT+*5/OG'dzaʠ<ʖۤB2ysK+2RHi~/ta7vMH +ޯL&8W@Q2QZm)D7:~<O>"/eU\R˧"`rq$.j0Ƨl'qii3S uw;:NFJɰ3SJv"OϦXRy|42/eӋ9`qM)~7{pbu\0뷡|zUϦLJ9Qs~!xNC^slbG#HK^Tf}u"<wX̌)J߂8 +Gy!)/l7ž/) +F/ +kJ|3'%;J|]'%;J|3'%9)u_%NJvddQ v`1i1.?7/ߩ-Đnlbi7dmk ՊIRGI9^x5S~"FtOC1NHS6\sDE uW]+An5$u ֯uDz{e#n1Iܒ#I&GIHy&̗;YjX( +K͓&@/Q/B {3>;띦LN{{) 3`ͲfLI6̣T/RpOOiMRHY|i/冝(%1WmB-Kz.;%}-o1nB,i 1d )cv`!.8zx +gf8 ')df5<9-# }gl +}M,DiĂ1+f-5+XMc:nq)(^-hl4"K7/ +Fl 6 :Ƣ!w`wwҏPWsf0ql/C .V&aYzAEa="CX #HF,FgjГiR^#2}23I +o?.5ZN@3Ԕن\/z3XJt?BXCW 5'hK2h<#$] + +=5"WMn\0 )M]Rtg\m v2coMw3]ŧ 4%?آƿ@joD3k?k ` ӫoB//(+Uhr6.>ɼw۪mݶ3mSou[ fCm59g2˅/oh zr24iP9h2EDhThXw$O3C E/I5u!sh`gmg9zhixP@;D>-"Ir&j{/2n BU g3cփy)r1oJ4[n/"Ek-؆rSZVZh+ҕrbW ' ۞JS}s`+4B¸ǹ x/Pji / hF}_´ƺ[\SƽF`]Qd= 4yEm +2TlW{&[=l%-ÿb ˦` |0a. %-IJ|tGj:ަʻO^N+mPg* BVe0=t-UԂ7>69򎙳2.nEiY/;9=Q{GOSAdQEel(V`&9+0cionԈɕl+QC-$1yzH$BVK㓃%d+Oz-2TX9[̀ohp +ѳWж/N$HA]y3B[[Q׋[^G'֎kkZpѯl TH5P)a3hZJj5 5a%+ +9s)lq]V)Pb7Q.Y`sGi&g~u<7N5 xg7דS]q[pq{Ϳ_JBIlL?ˣ&{T.!ߋG;1\Χ;**Þ "bȮC?^xX +&Wsb&4J| Wxt68;\\_uc'l|<>f)ȫWy7aw}1yO `2j~O Htqox2;>LON۩Kkav`NPRXnm}鿟N-z9o-g|iem +==ǬPlOO/UP#݇pg̚F^rAp1dȇPkD^Tm0p _jTk?pIܔP6r?քԠdng)o^IZVgʽ'3OG`WΪGGZuKZG1-%-w-o&?]^Ϻo,nz1Fߺ߮_M>tnv6wߧ .MuoX ^{O|o\+-2@oF=5&~K]3ԁeH&H 'U ᏿=}H + %b_|[@ +endstream +endobj +622 0 obj +<< /Filter /FlateDecode /Length1 726 /Length2 6297 /Length3 0 /Length 6890 >> +stream +xmveP[-n0 00 0<  Xp܂4$!qιܺU?ݫW^vW폙^n+xp;r!6} ˇ wvA@l`A du"F0gO(S̓!Ԥ![( 1UR)k!pxXà` Av@'$T4U2(@pS;M 5'//'@kop[g?˿'AnOlOl OlL ;;xCMgݞA@m0/'3dvOAݔ߶ ؓOƐ.Gbpdӵ8a>s,ȣlf]Vmp; eW̿+\䎀zy޿#䜽\>!@ @ p]m@!`ygDCFsdEbT%:kCy>csbh!ՙUދkɍuճ&P"ogt,>8OuUXiXzcX 8=ky)T`N5|>%-\ف$fx#6P +6)*B\LυZ=vL YZ(.;SX5n}Q~de߄ +nic;Au8i+Pm%QҷTm' Ffߕ#z7OVQy5_aWmnxHi -1.ۮCo2Pc1qeZUW=Y&s,y*CW'd,KVTW2zZ~:j8+ÄfQR /̎~c3 ×롇_{Y>QSm RY!Ϟ.+0W.xj-6sslM3?HDv^|Dc3yޜtd'j+9PYыAKb̛4orH!({Q?˲~s-\kVN Y{߱#9R E]p-%{a>"/f ,Q)X@V,P.zy/KAfR#"xA.LQq RuZf=!Kab~{oپϘz7 fZ?1f5'f6K/G"EYWβ#TssspIhl2.4# -|_G-,*<$E`gҎ="΋ZǙGF6=Iݤ*g#CĐ8WI"MKN0|y]rylAў|ܔ7T=@UlȈQ%ֽ]*PO]i@t's>Bޟ miQN)Q0VB_B74:Gjr&/kz:VՂ!WYdU noH08tm\ B[+sU$FHsOpn|a<C˃"M'胡!mHɹW'TgvopiKW Fv]4.)KA*ۓ}?T\ئkKvVQݨ!a_|l+oY{/odΘ[C/# r"uJpVλ6|aOqTއ-4q jj~sYe֫%BvخnǍ=Dw-p^EVr3 qdoBW3Ѣ(^TniUK|Oq2lH= GU!^>Hzď+wU)mѤ" Lk Y\OSWVF׊ ș:AS7:7b ) sdkRzaБlSoɌ:tR^6WrI5RW;R )f0m,j6d2ˈ༴(xT6F^= &[vsF9G#*J\!˟< +d/<\[&ZZ3Wc'jao'1Q7O6%e +X;ӵk1 fԟl}P:hEWH[eG %L4쓝 +G,P"6:w6[0iK//1 t걸})skEy;YR,x`Wd2Q5S>Ϭ| ;,nҿ;?1p9Pj[\]}|t'aƸq"!ު53iK5c#dḱ pWܨٕS^sM6 #kMqE\f\rS컄/)Ȁ8*EHoUP?  ZCW0~[a&PX?9v *yUsݴբ?*A="64w@{Ax W/..`1~c$0Z[] NGC։УVSZ_GȕE|2,S9)v \pr.0#ŒNDa-q<`xN?e} +qeN6'"i6& >ChM +8P*)eSؐ}dnAj^^ +Әt}w8oxUئSe@4.Af +tp+梪j6%%?Kp+i=>g+tf϶D0v繛Z4-K(Ci>vrnj'hkm~S +D~-~{y}nRRi>趑,ǭ3ʶƇ|'Iu{# +(8+J:?"9Ǵ^ + U+UoJ@`0<ܾLmSI>rgyi#x0 2i026Oxzhk.TzB*6J.(1]"Z'Y*<lyn!*YR8|LZ+Vx˕o[[i/2ɉ5#^7Ğ:QWD!ʑĥ#[|}x~j$0SfXDVm0COh!)(RC Ecŀn||W|zGHM_Kl8iТ=D첷qzS0H=,RٮM@בpI6c-l<GG3>2Qp~F(_+nJpJ}5VJӆw>VqPfEnM?{胆dž&7xp*QF\rl:5T|u9ցx$Z48.+;%vu@ a b'Gェ5vYɞ#R#JsO k˪x8S,9jȔАE~Zsi&[ܠ+ R,z yi4aCs„-1elhʇx81zx3UINfj<ƖÈEHͥo"]XD@ű9v%%%&ǔ,Z~e.sr[=tz +$*ҋrXbsU>a. 7cw|3xiVflo Z Q-BF2o?ҬW:$h2B|Wz  -c b Ewml5s8}TcN J2)ug`Zj:\ +JˆnE+./GgZLN*KǪɉGQNO~4%;}je_ ]j/';_䰘l&i ͻ1\4b]#ԭt".\y; Vј೴a+0_ /tpZC5 4LJ^#\ŗ-,'݁eUs}{儲xl5kTQеI(wL?,@/z=7 9&ԦL8l$1:uq:._w4IBpU=Ž(Yd%3pO %d|`,gw4a֋s7cCO_"統ν6O̎#'2DGetFU?pZ! Yi,x݈݉|":!;|7th/Q_o(7ainmuy <ʼnz.. 0>L,G US;?Gv[Phv)(*QJ@h4:LxӘF @+$q뺋trzOK>p> +stream +xmspf5vضm۶͉99v&ĶoU_Ww^vԡ ttpSv002$Xy8̌lpb.@7kGq7 /@ hP:XX,p1G'okK+7ͿA @ +!.Op,1%eE)@ +t1(Ỳ@ ?_\M1 G{:@BI] ``͕l뿺ϲ3e?QXp,,sk37)_8X88;7!ѐ`'Nswrẃ.5qooɐq3G cd*i4WvGo t7(ͭSG,O/^IK^NLGSﰄ%@AM\;lb/ +&n.^=fZ7KT˗蚹?4^@3eG30_? f5Y@W{P̍. +=gM^ܵ$&H ^Jɪ,T^ 4q!oݲBisdPX+:!QV<8HPe~!jQ‹L^v" C"\SYW;DsPYu? z Q}~y F7ϨClaYc)jW+T6\D@a6&&+9CRG-@qoKFCfv a S =Mœ5F8,p`}`c4yLL,5!/P0q `vz>n`3R1@/$Ԩl>60&&^FMr6{\62dMU?qMp~=)9u> *| cOrHD2x.ӿƐ E?O#p!Bnucb0Lσ2ŢRh@BDYE1s*9KGϹHyY +,jgHPElX!b MG_R~9 ׳CmƱy¦0 LhZg^tغC#x\VXe'0=86Jiˡok 40Xty2ަ 皦AoվD ڢ67gE<ˌ-r~pGSKk:!|0鳮y˦.5/; 3C6v72=tWF=H7G커w/qa5kg$HjpBшqꫲg;.8XCvFg7χ@PZM fߑˬ҆o}(c@ NװVUbP3ϼ]z˳1CZ3Sa'H kxڨN$ytznůP=j,>4}LhAMW *-(Hpa^ߏ heA{hN /v3sOyO/gt@Eح4$,AVHac\ ֠.7wO#1WC{FjXd#3s*_v.YPbk55Ξ^y^OY\2DBkC;⼪Fba\)'W;H߈Sìpc钴6D;vw|)_;XY{*o23qY5o520cJ<ΰ1,x)Yt#S@T1/Lzc|ξ,6Zaږc+Sp7fsGkD>"v HJ6:o&A|z.1yY8햝<܀G=ZPD9,5&^`UvǴfhU4Lbd?jFgE&fI\06r2d(}+Ɖӳ&[Y1$u^CV4T(Tu[RCXA[tO_seQp`]ӱJtoJl[ʵ 'WӋirpc!\Pt]!d^ruȢ@u>[|~D9S@A-2 ۩;SeXyIF+fK׳Scb2_+%6 T`&}xd~{9E\ٯbi{3!H•?*>29!. }T]t%XY!XQ;xPrv~ue?KA8دII7s2w -^4HJ3ovfdd-œ% *!5>#+̵{y Ή?PW9.ʤiS~FYI {+9Xq D$FoJLY֛b!,ᩩ=6g?3ƍxNzCpWW 1)DMйSOgvky>tJ N~7-n']c0Z=m+T;/ g%sUTsP[O!On`[S뉘54}29 $ůd%Y e\Rk*IھY|c; /vA?$F52O`a  +qHF7"VkyF"s–c|ޏ`WѢC{ʿH2"b{{@Y}5=g`([ע֥+ʑ"_ '"6UЋ!>~騅U:7ēE1Ѯͺ~#X_w Qd2LRV_Ź`[̯&Kr 4jB, ܧJPrx 5 %odDMI=ļ(NˁLFS1"NZNˊvR`_ >U9lh ʷB)70 pDEou̠%LyLiG'f\?. +myP~l_&.R ~tlBsv D<"OP:㈖ȿS5eQ*}%7>2lԞ cbe^)Pj·u7⩰= ;`|| +NϟDpWInHA1n6_+x75F`V|x]z) "ő8WT*gcLPqZd29 +t |kB {K:۩YM0qjt:3 gwtfP$J6 }lD)1/j Y=&;w,(бW8pz`A=$E>LΨOz)xߓ*kZm*2ZPk(3VecW78;d ?n4(gRVu= K#S?f.aA/^OON#'h5V0~|!w|/][ݡ@'Z0Kwbw*E8 +K1GpO8CTCVqoekp'Gx~+FLp&ugn r%DJC/?`5eLDoqMVu) Sn-&Iox(S-so*=X_qϻ +8G;dW 'I1pb +vr{Vz<:E07d޲/aW)ƀ(G +$d73ܩ`:Q!KVRH6=ה8톹ǡ)[ "zSIIΈbȖfT-?|cg n1pɝL/MeĈ@IhOxKܿHVDeoD,KW {K*ƮI +֯ky,03бg{9&#wճnq>4U| t>05haY_q -!juHcO&%jx&[{:tc 6Lb r+i+d$Nc`PyG.O=g7ci`P +6D؞~&TW}3U^O@<3u`#-qU= +SC׮9RE+U`IBoc|g+hCwr,\-/kEelbO|-#b>Js!<:4:֧݉ADg9@ +O> +91OqQNuI:YrߪT:I=@z}?V[<~5v7OKŵ.2 !X)Vz$Z8IU,bF [9;a\.s1*hڿ6=+ ޞ>\Sp :& y_K?6"W0|A$_s}|y+s̒˓Y0gF\YɕAs :7d($8wo +-w}7'=.h=1âqRu0yZ*ZNWZ,W9*a5wJS`j^8]~57e[sռ]CqK.N~k , ]TK7Wx(w̐#%]7I}P.4EQu +E5%ӼL!}/vyCX- ȄE̶P7FM6GdMS…́G8r Z*%HKu?,iۥs1,8f5,ٗ#'RQ,뛲kN' +=fw+O=MR/;ٜF#BBb1zK(꫞`'CF\-LVqfmKTޑ_ΖB&'TąF[p˗=gz^%PZSw +=}/J)ĢxrFCIr_2njo. za&vE.*Xr? ./tglS:%B$!eyנ "CdeX 2meSlCքDEh«>HzӀ7*xN=HɅZY*RJ]b:ܙl78%'Y=`ZD'nD͗+DF6/_#Rє}rpm" h0*{feMAI5^fCa8"`D[A۷^G`xK @%^`ù\AI՚0pUR%dDGjDpJ"]Ϋ"=?RFiK%s;̴ D\Ri'<4\A8oge[xsMS DKxN\߷e`#Tkl ӊD}=OnzFA 5 +zQ5谙 +4{Ix6@ erv1ECOrxDZ_gJBNYqFk\: Jv SKZ&[iȷ`INjE|@ 5ost"AA.\5+ +R}gmKb4jhjfG+n> 4ai'bCЯaB.TK]Qj:SaG7ӐjO,U)3>2G cDńMC TWJ%^3|iFC =5k)+2% ü|]=!]C!Fr` $Ez]*fGCUNjƼn+n΅+b%r8 r +=e"οۦctF+c)"DQQ06a Ts͋"tdΛ:{J Xೢ j#=nQǘ5J.V9 ggGi acvOlM6:zMMՇ39eVVr>c[}y}b;{ϨCΉ9R[ SAW/"󻳗EAŐBˁ;^<b:$%KόFPѲ䬯UjPT߶o}~Qw3 εU1cDYeu+UN l87ݬúqAA_g UYUE8coUdw0ڗw &O8v U+Xa߻tjϑі˛(sM5 ԈAk?6uF1*)C8Ƙio5ȝ豛dm0MHxhTd37%v?&V=~Y]qYod5˺s}&j|r%ԭWE 5;%=h + mEA|se⋰:6R#\MBě!9~S0>30jr>@|s]wܝ<<M(s6K:Քz6ܸda(%7ƶ_oԞ @+Pۦ5Rinz8@a4!LvNf.lh*&OZހ E͍Jw2y>vޟ0| !B/ ŒD=΢;VdI8 _vd6sl{1m+ 0z eJbJSaEr6BlTsD`1Y_W+p:T^lBg\U~]T:Jy4I6%dГ +zD4+ "Ug u abg. 4o:g]dͥ\aZxġߴK7Q^pM|G3&!ic{r\?! S2UeHYK;>`ܲN!rSP&aT4{D47|ǮBxñ8 H2ct?vBҦTB :y2 =نυ\R5Kb~o>Qڴ+Lw=q*}niW[ӷKU"=ַ㢽Jƕ5%VHnPB +F SRx Q߹l{['yTBg׬ 2\#Eo5i:}}?]\INiDmÁJP%cv1B68HJά,O ,~2z#bG'oɏ/xW u|!iSIGQc + +r/sOf^V'P9:RPWX9玾Aalf\u:s2c\GxR cgPʈGd}naX%' {d`REHaLND}G8ӵnkhar1vϢ\Y;{ +Q[j?yf&%LRm{#o+ +G*H^51IQ)-zj0Iʩl wR=`&"Y7!Dd1.~9z [Md#uYhȁ&^8M( +WY ~S󭤹b]\ .\>4}ӎ,tѧIo*YOwL۟ƚ]"á9w2?՜La>Jj-@pgYMjA9"+QaƯծ1H7QѲ^VR35p< iJfN!V49{~LG+p=Ȼ6Hw#X#L\~u$<'#.q54m*dNj*P'8ԿԱEL=O7cv#d.KRs'#|0-B&f.~~(-"P#+p{XG\"xIp M){Re]F*p>pG v&jR9_ir`42ri*f9M֡9 V~Uc0d%Y2ۨxQ AH8/Y+zbUN.Z~7m?Wl/cssDJ4K,!gpբIS=8Q3n[Pr>jMG-R`(7V,0l3䭃Jm]9ȍ s锊sp2w{cq-lwOK*օs]IJ +hFϨT>BDp؊E +_pSRgd4(?E*U\j^=`ܹhٰCĖZ9FuZ;8UbKKy—Mo׏sA mncyThoEX͟я#5_u_oJ|Ct %¡ʌՎv U#jr,!868ogPToKp4,6LJeN̺.d&/g 7*bbE M9T]bۏӬ5?/t-;_bs}P+2(cu-l)yALD_'.Fz+D"CCh=tXpv~! SGuLЉݲ~I/i[.JujJLYyjch r`#A2N[=i}%˟]b&{=~C£ϻ BDpw۷&vu mL^\BV 7c"1(+]wlG!ʻMXqq.~S$AWr Y/$2:֫o +VO #[ܑ= ŷR<xQ #T~SJl wnvüXr Q0rC*烆gNPCy>$z;-kEj ? kIFOPm1%7n'ZsNDsktq>c#uW~ ,/{#Jر@k,WF]cym=Ѓ-_#gp˳H]~Ї-};nqe;PuY z jj.l+Xa;XӀ @DEPu eC⧷OtGLB %i"7h"0DÔc>4?JʡT/tGrOEi)u7?DƳR,Pa3Q %T=jTs?1Ⓧ ||C}u%w1K/'Q4(!I`3ؽREyN){{m[| G:$/Qj塾r2^"QJۂ^hx3":j%`=gWJՊuA [^)LXbfuS|E$Ry"1&TA֏[By#g2PcK'[:tI?_Ue3a#GDtͨp<h?T!)5,?(gK(2Ǧ +$NY$/s&(FQ ӡWj棧=!;dP. `Rc&TILwjmKsr><UhT |IPAA _~H4EYSuWHpI^+j$GDWa i/0FǾWJ?gZZM?l&>qB#]p~/?CW2R!/-BvwV|~4_cmԁUl2Ŗ/8o/j`6YzW2tˣ6ld 1W, (,|fo7!bZd5OxQ- +;IӟNQIK<~Ѧg  +~?} +ŊmcζOHߏU +tZBh(l_Py-Xu+6`f0Ɇmx:[բXq@lx8A_}iָhu%2@3D"+`k+μy-!G _T>]""VDV? 2f^r +mg*ƥFk>6 5}7CLJBj[(+(d6 jT]iy!MGFQ'֡6z*Һ`++$>ռV9_\쵓 b!U8Hzje0[nq乹( +I~l( #?QYTb6we~ +r'x׋V:7kl_}3p+v.$WoߪNN7)jsEpg +Q\ӡM:y` * ۡKkm"PgY]@p > ZzԱ-i{4DM$y\{hYZ].S<(keOl4)HahƐ{\Kkq4`Ψ%H\I ({_>=38z +(}k;p&iI8m1)&TKZ[_@0 ބ>GәB$Fr;s}0&拇/i$ Nt+#]&%{,rmjgܙ8*"j03&QpCcOwN*lj?_䧙 *LTM + +y#[Ű+{AW/FOs0:~nbp2p$/kjuUzWu2|M +2zY*:kvX*ڡW,G{y|W& %@XmuXUо$+=0oYFH}[>8A}qgzI9,bd +ihGrtg>r^U8v(Sq޼yrzq򆭦ASLtׂnpOG^/`J[%S?|^Zɚ{?a>nW HiQ3#T7Z 'x/)!ѧ:_:0͛t>>bDaݤC;Ӵ[az &@ +gO87\1 ʽ]M5~AiRyZse/ħR=G0+> +stream +xmePݲqw $w,Cp Ipww 6ȗSWݵVW=)e]5,l  v..6 'Ǐ`,`G;#@@gNOm YY;lܭͭBb.n,n",4``am H+d`{3ffkmP6ۻ yraǀ;1 g;&@ZUSۻU]\5-V=@3= +뿸[8x9א_  _2 tsts;@`g{/gkHvֶ^_(]a['j/:?df~_(`o?W Yԥ@ ׿@Π&)B1Y l 0`c׎Od* Ofv>^3' 욻9;]w&0l`.j3_pqjTqzqۺ +d{F|IF6d&y!D +F4Z ~,.Ti|Mdg wu嚱0ƕs\T*-kk=ai^ވ'S X5eVpn& vĪ,q7B2i͈X|p!*ގ:*'ƜeE#᪶"*:2!_;A(\$]3WEϢx$7VHH 7 t"(PJMgQ2ü)'E4)~'eNmCx!Y\ _ NHq9jkI\o`܏",*0BS4HeJ! lNsv{hPp=94~G3D\pGb!Phݶ +Vv2tw?2t!SVx9ť7ŜlEJ`"65=f0\ցA TܘDTs`Fy`=i|${ʠnxjNWheo̳ e&P!7^G~-bA{i="g +TlOX+S${D@ ;N )"~2 ǻ1cd!Dm26+ɍesƌsTY&&:"O ]tJRJtW|(9e^_I|}|Miaa̟ %ney&1QIլpĤXcS\Sn+(i0,Y5ps\L|s@Sf.c}Bwuj>@wѦBLZB׎ucuxN.ޖF(%iR!6Ue2AmAdVS +p.b|;$)/I}Tl i[$`(aGVͮbw0 -45"pW?ҊGSSm`&#XIp M/hVª1sp)$/gL j* ,oqlnk}!$Q1I@Ml=:* ◾/$&ԉT\+3k6aG75!GeaܞXkQ̷fЫ6, 9ӆgBI{;,C`Dt-$a~;͔㰁$ݸk'9"1XHSb~ ƒE=H-LAR}"IS-77LS67%tL}]qx;tSqmjYs"-Mկo'[9ң%%GN}E^Nrj4/xG> ?$I L;!:'nA3V\0&|::b敞 +[ӜA1X2=˰)`v^}oZgִdFO~ߗ薳1_P{ž"(xY 1|hxPĊe 9} DdE8ߙ0sqY_pF +ʾ'A 8Ɋ-,TKNY$\nWQ}~Va4c<7imc}W;3(Efx&hTDxϵBM(2S|RqE_iL'.6'Iv*~b|msqt>%y_/ƪJ&b}YQ㯜6MGP⅙pk`xy6P Z*mbaiIe1ysZ#[Q`%=z/A<(]k&Xc=9>9!ŢN#10DzXg-.@_ƄRq VCN|+d})Ǯ0~%4"g9I_%"^f:>-uS'hai:E%h*jyD!mhw?HBe6i;UATΞɴBTPi4uf#.~d[4Qe-9CA 2c&HQ3 x_nTZCt|I?' .IÜyayMo e +O78^ _F|0TdM~1XOUB)k +Ym˅1 /LJՋtcD -9l`{m!}FVaǨnȷ$od)_qy~FdelS)bADw M2V Re|%6^+h],p~wf2??9r.Ӳcy\}KhJ剐4e>3:c;7rt0uV)kF sibOn14 Y66Xq`߶l "܀:\ׂ72L*Z;=?K( vY}СGL-wh'=+^ ȈU9/JsfoJ(,ӯfFlF1 vӄ:o+ TWߦS7DU^X +M؃q U5(INvyJ,,Ug"&FDP#؛# &NV}Նcd?Ba U(VHQ7>r[-7irfch𑿎\Q(~Yw~74t]b(5Ci TUwXq>R!+7``ƄRM|"N[^*VU n(H]o4d7z\(^ŵ`}Ưɔ{9TtP|M?j`m\G eyPaL-|j;g!'ݶp +{'`=]\\~NCǟA<9],BwcnXGJrZgNKw.SW8 jU [qrM6}A[I2ʃ xYB21.&#89;mUs !M4PL[d6*dy '2&*Bt5y@̼^T=>Su2OMy_RX(Eu`'5,iQLz(wX8Rg).=2~A] 3B.?vb24cG(PDBr_NwCfJTkw GO8pA?!{i"_H?=Vp#L k_&+6fFf\H04ZST{+HZ2;_afOY$vxhBՖJeNk +,oc99QΏogD6)] SD$)W}e@P>gK9z[ڲQc^(>cf *SA1ђY4? +jb!d3/oGNE`(xt-êٓ!즐ݷ-7"iWÎDq h+а" .$؇aSKH$@U$Օ<.)dkq.j[!Å@U)EjQدT,rUKD/RǒD2̐i-w Ip-;#2uj-wrN$sL̋'o7Ú[=+s_Rzego>X!/hʭ{cKZ B1NJhg7~p4Omd|\DpyHX/) (?'UjŘff٩&ET _a: _]:ZT-x +fX3N(5y,UҢC;/i?ٱWis9k PR%4R@snt'hH@k<Țm\ ҬF<(Pz0_*(eˎj!ctlwL8豪Nuq5(+l}rʗ$Q؆#I?'$ȾQijM-o8G{p_ FPSc#hh߷a>³O梯hObv-RPu>0S8{O\[sI_dΣy;J>Wg}Pi2ò)WH|p2[_i4t:/eb^rh8bnN14G1 Y2BX=x7#и)YNP%y:7 +JGw~NlڮNj5_ +?u|QݥwJ8n$hY ^/-GԟObf4>90o!ew~V{*'Ixp%w05vqaq?iAZx0JVpPHp5PGFr j+oa\+Ll-kB^8OfF{)V3-lSP +RRW䯺gZ LWPRʳݲcu|(M$ƀQ?2Ȗ@ȴXd↾gAhcrG?+&zx0(X6.j/*NFܾfJtt_کG38GsPwYke&3  +;e"8ئfzSǦUEj Nu&X⎡'BѩTL /(Ն젯V8imI  `h@g|u:>g6^i}ZµOt[H1"¼M6n_4.NHg=@2оl!I|='QGe-kZ/TϞhogjrξciTO,ҭ\i> z*3;F}zUJY,r)% +(9 oX2XIH4 +`] Vǩۖ{bk%x f;{dZ6}ւbeTP 5Z,|R%wv˥LaO)bK_iDo0;.0@!2;ZڟesNI݉  5 +Ue~uE)]2Fv%Y_uQwJ-J"Zҵ^7k y{+u?2֬<[neeP6˔`GfWȕM3B|#\4g$,c7C<л-^jL +"`C E%BNnݠ=Rx?+]z QUA{[/\xŸjvn$}s1 +C߷RD0ګB‡UR}]4w3z%~mhɶ\V'@q&c$0lh1^;/\-ZvQk. 61 bȔ}B5AZqMLVZ!ݰjثr-קBtdŖR +M9q$ د!]?~4V5]f8rUS~gUDvÀ6 ?Y26R0|=j?f!9.AK8V9فï0՝\n[|,.,确CdnUC)ҫPozch=]0L\XZZceсZA̮D +}s +#ɲ>yL` `v= -[]G/f +/3v' 眯3⮆/E:6z+ǩ|Q;F?kIBDIkD;7k ' fYyG=e)5xif3_rW3kL:ط vl?@)*9* o=oup +endstream +endobj +625 0 obj +<< /Filter /FlateDecode /Length1 738 /Length2 18074 /Length3 0 /Length 18615 >> +stream +xlsp.Olm۞ض'v&'m'Ll۶mW?j]}껺WK]T=̘x**LLL&VXrrQ'3#+{@b`f011ÒD<,,]T&VmL쬜nV&>777!7gW'WT.fs+[3$JR^ i4s2(Z~ZͨN &@Sarf7?̝r +qQFUQSp3?f&忒%J:yGbefZ,MhnLrfxٙD\]̜rfN@F"q3Yz_iZC&TVVfV.ondkkg?Ħ@[y;+fqFNU۬hdr(S^73rq01^DD=Yfn6N7 g.3wey.ٛ[T@L.1.Ov]X X\ީL\lK5řOD-VXl)և_AؙC\Gܺ*Le8H2GB"oů?%(Q3hg,C +_vWvq , ´f$5XdC!|T"PKGNT0-$:Vf-T'=8r9?h <:,$6_r'9=,3@V T;KzI$Wv7:;GKL%aPWu0)`USZ.C# ub"ţqB{5$#6#${ ̉QC^U/RLKC@*6$BBє +:jYLh3: Z{h!Ӎj&D$ w@ >SV1|d9ҶUSͯj4=L;_Knwˁk'WlDmH%YAr|wD5S9q \t>Oï17e͢¹m$݌ T 5qNĤ(N_Q `w0 |ZBBѸyh<0'^ E?MVy"z|d)XT2F_=ć&vپhGԋv`!=\mZm2>v dc>MJ6v_ے.D VPY~U&?4a,wa!=HXakTgCAnOS +i^a4%@PawnTQ" WmhX٫ ą]D֑҃J6[zjt9Sy"B/ uu ;XXJ\H{>n=pCtHMs9Bc~XSxo +gΞ)tCp`!;KZo?buV, bE jm߆ sPV$F!Go6S .ƓXD{ozZr4d\|} 6zCærHM;) B.1 \a1(T`a}߁^[4I9FUGmSOO"2#rl^ƕqH?G[[A4)/44)%KkT62%oqo;\ ;tSƟZnB?=-V rjiʁrߐghΥ736+5)*i3&c:?T+!ϱSm~ioǙr s\l3"9AbS.rMW^,r';cyY>N<4tYʺdJ׏5%@7En̳],gHU^tqF7{pL6,IdsCO2z{uexc Mb =نIGԽPclf2x•ZۡKh*B&ivɨO2AvZ"z%v25|$7}xFsZKa$/0W-dc6py D ϧBWǺ5%ۈŁ5H/{ 0zٿx}K/^_y127'顳/IP|1tǔ2AT0UJ`bikοV;`MyjAO 6AK39y6&,[%o+~^qG?xOt|OD/D"xlhD/2=$] ߽OꀒN|!">5KK1cAVq`JGISV$b6hQ'PEY!{Չte •Ս:֛`v(i2˱N[R+ R焬!㒽gy%'N{ -sm +F1*Ǹt<ޗsEA`F'dlzJOҪ ~sDfSq㈏6]v) +j5gIj6D"k!"q5Q>JEhRC/}$F^29Cd(pܴ/zup^W +|s*@c?0[]A[zpW378o?@{k~7l52.08˖S3;\΁Xᠶ`KuF91(hlR9XkEOwGxR Cd[KN.5c)2H(5bO,{_[<%xĪP{EE!<sLh-x31!.ozqOCd6k%4;wm N[ɾ2A₷@?3tȚc#GjZ'jSLKd.FSDyl/Z/GVaQ+4&0,\vKXX ϝ>~UՑc? Ce͙lrv3ҋ]1XE}[Εj'E7alQ>T=e;!F"(ܓװMYÌ147`)}4Bx5ѦbI+'TOܹ9:`r1ًpa +Z(4~.xW^H~dߘE?B݈.^|Y`I5YTA^~ujN(XSVD٣eD}A%Kre'/3VS&#b1 >d٥&JfjBlO|-/%ĺۀ /[51K㻗 LKWfٸ̿1xr>Y$A67mI΄Z>[iz5X,Y>ZYVhIۂ8tkMZWK\9&+i.0z_l8YRߧ CaI0NzKp"cO/R:ZPV*1EdlD뉳ߓ[ $xamry?F*9:^>,kɕ͔)Ґy +Il~1)_s}?=ǹ$tB4 aA޸01]+A Zڅ7L + 5R*}vݵKHI4+NgwTd0" Yn,f_9ǰ|+ ;s;#T7Ez= V1 == +W}rٶϯ:ƚ`aͮؕƒj +n!;EĢ;"1P&֯]کrH'Bvhkwп FBvZб 0iA3 4s!2WܖX߂T0^11j`F#C(vRտF6{Cڧx*M#w7kL8 皇2,w*ggゾ޻p.̾}}P\YTٶfJeu:zG/DiJAe꤁g*lz_m'qE97)gV/2EixJErgf{ԕ.Pgb 1si̅S Ep(Efsb5ߑ\8ZZYiO< -&נ%z1ɏu_?ҮH? l/r<:< S YTK1d&"}`u]Dmm>/尳7h=JOi׎VX/O=ӱ[EmRNS+m$5 qrhA8Y`KPaEˬ(3A[E@ݎũEsQD''Υ}buU$*XhvE7!I1j>GͲi 2&Uףvm%+" 9ơjRr`:z-S/B5L{?upLj#kx>ECsq@MT ͞.*]i^?q Ȃ~JzEL/ i7aeu[.lD~ RMihJ2c{ȧnI>0 YFkUc)A|ɳpf% +u5%`ćvx[DVB9DHbLn3HvtRr/ z]FCV}j25*_6gx?g](A +%rg_@IW9U}dɂpH»^+H?Nҷmy*jBFbS^0[̻LP*_'+ cr9Vxҷ5x@T{!~~܇ۂ5q?\jyRy:hQu*V% ћ}b`+,Mer_XMI&'F=bPΣt7Įǖ$}FmJ{Ty8/eh`)),ӅQ3eBj.vu$AQk UUlzB_/N 3b!Bck#uDwh^pCkJHn;JE<ށt,Eݴen3H@8vK6u ~EizGgM;E1(TM<cl+++(np4e'~fR`@)?S+P[ AT:/ *ES\hM)=s8"#*T5hN}f)%&B1&,B`/dI3_yzƨ)SJQ;ol QZoSUBOm#؎)Q[=L$uˇܓv_3S+=2mdՀ>3)1`.OlᇉMI%6GǕ.:K^G4T7Jҷ1~)frAXLy2G9KBxrJ~?blns>sݑ: k*= btBi04|کyrJG7Й*fC=[JPoqP?QrY˗R]x[(;O),A&>wo +EH^kDIan-rX8܏ĵU\/Ǜ{/JjҸ-XB錠\0+4YUu S 'zz3gU֩pbpm޹~)~mYHCЫd z(x]MEB +P[ζmzt-CKJJӘ} *N/RgIDgh)K aj\O`siAeMvKuцz?+>{p/::t5qEoڥF(K_ |TDv^@^|V Xg[.9ĜDŽaX:[yU]9r ,wb?b2PqBr)aK9,KV#33'?j)[L2cI?(ͭOv C71bӤJ>xL eowv=5ӑZ ̕ ta]FgL*|̃.?hع1B AƋrKJ Ud(gH22EUڊn{t?!$j#cQ1@0d?\N@@{WV}ډDgQEY4- b?Ѷ:b8\yj#$%MFwM00~ia[SU?e%o_0\>rb/H.:8҉,11G+?Sv62ahy'i?=Lb)b7>d,SFF4(6X,G瓛PYY~cXG`'Mm]KIH!9ܜ! &0aWeyx +kВ?5e`0fv܉替Nn0ZLlC5/\ZrWg'"?v `Cr=Ø=ciC_FK06 &柷?aHJ!K͊~Q{tGL sB@3<;dL*e܁W~iKQeͦFl(mtsM?4's|aEEZiR$֚ э@9R(n[?LTpW#EȸV|hsk|4Zuӆ;1ֽݥAeShD % +Ӳ8Dyn(hնjkR*j{Z?U~%@O!a|}GmŁ;  t;fMoz˘6vu:#]amZGD i~c/US0lX(V+idPwwX95)~z>_k  mhgkYaɓ +r=5qq2WJ Tav+_ӽpQGQհՈ^v \7ReR1 ޒ*N8z *_Ź2m*?}TKZV';ps$hpz}XQA\+BviA>58dIe1>}:8!"GbPychUn>S*j*q\l^874)cm+p/y TEL.P>_BҊrxuƀW='UYP+8ke[ RI=pA6.AD߅on;f_B^ pδ{r 7qΟ2>rl-N(b+||c+3VKI컐`NbҴBp=d +e(֭#Vrn!UN}н]}0Kx(N5m}"T"P L-&n9[@>LCϨ&s3hJ}BT]NH7;]Rc N+W#blF`d$G~GiPeDVXpȽE[^W# +َ>ۄK(mqh4l}ԷH'?D,!nS-M%%` +5tÎ_Z>QZl~ELI9]LL"c~PtJ]u_^܍k}ItƓ2bCkQ|%ρ.w^-)AiLYS`YaԊ]1?u$kenYH/\~v>M_oZ*;}GWwye4} +ABm{eLM֌n]؜_r'=GhZEV +z`fNw|M `4M"jl/|4Z5g +QDž,v!\$%ر"\ ܁6yX ʂ4q0C8o!Au 5,j݇ǡT ?0y:~< mWx:XFj3&a[qrOO{\jHuv㪝Z9~YTTI1~zj;%Ā+Ȗ$iϽt4S-䢀УE ʣX4]¾j!vή\Ҧ:^I\#Ygp'JTȩ~F">ב`FX"Vņ }̺)lչ~6}C{ؒ bDZ[jcl eU:ez9F*vib%n尬h`0=dԎȇlPv/8T##؟ģcƇ0a1;A3޿zggNa:* +"*ȷC;ߪl7fk ++A 3҆>DToQIjUhO9Y !+Sc>n|lkeBF912?1K}Qlat*r"okLEu43!TP.S*eɜqxH BD+t — +9M#s^zmXʢneF4?caQW\|%/9Z~pЎcrEDV&+ñ6'!.?l{,\v?T2>_90KlǬ=* [6g4 t͚`kwo[Pu 疶.!-cK(}L>auu{r#hNj%ۈޏn21ݽ$f>DNR6bE՞n Y NϴN%B`6D4m f>~͒ _,N]kG3e''vʽbhsGjJ~}1m|Vܶ"s8 ؊{eĽ%iY; 욾ApFh +։f`$zD;Q@NV)LZϓa?wߏu%f98R +^,vQS{ `29@PW +/+":v*SܥrWk_GXU +Si\S?S* doU[VFS')8X@x:]|u$6V ĉ$3j7*IDZ(fr@ d% 뀹]Yshb~]R_Ԋ~ =Ht4"vu%UVl|Q02{]F]Q0/@Bmg8_=y)E[nj@_ɈHXo~ ͜fOZ;\ JXDj1jd@e: 8IvVj(PپF'wΩ<_ygװ +fqJ~ +R\pEQoT]"S x̥˶~:ҝˍ1¬jJ&8sQ\a0d͸DMpcQ~6O8Xl3 Ҥy<o5:O.E^x; /0KMs$U!h۾ \tƟ<@"@io37$P|rD|" V [巤?|f(Rdވzi-'-a#Kc$ >FΒ-C͌Vge{1y&Ι‡Y8rJ.:uὌ^覐.EpxԔ77tE9ClKA ="ȳuߍ o(.I޴eXðK(mtjmp3\ +PނZŨ-m{#(T׾#S1ly)'6 D"uA,q Wo5^ xB)ᎠΏY=$|~\߽ҤObWrmű MkXz}Rj);}"Y)ȸ;{YsF5D B%uHAb(ha@!8mGt}]xh0iGhə[xYR-9;gms>~CwSY6HE }JmE Sil8ToRע5Ex.lR~g `k_JG#q@E9)Kuw_Kbr'&T"m?[wa*D1Yui k4[oO~Ċ>YgC[ȯXC[F7R!+//<^_3 +w+e¿mywT-;O  +:xS W\ZJZJû$x O2,u`7̶+'⡩kf>6Yt|p)9VbB217F^-AD]J,c4jx'@=h]]7R/BC4AŇ~ G4N sTo=D]i\zȽdZ0i(U9A%r^-M`DNƢ_zBs HD !{PU];wau$ r4^eTu!j ^TK#juFO1:nU?,9wD7~,_{:5gj#G,kVaC8Y?l[`02okŏ2 +iHEI4 CSxgDEG(6%  E%X z<@m7N QPiN?͍a.=gD p@i~]Ox@M5rN >cѱ 嵛ӀrM)^f(pJtWDzS mvҞ+m u+qF;C3f,Sjg uj" #3&p v$pwK:Н3T-|F? K!cLL҇´7kI{ x̣k YZd06ihά޾DQuFI26j(]]8_!6 Wk*,RUy+kbxκ8s0^|9?.ݟj&nڬ_T4_r^x-j9gWV ƅ\8O; =ԱD43.H]ó} KJ:A%C7NeB%ȸDN"7d U)%ف'@&xNQ,]Chܼ`Ux'~Mx]1Ю@R|6xZS6OEzF->Ttaryw2` X +P a0(&(o -U `R.3IJT}~4ޘms4魝'?j̡yș詢%XQR;&KQײho9@fæ٨ 51n,y;Dy (Ivu.~3LM?ɳ]XZ5es:g!`b4)a ,*oԄ]uh-CY?Y`PjO[]뎞ǰgj?/LȰGhoUI1BlߍLv> $hP!ݼ*\$z.p@P4{9BO +O˙7?&}+f]sM9K,$ +endstream +endobj +626 0 obj +<< /Filter /FlateDecode /Length 866 >> +stream +x}Un0CƆ"Rjn"Hg,Oil9DО?yvQ>n~w +۾}=uT]A:vzg4Rv@”lJQ~vC̵:}W {46Esg]ߍP=CodbڣCH~|~ohT097{ΏE]~&0OëJu~_~l^Ϳv*ai_|zM|7gNyޞMx:)V 0) 0Z6 * @`TXGSj0ԄENiPAJSq)M,ߛQ, +PXʀ5L 8,Scsnl9Ns`q8K^8KFMp.5sh@kO Op,Ãq1/]//w": f~r Ȓ&Xa ml6r` Z0 bKl+֌>oR 0΂X`)=Tz +֟Q.{s3uL(u&: XC/N|FN|NgXˉؗN|ƺN|N|&ޝ N|N'>w'>7'>S} uKR|)W|FL|OrRG/}XTG5?)Nkx$syn䄢 G5.=c&&s'a8 -FwMl_ +endstream +endobj +627 0 obj +<< /Filter /FlateDecode /Length 866 >> +stream +x}UMo0+J! ᫊"Rjn"H73W3nj24nV~ߝo.Gם8׺v7[wVt'oҺ9p/u5s8dz8/'7ft8z,gS +tx;en>ڲ?185];B U{h2ws!y6q`TG?97{ E]&AjZu/?vG_t|z;9ذƦox5nu/.XjR˺^k3<'su_U4H6!L@@B@q\s *Tg ]i/nTvc-+>c_ZZ~Z83z3[:ޭ ߬Lg3t3-g B|B|\3gg|2?z)BXIAup*^+&#sU-'H8qɼe5A78{N Y-7]] +endstream +endobj +628 0 obj +<< /Filter /FlateDecode /Length 867 >> +stream +x}UMo0+J! ᫊"Rjn"H73W3nj24nV~ߝo.Gם8׺v7[wVt'oҺ9p/u5s8BϚl0;F_RM)* Zk`.|?t +3&T9ˈ;xvMRxHM0Z7u@O^NW1Jj;THcui׸a׽`J-zoD򼟸kյ:W ل0%1 " 0Z{q́0R0r0Qbkx,+0*NXSk0j9F)u\c?/߻A,PXL#L X,cW c rn +q9pZ.qJ{&\ k(AIcL_S_S/w": f~R (#c^g!ch"ƨ-kC^d cRɸh Z0 9+ãbLcOd5cYus~C9돡'g ?%>O:ShYgoΈrYgDЏ>[bghX|&}igkgig݊og3z3|3ߊYX/g z +rg^@X"R jb&'x>T#<8d0UPt"%~4aDt?t:'dCtbt_xd +endstream +endobj +629 0 obj +<< /Filter /FlateDecode /Length 867 >> +stream +x}UMo0+J! ᫊"RVMk +N7R$߯@77c_|{l?YtգиY}{ ..9\wsu4;ިo6.۟(XG]>3׌u9 iy| #:##0)%V +55)FњSjR@J]!5w+>7+>S} u B|)W|FL| ,B/^ +&+jRP׊C8ƒI\U E'j\2wAsMMD>N}/cD=tM-Fuӥn +endstream +endobj +630 0 obj +<< /Type /ObjStm /Length 3064 /Filter /FlateDecode /N 74 /First 740 >> +stream +xZ[S9~_In-jjNVӀ fl$Im6yO$I#IA4%&\I"b, lA8`DIl9L@*W p8GM?M%ankae.Sf5#I#N8G`Kp$qo(µroiq({,`Ƒ%B0|DHO#%8Zj0EXk0 F>JP3+ʽ @q R85z΀1qN$*!P3Td((T2hR*RWv@1K.(V(IbXZ:/p +MtHShJɂ\וز8JuE$|.8C+2th!W(@WAC0އ˜a +CJ, 't"‡x:U O +[?Gn  6RcYe2)] +upiR4ȎWj eAe]cT +Ig +cbB(i9WSx|ھz? ;'seQZ)P(@mв WЃ;{ُ}{o͔N)O^^PV>cpd*&NHV^S7TCz q\ϝkn!S_Ya؇A}}p2 ʾ6TZynBk>dCEog.\An~DEk뀪lwΎ/U Nmq87::ŗ&ٚmNg$uӍG#DyR&Ӯ{*h1_N¦{̗&^Wvtɡs^tJ[7;)ڹ|AwI=ٻe ZO 6bn0B`,lfp(Qt4Ǔ Wy)LZƳͤXk>Bi<5l ?y6J `n!ȩg}T Ns"}nnN?pw K-5 Zԭ$go1G0L4z2 !Pw۸ID)=`w:^*pc@4rEoӿsz7b܇F ]ȤO -,m#BY}_"4;BBfȫI`{Y>Elc̅sj.~|]G! =w!GV[eolFMVQ aK-Khr|?OWU_1HycM"Fq: `q|dB+A.̀q딣q5ɑQq 1#x25zy 1C ư$dJR[I-LH1IVŹ)?ư 1ܴ*Nm'ObDž + WWeVBXWN+%Z`sTpm0 ٷov)2~L^am:q? аL&،'!DQS0YP!X`X͈ī5A֬4T̴*qVڿz@!X}8/p߶pxG~;>ow.+T85;;6b\7@ᬾ47&O4&X "7P Brۿ7!4&rċ;bD3ՈE YlCeN/$p.[+X,gBqP6VȊ264YI!ZX^,@V֙PQZR|D,?$9 }l%(#,1$I2EXY #tҏikMK?U۲)tWAjoy %e#X>6ufy p$زlV[ڙꧬM +hHD"׆¯(u \aMOZWtF6FGڮԻ/rE5l*~JħZ.M3\\\ۈu IY5`"mk %H'D覙 ~lQق K +lۮ&~*w&\]wu<p\˷n +r&7IY$MhgaTQ>Y\w8.&cK: 㖬I/Fɖ"ĻuBR!lnUW5ztQfu P +endstream +endobj +631 0 obj +<< /Type /ObjStm /Length 1992 /Filter /FlateDecode /N 97 /First 975 >> +stream +xZKsW1 =U*UYRRJK\Ɉ)Eu. CbvPtq,qT-9g)yx#kTE +VVqӯK`jpN%WĹZ +Pb(ZD)J"%%J!jL)uR*R d+IXp:G*%(ɋ)=Gb% D/Y4%*9)1D2^KaPDCY"H%푨L5J$ujOjbkIYU&mP(kQ(6q/׾>9fQGk!( + ս\(E'x[+$=bDU5xz>@^U@/i +e(.zWKLfrh/=+W׫Js^~ϿxY6ͬy+ཀ 8k^h/e\'>ݠE$qI$nKki߲;46Mh̻4ָ4 .֫wJ qQ)^9[^{z$;nI|V6ύjr/Ncaz\^4urDyo^+bX)3BuCpM79"ƽVB۫K&o_aU8|?.{.s5Lշv e|Q}wrU|ֽ{B%LBTXHJk,%g V;Z]]wazs'g׋By^NOK)G¢˲>$1[^t|R)7J]`U6íT> W"`I- 1p5\**gFkX=]{CBj9덓G#dRO"7[gb^0 6) yB∣g(U"$2,Af!탿Vc}?/˿-iP`k?:ǧҨ^ `wlSDe;? +XlfR4uτȡkBjt8#1f$?zbsoX*?bbd(Y[wqx i3:+<L=oͧ~Ot?':Ddrl䛯X +? a|tH'h5=o3QwȺ"QizvMwDcQ5ͽړ{býF%wjܨiߜn=ɼd^3qv2ut28;ךO Zd^k@5g Zd^k:ke@5C:טN'2D> /Type /Page >> +endobj +2 0 obj +<< /Filter /FlateDecode /Length 1474 >> +stream +xZKo8WV7h qrkz0'5`'`3Hf(8 LtFp|B`JaIҲńݝ]nL:x䒥?8f7ZϚIeHs)X40\+'0ABHR7)<6@.')SIda(W2 ͚K5 +ej.A!x6GiDe +)w ,o<=10>$Jb7CRMY/х~myp*PĶ$;1IGg 4݂FB(h:4O[!癐s?#6ĜRT+a#:=7930WN&}Tw|N>'܋:Yh'Km)X%2;pמez/{ށ6++pxTUn]$ ,5tA@̙8,@jʔVJ ڪ< x)[sV2.M}J-\0hh֑ŊL)ffُ"wQڪ] Å؏ ++T}ڸPгH1qiw l%tk4²/-uβvFkR 6>B .SB,x+"[qN d۫mG| +FOKkzaG {"s4BvQ~>Yt+m%5hf R]߲of ~p{t;~|^,Ͽ_=u1WXCPS! i\hߎ:Ӣ_txZbLIu%m+0f p}OR.3E?ρxvY,I+2;*%QE׮J,.Mh(miŮ{xiO6E$'kd^ͮoudw·b7qhZU00Q擇Ѯ`p;I~<9@Hrw`&8Aٽ<1(`l;&8 7>FC* 1xKyNkd€LpZ*7eĭvj{(@Wd:ML;tec/_;W6RĔVvUs]gecl}(>m|o>Ⲙ~ꕿ:ߺnh'4]>d6,1(`V%eMnXzz!tS&-gTstsbr0>hЁ@5@Tc KL9 +UiZS Wդ- Q`ܣ6NE}KR,E:Ј x +[2JpE g|!?O%IGxǒ6OY;F0- +YsBH]εn8S"AT`ٽzf6$CaI +qI !i nA/ cl_#]? +endstream +endobj +3 0 obj +<< /Annots [ 1635 0 R 1636 0 R 1637 0 R 1638 0 R 1639 0 R 1640 0 R 1641 0 R 1642 0 R 1643 0 R 1644 0 R 1645 0 R 1646 0 R 1647 0 R 1648 0 R 1649 0 R 1650 0 R 1651 0 R 1652 0 R 1653 0 R 1654 0 R 1631 0 R 1633 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R ] /Contents 4 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1495 0 R /Resources 644 0 R /Trans << /S /R >> /Type /Page >> +endobj +4 0 obj +<< /Filter /FlateDecode /Length 1511 >> +stream +xZKo9 WVU[}4z85{075`'b4cv6 $@F3ɏJ`Lg3RSVr Nr-&ƤG.YwlqڏJj6|SxQ4L*Aɵlsw۠-f kK ]6s&)FK"e]<1^he +% pS'p%`  .4㲊L)"6LEN5U ,VaԕqebX8ƹA,+Kqie_~W|KM פl|\eM?/ء1Bv 7^ l6]SܥkOڃmT4<1SԐ=IO9Z'+@'@@ N.7,3WUE~ MHq=lR`sbr0>h + +}RXn!L% +UqST@%pctz%}1=7-Iّx$)~*/BKù/26~Byxq޲{i4 ;O_7$CaI +1ѤY 4 0>>ya}˲ +endstream +endobj +5 0 obj +<< /Annots [ 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 673 0 R ] /Contents 6 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1495 0 R /Resources 674 0 R /Trans << /S /R >> /Type /Page >> +endobj +6 0 obj +<< /Filter /FlateDecode /Length 1512 >> +stream +xZKo9 WVU[}z8{05`;b434 D#E +Ù贀-`{+äerv7K[eWI͊K5ʘƒI';ќI[@g14#4VDH%e&d/4#1'I*0G=>79=WN&|Tu|N$܋Y,s'Km)ԭDG} ܣ<}݃+p_f}fwS?WW QH@^kX*肰3Iq0"X")뭔hRmU?Ex)|Zr?O2-CsJ%\0S'+2:/8 *#J) ftH+֪pA[ѭS>lN8*לd.F(8.ugond_0LD +ib:^a+d>t0Ҹ~.Y]v~jK%ZH:^tt\T\a$7 i!);DiiOx~߷g"3Ԫ Hʤg6S؆Sb,ڠ'C)4xL{ ]AI5׾El̑Јo:;Z`P@"jqsjH8 +&Y,>+j9P +F7.n+ƒKJKU`fg]iO hxr@*јgepy"䀼4 v +-r p vvMtzy@%VWṵ 2a`_-g2 +O7ei7uj;e(@ܫz6_,aK;yC~m0^+A.V߰D_z\Wwi+!loni?ɵ\-~D|Ey'P0tb_CaH(-аDBNPPK|;ԅzdp߿+hVhW/Iʁ`'G:%Mk Y3~&̀?2{)IB*c\_g)bu?hg0d-G,V5!%93ds{;x{??v~tAxZ'' HZ}(IE;XBj 4ivp>!$ަFA)nvtv +endstream +endobj +7 0 obj +<< /Annots [ 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 703 0 R ] /Contents 8 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1495 0 R /Resources 704 0 R /Trans << /S /R >> /Type /Page >> +endobj +8 0 obj +<< /Filter /FlateDecode /Length 1524 >> +stream +xZKO#9+|pqHsZaQL$jߝ&t0vu\-ak-`{F +E&9: ڻCַ*YTmIzXoQ~7.: 8螴tH(IYE#~yxKvya@A82S< Iɸ- +.3ȔBtYDiK(<*lRnhq`3Ss`^f\E`J^`}_:d._v=lEsZ$Ilm)dh +.!,,@*r/3!~QgS}$yJz#LsDQ/cF3F#8;K*ɤMdK{p_#뜅6tdI8)w?,|npw/OD 8~!q]U.z.Wkti3IPPiO.՜IZ=`Pi!K<ɴPu )YpNB?-Ȕ,ʔ|/rzha(QFBaڧ6-,PThkan8ֱf5ee 9-0/ja+g^+ߒSȥtBLЧtdSFgU%0RJ/28ojUhW1DwzQ_HwkN2'B""':ˣ3-cP1IB&F,&/yLAi0~̇+㚯%nOZp稦`,RX7I[k^^H٢A N(g> /vAܘfĝҲކc/E"<,|<[L6UlۻcnF gX]!As0F =Z_ >%?\-5Kki͏kGA2流Vֳb1Ʈ8/쀧fǦ7d,[ݙ"w6dCMy }mS}x&!KiߡQ 5Jޅ0#~e_8-C18Vp\xl |> /Type /Page >> +endobj +10 0 obj +<< /Filter /FlateDecode /Length 2064 >> +stream +xZKsWTUfcS9$Y{rThrX!)ۿ>H"*qfzF=ڻ2\P"4P^3fNO |9lޓ%5-|(U[|Xw(~7#\IFd:%}H pV?M%Q eD!3ʻ-y!Hɨf5LYS)sΒy +eUrMvŠmu l͞ fG;Z=Eǜlj sZ$ OQЌ[H?R?5O4@*r!~QgSc$晣$-0G=>i1T<`w+c'^>Pf9Iܷё֜knI0[ 4LixpǀyAto/~efgpx~W?Swڠeg ՚2:G̉$jӞVsJ-3xR)TB$LaQSpNA4Gze-%D 2#r彅+re$d} kLEkۘ3uf$3g]ΙoΩOtxda^fzC;Y&%}p.Rr2c_/WXc~9G} qQƒoS"U{𗋓2[H5bPQIR"Of=3nNl6^v1ǫB +%W'C\WV]LAX)VadJ'R2:iv*V\B\9ȉf +S5fʳɐ0gRRzM՛ҶNTѪ kqb}YuJ$KMD/BK*z(TH 2Ax"Ev9 !]͍fNNRm#BTJ_nN޴=D@mcT% :}x]My﷣J$Cl +4R7u!?L|tH(  Uh6r^ǿO6mn.b̔DԊ$,WS5Hr{ *̷wQ4 baK¡l$ /">'5]:0A[|W@ ˊmqysU哟;bQmBnDς&7oI )F4U?-cv>Rה,Y4vvh4KdmJS[UZE*, MjuWϱ& C׹;U"(N@An,n?>Wbq蹵;wU?ޫeaʥQZGKtȇPԼ-Sonҝ? +Aacb#"R mPѴH +_T2&ֆPH_Ii\З1;bn =N +RAӞ?I'ƣ-׳*ンL=Q>,X1yiV!-O25|IGdh^k$7Z:хwIdm1,FS+wYIcYXA5{ؿMֻ{QU O\vK={Ѿ=1-xY &BؓϗVcL=l- [٘0Fscb=[~6'W}1#K*Yu~|-~S/w9N)?>F䔔xnG2a6gx}$Pl_>0OD+#GJ[79rbT|_;C>,sE>N 's[G_^,{)2 kN+J%@?%WJ+5ѧslr/fL2 +endstream +endobj +11 0 obj +<< /Annots [ 751 0 R 752 0 R 753 0 R 754 0 R 755 0 R 756 0 R 757 0 R 758 0 R 759 0 R 760 0 R 761 0 R 762 0 R 763 0 R 764 0 R 765 0 R 766 0 R 767 0 R 768 0 R 769 0 R 770 0 R 771 0 R ] /Contents 12 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1505 0 R /Resources 772 0 R /Trans << /S /R >> /Type /Page >> +endobj +12 0 obj +<< /Filter /FlateDecode /Length 1528 >> +stream +xYKO#GWma~($ +% aɁ (ʿOUcƳiGM1#ׄO#;s8s8iuRa͜,F[B ߒ5oVH{p.*P(DHN L?m@'wIP4x1o'Jg$9X3rA"fn2@T{GV )"GR g ᆆE@`bӸ!.`5ċ=^b  /.JbCEA:9>Q$m9K.H`oQ"*R허bHcɓBz#LsD1[kC<䝵IkIW{p_ގsRZ\$M ^kۢŇIg߁;\=Ϣ{/8^}r8}*Aag k :όGDk PX)Re~pLI)i4dd)6u )Ip^Fe/%Tl2#g=%3w!,4eyyVf23f3gy~Ylqre=5\In-v b,?Y:9EB N7zFFRAI[@m=]&JMn[AMEԾUYoW ֥C@MӜ*g">"d.TjϷ 0wVy|HfNF_B[J"(XWh &oGz_@0T1ܷ!wK6z|C2x>(CtV,{u u1C,5ZG$n(n<_.F5cBsu:aᄌFE\*Y>Pܪy}ze u-c2G^pײ7QՇ<^nڥš  ɉV$6`B qdOh}l5Nr;͚ AQD/ :P *DBםN l8_vIwuKX#_w|Zp XUSu@2/qFR}~(zN<)as bTDǏ#)Ɨx nZc^_KUq}dp`KS:َq&CQS `)t;m( kE,EF=jI<Ɏ]o) T +endstream +endobj +13 0 obj +<< /Annots [ 775 0 R 776 0 R 777 0 R 778 0 R 779 0 R 780 0 R 781 0 R 782 0 R 783 0 R 784 0 R 785 0 R 786 0 R 787 0 R 788 0 R 789 0 R 790 0 R 791 0 R 792 0 R 793 0 R 794 0 R 795 0 R ] /Contents 14 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1505 0 R /Resources 796 0 R /Trans << /S /R >> /Type /Page >> +endobj +14 0 obj +<< /Filter /FlateDecode /Length 2081 >> +stream +xZ[o[7~[e 93m]l/q!BdIml ys-K@Pg4p``8HLYɽ2L:AZiǓw[dcOzgI͆oK撳I99ktف<8(Rd=#ILQ\ k$\^Ms+"M&/ŴS"0#8,RC@@_;3Ƿd7{qlsڳ['K})I<[/ pHD^pmufW#ݟ\U.Z + l LR 5Ez+%T[mUyaJ +`S'O kY"SYĖ)3{әk/w, b=*X)5|*L[=2NI#GT3c97r`]*b8 b:' #c./ңt u\`,oUn zS2¯4ks(49٭w)|GC[p!fuE,W{1s܌SR3USl%fecHi|;<^;;ԝĖn+@ڧ%`W趋D?Qrӿ=߯/j2_Ш''< X.=ϕ(( .{fn'1̗\ \A>"+Ʃc@}eW>UtA:}38>)\7,F[o+NNz*?>6>YXapU弢%),L5pkRŔV@^Dy9فJX{^$J=P®V+A wOXW=mޮMvEn]Qqt?r?9}D')-6&rpUjXi͝vLi@ͦFiz1c>q^ĺa1ע֭injhkq:nUPߘ.hév)-7BnOYe'^z!u-gZ3jr~;n1-,?.nry݅P!>&^9HgN[~n߃w`} а %h%Ys3 mj1:4G6 ?$lѺ +endstream +endobj +15 0 obj +<< /Filter /FlateDecode /Length1 1407 /Length2 6074 /Length3 0 /Length 7030 >> +stream +xtT6]҂9tw* 030 9tK%H% H* HH JJ}{y}kzuV&]^{DC$JZ*@ +! +Nj AxB0`(! M%ja^(*  +HM#$ o=@x*PG'm_`NPBB;@ A0q `(NH$?͓p@N}' j ri` 0; }@ +C`.^0{p` q"kEp~;`;9&A[7 +%.PUn;ӟ'uGzyB]+5nnғW}P|{~P0{_m{^ ?[m$@D@BPLT@|NC~_Qpwm@ /H ?@=A0G5C:Xכխ0W_.**}(^Aa(," 3.pր9{{QG6X[BV?O濢JT\]uøv o ՂC@nAzB}!P$/e7kPD u ]0V!3 + h"#In=|08p^  5Sg +q@A?GfGVmY; Rg +>c2XM29yQĸi5a' +iC$ *P;-ѭO..mO̍S /Qhǧ50ulAzȚ%N[H~FͷӻuGw.'y-CKX rqx\dwO>彿a| p7Ae,x>Xi(MƜJq3YTYRSʼna(+]JP>jW8H%zg ;P +-C{\e3]I6hQkU \@&d_\,^?JKJq !NصE/ٗ hĪ:.J/\BW<+1y(t>̑m&r[DTnT"Tx&1@ 7z9do=CswQYٗWYA_S}{W~6\@C#t{hr+bz_HD=`1bww]&E9"mrc@_Fbʧ`pvE)&8%^.BWuK^E +i]VcXz %5nM UkR]j 1Srg)JHg;Q 䱹sMJC6o{h.Z1gOș e aFgYbKU Sȗ~2 + i|GŅHp?Ȇ+q=w2祡a2}f`^]헲Ov'^āl[c;2V &^5Fo<~*ݳHRNuB3hw]ETVT*1(GˆGrJLRNӄjo0a6r8?$dpGqNDSgHp_~fY vo[W=h\4`F0־ @c/zwu?fدfGXԭtOqjXƦAw()^>BIM`F1Ocb + -w ,:whGP w$J3]f?_K+0֯{  Z#t(M*Dt +=Zt:؜{ +=9nLM;#|xQ3)Njx8XzԪwn~IaV L]6kT`Mm(P]]BKM8Ǘx[Ty_]aP5-&؜\̿Q-v)`ڡǎ +)֊ g;pW^?={T)971wǐDmnp.4.< )efi۬PZҡyɁ5;*R]cP"OP܊"aZI"%#Al F &xaG44gpkbEV1;QD^z].Jޫ1d7 FKl#.Zmja6u%Y78%Tz@F8 u);?? y_ɶ͛ġ. E"4:}&~]7$X; OX2ʫJ󄄢Hh(e?YShP~h4̒s@o9w-`3+^u`$MR +́r¤'cNբ p= qG-zV{8 XOas]]0øo]~|d2qgý +SR]0 $No#pw:ɚ7s68&ӆj"&+ X KXs]f׬^b)Di#߲Y%P+_Jmj7l ;63e(@72ノb]$B~FH_~8ଫc*aTa|\>%UyoЫ(Ǟ牧2N}0 5Gi!k-Ǔ)<ɻ*Y7PZfF#R,?KѹwFt [}|v\ձgjl閫 +U ȸN65ӮVeدl%z3t`zz^7IjNA^pmsJUW_aKFe5 ٩u=dUeȸgz&Ge{- \mNDXB[Xw!$'@}'gH*sQE?q?U3\rY#~Q^;0k/(*]5V/g}Rn=7߱Pdq +A4GݥQ)ʏ&)Ř6rJ R3oXQ4P2[ndfs҅KJea Fsݞp-_?ĀުL>NnX hA6}Y4P +\GR5x4B"鼿N(v[.Z7=qKٌļ?酯uʍG9^'j iB=+9GD .9ܯ*hVHHVZmں8dI:Om-Ιbh.>qo68ďܻ FA;w Q=wLS7Anzu }jZcvf+od`i3vUۙނ&%%%״t̷gxO{fbH#ŒqV+Q 1vZ[‹]᳻{侭G仩ZNsC +bQ:y ^XlÖ¡o6ёqbyQbjypir*RNUoCŻ<gYc;$|9d;=.DYHfDcы)l^[XYcҒM5q+v|B7kl֏Vz`X5gE}2(9$:6OB441b_IUQq#WZj},ʦcJsk"|Dxb DS\6i>7g# k|N³DI(Z?qOD)5mtjh(SjP@ZQvUz0&qj,+vf:vO5‹݆3m}isϑ=0r^{4Ѣ}T.5 ^3B!sQ֚h쌭`V =8f蓉Wa#016&Xߡ9Z”ZN S۹A/ןwN֛N ؘY@q峂Ĺ> ޣ?_g6Ϛa +W?yzl깭 +k\fy1ڋڞf hT vAϋ~SW*$jTs2AwCFZcmsAoW;"DAϳ'btTX6NOEf +sXS LMDyΰjf6{H˅̙e5K>̂UK| +] +鵩 a 6j-4bKmC27QŖͽY0[dxo)8ɸҼСJ~Ԛ`< [9 Cu^w-G9h$WLP`KD)zvma/,DsHڧK,͜'w6ߠ7Sj T:TSU k?%:dL6}O(hX.Ms;:0R]zb2YqߔXdjJANt_r;722 + MK*HLo[j*yLt܍[Q? ֆ)͸kcG[t&]/6vU¿"?G +'xDQ.nyA3i\ȈWtE2޼衱}}^f;76o,g{xMVZ +~.pK15,ibggO]Sm]Ѣ%$tF%1vko4@.YPe&uIO}reInyrT%*w:H؇Im}}^h'K|G1Én 5*Bwi\ϮuSJ\DNД/D7*}7QX_ר(kt8|(i)M- +gx~rKQ0G = wIRh9{H};$6qU}+I/rESyz`sS[6GCPڂu ݖxqGq|EBs @,JRq_pT4Sl^Lr8A8gLGamsՅNhf1Vi )xl0LX%*|)M>L;|&ZKo?3߳c"bX7^ ֕TThxmC>6*TcX"(W{Qjr q%H +vؗN:ITT27XnLUxɁMNmjЪJ3cJz +SY?b H52II=Wj𶲴&[r*#ŭm䐠gI=쯯q]Xحv+F ϸc_ę86u?\[UDrvAhI^ !&zQэTF0}OS.E>_-llMJ !vMn? ^ s"N d=s R+J +w"yCW^ar=(q +endstream +endobj +16 0 obj +<< /Filter /FlateDecode /Length1 1372 /Length2 5926 /Length3 0 /Length 6871 >> +stream +xtT.(1( ! CtH0 0 Cw7%R*t7H)!sw]5k}{?{y8شdP%k88a(0C%@ 10 +@j$* +<(`V ~u!G8y"a6(6zpA.:B0l!`<тKr.4}; e Ѕ@nP+/M#3~"-O\ar#t]p+(r wտ࿋ m0(@KI偺í~.t= s['du`4\ Hʅ"W)+­P8ʅ| +0$>vO#0/VN'p+TU/"O<@P-W{}O'$W F¬?"oBB}w+"`P?a50Z{ ߿ߞe;x~zjZ;''xD|D@ !&.gm0U[#L>MW\ g/MZPDn& "A?@R]S./@J\Gs @6mC L:wVFAn3H_@OZiP?j08TmAW W/=m ~LPDF"Dh9 AhCZA=~+#P/$uh04}t!H$b_~B=Ia]eHE,;!xKo[u 1ggVet_ބN0_ {e.0V.Ol,VULqL%Nkx^eP-+Ӽmƾ76#@> ;k\5KJ:~hY%=[@b=uBZ 77w 8+'@LLqb&YXf"RHuC g$/ORCZ`,p Yܟм|\uq*m8`l̞sH7%`|rKS*ji-=ީA +6U睈¨Ɍެz%<4ɺqe'KH?,H$뚳]- 5;NșɧaSvaFm|CS.MXς54E}"vAffZςd)y2n"3;fC* v˛Y~Yg8^$ms/B<|5*zrvfS naGw.!8n:73BWMg>©KgM$7oCpŦ?Eld[{yD=g$b0QCZ^Ĭ󟀬Z?f'Qɑ(WOk"e\2vUV_ch,}0{V""9#K .Nu +O.J3tCӵrI{|tčsK1mCCr>0q! LQII`Hgz1k&JZJ.nX׃l\Q>w"(ø=n7"bKv+c/}Va2֣[/@k +hXe&VnՈ|PGt +~ 忆Qkd-YRarB@dQً b?Igbx +\rs/bc,g~p;o/.f-,AVg.ۤQ{[,qjdCz4lBջ{CJrqGBR R:{Rf2oI1=aLzЪ|G)߯gfm}z˕*/?H|"=0~Xv7u%oòYq#’8;gb{ |_jϞKQǕ¿'b;lNFel *"[r ~&D$&UcFe#qTý=Ufڪy!)s͗Aiq4e.8lLI+T0dZl"s]I6y wJ)=4Ox#ob@fjx}jz(va4LR9'*8;tes :$Dĭ$F*aA]"%zh_b7S O MgVO 'H0$;ޅ+hQfa7~-7Q Eqr2\3" +Vb8~=}t17U?#hM9I$ɒQ<*Z`},d-;peCC7oK83u=o;x<7k,UFˤd=˟$'vِ8&lKm.xi;5ʈ;yo#J0Fm<,-mLjtA7|\ROҒvO %N'aRN"s-n鿁GT8 +7s& ~c2*bPL_.w=oL~pB^IkOa.K _UǤ{ֳ;"8]JR{z$`Dׇ<s%ML_f=plc;}OڲJV4,Vo$Fpp$oӹ"}tf2\I)M?ՠWftH;̲yןҔ7B8{7)"vj"9>~D |G. dP3N`<įYQ}dcz}FWAJ#*mmP] mb!o HXS`=*CAoO YE!f `Mk`|[Th9hds4B. |cjMpq"dp) +hnwxp}I@gAy&<;00] +:[r+ULF$X$8atWzn1$)I\%Og)Ua"&TaZm&X՘MOb2+)jSDp%KˋmWJktzaЗv4(%? joWާg_<8ƄV|ZYOeamvu:]WQ75Cb$5Q6;c"1N~QTǂZ%BtF>h-.~KP*, {]E=Tió)&HDe5v,~zIS϶}9-2̧a2j&`bgƗF?*UG+ 2 +EZIv8\ lNi [T%=N18غ'1kԬԶS3g;BT^ambCJu>]YGl-5{n8OI~dnBdiux" a+;@srE-y5͒IcU]g,1?gcy$|3*]z9yƽg[^Ho;eEsCb\6c4|y..+L:GH#"1Ӟ +`Ư@gC5L +!ovx{T=¯&%F6pi,cɆ oglf~T~.aVqGuĎj)cF)^݌s m ^M:ԵcbRII1sjP-!SbQ?opcxYd}o~T%3Q U0ts|h2xưjq$5Qӫ'eZHͯ|Q|PD9n灆غ2b:_ō&Ը *hf 0i[It;>n Aolq7x;]r{T>Kɚ"w(HzԉUèy/VI7R";(@$y3衛 ;HJq,Ch~ +#V6l7͓-]&ckٮ. Y, {eCAۯ_^k[<'U.96l +,}M5R5Sk"iuOH 3ڡR,f%L:hߛrYpm=+.@]'ԥ/J÷[z\D1Zd6C]m[ՄL$,rYmin]%쉰Pe":Mf%=“)m7xVUiۭ7{=c&nQ?u=; AUYoaw=!~Aw5h/$phMcٽ zDzT#ɧ +KwA_.z+[wp*THkHvUΡ}{\ :l?`]壸 ,U LIb?0)U<$SG!QjZ<KV%(5ދW}QL$$)"̄QSԪ U_&OՉf˝*JG|*lkɖ.pF| +ə)ԡL]-zApN")RG/$lr ׸S>UjbF.ƼTq\2I66{roV[A6~Gǫy/ +4e`RPH[Kdu cb6pf$ /S6"@U%k+"app4iˮFv$A:+ZUE#Xv.^R +endstream +endobj +17 0 obj +<< /Filter /FlateDecode /Length1 1313 /Length2 6528 /Length3 0 /Length 7434 >> +stream +xwTT{6%- 000t7"ҡ t7 *H#Hw}k}:ks޿>k]y!yx%ZZb~~!^~~A\C +Kb FA0PD; 4ܡ!$??@_?@8BZ 8 ˢwF@_ 1yg0b H݉@(n #]t:2Ov#< @gxqY?zP-v0XWoW 3yC`; QEz!@u=(;s @E^+lD_a )0 ]۽L %A` _E]`Ww_;?:{0 /$/ ^|z~*uCw\_7D}El?`?/9,àϗOQW^WŐO^_A @@X /w] 4Ubk2-߱w!M]o ENH +mfm?@g@ +F7gU [Ց;7t!H[?߾0[8׆n>wWn@`;;`G)_g Sl==ƻ#^J0 l;5 +sk:/Y~e$w +~y+UT>eik߭*ȆDƟ~WV/Vq'GɻGr+hqhx V]Q[5X޸}Kz٩UU831Z*3 ,96)1<؜$^_ONdk~!`Ÿ\[3%- z7߂ݓ^unMSwSCR=lGbb֪GCQ dCnE;, Ws͋c]R-NA gľ 6fx=5߶ׅGnp^ 57qR^>b_dY<2)U 8yk콺'|>oy@SĠ=LB* @dz; uyo2$(r]II_\yg'[9 KQqf% cߣ5izkrQeaam:Z|k=JޙLUԬ!DfhPjFS2ag0yQ^G>4-H}ښֱ# |9"#7^펳O+ F =ꁨoV":.^dd;|s;*Cr|Y Ϋj`ޤw O.ԪJZOxu0|ﻗd1-U4&1txG \=[G_uxi ߳WETs>x/K;7p8 P_%aY_oj| H%{"~%]t.V*Lecw22f '{Jcsk !E3 ߇YTf*M>ɉQcoZ5}hզNCΫ|Ŝ roƽV[bOifӽ:hauݻ\\imy[C' &rpwk0~eAon*OfK}2+0LxI#8+rPڟ mc`^F޻9j8>y-Z3aDa(:C)Sb34=h c߂pFg^%홨e,$ ̙qL1 ~Srw?&e< aJ$멏L܄;DاG+[ҾIǘͽ79syS!9BVV}HE.r_EE|7F|! })1<&(nA0](2MMj:Ll#ij.IO?V,H5n3lg<{y!om. aa +CFi~&t8pQ)h۵|,1M]]PíI޿IjVq?Fxǖ',ɔt^ݢU,|ʼvt攍yICբe+^;K(۩KΦDNדSnh-Nj: +hd["fkFϾ涱jC~I8l }y9\f7?q37W?zVim{d!flPZkL/ͷPes_,Əy,*(oozKL^nd?ph!B84WMsqd#Y*'A?i|?AͲ ڨQ|Ka%{Jã}<-gMzK2m?iqQĿ}rN/LjQķXSGj/]j^x%}AGJfE%a*#.1GLhd7k!&_y~uk9)ZۙWװԇKx؇γyB]=f+3 +5q#Ih_nt ^Lpw̾:hW\0%N1 +2Qf0,v\ O'8'/FZ6+Uŕ3 :$̮ra1Ir +EEuȚrR'qg5z9.JeC^O?5V!ÖS+灷PGͧ9urdsb}]4wZ0o{INlՉ.]VcO^"|#Y 6^|Ѐ39݀:O8(k(}LJGlµFH5:hen~m lD]ucjP ;Ȃ]=X Ba刨U# XY9a?O:lq1+lʪF~O|i@]eq+N;݇xc"Eb DrfT1qr)wDClAHĭz9ƙ77quAcgV_~!ikyܡ|BS\?vO^ ~$ӹi  ^ΕMuWH%΃ CeG|[zBODd6߬WpaIG:gхE+(S5&kf$ Ikbyn-(.LD79IM-i/ 9;  )E(imMcXеøTꒉ&w9zC} ub/n2_>+Z©Ȟ֫T"U=AM +ZKla!TSO&!C.e/qi1]]e^PgdjF~16v 8]&ڥv;1SeU+򀫝X\_9L VFayصx,֦W-ͻ0'5d!/FTȭp2d+\o0h`%db>RW<%~Fg)h:Ì>)z{(86^JsLQq,%Svz[}~=\Ū"Z|9uگbPkϗ X11NcjRD\⓺uFS ++-ݬ8޳E/WI>Qʈ0T<xr;O,'zFfwQ|Dv-'qvUp.QU(9]e LUDAfElνeS/%wIyvɈԄbʽAw +{tG.^'9<ɩ/V&URRk)lRh>./b8B۲ {y!Oao~Zmn\bR`.l\⦆n'r+zGB +H/4Æ v>wёs.x|=3Ytuf0i/[-4ģL Au/<Ԟa0Q@gfAua|]3ζN8SΫ Aåay(D$ |&T"ʤ;y1+{)gǨ2rdWU pF޸+{k;@,M2NЊR'kyBʄnK4 +*yn-SqSx=z{e7ȣ54 +SR;<w$kx]4s=N}oqVʛ^LHF>_`fxI\A~"s=fez2\ ӛKP,,V9;_(-mg1z< pvQ~hk[;hu؂aĸdW,N#+n򄾤.E*; 57ӏ_!u>fZYd#ؚl{q;#m$T]3`&SbGiʔȕMLm34iٞaAfit3B2*[@7|NQIdž5lc CcQwOh4iUkO0qSM0g[MoVi,D*3_BbKa?gj_ZXnbՎaM$$={4iQ{H9Lk<B@/eJUozE PůVF-㗋FPlj?XG}F-e{ +-@m7`E!{%Vq-_ +圗SRm[M-jk +JBWG80ccUK Cmn GkDXdmQd==)7ȁ᳠@כEDIRS3Dtg V*b))ags`Fm7nLCo!=qYSAX Pr2AN`| S+t5vnD-8Mٿ]F|q,1s4U!q]wdO"Z +:ܦ:*8Uȶd +d>` QQƃ85RdH֧2?"16ךD19P;^ʣr&2Y Xt@B\aM b _>Uf@h ~UThѳK2"OX_RUs:ӡ3e۷\{Q)KlVPYc:,?>~BADOS\3-[蛮/#sھ!~;e%dg$" B?2H=殙0)@yrJFG{| YKTT8@AsBSf8 7VGNƍK{mo\!ǭI3n o/9*ۻoGUj-c +yԫi U! M'¿9,^~1ieMF8cvSkbK[.ɩl'| ,n*D1A x=uF:ڷ5 TGyEؓҙo/+QH~.T3wƖ'qMo-vԲUr&tJ߬(e3'st.|H,=iJ`ywA dwmc`bd3KxDLR:8-W+/ +)˲PĆ5=e٭;qG`ȂW͠W3c?OC}2u˨I!QdqJ}-' OmXKQ +endstream +endobj +18 0 obj +<< /Filter /FlateDecode /Length1 726 /Length2 7467 /Length3 0 /Length 8056 >> +stream +xmxeP\[-\` =[`%,@pw!{`/ޯޫWO굫Wݧawx:B@N7mymm 777I +r9eA7}( uy<@L&3 fف 0{3@Kq:s9 \K aVVCAv 7 ; +C.P3vC`ir[G=@MNGJ^@NKGC]]aC..Mp/YWu'`1M n9[#>Y[=,` +u9@p6gT=K+Rp?q\aPߖ ?>C5(fyS\+n?-wC.i} -%-ڮ 9C.k`пb])s53`׎p/KZÛx\3f7{P(sq,lZ+7Y69Nm8?~nL뵆R\PdǦ8YW@FF#>Q*`(\sW EH2j?Ke%e{cV_^$NZ})9ќ}hC"p#E?g cWu}'?8x~v9]7Ct#Kd@7`iu\.[.5B=Ɖ,?3-zK:Y& W /ĩu.0 lkwq=h*ςzXQ2FLQaҢTƃjl8:Ed`:ލĵ5_pg.m]MP^ 7sdZ\z4˭Ys)߁fkJۃ,agQ={kS|>y-W60vvap㉉-9JͲǻ5Ax $Y\1K +Ls (ϚJ9⾿{V 75-E- j۴Q9S>r/ ZԴ +vkv΄o0ۗבZC;5#| )^yJ5n0ai~ UK"wŪ`+7y)Hq^\Vi+Tdk}n'`1@է|bS>HTzdVEGiW}3S/Le'7eNQwa oӌkK圄T#r՟M:9,|(-(=l޹]fJH++d~Y81N5 +M!9W/ ^?wk9Hn}⎿96ktG.)}ygˆ+74vy7t86n}}^C ,P^FpzmQJ20P.+AW +,0i6lfPO=a*i+ ]Cl XNAz9Ql RG.e* u2 8K.@(ɛԘj(Kؐ֞\i_ +α:SѰ,[/WbK MT(s¦f:>6Wm',U3,iM\z s'7eJ%GBQ&cuBtG/T)~ASko̘u-3ROS%i^he0c17γQ>\]կ`KOX_4pݟ'岴Nht?)qo'veE{ԍyBnNЋFCu`K8:RTAO'FqqQǒ u&a.|(۽ +#0#VXtQL;D4ͮR- +;$k3ͱ`3HbU|aŮoU@ k* hIhuaNƈןp3!MduvU1X7o7'z2cp.xo_1>T[i b]ʖ^7m I-Ob|]o|5IWS[B9C >%¨T/hWāqR{q.3лTt*dZr?L1*1ԻK tU;;ᴼJJ;WZh2Dp!+3y_ +er|pS&F|6_㭉JlljnW(Y1dzP$(Ccv>.. +% wF_v(uvn"uR\iPs~*㨃b\ +/v*[2mB 2{n&E^*Ga7X3Ed.^*? ;6W%&hw=y9A+VLn L[onAh<I/ƦuX~tm?_5KkFӰ|No +e;cA][cɢ(S8c;$.nRF +O G|.b{hGJwgvt"ZKJlHsH% "+{g=÷J_蟿UUn{ ㉭8r3Ҷ{54}6@lẨiG2֠60D2vy@.]wu^;jwTH90~O pV,}_SG+%\eP$ij:lsV!m#'Fp8Ep&|N АfXBZ*'8DY +F֮',㯧= +Gy||pZ;=U B +5EeAaBQ£$P._ +ryu%D^Hnw$,3x:)?$;i;Rfgw@S|w7RBމ!_elUCFtFrV ~Twן^~礇ڻdB4,u>qH/Y˨A̜''6C$ ^bN+̖wF(ϣ? `]^v#oKue=[j_['C*v7ɠ:x5X*"ie78 ~/P x\O)CMRD1׊}QUv>x&w)bGot%U3%Pc: )85rv}uƅ\_-p8lk9ζXs䲀X!="`qn?Ur#6雫NJ@;>g^UG>Kad;OTp,^j&;xc I"H4LʔzӦ; +0kj1zB]Ojq,g-(Fd)&JБtJ\vtu%5(6l `IPCW퀮QcM 'lVdd,d3WM^kn:%V\U" [w;yimn),k婡L xI% ix̪ +4+]$~E͹I6Wg`o[F҅n9/{ИeR~/&K!+qZ>TV ɊY׼p L.X@ȏPGQ1[ⵙ7nB[T~Q=S)UP{`Ői&=;c;qvu)q$4ơB ( &]MȀl Q5˺ -<ɵ5u<⟻؋9Z&FQÐ[ޏ%lDu?z3T噱bqn!\Z5oɗ:y4/o +n= $`ܽpQDSJ>zOkN}Z꽎[ u-5;)/]j#|o.u~8G_kʫfaٵ2'#0%ӞJkpJHf|\^T 89;fHaLT%n|BƋgqs| gs#|A@gڥ-*: oNU ,aNX Iاy&9|}}:֑qƷ=l$/wȕ4i«V<%BBmg(VZ4 řwRw>?-9| oԈX6f|{߃j迻$"z Bz8tz(5ȇBwK4o4!~?0 $F%꥞A2 b#*Hyُ]?F +*Gh0EhrZ呂qq2c4`4>{0Pר=eb)ٝN5cZJݕPUN :SA{ްG#CT*ٛPUHRf#f# xF/j* ݴ+Opaf\)SvBM ^~NyS^(7B r"C?$%] *n\DPj6.[1l.CL1*s +^0kI$q@2>]2-WlE>"VTp3伓7Nǝ? +mڒ(\J|6n:A?ns +d=}HxX|΋ۛPOK ^Ĉ8jNrfm^L g}ET Ƅ }_E\2+w罘7Y<IҎ$S~M]hWˆ£S=ꮾ8Hlc"/ȹўd a=^)YdmX^y\4q9Xk>CЏ7E45)zY%o0N +ZCқoV+P>k;v?\eNZyNkz&P?ui/J3* z̓rIarYs.+Ζ?=ѳebꢌͶ Y.G) !/%4]oVcɭ!^U" =O + !H Ͱjipt.«WH?Ք7D_;^-&Ox> +stream +xmMo0 +!Rz|UAa۪V&$E +6~=HUAgɯ~uo$ƛLD- +t +@ZcNt=YNk`T=Ro æeCڕ(>Պ AiZsn[6uc^0Xah\je?0bprOY[AKS|dۙoF)MZ}4W@{YmG;<9`;K +(EytbabisbgEjq(po$}Idon-p!J m-O[L +endstream +endobj +20 0 obj +<< /Filter /FlateDecode /Length 900 >> +stream +xmUMo:W5?$R. d9M eCkmCp;;w~>|3E_?O]5߶w]Occ]=~?}Oyh9%?۹׬B|Ɯ>);vw7{>oaI> ѲH8U/RǾ0ñ_x0ӅxBiE.͏S=/b_ixމbc4fi|8EXD_R4.GRQhV̪xvqڎXJfUıkM;rͭSlҏ֋jU,N2@ ",   T[<5 1"àcvG@mg +K | +T|5flxZ1YP^ꠦdb}[ה_Q>kUbw88]k|'%Ǿjց{ g䈏rsqk:n87xIue.Aft0!?4ɳ4mFtӔ^z1?z .~lP}L +endstream +endobj +21 0 obj +<< /Filter /FlateDecode /Length 866 >> +stream +x}UMo0+J! ᫊"Rjn"H73W3nj24nV~ߝo.Gם8׺v7[wVt'oҺ9p/u5s89 i<ίK)ٔ?0N[?-#SIе(TP,#z7Go7ݾK5yx#7~hp^g=a{9^(Vu{_cwtjȨS! kl֍]]₥+U9q~=W(_KdR$| 4hd52HHNsL +FU*q8cMMh +QEk%RWp gn~ȋCam `42W0A/c9^'-pʹ)pq[[i])9^W5js7 Gb_#xb~ ' ˏ1}cLu'No ޅ0&1Ie76Z cx-~`& y%Q?K'!/h],KV0d 1էM=Ռ3g1Y ~i?'?!>L9g)q:#eNC?lыѣc`83ֲ3#>w+>Cӊ݊͊T_|~+>Cg!>cB|/g)g{!>_|&~'a9K!B>,TGbPq> +stream +xmVMo8Wh҃kTHrضh^I IJ!ۇf|tǙqV}xܟ>ڿ7]Ocp{VcmOoel%v?~+W!D2ơñ_x+8L23Rö?]ߥa xe_,WyN5 !b^qwO y~vWҟRY ,0 A) >{ +t2TWI6TU2hxhPu"0FFSU LYK20;""JڂEEYbU9\Pw BBk[uXuRLIq2 ѠQx!%>1-Mm'[`PVn]7ɇ'[%cLE\ x >cԒM7ɭu8j{!Ԝb c HZ:vԕ Y2OOyzo=ʎ18(uU' 2F~xÐSռ\௨2q,zQԚжs]ҹTT;pꊊby U_1e8'T|vvMgdaޟhPK3j V37 <9'vCwlgb z AA]!<8ލh ~y%r~` z4ܣDNK9+ˏB]=vdi?G[<[Mv']1O4CM.17%a_'LrQT, ;Wg/z«Zu +oVxY+|ZW7 )#G!,"Ae UE$,"e ud >HYDBE$tYD*HXgiECo0rxw={+iJ/l1^1޾G\X`6: +endstream +endobj +23 0 obj +<< /Annots [ 799 0 R 800 0 R 801 0 R 802 0 R 803 0 R 804 0 R 805 0 R 806 0 R 807 0 R 808 0 R 809 0 R 810 0 R 811 0 R 812 0 R 813 0 R 814 0 R 815 0 R 816 0 R 817 0 R 818 0 R 819 0 R ] /Contents 24 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1505 0 R /Resources 820 0 R /Trans << /S /R >> /Type /Page >> +endobj +24 0 obj +<< /Filter /FlateDecode /Length 1290 >> +stream +xYKO#9+|pq߻ڕvWHs#pB`M~mw'@ H nW?>QZ(@@%PyK%CQ:FKby-B͆o GdmY P4x~p+F7DI" +nr"HtQE6!zBKIpO@FԏhaHh HE&ĜX--$WL_vZ Ran\Tɕ^F}Bˎ ҡ'uH {ȝDJ gX;_D9W7SR< rgbvNў8[=?{GҘ"WN|4ڜ >gޫfvd3h榟D(\mT1Vq랗"}/wo}w}:۠ :.*Y9cHɥK}Lh[$r=w2.CsJF-\4G( 3Cl2 Nc)yC+w1-T~TyTW3EB%Me1]/6n6ce9.a,ߚ-HnKp +_ɞRi:+<:87&gFRxX&UضhAېP9c}_MǝPb\uvptlRq(ήhZeZb +Kq0.Mo_CtrrH9z'_A>M\`¯.y9:֑e"1Ar8$8gӯ&l*>Gc.LgtvwƏ~?~a hdA/ؤzO,Z*4qBqhx8[&3ܹ1 +endstream +endobj +25 0 obj +<< /Annots [ 822 0 R 823 0 R 824 0 R 146 0 R 147 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R ] /Contents 26 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1505 0 R /Resources 164 0 R /Trans << /S /R >> /Type /Page >> +endobj +26 0 obj +<< /Filter /FlateDecode /Length 1574 >> +stream +xYKo6W2VYWXhmGQRv;×dYpxHfáL ZP(F( 3IS۳ۜ_tJk4|W6$<(Eg1˭d\ +N+!N kȥ{>smElA03 +\:~P$IxX闹Ee:2(ARxj#r-a:wo[9fu#SW0i7.- 30pOˇtb4`vZST[d$3EF#\*"KRD!$e0QD PY sqV)iQŎ)%+i^] S\=J >QϳdTg'0R3l;eu6}. y *w`@v@fպAT*[ +uNWa3La0tqW5_fj m )t=NqM}(4igo6>;.k Җ825ofެRX|MpF+b:bb{= $ +1[{+>߃;^ /|G>*rO'HHBC&*8Ѹڮ>54ct4fgذLtS)2K +endstream +endobj +27 0 obj +<< /Annots [ 168 0 R 169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 177 0 R 178 0 R 179 0 R 180 0 R 181 0 R 182 0 R 183 0 R 184 0 R 185 0 R 186 0 R 187 0 R 188 0 R ] /Contents 28 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1505 0 R /Resources 189 0 R /Trans << /S /R >> /Type /Page >> +endobj +28 0 obj +<< /Filter /FlateDecode /Length 1576 >> +stream +xYo6_@[䰗}@afdd9G#E5ǎ, "y:~<eJn %ohe2hB<7B^qM9{36dyK俒 ߕ ix[ Eg1˭d\ +N= !L kwyOLεMeDB̌* { Iڇ~[X)s + +Zk!Ƕ<"W +snjdb`J'=s:W"L cg ftOm!,F IB"r:12>D88#k b_#Q"1d!J:3a#zz\٢@.N[|EJgi {p`s `z*_Խ| CO ܣ"efgpxPU(̎Wk4tj́$rH`\bќKZq 0T +)$qPRF +K{J%UР#˸@ "vL)_QNg{$w!,TN s(%.P.HE+Lm s-M +H2q-7i'~;˳.#fa@]u~1&Da1@2ch*SLj -%8RlLjG)<[~TvSV=Off-6fv +ҩ[`L4dA<ՋځBLCx9MWK϶6<lAQO$!I&pLGQX{Q(w#^CLf!Zm_Ltp*գN,Pi85-˗!7۶nqHǃ'vp&q\UZ{+4Uj7Lfԍ!13/ +|  S I.o&?xD@H̭꺵g8n1,B ]QϳONr0]HW{V՝K Us=mZ$oU$ܭ``THbmrdV\"WAM:,u:btY73ԮMjYm>mfΐ !2t +-u8efU?¡mjka]W@y-oڗ eOդ{yJbzsܹӽ5G`&j_e2&x,oz:C]DS||NzEjshYoXqz>qr eΰ;Ѳ q](qU6Wuԇfq @WX +endstream +endobj +29 0 obj +<< /Annots [ 192 0 R 193 0 R 194 0 R 195 0 R 196 0 R 197 0 R 198 0 R 199 0 R 200 0 R 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R ] /Contents 30 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1505 0 R /Resources 213 0 R /Trans << /S /R >> /Type /Page >> +endobj +30 0 obj +<< /Filter /FlateDecode /Length 4505 >> +stream +x]YH~[>i؞yPQ]_ @fK\.#Ht19J8J8~SCжS^ R~}~~6㠺?,d\ ](|,)-hd'`7ouS2#L lOuaP.&D/d֝f),c> ?ьj6P34Y cn@RG(;m'Cj 1Ix;r&W"Cc ÁN 얃S>h7D#FJ,d(Dуʎ?JDTpD}C5gK$ciB:&8;~_"R ~ Ihes$Z + bFW.XUtKό{f%OA fuNH]."3  R N)pqi>B02@4ɖ):} +I.ZP-kAVDLvbG_܅2գKG8Lue +X(6Ka:=nalu5KH4gnV?X9RrNM 78tTyOII&Ix1Iz-N,caLDTmsڐ0:cZVuq[ R(xe;޼٤pkT3\VNY@>]v|]_<^>˟*߽O}fw?2s c]> ޓ(W`򛻧-RqLѨZ_.w7p5 +C}ݷ}Mpa$GDlũAO + 4 +,mz|"r<߯Q.= _Ry顱_nFM~rկ` +woK6W.ҿr)K^o~5MP=/]0-=KG]GXbw/w-^bstOBa\`UݾJ8?ıI%2C*ϸ`5v*L3F\WPaY'M?gBT8J9Di4LL墱R%@9f:NJۛKPb$BFˌ ,?2eu2=ߓ%ǝU;a_ǟ=_(8DDR$| -SϕiqP<  D*2S 5Cӂϊ8S߳k5 ctQ/='L}5<Գ&v:Ȱ֟uףyR9 Qg=99.Mǚ +@? +u"kLd T Ѿ@mr!@"xݽ8abuJ\vce5ㆣWދi]_oz~1~SX!VTI9tO0:xeB5k煉嵴~?yV1z)مP /M0/&ǜ| atkbb;orp.u[i/IB(&`I`"(S cM2R:i\GҟHo&̘d q;*<& [=}/ =c4vDٗo|n|2,-,cEPIl k]| W[9[O{]K.2 !\#|ĭnv!5Ȯ8E^!є {kb6X qC0-hsXWp^5<#]İ.d\7.g`*16 Ռ 뙣|]x@?UǗxp+U0k72SVV\TU굼J~T{|%e!XӔL,,|\̻}:|pRօH=*{54c̳bL,c_5^I| CEwL;;- Yѓyt:'Qw +GeHHqzj)5 +QEXq2o `a,Ʊ#6*k@}V!ưZ0MEV!:WS]Y5%VMB ;EqS4(qL Ω!% +%f~l[E<:0!9^,Ta"̢&kľs̴-,/o bz E怭ޗ/%r!;|!I!Qzzp>6;DRXb-3(_UQĴv/چ7Xsb"%4 {j#B\NץNdQLOq#j[cRS|*W,ԔaPǝT|:ܸ2k90ZQӊπ;HN7j im`d dLiD'*A9pnfpUl@6RvCMH\Ʉi5&ŃTڳ'gmǑ8$ԕy"XH?IX.&8ےWOŒ eZmI&L{ pBKR)W#ev6:(癭,$)&~>_֫b$勸RxOLiXL3j2aڳJ<ߥTWn)vH?=CiBBH;[3h +!t/>Zdn[3D+slA[T}sL\:oKy +uQˆ\(O5qΩ.RУȆ 裭 .Q**2, .rbY3CDX$EyXN*@zYˢi RHYhtpESK44.%&N+ fS8) .ȡdY%yX*6$q`|, ;li +ir>Jc>@T]1XUĻ޵feIᶎm `J,I}$W*%b$kX9W-gī bJj /yrK뎎S14&Ѵ K. +8 /2S+#Hڂ^儡cL%i" +*,jhDM¦ZE!B*e E3f+6QE|?J}yȧ :/^wzAOI,ytZVxPȧts[|+ ?X|l75faWkz98WUvZYLVńj9Wcצ,އ{!l#*J|bm_\{f73M7}wK-t;*<}_^d݄|9$|8[5]>QC& __);;ޢ{$>|,?\_\+̂6ٽsYz!c٧pɛ]?@rޔzO{ ǿu.KJ(ӫf>^Fʷjr~c*8 +endstream +endobj +31 0 obj +<< /Annots [ 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R ] /Contents 32 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1514 0 R /Resources 237 0 R /Trans << /S /R >> /Type /Page >> +endobj +32 0 obj +<< /Filter /FlateDecode /Length 1933 >> +stream +xZIs6WfyHOmg!Q|sP$&UG"m-h-㸝d&\~xA_AOHNN~bXsX0e +-K֤!@/(}/mJp3nQFvuESlEa,NnP x-?Ny7Hc 1S81Lx޹Hp1«٢I +cF f),i (U}mQ(4~XΕv{}8pCd+V)"}A.wj S}p̂)@}%v: o+ G/"!~nQl>}ȣD||KS +EIWN$=4`Nd'6G͍ \kÁq6qnpHDAp-}p8<}cw۠6t(cGT,2a#b \*P%rHP4ʈE$5#-S&ħ1=xM,,$&~ y.=GM,sMcڽO`!y7yEݜ9I0Kߚvά|SNu V$U:pFX"E}pdޘD ;xt3:1*[F)g=@⸣_crP($6^_n.Ca J".`TY]Άi}`9]g/~~Qi;Qx/Wjf%/@R^|Yٯ.On x|[ +SPХ>>휻 *0w3nD˥Cw~C?ϣd_*̞~gvh>8嫽 \3[5^lo +P֪ESM%J.ѝdVcwW\ytt|, + +4 YoC%OXhLp> %d@ِ687:wm1~\v? +endstream +endobj +33 0 obj +<< /Annots [ 239 0 R 240 0 R 828 0 R 829 0 R 830 0 R 831 0 R 832 0 R 833 0 R 834 0 R 835 0 R 836 0 R 837 0 R 838 0 R 839 0 R 840 0 R 841 0 R 842 0 R 843 0 R 844 0 R 845 0 R 846 0 R ] /Contents 34 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1514 0 R /Resources 847 0 R /Trans << /S /R >> /Type /Page >> +endobj +34 0 obj +<< /Filter /FlateDecode /Length 1931 >> +stream +xZr7+pUB8$\q`ӺY>a$ߧ,qdIIU/'spp +#R jdFD.(, ֤T?'/:z*mڐp13nQF8ʼnZ TIA&e0zE@dS޹ 1Th,`sƉR90;7).Vy5[PT Zk!E<4g5u_y8 +oL~XΕ8= cκ,S-rxw5)p;G"8s|䢏t Aʏ^DBQҲ>>QHMz$L>sD>YcF3EYWN$=`Nd@3zuD#ӆ͵ 7ḱq6snpHDAp-}{8<~cw۠5:˴$)ϘHBaBKVZ D0%D!G!DᰩcO(eI"RŖ)gSe~yT#&9JucڽO`en69saՍ-v΢|SNu W(kʝ\;{K-,>ivT82M9))'݌s,Z%VQiv~mo} qQί1 (^_(n a fLR8Q1gU:JՙЃtY}|GEnZ!w0*_^Ɍ_1JJ ^M@RZYٯ.On Cߡ3/zΣ鎣#$;3n6WTpGOaYyeDBZMU/ k*\ui}%:`c@r*3Q  +PM]? +Yŧ+>BdEQ} j\h%ϡp։T| )Q8W82]y[̩5j s7Mn,P ~H[?KRq ,|RqTW,"qtyWBT[OyqńՔS,4Ԉ4rQPAdKWq[>CS 7^WG`\Mފ5#~`V~UouxUmGUi:V5DI6x+ݽrvgK| +1JcY rU,>8=>yLh|W`_N2pIA/ΰt x,Hz5D Æ>Guqꖧ_c5$.?cڍr Lv-wJ ծ_Z8߃ j]xLSԆɺo6El#yvV3aY|Y#5xz\{7qULrJm9k~chA-YjhGH;rX5_ŵ9Jas yp%0u]9?zx_% [ZdF[<>-MIzhuEvo{zcOSV1o>1O #s}6_}H;̵6+.E_KCB pJv׾fkC[Q4ل@ <%UN9  ѵO1OO݅Z84 H׳b[cSmftF LTfB?IB4._Ҏs#> /Type /Page >> +endobj +36 0 obj +<< /Filter /FlateDecode /Length 1931 >> +stream +xZr7+pUB8$\q`ӺY>a$ߧ,qdYqU塻/'spp +#R jdFD.(, ֠T?'/:VRR!bܢp,:!9.L'7+`z2$?sbЖY4Iɥ$90; - +d*_De5dҐ"}x$.pMz7#Ss`oK\ atLC|8pC9"ZSKb}AΩw )s}H*9G.H092Û9HyE$8[GC'IOg?qhf\պX; J؉̉{p_hsڰ'JM)ZK`c?\=*;}Kpg}b>O]6$xf\cCgIY.FJ-Tiez@ S2K[{d(6u )Qp6E}feʄi.EFee1ե爵Ie{ݘvkYnΜFXouc;ߔSNɵ{n^;{K=Y"E}p^s))'݌c,Z%V%.4xgt;xDﷷzQ>8(aטdR _/O/ TZϰ3)\Nɇ׳\ %Lr,>^3EnAZt`TEbR3&PborX?{]W xs˓:i(w /(fi19A ΌUpc0U28ܿ9@Xma^CY->9H(Vk)CaM`]= . dQ 4lYNef<̀A*eӫ`h@EP|ZlnI "s,r[Ue[Wru<•Z7Z\O]iH6~%9_.Ӫ,QѕUȜZ{[fѮ-ql1wadɍAֳT+9=R`KBoMxbc˻3Zj4WL^M9KSKHզW +";R%f_܉Cno19e rM +~{lhVMo;zcj;JUԱX %ٰ*wz1ۙC-͞z8+'*B*f5,Ut L1aZ^9o}:&d8)2@cq uՠ3 S9S> /Type /Page >> +endobj +38 0 obj +<< /Filter /FlateDecode /Length 1423 >> +stream +xYKS#7+t9XVR{j/) =8fظ6@tK#*FV_Ƃ}c}<p"{etl]˃ӍE{\kO'lTY}> P&L*Aɵlmցh-LYn\%Jb7}B͎ J@CAvܣ;=4eh9Di*h93ϭJLȱ_i73DbN!ϛ4WG_8,RC@@_;Ҙks%^D7ّmB[67dI-"><{pwH?Kw͊}>^?sw۠V.9#%HMJ.V[U3ZBɧ,!&B< ?@;:YJǧSam2[!˭M]oBdmV|@J\_˙6V3'm--tQK[ 6><>l]^̓)k 'I+оY(,͋^쐥o`O_`zFwA(d;0%\ )\)Gc߇3nlUxO(Ԧ`?rq.MXO8Ն7_8W[x_8݊D0#%Vk[yBÕyTCjũp)xb}))鳙$A0Q'Tws,6Ωx5:9ĞjJ6t=݅P}dN=>Fqjlگ-{<٭^X %%g <6‹1v#``8^̌A +endstream +endobj +39 0 obj +<< /Annots [ 901 0 R 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R 920 0 R 921 0 R ] /Contents 40 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1514 0 R /Resources 923 0 R /Trans << /S /R >> /Type /Page >> +endobj +40 0 obj +<< /Filter /FlateDecode /Length 2666 >> +stream +x\Ys7~ׯ[Qylg+o:!dՒ%nsZ.qF{$%whJp[5yZ۳A-'ϐ;R7/dP$Xw(u[)8YI_pV?vĶ\;g(#A8030W I⋓A2eKtYiHQDˣ[H086)vge[M=:RWbM2A +0#qL[@u>N#2vJ1Fs5zܗH6'e$ RY$fMW'W^8문 ܗCg?ͮ4h,xLQ9Du KspR^@,BeJZ-$ Yd +EuJS8@4Fj/L",Ȼ,w^] R|_yRy21_z6d% a+[925Ճ\L&2ɍ2X&%}rp^Lby %,_ѡCxmUb!68?)ik L#$@(Ҕ퀿_y+}Ԝ\B** WFoȯj|9o3oι=<-uˁ߼5D:% +08E oBrϖUA4 +s>8C)!L*Brg5ps0*] 6O2쟾=V ]h P߼]+Emj^D>C1iLKe^7n +vSw{kG +7>c^LtH8EwӁwSx3faw;2aܵa!.B)5%Zc(-A4V);uˢ_Uʊ|51xo! YYB-̔<$Bٔ̕e4rUҡ EA#eqb(TkRyuz2DGXW3R2`UeR01U2JҢ_ŘM+fH߃ nyj>Eu˻a~v +6ߵ7(/tSHWQ|8>AxE1y |S(&f:fBrwreҧM رV*h5_9$y/xR +5uy.1Ce-s)yrx⩏Q lf.׿pacv|?%|݂'h CLTS>l|2Ck hyq,xu(k/%pǿ\Ny⿘xI_P2z ;LrQ=Fr9F_/%Ϝ6uqʼ +ˉ޳pIwlG˞ < \2J@QKj$W_ajsxp cr{: C +endstream +endobj +41 0 obj +<< /Annots [ 927 0 R 928 0 R 929 0 R 930 0 R 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R ] /Contents 42 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1514 0 R /Resources 948 0 R /Trans << /S /R >> /Type /Page >> +endobj +42 0 obj +<< /Filter /FlateDecode /Length 2667 >> +stream +x\Ks7W*3Ql6%U!CQjIo7 9lE[] F?@J~>++P(V( oqIn :}m9 <ޒygIMjK⋵Apr}YpZ'a\< L g`wؖkG eD!fF㒼 HdPC5LR(sARx2h\PnӭcSX11~ݸ ޕo. #o&zX`7k57p@0Rt,ȦN $ WOh1 MYlVSNGSc$!iBz!LrD^_ǴU T#4+c'^?P96dG9 l.$Iн"7So߼<w HE$8 0pt]iЈYjM !s")4)m5RX*ʔZHR; : +$pNi^d-%D LYYN1KU(%P.'-2,ebڿ.l6J5s'4p 3_vx<7OfS?3VV;q]Pr_Gnq2{jgܴZrLC%LML:뜵F"YgK=`-e*'ʈNy!HۋW1+id\|%6Dn|p4!`D"p"E)XIf,7πa clCVs&q#$%)Z\$xEQ(?R!HF/UitjǍOfuӝ]}6y:.wut1_)Dň.5b0C#RI; SFq“xwB"J 2*~5C6=G ffN>UWa/90x>NZU;NVc+ ~_hٓ3xKg_B(`CuD㪃+z-1y>{#tS|?q +endstream +endobj +43 0 obj +<< /Annots [ 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R ] /Contents 44 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1515 0 R /Resources 977 0 R /Trans << /S /R >> /Type /Page >> +endobj +44 0 obj +<< /Filter /FlateDecode /Length 1777 >> +stream +xYKo#7 W(jOmwEæqRc%Ib7i D#Eɂ0>^ wHLYɽ2L:AZӭA{\ꆵgԬTY> Ph, Tk%dqp>lP&Thi|1ϥ " + `+bAr9;(HtZfˌ25gC-PQdiGqB5fH3>.XeQϙ ng;T O!';ќI[@g64"4VDH%E&d 4"1'I+a#zy ns!z ELz@i:Yp/":g-y$ޖBFHh?pw/O? /}|8M*Aj kK]6s&)FKȃ aLMFf\nU\Rx؂hZqumk\%o0;5bVU`"A*M,rX Wbbu ·+ͽu]2˯Y97z1#+&; ^.+B~4[ p:,lN/[%)hhJA]H&ޒEwU;Ķ]?=-LU ..cwHQxh+*oY;sKNrIՁémSvHrsn~eoǩfx4G?IW0jkxF +^/z`t6U/Njjz nċ!'UFmX$?bĝ3|~o;$XAb} +`lCI:(`IbT'M'S9“S#Q+# +endstream +endobj +45 0 obj +<< /Annots [ 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R ] /Contents 46 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1515 0 R /Resources 1007 0 R /Trans << /S /R >> /Type /Page >> +endobj +46 0 obj +<< /Filter /FlateDecode /Length 1665 >> +stream +xYO#7k9cKz>%<6Fi3>twpc\`4`'d:_-nrz_|,~p j.pqċvI/+&g(&w[ʻb>J"ȸ5ng+ֹ7_!gN"ΨlBMkj~P}!({d:S8X\"OH􅨴!6 l׌b:Bt-֭^v#m\'@6`LDeJy{ +-<ˆU#X3$X}>qG֏!:Ǘv>uSAGm']( {{w<=һA!S{܆>N8:J//֫ \Wy߀g,5"\tqmo#QoS3h4)s`#IKvRs m0O `rK77o#MNKWlb5}Dd=l +7K,ױenuEES b\ޖ1uq:n/mNAv>՞TxXoˤ~~\y2E4"FB$AwiLVAs.WસD_|~l5l_cBͱLZ ,3%30&akQTH= p:=Thy$@@dF +Ttu RY`&ıޟ77U%UwI&HεY̙gy\5ݯ׋bN;2G`GtȈV/ـ2ݎ!JaSYe3e tӾqy xDogSjiE# u!؇._t>NZ_|{o;кO-Q/~XބtQÒONا/&`<(Ϫg8#2O +endstream +endobj +47 0 obj +<< /Annots [ 1016 0 R 1017 0 R 1018 0 R 1019 0 R 1020 0 R 1021 0 R 1022 0 R 1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R ] /Contents 48 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1515 0 R /Resources 1037 0 R /Trans << /S /R >> /Type /Page >> +endobj +48 0 obj +<< /Filter /FlateDecode /Length 1728 >> +stream +xZKo7W|?S9=zn-9l4!\j-iu[>f7o7b0v:gg0"Nj"\r ֠g*HjZUH}p.nI&8ʼnz TIAf MI4p! +%x8T:+%̙t'A )Rn$f({ +DU֑TYdIi3 TL:jPB I-/`ݜaщ6[1S/ɖ:3'4xE&[y}aRQ{)WbM8*ǔIa#8fT{k H}Ȁ_;I,IW{pTGZs2Z'Ym,0f|YNt_ yv'O*Ѡeg k  gƣrI5\(̔qF2|? 8Β,4,K81xOIy 9,{$dbk)3k,=D]ѻ2e$tf넵YʂDsCLdV홳LE_z[d΢a+pü܆f,JdYHr6x\(WxeD޻Szav>MM +`5ߟOTHTF%Ԡf HlN>'܎篮oG?3`8/Fo֛ꗫXVr:o`ݍoϥߠXm5hq>¼9F$4+€`n LhXYq9[&ԅz@C1*5}m4CX_#N >f&mAP*j*4.4 )[|[!]z= u^ j*(A^#dΙT΀sY0mD> /Type /Page >> +endobj +50 0 obj +<< /Filter /FlateDecode /Length 1644 >> +stream +xYKo7W5Х~=\K ΐK.w:u] ܝ΋ +Fn #F7r9@aDADXA0d;'ޤG*Hd{K%59/8\;1`q"$^qURztOƯH H;M 8*\xo'Jg$9ӸoUA4 +d*OQyY4<2F ᆆ<S91w8B f|lq Y~sjG/J+ņRt@R0r}H*@s\ @9>2Λ'G DHkB6=D<)iIOg?Q5@a<ĝ5I׸,͎sZI`z)[ ,LYxpk.pOZ}) ϳ>1p_3JmЀYø39$y.qF2<pLI)鴐$d)u )Ip^IGzf+%D2%f9{o!ꯋڅД9QFBaK]OXf +x(:mc0׳M~͜FXK;gv+TMxA/*ˤdO N[Eޖ xѯ0ǣW*scSz>%<6Z*դn?x=Ta2\/ 5SDh@ +'3WO˻y-fgwTv~/.((%9HVp^ WtWmyxu#5?BiZ^^@pRAHXۚ УLhIЂ^fxN`1'NV]%@=By猧x?%#8I[l@=]&JM[<ALK`򸑗QoڬK-mZ:ڽiZ6h}aRm h7Ly 6`) i_FVTqp)$rEP 4* h˵&/FWmem&UG-xЇ̩-x`n=n (GjBhb&C&HnBԝ˔sLz?+nZe[pm;IQm>QxɨAxzMH@;.RT]zniݧ&,rW! %Q@$\b:uRCΖcL$Yc [n5nCP mazhdq3r9ĠFlmLh-u] +X5G+N\\jUv"%p0hu )!QDg1$n%E7Rxbf~H=%öURؚո/ٚKgrRcyҮNTX&Ԡ16Q{t7JoS s@Gp/7%e|І3JlU#1{?.>'n<ζVm-v_V%R'P&x /P8}Oz:XF5>S8mS8فmOtݓeu +=V9s0 +~$u$@ y_kX.p锠8j2 +endstream +endobj +51 0 obj +<< /Annots [ 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R ] /Contents 52 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1515 0 R /Resources 1091 0 R /Trans << /S /R >> /Type /Page >> +endobj +52 0 obj +<< /Filter /FlateDecode /Length 1934 >> +stream +xZYo7~[dK>ڧ(Z@>K6ΐK.wbu𛃌#?a;;=PFP'5VP. Ybcw*HduGJj2|Sq8(8ʼnz TIAF{p~2$OC.8*gMq"tVJ"3qE.?RxlQ@ SQ4ޑ9HCYT]eBk3@TLw"rW"CxGiB||njjo+WN"~4ڜ$|gMt$f$ R4W_\=jw 8B p_g}a>/Swڠ5q g#s"I5 \(\)Re}+:Sn!IHiQp1ا$ y 9(k(Y$bÔ-i̻(rBSxG Lu9am)`Ypo}c=+$+IQnE^ilsMsj) ^1#츹;NdOZHYtNYtpme9ė(Fy7JXr"P};wp_,l5w8`56~Mp9ZAGw4^}tGPo KBʔ-D6^ rKT=y& w +endstream +endobj +53 0 obj +<< /Annots [ 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R ] /Contents 54 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1515 0 R /Resources 1115 0 R /Trans << /S /R >> /Type /Page >> +endobj +54 0 obj +<< /Filter /FlateDecode /Length 1785 >> +stream +xZKo7Wfh>\C_E#$NUVi;>%+q] g83Cڌ| R$ќc!(Wyx3T3)Ͻ +Q#yTҐ1uwI(9&/Y(es'Jm)H`c=* 8w>ό=OoX]2h$xf\cAgIrŬFFJ-4ә} +0,*Qi!JQ4Q8S(ᬂF}f)iQĞ)SWӘw ^] Eee1ե~4Q2GQm +~;(+Ji*E_X9M9Ձ*>.Eۧy}oӹ2-C%V!baIpEL3?o$ +qVY WtTm.e ~%5y7Z\Y[tտe"4S0;kGn:F_,zz-\7 `΋z;|^ yg¯u]LShm9m9/LPB8SJN+: +i'E?bJpuHKަ`% j!~D,VEx;O[(W+ ?Jx> /Type /Page >> +endobj +56 0 obj +<< /Filter /FlateDecode /Length 1787 >> +stream +xZKo6W5)C_Ec$E+*v}ɿ _zbN ` g83Cf@yy-C{ FHED.(+rszo-dt_/+}ڐ0 Q.q,:!9'\L +R.NnP=FyힷP-h'JKI0s0WA i(0M'3 ) fZC )"#VpMv7;#Sw`nlR$ќc1(Wyx3T3)Ͻ91Gf%}#L>sD>QOcFs T"`,+a'?PZsL0' +_ }:QhVOûR8W߁;\=*w 8w>όx8|PM*A#f' 5 :˴EH+f50Rh!δL%DLD(!G%ep818D PY:{f)iQĞ)%+iͻ.pW22ӘR?bLQktؖ0ֲn5eE ÜYBXomah+ߔS3Tɵ{N/ϝ=UHq>itpޚsm))'Ìc,Z%V%.5xg +xDv}!qU_c +2m~>9\e5XFpr=#o&ռl*y>.τg{_DZ3@9%˽?o ;ٔOv6ؓ뢙y"񱨚ys_On Qb8b!/ˑ)ti1UA PW /$Mm:u8s(ؼyXp\Q%s?[ bBUOj<}}99/8d_own#\Vy`EŔC{{ ڷMplv-7ɿzcaoL2yV>yjqߨi(7Ϣ]9LjU0M0keW*4= t5S h?pe]y +WldN_wrJ YmΕUڥ&us[#MDa1Ylq&a2+in$Z#3 +$6 ',cn~m8xg*n ?>c|`?}s/|:5/rІGsr ːǺxZ N/љ,&Z2k pQ?sU+oAs%<65&N#! +||@$*4~n|* +w0Zهc8{<:݃;auG>*Ξq{p>DzXP"farslDtSd ehE +endstream +endobj +57 0 obj +<< /Annots [ 1148 0 R 1149 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R 1155 0 R 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R ] /Contents 58 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1516 0 R /Resources 1169 0 R /Trans << /S /R >> /Type /Page >> +endobj +58 0 obj +<< /Filter /FlateDecode /Length 1878 >> +stream +xZKo7W|?MȥmE^j% E}g%-lp~3#7'rh9w aDADXA0d]NGTo4/-]Ƒ\4ܒ\`_ 'Br'\P%,NHNvwQa<肷IRʜi\K9!EWq- L3T;k(gI5$S 蘔q5C(Q!\k\C1cߜa mJEA8b$*М-}"vՓHEE#q4'< R //Q5 a<ĝUIW/,Ύs2'YM+X[`ԛ/_\=j{{) +ܗYq/ bW-1$tI$)pp3B@HQF cJ,Io BzNLKd(04FzY$If2ʄ]B?5jBSx࣌ |6,Hthkbm'׳&Mn͜d",jbY7rCryO~ˢ4;M8]ukI.FC^WY7q1]Sޭף$;Ji*2TIQ:9;Wa2\M!5SDh@ +'W袜gi!]Y +3Z_߮>z0Qhew`ʏL+9loO |zVnO h|Uvr=Pm%ĎCfx)͇O4NB5hJ@Kyv R4:*XҦ@p =U+RqPIax?!'Rq )PR BRiTS`7˜L-014֐NIz1Cy,V35u@y=aL嬂;+ Agt#V(#ܮKPr…;<{pQ &sKrk(w \! / &W' +[USu0!*yt +K!SzU@H]mq5,`u?Wc*8s0az)>1E7E3] ]ZX ͤh +34 o4g\~6[~?K355SGZUz/+sXm͖' dLisZhb +͇R1xc?%Xsbe"a:w=73| xI> /Type /Page >> +endobj +60 0 obj +<< /Filter /FlateDecode /Length 2873 >> +stream +xr]_1ov Rʮw)>%3)jO79H%[V*KAO7h \\\B+pbZϫۓ^WOW뻪l^~/Q>TOľ,VqbH֨ +\XjQ)F Qq@fT9 d>l )  +Zk%PCO#m~8+:FcoWө!&X fdr3p /6tC-EuI2}ƒ[Ƈ@086)vgeHCKyeDߣhjٛ<Ao#~ǔ(uP,`A4Wz1AH|~O2GyH T)P0q{wz(w ͌ʎrwx}SK*Ab' +45XYXD AA-՘sPld#R{0T + q)vd u)pVq؞%."$IDU,hC-zV.S]6KA´{A_Kj6Ҋ9s +a+g+ߔSK5ܸL;yR#@;2gF I Dz^/ސ8l+aӘdj!ٹt-Ġ +nͿ6JHM5ĩ fhdC5a5Ts۽ץ׃^x=G%7ʶܶ "Àe, 1vK7?KGDoRpK&<[)jfQBHlM +"Pd.`y.C3;d`B?F) 9V22C2A$eϵ*[-$=:Xmj,ʷcLM$)RGjHi#u ֙!$j-ϔ۪FF'Q#R`vOE8]iEnKk4t۝^`]~q 54wx+RG=T< +ŝ:;l Lh 2pp +ks A5ծ"X h*aEo'J E +HdWm1 eUH=!ܩPscP 7ÊG#i%B]!\bD 53bLIȐS.QJ}ԀZa="uo +HJEBK CS?bU_If#Xf N5WQj*JGTjrVe q(~g+5 + %X@za~:Y%sN"G6c-2?(.@u1R_$fU9C9*,B%h7 vk1"Z )j"+)Ѩ{#hL}La4& cTSD1 +_İdM["RKP*SKWQi@Ler]iU?Cl 0%TNJ;$H1 +r4~v[5YD/m'ջ{#69cT.pڴ-;rj _wxm Vmd/$QΫ^|?^сԨM뿰r\~Ц2hv;XGMt{ڑx9h=ǭ1[Gm(g5u4mU{}ezPUK֣)ʲJaxr){4a;t9w|2]˖]}wG2UpSq("·&V`6bKlO:b*MWܷNoV+wm6 !r[ؑ䔙$ҚO-Q#8;Cpn\yv#k20֘;?8c?@yA!s$Ytk> /Type /Page >> +endobj +62 0 obj +<< /Filter /FlateDecode /Length 2871 >> +stream +xr]_1ov Rʮw)>%+Vm=ɡdNegh n*ZzD;WWGJ4*9aYW+l+Q>TO9Ǿ,VqbH8֨ +XjQ)F Qq@fT9.3d>l )  +ZkPCO׻#u~8+:Fcoө!&xB^ fn_mX-,ZY4peE3`plRBː:ثC/!7y$'s{}y?DYZg zD(YĉW}(s$ZȜlj{Ico^L;͗u܃,ӻG^L}f7v׻ۛk?VW ;Qܦ"r  h4Je# RH! aN +c"q!H'ʢd.@܅n5գr6}Ed5ZZVV͙Td,X9\\␬qMeɓyޑH<4fHJF7CRRJAWF![za[ ;$S UU퀟.NN3 .!W)~/oǵ`zv7 ~r-M#8_Rv^i)f Ŏv|\?xv}=p;]_.>!ٌ "Emt^K(W zqXUނ#hg +j  3R) K_Eu$$#B24 (B42vrc:2}%oJZ387v99)*JnmoAsչm88DXcnNu < ᒙLxPS(Hؚ"VDr\~]&0[gnv"2)(#S@r22eR2end"LIto^j% lCUd[$ +XI$zu՞YoǘƛHP g!2FHX3CiI8Z3_(U/V+TOVG8Xq$NܖNli;D*jh"VtW.V7{\/:y*/&;urw0'L@0eVr&|O_9jEG/k]E`ۍG+ .TŠdW/"eȮΉbtʪ*z11CSI(5Ǡ@n !*GJ(4B# A-zk )(f0 !4\V .D^è{DP W  .VU: ЧУ14ҧ~ +Fr l*(k(UuH8 PJ[iVjJ>2Vt@K沝DvmZd~P\Y!IE݁bIzrrT +!X'J=*=)yFIEHa jJ*3;<YH'Wڐ2jn09K5SgF2QHՖ %,(KR R :K^3EJe|"ՓkoP!<4Q'b$ +E$1RD"!VR;ESQF*3"˙T)TGK"יhL,abL-a0D0-%P00U_Dzf`J: gvrIc 2h 9#&jZk/A\_N«w)w G VlBs1~\i[>u v(~r<#$Q΋^<\o5%5j/L?S=Nm +x_)h /vC41zҝ?#sd=јo 6`[kiW'm լ1ߴdLQ6*] 6EyRv2a;t97ke˻xw;jl0ĸ-Ex|PB㗏-?L?כZ6{\owK߾?ztu^#<vϾ0w8n7O*6'ZLRwtGF=_=-F(ׁ-QF "!&b4C|$n籟ECrK/wZcFlՎq$E +qG! <pۏw[ 5# 8!"pM3*~=_f)QVsYzx~&erT'ݣl~ ;#pdp+qZ)h\ +XCgMf/l&:tR/;p +endstream +endobj +63 0 obj +<< /Annots [ 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R ] /Contents 64 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1516 0 R /Resources 1255 0 R /Trans << /S /R >> /Type /Page >> +endobj +64 0 obj +<< /Filter /FlateDecode /Length 1995 >> +stream +xZn7+xISܗ9ĉe7-@Y!#iFBOd{ZX^EUF#X~FIM CV32?:ht +-Y]&i8\;slDHN MI4`p# +)x8T:+%̙p\i.^av$0`SQ{H P"}u$p nhڶ.Hx0) vq5+Q!<l`ޜaɁ6[1Rl(Ȗ:p;'q4Ő:WyaRQN{C"1䩓VB||njjow+c'^?Pf:xgmv9'Ŝ~%h^ZSk>^|pHoE^p7Ί}:^>J4h`øABDrͼA +#e\22O )$:d M}Jkh#O($3ؘʄӻ(jBSx࣌ 6Ypoi>l6J5sKZbY7r]r^y0vEi8(aTd* +V=x{ytrB2\!5SDh@ +'Sqt>[oǕv4XjS7Fq^߂)?Z-g`Z'1gyCTͮsljר?pvJ2*MkSݖs@-eBԋIMX*\@߇U)M@(0Pmx^t?>OȑTrä-VeJ*AP*j*T-̴h#.VH${Yy[E9Y:dI =dGd%Lr/H_}5J~- ӹ+ irȒ"վjж˦PH7ŰDEj Q·ٕHQ;'г% ;#5͂gzݚb1fȆd 6.1" Pc)p3fzT삫_a(rXG3)zms + ?I,pp`\Gk%%o6BvSEzE `~:TR8.Z UYW.{z_x~f4d;06~?:cCXa67$u$PhBwpB>V96Xݧ2; +endstream +endobj +65 0 obj +<< /Annots [ 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R 1280 0 R 1281 0 R 1282 0 R 1283 0 R ] /Contents 66 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1516 0 R /Resources 1284 0 R /Trans << /S /R >> /Type /Page >> +endobj +66 0 obj +<< /Filter /FlateDecode /Length 1960 >> +stream +xZYo7 ~[@F}<(P@>lֳ{ػ6Hs 98IHJkF #XFIM C%] :N-Yޓ%5M|]q8(8ʼnz TIAFGpq2$oC8*g-DR鬔D3gqC?RxlQ SQ4ޑHCiT]eLk=@ፁ90ٷۍ\ ,1稗ysjPoH [H +|(ќ#}$P Q",R질bԦHcȓJ||NcFՇx;𕱓Ho(t\5$|gHsNBs$I0)_k ,~LYx}5Aފ[߁63+pxPK*A= 6t̉$)$p0R!(#":Sn!IHI(S8lShC>V$J63Xʈӻj.Џ223s(S`fýnL&YIB7gr#,rҷYԝoΩ +Ur^ymO~eR'N'Eޚx0DsV7'3|\^sԋ$;J5%B*դ~=T!RAnǰ5SDh@ +'wຜ&y!ܽ[ 3X-o?P~qi=(@9E(\rEjhQrpW1z^"p!~-"a2aa2n 8 KXݣrR&4̲8 z*)$}ڲ""šYlyDΤ&mQR DRidS!97ނ :uiZM**xvX)vR L &"|6.7'˒c!*V~ªgD +\LgWuNureTcEﳦkx{9_&Oz1'CV-*"OG3ؚU,eGj*^Qe~A4YzńFe:h>+ZSXZм@VQs ,;]WlO$9pmyפ?{uwnϫp~)^fW`IrU O>JN!JxbPlr0U50ޱ + +ˡNrR>&k PpI5d qs8lѰoPO4< ӯ|tzebK)אlg?W_@IOV4@.46v.4BHU $2 aӤ mZGr{!h}cZѻt0cZUL+C 6慪ۘ!S!#-~j3E=J$ٳ ?>kčUkic[e Ri.Ar* %Mmɖvlf @ic2WYiМJi9) @`5ح)XK?^SM/UMP6])QD{)nA +.@x`!Y> /Type /Page >> +endobj +68 0 obj +<< /Filter /FlateDecode /Length 1528 >> +stream +xZKo9 WV`U[}4z85{075`;b{<3qq@d4PH~(F>V wHaDhNPNko'Ao4_%5+ޕ-IkďP'Rp2[ܑ e"I89;b)׎93 !Gf`ʻ゜~$Iz8Ce2SH9KV(SxiGP@7u@ב33!.x ף3yO>'jќI[@g<#pH=K5 ܫLȾ_zT & 8ibhB4%ȓ L{ ]AQ56}Y"6HHSgG ̳Zz-5-Zܜ\R0".j\ Pc!`t=fqc>X'^4^TE_&;iK{i@Ëګ<;>( 0.삸SZvpBOvqNoc{{hs?!wiI ` +4 +măxx8d{4dAY}](*`,k]M^;OkxjϚQ;|\.ᏬK);) V.`H]}w +K{( 7K:"T +0\?ynx,^ ݻgJxKRwdxSٚ05՜n #!~g/k.}e/_Q j, m:>;:l)zv BÂs.C8w ٜ^F'BbCt9qr4]B(g\bque#$GH@1~b +endstream +endobj +69 0 obj +<< /Annots [ 1325 0 R 1326 0 R 1327 0 R 1328 0 R 1329 0 R 1330 0 R 1331 0 R 1332 0 R 1333 0 R 1334 0 R 1335 0 R 1336 0 R 1337 0 R 1338 0 R 1339 0 R 1340 0 R 1341 0 R 1342 0 R 1343 0 R 1344 0 R 1345 0 R ] /Contents 70 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1517 0 R /Resources 1346 0 R /Trans << /S /R >> /Type /Page >> +endobj +70 0 obj +<< /Filter /FlateDecode /Length 1829 >> +stream +xZYo7~[$ K>Ч +@P+T-=}g%R9>~n5a]9\9\oAˆ4:raȺ&WG;RA%kR>_VSV#͇spGrc1YɩWpAd8%}gowD`D;M"84|Gc2N$JI(s4!E l*;k(::jJ\nh]b`R*&N2jTB9;k!91sAܜaх6[RlȖ:H+'I4xŐ&GyaRQ{sD1ΦDc$0G==ZR*!WN|&d|gH1'E< /ck/h< +!A{[_2x8<*Aag k :όG$k +PX)Rey +pLI%鴐,44K8ShGyHf2ʔC܅Д9QF0T֦Y׶1_0ֳM>gNs#,rwmch;̩ +&<0/!NEɟ<:9!q$xgt1*QFxwq~9G=a6L%@jR8:>QRA.` jЀN..Ѻw"IBdBS&tAZ y V%"%Hd,io*)| }*I)7Lb#!AP*j*\ fZǔm^f3M]*`QuF*2o>H?0lWRٶ Ox`zdrHC^\599PmwUšуg| ]줥ŠcmCTBxpjl(rP,ɩўZ!]xOXaޢ#ޢ@zUUj ]W]2l-]«KoP𖸣1 /mptf[ \hB&aNQRKQn7J?F K MԨM61O$Ԑ;*WzãR7: mQW*z5>j,h}Z.qU(QT]=ׂ:ONC9ϘLiD7Kg ɶA6( 5:Wa3{WŽVwk kYWyv nb$Lfz(5Pfj*3.G"V##PmFI.֮F~am]Mb גeg93p73R]RZW1 V&l'on"xaP6dm +,v}}rSz;芀C;yR o(qWqaW|]/uu:t;FKҥ8.̠$]~tClȁlaxϡO=%63K7!j8YEzQ_Y4'3d'G'c?(5r9y4|8}!!_=Iۍ_fl{7H{Ypr<\BIX,MX;8!+ 3SG'xk +endstream +endobj +71 0 obj +<< /Annots [ 1349 0 R 1350 0 R 1351 0 R 1352 0 R 1353 0 R 1354 0 R 1355 0 R 1356 0 R 1357 0 R 1358 0 R 1359 0 R 1360 0 R 1361 0 R 1362 0 R 1363 0 R 1364 0 R 1365 0 R 1366 0 R 1367 0 R 1368 0 R 1369 0 R ] /Contents 72 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1517 0 R /Resources 1370 0 R /Trans << /S /R >> /Type /Page >> +endobj +72 0 obj +<< /Filter /FlateDecode /Length 2289 >> +stream +xZKs7W0c4Ȟ8UqKrPhQrÙ$⭊!z~|n❐39y{PNA[I9qo.f~J^ܿ%>>BȂ(=eoԘ"w9b|4s`Nc˄;ENc)\e{eꛯ~KRlwqcNz*'\ﱫD/8C,>. Ιc{ހZZ`-κG7♍"yԜU0m2ޯ oUrEE^;*|) Ս`2y*maxxhƁ烬TVzQGNw#692n TB:z5vk%q\m3:Nhk*,V"2uҐF۪3vUeĹnG.j(PzfD#=iI~ˑF2>13}g`x72Xl횱-fF=Ui#Е(ѩ zͥtxf#">8 :FCI`Ҍa.di!vw`۞Øğ˘!>$KuʠbTi%¡ @W> =W)8v1I#C#{7Q2TQWATI!niPEJlQ3 34OA#鞂 > +Qkpq,n0v "Qxѕ$!o`c!&pkr%܁!#Fo1HyQYi\Tl [a-kj%Υ MiyiOš?؞w@Ss}dt\}ч˿%XӇT}M'%*;kk% +(D4v#Şp~V +T~sͥtӵR*4Fye!+ؐ T0̅,,5ԧܟ*à> cROaSMA)LeFlV#deVG?*9µ*F2$5Ju%1  +K 3!NL݇n rOBlt|[zwE9~76ċ ԓֹQ,PoAijP{' I +z`YmWxLJnDCtJbFl=8oؼMit`x N#8{ Go +V2J +~_TB,11JE:*rKXkBʼ&f^8l6U7ˀ*&~:xy$}|9\>h]LoT6ش?{?{h|Mݩh*i~WϵZcsyV?I+}wÓ1ΪRT}J<YS>'1[鯘B> +stream +xt4oRZ{{V(EmH {#VR]VRjS럎y}yߓs}]\:P D2e--u (*rqjR.#D/e Thpu%d%e@(/G$JvCZ $BʥtDmlѸ2:x aiiIEG +#Z`-Wv#!p)xlh'!!wwwA e#pmz0  vL `` wGZ(pC`\+ +CpꚀGN0g?wwѿ #lpHS_`$.;p;@0n@Pp' ׈BnYUF::h_Q0=ltGx!NB+L] NE JIJ `VWzO'oo5no'7n z`4 HP8 ɎSìȸ3 {߿OOp"q_!ce}|&MI EĄ?'Tatu< g2m$0@nBpo!W!o3oa;<:@@ ]aH]۪㈠Y@XL(Gw=`P8b2􆿨Gt._o . +/_{G65a8:U ;q {VqH +l ƅp3(_k&Gj+ +AH&׊L˃rWSMD_=%AwZ,gfL?Ă:AOZ|ZV)v(Za<>b=AQk*Sa }M>3x;E I&w24i6 VًKiʵƹWܜ띹3}KUYEh&YvF2V.=ir^B6]Fm<=Es^*2DT_*9{vM7TnSp(ԕdy28ٖxAQ?.b* h5 'yduMi 16Ʋ5PYXV1f<]XfBqdQ{싖 0Fn==+lYŞh՟4Cdfkf/P*Q}w uw?poaf1E/ ZHS/OKFI⑺i)5}fJOjnOŰWjaRH' r[릨ʦ 0}'iG;Bޗ)YݨavN쇛Z1?Ձ%P;!(Q'\:rN]~LSӤIG~sPxP993[[J ح:Mַ=azkDp5!uRw\NΔG LRUl9U CuLMoGzޤ-tM?$* 3\g¾tVTI =~Ӻ^{3g~"C z:4̅ UFd=n)̰ +̒4KtVjfRY/Ym$G>THP̨:Ϭk_ٽ(֊ȕny ƼQ6&S䫯ut+>Krޱ,Fq4u\%]SnJL۶1opƺp{ V/ *U=~t] `_DžFXhnVG]g,hoLiڥ?36X=^3/}pYq In$!XFFL ʤ ^eK=g"J9ixkpw8[]q.kKEk 9-N3b&R+wL}mO4 x}k#xpP3\o7Cx.)C}[g Dz[q*]ΛrL? ,JoOvNDR>oC7h%;QFJ< W ז/*$LniۣZu\hGhYvQ V0U}`kqq.k[Zm4gSBɡ4xɏxojm]{HNٓeʓ7]ȺV:DAs] O%U +[=C~6_z4?ؚL*m(ۏ[牄MlmJQJ!_}yO. aCB9er4Ww5΄bY|WMҾt2Bp.wZ'; ~xuQ7#'Iikˆ[W=LhGl@ 퓋ŵt~hKvAeig )A\( q^w,Ɛ+Jr:չ܊ /=j1 +M%l7m$ϣNF ]MM~"zlunɑMs7PP-:b,ykF.V<)hoG5͙lGx(?U\a~ +uS)m M/◣Ֆ75^J>6OE_m yb,d|"$ +4wPCwxK##}k+5wrJݞ[T[ Im ٮ& rl|ُoe4},aP4ȟqj,1mrHeR'qqêc*=fīO{tY(d\2$qcI7) h#_%tj R8?Lf2G3~Gv|C>&,!O_vhE-G6X}6vM ֔7,y؏$.gxY%zd:aVLD~.!37hD]]~ g6iU%#҈Y&h6SS~& MΫ3 |d䥝V=tQmF —_LG@S%u n-ØζܮKgLpK@ic;Wk(vnm=**VBbPłU"QT+M]=mUTp@]#[%[]~''7P梘ӆ|c]^QMEϊsv~؂H-ۊ{?3UJw`ֺЖVqOKsH+}tՑO`[J];nfe-@(yi^^ޙz&Ȥ;;$K~]NuTբl]t|PZPH dORP/Q)w&!`_+ۖ~3O,̠nCJOc)u K{$Bclfێӓ:XUI)2\΁κ؟P"w5+a}gIY122|XBa!IMAt!+jOs`jiTA-j4O)H-fo82R,d]TSJM13 +w/.:ly]-O ȉJ^ +F5[{p&^tRPEDKv( +$3578uq. |ۇ̘X^BCQcd{2G{$Ԟ4/:(ZOV)n.X}Vq1*+r}F5¾a9*`mm`Zsm0~vcί@B'DJLyA\@laQ̀[6"9{#2ʮxF^L@S6chLD`5,#V߿QW5 [F^ɅfֻjnRgzrAr \6N([`2&R+aw*̬Qc*ϸN5|T*: i0aVuƔ6e R>}ӯuMKbd9 +̘%JaU:Oз$ g?FLK=~$Ѐv6f @ՈDVJ_kwBl ͩDh굳jU_զTkU#.zE1!|SyWj~<b)/90 $`͡nJb)gҤE@@#{eF Gi%l4ǡp4}R-*"XlvoRriq!)F##.Ѯ5TiI\@Yu%oc]ZzNQU,|'oѾPtmkp4djAѸeK<ڠ\O9GYü8 +um2'R2\\S,jlCO4(*8\۶mY"yS_G6u~@eOφYoVꘊ-oHfio^W=z}¶ +XʓW +endstream +endobj +74 0 obj +<< /Filter /FlateDecode /Length1 1425 /Length2 6469 /Length3 0 /Length 7449 >> +stream +xwT.ҫ4PU: +($@$H {t&T +E ޵]Y+y3̞^o MDU`;AU}{HS"pH_E` +c7$,K˃eA 8$/"UqG@ Rb\86z@`99# +AL0P81ʂ"` ]0Oe@ +>#7< p@"p4ᆆ]&z;p@ B1(g v#p = 'a$CH;s@C<,~:AhW~jW8^b:x}.h"`nbfh\[/QsR 9iiI: +o m8c"~{8 qpnp?m P@S':YX@>~ Fzb:j:*m'GT *')@FV(,@qFcrşҿv!g, ^p4n A_ov W;! 7$Y0CP_^n81)@7gf0꿭8~Tx-% ?8 8~Mb_W /~No?=W ~4 +$.%-d]W_mbv( %o "\H7o?nk=P T'MGU*l$3s-q¤p8ꑦkܶ_{jE/AO)Z98oDs{~;0>< F#ވ֊FiLrRY vRnqU[ #qzY\qJu36pF9ULZw]O%vtVJ02zpe%t2gߖ:P}Z +JtPb}*K ZϔoKM% 8"(tx]tg#hΠD]{b{2oy̝"R/C_:5N8 6Reo&q)uW"d퐟/U|֯`5)c^JOǒ?uɋYC}lBtAo&qjD2RDlNt}a ͕>~h'꬇BDJd+_߷/'IE\ښ#hڅB]&I`>:iEVN!|U?G΢2;r'|-R9,I?ZeI*J..JC=†YX?d߈J&נ +Eӵj}9_d%r+oD)B6@p䘮*8HeΥ:EB!݀$ IA'Y+12'>M*dгx,ԶY|L*WwS˗sƒ7l+45r>ϹHuȖ1y ^*,uik?H$`f;\fGch+iֹ?u%7}#@TL)XLVFKosB̕٬[WC rj1/ _[>iYgQ +,}4@^Q5)]miBB:;u6Y;<%8t]s qr7!vͽR򜝆2!2eẋ퇪01 |ig`gw2ɾ*nZ? |WI"yIA}|wgbzp(I:b* !_d܋O5/Ө,d_p7vT$fϊ핞 FF Ѹ+vV5yʀg֯C2 fk\A6^^5qo/LE=xц.-"3wS2h݅2 +(FƬR 3X-޴+hNf$E;ݵfk_IQnb4|эa(is-ށǯ +-2Ke nc\ bH g#mD/ζv +<꺯p#J +p5+og/tEP"͉6JPaii#_PW㚰?i- +>W"&RfYY*Sȥ}Ѩc0NMv o:N!%v \80 :{6v>ԕV^e +5ėFsϒ"H&)C#EkKOkZIs'R5&v-3j>YQTT7W+1]&- +7A0~ڸ^tۊqhk Hʹ@aN4Űp ko ի,a/5H˵o0%-{63 }@9=CMt:q^k_B3QrI)X M_yd ŕ⤽@M8)~ݼJ(|ꛏH10Gf R!D:d,A)RtrgKA?@0^%k?|]GuئҴ6-R 1jW'7 .,)Б8EgPq?Udz"nxҾZ;/[-܃vT}7[FR׾|j:7-JI&RS>Ai +wϩ|+ҶIi| ?iNcHYn{-Ze]7kH#ot/lMWL,H;g]G/xogY~2ͦ_/+T0Z,†HE3vQ ?ϗNr ,WVRO&C}`*1j0QL"`ZOFHkz%-ڹ(lq@.W]_!<14ENQebHrVgtFhgB5ۓ@SFB jdO[1t2:|X<&RݒdFKyDw`l~1amQZLuUͤiMANDuFF$H2ePm*^W&Ffd`Sܻ T@]݌[a27}2H͍b|I&$%LܝFthM<$GgkM0fuR}~nm9PF1zBQKZt8N`4[|+:t9j\8&0=x%w c#Oʪ qQ {$/Jn&u 2M|>a)xc]MP*f>LZRdž9Нa;Fktw ONH8RM'EQ\6FU`m?SZZ=oCЪز2n%tE1Sz,>C<*RGb^yKFLSiՏ-- |K4SXJg|t,A~f]%K~U)'t"UMW +9\)O{ǀL9"wFG sW Y] Ѧ^ȼ 7d@^ݲ-w{|cܯۡ,i^5J)O*~b %K41~mei'W5t-N'UrNԩn>[j4ɧp98.7 NvV2"jι;w>Y  +u+x[пd:9/6cUg@_^U2&tp:OXMSBuXq `*6n2Lێ[&)*y9*vjz MX}Ìvy~9c{M^Mr.coNyZG5š!<-ftGXpaG̖èZɮ'p~&&mq[%5[̪7/dʚ4mY`9%K9Ʀ$ 3>H|4 07d#wP𞟱>gnD5Z=WuɁ:V.% pmiHAk:ԹCV4c(`$H+Y\7;} ݥ[/,y`gh8%ze q_ +3ώn*= x}[`wwQ^1hlHnsYdқ4N1ez6K 7m:k?'T_S#Dua=V.N92},LA2\U* y4XV9IJHfLV#-m3bs9>O"vat6t.WU=Cz:,mp( Q8, ؖNGTL=б:)D%Kozыt]L( u>Ul5R_҇4eALZyy- 1F-5Y N<$9wDJ\N᩼&~g?* +? +lty F뀑&lr]w2:}s%}Օt YSz/>;(!SԒd}U}0t@KhfAhT6чfpxPhOl9|_=mD)拲FUfׅݩ(C<& v`ti2MOo7gZ6O>&IjƶRBOJMB5E9>c/-t ,#[yT@e1oreM@{:&3AG2p> +stream +xmTMo0Wx$ +! 8l[jWHL7IPV=M̼ su;Uٛ=w]yil;<[[j<=?׾+v`&ߴț<^*;~&Q>MS'>u;q~:fc_0F)lGιmu f8Gӫ6b"!YUe.`M{My?IC4}+̝l/Bj*{pϻƲO('$ *{>J-9_eQ"V$)MP:^9 ^` br @ {@(\,RH&ti +m+3ԅ ,;F$БzFFieD(0A1a8yΠFpnù[w6p@ )9r9b_ia|F-(:(nQHY^`nA|n(戥K}s\}sԑoA&vqc⠦ YK^ʛ!_my_)=^ ^{TGRw1RDž'xJzImi9j'pͽܳ/-_Z,N_: ~iyY2q,nЪ5QN Y58.] +endstream +endobj +76 0 obj +<< /Filter /FlateDecode /Length 900 >> +stream +xmUMo:W5?$R. d9M eCkmCp;;w~>|3E_?O]5߶w]Occ]=~?}Oyh9%?۹׬B|Ɯ>);vw;{>oaI> ѲH8U/RǾ0ñ_x0ӅxBiE.͏S=/b_ixމbc4fi|8EXD_R4.GRQhV̪xvqڎXJfUıkM;rͭSlҏ֋jU,N2@ ",   T[<5 1"àcvG@mg +K | +T|5flxZ1YP^ꠦdb}[ה_Q>kUbw88]k|'%Ǿjց{ g䈏rsqk:n87xIue.Aft0!?4ɳ4mFtӔ^z1?z .~l-qG +endstream +endobj +77 0 obj +<< /Annots [ 1372 0 R 1373 0 R 1374 0 R 1375 0 R 1376 0 R 1377 0 R 1378 0 R 1379 0 R 1380 0 R 1381 0 R 1382 0 R 1383 0 R 1384 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R ] /Contents 78 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1517 0 R /Resources 250 0 R /Trans << /S /R >> /Type /Page >> +endobj +78 0 obj +<< /Filter /FlateDecode /Length 6035 >> +stream +x=ˎHwe`SqN0K0wun/CRTwV7\bR `ݻNt}&O >?DtڪSNR}mş/jj}7~"A^wd샑TѪ{x+ kݿS{eQtӺS,Uw;! HhB{j~O +'ń_LW sTeD +>:_6,[V9mD]A@>%>AtfEKJAQ{+F hűyT&rXCp45@b/ 8C{1=$s"dr%xSDAL?p[k]ýW{9|{M0ܯ}do_տwܠHpF."r^"Ě**5XwP^= $ +CIyJ.\TFzC.L$*QH{Z뻢Y rGE7<Ʈ'[CH6B {VPw+9sVb:EJ;>ʱ\Fy +CPN '$t ؁#GwBJqKrA҃us|kw@Pꯩ9iD?~3V6VuB"?uy܅?og{ @%Xk"=偉7?B'y[01-;'A$.]~̯j׻zuz%icq ?}F b]h2H gԱP [*gX]Cw.ό3ʣ!B y5q( Mb<ҫ^{*O 0B yUhbj;~ +>Fe&%~٫WIonqɲ,%qB-4OwݳSs u  )EOZRiB 1%#& 4) Zz{SET 54 !RXi6uUI렭rJ) . OOz 3} P&ByWk:ʸЕ^?t̏wo㧆m5 ߣSZ +06{>j|bAgsO~{J ƏI0m|M&%} !acQE*zUM,R͸=Б>xX irC r>8>˷Ă"@pea!ݾpB4+xBZ(XN3b +*ޫ+ +AdI);iB1 fl T=ABQr] +R!9e#{uD +aG zA+!2JjfmIZҞOB?RKj~%m b`z(=pfV@MЊlcF`06SIw5"0On(i8( +)<0Zp Vr476"zlb6w 'fy-81AqBEpօr@5df8mSM6PUNC)fTl5QD0&C"C%(N9Zm\wAB$\-̶zlo@K~ C^$StlAq9P Z,K`2p`Ty؂@~"#I0Cm`$1(eb (C%9d-ܶI0i}_ʕK0T,S.#!~)Wn>[ܶЧPXccꗲk :#D06`"Dꗲ(C>-4,(kKgbi,oKLaBNM9KZ&}b[1i]P֖n!b,R[wVr>+E:WnOg5ƃRme]?܈nDEpnC!,It$꿗Dւm?c|Y&̻ϻ#/ʕ!Eh'J;si G:yvM̌Vk)5#_|%l0ʙ^V$0%V}jyr|ʑA1QrdFZ] S 0zv,Үu#(꺑._7R/)Z_6 xqƎu<5ר3G3&lj5LU0{|FlV* YMk=fګaJfE /.Q0f|(A궬X `3ę2ª5&62E` '[ Z^ٸCiφRg Z >!} ̽)J9UW06Uu)Fe$ Ƣ qyFtg2Tee-' [F, Lnh0/8E,j A 1,e@,b/ILXl*b%WYSqhTh# Ʃ,UjytSSj8Y!$(})aաD RU#%eD:,늺DK|'Bh9mX‰x2 ZSzf=:޷oZAŜx9i6->ghʀXąrVQx1a_զꘅhdF ) Պ ~Wĥ=1e˕˜*Z ~s0YcOPoW7mWd kpޖ|HE.|u g5a%; +B̾ +"cKWE{ +WlQKq*4,dsL1iI|WO+fqAdLE% ݑ&'OHޮ +m8ᄡÈ G?ilƸ`t\~-J9r9sv[ES0kwÛ?Pax_s?|EB!&?^U#z |y &NqF(<///oبzy \†rvQr(%%N|ˋ域Oy?.,5,-6 +endstream +endobj +79 0 obj +<< /Annots [ 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R 273 0 R ] /Contents 80 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1517 0 R /Resources 274 0 R /Trans << /S /R >> /Type /Page >> +endobj +80 0 obj +<< /Filter /FlateDecode /Length 6043 >> +stream +x=˒6w}RAඳ㉘؋{كnɎP#i"f7A*-vL @w3}J VNU/>w,^Wo>㫧/Z- 'Wݠ,)-{od'Uo}r\&wC.rs^ tݨuY!urB[x3@͉7x]D :iWzO "ًVsRe@ ×o) 䖽U#|=lhQ`)Q3;PO ݫERR@Pxxu<ފɥf86@2 &|7~,,Ab/; +q"b{QHLDJ:oקk*Kz.w鸿;<M*AZ+ ҽ **5Xw`'G B|!D N8%Rh,#>!lF(wOH{ Z k[ prGE7<†G_CH6AGVw+_9+|M܄"T'y +CPߎ G$.AGy R!䂸Yy?WV VEpq.4o}̭UݛwPa:5͏_y1//_6o .bƙ؟:67(Ӳ%$cۅV.B z@d8HeDӻ* +\cP |J,$P{Ѧ 3AN`JʐK*gX}"1#< $jC* k℞!ySvvU3ɣ0ByUhfjg +/8]ƁgW_5#8H|34Eƶ…Nwruܬq|]JKIREa9pq ^+QJ:~h]-UEgLH + M +뤞:z!Rй%2C?h͵HHe'-djTٺ$kԁCFi چ˸m!R&Q+L{%'0tEq }({ey{?UjpNQ5CHR +-#P,5!ЫA)ht +Tlڍ@&B$V5\z#݀ r# FJ$8zȅA0%LH"kc3g7tU7(#*>LE4UY!@@?-8iv{lwm8l{l$vWٮHQXPRʱC>c=Gъ$$efy_9 YdP.MFz{\6VV6R ++w07^˭ ނ̐rf^RxB\"e +G@_)"f%3\Mk%&_Fb2b'&s\߭dCk#3a\WŊXX- wd\)K&BjQ-*' +c^*%#%a1ޜ)/$C2(4BS#-b[*&b)j1$ fEOIfe' rQ1sPV3r6[`e`p2Q2TI9 $NJpcD}Qn]Ym6 &طT$CEA20bʗR3>jeʭ+FBU:ƾ/% 3TX}+_JfoLCCY{>cU:ƾ/%#UV :b06l`"*/i +o٠=BJ󙁩ַlRV5jjm"W.SK$+ uZrʺ>Èt7?aVM +3Q$x#gߟヵfuf9>>nF_gk_wS(7N4㮳|-$Y=9&C951 Z&殺&&.tLl?՚O:Fj&w/nq_Ƿd+G0R 3 GAV׍Dvr9LՒj}و2men]6oXj8MafwGV* sZk=jarf"Fƌgheu{V|4( ah\j}2"0Xd:-\ Gpt4Pa-uH;c68+9*WЫ֫Uu)F%$ fIgy~(CER9:h(|l(l>cI` +CvaKXz;/Ql2 X2c/IL|ƒe$',e_"纲(7ϢZ`3"i~Q\ Cd%4#sWt>%THݵ&ަ ]NSm1QZ<0^!RpF^H9]cD:& +;X$D&HWJ5IW$vhSe."2Tl9IA#*V:~1F* D$KًF"k;޵<[Zp)lz@:!|3Ψp٬-O\=! ,*P5_s$x|$ԯ0},Fۛ9LhE2Z25.r3߿f`7\0 g-HN͐Y岖ȌڭogCF&uA81BL22&D"B#/DD <=#p!S0C~>?3_締)N8ds>GdA 4qLޯ6 J(6Ҝ!V ZJM( Dby + E! "{=F ҁq 1d.-Yipgn4 Iv @HtU6L\ ]m$cF@5zF@PEwW,\;B(Et&F"X~wz,ӈq扐mSHDM^-%=7& |N~nމKARsn1as.݁ 0SQ!7G(hJeM +"Y/96SHQz!L"RsUƒ VRU5YG3@G[cO$w,^rW]NrN\|`nDoۧrTz CSڑТ-2"uEE#L̝h, F<FYY7rErPy1^NUO[E2g!fB)fNCꊻ8pliEȝ{Afѡ±OCw>6(iDvwnk[sȖ*6?3&jhz>&߫ ʠи-씁bMw1n[p=qL ?jntP?7V?b'sLk Q +Բ%&vaK8_]B6FԸC DZ/2.d}#ԽO-jNF?E*ΤyUćcvvN Vbf rA`wPCɱ>#Oy^3R(hBzϺ؍oAJ7ZBL:xI\'>d?iCک=c:!so[_!Rq lm>ˆH/]nnb:wؠi; c#A(:R#h.!*qGQK>5[c Q2$\;j0G2!L&D CrEw2BEUe|&ʟq0C V,@tH `in +\.Ii)0Ψ1rǻ9|))~G>Mj4538~i3^j-OSuw]յz'1pWYXpՉ|W~k<풊_=c p)r#CWOYNgO&!VG mF0b s(j# ׭I +N +#j0CjTB<2.z³wmQ" F% C( PHIcnD3Sp6OX^ +2P3E$0#8?^7 G؀$!RHH1$ă Dr;I3{tN!N$|d(+]bzvXj@q1ʛ"x"[x͠ŵTCDɕeYwj%hقbLa RAlm⣰H K;-R*w2Be[U7mD'" kr`QMb%u9r:|48V{,AIgx0.+8Wm.8*!Ƒ F8FFR-@ s)KTCD\i'Ϯ'SG#?Mz4"3I={m~=&gTxeTJqwoi+8##F(E>I(up瀍iB?ǏӃ\Ao.ȞcQ=Yx}돱|ÇRSCͪ#ͥVj[_cǓI5Qy9!^zd:Tbr@h]]yU;!;-M?@k .|߽0tW j3 ʾޏV!ZU;н /q?~|UB!$?NUz|u &NldZK ӗWE7lǹ=ڇCZw.󷴰ܬ^(%%Oxˉʽ@!̛QJ.* +endstream +endobj +81 0 obj +<< /Annots [ 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R ] /Contents 82 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1517 0 R /Resources 298 0 R /Trans << /S /R >> /Type /Page >> +endobj +82 0 obj +<< /Filter /FlateDecode /Length 6047 >> +stream +x=ɲ6w}R pe1-s螃$;B[RGO$2*ZY2ЫbV2v}J VNU/>woǢ/Z- 'ݠ,)-{od'Uo?^Mi]xczeA? +^QNC0Lff3M o޻=P G|j_=&d/F$bo[fIa| +6 _vu,[VmG탥Dc@@>%>BtEKJUAQz+&G@šy6y,@䓿q?~ſw"($[ĉS2GLf*'R9Hc|[L?<uܫ,ݻ6[vU *b#VH:/{9o@*,eU +TjN= $" CAqJ!XF|C."ٌ$ +Q7vznjy M~vl 'f#H!o30Vh!rVb:9 EJ;=ʩ\9NI$9\`4A*ťB,q2~M%6 +]h:O|̭Uݫ7Pa:5Տߟz6~6o .bƙ_?!tl/Pr .e7JI6 jWoG]@ =a\ IMz(rA6:+j3@ +LeF&&X"d9))CBϩ c@@;{Ph,8<%ȃzR6NUy"$nU!VQe+dowafZhk\}Ռ t8q2/K[^ :ލn֥r{r)q.%KY`xABCŅrz'xD)T7T1%#* S/4) jz{JKAR 5T !RKXSf몒`kJRR-hF?,zJKIR F! +0{\ XҩUƅ.t?߾ßQJx:>~xYW=?ϱJm8"G[4}%~ZhB/meV\_xh> äƣ.V\^yh>MT3be΅9!yۈ^IЃAI:{f5t VD\x qf/|l + ND4&% xlR"ncV"bOKX/ [3*Lg S7NMx^~4uf>-d,\^5a  :"$%ץH\bZ"C$YП)P7J7W>b 4d +2L &UIG&Edihդ դsH.xAOɤ* v줡CBap8H1Nl3Av?Hц0ew@a[ +3pm ^8"q0lFn@2hZqbb-Ⰼ C<$:G U4ꮠC@'Bp; TRRDAڛH;8NAXnx5ʸȁjd"( " JygefN@5^$SYoxPuG?#AD5Db0M"wdEbYgEV5c] o@>jpNQ5CHR +-#P,5!ЫA)ht +Tlڍ@&B$V5\z݀r$FS$8zA(P #*LH"kcg7tU7-(#*>LE4UY!@@?-8qv{lwm8l{l()vWٮHcXPSʱC>c=ъDDff-,r,RYh9+LW.X +pw+_);UVoAZYfHL3[I>i.2 ]X)"-3\Mk._F2b.s\߭eCk#wa\WŊXX- wd)FKBQ2-*k +c^*;&c)aXQެ*/$C284BS#-P 58D XNMR\QcI͛20ΰ28JO b$KfnlU8t'6(DdI2 #I2 (C%9d)ܺmTA&MoKrI!%e`$ľ/ʭg|x˔[WV[6F u}+_J& XfX!&B|)'>js eiXUVeY&TD~ɭ'+eچ4 +gZ߲J[mר\ L--4ԩrkm:ʭ+$F#y6p>SL Y5)T?#~V[o'֎֚יf}]ʍS(͸'_K=Is@iGrŝVɰ5U3_xMGNZ\ Fak5LZ_ c~7W8/W # j )ͅ#H֍HF"|H&jIlD62'@pQG@F b5LU0q$Vi9XzH09VZe# + cFa2պ=+>dp0R4WFXzOEȉp^2|Wmv.Pڅ+3| r8h鸃ڂ:띁Wi{NM+UUºc $N߳r6$0@0Ɍ%QMf,·uL6I,d`$L&>cI2TH/s]Y{gQ-04?Ĩi.X`|qNĹ+V:b* D$K ZPoS ׄ.ԩp~(-fGw +)f8e#/@t.G1zxG,"$+%^Z~ڤv+XCakp4ũqk*$ pQ+ "E#{lٵyt--B8AJ6W Egy8l֖GI"sq" +s׾  6$g.+̥}FKfe%S#ZLLͱceSD14 !y)өR9 \rQPm JpȤ.Hg6Fɳ\iFāHA(uDp&svCTakn7dy +aKz4ũ_9l,h5a"rz0κ@xX``AF3j!T wdZi#tHpw=OZ!Ę(uAdѨxQ:P5;#/,څ2Yb|1-yn~-@!]49 J&) ց6 h èMF`JKGAbqHZˏPNX!`1<t +H%7UÐwy-DŽo=v)(\r=&pN=02C8f**>ZI?zX$¢%fB>)JB#@@$_ +| +XrJ&V=UhhhKtD|KN㒗*<*VΩ̭SmCJt(?bjB;Z45RBOEFZ⸮Y@w$Eaވ!3k^~;xSN~*/)\i+xCFW:l^(x i5C]qc~}P>ͱ} s5L::c8iUC]Ze;N qm }R%pD ]o;cDŽz8{B^tސ2P.íӔ`Oq'M3MrJ~GDimav=?^AZ>D.,r ^ƞՈwdXH b}Eƅo>"`^E-٩3҂Hř3b*tpNniJT}aU;n*z49֧68 rl>a ˠޅ @M0-eBya!FZ.9͋qzU#iE_OXq="H,/+D*nr#G1 } _R0m!zL}3EBja-%D221@rIsۧz cЂ"!JR6PD+bg7@ 戲Z&"D@h~PHQ"WD3fqC֣ +s)!`3M!KY%)-25&Zx7'>>%oI tW|u]ԯukci.C>+V(545[< }:qJ]OcS]Rx,A.uZnd#V"|b),}ӄ=H0pFD!pj))p̍cwfJNfW K]FwF}|>1Qc&P$S +i)&x !H@|' Aqf)?" @rKPUώ`K9\ (ӹ^_s&mi9 ,H Τ좵|z_z 0u|L4<"0OϿ|X~1O?{>TvjYuJm :v2ȋ}8,A G?iqOCwp v9S8JnNe1w]OŸgک1ںJU;ɰjcBρ/X)6Ls){r 87'pH ΥpzvՋҕ8%2PԐIwo9Tgh~>Sy5JiU<O8 + +endstream +endobj +83 0 obj +<< /Annots [ 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R ] /Contents 84 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1520 0 R /Resources 322 0 R /Trans << /S /R >> /Type /Page >> +endobj +84 0 obj +<< /Filter /FlateDecode /Length 6046 >> +stream +x=َ8 +=Mx})>샻|.`v~5@v#D1w^&Qa|6_6,[V9жNh)2='լh)WZ (<>|oRC$^KZ 'BH>? ]@}G!q,N"^~O#ɜ2D ^T#Qӏm1pܖ^dU_8>w7TR)BaCDN ARh)RRc|!i(TB$ S2r f"Qr׽G:$+_Xb腗c<*66u=B@2wn9Sދ\*Z (\ĸ؟7(ӲsDbڵQlz}{  +$w5n-*Y>S#V`h/743pF;LIr&NOvv<!qFyԒt̠iʼn 2"c7,;H!-458v0d +[44PPbKJ \Ec`2D "99a]B&XEP|$DNlgQ:Ԅ(= "Wf Au&$F .&ىj`DKNljfQv<~CjvVZ"FTjVCW.S LD!kQ둏4 S%=6" CF7 FADJX,Q!wd"$b Y ==|naBq .2Ɖ#"ȫŌC=X;0%Vtnc8iO@bKk1d2d[O[ܶЦPXccꗲI +V*uF`lƀ}_*o|ł4 |<ǪVwY&TD~km'Cemi2-6L--uc+ٮQjrZZ$hst&P?(V#Fsq4)}jR!%D#`9V8bu aX1$:PBYzԓl1fʚqgWhʚʚZ1d+k.Y/ڹ^F9z^*w]/u?_[2>זHe +_&^.-EڵEZ]Y+K3֒T Kx4.qu Ʉ$Y)S&vϜ&j\avVi5Ȱ^R{LXŅ% +zcEz!8kݖ5! d84WFX +#YNVȉxDV2|Wm6. QNjtr<hЄ֒%uH{epWҁ*K(wT2c 3$Ny&1PQ F}\rK'l9I` +TvlNfsA>rTJ'%i20FD"o&$F*I$kغ-f%0*4Ĩ0X:`|"q֊-V:c* D$k+nZnS D OSp1q\:0^!rxfHD;ct<& +;EX$D&HWK<-,k >` 8 Xۅ-NXPd$ ƆIT$X|e$e}mזl$iR +X,S8QbmyL[,S8W hB9V%|ȶ~ָS}Vlo\Z5U_Z]L|/[q6NAt`W|1( ϚN;Z 9e7[_'ϐ.F# )^1yшӖ8xOޞ'aeGX)32; 0nj?q!+# gMĥi!-g]TTjo,js0qڍbmB3j1T7mZi#w:@$fa'm +bM ׃3j*^@T͆[ 1omz_̋Ak%7 7qHt xNBoI` +-m`쪍2ap:jF@PEX,^ ":Iō# ha,(ndC8bx"$dT͑pCWrKr0ÐwysġJ-@ v(r @&^@02C<#f,*=DVIZv%k’fB>)IB#@@$_*|TrJ&V=UdhdKtDzSIT* xEFW:b^(x a5C]pT~}T>1 } s5̝:9S8aUC]Zu;N qi } r%pD &ںw>n '>pjz5214m ";eXӝE_)i}+Vg`Ïg/ޕ ;OXz߉^AZVD>.r'^ȅ= +!-2P`"ܞfUku/SbZs'g!۟#UO٦H>;{N3VfqBdHc}Z˓'$(9R2ϔKY>BW齱gm(h} 3q'i2. hd: i4 .NS]7 s<&z|FXB"`4 5IZ\L6/L1$Q+%74rp\m"i<AZ WVZwq +J\`kF'B||.>0m!zL}3EBja-%D221@JIKۦv <c̰EEBll""W$~ę%(:BP\! DvVeS7Lw.+ںh_?vTm]l݇|DuDuK=Ԁtnk}8 N8a wq?qzN vůRjaky&C'n0oON7=yx…6L0a K2Y3s(yr&x*6']%Vu]]R9aԹ k}kp>.U< ]jq}lQV7&R}v&'ݑ+:+LHiBmHqiclO0b+O 2DαCS=,p-@qΕ1ʛ"t"[x͠TCDlvj%\4\bLwҰuHT 6T*6q', &NF6TJ! Dv^ͲWk B +Qkr`QMbeu9r:B58V{,AYgx0.-8Wm8*! F8F7'RI-@ sˆTCLLRi'򮧘SHG#?Mz0#I,]]j{L¨ؕR<ޔzZokoqDG $ar6aum.ƸscqP62&2Mytq\&YsFGʜ q[IxN~fgT}~ZzsnOӃQo..cQ,S<¾iT?׾TvnIuJ:߃A=QސA'4bj}3*ߒJJT + /ᰀj=6xóqe_n*}@BJnNe1o>|뛟C&Y;TCL6FL%HI~7Qhy*%b_^_.߰QS' ri!޹O? v%xQKJ(M t7??A|"~]x%JY'xmE8 +endstream +endobj +85 0 obj +<< /Annots [ 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R ] /Contents 86 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1520 0 R /Resources 346 0 R /Trans << /S /R >> /Type /Page >> +endobj +86 0 obj +<< /Filter /FlateDecode /Length 6047 >> +stream +x=ɮ8w60&.j1/z*vz'(EK.U/S`l$ .{ۉOD)SGN[{=tʩ^*}ǢZgݨ,)-`d'Uo?ؕ^M]|c{eQtӺS,{>! HhB{"D; o:iWzO"ً V sTeD 㗝o) 䖽U6!ZJz2)A {5+ZU +".'[1Ԅ>E/ -ȓS!z =_Ǣsa@ٿww$ߋv$Q&3(J|$ +b1-_r\uܫ,ݻ۫~-;qwxxSI*A Z+]6DҽD **5Xw`/F BzN!D N8%Q. h*#=! l&(w/H{ Z k[ rGE7<Ʀ'_CH6B GVPw+_9+|M"Xt<@!(o'qIKlF٢;!JT% ~RFOUCuxB⺩_S#s\ ݅Փ~4{ LٽW\xw~^e~tkM'%g'0t%q+o({y~{?66'"&% ;6)]J1+֧%J\ݭ 3ޫ&iRw-҄2c%2B c% cBGd4 SMKHD[As3F*G zA+!2JjfmIjґ#IG +@jR{jҎ96X_ Aa$Ch$4gH́0F*I$kg嶕܅*H/I[R\D`r oKr[- +嶕܅6VMR:P3Bc3L[R6WѦO|x+Y9V5Xطl0R]'B L[|n>.(kOi|`ji\vڿVȕ"FC+զ3AܶOa0"I3ݤπx@XT +L/3?ȹ +Yp֎smw6ww/F_犁oe5q9rbu֓od94V#\Y3U+k+k +jM#/Z\S&a)ʝ3kj!OtiuMMTYCOP']^TS`-IDYbgMxVQM&jMMU0q$Vq-9X#zJH55%b"(yq>)gu{֍,Q0Nx^aJd9E` '1{Qt}P_ٹlDi/3ORӁkƃZF!} iV_IFOs,MolP9[H303`lc@d-c,(k9&Nrޓsټ'Q=}>P6K<,d`$EL&>I2THֲw[Y{͊QK`y"iQe D'd#3`t>Y%THֲWݵݦ•~:Ibctl)`B !ߐѩw: zLvHLDxn ZY&|t%pl d*bH 88 I 1PI "Y^5ǖ2]-HHIR3H9ҹYpF()s)×Xp n@Vr\W.##1ə3q7RLlBR?R%v~fNAu`7&|d1K N;Z Y v_&ϐWG, )^1yՈӖ8xnȓ2 L + +8[pFigXsw}ȂY&!qigH Y(U2 쇰(C +rvcX+\ }VnꝀ3YgR (t.UnDb[}|[*G}[ $k*%*k00;xq;slccXo;ARqIZ)Yp'ml0)' F:tsҝ&0(n1q2O w.T.U9w!qx!;!43zKF_Zv%k’fB>)IB#@@$_*|TrJ&V=UdhdKtDzKIR*<*UαK̭VhKmCNJoft(?bjB;Z25RBOYFZ⸮Y@w"TV%aވ!3k~;xSN~,˩\y+> xCW:b(xi5C]q{T~}P>1 } s5̝:9c8iUC]Zu;N qm }r%pD &ڻ"w>n '>pjz62u4m!;eX]EhfܷI#p '+ k=_bZ];+(S>|He0w 5a% + +B ̾ +"cM7EE +WlKq4,ds 1i|8f]`4ceva/*Dv7 <@ZN:e\?!AH^md: i4 .Nd] s<&z|FXB"`4 5IZ\L6/L1$Q+%4y8?moFN k +GBIÅHm0X`#Z|>{y'ViqZ6=>c!50y;#B +wD jScP1fX"!JRF6PD+bg?@ 戲ZfD@h~PHQ"W ;9D3fiC֣ +sΕ(!`3M!K]%+-1g5&Zx7'>>ؑ6I tW8}m]+cCi.T>+QjikL>yQ'fHu4ߕ滺8Zk=COW)X0^~&2EņӜ7Y Ց$Fmm NX[KufPc6!n.*xQ@Z0! + +#YeSOx򮍱m"J>D "xLj))p̍"͘.ͮ"X"x\GoO,\$!cHH1$ģ (Dr;I3{t!N$|d(czv4YOZZ=<+-ci7EhT.E Aq!QKk Y|Sq$+nEٵJhŘa RAlTmNXN AL$ťDmbL;BD\%䭩eD' P 1*V9Ļ8!b%rJfu\>jqj3FX.:\$W[qL'$\pTB*L#*pH N["AHR /'rnO,]]O1O~i xkg$/X^1ֻz{QQa+yؽ)B)zQBӀ xu8lL :-]>x㠶62&2Myq\&XcFGƜ q[Ex~fgT~vZ>Ooϔ{>| |uoS<$ ?2#o_NE/-jRi.p)IrRZ<ސA'4bj}1N*_JJT + /ᰀj=6x'>wo U)&x_*uQ˼c^j ?.ڱ1ںJU;˸jcD//X)6BS){rx?gpH Vxzv[ԋڕsE/) T45d~[^> /Type /Page >> +endobj +88 0 obj +<< /Filter /FlateDecode /Length 6049 >> +stream +x=ˎ8we`SKy{)f. c{ JbDTU[pe*2 ѽDg")@D:5^*}>-^Wo>˧/Z- 'ݠ,)-{od'Uo}r/\&wC.r;Թ^Y/|BvnԺS,񪻝?l&`siz 4{=Qqt?N~ޓnHbD/FΫ92 L_^^bƷrު6}yGբh)Wj (<<\\oR3CD^Jj gBH>{ֿޏE?q<],A߾8n'~/&eDTNs*(~|u8nqq/wor +mM5UF +k6t^X#HrT&X:Xc5>߁0z@H-D +9r :HB8?|\DIu +vznjy M~vl 'f#H!o30Vh!rVb:9 EJ;=ʩ\9NI$9\`4A*ťB,q2~׍M%6 +Нh:?^?{̭UPa:5/_o^?_?|y3i@[k=偋q&-͟5JnŴF "vU(~Pľ=ƉOMhzCEk *YP#V``/741q&;LIrfNOvv<!Yp&yTK"T9]'Pmv#굳DIݐC@3S˄?Wx( 08>{?A⛡p'/e^0Խ.t=3ЭKf]TJB.BG·ȁ CH" sPLs. +:~* +۱@Au +y.*5pMiIw +Qèx6JV.» !pHwVf]=MmVPkAQz0E2!=+Uw4#1q4NPC$$r@&X$VuVdU3M=VtC(ovkh GU3$1R tጜX@@Fd"DbYup^|@8BNqDh'E` '1[Qt}P_ٸlDi.3JORkjFZꐮwFpmpWr#Z'9U&P7֫U-F%$ gILy1PQ F}1j0[nb{9 +{Yo]dޓ&^΋rTj(${20FDs&$F*I$Kٗ-MfŨggebTdieQc,I0>Y8H +O1F "r7l)pkBT8)\ a#|=̀W33c :C=#u>.b {C +D7b Rĩ'e3<7szBVk63+1C# E+!&rqZq3DD <$p{FxMQ[ =8̸~R¦8+&LDTlOY(V2 {,( RzcXKH/|NO+m73Y4g[+``& +A]0>h\X 'Zk oKesbZ2ܔ{-Y) [hMsX8-]&_*S`'+CoFQ_\n 0 [(Yp'm0;g F:tK<]R*la<]-=c„o}Cv*(r]C&pNUC0C8f**>ZIZPB,UaQHc3e!%D />Xl,`%UYU*q4C z%:D">pB)q~k`+VITy_|}!G@ph:15 -)!'"#A-`q\W, Z;Di"N0ogENxYd)'?s[_"/~t+b6bOXGdN)0Ԫ.hcFGn熸>lmS8aZc艏=Z :l/ N(t'cAAiee)nq11K.Y0]4k!@Xs+"R+ZQ +Բ7D_'va1M8 ^B6FԸ DZ=?3.u}#O-Пz8ADVEnOC'9svZ;gXg =tG"Z&="Tz2 EWt)4g!F{Umzg왔pAJ7Z_CL:xI\&>d?iCک3y}tB"BA*NxVs9@Ra649Mc^+f3Сq ]XDA4.l/)a&9&b.z9{u9?vw ;+GBmOH4X`=##RtU@Ƀm;D|XH L>#PB!FZ.iXobZPT$V*(rEBtQZ˄Z0-I"@ +aUVu#(:z4aѹ"%,|+$r* ;%E8DTѧ\ҧd4t{࠮ExSl?YS=:}#|&oMV{$ mD8#@pj))p3)&̔.6֮$"h }b8ΏM68I!$!RL& CBc^$ 'D"Jyء &P\͇{ c-EĖf3(4$jq5"+o{ d@rw*v֝ZB\@FiH$HT*fha#(, &OF ;TJ! DvYWM+щ!js.X`*pAI'DD@ܤ+:UmEPR"Jy:Aq JHqB)0ѭđBrL !#D.0Wţ빼O^< x/$EKڞb#aKu^fVrݽrXBm-JѻOJl+1`cZh''ԬSntí;w:;$uncӔG$En`%)?%z}a̙@|7 -8z?ߞ/}7=t&y>?2o_E>-jVi.ҷpArPVNoȇ^'4bn}3*_JLM /ᰀj=6twóaeﻷn*}@r`!\ q*uQ˲cjo~zŸک7m]*BdX1`B,AZgLs){r 87'pH np9-l(7+q/J|I e!0rF'ho^y3oD)ʻ|g?_ +endstream +endobj +89 0 obj +<< /Annots [ 373 0 R 374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R ] /Contents 90 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1520 0 R /Resources 394 0 R /Trans << /S /R >> /Type /Page >> +endobj +90 0 obj +<< /Filter /FlateDecode /Length 6048 >> +stream +x=ˎ8we`SKy{)f. c{ JbDT+S`H|C'?٧O _":mUЩQR}mşcC_?(xIպnL8eNi{#;zUwKx4vz~ӽv֝d)`7Lff3M o޻O>5@wӯtD#1w^gIa| 6 _6,[VumG탥Dc@@>%>BtEKJUAQz+&" SPPɀ<<BG߸G?~ſw"($[ĉߋvD#Q&3)Jx$ +b1-[s\u܋,ݛUq-#;~wx|SU *b#VH:/{9o@*,eU +TjN= $" CAqJ!XF|C."ٌ$ +QH{Z k[ prGE7<†G_CH6AGVw+_9+|M܄"T'y +CPߎ G$.AGy R!䂸Yy?WV ˦VIpqN4o_Lƪ{0Sd7o_ϟ>˙^0z5E8?BO%bZvdlcЪvvep^b_ &M4롢@5W_HbE+0im`A8d R93'@@;Sh,8<%ȃzR6NUy"$nU!VQe+dowafZhk_Y}Ռ t8q2/K[^ :ލn֥r{q*qN%SY`xABCŅrz'xD)TX[ΘbI=u=% +C詠s*JKe~Кk *B%ʈO\[, +Xٺ$kԁCFi چ˸m!T:&Q+L{%'0tEq ?@}<޽_*z(Oglks,+pE0ib_^.-a ǏI[qm|]0 >ZXqmz}0QDo!Z:u#.+{%Ar%rsEx-XirM )r:9>˷y¯8ј&hpIzV3k}Z"JZ=73tf;uԄW!uRjGSiFY0 J&剱Y`=ABQr])%2LsAs2J*G !҂&L!S {b֤5i֤L TAaieCw3詝4:T؎R4t\= ) z&5"0CF( `Q`צȪjީ #2`yÆmD n!'F 6"(ˈݰX>CH" sPLs. +:~* +۱@Au +y.*5pMiIw +Qèx6JV.» !pHwVf]=MmVPkAQz0E2!=+Uw4#1q4NPC$$r@&X$VuVdU3M=VtC(ovkh GU3$1R tጜX@@Fd"DbYup^|@8BNqDh'I`ɼ'cM$):g2yObD}ڢdV +hqxY&FO&X65Re 3[$΀dcPI "Y^(wʆzb +WN&t9Oz<"S xH1A0C!=S8t9(=b ^)&|t8Xۅc2NXPd$ ƆR]$X|e$,e/}Kmז~D㤂i)RIX,e8Qg}crAj:utpP vJȮ&ںjw>Ʈ '>pjr372谽4n.";eXӝEm  ז i3\2 0]Fk@Xs"r+zQ +ԲH_'vaM81^B6FԸ!DZ=_4.CF[[`?#-85)Rq뉘4ݰ>쳓t`%v*o|ϰ*7v*zd;֧l{Dr@TLR(hBݍ3i: nt𸍓"L|~҆4SgrDνUn,C`ԻB 5^aL6L1(Q%]6*Trzs\E_-+qE>NAZw V[p/ n`FGB|&.v{vԁ-L[{S BѱA<ĽHD w,QL;B"\(3H T$Q䊄 P9쵖 a2E'Z*+#D.fG. 4QC"2t5hgsEJXK~d%e'F$FLbsnSxڬP㈵8*=[7^K un rZ߂cUvOKXNq]e>9w#6 s;w&bZ&FlbԨP҉x]29'?oڀ['D5JE\!" +Gf@(!RnDJѣRkrZb"1(.!%j<Ked"@ +auUݴXKR67BȁUƵr20qBĪKM} 0f\%u!1H7\WHฅT6T(#mI!$.D Ω,/t!_ 12Os]z<˻l!4 ÀߎHb[$Ѻ)ֻz[QQa%y=0./$ar6?zN:v1sdrP6LFR^_+s&k'é ,H Τ򤵼Oj/?Mr] 7z1{Gus\ןbzO?sKlUG{dArPyNTn7K|1LʯI%&~ +?}epX ]~qⲯ{C7p v9S.8qNeSO~ ]7?]h.R!?q2ژsK0! -Gu3F幔=}yXD|MMm8pCT86Ջҕ8%2PԐIWo9q7‡љ7]V]>3NAl +endstream +endobj +91 0 obj +<< /Annots [ 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R ] /Contents 92 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1520 0 R /Resources 418 0 R /Trans << /S /R >> /Type /Page >> +endobj +92 0 obj +<< /Filter /FlateDecode /Length 6045 >> +stream +x=ْ8 +=#6e^񶳳1/>"af#1$!25]r;\BB $@Nt~&O >DtڪSNR]ꥋ?{M\}_=$xMnD8FeNi#;zUw{KWx +4v/ "DӽNNCnf6G@B=PG|j_=Gd/&$b?O*#%U5a=eܲmt5%Zz2)A {5+ZU +".'[1Ԅ}?E+ -SB@6[ֿގE?,@X.fBIPH?GSH2'Lf*'Q9Hcz[?> e_kuo2>{6U[?yW jZ!mt肰!"' L)RRc| 5BR(T-B$uD\0|\$HTvwEz菊ny]~Ovl '9-fD3oVX7rl>u4rv|cҍNI$".AGe(R!I?5b|keS N MǛg/~2cukcUAN `){Kכ7]zӧߞϛ)O.`&bDO{wOw[?܂i9 "vW(`~PľƉO{un=*8X>S#VP TYH g9VSR^R9'~v<!qFyԒ[3rA& }]Lr TLHJq,iÅE00&i9U6K?GM!'I068 Hd-+=[K2Teܰe-揖 =%0Uuy8r#*z$L9 F6Ll1PIN"Y>+e.4A~L`r %B˔H}_ʕۢhV(e.)4طlam"1`"Dꗲ6}[>_-XXccꗲxaBNL[|n>}[ȴ> 0֝UfF_Oe`idΕә@Tn[Y'7bѤaC!,IttւmX8ڢu aq{:V <]ʕS(~NJ;si G:yve͌Vm)5#O{e^ڹF9ܚ*w]Su?ׯ?dOf55RiSg"Z}">I'kI'ʀ{8kRdz:sdNԔXgNf50;մbdXoV ZlV#1·"tyVeqM{eU+56rB@NcQ }^ٸlDi/3ORӁkƃZF!} Dp4JOs,M`llP9[H303`lc@d-c,(k9d&Nrޓsټ'Q=}>P6K<,d`$yL&>I2THֲw[Y[͊QK`y"iQe D'd#3`t>Y%THֲWݴݧ•~:Ib^:60V!rx7@t·1zxG,"$ѫ%{~INXGN0&TYzD='#I0Jqp +IX)IB#@@$_*|TrJ&V-5T -l.ѰGO%SY8q.=0BXIQ̇;oS 9)êCS#FJ 6ˈtP Xu N + +sڢ5;-dzt,ߴޕ&*9r*DmZ|ދ^?ĕ]16wTZE]pT~}P>crN檓u20죢V+w4?p?;K{#d˕Ø*Z~1v;&LʠҴ씁bMw2/f\6pZ6VmOp2]έHXJB3eoN$゛xb\?­V!mpآ?WzGk WlMq4,ȑS'^OlSa_=H{f 3,tGZ=!t{z Gj7v)ty1\67LڸMz!v&=a!50y{XB +wD jmScP1fX"׶RF6PD+mLXLܮ%Y儵CĪ=7]K*:M9aoS.;ǻץǰks2ބU@od;2ئ2 i5X -4 )G</ӡ7mmQ",Fl%'5c5KaI\. ތIq eaz)?,H@ވ%"qdNjYv Pjsi)fSxT"!ҁH@|W Aq~N^ID6" @rTφqnK AZqNZ:Eh-gP\HҺGV*`A!"ɀjao[\6EmB.Aqa(x;iL$HTa*fhq˺BAq)Q%X*S%Q"W ;/kf*ш!(ZTCmr`WF16NtRYWmb^mEP"jy6A)CcRaP'H!$-DRHTfCLLRiק'򡧘H=?N+ Ob'tcl9+uT +q‚?xV[*]_rx[mLXe}0 L\?V3!ǽ{eVSzr7_AQF?nA`a~~[_ev^Hs_rP9|/T^ ˠ1OLoI%~t?0}}WpK +Cܓ~q:s)rFg!^Sx _ wۏa0/{~r֎?G"U!:FL%HI~7Qhy*%b_^_.߰QS' ji!3? 6%XQfKJ( M t̋域Oy?.,5,y +endstream +endobj +93 0 obj +<< /Annots [ 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R ] /Contents 94 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1520 0 R /Resources 445 0 R /Trans << /S /R >> /Type /Page >> +endobj +94 0 obj +<< /Filter /FlateDecode /Length 6043 >> +stream +x=َ8 +=Mx})>샻|.`v~5@v#D1w^&Qa|6_6,[V9жNh)2='լh)WZ (<>|oRC$^KZ 'BH>{ֿޏE?,@hz$з($Iߋv$Q&3(J|$ +b1-_r\u܋,ݛ~-#;~wx|SOU +b#VH l {9`#@*-eU +Tj^= $ +CAqJ!\TFzC.L$*QH{Z k[ rGE7<Ʀ'_CH6B GVPw+_9+|M"Xt<@!(o'qIKlF٢;!JT% ~RFOUc{Bⲩ_S#s\ ݉?Xս~ upSx^sn/g{ @%Xk"=偋7?BO%bZvNH2]lUv;2_/wqbSn& PQrQ6;+1gj3@ +Le&f&h9)@BT鉱z"1#<3(Z5ANĉ=)T]Hz< gG/5!VQy+eoTqfZhkZ}8pfl:|ً8wY-]^ ;;?@O tRIt=;8Щ.0Pa9pq ^Qj:7Ö3d؄A&AR`Oz蜪2uڂ +$Pj2+2n* ڪL/m+"mA0 )BO5S]`/@*DCPrv/| +C`MY^Rً{D)ݻݛG]MBx<+ WYo!|ܒZЫ |h[ ۵0i/ lu צW۷LrYqNH^7ⲲW `P,لBV: TRRDA: H;xNAXn|58e|Gk VrE Cr2YfN@5!%(JH"U`xPuĠIv""1&;2"Yc] _>ji!$݄(nՠ g:*6AxF !kZnzM GIDHpC1 QáGTXCBfnn([P(>E0EX!@@)~qPq ٶ ٖjē,]d*i`]iL)]b>c=ЪDϭDf]&\fB7Lٔu&Y`VHiJazw<VR)DPjv˔VsR)Yk7_ÙfZOoX\3v77g3k͖  ]pUepI, y[)Yv+A0tgk^.Ȥ7!xKI_!iI)%pa|qA*Υ؟!'I068 Hd-+=[K2Te°e-揖 #%0Uuy8 +#*F$L9 F6Ll1PIN"Y>+e.TA~L`r %B˔H}_ʕۢhV(e.)T5Xطlau"1`"Dꗲ6}[>_-ϱ:ƾ/e]V :b06`"/vowAY[LSKKoXmkD\I6\6 J嶕uy"#\MJ&¢THGGI-XGU?*c|k~Ǹ{{1:V |/+.)+P㮣|/$[=ٷ&@ٕ53Z殹tl+k>l55ʙ^$55%V~y}A1ݼdFZ]SS >5zv,Ү'(._}R/)Z_| Ĭqǎ&u<+ب3M&jMMU0{IVZZM+FjkjJjE /.>Q|(RA1X붬Y `42ª6rB@Nc jqو>^fvQ@C+,C-Ӭh TY@A<ؠrTW$g`g$1 J(CEZ)XPr +sMl/') yO{ Q}lx X6uIΙL|ޓe$'eﶲ(78D<,'H,c)O2ƙ-FgX|1J$eieCM1+/"t>Oœz<"S x1A0C!=S8t>(=b ^-Mj754K4bm8U6zc-"CŖ$Jqpt186cAc@Djd-e8][> +~ G;H)& +c):wGIRRb)1bQD[ʱr{_p$GF;FK*g{3R JJɖUb>:d1ƽ1b3Ri'e 27qzBV[63+1B>vFJ8W1BL +6%3=36iDvwnK[cȖ+6?3&Z0U 1v{L<񱇃W+ԛAis)Śdl?(:h;_80#8lྵl ǭN9&%e ĵ[-֗ Xgf 8+(S>"}H7x 6a%[ +B +Ec{>A l iYX3#UO٦H >;H{N3Vfq|CdHc}Z˶'$nWHt>.&/&yܝ }P^զƞIiTt5DϤmѸ`C6:gLg$t4gZҀgvAC88 lVye te + ¦z fN3!2qDtި͹q};i%-@Xi"H*o4D*m@1{J}´1  C@܋DpTȸ#$Q+%-o-P1 2$\j0G2 L&D CrEw2JYMly&*qHDN& y@tD i NYi)83Ψ1Jǻ:|))޷G>M0%n#8h}5^[?SuuO]-OR]b/ ϋ:1'.41Z ;x%J4Ҍ]3x@ Nwm,X{nrZߡ\bUW{Oћ.%~Jۦַ)XRcؠܵWviusoBZݪ\ U7znworGSkDŽq,*Ԇ#M`Л6鶉({#RXA1$.oƤ㸅wuϲ0$xoDسEZ,{$xEjDT#Ht"#BPq$᳍ CD1\-4ճfx yci #H+0BK-E kZZJ,;D$\-]q˦mV@C%(. h2x' [I +"LB -nYwrZb"1(.3%jKed"@*awM,{%: Em^j!V!!(&PV .#P*7*Q3ØWq"( Ereؠ4C64B8D +!i'h(tNuy by" X*\3IR܀_wD"baKu^;dJ'sXBm-!w$: ـWcƴ<ӲN%wUܦʄU&;5cΑ7aq?,^y(#n;)O_4JOZ˛O_~}͗_~oz30ZMȿt|6<eG_?ͿǗ?~ڗ=4rP9|+TneP ݆Zo߃ʷO%%!~ ?I}ypX` >~ /[w7>srp"^vxc`t47>AgO!x_s#?~zQEB!.0xW%%m:nfTJ\,"a?O6B*pN -EJ9̗P*2? +:/n~VE7KTyOiʇ +endstream +endobj +95 0 obj +<< /Annots [ 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R ] /Contents 96 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1521 0 R /Resources 469 0 R /Trans << /S /R >> /Type /Page >> +endobj +96 0 obj +<< /Filter /FlateDecode /Length 6043 >> +stream +x=َ8 +=Mx})>샻l7rf7(CJejʇTd( u3Q|J V^rvﻷn.U7sw|TT5U 2%;eVóO]I+~Wnǿ:+D"'d{֝d)hWL7 fb3#M o !E>5@v#D1w^'Qa|6_6,[V9жNh)2='լh)WZ (<>|oRC$^KZ 'BH>{ֿޏE?,@hz$($Iߋv$Q&3(J|$ +b1-_r\u܋,ݛ۫~-#;~wx|SOU +b#VH l {9`#@*-eU +Tj^= $ +CAqJ!\TFzC.L$*QH{Z k[ rGE7<Ʀ'_CH6B GVPw+_9+|M"Xt<@!(o'qIKlF٢;!JT% ~RFOUc{Bⲩ_S#s\ ݉?Xս~ upSx^sn>ï_뿜)O.`.bDO{[?k܂i9 "vU(~Pľ=ƉO͚hz7@EEWHbE+0il`FJ8h R9'@@;Sh8 äģ.6\^yl>L2ѫje9!y݈^IЃAI:g5v3VB\xq&Om7;ND,LJ@4xoR"̬DZ(rfvL8-8^]95TL{r3m&=-\-a #$%ץIH\jZ@*$X='/?1SHAo} D(d* +fvOߖT&>š: a&g&mClo zl'N&5i@-N +Qnb ٠gP 9 ׈hCbF( ` `0kSdM5X[t̠iʼn 2"c7,;H!-458v0d +[44PPbKJ \Ec`2D "99a]B&XEP|$DNlgQ:Ԅ(= "Wf Au&$F .&ىj`DKNljfQv<~CjvVZ"FTjVCW.S LD!kQ둏4 S%=6" CF7 FADJX,Q!wd"$b Y ==|naBq .2Ɖ#"ȫŌC=X;0%Vtnc8iO@bKk1d2d[O[ܶЦPXccꗲI +V*uF`lƀ}_*o|ł4 |<ǪVwY&TD~km'Cemi2-6L--uc+ٮQjrZZ$hst&P?(V#Fsq4)}jR!%D#`9V|?bu nX1$:PBYzԓl1fʚqgWhʚʚZ1mKV;(gz=[SԔX߳kj!OtiuMMT'HVHO|IZj}2;Κ`6&55%Vu'Zk9j5֫UBj)1DAcHA^.^ȊH -L Yme;،6B_'ϐ`0 )^)1y+؈Ӗ8xޞ'aeՇXy 32kvba%3J; 㴯C6WGϚ0 K8=CZ0κ@^X`?`FidZdibvc8x y= #;(T7QQSb}j6ܟ_k>-Y5y>xSf6l6 @`M|iL| q6^1 NǛ_v`q KKdD qz%m/!̂fJI8Ή'BBN%O74z9"t s= ǫ}L0ӍCo(NSUkĵ+jaьE*}]5ԮdMXLY'"%Iu0K5 JXUĪgJ;l=Hܱx*ir_G7X9s遹JbW-ybI-,'BLMhGBKFJ 6ˈtP X5 N + +wڢ5=dSzf-:CozoCŜx9k6=>ogȋJX.; f n<ʱٯӇ9f!7dS'~ +> j Z|lPӈnK[cȖ+6?3&Z0U ?=&L +fnxeq{i\xEv@;H3.o-qӶGop3xqcpV $%VN +ԲH_'qM<1^B.MX iViD6s|=pP+8gBq H)'b)xN:ӌ٩j=c;Xֲ 9R2ϷKɋI^>wBW齱gm(h} 3q'iE4n! il: i4 ]7λ sNAZ w V[p/ Jn`F'B|&.n0m!zL}3EBja"-ܱD221@JIKۦv <c̰EEBml""W$D~ę%(:BP\! DvVeS7Lw.ںh_f?Tm]l}DuDuK=Ԁtnk}8 N8a wq?qzN,vůj4cfky&ϘD'nFo%8Ϭd3Ƅm,ʔz1P]z9 ֞۠w(Xgv wI堟R)'m%Vc'x7T68wmU]ZܛV*HMݛtGZ1!f +!切eXx:Mm"JĞňD$x{o)p3E"18n]ݳ,L/ć (D$x#86 ũF=yt=w=D:i/7ĶHb:rxXRmrDFqֻz[{#¿<_' n6ŕ1-,8봬Sot~ɝ{*m:2awØs*70q:?e} Wf^ ʈ[NJ<#8?ߞ+w>~ y-os< fY巏󯿤"~җ=4rP9|-TneP ݆Z߯߃ʏB%2~ ?}~pXx !B~SR[7>srƠ$^x%Qh`5o~!7?=0Mv'Ɔ +qLae\c2`BBZNgBS){rx?gpH Ϋx9-l(+)2_RBhj+Q C›.QR?3LuL +endstream +endobj +97 0 obj +<< /Annots [ 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R ] /Contents 98 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1521 0 R /Resources 492 0 R /Trans << /S /R >> /Type /Page >> +endobj +98 0 obj +<< /Filter /FlateDecode /Length 6044 >> +stream +x=َ8 +=Mx})>샻|.`v~5@v#D1w^&Qa|6_6,[V9жNh)2='լh)WZ (<>|oRC$^KZ 'BH>{ֿޏE?,@hz$з($Iߋv$Q&3(J|$ +b1-_r\u܋,ݛ~-#;~wx|SOU +b#VH l {9`#@*-eU +Tj^= $ +CAqJ!\TFzC.L$*QH{Z k[ rGE7<Ʀ'_CH6B GVPw+_9+|M"Xt<@!(o'qIKlF٢;!JT% ~RFOUc{Bⲩ_S#s\ ݉?Xս~ upSx^sn/g{ @%Xk"=偋7?BO%bZvNH2]lUv;2_/wqbSn& PQrQ6;+1gj3@ +Le&f&h9)@BT鉱z"1#<3(Z5ANĉ=)T]Hz< gG/5!VQy+eoTqfZhkZ}8pfl:|ً8wY-]^ ;;?@O tRIt=;8Щ.0Pa9pq ^Qj:7Ö3d؄A&AR`Oz蜪2uڂ +$Pj2+2n* ڪL/m+"mA0 )BO5S]`/@*DCPrv/| +C`MY^Rً{D)ݻݛG]MBx<+ WYo!|ܒZЫ |h[ ۵0i/ lu צW۷LrYqNH^7ⲲW `P,لBV: TRRDA: H;xNAXn|58e|Gk VrE Cr2YfN@5!%(JH"U`xPuĠIv""1&;2"Yc] _>ji!$݄(nՠ g:*6AxF !kZnzM GIDHpC1 QáGTXCBfnn([P(>E0EX!@@)~qPq ٶ ٖjē,]d*i`]iL)]b>c=ЪDϭDf]&\fB7Lٔu&Y`VHiJazw<VR)DPjv˔VsR)Yk7_ÙfZOoX\3v77g3k͖  ]pUepI, y[)Yv+A0tgk^.Ȥ7!xKI_!iI)%pa|qA*Υ؟!'I068 Hd-+=[K2Te°e-揖 #%0Uuy8 +#*F$L9 F6Ll1PIN"Y>+e.TA~L`r %B˔H}_ʕۢhV(e.)T5Xطlau"1`"Dꗲ6}[>_-ϱ:ƾ/e]V :b06`"/vowAY[LSKKoXmkD\I6\6 J嶕uy"#\MJ&¢THGGI-XGU?*c|k~Ǹ{{1:V |/+.)+P㮣|/$[=ٷ&@ٕ53Z殹tl+k>l55ʙ^$55%V~y}A1ݼdFZ]SS >5zv,Ү'(._}R/)Z_| Ĭqǎ&u<+ب3M&jMMU0{IVZZM+FjkjJjE /.>Q|(RA1X붬Y `42ª6rB@Nc jqو>^fvQ@C+,C-Ӭh TY@A<ؠrTW$g`g$1 J(CEZ)XPr +sMl/') yO{ Q}lx X6uIΙL|ޓe$'eﶲ(78D<,'H,c)O2ƙ-FgX|1J$eieCM1+/"t>Oœz<"S x1A0C!=S8t>(=b ^-Mj754K4bm8U6zc-"CŖ$Jqpt186cAc@Djd-e8][> +~ G;H)& +c):wGIRRb)1bQD[ʱr{_p$GF;FK*g{3R JJɖUb>:d1ƽ1b3Ri'e 27qzBV[63+1B>vFJ8W1BL +6%3=36iDvwnK[cȖ+6?3&Z0U 1v{L<񱇃W+ԛAis)Śdl?(:h;_80#8lྵl ǭN9&%e ĵ[-֗ Xgf 8+(S>"}H7x 6a%[ +B +Ec{>A l iYX3#UO٦H >;H{N3Vfq|CdHc}Z˶'$nWHt>.&/&yܝ }P^զƞIiTt5DϤmѸ`C6:gLg$t4gZҀgvAC88 lVye te + ¦z fN3!2qDtި͹q};i%-@Xi"H*o4D*m@1{J}´1  C@܋DpTȸ#$Q+%-o-P1 2$\j0G2 L&D CrEw2JYMly&*qHDN& y@tD i NYi)83Ψ1Jǻ:|))޷G>M0%n#8h}5^[?SuuO]-OR]b/ ϋ:1'.41Z ;x%J4Ҍ]3x@ Nwm,X{nrZߡ\bUW{Oћ.%~Jۦַ)XRcؠܵWviusoBZݪ\ U7znworGSkDŽq,*Ԇ#M`Л6鶉({#RXA1$.oƤ㸅wuϲ0$xoDسEZ,{$xEjDT#Ht"#BPq$᳍ CD1\-4ճfx yci #H+0BK-E kZZJ,;D$\-]q˦mV@C%(. h2x' [I +"LB -nYwrZb"1(.3%jKed"@*awM,{%: Em^j!V!!(&PV .#P*7*Q3ØWq"( Ereؠ4C64B8D +!i'h(tNuy by" X*\3IR܀_wD"baKu^;dJ'sXBm-!w$: ـWcƴ<ӲN%wUܦʄU&;5cΑ7aq?,^y(#n;)O_4JOZ˛O_~}͗_~oz30ZMȿt|6<eG_?ͿǗ?~ڗ=4rP9|+TneP ݆Zo߃A*)!R}c7˻܆Âl,<p$GF~B轩SLz-36>8gNjUe;#?||^7?O1*7a^*bqʈ^_^ i9Sf6 +-ODK"6jjA^n!-ě細ܢ^Ԯ/|I e!0F'An^y oD)Kwz +endstream +endobj +99 0 obj +<< /Annots [ 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 521 0 R ] /Contents 100 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1521 0 R /Resources 522 0 R /Trans << /S /R >> /Type /Page >> +endobj +100 0 obj +<< /Filter /FlateDecode /Length 1520 >> +stream +xZKo9 WV`U[}z85{05`;b4cI6 $@F3ɏG`ߘ`.Dg^& -[M׋I'\k?+]ֳ}E\r0 $Ju>P&ThU>0ϥ " `+bA +5(HtZej. Q<[42 G ,o<=13(ts9nV:=;ЖEJ 鑤q}(.G-}$TNCR{ 9sB1i3H@)YI%&_9"_DZ&8gb]4*ɤjo{q_#ۜlz$ޖBUH/l_^wpHDw/8R 0pχˇ9ݟ1H@^kXj肰3Iq0"X")뭔RmUyB+S(k!KYɤP?~d  :"S2S&{SͻFn.CGGX*u>cmR(hY8ƴ;Npnn65sRaYƖ:gY;RS#5!)UY!yYx5 VJ)EF@VɶU چnR׾^r%|Pi3lX~xQp+m%9hf Rܱ/7O}Ђe!DSÔxg9({'bFw +V>8 G4c47e& Vw_d]tX^`=O8 G{fB᮸wluYS#~s`5K?=uq󥮴YWsWxBK-ZTp4<1|GOT5}gn=P=c&>1f zi흯e_ (uEb} Kă>cSvO~?SiS ܮ?hgȽ`_E"|$vgHC)-B8 + K9#MSu Lhf ׄ{ЬɎ^N Jr[2A氺3&x?飽zR y<Цgؙj3~:Owvp+c9^؜:kx!ػ)[]~v8 nqɲ{i}h@=O_w$CmaI +1Ѥ 24‹ CrNqʑ+Dƿp" +endstream +endobj +101 0 obj +<< /Annots [ 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 1399 0 R 1400 0 R 1401 0 R 1402 0 R 1403 0 R 1404 0 R 1405 0 R 1406 0 R 1407 0 R 1408 0 R 1409 0 R 1410 0 R 1411 0 R 1412 0 R 1413 0 R 1392 0 R 1393 0 R 1394 0 R 1395 0 R 1396 0 R 1397 0 R 1398 0 R 1414 0 R ] /Contents 102 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1521 0 R /Resources 1415 0 R /Trans << /S /R >> /Type /Page >> +endobj +102 0 obj +<< /Filter /FlateDecode /Length 1516 >> +stream +xZKo9 WV`U[}z8=v_RIc$ E" BtZG`JaIҲՔ}tr%KwI͆J5-ʈƒIP91' _E}],esՓ%ḌE~>I>^p-W̌=tr"y` b$`RSRKV F LBIS,f{Rf)eYĎ)ȩ]?rp!֣#,6),RLlkam'86v5ee ݜ9),}YʷrM*OzE{GUVHy>etp^MGRx8&UmUႶ!>9[%kguiW {s*Pp u7ond7_q 4`7xynj\^Wd> 0Ҹ~,Xv>uṘkk&}Ѿt\L\Jnhd2R=b]\UKҊ̎JUQHƤgvS؆Sbc|,'C)4xLǣ҆жdpk,ss$4⛏-+0ZMV|(V \9E3TԮIf|Vbܬ/JvݷioClطc+@Agy[B*[! 7>|-O7n]MO [>=xο^ gpixb9*{SC~ Qfsߌm/kw]duls4<9ɔhEfb} KĀqqUì{ԇ(Ns}7AG7- ْdzu}}B8%BĜM5u \ +цʹS ˫ٓw ͌%I9)AInkSFx[ HVwIa#>;?n9'5T ];@xF4I<;k- l[S\Ux /><{8:sG{;?!:?.:Yv[<٣^8uJ9D4[8aFx1PrARA)N9rBd0 +endstream +endobj +103 0 obj +<< /Annots [ 1424 0 R 1425 0 R 1426 0 R 1427 0 R 1428 0 R 1429 0 R 1430 0 R 1431 0 R 1432 0 R 1433 0 R 1434 0 R 1435 0 R 1436 0 R 1437 0 R 1438 0 R 1439 0 R 1440 0 R 1441 0 R 1442 0 R 1443 0 R 1417 0 R 1418 0 R 1419 0 R 1420 0 R 1421 0 R 1422 0 R 1423 0 R 1444 0 R ] /Contents 104 0 R /MediaBox [ 0 0 362.835 272.126 ] /Parent 1521 0 R /Resources 1445 0 R /Trans << /S /R >> /Type /Page >> +endobj +104 0 obj +<< /Filter /FlateDecode /Length 1514 >> +stream +xZKo9 WV`U[}z8=v_RIc$ шC" BtZG`JaIҲՔ}tr%KvwI͆J5-ʈƒI"~~>I>^p+p_f}fS?WW cv +Ta1g`DD)R[)ѥjJB+S(%~V2)CsJ%\08Ѭ#'eRE2aߋj5zc+w, b=*X-_;[=稳/$NJ85'gذ^ysVJvנIHvs> _n>xE.|0@Ks! ɂiO_/e|!鸆zaWK!qIN6Q/#E޾_(UE?$쨔Z5^*ьdLzf7um8-6ǢZpx=hjO'ht<*mm Jרɘݽ͗e.bcF|ٲdE·bQS4CjNE*dg0 ,r n}6 +φ}<[BY~托g@l/ݯBp#1ǛݲAtڻKt/ d]tXZ`>O8 G{fB᮸7luS#~s`5S܃ k{p +瞆'[{G=5r5o߻=8.>m~ӝ7ZswN?%bFq_0=qqm'WX\oX$gKbϞa/>8j.clyu=5NG->h-nX",L.>fݻ0נ> f)q?fiz\bWmvXq֦ܷ9$ O?飽z<^hS K3t}L?Bc_b'=|F/mnNqU5BH]έ*?Soihww~\t^=xZg HGp.s-,I!5.4ip> brARB)N9rBd$ +endstream +endobj +105 0 obj +<< /BBox [ 0 0 12.606 12.606 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1599 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +106 0 obj +<< /BBox [ 0 0 5.139 5.139 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1602 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +107 0 obj +<< /BBox [ 0 0 12.606 12.606 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1632 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +108 0 obj +<< /BBox [ 0 0 5.139 5.139 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1634 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +109 0 obj +<< /BBox [ 0 0 5669.291 3.985 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 706 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +110 0 obj +<< /BBox [ 0 0 5.139 5.139 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 707 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +111 0 obj +<< /Type /ObjStm /Length 1508 /Filter /FlateDecode /N 96 /First 882 >> +stream +xZn[7+fn( JkY PD#3Aj8b>BȖ+rw>HEyg!_u]'Sm[@Gf@N:L?&e,>RI- fE& !ӣ# ^x1# cD#gJΪV]BNE$"1|@74yVۏLl[A%plAEoAE0UA)AI+(0hh1<[LB+bR4.ɵfyO8J +xңTkg΃φO2=zk՜X +'ps|;/4'n=4`r_g<\inU@E\tdžF 'wX-χ|V* ҷ:1kt~ˁh޳ ۷llˤ66n _fmsulSoK}M}ʟ@߷֩*[">~kNu~]w~]-ISO{wO{><' +Tk%,ZZK(b|/J*v%ՕTWR]Iu%ՕTWR]I7TV3>ּJ-2V?Qs +endstream +endobj +112 0 obj +<< /BBox [ 0 0 100 100 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 191 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +113 0 obj +<< /BBox [ 0 0 100 100 ] /Filter /FlateDecode /FormType 1 /Matrix [ 1 0 0 1 0 0 ] /Resources 1171 0 R /Subtype /Form /Type /XObject /Length 15 >> +stream +xP( +endstream +endobj +114 0 obj +<< /Type /ObjStm /Length 1222 /Filter /FlateDecode /N 96 /First 876 >> +stream +xYn\7 +l7E,YLAƙ 7m=<o{B_]]:<(8D&O!!g$AWbϙT< bOJ:'>R15(Qa$Elp".X.'>)eF%;g 9'ue_-.}O$mjpdxeD.O{`!E@GH1aj(`P2z +E5j+%)hI) +>%%#AR14RRL (O$3 ZvZc1r6<F.p]< [ Y5RM|#J6OGTZIhl#@@*FjȤ$/T=@Gjhv*UpaO5IQR8Pi4*Zh 7<0Tc@'ҬLEj-=)`iƍGm2`}X3.k% ̖M9X: 2P;%A4 {5Dp 1g +1eld矞<%`˽?:peӧm3||Y M ^ml0j {O o4zu9" +Ҫ5e6 /~'޴z3T0Tq.P܋*EdD/QTȀqT' 姆|yu8|xryl]zP|8%+gmM[ް+vjh,fn^ln6ŗ +Loż[_msx׍ofw7zN~͜Xj6y7b\̓6ۂ[U3{ml=6Kgm\eNuOQbqՑƸ}yS=mr'E1:GPiO +NP;Tu)vdJťtd*Gy~` +W(0>  =]Stp\iyV;$(H= +LuxLqETp8] \iޭFSp/C! 4PHC!C!QXRRg +i(B +i(B +i(]UO++?<C! 4PHC! 4PHC! 4҃+GGzP=C 3TP=CKsZ +endstream +endobj +115 0 obj +<< /Type /ObjStm /Length 1220 /Filter /FlateDecode /N 96 /First 876 >> +stream +xYn[7+fn(pH @u(\#"mb G +Mg7-.0a3sLvvjoߙ8f( JO5bMރ5հHE083q CNQ"GJ"l02I*p If+I)%K+U3,^u(>4;k=Ԝ LBYUʚQNVI@#1()&.m/S* +?K8+TJe +Ո$kT1 ӾP-3Q-OdÉlL(l<252@EV{k0P1 Gc< -#4VjŜua4j@?r#2)у* 4*ʞzVBq +Yǂ}+#XG>8 $!EٓI>سI<oX#cؔ",,SuN 4GJxf/OB4# />V_nn=}:}F?/^W?lNW7k jqyGhEr)P2-xK_Q?/i#Lj #`#* +M'(TJ1)3;O=ԂW:w'4O˫C6xE-D? NrvA%o+g?M,M>l2)o8Tl2%skf^\.Qʬ_vۗj;?󫄢qx-zq7wnZvC.6w2xy˯['Z#O֓ks(IBe$ O|ò#q +My,xNAsNT#(iVO:AtGP-d~SA/L o.UT#(0>)!SMtv8]!w{Z> +stream +x[KoGW1vUwCBHԭQSQkCO!Lg(X&|pɆzk6݈JPBPhgWcpeFU +p}!NLʦ dG +4C 4EBKL:,'S l}! ,:TP@+ F8I޿ z[nrv %OWVk`vaO7*5 ׬ ғj}~~=m;Sͳ|3l `<۶ +W۽ /ٛb,K۵l\WW ;.>n _^a'3W{;m$ ;e.o5TB XkǠ dh +7H +0T7>y958Ur¢S)4O}H@,V/:AwƁ;NKN78;'L%0STW@u0*͔WSNL]CwIw;A +92)C2)C2{dH뗾NLYϔLYϔLYϔLYϔLYϔLY?ُ@g s Pڟ1P101}0`I; Bw`I+ i4nP=YXE}iH@۪`;2DX'٦G*_VK۰,2LEK5wTAvxuij[ncTC`j0F5īScTC:5F5-1!JQ q(o7F=čizSzT!l=J=o=~{c㝥uOX3;"( ?!汣$DcE +endstream +endobj +117 0 obj +<< /Filter /FlateDecode /Length1 1471 /Length2 6296 /Length3 0 /Length 7298 >> +stream +xwT6 U -(pI{/(  $$;HMJ JtHQQzzZ߷Vg=白pq5TEPH X$P $LA\&p BJC +'ꢐ,. Н(@ꆰ +PH8K p}~x;w$~] Bqp03Cq#á@www! V#pC8q.JA]J"@#3Gb.p ;HS#u~+@/g( rAC= k!cp@ $)!")0O4|kF;|p_C8C"`G ~ < _Ox٢Ξj1𾱒"eTRByEb $* ?3](O᫉C.]?sv#? g0=^pϿn_d~Ug7C]Ξx>@SMgWnxVM?H{B 8E`e78g~E\\1x/l)9,^MP,~pyy"a(ۋ@1'9S[/uBH Ca/-vď  `@狴$@4(s u#IC _/u+{뾀=0(tcMpa"ʐ VڡPR\bQv֔3]`zJ9swkm +b~rymqK[N4 M=+[[2.寪eU~, _N}qSas4V\̝3Z*7DZU`+EDwڔ\+1t^ 3>O7uhe/w}JEK^ToWׅ(){ӍF[K]{leqzyϏwZ DJ7N7 3z:/gwKۋwS}8!ג%<5ilnghYCx2@+xm'*ޠ/h=qtnsnX5WRR;O?gm3ɒnf~ns]Ťp'pJö-L ٙjXxB-[fhcr{*{I%_mZW v_d_zl֜ cSb-971{=4&Ɛ|nGt3 ɤy7pg*PYGlj3ۛj;~)OAMBwfR(@5bc%/5hTI6~W}~@e @Fͬ䲗Lf773[`&_V4RDQLJ`؍6L1̤4+fѕt^TNcrPpq6 wAO߰ *Iy偻Jw. (ȃzyR4%BD&@Y~rֻGI4r\jEN+OjDZӛcBH8ӍX5bEdxa&LUDT&_V3"rwT,?!b[rvNtRin#A|0RlhQjy{&|51=tdSw0Љkk8|oZ s>h!G<3==?!g"Q!"C>JUfY +I`P!BKj^ImڄD=\Xu;C#1AƔ&2>_'[KO[*ʞ\DF.c$;wZX$m!da;3nQj*2}yQyۮ[!)@'k]Ǫ +OJ 2fj2k1lxi4ckLЧc!iێSA/{WׂJ^g]mӓH2PچoOĤ^|?Q]nUl׼4@7q^k6G)  όř->4(.&No܍D9wwBsBg9?/cd;[i(o\?bK,^y#]KDe2O*6O}^ yªœA<% SIeibx A-T}B;cP 7otqy8q*KYl5$OgDײT];|ulFIڌ*`8P?%d?͸ͱrI2JtpkTWPFU>" \Ju#f+J@u;ڦfAfxeKׁo?Qn -h/YvCIN6CwHix>Z.3&ߟ{P>2\<;Se􁗘jtYh(wB "e53AuUq5A!k K +w8P +:PH! W{_7^K +\ ID|m[llR8MmW΢7Vw>#A +-IB[0ER<re𵩻ҕz? u1ZQ8䅵D<6)[%b[9Kj :sPe,h{`,r5n|okiGs=3ZEֱU1RTe/pEy=ݢ]8i xo#8st\'YIBe] ~hK:mzfOckN&dzPr)eےҔlם`/>بW_0+teb+Q#2Iѹ&TB>9 ν+?z7930{Ad2鵁B~g մ!29rCQ*+e`SrIgBKY3XaWog9B ͢4o,9m.t.xtP * /L T-4Of +2Uܦ* +~mNVJ>{xll@#`~6=4اxnu oz80 V89 QVbңt&ٯ57/)TbUs̜T5n s #)"lvE8d'lH:Vu7\9ҳ7̟(ه'3ꍄly +]P}VE/;N٦rv-mO׃3gk%jYȗ)?(Ĥm_Nk}]V{\^hU93'c)Li>1i#tIkq=u@Oٺ35i{B~ul?o' bO+l6Z{ N˸vAP?Dz ۫"Gom,:ݞMP0;Ѣ=հLB+4f,"?eYyZ-Oszi_%4f@84u=2$D>Useo㨮 I:!Hdlr//2IRe^V~KFp[~DZ_rv $mצ[:%N'Lr3<Ѧ;nF-GKX QSM5Ej[D> +x]OW\Ln'DAS|yi5;PRPH+%ҧ+ç@ IaG + +7rƒ"ygOaKc@fo\vK5hV:%V\= Gez=(dw/T >[9,ȋ b29SdjfHXM VZhy2_b­SpO0h8LvKKy|Y2)&LDP%$<4JyOrDžw9I^QVth.A.~룥%:g9*1^Tc W)z>}C{0"\QXхvגk_69h4cq9YcE3 FAt ƭXw^hv>jLA۩ӵGPbA}E3kmˈhT%sw~ ))<|,$X2V$pC2 +Jdl(h\Mhbo2]TH߃#3C&{ImuzoZIԮWiT/i+Tb] em☩mDn){]%g:raW2ND&,II>)`z< *?mM.Rj׏7L?^3w[>NapֵM! LZxj`۰ʁhcr탒@zJT8+:[C5RNA tYZ'G%XoqCɛG֕!"^NhC9n#閩MR\wevY"pNdS2a"H(ojw$bnfno +v"eؑC ץ6& ;}$%7#ک7zqT_ׅIKId7bXZPʕ_e-jZfg7MpT4$,V\olпU39%*I>đr@S)@uI3Z3a݌n՚aɿ7q> +stream +x4\k6,hAl525!z e3ZD !jt-j7y{_^ku?k .-D I@A]W @ !~HCvr@Pp$B,ܠ4S1H$XLA n"n HEȡtvј<\6XBB; u@:mud8H8\h'?ŏtpp=EA< 3Ok=BiA "Pw- dtUM(/c x?+bctv `wjh/4/A28.(iLCٸ](~W`ƬU@:;ChnPܽ#[#l~a"CU` 0 @ qu^6y@+`L~>.Hnż}P(vs! mЀ5GC1LAЯ?_"N>be5eZR^>A !!H~)\UvH@j1cb?ci 1ą\ $俢_y);9seCN,0uGc@YB\u-*hf0 R{AmhkӜu|`tq( )wJ% ך 777!%AG[o$`nT XAl;K.3[!" 0`%uu$K1]#`!Ŀ .) l0dLozAm'F6R!! r |K_#;"DМc>j7 [ٖ$k 2ly MzR&˗}v2"abɑnk3ZI0 kZ)]шZ1c2$t\fv1 Y,i~(x|C4ݙ733]/;;sQQ>Vey*j- +S^X(Ahg +3&vۡvF7>]0IfV{O/.TgE +j)율H+%6tQ7КiI, v9nz%> gIg[4~>g6w1K+x +I +_ BJ'>)sJ~R Vjү\j_Ca 7ݍ۝aB)/o(^m^/P9D_ t"9}T>'т^y-OyL 0=qX_n)fM?B:NMY65sWp/SšwyM2B?U=^Vͽp%Y f!=5KsZm Gl%rsX J=I߯8m%~VcP$d(ķق6'2)}rМν[݌לJpr{FCRTX} U4^7T,~8w)j7U[ox^J +::U3 + A1?<>O)sL3:v>=j[LriqB8Ҥ] RV9dM*S.Y+9m;D_*4,e!_AeܮVEaaT-2C X징f Rx!O@ӄj}?||.32uCcXb]a&>ޥ!غ0S@wnaqN@fO)9[PSt +x5vqYW'ޘ_ofwHDMeYsuZs靇xLlFfSof-ύ$Nom/~rwLF%}e4h(bG\[vf< 3RnﵬSk\+&7fĝݹYfwrī[Q}J҄enm«jb`cqqM<f$Q=ޠ8iXg]CtmsN7mBjM2krJ:o~r:vQ{݆l.շ}}o*-_S&qԺ$h9odCh+r,psP0}fQ oj$ȃ;sz201K*+SBʡlH)lPRPvNL+7We'jM! >4}c4@FLaM>UAo>,!JiT6HJG1mG)uryu$`@G>|'9nq9۴q"(]*<:sfLZebpwVb"P &onV ɕwT|<[+iv;RcS׼&;Rxf ~B_ėzOXNѹW`&Yp}%7$Bt X,i{-3W5Q*l7hDoѷł[J(T&>< +9 wP +u<&ZV{¶w#XFdlym6%Aw鱕oG~ݢCB)eO.OZh6U? *Rڴ>ݞZeYE_-%L+rt|EcF||)CCUAЗk#NClD{/u* #%G?|3"yC.xաOOЪC^9KVsʆ+v3u^??ѽ\?G+yZw 4䘱]@TCc\ 54ZYo̔cSWX=}r;fbΒֽ +֓o )/6;kzidRQKP"i/|~rKzj&91bqWL=p8*,%Ee|HKYW5:^5jC"bF %+is98U:i[Bpzb>en߷̺4k;aZf`}w7ؚL.ZCGp/ɔ.I\/I?ҾffiAFnMYmi0G>dw\LWֽzft۽An‘| ⟝ڴMr& 2H<BI =U}xh5V [nF-QKx|^;apQ=Qѝkȯ;:eƬ/(ֳ,fZYR0q*_/S$GKA&V4ӱ Uy1B/>}qzŠN(1~L<w;' + +-`x@$59jkB^XMz3+ˮo`%%ӛʏ1x_k$dUZ扪խS|+ZF?sf^QC|=X2u+ ^|JRZ2[S|ŅBn#eLatAsRrRl]Cgc'oCVٔTRD2lsA6v5$lkSfu>Uq*_٭qhjvYFDL+8eT(&\iDPԗ0/GFg WxԆVC7"Ռ y*1Io/]|gCࠡCa/ѮēV\ye~N2U6Y̢Lzs<~qEIkFz X8kݦ Xt.(R;|לOu&HM~yZQ[Z]"u26xR8NFѭLvzu> +Jjbܨ=^';jR3XDoAl{H̾8-6"jN_(ˏS'4nY?3#>0[LѕD(#^FqJO^m>TQK?QJ'mώ ?"S-ɼT3;*nÃgOn`M#V,06$ +@Z=|GLKF +oǗ}6,^â;H.uQP.],YYҨV&0ewV>|kRuU_(3VYK^\)=姇bN@OqԦB;r,Li9 m;IKe_1]˚ 6E[=%+l]LJ'0,/Q|B@i^Hvf!y cq\tń}uѺaF5 }_l&~0|?wG+qTEGzǏwxc{7i:_(=`I/&U &VpCFȕ\'4bN蔖xIkg4#wp3 RjMԠiKRFhqA#z娦Dr!?J{I# [Y_)na9j+au+/CCT>%i[9ї0f=s3k7Ӆ/! cg?2Ru*F+?hȦ4m|qaa!S-S <7Ks$fWebMZW-zT8ILTCdk.[1&=IW*H{a{j +XakD1֍{lUw#ư|kb:fq\[w1x?s.،vc 4}sKL`Xxǫ 87۬ffO>|Ή7^~Q07` =dqy2MメʎI뙢?y?Eh{xf%_"v<̏,WE-,-R>ܤQHcjt:Znxb@Kƀz1&D8uuC{\F,ՁZےOB`o.Qæbڛ[OPLv8; -$SV#2F͆Z1_TkV`=eh:G mu)q;aj'gZqM*qM(rС/ۺZQl?^"NpWe^>,ē]t .  þۣC`<.RP^»J-&\~(@45^JY&P,eLT_\>!rRJ&wρAɝᷙYӴiKii cerCҩA< ]_5̶1Q ~5, Rs6~d:퓻~-KqV4 ? Wǭ?`閦\qQ0zet4=񕨜CKo9A /jo=(ϰfA]jzq偨Sܹ).(1ԣmvsvVJD; ; fuO_4?]ʰZHag{|-'F{])M;*]qRA$ϾJXVS3St{*;1wTt_ݴ8v6c%U=ޥ$ωrd:ih>|Ò!wy̴@q= f-Ǒio̍0Y +b3}';bf_#IpP+ 0d}Ϗ*}oMV\V&ȓ1`.+uu4۩F-Cf3)]z'~J= +brdyC\뀱AI i<|#\{Ue2^wk{H|@="oe=8L Ű;l)hqz tU)?0u#Hz~t7L%ZUR{.֧-:ui :X[? =5]ьטc _Z5_'YTeclOi}i}xVV|oVJ0FCq;4;KZ3ȩޙ̐\C=RU|\eSV﨣Ǯ} N0~/% z Ӳ.C;팊y,U`f!AїE/&c$ +endstream +endobj +119 0 obj +<< /Filter /FlateDecode /Length1 1660 /Length2 8156 /Length3 0 /Length 9218 >> +stream +xT6.!HRҰtwt""! - H7Hsv?33w}.6"sq2J\ qt= EbኰZ"pP _D0PjT*a jc(# `r8C0-QlaԆW`uuupp;ۈ3=@- b4PWo-6D`8Jπg؀tFJ0/(h qz-`V.pDAv & ..P_MrJg9 suZ,Fl_ 0+_X9r Nn%?I Q' l#䷓х#hh >>.ߎ" + +vZBl0?f!g'P  BdVp?ߧ̩e(emW{@v! ;7 + HBX/bZ2`sHͥGdGA| 0YC+]$y7{?O +BnQP#T} +9W1R0ٹ0B]䡞+ +a5qPDu B@! q ALp_pv >\x3wE ΀_/e@@N??Hȩ7Fo?Hi7!|@N "ſ "_< BݜADfA^ ˿ ?_ /gnΈT /@ۆW}1ZQ8o+0g޿`FÝkjSɚPK:UczǍ ]N +c\v)ӓwԻ&H՗5IXNw϶0/4M@[kO9XUhuik,faWv{$cSWWy8F&?#_ c .'g@u?5IYkG;`cۣb 50*:ϐ;=L M _`b8kY`myp1BXgE궿Pya%co.M0m {@wJt!b 7ߘ0heFbT\%IbLKiV ׍M61]D?iqڳiRp?͵]x00Ԑ5lU^Fc.M"{saJ_)fUhK t.Gh!snv+L,skNC +ϥ7fU#iU8iNw73/^3+ 4 MZ&% $9?b6QYlJ~㢡t@`]H!%;Zn1*'§Ȩ^xAܞ G/kPxj 6k%tu<4 $ҧ|Nr,QjŽ(@$(H)Ϣ]2~}uN[Ww&Dc  qQqi.ձr"b_ +Nk;]jF fK$8Y*%ǁkMc{C<iG'sRϘḑ6? UVp/ce-jL8OG_u9Gٯc{Q,.P([Ϭܘ,fNbj$Zwv?"2D u+j^Ͷ"s_x}+v鹽$-32yF17Qrm6KIY0;k'Ev5)0t}x|ڽu?S`&qv K2?IQ"Hl7~niG+Z%Zpp޲JdrVA_V`cۋOrR%L! +OHKn rO?4Wk軏XKv *5% h_E\BRf~DcP/~sT*"k,,2Iwfٞbl\,xLv&G>}2xR`A 4pMtPӠaөK~]J* .nEǼBn#Y EڻZ"k9^oKMLQ-2+}rQ +puaP:#gZ,E:tD ؃d!7˒zzu-'g34m= }P )8*gQю&%^$ٴՌnEKIQ}Rw]5"qZha jʦUa{ǨT+\,p=J[0M r-7fdxZkbmc9ZԛoaXx +L†& ->ɶ-+7Ad*Si9ԧ^u;g޼d4!*6׺:oX/QW/`6'> o밻HPEM:]g9'(рm$"f8XEWdˋ=-9i]oJ]݌+2GE%%Remwr`g +L37id0&>B 򴗸%-pL{Ook >_ Sag҄Gz|y>7FSRGGݟ0.>Rgg`j!KFNYi({?R^@B$ӑ;C$<ޯ *5?0zVV.%DvVL1z~8C 5LOGۚߤUnARƉT~QudyMruJo%z468S$.HGo8)ʩ0PTPϑGTY7ѩoGw)q?| j#|7@l. +9ĹD'42ʳtB:p%?wPQ*|~n yW\w =NK\Z4_#8cJp7(׈^_xj-(+5'AB$<*ȹ+HkN"ioIbgX[SaxAafsj߷PCE̽ n8):+0QRWRy Gw+IXS +~Rpak%K(vXjt9p][l6围IS :ȘMrAAu>Tb7HԎ[imQyr⤌S*A&LF.gq(lծmiUMzio?#W; O>0m7 kɳb8`!饱hQ%DE _%Жͽ{S(upWyk;TulW*l<{0j`/p x22v~{^WN,FWW<#\m64񬳔%۶Y\l^R(uoJ@!OǗ7եkҦktsNw/-] & y0p|?ᖓ>6cL ^ae ! yQY~: e+֝3NA`z4O8a~5@؍HB&VbS~Y_pkhXu|zA]}] z_Xw۩!H?.pk Lj3*,{3n#+{)%!d^-zv!%^rшR5d"W5p5G\~#|&r@;߅k`i"1Z=o)òG]G#PUɢ Ǫ-ǎ?-(kipSPkof=X%ヰA_DF~MvaƊ.ɠ̊A/p%&6 ݒ4x$lG`MI&#?[N/C4ƞ1jPupkskr $Zco/-i0I=(C3囗)v%~=BoJeѩ1pIzq7ϧz>/x,6Ꚕ1ኤJ9W!H~XƊln &h[iׯ-c*]%iuϰqX ~\ sbd;f2irQ񐯂tѰI_s3)1,JuWo/Dal@'vSQIɫo%d;''&$X5z^%Qfzʽv}^o>͋V:K٣ ˊ \hWRK|(ьZ Y*,&Q{+7tcGŒG #xŸCj w]9~jZUcc/gkjL졘NȂڊfVrnk3S=D, +f_^NM?(QWݶ*Y`a@ROP'>Hc+M3W狩ߵQx7ܡXV+p֫tInu1e"?!q9q:HTK¾pň >i9͜@D:F;.4 C V Hx@ȁ̑*@`aȍ5!/};Q+0s(=^0ݽ/W;7ޥ$}iN(<7U}yj;gVP<*40!}rr&-yPcf|A!;D:n:y'<(P%s,56^{?y]oqFԈL@O%A\tG^~-fB߉_P PGtYK;|5@)\<:osT۲+ьR\Ð#hL=9U=i9cÚ礧D$x^Ն2eo&B^0b Ʒp1N;޴5jJճ.viS^yzS"mHJHB(S0ǎ\\Ͳev]^JoGڹ*ϫdn1+^V0L7Z$TZ~lpp\P`%`7~ïGj _IUԢ'%po.aha~ ߄jCVuM`땘{X4^0؆6 KTLٍʎI4w։ Z`zseƶc|F,ڵEzfV>چ؏4N Vlwt.g4:7}2;cQ&|pE?J){^H=!v +oH2ՓO:zS sw +lsNaǜq䦱v aF @1t<'>*ߘu37)%2MWҡj\'n5>(j41ncp9+n4F?T<6fRnƎQt&m !&ԸoKu؀-9-'[8d)Ȗ8"_ֆx.57J'E =#q-Ρ%\ +Q;EqgE]|CL4_d-&W(6ӆ7.d T{ ]2Y[s"^b}J^h1i% b02ӭlњ +~op ߾ɔz1*u3}|/jE,\Iwdq5~9 ^$(oe9F C>k|{i/%LQU,ȏHK2N3%fE)-=TӚvE|9ʳX㋵̱-hNoq7HQy 27RgΤ,7 tZ:&Lakh-3,/ɉXBpᖃ~Q.of'[g7%=/ئjEfgL۽s>e4ڠHƇkDPAK:J% >Xe6[,,ݴYJe'Ϭebη"`X'RD+br +L0_iA^.n= Y\J3?mqO08&Sr7?VLן$IJ_HXUMYX/yCV*Fz GJAqI`K<b,Xt.a7d_ebn([gqyd׎ۢW/SJvLYpw (ML]+#juO)^|ژ}D>&xJctJ;ɲi4M7:%e=yŶǸ{n@} T\8 E u Bo:W8Fe˯wc%RW* #?\vl ,@5/E=97ĶyйZ-)/h t"UV5Ϻe#xQ;{]4`Po5'F}rAQw/L`~vX$egs3yko,N6~6vs* +endstream +endobj +120 0 obj +<< /Filter /FlateDecode /Length1 1480 /Length2 6856 /Length3 0 /Length 7842 >> +stream +xtTSk.JHU HcH IP" *]z*(RDDiҤ# }uZ;yfޙwF +0\@R @B o;)@!PB!+2sEA!MO, ŤR  IMDe($܃] F88br`IIqဂ+Bw: +qPP\w17)AAooo + x#0!À_-WcG_#=W +DhtHCs#"kE\'ݟ_(A"=j `|0| Ex!^ t`@:ӟpxx \~(+5 aJ(WW8A>ew_?uF#{f  Pù2 H$QƾnN/Un(7 x ~G'<#0!@7n?X@~yR t/U45TTx"_i_H¢w"}O!k Q_^]5{ן Ku%]8_[DAЫ[Co2]o?_qEa\Is:e@oՁ۫\J`U@_v_@Q_Z17J] *H( +kՄD %W; 2 (DaB{T Q@` EA?U? ( zjF_o]u7}PqT:̩6Zyi' +0=*legMiNZ;u*N/1390%_]M?2Nڌo(UҿK +_cNYs7Ufxnǫ,mے_ 1/Eh9s&.YFfh8%x]E6;͝M;lr"U_{}ˠST6IMW#W3Qd(~yiUe4׹ƥ[('D? h)ܘCo +$bzL?}=6i؜8EǾL6Y̡x)[~&tHȲf9eZSu9vmG1A0rн B K,*eùq$o`x520p߽d7T'BgeUn;"bԠpv&c+q12SUlzgWQU%z[ f$S7u]}24ּ8[9eh]#eVFdC^Q5Mi֌*XblOYokACPy>;m4l|~%jzieَ8wfo.",\h4 u:B/랇i*ԟe̋B)9)7ʯ*o܆vw6'7C]Hw3He-jZ>%4 cXAJFއNy*WFwn1bV&lѼ[aê Q'n9>ĵ售}oS3XXBI{+/N.@^Fi#(%|z)¼gk^3)ݨ(PnY +{,}BҖ};e{o7l |OgOv/$ |ۉ42ۏ  V}Ã݋I.s[ X>NQsؾޥ6gVQ-NbG'8VVsȢrT(­^[*ǂKJF()̲szJ*(>8~[ '2]oS5y*n#8>&ǵGv < {L͋F?uڭ,IIvm݆ڕÕ)cDo#3dey@@=;CZhL)GMTaTX)tq@z~Opr@h2}9\Wj+_?zǗG83T?qnqw7J(8Rk]0j]xa$G=7/m_Vc=VBr" 2=WZjW^z>вV\FծNj9a5jA& + PMv1;*m?d +CnH)FF,ǩr'AԞMΈ\ oe/?q.qﻇ=Ex'Ib%]gaz)EFm;V b'j;="3fgIc7gTfP^rK٪pq_5J8Z&<ʆhmA(ʷO-9{mC'Zb"{5aN.:a  EC9br=:rn6K/!"l4}Sz-Wzk.nUw0.Q^ x7Eb)`qZX$ܴ cu[xPx*y''1 y:?%!.Nw5 g=':f<_wI%bp25Vg.ZH;ò}c/vCj. _qӲ*V;Ik3&Uװx^3Ǘ16;"N̏1MiO䊔;K t}.-,n1K,F7C{t\Ŵ:Y͔I|$k$TM׈rЂԬBgյ]G?;YExHiJcǭG?Vn Z(Ϭ QlDxo%l⻑Xb3A.7.#=3o fH5o0X? +R$CBKCߵ2x (흅r܍D]tjIZܘ}AI?a; +^u=v38&%ż3 #Tv[RmMXD%8)y]G]h-]\I쮜a ēK00eFH2ȒKTd?v"G:NX8"jE P1wňu@Q+1l=8ֿM:9 ⸠7~-֔K ȇ=T`vF(bO)qD$:x}XVėT+)}Ba.tށm~(A}lA.N'oZac4e6c_<CGE:x{x>YT50"w]b m"?x/4ԙF\ +mF0V*%9#Dh݉ +nfuTc|ghfY6+᳗wϥ߈]ka*N3IR}fUuM8 -+m ڶxM"z_ˋ Wt;c#.. }%ʮ`f$"@k@~V=nN-Ef͡`HyzFUrפH>+&AR_3clh8! UU?geS=e9H"ui}3،3 < l!wӹ]]FRy NܞVԲsAzwDQd5 ׄ<=k)zyVv롽_C;M,IK&nu(ݹ6N\ͪHXS,d$T!S~['ߜABڵWk'/Hڰީl7\.AקjazS/$2=hCK>>W/f^pª{rLrDW/p nu' CygQY MscrhZ&w<]pȜ/}Mq܊ZoT .͚Wӡ#Ǻm}Dck]R$*7nmK#P%p;DQ . }%)YZp6]5-Tb6Y(Np-mce+ޘ}wƃo6~I61Y|i"Qݛ'~: z'v4I[},Mkzp=mfrڳ}@&| +o^_dnvO +H]Y?snqGyW'Wq u} χ"%<*DA?`H΃֍W*eND v +</΃~|, %xc ƒ #_Rį +d[ LJF}(ui z"hq'a]ۙ'l'{3]OdpF0Lo6̩3hc_/u\d Aуʯ\.BAӡx^yɇ9Kx MRH|^fv̷ƅ[T[^3:ls&07g_t+oCYaLCO.8&xtQ Br%b#y 1.׊,(Jo^=n7kN7tAUg+MKh#QYf4' pT #nGj~|]/W{zO1H{pD*2G_\4!ymr_dWbMqC>lKȪsBbXꥦZor~e=#>Xұ+Nŧ@-7yG' _jbYG p 3[8nX>E ~$-,XA;g<>0me P~f,2)dyQ]P7פ8KUz=%ŒoV  +_mPUv8uG$7^>73<02}݁5PXiSMb:*+x8 +Hiom0~6 M+ADlҩP gC)Hgx*Uײ;lHfme\%V dKQŹ"<|\1Ru}-}LfE^ fHGVST҃C +wjP$clJSR}qü'~ X$-7)¾JamXYI}Sy %.hhy\_m) U}ݡq%8-٢ [[X >arMG<\wcY 7x-Q>3:Hr1rq&ڌm'Q:"KO(݂&r-5^}Hdz9&O߆G!n9{l[HA] IϷ[T6ݓw9,5YLIxqBؽsym@-祅(8|3*-&p=ՠ?m1i밪|}=j'@ʾ +ԋkg縻ժpv2NtVAvzF祝s߁YDfSkCAüs$ZYހ(ʚęcsCF\dPe'=E/ɰr|:]gӹ7w%B9AD7 +( +&aryr9v)>G ց R+?jIS _>#{+t1_(:z[<<9%~ALYLSZ"PPIaT1/K,v`1Xy5W!X+{*魲杕D|vs8f_hH3r\{GVH;2ߊӾuJB̀%&Gbeh[X7!(Y:騁SIhFs ^AMHН`s{ƌg`2uW%BpP~ξ-HzV0\&6]7$^g0߹>X{wܧ!lUX'S([1!_|ewfp^`V>P-ugڟdro ׍nq<&>@e_KvYaeJ${ kE : T 74IK<[f^5'gZClNa?cwFy=Te$4Mkf f7%O1<섶_ igEcFܮc[ƯC?аg7}ڀحԀ9]>m XAd~mc|? LUm=ztX1U6;ݚj8Fi&stuK!IY \2,9&/v"kd:1o+dZ2J+ynmR1;O7S6wZvm ZInNo|Mxa([,_ps[66rIT3)iEvU.ﯧ4͍Ja+c< W\Gh!I:0# +F}+&۪iՁ!s'w37Hjry8r Ei2WP*Fy2Yݴ/NSq S шT*QOl.ýИ!!b6pW(ϖFj9-̛Kt ĘF{G_An>lZmq©Gd_b/6*MB]c4 a5Ay.R8/ S' 5=2SoޘtT?7o"# `ف(u=ݷ*%9@S^:鷜;.kez.{a8Dr.Ci gjt9 FOm7IHH޸blm#nnyX|˭jP6¶*D.G^Q䶍ᭇnaNZTets|$&w, +_(q9Eo۔eXQlP>{{qp{R*"eQ$QF')iW7.O O;'Q|fyVwy}bnS);u+JĔۻV wt:chf77\HE7F߲ Vo;Uݻԓu$>C-g=d@@0u[bP[ QOf-K&IЊ1cϣbN]4 +endstream +endobj +121 0 obj +<< /Filter /FlateDecode /Length1 1747 /Length2 8470 /Length3 0 /Length 9601 >> +stream +xT6Hw;twww#6`.AnKDAB)~glΘteav`% k||<||8+/ bҐ"- Լ\@PH (,K)P4yj0(,s8:!qz@QQaY7'd h"nȈ [W> #M pu<ع>@ {zJhٺ,`!Ї9 |l=$ +p @Fj?5Py9 owZr6`nP?q4x.-+!~n P"+>8⎀!jy͊P{yO !ݏ@a>ЀNï2y /Ÿ:H + `+;7!0p@88p[o0 ' `!v`GHO/I? 'K$aPWWM_C^Wϒ|nQ!> GgU:Rl;࿾`Hl݂O|?y3Rru-gC#ud90,@Wj!^n+UE"Ad471?p\ ׁ @N׼B`k G2 r-#gq azz {< ȩ&3 +C M0O_~?"}|\`ȋ[GGcv +߰Ցu"5 ?0H$_8?2㯵 +{x[t⊼]ak ~%]%%3DB&)~O"l\walyˏm^ɦ\U 8Һ|%g:z(<\(wglMRdQpxyrPh"c;n=]`"m=*-?IFņ#J][;?jtc{wh=_?uj:pS.D +j+NAyPZq6\?3=m#j~xOWmtV$r# ;?YXo~BffvbӤ&:j;*a*8@ +i*n/']0Zrӏr:fPOY׳]*$ Bs+NrF_ZJذ#hfa{/\iA1Vz5,ܢ6?@#ԫTĿyyIyGtg1}=% +d'gg_*\2^`L#RUe+jě>-Ow; J5?Oo$1^^ʂ5#bJo[O>c=_W +Fƚ`|4DžJlex=Xw`?[^kы5B=XéSy-IwW-3gHYt |al4 /~/lX¬X⿞[f$m;X""&Y2|}bwZ8ٴJڣX$qe#+x#$'IT ]1XǮIjf$ )|J w[ w/7| Ӫ C9pb_UmP:WJ6} +ﵭ̵<ݒE;Ce; +Ԏ.~$Bcu&SxiYV Q"yJ8: ͙j?)vaY9_Y^9 sVcPhӷ=؇{-lڳh}ǏK3`>J ^쥉_D6YovCX_dbheFZRSIk{G/c`0[n&,>b#[J~p F2tpȷ.Z-$2]V>NX/0~wB'v}y1Nڈ"g$OҒ>z?$> J.)Jr-Uspw|v΍ZԑodT +-UX`,H~dmhh%NU8L݁ƘٳzOZ1h&?1ʟSSFYēX{􃏹 V[F`4[ZhHxӃp}8r[db ,ԉh~W&9BqMIdƮH0&L1-܅6WICzcO6EJt3Mo1rJQQ~*$`ug=Q1oA)Q0:,AωYէE0z=s_N\cvGy +fh:PiqĤi +&;?P84CQQ}Q ,13RJM龿#d X' snнұZرHҀ| ~\\̳F\ ؠw?o.H]m,I0$wUZAh7_$ҏ`aSQxL“h؏ ]9.ƦST)ѭ>mKڵ4fT{ٱ`RB]'P{̣G%t +?+qTW5.g{xj؏CJD9iڔ[֠s@K MeMu ⋾>Q6ձAc'Duɨ,GMD9K+jV +[C1ijO} Gˆ?d>¼4u2 ~"3>{OPN?1pklW'Dayg-Y <ۼJ44|ř8TFZ05U/NsƜZ4Yq-3t@.viӡbq'y$SKi@ֳzkAR}Ǚަr6VTx8%xzyq V}tI>Nǁ9Bn %)x|niN8 PfYHQ3X1}z[ŧWJc9順ܔ0I7 rT`n`dY\|jbQu*Bʄ[hDfܕ'㴑3.)~Z^xX;=T9D:j&`RK|􎽌R:gvC3P:g@\j6ư{UP7 Cd)^[dvײc[?%*foeW@S)cЛ~B~嫀J@+ 9pSYmeӬF3K.(iW`aijsl= MF b6SUxW}qYo*buWMUi-k]*C>CzVST\8ϙ*>d(,QKcMeu,3+Iv Ec/)/85i5XĄc/O;߼/1z1[Y8}&P>&A`5-~b`c՝`%|͙eJc+1c*qR"ɑ&krSǖ$謪K2xɿZnԅJN=Ml~򓬏XG{d׃l,rem(˸9gqzP8L^"@{);>x2@/θ$~Ffw͙|PtZxo!O&&)'uݙ>*Ƒ)#^/Lruύg!`Ab&Ҷ7tqMܺAͯ#oӰ +o= 1 +gJΊgyҐYjcA kS +3<|}w4Q =˳E}oLB"+lowao$ FZh?ͱ-#Irӫ8FWlUnԤfYm՟~)~~xrVDvkӎ[);,X*zjҡ#5 u<)&݇H_H7 ;˻~ +u1RZ\ك:jRr/@-(s +jaO&ʩ(xc/0`y7aA|"Y=7SS(L>0wŷ:τaouD׎k8=XO<MҮL{ Bcj[QYh 0MX (.үM7C; - ;mYƕ޿کᗘD'j0oR+Ԗ)aLQ [C,xcGZPwڭOk) tQo,*X |z*nY\U~Nа9ٌFS!j)1YLP؅l.s0J +WSx=wT@BIh}#zclϩA$e$>q>ڸ%k[ňd'Ϛl]b.Wt6"|'cԗb'GN]9z܉5:(3Jލ8y\{򣻡qvmGSW*T(3ox}bUT{M?%qZ|Ns˫2H<  ƈ 4'6̗?0-qY +՘~qoY1/{r/3?kҗiU/87hGY.~a9^2y)OثNE&!Qҡ(g|'8h7tMoE +]shM;{7.?F?=:ϻg7:˄, +f~a H3=ِR'mg)2%+]X|:1d*?d`s/xmX~c`yB $pל@j.}6;M;A{?^E_3ﻭ]1ا>r)kݷ]yUyv٪~oFwb=+\4qd0e, dd"/e cu\^|]H⅓N|/7;f&m(?iAߕyLEMBCoEZy~Aŵ6&ԤrMS.OK cߥ1w>׾=Jy̡j?qWܬ|ZX I#+LnJ|~pKV:/}>.gӬ{E5}_`B䣍k[:4^Mm{klxᣕدyy5SƮHr;:x?mF d2(ƕk]q~ҷu͞0;]h'nqӕXk{+ʞ :č +* 1g`]~ђܽ궗Q4tyoD3sQ?ɞa*L)S{g݅ f\uޑ'fU_-Sޖ0f{-vfa0ErѦHnթRGRn%Eq˥꫱ld,zy5W8d8 ]S'=+bn\C3;gZi!)-d^P߶Ŏi_0DeI18y{FN kp})k+ʿɶ#}N[G4l62Pe5G0&=go'e3]US(ә^76+kWH: ̱pɰrP'NjQػy?A޲#n5v{ +e>Cd`ǕlgU\z qabDoZlĸX:6xaWnG?_ߎ4q%6h<D?[t1Ul}ścǯ^Di+$lj.~ xI`ӁYztg5Ae()y*\?=?a Oe? UĀ@GlAP@@m֬5bK1Y31I~"!EJ +F*w+O3]U(Lqq4"EEZ$zݮr҇ ”[[:,T!kp27ڲwG1Y7DX*j]bZ3VK5(Q{u]mf+&@6C=4elKn +vUED2^IoѮFVj_˞EypkZ MgUUd413o. :v;H.=#(ާn%H%jqώ~&QfTWZiԙ+|\ICڔ?r9?m]4 !1G߳Z,A&lrT" VŮZ\/\ je?r~8W.;%:]4k0GVGId: CMdmiѹD<|g->KR}6&}V-UWNaa0xR*>rįF];2>dhFJ1oIݲwTxma`a&@6mNl1I<7hGVR]2 ;8J{:Tn_AgqF.Z4>9@*S 6$xkGb +!m=DHfzOcdt =D0J>Is & UCӄX7D§WGwԌk +6)z8xY4-#rEIr$wkBYNKҺNQPyF +ARMG I~dy tIj5#^f9.ܠ[bV]4n6vz +ԹT5V +dVq<\ . +e/liaR6\MWk*2xKeҿ?unsS&uNۑC琫3/2a> +stream +xuTݶ-A@%Bґ.А%$A JEDtKA91#\ss~b30Rw(, T3b 0XeĹ .3DdAQ@mPDRVDJ 2"1@5'(v qmEdd]$ AqW0  C"p>(+ù + {yyX'BF,㉀ uE 8"pc= A @a(8o4!PȺg_P E Q@{ G (/"C=Hs(!xXÂH_# +*?eu\@ᰀ_!1}ܬ3 +G{ -<%22@; sU ;( Ov@ 0 + "#a8:FY/Bx>~ F~Z 17OH HKd,cEm\-=([1cϿk>?kEUG` 0 %-)77twwC].> xzCmo9ipGpPQx1 p$7@`$7e5$ +a"[Y`9X.xs_u 3Q I x9OoH8 Og ڣ1_*. v a?J<0~+ֿ@x#` 4L.ܩ:RK{_Zb-%pܓu/gj܇]O3z92¿q8mݖ2G޵%w怸G3; I,Po>2IyB yl>q!.\Tpւ]Y RYpsZc-8YZS` &ZCg8#H|ƻ4< +ɲHZ&:_m&GXn})L]#爠]8(S凛va#VbLj 춺g8Ј4G’g7WyH)Z$ +vn+憯rǁw)e%md$"t2tթjܞwKT(]y7w{0!ט>Vxb quC 5~fҶfgwYߎkuz_<ٿ5v1vZ4[:mϧ)~x[~鞰0lFaP`y{s%I:|ڕiZxUH|V?*/}i;`R$1QKA^zCLtog;UD~+3 DEpd㧏h^@idJrM\UC4 e5k6AeLWwK`9w)B +|E r!n+uw7NJUԀ4t/X 6L6 ^xV٩"j@ټ0;ŸkjXGLJ3=(N\G&7inzha?7r[:ikz|c| d#q2|PPgmKqS%PDYٯ{>o={1)]="&njyXE`9P^xN(e?>ޕ}@:G&*9rd٧Z6'b-*]m(GʱCИa +`rv* RYelptcq>2h?|wBuuZT!<,z,w5IGj'ƒ*˟Oi8fsNCzorIw.`gd؟Kx^x0#ye)p6yIʗ4?{~rKkG#4 +Gdn>y,ȼa<AҾ4PN""1 7/JI딖a +f&l^- +&v^^ao@ug(3$#5#x ;X{O>}:Ktxqqc Ng)6gAKig/+޾~c9ψw7A`P +"E] +nS̴SPTb)sc,RG0ϟGd6M~䗆(o:0X BEO>ȯ fMtCdh킻 `"y'*f:DflYd&eK.a +Ob]^}2jD;"޴&:<ǛTnupEWf5³ &N9)+yi+Jn+d~= .-1桽έhetn~Z^ƒcXi_x-0=آKCIQ秛ȟĂmHnEOZd08vwvxg "Y;#6>ݲ&8a_bEvYi:,$#IzCmַ  acx9R]4naK +%nS nQ'}o{uyKCiqő($I_c gng^ËՏ-'8Pzf&I.1 LRV,xF( ܋^R;}OX5s#(|ijCf&{=ɅĪx +bO +5[2 !PǍD5=3eXUhRqS3g;j T PV3Q֟}+mфC#-_GFoQ;e:GuҢW!{YɶZ8n6#gَVe[<5߼S.%gpg'sPpH)TR{ )h/|/xEY'Q2n?իo#|$%um%=K_'S_v4ײyE8+m~!q(O4Uԍ~a a{ +RYd]~S.(@d Of.AblMJ]fԗo7Ǐ]b5?i,/HH|ꄻ^ Xtl0ZЖQ$KC{kĨUqfb7Iv7}|j3VY9>#rUw{bmYˢ\8Lo-Y#yH +Ѽtӿlx8cXl MN~e˛{r]^UҤb6`Lg.Okx1^|? Hm!UJtkѠu@RdavK"n,qqg1O̸.mSM#]ܛk="Z$IAua ( nl: ˯|b~(v:S4JigS 0b,ktm73%`SPF~F$ImtV:"3I˔ +{0kHmťQ1QMsɬvEaRTE|!v//ˆvGEZ]U(*b P[9ZTu +EݥTdU{$/Ȗ~!۞WLv}J&hݺ}N`+<`vsrN])AU0fv_Umۓn1c=3Y*ȼ [G^#Җ~|[,ּďpԖwZku>yIEmvc*|7tAZ#6qrxYh%Y ǜGqAzؐrHɢkWL%Qg (?"XۤY}՛y۷%M\ ٍizGTok95<[پԚSLB8*%yy#vm2,]Ֆޫ`Ik7,/*d~`N~D9IP|›<x'k"U q^C%t7J Wܠ/\hѩmn>ҋe{ŕOL>}7ڄ +1b!O7I0i.*'?2\E5ʰPi/U:Sv`nɋ5@OWg.4kfqqzqaEDBQR3}uPO{.pAOUћl֊J$v=g;`kՁ[p)\2'e WzVt<T' Ru +endstream +endobj +123 0 obj +<< /Filter /FlateDecode /Length1 1320 /Length2 2576 /Length3 0 /Length 3443 >> +stream +xS 8&K$$l}_ƞ5J cfc˖e*ǖSE eϱFZQ;:s|W~ bH G.($DÑH4L^ޕzHgݿ! q +Jld4uQZH$F"u~t]@"pJ0y3*E'!]P+(-Uw8 +`?'#G\x~ O .3T*H3 Xi؏[W"fpzC8:pd08.L +쀋@)k`5*>G DYuT"Q|ovp(Rp +GfP9VKX'p?NA 8D^3f +R l>ssB/׏B IJ& qB:1/:JG '0OD$peU#jE!,Fޜ6070p љ`X J0 + (sԠ?Ar+c2/ffT[i45!j T]C<~#7_k7Z+3%s@q@_cr (s>.+Q'YI&aȬ5 8=H 1ip0@# h9ׂVpt:Cr,,Ź'JCP! @cBa7[Y6 +@8$4p^~Ig[Y#a`ub|KbnH5>)LˌLu%|Stc 4#AWN9װjhI=f[UN!H|\8kܮ] K}o?)}na'Ijk pTdWwTZe|2ny,Q )P@̐~Vf;xg+.?Rc!xN1j<&Rыb`̗_#O {u_Yʝ;l#xc~ C~ +]|N&t7i9!gy椘5i**"%~ԯXŸO;ñMR6ݾ 2):SI>r&)8#7x+Ϫ;+f"' ɲ +ئgWb ­z>䁨;-ͻ@8F:i3zTQXIR3Nc 'wŎ΅^sm42%.3  _^L\tE;C߳TMGvKAo0dwK5h|>`QB3S^ܟ^'hN:5/~]Dr%;&6>cҷQ^hd}ƱݥC.xg5J쭄i]]p+.tUVODBB7g=*I&8pkb6ΙȃBr0DRԢIKOuk6l;SdKIlx!^7"qeZCA"FJIB]:8tD~pǩBjb[$NNH<X /?ڈ-:3ƈL@b xfޥi1/|]&y)=xhL=7P`c -o8Ņԍ eW/~aL:}=^Kj\!#wkܔتI"ݗvK|JF4&Lt6Qmo:25,F9 +=%^BTO+J7c[0Ijsk8i;tm,ӐV[ +X0k~14Ԙ2}hez:zó%YT@1sYʯ mZ$\99[dwzeuI5„ +}ٯRXr7= ϟ oa7pDqj^O0T ˴w <k`7s%nwρn4r# +R棑2 }<3|~R (@%[́ 0I +endstream +endobj +124 0 obj +<< /Filter /FlateDecode /Length1 736 /Length2 14393 /Length3 0 /Length 15000 >> +stream +xmspf5v6'mcbݱ͉mۚضmNLwy[׵zuUDh PPfa03QP:ŌMs3#Gupt PhYY94lܬL܄\\])R57,lJ +jIu-@ gejnbNpp:؛Y ػ;!f`WPTP2rR]x67uWw-[Z&u02L-?!??-vU03P:9͝fUc{qYz?O4Q-៙r07S?4Ϙͬ\s?3`3{[s?]J&ayuuÿfVU?;wX?`/o t23k[Y"" ,6V +3Go))_uZkXx\%$܌: + tύ.O3ã+{5|w@]R8sɩJK7׆k \;S;`z{VyS$KQyG?$N⣽$>Z] k/`{7? +µ8x\Ok)P%@z; +gLj,|hAq qQK_23W^Hײv5M7hrQu~Y26RJ+h@|,aykT7&xxFZGsbg*I&ԋ fw2JC 85*r\!aWs|ܑUlgRgg2'hһKK_"nZg:x@g)vnz-r]o=_[6F^(!LqPJkrXto򾔳i + ^ Y@#QgfJ +Vӳ ShRw֓ BG3{lP ~zPNeQvfJa9 +wD|3,u`#g+|:6(p((eHܱ29wτVT1@M}>Sq[MϨbM:<C`#TфV=]fo3 4.#s1R}^; Ap u> օ;37SL +E M51'\|k'<4*3䪒S.@_l,7 +7"Z3:W{,Dk} Q qD_LzsxUrAMSg7pwb6#Sgr|(G׎8bmSUp͑rEH2 )@vUGE/K늰H͎ߵTp1g{WG؃zPP+aj4T-z6MlEM.G6"fzA1n}F/>Wg5-{J.}{9b-&,N0T^l!;}ʭD>H+t'ZॣcYn˃CE{2"GO*O[6y&詳!Qo~5Cƍ5]g7%G,qw|Pa}ĥt4S-~ݘ#1W}\`@؇98 >@ B5t_`!Y sqO2i!RyVzm=Z=h0*UO)vM +vJKZk}"ˏ ŪbyIǹ/YMe wOouy6Zsg 8ǘHz=baoeJށbd}봱xRI\֤ <Y>Lum}?l/}odN4qNc,flzdxս';R~ pD*^̿Elp^d9cvyӖc-\"66#2mRlwц[&>٬Wc@c&p7 ؽhh `::2jawb=5uIw{wMAR@ndkВ՚nW,9mf7R0otz.!*3>S`~ex 7`mSTĉS6OT?LP͡S+M#A٭ߡ2^/s}T)$Tr2o A  SX1Q;E\k:-ˀIq׫BT[NGNۃ7Ԑ:ʍn +H$lFq-mҞGhBr 3}{A]@C( qMMqطQ%= i%F_|7r2FG {/\R0#̻)Q3"Q{!Y].syK-)Fq&8< "#)6v5ELq2 +X _n 7m2dbWh<#0XREpY9[@|͝/>UA,!HG%&H/K+^G|'zx#Ak !gdMt9V'*&X5I[[tfIիM/>J]teFN{w`M+%h-< LК6gh !z(Kt+4E$JquU7j ;; ra +opP NB>*G/oι|-;Vep-sl*6/*ڥA TB䇸S55 +齈F>0k]*ek7jKШ򽷷C9פ% IPtm88}y;?r3;+L}%Ǻ\cقẦy$KIBgn DFfjq=lx,x2_Ryz} +l$I=Au KO;?B)0an?K"ZF +UgރIcw +BF:IpxkƄ'X;K`U1) `4,x$m?rX)뗒ϛඔuM ^9$ALue.zU8&qj 1p}ˀfWmB]TQMISsL@ V$mMS\93ҏ?Թe<70UBBU,zf5H>wF23ӷ!XG&UKus+rWu"$ !Ƥg~r w6}-PNh"7ݙM0qh' $R@5ʙM4*y֋( `u]3&aD<] ڽ(8wm&_!edYڨKT|N mM+a;T:fRbE'6=z\.k҈~G=}Ѣ)V@e.DQ_UH[]v|#wUZs>ј [B*ڛ /ZLԉRt8nlҭz]5>⌻\QMtUI|R=U1 *ݖC{es.㸍y !udl.fC='<}n +w\l+EOX̒wQL;e= S tkhCvg≰7APfctaq|"5h9HYw靼dui nǝbB5*w9B4U(LFVDye-?}{iR+ ZR_[@Xcw}L8% )Y<ђRW\ 6gWz$Ń 'D2Ö |VEvl(qlp#XIQdE*]+]m#q^o]6앢 çRFےdX\ff25/:,~G\p@/;%';{7alo'N΀0qmɝْ5D.I -bgd.i[V0mYNbl+a^v."`7ع:([0oh< 8[4pjImߢX;?} h9_֑va\` +r5-}iyl.]DZ\ěڞ'59ytn΋b^B>( t 9A]+J)#5T|9>ܵ(LѴbLzʎcBT } X $xA֖5CqV2<-3鉓cy鵴Y`y!EGhB>ֳI{ R)alTVPQ_KWSw9R.&xFZYe ju4åVjonXg$5HȈ#@?L +A(t?3H L'S;BL)Q0KCHӥH9@IǃT?Ʈ]ok^{7P:Ǚ=@T<#vև$8~]9c%40K|pZzC!/!~6;}mRӁM>Ic%V5ds 3v+Hr} $bcOai5젩5\m9zة}͕SJ\9gToI=p +ȮS^M ڹF* "4D Lp˟L:/]~&S*ߨNTwbL:a!J3 -`LUV*BZB&ty2ɈdN nopN9vϵ?:߾& YKO~4]%uh1a pύ#@ -vF|jR|J/B>Dx=@VwNeGܬ5FRB,7Bg-tқE߀ɡujgp:u9`-S6&WVZ](pFvEϹw"ܺ#1+>}3K%kU4,3n+=17cJp 涪P;LF  +2]~Ҁ;&H*$ w5gϪzL~=eE[~[Ḗvri`*]Ds,%榱{8c> "8'oz&!~WXxZOƣ0ݑ5`g YiȚ'+?m^:6=YN̫Թ6)cmw8U,J"e UttNa3eo&˷ռ6_8O~2ڎ޳n7$fQ#JσQoUwٗDOܵY԰$Np>[ n9΀c4$1)u~mvzgm7$揀!Fɷ?k?<c~H--[lg8p z^%tuqW}=?3'HQMj-T> yzԍu< GKƤ]ErlhHEb Hz~SE$ h&bU&C_AH4u~`U.+ۣt>f<Ȑ\`ZuT5^efx7jt--";Ðmy^_- i8 +l]T1B9: +Qe?uZ 爒 1C1B)<9*.ﴷ2/Q+s̖qVtdN]ӱXb0;;$g5N2'`j"%a,ėwz/04'TiJ^W5<@Js;*ݖGKҳd]gZɰ$aH?6<ߠG=6"7~i0?/cGpyNc"$v`t.NxHC~?MOBF43;`Gf=<MS&z:[&ajkcphEOwq{H@v.JJP-ZJ-B#*3J/9GO~^ +\2tSӖ// 3.5hl}yN T;֐dq]|}CܫDŽGدW9{̿៽Srcfm +pKB>JW~D@G#̦+y{;򅬬,*u9'e^͠:2a^eiL6w"sb|q|j\L7?$n9l\Jۥ׎9'%|fuOҜl@tCH +m-4iY"\7Ö gu1yݚ*L[]' 7=w[H7Ұ9I,jmѥj!O)"Zװ\YUL$6Py4<wsUJ&r@|kA]ÌO7o~5O+okc5aPc7<-F.ZwKy+;{0vGp"PkTHFvYz@dX?NҊ;:eP}UaWe5qJnW|u]pHJb[DfOzks0 :c%}?^dH  dvFG+\Ch/GWjΛ4C1qgP]!n;tW Z9R%׽h +صX04?AjܳXAt8X϶lrsf$LO$DD&A`j257+54i0E,BYtc)J`b/:1 D4(rƀ'g-25 *DP"\m>_;l[mY}vd] Ҕ^bkbɩV=Y< '?1{Y76⼋laV{44:>=B$ٕyVL{lja99zxkA6:yfE*бb3)׃5<# ЯT>]Ӯi:@?wp_$ LF$IZ]HjrQ6?7iC^keROHYk7&wX)^ ^p!!)V +d V`+#ݘݖ@%Ȧ'(քGڭ3//.}[gĭ26p*Lcj=E$TR)! l*'!sYeH%=7Ż!ej([Su6rK)l1P)EiYB-z?]N?'Usk44[LAGãð77*k5Pq$uD~ܟO[[Es%n8'3O sg_]/\_м=֗ P~"͡>ȔD:P` :W6tn r{5EԇnK @HHO bo?B*ӽoVǎnoEZM#dpMyuXⓐ 碎6laLCOIl<\ tpJ(,PaA!҅&H`DtXr}f]oi`^8j׻^09Hb.͔>t_biTB%&8;%#yݼ 4%r# +-P]ʷZ=%}Bn7"0o?` +Yx;4qTʹJgf5k_dܒw^8$gBcNw}ŴU, iG=E z1܆١geK9V^Ƴqo8;ewњ4DĢ`U66 ȋcݮ:;@P٥zF$$Jρ*>6ͽ?w *lx" +{W(E\V3 j00E@=%$x<x_}m Ʊi*zEF6.ݝSЏS,cET(ٟvCt;ũrژ]e.K>(OAZatGP|(>.ΈI吣EӵTD hTO $Y#t;T`OҚ]L ǗM$֘Au/na ]0(ɊٯyOvSDlZ B= vu9>2v +j-Aևڂ~+Z_A݀Pb9)kl` d1PZ_sO:pQ9!Z&JO2Iqp%D!\*wr2.C86:JcTxF(9}:B ÎQ"Fj[[i7$TF2滺 /*JٽpIz ?4gXl֦?ᐮ\n7}5(\aJ ?y"u9>\Ctp`6)$% H=wom ;A6r;>y<]1LQ}W +Gvb6i&}*H,)vq;Ĩ@|7set2tXkLP%i?Pg6YT݄Η7}SZU;<) ='f$R(yy|/6FdJct]5t'ҬfğZB4`F!|kSu$EY}~.f3֭?>^9ؕMb;y]/83ۈ,æ:AoSV)d g4L 3?B)|:%NPwe9, +~qD}^-ȡ)ӒZDM|?z ES[4󾾶*3ojp'gAunIİ_K+Ҍm,)[> , ,x[C*QrYN'9)gq2E׳;7kJ}T}1 Q?˵",oEz)MOYm`h,Jx(:+)~%.6)o]O!^BڬI\ɳ_JvqH}s5T:Пrs8`;Y,}}VWj͌74[eO<04Z/9 %ia'iEknF<^fK^LF0n%UX.m 2Q}?n +#Odv[UIg{p PRP,YzhRvL=gfC^İҿ zxToS2tj-a"]΋N֭DMcr?y^4wo\h4iH1T"2|=ZώZ!sT#3]ylfTѪҠ`n\fޤz>x0ƲKi" +>` +k(Qhmq[L( )x8QqmrpT>t'uE0[,L;E*:턠PƟ+f+mȉIaAy>O};~Z<;pBRB7 !=)r!|3zH-Zx,`=Wq^g~ rWGqw%8ȓ^;ԅ,|pd\IQyIhTL,$G XU`N*(9Qn y--7{16Ic +ɧs1[1k֑6(aUskAy@0x^)L[XJodl9Né]'f<11X_;dnhX? ۸{IFe0pUZSts`Sބ!\GХo7U{!6cvey~CW33"_^_nh1z-f,گ[<6 Fȵ 8Logp=0=ё&s=?RQ'M^yHazF_>Ni$<XHZ\z(WX F ? ^njoa#Iz{8LvJ L^_؄_l!tZ8@<-ߤ39ا횳{0nDox(ЊyZ +Mѵ°3d6h>Dȣ!>bN$'`,s6뗪}#a[0aA٪)%:RpH=/[<ƭQNa۟MΩV+}:X[_en Dn +aJIZ,5n^Jjll{ >@ \_qF{4B4M/^xdFэwM=_)dYNHL 6!QP6x 'xtv<͍5@Z"L K:\RUewdR K)Y@&޵D5>Bq$dRxcltyW&R{ݨRxC e޴Po)0Ö4E˽[n' w1lasc*AZ'DQؕrW"'8Q17I]kiQf)0YD:{rjI~J_CW+ވ[,?f=ۄǰx }fG!(K=!v/1z7[W3褎N 0 VO 䕰lt8;0r<:ij%yfrlvcΠ;__Cm(gS&3TXD +|?YL`F>ns +u $**!=85Vwy fЇhJD9/7Ac]hc1Ѧ#]?Vqfhެ(f;HNgXh5QXwK}GMG2?;Z^cy(srM2Az0WJÖUL,WSZgu%E*Ϫ+#@yRYhG+~՟8g,$)0KCo/h!b*;EgvP{m1W|D$ +& C6`*c{޹Qlq?~ | +endstream +endobj +125 0 obj +<< /Filter /FlateDecode /Length1 748 /Length2 18442 /Length3 0 /Length 19059 >> +stream +xlwc]mٶ-۶mvuٶm۶mvY].of7'3Ẅgo2"q{UOG3&:&zFn#L^Ōaf +P1s01`"NV.JFVvVNu[7+K++??T.fs+[3RB^ afodd Pt52Z;QQ&VLonfN.3wrȉ ++ȫDTEFYۻ8smfh.l+W?= `lfae/ޤ1:@P!hW[[y#;3@bd#NVa[S鿈5I`dgeM#\HRпVVfV.m0U?) +gئ? wn1{S+{ ?49o 3.gda0I<8Yt,,&N&F߳cfff&0&bYb/zfiW(( :}#|qׯEg>Gv;~-Ss5h8xlQOŸZW.Z,D9}N@1?稸$Fk~$!qa37fsI YLD <3FxRo߯qFW3-)ׁw٢dA u6(s#Q" M2my @Cs6gB~)'ǡg )i9곲nSNpuIc }ae1f<蛢wresN,ȱՔe|n;0 CC):̘Ub}DZ\%ifl>Lof,7vѵe8RCǤ`Thk%]nYra# +>x)bzM!+'r4tl-MivܼʤFVA4reY@Q&e6i ϜZ_kjkctS&_ST.Z_|DojIOKW9lF){z O +~jk3qQh΢ #{W:MH&BupP3a5~ln7_n?* kh]6ڲ?y@ LcIkif J`Yw-%7r(כC RcE.ִķ~m n?Է0< a xQӗʉ7s)!YɮQO)*] ؾ+:aME;$seVb9-9_ޱ10eGbU%5k*4_Nu  ++`&yMFJOхS\KKhӆ%c| :JoPs ИxŃ'f^ȜyWV!i4{&znBIxׇYń "1JA +5N稹rv˪"o4:2j8x'H/,n,N;Zy /R=a[h]L}PЄoG&GݐVt{p!Ncޑ")XQʉrֶS*1xRw+5l43 !%J@P'e [Tk8J [, kfHFMAXܽX(-Qz}3<0.$|q _ƭT2ÛךsU}C-f]5c; ,k@^pz .c$ϛAT!FݖW<݅;8t6g?2t'gCeZve^ u3Vo%_ȳOg_'aʰem\L֍"kV 㹣M-;sƜsNMK1+LSH 0C/\jE?Z`%[F8`n9R3TAϝ]gL}6~q|u~QlNpfTg$c+p `5X*Lӥr(MA_O/^C#$[#iOΪomcŊGFY(agTKZ-8PZyf`) n sٗ+BzXfNGS({CRkbYY4bz s |=v82^\C$L;Ax"(p6E(XE+ױ=Q,P-f@jyP_ܨ%3 Pbn:xMN=4+v 7.Ȩm4(,hOmvG@) vHRr +5 IJdɱȳ!u*b| Txy’Bf FYB%Sy. ){և.0ÀBj ;Ѡ ?ʣ?e0HڛS7K)[nǰBf.ksD1&6$1(BZ߬Qk`͹{SzM%(WtV?8X~Zvtrr3cEN.K;zUԭcC,պuԝ{ڢpy`frEQDIfyOK͑$ +b">vpUVYNbCL|N4Q?HKɰ$D$Q d}G)PoD|:3!z+MGbWA@z0.7z: U(,v7YۖڿFӃg>lת#3߻?51; 0TsdPh>5 +!z+KRh + K#.\t;u<$KbޛJzW폶f,}K5y6̽ќHeX=1AG7SJ\lRB.zҟ&N_>Rn=sPb] .VAX{bAh~l|½ I'Z'BB!F΋-&֝6TuZiJF?e6^`ȄTVyya14`Ci+ f~&7P.A&;U5Q@6KՐ=ŐVRC\ݭتK~žUQPJRW$opbrdl1ON{{E KPi3N=IɳgiStr̈́tTAR3L~3*v&:q9.U\XFQV[X3K#)y7Jnncry@dĺؗPoZiGai7lbZ $d;VT {5 }o$@'\9f,<%uYL|s{.Hΐ|j DWZopr_y<_}Ldrm;3V-Hu ?at[u; 39Z/_6s0ɷ~~]ZKc[p5StR 13oqEy."Cw@wX@_a'${(?RIK巆7 D1']tZЈ]fsY QB5dpL2RpŦlGp Bf=v~yet&8+MOjP1^i; |AmeBg53ۯ'NoSCЕr +f+F39X*$ׂDLab4"t,*n5[E\'P Rf蔟GC1zupѕ>9H([:*-, \<'mh"Sr1z {;=-M'RzՇX{m\7TJOPjd + +6>?ןL,~P?'KX*8Wn)"c+&we-~IB/IQ$D[!#60l]upX\U܊QN2̯ϫ78:-lIMU.6ƯkF9\5Qe#0mk|: ݝX.s_k~vk(y$V dO7^L|ݹ H,%϶PCOԠbC`[!zwntI߱{Rpre;3.נ%Oe25?t‘(p m[GA~Wj /Yz  + bZ_ܐ/J4PP]Qdb3cQ +`T1ɰngLO3N+VHam57dCc@,@&mN)[\y7>9)ƫ&Y|sJKҚ+׶!nTf&&l +}dk}8ˑ:x 6Dhz/45}lh.H +*{3 P_$]i"HgA ](l8[oKގ0s yLwK0Wgg0f+KS 9UF$io ]uU!lk}jSviFLjn$* Y$'ՋtsTHZM}*6OFؽoQvS ؄~fcs)D +p(^DpIVP\z-"xHu@>@ق/=uFدċOV 5&8PR!S\bϣZQ\pV'DlVw|쀂2k(a\M{bA4&#cJ" Xe82Q`dŗǟ?,)oI ɭ AVGt3上n#Fr1k?Kˠ pMUS7s)Q ^̈́xKHYԞ[Cx{j>K"_TR/s)("-Ò*ϵ+f 'i_1슷c v쵇vqu5 |چ~*΁]Gc#rt&c>A96*{Z&E&Fx+/@ˎ >s5,g]Zu30ڸ4Kv>M=٨6{O&Wb3rjOeh 8f =Y#"Gl::oEReu3v쪤^z̈́q+ gjFS£t^+!/#g2/`mw1^KĄrIt_3m-VV=>o*3|2p) +8Ҫ'ܞ  +朇 " iK=|=Zh;ʧwv``q%Tv%8箂<" < qf|0G vֺ @cC!Jem ~,Rπםb@I!e`LU#_AkuK!:itiΨ3xM1 +뺯7Sй;VHJv &_>Z PCDZb} ZW|*}#hi [Z0O//mQsY$]w]J M %zHG)LItXבhPaXUkE ~/rtؘb^!^K'jE>J"tsoVGKӌ6v餅2u TgbH{D]z8 3* ִ I"5mS<﯍ SE]?]KmCm~}.'$UgaZGŮG~u?\EUhS7TPM!n(5A(H?ѥ)<13P>'aǢpn`-zpEMo# -D:c%KX䬤?L\7"L?j;ͨ=-(͹3ʬӕf5T[%-4PjQ{ &Y<2*5~L㻧u!-G?ʀR3fѴĎm9B>'~$W\ߙN~T$&WT2}䤪wrU)Q)=4Rh8un,j"} N55IΟ1HawaM hp&x_#N |ĮRSok 7 +[G}&#w&vY gF0GIf"xFod!Sn.%I֜Ȋa#dd=C=J7(]tJJFil=Qq꟭q$x)K'.m['a&ܽ[-A~TV'<Ί UTmk/qu@\5c2R eZpFo5t cv6>UƷA[]. v[paY$j?"$.s5r0;n`қrTR ̨8qSy lizTX4N`GLJ #73m3[_4{,Y3ФYOWYbX6ɕ/.Hm1k pKs' o4&2O"'FM:>3" @ +6Ƥ #,m@?Af}i KK2(nV.|m ա0X0|ANe9X%{\bL1UD' YS4Cm3!r>m}CH- &S\ b8?L 71#s{*s[?I׆M_ui]'lW(1WJ jmM0ࣥ=և)gL fdAJ V/ +r@ k5\sg9XS'K 2 g7 ;{cy߸Ywɉc,ƹ[XTl[ Q== }^S[A F }c2ӭ! 1VLeDqP̵OE(Fy2)<Pm"[m8ٻ D%>Uuh+?FW`( K <_NH7siǮ,gj9t 'x."\єzYϼ,$dZҩ]Dӭ (l +<Њ jIjC~V!(ϒ/3" Mس(a+X'Xep)kmrJqW=~[Q`n%ot4s+&;4_yϔ\ϸvtB@JdrRc^$m,g#INvY'_ɥѹY1 7/ܕDVܶ }38a nv`6X| e1gey6\ο8R 4Kb04+7jSXpQ.)Ejh汝gS'C_ L䈐g%` jKtNn@h'5Z*#8ya q6Y]+mW BTuc@4P]-̐ WY1 +@E)$ +^fk>-v򊟭 +M~p@(hT .Sg ?oJ5 p19Z;9{vZ;*}C%j1{*fX)RYMDw*oPṀCym05XZy/j2&f\n[wAPvw ԝm +`j*wNF +/s1׊VZn+P3kgq"Zި6JN@ +{9qIBv)4ۋdqX\"KH~pRI8?2/Ϫ‘eUvuIܛ [nUհ Yf3NHn C,v/W_0`R=*)*nP/:eeڮQ[/ IQP8T'wX`~$^fBrHQx\9A*ӨrhKvqҒѳ!!Z'nIeg7pO6 0o6-rUޓ4e?j1il%pq`"Tp&w_s!WVc|^ŠOb/lf2yC٬wbIEh [XnͯdM%&wOj ]]HE?x^DpJGvo Φ|Z7n#;OvYie`S yx9_Y^fa8~ +4uY!ǯ Bg/_B,q\Y땍69 Ƈ(qPBRoHC2nRIZn^8ӽNPnN 9QG n)s’ajI g!MDD2*H?WV LCt}`mȒ*UHk&h:ЫZ!cQzx7)G;0,Ѱ[M;kO.6?T3~"2 nBqʎ܃}xn7a?|GՆo'Ov)GMU L&eaT@UI^j]?<-gƎ`PսFB޴'PHxH/W&aW3]p,t2 _WN颕w9fZ#\-_|F(Q"ƛbN-0g|aˊܡ{k͙j4ٶgxS>9*ߜ?^ Q둎7^g)mt,Hi P#ڳZ0G#tIcd4D9thuo. + + +z @ry׈kqyԦ%N'4d0*Z0KAm8BÔ( ڝ_qv]Ee0*-eGX.Gz<0Węx [BQe&|2,_>zu74ۓ'=3C1ޢB2D: +;'*n3D&ؖpb6E)+nț1._e:#l\R-#|%E}[6t 0@K3/IrW{OCIZ J3ژm{ԵfV /1C;ulDtO8ӀYGǂRYpmIl @B)7;b˃i"cRq ixJ]h}[Ec^X]KbÓıN]|Y Fg(`;RBM&E%MѺ/ws/cvJH׌}tAC +-l g/0% h]։dmxqH#\{)0U@)Bw#-T3]!gvfK5sZ=Μ|Oە1S 3퇩;DHOV\䂿1XJ-X^ҹدg-8'caȗԈMibTqD'\lj beRzRQa+4zwJ g:ٚ.O-AEz4rč`j"ZC'˙DB.T(+h5I8W@Cؤ䋚 c@(BÊ3uW`1x+u¾'WTK!2t\~h=<gs1.B~X#WZJ|l}f-0.2boUlNLjzFA_iW@H%ڶ%yqb pyze[-ک+U*ԩGT+#Qe=; '݆[e:S \ #C>K>@jXY/..._5c8& zqo)'Uzk4;[F%8Y-Aۘ~zh+khsHEy4WYu}~ޏd9Zs#3LSPc N6 6z j޿g@J$u =m6(^JwhPӊR<\M{SF'PixZU 3}HHDp6t^0E 6l \I&+P-P 4ӱ/^A73}h9[dr_oC1Q$ON.r9鴀Ԉ^x!b@HSaBPDO*Vw"vL֢{+㔫j7)@ .Qh]OH"0<]KspCUǻ&CE|Jl)4X!e!'Ͷl,R]kԎh Ao'm1Rj +;;Լ$i Z*r4~7<PV9x)X|gJy؛Ů ҾH-A%P/2+4* 4nN(pBbZ6 |6&,~tw@Yuuŏp"pn9Om5ʗklpsPl-xLڐ[M \;2텰^qs)b!rRz6!ȝfq `kIw +:8H%s_m~`_QMuq;2E,R v@=@4w!{g4@,rJʬ>=KMܐ Q:/#a=XÝP-V>x^u~)RdĞƏ ~_22]@[x#\edc v2P7fJ~(Ȑ Փi)I˴%ݏidU?<ɸ7{WgxeJA+']ìԪJ4w~NN`&]6Ql->lͰ~{` nDxNcԤ C8'q4\,0-V7XT2SO&3?E]id~eӈ(6ؘt1.1k%"P67,'g﴾uG\v}~"eqeSm4ӰDܤ<>d/d|77|A|i +MwOiIHi/ Ql 2^w)irߍ\6boDZ,^yY p6<: +EuH1 +P=oE}޲ +endstream +endobj +126 0 obj +<< /Filter /FlateDecode /Length1 726 /Length2 11553 /Length3 0 /Length 12143 >> +stream +xmvePݲ5 nugwwK5w y=֭ӽzukwzh)e!`7mo' + @KVK]ʅBK+2w@O @ ps N.6nzK@9 qxZ=<<=\Y]EY6i@7RSWP˩@`@lk Vÿ% &W=@.nY@*2j)6m)9PvsYk:f#F[uwĊZ,@ֶ`x ݝS+>_@_#@/qtrwT @ ev눋掶_0!k![WY[/PV}娀5!`9,@ZIM[OYl ڂZn 5wnnss7[/!;v_"eIJB|Y8,\N~;kYM eu b)fQ S2W 47cô<{am;l4yFrMRF>l!spBeB59KeDXF]mPQ!NR"-km5Dq;'NѹB[#֬sk+qe,`' k&Bqw&0t킖Ԧ*gLQSi2c'(%/"~FTn2'LY$lǗ1C>sEJ>-̠M\t(GxLqmH:[ҟ[+ ۛΩYgSWtnS'پ/bep&6N ~>"yΠ>Uxmrd`ƙ5IDL^0[z>}Ѷs_(_ʽֶZJ8KK&s+"evh`~1vGoȗ+I0'D42ro_:Le݄ڡ|%|n[—k&GLaX>^|A^4tsf~,N#)KYiZe8;U:`[X8<ũ= +[v\`UYLGCkƟV̛Uzfm(78`TԔ rGt~'DĕŚ!i:gF^RՎwu#!631oK_pWJ]oWݺG$?UKa1٭jzaL;E^zjxWYePs^+X6•%Vm-<^jl=~;-6"]|MCZ;pzjl7ru3_g`ڋsy7{iφ qaclSڀ~D-h 6/WN`.]57'``g tQGLX,5gm10qT"|pj}1ۣ^0l/:@#6^rY&\8[R l<$/ %,ʲR8Ίi' kS3ȝ#PI7 6[* +yHeS ؼxo83Е}j7;?UJ]0*˩d8*J̻ٻbiOR&VS9xuxMYw#~vкlÃ+t9˚N#r/vӜGf+xTnHV4r;0UISڛ9\E,lf0C!PŴG|niOEj^cC"(s7iXi>ۢwiŸ/%;>WRKdv4y"P5Q A-k70ˊ6Jyb + 2vYQzלsCbk9Z `˃[~n23XY[ YQ@R4~,pm7kV2Q>|ex3WCM7I{X焢?0Syu̙ee#H\.HqUsV<g;s3W;Mq^Bh]As:)S~hsI3hnwm$PL$Z$+6)3eFt,Tb@v7_Kp3YFn^%vsO{0 m &N@ zd|\b˫;ވ#eC}Ъ,KTIJE}-b#Ѧ.*S܈fo +Ө d\:&&1C`67ՍBۯAh-+мD`\-kcR=w0M/8`t-`]O Sy}\ZP4A98|țŸ`PIBkqNE~shE1GRWǜemJ괆mAp7/SO+m160 a7 5e&I?'7{A'uN!cC!,;_N;zZ)QX|"c9ԁv +Whf> 2G"Gө]obLjb ЕX2sʦXPOlgS =.]ȠsK'kaST=\$ z4Dʵ`?j B?>fu8 +0+}]T*d8sPȹH] `ʻb~"]0p >! 9 +Ν,[wg܎b#aR<"5FHJ!1b{̧PЙ[qcU8qq^ihǕ<%3ogoA=+_Hʆ{-<Zؗ,~ע8-S~e(|^~:0RNmG?j7]rp}|R\c?c %NhˉarE)*\F W5\h;9F)3VLKLX,}G%i@}p}`B:L1?e}ߜX;u|VA 6(~7ڱF\?Z$`F|zuk\ZIgNړ_Eg3m j +&9=>gjoA٣wR[밾wU&m"a Ifleྎkcx]ұseAbGc4<« +$65 g}63o׸2X*Ѯ3PnDŸY߬HwL )"pTpev +8]s@聯? :Bċ<'Cx'Tn<|55x/ yaud~Yv67uW36s'u,4eT[9u܊w^W:Әb-2Dac^0ݒvR/++b!?}Ӱ%6;]"! $qT+b_ieONFlQY,>.)7FJUF_{}r\?x7?C"yّ^ U|VC;Op~H/$>c9D7 `'Б>%)K0X?RwSzLg|{/aٟv(έ @KD ^| AX5T-s^gkuj;ajLY|jB;0$q$%c9B'C +{1 eIj9u&b<&J C7^DLiI)E?luΰ0@=]5z3*4A Q'oY\`qv&xB8zB4S vIj o8b!M_2=R4G9(\w|د2Qi& fuPqNf8X--> Ҥ5- +˘f; !OElNnPڰұϘB~xpPƢa>K7*NIjt~]xh6f]^HGKɇ9u-k:'3X9|:ȒD:K.\2$u{v.Q;0e5]k(L f"7uۆ6yXd1{(ˈ$w +I +#u Ow<-SD[>j=9vH4/0xL-_[d53bƘ"ydI|&|UIw" ފݠ"2yu<Ěj3>9a"zl*eJ:Le+Kuaڭ +9=FD A Ļr*qˮ dM p*6Qu?fǬ{_kKN*像zVij ]wkDOPCH&jSM +P~zIxш=@ZU{=!.pݷdd'&!n+0$_5<5CK)Tءh` Ϸ)P0U=|(3UOos?I2K?Z_B4׎7cܩ,@g~+JVꝛs&VEӷsfݰVsOWoFW9jndԜ=<}V,=2+?*;j`Jaude,,Yƿ22\0ϔtcԟT^SfH&N0֟{N0;0b3t(;Cx {^g̥gOHRCHHLd0W) I`75o9tv4>,7`}&QYu8" ["tm' W5BF B*Ҝ4{UJU\&",4%ɏIl +[ :S{߉Ʒ[QUdNm>Ӻ"v_I6(J79(B)Sa^u9H[ex OvSqj"'=9PyoO*k{?: +ϑ\hL* -adRCEHEWAf`ޡŬ>FJ + Wy?ÖVF:BB3fD奜uPAo:ڛMn!Dd=@ɚ wlPuxvd}j#.aZd=o'60bηO6KtU9uVLIZ*tj NꟜ{"/+AEbv-(RC0͕X>|nhGXK 6:1}5x@G8ĵՋRa;Zq?;" 46ǓcڂrfB쐉i;?/MYG>އ$-a@~/Vۇ4:z$iit6D + y`IObBS:Jؾғ^o~=.e#NH1;Ni4RrQ{964~e#VLpj=RUړFKwԥ'« opvW WU&B$M` i:XFZ揅S&3 IVsc]я?c ӗTjӽvDQ軇t )B.܏ -i!CZUڧ:N\̍Lk"5OqV>xMwn;*e) +#ߌQ #ζ!GC d4ġccp/!tq%m# H|?D lܗ{=;J}uD +Odu +r`waĵ,q_oM +ADpҨrvX%Ox>^l/koV5BkyႉݍuwK?4,y%)*̵}#K5OdH\D<'ZdWE p+8c51O@L1LeTy闯a4${&>yTȢ] pJ69}P=ǢꗘCI=9H :9f}-p[jv+_ fIf>#YZ>fj Pk@5|Rv{p%ypTw2znPסU ;j妚zx~Z6E3Dthễ 4E2tm"}BǤkn80QΨ^%A8E\2 ,ls1J7>Ca ު?ա;MVuM md݋t$ ʇ3PI:SN +)35jEzα|s!y[tJ[QGCOv /Hd,D3H4f( I|P?# +n)mzMmV3~]04&ϕ +4)ZY9ud=gt\7I0 +2wɘk؎۠ދm1];v\+oӒJ@E  ;@=<_.v$RMA?^V S/WeJ'Pojb"2?9:3l(nc*i_*w:_Bmmp;dGAܽ>Mywb{LzWr"Zj}01e3bd9k'\.2%<\eKA.RY+CLuh~lYdZqK6,R=Uр3ڝi8+8Y=2{I~:d;+]$4  D(ѩæfO*>0[= &ܑTnl`\8:Fie0ZO(mAbܚ)I-(0AƘ ׮2p1`=s3fAeMJM{?1}.zyj-= om8hI*ӤCxJm7$@WlE]P0TO,]}'$;Ta ;m`u/[G[<)fV^H]58 Z,x=a$ͧ ¢zF'pX+M>ei0MBٟNӇkdr>8IFDžϣvO +rJ KyL"~6gXA iT%:C_pJ`=4n_'Z(4u}*DgY+ٲ8+,㷆JX ,?>:[+OqVJ>B\u6/,JxU +- OZ%Nh1V^Aվ (›S';,X?ʯ;-",<*%}Su\B'dTTG'ek67T.6~N`XVz-kÿTlؒ˥q|n4>&{Rߨ[v]Bcvw,6 +"n3̦5GN7 +y*u@^رxZz'V/H')Z7$gXwΉgpCe~0 ~%/XV=hòMCM3gjW,ės&]AXzd٭VdwYη/+V5pF0{4\2anu/# h-us$Ȯ< MZzKKhDTҴxj4iz15CPbS`ErM$'K6K7yӮ(wkQ}/Fy x Wѫ&_FXգ4oW"(8[Is  #] []dJFRS-p2Jѕ$+ +)WAa/Z;B/J*Y]b]{RARݔ勱$UJdty8>1;0t_jq\fEGyWxהU7<>mPi?P}#DIg"2N4=fa( RD>ś^}:ǁ1-F7Sz&N_CIݼ *J޲UC"hUKqvGqQGӅnWn!NlҔmdajW2^lѣ>B?>ijҹvIG=9,*},$xR!kӁk,>BBGN6- +?Jh^Q0Ӯ+w9f!TYV¸%#w *; XCQL};fWP;vF8C& DYRc;7;91zF+ǟ7/R/=MJ\.m-N +tZh^·44xݮR}&O_+%A5hlKlT7fx痈vRޏdq#3 EdTS1"uRiQYCs{ +9@yr, M%Ojf'5 l퓏yrL49l)^Z~Z!di)4 +Z2Z[G`H m<OҼhuk4o^\eGşs:Å\,1~w6(PIG05iZ58NuaV<7n1)4Ƒ4"J^[0n^y8KǓ]cI$CpL#=6i֢SȮ.i_n,ޠ$"]1 +endstream +endobj +127 0 obj +<< /Filter /FlateDecode /Length1 726 /Length2 7730 /Length3 0 /Length 8326 >> +stream +xmweTY-5!hݥ=8!8wws33w殷[ߟ]ٵO8Y3.`abGw{ 3 2>X(TqgG3֌oe 4ہZ[+ + *"I8[`[@\YEWVI@+ كS[@lw, &'ػp%5D49@AO6>lEEUYY`3g)lo?K9!dbkh!v]AE9w#_*l%/C Q{? s-|s9 s??Vsgdדאbo .KڛAu?.пb])@gG;@a72?݋ +`r?r\Ag r!/CSBK}%&L4YƻV;W9nē'WWpyB2KߪG܇p38vfJp_.-/ЏqgU9 bI~5)i\]3N{Em1TbNY䝙 +o.mS}4+ {I»貧IrLE욱o*`ęXJyL5Ptl٭}bh /WN8U@rMN(gC^(ު1?z-wIO^ +1Jrs/B/]R&laT8>˶6s~8xcE!<fgD>gFaHmGkHߑY!:;Er9e~qhaa,IK+ۮ`)VY|:bpۉ +W0d4_7x"H1PY؋]/1ͿjhGiTa in4ol֑TQҭk}ӃO5zZO|n|p=r8k@Yc4 y0:|8M?-0~3>e{Gfqwt<6Wefzݣ+&|P"GK1Ql@ `U V@daS6M*1cpT2)j:;RBS}j;n$+8+~{9{%V-`,kn@ɲtPBU#bkEeJr oOy8h{ )1lC%K߰wKĽ +A4^'q_'->ٽ8nnE>>_amv}O؏(A|bHX9@ +.S[ɒ$wP-揬ށ62tPʼnF}U*g' Dl-s5wZ +fL禇>AeC2>O`D5pȽp‰//e."R% i=Ym ]rߝ|h2ev}G:~qj 1f= mPqI5HhBsY#0wܤXC3$ٔ+,A6fbyMYz̶6|1ߺ)*Cs@sk5@H|o\@kQHvYMFrĉ);㱀}o Jo{1n/QQ=x,,5(($ʻ4҄Ψh<9l@2+Uאhz!Ԙ po]@vTliZx_&fzW&"6Sj_~2qn9x"4rօٗu`6#=zO[eC$-\|Ӎ71/ +u3^HA;&J2[YMK ;WWIOp@! +Pgr_ xN'uG SV|Q(+{B}X+yZዣb/FY(:}[P cxW$LPʅc鸅],݃3-M<Xxݵ> JF t?INY4̮5e؂8W`FeXq[r_|Z<)"͡: +Že?I[!Fpez<.&t">!i@$q$ʱzt)QUޯ_#/N حȎ qм?vkBj@9\r=ER}Q~PyX!~@OyI ag@> f}xk%#N$9 L^  uZ&z *t5di +5w)-<2ބ?- 3ݻ-ycvK0 +%">k7m-sBF͚W O)pJܒ(K g:'iW_G0 9i 'nqEi\X c!_mUmePgtͅxxrj>:t: niW]T٘|iyc@/ؒӍ5!{ev7զ晎?p!21{-lp7LxF&/-voK<‹2q\*׻d-Smաm> #TнRӐ ;l4 ݅){8"}"Js$.bUrD,Bp'uGz) g@+Ro BP[!d!rKlxz(0!A{rHS:jҋzGtʫնY/j#͵5RƁF&$>ŗ:ݐG;fng`pw 'i{0%[2C%hO%ԕ(MK8`Oȹ Eh⇓Pg|yw;q~r,LH:&uv n7T;q+eD|j/يEx]3%/qy@GZtF}d45|' JywшNbpp!T/>ƒ80kiin&dxfinQl1^$t;<7-"kk<~~(9@<?:0^W~ݰf|j"\Q}M;\ɇF>Pn`B*6 z#*A:"ޗ"aaL>4 [h+%.KǘSӋy@H]J31v %?֛:nĊMxmAdon?VZ="&"8zX']4~Qw(uW + ~7ϙ\zs\U*m mW{jǃbmCJ︣mӗ}..\LO܅9mM5^pYI/ŻPUfL3EBw v+ZlȧGm4(_GO|<=X Ia4'KVm' a\DŽMkh@K%B_:lYW"$zC.Iq>.wc?H:uo@5_8*F-">pHq|`DS2YWUWh4yw9,XT56ha/6^* LKC$և>}OӄJX;l!NqD6g<Ǎp;C+^w2I`y*]UCIـ Dָ"Ff"Li[?BlfSꑧT#-Rƫx/:LeFi:䱲 h"m͐GP2d Ώ[31\#}Nl{=Z>2ac=BghEuMFtF1^ߏ}wl (J'I¹NAkkWCrI W(A߫T#zcn-#hɐX b@68bx>w~rw&x[/9\7ovT_[o֤ ODҽ߸ +/ZپOH;%iȇWu9N2ۤ)LvzSYqDaQbn +^tvNd˙ys* y"~'hDX&dwOcc)wV;S;ZgA(45 +`V=\6_l/;~ӇM"KXMM.v?^<t,p.ơN9ܣpAJhkƿkK >?(DdwyK`HIUg?b{ F V/; W|ytPCaqțE”Or`EBԝZ.kt!^pm,s !cSz?!9ҳ2hě 6% Y>9=Eԛi7}ȉFߓխ-YpJ8%ScZXzzgLFkE4/M\ȢY"1Sbk@Qs5#-{:X39df;/\z-s3+]& +li( %^j0 Ev6AɼI"xKL/,[df4$Eե)49_C[F9^ȃߎ.Nyr˘K^d$b"öhxL?&"/t qOᎱigBEڑAv`u{R<1h,1إ(\sO*N/ UZ/&0_1l^ĞKv6'Wq67-b))QI)߻hf-]4Qqy* t]1!@ȧ! +J,PFt7##_+2a)8dU]dɨrTa~q[iӴDehT*VkD?YLR9N Dwم$d(eX PO*>K#vK`+_\=*4gr;-͐/i \Mhl/7}1 W|oP:B3XpXՙ0XuR&@إrΘix **-f"Uc$I2kn d:qq()vw][` 㪒ʼؑ$CFXx½K"3en=_*͠[~V\? S/>Ks;;c)~Qd| +` +K*jǰ +M'ϋ';yj'"[eXG%xNg YfxXx^Նөd{h"U4e>H egROmaMI.+HrRQ(c y&i"=#ՍY^? 1E*r^6[T[)+YU뢢'=;6MyZGiS:o5اϗFS5 Kw?0G?m~Q,A$+?W|LmO(,~1 +?#kUPS]#m$&eqah[9VRtUE⅟oզse~o-L?0\},qiՌrcYvh`ੲq5sQz`& :Bw9ѧw'Wh`α}}Gf n|g3 Ƿvk@0Ϻ1`<$.:?fsŽ,*jǭ~qY&+e= ;o) ~xtM* g[5Z<1#Yfa%88+` +}y5ҰnQ%,c;fu|JQ$Y!˙br7R#bK[PruS݆?zfYtf蜙.uy +_|@ZlC;s;FɫWE4C! ꑻPVd=Fyug91XOF< lHxA;!;5K2zi7O,-ߒ|/T-QƼӨF; +6Lq~`=͂R|^L=z"H+~DiSº\ԇ2V]z协J[mgS=WQºl+e&3qY_]ױ@.*~Z2  +:D&Cn +Ԩj/`Ƥa(4 a2"F]SA +]Ȼ yGe0xz)8③p/ҦXmUᫎ T_zh=i%t=4Q !SW*sG¸8ɼ^.,-4G z)QPvcsW (A 5 R'[I4we8X̆3zfdhm燪!>~a` I9dwU7=RO70t[BZKA~%s/`r0Fc~'s@m26ao lL֝W]Rhx) V1\et{C~=x@$2_!6a8.=|++q>ihCTdL>Dkb𲾸OI^ +]s:E.kQWk)&ռt&*X}>v5CEGIq[Iqv ~{OY0IP3|>G)iS@> +stream +xmycpfĶ$۶Ll?m۶Ķ3mMl'g_}N?}7kk:xFzX22G34(LfFF&X23Ҙ%@fgmjaluuuturwt ́S k @DAQSJ^@)! + .FY c +`j`lgkb/LNu::fhgSWW0 mMmzU-%J:[ebX;f MoL9!hZwq:LeC[8ZMb@[ m,=C/5BfdIhh}SC뿬WUJ迩[lbgkt Ҋ¢Z4bv&fe:WY(/ -ڌ=tKX݋@bpp/.@[:, h dglZ+V4S A33eJ<}b1hnp{O0`ķs-uDb?M\̷vG˯pKp5cy猵@E߬YjP$ Wm%t)P3>{453!FϻaA;Wd8aבIfxcO\|( xSK&/ 8BK)7ЄܚU勵c0BI +On%_|s'J|K86٪[cP\o+"yc H ݜ!!0)0I,AsW%ڮ<1PPg9a2ȌK"/\(~E'!*xa0!^DŽȚ5 ~Ҕ](NbՅ/.K2/PZUr}yvF#|o/Ā.aXw~0 t  QY U 2PI?퀝 &;] AeJBw"Jk$|Z!z[z'%1R@36{{7( MyGȼ%*RW]6DOބbbhRzF%,K6a^mCrw[xX-OHm$^{v'rbSxÚLx58$3 eǮb0jAMzIlwDE` vnIMt#f)iG-Y2jDb]@{/rh1hF~HA@`\Q=0Mo<)W Xc+5Nd0*[#RL8+[4aTg@=jaG-[Vv߁:A0f&2㶰 &&4> 6&޴:Uf*_foէ6`5ʇI.t=0) +xu9LFR8>" eybX'f|*-D׻ +cҨ8a +"ם֏&ME|8Q$d3 `#N9=~Y<|㔴C㟢k}Uؾ㝛99x{vP)eJ?2hm$7P`C$bp6 'h.!0 +nhG%Mz+>~?I2TL R7~CGݼ=izTW@ۙwZ`#PM4FuTdexr50&9$ĮVìUÆV&PenHv: y +Ǥefsz 3Pxw6]T ;X_ZhDz}m-zb>*pdYȀ/K]ԄG!nr'>XhEcgqAHcgު1l7`ݼaHI@e~5Z 8jcNTך~-{U#IbĴ!1o0~3I {#0=&ER.Mi%;qwNMBpŇ)E( OJhUIO5n'8xe}\ZԶĺR֖T3H-W͕"w]1{{M'r9eG hhD|m(9fݡx2o@d% f Y*\Ÿ8(XMkl1$:bݶ_Mf6 +sa1mӉ-042SRMMJۿunbwgIOS+xEͦ F%1ihLOxo9bH$a-B{8M{Le<=ZyPCOS|XF59>5XEX c89c ;/\A YP !S̎ZZ  {6o~"7 A.K vL4D)XU;FFpHϷ-Wڍ&_nue27.=ҠGӏ7(ByQɔC#'ˠOJVۑ.!_l=\)Kk|9qߡVGH1UJpVsպvn5uݓ,hd",KJgi[y_C?=En,VY:D +U%'cjnEN y/-P EP=ªxA,v"Of>ɿH{Ȏ86Aw,Yɀ2˦KbuB4 rt ,)zŢUtI4ӫy`+ ,O,Qv7}eԹ|$vAکy#=E{+\]?C9cI즕n:20(b?1JWYYx:Ux ȟw_!"=y#ZOMC79{%8ڡJ5+GU1~IIXM ~. )AbUW+\2FV $W>B`E>2]9ex~Jْ]<=̂*\j4sAWE16Y8_kcx 6mzX'S#LcIV4ԋXL> oW6+8Ey1̒NA7H +b?@::EӶqoNΙp#Z𽃦r/;F6B4;^/٫bƃ˂-#>бt& Tj'>M'5X +|ۧe'aV[Uߧ1;GG7pMl}.YgSN)MA)󣽈պ8ƷfIRG&k~#uZ3F'ecϪc{Gs)KIއ3 +yb\#|X a`cFI@*B6G9ȥ,|N9~snG9MdڑP)3KoZLGb(w1()_LP!_-ږf&w0vfBo9ݍd6:iI4 [ySoEH$zس ,bP\RDbE*9QދK QYxR*ëE/Rt'_C0ҁB`֧Z|“֗`]Tn—R!/Ǚ_=~ut1xߢVB+Rē \" ϓNK +}s{~yw6UrV'vEO)˓GsS'&9_ 7珀[:;6P%e20a$ liZ> Re0u?ȡB, օFYo%ala0Or $%{ W o*Щ ?܋$7&(9'ӾxDA_ m8ή\mwt2.'>˽L/(.ʐ8>cY.q7}~gހQe +Yqm-Mոc>V7Q_R:4"Ch!6*90c8JoTCm,֘]O?sKĻA]F|ٸ=L˸TOQgmL;+kho)E\$XO qjV/ VdZJVRSYORTe`xAVQZF +֬Y14 |2H*dP5:! yLhX`JQ<=[BSxbKo(NhXF;ºV`I5Pb/g:."LZ4i)ŧD-mĥ::q?H?-ϸZ}5J̖K v+;n9|Lgdc@! [̊ f!:Μfʷ՘%w hϩ^BTaA!!#"B :IVWN*N8 +G9SxoT Z0И)Ϧz/)aU-CDcFѣb'# +靸reeYP<'Ӌ[mM= +sgoA.(f9aɚ/AJ%ߏ6e/H?%!; tXJ6SKnE|=(n +A;CH}//΢tӕ"ڑ Fh+ hj,J jINDY~2E0(Ut*XdIsYkvh ։ B +` 9,@T BX=ê8ݿEOb֊+iaѥtXe$8c;-lyr1mB+S%'ٌѧ}HͲ^>Ti3HɈϮ,y剺wIaX|b>^cԀP*^|@ =hy޲nRpG1 vם2_`AЛB++Ō^܉s<4nw},Ppp\~ĥwg{Bo5k"fP=o1Ev00!VE2i:zѭ ܪ#$#&67_ʤPD皫:3Vj--d%`9$jI(?4.]ۊyu6#~; +$s]f)MteA[g5:v!X| m57~O>y$[۟,XE)_wUa c~b;D;˓V3f?z~ՑR ]ݏ_*Y+UJ4:UClz9k̈<ӝ7)2=L|\+O?8MoG+@ fhܓW53ބJCԢe@T(:HX3R "LK}?v糭ًb H V;Q_=!8JfvI'xjYU_(jDU ;nEoi2B n +u|nAnsK޿DtNC? :J Ao1fѣr+ɮ6K 2V~ho0HOS}ڞ"*P_ s{lY]d]N( y \wyʇ(WS_2NeJ\@^ RI>}m@w֢3l1gR'_bC11Y9y('xTDxbOEF1Y +"e an0;y 6z*>v3WsvN|c2|׫tӸ1_Q/6u3NtZ\̇,{Fj!9lPYd,lPb2u'cFo,cz/(ʁX +1ÒpIpnW +!z7pmr$I%˜Ii az# [VQQCǺavtPO!6l>г4$IZ{bo.z_)ޟ.2S(S-Ei$*e8ONz0ެҏU7DG*^9|b:IA_MK֦q`sӵu!܃@m'~d\>%,NS`%=r@Yt+E⺉޷9ehs%9n3H'aZPUXv g=Ki}tq{mBI Ms:n TMu{9,qv@U* >KPw{9F"KzitE'ǟ=D8s?֙tkYt{Rs!! b\"m[M"#U[\jrGhq39#u}E#O^z{TmٳsTڇNhjupޤ)Bځ۫Dޚ(X(@#;3Y[zGB;6 9*{)\XDu΂*a3=Va.] Z +L(-\?\H@bL?`Ŧ +*OTN24[sK6%k_S: C(~ՓL|I nu}o\EEr( Q՞xm&b +rJN?I\r]>ֿ֋6<لNlD]%4rGmi(_o̫Ŋ%{ξAWdA +}|n-{6RX4zbMBb{-`88\^n tz0jy#ǔp U2<<xfYLM=d&!yGѸֳQ<}`-|_Z3|K/ck>E٥^`@ѹ03 c>]va Y_T8]2<YKA38ctYXVP9zH  +<^L\}<:WIfb;ס MoN=uo_#ѓ|Ƶ\"g":š|=OL2}3r&0 +ki!upIqgmxD#S`<yP`5NDGgw͌r_˹Wޢo K0*"`ɻ +6 ђdp7 h8wR͐6C1M` B{dc vi٪Yq;So6–BN3\V=J-;J&9"vc{0jV]YOqPY +~O|B?B͋'8nma%.B\YAN8 sCF^O=JvJ\%jCiw =E@YvD!?&^˧(.4J5xcm俢7+slL9'R'Msmj,Ÿ Fn"EIHMPg ~x gs)oEÐ{?a8@xjq 2t=lO@lRřڑ[;V Mf9m +~hp1[i,X'ӪC[ ϼ^P:Z+ +ۤ5mh`7-3w~8L^u@KԪ^M1M!'G||JR? DzZ S](hT?g7UtU@ᆆp.aJjC{>z垽*;>5HC ʮ7s}v7U[Oye=5щsD8/Za^d +Z1䡚3^[;z*t. c^хGmZk9L.\OaJ+1Am> +stream +xlcpnm-v8ٱmɎmضmɎm۶m~}O[֟c9pՅG[q* + o8}jYkC׽5м]2l=rPVVy>0Jg5?`L)dx *8S9k|ܡX9-h8f6yi.%eZ🏍-\Exjtz%OcQoqN_^uq@=; X3flTHLPuqB.!g~-d|Kn!ۼ Yg2w+6<㹼Rd!E|]do R-j{*wQ.%M]GH|xsrgFI'7~/P@d/1tMیAj\OcbT?L5?|t98D YP5h/U)CiYJN268a̫UyB83I37vEssq:j&mrµq`ͪ 2_P"c %b̏eBf[>|,܇(v9Mq".T6F6yhOZ+%I 91"C:SCJZ!g@N]'S8P!<Z7gwKܥ.z]S?!0Kw3!_P2jWGm_,MoKǓZY[@L;]/1ax.3p(TΩ. h>8N[ou0cG{G 9^`jM⇍R 9Fn|Sgi*&JIֹm9-b:3`^rfֈr?a I]KK5t~nj?E.a'YomDI s$Z]K6Zt4ۥS;ӑ>f$d\c|\WKX{~ת+1mPg׻NYRS[[gC͙@UFלoB{ u \ĥnwH#iLL)`=x!iOs%;'pN9Po婱[- lC]߻Y`߫>7CSI-ա%QEƀ]<2?tj IΫH*l Cw «}dyZ<՞稜P1! 4r$cIRRB9s`1.An'Yz))|^0M.Y×:XLq7 hUz!_@nF U,},-ҳ)bs~Mjؕv!i?)oRqϡ^kFnoDY8 `Cϝ.gM&LpEƊ5erjPܘ<4{SGuR؄mƷpQS8^JgǪZ4;n'K.rcKNv0~>[=|7(᝷R >̂ 7:t[Ws +`` &JORvW(M3r)s\,Flƣw&P3P(~'!oۊo)~IyDrN 3*QvǠ AFjzLHE4jZ˫MQD +RZ }8hsC=x14#p׀;ebRSUt3j5&Ȯc؉|7|J5GW3= |X8 %QbK pi^+dN\8ޙs3qVM2Tx 6'̊ːb¤4 +L;s<6vm!Ϸkc]]|D[@pc茡Lw$nzJV( t$p) +xU=Z}I~ L# )YY$ BKGoâ-M+r=Br H'i2,B.xxM$fU|̤sDm*eup9(%3fB eQe5aȪi@n˒hZ,#P(>{Yy[랓=Ϗn)z !WXk9w nHgS ۏd' /zz[3w'"5$|2YМ 5qh]#$G{.$ ʡQ`*k+Z~6QyB~,^9gqqvQ,Ԏ&&;tl6 Qm׸'8k%áC4Úhl_mmC)z]he0r> A5"!'FYe*Le>0Z a+"ur6PFV_d̒}CdgwҖM-/VWt:1"ƽ}Jn(=%\ut(en~0ط) MZDi`=Pe%{hw;eLA>:eZ>9w-t?mSCw=T&^,#[Q92.0+IU:RƓ>z(Tv*~<(ϼHQAwkt^́=[Bu;Rgؔ5([/|5GSxWAja͵@ѽd'eyȰOur'' tzb-&߯S1{/%mZCGd>tY]4Ŋ|)E.Z ":3 PޞBLl1#P9v6B/(EPˉw@"Y wIb zg/muutVe x52?l6؞`E6KF6D_ffч<;09xm8| )~SLd 5䠻 -] ʪ|kZ kfv&0Y"kgu7B͔!qYNRSpjwb^;n0;}-(-7 n_Q.[1B3~('6JFu{yv+m~H\&[mY-E-k-o/T$>%>$BtJoxq7'8@cVu-p Va!M($u}~^lW(hORT :'ح1t^YJmWB|VH+}:FMɘ}h^C1ayH:E(],Hd]Ԃ9M?$'-l~H` O!lH D=q!qT\ ȣƒvNγI<|헫i;wD13x (T{E|dMv+ /=ZVW +iX}eUGn3E/@V`7,!:;Lg"vɐ5qϰ~CIw}\q3(; sY(ޓJ>)aӾ\IE` +Sb&:\wAJArr#3 +*Y[RI;ydd6_ir{ʊp\E1QѼ r'3JÖ е;V="Q>M!hV)03}1VXgBf::j>T; +dGTe$Y7-dA(m8Z֔\l0z0W:B|)Q~9I?`fp,B<:XAZ6dĝPiB(*ܫ >b^)%6{O +ۨ pK:DG]D+FaO}[rt(3Ѡ} +ElGkzupT@.M@Rٗ(mr +:堁}}_'S!Gw C%XJ[QbVPOjR_7# O P6a>ARR!hL +aB:O 2i*&{G R?017q7h1Q-i.k|6pxI,Jo+r]̀8~4ϒdKt *Ok9程(0/f> v^|v2)dA ?i_ ?rPϹ)ED K+qV?Va%X +ܦ%gix,8_hՅ.P--uCHz5YZŗ\~7%J{Z1e~3C.ǐÄ3)e!}s/ !Mj(R]LjC$-hο4[͜iKFjt¡B`IRՕ'<؏G`GqR]>ux %@q +)Uű*,)AmAT?AOn[j ZiP;3IvB9uڧZ)zwXJ(0$#7J 46㇦b9$^2 %cC$qjANstv|2AZPvYw{DXo4\uphۯ8d#Z*ºuavvUHUGR\WL. `ws6՗VCE ^.6!kC LuL>8[Uq-b\pl?ICmje踠2.W.y⺖GKwwEmei= :Ex-Y[ O-kk:|ݑv ^Ȭ݃*G<ҧއ )sMQ۸=I zº,9N@=vZ~K?b;j9#a U8pRQ@?NCmدZhU}^X *%ԟyVz(z}}C;&7>m,ksvu]ۻ?dߔdsJ`,.?x()Ve ms k&Z#hT:0&C[Au~e-u +=Tl锏.ȀAp +鏗QxҤ#vuMBkoRH'ryX6o@ Tć?6w]'|]J4^l/Z@@&=TNHHn +M4 aS W +PUu#]&ҭpc} AqN`Hu۷km8&(A7HqP‚ߔt^ݶ_|IHW#7^(d*(9L(oKB("=0Wxf 4CQªyUĝe`8>vp"K/)x3)!gx)6Oo +5ke F}6.tiR+oj%dٟ0)b$v Z4cL6#UHQe5k Y8 U\t ZD ̊ۡTxu_Xc{\.~ՠ-, vyגT̿᾿H7SA?- W/ 45*kɊj5S*w64t x?Tc)qcjO/DB[;5N(da5j?hC(ƾjs +:"^:VR<\Ab/HoFlfl;!U6duV3rbl =$ҾeSc'TkG{u6wj<xC06Z!=!JFQPéЬjakI Q/9v^ŏљ %g?d(Ud*}=wu)ef_ږ +$|fupw!gF&&SG΀o#] uS)LIPObZxrM +b˪wL.zf>Ȥr!v'%Txܻ}B#C 􏣿0;)d<+uFfyMN|sf ˆt8g:vX6 ; c!~3תrljj.\r,C9_T # <5´5gN/u(17.WcAƇ=А҂*B#ۮ/ +Ef[nt Jw!X[vAV؀Ź$F$j@M yJ*(ỷÉQc +l~MrZ*:ly{X}vÌAȳ⦷u#RR$«OZ6eᙊIT4A6c~(ܩJC+϶{ FHL$9|~*;8)zq&W퉍\`7fjt" |CPg9&Sr7Wu{3Cr;{MV^RF_>/p2윙d(RQyk8,ؗ-{ mW|v0}W+ 'u.Pѝѥ]|F#+覽xT|,ʎE8$6ϱThR~гj^viZ#j^R1U7U%DJ)h,!@z'j8W.R9ZϔVaOd[OfG/wơXu"S {9%?_ES :9T\۽4|(DV/]O݀jrП*J!fNvrרvPEY snYd xGT)Q7wU~z> 2q_5uH:P +ji2qn?d̑*|2 ޼:[XG͈l`]k7'4]pua2!QK!>R?dZ1NL +μNM#F47A+6xzN°+J.9??8OwraIi2v18BRTN&ܺя*(P z|lcOFѷV%'!!).%*4t,jgV j(_%]mS`RD\RXwlG<84CѭRS/lF:s,M +sHtHAdOW?m$wGFiI`#Kt^A 䘙ōYՆxJS 7igA{ 1rqNKle3_#95?O5z .ʺ؇(DHw"2xQ$|z7hfd)?ˎ4]{Wu=>CuNTOZ֍/,MTqkY7uږsy"=N Q?  =+H_M~f$r/q[PUۗg$ﷇ!VA9MfeHҩVONP;^)"!cU^Ѣ?E~=ebsG`-Rc3™)O!Ę h}gƃYڛucNGyWS,DSpt0\w~u:Lv5a%27:RQnJ 8wYGQ!Ǖp'QJ4*S5>t)z$nVur7/ٝߙ@ELi-ݗSLJUrau=}'=s=qե8O`u:~hڄ'0UWsƬ ˜Yr (A÷3/Ą94Ce֢KCǛ(@i̖!pvXޒ5^Y.$Ī;=6d,iaӽ$bn"#_ɻe}s H7=|G(_$Dj5MدTV,.[,cR +;:ڸW +~NYWi`:]R sMaEPKZ:0wk[AԀ"y1`eyY'Tc;Tى7>|:M`vsg uҊo2]+i[sԒ>X)xq^Ktxx+3atӗ6S踞ť +ehҤpN7iln~QkoBQ,]B3~{N 'B/1Zح)¬g;/ƴL ?-TkyIXhUCʃai{qI#V{pK n^F&BU][[oBQg~3 kQ2xחh0ǻ:Pk<G&E3FD!cL}LqV:Z>#) kT8H ! ;rQbҙѤɎHER@/vš^{u.+vgPgЮQ * <`im|iG~P0>3ooOjilc 4/[0j}N1IU_JW9s`!lX>Du"~,Mڭ现^"T033zkOG'hk*᷹",8@,r1I]A(VWæWs4 7ëtǰr O_GKk2yK[$ GWŴz(& }=WZ|>cVuQ0[.trnIwb6[w"=yΙ LGP~pSZЏ@Ѣ9S`@*:HNl^;| U S \dH-TyNz>U X)miWY BSv:͡,|7c1(o5\lɾ7+24G}\n /ū<4X#/{/`bKRUnXyUMNhw^ 9&t!ɀIQ(H8 LKݔ@eN Tf_յũuY *U8.M(7/n[ +lp/yIɅ!W-nZҡ &XʴZM;DVI+ o4$Rv6~6"˝ ^gMo"7JĐ5^k)IXLa$~zƥe;DO;>ObTkgurqd-g#V0ܪ",:2OI Tm=;yrnLPl~ҹFf41nMc@ RN1,eǺ5 aR %;U:uلdE'P`?ϡpO}MkG2_ j8Žw\'AhTVJeHԠj `OZ%/JjFx0׾XT檜US%fPpԯq&V},9\@SC誝ƙOO9x|24V|.nr'ty%#˰U Tܰ~9ٟTnw+ +& ZE6=' +qcﯧ:$!EA$_$h Vb5 nVLbDpB$sfڣrN0d>V#W +w*^|^X1 +IhtjvKO:1 +6=V@V-x1f!N#5>tSKN7<1WS[%#5[.X|J5{x(-=ɪ"J~LV&KYm/^'NWax=IWmmnD#|~^toisérZq?2d"° +M RZ83e!PU@PO~clUPsOOC1O1WLdJ$)g IxrtF {%M] eIFe[[]6lCZKZ->p5]|rf0gb Mln6+p;+@8^j9|2#m7sXkI3`=a)CH[!xmџ63b{pB(lmZ$XG I>Yz5]0g +mkBڹ>cD=#)0Sx]{z-v0*Tg~&ѱyM:kYf|hfV9M>HG'9a %OBugiuazvjqk&g\Y Hp3B׍U%#Å\yRǑlh\f1 d<%s.tߒ[>[:GeCf۫|Q_f1Zdˉ`CƂdԺ+Pq)[U 'dwpPGw Acp`3j8TR _&fK!@bX'&w9 kir}d(Rʪ`G +SrGk_ݬd(t,bҴL6x_|6 +o7րI"yzoFfx' Zz!sfAqcD=T뼦RF^u{?-+.YyuTo{2VfC&P=#]ea#Oa'jÒ@"qjo%Ŏ"B}, _HY];ƓiH{K:qH +D%ú1uҗiǯ1ze0zPJٺTއ-aڻ߄{J ;hVez0Ф!&kz"+ >Z+3Z\qS#]#~ͣC;DK4ܻzFxE~K5T6߮[w^/.9/A`z܈-7 S2jvՓ`/82[Վbz变 +Ɇ@{c{4o-Oy7YʗAu,riuLuqx SR&ZJ- R +P+n絕%>WǔB.2BDSQ}8LPC2L$;Ű}v8aYm[iR[lJm2˵d".TX2 9i(,{%E 8hS0i69K\۰Z?!ў;L᳄-ƪ1v-6#)g|/b2&qԃxZ3+K$7QΑI[|!>v$U 嗦}on$7ԉL56kUxe|4_Ť BJ ]qpZ&Ywi U Խen^ +1{tway'93=wVnBHsٟ9/$yRn?GgqFDf0X~c 3%qrSAjׯ4]Oވl~ߌ0~۞ Le1p]oIXW0>Lwc%knDӂ h7Q~ Brgxt[lNӝpZPz̸=T0NEA0 `+HWFvp 1պfgZ.(7 s÷Nh)WF9WGGx'1&l\t=fy85\9m9MkD*I^*ݑLi1逋iBIϺo nըufRԸ'/xp)>Z i;P܄+J)""aV' G|yiCw尙>*Q=3X[ QdJLY"AΈ=ۯ<'_y +ښHBtl,F Sxȸ tI!^O,`"XX( G2NٙƮ\*ҜM(~.䨟 z#%᱁Gб'C8Bn!Ij-7"`"VV;ntu\|ɮQIu}'`\@#DsF"{>؉I| *^xmbJ$Ww.r4Uj`]e-uO Je ۤ[PL(D}ŇMOΏM!OLj +N@ct3]L@gؗrSS҄7g9wB:!R|'2˃*//٥ttڊ4 #ҷ3KFX[o,  aXxGD +]%QR%8pg_xbMfrKAJ3T03 5Uii;뤄 8L.PP8m",8Y;ȓx+]kCF{ؾ<P4G|+H~n2ڻ(q|J)uʙƸDYrm~A 11ρs UC8TZ'n~I?mF8pP{|cEfPUҰ`)]8Tj#ցoqM34w+[/ +!'Maf-|/ C԰NsTB]z"ՙN凗ąUɒZ#ܒZr5)bԜ A%}a˺xED(Ew]B5I;Zeޛ> K{ _XjQ>S&?ybraGL3F 'Byc_[ӐY~%+ȿ.1UH,vSC׺BOޕ"T&}}Yrm.GjNi+z!@F h? +"@&Z܏S ),?Yj(JT̑vyTe S0K(#lӁĎT33w$[0/JRI nO1cD2VUiݾ8$l4Ω'6#z:sJkC ܐ<`5Ma^eܤc1X47u@r`ē#fjt䞩15["A&yͣZe2R ߾KO}z>E-E:ׂk} + +Y*jxCN[ݏo^V<Ц^LTvƀNzkgCwP-tͧ.ƭb2/#҅ɦD+QowCT;[;q&QT݀P)ɍQRBǪkPu}qИ;U6 [ޣ]]w/F΁qaR~[!!QGvg u)GXPzϮ䅩 +0s$Zlq!%z#lD{xO8^, 3gs7Q%w-)n 8,m"pˀfe*]^$;oXv̉sߕ51_ԻJ,>RiX7H,pN-t[.))`".$|EkG 79V$X}G&h3BGRr6;RkDŽX-v1`mE>A\agE>'Dܢ(> +stream +xmTMo0Wx$ +! 8l[jWHL7IPV=M̼ su;Uٛ=w]yil;<[[j<=?׾+v`&ߴț<^*;~&Q>MS >_P{=s@dkx;`VY`s4JaQܡn.Uu9\Y6><ٴ.Z.4>Dӗ}~r:-d0VWk,8yLһʮӮђ[*mLr?q 5F8@=@)& 8Rx uD\j2HV0CzL] bctI g$`htы0\F0s jd< I6zg W qȐ+#k .bsrbmXK7ǵH7Gnb>&jؐu1VljOu$՟qWS/%1{\xB!K(hHTЖ枃Jρϯv=k2UKς_:~$/ ~E+7ˢ/ l(/} -+ZXukoԝE?ZKq +endstream +endobj +131 0 obj +<< /Filter /FlateDecode /Length 741 >> +stream +xmUn0+Jb;$*B"qmU^!1H$#l{3`~l&jwf>rjܕfܞ-G L5Okˍ}M=ٝP7[=,yfܢߦybsn #l"MGq@HVph7`fiʦv!>wJSt0x\mGh[W0ƂtmeӶ4ݶy7AE LS7Њ~& +U RZ,cŶPSan aaqD4',IF\Bbu +.y2RXR +xHX#ځDŽ]n-tJ!]O2`܏3W#',<ؓL%qO8\π9 sht +,+9uCwἉ*7*QFQVw}|`)m'-I>Oz#'> +stream +xmUMo:W5?$R. d9M eCkmCp;;w~>|3E_?O]5߶w]Occ]=~?}Oyh9%?۹׬B|Ɯ>);vw%g43>\ 6 +EJ78 1{~`W(-;]%=xe_,b+-O;q\L}UI--=BKE1p[! +Mߊyu>.N5K)Wb٬8i[_uʕMzQ)V(Txޢjy!Z2P="Zd0\ÃGR\).2*Шa!U,H`+j.5Nα@VK-x%3%AYӀzΚ>kP#5m0Woþj.ZT$X/)n)#Wo(oRZ $Kp4Z-b\1ܰJ P"GXQi/8k^Zq:Zs9dB )sL-7xJ`aɽ)f$1 +dъcCZC<73JgznHȰYɚTa,_-O87}KԴܗLloK+gJ.GZyVc48Wt]:P~`rZq.n1] S/Pu7Ue:?&?!d&1yHn5)yғBx#1ޞ]Go׏M?X +endstream +endobj +133 0 obj +<< /Filter /FlateDecode /Length 900 >> +stream +xmUMo:W5?$R. d9M eCkmCp;;w~>|3E_?O]5߶w]Occ]=~?}Oyh9%?۹׬B|Ɯ>);vz|N8}No)e0&h?q:P_ X}ac1+a  jҢ~]ߏ{_r)4i_px`!dZ>i]<U_cr%ͪcךv[\٤ժX*be-@E-X@-꩖xkM PY@ ,#bEA 5rEqIb>,彐A$ +G#e"&c D`%rE*s(Ǩ5ثCI*=ǔ^pk+ ܛbVLbX+@8:13Jp3<|6 ^ΜANVjRy9cpסAM}Ė)|֪,+pp70h8J+NK}Eլk)up >o U^g{_e{]*?`CBhgiیtV;۳ѝ)(ZK7bA;E^]|sQ +endstream +endobj +134 0 obj +<< /Filter /FlateDecode /Length 866 >> +stream +x}UMo0+J! ᫊"Rj.R$W3nj<6nV~jhן~8׺2;ݩqhMӍ'oܺ sR^u5sdz0G7Nfԝ^= S)E~qN[hl +"N/r]ߎP=Co`BvIFn!$oߦ;l,j'Fzoغ_g=a{>_(Vu{_cwpjȨS! klM]]₥+U9q]{+Q +&)H8@hcReT\`YQqJƚXQh)5HK Kw{7E^ +kCXq pD zAet +8alSM3?rN%NbQDa 8>#h0\?I`\~KWc ]i/nTvc-+>c_ZZ~Z83z3[:ޭ ߬Lg3t3-g B|B|\3gg|2?z)BXIAup*^+&#sU-'H8qɼy5A78޽_V,z薻\P +endstream +endobj +135 0 obj +<< /Filter /FlateDecode /Length 866 >> +stream +x}UMo0+J! ᫊"Rjn"H73W3nj24nV~ߝo.Gם8׺v7[wVt'oҺ9p/u5sdz8/'7ft8z,gS +tx;en>ڲ?185];B U{h2ws!y6q`TG?97{ E]&AjZu/?vG_t|z;9ذƦox5nu/.XjR˺^k3<'su_U4H6!L@@B@q\s *Tg ]i/nTvc-+>c_ZZ~Z83z3[:ޭ ߬Lg3t3-g B|B|\3gg|2?z)BXIAup*^+&#sU-'H8qɼe5A78{N Y-7]n +endstream +endobj +136 0 obj +<< /Filter /FlateDecode /Length 866 >> +stream +x}UMo0+J! ᫊"Rjn"H73W3nj24nV~ߝo.Gם8׺v7[wVt'oҺ9p/u5s8\Ysfg3Hy:_= S)E~a<ݝ2ZkXwmEOrDz=4gѻ9z}}\ CC? F`RޗS/~g> +ilXcӷn<7,^e]׵͙SwPG*X$D F @F@k} 89@FJuFF#`R0JRq eF)kjBS` F5(Z#.9Bkx>w{7E^ +kCXq pD zAet +8alSM3?rN%NbQDa 8>#h0\?I`\~KWc?qc.\X7ьO*ezl,d mY50ymȋ,aYʘ8 xAf_14g%cxU>ob쉬f 9돱ncsO{(g1?\֟g Yg +9LsQ.(ug^/u ?L[ V|FV|oV|3[: 3 ~!>CO!>S 33>Y^ +?a!SMW,:?8ÇqG湪N$ոd2 }ν_V,z薛.Zd +endstream +endobj +137 0 obj +<< /Filter /FlateDecode /Length 866 >> +stream +x}UMo0+J! ᫊"Rjn"H73W3nj24nV~ߝo.Gם8׺v7[wVt'oҺ9p/u5s8PYsfg3Hy:_= S)E~a<ݝ2ZkXwmEOrDz=4gѻ9z}}\ CC? F`RޗS/~g> +ilXcӷn<7,^e]׵͙SwPG*X$D F @F@k} 89@FJuFF#`R0JRq eF)kjBS` F5(Z#.9Bkx>w{7E^ +kCXq pD zAet +8alSM3?rN%NbQDa 8>#h0\?I`\~KWc?qc.\X7ьO*ezl,d mY50ymȋ,aYʘ8 xAf_14g%cxU>ob쉬f 9돱ncsO{(g1?\֟g Yg +9LsQ.(ug^/u ?L[ V|FV|oV|3[: 3 ~!>CO!>S 33>Y^ +?a!SMW,:?8ÇqG湪N$ոd2 }ν_V,z薛.ZF +endstream +endobj +138 0 obj +<< /Filter /FlateDecode /Length 867 >> +stream +x}Un0CƆ"RVmk +n7R$of@77c}{nxR{? DZfC{p}tơ}u^]p}z9/u9[[gn6~L#q{x /X*LϦi;W\jC`wհCcS4qj~Q'Lm{]po!Z.>LN^D۱Q ~!FhRu/7W/~g>ilXc;t~oZ?n-^eӬ"w͙SOu&bhilb + +Ipp@FNuFFQ `r0*Rse F)5kjBS` F 4( 8FkO}S(q( ru\e &q)k97'~ 8%K%p^I8qJ9q4} 5''`~ӗ?Tgiûx^`L3F?xdk 06f m6avx L^fQ按chK^|%chcxdkT7)mCgS[*X +=(g`9YF|֙Cs:s|u&:e~,١'>G'>3qggK'>c]'>O'>G|FN|~'>Cѻ N|R|ƺ ~)>_Sϔ+>R|&L|'a9K)R>,TGRPs> +stream +x}UMo0+J! ᫊"RVMk +N7R$߯@77c_|{l?YtգиY}{ ..9\wsu4;ިo6.۟(XG]>3׌Ysf'3Hyڟ^= S)E~aݍ2ZkXwmEOrwDz7'ѻ9xyOp`TG?97{ E]~&6AjZu/wۃS/~g> +ilXcӷnwk;E^ +kCXq pD zAet +8alSM3?rN%NbQDa 8>#h0\?I`\~KWc?qc.\X7ьO*ezl,d mY50ymȋ,aYʘ8 xAf_14g%cxU>ob쉬f 9돱ncsO{(g1?\֟g Yg +9LsQ.(ug^/u ?L[ V|FV|oV|3[: 3 ~!>CO!>S 33>Y^ +?a!SMW,:?8ÇqG湪N$ոd< }ν_V,z薛.Z +endstream +endobj +140 0 obj +<< /Filter /FlateDecode /Length 751 >> +stream +x}Un0+Jb;$ +! 8l[jWHL-$( zn@=*=9?7*k1)=M6=NW٪K^T6/U)؇]?ߣæcں8t]%h{}U8V=W޲'2;˾e/vUS1q9e]`|Vƃ]UY*Bx $+?wqG뷮7Ukd׷oNM0~hKV BO@bJo!? n,Hiє;n +n9_y/S%b)B- -1 +b[d008<', &@jv$AQiy82RXR +xHXO/#ځDŽ]n-tJ!]O2` ̏S'XO8"Yx'KBp;2uAf*Y$TWSZ8` /y ;>yJgI L>ܾRmCtpBC gNHg':Gg''Z_hr1'>4$OOB:]*N:qJ(sB5Qύ}nTsύ(Qg<]6Oys'<ϓ|t'=y3'|yҩϓ|I>O)yJS*}/6mũm`ቫjsy= FyH-c +endstream +endobj +141 0 obj +<< /Filter /FlateDecode /Length 750 >> +stream +x}UMo0WxvHB"qض*j6ZHP#_4~?؃ٚQxٓS[Q{s 8LSrckӳt꪿U]OXߓyjO>6?šh{}U8=Wޒ1;ɾdvUS1q9e]`|ƃ]UY'Bu $+?wq뷮7Ukd׷oNM0~hKV ^O@bJo~> n,Hgє;n +n9_y/SZ R_\n-`2TB[Q`  +IF\B5bu +頨xݴg7*QFQVw||`.O:y҉ϓ<ϓV>OZOzs<)>Org~x^Զetϯ{UU?< +endstream +endobj +142 0 obj +<< /Filter /FlateDecode /Length 833 >> +stream +xmUMo0Wx8T·~h[ +ۍT~3r#_)9۞c$_{t]P܂~ݣP_(&w(R|vp#P)->g_B?q8SG +AC۽[ia߿{2ZE_cf/1/{/4G+)bUUwkuTO4[@ 0@`%! #P .w)úp%KcJe Rͤ(*1:bDDR@ ȓ2UR*N)KIΡԀ0CS,km:5Bͦ&[Y{Ł@꒩)NMvSpJs}irphS ᐙ2L9ΙV}yXi8'z Ԛxq1GyלNZ1fXt:s0>wpVR.խr)>1qҾKvHX1iS5rM yR6FBlH>]6b 5&5&0a'evb_dfQTtQ]zK/WБ^Zz&孯ӷrW.&_rUOz䢓n9)C]!􁠧r7dE?_;~T?m +endstream +endobj +143 0 obj +<< /Author /CreationDate (D:20241129203610Z) /Creator /Keywords () /ModDate (D:20241129203610Z) /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.26 \(TeX Live 2024\) kpathsea version 6.4.0) /Producer /Subject () /Title /Trapped /False >> +endobj +144 0 obj +<< /Type /XRef /Length 393 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Size 529 /ID [<58de1969925fd094370fc674081c3530><58e1afd1aa4aad9605a6ce46bfdb8f27>] >> +stream +x+DQy͛7F"Ə`HBJB/XdaE`)PDl$,lPR|\fR->}:s=RXD%fZ S`ogFw,e2HrM#2Mf !uCq/w^w4+=#^{Ww眂=5pR g 3[gL<>#f@g7^揚sN2'q?KM?'-8 ?ĕt>xN+bj&U%WLiYԇcwf'ol| v= :[B[sgi`|o/߃%14c~G;U +endstream +endobj + +startxref +216 +%%EOF diff --git a/UTC501/Cours/Cours1_Relations/ED1/UTC501_ED-1.pdf b/UTC501/Cours/Cours1_Relations/ED1/UTC501_ED-1.pdf new file mode 100644 index 0000000..e34f791 Binary files /dev/null and b/UTC501/Cours/Cours1_Relations/ED1/UTC501_ED-1.pdf differ diff --git a/UTC501/Cours/Cours2_Arithmetique/ED_2_Exercices/UTC501_ED-2.pdf b/UTC501/Cours/Cours2_Arithmetique/ED_2_Exercices/UTC501_ED-2.pdf new file mode 100644 index 0000000..870ab34 Binary files /dev/null and b/UTC501/Cours/Cours2_Arithmetique/ED_2_Exercices/UTC501_ED-2.pdf differ diff --git a/UTC501/Cours/Cours2_Arithmetique/UTC501_Cours2-2_Crypto_RSA.pdf b/UTC501/Cours/Cours2_Arithmetique/UTC501_Cours2-2_Crypto_RSA.pdf new file mode 100644 index 0000000..f94066b Binary files /dev/null and b/UTC501/Cours/Cours2_Arithmetique/UTC501_Cours2-2_Crypto_RSA.pdf differ diff --git a/UTC501/Cours/Cours2_Arithmetique/UTC501_Cours2_1_Arithmetique.pdf b/UTC501/Cours/Cours2_Arithmetique/UTC501_Cours2_1_Arithmetique.pdf new file mode 100644 index 0000000..0f168f4 Binary files /dev/null and b/UTC501/Cours/Cours2_Arithmetique/UTC501_Cours2_1_Arithmetique.pdf differ diff --git a/UTC501/Devoir_Maison/Devoir_Maison_Groupes.pdf b/UTC501/Devoir_Maison/Devoir_Maison_Groupes.pdf new file mode 100644 index 0000000..346ad4a Binary files /dev/null and b/UTC501/Devoir_Maison/Devoir_Maison_Groupes.pdf differ diff --git a/UTC501/Devoir_Maison/Devoir_maison_1.pdf b/UTC501/Devoir_Maison/Devoir_maison_1.pdf new file mode 100644 index 0000000..d85c816 Binary files /dev/null and b/UTC501/Devoir_Maison/Devoir_maison_1.pdf differ diff --git a/UTC501/Devoir_Maison/Devoir_maison_2.pdf b/UTC501/Devoir_Maison/Devoir_maison_2.pdf new file mode 100644 index 0000000..80e1a18 Binary files /dev/null and b/UTC501/Devoir_Maison/Devoir_maison_2.pdf differ diff --git a/UTC501/Devoir_Maison/Devoir_maison_3.pdf b/UTC501/Devoir_Maison/Devoir_maison_3.pdf new file mode 100644 index 0000000..7f85849 Binary files /dev/null and b/UTC501/Devoir_Maison/Devoir_maison_3.pdf differ diff --git a/UTC501/Devoir_Maison/Devoir_maison_4.pdf b/UTC501/Devoir_Maison/Devoir_maison_4.pdf new file mode 100644 index 0000000..92adb27 Binary files /dev/null and b/UTC501/Devoir_Maison/Devoir_maison_4.pdf differ diff --git a/UTC501/README.md b/UTC501/README.md new file mode 100644 index 0000000..95f23cf --- /dev/null +++ b/UTC501/README.md @@ -0,0 +1 @@ +# UTC 501 Maths \ No newline at end of file diff --git a/UTC502/24-10-17/A_Notions_de_base sur_les_systemes d_exploitation-v2.pdf b/UTC502/24-10-17/A_Notions_de_base sur_les_systemes d_exploitation-v2.pdf new file mode 100644 index 0000000..5c04b9e Binary files /dev/null and b/UTC502/24-10-17/A_Notions_de_base sur_les_systemes d_exploitation-v2.pdf differ diff --git a/UTC502/24-10-17/README.md b/UTC502/24-10-17/README.md new file mode 100644 index 0000000..284001a --- /dev/null +++ b/UTC502/24-10-17/README.md @@ -0,0 +1,5 @@ +# UTC502-17-10-24 + +## Notion de base sur les systemes d'exploitation + +Regardez le cour en pdf .. car la moi JPP de ce cour mdr. \ No newline at end of file diff --git a/UTC502/24-10-17/TD copy.c b/UTC502/24-10-17/TD copy.c new file mode 100644 index 0000000..26204a0 --- /dev/null +++ b/UTC502/24-10-17/TD copy.c @@ -0,0 +1,59 @@ +#include +#include +#include +#include +#include + +typedef struct student { + char nom[10]; + int note; +} eleve; + +int main() { + int fd, i, ret; + eleve un_eleve; + const char *filename = "students.dat"; // Change the filename as needed + + // Open the file for writing (create if it doesn't exist) + fd = open(filename, O_CREAT | O_WRONLY | O_APPEND, S_IRUSR | S_IWUSR); + if (fd == -1) { + perror("prob open"); + return 1; + } + + // Write student records to the file + for (i = 0; i < 4; i++) { + printf("Donnez le nom de l’élève \n"); + scanf("%s", un_eleve.nom); + printf("Donnez la note de l’élève \n"); + scanf("%d", &un_eleve.note); + if (write(fd, &un_eleve, sizeof(eleve)) == -1) { + perror("prob write"); + close(fd); + return 1; + } + } + + // Move to the beginning of the file to read records + ret = lseek(fd, 0, SEEK_SET); + if (ret == -1) { + perror("prob lseek"); + close(fd); + return 1; + } + printf("la nouvelle position est %d\n", ret); + + // Read and display student records + for (i = 0; i < 4; i++) { + if (read(fd, &un_eleve, sizeof(eleve)) == -1) { + perror("prob read"); + close(fd); + return 1; + } + printf("le nom et la note de l’élève sont %s, %d\n", + un_eleve.nom, un_eleve.note); + } + + close(fd); + return 0; +} \ No newline at end of file diff --git a/UTC502/24-10-17/TD.c b/UTC502/24-10-17/TD.c new file mode 100644 index 0000000..cd04990 --- /dev/null +++ b/UTC502/24-10-17/TD.c @@ -0,0 +1,49 @@ +/****************************************************************/ +/* Exemple de manipulation d’un fichier: */ +/* création, positionnement, fermeture */ +/****************************************************************/ +#include +#include +#include +#include +#include +typedef struct student +{ + char nom[10]; + int note; +} eleve; +int main() +{ + + int fd, i, ret; + eleve un_eleve; + fd = open("./eleves.txt", O_CREAT | O_TRUNC | O_RDWR , S_IRUSR | S_IRGRP); + if (fd == -1) + perror("prob open"); + i = 0; + while (i < 4) + { + printf("Donnez le nom de l’élève \n"); + scanf("%s", un_eleve.nom); + printf("Donnez la note de l’élève \n"); + scanf("%d", &un_eleve.note); + write(fd, &un_eleve, sizeof(eleve)); + i = i + 1; + } + ret = lseek(fd, SEEK_SET, 0); + if (ret == -1) + perror("prob lseek"); + printf("la nouvelle position est %d\n", ret); + i = 0; + while (i < 4) + { + read(fd, &un_eleve, sizeof(eleve)); + printf("le nom et la note de l’élève sont %s, %d\n", + un_eleve.nom, + un_eleve.note); + i = i + 1; + } + close(fd); + return 0; + +} \ No newline at end of file diff --git a/UTC502/24-10-17/TD1_2024.odt b/UTC502/24-10-17/TD1_2024.odt new file mode 100644 index 0000000..fec4a77 Binary files /dev/null and b/UTC502/24-10-17/TD1_2024.odt differ diff --git a/UTC502/24-10-17/TD1_2024.pdf b/UTC502/24-10-17/TD1_2024.pdf new file mode 100644 index 0000000..0ca0a0e Binary files /dev/null and b/UTC502/24-10-17/TD1_2024.pdf differ diff --git a/UTC502/24-10-17/TestTDsolo.c b/UTC502/24-10-17/TestTDsolo.c new file mode 100644 index 0000000..da90d79 --- /dev/null +++ b/UTC502/24-10-17/TestTDsolo.c @@ -0,0 +1,46 @@ +/****************************************************************/ +/* Exemple de manipulation d’un fichier: */ +/* création, positionnement, fermeture */ +/****************************************************************/ +#include +#include +#include +#include +#include +typedef struct student { +char nom[10]; +int note; +} eleve; +int main() +{ +int fd, i, ret; +eleve un_eleve; +fd = open ("./eleve.txt", O_RDWR); +if (fd == -1) +perror ("prob open"); +i = 0; +while (i<4) +{ +printf ("Donnez le nom de l’élève \n"); +scanf ("%s", un_eleve.nom); +printf ("Donnez la note de l’élève \n"); +scanf ("%d", &un_eleve.note); +write (fd, &un_eleve, sizeof(eleve) ); +i = i + 1; +} +ret = lseek(fd, SEEK_SET, 0); +if (ret==-1) +perror ("prob lseek"); +printf ("la nouvelle position est %d\n", ret); +i = 0; +while(i<4) +{ +read (fd, &un_eleve, sizeof(eleve)); +printf ("le nom et la note de l’élève sont %s, %d\n", +un_eleve.nom, +un_eleve.note); +i = i + 1; +} +close(fd); +return 0; +} \ No newline at end of file diff --git a/UTC502/24-10-17/build/Debug/exercice6.o b/UTC502/24-10-17/build/Debug/exercice6.o new file mode 100644 index 0000000..e4cd887 Binary files /dev/null and b/UTC502/24-10-17/build/Debug/exercice6.o differ diff --git a/UTC502/24-10-17/build/Debug/exercice7.o b/UTC502/24-10-17/build/Debug/exercice7.o new file mode 100644 index 0000000..5e68e96 Binary files /dev/null and b/UTC502/24-10-17/build/Debug/exercice7.o differ diff --git a/UTC502/24-10-17/build/Debug/exercice8.o b/UTC502/24-10-17/build/Debug/exercice8.o new file mode 100644 index 0000000..a185c65 Binary files /dev/null and b/UTC502/24-10-17/build/Debug/exercice8.o differ diff --git a/UTC502/24-10-17/build/Debug/outDebug b/UTC502/24-10-17/build/Debug/outDebug new file mode 100755 index 0000000..1fb1de3 Binary files /dev/null and b/UTC502/24-10-17/build/Debug/outDebug differ diff --git a/UTC502/24-10-17/exercice2.cpp b/UTC502/24-10-17/exercice2.cpp new file mode 100644 index 0000000..06db421 --- /dev/null +++ b/UTC502/24-10-17/exercice2.cpp @@ -0,0 +1,51 @@ +/* +Énoncé + +Écrire : + +- une fonction, nommée f1, se contentant d’afficher « bonjour » (elle ne possédera aucun argument, ni valeur de retour) ; +- une fonction, nommée f2, qui affiche « bonjour » un nombre de fois égal à la valeur reçue en argument (int) et qui ne renvoie aucune valeur ; +- une fonction, nommée f3, qui fait la même chose que f2, mais qui, de plus, renvoie la valeur (int) 0. + +Écrire un petit programme appelant successivement chacune de ces 3 fonctions, après les avoir convenablement déclarées (on ne fera aucune hypothèse sur les emplacements relatifs des différentes fonctions composant le fichier source). +*/ + +#include + +using namespace std; + +// Function declaration + +void f1(); +void f2(int nombreDeFoisBonjour); +int f3(int nombreDeFoisBonjour); + +int main() { + f1(); + f2(3); + f3(2); +} + +// Fonction definition + +void f1(){ + std::cout << "Bonjour \n" << std::ends; +} + +void f2(int nombreDeFoisBonjour){ + + for(int i = 0; i < nombreDeFoisBonjour; i++){ + std::cout << "Bonjour f2 \n" << std::ends; + } + +} + +int f3(int nombreDeFoisBonjour){ + + for(int i = 0; i < nombreDeFoisBonjour; i++){ + std::cout << "Bonjour f3 \n" << std::ends; + } + + return 0; + +} \ No newline at end of file diff --git a/UTC502/24-10-17/exercice3.cpp b/UTC502/24-10-17/exercice3.cpp new file mode 100644 index 0000000..0be7c15 --- /dev/null +++ b/UTC502/24-10-17/exercice3.cpp @@ -0,0 +1,47 @@ +/* +Énoncé +Quels résultats fournira ce programme : +*/ + +#include +using namespace std; +int n = 10, q = 2; +//int main() +main() +{ + int fct(int); + void f(void); + int n = 0, p = 5; + n = fct(p); + cout << "A : dans main, n = " << n << " p = " << p + << " q = " << q << "\n"; + f(); +} +int fct(int p) +{ + int q; + q = 2 * p + n; + cout << "B : dans fct, n = " << n << " p = " << p + << " q = " << q << "\n"; + return q; +} +void f(void) +{ + int p = q * n; + cout << "C : dans f, n = " << n << " p = " << p + << " q = " << q << "\n"; +} + +/* + +Résultat : + +B : dans fct, n = 10 p = 5 q = 20 +A : dans main, n = 20 p = 5 q = 2 +C : dans f, n = 10 p = 20 q = 2 + +Un Warning avec le code tel quel tous de même : + +main() -> int main() + +*/ \ No newline at end of file diff --git a/UTC502/24-10-17/exercice4.cpp b/UTC502/24-10-17/exercice4.cpp new file mode 100644 index 0000000..b88b8d1 --- /dev/null +++ b/UTC502/24-10-17/exercice4.cpp @@ -0,0 +1,57 @@ +/* +Énoncé + +Écrire une fonction qui reçoit en arguments 2 nombres flottants et un caractère, et qui fournit un résultat correspondant à l’une des 4 opérations appliquées à ses deux premiers arguments, en fonction de la valeur du dernier, à savoir : addition pour le caractère +, soustraction pour -, multiplication pour * et division pour / (tout autre caractère que l’un des 4 cités sera interprété comme une addition). On ne tiendra pas compte des risques de division par zéro. + +Écrire un petit programme (main) utilisant cette fonction pour effectuer les 4 opérations sur les 2 nombres fournis en donnée. +*/ + +#include + +using namespace std; + +// Function declaration + +void fonction1(float float1, float float2, char char1); + +int main(){ + + float float1; + float float2; + char char1; + + cout<<"Tapez un premier entier : "; cin>>float1; + cout<<"Tapez un second entier : "; cin>>float2; + cout<<"Tapez l'opérations voulu : "; cin>>char1; + + fonction1(float1, float2, char1); + +} + +// Fonction definition + +void fonction1(float float1, float float2, char char1){ + + switch (char1) + { + case '+': + std::cout << float1 + float2 << std::ends; + std::cout << "\n" << std::ends; + break; + case '-': + std::cout << float1 - float2 << std::ends; + std::cout << "\n" << std::ends; + break; + case '*': + std::cout << float1 * float2 << std::ends; + std::cout << "\n" << std::ends; + break; + case '/': + std::cout << float1 / float2 << std::ends; + std::cout << "\n" << std::ends; + break; + default: + std::cout << "nique ta mère \n" << std::ends; + } +} + diff --git a/UTC502/24-10-17/exercice5.cpp b/UTC502/24-10-17/exercice5.cpp new file mode 100644 index 0000000..0921f41 --- /dev/null +++ b/UTC502/24-10-17/exercice5.cpp @@ -0,0 +1,59 @@ +/* + +Énoncé + +Transformer le programme (fonction + main) écrit dans l’exercice précédent de manière que la fonction ne dispose plus que de 2 arguments, le caractère indiquant la nature de l’opération à effectuer étant précisé, cette fois, à l’aide d’une variable globale. + +*/ + +#include + +using namespace std; + +// variable globale + +char operateur; + +// Function declaration + +void fonction1(float float1, float float2); + +int main(){ + + float float1; + float float2; + + cout<<"Tapez un premier entier : "; cin>>float1; + cout<<"Tapez un second entier : "; cin>>float2; + cout<<"Tapez l'opérations voulu : "; cin>>::operateur; + + fonction1(float1, float2); + +} + +// Fonction definition + +void fonction1(float float1, float float2){ + + switch (::operateur) + { + case '+': + std::cout << float1 + float2 << std::ends; + std::cout << "\n" << std::ends; + break; + case '-': + std::cout << float1 - float2 << std::ends; + std::cout << "\n" << std::ends; + break; + case '*': + std::cout << float1 * float2 << std::ends; + std::cout << "\n" << std::ends; + break; + case '/': + std::cout << float1 / float2 << std::ends; + std::cout << "\n" << std::ends; + break; + default: + std::cout << "nique ta mère \n" << std::ends; + } +} diff --git a/UTC502/24-10-17/exercice6.cpp b/UTC502/24-10-17/exercice6.cpp new file mode 100644 index 0000000..b060c3c --- /dev/null +++ b/UTC502/24-10-17/exercice6.cpp @@ -0,0 +1,43 @@ +/* + +Énoncé + +Écrire une fonction, sans argument ni valeur de retour, qui se contente d’afficher, à chaque appel, le nombre total de fois où elle a été appelée sous la forme : + +appel numéro 3 + +*/ + +#include + +using namespace std; + +// variable globale + +int count = 0; + +// Function declaration + +void fonction1(); + +int main(){ + + char input; + cout<<"Voulez vous appeler la fonction ? o/n : "; cin>>input; + + while (input == 'o') + { + fonction1(); + cout<<"Voulez vous de nouveau appeler la fonction ? o/n : "; cin>>input; + } + + std::cout << "Vous avez tapez autre chose que 'o', Fin du programe \n" << std::ends; + return 0; +} + +// Fonction definition + +void fonction1(){ + ::count = ::count +1; + std::cout << "appel numéro " << ::count << "\n" << std::ends; +} diff --git a/UTC502/24-10-17/exercice7.cpp b/UTC502/24-10-17/exercice7.cpp new file mode 100644 index 0000000..f6b7c07 --- /dev/null +++ b/UTC502/24-10-17/exercice7.cpp @@ -0,0 +1,52 @@ +/* +Énoncé + +Écrire 2 fonctions à un argument entier et une valeur de retour entière permettant de préciser si l’argument reçu est multiple de 2 (pour la première fonction) ou multiple de 3 (pour la seconde fonction). + +Utiliser ces deux fonctions dans un petit programme qui lit un nombre entier et qui précise s’il est pair, multiple de 3 et/ou multiple de 6, comme dans cet exemple (il y a deux exécutions) : + +*/ + +#include + +using namespace std; + +// variable globale + +int count = 0; + +// Function declaration + +int estMultiple2(int n); +int estMultiple3(int n); + +int main(){ + + int nombre(0); + cout << "Entrer un nombre : "; + cin >> nombre; + if (estMultiple2(nombre)) { + cout << "il est pair\n"; + if (estMultiple3(nombre)) { + cout << "il est multiple de 3 \n"; + cout << "il est divisible par 6\n"; + } + } + else if (estMultiple3(nombre)) { + cout << "il est multiple de 3 \n"; + } + + return 0; +} + +// Fonction definition + +int estMultiple2(int n){ + if(n % 2 == 0) return 1; + else return 0; +} + +int estMultiple3(int n){ + if(n % 3 == 0) return 1; + else return 0; +} \ No newline at end of file diff --git a/UTC502/24-10-17/exercice8.cpp b/UTC502/24-10-17/exercice8.cpp new file mode 100644 index 0000000..f7f9cdb --- /dev/null +++ b/UTC502/24-10-17/exercice8.cpp @@ -0,0 +1,32 @@ +/* + +Énoncé + +Écrire une fonction permettant d’ajouter une valeur fournie en argument à une variable fournie également en argument. Par exemple, l’appel (n et p étant entiers) : + +ajouter (2*p+1, n) ; + +ajoutera la valeur de l’expression 2*p+1 à la variable n. +Écrire un petit programme de test de la fonction. + +*/ + +#include + +using namespace std; + +// Function declaration + +void ajouter(int p, int n); + +int main(){ + ajouter(2*3+1, 2); +} + +// Fonction definition + +void ajouter(int p, int n){ + int toto = p + n; + cout << toto << "\n"; +} + diff --git a/UTC502/24-11-05/exercice1.sh b/UTC502/24-11-05/exercice1.sh new file mode 100755 index 0000000..cc21459 --- /dev/null +++ b/UTC502/24-11-05/exercice1.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# 1. Définissez une variable nommée Nom dont le contenu est ENI. +Nom="ENI" +# 2. Définissez une variable nommée Collection avec le contenu : Ressources Informatiques. +Collection="Ressources Informatiques" +# 3. Affichez la chaîne de caractères suivante : Les Editions ENI. Collection Ressources Informatiques. Utilisez vos deux variables Nom et Collection définies précédement. +echo "Les Editions $Nom. Collection $Collection." +# 4. Définissez une variable Var1 avec le contenu : bon. +Var1="bon" +# 5. Nous voulons afficher le mot : bonjour en se servent du contenu de la variable Var1. Laquelle des commandes suivantes devons-nous exécuter ? + # a. echo $Var1jour + # b. echo $(Var1)jour + # c. echo ${Var1}jour +echo ${Var1}jour #réponse c +# A quoi servent les accolades ? A quoi servent les parenthèses ? + +# 6. Exécutez les commandes suivantes (Aidez-vous de ce document) : + +# a. echo ${var2:?“var2 n'est pas encore définie”} +# echo ${var2:?"var2 n'est pas encore définie"} +# b. var2=Bonjour +# c. echo ${var2:?“var2 n'est pas encore définie”} +# d. echo ${lejour:=`date +%d`} +# e. lejour=24 +# f. echo “Jour : ${lejour:+01}” + +# Quel est l'intérêt de la première commande ? +# Quel est l'intérêt de la quatrième commande ? +# Quelle est la différencce entre la quatrième et la dernière commande ? \ No newline at end of file diff --git a/UTC502/24-11-05/exercice2/affiche.sh b/UTC502/24-11-05/exercice2/affiche.sh new file mode 100755 index 0000000..10581cc --- /dev/null +++ b/UTC502/24-11-05/exercice2/affiche.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# La première ligne indique au système que /bin/bash est le programme +# shell à utiliser pour exécuter les commandes du script. + +# Affiche deux chaînes de caractères + +echo "Mon premier script shell" +echo "Chaque ligne du fichier est une commande" + +# Le script retourne 0, valeur synonyme de succès. +exit 0 \ No newline at end of file diff --git a/UTC502/24-11-05/exercice2/afficheVarEnv.sh b/UTC502/24-11-05/exercice2/afficheVarEnv.sh new file mode 100755 index 0000000..ff94dd6 --- /dev/null +++ b/UTC502/24-11-05/exercice2/afficheVarEnv.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +echo -e $HOME "\nCeci est la variable globale HOME" +echo -e $PATH "\nCeci est la variable globale PATH" +echo -e $USER "\nCeci est la variable globale USER" +echo -e $PWD "\nCeci est la variable globale PWD" + +# for i in $HOME $PATH $USER $PWD +# do +# echo $i +# done \ No newline at end of file diff --git a/UTC502/24-11-05/exercice2/enonce.md b/UTC502/24-11-05/exercice2/enonce.md new file mode 100755 index 0000000..e047c07 --- /dev/null +++ b/UTC502/24-11-05/exercice2/enonce.md @@ -0,0 +1,63 @@ +Scripts simples - variables utilisateur et variables globales + + Durée : 15 minutes + +1. Créez un alias cx dont le contenu permet de rendre un fichier exécutable. Comment pouvez-vous rendre cet alias permanent pour toutes les sessions ? +2. Créez un fichier nommé affiche renfermant les commandes suivantes : + +``` +#!/bin/bash + +# La première ligne indique au système que /bin/bash est le programme +# shell à utiliser pour exécuter les commandes du script. + +# Affiche deux chaînes de caractères + +echo "Mon premier script shell" +echo "Chaque ligne du fichier est une commande" + +# Le script retourne 0, valeur synonyme de succès. +exit 0 +``` + +3. Après avoir saisi le script et l'avoir enregistré, n'oubliez pas de le rendre exécutable à l'aide de l'alias créé précédemment. + +cx affiche + +4. Pour exécuter le script, tapez la commande suivante : + +./affiche + +5. Créez un script nommé afficheVarEnv qui affiche le contenu des variables d'environnement suivantes : HOME, PATH, USER et PWD. Chaque contenu devra être précédé d'un commentaire correspondant à l'intitulé de la variable. Exécutez ce script. + +6. Créez un script nommé varLocGlob renfermant les commandes suivantes : + +``` +#!/bin/bash + +# Manipulation de variables locales et globales + +echo "Mon répertoire de connexion est : $HOME" +echo "Mon nom de connexion est : $(logname) " +echo "Nous sommes le : `date +%D`" + +Nom=Torvalds +Prenom=Linus +echo "Linux a été créé par $Nom $Prenom à l'université d'Helsinki." +exit 0 +``` +⇒ Exécutez le script. + +7. Créez un script nommé varLocGlob1 qui effectue les opérations suivantes : + + Affiche le contenu du répertoire coutant. + Affiche le shell de l'utilisateur. + Affiche le nom de la machine. + Définir une variable appelée os contenant le nom du système d'exploitation. + Définir une variable appelée ver contenant le numéro de version su système d'exploitation. + Afficher le contenu des deux variable os et ver. + + Consultez la page du manuel de la commande alias. + Utilisez la commande chmod avec l'option adéquate. + Si vous n'avez pas de répertoire courant (.) dans votre PATH, le ./ devant le nom du script est indispensable, sinon il suffit de taper directement le nom du script. + Utiliszez la commande uname avec les options adéquates. \ No newline at end of file diff --git a/UTC502/24-11-05/exercice2/varLocGlob.sh b/UTC502/24-11-05/exercice2/varLocGlob.sh new file mode 100644 index 0000000..ae52234 --- /dev/null +++ b/UTC502/24-11-05/exercice2/varLocGlob.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Manipulation de variables locales et globales + +echo "Mon répertoire de connexion est : $HOME" +echo "Mon nom de connexion est : $(logname) " +echo "Nous sommes le : `date +%D`" + +Nom=Torvalds +Prenom=Linus +echo "Linux a été créé par $Nom $Prenom à l'université d'Helsinki." +exit 0 \ No newline at end of file diff --git a/UTC502/24-11-05/test.sh b/UTC502/24-11-05/test.sh new file mode 100755 index 0000000..ed3d7f2 --- /dev/null +++ b/UTC502/24-11-05/test.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +Message="Bonjour tout le monde" +echo $Message + +# unset Message +# echo $Message + +if [ $# == 2 ] +then + echo "Seulement 2 arguments d'entrés" + exit 1 +elif [ $# != 3 ] +then + echo "Il n'y a pas 3 arguments" + exit 1 +else + echo "Les arguments sont '$1', '$2' et '$3'" +fi + +Compteur=0 + +for i in $1 $2 $3 + +do + ((Compteur++)) + + case "$i" in + "toto") echo "Vous avez entré l'argument toto" + ;; + "tata") echo "Vous avez entré l'argument tata" + ;; + "titi") echo "Vous avez entré l'argument titi" + ;; + *) echo "Vous n'avez pas entré un des argument toto, tata ou titi mais l'argument $i pour l'argument $Compteur" + esac +done + diff --git a/UTC502/24-11-26/Exo/afficheRep.sh b/UTC502/24-11-26/Exo/afficheRep.sh new file mode 100755 index 0000000..8655070 --- /dev/null +++ b/UTC502/24-11-26/Exo/afficheRep.sh @@ -0,0 +1,4 @@ +#! /bin/bash + +# 2. Créez un script nommé afficheRep qui affiche les caractèristiques et le contenu d'un répertoire dont le nom est donné en paramètre du script. +ls -l $1 \ No newline at end of file diff --git a/UTC502/24-11-26/Exo/chercheUser.sh b/UTC502/24-11-26/Exo/chercheUser.sh new file mode 100755 index 0000000..9ad1c78 --- /dev/null +++ b/UTC502/24-11-26/Exo/chercheUser.sh @@ -0,0 +1,5 @@ +#! /bin/bash + +# 3. Créez un script nommé chercheUser qui cherche un utilisateur dont le nom de connexion est donné en paramètre du script. + +cat /etc/passwd | grep $1 \ No newline at end of file diff --git a/UTC502/24-11-26/Exo/cmdeSet.sh b/UTC502/24-11-26/Exo/cmdeSet.sh new file mode 100755 index 0000000..35fa9ce --- /dev/null +++ b/UTC502/24-11-26/Exo/cmdeSet.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# Utilisation de la commande set + +# Première façon : set chaine_de_caracteres +set Nom Prenom +echo $1 +echo $2 + +#set `commande` +set `ls -ld /etc` +echo "Resultat : $*" +echo "Paramètre 1 de resultat : $1" +echo "Paramètre 2 de resultat : $2" +echo "Paramètre 3 de resultat : $3" +echo "Paramètre 4 de resultat : $4" +echo "Paramètre 5 de resultat : $5" +echo "Paramètre 6 de resultat : $6" +echo "Paramètre 7 de resultat : $7" +echo "Paramètre 8 de resultat : $8" + +Horaire=$8 + +# Rôle de la variable IFS +set $Horaire +echo "Paramètre 1 de $Horaire est : $1" +echo "Paramètre 2 de $Horaire est : $2" + +# On modifie le séparateur de champs +IFS=: +echo "Le séparateur de paramètres est : $IFS" +set $Horaire + +echo "Paramètre 1 : $1" +echo "Paramètre 2 : $2" + +exit 0 \ No newline at end of file diff --git a/UTC502/24-11-26/Exo/infoDate.sh b/UTC502/24-11-26/Exo/infoDate.sh new file mode 100644 index 0000000..83f9b18 --- /dev/null +++ b/UTC502/24-11-26/Exo/infoDate.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +#7. Créez un script nommé infoDate qui affiche la date sous la forme : nom_du_jour-mois-annee et l'heure sous la forme suivante : heures:minutes:secondes. Chaque affichage est précédé d'un libellé de votre choix. +#⇒ Une seule commande est utilisée pour récupérer les informations demandées. + diff --git a/UTC502/24-11-26/Exo/infoSys.sh b/UTC502/24-11-26/Exo/infoSys.sh new file mode 100755 index 0000000..aea5b2a --- /dev/null +++ b/UTC502/24-11-26/Exo/infoSys.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# 6. Créez un script nommé infoSys qui affiche les informations suivantes du système : + + +echo "Architecture matérielle : " `uname -i` +echo "Nom de la machine : " `uname -n` +echo "Nom du système d'exploitation : " `uname -s` +echo "Version du noyau : " `uname -v` diff --git a/UTC502/24-11-26/Exo/parametres.sh b/UTC502/24-11-26/Exo/parametres.sh new file mode 100755 index 0000000..d167930 --- /dev/null +++ b/UTC502/24-11-26/Exo/parametres.sh @@ -0,0 +1,13 @@ +#! /bin/bash + +# parametres : Variables de paramètre ou de position + +echo "Nom du script en cours d'exécution : $0" +echo "Nombre de paramètres transmis au script : $#" +echo "Numéro du processus du script en cours d'exécution $0 est : $$" + +echo "Paramètre 1 du script $0 : $1" +echo "Paramètre 2 du script $0 : $2" +echo "Paramètre 3 du script $0 : $3" +echo "Liste de tous les parametres du script $0 : $*" +exit 0 \ No newline at end of file diff --git a/UTC502/24-11-26/Exo/tata b/UTC502/24-11-26/Exo/tata new file mode 100644 index 0000000..76e70cc --- /dev/null +++ b/UTC502/24-11-26/Exo/tata @@ -0,0 +1,3 @@ +Salut +Ca va ? +bloublou diff --git a/UTC502/24-11-26/Exo/varLocGlob1.sh b/UTC502/24-11-26/Exo/varLocGlob1.sh new file mode 100755 index 0000000..def1481 --- /dev/null +++ b/UTC502/24-11-26/Exo/varLocGlob1.sh @@ -0,0 +1,17 @@ +#! /bin/bash + +# Affiche le contenu du répertoire courant. +# Affiche le shell de l'utilisateur. +# Affiche le nom de la machine. +# Définir une variable appelée os contenant le nom du système d'exploitation. +# Définir une variable appelée ver contenant le numéro de version du système d'exploitation. +# Afficher le contenu des deux variable os et ver. + +echo "Mon repertoir courant : " +ls -l +echo "Le shell de l'utilisateur est : $SHELL" +echo "Le nom de ma machine est : $HOSTNAME" +os= +ver= +echo $os +echo $ver diff --git a/UTC502/24-11-26/Exo/vi2.sh b/UTC502/24-11-26/Exo/vi2.sh new file mode 100755 index 0000000..0594f90 --- /dev/null +++ b/UTC502/24-11-26/Exo/vi2.sh @@ -0,0 +1,8 @@ +#! /bin/bash + +# 4. Créez un script nommé vi2 qui prend en argument un nom de fichier. Le script réalise une sauvegarde du fichier dans le répertoire /tmp avant de lancer l'éditeur de texte vi pour afficher et/ou modifier son contenu. Le fichier de sauvegarde aura comme nom nom_parametre_1.numero_processus_script_en_cours. + +fichierAModifier=$1 +fichierSauvegarde=$1.$$ +cp $fichierAModifier /tmp/$fichierSauvegarde +vi $fichierAModifier diff --git a/UTC502/24-11-26/README.md b/UTC502/24-11-26/README.md new file mode 100644 index 0000000..ff94405 --- /dev/null +++ b/UTC502/24-11-26/README.md @@ -0,0 +1,2 @@ +# UTC502-26-11-24 + diff --git a/UTC502/24-11-26/TD/README.md b/UTC502/24-11-26/TD/README.md new file mode 100644 index 0000000..1b52812 --- /dev/null +++ b/UTC502/24-11-26/TD/README.md @@ -0,0 +1,53 @@ +# TD Sauvegarde : + +Mettre en place un système de sauvegarde simple +Sauvegarde locale +Nous allons maintenant voir comment mettre en place un système de sauvegarde simple locale. Pour cela, nous allons faire les choix suivants : +utilisation de tar avec la compression bzip2 des données modifiées depuis moins de 24h ;· +stockage sur une partition dédiée (autre que celle du système), ici hda10; ⚫ sauvegarde des dossiers/home et /etc. +Pour cela, créez un fichier sauvegarde.sh ayant pour contenu : + +``` +#!/bin/sh +#Script de sauvegarde +#Dossiers à sauvegarder +DATA_TO_BACKUP="/home/etc" +#Partition recevant la sauvegarde +BACKUP_DEV=/dev/hda10 +BACKUP_DIR=/sauvegarde +#Montage de la partition de sauvegarde +mount -t auto $BACKUP_DEV $BACKUP_DIR +#Définition de la date du jour afin de pouvoir récupérer #1'année ($6), le mois ($2) et le jour ($3) pour nommer le fichier de sauvegarde +set $(date) +ave #Sauvegarde des données +echo "Sauvegarde de $DATA_TO_BACKUP dans $BACKUP_DIR/svg_$6$2$3.tar.bz2" tar cvjf $BACKUP_DIR/svg $6$2$3.tar.bz2 --newer-mtime '1 day ago' $DATA_TO_ +BACKUP +``` + +Enregistrez le script dans le répertoire /usr/local/bin et rendez-le exécutable: chmod +x /usr/local/bin/sauvegarde.sh +Pour l'utiliser, il suffira alors de saisir dans une console: sauvegarde.sh +Sauvegarde à distance +Nous allons maintenant reprendre l'exemple précédent avec les mêmes hypothè- ses, mais en outre nous allons envoyer le fichier de sauvegarde sur une machine distante. Nous allons utiliser deux systèmes différents : un premier avec l'utilisa- tion de ssh qui permet d'assurer un transfert sécurisé des données et un deuxième avec l'utilisation de ncftp pour envoyer l'archive sur un espace d'hébergement. +Utiliser ssh. Si vous souhaitez et pouvez utiliser ssh avec la machine distante, le script devient donc : + +``` +#!/bin/sh +#Script de sauvegarde +#Dossiers à sauvegarder DATA_TO_BACKUP="/home /etc" +#Partition recevant la sauvegarde BACKUP_DEV=/dev/hda10 +BACKUP_DIR=/sauvegarde +#Définition des paramètres pour l'envoi à distance +REMOTE_USER=backup +REMOTE_COMPUTER=ip_ordinateur +REMOTE_DIR=/home/backup/ +#Montage de la partition de sauvegarde +mount -t auto $BACKUP_DEV $BACKUP_DIR +#Définition de la date du jour afin de pouvoir récupérer +#1'année ($6), le mois ($2) et le jour ($3) pour nommer le fichier de sauvegarde +set $(date) +#Sauvegarde des données +echo "Sauvegarde de $DATA_TO_BACKUP dans $BACKUP_DIR/svg $6$2$3.tar.bz2" tar cvjf $BACKUP_DIR/svg $6$2$3.tar.bz2 --newer-mtime '1 day ago $DATA_TO_ +#Envoi de la sauvegarde sur la machine distante +BACKUP +scp $BACKUP_DIR/svg $6$2$3.tar.bz2 $REMOTE_USER@$REMOTE_COMPUTER: $REMOTE_DIR Il ne reste alors plus qu'à saisir le mot de passe demandé, mais si l'on veut utiliser ceci automatiquement, il faudra utiliser les phrases le système de clefs publique et privée de ssh. Ainsi il ne sera plus nécessaire de saisir de mot de passe. +``` \ No newline at end of file diff --git a/UTC502/24-11-26/TD/TP_Scirpt_Sauvegarde_Distance_Shell-Antoine_Guillaume.zip b/UTC502/24-11-26/TD/TP_Scirpt_Sauvegarde_Distance_Shell-Antoine_Guillaume.zip new file mode 100644 index 0000000..9d77f68 Binary files /dev/null and b/UTC502/24-11-26/TD/TP_Scirpt_Sauvegarde_Distance_Shell-Antoine_Guillaume.zip differ diff --git a/UTC502/24-11-26/TD/TP_sauvegarde_Antoine_Guillaume.pdf b/UTC502/24-11-26/TD/TP_sauvegarde_Antoine_Guillaume.pdf new file mode 100644 index 0000000..99e8f18 Binary files /dev/null and b/UTC502/24-11-26/TD/TP_sauvegarde_Antoine_Guillaume.pdf differ diff --git a/UTC502/24-11-26/TD/restore.sh b/UTC502/24-11-26/TD/restore.sh new file mode 100755 index 0000000..4602883 --- /dev/null +++ b/UTC502/24-11-26/TD/restore.sh @@ -0,0 +1,87 @@ +#!/bin/bash +#Script de restoration + +#Utilisateur du serveur destinataire de la sauvegarde : +USER_DEST="user" + +#Serveur destinataire de la sauvegarde : +ADDRESS_DEST="172.20.10.5" #adresse serveur distant + +#Dossier du serveur destinataire de la sauvegarde +BACKUP_DIR_DEST="/home/user/rep_dest/" + +#Dossier local de la receprtion de la sauvegarder, à créer si il n'existe pas, a modifier selon l'utilisateur +BACKUP_DIR="/home/nk/sauvegarde/" + +SEPARATOR="--------------------" + +#Début du script de restoration de /home +echo $SEPARATOR +echo "Debut du script de restauration de /home" +echo $SEPARATOR + +#Tableau de la liste des fichiers de sauvegardes présentent sur le serveur dans /home/user/rep_dest/ +filesList=($(ssh $USER_DEST@$ADRESS_DEST ls $BACKUP_DIR_DEST)) + +echo "Voici la liste des sauvegardes disponible sur $ADRESS_DEST dans le repertoir $BACKUP_DIR_DEST :" +echo + +# Boucle For afin d'afficher les fichiers avec leur position dans le tableau devant : +for (( i=0; i<${#filesList[@]}; i++ )) +do + echo "$i-${filesList[$i]}" # Premier fichier +done + +echo +echo $SEPARATOR + +# Un read pour que l'utilisateur puissent entrer le numero de la sauvegarde qu'il veut +read -r -p "Choisir l'archive à restaurer : " numSauv +echo $SEPARATOR + +#Place le nom de la sauvegarde voulu dans une variable OKZOU +NAME_SAVE=${filesList[$numSauv]} +echo "Vous avez choisi : $NAME_SAVE" +echo $SEPARATOR + +# Je rentre dans un boucle "infini" mais controlé par une action utilisateur. +while true; do + + # Un read pour que l'utilisateur puisse confirmer si oui ou non il veut restaurer + read -r -p "Lancer la restauration ? (o/n) " response + case "$response" in + [oO]|[yY]|oui|yes) + # Récupération avec le protoclole ssh (commande scp) de la sauvegarde présente sur le serveur, vers notre pc + echo "Reception de $NAME_SAVE dans $BACKUP_DIR" + scp $USER_DEST@$ADRESS_DEST:$BACKUP_DIR_DEST$NAME_SAVE $BACKUP_DIR + echo $SEPARATOR + + # Extraction de l'archive à la racine (donc /) pour recepecter la structure des répertoires d'un chemin + echo "Extraction de la sauvegarde" + tar xvjf $BACKUP_DIR$NAME_SAVE -C / + echo $SEPARATOR + + # Petit Nettoayage de la sauvegarde présent sur notre pc + echo "Nettoayage de $NAME_SAVE" + rm $BACKUP_DIR$NAME_SAVE + + #Fin du script de Sauvegarde de /home + echo $SEPARATOR + echo "Fin du script de Restauration de /home" + echo $SEPARATOR + exit 0 + ;; + [nN]|non|no) + #Fin du script de Sauvegarde de /home + echo $SEPARATOR + echo "Fin du script de Restauration de /home" + echo $SEPARATOR + exit 0 + ;; + *) + echo "Erreur, merci d'entrer o ou n" + ;; + esac +done + + diff --git a/UTC502/24-11-26/TD/save.sh b/UTC502/24-11-26/TD/save.sh new file mode 100755 index 0000000..b26b7bd --- /dev/null +++ b/UTC502/24-11-26/TD/save.sh @@ -0,0 +1,58 @@ +#!/bin/bash +#Script de sauvegarde + +#Dossier à sauvegarder, a modifier selon l'utilisateur +DATA_TO_BACKUP="/home/nk/rep_src/" + +#Dossier local de la création de la sauvegarder, a modifier selon l'utilisateur +BACKUP_DIR="/home/nk/sauvegarde/" + +#Utilisateur du serveur destinataire de la sauvegarde : +USER_DEST="user" + +#Serveur destinataire de la sauvegarde : +ADDRESS_DEST="172.20.10.5" #adresse serveur distant + +#Dossier du serveur destinataire de la sauvegarde +BACKUP_DIR_DEST="/home/user/rep_dest/" + +SEPARATOR="--------------------" + +#Définition de la date du jour afin de pouvoir récupérer (a adapter) +#l'année ($3), le mois ($1) et le jour ($2) pour nommer le fichier de sauvegarde +IFS=/ +set $(date +%D) +annee=$3 +mois=$1 +jour=$2 + +unset IFS + +#Début du script de Sauvegarde de /home +echo $SEPARATOR +echo "Debut du script de Sauvegarde de /home" + +#Sauvegarde des données +echo $SEPARATOR +echo "Sauvegarde de $DATA_TO_BACKUP dans $BACKUP_DIR/$BACKUP_FILE" +tar cvjf $BACKUP_DIR/svg._$annee$mois$jour.tar.bz2 --newer-mtime '1 day ago' "$DATA_TO_BACKUP" + +#Envoie vers le serveur de sauvegarde +echo $SEPARATOR +echo "Envoie de svg._$annee$mois$jour.tar.bz2 vers le serveur $USER_DEST@$ADRESS_DEST:$BACKUP_DIR_DEST" +scp $BACKUP_DIR/svg._$annee$mois$jour.tar.bz2 $USER_DEST@$ADRESS_DEST:$BACKUP_DIR_DEST + +#Verification de la bonne reception +echo $SEPARATOR +echo "ls -l de $USER_DEST@$ADRESS_DEST:$BACKUP_DIR_DEST pour confirmer bonne reception :" +ssh $USER_DEST@$ADRESS_DEST ls -l $BACKUP_DIR_DEST + +#Nettoyage de la sauvegarde local +echo $SEPARATOR +echo "Nettoyage de la sauvegarde local présente dans $BACKUP_DIR" +rm -f $BACKUP_DIR/svg._$annee$mois$jour.tar.bz2 + +#Fin du script de Sauvegarde de /home +echo $SEPARATOR +echo "Fin du script de Sauvegarde de /home" +echo $SEPARATOR \ No newline at end of file diff --git a/UTC502/24-11-28/README.md b/UTC502/24-11-28/README.md new file mode 100644 index 0000000..69193ea --- /dev/null +++ b/UTC502/24-11-28/README.md @@ -0,0 +1,3 @@ +# UTC 502 28/11/2024 + + diff --git a/UTC502/24-11-28/main.c b/UTC502/24-11-28/main.c new file mode 100644 index 0000000..dac1cc3 --- /dev/null +++ b/UTC502/24-11-28/main.c @@ -0,0 +1,9 @@ +#include +#include +#include + +int main(int argc, char ** argv){ + //printf(":%!xxd (-r)"); + system("wine /etc/Looping/Looping.exe"); + return(EXIT_SUCCESS); +} diff --git a/UTC502/24-11-28/saySalut b/UTC502/24-11-28/saySalut new file mode 100755 index 0000000..4da9e3e Binary files /dev/null and b/UTC502/24-11-28/saySalut differ diff --git a/UTC502/24-12-17/16.png b/UTC502/24-12-17/16.png new file mode 100644 index 0000000..6a9e182 Binary files /dev/null and b/UTC502/24-12-17/16.png differ diff --git a/UTC502/24-12-17/17.png b/UTC502/24-12-17/17.png new file mode 100644 index 0000000..15e6cd1 Binary files /dev/null and b/UTC502/24-12-17/17.png differ diff --git a/UTC502/24-12-17/B. Gestion des exécutions programmes-apprenant.pdf b/UTC502/24-12-17/B. Gestion des exécutions programmes-apprenant.pdf new file mode 100644 index 0000000..cff4fa8 Binary files /dev/null and b/UTC502/24-12-17/B. Gestion des exécutions programmes-apprenant.pdf differ diff --git a/UTC502/24-12-17/README.md b/UTC502/24-12-17/README.md new file mode 100644 index 0000000..2811844 --- /dev/null +++ b/UTC502/24-12-17/README.md @@ -0,0 +1,79 @@ +# UTC 502 17 12 24 + +## Oronnancement sur l'unité centrale + +### A. Prolitique Premier Arrivé, Premier servi (First In, First Out) + +- Les processus sont élus selon l’ordre dans lequel ils +arrivent dans la file d’attente des processus prêts. +- Il n’y a pas de réquisition. +- L’avantage de cette politique est sa simplicité. +- Inconvénient : les processus de petit temps d’exécution +sont pénalisés en terme de temps de réponse par les +processus de grand temps d’exécution qui se trouvent +avant eux dans la file d’attente. + +### B. Politique Plus Court d’Abord + +- Le processus de plus petit temps d’exécution est celui qui est ordonnancé en premier. +- La politique est sans réquisition. +- Remédie à l’inconvénient cité pour la politique précédente du « Premier Arrivé, Premier Servi ». +- Politique est optimale dans le sens où elle permet d’obtenir le temps de réponse moyen minimal pour un +ensemble de processus donné. +- La difficulté : la connaissance a priori des temps d’exécution des processus. Cette connaissance n’est pas +disponible dans un système interactif. +- Politique est essentiellement mise en œuvre dans les systèmes de traitement par lots. + +### C. Politique par priorité + +- La politique très courante. +- Chaque processus possède une priorité, un nombre positif . Selon le système d’exploitation, une valeur basse est plus prioritaire qu’une valeur haute ou inversement. +- Cette politique se décline en deux versions selon si la réquisition est autorisée ou non. La figure 16 donne un exemple d’application de cette politique en mode préemptif et en mode non préemptif. +- Un inconvénient de cette politique est le risque de famine pour les processus de petite priorité si il y a de nombreux processus de haute priorité. On dit aussi qu’il y a coalition des processus de forte priorité contre les processus de faible priorité + +![figure_16.png](./16.png) + +### D. Politique du tourniquet (round robin) +- Politique mise en œuvre dans les systèmes dits en temps partagé. +- Le temps est découpé en tranches nommées quantums de temps. +- Un processus est élu, il s’exécute au plus durant un quantum de temps. +- Si le processus n’a pas terminé son exécution à l’issue du quantum de temps, il est préempté et il réintègre la file des processus prêts mais en fin de file. +- Le processus en tête de file de la file des processus prêts est alors à son tour élu pour une durée égale à un quantum de temps. +- La valeur du quantum constitue un facteur important de performance de la politique, elle influe directement sur le nombre de commutations de contexte. + +![figure_17.png](./17.png) + +### Exemples : + +#### Ordonnancement sous Unix +- L’ordonnanceur Unix est un ordonnanceur de type tourniquet, avec plusieurs niveaux de priorités. +- À un instant t, le processus élu est celui de plus forte priorité. +- Le système effectue un recalcul des priorités mettant en œuvre un principe d’extinction de priorité afin de garantir une équité d’accès au processeur. + +Exemple : + +- Supposons que toutes les secondes, le système recalcule les priorités des processus élus et prêts selon le principe suivant : + +**Extinction** : compte_UC = compte_UC / 2 où compte_UC est le temps CPU consommé par le processus. + +**Priorité** = compte_UC/2 + 40 où 40 est une priorité de base de niveau utilisateur. + +Soient trois processus P1, P2 et P3, P1 de priorité 40 et P2, P3 de priorité 45. P1 s’exécute. + +Au bout d’1 seconde : +- Priorité P1 : compte_UC = 60/2 = 30 et priorité = 15 + 40 = 55 +- Priorité P2, inchangée : 45 +- Priorité P3, inchangée : 45 +- P2 est élu + +Au bout de 2 secondes : +- Priorité P1 : compte_UC = 30/2 = 15 et priorité = 7 + 40 = 47 +- Priorité P2 : compte_UC = 60/2 = 30 et priorité = 15 + 40 = 55 +- Priorité P3, inchangée : 45 +- P3 est élu + +Au bout de 3 secondes : +- Priorité P1 : compte_UC = 15/2 = 7 et priorité = 3 + 40 = 43 +- Priorité P2 : compte_UC = 30/2 = 15 et priorité = 17 + 40 = 47 +- Priorité P3 : compte_UC = 60/2 = 30 et priorité = 15 + 40 = 55 +- P1 est de nouveau élu diff --git a/UTC502/24-12-17/TD/TD_Processus_et_ordonnancement.md b/UTC502/24-12-17/TD/TD_Processus_et_ordonnancement.md new file mode 100644 index 0000000..c5e510e --- /dev/null +++ b/UTC502/24-12-17/TD/TD_Processus_et_ordonnancement.md @@ -0,0 +1,133 @@ +# TD Processus et ordonnancement + +## A Processus Linux + +`essai.c :` + +``` +#include +#include + +int main(){ + + int pid; + pid = fork(); + + if (pid == 0){for(;;) + printf ("je suis le fils\n"); + } + else{for(;;) + printf("je suis le père\n"); + } +} +``` + +### 1) On compile ce programme pour générer un exécutable appelé essai dont on lance l’exécution. La commande ps –l permettant d’afficher les caractéristiques de l’ensemble des processus de l’utilisateur donne les éléments suivants : + +`./essai` + + +``` +... + +je suis le père +je suis le fils +je suis le père +je suis le fils +je suis le père +je suis le fils +je suis le père +je suis le fils +je suis le père + +... +``` + +`ps -efl :` + +``` +user@debian-cli:~$ ps -efl | grep essai +0 S user 4150 1942 12 80 0 - 615 file_t 09:25 pts/0 00:00:00 ./essai +1 S user 4151 4150 12 80 0 - 615 wait_w 09:25 pts/0 00:00:00 ./essai +0 S user 4153 4031 0 80 0 - 1583 pipe_r 09:25 pts/5 00:00:00 grep essai +``` + +`user@debian-cli:~$ kill -9 4151` + +`user@debian-cli:~$ ps -efl | grep essai` + +``` +... + +je suis le père +je suis le père +je suis le père +je suis le père +je suis le père +je suis le père +je suis le père +je suis le père +je suis le père + +... +``` + +`user@debian-cli:~$ ps -efl | grep essai` +``` +0 S user 4150 1942 7 80 0 - 615 wait_w 09:25 pts/0 00:00:36 ./essai +1 Z user 4151 4150 5 80 0 - 0 - 09:25 pts/0 00:00:27 [essai] +0 S user 4249 4031 0 80 0 - 1583 pipe_r 09:34 pts/5 00:00:00 grep essai +``` + +### 3) Le programme essai.c est modifié : + +``` +#include +#include + +int main(){ + int pid; + pid = fork(); + if (pid == 0){for(;;) + printf ("je suis le fils\n"); + } + else{ + printf("je suis le père\n"); + int wait(); + } +} +``` + +`./essai2` + +``` +... + +je suis le fils +je suis le fils +je suis le fils +je suis le fils +je suis le fils +je suis le fils +je suis le fils + +... +``` + +`ps -lef | grep essai` + +``` +user@debian-cli:~/Documents/TD/TD_Processus_et_ordonnancement$ ps -lef | grep essai +1 S user 4841 1519 17 80 0 - 615 wait_w 09:47 pts/5 00:00:05 ./essai2 +0 S user 4852 1942 0 80 0 - 1583 pipe_r 09:47 pts/0 00:00:00 grep essai +``` + +`kill -9 4841` + +`ps -lef | grep essai` + +``` +user@debian-cli:~/Documents/TD/TD_Processus_et_ordonnancement$ ps -lef | grep essai +0 S user 4906 1942 0 80 0 - 1583 pipe_r 09:52 pts/0 00:00:00 grep essai +``` + diff --git a/UTC502/24-12-17/TD/Tp_processus-ordonnancement.pdf b/UTC502/24-12-17/TD/Tp_processus-ordonnancement.pdf new file mode 100644 index 0000000..7ce6f8e Binary files /dev/null and b/UTC502/24-12-17/TD/Tp_processus-ordonnancement.pdf differ diff --git a/UTC502/24-12-17/TD/enonce_doc2.jpg b/UTC502/24-12-17/TD/enonce_doc2.jpg new file mode 100644 index 0000000..eb67798 Binary files /dev/null and b/UTC502/24-12-17/TD/enonce_doc2.jpg differ diff --git a/UTC502/Cours.rar b/UTC502/Cours.rar new file mode 100644 index 0000000..ba86b28 Binary files /dev/null and b/UTC502/Cours.rar differ diff --git a/UTC502/README.md b/UTC502/README.md new file mode 100644 index 0000000..437586f --- /dev/null +++ b/UTC502/README.md @@ -0,0 +1,9 @@ +# UTC 502 Systeme + +***Principes fondamentaux des SE*** + +* [Cours](./Cours/) +* [17/10/24](./UTC502-17-10-24/) +* [05/11/24](./UTC502-05-11-24) +* [26/11/24](./UTC502-26-11-24) +* [28/11/24](./UTC502-28-11-24) diff --git a/UTC502/exam/essai copy.c b/UTC502/exam/essai copy.c new file mode 100644 index 0000000..bf062ee --- /dev/null +++ b/UTC502/exam/essai copy.c @@ -0,0 +1,18 @@ +#include +#include +#include + +int main() +{ +int pid; +pid = fork(); +if (pid == 0) + {for(;;) + printf ("je suis le fils\n"); + } +else + {for(;;) + printf("je suis le père\n"); + } + return(EXIT_SUCCESS); +} \ No newline at end of file diff --git a/UTC502/exam/essai.c b/UTC502/exam/essai.c new file mode 100644 index 0000000..25a7ed0 --- /dev/null +++ b/UTC502/exam/essai.c @@ -0,0 +1,16 @@ +#include +#include + +int main() +{ +int pid; +pid = fork(); +if (pid == 0) + {for(;;) + printf ("je suis le fils\n"); + } +else + {for(;;) + printf("je suis le père\n"); + } +} \ No newline at end of file diff --git a/UTC502/systeme.docx b/UTC502/systeme.docx new file mode 100644 index 0000000..c11eb65 Binary files /dev/null and b/UTC502/systeme.docx differ diff --git a/UTC503/24-10-14/Geometrie.php b/UTC503/24-10-14/Geometrie.php new file mode 100644 index 0000000..698cdcf --- /dev/null +++ b/UTC503/24-10-14/Geometrie.php @@ -0,0 +1,34 @@ + déterminer le problème à résoudre +* Conception -> réalisation d’un l’algorithme pour trouver une solution +* Développement -> traduction de l’algorithme en langage de programmation + +Compilation Traduction du code source du programme vers le langage natif. +Les erreurs possible sont : erreur de syntaxe, de logique et de Solution en soit. +Diférents tests sont possible, unitaire, fonctionnel et client. + +Traducteur de programme, entre le programme et la compilation. +Deux sorte de traducteurs interprètes et les compilateurs. +Les compilateur vont analyser la syntaxe et les interprète, va simplement interpréter ce que vous avez donné. + +Une langage typé, c’est un langage ou chaque variable utilisé à forcément un type. (C, C++, JAVA, etc) +Type de variable 2 classe primitif (entier, float, double char et bool) et complexe (tableau , tableau multidimensionnel, string). + +## Les langages de programmation + +Il y a deux familles de langage, les langages de bas niveau et de haut niveau. +Les langages bas niveau sont les plus proche des langages de la machine (C etc) +Les langages de haut niveau sont les plus proches des utilisateurs. + +Lorsque qu’on a un langage, compilation - interprétation ou procédural - orienté objet. + +Procédural : un programme qui utiles une procédure, une méthode. Il n’y a pas de modalité. Il s’exécute ligne par ligne. Tendance à générer du code spaghetti. Maintenance est difficile et travail en équipe plus compliqué. + +Orientation Objet : Centrée autour des objets. Ils peuvent t être concret ou de l’abstrait. + +Méthode -> renvoie un resultat +Procédure -> ne renvoie pas de résultat + +## Concept Orienté Objet + +Le concept OO veut une modélisation du monde réel +Objet est une représentation abstraite par une chose concrète. +Propriété et action. + +Statique -> propriété (Un chat) + + Dynamique -> Action (Le saut d’un chat) + +Les classes : Représentation abstrait d’un objet qui est concert (Humain abstrarit, Bob concret) +Une classe est un moule qui va pouvoir instancier des objets. + +``` +class Rectangle{ + + // Donné + + Largeur + Longueur + + // Méthode : + + Périmètre() + Aire() + +} + +class Point{ + + // Donnée + + x + y + +} +``` +``` +class Véhicule { + + // Donnée + + roue + place + + // Méthode + + Rouler() + Frainer() + + // Les objet : + + Voiture { + 4 roues + 4 place + } + + Velo { + 2 roues + 1 place + } + +} +``` + +## Les propriétés de base de l’orientation objet + +La notion de l’héritage -> Permet de spécialiser une class, qui possède les propriétés de son parent et ses propres spécialisations. + +La notion de Polymorphisme -> A partir du moment où on possède plusieurs types. Exemple créer une nouvelle voiture, elle sera composée de la class voiture et de la class parent véhicule, donc elle sera polymorphique. + +La notion de Transtypage -> Dans sa nature propre il est d’un type, mais je force le compilateur pour que l’objet soit d’un autre type que le type initial. + +La notion de Polymorphie paramétrique -> le constructeur etc (On ne voit pas cette notion à ce cour-là). \ No newline at end of file diff --git a/UTC503/24-11-06/README.md b/UTC503/24-11-06/README.md new file mode 100644 index 0000000..83079e5 --- /dev/null +++ b/UTC503/24-11-06/README.md @@ -0,0 +1,46 @@ +# 503 06/11/2024 + +## Exemple Explicatifs + +Variable -> Traitement -> Résultat/Sortis + +Propriétés = Variable +Comportements = Méthode + +### Explication de l'héritage : +``` +Figure Géométrique + |------ Cercle + |---------- Sphère + |---------- Disque + |------ Rectangle +``` + +### Explication Polymorfisme : + +Le principe d'avoir le plus d'instentiation par exemple Sphère dépend de Cercle et lui même dépend de Figure Géométrique. + +### Rappelle de l'Agorthimie + +### Type de Variable : + +Primitf : + +- int +- flaot +- double +- Boolean +- Char + +Complexe : + +- String +- Tableau(vecteur et matrice) +- Objet + +### Définir une variable : + +Besoin de définir le type, le nom et finir par un point virgule +Commence par une minuscule être courte de préférence et explicipte. + + diff --git a/UTC503/24-11-06/java/projet/README.md b/UTC503/24-11-06/java/projet/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-11-06/java/projet/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-11-06/java/projet/bin/Principale.class b/UTC503/24-11-06/java/projet/bin/Principale.class new file mode 100644 index 0000000..e73392c Binary files /dev/null and b/UTC503/24-11-06/java/projet/bin/Principale.class differ diff --git a/UTC503/24-11-06/java/projet/bin/Separateur.class b/UTC503/24-11-06/java/projet/bin/Separateur.class new file mode 100644 index 0000000..0566b30 Binary files /dev/null and b/UTC503/24-11-06/java/projet/bin/Separateur.class differ diff --git a/UTC503/24-11-06/java/projet/bin/test.class b/UTC503/24-11-06/java/projet/bin/test.class new file mode 100644 index 0000000..1b58c1d Binary files /dev/null and b/UTC503/24-11-06/java/projet/bin/test.class differ diff --git a/UTC503/24-11-06/java/projet/src/Principale.java b/UTC503/24-11-06/java/projet/src/Principale.java new file mode 100644 index 0000000..61edf13 --- /dev/null +++ b/UTC503/24-11-06/java/projet/src/Principale.java @@ -0,0 +1,74 @@ +public class Principale { + public static void main(String[] args) throws Exception { + + System.out.println("Hello World !"); + Separateur.Default(); + int trois = 3; + System.out.println(trois); + Separateur.Default(); + String phrase = "Salut comment il va ?"; + System.out.println(phrase); + Separateur.Default(); + + // Opérateurs possible : + - * / % etc.. + + int nb1, nb2, nb3; + nb1 = 9; + nb2 = 5; + nb3 = nb1*nb2; + System.out.println(nb3); + + Separateur.Default(); + System.out.println("Exercice 1 \n"); + // Exo 1 + // 1- initialisation des variables a et b : + // a=5; + // b=8; + int a = 5; + int b = 8; + // 2- Calculez les 4 opérations avec les nombres a et b et mettez les résultats dans les + // variables somme, difference, produit et quotient : + // somme=a+b; + // difference=a-b; + // produit=a*b; + // quotient=a/b; + int somme = a+b; + int difference = a-b; + int produit = a*b; + int quotient = a/b; + // 3- Affichez les résultats à l’écran. + System.out.println("La somme de " + a + " et " + b + " est : " + somme ); + System.out.println("La difference de " + a + " et " + b + " est : " + difference ); + System.out.println("Le produit de " + a + " et " + b + " est : " + produit ); + System.out.println("Le quotient de " + a + " et " + b + " est : " + quotient ); + + + Separateur.Default(); + System.out.println("Exercice 2 \n"); + // Exo 2 + // Calculez le diamètre, la circonférence et l’aire d’un cercle, en fonction de son rayon «r». + // - Diamètre = r*2; + // - circonférence = 2*pi*r; + // - aire= pi*r*r; + // avec pi=3.14159265358979. + final double pi = 3.14159265358979; + double r = 12; + System.out.println("Pour un rayon de : " + r + "cm"); + double diametre = r*2; + System.out.println("Le diamètre sera de : " + diametre + "cm"); + double circonference = 2*pi*r; + System.out.println("La circonference sera de : " + circonference + "cm"); + double aire = pi*r*r; + System.out.println("Son aire sera de : " + aire + "cm"); + + Separateur.Default(); + System.out.println("Exercice 3 \n"); + // Exo 3 + // - Déclarez une variable de type String + // - Initiallisez de la chaîne de caractères + // - Affichez la chaîne de caractères à l’écran. + String variableuuu; + variableuuu = "Salut, comment il va ?"; + System.out.println(variableuuu); + } +} \ No newline at end of file diff --git a/UTC503/24-11-06/java/projet/src/Separateur.java b/UTC503/24-11-06/java/projet/src/Separateur.java new file mode 100644 index 0000000..9da3160 --- /dev/null +++ b/UTC503/24-11-06/java/projet/src/Separateur.java @@ -0,0 +1,7 @@ +public class Separateur { + + public static void Default() { + System.out.println("----------"); + } + +} diff --git a/UTC503/24-11-06/java/projet/src/test.java b/UTC503/24-11-06/java/projet/src/test.java new file mode 100644 index 0000000..e19c928 --- /dev/null +++ b/UTC503/24-11-06/java/projet/src/test.java @@ -0,0 +1,3 @@ +public enum test { + +} diff --git a/UTC503/24-11-26/Cours_Java_Condition.pdf b/UTC503/24-11-26/Cours_Java_Condition.pdf new file mode 100644 index 0000000..23c32b9 Binary files /dev/null and b/UTC503/24-11-26/Cours_Java_Condition.pdf differ diff --git a/UTC503/24-11-26/README.md b/UTC503/24-11-26/README.md new file mode 100644 index 0000000..afe2917 --- /dev/null +++ b/UTC503/24-11-26/README.md @@ -0,0 +1,18 @@ +# UTC 503 du 26 11 2024 + +## Les instructions : + +### Les conditions + +Elle permettes d'alterer le déroulement du programme. + +Plusieurs type : + +***If*** -> Voir Exemple 1 dans `"/java/projet/src/App.java"` + +***If Else*** -> Voir Exemple 2 dans `"/java/projet/src/App.java"` + +***If Else, If*** -> Voir Exemple 3 dans `"/java/projet/src/App.java"` + +***Switch Case*** -> Voir Exemple 4 dans `"/java/projet/src/App.java"` + diff --git a/UTC503/24-11-26/TD1-Condition.md b/UTC503/24-11-26/TD1-Condition.md new file mode 100644 index 0000000..69d7a4c --- /dev/null +++ b/UTC503/24-11-26/TD1-Condition.md @@ -0,0 +1,175 @@ +# TD1-Condition + +>Guillaume Sanchez + +## Exercice 1 + +a) Modifier l’algorithme afin que si une seule des coordonnées est correcte, il s’affiche « es un TDM +``` + Variable : + entier a + entier b + entier x + entier y + debut + a=3 + b=4 + saisir x + saisir y + + si (x=a et y=b) alors + debut de si + afficher ("coulé") + fin de si + sinon si (x=a ou y=b) alors + debur de si + affiche ("TDM") + fin de si + sinon + debut de si + affiche ("à l'eau") + fin de sinon + fin + fin +``` +b) Ecrire le programme correspondant en java. + +``` +import java.util.Scanner; + +public class App { + + public static void main(String[] args) throws Exception { + + // instantation des 4 variables : + + int a = 3; + int b = 4; + + // Utilisation de Scanner pour que l'utilisateur puisse renseigner les valeurs 'x' et 'y' + + Scanner scannerX = new Scanner(System.in); + System.out.print("Ecrire le nombre x: "); + int x = scannerX.nextInt(); + Scanner scannerY = new Scanner(System.in); + System.out.print("Ecrire le nombre y: "); + int y = scannerY.nextInt(); + + // Première condition : Si 'x' est strictement égale à 'a' ET que 'y' est strictement égale à 'b' + if(x == a && y == b){ + // alors on "affiche coulé" + System.out.println("coulé"); + } + // Deuxième condition : Sinon Si 'x' est strictemment égale à 'a' OU 'y' est strictement égale à 'b' + else if(x == a || y == b){ + // alors on affiche "TDM" + System.out.println("TDM"); + } + // Sinon on affiche "à l'eau" + else{ + System.out.println("à l'eau"); + } + + + } +} +``` + +## Exercice 2 + +a) Ecrire unprogramme en java qui prend en entrée trois réels x, y et z et affiche le maximum des trois. + +``` +public class App { + public static void main(String[] args) throws Exception { + + // instantiation de x, y et z + + int x = 3; + int y = 4; + int z = 1; + + // Si 'x' strictement suppérieur à 'y' et 'x' strictement supérieur 'z' + + if (x > y && x > z) { + + // Alors on affiche x + + System.out.println("x est plus grand"); + } + + // Sinon, si 'y' strictement suppérieur à 'x' et 'y' strictement supérieur 'z' + + else if(y > x && y > z){ + + // Alors on affiche y + + System.out.println("y est plus grand"); + } + + // Sinon, si 'z' strictement suppérieur à 'x' et 'z' strictement supérieur 'y' + + else if(z > x && z > y){ + + // Alors on affiche z + + System.out.println("z est plus grand"); + } + + // Un dernier sinon pour gérer les éventuelles erreurs + + else{ + System.out.println("Une erreur est survenu"); + System.exit(1); + } + } +} +``` + +## Exercice 3 + +``` + // instantiation de a, b et c + + int a =1; + int b =2; + int c =1; + + // On instantie delta égale b² - 4ac : + + int delta = (b*b)-(4*a*c); + + // Si Delta est strictement inferieur à 0 + + if (delta < 0) { + + // Alors on affiche que "l'equation admet aucune solution dans R" + + System.out.println("L'équation admet aucune solution dans R"); + } + + // Sinon, Si Delta est strictement égale à 0 + + else if(delta == 0){ + + // Alors on affiche que "l'équation admet 1 solution dans R" + + System.out.println("L'équation admet 1 solution dans R"); + } + + // Sinon, Si Delta est strictement supperieur à 0 + + else if(delta > 0){ + + // Alors on affiche que "l'équation admet 2 solution dans R" + + System.out.println("L'équation admet 2 solution dans R"); + } + + // Un dernier sinon pour gérer les éventuelles erreurs + + else{ + System.out.println("Une erreur est survenu"); + System.exit(1); + } +``` \ No newline at end of file diff --git a/UTC503/24-11-26/code case tailles.png b/UTC503/24-11-26/code case tailles.png new file mode 100644 index 0000000..5decdcf Binary files /dev/null and b/UTC503/24-11-26/code case tailles.png differ diff --git a/UTC503/24-11-26/java/Exercice1/README.md b/UTC503/24-11-26/java/Exercice1/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-11-26/java/Exercice1/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-11-26/java/Exercice1/bin/App.class b/UTC503/24-11-26/java/Exercice1/bin/App.class new file mode 100644 index 0000000..a746bda Binary files /dev/null and b/UTC503/24-11-26/java/Exercice1/bin/App.class differ diff --git a/UTC503/24-11-26/java/Exercice1/src/App.java b/UTC503/24-11-26/java/Exercice1/src/App.java new file mode 100644 index 0000000..c7026d9 --- /dev/null +++ b/UTC503/24-11-26/java/Exercice1/src/App.java @@ -0,0 +1,94 @@ +/* + +Exercice 1 + +On donne l’algorithme suivant : + + Variable : entier a + entier b + entier x + entier y + debut + a=3 + b=4 + saisir x + saisir y + + si (x=a et y=b) alors + debut de si + afficher ("coulé") + fin de si + sinon + debut de si + affiche ("à l'eau") + fin de sinon + fin + fin + + a) Modifier l’algorithme afin que si une seule des coordonnées est correcte, il s’affiche « es un TDM + + Variable : + entier a + entier b + entier x + entier y + debut + a=3 + b=4 + saisir x + saisir y + + si (x=a et y=b) alors + debut de si + afficher ("coulé") + fin de si + sinon si (x=a || y=b) alors + debur de si + affiche ("TDM") + fin de si + sinon + debut de si + affiche ("à l'eau") + fin de sinon + fin + fin + + b) Ecrire le programme correspondant en java. + */ + +import java.util.Scanner; + +public class App { + + public static void main(String[] args) throws Exception { + + // instantation des 4 variables : + + int a = 3; + int b = 4; + + Scanner scannerX = new Scanner(System.in); + System.out.print("Ecrire le nombre x: "); + int x = scannerX.nextInt(); + Scanner scannerY = new Scanner(System.in); + System.out.print("Ecrire le nombre y: "); + int y = scannerY.nextInt(); + + // Première condition : Si 'x' est strictement égale à 'a' ET que 'y' est strictement égale à 'b' + if(x == a && y == b){ + // alors on "affiche coulé" + System.out.println("coulé"); + } + // Deuxième condition : Sinon Si 'x' est strictemment égale à 'a' OU 'y' est strictement égale à 'b' + else if(x == a || y == b){ + // alors on affiche "TDM" + System.out.println("TDM"); + } + // Sinon on affiche "à l'eau" + else{ + System.out.println("à l'eau"); + } + + + } +} diff --git a/UTC503/24-11-26/java/Exercice2/README.md b/UTC503/24-11-26/java/Exercice2/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-11-26/java/Exercice2/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-11-26/java/Exercice2/bin/App.class b/UTC503/24-11-26/java/Exercice2/bin/App.class new file mode 100644 index 0000000..71850e2 Binary files /dev/null and b/UTC503/24-11-26/java/Exercice2/bin/App.class differ diff --git a/UTC503/24-11-26/java/Exercice2/src/App.java b/UTC503/24-11-26/java/Exercice2/src/App.java new file mode 100644 index 0000000..f4b92e0 --- /dev/null +++ b/UTC503/24-11-26/java/Exercice2/src/App.java @@ -0,0 +1,30 @@ +/* + +Exercice 2 : + +a) Ecrire un programme en java qui prend en entrée trois réels x, y et z et affiche le maximum des trois. + +*/ + +public class App { + public static void main(String[] args) throws Exception { + + // instantiation de x, y et z + + int x = 3; + int y = 4; + int z = 1; + + if (x > y && x > z) { + System.out.println("x est plus grand"); + } + else if(y > x && y > z){ + System.out.println("y est plus grand"); + } + else if(z > x && z > y){ + System.out.println("z est plus grand"); + } + + + } +} diff --git a/UTC503/24-11-26/java/Exercice3/README.md b/UTC503/24-11-26/java/Exercice3/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-11-26/java/Exercice3/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-11-26/java/Exercice3/bin/App.class b/UTC503/24-11-26/java/Exercice3/bin/App.class new file mode 100644 index 0000000..30e9042 Binary files /dev/null and b/UTC503/24-11-26/java/Exercice3/bin/App.class differ diff --git a/UTC503/24-11-26/java/Exercice3/src/App.java b/UTC503/24-11-26/java/Exercice3/src/App.java new file mode 100644 index 0000000..568b71e --- /dev/null +++ b/UTC503/24-11-26/java/Exercice3/src/App.java @@ -0,0 +1,48 @@ +/* +Exercice 3 : + +Ecrire un programme qui, étant donné une équation du second degré, +détermine le nombre de ses solutions réelles et leurs valeurs approchées éventuelles. + +*/ + +public class App { + public static void main(String[] args) throws Exception { + + int a =1; + int b =2; + int c =1; + + int delta = (b*b)-(4*a*c); + + if (delta < 0) { + System.out.println("L'équation admet aucune solution dans R"); + } + else if(delta == 0){ + System.out.println("L'équation admet 1 solution dans R "); + } + else if(delta > 0){ + System.out.println("L'équation admet 2 solution dans R"); + } + else{ + System.out.println("Une erreur est survenu"); + System.exit(1); + } + + } +} + + +/* + +D = b² - 4ac + +D > 0 +D = 0 +D < 0 + +ax² + bx + c + +b² - 4ac + +*/ \ No newline at end of file diff --git a/UTC503/24-11-26/java/projet/README.md b/UTC503/24-11-26/java/projet/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-11-26/java/projet/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-11-26/java/projet/bin/App.class b/UTC503/24-11-26/java/projet/bin/App.class new file mode 100644 index 0000000..65d609f Binary files /dev/null and b/UTC503/24-11-26/java/projet/bin/App.class differ diff --git a/UTC503/24-11-26/java/projet/src/App.java b/UTC503/24-11-26/java/projet/src/App.java new file mode 100644 index 0000000..5237cdd --- /dev/null +++ b/UTC503/24-11-26/java/projet/src/App.java @@ -0,0 +1,91 @@ +public class App { + public static void main(String[] args) throws Exception { + + // // Exemple 1 : If noramle (cette exemple n'est pas logique car le calcul s'effectu avant la vérification) + + // int a = 6; // Déclaration + // int b = 2; // | + + // if(b == 0){ // Traitement + // System.out.println("Division par 0 impossible !"); // | + // } // | + // System.out.println("Résultat est = "+ c); // | + + // Exemple 2 : If Else + + // int a = 6; + + // if(a >= 10){ + // System.out.println("Vous avez plus de la moyenne : " + a); + // } + // else{ + // System.out.println("Vous passez au rattrapage car vous avez moins de 10"); + // } + + // Exemple 3 : If Else If + + // La Bonne Pratique : + + // int note = 12; + + // if(note > 18){ + // System.out.println("A"); + // } + // else if(note > 16 && note <= 18){ + // System.out.println("B"); + // } + // else if(note > 14 && note <= 16){ + // System.out.println("C"); + // } + // else if(note > 12 && note <= 14){ + // System.out.println("D"); + // } + // else{ + // System.out.println("F"); + // } + + // Exemple 4 : Switch Case + + // char sexe = 'F'; + + // switch (sexe) { + // case 'F': + // System.out.println("Il s'agit d'une femme"); + // break; + // case 'H': + // System.out.println("Il s'agit d'un homme"); + // break; + // default: + // System.out.println("Sexe indéterminé"); + // break; + // } + + // Exercice Switch : + + // int taille = 34; + + // switch (taille) { + // case 34: + // System.out.println("XS"); + // break; + // case 36: + // System.out.println("S"); + // break; + // case 38: + // System.out.println("SM"); + // break; + // case 40: + // System.out.println("M"); + // break; + // case 42: + // System.out.println("L"); + // break; + // default: + // System.out.println("La taille n'existe pas"); + // break; + // } + + + } +} + diff --git a/UTC503/24-12-16/README.md b/UTC503/24-12-16/README.md new file mode 100644 index 0000000..b430ecc --- /dev/null +++ b/UTC503/24-12-16/README.md @@ -0,0 +1,103 @@ +# UTC 503 du 16/12/2024 + +## Les instructions : + +### Les boucles + +Répéter un traintement plusieurs fois + +Une boule n'est utile que si on peut la controler -> éviter les boucle infini + +plusieurs façon de les réaliser : + +***for*** -> Pour i = 0; tant que i est inférieur à 5; ajouter 1 à i : + +``` +for (int i=0;i>5;i=i+1){ + Système.out.println("****"); +} +``` + +Cette exemple affichera 5 fois "****" + +***while*** -> Tant que, + +On boucle "tant que" la condition est celle demandé : + +``` +// instancie "reponse" par le caractère "O" + +char reponse = 'O'; + +// Tant que reponse est égale et de même type que le caractère "O" : + +while (reponse == 'O') { + + // affiche la phrase : + + System.out.println("veuiller saisir un prenom : "); + + // scanner pour récupérer la valeur par l'utilisateur : + + String prenom = sc.nextLine(); + + // Affiche "Bonjour" suivi de la saisi de l'utilisateur : + + System.out.println("Bonjour, " + prenom); + + // Affiche la pharse pour asvoir si on recommance : + + System.out.println("voulez-vous réessayer ? (O/N) "); + + // On récupère le premier caractère de la valeur saisi et on instanci reponse avec. + + reponse = sc.nextLine().charAt(0); +} + +// Si reponse = O, alors on rejout, sinon, on affiche : + +System.out.println("Au revoir"); +``` + +***Do while*** -> Faire, Tant que + +Les instructions vont au moins s'executer une fois + +(Même code qu'en dessous, mais ) + +``` +char reponse = 'O'; + +do{ + System.out.println("veuiller saisir un prenom : "); + String prenom = sc.nextLine(); + System.out.println("Bonjour, " + prenom); + System.out.println("voulez-vous réessayer ? (O/N) "); + reponse = sc.nextLine().charAt(0); +} while (reponse == 'O'); +System.out.println("A+"); +``` + +### Scanner : + +Pour qu'un utilisateur puissent saisire des caractères, on utilise la class Scanner, avec sa méthode nextLine exemple : + +``` +Scanner sc = new Scanner(System.in); +System.out.println("veuiller saisir un mot : "); +String str = sc.nextLine(); +System.out.println("Vous avez saisi : " + str); +``` + +"Scanner sc" c'est la class, new Scanner(System.in) c'est l'utilisation du constructeur + +### /!\ Décomposition d'une fonction Système : +(Demmandé en examen) + +``` +System.out.println("...") + | | |------> Methode + | |-----------> Objet + |-----------------> Class +``` + diff --git a/UTC503/24-12-16/TD2-Boucle.md b/UTC503/24-12-16/TD2-Boucle.md new file mode 100644 index 0000000..a9066fd --- /dev/null +++ b/UTC503/24-12-16/TD2-Boucle.md @@ -0,0 +1,158 @@ +# TD2-Boucle + +>Guillaume Sanchez + +## Exercice 1 + +écrire un programme affichant la table de multiclication d'un nombre saisi par l'utilisateur + +``` +import java.util.Scanner; + +public class App { + public static void main(String[] args) throws Exception { + + Scanner sc = new Scanner(System.in); + System.out.print("Entrez le chiffre que vous voulez : "); + int num = sc.nextInt(); + + for(int i = 1; i <= 10; i++ ){ + System.out.println(num + " x " + i + " = " + num*i); + } + } +} +``` + +Le résultat de ce code : + +``` +Entrez le chiffre que vous voulez : 3 +3 x 1 = 3 +3 x 2 = 6 +3 x 3 = 9 +3 x 4 = 12 +3 x 5 = 15 +3 x 6 = 18 +3 x 7 = 21 +3 x 8 = 24 +3 x 9 = 27 +3 x 10 = 30 +``` + +## Exercice 2 + +Écrire un programme affichant les tables de multiplications des nombres de 1 à 10 dans un tableau à deux entrées. + +``` +public class App { + public static void main(String[] args) throws Exception { + + for(int a=1; a<=10; a++){ + System.out.print(a + " : "); + for(int b=1; b<=10;b++){ + System.out.print(a*b + ", " ); + } + System.out.println(); + } + } +} +``` + +Le résultat de ce code : + +``` +1 : 1 2 3 4 5 6 7 8 9 10 +2 : 2 4 6 8 10 12 14 16 18 20 +3 : 3 6 9 12 15 18 21 24 27 30 +4 : 4 8 12 16 20 24 28 32 36 40 +5 : 5 10 15 20 25 30 35 40 45 50 +6 : 6 12 18 24 30 36 42 48 54 60 +7 : 7 14 21 28 35 42 49 56 63 70 +8 : 8 16 24 32 40 48 56 64 72 80 +9 : 9 18 27 36 45 54 63 72 81 90 +10 : 10 20 30 40 50 60 70 80 90 100 +``` + +## Exercice 3 + +Écrire un programme demandant à l’utilisateur de saisir deux valeurs numériques b et n (vérifier que n est positif) et affichant la valeur bn. + +``` +public class App { + public static void main(String[] args) throws Exception { + + Scanner sc = new Scanner(System.in); + System.out.print("Entrez le premier chiffre que vous voulez (b) : "); + int b = sc.nextInt(); + + int n; + do{ + System.out.print("Entrez le second chiffre que vous voulez (n), il doit être positif : "); + n = sc.nextInt(); + // Vérification à effectuer pour savoir si "n" est positif, sinon on repart au "do" + } while (n < 0); + + System.out.println(b + " * " + n + " = " + b*n); + } +} +``` + +Le résultat de ce code dans le cas ou "n" est positif : + +``` +Entrez le premier chiffre que vous voulez (b) : 3 +Entrez le second chiffre que vous voulez (n), il doit être positif : 4 +3 * 4 = 12 +``` + +Le résultat de ce code dans le cas ou "n" est négatif, le programme revient au choix de "n" : + +``` +Entrez le premier chiffre que vous voulez (b) : 6 +Entrez le second chiffre que vous voulez (n), il doit être positif : -6 +Entrez le second chiffre que vous voulez (n), il doit être positif : 6 +6 * 6 = 36 +``` + +## Exercice 4 + +Ecrire un programme demandant la saisi d'une valeur `n` et affichant le carré suivant (n = 5 dans cette exemple): + +xxxxx + +xxxxx + +xxxxx + +xxxxx + +xxxxx + +``` +import java.util.Scanner; + +public class App { + public static void main(String[] args) throws Exception { + + Scanner sc = new Scanner(System.in); + System.out.print("Entrez le chiffre que vous voulez : "); + int num = sc.nextInt(); + + for(int x = 1; x <= num; x++){ + for(int y = 1; y <= num ; y++){ + System.out.print('x'); + } + System.out.println(); + } + } +} +``` + +Le résultat de ce code : + +``` +Entrez le chiffre que vous voulez : 3 +xxx +xxx +xxx +``` \ No newline at end of file diff --git a/UTC503/24-12-16/TD2-Boucles-Guillaume-Sanchez.pdf b/UTC503/24-12-16/TD2-Boucles-Guillaume-Sanchez.pdf new file mode 100644 index 0000000..f9b3c86 Binary files /dev/null and b/UTC503/24-12-16/TD2-Boucles-Guillaume-Sanchez.pdf differ diff --git a/UTC503/24-12-16/TD2-Boucles.md.html b/UTC503/24-12-16/TD2-Boucles.md.html new file mode 100644 index 0000000..b999f97 --- /dev/null +++ b/UTC503/24-12-16/TD2-Boucles.md.html @@ -0,0 +1,136 @@ + + + + + + + TD2-Boucles.md + + + + +

TD2-Boucle

+
+

Guillaume Sanchez

+
+

Exercice 1

+

écrire un programme affichant la table de multiplication d’un nombre saisi par l’utilisateur

+
import java.util.Scanner;
+
+public class App {
+	public static void main(String[] args) throws Exception {
+	
+		Scanner sc = new Scanner(System.in);
+		
+		System.out.print("Entrez le chiffre que vous voulez : ");
+		int num = sc.nextInt();
+		
+		for(int i = 1; i <= 10; i++ ){
+			System.out.println(num + " x " + i + " = " + num*i);
+		}
+	}
+}
+
+

Le résultat de ce code :

+
Entrez le chiffre que vous voulez : 3
+3 x 1 = 3
+3 x 2 = 6
+3 x 3 = 9
+3 x 4 = 12
+3 x 5 = 15
+3 x 6 = 18
+3 x 7 = 21
+3 x 8 = 24
+3 x 9 = 27
+3 x 10 = 30
+
+

Exercice 2

+

Écrire un programme affichant les tables de multiplications des nombres de 1 à 10 dans un tableau à deux entrées.

+
public class App {
+	public static void main(String[] args) throws Exception {
+		for(int a=1; a<=10; a++){
+			System.out.print(a + " : ");
+			for(int b=1; b<=10;b++){
+				System.out.print(a*b + ", " );
+			}
+			System.out.println();
+		}
+	}
+}
+
+

Le résultat de ce code :

+
1 : 1 2 3 4 5 6 7 8 9 10
+2 : 2 4 6 8 10 12 14 16 18 20
+3 : 3 6 9 12 15 18 21 24 27 30
+4 : 4 8 12 16 20 24 28 32 36 40
+5 : 5 10 15 20 25 30 35 40 45 50
+6 : 6 12 18 24 30 36 42 48 54 60
+7 : 7 14 21 28 35 42 49 56 63 70
+8 : 8 16 24 32 40 48 56 64 72 80
+9 : 9 18 27 36 45 54 63 72 81 90
+10 : 10 20 30 40 50 60 70 80 90 100
+
+

Exercice 3

+

Écrire un programme demandant à l’utilisateur de saisir deux valeurs numériques b et n (vérifier que n est positif) et affichant la valeur bn.

+
import java.util.Scanner;
+public class App {
+	public static void main(String[] args) throws Exception {
+		Scanner sc = new Scanner(System.in);
+		System.out.print("Entrez le premier chiffre que vous voulez (b) : ");
+
+		int b = sc.nextInt();
+		
+		int n;
+		do{
+			System.out.print("Entrez le second chiffre que vous
+			voulez (n), il doit être positif : ");
+			n = sc.nextInt();
+		} while (n < 0);
+		System.out.println(b + " * " + n + " = " + b*n);
+	}
+}
+
+

Le résultat de ce code dans le cas ou “n” est positif :

+
Entrez le premier chiffre que vous voulez (b) : 3
+Entrez le second chiffre que vous voulez (n), il doit être positif : 4
+3 * 4 = 12
+
+

Le résultat de ce code dans le cas ou “n” est négatif, le programme revient au choix de “n” :

+
Entrez le premier chiffre que vous voulez (b) : 6
+Entrez le second chiffre que vous voulez (n), il doit être positif : -6
+Entrez le second chiffre que vous voulez (n), il doit être positif : 6
+6 * 6 = 36
+
+

Exercice 4

+

Ecrire un programme demandant la saisi d’une valeur n et affichant le carré suivant (n = 5 dans cette exemple):
+xxxxx
+xxxxx
+xxxxx
+xxxxx
+xxxxx

+
import java.util.Scanner;
+
+public class App {
+	public static void main(String[] args) throws Exception {
+		Scanner sc = new Scanner(System.in);
+		System.out.print("Entrez le chiffre que vous voulez : ");
+		int num = sc.nextInt();
+		for(int x = 1; x <= num; x++){
+			for(int y = 1; y <= num ; y++){
+				System.out.print('x');
+			}
+			System.out.println();
+		}
+	}
+}
+
+

Le résultat de ce code :

+
Entrez le chiffre que vous voulez : 3
+xxx
+xxx
+xxx
+
+
+ + + diff --git a/UTC503/24-12-16/TD2_Boucle.pdf b/UTC503/24-12-16/TD2_Boucle.pdf new file mode 100644 index 0000000..5278446 Binary files /dev/null and b/UTC503/24-12-16/TD2_Boucle.pdf differ diff --git a/UTC503/24-12-16/java/cours/README.md b/UTC503/24-12-16/java/cours/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-12-16/java/cours/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-12-16/java/cours/bin/App.class b/UTC503/24-12-16/java/cours/bin/App.class new file mode 100644 index 0000000..b0d0039 Binary files /dev/null and b/UTC503/24-12-16/java/cours/bin/App.class differ diff --git a/UTC503/24-12-16/java/cours/src/App.java b/UTC503/24-12-16/java/cours/src/App.java new file mode 100644 index 0000000..9e6268c --- /dev/null +++ b/UTC503/24-12-16/java/cours/src/App.java @@ -0,0 +1,46 @@ +import java.util.Scanner; + +public class App { + public static void main(String[] args) throws Exception { + + Scanner sc = new Scanner(System.in); + + // for(int i = 0; i < 5; i = i + 1){ + // System.out.println("**** " + i); + // } + + // System.out.println("veuiller saisir un mot : "); + // String str = sc.nextLine(); + // System.out.println("Vous avez saisi : " + str); + + // int a = 1; int b = 15; + + // while (a < b){ + // System.out.println("coucou " + a + " " + b); + // a++; + // } + + // char reponse = 'O'; + + // while (reponse == 'O') { + // System.out.println("veuiller saisir un prenom : "); + // String prenom = sc.nextLine(); + // System.out.println("Bonjour, " + prenom); + // System.out.println("voulez-vous réessayer ? (O/N) "); + // reponse = sc.nextLine().charAt(0); + // } + // System.out.println("A+"); + + char reponse = 'O'; + + do{ + System.out.println("veuiller saisir un prenom : "); + String prenom = sc.nextLine(); + System.out.println("Bonjour, " + prenom); + System.out.println("voulez-vous réessayer ? (O/N) "); + reponse = sc.nextLine().charAt(0); + } while (reponse == 'O'); + System.out.println("A+"); + + } +} diff --git a/UTC503/24-12-16/java/exercice1/README.md b/UTC503/24-12-16/java/exercice1/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-12-16/java/exercice1/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-12-16/java/exercice1/bin/App.class b/UTC503/24-12-16/java/exercice1/bin/App.class new file mode 100644 index 0000000..b7d1970 Binary files /dev/null and b/UTC503/24-12-16/java/exercice1/bin/App.class differ diff --git a/UTC503/24-12-16/java/exercice1/src/App.java b/UTC503/24-12-16/java/exercice1/src/App.java new file mode 100644 index 0000000..d53a7d6 --- /dev/null +++ b/UTC503/24-12-16/java/exercice1/src/App.java @@ -0,0 +1,17 @@ +// Exercice 1 : + +// écrire un programme affichant la table de multiclication d'un nombre saisi par l'utilisateur + +import java.util.Scanner; + +public class App { + public static void main(String[] args) throws Exception { + + Scanner sc = new Scanner(System.in); + System.out.println("Entrez le chiffre que vous voulez :"); + int num = sc.nextInt(); + for(int i = 1; i <= 10; i++ ){ + System.out.println(num + " x " + i + " = " + num*i); + } + } +} \ No newline at end of file diff --git a/UTC503/24-12-16/java/exercice2/README.md b/UTC503/24-12-16/java/exercice2/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-12-16/java/exercice2/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-12-16/java/exercice2/bin/App.class b/UTC503/24-12-16/java/exercice2/bin/App.class new file mode 100644 index 0000000..317dcf6 Binary files /dev/null and b/UTC503/24-12-16/java/exercice2/bin/App.class differ diff --git a/UTC503/24-12-16/java/exercice2/src/App.java b/UTC503/24-12-16/java/exercice2/src/App.java new file mode 100644 index 0000000..ce6ab0d --- /dev/null +++ b/UTC503/24-12-16/java/exercice2/src/App.java @@ -0,0 +1,14 @@ +// Écrire un programme affichant les tables de multiplications des nombres de 1 à 10 dans un tableau à deux entrées. + +public class App { + public static void main(String[] args) throws Exception { + + for(int a=1; a<=10; a++){ + System.out.print(a + " : "); + for(int b=1; b<=10;b++){ + System.out.print(a*b + " " ); + } + System.out.println(); + } + } +} \ No newline at end of file diff --git a/UTC503/24-12-16/java/exercice3/README.md b/UTC503/24-12-16/java/exercice3/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-12-16/java/exercice3/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-12-16/java/exercice3/bin/App.class b/UTC503/24-12-16/java/exercice3/bin/App.class new file mode 100644 index 0000000..975d0c6 Binary files /dev/null and b/UTC503/24-12-16/java/exercice3/bin/App.class differ diff --git a/UTC503/24-12-16/java/exercice3/src/App.java b/UTC503/24-12-16/java/exercice3/src/App.java new file mode 100644 index 0000000..3fc149b --- /dev/null +++ b/UTC503/24-12-16/java/exercice3/src/App.java @@ -0,0 +1,21 @@ +// Écrire un programme demandant à l’utilisateur de saisir deux valeurs numériques b et n (vérifier que n est positif) et affichant la valeur bn. + +import java.util.Scanner; + +public class App { + public static void main(String[] args) throws Exception { + + Scanner sc = new Scanner(System.in); + System.out.print("Entrez le premier chiffre que vous voulez (b) : "); + int b = sc.nextInt(); + + int n; + do{ + System.out.print("Entrez le second chiffre que vous voulez (n), il doit être positif : "); + n = sc.nextInt(); + // Vérification à effectuer pour savoir si "n" est positif, sinon on repart au "do" + } while (n < 0); + + System.out.println(b + " * " + n + " = " + b*n); + } +} diff --git a/UTC503/24-12-16/java/exercice4/README.md b/UTC503/24-12-16/java/exercice4/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/24-12-16/java/exercice4/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/24-12-16/java/exercice4/bin/App.class b/UTC503/24-12-16/java/exercice4/bin/App.class new file mode 100644 index 0000000..cae518f Binary files /dev/null and b/UTC503/24-12-16/java/exercice4/bin/App.class differ diff --git a/UTC503/24-12-16/java/exercice4/src/App.java b/UTC503/24-12-16/java/exercice4/src/App.java new file mode 100644 index 0000000..a27d1a2 --- /dev/null +++ b/UTC503/24-12-16/java/exercice4/src/App.java @@ -0,0 +1,29 @@ +// Ecrire un programme demandant la saisi d'une valeur `n` et afficahnt le carré suivant (n = 5 dans cette exemple): + +// xxxxx + +// xxxxx + +// xxxxx + +// xxxxx + +// xxxxx + +import java.util.Scanner; + +public class App { + public static void main(String[] args) throws Exception { + + Scanner sc = new Scanner(System.in); + System.out.print("Entrez le chiffre que vous voulez : "); + int num = sc.nextInt(); + + for(int x = 1; x <= num; x++){ + for(int y = 1; y <= num ; y++){ + System.out.print('x'); + } + System.out.println(); + } + } +} diff --git a/UTC503/25-01-06/README.md b/UTC503/25-01-06/README.md new file mode 100644 index 0000000..ded632a --- /dev/null +++ b/UTC503/25-01-06/README.md @@ -0,0 +1,72 @@ +# 503 06/01/2025 + +## Tableau + +>Unidimentionnel -> C'est un tableau de type vecteur + +>MultiDimentionnel -> C'est un tableau de type matrice + +### Tableau Unidimentionnel + +Un tableau est une variable un peu particlière, nous pouvons lui affecter plusieurs valeurs ordonnées séquentiellement. + +Tab1 = {5,1,8,3,4,7,6,7,8,0} + +Nous appelons ces valeurs au moyen d'un indice. + +- Tab1 = {5,1,8,3,4,7,6,7,8,0} +- indice = {0,1,2,3,4,5,6,7,8,9} + +Un indice permet de se positionnener dans un tableau, d'identifier une valeur, exemple ci dessus, [0] = 5 + +Déclaration d'un tableau en java : + +<"Type du Tableau"> <"nom du tableau"> [] = {"contenu du tableau"} + +Dans la pratique : + +``` +int tableauEntier[] = {0,1,2,3,4,5,6,7,8,9}; + +double tableauDouble +``` +Déclaration d'un tableau à une dimention : + +``` +int tableauEntier[] = new int[6]; +ou +int[] tableauEntier2[] = new int[6]; +``` + +### Tableau multidimentionnel : + +Un tableau multidimentionnel n'est rien d'autre qu'un tableau contenant au minimum deux tableaux. + +Exemple soit un tableau multidimentionnel (2 lignes) appelé premierNombre + +- La première contiendra les nombres paires +- La seconde contiendra les nombres impraires + +PremierNombre = {{0,2,4,6,8},{1,3,5,7,9}}; + +>Conceille pratique utiliser la methode clone() pour éviter d'utiliser votre tableau originel. + +## Fonction et Procédure + +- Méthode : peut être une fonction ou une prcoédure +- Fonction : retourne une valeur +- Procédure : ne retourne pas de valeur + +Une fonction permet de créer un traitement qui pourra être utiliser à chaque fois qu'on en a besoin. + + +`public static double` + +Détails de cela : + +- Tous d'abort public, C'est ce qui définit la portée de la méthodes (programmation objets) +- Ensuite il y a static +- Juste après nous avons double, Il s'agit du type de retour de la méthode. Pour faire simple, ici, notre méthode va renvoyer un double. +- Vient ensuite le nom de la méthode, C'est avec ce nom que nous l'appellerons +- Puis arrivent les arguments de la méthode. Ce sont en fait les paramètres ont la méthode à besoin. +etc... diff --git a/UTC503/25-01-06/java/cours/README.md b/UTC503/25-01-06/java/cours/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/25-01-06/java/cours/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/25-01-06/java/cours/bin/App.class b/UTC503/25-01-06/java/cours/bin/App.class new file mode 100644 index 0000000..a8609d8 Binary files /dev/null and b/UTC503/25-01-06/java/cours/bin/App.class differ diff --git a/UTC503/25-01-06/java/cours/src/App.java b/UTC503/25-01-06/java/cours/src/App.java new file mode 100644 index 0000000..b553511 --- /dev/null +++ b/UTC503/25-01-06/java/cours/src/App.java @@ -0,0 +1,121 @@ +public class App { + public static void main(String[] args) throws Exception { + + // Exemple d'un tableau unidimentionnel + + System.out.println("================== Cours ==================="); + System.out.println(""); + + int tab[] = {1,2,3,4}; + + for(int i=0; i < tab.length; i++){ + System.out.println("La valeur " + tab[i] + " a pour indice " + i); + } + System.out.println("La valeur du dernier élément du tableau est : " + tab[tab.length -1]); + + System.out.println(""); + System.out.println("==============================================="); + System.out.println(""); + + // Exemple d'un tableau multidimentionnel + + int premierNombres[][] = {{1,2,3,4},{5,6,7,8}}; + + // for(int i=0;i<2;i++){ + // for(int j=0;j<4;j++){ + // System.out.print(premierNombres[i][j]); + // } + // System.out.println(""); + // } + + int i = 0; + while(i < 2){ + int j = 0; + while(j < 4){ + System.out.print(premierNombres[i][j]); + j++; + } + System.out.println(""); + i++; + } + + // Exemple 1 : + + System.out.println(""); + System.out.println("=============== Exercice 1================"); + System.out.println(""); + + int tabExemple1[] = {75,25}; + System.out.println(tabExemple1[0] + " + " + tabExemple1[1] + " = " + tabExemple1[0]+tabExemple1[1]); + + // Exemple 2 : + + System.out.println(""); + System.out.println("=============== Exercice 2================"); + System.out.println(""); + + int tabExemple2[] = {5,5}; + System.out.println(tabExemple2[0] + " * " + tabExemple2[1] + " = " + tabExemple2[0]*tabExemple2[1]); + + // Exemple 3 : + + System.out.println(""); + System.out.println("=============== Exerice 3================"); + System.out.println(""); + + int tabACopier[] = {1,2,3,4,5,6,7,8,9}; + int tabExemple3[] = tabACopier.clone(); + + for(i=0; i < tabACopier.length; i++){ + //tabExemple3[i] = tabACopier[i]; + System.out.print(tabExemple3[i]); + } + // System.out.println(""); + + System.out.println(""); + System.out.println("=============== Suite Cours, les Fonctions : ================"); + System.out.println(""); + + // Les Méthode utiles : + + System.out.println("Voici une valeur aléatoire : " + Math.random()); + System.out.println("Voici le sinus de 120 : " + Math.sin(120)); + System.out.println("Voici le cosinus de 120 : " + Math.cos(120)); + System.out.println("Voici la tangente de 120 : " + Math.tan(120)); + System.out.println("La valeur absolu de -120.25 : " + Math.abs(-125.25)); + System.out.println("L'exposant de 2 ': " + Math.pow(2, 2)); + + System.out.println(""); + System.out.println("=============== Créer sa méthode : ================"); + System.out.println(""); + + // Exemple avec la méthode printLnTableau : + + int tableau1[] = {1,2,3,4,5,6,7,8,9}; + int tableau2[] = {9,8,7,6,5}; + int tableau3[] = {4,3,2,1,0}; + + printLnTableau(tableau1); + printLnTableau(tableau2); + printLnTableau(tableau3); + + String tabBis1[] = {"toto","tata","titi","tutu"}; + + printTableauString(tabBis1); + } + + static void printLnTableau(int tab[]){ + System.out.print("|"); + for(int i=0; i If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/25-01-06/java/exemplenotee/bin/App.class b/UTC503/25-01-06/java/exemplenotee/bin/App.class new file mode 100644 index 0000000..e5b87d6 Binary files /dev/null and b/UTC503/25-01-06/java/exemplenotee/bin/App.class differ diff --git a/UTC503/25-01-06/java/exemplenotee/src/App.java b/UTC503/25-01-06/java/exemplenotee/src/App.java new file mode 100644 index 0000000..6a44997 --- /dev/null +++ b/UTC503/25-01-06/java/exemplenotee/src/App.java @@ -0,0 +1,39 @@ +public class App { + public static void main(String[] args) throws Exception { + + String tableau[] = {"toto", "tata", "titi", "tutu"}; + parcourirTableau(tableau); + System.out.println(toString2(tableau)); + + } + + static void parcourirTableau(String tab[]){ + + System.out.println("Parcours du tableau :"); + + for(String str : tab){ + System.out.println(str); + } + } + + static void toString(String tab[]){ + + System.out.println("Affiche la tableau en chaine de caractère :"); + + for(String str : tab){ + System.out.print(str); + } + System.out.println(""); + } + + static String toString2(String tab[]){ + + System.out.println("Méthode toString()"); + + String retour = ""; + for(String str : tab){ + retour += str + "\n"; + } + return retour; + } +} diff --git a/UTC503/25-01-28/README.md b/UTC503/25-01-28/README.md new file mode 100644 index 0000000..8bb4a50 --- /dev/null +++ b/UTC503/25-01-28/README.md @@ -0,0 +1,10 @@ +# UTC 503 28-01-25 + +Un constructeur, c'esu une méthode qui nous permet de fabriquer des objets à partir d'une classe. + +Utilisation d'une class : +``` +Ville ville = new Ville(); +Class (Ville) objet (ville) operateur (new) consturcteur (Ville()) +``` + diff --git a/UTC503/25-01-28/java/cours/README.md b/UTC503/25-01-28/java/cours/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/25-01-28/java/cours/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/25-01-28/java/cours/bin/App.class b/UTC503/25-01-28/java/cours/bin/App.class new file mode 100644 index 0000000..422ee12 Binary files /dev/null and b/UTC503/25-01-28/java/cours/bin/App.class differ diff --git a/UTC503/25-01-28/java/cours/bin/Ville.class b/UTC503/25-01-28/java/cours/bin/Ville.class new file mode 100644 index 0000000..02721c3 Binary files /dev/null and b/UTC503/25-01-28/java/cours/bin/Ville.class differ diff --git a/UTC503/25-01-28/java/cours/src/App.java b/UTC503/25-01-28/java/cours/src/App.java new file mode 100644 index 0000000..b90db30 --- /dev/null +++ b/UTC503/25-01-28/java/cours/src/App.java @@ -0,0 +1,17 @@ +import java.util.Scanner; + +public class App { + + public static void main(String[] args) throws Exception { + + Ville villeParDefaut = new Ville(); + Ville paris = new Ville("Paris", 123456, "France"); + Ville marseille = new Ville("Marseille", 654321, "France"); + + System.out.println(villeParDefaut.getNomVille()); + System.out.println(paris.getNomVille()); + System.out.println(marseille.getNomVille()); + + } + +} diff --git a/UTC503/25-01-28/java/cours/src/Ville.java b/UTC503/25-01-28/java/cours/src/Ville.java new file mode 100644 index 0000000..e17e37f --- /dev/null +++ b/UTC503/25-01-28/java/cours/src/Ville.java @@ -0,0 +1,47 @@ +public class Ville { + + private String nomVille; + private String nomPays; + private int nbreHabitants; + + public Ville(){ + + System.out.println("Création d'une ville"); + nomVille= "toto"; + nomPays = "tata"; + nbreHabitants= 0; + + } + + public Ville(String pNom, int pNbre, String pPays){ + System.out.println("Création d'une ville"); + nomVille= pNom; + nomPays = pPays; + nbreHabitants= pNbre; + } + + public int getNbreHabitants() { + return nbreHabitants; + } + + public String getNomPays() { + return nomPays; + } + + public String getNomVille() { + return nomVille; + } + + public void setNbreHabitants(int nbreHabitants) { + this.nbreHabitants = nbreHabitants; + } + + public void setNomPays(String nomPays) { + this.nomPays = nomPays; + } + + public void setNomVille(String nomVille) { + this.nomVille = nomVille; + } + +} diff --git a/UTC503/25-02-17/README.md b/UTC503/25-02-17/README.md new file mode 100644 index 0000000..8828967 --- /dev/null +++ b/UTC503/25-02-17/README.md @@ -0,0 +1,21 @@ +# UTC 503 17/02/2025 + +## Comment appeler une nouvelle class / comment créer un Objet : + +``` +"Nom de la class" "nom de l'objet" = new "NomConstructeur()" + +Exemple + +Ville villeParDefaut = new Ville(); +``` + +## Getter et Setteur + +Methode qui vont nous permetre d'avoir accès à des variables ou pour apporter des modifications. + +>Getter -> Accesseurs en FR + +>Setter -> Mutateurs en FR + +## this \ No newline at end of file diff --git a/UTC503/25-02-17/TD1/TDs_Entrainement_Java.pdf b/UTC503/25-02-17/TD1/TDs_Entrainement_Java.pdf new file mode 100644 index 0000000..c98a3ab Binary files /dev/null and b/UTC503/25-02-17/TD1/TDs_Entrainement_Java.pdf differ diff --git a/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.md b/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.md new file mode 100644 index 0000000..030004a --- /dev/null +++ b/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.md @@ -0,0 +1,480 @@ +# TDs Entrainement Java Guillaume Sanchez + +## Exercice 1 : Création d'une classe Personne + +### 1. Crée une classe Personne avec les attributs suivants : +- nom (String) +- âge (int) + +``` +public class Personne { + + private String nom; + private int age; + + Personne(){ + this.nom = "Inconnu"; + this.age = 0; + } + + Personne(String nomInput, int ageInput){ + this.nom = nomInput; + this.age = ageInput; + } +} +``` + + +### 2. Crée les getters et setters pour ces attributs. + +``` +public class Personne { + + private String nom; + private int age; + + Personne(){ + this.nom = "Inconnu"; + this.age = 0; + } + + Personne(String nomInput, int ageInput){ + this.nom = nomInput; + this.age = ageInput; + } + + public String getNom(){ + return this.nom; + } + + public void setNom(String nomInput){ + this.nom = nomInput; + } + + public int getAge(){ + return this.age; + } + + public void setAge(int ageInput){ + this.age = ageInput; + } +} +``` + +### 3. Dans la classe Main, crée un objet Personne, affecte-lui un nom et un âge, puis affiche ses valeurs. + +``` +public class App { + public static void main(String[] args) throws Exception { + + // Création d'une personne : + Personne personne1 = new Personne("Jean", 25); + // Affichage des données de la personne : + System.out.println(personne1.getNom() + + " a " + personne1.getAge() + " ans."); + } +} +``` + +Ce code donne en résultat : + +`Jean a 25 ans.` + +## Exercice 2 : Gestion d’un Compte Bancaire + +### 1. Crée une classe CompteBancaire avec les attributs privés : +- titulaire (String) +- solde (double) + +``` +public class CompteBancaire { + + private double solde; + private String titulaire; + + CompteBancaire(){ + this.solde = 0; + this.titulaire = "Inconnu"; + } + + CompteBancaire(double soldeInput, String titulaireInput){ + this.solde = soldeInput; + this.titulaire = titulaireInput; + } +} +``` + +### 2. Implémente les getters et setters, mais : + +- Empêche la modification du solde en dehors des méthodes de la classe. +- Ajoute une méthode deposer(double montant) qui augmente le solde. +- Ajoute une méthode retirer (double montant) qui diminue le solde uniquement si l'utilisateur a assez d'argent. + +``` +public class CompteBancaire { + + private double solde; + private String titulaire; + + CompteBancaire(){ + this.solde = 0; + this.titulaire = "Inconnu"; + } + + CompteBancaire(double soldeInput, String titulaireInput){ + this.solde = soldeInput; + this.titulaire = titulaireInput; + } + + public void deposer(double montant){ + this.setSolde(this.getSolde() + montant); + } + + public void retirer(double montant){ + this.setSolde(this.getSolde() - montant); + } + + public double getSolde(){ + return this.solde; + } + + private void setSolde(double soldeInput){ + this.solde = soldeInput; + } + + public String getTitulaire(){ + return this.titulaire; + } + + public void setTitulaire(String titulaireInput){ + this.titulaire = titulaireInput; + } +} +``` + +### 3. Dans Main, crée un compte, effectue des dépôts et retraits, et affiche le solde. + +``` +public class App { + public static void main(String[] args) throws Exception { + + // Création d'un compte bancaire : + CompteBancaire compte1 = new CompteBancaire(1000, "Jean"); + + // affichage des données initialisées : + System.out.println(compte1.getTitulaire() + + " a un solde de " + compte1.getSolde() + " euros."); + + // dépôt de 500 euros : + compte1.deposer(500); + // affichage du nouveau solde : + System.out.println(compte1.getTitulaire() + + " a un solde de " + compte1.getSolde() + " euros."); + + // retrait de 200 euros : + compte1.retirer(200); + // affichage du nouveau solde : + System.out.println(compte1.getTitulaire() + + " a un solde de " + compte1.getSolde() + " euros."); + } +} +``` + +Ce code donne en résultat : + +``` +Jean a un solde de 1000.0 euros. +Jean a un solde de 1500.0 euros. +Jean a un solde de 1300.0 euros. +``` + +## Exercice 3 : Gestion d'un Produit + +### 1. Crée une classe Produit avec : +- nom (String) +- prix (double) +- quantiteStock (int) + +``` +public class Produit { + + private String nom; + private double prix; + private int quantiteStock; + + Produit(){ + this.nom = "Inconnu"; + this.prix = 0; + } + + Produit(String nomInput, double prixInput){ + this.nom = nomInput; + this.prix = prixInput; + } +} +``` + +### 2. Implémente les getters et setters, en ajoutant : +- Une validation dans setPrix(double prix): ne pas autoriser un prix négatif. +- Une validation dans setQuantiteStock(int quantite): ne pas accepter une +quantité négative. + +``` +public class Produit { + + private String nom; + private double prix; + private int quantiteStock; + + Produit(){ + this.nom = "Inconnu"; + this.prix = 0; + } + + Produit(String nomInput, double prixInput){ + this.nom = nomInput; + this.prix = prixInput; + } + + public String getNom(){ + return this.nom; + } + + public void setNom(String nomInput){ + this.nom = nomInput; + } + + public double getPrix(){ + return this.prix; + } + + public void setPrix(double prixInput){ + if(prixInput < 0){ + System.out.println(" + Le prix ne peut pas être négatif."); } + else{ + this.prix = prixInput; + } + } + + public int getQuantiteStock(){ + return this.quantiteStock; + } + + public void setQuantiteStock(int quantiteStockInput){ + if(quantiteStockInput < 0){ + System.out.println(" + La quantité ne peut pas être négative."); + } + else{ + this.quantiteStock = quantiteStockInput; + } + } +} +``` + +### 3. Dans Main, crée un produit et teste les restrictions. + +``` +public class App { + public static void main(String[] args) throws Exception { + // Création d'un produit : + Produit produit1 = new Produit("Ordinateur", 1000); + + // Essai de modification du prix avec une valeur négative + // Affiche un message d'erreur : + produit1.setPrix(-5); + + // Essai de modification du prix avec une valeur positive : + produit1.setPrix(5); + + // Affichage du nouveau prix : + System.out.println("Le prix est " + + produit1.getPrix() + " euros."); + + // Essai de modification du stock avec une valeur négative + // Affiche un message d'erreur : + produit1.setQuantiteStock(-5); + + // Essai de modification du stock avec une valeur positive : + produit1.setQuantiteStock(5); + + // Affichage de la nouvelle quantité de stock : + System.out.println("La Quantité du Stock est " + + produit1.getQuantiteStock()); + } +} +``` + +Ce code donne en résultat : + +``` +Le prix ne peut pas être négatif. +Le prix est 5.0 euros. +La quantité ne peut pas être négative. +La Quantité du Stock est 5 +``` + +## Exercice 4 : Gestion des étudiants + +### 1. Crée une classe Etudiant avec les attributs : +- nom (String) +- moyenne (double) + +``` +public class Etudiant { + + private String nom; + private double moyenne; + + Etudiant() { + this.nom = "Inconnu"; + this.moyenne = 0; + } + + Etudiant(String nomInput, double moyenneInput) { + this.nom = nomInput; + this.moyenne = moyenneInput; + } +} +``` + +### 2. Implémente les getters et setters avec une contrainte : +- La moyenne doit être comprise entre 0 et 20. Si une valeur hors de cet intervalle est donnée, elle n’est pas prise en compte. + +``` +public class Etudiant { + + private String nom; + private double moyenne = -1; + + /* -1 instancié par defaut pour qu'elle + ne soit pas prise en compte en cas de mauvaise + donnée + */ + + Etudiant() { + this.nom = "Inconnu"; + this.moyenne = -1; + } + + Etudiant(String nomInput, double moyenneInput) { + this.nom = nomInput; + if(moyenneInput < 0 || moyenneInput > 20) { + System.out.println("La moyenne doit être comprise entre 0 et 20."); + } + else{ + this.moyenne = moyenneInput; + } + } + + public String getNom() { + return this.nom; + } + + public void setNom(String nomInput) { + this.nom = nomInput; + } + + public double getMoyenne() { + return this.moyenne; + } + + public void setMoyenne(double moyenneInput) { + if(moyenneInput < 0 || moyenneInput > 20) { + System.out.println("La moyenne doit être comprise entre 0 et 20."); + } + else{ + this.moyenne = moyenneInput; + } + } + +} + +``` + +### 3. Ajoute une méthode afficherDetails() pour afficher les infos de l’étudiant. + +``` + public void afficherDetails() { + System.out.println("Nom : " + this.nom); + if(this.moyenne >= 0 && this.moyenne <= 20) { + System.out.println("Moyenne : " + this.moyenne); + } + else { + System.out.println("Moyenne : Non définie."); + } + } +``` + +### 4. Dans Main, crée plusieurs étudiants et teste les restrictions. + +``` +public class App { + public static void main(String[] args) throws Exception { + + System.out.println("--------------------------------------"); + // Création d'un Etudiant : + Etudiant etudiant1 = new Etudiant("Jean", 15); + // Utilisation de la méthode afficherDetails() : + etudiant1.afficherDetails(); + System.out.println("--------------------------------------"); + // Création d'un second Etudiant avec une moyenne incorrecte superieur à 20 : + Etudiant etudiant2 = new Etudiant("Paul", 25); + // Utilisation de la méthode afficherDetails() : + etudiant2.afficherDetails(); + System.out.println("--------------------------------------"); + // Création d'un troisième Etudiant avec une moyenne incorrecte inferieur à 0 : + Etudiant etudiant3 = new Etudiant("Marie", -5); + etudiant3.afficherDetails(); + System.out.println("--------------------------------------"); + // Création d'un quatrième Etudiant avec une moyenne correcte : + Etudiant etudiant4 = new Etudiant("Luc", 18); + etudiant4.afficherDetails(); + System.out.println("--------------------------------------"); + // Tentative de changement de la moyenne avec une valeur positive incorrecte : + etudiant4.setMoyenne(25); + etudiant4.afficherDetails(); + System.out.println("--------------------------------------"); + // Tentative de changement de la moyenne avec une valeur negative incorrecte : + etudiant4.setMoyenne(-30); + etudiant4.afficherDetails(); + System.out.println("--------------------------------------"); + // Tentative de changement de la moyenne avec une valeur correcte : + etudiant4.setMoyenne(10); + etudiant4.afficherDetails(); + System.out.println("--------------------------------------"); + } +} +``` + +Ce code donne en résultat : + +``` +-------------------------------------- +Nom : Jean +Moyenne : 15.0 +-------------------------------------- +La moyenne doit être comprise entre 0 et 20. +Nom : Paul +Moyenne : Non définie. +-------------------------------------- +La moyenne doit être comprise entre 0 et 20. +Nom : Marie +Moyenne : Non définie. +-------------------------------------- +Nom : Luc +Moyenne : 18.0 +-------------------------------------- +La moyenne doit être comprise entre 0 et 20. +Nom : Luc +Moyenne : 18.0 +-------------------------------------- +La moyenne doit être comprise entre 0 et 20. +Nom : Luc +Moyenne : 18.0 +-------------------------------------- +Nom : Luc +Moyenne : 10.0 +-------------------------------------- +``` diff --git a/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.pdf b/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.pdf new file mode 100644 index 0000000..198ca7c Binary files /dev/null and b/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.pdf differ diff --git a/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.zip b/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.zip new file mode 100644 index 0000000..55bb92c Binary files /dev/null and b/UTC503/25-02-17/TD1/TDs_Entrainement_Java_Guillaume_Sanchez.zip differ diff --git a/UTC503/25-02-17/TD2/Class_App_Et_Arborescence.png b/UTC503/25-02-17/TD2/Class_App_Et_Arborescence.png new file mode 100644 index 0000000..7b3d26e Binary files /dev/null and b/UTC503/25-02-17/TD2/Class_App_Et_Arborescence.png differ diff --git a/UTC503/25-02-17/TD2/Class_Eleve.png b/UTC503/25-02-17/TD2/Class_Eleve.png new file mode 100644 index 0000000..9b28af1 Binary files /dev/null and b/UTC503/25-02-17/TD2/Class_Eleve.png differ diff --git a/UTC503/25-02-17/TD2/TDs_Classe_Java.pdf b/UTC503/25-02-17/TD2/TDs_Classe_Java.pdf new file mode 100644 index 0000000..8c0fddb Binary files /dev/null and b/UTC503/25-02-17/TD2/TDs_Classe_Java.pdf differ diff --git a/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.md b/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.md new file mode 100644 index 0000000..d0f1e95 --- /dev/null +++ b/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.md @@ -0,0 +1,30 @@ +# TDs Classe Java Guillaume Sanchez + +J'ai volontairement sur commenté pour expliquer mon code. + +La lecture suit normalement les consignes données. + +![Class_Eleve](https://image.noelshack.com/fichiers/2025/08/1/1739816455-class-eleve.png) + +J'ai laissé l'arborescence afin de montrer que "gestionEleves" est bien un package. Il est importé dans App.java + +![Class_App_Et_Arborescence](https://image.noelshack.com/fichiers/2025/08/1/1739816454-class-app-et-arborescence.png) + +Voici ce que ce code retourne : + +``` +Jean (11.25) +[10, 15, 20, 5, 0, 0, 20, 20] +Jean +11.25 +``` + +`Jean (11.25)` correspond à la ligne 14 + +`[10, 15, 20, 5, 0, 0, 20, 20]` correspond à la ligne 15 + +`Jean` correspond à la ligne 16 + +`11.25` correspond à la ligne 17 + +On observe que toutes les notes ont bien été ajoutées à “listesNotes”, que “getNom”, “getMoyenne”, “getListeNotes” fonctionne bien et que “ajouterNotes” modifie les notes négatives en 0 et les notes supérieures à 20 en 20. diff --git a/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.pdf b/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.pdf new file mode 100644 index 0000000..a666d80 Binary files /dev/null and b/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.pdf differ diff --git a/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.zip b/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.zip new file mode 100644 index 0000000..3f61fea Binary files /dev/null and b/UTC503/25-02-17/TD2/TDs_Classe_Java_Guillaume_Sanchez.zip differ diff --git a/UTC503/25-02-17/java/TD1/README.md b/UTC503/25-02-17/java/TD1/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/25-02-17/java/TD1/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/25-02-17/java/TD1/bin/App.class b/UTC503/25-02-17/java/TD1/bin/App.class new file mode 100644 index 0000000..a6688b8 Binary files /dev/null and b/UTC503/25-02-17/java/TD1/bin/App.class differ diff --git a/UTC503/25-02-17/java/TD1/bin/CompteBancaire.class b/UTC503/25-02-17/java/TD1/bin/CompteBancaire.class new file mode 100644 index 0000000..15c8334 Binary files /dev/null and b/UTC503/25-02-17/java/TD1/bin/CompteBancaire.class differ diff --git a/UTC503/25-02-17/java/TD1/bin/Etudiant.class b/UTC503/25-02-17/java/TD1/bin/Etudiant.class new file mode 100644 index 0000000..217b56c Binary files /dev/null and b/UTC503/25-02-17/java/TD1/bin/Etudiant.class differ diff --git a/UTC503/25-02-17/java/TD1/bin/Personne.class b/UTC503/25-02-17/java/TD1/bin/Personne.class new file mode 100644 index 0000000..3bd73c3 Binary files /dev/null and b/UTC503/25-02-17/java/TD1/bin/Personne.class differ diff --git a/UTC503/25-02-17/java/TD1/bin/Produit.class b/UTC503/25-02-17/java/TD1/bin/Produit.class new file mode 100644 index 0000000..7d6e751 Binary files /dev/null and b/UTC503/25-02-17/java/TD1/bin/Produit.class differ diff --git a/UTC503/25-02-17/java/TD1/src/App.java b/UTC503/25-02-17/java/TD1/src/App.java new file mode 100644 index 0000000..1953f45 --- /dev/null +++ b/UTC503/25-02-17/java/TD1/src/App.java @@ -0,0 +1,85 @@ +public class App { + public static void main(String[] args) throws Exception { + + // Exercice 1 + + System.out.println("\n--------------Exercice 1--------------\n"); + // Création d'une personne : + Personne personne1 = new Personne("Jean", 25); + // Affichage des données de la personne : + System.out.println(personne1.getNom() + + " a " + personne1.getAge() + " ans."); + + // Exercice 2 + + System.out.println("\n--------------Exercice 2--------------\n"); + // Création d'un compte bancaire : + CompteBancaire compte1 = new CompteBancaire(1000, "Jean"); + // affichage des données initialisées : + System.out.println(compte1.getTitulaire() + " a un solde de " + compte1.getSolde() + " euros."); + // dépôt de 500 euros : + compte1.deposer(500); + // affichage du nouveau solde : + System.out.println(compte1.getTitulaire() + " a un solde de " + compte1.getSolde() + " euros."); + // retrait de 200 euros : + compte1.retirer(200); + // affichage du nouveau solde : + System.out.println(compte1.getTitulaire() + " a un solde de " + compte1.getSolde() + " euros."); + + // Exercice 3 + + System.out.println("\n--------------Exercice 3--------------\n"); + + // Création d'un produit : + Produit produit1 = new Produit("Ordinateur", 1000); + // Essai de modification du prix avec une valeur négative + // Affiche un message d'erreur : + produit1.setPrix(-5); + // Essai de modification du prix avec une valeur positive : + produit1.setPrix(5); + // Affichage du nouveau prix : + System.out.println("Le prix est " + produit1.getPrix() + " euros."); + // Essai de modification du stock avec une valeur négative + // Affiche un message d'erreur : + produit1.setQuantiteStock(-5); + // Essai de modification du stock avec une valeur positive : + produit1.setQuantiteStock(5); + // Affichage de la nouvelle quantité de stock : + System.out.println("La Quantité du Stock est " + produit1.getQuantiteStock()); + + // Exercice 4 + + System.out.println("\n--------------Exercice 4--------------\n"); + + // Création d'un Etudiant : + Etudiant etudiant1 = new Etudiant("Jean", 15); + // Utilisation de la méthode afficherDetails() : + etudiant1.afficherDetails(); + System.out.println("--------------------------------------"); + // Création d'un second Etudiant avec une moyenne incorrecte superieur à 20 : + Etudiant etudiant2 = new Etudiant("Paul", 25); + // Utilisation de la méthode afficherDetails(), normalement, la moyenne ne s'affiche pas : + etudiant2.afficherDetails(); + System.out.println("--------------------------------------"); + // Création d'un troisième Etudiant avec une moyenne incorrecte inferieur à 0 : + Etudiant etudiant3 = new Etudiant("Marie", -5); + etudiant3.afficherDetails(); + System.out.println("--------------------------------------"); + // Création d'un quatrième Etudiant avec une moyenne correcte : + Etudiant etudiant4 = new Etudiant("Luc", 18); + etudiant4.afficherDetails(); + System.out.println("--------------------------------------"); + // Tentative de changement de la moyenne avec une valeur positive incorrecte : + etudiant4.setMoyenne(25); + etudiant4.afficherDetails(); + System.out.println("--------------------------------------"); + // Tentative de changement de la moyenne avec une valeur negative incorrecte : + etudiant4.setMoyenne(-30); + etudiant4.afficherDetails(); + System.out.println("--------------------------------------"); + // Tentative de changement de la moyenne avec une valeur correcte : + etudiant4.setMoyenne(10); + etudiant4.afficherDetails(); + System.out.println("--------------------------------------"); + } +} diff --git a/UTC503/25-02-17/java/TD1/src/CompteBancaire.java b/UTC503/25-02-17/java/TD1/src/CompteBancaire.java new file mode 100644 index 0000000..663958e --- /dev/null +++ b/UTC503/25-02-17/java/TD1/src/CompteBancaire.java @@ -0,0 +1,40 @@ +public class CompteBancaire { + + private double solde; + private String titulaire; + + CompteBancaire(){ + this.solde = 0; + this.titulaire = "Inconnu"; + } + + CompteBancaire(double soldeInput, String titulaireInput){ + this.solde = soldeInput; + this.titulaire = titulaireInput; + } + + public void deposer(double montant){ + this.setSolde(this.getSolde() + montant); + } + + public void retirer(double montant){ + this.setSolde(this.getSolde() - montant); + } + + public double getSolde(){ + return this.solde; + } + + private void setSolde(double soldeInput){ + this.solde = soldeInput; + } + + public String getTitulaire(){ + return this.titulaire; + } + + public void setTitulaire(String titulaireInput){ + this.titulaire = titulaireInput; + } + +} diff --git a/UTC503/25-02-17/java/TD1/src/Etudiant.java b/UTC503/25-02-17/java/TD1/src/Etudiant.java new file mode 100644 index 0000000..3e418c2 --- /dev/null +++ b/UTC503/25-02-17/java/TD1/src/Etudiant.java @@ -0,0 +1,57 @@ +public class Etudiant { + + private String nom; + private double moyenne = -1; + + /* -1 instancié par defaut pour qu'elle + ne soit pas prise en compte en cas de mauvaise + donnée + */ + + Etudiant() { + this.nom = "Inconnu"; + this.moyenne = 0; + } + + Etudiant(String nomInput, double moyenneInput) { + this.nom = nomInput; + if(moyenneInput < 0 || moyenneInput > 20) { + System.out.println("La moyenne doit être comprise entre 0 et 20."); + } + else{ + this.moyenne = moyenneInput; + } + } + + public void afficherDetails() { + System.out.println("Nom : " + this.nom); + if(this.moyenne >= 0 && this.moyenne <= 20) { + System.out.println("Moyenne : " + this.moyenne); + } + else { + System.out.println("Moyenne : Non définie."); + } + } + + public String getNom() { + return this.nom; + } + + public void setNom(String nomInput) { + this.nom = nomInput; + } + + public double getMoyenne() { + return this.moyenne; + } + + public void setMoyenne(double moyenneInput) { + if(moyenneInput < 0 || moyenneInput > 20) { + System.out.println("La moyenne doit être comprise entre 0 et 20."); + } + else{ + this.moyenne = moyenneInput; + } + } + +} diff --git a/UTC503/25-02-17/java/TD1/src/Personne.java b/UTC503/25-02-17/java/TD1/src/Personne.java new file mode 100644 index 0000000..4f90016 --- /dev/null +++ b/UTC503/25-02-17/java/TD1/src/Personne.java @@ -0,0 +1,32 @@ +public class Personne { + + private String nom; + private int age; + + Personne(){ + this.nom = "Inconnu"; + this.age = 0; + } + + Personne(String nomInput, int ageInput){ + this.nom = nomInput; + this.age = ageInput; + } + + public String getNom(){ + return this.nom; + } + + public void setNom(String nomInput){ + this.nom = nomInput; + } + + public int getAge(){ + return this.age; + } + + public void setAge(int ageInput){ + this.age = ageInput; + } + +} diff --git a/UTC503/25-02-17/java/TD1/src/Produit.java b/UTC503/25-02-17/java/TD1/src/Produit.java new file mode 100644 index 0000000..47dd5e9 --- /dev/null +++ b/UTC503/25-02-17/java/TD1/src/Produit.java @@ -0,0 +1,49 @@ +public class Produit { + + private String nom; + private double prix; + private int quantiteStock; + + Produit(){ + this.nom = "Inconnu"; + this.prix = 0; + } + + Produit(String nomInput, double prixInput){ + this.nom = nomInput; + this.prix = prixInput; + } + + public String getNom(){ + return this.nom; + } + + public void setNom(String nomInput){ + this.nom = nomInput; + } + + public double getPrix(){ + return this.prix; + } + + public void setPrix(double prixInput){ + if(prixInput < 0){ + System.out.println("Le prix ne peut pas être négatif."); } + else{ + this.prix = prixInput; + } + } + + public int getQuantiteStock(){ + return this.quantiteStock; + } + + public void setQuantiteStock(int quantiteStockInput){ + if(quantiteStockInput < 0){ + System.out.println("La quantité ne peut pas être négative."); + } + else{ + this.quantiteStock = quantiteStockInput; + } + } +} diff --git a/UTC503/25-02-17/java/TD2/README.md b/UTC503/25-02-17/java/TD2/README.md new file mode 100644 index 0000000..7c03a53 --- /dev/null +++ b/UTC503/25-02-17/java/TD2/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/25-02-17/java/TD2/bin/App.class b/UTC503/25-02-17/java/TD2/bin/App.class new file mode 100644 index 0000000..43a26d6 Binary files /dev/null and b/UTC503/25-02-17/java/TD2/bin/App.class differ diff --git a/UTC503/25-02-17/java/TD2/bin/gestionEleves/Eleve.class b/UTC503/25-02-17/java/TD2/bin/gestionEleves/Eleve.class new file mode 100644 index 0000000..bfe7d2d Binary files /dev/null and b/UTC503/25-02-17/java/TD2/bin/gestionEleves/Eleve.class differ diff --git a/UTC503/25-02-17/java/TD2/src/App.java b/UTC503/25-02-17/java/TD2/src/App.java new file mode 100644 index 0000000..1aa066c --- /dev/null +++ b/UTC503/25-02-17/java/TD2/src/App.java @@ -0,0 +1,20 @@ +import gestionEleves.*; // Importation du package gestionEleves et de toutes ses classes + +public class App { + public static void main(String[] args) throws Exception { + Eleve eleve = new Eleve("Jean"); // Création d'un nouvel objet Eleve + eleve.ajouterNote(10); // Ajout d'une note à l'objet eleve + eleve.ajouterNote(15); // Ajout d'une note à l'objet eleve + eleve.ajouterNote(20); // Ajout d'une note à l'objet eleve + eleve.ajouterNote(5); // Ajout d'une note à l'objet eleve + eleve.ajouterNote(-3); // Note ajustée à 0 + eleve.ajouterNote(-3); // Note ajustée à 0 + eleve.ajouterNote(25); // Note ajustée à 20 + eleve.ajouterNote(75); // Note ajustée à 20 + System.out.println(eleve); // Affiche : Jean (11.25) + System.out.println(eleve.getListeNotes()); // Affiche : [10, 15, 20, 5, 0, 0, 20, 20] + System.out.println(eleve.getNom()); // Affiche : Jean + System.out.println(eleve.getMoyenne()); // Affiche : 11.25 + } +} + diff --git a/UTC503/25-02-17/java/TD2/src/gestionEleves/Eleve.java b/UTC503/25-02-17/java/TD2/src/gestionEleves/Eleve.java new file mode 100644 index 0000000..ea47810 --- /dev/null +++ b/UTC503/25-02-17/java/TD2/src/gestionEleves/Eleve.java @@ -0,0 +1,57 @@ +package gestionEleves; // Déclaration du package gestionEleves + +import java.util.ArrayList; // Importation de la classe ArrayList + +public class Eleve { // Création de la classe Eleve + + private String nom; // Déclaration de l'attribut nom + private ArrayList listeNotes = new ArrayList<>(); // Déclaration de l'attribut listeNotes + // Initialisation de l'attribut listeNotes avec un nouvel objet ArrayList vide + private double moyenne; // Déclaration de l'attribut moyenne + + public Eleve() { // Déclaration du constructeur Eleve par défaut + this.nom = "Inconnu"; + } + + public Eleve(String nomImput) { // Déclaration du constructeur Eleve + this.nom = nomImput; // Initialisation de l'attribut nom avec la valeur de nomImput + } + + public String getNom() { // Déclaration de la méthode getNom + return this.nom; // getNom retourne la valeur de l'attribut nom + } + + public double getMoyenne() { // Déclaration de la méthode getMoyenne + return this.moyenne; // getMoyenne retourne la valeur de l'attribut moyenne + } + + public ArrayList getListeNotes() { // Déclaration de la méthode getListeNotes + return listeNotes; // getListeNotes retourne la liste de toutes les notes contenu dans listeNotes + } + + public void ajouterNote(int noteInput) { // Déclaration de la méthode ajouterNote + // Condition pour ajuster la noteInput si elle est inférieure à 0 + if (noteInput < 0) { // Si noteInput est inférieur à 0 + noteInput = 0; // noteInput prend la valeur 0 + // Condition pour ajuster la noteInput si elle est supérieure à 20 + } else if (noteInput > 20) { // Sinon si noteInput est supérieur à 20 + noteInput = 20; // noteInput prend la valeur 20 + } + this.listeNotes.add(noteInput); // Ajout de la noteInput à la liste listeNotes + if (this.listeNotes.isEmpty()) { // Si la liste listeNotes est vide + this.moyenne = 0; // La moyenne prend la valeur 0 + } else { // Sinon + int somme = 0; // Initialisation de la variable somme à 0 + for (int note : this.listeNotes) { // Pour chaque note dans la liste listeNotes + somme += note; // Ajout de la note à la somme + } + // Calcul de la moyenne et affectation à l'attribut moyenne + this.moyenne = (double) somme / this.listeNotes.size(); + } + } + + public String toString() { // Déclaration de la méthode toString + return this.nom + " (" + this.moyenne + ")"; // Retourne le nom et la moyenne de l'élève + } + +} diff --git a/UTC503/25-02-17/java/cours/README.md b/UTC503/25-02-17/java/cours/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/25-02-17/java/cours/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/25-02-17/java/cours/bin/App.class b/UTC503/25-02-17/java/cours/bin/App.class new file mode 100644 index 0000000..422ee12 Binary files /dev/null and b/UTC503/25-02-17/java/cours/bin/App.class differ diff --git a/UTC503/25-02-17/java/cours/bin/Ville.class b/UTC503/25-02-17/java/cours/bin/Ville.class new file mode 100644 index 0000000..02721c3 Binary files /dev/null and b/UTC503/25-02-17/java/cours/bin/Ville.class differ diff --git a/UTC503/25-02-17/java/cours/src/Adresse.java b/UTC503/25-02-17/java/cours/src/Adresse.java new file mode 100644 index 0000000..085ddc6 --- /dev/null +++ b/UTC503/25-02-17/java/cours/src/Adresse.java @@ -0,0 +1,44 @@ +public class Adresse { + + private int numero; + private String nomDeRue; + private int codePostal; + + public Adresse(){ + System.out.println("Création d'une adresse par defaut"); + numero= 0; + nomDeRue = "Nom De Rue Par Defaut"; + codePostal= 0; + } + + public Adresse(String nomDeRueInput, int codePostalInput){ + System.out.println("Création d'une adresse custom " + nomDeRueInput); + nomDeRue = nomDeRueInput; + codePostal= codePostalInput; + } + + public int getNumero(){ + return this.numero; + } + + public void setNumero(int numeroInput){ + this.numero = numeroInput; + } + + public String getNomDeRue(){ + return this.nomDeRue; + } + + public void setNomDeRue(String nomDeRueInput){ + this.nomDeRue = nomDeRueInput; + } + + public int getcodePostal(){ + return this.codePostal; + } + + public void setCodePostal(int codePostalInput){ + this.codePostal = codePostalInput; + } + +} diff --git a/UTC503/25-02-17/java/cours/src/App.java b/UTC503/25-02-17/java/cours/src/App.java new file mode 100644 index 0000000..c7d826a --- /dev/null +++ b/UTC503/25-02-17/java/cours/src/App.java @@ -0,0 +1,57 @@ +import java.util.Scanner; + +public class App { + + public static void main(String[] args) throws Exception { + + //Ville villeParDefaut = new Ville(); + //Ville paris = new Ville("Paris", 123456, "France"); + //Ville marseille = new Ville("Marseille", 654321, "France"); + + //System.out.println(villeParDefaut.getNomVille()); + //System.out.println(paris.getNomVille()); + //System.out.println(marseille.getNomVille()); + + Ville v1 = new Ville("Marseille", 123456, "France", 13000); + System.out.println("v1 = " + v1.getNomVille() + ", " + v1.getNbreHabitants() + ", " + v1.getNomPays()); + Ville v2 = new Ville("Rio", 321654, "Brésil", 78945); + System.out.println("v2 = " + v2.getNomVille() + ", " + v2.getNbreHabitants() + ", " + v2.getNomPays()); + + System.out.println(); + + System.out.println("On inverse v1 et v2"); + + Ville temp = new Ville(); + temp = v1; + v1 = v2; + v2 = temp; + + System.out.println(); + + System.out.println("v1 = " + v1.getNomVille() + ", " + v1.getNbreHabitants() + ", " + v1.getNomPays()); + System.out.println("v2 = " + v2.getNomVille() + ", " + v2.getNbreHabitants() + ", " + v2.getNomPays()); + + System.out.println(); + + System.out.println("On change les nom de Ville"); + + v1.setNomVille("Hong Kong"); + v2.setNomVille("Dijbouti"); + + System.out.println(); + + System.out.println(v1.getNomVille() + ", " + v1.getNbreHabitants() + ", " + v1.getNomPays()); + System.out.println(v2.getNomVille() + ", " + v2.getNbreHabitants() + ", " + v2.getNomPays()); + + + System.out.println("\n ==== Passage à l'exo adresse ====\n"); + + Adresse adresse1 = new Adresse("rue toto", 77300); + Ville melun = new Ville("Melun", 15000, "France", 77300); + System.out.println("code postal = " + adresse1.getcodePostal()); + + melun.findVilleFromCodePostal(adresse1.getcodePostal()); + + adresse1.getNumero(); + } +} diff --git a/UTC503/25-02-17/java/cours/src/Ville.java b/UTC503/25-02-17/java/cours/src/Ville.java new file mode 100644 index 0000000..f2b4c50 --- /dev/null +++ b/UTC503/25-02-17/java/cours/src/Ville.java @@ -0,0 +1,68 @@ +public class Ville { + + private String nomVille; + private String nomPays; + private int nbreHabitants; + private int codePostal; + + public Ville(){ + + System.out.println("Création d'une ville par defaut"); + nomVille= "NomDeVilleParDefaut"; + nomPays = "NomDePaysParDefaut"; + nbreHabitants= 0; + codePostal= 00000; + } + + public Ville(String pNom, int pNbre, String pPays, int pCodePostal){ + System.out.println("Création d'une ville custom " + pNom); + nomVille= pNom; + nomPays = pPays; + nbreHabitants= pNbre; + codePostal = pCodePostal; + } + + public void findVilleFromCodePostal(int adresseCodePostal) { + + if(adresseCodePostal == this.codePostal){ + System.out.println("La ville du code postal " + adresseCodePostal + " est " + this.nomVille); + } + else{ + System.out.println("Le code postal " + adresseCodePostal + " ne correspond pas à la ville" + this.nomVille); + } + + } + + public int getNbreHabitants() { + return nbreHabitants; + } + + public void setNbreHabitants(int nbreHabitants) { + this.nbreHabitants = nbreHabitants; + } + + public String getNomPays() { + return nomPays; + } + + public void setNomPays(String nomPays) { + this.nomPays = nomPays; + } + + public String getNomVille() { + return nomVille; + } + + public void setNomVille(String nomVille) { + this.nomVille = nomVille; + } + + public int getCodePostal() { + return this.codePostal; + } + + public void setCodePostal(int codePostal) { + this.codePostal = codePostal; + } + +} diff --git a/UTC503/Cours/Cours1/Cours_1-P2-P18.pdf b/UTC503/Cours/Cours1/Cours_1-P2-P18.pdf new file mode 100644 index 0000000..4e39d7c Binary files /dev/null and b/UTC503/Cours/Cours1/Cours_1-P2-P18.pdf differ diff --git a/UTC503/Cours/Cours1/Cours_1_Partie2.pdf b/UTC503/Cours/Cours1/Cours_1_Partie2.pdf new file mode 100644 index 0000000..d569e53 Binary files /dev/null and b/UTC503/Cours/Cours1/Cours_1_Partie2.pdf differ diff --git a/UTC503/Cours/Cours2/Cours-2-Partie1.pdf b/UTC503/Cours/Cours2/Cours-2-Partie1.pdf new file mode 100644 index 0000000..95e808c Binary files /dev/null and b/UTC503/Cours/Cours2/Cours-2-Partie1.pdf differ diff --git a/UTC503/Cours/Cours2/Cours-2-Partie2.pdf b/UTC503/Cours/Cours2/Cours-2-Partie2.pdf new file mode 100644 index 0000000..88144b8 Binary files /dev/null and b/UTC503/Cours/Cours2/Cours-2-Partie2.pdf differ diff --git a/UTC503/Cours/Cours3/Cours-3-variables-Java.pdf b/UTC503/Cours/Cours3/Cours-3-variables-Java.pdf new file mode 100644 index 0000000..5cd98e3 Binary files /dev/null and b/UTC503/Cours/Cours3/Cours-3-variables-Java.pdf differ diff --git a/UTC503/Cours/Cours5/Cours-Tableaux.pdf b/UTC503/Cours/Cours5/Cours-Tableaux.pdf new file mode 100644 index 0000000..2fdeb76 Binary files /dev/null and b/UTC503/Cours/Cours5/Cours-Tableaux.pdf differ diff --git a/UTC503/Cours/Cours6/Cours-Fonctions-procedures.pdf b/UTC503/Cours/Cours6/Cours-Fonctions-procedures.pdf new file mode 100644 index 0000000..2103fcc Binary files /dev/null and b/UTC503/Cours/Cours6/Cours-Fonctions-procedures.pdf differ diff --git a/UTC503/Examen/exercice3/README.md b/UTC503/Examen/exercice3/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/Examen/exercice3/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/Examen/exercice3/bin/App.class b/UTC503/Examen/exercice3/bin/App.class new file mode 100644 index 0000000..fad4331 Binary files /dev/null and b/UTC503/Examen/exercice3/bin/App.class differ diff --git a/UTC503/Examen/exercice3/exercice3.jar b/UTC503/Examen/exercice3/exercice3.jar new file mode 100644 index 0000000..f37f93e Binary files /dev/null and b/UTC503/Examen/exercice3/exercice3.jar differ diff --git a/UTC503/Examen/exercice3/manifest.MF b/UTC503/Examen/exercice3/manifest.MF new file mode 100644 index 0000000..d33cc33 --- /dev/null +++ b/UTC503/Examen/exercice3/manifest.MF @@ -0,0 +1 @@ +Main-Class: App \ No newline at end of file diff --git a/UTC503/Examen/exercice3/src/App.java b/UTC503/Examen/exercice3/src/App.java new file mode 100644 index 0000000..60bb2c6 --- /dev/null +++ b/UTC503/Examen/exercice3/src/App.java @@ -0,0 +1,24 @@ +import java.util.Scanner; + +public class App { + public static void main(String[] args) throws Exception { + + // Utilisation de la bibliothèque Scanner pour lire les entrées de l'utilisateur + Scanner sc = new Scanner(System.in); + // Demande à l'utilisateur de donner un nombre positif + System.out.print("Donner un nombre positif : "); + // Lecture de l'entrée de l'utilisateur + int num = sc.nextInt(); + // Si le nombre est négatif, on affiche un message d'erreur et on termine le programme + if (num < 0) { + // Affichage d'un message d'erreur + System.out.println("svp positif"); + // Fin du programme avec un code d'erreur + System.exit(1); + } + // Calcul de la racine carrée du nombre + double racineDeNum = Math.sqrt(num); + // Affichage du résultat de la racine carrée de num + System.out.println("Sa racine carree est : " + racineDeNum); + } +} \ No newline at end of file diff --git a/UTC503/Examen/exercice4/README.md b/UTC503/Examen/exercice4/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/Examen/exercice4/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/Examen/exercice4/bin/App.class b/UTC503/Examen/exercice4/bin/App.class new file mode 100644 index 0000000..c2d5564 Binary files /dev/null and b/UTC503/Examen/exercice4/bin/App.class differ diff --git a/UTC503/Examen/exercice4/exercice4.jar b/UTC503/Examen/exercice4/exercice4.jar new file mode 100644 index 0000000..79e20c3 Binary files /dev/null and b/UTC503/Examen/exercice4/exercice4.jar differ diff --git a/UTC503/Examen/exercice4/manifest.MF b/UTC503/Examen/exercice4/manifest.MF new file mode 100644 index 0000000..d33cc33 --- /dev/null +++ b/UTC503/Examen/exercice4/manifest.MF @@ -0,0 +1 @@ +Main-Class: App \ No newline at end of file diff --git a/UTC503/Examen/exercice4/src/App.java b/UTC503/Examen/exercice4/src/App.java new file mode 100644 index 0000000..5df8e40 --- /dev/null +++ b/UTC503/Examen/exercice4/src/App.java @@ -0,0 +1,29 @@ +import java.util.ArrayList; + +public class App { + public static void main(String[] args) throws Exception { + + // Jeu d'essai + + ArrayList MAT = new ArrayList<>(); // Déclaration de l'attribut MAT + MAT.add(5); // Ajout de la saturation 5 + MAT.add(36); // Ajout de la saturation 36 + MAT.add(78); // Ajout de la saturation 78 + MAT.add(54); // Ajout de la saturation 54 + MAT.add(98); // Ajout de la saturation 98 + MAT.add(78); // Ajout de la saturation 78 + MAT.add(65); // Ajout de la saturation 65 + // Appel de la méthode luminosite + luminosite(MAT); // return la moyenne m des saturations + System.out.println(luminosite(MAT)); // Affichage de la moyenne m des saturations + } + + public static double luminosite(ArrayList MAT){ + int somme = 0; // Initialisation de la somme des saturations + for (int saturation : MAT) { // Pour toutes les saturation dans MAT + somme += saturation; // Ajout de la saturation à la somme + } + // Calcul de la moyenne et affectation à l'attribut moyenne + return (double) somme / MAT.size(); + } +} diff --git a/UTC503/Examen/exercice5/README.md b/UTC503/Examen/exercice5/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/UTC503/Examen/exercice5/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/UTC503/Examen/exercice5/bin/Apartment.class b/UTC503/Examen/exercice5/bin/Apartment.class new file mode 100644 index 0000000..fa1fedc Binary files /dev/null and b/UTC503/Examen/exercice5/bin/Apartment.class differ diff --git a/UTC503/Examen/exercice5/bin/App.class b/UTC503/Examen/exercice5/bin/App.class new file mode 100644 index 0000000..c237a68 Binary files /dev/null and b/UTC503/Examen/exercice5/bin/App.class differ diff --git a/UTC503/Examen/exercice5/bin/Door.class b/UTC503/Examen/exercice5/bin/Door.class new file mode 100644 index 0000000..4eca697 Binary files /dev/null and b/UTC503/Examen/exercice5/bin/Door.class differ diff --git a/UTC503/Examen/exercice5/bin/House.class b/UTC503/Examen/exercice5/bin/House.class new file mode 100644 index 0000000..e48e471 Binary files /dev/null and b/UTC503/Examen/exercice5/bin/House.class differ diff --git a/UTC503/Examen/exercice5/bin/Person.class b/UTC503/Examen/exercice5/bin/Person.class new file mode 100644 index 0000000..229d763 Binary files /dev/null and b/UTC503/Examen/exercice5/bin/Person.class differ diff --git a/UTC503/Examen/exercice5/exercice5.jar b/UTC503/Examen/exercice5/exercice5.jar new file mode 100644 index 0000000..4abb761 Binary files /dev/null and b/UTC503/Examen/exercice5/exercice5.jar differ diff --git a/UTC503/Examen/exercice5/manifest.MF b/UTC503/Examen/exercice5/manifest.MF new file mode 100644 index 0000000..d33cc33 --- /dev/null +++ b/UTC503/Examen/exercice5/manifest.MF @@ -0,0 +1 @@ +Main-Class: App \ No newline at end of file diff --git a/UTC503/Examen/exercice5/src/Apartment.java b/UTC503/Examen/exercice5/src/Apartment.java new file mode 100644 index 0000000..782071c --- /dev/null +++ b/UTC503/Examen/exercice5/src/Apartment.java @@ -0,0 +1,6 @@ +public class Apartment extends House { + + Apartment(String colorInput) { // constucteur de la classe Apartment qui attend un paramètre, la couleur + super(50, colorInput); // appel du constructeur de la classe mère avec deux paramètres + } +} diff --git a/UTC503/Examen/exercice5/src/App.java b/UTC503/Examen/exercice5/src/App.java new file mode 100644 index 0000000..4f57538 --- /dev/null +++ b/UTC503/Examen/exercice5/src/App.java @@ -0,0 +1,27 @@ +public class App { + public static void main(String[] args) throws Exception { + + // Jeu d'essai + + // Création d'une maison "house1" de 100m2 avec un porte de couleur jaune + House house1 = new House(100, "jaune"); + // Création d'un appartement "apartment1" avec une porte de couleur marron + Apartment apartment1 = new Apartment("marron"); + // Essai de la méthode display de la classe House + house1.display(); // affiche "Je suis une maison de 100m2, ma porte est de couleur jaune" + // Essai de la méthode display de la classe Apartment sous classe de House + apartment1.display(); // affiche "Je suis une maison de 50m2, ma porte est de couleur marron" + // Essai de la méthode display de la classe Door de la house1 + house1.getDoor().display(); // affiche "Je suis une porte, ma couleur est jaune" + // Essai de la méthode display de la classe Door de l'apartment1 + apartment1.getDoor().display(); // affiche "Je suis une porte, ma couleur est marron" + // Création d'une personne "person1" qui s'appelle Alice et qui habite dans la maison "house1" + Person person1 = new Person("Alice", house1); + // Création d'une personne "person2" qui s'appelle Bob et qui habite dans l'appartement "apartment1" + Person person2 = new Person("Bob", apartment1); + // Essai de la méthode display de la classe Person pour perso + person1.display(); // affiche "Je suis Alice et j'habite dans une maison de 100m2, sa porte est de couleur jaune" + // Essai de la méthode display de la classe Person pour perso2 + person2.display(); // affiche "Je suis Bob et j'habite dans une maison de 50m2, sa porte est de couleur marron" + } +} diff --git a/UTC503/Examen/exercice5/src/Door.java b/UTC503/Examen/exercice5/src/Door.java new file mode 100644 index 0000000..9fda938 --- /dev/null +++ b/UTC503/Examen/exercice5/src/Door.java @@ -0,0 +1,20 @@ +public class Door { + + private String color; // initialisation de la variable color + + Door(String colorInput) { // constucteur de la classe Door qui attend un paramètre + this.color = colorInput; // affectation de la valeur de colorInput à la variable color + } + + public void display() { // méthode display de la classe Door qui affiche un message + System.out.println("Je suis une porte, ma couleur est " + this.color); // Le message affiché + } + + public String getColor() { // méthode getColor de la classe Door qui retourne la valeur de la variable color + return color; // retourne la valeur de la variable color + } + + public void setColor(String color) { // méthode setColor de la classe Door qui affecte une valeur à la variable color + this.color = color; // affecte la valeur de color à la variable color + } +} diff --git a/UTC503/Examen/exercice5/src/House.java b/UTC503/Examen/exercice5/src/House.java new file mode 100644 index 0000000..d8e93e0 --- /dev/null +++ b/UTC503/Examen/exercice5/src/House.java @@ -0,0 +1,26 @@ +public class House { + + private int surface; // initialisation de la variable surface + private Door porte; // initialisation de la variable porte qui utilise la classe Door + + House(int surfaceInput, String colorInput) { // constucteur de la classe House qui attend deux paramètres + this.surface = surfaceInput; // affectation de la valeur de surfaceInput à la variable surface + this.porte = new Door(colorInput); // affectation de la valeur de colorInput à la variable porte + } + + public void display() { // méthode display de la classe House qui affiche un message + System.out.println("Je suis une maison, ma surface est de " + this.surface + " m2"); // Le message affiché + } + + public int getSurface() { // méthode getSurface de la classe House qui retourne la valeur de la variable surface + return this.surface; // retourne la valeur de la variable surface + } + + public void setSurface(int surface) { // méthode setSurface de la classe House qui affecte une valeur à la variable surface + this.surface = surface; // affecte la valeur de surface à la variable surface + } + + public Door getDoor() { // méthode getDoor de la classe House qui retourne la valeur de la variable porte + return this.porte; // retourne la valeur de la variable porte + } +} diff --git a/UTC503/Examen/exercice5/src/Person.java b/UTC503/Examen/exercice5/src/Person.java new file mode 100644 index 0000000..e530dec --- /dev/null +++ b/UTC503/Examen/exercice5/src/Person.java @@ -0,0 +1,21 @@ +public class Person { + + private String nom; //initialisation de la variale nom + private House maison; // initialisation de la variable maison qui utilise la classe House + + Person(String nomInput, House maisonInput) { // constructeur de la classe Person qui attend deux paramètres + this.nom = nomInput; // affectation de la valeur de nomInput à la variable nom + this.maison = maisonInput; // affectation de la valeur de maisonInput à la variable maison + } + + public void display() { // méthode display de la classe Person qui affiche un message + System.out.println( // Le message affiché + "Je suis " + + this.nom + + " et j'habite dans une maison de " + + this.maison.getSurface() + + "m2, sa porte est de couleur " + + this.maison.getDoor().getColor() + ); + } +} diff --git a/UTC503/README.md b/UTC503/README.md new file mode 100644 index 0000000..dc36282 --- /dev/null +++ b/UTC503/README.md @@ -0,0 +1,9 @@ +# UTC 503 Developpement + +* [14/10/24](./UTC503-14-10-24/) +* [06/11/24](./UTC503-06-11-24) +* [26/11/24](./UTC503-26-11-24) +* [16/12/24](./UTC503-16-12-24) +* [06/01/25](./UTC503-06-01-25) +* [28/01/25](./UTC503-28-01-25) +* [17/02/25](./UTC503-17-02-25) \ No newline at end of file diff --git a/UTC503/Revision/README.md b/UTC503/Revision/README.md new file mode 100644 index 0000000..5ae722f --- /dev/null +++ b/UTC503/Revision/README.md @@ -0,0 +1,233 @@ +# Révision 503 + +## Orienté objet + +### Notion d'héritage + +L'héritage permet de spécialiser une classe qui possédera non seulement les propriétés et méthodes de sa mère mais également d'autres méthodes spécifiques ou redéfinies. +Le terme est faire dériver la classe en une classe fille. Dans l'objet fille, on trouve: +- De nouvelles méthodes ou propriétés +- Des méthodes ou propriétés qui surchargent, c'est-à -dire redéfinissent celles de la classe mère. +- Les propriétés et méthodes de la classe mère qui n'ont pas été surchargées + +### Notion de polymorphisme + +Les objets sont dits polymorphes car ils possèdent plusieurs types: le type de leurs classes et les types des classes ascendantes. + +### Notion de transtypage + +Il est possible de forcer le programme à 'voir' un objet comme un type différent de son type initial, c'est le transtypage ou cast. Le transtypage ne modifie par l'objet mais indique seulement la façon de le voir. Il y a transtypage implicite de la fille vers la mère: une Voiture est implicitement +de type Véhicule. + +### Notion de Polymorphisme paramétrique + +Le terme polymorphisme est souvent associé par abus de langage au concept de polymorphisme paramétrique. Un objet peut comporter plusieurs méthodes de même nom et possédant des arguments différents. Ce sont des méthodes polymorphiques. + +### Un programme + +Un programme informatique est une séquence d'instructions qui spécifie étape par étape les opérations à effectuer pour obtenir un résultat. +Il est exprimé sous une forme qui permet de l'utiliser avec une machine comme un ordinateur pour exécuter les instructions. + +#### Étapes clés pour l'élaboration d'un programme + +* Analyse -> déterminer le problème à résoudre +* Conception -> réalisation d’un l’algorithme pour trouver une solution +* Développement -> traduction de l’algorithme en langage de programmation +* Mise au point -> Compilation (Traduction du code source du programme +vers le langage natif de la machine) et Tests, Correction d’erreurs et Maintenance + +### Les langages de programmation + +#### Langages de bas niveau + +Ce sont les différents ensembles d’instructions propres à chaque machine (SPARC/Sun, Intel/PC, etc). Appelés également langages cibles ou natifs. Ils sont codés en binaire et directement exécutables par chaque machine. + +#### Langages de haut niveau + +Ils fournissent des nombreuses constructions sophistiquées qui facilitent l’écriture des programmes (Ex : C, Ada, Pascal, Cobol, Java, OCaml, Python). Ils sont compréhensibles par les humains, mais pas directement exécutables par les machines. Un programme écrit en langage de haut niveau devra être traduit en langage machine avant son exécution. + +### Programmation Procédurale et Programmation Orientée-Objet + +#### Programmation procédurale +- Centrée sur les procédures (opérations): décomposition des fonctionnalités d'un programme en procédures qui vont s'exécuter séquentiellement. +- Couplage procédures/données. +- Ressemble peu à notre schéma de penser. +- Tend à générer du code "Spaghetti" + - La maintenance et l'ajout de nouvelles fonctionnalités demandent de modifier ou d'insérer des séquences dans ce qui existe déjà + - Peu devenir complexe très rapidement + - Modularité et abstraction absente (ou presque) + - Réutilisation ardue => "Couper-coller" = DANGER! + - Travail d'équipe difficile (peu modulaire), donc la qualité du code en souffre + +#### La programmation Orientée objet +- Centrée sur les données +- Tout tourne autour des "objets" qui sont des petits ensembles de données représentants leurs propriétés + +### Le concept Orienté objet + +- Le concept orienté objet veut une modélisation du monde réel via des objets: l'élément de décomposition unique est « l'OBJET ». +- L'objet se veut alors une représentation (abstraite) d'une "chose" (concrète) du monde réel. +- Un objet regroupe à la fois les données qui le caractérise et les actions qu'on peut effectuer sur lui. +- Un objet regroupe une partie statique (un ensemble de données) et une partie dynamique (un ensemble de procédures manipulant ces données) + +#### Notion de classe + +Une classe encapsule, c'est-à-dire regroupe des propriétés et des comportements. Par exemple, la classe Humain définit des propriétés ( deux bras, deux jambes...) et des comportements ( marcher, parler, voir...) + +En OO, les comportements sont appelés ***méthodes*** et les +propriétés ***variables d'instance***. + +#### Notion d'objet + +Un objet est une instance de classe, c'est-à-dire un exemplaire utilisable crée à partir de cette classe et en valorisant certaines propriétés + +Le concept de classe est abstrait alors que le concept d'objet est +fondamentalement concret: il est concevable de croiser des personnes +physiques, c'est-à-dire des instances d'Humain. + +## Java + +### Les variables : + +***differents types de variables utile*** + +``` +int nomDeLaVariable = 3 +double nomDeLaVariable = 3.5 +char nomDeLaVariable = 't' +String nomDeLaVariable = "Hello World" +``` + +### Les conditions : + +>Les exemple suivant suivant sont réaliser avec la condition suivante : si sexe = F alors "Il s'agit d'une femme", Sinon Si sexe = H alors "Il s'agit d'un homme" Sinon + +#### if / else / else if + +``` +if(sexe == 'F'){ // Si + System.out.println("Il s'agit d'une femme"); +} +else if(sexe == 'H'){ // Sinon si + System.out.println("Il s'agit d'un homme"); +} +else{ //Sinon + System.out.println("Sexe indéterminé"); +} +``` + +#### switch CASE + +``` +switch (sexe) { + case 'F': + System.out.println("Il s'agit d'une femme"); + break; + case 'H': + System.out.println("Il s'agit d'un homme"); + break; + default: + System.out.println("Sexe indéterminé"); + break; +} +``` + +### Les Boucles : + +>La Boucle à utilisé dépend de la situation et de la demande + +#### for + +***Pour*** i égale 1, ***tant que*** i est inferieur ou égale à 10, on ajoute 1 + +``` +for(int i = 1; i <= 10; i++){ + System.out.println(i); +} +``` + +#### while + +***Tant que*** i est inferieur ou égale à 10, on affiche i et on ajoute 1 à i + +``` +int i = 1; + +while (i <= 10) { + System.out.println(i); + i++ +} +``` + +#### Do while + +***Faire*** on affiche i et on ajoute 1 à i ***tant que*** i est inferieur ou égale à 10 + +**Cette méthode permet d'executer le code au moins une fois.** + +``` +int i = 1; + +do{ + System.out.println(i); + i++ +} while (i <= 10); +``` + +### Les Class : + +Utilisation d'une class : +``` +Ville ville = new Ville(); +Class (Ville) objet (ville) operateur (new) consturcteur (Ville()) +``` + +### Class (exemple Ville) : + +``` +public class Ville { + + private String nomVille; + private String nomPays; + private int nbreHabitants; + + public Ville(){ + System.out.println("Création d'une ville"); + nomVille= "toto"; + nomPays = "tata"; + nbreHabitants= 0; + } + + public Ville(String pNom, int pNbre, String pPays){ + System.out.println("Création d'une ville"); + nomVille= pNom; + nomPays = pPays; + nbreHabitants= pNbre; + } + + public int getNbreHabitants() { + return nbreHabitants; + } + + public String getNomPays() { + return nomPays; + } + + public String getNomVille() { + return nomVille; + } + + public void setNbreHabitants(int nbreHabitants) { + this.nbreHabitants = nbreHabitants; + } + + public void setNomPays(String nomPays) { + this.nomPays = nomPays; + } + + public void setNomVille(String nomVille) { + this.nomVille = nomVille; + } + +} +``` \ No newline at end of file diff --git a/UTC503/test.java b/UTC503/test.java new file mode 100644 index 0000000..985dd8c --- /dev/null +++ b/UTC503/test.java @@ -0,0 +1,159 @@ +//import java.util.Arrays; +import java.util.Scanner; + +class convertisseur{ + + // IP entrée par l'utilisateur + static String ipInput; + // Mask entré pas l'utilisateur + static String maskInput; + // IP converti en binaire + static String ipConvertToBinary; + // Mask converti en binaire + static String maskConvertToBinary; + + public static void main(String args[]){ + + // Récuprération de l'IP par l'utilisateur + Scanner scIP = new Scanner(System.in); + System.out.print("Entrez votre IP : "); + convertisseur.ipInput = scIP.nextLine(); + // convertion de l'ip en binaire et instanciation de la variable ip.Input + convertisseur.ipToBinary(convertisseur.ipInput); + + // Récuprération du mask par l'utilisateur + Scanner scMask = new Scanner(System.in); + System.out.print("Entrez votre Mask : "); + convertisseur.maskInput = scMask.nextLine(); + // convertion de l'ip en binaire et instanciation de la variable ip.Input + convertisseur.maskToBinary(convertisseur.maskInput); + + // Calcul de son adresse réseau + convertisseur.calculReseau(convertisseur.ipInput); + + // Calcul de son BroadCast + convertisseur.calculBroadcast(convertisseur.ipInput, convertisseur.ipConvertToBinary, convertisseur.maskConvertToBinary); + } + + public static void ipToBinary(String ipInput) { + + // Séparation de l'IP en 4 élément + String[] ipArray = ipInput.split("[.]"); + + String errorMessage = "L'ip est incorecte, merci de ne pas dépacer 255 et de ne rentrer que 4 nombres et de bien les séparer par un point"; + + //Vérifiation du nombre d'élément attendu + if(ipArray.length != 4){ + System.out.print(errorMessage); + System.exit(1); + } + + // Instanciation de 4 variables, une par élément + int ipFirstOctet = Integer.parseInt(ipArray[0]); + int ipSecondOctet = Integer.parseInt(ipArray[1]); + int ipThirdOctet = Integer.parseInt(ipArray[2]); + int ipLastOctet = Integer.parseInt(ipArray[3]); + + // Convertion des 4 variables + String ipFirstOctetToB = Integer.toBinaryString(ipFirstOctet); + String ipSecondOctetToB = Integer.toBinaryString(ipSecondOctet); + String ipThirdOctetToB = Integer.toBinaryString(ipThirdOctet); + String ipLastOctetToB = Integer.toBinaryString(ipLastOctet); + + + // if(ipFirstOctetToB.length() < 8 || ipSecondOctetToB.length() < 8 || ipThirdOctetToB.length() < 8 || ipLastOctetToB.length() < 8 ){ + // System.out.print(errorMessage); + // System.exit(1); + // } + if(ipFirstOctetToB.length() != 8){ + int reste = 8 - ipFirstOctetToB.length(); + for (int i=0; i<= reste; i++) { + ipFirstOctetToB = Integer.toString(i) + ipFirstOctetToB; + } + } + if(ipSecondOctetToB.length() != 8){ + int reste = 8 - ipSecondOctetToB.length(); + for (int i=0; i<= reste; i++) { + ipSecondOctetToB = Integer.toString(i) + ipSecondOctetToB; + } + } + if(ipThirdOctetToB.length() != 8){ + int reste = 8 - ipThirdOctetToB.length(); + for (int i=0; i<= reste; i++) { + ipThirdOctetToB = Integer.toString(0) + ipThirdOctetToB; + } + } + if(ipLastOctetToB.length() != 8){ + int reste = 8 - ipLastOctetToB.length(); + for (int i=0; i<= reste; i++) { + ipLastOctetToB = Integer.toString(0) + ipLastOctetToB; + } + } + + convertisseur.ipConvertToBinary = ipFirstOctetToB+"."+ipSecondOctetToB+"."+ipThirdOctetToB+"."+ipLastOctetToB; + System.out.println("L'ip en binaire est : "+convertisseur.ipConvertToBinary); + } + + public static void maskToBinary(String maskInput) { + + String regex = "[.]"; + String[] ip = maskInput.split(regex); + + int ipFirstOctet = Integer.parseInt(ip[0]); + int ipSecondOctet = Integer.parseInt(ip[1]); + int ipThirdOctet = Integer.parseInt(ip[2]); + int ipLastOctet = Integer.parseInt(ip[3]); + + String ipFirstOctetToB = Integer.toBinaryString(ipFirstOctet); + String ipSecondOctetToB = Integer.toBinaryString(ipSecondOctet); + String ipThirdOctetToB = Integer.toBinaryString(ipThirdOctet); + String ipLastOctetToB = Integer.toBinaryString(ipLastOctet); + + if(ipFirstOctetToB.length() != 8){ + int reste = 8 - ipFirstOctetToB.length(); + for (int i=0; i<= reste; i++) { + ipFirstOctetToB = Integer.toString(i) + ipFirstOctetToB; + } + } + if(ipSecondOctetToB.length() != 8){ + int reste = 8 - ipSecondOctetToB.length(); + for (int i=0; i<= reste; i++) { + ipSecondOctetToB = Integer.toString(i) + ipSecondOctetToB; + } + } + if(ipThirdOctetToB.length() != 8){ + int reste = 8 - ipThirdOctetToB.length(); + for (int i=0; i<= reste; i++) { + ipThirdOctetToB = Integer.toString(0) + ipThirdOctetToB; + } + } + if(ipLastOctetToB.length() != 8){ + int reste = 8 - ipLastOctetToB.length(); + for (int i=0; i<= reste; i++) { + ipLastOctetToB = Integer.toString(0) + ipLastOctetToB; + } + } + + convertisseur.maskConvertToBinary = ipFirstOctetToB+"."+ipSecondOctetToB+"."+ipThirdOctetToB+"."+ipLastOctetToB; + + System.out.println("Le Mask en binaire est : "+convertisseur.maskConvertToBinary); + } + + public static void calculReseau(String ipInput){ + + String[] ipArray = ipInput.split("[.]"); + + // Instanciation de 4 variables, une par élément + int ipFirstOctet = Integer.parseInt(ipArray[0]); + int ipSecondOctet = Integer.parseInt(ipArray[1]); + int ipThirdOctet = Integer.parseInt(ipArray[2]); + + System.out.println("L'adresse réseau de l'ip est : "+ipFirstOctet+"."+ipSecondOctet+"."+ipThirdOctet+"."+0); + } + + public static void calculBroadcast(String ipInput, String ipConvertToBinary, String maskConvertToBinary){ + + + + } +} diff --git a/UTC504/24-10-15/Cours2_Partie1_Definitions (1).pdf b/UTC504/24-10-15/Cours2_Partie1_Definitions (1).pdf new file mode 100644 index 0000000..217beda Binary files /dev/null and b/UTC504/24-10-15/Cours2_Partie1_Definitions (1).pdf differ diff --git a/UTC504/24-10-15/Cours2_Partie2-1-7.pdf b/UTC504/24-10-15/Cours2_Partie2-1-7.pdf new file mode 100644 index 0000000..e0ff09d Binary files /dev/null and b/UTC504/24-10-15/Cours2_Partie2-1-7.pdf differ diff --git a/UTC504/24-10-15/Exercice MiniMonde UTC504.pdf b/UTC504/24-10-15/Exercice MiniMonde UTC504.pdf new file mode 100644 index 0000000..5839e41 Binary files /dev/null and b/UTC504/24-10-15/Exercice MiniMonde UTC504.pdf differ diff --git a/UTC504/24-10-15/MCD-livres.png b/UTC504/24-10-15/MCD-livres.png new file mode 100644 index 0000000..d793e44 Binary files /dev/null and b/UTC504/24-10-15/MCD-livres.png differ diff --git a/UTC504/24-10-15/README.md b/UTC504/24-10-15/README.md new file mode 100644 index 0000000..ff6e47b --- /dev/null +++ b/UTC504/24-10-15/README.md @@ -0,0 +1,124 @@ +# UTC504-15-10-2024 + +Cour de tron commun, 28 heures. + +But -> se familiariser avec un système d'information et principalement des bases de données. +La conception, son exploitation et la sécurisation d'une base de données. + +Qu'est ce qu'un système d'information : +***L'ensemble des ressources, matériels et imatériel necessaire et suffisante pour assurer le bon fonctionnement d'une structure.*** + +L'urbanisation des SI : + +L'urbanisation du système d'information d'une entité ou d'une organisation, qui peut être une entreprise ou une administration, est une discipline d’ingénierie informatique consistant à faire évoluer le système d'information (SI) de celle-ci afin qu'il soutienne et accompagne efficacement les missions de ladite organisation et anticipe ses transformations1. L'urbanisation du SI ne fait pas table rase du passé mais tient compte de l'existant et permet de mieux envisager les évolutions ou contraintes internes et externes affectant le SI, en s'appuyant le cas échéant sur des opportunités technologiques. Les concepts manipulés s'apparentent à ceux de l'urbanisation de l'habitat humain (organisation des villes, du territoire), concepts qui ont été réutilisés en informatique2 pour formaliser ou modéliser la réingénierie du système d'information (SI) + +![image_diagrame](iaas_focus-paas-saas-diagram.png) + + +### On-site : les infrastructures sont sur sites.(DGFIP) + +### IaaS : Infrastructure as a service(AWS, Orange BZ) +L'IaaS est un service de cloud computing offrant des ressources informatiques matérielles (stockage, réseau, baies de serveurs) au sein d'un environnement virtualisé, par le biais d'Internet ou d'une autre connexion. + +**Service Cloud** + +Deux type de contrat : +* public : On partage les baies avec d'autre clients. +* privée : On privétise les structures louée. + +C'est le système le plus demandé par les entreprises. + +### PaaS : Platform as a service + + + +### Saas : Software as a Service + +Saas privée est le plus sécuriser. Car ton infrasructure dépend des services proposé et donc de leur sécurité. Ils se doivent d'être le plus sécurisé et à jours possible. + + + +## Base de données + +* Qu'est ce qu'une base de données ? + +Une base de donnée est est un enssemble de données organisé de manière structurés, organisé, et sécurisé. + +* Les principales fonctions d'une base de données ? + +-Stocker l'information de façon fiable + +-Traiter de grand volumes de données + +-Traiter rapidement kes données + +-Sécuriser les accès aux données + +-Controlle la qualité des données + +-Partager les données + +-Rendre accécible les données en réseau + +Le Data mining est la pratique consistant à rechercher automatiquement de grandes quantités de données afin de découvrir des tendances et des modèles qui vont au-delà de la simple analyse. + +* Une base de donnée relationnelle + +La base de données permet d'organiser les données en tables (appellé relation) +Chaque case de la table continent une information atomique +Chaque ligne correspond à un objet. +Chaque colonne correspond à une propriété. + +* Une base de donnée orienté objet + +C'est un type de base de donnée qui a explosé ces dernières année (block chaine) + +* SGBD + + + +* Exemples de SGBD + +Oracle, Postgres, MySQL, MariaDB, MongoDB.... + +## étape clé + +Analyse -> extraire -> structurer (MCD ou MEA) -> MLD -> MPD + +## MCD (modèle conceptuel de données) + +![image](MCD-livres.png) + +**Une entité** représente un objet ou un concept spécifique qui peut être stocké et manipulé dans une base de données + +**Un attribut** est une caractéristique d'une entité susceptible d'être enregistrée dans la base de données. Par exemple, une personne (entité), son nom et son adresse (des attributs). Les attributs sont également appelés des champs ou des colonnes. Dans un MCD un attribut sera toujours souligé + +**L'Identifiant** est une propriété unique et soulignée qui est présente dans les entités d'une modélisation MCD Merise. + +**Une association** ou relation est donc la représentation d’une liaison logique entre plusieurs entités. +- **La cardinalité** d'une association permet de représenter le nombre minimum et maximum d'instances qui sont autorisées à participer à la relation. La cardinalité est définie pour les deux sens de la relation. +- **Les attributs** d'une association ,l'emprunt d'un livre par une personne à une certaine date par exemple. +- **le type** d'une association (1,0 ou 0,N etc) + + +>ORM : Un mapping objet-relationnel (en anglais object-relational mapping ou ORM) est un type de programme informatique qui se place en interface entre un programme applicatif et une base de données relationnelle pour simuler une base de données orientée objet. + +## Correction Exo Mini Monde + +Considérons la BD ENTREPRISE qui contient les données sur les employés, les services et les projets d’une société. Suite à la collecte de l’analyse des besoins, les +concepteurs fournissent la définition suivante du « minimonde » : + +* La société est organisée en services. Chaque service a un nom et un numéro +uniques et est dirigé par un employé unique. +* Un service contrôle un certain nombre de projets, chacun d’entre eux ayant un nom, un numéro et une durée. Un projet ne peut être contrôlé que par un seul service. +* Le nom de chaque employé, son numéro de sécurité sociale, son adresse, son salaire, son sexe et sa date de naissance sont mémorisés. Un employé est affecté à un service, mais peut travailler sur plusieurs projets qui ne sont pas forcément contrôlés par le même service. Le volume du travail d’un employé sur chaque projet est mémorisé.Le supérieur immédiat de chaque employé est lui aussi mémorisé. + +Vous allez identifier les entités de la base de données Entreprise ainsi que les +attributs. + +| Entités | Attributs | +| :---------------: | :---------------: | +| SERVICES | nom, numéro uniques, un employé unique | +| PROJETS | nom, numéro, durée, un seul service | +| EMPLOYE | numéro de Sécurité social, adresse, salaire, sexe, dateDeNaissance, IdentifiantSupérieurImmediat | +| SUPERIEUR_IMMEDIAT |numéro de Sécurité social, adresse, salaire, sexe, dateDeNaissance, IdentifiantSupérieurImmediat | \ No newline at end of file diff --git a/UTC504/24-10-15/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf b/UTC504/24-10-15/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf new file mode 100644 index 0000000..25a0ef9 Binary files /dev/null and b/UTC504/24-10-15/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf differ diff --git a/UTC504/24-10-15/iaas_focus-paas-saas-diagram.png b/UTC504/24-10-15/iaas_focus-paas-saas-diagram.png new file mode 100644 index 0000000..d3b58ec Binary files /dev/null and b/UTC504/24-10-15/iaas_focus-paas-saas-diagram.png differ diff --git a/UTC504/24-10-16/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail – Microsoft​ Edge.png b/UTC504/24-10-16/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail – Microsoft​ Edge.png new file mode 100644 index 0000000..3ff353a Binary files /dev/null and b/UTC504/24-10-16/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail – Microsoft​ Edge.png differ diff --git a/UTC504/24-10-16/Cours_2.pdf b/UTC504/24-10-16/Cours_2.pdf new file mode 100644 index 0000000..c228531 Binary files /dev/null and b/UTC504/24-10-16/Cours_2.pdf differ diff --git a/UTC504/24-10-16/DB-Entreprise1.loo b/UTC504/24-10-16/DB-Entreprise1.loo new file mode 100644 index 0000000..47bb752 Binary files /dev/null and b/UTC504/24-10-16/DB-Entreprise1.loo differ diff --git a/UTC504/24-10-16/README.md b/UTC504/24-10-16/README.md new file mode 100644 index 0000000..ad32a1b --- /dev/null +++ b/UTC504/24-10-16/README.md @@ -0,0 +1,48 @@ +# UTC504-16-10-2024 + +## Les associations + +C'est une liaison qui va nous permetrer de créer un sens entre les entiters. + +Elle peuvent t'être porteuse d'informations +* les cadinalité +* les attributs +* les contraintes (CIF/CIM) + +### Les cardinalités + +Exprime la façon dont sont associées les entités. +Elle s'emprime toujours par un minimum et un maximum. + +**Les combinaisons possible :** + +* 0,1 -> minimum 0, maximum 1 +* 0,n -> minimum 0, maximum oo +* 1,1 -> minimum 1, maximum 1 +* 1,n -> minimum 1, maximum oo +* n,n -> minimum x, maximum x +* n,m -> minimum x, maximum y + +Une association peut-avoir des attribut. Le principe de base d'un atribut dans une association c'est d'avoir une information qui concerne les deux tables. + +### Atribut des associations + +Toute relations binaires (association entre deux table), avec cardinalité 1,1 ne peuvent être porteuses d'attribut dans cette partis. + +### Association plurielle + +2 Associations differentes qui relie 2 entiters. + +### Association reflexive + +Association qui va nous ramener vers la table. + +### Associations n-aires / ternaire + +Association ternaire (3 entités), il faut les éviter le plus possible si elles sont superieur à 3 entiter. +Boucle fermer entre 3 entiter et 3 associations. +On peut a la place utiliser 3 entiter et seulement 1 association. + +### Entité faible + +Entité qui ne peut avoir un sens seulement que si elle est lié a une autre entité. \ No newline at end of file diff --git a/UTC504/24-10-16/Screenshot_20241016_105317.png b/UTC504/24-10-16/Screenshot_20241016_105317.png new file mode 100644 index 0000000..8d7e294 Binary files /dev/null and b/UTC504/24-10-16/Screenshot_20241016_105317.png differ diff --git a/UTC504/24-10-16/aternat.lo1 b/UTC504/24-10-16/aternat.lo1 new file mode 100644 index 0000000..9a9b041 Binary files /dev/null and b/UTC504/24-10-16/aternat.lo1 differ diff --git a/UTC504/24-10-16/aternat.loo b/UTC504/24-10-16/aternat.loo new file mode 100644 index 0000000..2569ddf Binary files /dev/null and b/UTC504/24-10-16/aternat.loo differ diff --git a/UTC504/24-11-06/Exo1.odt b/UTC504/24-11-06/Exo1.odt new file mode 100644 index 0000000..d2a8dc2 Binary files /dev/null and b/UTC504/24-11-06/Exo1.odt differ diff --git a/UTC504/24-11-06/README.md b/UTC504/24-11-06/README.md new file mode 100644 index 0000000..8790934 --- /dev/null +++ b/UTC504/24-11-06/README.md @@ -0,0 +1,2 @@ +# UTC 504-15-10-2024 + diff --git a/UTC504/24-11-06/utec.sql b/UTC504/24-11-06/utec.sql new file mode 100644 index 0000000..677e445 --- /dev/null +++ b/UTC504/24-11-06/utec.sql @@ -0,0 +1,68 @@ +-- Adminer 4.7.5 MySQL dump + +SET NAMES utf8; +SET time_zone = '+00:00'; +SET foreign_key_checks = 0; +SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; + +SET NAMES utf8mb4; + +DROP TABLE IF EXISTS `etablissement`; +CREATE TABLE `etablissement` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL, + `adresse` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `telephone` int(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `fax` in(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +DROP TABLE IF EXISTS `formation`; +CREATE TABLE `formation` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'La date de création du type', + `updated_at` timestamp NULL DEFAULT NULL COMMENT 'La date de la dernière mise à jour du type', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + + +DROP TABLE IF EXISTS `personnel`; +CREATE TABLE `personnel` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `prenom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'La date de création du type', + `updated_at` timestamp NULL DEFAULT NULL COMMENT 'La date de la dernière mise à jour du type', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + + +DROP TABLE IF EXISTS `eleve`; +CREATE TABLE `eleve` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `prenom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'La date de création du type', + `updated_at` timestamp NULL DEFAULT NULL COMMENT 'La date de la dernière mise à jour du type', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +DROP TABLE IF EXISTS `entreprise`; +CREATE TABLE `entreprise` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `prenom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `nom` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Le nom du type', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'La date de création du type', + `updated_at` timestamp NULL DEFAULT NULL COMMENT 'La date de la dernière mise à jour du type', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + + + +-- 2020-04-10 22:54:29 \ No newline at end of file diff --git a/UTC504/24-11-27/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf b/UTC504/24-11-27/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf new file mode 100644 index 0000000..5b82102 Binary files /dev/null and b/UTC504/24-11-27/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf differ diff --git a/UTC504/24-11-27/README.md b/UTC504/24-11-27/README.md new file mode 100644 index 0000000..77ac610 --- /dev/null +++ b/UTC504/24-11-27/README.md @@ -0,0 +1,20 @@ +# UTC 504-27-11-2024 + +## Héritage + +Un indentifiant unique. +un sous-ensembles spécialisation, sans indentifiant. + +## Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf + +### Exemple 1 : + +![exemple1](./exemple1.png) + +### Exemple 2 : + +![exemple1](./exemple2.png) + +### Exemple 3 : + +![exemple1](./exemple3.png) \ No newline at end of file diff --git a/UTC504/24-11-27/exemple1.png b/UTC504/24-11-27/exemple1.png new file mode 100644 index 0000000..0b4e967 Binary files /dev/null and b/UTC504/24-11-27/exemple1.png differ diff --git a/UTC504/24-11-27/exemple2.png b/UTC504/24-11-27/exemple2.png new file mode 100644 index 0000000..62246a3 Binary files /dev/null and b/UTC504/24-11-27/exemple2.png differ diff --git a/UTC504/24-11-27/exemple3.png b/UTC504/24-11-27/exemple3.png new file mode 100644 index 0000000..9d41c2f Binary files /dev/null and b/UTC504/24-11-27/exemple3.png differ diff --git a/UTC504/24-11-27/exercice1.png b/UTC504/24-11-27/exercice1.png new file mode 100644 index 0000000..1be8248 Binary files /dev/null and b/UTC504/24-11-27/exercice1.png differ diff --git a/UTC504/24-11-27/utec2.png b/UTC504/24-11-27/utec2.png new file mode 100644 index 0000000..d759089 Binary files /dev/null and b/UTC504/24-11-27/utec2.png differ diff --git a/UTC504/25-01-09/UTC504-Notions-SQL-PhpMyAdmin.md b/UTC504/25-01-09/UTC504-Notions-SQL-PhpMyAdmin.md new file mode 100644 index 0000000..55fd261 --- /dev/null +++ b/UTC504/25-01-09/UTC504-Notions-SQL-PhpMyAdmin.md @@ -0,0 +1,72 @@ + +# UTC504-Notions-SQL-PhpMyAdmin +> Guillaume SANCHEZ, Tom BAZIRE, Anthony MVAKANGA +## Les solutions pour créer une BDD : +Plusieurs possibilités s'offrent à nous. Tout d'abord à la main, en écrivant directement dans un terminal ou dans un fichier .sql à importer. + +Exemple (MySQL/MariaDB) : +``` +CREATE DATABASE 'data_base_name'; +``` +Une seconde solution est d'utiliser un outil de gestion de base de données comme phpMyadmin, Adminer, sqldeveloper. + +Exemple de création de base de données avec phpMyAdmin : + + ![create base](https://i.postimg.cc/y8KtrDFZ/Capture-d-cran-du-2025-01-09-15-00-26.png) + On peut également utiliser un ORM (Object-Relational Mapping). Cela permet de faire le lien entre les objets de ton code et les données de ta base de donées. Je n'en connais que certaines utiliser dans le web comme par exmple sequelize pour node.js(javascript) Eloquent pour laravel (php) ou encore doctrine pour symphony (php). + +En plus de pouvoir créer et gérer la structure d'une base de donnée d'un projet, ces outils permetes de générer pour la plupars d'entre eux de fausse donnée afin de remplir les base de donneés et de réasliser des test reels avec des donnée fictives. + +## Définir SQL, MySQL, PhpMyadmin + +**SQL** (sigle pour Structured Query Language, « langage de requêtes structurées ») est un langage de programmation standard spécialement conçu pour stocker, extraire, gérer ou manipuler les données à l'intérieur d'un système de gestion de bases de données relationnelles (SGBDR)1234. Il permet d'effectuer des opérations telles que la création, la lecture, la mise à jour et la suppression de données. + +**MySQL** est un système de gestion de bases de données relationnelles SQL open source développé et supporté par Oracle.MySQL n’est qu’un système populaire qui peut stocker et gérer ces données pour vous, et c’est une solution de base de données particulièrement populaire pour les sites WordPress + +**MariaDB** est un système de gestion de base de données relationnelles. Après le rachat de MySQL par Sun Microsystems, puis de Sun par Oracle Corporation, son fondateur (Michael Widenius) démissionne pour lancer une version alternative, sous licence GPL et 100% compatible avec MySQL. Il s'agit donc d'un fork plus communautaire et ouvert, et 100% compatible MySQL. + +**phpMyAdmin** (PMA) est une application Web de gestion pour les systèmes de gestion de base de données MySQL et MariaDB, réalisée principalement en PHP et distribuée sous licence GNU GPL. Il s'agit de l'une des plus célèbres interfaces pour gérer une base de données MySQL sur un serveur PHP. + +## Installation de PhpMyAdmin + +Sous Windows, on install une solution comme WAMPP ou XAMPP. + +Voici les commandes sous linux (debian) afin d'installer un serveur web de A à Z avec Apache2, Php, phpMyAdmin et MariaDB: + +### Apache +``` +sudo apt install apache2 +``` +### Php +``` +sudo apt install php php-common php-cli +php-mysql libapache2-mod-php php-mbstring php-json php-xml +``` +### MariaDB (ou MySQL) +``` +sudo apt install mariadb-server +``` +### Création d'un utilisateur + +>pour gérer la base de données et éviter de tout faire avec l'utilisateur root. + +pour se connecter au service : `sudo mariadb` +``` +CREATE USER 'toto'@'localhost' IDENTIFIED BY 'password'; +GRANT ALL PRIVILEGES ON *.* TO 'toto'@'localhost' WITH GRANT OPTION; +``` +### PhpMyAdmin + +``` +sudo apt install phpmyadmin +``` +### Configuration de PhpMyAdmin + +Une fois l'installation de PMA fini, lancer c'est 3 lignes afin de le configurer avec Apache 2: +``` +sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf +sudo a2enconf phpmyadmin.conf +sudo systemctl reload apache2.service +``` + +On peut ensuite accéder à phpMyAdmin via http://localhost/phpmyadmin diff --git a/UTC504/25-01-09/UTC504-Notions-SQL-PhpMyAdmin.pdf b/UTC504/25-01-09/UTC504-Notions-SQL-PhpMyAdmin.pdf new file mode 100644 index 0000000..989186a Binary files /dev/null and b/UTC504/25-01-09/UTC504-Notions-SQL-PhpMyAdmin.pdf differ diff --git a/UTC504/25-01-30/README.md b/UTC504/25-01-30/README.md new file mode 100644 index 0000000..06de6a8 --- /dev/null +++ b/UTC504/25-01-30/README.md @@ -0,0 +1,22 @@ +# UTC 504 30/01/2024 + + +``` +Frontend + | + v +Backend -> Traitement -> Langage fonctionnel + | + v + BDD +``` + +## SQL + +3 tables : + +Eleves : (NomElv, AdrElv, VilleElv), + +Matières : (NomMat, Coef, Intitule), + +Notes : (NomElv, NomMat, Date, Note). \ No newline at end of file diff --git a/UTC504/25-02-19/README.md b/UTC504/25-02-19/README.md new file mode 100644 index 0000000..a3759cb --- /dev/null +++ b/UTC504/25-02-19/README.md @@ -0,0 +1,15 @@ +# UTC 504 19/02/25 + +## Le Diagrame de Classes (MPD) + +MCD -> MLD -> MPD + +MCD = Model conceptuel de données (voir cours sur MCD) + +MLD = Modèle Logique de données + +## MLD + +CIF contrainte d'integrité fonctionnel = 1:1 +CIM contrainte d'intégrité multipe = n + diff --git a/UTC504/25-02-19/TD1.md b/UTC504/25-02-19/TD1.md new file mode 100644 index 0000000..3e84eba --- /dev/null +++ b/UTC504/25-02-19/TD1.md @@ -0,0 +1,32 @@ +# Exercice 1 : passer du MCD au MLD + +``` +Coureur +ClePrimNuméro de coureur +NomCoureur +CleSecCodePays +CleSecCodeEquipe + +Pays +ClePrimCodePays +NomsPays + +Equipe +ClePrimCodeEquipe +NomEquipe +DirecteurSportif + +Etape +NuméroEtape +Date +VilleDepart +VilleArrivee +NbKm + +Participation +ClePrimCodeParticipation +TempsRealise +CleSecCoureur +CleSecEtape + +``` \ No newline at end of file diff --git a/UTC504/25-02-19/TD1.png b/UTC504/25-02-19/TD1.png new file mode 100644 index 0000000..ddab227 Binary files /dev/null and b/UTC504/25-02-19/TD1.png differ diff --git a/UTC504/25-02-19/TD1_Passage_MCD_MLD.png b/UTC504/25-02-19/TD1_Passage_MCD_MLD.png new file mode 100644 index 0000000..2abacc1 Binary files /dev/null and b/UTC504/25-02-19/TD1_Passage_MCD_MLD.png differ diff --git a/UTC504/25-02-19/TD2.md b/UTC504/25-02-19/TD2.md new file mode 100644 index 0000000..567c7fd --- /dev/null +++ b/UTC504/25-02-19/TD2.md @@ -0,0 +1,24 @@ +# Exercice 2 : passer du MCD au MLD + +``` +Facture +ClePrimNumFacture +DateFacture +CleSecNumClient + +Client +ClePrimNumClient +NomClient +AdresseClient + +Produit +ClePrimRefProd +LibProd +PUHTProd + +Concerne +ClePrimConcerne +Qté +CleSecFacture +CleSeProduit +``` \ No newline at end of file diff --git a/UTC504/25-02-19/TD2.png b/UTC504/25-02-19/TD2.png new file mode 100644 index 0000000..00895f4 Binary files /dev/null and b/UTC504/25-02-19/TD2.png differ diff --git a/UTC504/25-02-19/TD2_Passage_MCD_MLD.png b/UTC504/25-02-19/TD2_Passage_MCD_MLD.png new file mode 100644 index 0000000..46e5820 Binary files /dev/null and b/UTC504/25-02-19/TD2_Passage_MCD_MLD.png differ diff --git a/UTC504/25-02-19/TD3.md b/UTC504/25-02-19/TD3.md new file mode 100644 index 0000000..501972a --- /dev/null +++ b/UTC504/25-02-19/TD3.md @@ -0,0 +1,10 @@ +# TD3 Passage d'un modèle conceptuel au modèle physique + +>Antoine DECABOOTER HOLLEMAN et Guillaume Sanchez + +## Que signifie le X inscrit dans le symbole d'héritage ? + +le X signifie Exclusion + +## Validez ou pas les assertions induites de manière explicite ou implicite par cet héritage muni d'une contrainte ? + diff --git a/UTC504/25-02-19/TD3_Passage_MCD_MLD_MPD.pdf b/UTC504/25-02-19/TD3_Passage_MCD_MLD_MPD.pdf new file mode 100644 index 0000000..2907fd0 Binary files /dev/null and b/UTC504/25-02-19/TD3_Passage_MCD_MLD_MPD.pdf differ diff --git a/UTC504/Cours/Cours1/Cours2_Partie1_Definitions (1).pdf b/UTC504/Cours/Cours1/Cours2_Partie1_Definitions (1).pdf new file mode 100644 index 0000000..217beda Binary files /dev/null and b/UTC504/Cours/Cours1/Cours2_Partie1_Definitions (1).pdf differ diff --git a/UTC504/Cours/Cours1/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf b/UTC504/Cours/Cours1/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf new file mode 100644 index 0000000..25a0ef9 Binary files /dev/null and b/UTC504/Cours/Cours1/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf differ diff --git a/UTC504/Cours/Cours1/iaas_focus-paas-saas-diagram-1200x1046 (1).png b/UTC504/Cours/Cours1/iaas_focus-paas-saas-diagram-1200x1046 (1).png new file mode 100644 index 0000000..d3b58ec Binary files /dev/null and b/UTC504/Cours/Cours1/iaas_focus-paas-saas-diagram-1200x1046 (1).png differ diff --git a/UTC504/Cours/Cours2/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail тАУ MicrosoftтАЛ Edge.png b/UTC504/Cours/Cours2/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail тАУ MicrosoftтАЛ Edge.png new file mode 100644 index 0000000..3ff353a Binary files /dev/null and b/UTC504/Cours/Cours2/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail тАУ MicrosoftтАЛ Edge.png differ diff --git a/UTC504/Cours/Cours2/Cours_2.pdf b/UTC504/Cours/Cours2/Cours_2.pdf new file mode 100644 index 0000000..2fa6ac8 Binary files /dev/null and b/UTC504/Cours/Cours2/Cours_2.pdf differ diff --git a/UTC504/Cours/Cours3/BDD_Utec.xlsx b/UTC504/Cours/Cours3/BDD_Utec.xlsx new file mode 100644 index 0000000..815f3f7 Binary files /dev/null and b/UTC504/Cours/Cours3/BDD_Utec.xlsx differ diff --git a/UTC504/Cours/Cours3/Besoins_BDD_UTEC.docx b/UTC504/Cours/Cours3/Besoins_BDD_UTEC.docx new file mode 100644 index 0000000..9792c2c Binary files /dev/null and b/UTC504/Cours/Cours3/Besoins_BDD_UTEC.docx differ diff --git a/UTC504/Cours/Cours4/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf b/UTC504/Cours/Cours4/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf new file mode 100644 index 0000000..5b82102 Binary files /dev/null and b/UTC504/Cours/Cours4/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf differ diff --git a/UTC504/Cours/Cours4/Cours_2_Partie2_SI_Gen_Speci.pdf b/UTC504/Cours/Cours4/Cours_2_Partie2_SI_Gen_Speci.pdf new file mode 100644 index 0000000..d987d5d Binary files /dev/null and b/UTC504/Cours/Cours4/Cours_2_Partie2_SI_Gen_Speci.pdf differ diff --git a/UTC504/Cours/Cours5/Cours5.docx b/UTC504/Cours/Cours5/Cours5.docx new file mode 100644 index 0000000..22bc420 Binary files /dev/null and b/UTC504/Cours/Cours5/Cours5.docx differ diff --git a/UTC504/Cours/Cours6/PhPmyAdmin-1.pdf b/UTC504/Cours/Cours6/PhPmyAdmin-1.pdf new file mode 100644 index 0000000..e2c1079 Binary files /dev/null and b/UTC504/Cours/Cours6/PhPmyAdmin-1.pdf differ diff --git a/UTC504/Cours/Cours7/SQL-cours-applications.pdf b/UTC504/Cours/Cours7/SQL-cours-applications.pdf new file mode 100644 index 0000000..03750b7 Binary files /dev/null and b/UTC504/Cours/Cours7/SQL-cours-applications.pdf differ diff --git a/UTC504/Cours/Cours7/Tableau_Operateurs_SQL.png b/UTC504/Cours/Cours7/Tableau_Operateurs_SQL.png new file mode 100644 index 0000000..d4bcab1 Binary files /dev/null and b/UTC504/Cours/Cours7/Tableau_Operateurs_SQL.png differ diff --git a/UTC504/Cours/Cours8/Regles_Passage_MCD_MLD (1).pdf b/UTC504/Cours/Cours8/Regles_Passage_MCD_MLD (1).pdf new file mode 100644 index 0000000..1e215b2 Binary files /dev/null and b/UTC504/Cours/Cours8/Regles_Passage_MCD_MLD (1).pdf differ diff --git a/UTC504/Cours/Cours8/TD1_Passage_MCD_MLD.png b/UTC504/Cours/Cours8/TD1_Passage_MCD_MLD.png new file mode 100644 index 0000000..2abacc1 Binary files /dev/null and b/UTC504/Cours/Cours8/TD1_Passage_MCD_MLD.png differ diff --git a/UTC504/Cours/Cours8/TD1_Passage_MCD_MLD_Correction.png b/UTC504/Cours/Cours8/TD1_Passage_MCD_MLD_Correction.png new file mode 100644 index 0000000..fe63348 Binary files /dev/null and b/UTC504/Cours/Cours8/TD1_Passage_MCD_MLD_Correction.png differ diff --git a/UTC504/Cours/Cours8/TD2_Passage_MCD_MLD.png b/UTC504/Cours/Cours8/TD2_Passage_MCD_MLD.png new file mode 100644 index 0000000..46e5820 Binary files /dev/null and b/UTC504/Cours/Cours8/TD2_Passage_MCD_MLD.png differ diff --git a/UTC504/Cours/Cours8/TD2_Passage_MCD_MLD_Correction.png b/UTC504/Cours/Cours8/TD2_Passage_MCD_MLD_Correction.png new file mode 100644 index 0000000..0e5a42a Binary files /dev/null and b/UTC504/Cours/Cours8/TD2_Passage_MCD_MLD_Correction.png differ diff --git a/UTC504/Cours/OLD/Cours1/Cours2_Partie1_Definitions (1).pdf b/UTC504/Cours/OLD/Cours1/Cours2_Partie1_Definitions (1).pdf new file mode 100644 index 0000000..217beda Binary files /dev/null and b/UTC504/Cours/OLD/Cours1/Cours2_Partie1_Definitions (1).pdf differ diff --git a/UTC504/Cours/OLD/Cours1/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf b/UTC504/Cours/OLD/Cours1/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf new file mode 100644 index 0000000..25a0ef9 Binary files /dev/null and b/UTC504/Cours/OLD/Cours1/SI_COURS-01_2012_Introduction_Credits_Guillaume_Riviere.pdf differ diff --git a/UTC504/Cours/OLD/Cours1/iaas_focus-paas-saas-diagram-1200x1046 (1).png b/UTC504/Cours/OLD/Cours1/iaas_focus-paas-saas-diagram-1200x1046 (1).png new file mode 100644 index 0000000..d3b58ec Binary files /dev/null and b/UTC504/Cours/OLD/Cours1/iaas_focus-paas-saas-diagram-1200x1046 (1).png differ diff --git a/UTC504/Cours/OLD/Cours2/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail – Microsoft​ Edge.png b/UTC504/Cours/OLD/Cours2/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail – Microsoft​ Edge.png new file mode 100644 index 0000000..3ff353a Binary files /dev/null and b/UTC504/Cours/OLD/Cours2/2024-10-16 10_30_42-Cours3 - OneDrive et 7 pages de plus - Travail – Microsoft​ Edge.png differ diff --git a/UTC504/Cours/OLD/Cours2/Cours_2.pdf b/UTC504/Cours/OLD/Cours2/Cours_2.pdf new file mode 100644 index 0000000..2fa6ac8 Binary files /dev/null and b/UTC504/Cours/OLD/Cours2/Cours_2.pdf differ diff --git a/UTC504/Cours/OLD/Cours3/BDD_Utec.xlsx b/UTC504/Cours/OLD/Cours3/BDD_Utec.xlsx new file mode 100644 index 0000000..815f3f7 Binary files /dev/null and b/UTC504/Cours/OLD/Cours3/BDD_Utec.xlsx differ diff --git a/UTC504/Cours/OLD/Cours3/Besoins_BDD_UTEC.docx b/UTC504/Cours/OLD/Cours3/Besoins_BDD_UTEC.docx new file mode 100644 index 0000000..9792c2c Binary files /dev/null and b/UTC504/Cours/OLD/Cours3/Besoins_BDD_UTEC.docx differ diff --git a/UTC504/Cours/OLD/Cours4/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf b/UTC504/Cours/OLD/Cours4/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf new file mode 100644 index 0000000..5b82102 Binary files /dev/null and b/UTC504/Cours/OLD/Cours4/Cours_2_Partie2_SI_Gen_Speci-Exemples.pdf differ diff --git a/UTC504/Cours/OLD/Cours4/Cours_2_Partie2_SI_Gen_Speci.pdf b/UTC504/Cours/OLD/Cours4/Cours_2_Partie2_SI_Gen_Speci.pdf new file mode 100644 index 0000000..d987d5d Binary files /dev/null and b/UTC504/Cours/OLD/Cours4/Cours_2_Partie2_SI_Gen_Speci.pdf differ diff --git a/UTC504/Cours/OLD/Cours5/Cours5.docx b/UTC504/Cours/OLD/Cours5/Cours5.docx new file mode 100644 index 0000000..5135900 Binary files /dev/null and b/UTC504/Cours/OLD/Cours5/Cours5.docx differ diff --git a/UTC504/Cours/OLD/Cours6/PhPmyAdmin-1.pdf b/UTC504/Cours/OLD/Cours6/PhPmyAdmin-1.pdf new file mode 100644 index 0000000..e2c1079 Binary files /dev/null and b/UTC504/Cours/OLD/Cours6/PhPmyAdmin-1.pdf differ diff --git a/UTC504/Cours/OLD/Cours7/SQL-cours-applications.pdf b/UTC504/Cours/OLD/Cours7/SQL-cours-applications.pdf new file mode 100644 index 0000000..03750b7 Binary files /dev/null and b/UTC504/Cours/OLD/Cours7/SQL-cours-applications.pdf differ diff --git a/UTC504/Cours/OLD/Cours7/Tableau_Operateurs_SQL.png b/UTC504/Cours/OLD/Cours7/Tableau_Operateurs_SQL.png new file mode 100644 index 0000000..d4bcab1 Binary files /dev/null and b/UTC504/Cours/OLD/Cours7/Tableau_Operateurs_SQL.png differ diff --git a/UTC504/Cours/OLD/Cours8/Regles_Passage_MCD_MLD.pdf b/UTC504/Cours/OLD/Cours8/Regles_Passage_MCD_MLD.pdf new file mode 100644 index 0000000..1e215b2 Binary files /dev/null and b/UTC504/Cours/OLD/Cours8/Regles_Passage_MCD_MLD.pdf differ diff --git a/UTC504/README.md b/UTC504/README.md new file mode 100644 index 0000000..0e93e21 --- /dev/null +++ b/UTC504/README.md @@ -0,0 +1,9 @@ +# UTC 504 BDD + +* [15/10/24](./UTC504-15-10-24/) +* [16/10/24](./UTC504-16-10-24/) +* [06/11/24](./UTC504-06-11-24/) +* [27/11/24](./UTC504-27-11-24/) +* [09/01/25](./UTC504-09-01-25/) +* [30/01/25](./UTC504-30-01-24/) +* [19/02/25](./UTC504-19-02-24/) diff --git a/UTC504/Révision/MCD-livres.png b/UTC504/Révision/MCD-livres.png new file mode 100644 index 0000000..d793e44 Binary files /dev/null and b/UTC504/Révision/MCD-livres.png differ diff --git a/UTC504/Révision/MCD.png b/UTC504/Révision/MCD.png new file mode 100644 index 0000000..29eae4a Binary files /dev/null and b/UTC504/Révision/MCD.png differ diff --git a/UTC504/Révision/MLD.png b/UTC504/Révision/MLD.png new file mode 100644 index 0000000..882d436 Binary files /dev/null and b/UTC504/Révision/MLD.png differ diff --git a/UTC504/Révision/README.md b/UTC504/Révision/README.md new file mode 100644 index 0000000..8211c2d --- /dev/null +++ b/UTC504/Révision/README.md @@ -0,0 +1,371 @@ +# Révision 504 + +## Le Système d'information + +Qu'est ce qu'un système d'information ? +***L'ensemble des ressources, matériels et imatériel necessaire et suffisante pour assurer le bon fonctionnement d'une structure.*** + +Le S.I. est au service de l’entreprise +- L’objectif d’un S.I. est de restituer l’information à un utilisateur +- Les systèmes d’information préexistent à l’informatique +- Toutes les informations qui circulent dans l’organisation font partie +du SI. + +### L'urbanisation des SI : + +L'urbanisation du système d'information d'une entité ou d'une organisation, qui peut être une entreprise ou une administration, est une discipline d’ingénierie informatique consistant à faire évoluer le système d'information (SI) de celle-ci afin qu'il soutienne et accompagne efficacement les missions de ladite organisation et anticipe ses transformations. L'urbanisation du SI ne fait pas table rase du passé, mais tient compte de l'existant et permet de mieux envisager les évolutions ou contraintes internes et externes affectant le SI, en s'appuyant le cas échéant sur des opportunités technologiques. Les concepts manipulés s'apparentent à ceux de l'urbanisation de l'habitat humain (organisation des villes, du territoire), concepts qui ont été réutilisés en informatique pour formaliser ou modéliser la ré ingénierie du système d'information. (SI) + +![image_diagrame](iaas_focus-paas-saas-diagram.png) + +### IaaS : Infrastructure as a service(AWS, Orange BZ) + +**C'est le système le plus demandé par les entreprises.** + +L'IaaS est un service de cloud computing offrant des ressources informatiques matérielles (stockage, réseau, baies de serveurs) au sein d'un environnement virtualisé, par le biais d'Internet ou d'une autre connexion. + +**Service Cloud** + +Deux types de contrat : +* public : On partage les baies avec d'autres clients. +* privée : On privatise les structures louées. + +## Base de données + +* Qu'est ce qu'une base de données ? + +Une base de donnée est est un enssemble de données organisé de manière structurés, organisé, et sécurisé. + +* Les principales fonctions d'une base de données ? + +-Stocker l'information de façon fiable + +-Traiter de grand volumes de données + +-Traiter rapidement kes données + +-Sécuriser les accès aux données + +-Controlle la qualité des données + +-Partager les données + +-Rendre accécible les données en réseau + +Le Data mining est la pratique consistant à rechercher automatiquement de grandes quantités de données afin de découvrir des tendances et des modèles qui vont au-delà de la simple analyse. + +* Une base de donnée relationnelle + +La base de données permet d'organiser les données en tables (appellé relation) +Chaque case de la table continent une information atomique +Chaque ligne correspond à un objet. +Chaque colonne correspond à une propriété. + +* Une base de donnée orienté objet + +C'est un type de base de donnée qui a explosé ces dernières année (block chaine) + +* SGBD +* Exemples de SGBD + +Oracle, Postgres, MySQL, MariaDB, MongoDB.... + +## étape clé + +Analyse -> extraire -> structurer (MCD ou MEA) -> MLD -> MPD + +## MCD (modèle conceptuel de données) + +![image](MCD-livres.png) + + + +### Les entités + +Une entité désigne un ensemble d'objet qui possèdent une sémantique et propriétés communes. + +Les entites dans un MCD sont représenté par un rectangle, nom en **majuscule** + +### Les attribut + +Est la modélisation d'une information élémentaire présente dans le discours. + +C'est un élément déscriptif ou caractéristique de l'entité ou l'association. + +C'est unique dans un modèle conceptuel et ne peut être rattaché qu'a un seul concetp (entité ou association). + +Un attribut prend ses valeurs dans un ensemble de valeurs possibles +appelé "domaine". + +Un attribut est une donnée élémentaire, ce qui exclut les données +calculées ou dérivées. + +### Identifiant + +Un identifiant d’entité permet de repérer une entité de manière +unique et sans ambiguité parmi toutes les entités. + +Un identifiant peut être constitué d’un ou plusieurs attributs. + +Le ou les attributs identifiant une entité sont soulignés. + +### Association + +Liaison entre plusieurs entités, avec une signification précise. + +Une association peut être porteuse d’informations: +- Les cardinalités +- Les attributs +- Les contraintes (CIF) + +### Cardinalité + +Types de cardinalité : +- 0,1 (peut-avoir zero ou une seule) +- 1 ,1 (Une seule et unique (forte)) +- 0, N (peut-avoir zero ou plusieurs) +- 1,N (peut-avoir une seule ou plusieurs) + +Valeur de droite c'est le minimum possible/obligatoire et à gauche la maximum possible/obligatoire + +Règles : + +- L’expression de la cardinalité est obligatoire. +- Il ne peut y avoir de cardinalité maximale égale à 0. +- Si une cardinalité est connue et vaut 2 ou plus, alors nous considérons +qu’elle est indéterminée et vaut n. En effet, si cette valeur est définie lors +de la conception, il se peut qu’elle évolue dans le futur. Il faut donc +considérer n comme inconnue dès la conception. + +### ATTRIBUT d’une association + +Des informations qui ne peuvent prendre de sens qu'avec la +présence de l'ensemble des entités constituant cette relation + +Un attribut peut être placé dans une association uniquement +lorsqu’il dépend de toutes les entités liées par cette +association. + +Cardinalité sur une relation binaire: toute relation binaire avec +cardinalité (1,1) ne peut être porteuse d’attribut + +#### Association plurielle + +Association plurielle: Associations différentes qui relient les mêmes +entités + +#### Association réflexive + +Une association qui relie une entité à elle même: +association réflexives + +#### Associations n­-aires + +Possibilité d’associer plusieurs entités (n entités, n > 3) + +#### Association ternaire + +(3 entités) + +### Entité faible + +Une entité qui ne peut être identifiée par ses seuls attributs propres est +appelée entité faible. + +Cas où l’identifiant d’une entité ne permet pas de l’identifier de manière +unique + +Son existence dépend d’une autre entité + +### Contraintes d’intégrité + +- Contraintes de domaine : "La fonction d’un enseignant à l’université +prend sa valeur dans l’ensemble {Vacataire, Moniteur, ATER, MCF, +Professeur, PRAG, PAST}“ + +- Contraintes d'unicité : "Un département, identifié par son numéro, a +un nom unique (il n’y a pas deux départements de même nom)“ + +- Contraintes générales : +"Un même examen ne peut pas avoir lieu dans deux salles différentes à la +même date et à la même heure" + +## Les relation d'héritage (ou spécification) + +La relation de généralisation­spécialisation permet de modéliser : + +une entité générique qui porte des propriétés communes dont un +identifiant unique. + +des sous­ensembles spécialisés, sans identifiant, qui portent des +propriétés ou des caractéristiques spécifiques à chaque sous +ensemble. + +Ces spécificités peuvent porter sur des propriétés ou des relations. + +Les 4 cas possibles et les contraintes associées : + +e**X**clustion et couverture **T**otale (Partition) ***XT*** +Intersection et couverture **T**otale (Totalité) ***T*** +e**X**clustion et non couverture (Exclusion) ***X*** +Insertion et non couverture (Pas de contrainte) + +![contraintes_associees](./contraintes_associees.png) + +![relation_heritage1](./relation_heritage1.png) +![relation_heritage2](./relation_heritage2.png) +![relation_heritage3](./relation_heritage3.png) + +## Notions-SQL-PhpMyAdmin (TD) + +### Les solutions pour créer une BDD : +Plusieurs possibilités s'offrent à nous. Tout d'abord à la main, en écrivant directement dans un terminal ou dans un fichier .sql à importer. + +Exemple (MySQL/MariaDB) : +``` +CREATE DATABASE 'data_base_name'; +``` +Une seconde solution est d'utiliser un outil de gestion de base de données comme phpMyadmin, Adminer, sqldeveloper. + +Exemple de création de base de données avec phpMyAdmin : + + ![create base](https://i.postimg.cc/y8KtrDFZ/Capture-d-cran-du-2025-01-09-15-00-26.png) + On peut également utiliser un ORM (Object-Relational Mapping). Cela permet de faire le lien entre les objets de ton code et les données de ta base de donées. Je n'en connais que certaines utiliser dans le web comme par exmple sequelize pour node.js(javascript) Eloquent pour laravel (php) ou encore doctrine pour symphony (php). + +En plus de pouvoir créer et gérer la structure d'une base de donnée d'un projet, ces outils permetes de générer pour la plupars d'entre eux de fausse donnée afin de remplir les base de donneés et de réasliser des test reels avec des donnée fictives. + +## Définir SQL, MySQL, PhpMyadmin + +**SQL** (sigle pour Structured Query Language, « langage de requêtes structurées ») est un langage de programmation standard spécialement conçu pour stocker, extraire, gérer ou manipuler les données à l'intérieur d'un système de gestion de bases de données relationnelles (SGBDR)1234. Il permet d'effectuer des opérations telles que la création, la lecture, la mise à jour et la suppression de données. + +**MySQL** est un système de gestion de bases de données relationnelles SQL open source développé et supporté par Oracle.MySQL n’est qu’un système populaire qui peut stocker et gérer ces données pour vous, et c’est une solution de base de données particulièrement populaire pour les sites WordPress + +**MariaDB** est un système de gestion de base de données relationnelles. Après le rachat de MySQL par Sun Microsystems, puis de Sun par Oracle Corporation, son fondateur (Michael Widenius) démissionne pour lancer une version alternative, sous licence GPL et 100% compatible avec MySQL. Il s'agit donc d'un fork plus communautaire et ouvert, et 100% compatible MySQL. + +**phpMyAdmin** (PMA) est une application Web de gestion pour les systèmes de gestion de base de données MySQL et MariaDB, réalisée principalement en PHP et distribuée sous licence GNU GPL. Il s'agit de l'une des plus célèbres interfaces pour gérer une base de données MySQL sur un serveur PHP. + +## Installation de PhpMyAdmin + +Sous Windows, on install une solution comme WAMPP ou XAMPP. + +Voici les commandes sous linux (debian) afin d'installer un serveur web de A à Z avec Apache2, Php, phpMyAdmin et MariaDB: + +### Apache +``` +sudo apt install apache2 +``` +### Php +``` +sudo apt install php php-common php-cli +php-mysql libapache2-mod-php php-mbstring php-json php-xml +``` +### MariaDB (ou MySQL) +``` +sudo apt install mariadb-server +``` +### Création d'un utilisateur + +>pour gérer la base de données et éviter de tout faire avec l'utilisateur root. + +pour se connecter au service : `sudo mariadb` +``` +CREATE USER 'toto'@'localhost' IDENTIFIED BY 'password'; +GRANT ALL PRIVILEGES ON *.* TO 'toto'@'localhost' WITH GRANT OPTION; +``` +### PhpMyAdmin + +``` +sudo apt install phpmyadmin +``` +### Configuration de PhpMyAdmin + +Une fois l'installation de PMA fini, lancer c'est 3 lignes afin de le configurer avec Apache 2: +``` +sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf +sudo a2enconf phpmyadmin.conf +sudo systemctl reload apache2.service +``` + +On peut ensuite accéder à phpMyAdmin via http://localhost/phpmyadmin + +## phpMyAdmin (reprise cours) + +- phpMyAdmin est un outil qui nous permet de visualiser rapidement l'état de notre base de données ainsi que de la modifier, sans avoir à écrire de requêtes SQL. +- On crée généralement un champ nommé id qui sert à numéroter les en-trées d'une table. Ce champ doit avoir un index PRIMARY (on dit qu'on crée une clé primaire) et l'option AUTO_INCREMENT qui permet de laisser MySQL gérer la numérotation. +- MySQL gère différents types de données pour ses champs, à la ma-nière de PHP. On trouve des types adaptés au stockage de nombres, de textes, de dates, etc. +- phpMyAdmin possède un outil d'importation et d'exportation des tables qui nous permettra notamment d'envoyer notre base de données sur Internet lorsque nous mettrons notre site en ligne. + +## Initiation à SQL + +### Quelques notions de base : + +- SELECT (noms des colonnes à afficher) +- FROM (nom de la table où se trouvent les colonnes susmentionnées) +- WHERE (condition(s) à remplir par les lignes) +- GROUP BY (condition(s) de regroupement des lignes) +- HAVING condition(s) à remplir par le groupe +- ORDER BY (ordre (Asc, Desc) d'affichage) +- LIKE ("qui ressemble à", la valeur est entouré de "%") +- ON (**DANS** pour faire des jointure) +- OR (Une condition **OU** une autre) +- AND (Une condition **ET** une autre) +- '*' (**ALL**) +- INSERT INTO (ajout d'une ligne à une table) +- UPDATE (Modification d'une ligne dans une table) +- SET (défini la valeur changé) +- DELETE (Supprime une valeur) +- DROP ou DROP TABLE (supprime une table ou un base) + +### Quelques exemples : + +``` +SELECT NomElv (ce qui doit être affiché) +FROM Eleves; (dans quelle table rechercher l’information) + +SELECT NomMat, Coef (possibilité de selectionner plusieurs valeurs séparé par une virgule) +FROM Matieres; + +SELECT NomElv +FROM Eleves +WHERE VilleElv = 'Toulon'; (OU VilleElv est égale à Toulon) + +SELECT NomMat +FROM Notes +GROUP BY NomMat (Liste des matières où plus de 35 notes ont été données) +HAVING Count(Note) > 35; + +SELECT NomMat +FROM Matieres +ORDER BY Coef Desc, NomMat Asc; (Coef par ordre décroissant et NomMat par ordre crassant (Alpha)) + +SELECT * +FROM Eleves +WHERE NomElv LIKE '%C%' OR NomElv LIKE '%c%'; + +INSERT INTO Eleves (NomElv, AdrElv, VilleElv) VALUES ('Tony', 'av Paul Doumer', 'Toulon'); + +UPDATE Eleves SET NomElv = 'Antony' (Nouvelle valeur) +WHERE NomElv = 'Tony'; (Ancienne valeur) + +DELETE FROM Eleves +WHERE NomElv = 'Tony'; +``` + +## MLD (Modèle Logique des Données) + +le MLD tient compte des choix concernant le système de gestion des données utilisé dans l’entreprise. Le plus utilisé est le modèle relationnel associé aux bases de données relationnelles (Oracle, Informix, SQLserver, ..., Access, Foxpro, Paradox, ...) + +- Le domaine est l’ensemble des valeurs que peut prendre une +donnée, +- une table est un sous-ensemble du produit des domaines, une table est donc un ensemble d’enregistrements (ou tuples, ou lignes), +- une table porte un nom et est composée d’attributs prenant leurs valeurs dans les domaines correspondants, +- une clé est constituée de 1 ou plusieurs attributs telle que une valeur de la clé d ́etermine exactement l’enregistrement, +- toute table posède une clé primaire et, éventuellement, des +clés candidates (secondaire). + +### Passage MCD vers MLD : + +![MCD](./MCD.png) + +Devien : + +![MLD](./MLD.png) \ No newline at end of file diff --git a/UTC504/Révision/Révision_UTC504.pdf b/UTC504/Révision/Révision_UTC504.pdf new file mode 100644 index 0000000..91091ab Binary files /dev/null and b/UTC504/Révision/Révision_UTC504.pdf differ diff --git a/UTC504/Révision/contraintes_associees.png b/UTC504/Révision/contraintes_associees.png new file mode 100644 index 0000000..7443547 Binary files /dev/null and b/UTC504/Révision/contraintes_associees.png differ diff --git a/UTC504/Révision/iaas_focus-paas-saas-diagram.png b/UTC504/Révision/iaas_focus-paas-saas-diagram.png new file mode 100644 index 0000000..d3b58ec Binary files /dev/null and b/UTC504/Révision/iaas_focus-paas-saas-diagram.png differ diff --git a/UTC504/Révision/relation_heritage1.png b/UTC504/Révision/relation_heritage1.png new file mode 100644 index 0000000..9488880 Binary files /dev/null and b/UTC504/Révision/relation_heritage1.png differ diff --git a/UTC504/Révision/relation_heritage2.png b/UTC504/Révision/relation_heritage2.png new file mode 100644 index 0000000..ade2ba2 Binary files /dev/null and b/UTC504/Révision/relation_heritage2.png differ diff --git a/UTC504/Révision/relation_heritage3.png b/UTC504/Révision/relation_heritage3.png new file mode 100644 index 0000000..6d4f51b Binary files /dev/null and b/UTC504/Révision/relation_heritage3.png differ diff --git a/UTC505/24-09-25/1 Concepts de base et Eléments de Transmission.pdf b/UTC505/24-09-25/1 Concepts de base et Eléments de Transmission.pdf new file mode 100644 index 0000000..f870f86 Binary files /dev/null and b/UTC505/24-09-25/1 Concepts de base et Eléments de Transmission.pdf differ diff --git a/UTC505/24-09-25/1-1-Wireshark.pdf b/UTC505/24-09-25/1-1-Wireshark.pdf new file mode 100644 index 0000000..4ae3a28 Binary files /dev/null and b/UTC505/24-09-25/1-1-Wireshark.pdf differ diff --git a/UTC505/24-09-25/1-2-Wireshark-bf2-2015.pcapng b/UTC505/24-09-25/1-2-Wireshark-bf2-2015.pcapng new file mode 100644 index 0000000..063ec1a Binary files /dev/null and b/UTC505/24-09-25/1-2-Wireshark-bf2-2015.pcapng differ diff --git a/UTC505/24-09-25/Physique-DivisionPolynCRC.pdf b/UTC505/24-09-25/Physique-DivisionPolynCRC.pdf new file mode 100644 index 0000000..22a4d01 Binary files /dev/null and b/UTC505/24-09-25/Physique-DivisionPolynCRC.pdf differ diff --git a/UTC505/24-09-25/README.md b/UTC505/24-09-25/README.md new file mode 100644 index 0000000..62516f4 --- /dev/null +++ b/UTC505/24-09-25/README.md @@ -0,0 +1,45 @@ +# UTC505 25/09/2024 + +## Le modèle ISO/OSI + +Principe du modèle ISO -> 7 couches + +Modèle TCP/IP -> 4 couches + +### Modèle : Unités de données de Protocole + +Types d'ulité de donnée de protocole + +* pour l'ouverture d'une connexion +* pour le transfert de données +* pour la fermeture de connexion +* pour les informations de service échangées entre entitées N + +### Modèle en couches + +>Notion Utile : Trame (accès réseau), Paquet (internet), Segment (transport) + +[Entête|DATA] -> Segment + +[IP|TCP|DATA] -> Patagramme + +[Préanbule|AdresseDestinatère|AdresseSource|Donnée] -> Trame + +4 éléments par paquet dans une trame réseau (exemple sur Wireshark) + +### Rôle des 7 couches réseau + +* Routage des paquets +* Homogénisation de l'adressage +* Adaptation à la Liaison de données utilisée +* Contrôle d'erreur +* Guérison de la congestion +* Mutiplexage pour optimiser les ressources de communication utilisées + +>Voir le tablaux d'auxy + +Hexa -> binaire -> décimal +TLC -> sécuriser l'echange entre application +Tail d'une tram -> entre 46 et 8500 + +Etude de cas WireShark \ No newline at end of file diff --git a/UTC505/24-09-26/R1-2-3-EncapsulationExCor.pdf b/UTC505/24-09-26/R1-2-3-EncapsulationExCor.pdf new file mode 100644 index 0000000..977a14a Binary files /dev/null and b/UTC505/24-09-26/R1-2-3-EncapsulationExCor.pdf differ diff --git a/UTC505/24-09-26/R1-2-5-Encapsulation+AutoEvaluation++.pdf b/UTC505/24-09-26/R1-2-5-Encapsulation+AutoEvaluation++.pdf new file mode 100644 index 0000000..1d08c56 Binary files /dev/null and b/UTC505/24-09-26/R1-2-5-Encapsulation+AutoEvaluation++.pdf differ diff --git a/UTC505/24-09-26/README.md b/UTC505/24-09-26/README.md new file mode 100644 index 0000000..d5a452c --- /dev/null +++ b/UTC505/24-09-26/README.md @@ -0,0 +1,95 @@ +# UTC505 26-09-24 + +Shéma TCP IP : + +[Applicatif] FTP/SSH/DNS/HTTP +[Transport] TCP/UDP/ICMP +[Resau] IPv4/IPv6/IPsec +[Accès_reseau] Ethernet + +Les couches communiquent entre elles en montant et en decendant. + +1 octet -> 8bits +1 octet -> 2 symbole hexadecimal + +Maximun d'une tram 1518 et minumu 64 octets + + + +Exemple d'une trame : + +00: 0800 2018 ba40 aa00 0400 1fc8 0800 4500 +16: 0028 a3fc 4000 3f06 af63 a3ad 2041 a3ad +32: 80d4 0558 0017 088d de7e ba77 66c9 5010 +48: 7d78 3c30 0000 0000 0000 0000 0000 0000 + + +0800 2018 ba40 -> adresse mac dst 6 octets +aa00 0400 1fc8 -> adresse mac src 6 octets +0800 -> types 2 octets + +4500 0028 a3fc 4000 3f06 + +a3ad 2041 -> adresse IP dst 4 octets +a3ad 80d4 -> adresse IP src 4 octets +0558 -> port dst +0017 -> port src + +088d de7e ba77 66c9 5010 7d78 3c30 + +0000 0000 0000 0000 0000 0000 -> bourage d'octets + + +Il faut 64 octet minimum donc utilisation des Bit de bourage pour complêter la tram (représenté par 0000) + + +Petit exemple d'un scapy : + +from scapy.all import IP, ICMP + +# Create an IP packet with the correct parameters +packet = IP(version=4, ihl=None, tos=0x00, id=1, flags=0, ttl=64, proto='icmp', src="192.168.10.10", dst="192.168.10.100") +# Display the packet details +packet.show() + +nk@debian:~/Documents/UTEC/UTC505/UTC505-26-09-24$ scapy +INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). + + aSPY//YASa + apyyyyCY//////////YCa | + sY//////YSpcs scpCY//Pp | Welcome to Scapy + ayp ayyyyyyySCP//Pp syY//C | Version 2.5.0 + AYAsAYYYYYYYY///Ps cY//S | + pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy + SPPPP///a pP///AC//Y | + A//A cyP////C | Have fun! + p///Ac sC///a | + P////YCpc A//A | What is dead may never die! + scccccp///pSP///p p//Y | -- Python 2 + sY/////////y caa S//P | + cayCyayP//Ya pY/Ya + sY/PsY////YCc aC//Yp + sc sccaCY//PCypaapyCP//YSs + spCPY//////YPSps + ccaacs + using IPython 8.5.0 + +>>> a = IP(version=4, ihl=None, tos=0x00, id=1, flags=0, ttl=64, proto='icmp', src="192.168.10.10", dst="192.168.10.100") +>>> a.show() +###[ IP ]### + version = 4 + ihl = None + tos = 0x0 + len = None + id = 1 + flags = + frag = 0 + ttl = 64 + proto = icmp + chksum = None + src = 192.168.10.10 + dst = 192.168.10.100 + \options \ + +>>> mon_ping = (Ether() / IP(dst="192.168.0.129")) /ICMP()dns +>>> my_ping = (Ether(dst="14:18:c3:63:6a:14")) /IP(dst="192.168.0.129")) / ICMP() diff --git a/UTC505/24-09-26/scapy-readthedocs-io-en-stable.pdf b/UTC505/24-09-26/scapy-readthedocs-io-en-stable.pdf new file mode 100644 index 0000000..89b822c Binary files /dev/null and b/UTC505/24-09-26/scapy-readthedocs-io-en-stable.pdf differ diff --git a/UTC505/24-10-15/9-1-1-reseauIP.pdf b/UTC505/24-10-15/9-1-1-reseauIP.pdf new file mode 100644 index 0000000..b12a91c Binary files /dev/null and b/UTC505/24-10-15/9-1-1-reseauIP.pdf differ diff --git a/UTC505/24-10-15/9-1-2-protocoleIP.pdf b/UTC505/24-10-15/9-1-2-protocoleIP.pdf new file mode 100644 index 0000000..14b715e Binary files /dev/null and b/UTC505/24-10-15/9-1-2-protocoleIP.pdf differ diff --git a/UTC505/24-10-15/9-1-3-adressageIPv4.pdf b/UTC505/24-10-15/9-1-3-adressageIPv4.pdf new file mode 100644 index 0000000..e5fda08 Binary files /dev/null and b/UTC505/24-10-15/9-1-3-adressageIPv4.pdf differ diff --git a/UTC505/24-10-15/Fragmentation de paquets.pdf b/UTC505/24-10-15/Fragmentation de paquets.pdf new file mode 100644 index 0000000..03ae09b Binary files /dev/null and b/UTC505/24-10-15/Fragmentation de paquets.pdf differ diff --git a/UTC505/24-10-15/README.md b/UTC505/24-10-15/README.md new file mode 100644 index 0000000..5013276 --- /dev/null +++ b/UTC505/24-10-15/README.md @@ -0,0 +1,72 @@ +# UTC505-15-10-24 + +### IPV4 + +* ICMP +* ARP +* RARP +* IGMP + +> anatomi + +### IPV6 + +> RCF 2460 + +### L'internet Protocol (IP) + +* Communications dans le mode minimal DATAGRAM (non Aqcuittés) +* adressage internet et Routage entre réseau +* adaptation à la liaison traversée +* Encapsulation/désencapsulation par rapport à la couche transport + +TTL -> temps de vie d'un paquets. (un retour négatif d'un ping par exemple.) + +> Transmition d'un datagramme +> Difference entre le routing et le switching + +> /!\ Pour l'examun, calcul des adress IP /!\ + +Un mask est défini pour que checker chaque bit de l'adress IP. +Adresse Ip de gauche a droit, du faible au plus fort. + +Le Mask determine la limite à ne pas dépasser exemple : + + IP 163.173.128.6 -> 10100011 10101101 10000000 00000110 +Mask 255.255.253.0 -> 11111111 11111111 11111100 00000000 + +Son adresse réseau c'est : 163.173.128.0 + +Son adresse Broadcast c'est : 163.173.131.255 + +On le sait car 163.173.128.6 c'est -> 10100011 10101101 10000000 00000110 pour calculer son BraodCast on prend tous se qui a derière le mask donc derrière **11111111 11111111 111111**00 00000000 et on le passe à 1 se qui donne 10100011 10101101 100000**11 11111111** donc reconvertie en octet ça donne 168.173.131.255 + +Nombre d'adresse de diffusion : + +Pour calculer le nombre d'adresse de diffusions, on prend le NetID qui correspond à 22 bits, le HostId qui correspond à 10 bits, le tous fais bien 32 bits. +On prend le HostId, on fait 2-2 = 1024 -2 = 1022 adresse de diffusion. + + +Nombre de personne sur la terre c'est 8 milliard +Nombre de personne utilisant internet c'est 5.5 milliard +Donc besoin de 5,5 milliard d'IPv4. +2^32 d'IPv4. 4.3 milliard donc pénuri d'IP, solution numéro 1, utiliser le NAT. Solution 2 les sous réseaux. + + + + +exercice defragmentation : + +>>> send( fragment(IP(dst="10.0.0.5")/ICMP()/("X"*1472)) ) +. +Sent 1 packets. -> parce que 1480 bits + 20 bits = 1500 donc 1 seul packet +>>> send( fragment(IP(dst="10.0.0.5")/ICMP()/("X"*1473)) ) +.. +Sent 2 packets.-> parce que 1481 bits + 20 bits = 1501 donc 2 packets car 1500 max par packet + + + +____ + +MTU = charge utilse +MSS = \ No newline at end of file diff --git a/UTC505/24-11-05/9-1-4-IPEx.pdf b/UTC505/24-11-05/9-1-4-IPEx.pdf new file mode 100644 index 0000000..6583f6f Binary files /dev/null and b/UTC505/24-11-05/9-1-4-IPEx.pdf differ diff --git a/UTC505/24-11-05/README.md b/UTC505/24-11-05/README.md new file mode 100644 index 0000000..ffe0ae0 --- /dev/null +++ b/UTC505/24-11-05/README.md @@ -0,0 +1,60 @@ +# Prise de note du 05/11/2024 + +>> Utilisation du document 9-1-4-IPEx.pdf + +## Exercice 1 : + +### Question 1 + +Sur Internet, on trouve des outils pour calculer des adresses, l'un de ceux-ci donne pour +résultat si on lui fournit l'adresse d'interface 10.168.0.1 et le masque /20: + +La conversion en binire de l'adresse est fausse : + +10.168.0.1 00001010.10100100.00000000.00000001 + +168 c'est : 10101000 +donc l'adresse entière c'est : 00001010.10101000.00000000.00000001 + +Pour moi le masque n'est pas bon : + +20 dans l'exercice donc 11111111.11111111.11010000.00000000 + +Car il ne peut pas avoir un 0 qui sépart les 1. +Donc correction c'est 11111111.11111111.11110000.00000000 + +4096 - 2 = 4094 + +### Question 2 : + +L'outil peut aussi proposer un calcul si on veut découper son réseau en sous réseaux. Si +on indique un masque /21 voila les propositions qu'il fait pour 2 sous-réseaux : + +Mask est pas bon : 11111111.11111111.11111000.00000000 + +### Question 3 + +Tout est bon. + +## Exercice 2 + +### Question 1 : + +On prend l'adresse 10.1.8.66, on obtient avec l'adresse 10.1.8.0/26 + +... + +> Exercice 3, 4, 5 à faire sois même, + +## Exercice 6 : + +### Question 1 : + +Savoir découper les paquets trop volumineux (plus de 1500 bit). + +### Question 2 : + +Fragmentation se fais au niveau du client, + +16 bits son reservé pour l'entète, afin de savoir dans quelle ordre rassembler les paquet +3 bits son reserver pour le flag mais seuelemnt 2 utilisés diff --git a/UTC505/24-11-07/Netcat_Exemple.pptx b/UTC505/24-11-07/Netcat_Exemple.pptx new file mode 100644 index 0000000..8261bbe Binary files /dev/null and b/UTC505/24-11-07/Netcat_Exemple.pptx differ diff --git a/UTC505/24-11-07/README.md b/UTC505/24-11-07/README.md new file mode 100644 index 0000000..72048c7 --- /dev/null +++ b/UTC505/24-11-07/README.md @@ -0,0 +1,14 @@ +# UTC 505 07/11/24 + +## Introduction + +## Matrice de risque + +Mesure le niveau de risque en fonction de deux paramètres : + +- +- + +## Mesure de sécurité : + +Renf diff --git a/UTC505/24-11-07/TP--cryptographie.pdf b/UTC505/24-11-07/TP--cryptographie.pdf new file mode 100644 index 0000000..5870573 Binary files /dev/null and b/UTC505/24-11-07/TP--cryptographie.pdf differ diff --git a/UTC505/24-11-07/chiffrement_asym.pdf b/UTC505/24-11-07/chiffrement_asym.pdf new file mode 100644 index 0000000..0f82214 Binary files /dev/null and b/UTC505/24-11-07/chiffrement_asym.pdf differ diff --git a/UTC505/24-11-07/steghide.txt b/UTC505/24-11-07/steghide.txt new file mode 100644 index 0000000..f53ed48 --- /dev/null +++ b/UTC505/24-11-07/steghide.txt @@ -0,0 +1,7 @@ + $ steghide embed -cf picture.jpg -ef secret.txt + + $ steghide info picture.jpg + + $ steghide extract -sf picture.jpg + + \ No newline at end of file diff --git a/UTC505/24-11-07/tuto/base32.txt b/UTC505/24-11-07/tuto/base32.txt new file mode 100644 index 0000000..b47d038 --- /dev/null +++ b/UTC505/24-11-07/tuto/base32.txt @@ -0,0 +1 @@ +INSWG2K7MVZXIX3VNZPW2ZLTONQWOZK7ONSWG4TFOQFA==== diff --git a/UTC505/24-11-07/tuto/base64.txt b/UTC505/24-11-07/tuto/base64.txt new file mode 100644 index 0000000..ef7f447 --- /dev/null +++ b/UTC505/24-11-07/tuto/base64.txt @@ -0,0 +1 @@ +Q2VjaV9lc3RfdW5fbWVzc2FnZV9zZWNyZXQK diff --git a/UTC505/24-11-07/tuto/karouit.pub b/UTC505/24-11-07/tuto/karouit.pub new file mode 100644 index 0000000..93da14f --- /dev/null +++ b/UTC505/24-11-07/tuto/karouit.pub @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ0GA5cksnkg+M6LViQQpnN121u/ +IWV20BFy/taJjvTsbKUn9nNAAYvdDw1o3VOun1akNWvKGT02rWIXzM3oX4uLuGEo +RN+fq6l7qPAv3eq9jb/vkMDaOSEbH0/LAc09D/1EPAiocFPfQfsy6ZJe0rGDpvll +9qkwdobLY8I1THnXowIDAQAB +-----END PUBLIC KEY----- diff --git a/UTC505/24-11-07/tuto/toto.txt b/UTC505/24-11-07/tuto/toto.txt new file mode 100644 index 0000000..5fdae1b --- /dev/null +++ b/UTC505/24-11-07/tuto/toto.txt @@ -0,0 +1 @@ +Ceci_est_un_message_secret diff --git a/UTC505/24-11-07/tuto/totocrypt.txt b/UTC505/24-11-07/tuto/totocrypt.txt new file mode 100644 index 0000000..8d9907a --- /dev/null +++ b/UTC505/24-11-07/tuto/totocrypt.txt @@ -0,0 +1,4 @@ + R^l PK3n' `hn77J\mͻrm~ +%HZ`p&G +M?$ɲ[qcoP:=y'x[p<(JLM /XC= + \ No newline at end of file diff --git a/UTC505/24-11-25/Examen/UTC505_2019-sess1.pdf b/UTC505/24-11-25/Examen/UTC505_2019-sess1.pdf new file mode 100644 index 0000000..07d10e8 Binary files /dev/null and b/UTC505/24-11-25/Examen/UTC505_2019-sess1.pdf differ diff --git a/UTC505/24-11-25/Examen/UTC505_2021-sem1sess2Reseaux-v2.pdf b/UTC505/24-11-25/Examen/UTC505_2021-sem1sess2Reseaux-v2.pdf new file mode 100644 index 0000000..a8ca2dd Binary files /dev/null and b/UTC505/24-11-25/Examen/UTC505_2021-sem1sess2Reseaux-v2.pdf differ diff --git a/UTC505/24-11-25/Examen/sujet2021.md b/UTC505/24-11-25/Examen/sujet2021.md new file mode 100644 index 0000000..297f379 --- /dev/null +++ b/UTC505/24-11-25/Examen/sujet2021.md @@ -0,0 +1,55 @@ +# SUJET UTC505 : Réseaux et Sécurité + +>Partie Réseaux (19 points noté sur 14) + +## Exercice 1 : + +### Question 1 : + +Délimiter dans le trace hexadécimale l'entête de la trame Ethernet. + +00 20 af 1b 07 fa 00 e0 29 68 8b fb 08 00 + +Délimiter dans le trace hexadécimale l'entête du datagramme IP. + +45 00 +00 77 c1 e6 40 00 40 06 f7 46 c0 a8 00 01 c0 a8 +00 02 + +Délimiter dans le trace hexadécimale l'entête du segment. + +5 -> pas d'option donc 20 octed TCP + +0b fc 1f 40 ea 46 fc 03 08 c4 ec 75 50 18 +44 70 71 79 00 00 + +Délimiter dans le trace hexadécimale la partie HTTP + +### Question 2 : + +1 : 00 20 af 1b 07 fa +2 : Une adresse destiné à une autre adresse présise +3 : 00 e0 29 68 8b fb +4 : 08 00 -> suivis du 4 -> ipv4 oui coérant +5: 4 car ipv4 +6: c0 a8 00 01 192.168.0.1 +7: c0 a8 00 02 192.168.0.2 +8: +9: +10: 0b fc +11: 1f 40 +12: 5 * 4 = 20, pas d'option +13: ea 46 fc 03 +14: 18 +15: 08 +16: + + +# Question 3 + +4 - 3 - 1 - 2 - 5 + + +1 - G - B - 4 - D - C - E - H - F - A + +1 - G - B - 4 - E - D - F - C - H - A \ No newline at end of file diff --git a/UTC505/24-11-25/Examen/test.txt b/UTC505/24-11-25/Examen/test.txt new file mode 100644 index 0000000..1d1e834 --- /dev/null +++ b/UTC505/24-11-25/Examen/test.txt @@ -0,0 +1,9 @@ +00 20 af 1b 07 fa 00 e0 29 68 8b fb 08 00 45 00 +00 77 c1 e6 40 00 40 06 f7 46 c0 a8 00 01 c0 a8 +00 02 0b fc 1f 40 ea 46 fc 03 08 c4 ec 75 50 18 +44 70 71 79 00 00 47 45 54 20 2f 20 48 54 54 50 +2f 31 2e 30 0d 0a 55 73 65 72 2d 41 67 65 6e 74 +3a 20 57 67 65 74 2f 31 2e 35 2e 33 0d 0a 48 6f +73 74 3a 20 31 39 32 2e 31 36 38 2e 30 2e 32 3a +38 30 30 30 0d 0a 41 63 63 65 70 74 3a 20 2a 2f +2a 0d 0a 0d 0a \ No newline at end of file diff --git a/UTC505/24-11-25/README.md b/UTC505/24-11-25/README.md new file mode 100644 index 0000000..db4130e --- /dev/null +++ b/UTC505/24-11-25/README.md @@ -0,0 +1,37 @@ +# UTC505 25/11/24 + +Diamètre de connexion avec TCP en lien avec MSS. (Maximum Segment ...) + +Le MSS c'est le diamètre de ségement qui va être envoyé. + +## Entête d'un segment Segment TCP + +TCP header format : + +![TCP Header](./image/tcp.png) + +UDP header format : + +![UDP header](./image/udp.png) + +TCP (Transport Control Protocol) assure un service de transmission de données fiable avec une détection et une correction d'erreurs de bout en bout. UDP (User Datagram Protocol) offre un service de transmission de datagrammes sans connection. + +![Diff](./image/diff-udp-tcp.png) + +Automate protocolaire TCP : + +Ouverture connexion tcp : + +![ouverture](./image/Etabilissement-connexion-TCP.jpg) + + +## TP, TCP sys flooding attack + +pour faire une attaque DDos : + +``` +hping3 --syn --flood --rand-source -p 80 192.168.1.2 +``` + +Le moyen ce se defendre sur windows c'est Windows Defender. Il est paramétrable pour dire que si on reçois un nombre de segment sans possibilité de réponsee trop souvent, il stop la reception de ce segment. + diff --git a/UTC505/24-11-25/TP_ TCP/8-1-1-TransportTCP.pdf b/UTC505/24-11-25/TP_ TCP/8-1-1-TransportTCP.pdf new file mode 100644 index 0000000..facb3bd Binary files /dev/null and b/UTC505/24-11-25/TP_ TCP/8-1-1-TransportTCP.pdf differ diff --git a/UTC505/24-11-25/TP_ TCP/8-1-2-TransportTCPEx.pdf b/UTC505/24-11-25/TP_ TCP/8-1-2-TransportTCPEx.pdf new file mode 100644 index 0000000..9a0932f Binary files /dev/null and b/UTC505/24-11-25/TP_ TCP/8-1-2-TransportTCPEx.pdf differ diff --git a/UTC505/24-11-25/TP_ TCP/8-1-2-TransportTCPExCor.pdf b/UTC505/24-11-25/TP_ TCP/8-1-2-TransportTCPExCor.pdf new file mode 100644 index 0000000..534c865 Binary files /dev/null and b/UTC505/24-11-25/TP_ TCP/8-1-2-TransportTCPExCor.pdf differ diff --git a/UTC505/24-11-25/image/Etabilissement-connexion-TCP.jpg b/UTC505/24-11-25/image/Etabilissement-connexion-TCP.jpg new file mode 100644 index 0000000..7f8b2bf Binary files /dev/null and b/UTC505/24-11-25/image/Etabilissement-connexion-TCP.jpg differ diff --git a/UTC505/24-11-25/image/diff-udp-tcp.png b/UTC505/24-11-25/image/diff-udp-tcp.png new file mode 100644 index 0000000..ffb0c45 Binary files /dev/null and b/UTC505/24-11-25/image/diff-udp-tcp.png differ diff --git a/UTC505/24-11-25/image/ouverture-tcp.jpeg b/UTC505/24-11-25/image/ouverture-tcp.jpeg new file mode 100644 index 0000000..46ce1f2 Binary files /dev/null and b/UTC505/24-11-25/image/ouverture-tcp.jpeg differ diff --git a/UTC505/24-11-25/image/tcp.png b/UTC505/24-11-25/image/tcp.png new file mode 100644 index 0000000..d298bbe Binary files /dev/null and b/UTC505/24-11-25/image/tcp.png differ diff --git a/UTC505/24-11-25/image/udp.png b/UTC505/24-11-25/image/udp.png new file mode 100644 index 0000000..4af7fd2 Binary files /dev/null and b/UTC505/24-11-25/image/udp.png differ diff --git a/UTC505/README.md b/UTC505/README.md new file mode 100644 index 0000000..53f1e44 --- /dev/null +++ b/UTC505/README.md @@ -0,0 +1,8 @@ +# UTC 505 Réseau + +* [25/09/24](./UTC505-25-09-24/) +* [26/09/24](./UTC505-26-09-24/) +* [15/10/24](./UTC505-15-10-24/) +* [05/11/24](./UTC505-05-11-24) +* [07/11/24](./UTC505-07-11-24) +* [25/11/24](./UTC505-25-11-24)