From 6f13bae4f86886c4e309b0847363c17ac1eac5bf Mon Sep 17 00:00:00 2001 From: yolou Date: Thu, 27 Nov 2025 13:53:52 +0100 Subject: [PATCH] Maj du git depuis la derniere fois --- TP_BD/fichiereponsetp1.sql | 9 + TP_BD/fichiereponsetp2.sql | 14 + TP_DEV3.2/Arbres/Node.class | Bin 0 -> 2013 bytes TP_DEV3.2/Arbres/Node.java | 50 ++ TP_DEV3.2/Arbres/Prefixe.java | 39 ++ TP_DEV3.2/Arbres/Repertoires.java | 2 +- TP_DEV3.2/Repertoires.java | 73 --- TP_SCR3.2/TP02/TP02-reponses.txt | 8 + TP_SCR3.2/TP02/with-routers.imn | 455 ++++++++++++++++++ TP_SCR3.2/TP03/dhcp-serv.imn | 215 +++++++++ TP_valarcher/Yolou_4.tar | Bin 0 -> 30720 bytes TP_valarcher/Yolou_4/Prompt_reponse.txt | 146 ++++++ TP_valarcher/Yolou_4/Yolou_4.txt | 203 ++++++++ .../controle_tp_191125/Prompt_reponse.txt | 146 ++++++ TP_valarcher/controle_tp_191125/Yolou_4.tar | Bin 0 -> 30720 bytes TP_valarcher/controle_tp_191125/Yolou_4.txt | 203 ++++++++ .../Yolou_4/Prompt_reponse.txt | 146 ++++++ .../controle_tp_191125/Yolou_4/Yolou_4.txt | 203 ++++++++ 18 files changed, 1838 insertions(+), 74 deletions(-) create mode 100644 TP_BD/fichiereponsetp2.sql create mode 100644 TP_DEV3.2/Arbres/Node.class create mode 100644 TP_DEV3.2/Arbres/Node.java create mode 100644 TP_DEV3.2/Arbres/Prefixe.java delete mode 100644 TP_DEV3.2/Repertoires.java create mode 100644 TP_SCR3.2/TP02/TP02-reponses.txt create mode 100644 TP_SCR3.2/TP02/with-routers.imn create mode 100644 TP_SCR3.2/TP03/dhcp-serv.imn create mode 100644 TP_valarcher/Yolou_4.tar create mode 100644 TP_valarcher/Yolou_4/Prompt_reponse.txt create mode 100644 TP_valarcher/Yolou_4/Yolou_4.txt create mode 100644 TP_valarcher/controle_tp_191125/Prompt_reponse.txt create mode 100644 TP_valarcher/controle_tp_191125/Yolou_4.tar create mode 100644 TP_valarcher/controle_tp_191125/Yolou_4.txt create mode 100644 TP_valarcher/controle_tp_191125/Yolou_4/Prompt_reponse.txt create mode 100644 TP_valarcher/controle_tp_191125/Yolou_4/Yolou_4.txt diff --git a/TP_BD/fichiereponsetp1.sql b/TP_BD/fichiereponsetp1.sql index b41ba53..6934413 100644 --- a/TP_BD/fichiereponsetp1.sql +++ b/TP_BD/fichiereponsetp1.sql @@ -36,3 +36,12 @@ SELECT id, nom_produit, prix_unitaire INTO v_produit FROM Produit WHERE id=1; DBMS_OUTPUT.PUT_LINE(v_produit.id || ' ' || v_produit.nom || ' ' || v_produit.prix_unitaire); END; / + +--4 + +DECLARE +CURSOR c.client_commande is SELECT c.id,c.prenom,c.nom,c.email,c.ville,co.date_achat,co.id_produit,lc.quantite FROM Client c JOIN Commande co ON c.id=co.client_id JOIN ligne_commande WHERE co.date_achat=; + + + + diff --git a/TP_BD/fichiereponsetp2.sql b/TP_BD/fichiereponsetp2.sql new file mode 100644 index 0000000..9bcf124 --- /dev/null +++ b/TP_BD/fichiereponsetp2.sql @@ -0,0 +1,14 @@ +--1 +CREATE SEQUENCE seq_tp +INCREMENT BY 1 +START WITH 121; +BEGIN + +--2 + +CREATE PROCEDURE sp_insert_ligne_commande(p_commande_id INT, p_produit_id INT,p_quantit number) +is v_prix_total NUMBER +BEGIN +SELECT p.prix_unitaire*lc.p_quantite into v_prix_total FROM Produit p, Ligne_commande lc WHERE p.id=p_produit_id +INSERT INTO Ligne_commande values (seq_t.NEXT, p_commande_id, +p_produit_id, p_quantite,v_prix_total) diff --git a/TP_DEV3.2/Arbres/Node.class b/TP_DEV3.2/Arbres/Node.class new file mode 100644 index 0000000000000000000000000000000000000000..374deda6c8028960f510077ab4134c14ce0a1e30 GIT binary patch literal 2013 zcmX^0Z`VEs1_pD6VlDdpc@B+ z4?BY|BLhobVs0uUgOE>FVp*boPGVlVesD=qW?s5ABLhcrMrKY*QEDC|g8)Rnv?Mb} z-zT%U#F~+TGdMFnFR`SwD3y^x0!`Y+$1gu6)!NRQk%7%7GcU8mj*&rB1EL7o4$Uw| z1{UZ1lvG9rexJ;|RKL>Pq|~C2#H5^5Mh1?=loV%>3m6$VH6R9p)N>@JrDY~(q!uwU z@CKJ8CTII57JzlIGx#wwuqKse=At;u#Wn7!nzh7#UbV)^ac;gH)yPFsOl)q%x#|+@Q$Akj{|7!=TBa#lxV& zpvuS~7h0T{o~mG_0CJiFNT-5LQEEYIQAvJgQK}sy0}n_-9~u^n3=E760$>qvT=*wt zr6!j!G6;c%z#j7~Ni9k&$uDAL;D?40RIfE71G5Gw7Wfc~K>@(Xz?_(pf)>dTgRM2A zP^=5CEG|jSWn^H^FD+qY5QRiRX1;zvQD$CAa7j^WVy-n8LncEOBLfp7BO`-&Zen(- zbADcOVo7*rNrrQNUU5lcUP&<{g9S8>!M=c|T8MGTBAS>&ut-F;m63tH0OW?8JVpkN zOn3;0X+TXt2^nif2KJ1^V!zai5^#`2fwB^qBLY(ob_6sG7#Wxu6%-g5)UY@iYCKpu z)EA5l?CGf`e&DQ$Y93qxXHI5u2`GscGcpKjXre_EJ3}@o<>WImsDL91Y}4$TBc8$bm)W8CV$@859^485kLq7#J8V8JNLp zMYXmwFly~)V2a$%z`T`#MN4}t1M5ZxP##leU|r!R*~!4g$l$B9lYyI&VJ3r=&Q1m%Mur0nynedcyBPRD%J`T6e+;sO zi2>w9F$Pu!1_luZ0R~Y9T?R1*a|Uq+D+UP$b+E&k{xC?fGidx`kZ0fo6**8B^e`|p zurn|)*z9KDjnvx4Ah4Z5&_`<11EzHgD%u%@eC{s%nS?+YFhhP<}>hYVqg~% z-NwMVaW{ilq!zQ$b_Q`D?HvrlzB)n@+Zgx}!2ofCCIcIT76TuHHUmF{9)lEvK7%}i z0fQ=oA=nMf42=8?%nW*9hwC%sF)%Q2F)%XZFcdK4GDtF5FfcIiF)%S$GB7e&fk`I- DS>n(t literal 0 HcmV?d00001 diff --git a/TP_DEV3.2/Arbres/Node.java b/TP_DEV3.2/Arbres/Node.java new file mode 100644 index 0000000..75fda30 --- /dev/null +++ b/TP_DEV3.2/Arbres/Node.java @@ -0,0 +1,50 @@ +import java.io.File; +import java.util.ArrayList; +import java.util.List; + + +public class Node { + + String name; + List children = new ArrayList<>(); + + public Node(String name){ + this.name = name; + } + + public void addChild(Node child){ + children.add(child); + } + + public void afficher(String indent){ + System.out.println(indent + name); + for(Node c : children){ + c.afficher(indent + " "); // indentation augmentée + } + } + + public static Node build(File f){ + Node n = new Node(f.getName()); + File[] list = f.listFiles(); + + if(list != null){ + for(File child : list){ + n.addChild(build(child)); // récursion OK + } + } + + return n; + } + + public static void main(String[] args) { + + if(args.length != 1){ + System.out.println("Usage : java Node "); + return; // éviter un crash + } + + File fichier = new File(args[0]); + Node tree = build(fichier); + tree.afficher(""); + } +} diff --git a/TP_DEV3.2/Arbres/Prefixe.java b/TP_DEV3.2/Arbres/Prefixe.java new file mode 100644 index 0000000..12a9e78 --- /dev/null +++ b/TP_DEV3.2/Arbres/Prefixe.java @@ -0,0 +1,39 @@ +public class Prefixe { + + + String value; + Prefixe left; + Prefixe right; + +public Prefixe(String v) { + this.value = v; + } + + public boolean isOperator() { + return "+-*/".contains(value); + } + +public static int index = 0; + + public static Prefixe build(String[] t) { + String token = t[index++]; + Prefixe p = new Prefixe(token); + + if (p.isOperator()) { + p.left = build(t); + p.right = build(t); + } + return p; + } + + + + + + + + + + + +} \ No newline at end of file diff --git a/TP_DEV3.2/Arbres/Repertoires.java b/TP_DEV3.2/Arbres/Repertoires.java index f99e301..70f07d5 100644 --- a/TP_DEV3.2/Arbres/Repertoires.java +++ b/TP_DEV3.2/Arbres/Repertoires.java @@ -27,7 +27,7 @@ public afficher(String nom){ for(Node c : children){ - c.print(nom+""); + c.print(nom+" "); } diff --git a/TP_DEV3.2/Repertoires.java b/TP_DEV3.2/Repertoires.java deleted file mode 100644 index f99e301..0000000 --- a/TP_DEV3.2/Repertoires.java +++ /dev/null @@ -1,73 +0,0 @@ -import java.io.File; -import java.util.ArrayList; -import java.util.List; - - -public class Repertoires { - - -String name; -List children = new ArrayList<>(); - -public Node(String name){ - - this.name=name; - -} - -public addChild(Node child){ - -children.add(child); - -} - -public afficher(String nom){ - - System.out.println(nom+name); - - for(Node c : children){ - - c.print(nom+""); - - } - - -} -public static Node build(File f){ - -Node n = new Node(file.getName()); -File[] list = f.listFiles(); -if(list!=null){ - -for(File child : list){ - - n.addChild(build(child)); -} - -} - -return n; - - - -} - - -public static void main(String[] args) { - -File fichier = New File(args[0]); -Node tree = build(Dictionnaire); - -tree.afficher(""); - - - - - -} - - - - - -} \ No newline at end of file diff --git a/TP_SCR3.2/TP02/TP02-reponses.txt b/TP_SCR3.2/TP02/TP02-reponses.txt new file mode 100644 index 0000000..fdf9a70 --- /dev/null +++ b/TP_SCR3.2/TP02/TP02-reponses.txt @@ -0,0 +1,8 @@ +TP02- + +I- + +1) Les adresses réseaux correspondantes sont: +-> 45.45.40.0/21 +-> 62.62.32.0/19 +-> 37.37.36.0/22 \ No newline at end of file diff --git a/TP_SCR3.2/TP02/with-routers.imn b/TP_SCR3.2/TP02/with-routers.imn new file mode 100644 index 0000000..444c700 --- /dev/null +++ b/TP_SCR3.2/TP02/with-routers.imn @@ -0,0 +1,455 @@ +node n0 { + type pc + network-config { + hostname pc1 + ! + interface eth0 + ip address 172.16.1.1/24 + mac address 42:00:aa:00:00:00 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + ip route 0.0.0.0/0 172.16.1.253 + ! + } + canvas c0 + iconcoords {24 288} + labelcoords {24 319} + interface-peer {eth0 n3} +} + +node n1 { + type pc + network-config { + hostname pc2 + ! + interface eth0 + mac address 42:00:aa:00:00:06 + ip address 172.16.2.2/24 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + ip route 0.0.0.0/0 172.16.2.0 + ! + } + canvas c0 + iconcoords {336 432} + labelcoords {336 463} + interface-peer {eth0 n4} +} + +node n2 { + type pc + network-config { + hostname pc3 + ! + interface eth0 + mac address 42:00:aa:00:00:07 + ip address 172.16.3.3/24 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {864 192} + labelcoords {864 223} + interface-peer {eth0 n5} +} + +node n3 { + type lanswitch + network-config { + hostname switch1 + ! + } + canvas c0 + iconcoords {168 24} + labelcoords {168 47} + interface-peer {e0 n0} + interface-peer {e1 n6} +} + +node n4 { + type lanswitch + network-config { + hostname switch2 + ! + } + canvas c0 + iconcoords {480 48} + labelcoords {480 71} + interface-peer {e0 n1} + interface-peer {e1 n6} + interface-peer {e2 n7} +} + +node n5 { + type lanswitch + network-config { + hostname switch3 + ! + } + canvas c0 + iconcoords {768 24} + labelcoords {768 47} + interface-peer {e0 n2} + interface-peer {e1 n7} +} + +node n6 { + type host + network-config { + hostname GW1 + ! + interface eth1 + mac address 42:00:aa:00:00:03 + ip address 172.16.2.253/24 + ! + interface eth0 + mac address 42:00:aa:00:00:02 + ip address 172.16.1.253/24 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + ip route 0.0.0.0/0 172.16.2.254 + ! + } + canvas c0 + iconcoords {264 288} + labelcoords {264 324} + interface-peer {eth0 n3} + interface-peer {eth1 n4} + custom-configs { + custom-config-id default { + custom-command /bin/sh + config { + ip addr add 127.0.0.1/8 dev lo0 + ip addr add 172.16.1.254/24 dev eth0 + ip addr add 172.16.2.254/24 dev eth1 + ip -6 addr add ::1/128 dev lo0 + + ip route append 0.0.0.0/0 via 172.16.2.252 + iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.16.2.253 + iptables -t filter -A FORWARD -d 172.16.3.0/24 -j DROP + rpcbind + inetd + + } + } + } + custom-enabled true + custom-selected default +} + +node n7 { + type host + network-config { + hostname GW2 + ! + interface eth2 + mac address 42:00:aa:00:00:05 + ip address 45.45.45.254/24 + ! + interface eth1 + mac address 42:00:aa:00:00:04 + ip address 172.16.3.254/24 + ! + interface eth0 + mac address 42:00:aa:00:00:01 + ip address 172.16.2.254/24 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + canvas c0 + iconcoords {624 240} + labelcoords {624 276} + interface-peer {eth0 n4} + interface-peer {eth1 n5} + custom-configs { + custom-config-id default { + custom-command /bin/sh + config { + ip addr add 127.0.0.1/8 dev lo0 + ip addr add 172.16.2.252/24 dev eth0 + ip addr add 172.16.3.251/24 dev eth1 + ip addr add 10.0.0.250/8 dev eth2 + ip -6 addr add ::1/128 dev lo0 + + iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.16.3.254 + iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 45.45.45.254 + + ip route add 0.0.0.0/0 via 10.0.0.1 + + rpcbind + inetd + + } + } + } + custom-enabled true + interface-peer {eth2 n8} + custom-selected default +} + +node n9 { + type pc + network-config { + hostname pc + ! + interface eth0 + mac address 42:00:aa:00:00:0d + ip address 37.37.37.1/22 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + ip route 37.37.36.0/22 37.37.37.254 + ! + } + canvas c0 + iconcoords {24 576} + labelcoords {24 607} + interface-peer {eth0 n13} +} + +node n8 { + type lanswitch + network-config { + hostname switch4 + ! + } + canvas c0 + iconcoords {744 528} + labelcoords {744 551} + interface-peer {e0 n7} + interface-peer {e1 n10} + interface-peer {e2 n11} + interface-peer {e3 n12} +} + +node n10 { + type host + network-config { + hostname host1 + ! + interface eth0 + mac address 42:00:aa:00:00:08 + ip address 45.45.45.1/21 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {792 264} + labelcoords {792 300} + interface-peer {eth0 n8} +} + +node n11 { + type host + network-config { + hostname host2 + ! + interface eth0 + mac address 42:00:aa:00:00:09 + ip address 45.45.45.2/21 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {888 384} + labelcoords {888 420} + interface-peer {eth0 n8} +} + +node n12 { + type router + model quagga + network-config { + hostname router1 + ! + interface eth1 + mac address 42:00:aa:00:00:0c + ip address 62.62.62.253/19 + ! + interface eth0 + mac address 42:00:aa:00:00:0a + ip address 45.45.45.253/21 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + router rip + redistribute static + redistribute connected + redistribute ospf + network 0.0.0.0/0 + ! + router ripng + redistribute static + redistribute connected + redistribute ospf6 + network ::/0 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {576 576} + labelcoords {576 601} + interface-peer {eth0 n8} + interface-peer {eth1 n13} +} + +node n13 { + type router + model quagga + network-config { + hostname router2 + ! + interface eth1 + mac address 42:00:aa:00:00:0e + ip address 37.37.37.254/22 + ! + interface eth0 + mac address 42:00:aa:00:00:0b + ip address 62.62.62.254/19 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + router rip + redistribute static + redistribute connected + redistribute ospf + network 0.0.0.0/0 + ! + router ripng + redistribute static + redistribute connected + redistribute ospf6 + network ::/0 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {288 576} + labelcoords {288 601} + interface-peer {eth0 n12} + interface-peer {eth1 n9} +} + +link l0 { + nodes {n3 n0} + bandwidth 0 +} + +link l1 { + nodes {n4 n1} + bandwidth 0 +} + +link l2 { + nodes {n6 n3} + bandwidth 0 +} + +link l3 { + nodes {n6 n4} + bandwidth 0 +} + +link l4 { + nodes {n5 n2} + bandwidth 0 +} + +link l5 { + nodes {n7 n4} + bandwidth 0 +} + +link l6 { + nodes {n7 n5} + bandwidth 0 +} + +link l7 { + nodes {n8 n7} + bandwidth 0 +} + +link l8 { + nodes {n10 n8} + bandwidth 0 +} + +link l9 { + nodes {n11 n8} + bandwidth 0 +} + +link l10 { + nodes {n12 n8} + bandwidth 0 +} + +link l11 { + nodes {n13 n12} + bandwidth 0 +} + +link l12 { + nodes {n9 n13} + bandwidth 0 +} + +canvas c0 { + name {Canvas0} +} + +option show { + interface_names yes + ip_addresses yes + ipv6_addresses yes + node_labels yes + link_labels yes + background_images no + annotations yes + hostsAutoAssign no + grid yes + iconSize normal + zoom 1.0 +} + diff --git a/TP_SCR3.2/TP03/dhcp-serv.imn b/TP_SCR3.2/TP03/dhcp-serv.imn new file mode 100644 index 0000000..a9be52f --- /dev/null +++ b/TP_SCR3.2/TP03/dhcp-serv.imn @@ -0,0 +1,215 @@ +node n0 { + type pc + network-config { + hostname pc1-1 + ! + interface eth0 + mac address 42:00:aa:00:00:01 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {144 384} + labelcoords {144 415} + interface-peer {eth0 n2} +} + +node n1 { + type pc + network-config { + hostname pc1-2 + ! + interface eth0 + mac address 42:00:aa:00:00:02 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {288 384} + labelcoords {288 415} + interface-peer {eth0 n2} +} + +node n2 { + type hub + network-config { + hostname hub1 + ! + } + canvas c0 + iconcoords {216 240} + labelcoords {216 261} + interface-peer {e0 n3} + interface-peer {e1 n0} + interface-peer {e2 n1} + interface-peer {e3 n4} +} + +node n3 { + type host + network-config { + hostname DHCPsrv + ! + interface eth0 + mac address 42:00:aa:00:00:00 + ip address 192.168.10.10/20 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {72 96} + labelcoords {72 132} + interface-peer {eth0 n2} +} + +node n4 { + type host + network-config { + hostname GW + ! + interface eth0 + mac address 42:00:aa:00:00:03 + ip address 192.168.10.254/20 + ! + interface eth1 + mac address 42:00:aa:00:00:04 + ip address 172.16.2.254/24 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {456 96} + labelcoords {456 132} + interface-peer {eth0 n2} + interface-peer {eth1 n5} +} + +node n5 { + type hub + network-config { + hostname hub2 + ! + } + canvas c0 + iconcoords {624 192} + labelcoords {624 213} + interface-peer {e0 n4} + interface-peer {e1 n6} + interface-peer {e2 n7} +} + +node n6 { + type pc + network-config { + hostname pc2-1 + ! + interface eth0 + mac address 42:00:aa:00:00:05 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {504 360} + labelcoords {504 391} + interface-peer {eth0 n5} +} + +node n7 { + type pc + network-config { + hostname pc2-2 + ! + interface eth0 + mac address 42:00:aa:00:00:06 + ! + interface lo0 + type lo + ip address 127.0.0.1/8 + ipv6 address ::1/128 + ! + } + auto_default_routes enabled + canvas c0 + iconcoords {696 360} + labelcoords {696 391} + interface-peer {eth0 n5} +} + +link l0 { + nodes {n2 n3} + bandwidth 0 +} + +link l1 { + nodes {n0 n2} + bandwidth 0 +} + +link l2 { + nodes {n1 n2} + bandwidth 0 +} + +link l3 { + nodes {n4 n2} + bandwidth 0 +} + +link l4 { + nodes {n5 n4} + bandwidth 0 +} + +link l5 { + nodes {n6 n5} + bandwidth 0 +} + +link l6 { + nodes {n7 n5} + bandwidth 0 +} + +canvas c0 { + name {Canvas0} +} + +option show { + interface_names yes + ip_addresses yes + ipv6_addresses yes + node_labels yes + link_labels yes + background_images no + annotations yes + hostsAutoAssign no + grid yes + iconSize normal + zoom 1.0 +} + diff --git a/TP_valarcher/Yolou_4.tar b/TP_valarcher/Yolou_4.tar new file mode 100644 index 0000000000000000000000000000000000000000..6b768dd530690631eb6e155b9555c5e0966f6dd9 GIT binary patch literal 30720 zcma#d&&e;1H_>OHAuup7FfcbYWiT)>F*h~@(MHB5=7tO)aVTamG&M9ZH#RjiGBsl` zFf=wYGht9LrJ@d8i~4925nKMalW4Ma2pQhgYT~rst<;7M7;!aXCL~n3-B!qEMO# z3XIJ3)V$+UP%0?a3X1YeQj@`vl6!b%NoHyhI1wclWR@i6fNTYs zTw0QulUbZtl3H4%2aeq&h13#-KttVRq~O65#~NT?!sC+5IVZ8W7~w!GP)I9iq*g%V zA}>ErH!VL8?5e!foSalmsHKk@CM&qYR3)Y)7L*)bnW~V8l;~jzD~;>WY6YMCqT<5R zM-4Me^AwQ007~MSX_=`Q$w)^bCsm=ivbf~%3Q%gy&n!_$%`3~VOf3RO2uh$9lon?w zfU23I+{BX1vQ&i>P=rD-KaSCR=bTp=&BEH$wd6yAtbsF0hPmzkTG1IcSSi3;hU#0E+WAP?sjl%(n@pvQFz z$kCa3DWH@N&Xp;kXiqIs07YX)YAH0eBtpXgln3+k^b`*5=JHI=)B&pkc{vm05)}XD zK{E{~hvj4*UI`BMqmxU)$pw~jG$6SblqNx$DxwS9bS)eXETdqzr^6m{bKM8wzqtixqMb zi_*cF8k}nmtyXY9ys`*d>OsqZL%a19oS~&TEYpBW0B`}AlB!Uam;*|Auy{$yEJ{rV z6&;{L82VR1+%XWTxhU z>XY2m5^yd`NmWS7$uBHTEm9~-EXYg&*KnY02u*>hc?!vi#bARHlS?woK-H!~acOY@ zD52>o_@pYN99{`32tiJS7b!VtRZ||Q83L`hLG2h&WnQFU3NI|dB@?Ww1SJ$u%SH!O zxPlrCMd0!ZDJ?6&s&!bzD!_68$m4k>nV`xaP@sXEN9je0 zd8Ijtka94k6kg(Uap~d&TwH-h;QA{lH4W4N24|AeJeXdEy!<=`ProqN;1Dh@m%}Te z&FZ4VD+}`Tic>-DXoajt4Koun6%MZi)gBNL^~6jCaE+3ee0U|Oj4lE->Od*hN&#e} zZX(!DOar+Bz@=z#PXQj7Hzyddr? zO3h6yDl9#`QUTn|0>yGMs8v;>P?BF-l3J_)YS)+M9A24P3`%6ViFuHo3n-gcLFzdj zP@>8Qbx}Yy!{L=#hZlhTo19uyl9-v7TC9*-Q2;8pGV?(VW^lFqs9{b?Vp0yY!IYF= zlmZHwf}GTnM-6j9iRMwm98i5ylm@EKKpmQ*yi|}>acXW-4k&*W7#f*63b~-ZQWm&K zD^^I&OU?&1(TfhROa^z6QY#XZOJK!labam{PBF;uppH~wX?`ZCv@z06A{2=QiQvY& zk!}(^3R8=V6Dtp|1ch+X;gxAQhgT+NWP+QWpymXYYy}clfYiPaCxBWV1yF|;>nZr= z=P6{SfOB;*w3Af?YNvtHl2VKFGxLfeUQW#e2S`e0S!OY)0!qzOfR}8E zIiQ-MSOIKjL25~62~zq=fyZ|asP_ozS{Cbo3Ojf=72Ns*CAYM+%;XGEc>!_;tVGB! z1r==YhB2sA%LlcLi=nZRnWK=FSXu&3Qdy~BXBL5bo25CRDzgaOE&@ksVktPaCYC6K z21DWk(g?+qq2O_mtfP#8Pkz z4wMB^T#}rVm{|l)041r#;0y%|HCP%>&dAR!&IGl-!5ISVNKjgVb-jue63ajlo&v7z zK_zpM0x0vqeXGaCg=AoWmHrrA+lq0ad*4{xm3J;6+Cy{>veeQF(C`X4_#quYcMuN>hu$ z+FhaAK|S1DP}!~n8nh|O%sspU)YM4J$u9+~3sbN{@7#c@)6@#k*ivRmDk$8I6s$lF zBqrQbLH)Hspn3@0qt8oDB@oa!90_f_q=G$y;bCwX zL+dJqL%YFE+2YcqEYRRg8ul;-8-yNHDXGPo>3KQ|d5LA2>ENEG4mj%aK}B=1CMbZ6 zu>??J3TU*UxTFX?%7aLo>5#rBs6Gd^{^6q|si5LGF&SK+5eN>r3qg&klvJ=sG0cOd zBTwW+nyQdnnp2Wl0Lon$HHrpOUMdFpF|Q;wueA74!!kr@W#+<)S5Q#^N}H)g;7|hv zKdK}+<)s#(rn{1&`~rot#9~mw3WU|pexO1*5#AO=>UqISS~JvkEUdK`8m#N6U`0fU zker`aT$)po3Le7A0S~yQK*}~)#g|g5kOgYj!3L9{#VBfb4U}w4ia=wyIeJ{7!MaXF zS)P`eQvy!(pjIHX((;Q+zyXj730P2aLMd->Wv67& z$PjqM5897LO2o*Pftt@?W#AS7c!V=2Cow4>l089*IVTZm=p5{0H*_E4azx7EmBrv% z1LAR=MOkGR)PkbS;#A~jlryLc zwE|S%pf`Xt!0nzCP(_Gd<3q>S6q56ciZas=uhit?f{esPfSbwC>~v_gf-}+i<} zE|^;sKsB^aB51S$)LZ~n8jhu)Tm^DsMrkIf7=|WB1*9YnDve;t5?()pMqI$PDya2+ zcx57JP66cX)Z&7C@Z=0M&LHX_nO6_t5>TBLoT-plnhY8lgP5)WA9F1_yb@IZg99oN z*@e)79i*8Rn0s@;#RYg0<da@da{DNX`eB8;4hdI$;H%2@i1pp%|R`@<2mOMWDVDswbVnEq{a! zhgX6l5H_xh7TP|@r5mX4b9iM+DyRWpq5ztlNY4ZJS`RM(jTb8*yR9g-xCGRPEX#zp z+aZH7j~ZrXWP-;$3rka>y$@*Pv?NslF}e&cs6j~$o(sY51mzWDaLBuZY9jFPMX^Fr zX+cRTIMbvm6qn>DXG2<>pfr+{Us?hlDh2hvGSl-?sW_NmjC(KvI+_4(@Iyx~kmmjr zjFE;Gko%>e$&cca%o5OeVos_;K~a8kYH@LCF?@gyJf{E|rhDO@e}YYv9fbs5=C%tMU); z1hr|BL1UjKplTdk=YoU^it04hn~E(gud9bTTF2kk0@k|eYYHO4(G0F91B zP?s4rsb`EdE>M)3o>-J}cqPa~DVd4sMTwv}jg(S_l>A)K(27D@erZu&COCKtQXzvM zplUToAvZCvurw8^FPaRRuuCmg05zG4K)o5zxPEbI5x5x#E>58BM39dl!*Jk^C5Q`3 z@QI+AFQ|RR#i^x5pfM!Wfs&NND@#&~ax?Q%ixg53LnWZF1)BnOK`OW}pHr-mSW*HS z=PW5!NX!D)mf#$ui?h=X4XIQG_sp`?JpJ&D)I9x=jMO}EQx{YY6{Y5-6hnGxum~#v zi4}pzD~pp4ugps<%FI`Q_G!SgL7?d`@HinT;;|(S=m;9+D?rHvG(5U(aGV3d=3AVc8&m@-hG4m25@lZreE3n^<$VKJn~6`Tpm zM&Nu8?wS?k7iX4arlC$57o-;DLg!k+iBcgizX&ven^>w)keHX5S_Cr(d&Hv}mYQ2| zcvW&nDtM9uVjSEYP!fUF^rd;AhBCOO2L%CW@)y+R$V|!v551v!x1cB=H1?^Gn3G>r z44%V<6n>ydJ5b&Sr>`RT93UhsgGyrb1P%=lXxRxF&`L$~KweR5dS)@G{|>6KQc`n4 z#Q?aG1T{CYxHvyK6Ex5WYT-g$l3D_C7BqnLK*L9%dD)yC$ecyIJKxO zGdUGBgOFJaseQqPUvX(>S*9KrWW50-!a!?m@nr+mCEJP^D2hCA~Mq0rUR;&Oml)zmBaDahJB~YOf z2&=h#^HboYnJaqWVrn^G0POG7{vd8vX6q?+R50(ZD`kZS=eE^sg2 z5o}Wsq}U7wr3bLEb3P;>-N5x5I2@sdfQDib6-Pm8QAsAKb6N}=A`5`l`&N+FmJ3pt zfwO)vD2YMs1I=6{mcW#NG8<%M2h&lYA&tb6R8Mf`DgbpgKofR(i8+2q%XDzL9I6@S zCmn^tQqZcAl2n99aY6LUcIp8+U;f~r$+Dug9M zkPIRXf_;M8Xw%^WTMkk~S{4N_BLek5AZZJwq=4p2Q0o$uwLs2>R%)PDqz)ITodGVP zV3`h7OB`MR8NmTL1ysS6AZY=4<59yLM4koBUZp~oBV~fxBdMrMyb#4FG&4f7D#&Qa zpetxu7uJRf7gwMOxZ45hJ>?u;32G)lr#rzNdDMZd)Di_}=&V1iX_A?rN5!6p3BjHR z(mbXKQfC8Hf~SI~MnOYWu!##$i3T53fGpsFH`zcsz!eg#0|jmfgZmjEDNq*=vS2ba zSOMGxh0l5?=YZOB;En*OTMC(BgRO=@3KwWE5H_0vZT_c$r_ys06(Hk!pr$8m_5!l< z05m!d8b5(7Y&Ub_O&E1D=QSN>u;{7_^xSs(g}DK_gS3E<1Fr3p8C)l@FT91&!i^ zIu79GDy)qS(gO-1*kXcIh1^WgSP*C)2|Ni2UWZ{quwkF5kdj&ionHno8YqOWM}^Nc zAtpx^K=nXTCTJ2CRDG4D78Qfsl?++qrh9mSE@<%tXn+Db<_QUo;?&X{NJ$6^4UoUE zL^?PX!ManRJ`^Z8@{2(Wx{5)~NqBgJdcmL-R>hFQ5mLCKF5JSAfbxrSOLJ0-z>`1< zpf)}z6+(tC!Oo*kYhD37M+VEVuCP_bC<|9oOBApKkwOZn(Oq_UWib~QQtpIg+Eh?o zj52KoYx0A8YTya80?+~i(C{cyc?`?N&{0%SWtW^%V54rurub%nM7*$xHz`2GPa@n;(=44WZIJaBCE_9;h@Yu_QAMRB?g|K~VV! zsv)2SPY^WAfGT!KP=Lw`P+64+3U6@F0+gR&*#jQAnW>rV6d;)tXfAxE5JMP#R`d_*_AwyUqN$6pj9`SkW#*&D8CG{?hTZ|6LXU?(@PJpFFCvtv~Z}X z7!-{u@UjZzXwYJ}V#pL*5oCP_cyIzVxd~bY0?z=cMMa=BnV^-8pmL@H*7(l@t(Sx@ zFoDfu9$txX6{s2pdrJZ2Akdmgh@Zj5MzKOlW?C9(jxG>S%ygUKa*MqgyzyVs4n3 zWD#!}ESZ7Qd@i_s4+R7L(HUr@3DiV{O?iN#6A*};8inVKY$u5(2@z17cu5y6T$mSO7lPigrFtcpz1TZ1knhE zHHttR2o#(_Ed*$j8MGt^$(hh8K2TVL5^N4=TpQ#nQ1iYtEiDr?hYeX10cyR#79oM= z)N;T%6S~|J)c54#;=;0lXlM&T_kHOH6oIBX;)_zjD+Z~%4GjPOFGCYk6QuoLCdLc~ zhUNw)=A-++=#jECAQ2C0dlaQYS3wnn_5wjRNnqc_#l;2MJwwvQF>tfKGzYYt5mcSS z&CP|Zor07cpb`r-Lk?P@1ge?f`^rGYKXeZoXr*O0Ujr?F@*pd#(TXqRDil<@ftN6V8XBOrs1Ti?AxeAbs@L4qB2d79o0g?{ zplJZm%4lfw7il?00W^R>?I=)Z5^1v>xc*NqN(PN3g1Y_%ptemBbeLODLBlT<)E)y5 z;)8c|fTmeM3zt(t^AnKi!D3A%E-ud;g zQsO(ihJ?6cI3Bbt2DYpiG{Xm7;tx&+ptM^8*(+6)ng{BE!YqXJ!NH0^lkAXbEpQ_v z2h?5zHBUfW7(tC^M?XiO$Y56mmrw;~f4>mdh!9uM4ieDd5oq;TSt@A5k0zddaLCPi zkWK|Fh0vtbA_dpP63}ui*zN}KW*<<)IuS9O51AN;h9s!v2_0?+4X%Oafk5qMNF`fz zcx7oZXsITsLy-gPBtWJc;H@Y~Bqf74QG%9fD?m-w0ncfbrRHT8DWGjT0oepH64H=X zK-xwDvG?%GvP{rmBDeqmH*i7CWYDNT$Zf@XTna9r3=W=*Nk$Y5pb1&n#yV(%vQ=<( zQ_z5AP1wA!rXClU0%)}>Xo<9fJr`F%Vo@?Uq7;fVAu}V;T`f>=LFNZR$F|pi~MO*jbsJkzWd$o#6tlB!O(71+B;kI=r$Nw8|VbOOcoZjXY1# zl3UPZswNi~IPxI9CnSYB3J}LYHmX7c8SIio$O;cwGYQ&U0de!e)2e!0pynGmuYu=D zO7ozhQ=D1^o{cU6Pt7DERwm{oB5j@nClOH7AXSeG9PXK*O?}W|4e&$${5~g3wuG zP)tCB36k|7%ixiw2whx*6DLTDV?I8mt6liGyOWu&MfW$1M&xg9R)5+1<+sEHs0n&SQbpuT} zfwp^xl!6xB=738QP%jeHY=G^0PfSY#&1!>-0BH9J+#v>K0r-+f&?Kd+8#pdtJywwO z;3Eu`pzsE5as>5yAek9Cx=~7QE99)13flMpnrlRC*MejYB%{G|RC5rk0zu;)WuPGd z#5fjYL>X2zfoFD7z&=7wCXliOTpU322qgW(ie8Y9pkoWj4%U0rFqeyq3$Zg5vOcmH z)RX}=%RuWi6%cdGpp7=r@;jvzk*C4hA%!Gt&lhOh7RZp)JO%JLD|pRQYO#V9Y*hhB ze`011d`Yg3LP=(BW?uTEhGkq_0igW@pb>}?@a|A>+`#(0;9*SAB4O~3tK!2e!SxrY z$O5GxL=3`rQ$PX*v6%u(6qbU@1EjK9!HO#&5p<#f@;D`^zlhkQjMI2f1^|_};LX5R z3XdA*VC>9&)G!xuz(6i|iwq>(OF&5sWRE{+n`J3@!Wy*K610yFv}UO^PoWr;`AZJ^~93s9*F-GBy3 zhlf{!iZQ&+Zcxfg1g#qaFMk3BR8cCVk%hMLEjd3Av_J)1je**m!66FR8rHCeS|)+{ z3glSSQ79EEUjU>Lr=jEv;+&lqsO%0AuqTq{IM4Y%-|60j+Gy&&h;3 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%0AuqTq{IM4Y%-|60j+Gy&&h;3 zki`8Wu>7t8+DHZ3wG9p((Ec09x_dtbD`-VissNht(E;xZ$veC=i)fqFf;sYT$;1Ne7Iplvq*n}@zTg^SAxdYS-ejV@?u zF=*BSvSo*G5QD0>GSGNBs3QZ)o#<=Dk(y`VHZR(8aZuBeuq}|P7GzDL0(gWLe5MJc zaSG{Xf|6ZIVgacA4N9(%1wo)4a)%dymIT2z>FIHW27|VI5VjIh)f9o2R6)*e0A*y5 z(TD^Eu^F^mvIx|`2KP~mK>ayTRSlZf0Sz(hAs0rJu4;v5AV?X7TttC(#9}R=z}@Qt zaJ!)h-fn%BsX$+@2+7Hy(RlFU zeWdoSJ*cadm#UkapNXTK0%cU_phQk0xQ@@rPk~H>p%zoHf(W!Igs2h=bSx0Yl3pt= zaFYoVMbN${be%pZg@LwnLXN(H#0Y3s4Rx^^Bte6Rh{3CG6cFnnz%2vFLSm3U@X`>( z3QE*fQ;>5E!0jsVY#pcr0GX>pwGOs64pf3d7pQ>(0CoKc#A4LKR{^rfB~?cuGY9Mv z*dh%0*g5FLByiszwCN4h?Eozm12t7agF*$MDW^=(DL;^@D^%A*mfL^=p%{4?I%wV+ zycV<=)Tls;Fi<2z*KvRs__;W{z@{<5OK3qSF@cv&f!9mvAd(_dUT##ZJ63<{C>OdCW zWacOor5;`m>Op~`780P4E{p=wdP3+Fu|g5_3DhPP+DPF3ptSgkeUo=4R@lKt$?QOp@klJMiP7s2x!IyG93$< zTZQD>EbxF!CU~p>5*d)u8PI?b+$FHH9N_CGK(g3o=148WK#MCuts3y+&Xq;rZZmk} zDWvTQs=Ck{anME&q~Qx`l_5m}{1k>1@abrfaak-4G~{&)XuC~8wE<{_GNMUVkO(?L zDi=I#4q4%eu~;D|Q31T088kiub|JRVf$e1kEms5$O+wcYfa(-T9}?UH2JQ1ko&R^v z&r8cJ0=1q%B_{I90RN;C@Teas-GExenc&l`AoHJ~COCNhA2vZ-oT-ox+svJ+fS76p zMJ7sATY)+PplAVC3*hq)K&xEAr6H*P%S+AxPiTXh>F{j=kS=Vo9v3mzVGA8A(4Ze= z6F7Ku1GLT()P6x