From 23dddbb9ae3a03b95824aa20793159dd65497b10 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Wed, 8 Mar 2017 10:47:47 +0100 Subject: [PATCH 01/17] CGP: Initial commit Lab 1 with the client files --- exercises1/Makefile | 43 - exercises1/p1.c | 54 - exercises1/p6.c | 92 -- exercises1/p7.c | 120 -- exercises2/Makefile | 32 - exercises2/client.c | 0 exercises2/read_line.c | 86 -- exercises2/read_line.h | 5 - exercises2/read_line.o | Bin 5168 -> 0 bytes exercises2/server.c | 0 exercises2/test | Bin 11336 -> 0 bytes exercises2/test.c | 25 - exercises2/test.o | Bin 3736 -> 0 bytes lab1/.DS_Store | Bin 0 -> 6148 bytes lab1/client.java | 242 +++ lab1/gnu/getopt/COPYING.LIB | 482 ++++++ lab1/gnu/getopt/ChangeLog | 114 ++ lab1/gnu/getopt/Getopt.class | Bin 0 -> 7366 bytes lab1/gnu/getopt/Getopt.java | 1337 +++++++++++++++++ lab1/gnu/getopt/GetoptDemo.class | Bin 0 -> 2868 bytes lab1/gnu/getopt/GetoptDemo.java | 97 ++ lab1/gnu/getopt/LANGUAGES | 23 + lab1/gnu/getopt/LongOpt.class | Bin 0 -> 1658 bytes lab1/gnu/getopt/LongOpt.java | 195 +++ lab1/gnu/getopt/Makefile | 7 + lab1/gnu/getopt/MessagesBundle.properties | 33 + lab1/gnu/getopt/MessagesBundle_chs.properties | 33 + lab1/gnu/getopt/MessagesBundle_cht.properties | 33 + lab1/gnu/getopt/MessagesBundle_cs.properties | 33 + lab1/gnu/getopt/MessagesBundle_de.properties | 33 + lab1/gnu/getopt/MessagesBundle_es.properties | 33 + lab1/gnu/getopt/MessagesBundle_fr.properties | 35 + lab1/gnu/getopt/MessagesBundle_hu.properties | 32 + lab1/gnu/getopt/MessagesBundle_it.properties | 32 + lab1/gnu/getopt/MessagesBundle_ja.properties | 32 + lab1/gnu/getopt/MessagesBundle_nl.properties | 32 + lab1/gnu/getopt/MessagesBundle_no.properties | 32 + lab1/gnu/getopt/MessagesBundle_pl.properties | 36 + lab1/gnu/getopt/MessagesBundle_ro.properties | 34 + lab1/gnu/getopt/README | 57 + lab1/gnu/getopt/buildx.xml | 68 + lab1/gnu/getopt/gnu.getopt.Getopt.html | 639 ++++++++ lab1/gnu/getopt/gnu.getopt.LongOpt.html | 210 +++ 43 files changed, 3934 insertions(+), 457 deletions(-) delete mode 100644 exercises1/Makefile delete mode 100644 exercises1/p1.c delete mode 100644 exercises1/p6.c delete mode 100644 exercises1/p7.c delete mode 100644 exercises2/Makefile delete mode 100644 exercises2/client.c delete mode 100644 exercises2/read_line.c delete mode 100644 exercises2/read_line.h delete mode 100644 exercises2/read_line.o delete mode 100644 exercises2/server.c delete mode 100755 exercises2/test delete mode 100644 exercises2/test.c delete mode 100644 exercises2/test.o create mode 100644 lab1/.DS_Store create mode 100644 lab1/client.java create mode 100755 lab1/gnu/getopt/COPYING.LIB create mode 100755 lab1/gnu/getopt/ChangeLog create mode 100755 lab1/gnu/getopt/Getopt.class create mode 100755 lab1/gnu/getopt/Getopt.java create mode 100755 lab1/gnu/getopt/GetoptDemo.class create mode 100755 lab1/gnu/getopt/GetoptDemo.java create mode 100755 lab1/gnu/getopt/LANGUAGES create mode 100755 lab1/gnu/getopt/LongOpt.class create mode 100755 lab1/gnu/getopt/LongOpt.java create mode 100755 lab1/gnu/getopt/Makefile create mode 100755 lab1/gnu/getopt/MessagesBundle.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_chs.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_cht.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_cs.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_de.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_es.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_fr.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_hu.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_it.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_ja.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_nl.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_no.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_pl.properties create mode 100755 lab1/gnu/getopt/MessagesBundle_ro.properties create mode 100755 lab1/gnu/getopt/README create mode 100755 lab1/gnu/getopt/buildx.xml create mode 100755 lab1/gnu/getopt/gnu.getopt.Getopt.html create mode 100755 lab1/gnu/getopt/gnu.getopt.LongOpt.html diff --git a/exercises1/Makefile b/exercises1/Makefile deleted file mode 100644 index 1301c3a..0000000 --- a/exercises1/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -BIN_FILES = p1 p2 p3 p4 p5 p6 p7 - -CC = gcc - -CPPFLAGS = -I$(INSTALL_PATH)/include -Wall - -LDFLAGS = -L$(INSTALL_PATH)/lib/ -LDLIBS = -lpthread - - -all: $(BIN_FILES) -.PHONY : all - - -p1: p1.o - $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -p2: p2.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -p3: p3.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -p4: p4.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -p5: p5.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -p6: p6.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -p7: p7.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -%.o: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c $< - -clean: - rm -f $(BIN_FILES) *.o - -.SUFFIXES: -.PHONY : clean diff --git a/exercises1/p1.c b/exercises1/p1.c deleted file mode 100644 index e0bfa04..0000000 --- a/exercises1/p1.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#define NUM_THREADS 2 -#define ITER 10 - -void funcion(int *id) { - int j; - int s; - double k; - int mid = *id; - for(j=0 ; j < ITER; j++) { - k = (double) rand_r((unsigned int *) &s) / RAND_MAX; - usleep((int) (k * 100000)); // sleep between 0 and 100 ms - printf("Thread %d iteration %d \n", mid, j ); - } - - pthread_exit(NULL); - -} - -int main(int argc, char *argv[]) -{ - int j; - pthread_attr_t attr; - pthread_t thid[NUM_THREADS]; - struct timeval t; - - gettimeofday(&t, NULL); - srand(t.tv_sec); // initialization of a random seed - - pthread_attr_init(&attr); - - for (j = 0; j < NUM_THREADS; j++) - if (pthread_create(&thid[j], NULL, (void *) funcion, &j) == -1){ - printf("Error creating threads\n"); - exit(0); - } - - for (j = 0; j < NUM_THREADS; j++) - pthread_join(thid[j], NULL); - - exit(0); - -} - - - - - diff --git a/exercises1/p6.c b/exercises1/p6.c deleted file mode 100644 index 1fb725d..0000000 --- a/exercises1/p6.c +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include -#include -#include -#include - -#define BUF_SIZE 256 - -char buffer[BUF_SIZE]; -int n_elem = 0; - -void producer(int *f) { - char c; - int pos = 0; - - while (read (*f, &c, 1) >0) { - buffer[pos] = c; - pos = (pos + 1) % BUF_SIZE; - } - - pthread_exit(NULL); - -} - -void consumer(int *f){ - char c; - int pos = 0; - - for(;;) { - c = buffer[pos]; - pos = (pos + 1) % BUF_SIZE; - - - if (write(*f, &c, 1) < 0) { - printf("Error write \n"); - exit(0); - } - } - - pthread_exit(NULL); -} - -int main(int argc, char *argv[]) -{ - pthread_attr_t attr; - pthread_t thid[2]; - int fe, fs; - - - if (argc < 3) { - printf("Usage: %s \n", argv[0]); - exit(0); - } - - fe = open (argv[1], O_RDONLY); - if (fe < 0) { - printf("Error opening file %s\n", argv[1]); - exit(0); - } - - fs = creat (argv[2], 0700); - if (fs < 0) { - printf("Error creating file %s\n", argv[2]); - close(fe); - exit(0); - } - - pthread_attr_init(&attr); - - if (pthread_create(&thid[0], NULL, (void *) producer, &fe) == -1){ - printf("Error creating producer\n"); - exit(0); - } - - if (pthread_create(&thid[1], NULL, (void *) consumer, &fs) == -1){ - printf("Error creating consumer\n"); - exit(0); - } - - pthread_join(thid[0], NULL); - pthread_join(thid[1], NULL); - - close(fe); - close(fs); - - exit(0); - -} - - - - diff --git a/exercises1/p7.c b/exercises1/p7.c deleted file mode 100644 index 0ac2b44..0000000 --- a/exercises1/p7.c +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#define NUM_READERS 10 -#define NUM_THREADS 11 // 10 readers and 1 writer -#define ITER 40 - -pthread_mutex_t mutex_writers; -pthread_mutex_t mutex_readers; -int num_readers; -int resource = 0; - -void reader(void) { - int j; - int s; - double k; - - for(j=0 ; j < ITER; j++) { - k = (double) rand_r((unsigned int *) &s) / RAND_MAX; - usleep((int) 1+(k * 6000000)); - - if (pthread_mutex_lock(&mutex_readers)!=0) - printf("....... Error in mutex lock 1 \n"); - num_readers++; - - if (num_readers == 1) { - printf("First %lu \n", (unsigned long int) pthread_self()); - pthread_mutex_lock(&mutex_writers); - } - - if (pthread_mutex_unlock(&mutex_readers)!=0) - printf("....... Error in mutex unlock 1 \n"); - - printf(" Executing reader %lu reads %d \n", (unsigned long int) pthread_self(), resource ); - - if (pthread_mutex_lock(&mutex_writers)!=0) - printf("....... Error in mutex lock 2 \n"); - num_readers--; - - if (num_readers == 0){ - printf("Last %lu \n", (unsigned long int) pthread_self()); - if( pthread_mutex_unlock(&mutex_writers) !=0) - printf("________________ Error in unlock\n"); - } - - if (pthread_mutex_unlock(&mutex_readers)!=0) - printf("....... Error in mutex unlock 2 \n"); - } - - pthread_exit(NULL); - -} - -void writer(void) { - int j; - int s; - double k; - - for(j=0 ; j < ITER; j++) { - k = (double) rand_r((unsigned int *) &s) / RAND_MAX; - usleep((int) 2 + (k * 5000000)); - - pthread_mutex_lock(&mutex_writers); - - resource = resource + 1; - printf(" Writer: New value %d\n", resource); - - pthread_mutex_unlock(&mutex_writers); - - } - - pthread_exit(NULL); - -} - -int main(int argc, char *argv[]) -{ - int j; - pthread_attr_t attr; - pthread_t thid[NUM_THREADS]; - struct timeval t; - pthread_mutexattr_t mattr; - - gettimeofday(&t, NULL); - srand(t.tv_sec); - - pthread_attr_init(&attr); - - pthread_mutexattr_init(&mattr); - pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_ERRORCHECK); - - - pthread_mutex_init(&mutex_writers, &mattr); - pthread_mutex_init(&mutex_readers, &mattr); - - - for (j = 0; j < NUM_READERS; j++) - if (pthread_create(&thid[j], NULL, (void *) reader, NULL) == -1){ - printf("Error creating a reader\n"); - exit(0); - } - if (pthread_create(&thid[j], NULL, (void *) writer, NULL) == -1){ - printf("Error creating a writer\n"); - exit(0); - } - - for (j = 0; j < NUM_THREADS; j++) - pthread_join(thid[j], NULL); - - exit(0); - -} - - - - diff --git a/exercises2/Makefile b/exercises2/Makefile deleted file mode 100644 index e0f3b2f..0000000 --- a/exercises2/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -BIN_FILES = test client server - -CC = gcc - - -CCGLAGS = -Wall -g - -LDFLAGS = -L$(INSTALL_PATH)/lib/ -LDLIBS = -lpthread - - -all: CFLAGS=$(CCGLAGS) -all: $(BIN_FILES) -.PHONY : all - -test: test.o read_line.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -client: client.o read_line.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -server: server.o read_line.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -%.o: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c $< - -clean: - rm -f $(BIN_FILES) *.o - -.SUFFIXES: -.PHONY : clean diff --git a/exercises2/client.c b/exercises2/client.c deleted file mode 100644 index e69de29..0000000 diff --git a/exercises2/read_line.c b/exercises2/read_line.c deleted file mode 100644 index 4cfefe3..0000000 --- a/exercises2/read_line.c +++ /dev/null @@ -1,86 +0,0 @@ -#include -#include -#include "read_line.h" - -int send_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = write(socket, message, l); - l = l -r; - message = message + r; - } while ((l>0) && (r>=0)); - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - -int recv_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = read(socket, message, l); - l = l -r ; - message = message + r; - } while ((l>0) && (r>=0)); - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - - - -ssize_t readLine(int fd, void *buffer, size_t n) -{ - ssize_t numRead; /* num of bytes fetched by last read() */ - size_t totRead; /* total bytes read so far */ - char *buf; - char ch; - - - if (n <= 0 || buffer == NULL) { - errno = EINVAL; - return -1; - } - - buf = buffer; - totRead = 0; - - for (;;) { - numRead = read(fd, &ch, 1); /* read a byte */ - - if (numRead == -1) { - if (errno == EINTR) /* interrupted -> restart read() */ - continue; - else - return -1; /* some other error */ - } else if (numRead == 0) { /* EOF */ - if (totRead == 0) /* no byres read; return 0 */ - return 0; - else - break; - } else { /* numRead must be 1 if we get here*/ - if (ch == '\n') - break; - if (ch == '\0') - break; - if (totRead < n - 1) { /* discard > (n-1) bytes */ - totRead++; - *buf++ = ch; - } - } - } - - *buf = '\0'; - return totRead; -} diff --git a/exercises2/read_line.h b/exercises2/read_line.h deleted file mode 100644 index e3d4c9e..0000000 --- a/exercises2/read_line.h +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int send_msg(int socket, char *message, int length); -int recv_msg(int socket, char *message, int length); -ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/exercises2/read_line.o b/exercises2/read_line.o deleted file mode 100644 index 2761ee77e164274c93f0e4fe5b90d1c59072db77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5168 zcmcgvUu;{|8UL>BBu<^CX$z!TC(S~Xr4(N~H1#%0L)Kz?5oL=yMFgqBTwfpmS?ufX z{wWDl$h33}%R`EJU}Iv_-o_9}dqUYXrU)deY8B#XgYBVy04Y__)M+n~7ODHbbI);a zP906+VV~r4zVG+_JKymZc7pc$n3k#Pjhw}?t=X=YcxMMR=!9! zm%cEXey2IR(aLQ!b6c(4mSKHtw4Um;a;W*Jd1ZsVnz`*(Zu=uyzY+vu};;uYU0VN-)!0x`q|38_n6ZqS1;S8OQVnRx+_}tSqg8H-Ozb z_@lgzD{v2~udLHpZ@fc%D~G(>NA`FpslUALWii#7v9h5VCv%-kKQ~r#9Sxxk zQ1MdsK;gVv6{M4g~LVpg>`5~U*Q$TZsi z({eECV>K@RemP;IuFZuvm-*6YDGC#5KNmy^;l0@MTMkhz?YmC8YFjnG$kGen%;vL`san~B6D?|egNODx?T}^ECHD!DCn5ChU4vox_YZ(I&k(ov&l0P6Uh_$q@GDWl$pq8 zvYBrsQ+3a`*{L$KnNzh;G##sQ3fC%?olK_6$yCYpOlv-M(P?{S5Ho;mYya(uSn+nyhkn#%fIns{*{ zt7j(l$)m~?(B440E9gLb;XG&yBiiAif%qzJsIMYUKO&QwZx4^W6gjiEKXL&r0^K8o zBkiWY5U7D)K+-?jr||$nr*@bczY+hsrQ#$p704F->u;P6!MtpDLsu<(ow-s{P6C~ zgm8*KFXV41_?(cZ6#S}?a|-^rkk2XjlVV=Jr{MH?Br=1pTkmOsPCHj&Ib9*FQ;(bMq4^ZaLlOMAILt|_<>;qMCmw5V79 z1(I=23A=>UqfB{Cf!`}|X)p6;6kM3Yl!D8=Ou@e<92x?rj`F@QaJu`6WZp?3zpdbM zeEk1M$X?!L@+?ps{>-MJNb-)7c>@&SEy1XGQs6X3`bnA=jKobLKd0cbF3{b@x@Q)! z_ne@wNX}t3Q}@_{2YS);OwbFi3pz)Otl*dPRlC$c9p}wL!C{wns7=ST%WS6$z0#x$ z<^kPm)awkt>bi|D3LT#%_@cneO$1_r z|IwzyAo4S`kVvaR$L~_|mFJ3{&_ws+k8t&iJQQ9$G8Clde-Lqs`DOjH=&Q!0R5Jf( zic%5zecY@5j;Q~T7#MvUXkV-KpGHiLi4fcret#e#M5^s9>Qs!(e;53526?~B5UTAA zDte87OFSi{KaHQpu8zNom>Lry_*CTA6{R9V5p8?r9~Vy_xlbrRO{tpSM~q_1aU#oU zKy2t|m4s51{g2SPmp>CvyAwgUZY%v{-xU5`1Ht^V_tWr>x%##6SGW6bg#UsPSk^D$ z*OBQpf74?A3}Hy~M|Z9Cm-9;R3-#=f%ge(5O%g&R>y{A7>exwlNF?eA2YLh1mQwT6 Ro1<6$Em9!S{tlCx|G#>@uoM6Q diff --git a/exercises2/server.c b/exercises2/server.c deleted file mode 100644 index e69de29..0000000 diff --git a/exercises2/test b/exercises2/test deleted file mode 100755 index 223e012049b995713c09e0d0a982da2165d67daf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11336 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 z zndohJym;82<9Gi5lOSZJiPveyT2Uyq=Q!U|4sT~gMVe<{iG`l4)?_h@X_EPRpX(ej~JxYHW3ek(oUA`r`%yFnUdREQ9Kux zATs5SSwSaMbSBI8ybpOsb(C%!DRKK*kLe-E=!}x;yFQv0;KXg{v^Lf23wd>+C z(E^@Qd)`k?DSLTmS7H!QWv1V7*z>-tMKy@q%PyR}JYs>6+s|=CSOGs)^MLKSUgrN2 zh0^x(KCY_P*5LDe)>p5ES@At(zg!_44+WIHQ=fUJ-&gkh{`vpC`2WCqi#6E=wqy7e zhkbu-Sc>{p{e6xJ?;O9^pp9tRJ`EyE-d7Na$I~%HQga$-|CAo5A9tkN@NC7y X^MQXqXnm_xf4@3X`HsW6v;O}BwHi2o diff --git a/exercises2/test.c b/exercises2/test.c deleted file mode 100644 index 68979d3..0000000 --- a/exercises2/test.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include "read_line.h" - -#define MAX_LINE 256 - - - -int main(int argc, char **argv) -{ - char buffer[MAX_LINE]; - int err = 0; - int n; - - - while (err != -1) { - n = readLine(0, buffer, MAX_LINE); - if (n!=-1) - write(1, buffer, n); - } - - exit(0); -} - - diff --git a/exercises2/test.o b/exercises2/test.o deleted file mode 100644 index fffe833d31fbef77bdb9dfeeb5f1212a163ca781..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3736 zcmbVOPiP!f82@Hx(@e5Wnlx1#YGI02+v3jd)^u$vt!ZQI28xIpya;7>_holzb~en+ zwn;HsDOHzNXgt&kB2p0aDu^N!d$I>T)RR5*;6*9eLluOAV*I{0-`niIjF)~P?|r}D z`~JPZvu{lwe<5WUpu~W~u!a;1aAjakpOoq(Y=KdjEwz6wy?r;2KJ9C_|6N@zwZFQF zUA1%}y>k~DmfF+z3)gR)zk?+C{XSiK|NK1!-%_4Z`}^;Ry+cj={9WYFU88n2+I~U8 zQspK)kS&!aZO>h!fUB)9*W76qX^I0DnZZVCy5&L_NLl@aQidhFRE*M0ZivY~>dbVX z=SPsTBx1j`72r_Hhz)y&q?s}B8u_xQ#Ky;eA|rib19RoaWrj3ju3TT16&RWO68^Gm zi68)DBSkY;ZY^6r7(+3*y$oq<9{B+(Wl&&)3v7%UJBPFo{a0kqcO zMsDR~b|Gj+q7pTOES8P)g|OZXBD<5FCd>1dHDJzDY(qok*4&&3(Bh1UmKN~f9GjXt zXz!XWxBRFT*OV=`Br3dFC_4EGXJWTjYrGSHZ$K=@nU}#>95J?S?6)rAjy;Mr{gcT3 zJ~BM=PHJjMp7xkdZ0Y8v;Sc##=muuu%Y>%@|B}Sy=RhAbLEcfF#whagCGfrHR~eWv zsMMa`T>tdQaTD+gCWr}}5?Gqo&^n$f+1#}b>MoJx$U19)hyRDCy-BiH7fs%kK)BW8 zo-g2Z;6(z&q8F(YC06Jv(yac$$CyMJ5KpsG{JW@=5Knm(ug(Llq|#CCtRV69>G_OE zl+n18D^L6-#t&({&3K%9I#-=%1NGg^Q~d7T&3Ew>|5e7%X#6tc!y5k=<7tgoJAYi` z<4+a9D;hse1*5oe*O~8!jO!Y|hwWP$ug=FC8qW~UY5W}H_cVSR;}5vk*YgX_{!_-^ zX#5tg^M=Mh#=JTMv@hMaRGn2l?;eh$^EUIe=iU1bPPo*F+%oo25chSZ1!CTHBC!~O zQ*|R3oN^d~BiX7bw`wOmf3AsRQg_ScK%D9sb_3V1iC&j^x<2fJdBCYO8x4Vvu;b$! z?%;<2-*9}>IgqHImBrP$hl!Q_98lf= z%}A54xR&`(Jtiep`TMj%4MG8JljeVx=Rd-S zisnz}RG-Uh; zVqgzs`x&IidXBZ?NL&9iy14PE@7*#QC4r5-OV60FtMW6U(p|-lC*xe64sBtv&vts zAAKkFyF;<>vEkyae)@JMW$O|NICY!MASL{qg zL^qFqEz*g|9BwKr3nNqPr*f97Jo@|Ta=hIxL&YRlRs-*3^n57ff&@r_1W14cNZ@A( z*trdxFG3kffCNZjAYlK80ynLxE!2M<2tEQpXGptY?Xv{5SOQv8TPQLxjaF#1s*fR- z_jYK>x|-TTqg^zI56w5LO))TycF}?jOsfk636Q{uz%=%qo&P)dr}=->!Yv7qz@HJ& z*>=C(;G^KmuPS@C2_M B5p@6n literal 0 HcmV?d00001 diff --git a/lab1/client.java b/lab1/client.java new file mode 100644 index 0000000..4c62281 --- /dev/null +++ b/lab1/client.java @@ -0,0 +1,242 @@ +import java.io.*; +import gnu.getopt.Getopt; + + +class client { + + /********************* TYPES **********************/ + + /** + * @brief Return codes for the protocol methods + */ + private static enum RC { + OK, + ERROR, + USER_ERROR + }; + + /******************* ATTRIBUTES *******************/ + + private static String _server = null; + private static int _port = -1; + + + /********************* METHODS ********************/ + + /** + * @param user - User name to register in the system + * + * @return OK if successful + * @return USER_ERROR if the user is already registered + * @return ERROR if another error occurred + */ + static RC register(String user) + { + // Write your code here + return RC.ERROR; + } + + /** + * @param user - User name to unregister from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist + * @return ERROR if another error occurred + */ + static RC unregister(String user) + { + // Write your code here + return RC.ERROR; + } + + /** + * @param user - User name to connect to the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already connected + * @return ERROR if another error occurred + */ + static RC connect(String user) + { + // Write your code here + return RC.ERROR; + } + + /** + * @param user - User name to disconnect from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist + * @return ERROR if another error occurred + */ + static RC disconnect(String user) + { + // Write your code here + return RC.ERROR; + } + + /** + * @param user - Receiver user name + * @param message - Message to be sent + * + * @return OK if the server had successfully delivered the message + * @return USER_ERROR if the user is not connected (the message is queued for delivery) + * @return ERROR the user does not exist or another error occurred + */ + static RC send(String user, String message) + { + // Write your code here + return RC.ERROR; + } + + /** + * @brief Command interpreter for the client. It calls the protocol functions. + */ + static void shell() + { + boolean exit = false; + String input; + String [] line; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!exit) { + try { + System.out.print("c> "); + input = in.readLine(); + line = input.split("\\s"); + + if (line.length > 0) { + /*********** REGISTER *************/ + if (line[0].equals("REGISTER")) { + if (line.length == 2) { + register(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: REGISTER "); + } + } + + /********** UNREGISTER ************/ + else if (line[0].equals("UNREGISTER")) { + if (line.length == 2) { + unregister(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: UNREGISTER "); + } + } + + /************ CONNECT *************/ + else if (line[0].equals("CONNECT")) { + if (line.length == 2) { + connect(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: CONNECT "); + } + } + + /********** DISCONNECT ************/ + else if (line[0].equals("DISCONNECT")) { + if (line.length == 2) { + disconnect(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: DISCONNECT "); + } + } + + /************** SEND **************/ + else if (line[0].equals("SEND")) { + if (line.length >= 3) { + // Remove first two words + String message = input.substring(input.indexOf(' ')+1).substring(input.indexOf(' ')+1); + send(line[1], message); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: SEND "); + } + } + + /************** QUIT **************/ + else if (line[0].equals("QUIT")){ + if (line.length == 1) { + exit = true; + } else { + System.out.println("Syntax error. Use: QUIT"); + } + } + + /************* UNKNOWN ************/ + else { + System.out.println("Error: command '" + line[0] + "' not valid."); + } + } + } catch (java.io.IOException e) { + System.out.println("Exception: " + e); + e.printStackTrace(); + } + } + } + + /** + * @brief Prints program usage + */ + static void usage() + { + System.out.println("Usage: java -cp . client -s -p "); + } + + /** + * @brief Parses program execution arguments + */ + static boolean parseArguments(String [] argv) + { + Getopt g = new Getopt("client", argv, "ds:p:"); + + int c; + String arg; + + while ((c = g.getopt()) != -1) { + switch(c) { + //case 'd': + // _debug = true; + // break; + case 's': + _server = g.getOptarg(); + break; + case 'p': + arg = g.getOptarg(); + _port = Integer.parseInt(arg); + break; + case '?': + System.out.print("getopt() returned " + c + "\n"); + break; // getopt() already printed an error + default: + System.out.print("getopt() returned " + c + "\n"); + } + } + + if (_server == null) + return false; + + if ((_port < 1024) || (_port > 65535)) { + System.out.println("Error: Port must be in the range 1024 <= port <= 65535"); + return false; + } + + return true; + } + + + + /********************* MAIN **********************/ + + public static void main(String[] argv) + { + if(!parseArguments(argv)) { + usage(); + return; + } + + // Write code here + + shell(); + System.out.println("+++ FINISHED +++"); + } +} diff --git a/lab1/gnu/getopt/COPYING.LIB b/lab1/gnu/getopt/COPYING.LIB new file mode 100755 index 0000000..161a3d1 --- /dev/null +++ b/lab1/gnu/getopt/COPYING.LIB @@ -0,0 +1,482 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/lab1/gnu/getopt/ChangeLog b/lab1/gnu/getopt/ChangeLog new file mode 100755 index 0000000..7fed6d2 --- /dev/null +++ b/lab1/gnu/getopt/ChangeLog @@ -0,0 +1,114 @@ +For release 1.0.14 (2012/02/08) + +David Zhang (david290@qq.com) provided Chinese language messages. +Daniel Thomas (drt24@srcf.ucam.org) contributed a patch to fix a static +access warning message. + +For release 1.0.13 (2006/08/29) + +Krzysztof Szymanski (sirch.s@gmail.com) provided Polish language messages. + +For release 1.0.12 (2005/11/12) + +Sandro Tossi (matrixhasu@gmail.com) provided Italian language messages. + +For release 1.0.11 (2005/02/19) + +Daniel Perez Alvarez (dondani@gmail.com) provided Spanish language +messages. + +For release 1.0.10 (2004/09/12) + +Marian-Nicolae V. Ion (mion@neocom.fr) provided Romanian language messages. + +For release 1.0.9 (2002/01/16) + +Yasuoka Masahiko provided Japanese langauge messages. + +Csom Gyula provided Hungarian language messages. + +Guillaume Rousse supplied the ant build file +and documentation. + +For release 1.0.8 (2000/09/11) + +Ernst de Haan provided Dutch language messages. + +For release 1.0.7 (2000/02/02) + +Fixed an obscure POSIX compatibility issue. When an optstring is "o:", +then "-o -- foo" should result in -o having an optarg of "foo", not "--" +as was previously returned. This new parsing behavior is only enabled +in POSIX compatibility mode. Thank to Don Suit (dsuit@fc.hp.com) for +reporting this and help in communicating proper POSIX behavior. + +For release 1.0.6 (1999/06/27) + +Added French language messages. Thanks to Edouard G. Parmelan +(Edouard.Parmelan@quadratec.fr) for this contribution. + +For release 1.0.5 (1999/03/23) + +Fixed bug that caused getopt to throw a StringIndexOutOfBoundsException +when an empty string ("") argument was encountered. Thanks to +Steffen Siebert (siebert@logware.de) for this bug report and a patch. + +For release 1.0.4 + +Added Norwegian language messages. Thanks to Bjørn-Ove Heimsund +(s811@drone.ii.uib.no) for this contribution. + +For release 1.0.3 + +Added German language messages. Thanks to Bernhard Bablok +(bablokb@gmx.net) for this contribution. + +For release 1.0.2 + +Prevent ArrayIndexOutOfBounds exception if "optstring" is null. David Karr +(dkarr@nmo.gtegsc.com) had a problem with this when commenting out options +during debugging, so I have fixed it. + +For release 1.0.1 + +Added Czech language messages. Thanks to Roman Szturc (Roman.Szturc@vsb.cz) +for this contribution. + +For release 1.0 + +No changes. Just increment release number to 1.0 + +For release 0.9.2 + +The sample code has been moved into a separate file called "GetoptDemo.java". +This is so that it can be legally placed into the public domain and not +subsumed into the LGPL as would be the case if it were in Getopt.java. +While I do not encourage anyone to write proprietary software, I feel that +there is no good purpose served in restricting what someone can do with +a short example program. + +Modified the Makefile and various other files to support the change +above. + +For release 0.9.1 + +This release contains only minor fixes. It's always possible it introduces +some bugs though so unless you are keen on internationalization or are +having a line separator problem, there is no need to upgrade from 0.9. + +-- Messages are now internationalized. Thanks to Bill King + (wrking@eng.sun.com) for this. + +-- Changes all print's to println's to avoid system dependent line + separators. + +-- All internal variables are now protected. Several people suggested + doing this in response to my request for comments in the help file. + No one suggested keeping any variables public. + +-- Fixed parts of licensing that mentioned the regular GPL. Getopt is + and always has been licensed under the LPGL. Thanks to Arieh Markel + (arieh.markel@sun.com) for pointing this out. + + + diff --git a/lab1/gnu/getopt/Getopt.class b/lab1/gnu/getopt/Getopt.class new file mode 100755 index 0000000000000000000000000000000000000000..735a7f1b16f8604e9cb9d33e36933c4d2349e9fe GIT binary patch literal 7366 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 + * To use Getopt, create a Getopt object with a argv array passed to the + * main method, then call the getopt() method in a loop. It will return an + * int that contains the value of the option character parsed from the + * command line. When there are no more options to be parsed, it + * returns -1. + *

+ * A command line option can be defined to take an argument. If an + * option has an argument, the value of that argument is stored in an + * instance variable called optarg, which can be accessed using the + * getOptarg() method. If an option that requires an argument is + * found, but there is no argument present, then an error message is + * printed. Normally getopt() returns a '?' in this situation, but + * that can be changed as described below. + *

+ * If an invalid option is encountered, an error message is printed + * to the standard error and getopt() returns a '?'. The value of the + * invalid option encountered is stored in the instance variable optopt + * which can be retrieved using the getOptopt() method. To suppress + * the printing of error messages for this or any other error, set + * the value of the opterr instance variable to false using the + * setOpterr() method. + *

+ * Between calls to getopt(), the instance variable optind is used to + * keep track of where the object is in the parsing process. After all + * options have been returned, optind is the index in argv of the first + * non-option argument. This variable can be accessed with the getOptind() + * method. + *

+ * Note that this object expects command line options to be passed in the + * traditional Unix manner. That is, proceeded by a '-' character. + * Multiple options can follow the '-'. For example "-abc" is equivalent + * to "-a -b -c". If an option takes a required argument, the value + * of the argument can immediately follow the option character or be + * present in the next argv element. For example, "-cfoo" and "-c foo" + * both represent an option character of 'c' with an argument of "foo" + * assuming c takes a required argument. If an option takes an argument + * that is not required, then any argument must immediately follow the + * option character in the same argv element. For example, if c takes + * a non-required argument, then "-cfoo" represents option character 'c' + * with an argument of "foo" while "-c foo" represents the option + * character 'c' with no argument, and a first non-option argv element + * of "foo". + *

+ * The user can stop getopt() from scanning any further into a command line + * by using the special argument "--" by itself. For example: + * "-a -- -d" would return an option character of 'a', then return -1 + * The "--" is discarded and "-d" is pointed to by optind as the first + * non-option argv element. + *

+ * Here is a basic example of using Getopt: + *

+ *

+  * Getopt g = new Getopt("testprog", argv, "ab:c::d");
+  * //
+  * int c;
+  * String arg;
+  * while ((c = g.getopt()) != -1)
+  *   {
+  *     switch(c)
+  *       {
+  *          case 'a':
+  *          case 'd':
+  *            System.out.print("You picked " + (char)c + "\n");
+  *            break;
+  *            //
+  *          case 'b':
+  *          case 'c':
+  *            arg = g.getOptarg();
+  *            System.out.print("You picked " + (char)c + 
+  *                             " with an argument of " +
+  *                             ((arg != null) ? arg : "null") + "\n");
+  *            break;
+  *            //
+  *          case '?':
+  *            break; // getopt() already printed an error
+  *            //
+  *          default:
+  *            System.out.print("getopt() returned " + c + "\n");
+  *       }
+  *   }
+  * 
+ *

+ * In this example, a new Getopt object is created with three params. + * The first param is the program name. This is for printing error + * messages in the form "program: error message". In the C version, this + * value is taken from argv[0], but in Java the program name is not passed + * in that element, thus the need for this parameter. The second param is + * the argument list that was passed to the main() method. The third + * param is the list of valid options. Each character represents a valid + * option. If the character is followed by a single colon, then that + * option has a required argument. If the character is followed by two + * colons, then that option has an argument that is not required. + *

+ * Note in this example that the value returned from getopt() is cast to + * a char prior to printing. This is required in order to make the value + * display correctly as a character instead of an integer. + *

+ * If the first character in the option string is a colon, for example + * ":abc::d", then getopt() will return a ':' instead of a '?' when it + * encounters an option with a missing required argument. This allows the + * caller to distinguish between invalid options and valid options that + * are simply incomplete. + *

+ * In the traditional Unix getopt(), -1 is returned when the first non-option + * charcter is encountered. In GNU getopt(), the default behavior is to + * allow options to appear anywhere on the command line. The getopt() + * method permutes the argument to make it appear to the caller that all + * options were at the beginning of the command line, and all non-options + * were at the end. For example, calling getopt() with command line args + * of "-a foo bar -d" returns options 'a' and 'd', then sets optind to + * point to "foo". The program would read the last two argv elements as + * "foo" and "bar", just as if the user had typed "-a -d foo bar". + *

+ * The user can force getopt() to stop scanning the command line with + * the special argument "--" by itself. Any elements occuring before the + * "--" are scanned and permuted as normal. Any elements after the "--" + * are returned as is as non-option argv elements. For example, + * "foo -a -- bar -d" would return option 'a' then -1. optind would point + * to "foo", "bar" and "-d" as the non-option argv elements. The "--" + * is discarded by getopt(). + *

+ * There are two ways this default behavior can be modified. The first is + * to specify traditional Unix getopt() behavior (which is also POSIX + * behavior) in which scanning stops when the first non-option argument + * encountered. (Thus "-a foo bar -d" would return 'a' as an option and + * have "foo", "bar", and "-d" as non-option elements). The second is to + * allow options anywhere, but to return all elements in the order they + * occur on the command line. When a non-option element is ecountered, + * an integer 1 is returned and the value of the non-option element is + * stored in optarg is if it were the argument to that option. For + * example, "-a foo -d", returns first 'a', then 1 (with optarg set to + * "foo") then 'd' then -1. When this "return in order" functionality + * is enabled, the only way to stop getopt() from scanning all command + * line elements is to use the special "--" string by itself as described + * above. An example is "-a foo -b -- bar", which would return 'a', then + * integer 1 with optarg set to "foo", then 'b', then -1. optind would + * then point to "bar" as the first non-option argv element. The "--" + * is discarded. + *

+ * The POSIX/traditional behavior is enabled by either setting the + * property "gnu.posixly_correct" or by putting a '+' sign as the first + * character of the option string. The difference between the two + * methods is that setting the gnu.posixly_correct property also forces + * certain error messages to be displayed in POSIX format. To enable + * the "return in order" functionality, put a '-' as the first character + * of the option string. Note that after determining the proper + * behavior, Getopt strips this leading '+' or '-', meaning that a ':' + * placed as the second character after one of those two will still cause + * getopt() to return a ':' instead of a '?' if a required option + * argument is missing. + *

+ * In addition to traditional single character options, GNU Getopt also + * supports long options. These are preceeded by a "--" sequence and + * can be as long as desired. Long options provide a more user-friendly + * way of entering command line options. For example, in addition to a + * "-h" for help, a program could support also "--help". + *

+ * Like short options, long options can also take a required or non-required + * argument. Required arguments can either be specified by placing an + * equals sign after the option name, then the argument, or by putting the + * argument in the next argv element. For example: "--outputdir=foo" and + * "--outputdir foo" both represent an option of "outputdir" with an + * argument of "foo", assuming that outputdir takes a required argument. + * If a long option takes a non-required argument, then the equals sign + * form must be used to specify the argument. In this case, + * "--outputdir=foo" would represent option outputdir with an argument of + * "foo" while "--outputdir foo" would represent the option outputdir + * with no argument and a first non-option argv element of "foo". + *

+ * Long options can also be specified using a special POSIX argument + * format (one that I highly discourage). This form of entry is + * enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid + * option string. This causes getopt to treat the name following the + * "-W" as the name of the long option. For example, "-W outputdir=foo" + * would be equivalent to "--outputdir=foo". The name can immediately + * follow the "-W" like so: "-Woutputdir=foo". Option arguments are + * handled identically to normal long options. If a string follows the + * "-W" that does not represent a valid long option, then getopt() returns + * 'W' and the caller must decide what to do. Otherwise getopt() returns + * a long option value as described below. + *

+ * While long options offer convenience, they can also be tedious to type + * in full. So it is permissible to abbreviate the option name to as + * few characters as required to uniquely identify it. If the name can + * represent multiple long options, then an error message is printed and + * getopt() returns a '?'. + *

+ * If an invalid option is specified or a required option argument is + * missing, getopt() prints an error and returns a '?' or ':' exactly + * as for short options. Note that when an invalid long option is + * encountered, the optopt variable is set to integer 0 and so cannot + * be used to identify the incorrect option the user entered. + *

+ * Long options are defined by LongOpt objects. These objects are created + * with a contructor that takes four params: a String representing the + * object name, a integer specifying what arguments the option takes + * (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, + * or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described + * below), and an integer value (described below). + *

+ * To enable long option parsing, create an array of LongOpt's representing + * the legal options and pass it to the Getopt() constructor. WARNING: If + * all elements of the array are not populated with LongOpt objects, the + * getopt() method will throw a NullPointerException. + *

+ * When getopt() is called and a long option is encountered, one of two + * things can be returned. If the flag field in the LongOpt object + * representing the long option is non-null, then the integer value field + * is stored there and an integer 0 is returned to the caller. The val + * field can then be retrieved from the flag field. Note that since the + * flag field is a StringBuffer, the appropriate String to integer converions + * must be performed in order to get the actual int value stored there. + * If the flag field in the LongOpt object is null, then the value field + * of the LongOpt is returned. This can be the character of a short option. + * This allows an app to have both a long and short option sequence + * (say, "-h" and "--help") that do the exact same thing. + *

+ * With long options, there is an alternative method of determining + * which option was selected. The method getLongind() will return the + * the index in the long option array (NOT argv) of the long option found. + * So if multiple long options are configured to return the same value, + * the application can use getLongind() to distinguish between them. + *

+ * Here is an expanded Getopt example using long options and various + * techniques described above: + *

+ *

+  * int c;
+  * String arg;
+  * LongOpt[] longopts = new LongOpt[3];
+  * // 
+  * StringBuffer sb = new StringBuffer();
+  * longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
+  * longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
+  * longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
+  * // 
+  * Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
+  * g.setOpterr(false); // We'll do our own error handling
+  * //
+  * while ((c = g.getopt()) != -1)
+  *   switch (c)
+  *     {
+  *        case 0:
+  *          arg = g.getOptarg();
+  *          System.out.println("Got long option with value '" +
+  *                             (char)(new Integer(sb.toString())).intValue()
+  *                             + "' with argument " +
+  *                             ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 1:
+  *          System.out.println("I see you have return in order set and that " +
+  *                             "a non-option argv element was just found " +
+  *                             "with the value '" + g.getOptarg() + "'");
+  *          break;
+  *          //
+  *        case 2:
+  *          arg = g.getOptarg();
+  *          System.out.println("I know this, but pretend I didn't");
+  *          System.out.println("We picked option " +
+  *                             longopts[g.getLongind()].getName() +
+  *                           " with value " + 
+  *                           ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 'b':
+  *          System.out.println("You picked plain old option " + (char)c);
+  *          break;
+  *          //
+  *        case 'c':
+  *        case 'd':
+  *          arg = g.getOptarg();
+  *          System.out.println("You picked option '" + (char)c + 
+  *                             "' with argument " +
+  *                             ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 'h':
+  *          System.out.println("I see you asked for help");
+  *          break;
+  *          //
+  *        case 'W':
+  *          System.out.println("Hmmm. You tried a -W with an incorrect long " +
+  *                             "option name");
+  *          break;
+  *          //
+  *        case ':':
+  *          System.out.println("Doh! You need an argument for option " +
+  *                             (char)g.getOptopt());
+  *          break;
+  *          //
+  *        case '?':
+  *          System.out.println("The option '" + (char)g.getOptopt() + 
+  *                           "' is not valid");
+  *          break;
+  *          //
+  *        default:
+  *          System.out.println("getopt() returned " + c);
+  *          break;
+  *     }
+  * //
+  * for (int i = g.getOptind(); i < argv.length ; i++)
+  *   System.out.println("Non option argv element: " + argv[i] + "\n");
+  * 
+ *

+ * There is an alternative form of the constructor used for long options + * above. This takes a trailing boolean flag. If set to false, Getopt + * performs identically to the example, but if the boolean flag is true + * then long options are allowed to start with a single '-' instead of + * "--". If the first character of the option is a valid short option + * character, then the option is treated as if it were the short option. + * Otherwise it behaves as if the option is a long option. Note that + * the name given to this option - long_only - is very counter-intuitive. + * It does not cause only long options to be parsed but instead enables + * the behavior described above. + *

+ * Note that the functionality and variable names used are driven from + * the C lib version as this object is a port of the C code, not a + * new implementation. This should aid in porting existing C/C++ code, + * as well as helping programmers familiar with the glibc version to + * adapt to the Java version even if it seems very non-Java at times. + *

+ * In this release I made all instance variables protected due to + * overwhelming public demand. Any code which relied on optarg, + * opterr, optind, or optopt being public will need to be modified to + * use the appropriate access methods. + *

+ * Please send all bug reports, requests, and comments to + * arenn@urbanophile.com. + * + * @version 1.0.7 + * + * @author Roland McGrath (roland@gnu.ai.mit.edu) + * @author Ulrich Drepper (drepper@cygnus.com) + * @author Aaron M. Renn (arenn@urbanophile.com) + * + * @see LongOpt + */ +public class Getopt extends Object +{ + +/**************************************************************************/ + +/* + * Class Variables + */ + +/** + * Describe how to deal with options that follow non-option ARGV-elements. + * + * If the caller did not specify anything, + * the default is REQUIRE_ORDER if the property + * gnu.posixly_correct is defined, PERMUTE otherwise. + * + * The special argument `--' forces an end of option-scanning regardless + * of the value of `ordering'. In the case of RETURN_IN_ORDER, only + * `--' can cause `getopt' to return -1 with `optind' != ARGC. + * + * REQUIRE_ORDER means don't recognize them as options; + * stop option processing when the first non-option is seen. + * This is what Unix does. + * This mode of operation is selected by either setting the property + * gnu.posixly_correct, or using `+' as the first character + * of the list of option characters. + */ +protected static final int REQUIRE_ORDER = 1; + +/** + * PERMUTE is the default. We permute the contents of ARGV as we scan, + * so that eventually all the non-options are at the end. This allows options + * to be given in any order, even with programs that were not written to + * expect this. + */ +protected static final int PERMUTE = 2; + +/** + * RETURN_IN_ORDER is an option available to programs that were written + * to expect options and other ARGV-elements in any order and that care about + * the ordering of the two. We describe each non-option ARGV-element + * as if it were the argument of an option with character code 1. + * Using `-' as the first character of the list of option characters + * selects this mode of operation. + */ +protected static final int RETURN_IN_ORDER = 3; + +/**************************************************************************/ + +/* + * Instance Variables + */ + +/** + * For communication from `getopt' to the caller. + * When `getopt' finds an option that takes an argument, + * the argument value is returned here. + * Also, when `ordering' is RETURN_IN_ORDER, + * each non-option ARGV-element is returned here. + */ +protected String optarg; + +/** + * Index in ARGV of the next element to be scanned. + * This is used for communication to and from the caller + * and for communication between successive calls to `getopt'. + * + * On entry to `getopt', zero means this is the first call; initialize. + * + * When `getopt' returns -1, this is the index of the first of the + * non-option elements that the caller should itself scan. + * + * Otherwise, `optind' communicates from one call to the next + * how much of ARGV has been scanned so far. + */ +protected int optind = 0; + +/** + * Callers store false here to inhibit the error message + * for unrecognized options. + */ +protected boolean opterr = true; + +/** + * When an unrecognized option is encountered, getopt will return a '?' + * and store the value of the invalid option here. + */ +protected int optopt = '?'; + +/** + * The next char to be scanned in the option-element + * in which the last option character we returned was found. + * This allows us to pick up the scan where we left off. + * + * If this is zero, or a null string, it means resume the scan + * by advancing to the next ARGV-element. + */ +protected String nextchar; + +/** + * This is the string describing the valid short options. + */ +protected String optstring; + +/** + * This is an array of LongOpt objects which describ the valid long + * options. + */ +protected LongOpt[] long_options; + +/** + * This flag determines whether or not we are parsing only long args + */ +protected boolean long_only; + +/** + * Stores the index into the long_options array of the long option found + */ +protected int longind; + +/** + * The flag determines whether or not we operate in strict POSIX compliance + */ +protected boolean posixly_correct; + +/** + * A flag which communicates whether or not checkLongOption() did all + * necessary processing for the current option + */ +protected boolean longopt_handled; + +/** + * The index of the first non-option in argv[] + */ +protected int first_nonopt = 1; + +/** + * The index of the last non-option in argv[] + */ +protected int last_nonopt = 1; + +/** + * Flag to tell getopt to immediately return -1 the next time it is + * called. + */ +private boolean endparse = false; + +/** + * Saved argument list passed to the program + */ +protected String[] argv; + +/** + * Determines whether we permute arguments or not + */ +protected int ordering; + +/** + * Name to print as the program name in error messages. This is necessary + * since Java does not place the program name in argv[0] + */ +protected String progname; + +/** + * The localized strings are kept in a separate file + */ +private ResourceBundle _messages = ResourceBundle.getBundle( + "gnu/getopt/MessagesBundle", Locale.getDefault()); + +/**************************************************************************/ + +/* + * Constructors + */ + +/** + * Construct a basic Getopt instance with the given input data. Note that + * this handles "short" options only. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command line to the program. + * @param optstring A String containing a description of the valid args for this program + */ +public +Getopt(String progname, String[] argv, String optstring) +{ + this(progname, argv, optstring, null, false); +} + +/**************************************************************************/ + +/** + * Construct a Getopt instance with given input data that is capable of + * parsing long options as well as short. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command ilne to the program + * @param optstring A String containing a description of the valid short args for this program + * @param long_options An array of LongOpt objects that describes the valid long args for this program + */ +public +Getopt(String progname, String[] argv, String optstring, + LongOpt[] long_options) +{ + this(progname, argv, optstring, long_options, false); +} + +/**************************************************************************/ + +/** + * Construct a Getopt instance with given input data that is capable of + * parsing long options and short options. Contrary to what you might + * think, the flag 'long_only' does not determine whether or not we + * scan for only long arguments. Instead, a value of true here allows + * long arguments to start with a '-' instead of '--' unless there is a + * conflict with a short option name. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command ilne to the program + * @param optstring A String containing a description of the valid short args for this program + * @param long_options An array of LongOpt objects that describes the valid long args for this program + * @param long_only true if long options that do not conflict with short options can start with a '-' as well as '--' + */ +public +Getopt(String progname, String[] argv, String optstring, + LongOpt[] long_options, boolean long_only) +{ + if (optstring.length() == 0) + optstring = " "; + + // This function is essentially _getopt_initialize from GNU getopt + this.progname = progname; + this.argv = argv; + this.optstring = optstring; + this.long_options = long_options; + this.long_only = long_only; + + // Check for property "gnu.posixly_correct" to determine whether to + // strictly follow the POSIX standard. This replaces the "POSIXLY_CORRECT" + // environment variable in the C version + if (System.getProperty("gnu.posixly_correct", null) == null) + posixly_correct = false; + else + { + posixly_correct = true; + _messages = ResourceBundle.getBundle("gnu/getopt/MessagesBundle", + Locale.US); + } + + // Determine how to handle the ordering of options and non-options + if (optstring.charAt(0) == '-') + { + ordering = RETURN_IN_ORDER; + if (optstring.length() > 1) + this.optstring = optstring.substring(1); + } + else if (optstring.charAt(0) == '+') + { + ordering = REQUIRE_ORDER; + if (optstring.length() > 1) + this.optstring = optstring.substring(1); + } + else if (posixly_correct) + { + ordering = REQUIRE_ORDER; + } + else + { + ordering = PERMUTE; // The normal default case + } +} + +/**************************************************************************/ + +/* + * Instance Methods + */ + +/** + * In GNU getopt, it is possible to change the string containg valid options + * on the fly because it is passed as an argument to getopt() each time. In + * this version we do not pass the string on every call. In order to allow + * dynamic option string changing, this method is provided. + * + * @param optstring The new option string to use + */ +public void +setOptstring(String optstring) +{ + if (optstring.length() == 0) + optstring = " "; + + this.optstring = optstring; +} + +/**************************************************************************/ + +/** + * optind it the index in ARGV of the next element to be scanned. + * This is used for communication to and from the caller + * and for communication between successive calls to `getopt'. + * + * When `getopt' returns -1, this is the index of the first of the + * non-option elements that the caller should itself scan. + * + * Otherwise, `optind' communicates from one call to the next + * how much of ARGV has been scanned so far. + */ +public int +getOptind() +{ + return(optind); +} + +/**************************************************************************/ + +/** + * This method allows the optind index to be set manually. Normally this + * is not necessary (and incorrect usage of this method can lead to serious + * lossage), but optind is a public symbol in GNU getopt, so this method + * was added to allow it to be modified by the caller if desired. + * + * @param optind The new value of optind + */ +public void +setOptind(int optind) +{ + this.optind = optind; +} + +/**************************************************************************/ + +/** + * Since in GNU getopt() the argument vector is passed back in to the + * function every time, the caller can swap out argv on the fly. Since + * passing argv is not required in the Java version, this method allows + * the user to override argv. Note that incorrect use of this method can + * lead to serious lossage. + * + * @param argv New argument list + */ +public void +setArgv(String[] argv) +{ + this.argv = argv; +} + +/**************************************************************************/ + +/** + * For communication from `getopt' to the caller. + * When `getopt' finds an option that takes an argument, + * the argument value is returned here. + * Also, when `ordering' is RETURN_IN_ORDER, + * each non-option ARGV-element is returned here. + * No set method is provided because setting this variable has no effect. + */ +public String +getOptarg() +{ + return(optarg); +} + +/**************************************************************************/ + +/** + * Normally Getopt will print a message to the standard error when an + * invalid option is encountered. This can be suppressed (or re-enabled) + * by calling this method. There is no get method for this variable + * because if you can't remember the state you set this to, why should I? + */ +public void +setOpterr(boolean opterr) +{ + this.opterr = opterr; +} + +/**************************************************************************/ + +/** + * When getopt() encounters an invalid option, it stores the value of that + * option in optopt which can be retrieved with this method. There is + * no corresponding set method because setting this variable has no effect. + */ +public int +getOptopt() +{ + return(optopt); +} + +/**************************************************************************/ + +/** + * Returns the index into the array of long options (NOT argv) representing + * the long option that was found. + */ +public int +getLongind() +{ + return(longind); +} + +/**************************************************************************/ + +/** + * Exchange the shorter segment with the far end of the longer segment. + * That puts the shorter segment into the right place. + * It leaves the longer segment in the right place overall, + * but it consists of two parts that need to be swapped next. + * This method is used by getopt() for argument permutation. + */ +protected void +exchange(String[] argv) +{ + int bottom = first_nonopt; + int middle = last_nonopt; + int top = optind; + String tem; + + while (top > middle && middle > bottom) + { + if (top - middle > middle - bottom) + { + // Bottom segment is the short one. + int len = middle - bottom; + int i; + + // Swap it with the top part of the top segment. + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + } + // Exclude the moved bottom segment from further swapping. + top -= len; + } + else + { + // Top segment is the short one. + int len = top - middle; + int i; + + // Swap it with the bottom part of the bottom segment. + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + } + // Exclude the moved top segment from further swapping. + bottom += len; + } + } + + // Update records for the slots the non-options now occupy. + + first_nonopt += (optind - last_nonopt); + last_nonopt = optind; +} + +/**************************************************************************/ + +/** + * Check to see if an option is a valid long option. Called by getopt(). + * Put in a separate method because this needs to be done twice. (The + * C getopt authors just copy-pasted the code!). + * + * @param longind A buffer in which to store the 'val' field of found LongOpt + * + * @return Various things depending on circumstances + */ +protected int +checkLongOption() +{ + LongOpt pfound = null; + int nameend; + boolean ambig; + boolean exact; + + longopt_handled = true; + ambig = false; + exact = false; + longind = -1; + + nameend = nextchar.indexOf("="); + if (nameend == -1) + nameend = nextchar.length(); + + // Test all lnog options for either exact match or abbreviated matches + for (int i = 0; i < long_options.length; i++) + { + if (long_options[i].getName().startsWith(nextchar.substring(0, nameend))) + { + if (long_options[i].getName().equals(nextchar.substring(0, nameend))) + { + // Exact match found + pfound = long_options[i]; + longind = i; + exact = true; + break; + } + else if (pfound == null) + { + // First nonexact match found + pfound = long_options[i]; + longind = i; + } + else + { + // Second or later nonexact match found + ambig = true; + } + } + } // for + + // Print out an error if the option specified was ambiguous + if (ambig && !exact) + { + if (opterr) + { + Object[] msgArgs = { progname, argv[optind] }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.ambigious"), + msgArgs)); + } + + nextchar = ""; + optopt = 0; + ++optind; + + return('?'); + } + + if (pfound != null) + { + ++optind; + + if (nameend != nextchar.length()) + { + if (pfound.has_arg != LongOpt.NO_ARGUMENT) + { + if (nextchar.substring(nameend).length() > 1) + optarg = nextchar.substring(nameend+1); + else + optarg = ""; + } + else + { + if (opterr) + { + // -- option + if (argv[optind - 1].startsWith("--")) + { + Object[] msgArgs = { progname, pfound.name }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.arguments1"), + msgArgs)); + } + // +option or -option + else + { + Object[] msgArgs = { progname, new + Character(argv[optind-1].charAt(0)).toString(), + pfound.name }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.arguments2"), + msgArgs)); + } + } + + nextchar = ""; + optopt = pfound.val; + + return('?'); + } + } // if (nameend) + else if (pfound.has_arg == LongOpt.REQUIRED_ARGUMENT) + { + if (optind < argv.length) + { + optarg = argv[optind]; + ++optind; + } + else + { + if (opterr) + { + Object[] msgArgs = { progname, argv[optind-1] }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires"), + msgArgs)); + } + + nextchar = ""; + optopt = pfound.val; + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + } // else if (pfound) + + nextchar = ""; + + if (pfound.flag != null) + { + pfound.flag.setLength(0); + pfound.flag.append(pfound.val); + + return(0); + } + + return(pfound.val); + } // if (pfound != null) + + longopt_handled = false; + + return(0); +} + +/**************************************************************************/ + +/** + * This method returns a char that is the current option that has been + * parsed from the command line. If the option takes an argument, then + * the internal variable 'optarg' is set which is a String representing + * the the value of the argument. This value can be retrieved by the + * caller using the getOptarg() method. If an invalid option is found, + * an error message is printed and a '?' is returned. The name of the + * invalid option character can be retrieved by calling the getOptopt() + * method. When there are no more options to be scanned, this method + * returns -1. The index of first non-option element in argv can be + * retrieved with the getOptind() method. + * + * @return Various things as described above + */ +public int +getopt() +{ + optarg = null; + + if (endparse == true) + return(-1); + + if ((nextchar == null) || (nextchar.equals(""))) + { + // If we have just processed some options following some non-options, + // exchange them so that the options come first. + if (last_nonopt > optind) + last_nonopt = optind; + if (first_nonopt > optind) + first_nonopt = optind; + + if (ordering == PERMUTE) + { + // If we have just processed some options following some non-options, + // exchange them so that the options come first. + if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) + exchange(argv); + else if (last_nonopt != optind) + first_nonopt = optind; + + // Skip any additional non-options + // and extend the range of non-options previously skipped. + while ((optind < argv.length) && (argv[optind].equals("") || + (argv[optind].charAt(0) != '-') || argv[optind].equals("-"))) + { + optind++; + } + + last_nonopt = optind; + } + + // The special ARGV-element `--' means premature end of options. + // Skip it like a null option, + // then exchange with previous non-options as if it were an option, + // then skip everything else like a non-option. + if ((optind != argv.length) && argv[optind].equals("--")) + { + optind++; + + if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) + exchange (argv); + else if (first_nonopt == last_nonopt) + first_nonopt = optind; + + last_nonopt = argv.length; + + optind = argv.length; + } + + // If we have done all the ARGV-elements, stop the scan + // and back over any non-options that we skipped and permuted. + if (optind == argv.length) + { + // Set the next-arg-index to point at the non-options + // that we previously skipped, so the caller will digest them. + if (first_nonopt != last_nonopt) + optind = first_nonopt; + + return(-1); + } + + // If we have come to a non-option and did not permute it, + // either stop the scan or describe it to the caller and pass it by. + if (argv[optind].equals("") || (argv[optind].charAt(0) != '-') || + argv[optind].equals("-")) + { + if (ordering == REQUIRE_ORDER) + return(-1); + + optarg = argv[optind++]; + return(1); + } + + // We have found another option-ARGV-element. + // Skip the initial punctuation. + if (argv[optind].startsWith("--")) + nextchar = argv[optind].substring(2); + else + nextchar = argv[optind].substring(1); + } + + // Decode the current option-ARGV-element. + + /* Check whether the ARGV-element is a long option. + + If long_only and the ARGV-element has the form "-f", where f is + a valid short option, don't consider it an abbreviated form of + a long option that starts with f. Otherwise there would be no + way to give the -f short option. + + On the other hand, if there's a long option "fubar" and + the ARGV-element is "-fu", do consider that an abbreviation of + the long option, just like "--fu", and not "-f" with arg "u". + + This distinction seems to be the most useful approach. */ + if ((long_options != null) && (argv[optind].startsWith("--") + || (long_only && ((argv[optind].length() > 2) || + (optstring.indexOf(argv[optind].charAt(1)) == -1))))) + { + int c = checkLongOption(); + + if (longopt_handled) + return(c); + + // Can't find it as a long option. If this is not getopt_long_only, + // or the option starts with '--' or is not a valid short + // option, then it's an error. + // Otherwise interpret it as a short option. + if (!long_only || argv[optind].startsWith("--") + || (optstring.indexOf(nextchar.charAt(0)) == -1)) + { + if (opterr) + { + if (argv[optind].startsWith("--")) + { + Object[] msgArgs = { progname, nextchar }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.unrecognized"), + msgArgs)); + } + else + { + Object[] msgArgs = { progname, new + Character(argv[optind].charAt(0)).toString(), + nextchar }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.unrecognized2"), + msgArgs)); + } + } + + nextchar = ""; + ++optind; + optopt = 0; + + return('?'); + } + } // if (longopts) + + // Look at and handle the next short option-character */ + int c = nextchar.charAt(0); //**** Do we need to check for empty str? + if (nextchar.length() > 1) + nextchar = nextchar.substring(1); + else + nextchar = ""; + + String temp = null; + if (optstring.indexOf(c) != -1) + temp = optstring.substring(optstring.indexOf(c)); + + if (nextchar.equals("")) + ++optind; + + if ((temp == null) || (c == ':')) + { + if (opterr) + { + if (posixly_correct) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.illegal"), msgArgs)); + } + else + { + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.invalid"), msgArgs)); + } + } + + optopt = c; + + return('?'); + } + + // Convenience. Treat POSIX -W foo same as long option --foo + if ((temp.charAt(0) == 'W') && (temp.length() > 1) && (temp.charAt(1) == ';')) + { + if (!nextchar.equals("")) + { + optarg = nextchar; + } + // No further cars in this argv element and no more argv elements + else if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message. + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + else + { + // We already incremented `optind' once; + // increment it again when taking next ARGV-elt as argument. + nextchar = argv[optind]; + optarg = argv[optind]; + } + + c = checkLongOption(); + + if (longopt_handled) + return(c); + else + // Let the application handle it + { + nextchar = null; + ++optind; + return('W'); + } + } + + if ((temp.length() > 1) && (temp.charAt(1) == ':')) + { + if ((temp.length() > 2) && (temp.charAt(2) == ':')) + // This is an option that accepts and argument optionally + { + if (!nextchar.equals("")) + { + optarg = nextchar; + ++optind; + } + else + { + optarg = null; + } + + nextchar = null; + } + else + { + if (!nextchar.equals("")) + { + optarg = nextchar; + ++optind; + } + else if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + else + { + optarg = argv[optind]; + ++optind; + + // Ok, here's an obscure Posix case. If we have o:, and + // we get -o -- foo, then we're supposed to skip the --, + // end parsing of options, and make foo an operand to -o. + // Only do this in Posix mode. + if ((posixly_correct) && optarg.equals("--")) + { + // If end of argv, error out + if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + + // Set new optarg and set to end + // Don't permute as we do on -- up above since we + // know we aren't in permute mode because of Posix. + optarg = argv[optind]; + ++optind; + first_nonopt = optind; + last_nonopt = argv.length; + endparse = true; + } + } + + nextchar = null; + } + } + + return(c); +} + +} // Class Getopt + + diff --git a/lab1/gnu/getopt/GetoptDemo.class b/lab1/gnu/getopt/GetoptDemo.class new file mode 100755 index 0000000000000000000000000000000000000000..518218737ebab153a4d2c72c103e2e074bbef12d GIT binary patch literal 2868 zcmb_e+jA3T6#sp>?KTb2h88FV{R;GI)0B${DHJK?66^(OrG#>ElWdc1liir?w%`px zQ1FI2j!(`o;|mWy>1gWM5l0__i9X@DX3SJ#Gs8;8wwEv~VU7wz zRgiF5!WBxE!8>MH*_e7v6Nu}MtEQ1L2i3IEBOra)gC`mM3Ec`N?5*ICp(jQ&CWZZH z%mHg^O3f0jq?*bI&leeL49m<|W?Un^lvXZlX)Dc8UxrtV$RL|)&dg+u1Ve2g6pe*K z@lbN2PvE@d!^?QZhgWgchu3gT!gU{B#|?&!l^nEGT#(pu+%S2HxN^!zGju+unMppY zq%4)U`*0I)5RDb@ux_deHS5EhxF$m0^5M3Kb`x(g)U_AAm2ARFtGdZ4N8L)LsDwVe zjav+AnCDcLUokA6RAyD4RZT0ab4}+)mgvx?$rU}$&7?vLt{ZxwM2j$IxtdaK+&Lx3 zr>&gHrwog%ZOUd+U82pv+8J8Hd`36s2usU#^QdL=424t4KFs4Act_;(F0L{7%8NmziV*FRbtXkE#f{XmAH({x?GkBXv1uh^B`4xc8Cfn4p5dtz z>2$h>3peUT+ERF6qEtaqlbDgss)gJDY_5u;VNY@ zPL)|9w6>jVIjXEFs-?w6)7lN&(OEhT0u<+Y$A|ZYd(#LtMU_Jc(djZT&Be+nPzS7Z z%4l?&$WvLW3>`z`LZcDvsGQ|+g{nAeePJ=> zqg6braI3)Rt4dWM)=;~SW=u6JhPmUMP%6Q>e+luU-Ym?2Olp~?^gmObg@D4WJoO&hDZ5`CE}d`8SZb$iE=M}bKh zaT+Olt$Ha(ae$iOB+eVlgFCkpgkVB)1p_r3JAl_VqS z?wSYtoE9`bbobcGTKY8X!+u(mscR52B=Vo~d<)0O0-TX~xI(Uga{-Qs-|b{|$$5Cj z0xtVmay7Z?3|ry06|$ST#p42MB7Sd|zcw%rU&!6$cIL6B$(_gA$N|S)_OSUgBJmY* z@X{rI5xNA$Pv~;c^*vo7Qt2cQk-S54f@F+jl%$6wt=V>x@sdoEJS&2%8~y@y3#cdV ze*gMB8WzwPX>#SUVICXv*z{o@P5#ZK@BR@|_dU4%&GeARmOQrJD@>L-KSp{Rk);3e zGNZlAar~UT%3NB=Dj;^Z?aE`j@Y_MRYLOOyD|2flqh>*@L}T&i|Wua=tYO!iyxzv*6ZP>e?M!n0gquLg4l$9Y{oE} zF-A>%k+fe^li$ZS{EjyKiB7f^-Hap1+R)2-u#-jUpM;8i>?-!N>o~}6p`U$;!)zXd z>^mG~Ki~v=fRpSe46|P_%6`RZM?J1Xq&tEb!H5jXSM{1*G-XvLYWZhAt}@Fl)du%_W_+>sH#(U8Ik4JVP*@HXDj@Gg=h zn4T6o9Udst7ZJm;{X+aLe_Y;ZiA=vSPa}n9jmv?lRMmp0bJwCSyBzgEh@){YYJjwS z`utfk+z1d?k1G9)GaVHKM59cRv?sc_)7SOQyY(RoQQ62XRcErOj;fu{ygHwmG zdgtYGK&(4G0`-aCtM=fZnhf|hvr0^j(q#n1F@Z58>4G>$UI@p@AMf!e$e----$F!^ zPS}X#-CK!zZzc9=4M|r?`}gJi~=l z^ckiiuMk@czl5@u+ClsU2C7%0FQKmK&k;==c>!%Ax{JXb9Q{{6zl|Y1wT)qYY8xYZ zl7c1v^zxr0tJ9qcJfbS=7{+6&^?SO3f4~xcL=iusf}cswzu+!@MVgRfV6W*gsvx64 zX9~_U+I^p%2=$@TGlglgvX>LI%F`%SHS`C)FvyfKZ}SP+EIuH67&`p>A?R-e`jD#X ahmIVM`WJyd3XGaK9Q74JFH)uuK7Iq%AbJb{ literal 0 HcmV?d00001 diff --git a/lab1/gnu/getopt/LongOpt.java b/lab1/gnu/getopt/LongOpt.java new file mode 100755 index 0000000..6357085 --- /dev/null +++ b/lab1/gnu/getopt/LongOpt.java @@ -0,0 +1,195 @@ +/************************************************************************** +/* LongOpt.java -- Long option object for Getopt +/* +/* Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +package gnu.getopt; + +import java.util.Locale; +import java.util.ResourceBundle; +import java.text.MessageFormat; + +/**************************************************************************/ + +/** + * This object represents the definition of a long option in the Java port + * of GNU getopt. An array of LongOpt objects is passed to the Getopt + * object to define the list of valid long options for a given parsing + * session. Refer to the getopt documentation for details on the + * format of long options. + * + * @version 1.0.5 + * @author Aaron M. Renn (arenn@urbanophile.com) + * + * @see Getopt + */ +public class LongOpt extends Object +{ + +/**************************************************************************/ + +/* + * Class Variables + */ + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes no argument. + */ +public static final int NO_ARGUMENT = 0; + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes an argument that is required. + */ +public static final int REQUIRED_ARGUMENT = 1; + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes an argument that is optional. + */ +public static final int OPTIONAL_ARGUMENT = 2; + +/**************************************************************************/ + +/* + * Instance Variables + */ + +/** + * The name of the long option + */ +protected String name; + +/** + * Indicates whether the option has no argument, a required argument, or + * an optional argument. + */ +protected int has_arg; + +/** + * If this variable is not null, then the value stored in "val" is stored + * here when this long option is encountered. If this is null, the value + * stored in "val" is treated as the name of an equivalent short option. + */ +protected StringBuffer flag; + +/** + * The value to store in "flag" if flag is not null, otherwise the + * equivalent short option character for this long option. + */ +protected int val; + +/** + * Localized strings for error messages + */ +private ResourceBundle _messages = ResourceBundle.getBundle( + "gnu/getopt/MessagesBundle", Locale.getDefault()); + +/**************************************************************************/ + +/* + * Constructors + */ + +/** + * Create a new LongOpt object with the given parameter values. If the + * value passed as has_arg is not valid, then an exception is thrown. + * + * @param name The long option String. + * @param has_arg Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). + * @param flag If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. + * @param val The value to return for this long option, or the equivalent single letter option to emulate if flag is null. + * + * @exception IllegalArgumentException If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. + */ +public +LongOpt(String name, int has_arg, + StringBuffer flag, int val) throws IllegalArgumentException +{ + // Validate has_arg + if ((has_arg != NO_ARGUMENT) && (has_arg != REQUIRED_ARGUMENT) + && (has_arg != OPTIONAL_ARGUMENT)) + { + Object[] msgArgs = { new Integer(has_arg).toString() }; + throw new IllegalArgumentException(MessageFormat.format( + _messages.getString("getopt.invalidValue"), msgArgs)); + } + + // Store off values + this.name = name; + this.has_arg = has_arg; + this.flag = flag; + this.val = val; +} + +/**************************************************************************/ + +/** + * Returns the name of this LongOpt as a String + * + * @return Then name of the long option + */ +public String +getName() +{ + return(name); +} + +/**************************************************************************/ + +/** + * Returns the value set for the 'has_arg' field for this long option + * + * @return The value of 'has_arg' + */ +public int +getHasArg() +{ + return(has_arg); +} + +/**************************************************************************/ + +/** + * Returns the value of the 'flag' field for this long option + * + * @return The value of 'flag' + */ +public StringBuffer +getFlag() +{ + return(flag); +} + +/** + * Returns the value of the 'val' field for this long option + * + * @return The value of 'val' + */ +public int +getVal() +{ + return(val); +} + +/**************************************************************************/ + +} // Class LongOpt + diff --git a/lab1/gnu/getopt/Makefile b/lab1/gnu/getopt/Makefile new file mode 100755 index 0000000..6ff789c --- /dev/null +++ b/lab1/gnu/getopt/Makefile @@ -0,0 +1,7 @@ +# Makefile for Java port of GNU getopt + +all: + javac LongOpt.java Getopt.java GetoptDemo.java + +docs: + javadoc -author -version -public Getopt.java LongOpt.java diff --git a/lab1/gnu/getopt/MessagesBundle.properties b/lab1/gnu/getopt/MessagesBundle.properties new file mode 100755 index 0000000..9356ee1 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties -- English language error messages +/* +/* Copyright (c) 1998 by William King (wrking@eng.sun.com) and +/* Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: option ''{1}'' is ambiguous +getopt.arguments1={0}: option ''--{1}'' doesn't allow an argument +getopt.arguments2={0}: option ''{1}{2}'' doesn't allow an argument +getopt.requires={0}: option ''{1}'' requires an argument +getopt.unrecognized={0}: unrecognized option ''--{1}'' +getopt.unrecognized2={0}: unrecognized option ''{1}{2}'' +getopt.illegal={0}: illegal option -- {1} +getopt.invalid={0}: invalid option -- {1} +getopt.requires2={0}: option requires an argument -- {1} +getopt.invalidValue=Invalid value {0} for parameter 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_chs.properties b/lab1/gnu/getopt/MessagesBundle_chs.properties new file mode 100755 index 0000000..1090dc6 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_chs.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties šCSimple Chinese language error messages +/* +/* Copyright (c) 2012 by David Zhang (david290@qq.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: Ñ¡Ïî ''{1}'' ÓÐÆçÒå +getopt.arguments1={0}:Ñ¡Ïî''--{1}'' ²»ÄÜŽø²ÎÊý +getopt.arguments2={0}:Ñ¡Ïî''{1}{2}''²»ÄÜŽø²ÎÊý +getopt.requires={0}: Ñ¡Ïî ''{1}'' ÒªÇóŽøÓвÎÊý +getopt.unrecognized={0}: ÎÞ·šÊ¶±ðµÄÑ¡Ïî ''--{1}'' +getopt.unrecognized2={0}:ÎÞ·šÊ¶±ðµÄÑ¡Ïî''{1}{2}'' +getopt.illegal={0}: ·Ç·šÑ¡Ïî -- {1} +getopt.invalid={0}: ÎÞЧѡÏî -- {1} +getopt.requires2={0}:Ñ¡ÏîÐèÒªÓвÎÊý -- {1} +getopt.invalidValue=Ñ¡Ïî 'has_arg'µÄÖµ {0} ·Ç·š + + diff --git a/lab1/gnu/getopt/MessagesBundle_cht.properties b/lab1/gnu/getopt/MessagesBundle_cht.properties new file mode 100755 index 0000000..270e4f1 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_cht.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties - Triditional Chinese language error messages +/* +/* Copyright (c) 2012 by David Zhang (david290@qq.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: 遾項 ''{1}'' 有歧矩 +getopt.arguments1={0}:遾項''--{1}'' 䞍胜垶參敞 +getopt.arguments2={0}:遾項''{1}{2}''䞍胜垶參敞 +getopt.requires={0}: 遾項 ''{1}'' 芁求垶有參敞 +getopt.unrecognized={0}: 無法識別的遞項 ''--{1}'' +getopt.unrecognized2={0}:無法識別的遞項''{1}{2}'' +getopt.illegal={0}: 非法遞項 -- {1} +getopt.invalid={0}: 無效遞項 -- {1} +getopt.requires2={0}:遞項需芁有參敞 -- {1} +getopt.invalidValue=遾項 'has_arg'的倌 {0} 非法 + + diff --git a/lab1/gnu/getopt/MessagesBundle_cs.properties b/lab1/gnu/getopt/MessagesBundle_cs.properties new file mode 100755 index 0000000..3c14a03 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_cs.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle_cs.properties -- Czech language error messages +/* +/* Czech Messages Copyright (c) 1998 by Roman Szturc (Roman.Szturc@vsb.cz) +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: volba ''{1}'' je nejednoznaèná +getopt.arguments1={0}: volba ''--{1}'' nepøipou¹tí argument +getopt.arguments2={0}: volba ''{1}{2}'' nepøipou¹tí argument +getopt.requires={0}: volba ''{1}'' vyŸaduje argument +getopt.unrecognized={0}: nepøípustná volba ''--{1}'' +getopt.unrecognized2={0}: nepøípustná volba ''{1}{2}'' +getopt.illegal={0}: nepøípustná volba -- {1} +getopt.invalid={0}: neplatná volba -- {1} +getopt.requires2={0}: volba vyŸaduje argument -- {1} +getopt.invalidValue=Neplatná hodnota {0} parameteru 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_de.properties b/lab1/gnu/getopt/MessagesBundle_de.properties new file mode 100755 index 0000000..f741386 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_de.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties -- German language error messages +/* +/* German Messages Copyright (c) 1999 by Bernhard Bablok (bablokb@gmx.net) +/* These messages are encoded in ISO-8859-1 +//* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: Option ''{1}'' ist zweideutig +getopt.arguments1={0}: Option ''--{1}'' erlaubt kein Argument +getopt.arguments2={0}: Option ''{1}{2}'' erlaubt kein Argument +getopt.requires={0}: Option ''{1}'' benötigt ein Argument +getopt.unrecognized={0}: Unbekannte Option ''--{1}'' +getopt.unrecognized2={0}: Unbekannte Option ''{1}{2}'' +getopt.illegal={0}: Verbotene Option -- {1} +getopt.invalid={0}: Ungültige Option -- {1} +getopt.requires2={0}: Option benötigt ein Argument -- {1} +getopt.invalidValue=Ungültiger Wert {0} für Parameter 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_es.properties b/lab1/gnu/getopt/MessagesBundle_es.properties new file mode 100755 index 0000000..ef358f4 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_es.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle_es.properties -- Spanish language error messages +/* +/* Spanish Messages Copyright (c) 2004 by Daniel Pérez (dondani@gmail.com) +/* These messages are encoded in ISO-8859-1 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: la opción ''{1}'' es ambigua +getopt.arguments1={0}: la opción ''--{1}'' no permite un argumento +getopt.arguments2={0}: la opción ''{1}{2}'' no permite un argumento +getopt.requires={0}: la opción ''{1}'' requiere un argumento +getopt.unrecognized={0}: opción no reconocida ''--{1}'' +getopt.unrecognized2={0}: opción no reconocida ''{1}{2}'' +getopt.illegal={0}: opción ilegal -- {1} +getopt.invalid={0}: opción no válida -- {1} +getopt.requires2={0}: la opción requiere un argumento -- {1} +getopt.invalidValue=Valor no válido {0} para el parámetro 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_fr.properties b/lab1/gnu/getopt/MessagesBundle_fr.properties new file mode 100755 index 0000000..400447c --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_fr.properties @@ -0,0 +1,35 @@ +/************************************************************************** +/* MessagesBundle_fr.properties -- French language error messages +/* +/* Copyright (c) 1999 Free Software Foundation, Inc. +/* Michel Robitaille , 1996, +/* Edouard G. Parmelan , 1999. +/* These messages are encoded in ISO-8859-1 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: l'option ''{1}'' est ambiguë +getopt.arguments1={0}: l'option ''--{1}'' ne permet pas de paramètre +getopt.arguments2={0}: l'option ''{1}{2}'' ne permet pas de paramètre +getopt.requires={0}: l'option ''{1}'' requiert un paramètre +getopt.unrecognized={0}: option non reconnue ''--{1}'' +getopt.unrecognized2={0}: option non reconnue ''{1}{2}'' +getopt.illegal={0}: option illégale -- {1} +getopt.invalid={0}: option invalide -- {1} +getopt.requires2={0}: cette option requiert un paramètre -- {1} +getopt.invalidValue=Valeur invalide {0} pour le paramètre 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_hu.properties b/lab1/gnu/getopt/MessagesBundle_hu.properties new file mode 100755 index 0000000..f7af03b --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_hu.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Hungarian language error messages +/* +/* Copyright (c) 2001 by Gyula Csom (csom@informix.hu) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: opció ''{1}'' félreérthetõ +getopt.arguments1={0}: opció ''--{1}'' nem enged meg argumentumot +getopt.arguments2={0}: opció ''{1}{2}'' nem enged meg argumentumot +getopt.requires={0}: opció ''{1}'' argumentumot igényel +getopt.unrecognized={0}: ismeretlen opció ''--{1}'' +getopt.unrecognized2={0}: ismeretlen opció ''{1}{2}'' +getopt.illegal={0}: illegális opció -- {1} +getopt.invalid={0}: érvénytelen opció -- {1} +getopt.requires2={0}: az opció argumentumot igényel -- {1} +getopt.invalidValue=Érvénytelen érték {0} a következõ paraméterhez 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_it.properties b/lab1/gnu/getopt/MessagesBundle_it.properties new file mode 100755 index 0000000..c596c26 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_it.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Italian language error messages +/* +/* Copyright (c) 2005 by Sandro Tosi (matrixhasu@gmail.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: l'opzione ''{1}'' è ambigua +getopt.arguments1={0}: l'opzione ''--{1}'' non ammette un argomento +getopt.arguments2={0}: l'opzione ''{1}{2}'' non ammette un argomento +getopt.requires={0}: l'opzione ''{1}'' richiede un argomento +getopt.unrecognized={0}: opzione non riconosciuta ''--{1}'' +getopt.unrecognized2={0}: opzione non riconosciuta ''{1}{2}'' +getopt.illegal={0}: opzione illegale -- {1} +getopt.invalid={0}: opzione invalida -- {1} +getopt.requires2={0}: l'opzione richiede un argomento -- {1} +getopt.invalidValue=Valore non valido {0} per il parametro 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_ja.properties b/lab1/gnu/getopt/MessagesBundle_ja.properties new file mode 100755 index 0000000..5578972 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_ja.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Japanese language error messages +/* +/* Copyright (c) 2001 by Yasuoka Masahiko (yasuoka@yasuoka.net) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u66d6\u6627\u3067\u3059\u3002 +getopt.arguments1={0}: ''--{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 +getopt.arguments2={0}: ''{1}{2}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 +getopt.requires={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 +getopt.unrecognized={0}: ''--{1}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.unrecognized2={0}: ''{1}{2}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.illegal={0}: -- {1} \u306f\u4e0d\u6b63\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.invalid={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002 +getopt.requires2={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 +getopt.invalidValue={0} \u306f\u3001'has_arg' \u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u4e0d\u6b63\u306a\u5024\u3067\u3059\u3002 + diff --git a/lab1/gnu/getopt/MessagesBundle_nl.properties b/lab1/gnu/getopt/MessagesBundle_nl.properties new file mode 100755 index 0000000..c614922 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_nl.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle_nl.properties -- Dutch language error messages +/* +/* Copyright (c) 1999 by Ernst de Haan (ernst@jollem.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: optie ''{1}'' is ambigue +getopt.arguments1={0}: optie ''--{1}'' staat geen argumenten toe +getopt.arguments2={0}: optie ''{1}{2}'' staat geen argumenten toe +getopt.requires={0}: optie ''{1}'' heeft een argument nodig +getopt.unrecognized={0}: onbekende optie ''--{1}'' +getopt.unrecognized2={0}: onbekende optie ''{1}{2}'' +getopt.illegal={0}: niet-toegestane optie -- {1} +getopt.invalid={0}: onjuiste optie -- {1} +getopt.requires2={0}: optie heeft een argument nodig -- {1} +getopt.invalidValue=Ongeldige waarde {0} voor parameter 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_no.properties b/lab1/gnu/getopt/MessagesBundle_no.properties new file mode 100755 index 0000000..bcb8c50 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_no.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Norwegian language error messages +/* +/* Copyright (c) 1999 by Bjørn-Ove Heimsund (s811@ii.uib.no) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: flagget ''{1}'' er flertydig +getopt.arguments1={0}: flagget ''--{1}'' tillater ikke et argument +getopt.arguments2={0}: flagget ''{1}{2}'' tillater ikke et argument +getopt.requires={0}: flagget ''{1}'' krever et argument +getopt.unrecognized={0}: ukjent flagg ''--{1}'' +getopt.unrecognized2={0}: ukjent flagg ''{1}{2}'' +getopt.illegal={0}: ugyldig flagg -- {1} +getopt.invalid={0}: ugyldig flagg -- {1} +getopt.requires2={0}: flagget krever et argument -- {1} +getopt.invalidValue=Ugyldig verdi {0} for parameter 'has_arg' + diff --git a/lab1/gnu/getopt/MessagesBundle_pl.properties b/lab1/gnu/getopt/MessagesBundle_pl.properties new file mode 100755 index 0000000..9580853 --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_pl.properties @@ -0,0 +1,36 @@ +/************************************************************************** +/* MessagesBundle_pl.properties -- Polish language error messages +/* +/* Polish Messages Copyright (c) 2006 by Krzysztof Szyma?ski (sirch.s@gmail.com) +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + + +getopt.ambigious={0}: opcja ''{1}''jest wieloznaczna +getopt.arguments1={0}: opcja ''--{1}'' nie akceptuje argumentu +getopt.arguments2={0}: opcja ''{1}{2}'' nie akceptuje argumentu +getopt.requires={0}: opcja ''{1}'' wymaga argumentu +getopt.unrecognized={0}: nierozpoznana opcja ''--{1}'' +getopt.unrecognized2={0}: nierozpoznana opcja ''{1}{2}'' +getopt.illegal={0}: nie dopuszczalna opcja --{1} +getopt.invalid={0}: b??dna opcja --{1} +getopt.requires2={0}: opcja --{1} oczekuje argumentu +getopt.invalidValue=Nie poprawna warto?? {0} argument 'has_arg' + + + diff --git a/lab1/gnu/getopt/MessagesBundle_ro.properties b/lab1/gnu/getopt/MessagesBundle_ro.properties new file mode 100755 index 0000000..3c0b08b --- /dev/null +++ b/lab1/gnu/getopt/MessagesBundle_ro.properties @@ -0,0 +1,34 @@ +/************************************************************************** +/* MessagesBundle_fr.properties -- Romanian language error messages +/* +/* Copyright (c) 1999 Free Software Foundation, Inc. +/* Marian-Nicolae Ion , 2004, +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your optiunea) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: opÅ£iunea ''{1}'' este ambiguă +getopt.arguments1={0}: opÅ£iunea ''--{1}'' nu acceptă parametru +getopt.arguments2={0}: opÅ£iunea ''{1}{2}'' nu acceptă parametru +getopt.requires={0}: opÅ£iunea ''{1}'' cere un parametru +getopt.unrecognized={0}: opÅ£iune necunoscută ''--{1}'' +getopt.unrecognized2={0}: opÅ£iune necunoscută ''{1}{2}'' +getopt.illegal={0}: opÅ£iune ilegală -- {1} +getopt.invalid={0}: opÅ£iune invalidă -- {1} +getopt.requires2={0}: această opÅ£iune cere un parametru -- {1} +getopt.invalidValue=Valoare invalidă {0} pentru parametrul 'has_arg' + diff --git a/lab1/gnu/getopt/README b/lab1/gnu/getopt/README new file mode 100755 index 0000000..48451f7 --- /dev/null +++ b/lab1/gnu/getopt/README @@ -0,0 +1,57 @@ +This is a Java port of the GNU getopt functions based on the versions +contained in glibc 2.0.6. I have attempted to keep the functionality +and programmer's interface as faithful to the original as possible. +However, due to differences between Java and C, some minor changes +has to me made. (Given the obtuse interface in the clib version, +perhaps some major changes should have been made). This should not +affect the way options appear to be parsed to the end user of program +that uses this Java getopt. The use of these classes are completely +documented in the javadoc comments, so I will not repeat that info here. + +Note that since these objects are part of a package called "gnu.getopt", +they need to be in a subdirectory called gnu/getopt somewhere in your +CLASSPATH. This includes the "MessagesBundle" files. + +I am not aware of any bugs. If you find one though, please send email +to me at arenn@urbanophile.com. The more detailed a bug report the better. +Bug fixes are also welcome at the same address. Please reference +release number "1.0.13". If you use this code, it would be helpful +if you let me know so that I can let you know if anything changes or +if any major bugs have been found/fixed. + +I have included a Makefile for compiling the code. If you do not have +access to make, then you can simply do a "javac *.java" at the OS +command line (or follow your vendor's instructions for compiling a +Java class). To build the documentation, do a "make docs" +or "javadoc -public *.java". Note that the images needed by the html +generated by javadoc are not included. You will need to get those +from some other Java documentation package. + +Note that the Makefile is not compliant with the GNU makefile +standards as I anticipate that at some point a master makefile will +be created for various GNU Java packages. And it is serious overkill +to create a megabloat makefile (kinda like this megabloat README) for +such a simple package. + +There is sample code showing how to use getopt available in the +GetoptDemo.java file. + +NEW: A support file for the "ant" build process was contributed. Here are +some brief things you can do with it. Note that I have not ever used this +so it is doubly AS IS. + +Get ant from jakarta project (see jakarta.apache.org/ant), and run it with +one of these target (all is default target): +ant prepare: create the needed directories +ant classes: compile the java classes +ant jar: create the jar archive +ant javadoc: create the javadoc +ant all: create jar and javadoc +ant clean: clean everything + +Happy hacking, + +Aaron. +arenn@urbanophile.com +http://www.urbanophile.com/arenn/ + diff --git a/lab1/gnu/getopt/buildx.xml b/lab1/gnu/getopt/buildx.xml new file mode 100755 index 0000000..ad51e8f --- /dev/null +++ b/lab1/gnu/getopt/buildx.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lab1/gnu/getopt/gnu.getopt.Getopt.html b/lab1/gnu/getopt/gnu.getopt.Getopt.html new file mode 100755 index 0000000..425de42 --- /dev/null +++ b/lab1/gnu/getopt/gnu.getopt.Getopt.html @@ -0,0 +1,639 @@ + + + + + + + Class gnu.getopt.Getopt + + + + +

+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+
+

+ Class gnu.getopt.Getopt +

+
+java.lang.Object
+   |
+   +----gnu.getopt.Getopt
+
+
+
+
public class Getopt +
extends Object +
+This is a Java port of GNU getopt, a class for parsing command line + arguments passed to programs. It it based on the C getopt() functions + in glibc 2.0.6 and should parse options in a 100% compatible manner. + If it does not, that is a bug. The programmer's interface is also + very compatible. +

+ To use Getopt, create a Getopt object with a argv array passed to the + main method, then call the getopt() method in a loop. It will return an + int that contains the value of the option character parsed from the + command line. When there are no more options to be parsed, it + returns -1. +

+ A command line option can be defined to take an argument. If an + option has an argument, the value of that argument is stored in an + instance variable called optarg, which can be accessed using the + getOptarg() method. If an option that requires an argument is + found, but there is no argument present, then an error message is + printed. Normally getopt() returns a '?' in this situation, but + that can be changed as described below. +

+ If an invalid option is encountered, an error message is printed + to the standard error and getopt() returns a '?'. The value of the + invalid option encountered is stored in the instance variable optopt + which can be retrieved using the getOptopt() method. To suppress + the printing of error messages for this or any other error, set + the value of the opterr instance variable to false using the + setOpterr() method. +

+ Between calls to getopt(), the instance variable optind is used to + keep track of where the object is in the parsing process. After all + options have been returned, optind is the index in argv of the first + non-option argument. This variable can be accessed with the getOptind() + method. +

+ Note that this object expects command line options to be passed in the + traditional Unix manner. That is, proceeded by a '-' character. + Multiple options can follow the '-'. For example "-abc" is equivalent + to "-a -b -c". If an option takes a required argument, the value + of the argument can immediately follow the option character or be + present in the next argv element. For example, "-cfoo" and "-c foo" + both represent an option character of 'c' with an argument of "foo" + assuming c takes a required argument. If an option takes an argument + that is not required, then any argument must immediately follow the + option character in the same argv element. For example, if c takes + a non-required argument, then "-cfoo" represents option character 'c' + with an argument of "foo" while "-c foo" represents the option + character 'c' with no argument, and a first non-option argv element + of "foo". +

+ The user can stop getopt() from scanning any further into a command line + by using the special argument "--" by itself. For example: + "-a -- -d" would return an option character of 'a', then return -1 + The "--" is discarded and "-d" is pointed to by optind as the first + non-option argv element. +

+ Here is a basic example of using Getopt: +

+

+ Getopt g = new Getopt("testprog", argv, "ab:c::d");
+ //
+ int c;
+ String arg;
+ while ((c = g.getopt()) != -1)
+   {
+     switch(c)
+       {
+          case 'a':
+          case 'd':
+            System.out.print("You picked " + (char)c + "\n");
+            break;
+            //
+          case 'b':
+          case 'c':
+            arg = g.getOptarg();
+            System.out.print("You picked " + (char)c + 
+                             " with an argument of " +
+                             ((arg != null) ? arg : "null") + "\n");
+            break;
+            //
+          case '?':
+            break; // getopt() already printed an error
+            //
+          default:
+            System.out.print("getopt() returned " + c + "\n");
+       }
+   }
+ 
+

+ In this example, a new Getopt object is created with three params. + The first param is the program name. This is for printing error + messages in the form "program: error message". In the C version, this + value is taken from argv[0], but in Java the program name is not passed + in that element, thus the need for this parameter. The second param is + the argument list that was passed to the main() method. The third + param is the list of valid options. Each character represents a valid + option. If the character is followed by a single colon, then that + option has a required argument. If the character is followed by two + colons, then that option has an argument that is not required. +

+ Note in this example that the value returned from getopt() is cast to + a char prior to printing. This is required in order to make the value + display correctly as a character instead of an integer. +

+ If the first character in the option string is a colon, for example + ":abc::d", then getopt() will return a ':' instead of a '?' when it + encounters an option with a missing required argument. This allows the + caller to distinguish between invalid options and valid options that + are simply incomplete. +

+ In the traditional Unix getopt(), -1 is returned when the first non-option + charcter is encountered. In GNU getopt(), the default behavior is to + allow options to appear anywhere on the command line. The getopt() + method permutes the argument to make it appear to the caller that all + options were at the beginning of the command line, and all non-options + were at the end. For example, calling getopt() with command line args + of "-a foo bar -d" returns options 'a' and 'd', then sets optind to + point to "foo". The program would read the last two argv elements as + "foo" and "bar", just as if the user had typed "-a -d foo bar". +

+ The user can force getopt() to stop scanning the command line with + the special argument "--" by itself. Any elements occuring before the + "--" are scanned and permuted as normal. Any elements after the "--" + are returned as is as non-option argv elements. For example, + "foo -a -- bar -d" would return option 'a' then -1. optind would point + to "foo", "bar" and "-d" as the non-option argv elements. The "--" + is discarded by getopt(). +

+ There are two ways this default behavior can be modified. The first is + to specify traditional Unix getopt() behavior (which is also POSIX + behavior) in which scanning stops when the first non-option argument + encountered. (Thus "-a foo bar -d" would return 'a' as an option and + have "foo", "bar", and "-d" as non-option elements). The second is to + allow options anywhere, but to return all elements in the order they + occur on the command line. When a non-option element is ecountered, + an integer 1 is returned and the value of the non-option element is + stored in optarg is if it were the argument to that option. For + example, "-a foo -d", returns first 'a', then 1 (with optarg set to + "foo") then 'd' then -1. When this "return in order" functionality + is enabled, the only way to stop getopt() from scanning all command + line elements is to use the special "--" string by itself as described + above. An example is "-a foo -b -- bar", which would return 'a', then + integer 1 with optarg set to "foo", then 'b', then -1. optind would + then point to "bar" as the first non-option argv element. The "--" + is discarded. +

+ The POSIX/traditional behavior is enabled by either setting the + property "gnu.posixly_correct" or by putting a '+' sign as the first + character of the option string. The difference between the two + methods is that setting the gnu.posixly_correct property also forces + certain error messages to be displayed in POSIX format. To enable + the "return in order" functionality, put a '-' as the first character + of the option string. Note that after determining the proper + behavior, Getopt strips this leading '+' or '-', meaning that a ':' + placed as the second character after one of those two will still cause + getopt() to return a ':' instead of a '?' if a required option + argument is missing. +

+ In addition to traditional single character options, GNU Getopt also + supports long options. These are preceeded by a "--" sequence and + can be as long as desired. Long options provide a more user-friendly + way of entering command line options. For example, in addition to a + "-h" for help, a program could support also "--help". +

+ Like short options, long options can also take a required or non-required + argument. Required arguments can either be specified by placing an + equals sign after the option name, then the argument, or by putting the + argument in the next argv element. For example: "--outputdir=foo" and + "--outputdir foo" both represent an option of "outputdir" with an + argument of "foo", assuming that outputdir takes a required argument. + If a long option takes a non-required argument, then the equals sign + form must be used to specify the argument. In this case, + "--outputdir=foo" would represent option outputdir with an argument of + "foo" while "--outputdir foo" would represent the option outputdir + with no argument and a first non-option argv element of "foo". +

+ Long options can also be specified using a special POSIX argument + format (one that I highly discourage). This form of entry is + enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid + option string. This causes getopt to treat the name following the + "-W" as the name of the long option. For example, "-W outputdir=foo" + would be equivalent to "--outputdir=foo". The name can immediately + follow the "-W" like so: "-Woutputdir=foo". Option arguments are + handled identically to normal long options. If a string follows the + "-W" that does not represent a valid long option, then getopt() returns + 'W' and the caller must decide what to do. Otherwise getopt() returns + a long option value as described below. +

+ While long options offer convenience, they can also be tedious to type + in full. So it is permissible to abbreviate the option name to as + few characters as required to uniquely identify it. If the name can + represent multiple long options, then an error message is printed and + getopt() returns a '?'. +

+ If an invalid option is specified or a required option argument is + missing, getopt() prints an error and returns a '?' or ':' exactly + as for short options. Note that when an invalid long option is + encountered, the optopt variable is set to integer 0 and so cannot + be used to identify the incorrect option the user entered. +

+ Long options are defined by LongOpt objects. These objects are created + with a contructor that takes four params: a String representing the + object name, a integer specifying what arguments the option takes + (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, + or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described + below), and an integer value (described below). +

+ To enable long option parsing, create an array of LongOpt's representing + the legal options and pass it to the Getopt() constructor. WARNING: If + all elements of the array are not populated with LongOpt objects, the + getopt() method will throw a NullPointerException. +

+ When getopt() is called and a long option is encountered, one of two + things can be returned. If the flag field in the LongOpt object + representing the long option is non-null, then the integer value field + is stored there and an integer 0 is returned to the caller. The val + field can then be retrieved from the flag field. Note that since the + flag field is a StringBuffer, the appropriate String to integer converions + must be performed in order to get the actual int value stored there. + If the flag field in the LongOpt object is null, then the value field + of the LongOpt is returned. This can be the character of a short option. + This allows an app to have both a long and short option sequence + (say, "-h" and "--help") that do the exact same thing. +

+ With long options, there is an alternative method of determining + which option was selected. The method getLongind() will return the + the index in the long option array (NOT argv) of the long option found. + So if multiple long options are configured to return the same value, + the application can use getLongind() to distinguish between them. +

+ Here is an expanded Getopt example using long options and various + techniques described above: +

+

+ int c;
+ String arg;
+ LongOpt[] longopts = new LongOpt[3];
+ // 
+ StringBuffer sb = new StringBuffer();
+ longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
+ longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
+ longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
+ // 
+ Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
+ g.setOpterr(false); // We'll do our own error handling
+ //
+ while ((c = g.getopt()) != -1)
+   switch (c)
+     {
+        case 0:
+          arg = g.getOptarg();
+          System.out.println("Got long option with value '" +
+                             (char)(new Integer(sb.toString())).intValue()
+                             + "' with argument " +
+                             ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 1:
+          System.out.println("I see you have return in order set and that " +
+                             "a non-option argv element was just found " +
+                             "with the value '" + g.getOptarg() + "'");
+          break;
+          //
+        case 2:
+          arg = g.getOptarg();
+          System.out.println("I know this, but pretend I didn't");
+          System.out.println("We picked option " +
+                             longopts[g.getLongind()].getName() +
+                           " with value " + 
+                           ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 'b':
+          System.out.println("You picked plain old option " + (char)c);
+          break;
+          //
+        case 'c':
+        case 'd':
+          arg = g.getOptarg();
+          System.out.println("You picked option '" + (char)c + 
+                             "' with argument " +
+                             ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 'h':
+          System.out.println("I see you asked for help");
+          break;
+          //
+        case 'W':
+          System.out.println("Hmmm. You tried a -W with an incorrect long " +
+                             "option name");
+          break;
+          //
+        case ':':
+          System.out.println("Doh! You need an argument for option " +
+                             (char)g.getOptopt());
+          break;
+          //
+        case '?':
+          System.out.println("The option '" + (char)g.getOptopt() + 
+                           "' is not valid");
+          break;
+          //
+        default:
+          System.out.println("getopt() returned " + c);
+          break;
+     }
+ //
+ for (int i = g.getOptind(); i < argv.length ; i++)
+   System.out.println("Non option argv element: " + argv[i] + "\n");
+ 
+

+ There is an alternative form of the constructor used for long options + above. This takes a trailing boolean flag. If set to false, Getopt + performs identically to the example, but if the boolean flag is true + then long options are allowed to start with a single '-' instead of + "--". If the first character of the option is a valid short option + character, then the option is treated as if it were the short option. + Otherwise it behaves as if the option is a long option. Note that + the name given to this option - long_only - is very counter-intuitive. + It does not cause only long options to be parsed but instead enables + the behavior described above. +

+ Note that the functionality and variable names used are driven from + the C lib version as this object is a port of the C code, not a + new implementation. This should aid in porting existing C/C++ code, + as well as helping programmers familiar with the glibc version to + adapt to the Java version even if it seems very non-Java at times. +

+ In this release I made all instance variables protected due to + overwhelming public demand. Any code which relied on optarg, + opterr, optind, or optopt being public will need to be modified to + use the appropriate access methods. +

+ Please send all bug reports, requests, and comments to + arenn@urbanophile.com. +

+

+
Version: +
1.0.3 +
Author: +
Roland McGrath (roland@gnu.ai.mit.edu), Ulrich Drepper (drepper@cygnus.com), Aaron M. Renn (arenn@urbanophile.com) +
See Also: +
LongOpt +
+
+ +

+ Constructor Index +

+
+
 o + Getopt(String, String[], String) +
Construct a basic Getopt instance with the given input data. +
 o + Getopt(String, String[], String, LongOpt[]) +
Construct a Getopt instance with given input data that is capable of + parsing long options as well as short. +
 o + Getopt(String, String[], String, LongOpt[], boolean) +
Construct a Getopt instance with given input data that is capable of + parsing long options and short options. +
+

+ Method Index +

+
+
 o + getLongind() +
Returns the index into the array of long options (NOT argv) representing + the long option that was found. +
 o + getopt() +
This method returns a char that is the current option that has been + parsed from the command line. +
 o + getOptarg() +
+ For communication from `getopt' to the caller. +
 o + getOptind() +
optind it the index in ARGV of the next element to be scanned. +
 o + getOptopt() +
When getopt() encounters an invalid option, it stores the value of that + option in optopt which can be retrieved with this method. +
 o + setArgv(String[]) +
Since in GNU getopt() the argument vector is passed back in to the + function every time, the caller can swap out argv on the fly. +
 o + setOpterr(boolean) +
Normally Getopt will print a message to the standard error when an + invalid option is encountered. +
 o + setOptind(int) +
This method allows the optind index to be set manually. +
 o + setOptstring(String) +
In GNU getopt, it is possible to change the string containg valid options + on the fly because it is passed as an argument to getopt() each time. +
+ +

+ Constructors +

+ + o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring)
+
+
+
Construct a basic Getopt instance with the given input data. Note that + this handles "short" options only. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command line to the program. +
optstring - A String containing a description of the valid args for this program +
+
+ o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring,
+               LongOpt long_options[])
+
+
+
Construct a Getopt instance with given input data that is capable of + parsing long options as well as short. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command ilne to the program +
optstring - A String containing a description of the valid short args for this program +
long_options - An array of LongOpt objects that describes the valid long args for this program +
+
+ o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring,
+               LongOpt long_options[],
+               boolean long_only)
+
+
+
Construct a Getopt instance with given input data that is capable of + parsing long options and short options. Contrary to what you might + think, the flag 'long_only' does not determine whether or not we + scan for only long arguments. Instead, a value of true here allows + long arguments to start with a '-' instead of '--' unless there is a + conflict with a short option name. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command ilne to the program +
optstring - A String containing a description of the valid short args for this program +
long_options - An array of LongOpt objects that describes the valid long args for this program +
long_only - true if long options that do not conflict with short options can start with a '-' as well as '--' +
+
+ +

+ Methods +

+ o +setOptstring +
+ public void setOptstring(String optstring)
+
+
+
In GNU getopt, it is possible to change the string containg valid options + on the fly because it is passed as an argument to getopt() each time. In + this version we do not pass the string on every call. In order to allow + dynamic option string changing, this method is provided. +

+

+
Parameters: +
optstring - The new option string to use +
+
+ o +getOptind +
+ public int getOptind()
+
+
+
optind it the index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + When `getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. +

+

+ o +setOptind +
+ public void setOptind(int optind)
+
+
+
This method allows the optind index to be set manually. Normally this + is not necessary (and incorrect usage of this method can lead to serious + lossage), but optind is a public symbol in GNU getopt, so this method + was added to allow it to be modified by the caller if desired. +

+

+
Parameters: +
optind - The new value of optind +
+
+ o +setArgv +
+ public void setArgv(String argv[])
+
+
+
Since in GNU getopt() the argument vector is passed back in to the + function every time, the caller can swap out argv on the fly. Since + passing argv is not required in the Java version, this method allows + the user to override argv. Note that incorrect use of this method can + lead to serious lossage. +

+

+
Parameters: +
argv - New argument list +
+
+ o +getOptarg +
+ public String getOptarg()
+
+
+
For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. + No set method is provided because setting this variable has no effect. +

+

+ o +setOpterr +
+ public void setOpterr(boolean opterr)
+
+
+
Normally Getopt will print a message to the standard error when an + invalid option is encountered. This can be suppressed (or re-enabled) + by calling this method. There is no get method for this variable + because if you can't remember the state you set this to, why should I? +

+

+ o +getOptopt +
+ public int getOptopt()
+
+
+
When getopt() encounters an invalid option, it stores the value of that + option in optopt which can be retrieved with this method. There is + no corresponding set method because setting this variable has no effect. +

+

+ o +getLongind +
+ public int getLongind()
+
+
+
Returns the index into the array of long options (NOT argv) representing + the long option that was found. +

+

+ o +getopt +
+ public int getopt()
+
+
+
This method returns a char that is the current option that has been + parsed from the command line. If the option takes an argument, then + the internal variable 'optarg' is set which is a String representing + the the value of the argument. This value can be retrieved by the + caller using the getOptarg() method. If an invalid option is found, + an error message is printed and a '?' is returned. The name of the + invalid option character can be retrieved by calling the getOptopt() + method. When there are no more options to be scanned, this method + returns -1. The index of first non-option element in argv can be + retrieved with the getOptind() method. +

+

+
Returns: +
Various things as described above +
+
+
+
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+ + diff --git a/lab1/gnu/getopt/gnu.getopt.LongOpt.html b/lab1/gnu/getopt/gnu.getopt.LongOpt.html new file mode 100755 index 0000000..ddc1186 --- /dev/null +++ b/lab1/gnu/getopt/gnu.getopt.LongOpt.html @@ -0,0 +1,210 @@ + + + + + + + Class gnu.getopt.LongOpt + + + + +
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+
+

+ Class gnu.getopt.LongOpt +

+
+java.lang.Object
+   |
+   +----gnu.getopt.LongOpt
+
+
+
+
public class LongOpt +
extends Object +
+This object represents the definition of a long option in the Java port + of GNU getopt. An array of LongOpt objects is passed to the Getopt + object to define the list of valid long options for a given parsing + session. Refer to the getopt documentation for details on the + format of long options. +

+

+
Version: +
1.0.3 +
Author: +
Aaron M. Renn (arenn@urbanophile.com) +
See Also: +
Getopt +
+
+ +

+ Variable Index +

+
+
 o + NO_ARGUMENT +
Constant value used for the "has_arg" constructor argument. +
 o + OPTIONAL_ARGUMENT +
Constant value used for the "has_arg" constructor argument. +
 o + REQUIRED_ARGUMENT +
+ Constant value used for the "has_arg" constructor argument. +
+

+ Constructor Index +

+
+
 o + LongOpt(String, int, StringBuffer, int) +
Create a new LongOpt object with the given parameter values. +
+

+ Method Index +

+
+
 o + getFlag() +
Returns the value of the 'flag' field for this long option + + +
 o + getHasArg() +
Returns the value set for the 'has_arg' field for this long option + + +
 o + getName() +
Returns the name of this LongOpt as a String + + +
 o + getVal() +
Returns the value of the 'val' field for this long option + + +
+ +

+ Variables +

+ o +NO_ARGUMENT +
+ public static final int NO_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes no argument.

+

+ o +REQUIRED_ARGUMENT +
+ public static final int REQUIRED_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes an argument that is required.

+

+ o +OPTIONAL_ARGUMENT +
+ public static final int OPTIONAL_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes an argument that is optional.

+

+ +

+ Constructors +

+ + o +LongOpt +
+ public LongOpt(String name,
+                int has_arg,
+                StringBuffer flag,
+                int val) throws IllegalArgumentException
+
+
+
Create a new LongOpt object with the given parameter values. If the + value passed as has_arg is not valid, then an exception is thrown. +

+

+
Parameters: +
name - The long option String. +
has_arg - Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). +
flag - If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. +
val - The value to return for this long option, or the equivalent single letter option to emulate if flag is null. +
Throws: IllegalArgumentException +
If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. +
+
+ +

+ Methods +

+ o +getName +
+ public String getName()
+
+
+
Returns the name of this LongOpt as a String +

+

+
Returns: +
Then name of the long option +
+
+ o +getHasArg +
+ public int getHasArg()
+
+
+
Returns the value set for the 'has_arg' field for this long option +

+

+
Returns: +
The value of 'has_arg' +
+
+ o +getFlag +
+ public StringBuffer getFlag()
+
+
+
Returns the value of the 'flag' field for this long option +

+

+
Returns: +
The value of 'flag' +
+
+ o +getVal +
+ public int getVal()
+
+
+
Returns the value of the 'val' field for this long option +

+

+
Returns: +
The value of 'val' +
+
+
+
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+ + From a7ea463849daf3f5cf928042cf1c81d19943ebda Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Wed, 29 Mar 2017 11:13:55 +0200 Subject: [PATCH 02/17] CGP: Initial code for java client --- lab1/client$RC.class | Bin 0 -> 884 bytes lab1/client.class | Bin 0 -> 3729 bytes lab1/client.java | 38 ++++++++++++++++++++++ lab1/server.c | 73 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 lab1/client$RC.class create mode 100644 lab1/client.class create mode 100644 lab1/server.c diff --git a/lab1/client$RC.class b/lab1/client$RC.class new file mode 100644 index 0000000000000000000000000000000000000000..669321099a8c070da471cf24e733ef53db9f850c GIT binary patch literal 884 zcmZuvVQmTd8@iV1n9hBIEGz_*MIuS-mJmOff|YdXN&@YEm$Jke zjb@+yQO5foWP{AtJP(mD8inN!zBoAC}OG3&)Q*NyadjPvq99_d)aYaJVSG!I$ibmVy` zAV*Hz&cu6?qXT~wP=kVDF6im@&)h*sA`&xZhJ(c!#owtf;BWj{rmr{m=nrS;dC1LG zkQ9J2sS%k30V^dw4M!k}2Y3jERjM{A^QBF}z9DuE=?hg1C5j1grW1Y*>vQ}TVq!Oy zhg|)R_%-Ca7h>EO0`dlBNb~_pb!YtwiLZCq%d`{2W2ksSai+>8m3$rjgxt$1(iPN8 zBt@agqDYBCkBcIm_(eErO7Ea2Pm!{F@hQ^wCD?7doS;l2O*WOtqHXA;Yu0=dTS7zy O_b6*5LWY5rX6YXv)S>|Z literal 0 HcmV?d00001 diff --git a/lab1/client.class b/lab1/client.class new file mode 100644 index 0000000000000000000000000000000000000000..6c7ebe43a736e1df30ef0f877550e2240e1b671c GIT binary patch literal 3729 zcma)8dvqLC9sVY}$;?hBZMtpx2!#%|wRwj=k-VTy(y}z&lx#{(0n21}nr_&gU1oMe zBBDH%haggcQtgXZloo7L*+hczg<>muFl8L_p$~^uco9|MLBAN@t01N#4oiGVC`hWf z54HkFyi+P}L0Z9pK-{ljP>hEZd{MyzqWdKU4=VVw=zc}PLkb=iQjdt{QStFH1&=HE zs)Db{ctXWmgcUp~-cKobTD-q5;~53ditaa5RN^@W-<0vZf+GsPrJ@cmh~`DnyyT<8 zqbgp;G12?Bg6{~i;|flAfXPV(C&iMdL~~j+uPAs`#t|8>$#`8tL078;Enr!u-5N6- z$8;pf2OZNMFl`C`j(%gnsE-*|UwtTLN3Fg_355rf2|Fc03P>nwidxZBiv&+aed##OV{DdJ+?hxJ0cMBZ$Bn4tYkXH#F$1rJ165!4QFsxsCi2?Z)^BI z&M`mX7G1`94I{Xq;Rkq!slUsS@rH&BMrm7D`>sH!yS+=p7=EZ>4}uaZLPJ){7}QPM zPS|z&J`s}!eF~{JrMXXnM%--C@GdSeL;HeLlNvgOhN`?8W?-{)aNo6d27~Rb-5T}^ z*$sJRbC@}TYFi*QEqnVXuR8;qBkm2g2ir7^<2?;O!i0t{ge27EU0y(E3F}R9(-C1| z33zYc7wDF-V!j+hmYbPhOgqxin48ejb`jwQJ)DTg4J)E=(C}mYgoU|5w-PCRz=%a7 zbsByu(zbLu`JL^9VKbSECb;Q}r~3`M5dN8lpW`-qkxQBo(rd#>y-v^WHoex-o3eG@ zqSq$%CQ;P%Vo9HsuJ1EbiDasNm-}LsXGK^R5vL*9AokV!8h(LaYWM)}XlTby8NbqS z5tlUV!mT8ZtcHq8-8NHc+cG1rRlg={s1mm2+}+D1^?2Gz>Aj{Nwe-|sQ@6=AroQop zOS}#wAQ%YU+TNyfz)v$V?(FS%dBc~r zp4>8LI?HE_XP$zlr|n%`on4IU9A=uOJv2l*i?fPE$(Ln0fu%aDBFSVcbM!QCLQv(> znW=2)Hj1yFM4C)Dqi!!bH&@_PH=X)fpJ{4RfGCxR3x!T{uMrW9EMZwitttBRXZ;{}Em6n(Q75-L?^CxEk^-o+lg&bh@c5 z%9en8Gzzad>`bN%yN@+Cvq=M1%Ip)IuDB-+hx1~Z^`=n-Zgsw3O}P%8hx>M3a0;M` zf@Dt>wa9ldAD$|Zu$#T>`Ih)DtQv)Mo*fAtY*h;KBX2<(6hZ$v`05_DAfKH*M3OMF$O4;Q7Se6U(>M-K&p5n2 zBPbk2(J16#`7!D45h#9N25N1F&?yuUMU&fvg6mxct7;~^ zr=WNnhfya0pK$?e*&WB)o>8pxug~DK#IyBpV3R?GfLyuQz{pR7syMUCn?ZGUT6AlM zue^SqDOf4(mV&(07P#B)6;v>321gMr!y&B1VeaH8)}tRah+!ivG$FyudXjh>`*A;d zF-X)9M-SjZJcK9kFrLLDIEu&cDxSpKc#1cir!j$NcqBcKKi~-dj2G}9yok$q36nS~ zsW>i`;e>PzPD(mXOVt>bcH=Et_NKHKXQY0dl@c7=ygu!th0Q3Pq=8;mj*L5av&M}a z$k;FA^X><=-2HD=%hWZKbY}`lOwU^GKb~5-ox0wwG{7g~%RT0wUxXRLNBQuy%Zf;~ zZearNjiau|Uti_FVH6uX7~D-g%>^g%=;|{xk-snS;k6$(^J(Uj-Z216%p0gv^w#19mC}zjs z@ES^li;Z;AbJly7He_?Y6HC~iKnbrXEAT$^dl9X;M9%t<4D}lp^=}#T-_h!iFo54P zV}HbP{0S$S#dG)zFQ^~$zWG--FH7OOj1n1lUq+qeTcqo9sSiE|;$SY?9b8n<-HNI) zG#!IHhUW8QXc30poQr+ds&W(&_BW>Y? /* For addresses in PF_INET */ +#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ +#include +#include +#include +#include +#include +#include +#include "read_line.h" + +#define MAX_LINE 256 + +int main(void){ + struct sockaddr_in server_addr, client_addr; + int sd, sc; + int val; + + sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(sd == -1){ + perror("Error when creating the socket"); + exit(-1); + } + + val = 1; + setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + + bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ + server_addr.sin_family = AF_INET; + server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ + server_addr.sin_port = htons(10200); /* Port number */ + + if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + perror("Error when binding the address to the socket"); + exit(-1); + } + + if(listen(sd, 5) == -1){ + perror("Error when listening to the socket"); + exit(-1); + } /* Backlog is 5, yo maximum number of queued requests is 5 */ + + socklen_t size = sizeof(client_addr); + + char req_buffer[MAX_LINE]; + //char res_buffer[MAX_LINE]; + int n; + + + while(1){ + printf("Waiting for connection...\n"); + + sc = accept(sd, (struct sockaddr *) &client_addr, &size); + if(sc == -1){ + perror("Error when accepting the connection"); + exit(-1); + } + + n = readLine(sc, req_buffer, MAX_LINE); + printf("Recieived from client\n"); + if (n!=-1) + write(1, req_buffer, n); + + + + send_msg(sc, req_buffer, MAX_LINE); + close(sc); + + } + + close(sd); + exit(0); + +} From ab2b5125833baae47fb91ad9a0307caf53b44acd Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Wed, 29 Mar 2017 11:16:56 +0200 Subject: [PATCH 03/17] CGP: Added read_line code --- lab1/read_line.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++ lab1/read_line.h | 5 +++ lab1/server.c | 2 +- 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 lab1/read_line.c create mode 100644 lab1/read_line.h diff --git a/lab1/read_line.c b/lab1/read_line.c new file mode 100644 index 0000000..967be93 --- /dev/null +++ b/lab1/read_line.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include "read_line.h" + +int send_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = send(socket, message, l, 0); + l = l -r; /* Pending data to send */ + message = message + r; /* */ + } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + +int recv_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = recv(socket, message, l, 0); + l = l -r ; /* Pending data to receive */ + message = message + r; + } while ((l>0) && (r>=0)); /* We check the return value in case all the data was not received */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + + + +ssize_t readLine(int fd, void *buffer, size_t n) +{ + ssize_t numRead; /* num of bytes fetched by last read() */ + size_t totRead; /* total bytes read so far */ + char *buf; + char ch; + + + if (n <= 0 || buffer == NULL) { + errno = EINVAL; + return -1; + } + + buf = buffer; + totRead = 0; + + for (;;) { + numRead = read(fd, &ch, 1); /* read a byte */ + + if (numRead == -1) { + if (errno == EINTR) /* interrupted -> restart read() */ + continue; + else + return -1; /* some other error */ + } else if (numRead == 0) { /* EOF */ + if (totRead == 0) /* no byres read; return 0 */ + return 0; + else + break; + } else { /* numRead must be 1 if we get here*/ + if (ch == '\n') + break; + if (ch == '\0') + break; + if (totRead < n - 1) { /* discard > (n-1) bytes */ + totRead++; + *buf++ = ch; + } + } + } + + *buf = '\0'; + return totRead; +} diff --git a/lab1/read_line.h b/lab1/read_line.h new file mode 100644 index 0000000..e3d4c9e --- /dev/null +++ b/lab1/read_line.h @@ -0,0 +1,5 @@ +#include + +int send_msg(int socket, char *message, int length); +int recv_msg(int socket, char *message, int length); +ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab1/server.c b/lab1/server.c index fc1fd76..4801e13 100644 --- a/lab1/server.c +++ b/lab1/server.c @@ -55,7 +55,7 @@ int main(void){ exit(-1); } - n = readLine(sc, req_buffer, MAX_LINE); + n = read(sc, req_buffer, MAX_LINE); printf("Recieived from client\n"); if (n!=-1) write(1, req_buffer, n); From 63794c27ae28a96d8e6573915c40f3471051fa95 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Sat, 1 Apr 2017 19:38:10 +0200 Subject: [PATCH 04/17] CGP: Finished implementation of the lists --- lab1/DECISION MAKING POINTS.txt | 16 ++ lab1/Makefile | 32 ++++ lab1/client$1.class | Bin 0 -> 608 bytes lab1/client$RC.class | Bin 884 -> 884 bytes lab1/client.class | Bin 3729 -> 4782 bytes lab1/client.java | 98 +++++++--- lab1/lists_old/msg_list.c | 158 ++++++++++++++++ lab1/lists_old/msg_list.h | 19 ++ lab1/lists_old/test.c | 62 +++++++ lab1/lists_old/user_list.c | 237 ++++++++++++++++++++++++ lab1/lists_old/user_list.h | 26 +++ lab1/lists_old2/msg_list.c | 158 ++++++++++++++++ lab1/lists_old2/msg_list.h | 19 ++ lab1/lists_old2/test.c | 61 ++++++ lab1/lists_old2/user_list.c | 318 ++++++++++++++++++++++++++++++++ lab1/lists_old2/user_list.h | 35 ++++ lab1/msg_list.c | 55 ++++++ lab1/msg_list.h | 12 ++ lab1/msg_list.o | Bin 0 -> 5240 bytes lab1/read_line.o | Bin 0 -> 5296 bytes lab1/server | Bin 0 -> 18040 bytes lab1/server.c | 58 ++++-- lab1/server.o | Bin 0 -> 9552 bytes lab1/test | Bin 0 -> 19784 bytes lab1/test.c | 70 +++++++ lab1/test.o | Bin 0 -> 7136 bytes lab1/user_list.c | 243 ++++++++++++++++++++++++ lab1/user_list.h | 27 +++ lab1/user_list.o | Bin 0 -> 9768 bytes 29 files changed, 1667 insertions(+), 37 deletions(-) create mode 100644 lab1/DECISION MAKING POINTS.txt create mode 100644 lab1/Makefile create mode 100644 lab1/client$1.class create mode 100644 lab1/lists_old/msg_list.c create mode 100644 lab1/lists_old/msg_list.h create mode 100644 lab1/lists_old/test.c create mode 100644 lab1/lists_old/user_list.c create mode 100644 lab1/lists_old/user_list.h create mode 100644 lab1/lists_old2/msg_list.c create mode 100644 lab1/lists_old2/msg_list.h create mode 100644 lab1/lists_old2/test.c create mode 100644 lab1/lists_old2/user_list.c create mode 100644 lab1/lists_old2/user_list.h create mode 100644 lab1/msg_list.c create mode 100644 lab1/msg_list.h create mode 100644 lab1/msg_list.o create mode 100644 lab1/read_line.o create mode 100755 lab1/server create mode 100644 lab1/server.o create mode 100755 lab1/test create mode 100644 lab1/test.c create mode 100644 lab1/test.o create mode 100644 lab1/user_list.c create mode 100644 lab1/user_list.h create mode 100644 lab1/user_list.o diff --git a/lab1/DECISION MAKING POINTS.txt b/lab1/DECISION MAKING POINTS.txt new file mode 100644 index 0000000..4b51c84 --- /dev/null +++ b/lab1/DECISION MAKING POINTS.txt @@ -0,0 +1,16 @@ +DECISION MAKING POINTS + +-Server will be receiving a first string from the client indicating the command/operation/service, that can be REGISTER, UNREGISTER, CONNECT, DISCONNECT or SEND. For optimization, the maximum length of a a command string is of 10 (number of characters in the largest possible command, which is UNREGISTER or DISCONNECT) +1 character for the ASCII '\0'. So this will be stores in a char array of 11 bytes. + +-A username can contain at most 15 characters, including numbers and letters. <> ===> As it is not specified in the guidelines and it may be something that interferes with the protocol, it is consideres to have a username of 256 characters + +-Is the shell that has the role to classify the output value of the functions (register, etc.) and print the message according to it? Or should be the function itself <> + +-CAN WE USE 0 AND 1 TO REPRESENT "OFF" AND "ON" FOR THE STATUS OF THE USER? + +-UNSIGNED SHORT (uint16_t) TO REPRESENT THE PORT NUMBER? + +-DO WE SEND A STRING OR A BYTE FROM SERVER TO CLIENT?? ((IMPORTANT: All fields sent will be encoded as strings. Remember that the +strings end with the ASCII ’\0’ code)) + +-HOW DO WE GET THE IP AND PORT FROM A CLIENT?? \ No newline at end of file diff --git a/lab1/Makefile b/lab1/Makefile new file mode 100644 index 0000000..117a2b4 --- /dev/null +++ b/lab1/Makefile @@ -0,0 +1,32 @@ +BIN_FILES = server test + +CC = gcc + + +CCGLAGS = -Wall -g + +LDFLAGS = -L$(INSTALL_PATH)/lib/ +LDLIBS = -lpthread + + +all: CFLAGS=$(CCGLAGS) +all: $(BIN_FILES) +.PHONY : all + +server: server.o read_line.o + $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ + +#user_list: user_list.o read_line.o +# $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ + +test: test.o read_line.o user_list.o msg_list.o + $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ + +%.o: %.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c $< + +clean: + rm -f $(BIN_FILES) *.o + +.SUFFIXES: +.PHONY : clean diff --git a/lab1/client$1.class b/lab1/client$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ba95620b5d159dceab3eabd2a4d4b97da2c0dd42 GIT binary patch literal 608 zcmY*X+iKfD5It+llBFn)n&#rV7jkhEJ4qYTQu>fm3dR9rI|eD2hdh+Eyu?b?RgmTM ztzVM&JST-xO7REuqe5pDV^dho%$eD9c4t<9?|+W~yu~XEOIS9MN71C{iGn2qPZfBk z%yR=T46HINl)Z03;`iJ9vh0U}kV)CCF=Wmf4EYa~kwNm2AzP`QFle=?Cm7~hffR?s zuU!!z@oq?&Suf%K7t%;E9mHUH(J=PKL7?h057MtM_!TF9UHV}(2;_NNB>kvoV9mg~ zjhEQ4VPVF`CMq_n*kULt%5KQz`R-xl4gLN>Ai`cfj-%Mdw%WFX3SD)4_dNzM*bON~ zTnqVNAO;N1RHM_q5Prg-KkR2P$HcU0W%Mf^4i&3Vsh+ha)qR>tr%9dsmolQb7f2qa z1EPsp$6nq2TzB1$%aBXGvqG<6(yK71sG3s|Wo*onFA(~UEJeWkUtps@)(>Rv)XM&Z zrgd(hHB+b)%uS&|P*344(M>F1895ZOjt%mgc!PK3GngY`J(a(PL-8Z%rv};f#1MU+ c3K={m5kSKt*%kWcDVJBs$KP?z^3IG5A literal 0 HcmV?d00001 diff --git a/lab1/client$RC.class b/lab1/client$RC.class index 669321099a8c070da471cf24e733ef53db9f850c..4c0767fbe00cc189a2dc347483eb033f88ccbbc3 100644 GIT binary patch delta 43 wcmeyu_JwUj1rsChpF diff --git a/lab1/client.class b/lab1/client.class index 6c7ebe43a736e1df30ef0f877550e2240e1b671c..24290dcebc742a630f66896358972a590400b5f9 100644 GIT binary patch literal 4782 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 Rvoi{G{x9cLoN;{de*r;=l*Ir5 literal 3729 zcma)8dvqLC9sVY}$;?hBZMtpx2!#%|wRwj=k-VTy(y}z&lx#{(0n21}nr_&gU1oMe zBBDH%haggcQtgXZloo7L*+hczg<>muFl8L_p$~^uco9|MLBAN@t01N#4oiGVC`hWf z54HkFyi+P}L0Z9pK-{ljP>hEZd{MyzqWdKU4=VVw=zc}PLkb=iQjdt{QStFH1&=HE zs)Db{ctXWmgcUp~-cKobTD-q5;~53ditaa5RN^@W-<0vZf+GsPrJ@cmh~`DnyyT<8 zqbgp;G12?Bg6{~i;|flAfXPV(C&iMdL~~j+uPAs`#t|8>$#`8tL078;Enr!u-5N6- z$8;pf2OZNMFl`C`j(%gnsE-*|UwtTLN3Fg_355rf2|Fc03P>nwidxZBiv&+aed##OV{DdJ+?hxJ0cMBZ$Bn4tYkXH#F$1rJ165!4QFsxsCi2?Z)^BI z&M`mX7G1`94I{Xq;Rkq!slUsS@rH&BMrm7D`>sH!yS+=p7=EZ>4}uaZLPJ){7}QPM zPS|z&J`s}!eF~{JrMXXnM%--C@GdSeL;HeLlNvgOhN`?8W?-{)aNo6d27~Rb-5T}^ z*$sJRbC@}TYFi*QEqnVXuR8;qBkm2g2ir7^<2?;O!i0t{ge27EU0y(E3F}R9(-C1| z33zYc7wDF-V!j+hmYbPhOgqxin48ejb`jwQJ)DTg4J)E=(C}mYgoU|5w-PCRz=%a7 zbsByu(zbLu`JL^9VKbSECb;Q}r~3`M5dN8lpW`-qkxQBo(rd#>y-v^WHoex-o3eG@ zqSq$%CQ;P%Vo9HsuJ1EbiDasNm-}LsXGK^R5vL*9AokV!8h(LaYWM)}XlTby8NbqS z5tlUV!mT8ZtcHq8-8NHc+cG1rRlg={s1mm2+}+D1^?2Gz>Aj{Nwe-|sQ@6=AroQop zOS}#wAQ%YU+TNyfz)v$V?(FS%dBc~r zp4>8LI?HE_XP$zlr|n%`on4IU9A=uOJv2l*i?fPE$(Ln0fu%aDBFSVcbM!QCLQv(> znW=2)Hj1yFM4C)Dqi!!bH&@_PH=X)fpJ{4RfGCxR3x!T{uMrW9EMZwitttBRXZ;{}Em6n(Q75-L?^CxEk^-o+lg&bh@c5 z%9en8Gzzad>`bN%yN@+Cvq=M1%Ip)IuDB-+hx1~Z^`=n-Zgsw3O}P%8hx>M3a0;M` zf@Dt>wa9ldAD$|Zu$#T>`Ih)DtQv)Mo*fAtY*h;KBX2<(6hZ$v`05_DAfKH*M3OMF$O4;Q7Se6U(>M-K&p5n2 zBPbk2(J16#`7!D45h#9N25N1F&?yuUMU&fvg6mxct7;~^ zr=WNnhfya0pK$?e*&WB)o>8pxug~DK#IyBpV3R?GfLyuQz{pR7syMUCn?ZGUT6AlM zue^SqDOf4(mV&(07P#B)6;v>321gMr!y&B1VeaH8)}tRah+!ivG$FyudXjh>`*A;d zF-X)9M-SjZJcK9kFrLLDIEu&cDxSpKc#1cir!j$NcqBcKKi~-dj2G}9yok$q36nS~ zsW>i`;e>PzPD(mXOVt>bcH=Et_NKHKXQY0dl@c7=ygu!th0Q3Pq=8;mj*L5av&M}a z$k;FA^X><=-2HD=%hWZKbY}`lOwU^GKb~5-ox0wwG{7g~%RT0wUxXRLNBQuy%Zf;~ zZearNjiau|Uti_FVH6uX7~D-g%>^g%=;|{xk-snS;k6$(^J(Uj-Z216%p0gv^w#19mC}zjs z@ES^li;Z;AbJly7He_?Y6HC~iKnbrXEAT$^dl9X;M9%t<4D}lp^=}#T-_h!iFo54P zV}HbP{0S$S#dG)zFQ^~$zWG--FH7OOj1n1lUq+qeTcqo9sSiE|;$SY?9b8n<-HNI) zG#!IHhUW8QXc30poQr+ds&W(&_BW>Y? REGISTER OK"); + return RC.OK; + case "1": + System.out.println("c> REGISTER IN USE"); + return RC.USER_ERROR; + case "2": + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + } catch (java.io.IOException e) { System.out.println("Exception: " + e); e.printStackTrace(); - return RC.ERROR; } + return RC.ERROR; } @@ -105,6 +114,7 @@ static RC connect(String user) * * @return OK if successful * @return USER_ERROR if the user does not exist + * @return USER_CONNECT_ERROR if it is already disconnected * @return ERROR if another error occurred */ static RC disconnect(String user) @@ -156,7 +166,17 @@ static void shell() /********** UNREGISTER ************/ else if (line[0].equals("UNREGISTER")) { if (line.length == 2) { - unregister(line[1]); // userName = line[1] + switch(unregister(line[1])){ // userName = line[1] + case OK: + System.out.println("c> UNREGISTER OK"); + break; + case USER_ERROR: + System.out.println("c> USER DOES NOT EXIST"); + break; + case ERROR: + System.out.println("c> UNREGISTER FAIL"); + break; + } } else { System.out.println("Syntax error. Usage: UNREGISTER "); } @@ -165,7 +185,20 @@ else if (line[0].equals("UNREGISTER")) { /************ CONNECT *************/ else if (line[0].equals("CONNECT")) { if (line.length == 2) { - connect(line[1]); // userName = line[1] + switch(connect(line[1])){ // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR + case OK: + System.out.println("c> CONNECT OK"); + break; + case USER_ERROR: + System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); + break; + case USER_CONNECT_ERROR: + System.out.println("c> USER ALREADY CONNECTED"); + break; + case ERROR: + System.out.println("c> CONNECT FAIL"); + break; + } } else { System.out.println("Syntax error. Usage: CONNECT "); } @@ -174,7 +207,20 @@ else if (line[0].equals("CONNECT")) { /********** DISCONNECT ************/ else if (line[0].equals("DISCONNECT")) { if (line.length == 2) { - disconnect(line[1]); // userName = line[1] + switch(disconnect(line[1])){ // userName = line[1] + case OK: + System.out.println("c> DISCONNECT OK"); + break; + case USER_ERROR: + System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); + break; + case USER_CONNECT_ERROR: + System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); + break; + case ERROR: + System.out.println("c> DISCONNECT FAIL"); + break; + } } else { System.out.println("Syntax error. Usage: DISCONNECT "); } diff --git a/lab1/lists_old/msg_list.c b/lab1/lists_old/msg_list.c new file mode 100644 index 0000000..f5b00d9 --- /dev/null +++ b/lab1/lists_old/msg_list.c @@ -0,0 +1,158 @@ +#include +#include +#include +#include +#include "msg_list.h" + + +/* Returns 1 if already registered; 0 if registered correctly */ +int enqueueMsg(struct user *usr, char * msg, unsigned int id){ + struct pend_msg *msg_head = usr->pend_msg_head; + struct pend_msg *temp; + temp = (struct pend_msg *) malloc(sizeof(struct pend_msg)); + strcpy(temp->pend_msg, msg); + temp->id = id; + /* + printf("MESSAGE TO BE QUEUED: \n"); + printf("\tBODY: %s", temp->pend_msg); + printf("\tID: %d", temp->id); + printf("MESSAGE HEAD POINTER IS:\n"); + printf("\tBODY: %s", msg_head->pend_msg); + printf("\tID: %d", msg_head->id); + if(msg_head->next == NULL){ + printf("HEAD->NEXT IS NULL!\n"); + } + else{ + printf("HEAD->NEXT IS NOT NULL\n"); + }*/ + + if (msg_head == NULL){ //If list is empty + printf("MSG_HEAD IS NULL!\n"); + msg_head = temp; + msg_head->next = NULL; + printf("MESSAGE ENQUEUED\n"); + return 1; + + } + else{ + printf("MSG_HEAD IS NOT NULL!\n"); + temp->next = msg_head; + msg_head = temp; + printf("MESSAGE ENQUEUED\n"); + return 1; + + } + + printf("MESSAGE NOT ENQUEUED\n"); + return 0; +} + +/* Deletes the message at the head of the queue +void removeMsg(){ + struct pend_msg *temp = msg_head; + //Head pointing to the next element + msg_head = temp->next; + //Free the resources of the first message + free(temp); + return; +}*/ + +/* Retrieves the message at the head of the queue */ +/* +struct pend_msg * peekMsg(struct pend_msg * msg_head){ + struct user *temp = user_head; + + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->msg_head; + } + temp = temp->next; + } + + return NULL; +} +*/ + +void printMsgs(struct pend_msg * msg_head){ + printf("INSIDE THE PRINT MSGS FUNCTION!\n"); + struct pend_msg *temp = msg_head; + if(temp == NULL){ + return; + } + + while(temp != NULL){ + printf("Message ID: %d", temp->id); + printf("Message body: %s", temp->pend_msg); + temp = temp->next; + } + + return; +} +/* +void addafter(int num, int loc){ + int i; + struct pend_msg *temp,*left,*right; + right = msg_head; + for(i=1;inext; + } + temp = (struct pend_msg *)malloc(sizeof(struct pend_msg)); + temp->data = num; + left->next = temp; + left = temp; + left->next = right; + return; +} + + + +void insert(int num){ + int c = 0; + struct pend_msg *temp; + temp = msg_head; + if(temp == NULL){ + add(num); + } + else{ + while(temp != NULL){ + if(temp->data < num) + c++; + temp = temp->next; + } + if(c == 0) + add(num); + else if(c < count()) + addafter(num,++c); + else + append(num); + } +} + + +void printMsgs(){ + struct pend_msg *temp; + temp = msg_head; + if(temp == NULL){ + return; + } + while(temp != NULL){ + printf("%s ", temp->pend_msg); + temp = temp->next; + printf("\n"); + } +} + + /* +int count(){ + struct pend_msg *n; + int c = 0; + n = msg_head; + + while(n != NULL){ + n = n->next; + c++; + } + + return c; +}*/ diff --git a/lab1/lists_old/msg_list.h b/lab1/lists_old/msg_list.h new file mode 100644 index 0000000..f8850ad --- /dev/null +++ b/lab1/lists_old/msg_list.h @@ -0,0 +1,19 @@ +#include "user_list.h" +#define MAX_MSG 256 + +/* +struct pend_msg{ + char pend_msg[MAX_MSG]; + unsigned int id; + struct pend_msg *next; +} *msg_head;*/ +struct pend_msg{ + char pend_msg[MAX_MSG]; + unsigned int id; + struct pend_msg *next; +}; + + +int enqueueMsg(struct user *usr, char * msg, unsigned int id); +void removeMsg(); +void printMsgs(struct pend_msg * msg_head); diff --git a/lab1/lists_old/test.c b/lab1/lists_old/test.c new file mode 100644 index 0000000..f5cd026 --- /dev/null +++ b/lab1/lists_old/test.c @@ -0,0 +1,62 @@ +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" +#include "msg_list.h" + + +int main(void){ + char line[MAX_MSG]; + + //struct user * user_head = (struct user *) malloc(sizeof(struct user)); + while(1){ + printf("USER LISTS. CHOOSE ACTION:\n"); + printf("\t1: Register\n"); + printf("\t2: Unegister\n"); + printf("\t3: Connect\n"); + printf("\t4: Disconnect\n"); + printf("\t5: Send message\n"); + readLine(0, line, MAX_MSG); + if(strcmp(line, "1") == 0){ + printf("Username: \n"); + readLine(0, line, MAX_MSG); + int res = registerUser(line); + if(!res){ + printf("USER ADDED\n"); + printUsers(); + } + else{ + printf("ERROR: ALREADY EXISTS!\n"); + printUsers(); + } + + } + else if(strcmp(line, "2") == 0){ + readLine(0, line, MAX_MSG); + int res = unregisterUser(line); + if(!res){ + printf("USER DELETED\n"); + printUsers(); + } + else{ + printf("ERROR: DOES NOT EXIST!\n"); + printUsers(); + } + } + else if(strcmp(line, "5") == 0){ + readLine(0, line, MAX_MSG); + char user[MAX_MSG]; + strcpy(user, line); + readLine(0, line, MAX_MSG); + char msg[MAX_MSG]; + strcpy(msg, line); + printf("Going to send to %s the msg %s", user, msg); + appendMsg(user, msg); + printPendMsgs(user); + } + } + + return 0; +} \ No newline at end of file diff --git a/lab1/lists_old/user_list.c b/lab1/lists_old/user_list.c new file mode 100644 index 0000000..7521fed --- /dev/null +++ b/lab1/lists_old/user_list.c @@ -0,0 +1,237 @@ +#include +#include +#include +#include +#include "msg_list.h" +//#include "user_list.h" + + + + int isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Returns 1 if already registered; 0 if registered correctly */ +int registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + strcpy(temp->username, username); + + //Allocate space for pending messages queue + //struct pend_msg *msg_node = (struct pend_msg *) malloc(sizeof(struct pend_msg)); + //struct pend_msg *msg_node = NULL; + //temp->pend_msg_head = msg_node; + temp->last_msg_id = 0; //Initialize the last message ID to 0 + temp->pend_msg_head = (struct pend_msg *) malloc(sizeof(struct pend_msg)); + //temp->pend_msg_head = NULL; + if (user_head == NULL){ //If list is empty + user_head = temp; + user_head->next = NULL; + } + else{ + struct user *last = user_head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + temp->next = NULL; + } + + return 0; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; + If the statusFlag is 0, it tries to disconnect the user but if already disconnected returns 2 + If the statusFlag is 1, it tries to connect the user but if already connected returns 1*/ +int updateUserStatus(char * username, char statusFlag){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == statusFlag) return 2; + temp->status = statusFlag; + return 0; + } + } + + /* If the code reaches this point, the user was not found registered in the system */ + return 1; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ +int connectUser(char * username, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + //Set IP + temp->port = port; + return 0; + } + } + + return 1; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ +int disconnectUser(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 0) return 2; //User already disconnected + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + //Free IP + free(&(temp->port)); + return 0; + } + } + + return 1; +} +/* + + +void insert(int num){ + int c = 0; + struct user *temp; + temp = user_head; + if(temp == NULL){ + add(num); + } + else{ + while(temp != NULL){ + if(temp->data < num) + c++; + temp = temp->next; + } + if(c == 0) + add(num); + else if(c < count()) + addafter(num,++c); + else + append(num); + } +} + + + */ +/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ +int unregisterUser(char * username){ + /* Check if the user is not registered */ + //if(!isRegistered(username)) return 1; + + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + + +void printUsers(){ + struct user *temp; + temp = user_head; + if(temp == NULL){ + return; + } + while(temp != NULL){ + printf("%s ", temp->username); + temp = temp->next; + printf("\n"); + } +} + +void appendMsg(char * username, char* msg){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + int id = updateID(temp); + //Enqueue message + struct pend_msg *temp_msg = temp->pend_msg_head; + enqueueMsg(temp, msg, 3); + return; + } + temp = temp->next; + } + + return; +} + +unsigned int updateID(struct user *usr){ + //Increment the ID in 1 + usr->last_msg_id = usr->last_msg_id+1; + //If it results in 0, then the maximum representable number is overflown + if(usr->last_msg_id == 0) usr->last_msg_id = 1; + printf("LAST PENDING MESSAGE ID IS: %d", usr->last_msg_id); + + return usr->last_msg_id; +} + +void printPendMsgs(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + printMsgs(temp->pend_msg_head); + } + temp = temp->next; + } +} + + /* +int count(){ + struct user *n; + int c = 0; + n = user_head; + + while(n != NULL){ + n = n->next; + c++; + } + + return c; +}*/ diff --git a/lab1/lists_old/user_list.h b/lab1/lists_old/user_list.h new file mode 100644 index 0000000..624e13b --- /dev/null +++ b/lab1/lists_old/user_list.h @@ -0,0 +1,26 @@ +#define MAX_USERNAME 256 + +/* +struct pend_msg{ + char pend_msg[MAX_MSG]; + struct pend_msg *next; +} *msg_head;*/ + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + uint16_t port; + struct pend_msg *pend_msg_head; + unsigned int last_msg_id; + struct user *next; +} *user_head; + +int isRegistered(char * username); +int registerUser(char * username); +int unregisterUser(char * username); +int connectUser(char * username, uint16_t port); +int disconnectUser(char * username); +void appendMsg(char * username, char* msg); +unsigned int updateID(struct user *usr); +void printPendMsgs(char * username); +void printUsers(); diff --git a/lab1/lists_old2/msg_list.c b/lab1/lists_old2/msg_list.c new file mode 100644 index 0000000..f5b00d9 --- /dev/null +++ b/lab1/lists_old2/msg_list.c @@ -0,0 +1,158 @@ +#include +#include +#include +#include +#include "msg_list.h" + + +/* Returns 1 if already registered; 0 if registered correctly */ +int enqueueMsg(struct user *usr, char * msg, unsigned int id){ + struct pend_msg *msg_head = usr->pend_msg_head; + struct pend_msg *temp; + temp = (struct pend_msg *) malloc(sizeof(struct pend_msg)); + strcpy(temp->pend_msg, msg); + temp->id = id; + /* + printf("MESSAGE TO BE QUEUED: \n"); + printf("\tBODY: %s", temp->pend_msg); + printf("\tID: %d", temp->id); + printf("MESSAGE HEAD POINTER IS:\n"); + printf("\tBODY: %s", msg_head->pend_msg); + printf("\tID: %d", msg_head->id); + if(msg_head->next == NULL){ + printf("HEAD->NEXT IS NULL!\n"); + } + else{ + printf("HEAD->NEXT IS NOT NULL\n"); + }*/ + + if (msg_head == NULL){ //If list is empty + printf("MSG_HEAD IS NULL!\n"); + msg_head = temp; + msg_head->next = NULL; + printf("MESSAGE ENQUEUED\n"); + return 1; + + } + else{ + printf("MSG_HEAD IS NOT NULL!\n"); + temp->next = msg_head; + msg_head = temp; + printf("MESSAGE ENQUEUED\n"); + return 1; + + } + + printf("MESSAGE NOT ENQUEUED\n"); + return 0; +} + +/* Deletes the message at the head of the queue +void removeMsg(){ + struct pend_msg *temp = msg_head; + //Head pointing to the next element + msg_head = temp->next; + //Free the resources of the first message + free(temp); + return; +}*/ + +/* Retrieves the message at the head of the queue */ +/* +struct pend_msg * peekMsg(struct pend_msg * msg_head){ + struct user *temp = user_head; + + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->msg_head; + } + temp = temp->next; + } + + return NULL; +} +*/ + +void printMsgs(struct pend_msg * msg_head){ + printf("INSIDE THE PRINT MSGS FUNCTION!\n"); + struct pend_msg *temp = msg_head; + if(temp == NULL){ + return; + } + + while(temp != NULL){ + printf("Message ID: %d", temp->id); + printf("Message body: %s", temp->pend_msg); + temp = temp->next; + } + + return; +} +/* +void addafter(int num, int loc){ + int i; + struct pend_msg *temp,*left,*right; + right = msg_head; + for(i=1;inext; + } + temp = (struct pend_msg *)malloc(sizeof(struct pend_msg)); + temp->data = num; + left->next = temp; + left = temp; + left->next = right; + return; +} + + + +void insert(int num){ + int c = 0; + struct pend_msg *temp; + temp = msg_head; + if(temp == NULL){ + add(num); + } + else{ + while(temp != NULL){ + if(temp->data < num) + c++; + temp = temp->next; + } + if(c == 0) + add(num); + else if(c < count()) + addafter(num,++c); + else + append(num); + } +} + + +void printMsgs(){ + struct pend_msg *temp; + temp = msg_head; + if(temp == NULL){ + return; + } + while(temp != NULL){ + printf("%s ", temp->pend_msg); + temp = temp->next; + printf("\n"); + } +} + + /* +int count(){ + struct pend_msg *n; + int c = 0; + n = msg_head; + + while(n != NULL){ + n = n->next; + c++; + } + + return c; +}*/ diff --git a/lab1/lists_old2/msg_list.h b/lab1/lists_old2/msg_list.h new file mode 100644 index 0000000..f8850ad --- /dev/null +++ b/lab1/lists_old2/msg_list.h @@ -0,0 +1,19 @@ +#include "user_list.h" +#define MAX_MSG 256 + +/* +struct pend_msg{ + char pend_msg[MAX_MSG]; + unsigned int id; + struct pend_msg *next; +} *msg_head;*/ +struct pend_msg{ + char pend_msg[MAX_MSG]; + unsigned int id; + struct pend_msg *next; +}; + + +int enqueueMsg(struct user *usr, char * msg, unsigned int id); +void removeMsg(); +void printMsgs(struct pend_msg * msg_head); diff --git a/lab1/lists_old2/test.c b/lab1/lists_old2/test.c new file mode 100644 index 0000000..1de5e8a --- /dev/null +++ b/lab1/lists_old2/test.c @@ -0,0 +1,61 @@ +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" + + +int main(void){ + char line[MAX_MSG]; + + //struct user * user_head = (struct user *) malloc(sizeof(struct user)); + while(1){ + printf("USER LISTS. CHOOSE ACTION:\n"); + printf("\t1: Register\n"); + printf("\t2: Unegister\n"); + printf("\t3: Connect\n"); + printf("\t4: Disconnect\n"); + printf("\t5: Send message\n"); + readLine(0, line, MAX_MSG); + if(strcmp(line, "1") == 0){ + printf("Username: \n"); + readLine(0, line, MAX_MSG); + int res = registerUser(line); + if(!res){ + printf("USER ADDED\n"); + printUsers(); + } + else{ + printf("ERROR: ALREADY EXISTS!\n"); + printUsers(); + } + + } + else if(strcmp(line, "2") == 0){ + readLine(0, line, MAX_MSG); + int res = unregisterUser(line); + if(!res){ + printf("USER DELETED\n"); + printUsers(); + } + else{ + printf("ERROR: DOES NOT EXIST!\n"); + printUsers(); + } + } + else if(strcmp(line, "5") == 0){ + readLine(0, line, MAX_MSG); + char user[MAX_MSG]; + strcpy(user, line); + readLine(0, line, MAX_MSG); + char msg[MAX_MSG]; + strcpy(msg, line); + printf("Going to send to %s the msg %s", user, msg); + appendMsg(user, msg); + printPendMsgs(user); + } + } + + return 0; +} \ No newline at end of file diff --git a/lab1/lists_old2/user_list.c b/lab1/lists_old2/user_list.c new file mode 100644 index 0000000..bd9c020 --- /dev/null +++ b/lab1/lists_old2/user_list.c @@ -0,0 +1,318 @@ +#include +#include +#include +#include +#include "user_list.h" + + + + int isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Returns 1 if already registered; 0 if registered correctly */ +int registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + strcpy(temp->username, username); + + //Allocate space for pending messages queue + //struct pend_msg *msg_node = (struct pend_msg *) malloc(sizeof(struct pend_msg)); + //struct pend_msg *msg_node = NULL; + //temp->pend_msg_head = msg_node; + temp->last_msg_id = 0; //Initialize the last message ID to 0 + temp->pend_msg_head = (struct pend_msg *) malloc(sizeof(struct pend_msg)); + //temp->pend_msg_head = NULL; + if (user_head == NULL){ //If list is empty + user_head = temp; + user_head->next = NULL; + } + else{ + struct user *last = user_head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + temp->next = NULL; + } + + return 0; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; + If the statusFlag is 0, it tries to disconnect the user but if already disconnected returns 2 + If the statusFlag is 1, it tries to connect the user but if already connected returns 1*/ +int updateUserStatus(char * username, char statusFlag){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == statusFlag) return 2; + temp->status = statusFlag; + return 0; + } + } + + /* If the code reaches this point, the user was not found registered in the system */ + return 1; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ +int connectUser(char * username, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + //Set IP + temp->port = port; + return 0; + } + } + + return 1; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ +int disconnectUser(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 0) return 2; //User already disconnected + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + //Free IP + free(&(temp->port)); + return 0; + } + } + + return 1; +} +/* + + +void insert(int num){ + int c = 0; + struct user *temp; + temp = user_head; + if(temp == NULL){ + add(num); + } + else{ + while(temp != NULL){ + if(temp->data < num) + c++; + temp = temp->next; + } + if(c == 0) + add(num); + else if(c < count()) + addafter(num,++c); + else + append(num); + } +} + + + */ +/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ +int unregisterUser(char * username){ + /* Check if the user is not registered */ + //if(!isRegistered(username)) return 1; + + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + + +void printUsers(){ + struct user *temp; + temp = user_head; + if(temp == NULL){ + return; + } + while(temp != NULL){ + printf("%s ", temp->username); + temp = temp->next; + printf("\n"); + } +} + +void appendMsg(char * username, char* msg){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + int id = updateID(temp); + //Enqueue message + struct pend_msg *temp_msg = temp->pend_msg_head; + enqueueMsg(&temp, msg, 3); + return; + } + temp = temp->next; + } + + return; +} + +unsigned int updateID(struct user *usr){ + //Increment the ID in 1 + usr->last_msg_id = usr->last_msg_id+1; + //If it results in 0, then the maximum representable number is overflown + if(usr->last_msg_id == 0) usr->last_msg_id = 1; + printf("LAST PENDING MESSAGE ID IS: %d", usr->last_msg_id); + + return usr->last_msg_id; +} + +void printPendMsgs(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + printMsgs(&(temp->pend_msg_head)); + return; + } + temp = temp->next; + } +} + + /* +int count(){ + struct user *n; + int c = 0; + n = user_head; + + while(n != NULL){ + n = n->next; + c++; + } + + return c; +}*/ + + + +/////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// +/* Returns 1 if already registered; 0 if registered correctly */ +int enqueueMsg(struct user **msg_head, char * msg, unsigned int id){ + //struct pend_msg *msg_head = *(usr->pend_msg_head); + struct pend_msg *temp; + temp = (struct pend_msg *) malloc(sizeof(struct pend_msg)); + strcpy(temp->pend_msg, msg); + temp->id = id; + /* + printf("MESSAGE TO BE QUEUED: \n"); + printf("\tBODY: %s", temp->pend_msg); + printf("\tID: %d", temp->id); + printf("MESSAGE HEAD POINTER IS:\n"); + printf("\tBODY: %s", msg_head->pend_msg); + printf("\tID: %d", msg_head->id); + if(msg_head->next == NULL){ + printf("HEAD->NEXT IS NULL!\n"); + } + else{ + printf("HEAD->NEXT IS NOT NULL\n"); + }*/ + + if (msg_head == NULL){ //If list is empty + printf("MSG_HEAD IS NULL!\n"); + msg_head = temp; + msg_head->next = NULL; + printf("MESSAGE ENQUEUED\n"); + + } + else{ + printf("MSG_HEAD IS NOT NULL!\n"); + temp->next = msg_head; + msg_head = temp; + printf("MESSAGE ENQUEUED\n"); + + } + + printf("RESULT OF ENQUEUEING:\n"); + struct pend_msg *aux = usr->pend_msg_head; + if(aux == NULL){ + printf("LA LISTA NO CONTIENE NADA DESPUES DEL ENQUEUE!!!!!!\n"); + } + while(aux != NULL){ + printf("Message ID: %d", aux->id); + printf("Message body: %s", aux->pend_msg); + aux = aux->next; + } + return 0; +} + +/* Deletes the message at the head of the queue +void removeMsg(){ + struct pend_msg *temp = msg_head; + //Head pointing to the next element + msg_head = temp->next; + //Free the resources of the first message + free(temp); + return; +}*/ + +void printMsgs(struct pend_msg ** msg_head){ + printf("INSIDE THE PRINT MSGS FUNCTION!\n"); + struct pend_msg *temp = msg_head; + if(temp == NULL){ + printf("NOTHING TO PRINT!"); + return; + } + + while(temp != NULL){ + printf("Message ID: %d", temp->id); + printf("Message body: %s", temp->pend_msg); + temp = temp->next; + } + + return; +} \ No newline at end of file diff --git a/lab1/lists_old2/user_list.h b/lab1/lists_old2/user_list.h new file mode 100644 index 0000000..44c548c --- /dev/null +++ b/lab1/lists_old2/user_list.h @@ -0,0 +1,35 @@ +#define MAX_USERNAME 256 +#define MAX_MSG 256 + +/* +struct pend_msg{ + char pend_msg[MAX_MSG]; + struct pend_msg *next; +} *msg_head;*/ + + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + uint16_t port; + struct pend_msg{ + char pend_msg[MAX_MSG]; + unsigned int id; + struct pend_msg *next; + } *pend_msg_head; + unsigned int last_msg_id; + struct user *next; +} *user_head; + +int isRegistered(char * username); +int registerUser(char * username); +int unregisterUser(char * username); +int connectUser(char * username, uint16_t port); +int disconnectUser(char * username); +void appendMsg(char * username, char* msg); +unsigned int updateID(struct user *usr); +void printPendMsgs(char * username); +void printUsers(); +int enqueueMsg(struct user **usr, char * msg, unsigned int id); +void removeMsg(); +void printMsgs(struct pend_msg ** msg_head); \ No newline at end of file diff --git a/lab1/msg_list.c b/lab1/msg_list.c new file mode 100644 index 0000000..4484c2f --- /dev/null +++ b/lab1/msg_list.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include "msg_list.h" + + +/* Returns 1 if already registered; 0 if registered correctly */ +void enqueueMsg(struct msg **head, char * message, unsigned int id){ + struct msg *temp; + //Allocate the space for the new message and + temp = (struct msg *) malloc(sizeof(struct msg)); + strcpy(temp->body, message); + temp->id = id; + + if (*head == NULL){ //If list is empty + temp->next = *head; + *head = temp; + } + else{ + struct msg *last = *head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + temp->next = NULL; + } +} + +/* Deletes the message at the head of the queue */ +void removeMsg(struct msg ** head){ + struct msg *temp = *head; + //Head pointing to the next element + *head = temp->next; + //Free the resources of the first message + free(temp); + return; +} + +void printMsgs(struct msg ** head){ + printf("INSIDE THE PRINT MSGS FUNCTION!\n"); + struct msg *temp = *head; + if(temp == NULL){ + return; + } + + while(temp != NULL){ + printf("Message ID: %u", temp->id); + printf("Message body: %s", temp->body); + printf("\n"); + temp = temp->next; + } + + return; +} diff --git a/lab1/msg_list.h b/lab1/msg_list.h new file mode 100644 index 0000000..7ed6738 --- /dev/null +++ b/lab1/msg_list.h @@ -0,0 +1,12 @@ +#define MAX_MSG 256 + +struct msg{ + char body[MAX_MSG]; + unsigned int id; + struct msg *next; +}; + + +void enqueueMsg(struct msg **head, char * msg, unsigned int id); +void removeMsg(struct msg ** head); +void printMsgs(struct msg ** head); diff --git a/lab1/msg_list.o b/lab1/msg_list.o new file mode 100644 index 0000000000000000000000000000000000000000..a32c695805153511ac1c2ecd7c7417bc12fe6fa7 GIT binary patch literal 5240 zcmbVPU2Ggz6+Sa#$765oY-~asg2)6Ba8dWim21+_rlyXYT`MtF5?84JrL*ht?yCFa z&djEEXlPK>(v?B7k>CYT!~=aIfKVR_K?)KQg-Sf|LJ{gi5Go1;q4WV{iHdN}z2~fF zFPoPhY3APZo!@)r-m`aKnm_rZZCM~>!7_)sD7^g3_CY;Q zE0fNq+m$YD7dq+N3!>VYzjJ#JGIt6amz5F%NfurGS@UElezps5Ds4(^^S8g^#66Wb z=g>`8Y;Z}Ojn3S#yFtEWNop13;mW0Lh@V#JZf{(sHFkcjG~Y<7V`e6LV{MJyxF_N0R0WdgWIc{q3XzH^m3)x+x;EWMd zoH&Bn4+S?lrr+QFyxQwFp5fBT93q_TUk>)5^@ zU=&$)OzhZnk91E87c!2UDBaf|7UMyDY*iGs@whwy$-UVHak7q&4LN*U)_=xE@vS-= zeg+G0qn)qUqBvV7i!N6s4i~Az;Oryr)Z1?Et?TX~XXJ;@diGlGFaLV?ua95-UNHV{<3r7Q77fuHioLVniWsI=mgaLD28@3s#Ti7vPVcmpGb&< z#wvtCqje!Tg`2+`_{$J9pKk|k#VZdzhC7aX;MEYlqK62|RX^N`r8qk0&`qYh+A^G2 zT=M3oro4x<)7iZDP=0DAKa+pN%QWJ4GkB~LG=s2KM%E9@)yLM3%w%S!y-dZ+tVFS2 zelD{bw&I{1x57*mhqz#fs;w~gdJ^L`t2}bmRwKw&+Ho!SLMwbOTJ_68?l^viuvTiv z!Ez>AkFX$7uI`tn*clZos$C4?_0<5H!CDM(Vs7rJH@Q@5H{-TWJu}l*+|*a5X0rL| z?DPZ1lGJAf_z;iQ#nWJ|rL6k}>V zNQss07g?^(t;p>cwF1k`0YhWoeebS`6Yuo>6KAyn;%lHV6$zA2pMnp65{kEZhk@*)5oLRVH;LkAsEd&1s^Vbag zX^#7Q1D78BHshq0tp7g^eW~yJ2JSI`AIFh;PBMO&aq(Yge8$k1&UDhiGpsNBQ~XGu zsTul`=L-fd`MhG_tL*>ljMG4MkiK-)&=>#L3|#yt&x_0{1oZ?W@vk`m`3@%Tu>$3i z{4TQwE_Ha;z$JgkM(d5(FX0%6daTMU4C;P1ri(y!*^hn5mZAutOR7bgVk%zKujO}GB53(7b{F6_~6Q_z6 z_>%DjBcQM{zKYuY?0>)q>S6XLgV@Qq#r7hX@lWP~WP#X;-fK7^%-p{>*?vtFd6e}F z{C%ACtKTfwufU2_zcfB#FLm9En0fZd%3NoM^20RyC4MF0Q* literal 0 HcmV?d00001 diff --git a/lab1/read_line.o b/lab1/read_line.o new file mode 100644 index 0000000000000000000000000000000000000000..619b6d7aa70bdbb9963b6da490077b73d1f17cfe GIT binary patch literal 5296 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 #include #include +#include #include "read_line.h" -#define MAX_LINE 256 +#define MAX_MSG 256 +#define MAX_OP 11 +#define MAX_USERNAME 256 -int main(void){ +int main(int argc, char * argv[]){ struct sockaddr_in server_addr, client_addr; int sd, sc; int val; + int server_port; + + /* Check command */ + if(argc != 3 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p \n"); + exit(-1); + } + + /* Check if the port number passed as parameter is valid */ + server_port = atoi(argv[2]); + if ((server_port < 1024) || (server_port > 65535)) { + printf("Error: Port must be in the range 1024 <= port <= 65535\n"); + exit(-1); + } sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ if(sd == -1){ @@ -27,7 +44,7 @@ int main(void){ bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ - server_addr.sin_port = htons(10200); /* Port number */ + server_addr.sin_port = htons(server_port); /* Port number */ if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ perror("Error when binding the address to the socket"); @@ -41,9 +58,12 @@ int main(void){ socklen_t size = sizeof(client_addr); - char req_buffer[MAX_LINE]; - //char res_buffer[MAX_LINE]; + //Server will receive + char operation_buff[MAX_OP]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; int n; + int m; while(1){ @@ -55,14 +75,30 @@ int main(void){ exit(-1); } - n = read(sc, req_buffer, MAX_LINE); - printf("Recieived from client\n"); - if (n!=-1) - write(1, req_buffer, n); + n = readLine(sc, operation_buff, MAX_OP); + if (n!=-1){ + if (strcmp(operation_buff, "REGISTER") == 0){ + } + else{ + printf("OPERATION NOT KNOWN..."); + } + } - + m = readLine(sc, user_buff, MAX_USERNAME); + + uint16_t client_port = client_addr.sin_port; + + struct sockaddr_in test_addr; + + getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); + //test_addr.sin_addr is of type struct in_addr + char * ip = inet_ntoa(test_addr.sin_addr); + printf("CLIENT ADDRESS: %s\n", ip); + printf("CLIENT PORT NUMBER: %d\n", client_port); + + char res = '0'; - send_msg(sc, req_buffer, MAX_LINE); + send_msg(sc, &res, sizeof(res)); close(sc); } diff --git a/lab1/server.o b/lab1/server.o new file mode 100644 index 0000000000000000000000000000000000000000..3cb41ebf198bfd36b951e929c9f8161d32e0632c GIT binary patch literal 9552 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 x{-&JJ84f|KBMJIwt@C literal 0 HcmV?d00001 diff --git a/lab1/test.c b/lab1/test.c new file mode 100644 index 0000000..7fb4efb --- /dev/null +++ b/lab1/test.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" +#include "msg_list.h" + + +int main(void){ + char line[MAX_MSG]; + + //struct user * user_head = (struct user *) malloc(sizeof(struct user)); + while(1){ + printf("USER LISTS. CHOOSE ACTION:\n"); + printf("\t1: Register\n"); + printf("\t2: Unegister\n"); + printf("\t3: Connect\n"); + printf("\t4: Disconnect\n"); + printf("\t5: Send message\n"); + printf("\t5: Delete message\n"); + readLine(0, line, MAX_MSG); + if(strcmp(line, "1") == 0){ + printf("Username: \n"); + readLine(0, line, MAX_MSG); + int res = registerUser(line); + if(!res){ + printf("USER ADDED\n"); + printUsers(); + } + else{ + printf("ERROR: ALREADY EXISTS!\n"); + printUsers(); + } + + } + else if(strcmp(line, "2") == 0){ + readLine(0, line, MAX_MSG); + int res = unregisterUser(line); + if(!res){ + printf("USER DELETED\n"); + printUsers(); + } + else{ + printf("ERROR: DOES NOT EXIST!\n"); + printUsers(); + } + } + else if(strcmp(line, "5") == 0){ + readLine(0, line, MAX_MSG); + char user[MAX_MSG]; + strcpy(user, line); + readLine(0, line, MAX_MSG); + char msg[MAX_MSG]; + strcpy(msg, line); + printf("Going to send to %s the msg %s", user, msg); + appendMsg(user, msg); + printPendMsgs(user); + } + else if(strcmp(line, "6") == 0){ + readLine(0, line, MAX_MSG); + char user[MAX_MSG]; + strcpy(user, line); + removePendMsg(user); + printPendMsgs(user); + } + } + + return 0; +} \ No newline at end of file diff --git a/lab1/test.o b/lab1/test.o new file mode 100644 index 0000000000000000000000000000000000000000..7e6bcbf9bb669eadbff45cf8494cda23dcb76ec9 GIT binary patch literal 7136 zcmbtYeP|rV6`#F5Stp&o6@MspVGVKPnCPT)WZAwDN3wLWl*(4B4`TPry^pnYlACi^Rb$xP=np21@!z-QrMMN}#PFkcL8Op%6^zAEnf_4TjqNqfJR#^}U(* z?ndJ~8psp3Gw(OQ_c1fOZ+7*K^wd)k%MvV>I3Q{oqe6UdQ>{NDyCY(w=n?Z1t2ZXj z+;MCn@)IvdckG0*iPiK6$!ott)-AkzlHSDmmAfCUt-Xy&O{~6Kb43Hc!~hekzm|bk zu2q8j7!6I?YIWrnL^%5kyoyR+&B4#nw{(1aU~O%!?!YD(Xpl1-yhSi{t-+X7zne=i^vlP~GCvT}nf`QrlEpzKQee$Jd3D z7Ha=)zlVxS*x1<4l`FNedRtnZjG5YsOpWdkbS?=L@L6z*yDa8s(=*Q0As`gmQ87q69n+rwDP|6uE1UXjsq?}pT z%R41E2r>(NJvx5ONgu_$ zwu{}0GoGGG&(&Dt)9G2~$n>0|Z5Mmwd=8Zh-hvaBod9!yc1PfZix4_kfUX!8TOvY4 zB{e3W_cqzrF7E(=B@%1KZp4boCZe<`fg2RqgpD0-DtMuY#H3cWQcckKv$0vJX7ke$cBi@9n1?qe#+GY^A2ce#b0pvKMJB+r?z>01#TiJXSN0 z13#u*?*o2YC&b4n?FsA2J{9!gzR6z9Z)D525B8z2j-hJE$QB_w<1mq)W*q5)5%Pv3 z-D*ULo|?szeK;Z>g`c|f<-N{JB6ypt0CnD%{8_kK)`uPKaFwSiET}b53H*VAmn&BC zaPx(35GHbHRe^{8coFJJVi8r?G))V_JUl=!0v=#>R4UN3TdXU$FDr?ija4qgDF1Z5>m9Q}IeA$04Sjyzw0XPLhzmTnjZoWTQhGU}?3=}ijq^N*-a`-s7kY1Iu z({8xD7X&k zY*qM87`)Wa&KBz*Nj9`a3wPJGwt%uyM{HHb?;Ejem3ZBlExOj}tk|mlvMO85uv`3N zjWgvI3vG|KZd^{FwAS^GdsZ*%jt2Pt1~`_pdVcmcz@KV>A8vrpHNd~r053Mcxjf3+ zD9eH@FH4m$5I$6vDJ(zmSmjDfV#$Xm2j83mC`dlNi=i$FOUsIILS&Y((j0~}QCd8s z6!cdrpL9uud{DNkMzlf;$4yln>R}zmb%Zx&DYy?P%xC*u3YJHR&L1G0`8!D;YQV?+ zL}C80QsL`NiJ8wB;mkis`a}ah?k5WKKdV$RL#^o_-$PKCpH-^(0<|W;qT%=&!s~X1 zaQ4HzRgI6&3iH2Z@Si9BI~reK=c^j7$CV#%Fot=;`#{zIABfNSyh!?WYR!55MZ>Y? za-MexXFumjzo+r_JU`TM-A|i5_G|0>ed0YpIOe0TPg2A6`HpD#MzG;L=M4XElK*2G zU(YkA;d-7W!_QC1kFW7{KVQ>u-OqW$&u_@jC5^Ao_h%Ze&-Zs4j{mCQ`QFlSop0en zf?%WbHxthL_f=QX*j+?%Nu!=ffv0&bOIz!KRJ+h~w|4q+<>!jPrAd_ZSM}57D|~EEH5J1*tzGuZpjq z-h&#BzVP!9Wv^mkQ&qPS^;kIy{HlxnJe;1f~Gtbu=?@Qi`KPWqyOyTmUW zIM=U}22QGY!N5zTzi8ky;-`FjoAA-|)9W24_cM-9IGvIWk9!M{j;UNP`(q`zh0Z;<{j zwVWrf^9_UVQBwbGz;C8;_Opxf=_MS^ICmV z1o;_n0sh6IWAgKn#vz_a=eNw@7z_roW z5`B)~1%%(jm8Q7d#}?n~@IO@}@Y5yMuCx#2zp>Oi1;&XH3C{wQPs0y!^UKIK0VIPU zSC>aYL7yi5|7JaU}2hb-uya#<Tb;9`gwQI)5^96l!p3s%Dm56~6kX3Ha0lS|4 zt8{4ZA%EPk9k*D2xz8MI-_Z|!ZNTKd31f&Ex0!g4?DuK5*yZ^%{04ODt>5)J>xVU# z?Rj0h0W+UH^nI7?ucD%fnSZ_9B^?h0kaILKd?&_pz>JU6tQY@W8w`M)R!#M4#{VA{ C(puX9 literal 0 HcmV?d00001 diff --git a/lab1/user_list.c b/lab1/user_list.c new file mode 100644 index 0000000..16ee0f1 --- /dev/null +++ b/lab1/user_list.c @@ -0,0 +1,243 @@ +#include +#include +#include +#include +#include "msg_list.h" +#include "user_list.h" + + + + int isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Returns 1 if already registered; 0 if registered correctly */ +int registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + strcpy(temp->username, username); + + temp->last_msg_id = 0; //Initialize the last message ID to 0 + temp->pend_msgs_head = NULL; + + if (user_head == NULL){ //If list is empty + temp->next = user_head; + user_head = temp; + } + else{ + struct user *last = user_head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + temp->next = NULL; + } + + return 0; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; + If the statusFlag is 0, it tries to disconnect the user but if already disconnected returns 2 + If the statusFlag is 1, it tries to connect the user but if already connected returns 1*/ +int updateUserStatus(char * username, char statusFlag){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == statusFlag) return 2; + temp->status = statusFlag; + return 0; + } + } + + /* If the code reaches this point, the user was not found registered in the system */ + return 1; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ +int connectUser(char * username, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + //Set IP + temp->port = port; + return 0; + } + } + + return 1; +} + +/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ +int disconnectUser(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 0) return 2; //User already disconnected + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + //Free IP + free(&(temp->port)); + return 0; + } + } + + return 1; +} +/* + + +void insert(int num){ + int c = 0; + struct user *temp; + temp = user_head; + if(temp == NULL){ + add(num); + } + else{ + while(temp != NULL){ + if(temp->data < num) + c++; + temp = temp->next; + } + if(c == 0) + add(num); + else if(c < count()) + addafter(num,++c); + else + append(num); + } +} + + + */ +/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ +int unregisterUser(char * username){ + /* Check if the user is not registered */ + //if(!isRegistered(username)) return 1; + + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + + +void printUsers(){ + struct user *temp; + temp = user_head; + if(temp == NULL){ + return; + } + while(temp != NULL){ + printf("%s ", temp->username); + temp = temp->next; + printf("\n"); + } +} + +void appendMsg(char * username, char* msg){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Enqueue message + enqueueMsg(&(temp->pend_msgs_head), msg, updateID(temp)); + return; + } + temp = temp->next; + } + + return; +} + +unsigned int updateID(struct user *usr){ + //Increment the ID in 1 + usr->last_msg_id = usr->last_msg_id+1; + //If it results in 0, then the maximum representable number is overflown + if(usr->last_msg_id == 0) usr->last_msg_id = 1; + printf("LAST PENDING MESSAGE ID IS: %d", usr->last_msg_id); + + return usr->last_msg_id; +} + +void printPendMsgs(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + printMsgs(&(temp->pend_msgs_head)); + } + temp = temp->next; + } +} + +void removePendMsg(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + removeMsg(&(temp->pend_msgs_head)); + } + temp = temp->next; + } +} + + /* +int count(){ + struct user *n; + int c = 0; + n = user_head; + + while(n != NULL){ + n = n->next; + c++; + } + + return c; +}*/ diff --git a/lab1/user_list.h b/lab1/user_list.h new file mode 100644 index 0000000..de90203 --- /dev/null +++ b/lab1/user_list.h @@ -0,0 +1,27 @@ +#define MAX_USERNAME 256 + +/* +struct pend_msg{ + char pend_msg[MAX_MSG]; + struct pend_msg *next; +} *msg_head;*/ + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + uint16_t port; + struct msg *pend_msgs_head; + unsigned int last_msg_id; + struct user *next; +} *user_head; + +int isRegistered(char * username); +int registerUser(char * username); +int unregisterUser(char * username); +int connectUser(char * username, uint16_t port); +int disconnectUser(char * username); +void appendMsg(char * username, char* msg); +unsigned int updateID(struct user *usr); +void printPendMsgs(char * username); +void printUsers(); +void removePendMsg(char * username); \ No newline at end of file diff --git a/lab1/user_list.o b/lab1/user_list.o new file mode 100644 index 0000000000000000000000000000000000000000..163793d1a38a06782ba86eda3751cb9963f72d65 GIT binary patch literal 9768 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 Date: Sun, 2 Apr 2017 11:44:38 +0200 Subject: [PATCH 05/17] CGP: Starting concurrency --- lab1/Makefile | 2 +- lab1/server | Bin 18040 -> 21816 bytes lab1/server.c | 12 ++++++--- lab1/server.o | Bin 9552 -> 10184 bytes lab1/test | Bin 19784 -> 19640 bytes lab1/user_list.c | 62 +---------------------------------------------- lab1/user_list.o | Bin 9768 -> 9168 bytes 7 files changed, 10 insertions(+), 66 deletions(-) diff --git a/lab1/Makefile b/lab1/Makefile index 117a2b4..47ab24e 100644 --- a/lab1/Makefile +++ b/lab1/Makefile @@ -13,7 +13,7 @@ all: CFLAGS=$(CCGLAGS) all: $(BIN_FILES) .PHONY : all -server: server.o read_line.o +server: server.o read_line.o user_list.o msg_list.o $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ #user_list: user_list.o read_line.o diff --git a/lab1/server b/lab1/server index 8fe6b92533b21f0b49817ad8e592b979a4370134..7093d48c7e753b96a7a280d39744cd3715b39fe1 100755 GIT binary patch literal 21816 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

po z_RTLdlX%_EW*hI#nwfUIVfXyPRPwmRkk6s5^7%|pNiSgZ+Cg%$<9EcVo~PQ`Jf`07 zGV9oB=fs=J&H^@(lD?49YZS@F&K4z;IBw^^QkcoIvx{aDL9rVz0bAL2w%AILn4NiN z&~ask4Wf6alNmW6Xm|>r9Jd9a+c56lq~9MN0R7O+!&NOsK9_?&2XUsijHuvFju+ZpoFnUI zKu@Mp(PL@oUrj@Q5OlBEu&kHZi9U0F(Qk=TwM)C^sp!8=L&t?MjK5GyMFKY8DOlcXmRL^7_0!jXXW< zPnCyvb9wiSCn>jrKHIi{UGQ$RWbf@#KKY4Wl;q)&IuBxJn3n-5pZs*?UP({hJf@!- zP@I{Zr$K4wVNREb35=zo{~0nKwvg#dwwa_EqX*+;Uwv2Pa>@NU=p>(<=i^ddZPBRT z*u0gl-8A%U1SHisUJSa|;-NrRaC!HPC&2W0cQ*V~&$Y2l&WkUN{jF)}w@dr#W?MaR zpeI_X{5$|UCd0&Ts4j_%%;=I%fn?vQZ17~8>Gdwcr2gSf#jx?=U( z)v1L7?Oma+Kyx_Uyfc6s!$MB>PkqNIQ%OEAmJ`D;PXps{;CER z*jQ6nQC<_M+puA?uQAYAUQy$t7WlUbS|c&uMgC=ivNH3x26;8zO5&pnR(j%I%yg?{eB8k*8wm0{Qq$KOtbFtRpXF;139(h;D-sC; zeXb$t-j41qtpeif5ms8_CeC^<$UkIZ6*cZMxgF!)kkZL2IO9tb$!zMs_~L~8I7PC6 z<&zYcFOl9rXLG0xU+pk%odeZ%FoE6g0CKo3`OY_S8)`}|%1`;N3~PhpsrYqPCqO*b^`s792dlh|p(KxR^u&;Dv+T&7>e}ece%3 z#D}d2)uN7Gpi$b|ETWYVLcM${6$Lxx+SiGlJp&V}Vi6P?s(xE5#Lx`(7hB;&ZWG>7Z1dOG>HZFv zpvL`x+AmSx15>{TS1pjNxqKc7p3NHiYF|ZtZ_8^IMjfX)ODP3r)>r#4QCtsFxkLct zn5ICVx5%e2$<-gh=`U^FPa5KPqEXp}e~PKnSNlx|q`vB>YG3Iq`hKZj0Z2vdOC6E=>UaF4 zPddr^UjvPDN_N-Szw%^(h=MCUOGzI8IJjngwa--|_4&I)CJP=}SMa_heYGDpPDz2H z{1wic%;yLXS9bg7!${wQc>eYLOmyd1bcD#OxFa{DiUj=LQ`hq#E^ z&%0PCB+Dn`^n1QslfK$t(m$jAub@l*(;TLv_QgD(QU7h|Q0^*yweP6DQ#ek>QB-~_ z|5YB`51zSwwLdwvn5(7DKV|3lN&3bQwB8gg?e) z{bxWei9bnsn1>>R4E3HPZbog#e;WQHD=I=6Gq8zVa8g8`MLiad}s0LH;9|4mrE_~Ul)m3VCoC#3M9UWGCbam7U6Po z4)g`EBpxD6O&{nH_zA)^R0G`t?j~3>80Z#wG~o!s9RfQD(`p)MZxV!+ zh$tdj1Sn{Id!7jPU_Uj5I5^j!iIfa z79O9=Sm$}1=_Q^?y{J4}uY`G8E^HXnNvUXt)s z>{^IKe=*Dmooy;7GZwamrc3QA91YFpN8xg4ChvwxVK++MD%=^CoH$59m#zi^U6?n} zpZsGWaB4dZ3k`Tzgaf_b`~c5}jU9g$gIc!lL)X^hBm?UsyVA(Nf2j6*a4{@%Y$1}= zrbOhiP2pWDkq`sY{|>mr7tWjaLm;qo`+JxJqmmJLTDBiVRcSDKGc6ijk^)E;w(5(JF#PK)HEN>99|neLF)b% z{y93;Xva)7aNU@3O{*|hoQ#!o!t6VwIia+Ysf@+{8vL)o5h@`f=$BU66l@In>Hcf` z1^<)i{{;P3+HZpOWh18qxk$Z1`)Kb~Sbg1Wi;ZHi-4Yy#_d!Rz_y6+m<2GwME>J3) zL%J?{6y8FS0?`J9Pc1uAkENOS(R(>-Tm24_#l@waKbob(F3r=sHu^ z^K`vb(~#s$hw>RV=)D#WtESW#8aB(rfEk=(oymEl#g)9*yTBq`^KIYP|j zb;KByg9OaV?=@B4gsjorOg?V9kD}3J@^KMuR`!c9Bc0O*8g)a$E|ex8+6D?yVtyhy z4LiY=dQ~YWQJcYuPkd2bDFwrPevJFF(UlXI8K*5y) zBqZf43^FLuqB$;P%*w;)wJA1~sDC8^Zj1*Eri`#T552YdG5tusu`lb#_WY0o5@?PQl z{y-^PF<1+b{a-ZL-xhEUrjz}B4QdUBa5Y-M_C_^i80=_t)U9FMLAhmrGoq3q^kAc7 zLvbbJ5lx!+YJ+-&8WO3&ZH?-On38856m>T@s@Pe^v#CL{zo$`6B=4*v0`@hkJE^Wa z2pv_7=V*yq8y)KypRIw18zZ)ax-k^T8q-lxo5CsaavDL||9yiRAb6+NpYBFSMGfP= z`-F2(qocO8j`0$@&t?C2IAu06>8hdkqG4r`goPbo>>_3|Fat_`P5v1JX-$3_=0?d_ z54spFow;b}3r}BdBbL}NEm*TsjwuXg<9SRkJxxp6WTve8QZ)XZ2I+hiGR9BPH1y6U zXK+={70XgNfgY|bLr<`EC1_LO`@*OTgF^w5e}%bSppEF3{9g07GAv9=ob^7Dv6N$e zxEm#7*K*Vj{_O=)Vmc3fDb;3AR3xw-yx+zYv>)nq=~_JsKv z0gjpe)ONt^_qQErlaeCMGyQGma`Ppm*0vpxL-x1B%*kI{f@2&DE2mr!E2b=m{LEGG zT;@gV;ze^7`f}$NWY13 z#p^06H?oq-iqfijU-6nXwXpZ5O!(VPFTguI4hpjx@O(Uz70u~%i!jQ#S$67{1C%GQPdJ|0l1q z;H&QNN-}e>K?i&_<0*a`w#|7pIEzHhph!X9ft{h(6Dqj3iE^`eMb8)VE_zXq-H9$Ii)E)rWY{5M z_6XTQGL{ZBJ4Vt=$nf$udDB1BuQ+m{P7(ai=WG--cImZ(Uu;tJT9T~Aj~ulyNdTFm+*xEcJnP8)h4cj`~%cK86R1Ur>x0mq_DHMq}sEn40hSiZ<* z?Y3%H>$bw~MVUjN*m~$Y1(ww&IJYR(8r*yEmB8W6RD)ZNn?5dJDT3u*m)ef6oK)KN zZ*KYUnAhbP)Y(CuE#!yKc{g#~f0h@xEWz9OH24dqsliF=b&5pvVv!vIPv_goq5p+dlzR~ok?22aSrDYel$^obrOs&%(QxM(BMxp+) #include #include "read_line.h" +#include "user_list.h" +#include "msg_list.h" -#define MAX_MSG 256 -#define MAX_OP 11 -#define MAX_USERNAME 256 +#define MAX_OP 11 +#define TRUE 1 +#define FALSE 0 int main(int argc, char * argv[]){ struct sockaddr_in server_addr, client_addr; @@ -32,6 +34,8 @@ int main(int argc, char * argv[]){ exit(-1); } + //printf(); + sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ if(sd == -1){ perror("Error when creating the socket"); @@ -67,7 +71,7 @@ int main(int argc, char * argv[]){ while(1){ - printf("Waiting for connection...\n"); + printf("s> "); sc = accept(sd, (struct sockaddr *) &client_addr, &size); if(sc == -1){ diff --git a/lab1/server.o b/lab1/server.o index 3cb41ebf198bfd36b951e929c9f8161d32e0632c..898661e56be0b28c6c9e7e6a2d9becbac0642f41 100644 GIT binary patch delta 3484 zcmZ`+4QyLi6~6b`NuHh9@&EHnn#GP&h=Mw=Vk8q~ZnLc&?l#h7MH4@(>pCV)mpF0k zcAeVb4t1h~!Qz~$6w%QQn8;cx(N+~x3)&`N>NX})*v1$LI`LOQC6s|gJGzB)?>jGj zy%JaQz4v_IIo~<==h@E-8_x~S_GkyXPV~OX`E#eP@-4jS&<9IPj4{~add*eIBw&Mk zS}VKZjJuPk;BEJ}xaZWah7-J&;7y*NYm7CcGi&mSDGSJX^8qn%%V^nzbBzq2?qW0*WP zQE>vU`jx%RI*c6FBoD*O;zF}2Adbo-_F6XBtsk$2xy#?&@bTs~%^Y_;;A1YoFtXuW z8W;;At6yV7$m-YF@Qr+}X}N#c%!Y$J)U+;s@HSHjMH-fcG)x}7`8qR(rX|!77PQgK zMKs={Ykq4@Ee?A;?OMtOL#?r3>k5#HSZWk-To93`8lZ6M0 z)m-(VsUp&N5V&U9iOZkZ+Wc-GIs#qGy;W{cgkqb8a z`+r-PpvbgkU0U@Gv|=-1jA8bFU#6 zfxm>)rg$8#E?Mml*ZHi981VT>i!ViM7pex_kLY8O7Cr{=;OtPOn@8a%5yKa9=sW@C zr~#KH*AX>%2tF1~)n0Pwv^%{2?7&wz@XLgI5yNMOE#ODA_Z|Mu>YL~?%GINvy{eRj z!)Pp+&5)0+`ERMn*akP!F(dnoBlZSI>`4dS>A=q^nh{#h zuY{&~L1BA{{kvdS`sh1GI3*mKZ4NvMQRAcLMbZhPmuO9oHvc^Jmvk5!hVRN#G8X?cE*oTF0VZj_bRMzGhl0*9_&(>A3?s&Fi%sSjS4#e zb!6?kKdG?0;6-F#k`*wvM`53bMP%h1ZrJ#!r*uStX!>3VKDs z=cu6HD)=lV(5NsGE?m!&PMC0OPwvLoI3l{PBN!W{1X~q+i2TPL3H&lCymvz%f9urh z&b1u>jg%Ap+EfINCNf$Y1&Y8>LBf=S#!v};nt~h`u0&a%aVZ_po{;}iLg;1 zL>Ir@X;D~WLJY?8O_H(Ao8tx!8(4&xVc3GoM8wd^UP~bnEgrv(;dDV=qY+@vK87uP%$TpnpE~izJ zF7r{-98-zpw^^t)ZJz6m`4VMiWTg_7@!JF!A(mN_pp`+roTsuj6P1$*u~X`odnjWU z+j2Jaiq(wv=u`}mLStGr>r^18;IJ_Pt4;1oGu6j#5+Q|7>7AngG10F-seq5C3@7^Z z@pz&yA(YtlbK?nptA3ohS`vLa)8QlVp6M7ooBpS*t(_gNa3n^S);<1IV8Nm#)lWlP z#``9Jef^TUWp#li)hpqV%zS9b?1U?sujhs%fsXcQED$3bf`R7Xx^UZO5^4)KMPh+q zV`CH!m@D8X^B!o;@=*8C?yMH-uo8SatPQOrGvr%E>Qrntvx{h%GJjaHKE*CjY>i^; z6uUyP&ndQ9vFjAO8P?mpbeBAbQJWEdwbeRVp*+r5%}{O?StBY?XuKL`t4w2N@Tp1#-NnH2Qyq@cMDk=kIn!z(oIa?OHz{FGCeytW(qL@_uUSxqe+RjQM+%uHRY zxQ2^&VEnSA_-RS;9r7yl2vjqB62?Ta`z)tWh6?BIqi~*!pNH|k-6vkp-g0@!bS}HJ z${ng7T3i`eTmgCvW=f*8mSK4;RBv}>@_OSUL|hdZvFL~SRhLUp$2--he{#pPbatO?FvjB6RS zJL6@=JQ4Vj@<%djNOTA)o`p8=rmE%-kf%hT@N!EJA!p=<=FiYWb6!7evM8`50`gjXF=7kn*M2YaIDaeZdKLe&dtW2%eP4wMTF1lKS(p)c&JW++0)8GY9g<%W+t4V?5o=Rbx0j_#{0?CDfBA?-uK@D99;i5`mMlSRh`HbW8 z4zY1l2RDi;giD!FQ0xgAsxHe3)csWi4) LRkWADjRN=o7Jufy diff --git a/lab1/test b/lab1/test index 5ee2576c0818807a054a051630490f11bbd0e995..54518995ec4383f0dd6c6d671ad97b005081d837 100755 GIT binary patch delta 3113 zcmZ`*4Nz3q6~6Z^3%mR*`vdGQC@d%ntb(9`qOQxIJ}fcXg4&Tds1$K(QU;54)O2fr zgbmfQIg<%ZO%$7n+8T7aW`deZiB_=bpUxz;rjueyI!iE9@E2`$d(L}rpR-Q;X7-+Q z&v(9a&OP@$c*Ae<{-5&hETO;Lm-B9Pot;Tfo!xi+eEO+Gd3P$&Eh!;+S~j!OaE5=J z@bg6ru6Y~(dM>rOF?-GCTRH9DzMbvw5zcD$^$Bh!4h>FNV1w?SYZvYUYaa)L13+3e zX@^NGBdw3Lg`}M&Etj;*q|GGldIJ1JpJn|T4Wf4_@C@2Ie$%>R;9unNcj%3=!9Vpg zN*>bo?MK02KUEm$iezjoFNl0Co*>Yn0xbk2At3JWnD|dHczzm`N6%liQ_GmQ<0cx~ zeoZTDwGX5cbGpimCT1U%hK`R8Ebr61ys=#ID+a z=>3!^H{fUS8&cvz@S3OK?NeYf7V-{QVVuohhwm9v@+a?0o!o#?Uoc|SMU@k+nMj)u zyMAQjSdUk`mh5D~1m^p24!L9S52I`87x8i#V%v*T?E59-c~Uy>rGahO8u`pNF#969%pqWOb_zpxT%y4$AJz0pJp-vrA ztr=*QThkBg6C5SE@oDWe#H_KqbY1D%Qg5)dwzQ^tf97MogVl=r=aT$ZmG@qi_mk>u z>XJ?ze546P-S(eMSjn}SI~IBBz50Q`ZK1vbgs(&LNe`few0}#-8AqhPoeCFbn9%Pe-c(&bA_G>*lnGaz7`9< zfIL=eFup95$Kh)tJ=1V)z~2KHw5EBM;6-jBd&o=J7#pQyjJ)2#p9k@1EMLVnT22mx zU&P-wJbn#I6&IdW`J-rl3-OUK{4*7g;4FhZhke@<=CD(Bn2Cw|q1Tp@S%I1nJNiMG z=dV=H2E>oT4O@z~9ktJa+fy>%L9GzGz9NiMrgAPKUI(T26zwQ#Z=jaOufjgu&&0NU z7kW{vK&=f1QENbL0&dvL^(RoX;cW^2{Nz7rz@0q$TIy=v;9rwEE(pgX;0jMlo`X3B z_Ei*P*h_p`%x+n7g8l93h6v|1yu1kZKIYc(PDEqJP#s6*a-8gZJVN3yod74(OW|?m zmB_Q`!u9aUEQd$G9Z|uzK7NR7(M7llz9ts;N7~xgAvoP2#~DGL9)9o|Vg?VX_AvHz zg>5{cP*zF=oN5CemS@XwJ!5fw6ul6md)OnzSGqkZJoQZuU#NsP>?WY_62+cBdgUnb7CM-+ zYhor1ZTB2Cx}^vdlOBHXI@;y3_lC+g_fTF>=VQhB2eL0ZXW)&>=kHXKTAtsrm2qXa zS`Oq51xh$VfqKf2-)eG8QKVT#jUW6b#WUBo=wB6LAEly#n>ns-Y1hT zduC{q;hhF$IaRt0>a)JZ43Oh;$dmg!bi~Px|6D09G-YBzk3;s2SO>>s{yK*lG zJPDr7-_DcaeEtl$mp_jeKz70W)OKAH6C!xzr;*nV%{zB8Pq$T_;^7LsInEBQ#r~lQjx0GKJTgGR(&hGM{0O8+`J2Nmc(oLD7x_7Pk`H4)1RtWE3K|-rGYSeY z=(6%d6oH@dPr5uB|Gu&)!T(CdCJoPku@!mx2BrE2NEeGup|dn6$PwJIP0TZeE++JS zej1L8dC(&og*$@(EAhO*--YAfDAwmVW!6m?!(CFIygLNh)y4Yv3*=oHY^yHjjnG@Y ZOh2_iwjG19>f-3bE_ruJ1HY(9{Vy`+Zz})* delta 3398 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 Dn_username, username) == 0){ //User found - if (temp->status == statusFlag) return 2; - temp->status = statusFlag; - return 0; - } - } - - /* If the code reaches this point, the user was not found registered in the system */ - return 1; -} - /* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ int connectUser(char * username, uint16_t port){ struct user *temp = user_head; @@ -106,33 +86,8 @@ int disconnectUser(char * username){ return 1; } -/* - - -void insert(int num){ - int c = 0; - struct user *temp; - temp = user_head; - if(temp == NULL){ - add(num); - } - else{ - while(temp != NULL){ - if(temp->data < num) - c++; - temp = temp->next; - } - if(c == 0) - add(num); - else if(c < count()) - addafter(num,++c); - else - append(num); - } -} - - */ + /* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ int unregisterUser(char * username){ /* Check if the user is not registered */ @@ -199,7 +154,6 @@ unsigned int updateID(struct user *usr){ usr->last_msg_id = usr->last_msg_id+1; //If it results in 0, then the maximum representable number is overflown if(usr->last_msg_id == 0) usr->last_msg_id = 1; - printf("LAST PENDING MESSAGE ID IS: %d", usr->last_msg_id); return usr->last_msg_id; } @@ -227,17 +181,3 @@ void removePendMsg(char * username){ temp = temp->next; } } - - /* -int count(){ - struct user *n; - int c = 0; - n = user_head; - - while(n != NULL){ - n = n->next; - c++; - } - - return c; -}*/ diff --git a/lab1/user_list.o b/lab1/user_list.o index 163793d1a38a06782ba86eda3751cb9963f72d65..6c0403a06f5217d2b60c5a35f8cea7da122da9d0 100644 GIT binary patch delta 2742 zcmZ`*eN0p*KY#|%I4F~n>Cyp9R=Oa=O*0lp98&`trcQ+UvB<_2 z1;ZBbXj}}5bpOc6CLv|ROk;FeG%Pa_jSh4%_=ky@m_Vk9iA(g}_s*^DHJs$Vd++)E ze&?S1(bG5G_H}H$S{e7v-P1{v8}vB^o-{SlF8Iv!BCMEpnnV2ovYZ7Mvi-^hQ}RZ( zpHeIQW)AqQeS{EYqSMJ5LTwSsN4+FZA8JsY6L4x7lrq?#o z$x4L~2OrS}41%LKm`|B_#F#abIcqEUET!7vl(aQt{x~=-9=ZVcT7pA|Fbg9Lj(SOf zKBLHjh}7uh4=kp^Juap!)VU-4&Fz@c5IR|&B~l;3`HPP9_YjJs4i;yKt!q>SD&|Uh zt_1_|CWd`Fxt9ei8t8w45d`0uI3ehdrMP3Mi4z$MKcA_*L`c1%`A_;qN_r_n`k|1P zB(GW{)Vqc5(6Ss4)jTO77$VzpM7J(Cg@c1;Azp@g;ZLU@{&0HXPQaCH z%|Aiu9#|}hg|{=XkWg|zyRh8EX>VhF?w>{fOFBwOE6f$B;fD~dVi$qig3*wJtmUeo z&@Zk`4_DD=b?qQ>8rUXt6IbN~>vQcz^ovs;y``fLToG?d)3gy-DpBcPNU(R8-XGxa z@X1a1Gn@F=bd`duv#}Yn*(1!3elFJ7BQg)cM5#(!p}SNKcc*dk(>O=d{QN2i?HSl$ zS_K|f)vyQmjmJ;dhSU81G;J4Gg$C2mbk$gzKM3EcTeX`^%T2E+tmW(D&oKzPR2qkE zt{5GJlP*;|z`Wd|Mw4QmfjO5N_u?6~N$4-=-zWLMLVvg9zXb)Fs+~e~KtflcnW66? zdP+iT;3z|{BRVCavyjkYv}V3tl{t#5~M-)VL_vAqlO+W!0je$L3v84t7cWCMfW# zPm5?zNaz$sJ0e9B<>R!(7n|~ynQbNeLz7@p$+i7zVO^BH{h-zhSBEdwA# zBy>jd&tpO$O(2TrjKml5Ka%`<{4y5oO9{A!6MUNm-}tU*;?7K=n{Oz8svzN4HE~|6 z650Suel;vMDS(?Iv|=+vZo=Q53|A@ z+O~$p%0!sN2fgJk+wbVQods`}M{F)$@0pF8;YNAHx@a+m?O?5FR8$+ZR790&FAP^i ztucP+%-pcZuw^eOl~G%FuHpQf!tTn5axf2uE2GLp9{)6e<;rU7IsGe delta 3355 zcmZ`*e@qis9KUxhr7g4+O1WN@-hnb0nS;&=Y8;bkZR^CqkPLqplg#yjk#1vGiEc{-n)CRyWZwY?#KK5 z_wj*Oz=7W6J}IDFRu_Y9Tr zqQPbE>vmw>(4qHgHtA@>OD>rG-Axz*0Oec2YwtX%Jd#!x$gm zqGnx{oHeA4bs!O|H4!V+T&~#b)nK6yw81te2iu_y)(LN<=EZgSX+PZ>B))t*(Iu_i7{5uaz`x9AHR*pJ0(r_R%)&VB8T z9HO;qHPA?M2PR%(f$(!rBGw5U%NcENo|)Zidh3(mp~UosaWFj=3*D-nFw9OQ$bwb@{>AUJPblD*vQJXd0F zKlOWJaI%-p1qH%vFpr%slBOVsB4*>@_`wy=qY^1msuTWAt)d#l~A`Zd# z8m9|@kMh-5#fRz%VIBBN`U#va- zFok2Dh0k1q_`OCWYcvZ)Q(#oiLA+06Mmy$`2G0ju&T{k%ROSd`51j=U){{b7M6PWR z$q9&LZIM#0J`(I+n8Mx@6!q)aWq<@hM074{b?j~MVRoM8ZPKwvA&lAklvu}c6hz>7hJ)k(t!uFRVIz7!B<4)-amf)NYAEF7q(IsG8)TB<&I(A!!v-o!v zJofJj%c8=+bcQQ*BoO^}SkKrV=%#pL#A!ndb+~f4V{Vx?4$hz0DA(%@tOpG`ob{kZ zhZoYsZ)+1^jBU6lb^7DDCnP_2MrUAq@R-iP8gxa6vj$D;@Cn+WUv=@>F8YbM0UoVqA;0Aa(N+~D~N2N%<9-Gi029+c3R1Fwwad= z-dY{b#;8Gu&kRrJ3dpvGZf{C1$dsMnkldDP Date: Mon, 3 Apr 2017 19:13:55 +0200 Subject: [PATCH 06/17] =?UTF-8?q?CGP:=20Nada=20que=20a=C3=B1adir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab1/DECISION MAKING POINTS.txt | 17 ++- lab1/client$1.class | Bin 608 -> 608 bytes lab1/client.class | Bin 4782 -> 6096 bytes lab1/client.java | 206 ++++++++++++++++++++----- lab1/msg_list.o | Bin 5240 -> 0 bytes lab1/read_line.o | Bin 5296 -> 0 bytes lab1/server | Bin 21816 -> 0 bytes lab1/server.c | 261 ++++++++++++++++++++++++++++---- lab1/server.h | 24 +++ lab1/server.o | Bin 10184 -> 0 bytes lab1/test | Bin 19640 -> 0 bytes lab1/test.c | 5 + lab1/test.o | Bin 7136 -> 0 bytes lab1/user_list.c | 28 +++- lab1/user_list.h | 10 +- lab1/user_list.o | Bin 9168 -> 0 bytes 16 files changed, 467 insertions(+), 84 deletions(-) delete mode 100644 lab1/msg_list.o delete mode 100644 lab1/read_line.o delete mode 100755 lab1/server create mode 100644 lab1/server.h delete mode 100644 lab1/server.o delete mode 100755 lab1/test delete mode 100644 lab1/test.o delete mode 100644 lab1/user_list.o diff --git a/lab1/DECISION MAKING POINTS.txt b/lab1/DECISION MAKING POINTS.txt index 4b51c84..6ab50d1 100644 --- a/lab1/DECISION MAKING POINTS.txt +++ b/lab1/DECISION MAKING POINTS.txt @@ -1,5 +1,7 @@ DECISION MAKING POINTS +-FIFO QUEUE FOR PENDING MESSAGES + -Server will be receiving a first string from the client indicating the command/operation/service, that can be REGISTER, UNREGISTER, CONNECT, DISCONNECT or SEND. For optimization, the maximum length of a a command string is of 10 (number of characters in the largest possible command, which is UNREGISTER or DISCONNECT) +1 character for the ASCII '\0'. So this will be stores in a char array of 11 bytes. -A username can contain at most 15 characters, including numbers and letters. <> ===> As it is not specified in the guidelines and it may be something that interferes with the protocol, it is consideres to have a username of 256 characters @@ -13,4 +15,17 @@ DECISION MAKING POINTS -DO WE SEND A STRING OR A BYTE FROM SERVER TO CLIENT?? ((IMPORTANT: All fields sent will be encoded as strings. Remember that the strings end with the ASCII ’\0’ code)) --HOW DO WE GET THE IP AND PORT FROM A CLIENT?? \ No newline at end of file +-HOW DO WE GET THE IP AND PORT FROM A CLIENT?? + +-CHECK FOR -1 EVERYTIME WE DO AN OPERATION WITH A SOCKET?? + +-RETURNING 0 OR '0' FROM THE SERVER IS DIFFERENT. WHAT IS THE PROTOCOL ==> SHOULD BE CHAR 0, NOT CHAR '0', BECAUSE THE BIT REPRESENTATION IS DIFFERENT + +-CREATE THREADS ONCE WE KNOW THE TYPE OF OPERATION? OR CREATE THREAD ONCE THE CONNECTION IS ACCEPTED AND CHECK THE OPERATION IN EVERY THREAD?? + +-DO WE REALLY NEED A CONDITION VARIABLE TO ACCESS THE LIST? IT SHOULD SUFFICE WITH A MUTEX + +-MAXIMUM NUMBER OF USERS?? MAXIMUM NUMBER OF PENDING MESSAGES?? + +-IN WHICH CASES ARE WE SENDING THE CODE 2 (ERROR) TO THE CLIENT?? + diff --git a/lab1/client$1.class b/lab1/client$1.class index ba95620b5d159dceab3eabd2a4d4b97da2c0dd42..7167aecf911089932d2a49fe40ce27fc532fd0a7 100644 GIT binary patch delta 14 VcmaFB@_=Q7G!qk}(qvgCX83PNnX=|WM-J9 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 literal 4782 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 Rvoi{G{x9cLoN;{de*r;=l*Ir5 diff --git a/lab1/client.java b/lab1/client.java index 86a5bfb..20e100a 100644 --- a/lab1/client.java +++ b/lab1/client.java @@ -42,7 +42,7 @@ static RC register(String user) Socket sc = new Socket(_server, _port); DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - BufferedReader in = new BufferedReader(new InputStreamReader(sc.getInputStream())); + DataInputStream in = new DataInputStream(sc.getInputStream()); //2. The string "REGISTER" is sent indicating the operation String operation = new String("REGISTER"); @@ -54,7 +54,9 @@ static RC register(String user) out.write('\0'); //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case - String response = in.readLine(); + Byte response = in.readByte(); + + System.out.println("Response is: " + response); //5. Close connection sc.close(); @@ -63,13 +65,13 @@ static RC register(String user) //Decode the response from the server switch(response){ - case "0": + case 0: System.out.println("c> REGISTER OK"); return RC.OK; - case "1": - System.out.println("c> REGISTER IN USE"); + case 1: + System.out.println("c> USERNAME IN USE"); return RC.USER_ERROR; - case "2": + case 2: System.out.println("c> REGISTER FAIL"); return RC.ERROR; } @@ -79,7 +81,7 @@ static RC register(String user) System.out.println("Exception: " + e); e.printStackTrace(); } - + System.out.println("c> REGISTER FAIL"); return RC.ERROR; } @@ -92,7 +94,54 @@ static RC register(String user) */ static RC unregister(String user) { - // Write your code here + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "UNREGISTER" is sent indicating the operation + String operation = new String("UNREGISTER"); + out.writeBytes(operation); + out.write('\0'); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be unregistered + out.writeBytes(user); + out.write('\0'); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + Byte response = in.readByte(); + + System.out.println("Response is: " + response); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> UNREGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + e.printStackTrace(); + } + System.out.println("c> UNREGISTER FAIL"); return RC.ERROR; } @@ -105,7 +154,61 @@ static RC unregister(String user) */ static RC connect(String user) { - // Write your code here + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "CONNECT" is sent indicating the operation + String operation = new String("CONNECT"); + out.writeBytes(operation); + out.write('\0'); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be connected + out.writeBytes(user); + out.write('\0'); + + //4. A string is sent with the port number listening in the client + out.writeBytes("400"); + out.write('\0'); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + Byte response = in.readByte(); + + System.out.println("Response is: " + response); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> CONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> USER ALREADY CONNECTED"); + return RC.USER_ERROR; + case 3: + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + e.printStackTrace(); + } + System.out.println("c> CONNECT FAIL"); return RC.ERROR; } @@ -119,7 +222,61 @@ static RC connect(String user) */ static RC disconnect(String user) { - // Write your code here + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "DISCONNECT" is sent indicating the operation + String operation = new String("DISCONNECT"); + out.writeBytes(operation); + out.write('\0'); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be connected + out.writeBytes(user); + out.write('\0'); + + //4. A string is sent with the port number listening in the client + out.writeBytes("400"); + out.write('\0'); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + Byte response = in.readByte(); + + System.out.println("Response is: " + response); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> DISCONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); + return RC.USER_ERROR; + case 3: + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + e.printStackTrace(); + } + System.out.println("c> DISCONNECT FAIL"); return RC.ERROR; } @@ -166,17 +323,7 @@ static void shell() /********** UNREGISTER ************/ else if (line[0].equals("UNREGISTER")) { if (line.length == 2) { - switch(unregister(line[1])){ // userName = line[1] - case OK: - System.out.println("c> UNREGISTER OK"); - break; - case USER_ERROR: - System.out.println("c> USER DOES NOT EXIST"); - break; - case ERROR: - System.out.println("c> UNREGISTER FAIL"); - break; - } + unregister(line[1]); // userName = line[1] } else { System.out.println("Syntax error. Usage: UNREGISTER "); } @@ -185,20 +332,7 @@ else if (line[0].equals("UNREGISTER")) { /************ CONNECT *************/ else if (line[0].equals("CONNECT")) { if (line.length == 2) { - switch(connect(line[1])){ // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR - case OK: - System.out.println("c> CONNECT OK"); - break; - case USER_ERROR: - System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); - break; - case USER_CONNECT_ERROR: - System.out.println("c> USER ALREADY CONNECTED"); - break; - case ERROR: - System.out.println("c> CONNECT FAIL"); - break; - } + connect(line[1]); // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR } else { System.out.println("Syntax error. Usage: CONNECT "); } @@ -213,8 +347,6 @@ else if (line[0].equals("DISCONNECT")) { break; case USER_ERROR: System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); - break; - case USER_CONNECT_ERROR: System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); break; case ERROR: diff --git a/lab1/msg_list.o b/lab1/msg_list.o deleted file mode 100644 index a32c695805153511ac1c2ecd7c7417bc12fe6fa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5240 zcmbVPU2Ggz6+Sa#$765oY-~asg2)6Ba8dWim21+_rlyXYT`MtF5?84JrL*ht?yCFa z&djEEXlPK>(v?B7k>CYT!~=aIfKVR_K?)KQg-Sf|LJ{gi5Go1;q4WV{iHdN}z2~fF zFPoPhY3APZo!@)r-m`aKnm_rZZCM~>!7_)sD7^g3_CY;Q zE0fNq+m$YD7dq+N3!>VYzjJ#JGIt6amz5F%NfurGS@UElezps5Ds4(^^S8g^#66Wb z=g>`8Y;Z}Ojn3S#yFtEWNop13;mW0Lh@V#JZf{(sHFkcjG~Y<7V`e6LV{MJyxF_N0R0WdgWIc{q3XzH^m3)x+x;EWMd zoH&Bn4+S?lrr+QFyxQwFp5fBT93q_TUk>)5^@ zU=&$)OzhZnk91E87c!2UDBaf|7UMyDY*iGs@whwy$-UVHak7q&4LN*U)_=xE@vS-= zeg+G0qn)qUqBvV7i!N6s4i~Az;Oryr)Z1?Et?TX~XXJ;@diGlGFaLV?ua95-UNHV{<3r7Q77fuHioLVniWsI=mgaLD28@3s#Ti7vPVcmpGb&< z#wvtCqje!Tg`2+`_{$J9pKk|k#VZdzhC7aX;MEYlqK62|RX^N`r8qk0&`qYh+A^G2 zT=M3oro4x<)7iZDP=0DAKa+pN%QWJ4GkB~LG=s2KM%E9@)yLM3%w%S!y-dZ+tVFS2 zelD{bw&I{1x57*mhqz#fs;w~gdJ^L`t2}bmRwKw&+Ho!SLMwbOTJ_68?l^viuvTiv z!Ez>AkFX$7uI`tn*clZos$C4?_0<5H!CDM(Vs7rJH@Q@5H{-TWJu}l*+|*a5X0rL| z?DPZ1lGJAf_z;iQ#nWJ|rL6k}>V zNQss07g?^(t;p>cwF1k`0YhWoeebS`6Yuo>6KAyn;%lHV6$zA2pMnp65{kEZhk@*)5oLRVH;LkAsEd&1s^Vbag zX^#7Q1D78BHshq0tp7g^eW~yJ2JSI`AIFh;PBMO&aq(Yge8$k1&UDhiGpsNBQ~XGu zsTul`=L-fd`MhG_tL*>ljMG4MkiK-)&=>#L3|#yt&x_0{1oZ?W@vk`m`3@%Tu>$3i z{4TQwE_Ha;z$JgkM(d5(FX0%6daTMU4C;P1ri(y!*^hn5mZAutOR7bgVk%zKujO}GB53(7b{F6_~6Q_z6 z_>%DjBcQM{zKYuY?0>)q>S6XLgV@Qq#r7hX@lWP~WP#X;-fK7^%-p{>*?vtFd6e}F z{C%ACtKTfwufU2_zcfB#FLm9En0fZd%3NoM^20RyC4MF0Q* diff --git a/lab1/read_line.o b/lab1/read_line.o deleted file mode 100644 index 619b6d7aa70bdbb9963b6da490077b73d1f17cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5296 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

po z_RTLdlX%_EW*hI#nwfUIVfXyPRPwmRkk6s5^7%|pNiSgZ+Cg%$<9EcVo~PQ`Jf`07 zGV9oB=fs=J&H^@(lD?49YZS@F&K4z;IBw^^QkcoIvx{aDL9rVz0bAL2w%AILn4NiN z&~ask4Wf6alNmW6Xm|>r9Jd9a+c56lq~9MN0R7O+!&NOsK9_?&2XUsijHuvFju+ZpoFnUI zKu@Mp(PL@oUrj@Q5OlBEu&kHZi9U0F(Qk=TwM)C^sp!8=L&t?MjK5GyMFKY8DOlcXmRL^7_0!jXXW< zPnCyvb9wiSCn>jrKHIi{UGQ$RWbf@#KKY4Wl;q)&IuBxJn3n-5pZs*?UP({hJf@!- zP@I{Zr$K4wVNREb35=zo{~0nKwvg#dwwa_EqX*+;Uwv2Pa>@NU=p>(<=i^ddZPBRT z*u0gl-8A%U1SHisUJSa|;-NrRaC!HPC&2W0cQ*V~&$Y2l&WkUN{jF)}w@dr#W?MaR zpeI_X{5$|UCd0&Ts4j_%%;=I%fn?vQZ17~8>Gdwcr2gSf#jx?=U( z)v1L7?Oma+Kyx_Uyfc6s!$MB>PkqNIQ%OEAmJ`D;PXps{;CER z*jQ6nQC<_M+puA?uQAYAUQy$t7WlUbS|c&uMgC=ivNH3x26;8zO5&pnR(j%I%yg?{eB8k*8wm0{Qq$KOtbFtRpXF;139(h;D-sC; zeXb$t-j41qtpeif5ms8_CeC^<$UkIZ6*cZMxgF!)kkZL2IO9tb$!zMs_~L~8I7PC6 z<&zYcFOl9rXLG0xU+pk%odeZ%FoE6g0CKo3`OY_S8)`}|%1`;N3~PhpsrYqPCqO*b^`s792dlh|p(KxR^u&;Dv+T&7>e}ece%3 z#D}d2)uN7Gpi$b|ETWYVLcM${6$Lxx+SiGlJp&V}Vi6P?s(xE5#Lx`(7hB;&ZWG>7Z1dOG>HZFv zpvL`x+AmSx15>{TS1pjNxqKc7p3NHiYF|ZtZ_8^IMjfX)ODP3r)>r#4QCtsFxkLct zn5ICVx5%e2$<-gh=`U^FPa5KPqEXp}e~PKnSNlx|q`vB>YG3Iq`hKZj0Z2vdOC6E=>UaF4 zPddr^UjvPDN_N-Szw%^(h=MCUOGzI8IJjngwa--|_4&I)CJP=}SMa_heYGDpPDz2H z{1wic%;yLXS9bg7!${wQc>eYLOmyd1bcD#OxFa{DiUj=LQ`hq#E^ z&%0PCB+Dn`^n1QslfK$t(m$jAub@l*(;TLv_QgD(QU7h|Q0^*yweP6DQ#ek>QB-~_ z|5YB`51zSwwLdwvn5(7DKV|3lN&3b #include #include +#include #include #include +#include +#include #include "read_line.h" #include "user_list.h" #include "msg_list.h" +#include "server.h" -#define MAX_OP 11 -#define TRUE 1 -#define FALSE 0 +/* Handler for interrupts */ +void interruptHandler(int sig){ + printf("[SERVER]: Handling interrupt. Closing server socket...\n"); + exit(0); +} int main(int argc, char * argv[]){ struct sockaddr_in server_addr, client_addr; int sd, sc; int val; int server_port; + struct hostent *hp; + /* Check command */ if(argc != 3 || strcmp(argv[1],"-p") != 0){ @@ -36,6 +44,28 @@ int main(int argc, char * argv[]){ //printf(); + /* Initializing mutex */ + if(pthread_mutex_init(&socket_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_mutex_init(&users_list_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_cond_init(&free_socket, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_cond_init(&free_list, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + + /* Prepare thread conditions */ + pthread_attr_init(&thread_att); + pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); + sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ if(sd == -1){ perror("Error when creating the socket"); @@ -54,60 +84,225 @@ int main(int argc, char * argv[]){ perror("Error when binding the address to the socket"); exit(-1); } + struct in_addr in; + + hp = gethostbyaddr((char*) &server_addr, sizeof(server_addr), AF_INET); + + char **p; + + for (p = hp->h_addr_list; *p != 0; p++){ + memcpy(&in.s_addr, *p, sizeof(in.s_addr)); + printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); + } + + /* Initial prompt */ + //printf("s> init server %s:%d\n", inet_ntoa(in), ntohs(server_addr.sin_port)); if(listen(sd, 5) == -1){ perror("Error when listening to the socket"); exit(-1); - } /* Backlog is 5, yo maximum number of queued requests is 5 */ + } /* Backlog is 5, maximum number of queued requests is 5 */ socklen_t size = sizeof(client_addr); - //Server will receive - char operation_buff[MAX_OP]; - char user_buff[MAX_USERNAME]; - char msg_buff[MAX_MSG]; - int n; - int m; + busy_socket = TRUE; + busy_list = FALSE; + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ while(1){ - printf("s> "); + fprintf(stderr, "%s", "s> "); /* Prompt */ sc = accept(sd, (struct sockaddr *) &client_addr, &size); if(sc == -1){ perror("Error when accepting the connection"); exit(-1); } + thread = (pthread_t) malloc((sizeof(thread))); + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { + perror("[SERVER]: Error when creating the thread"); + exit(-1); + } - n = readLine(sc, operation_buff, MAX_OP); - if (n!=-1){ - if (strcmp(operation_buff, "REGISTER") == 0){ - } - else{ - printf("OPERATION NOT KNOWN..."); - } - } + /* Wait for the thread to copy the socket descriptor locally */ + pthread_mutex_lock(&socket_mtx); + while(busy_socket == TRUE) + pthread_cond_wait(&free_socket, &socket_mtx); + busy_socket = TRUE; + pthread_mutex_unlock(&socket_mtx); + + /* Close the created socket */ + printf("\n"); + } - m = readLine(sc, user_buff, MAX_USERNAME); + close(sd); + exit(0); - uint16_t client_port = client_addr.sin_port; +} - struct sockaddr_in test_addr; +void * manageRequest(int *sd){ + int s_local; + char operation_buff[MAX_OP]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; + int n; + int m; + char out; - getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); - //test_addr.sin_addr is of type struct in_addr - char * ip = inet_ntoa(test_addr.sin_addr); - printf("CLIENT ADDRESS: %s\n", ip); - printf("CLIENT PORT NUMBER: %d\n", client_port); + /* Copy locally the socket descriptor */ + pthread_mutex_lock(&socket_mtx); + s_local = *sd; + busy_socket = FALSE; + pthread_cond_signal(&free_socket); + pthread_mutex_unlock(&socket_mtx); - char res = '0'; + /* Read the operation */ + n = readLine(s_local, operation_buff, MAX_OP); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + /* Send Fail code to client side */ + /* + out ='2'; + send_msg(s_local, &out, sizeof(out)); + */ + exit(-1); + } + /* Read the username and convert to uppercase */ + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + /* Send Fail code to client side */ + /* + out ='2'; + send_msg(s_local, &out, sizeof(out)); + */ + exit(-1); + } + toUpperCase(user_buff); - send_msg(sc, &res, sizeof(res)); - close(sc); - + /* Check the operation */ + if (strcmp(operation_buff, "REGISTER") == 0){ + /* Register the user */ + pthread_mutex_lock(&users_list_mtx); + ////////////////////////////////////////////////////// + /* DOUBT */ + ////////////////////////////////////////////////////// + /* Wait while the list of users is being accessed */ + /* + while(free_list == TRUE) + pthread_cond_wait(&free_list, &users_list_mtx); + free_list = TRUE; + */ + out = registerUser(user_buff); + pthread_mutex_unlock(&users_list_mtx); + /* + switch(result){ + case 0: + out = '0'; + break; + case 1: + out = '1'; + break; + default: + out = '2'; + }*/ } + else if (strcmp(operation_buff, "UNREGISTER") == 0){ + /* Unregister the user */ + pthread_mutex_lock(&users_list_mtx); + ////////////////////////////////////////////////////// + /* DOUBT */ + ////////////////////////////////////////////////////// + /* Wait while the list of users is being accessed */ + /* + while(free_list == TRUE) + pthread_cond_wait(&free_list, &users_list_mtx); + free_list = TRUE; + */ + out = unregisterUser(user_buff); + pthread_mutex_unlock(&users_list_mtx); + /*switch(result){ + case 0: + out = '0'; + break; + case 1: + out = '1'; + break; + default: + out = '2'; + }*/ + } + else if(strcmp(operation_buff, "CONNECT") == 0){ - close(sd); - exit(0); + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + struct hostent *hp; + uint16_t client_port; + char * client_ip; + + n = readLine(s_local, msg_buff, MAX_MSG); + + client_port = (uint16_t) atoi(msg_buff); + + //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); + + int bla = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (bla == -1) perror("Errooor"); + struct in_addr in; + + hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); + char **p; + + for (p = hp->h_addr_list; *p != 0; p++){ + memcpy(&in.s_addr, *p, sizeof(in.s_addr)); + printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); + } + + + //client_port = client_addr_local.sin_port; + + printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); + + pthread_mutex_lock(&users_list_mtx); + out = connectUser(user_buff, client_port); + pthread_mutex_unlock(&users_list_mtx); + printf("HEY I'M HERE!!\n"); + } + else if(strcmp(operation_buff, "DISCONNECT") == 0){ + pthread_mutex_lock(&users_list_mtx); + out = disconnectUser(user_buff); + pthread_mutex_unlock(&users_list_mtx); + } + + + + write(1, user_buff, m); + + /* + + + struct sockaddr_in test_addr; + + getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); + //test_addr.sin_addr is of type struct in_addr + char * ip = inet_ntoa(test_addr.sin_addr); + printf("CLIENT ADDRESS: %s\n", ip); + printf("CLIENT PORT NUMBER: %d\n", client_port); + */ + + send_msg(s_local, &out, sizeof(out)); + + if(close(s_local) == -1){ + perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + pthread_exit(NULL); } + +void toUpperCase(char * string){ + /* Convert to uppercase */ + for(int i = 0; string[i]; i++){ + string[i] = toupper(string[i]); + } +} \ No newline at end of file diff --git a/lab1/server.h b/lab1/server.h new file mode 100644 index 0000000..7eb7cc5 --- /dev/null +++ b/lab1/server.h @@ -0,0 +1,24 @@ +#define MAX_OP 11 +#define TRUE 1 +#define FALSE 0 + +/* Mutex & Threads */ +pthread_mutex_t socket_mtx; +pthread_mutex_t users_list_mtx; +pthread_t thread; +pthread_attr_t thread_att; +/* Controls the access to the socket generated by the connection 'accept' */ +pthread_cond_t free_socket; +pthread_cond_t free_list; + +/* Variable that controls the state of the socket created by the connection 'accept' */ +int busy_socket; +/* Variable that controls the if the list of users is being accessed */ +int busy_list; + +/* Initialize the list of users */ +struct user *users; + +void interruptHandler(int sig); +void * manageRequest(int *sd); +void toUpperCase(char * string); \ No newline at end of file diff --git a/lab1/server.o b/lab1/server.o deleted file mode 100644 index 898661e56be0b28c6c9e7e6a2d9becbac0642f41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10184 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 Q*X3LdqZe$f#pVwCKcQU69RL6T diff --git a/lab1/test.c b/lab1/test.c index 7fb4efb..c6f2ecf 100644 --- a/lab1/test.c +++ b/lab1/test.c @@ -9,6 +9,11 @@ int main(void){ char line[MAX_MSG]; + char ip [1]; + //ip = "DISCONNECT"; + strcpy(ip, "DISCONNECT"); + printf("String: %s\n", ip); + printf("Size: %d\n", sizeof(ip)); //struct user * user_head = (struct user *) malloc(sizeof(struct user)); while(1){ diff --git a/lab1/test.o b/lab1/test.o deleted file mode 100644 index 7e6bcbf9bb669eadbff45cf8494cda23dcb76ec9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7136 zcmbtYeP|rV6`#F5Stp&o6@MspVGVKPnCPT)WZAwDN3wLWl*(4B4`TPry^pnYlACi^Rb$xP=np21@!z-QrMMN}#PFkcL8Op%6^zAEnf_4TjqNqfJR#^}U(* z?ndJ~8psp3Gw(OQ_c1fOZ+7*K^wd)k%MvV>I3Q{oqe6UdQ>{NDyCY(w=n?Z1t2ZXj z+;MCn@)IvdckG0*iPiK6$!ott)-AkzlHSDmmAfCUt-Xy&O{~6Kb43Hc!~hekzm|bk zu2q8j7!6I?YIWrnL^%5kyoyR+&B4#nw{(1aU~O%!?!YD(Xpl1-yhSi{t-+X7zne=i^vlP~GCvT}nf`QrlEpzKQee$Jd3D z7Ha=)zlVxS*x1<4l`FNedRtnZjG5YsOpWdkbS?=L@L6z*yDa8s(=*Q0As`gmQ87q69n+rwDP|6uE1UXjsq?}pT z%R41E2r>(NJvx5ONgu_$ zwu{}0GoGGG&(&Dt)9G2~$n>0|Z5Mmwd=8Zh-hvaBod9!yc1PfZix4_kfUX!8TOvY4 zB{e3W_cqzrF7E(=B@%1KZp4boCZe<`fg2RqgpD0-DtMuY#H3cWQcckKv$0vJX7ke$cBi@9n1?qe#+GY^A2ce#b0pvKMJB+r?z>01#TiJXSN0 z13#u*?*o2YC&b4n?FsA2J{9!gzR6z9Z)D525B8z2j-hJE$QB_w<1mq)W*q5)5%Pv3 z-D*ULo|?szeK;Z>g`c|f<-N{JB6ypt0CnD%{8_kK)`uPKaFwSiET}b53H*VAmn&BC zaPx(35GHbHRe^{8coFJJVi8r?G))V_JUl=!0v=#>R4UN3TdXU$FDr?ija4qgDF1Z5>m9Q}IeA$04Sjyzw0XPLhzmTnjZoWTQhGU}?3=}ijq^N*-a`-s7kY1Iu z({8xD7X&k zY*qM87`)Wa&KBz*Nj9`a3wPJGwt%uyM{HHb?;Ejem3ZBlExOj}tk|mlvMO85uv`3N zjWgvI3vG|KZd^{FwAS^GdsZ*%jt2Pt1~`_pdVcmcz@KV>A8vrpHNd~r053Mcxjf3+ zD9eH@FH4m$5I$6vDJ(zmSmjDfV#$Xm2j83mC`dlNi=i$FOUsIILS&Y((j0~}QCd8s z6!cdrpL9uud{DNkMzlf;$4yln>R}zmb%Zx&DYy?P%xC*u3YJHR&L1G0`8!D;YQV?+ zL}C80QsL`NiJ8wB;mkis`a}ah?k5WKKdV$RL#^o_-$PKCpH-^(0<|W;qT%=&!s~X1 zaQ4HzRgI6&3iH2Z@Si9BI~reK=c^j7$CV#%Fot=;`#{zIABfNSyh!?WYR!55MZ>Y? za-MexXFumjzo+r_JU`TM-A|i5_G|0>ed0YpIOe0TPg2A6`HpD#MzG;L=M4XElK*2G zU(YkA;d-7W!_QC1kFW7{KVQ>u-OqW$&u_@jC5^Ao_h%Ze&-Zs4j{mCQ`QFlSop0en zf?%WbHxthL_f=QX*j+?%Nu!=ffv0&bOIz!KRJ+h~w|4q+<>!jPrAd_ZSM}57D|~EEH5J1*tzGuZpjq z-h&#BzVP!9Wv^mkQ&qPS^;kIy{HlxnJe;1f~Gtbu=?@Qi`KPWqyOyTmUW zIM=U}22QGY!N5zTzi8ky;-`FjoAA-|)9W24_cM-9IGvIWk9!M{j;UNP`(q`zh0Z;<{j zwVWrf^9_UVQBwbGz;C8;_Opxf=_MS^ICmV z1o;_n0sh6IWAgKn#vz_a=eNw@7z_roW z5`B)~1%%(jm8Q7d#}?n~@IO@}@Y5yMuCx#2zp>Oi1;&XH3C{wQPs0y!^UKIK0VIPU zSC>aYL7yi5|7JaU}2hb-uya#<Tb;9`gwQI)5^96l!p3s%Dm56~6kX3Ha0lS|4 zt8{4ZA%EPk9k*D2xz8MI-_Z|!ZNTKd31f&Ex0!g4?DuK5*yZ^%{04ODt>5)J>xVU# z?Rj0h0W+UH^nI7?ucD%fnSZ_9B^?h0kaILKd?&_pz>JU6tQY@W8w`M)R!#M4#{VA{ C(puX9 diff --git a/lab1/user_list.c b/lab1/user_list.c index c3dd6d1..2fb9b59 100644 --- a/lab1/user_list.c +++ b/lab1/user_list.c @@ -6,7 +6,7 @@ #include "user_list.h" - int isRegistered(char * username){ +char isRegistered(char * username){ struct user *temp; temp = user_head; @@ -22,16 +22,20 @@ } /* Returns 1 if already registered; 0 if registered correctly */ -int registerUser(char * username){ +char registerUser(char * username){ /* Check if the user already exists */ if(isRegistered(username)) return 1; + /* Prepare new user */ struct user *temp; temp = (struct user *) malloc(sizeof(struct user)); + /* Initialize user values */ strcpy(temp->username, username); - + temp->status = 0; + temp->port = 0; temp->last_msg_id = 0; //Initialize the last message ID to 0 temp->pend_msgs_head = NULL; + temp->next = NULL; if (user_head == NULL){ //If list is empty temp->next = user_head; @@ -39,18 +43,19 @@ int registerUser(char * username){ } else{ struct user *last = user_head; + + /* Iterate over the list */ while(last->next != NULL){ last = last->next; } last->next = temp; - temp->next = NULL; } return 0; } /* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ -int connectUser(char * username, uint16_t port){ +char connectUser(char * username, char * ip, uint16_t port){ struct user *temp = user_head; /* Iterate over the list */ @@ -63,13 +68,17 @@ int connectUser(char * username, uint16_t port){ temp->port = port; return 0; } + temp = temp->next; } return 1; } -/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ -int disconnectUser(char * username){ +/* Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ +char disconnectUser(char * username){ struct user *temp = user_head; /* Iterate over the list */ @@ -82,6 +91,7 @@ int disconnectUser(char * username){ free(&(temp->port)); return 0; } + temp = temp->next; } return 1; @@ -89,7 +99,7 @@ int disconnectUser(char * username){ /* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ -int unregisterUser(char * username){ +char unregisterUser(char * username){ /* Check if the user is not registered */ //if(!isRegistered(username)) return 1; @@ -106,6 +116,7 @@ int unregisterUser(char * username){ } else{ //User is not at the user_head prev->next = temp->next; + /* Free the memory resources of the user structure */ free(temp); return 0; } @@ -181,3 +192,4 @@ void removePendMsg(char * username){ temp = temp->next; } } + diff --git a/lab1/user_list.h b/lab1/user_list.h index de90203..f661fde 100644 --- a/lab1/user_list.h +++ b/lab1/user_list.h @@ -15,11 +15,11 @@ struct user{ struct user *next; } *user_head; -int isRegistered(char * username); -int registerUser(char * username); -int unregisterUser(char * username); -int connectUser(char * username, uint16_t port); -int disconnectUser(char * username); +char isRegistered(char * username); +char registerUser(char * username); +char unregisterUser(char * username); +char connectUser(char * username, char * ip, uint16_t port); +char disconnectUser(char * username); void appendMsg(char * username, char* msg); unsigned int updateID(struct user *usr); void printPendMsgs(char * username); diff --git a/lab1/user_list.o b/lab1/user_list.o deleted file mode 100644 index 6c0403a06f5217d2b60c5a35f8cea7da122da9d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9168 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 From a6947491cbfa64a08fdabffa6a35a672245eaaa3 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Tue, 4 Apr 2017 23:36:53 +0200 Subject: [PATCH 07/17] CGP: Preparing the multithreaded client --- lab1/DECISION MAKING POINTS.txt | 5 + lab1/client$1.class | Bin 608 -> 608 bytes lab1/client.class | Bin 6096 -> 7198 bytes lab1/client.java | 105 ++++++++--- lab1/msg_list.h | 1 + lab1/server.c | 175 +++++++++++------- lab1/server.h | 6 +- lab1/servidor.zip | Bin 0 -> 7819 bytes lab1/servidor/Makefile | 26 +++ lab1/servidor/msg_list.c | 55 ++++++ lab1/servidor/msg_list.h | 13 ++ lab1/servidor/read_line.c | 88 +++++++++ lab1/servidor/read_line.h | 5 + lab1/servidor/server.c | 308 ++++++++++++++++++++++++++++++++ lab1/servidor/server.h | 22 +++ lab1/servidor/user_list.c | 200 +++++++++++++++++++++ lab1/servidor/user_list.h | 31 ++++ lab1/test.c | 5 +- lab1/user_list.c | 31 ++-- lab1/user_list.h | 17 +- 20 files changed, 975 insertions(+), 118 deletions(-) create mode 100644 lab1/servidor.zip create mode 100644 lab1/servidor/Makefile create mode 100644 lab1/servidor/msg_list.c create mode 100644 lab1/servidor/msg_list.h create mode 100644 lab1/servidor/read_line.c create mode 100644 lab1/servidor/read_line.h create mode 100644 lab1/servidor/server.c create mode 100644 lab1/servidor/server.h create mode 100644 lab1/servidor/user_list.c create mode 100644 lab1/servidor/user_list.h diff --git a/lab1/DECISION MAKING POINTS.txt b/lab1/DECISION MAKING POINTS.txt index 6ab50d1..b0f4735 100644 --- a/lab1/DECISION MAKING POINTS.txt +++ b/lab1/DECISION MAKING POINTS.txt @@ -29,3 +29,8 @@ strings end with the ASCII ’\0’ code)) -IN WHICH CASES ARE WE SENDING THE CODE 2 (ERROR) TO THE CLIENT?? +-POR QUE PUEDO HACER: +char name[2]; +strcpy(name, "FRANCISCOJAVIERGARCIABLAS"); + +Y NO DAR NINGUN ERROR?? diff --git a/lab1/client$1.class b/lab1/client$1.class index 7167aecf911089932d2a49fe40ce27fc532fd0a7..6c46d846de73c6ff82be4ccf7eb78d3b24f5d183 100644 GIT binary patch delta 13 UcmaFB@_=Q73=?C>WLYL>03jCx;Q#;t delta 13 UcmaFB@_=Q73=^Z$WLYL>03aO$uK)l5 diff --git a/lab1/client.class b/lab1/client.class index 2fcb9f84867b2acf4063677b3aba301ff4caa372..811bb355aed14d94360be1133c11e00452e7c9a2 100644 GIT binary patch delta 3565 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 CONNECT OK"); return RC.OK; case 1: @@ -237,14 +238,10 @@ static RC disconnect(String user) out.writeBytes(operation); out.write('\0'); //Insert ASCII 0 at the end - //3. A string of characters is sent with the user to be connected + //3. A string of characters is sent with the user to be disconnected out.writeBytes(user); out.write('\0'); - //4. A string is sent with the port number listening in the client - out.writeBytes("400"); - out.write('\0'); - //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case Byte response = in.readByte(); @@ -290,9 +287,87 @@ static RC disconnect(String user) */ static RC send(String user, String message) { - // Write your code here + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + + //2. The string "SEND" is sent indicating the operation + String operation = new String("SEND"); + out.writeBytes(operation); + out.write('\0'); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user that sends the message + //out.writeBytes(connected_user); + out.write('\0'); + + //4. A string of characters is sent with the user that receives the message + out.writeBytes(user); + out.write('\0'); + + //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent + out.writeBytes(trimMessage(message)); //Sends a string of 255 characters + out.write('\0'); + + //6. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + Byte response = in.readByte(); + + System.out.println("Response is: " + response); + + String msg_id = new String(); + /* If response is 0 (OK), prepare to read the ID of the message */ + if(response == 0){ + /* Create BufferedReader for easy reading a string */ + BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); + msg_id = inString.readLine(); + + //Close the BufferedReader + inString.close(); + } + + //7. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> SEND OK - MESSAGE " + msg_id); + return RC.OK; + case 1: + System.out.println("c> SEND FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + e.printStackTrace(); + } + System.out.println("c> SEND FAIL"); return RC.ERROR; } + + static String trimMessage(String message){ + /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ + int maxLength = 255; + + if(message.length() > maxLength){ + message = message.substring(0, maxLength); + } + + return message; + } /** * @brief Command interpreter for the client. It calls the protocol functions. @@ -341,18 +416,7 @@ else if (line[0].equals("CONNECT")) { /********** DISCONNECT ************/ else if (line[0].equals("DISCONNECT")) { if (line.length == 2) { - switch(disconnect(line[1])){ // userName = line[1] - case OK: - System.out.println("c> DISCONNECT OK"); - break; - case USER_ERROR: - System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); - System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); - break; - case ERROR: - System.out.println("c> DISCONNECT FAIL"); - break; - } + disconnect(line[1]); // userName = line[1] } else { System.out.println("Syntax error. Usage: DISCONNECT "); } @@ -450,7 +514,8 @@ public static void main(String[] argv) return; } - // Write code here + //byte[] prueba = "heyeheyheyeh"; + //System.out.println("Prueba: " + prueba); shell(); System.out.println("+++ FINISHED +++"); diff --git a/lab1/msg_list.h b/lab1/msg_list.h index 7ed6738..1320b12 100644 --- a/lab1/msg_list.h +++ b/lab1/msg_list.h @@ -6,6 +6,7 @@ struct msg{ struct msg *next; }; +unsigned int last_msg_id; void enqueueMsg(struct msg **head, char * msg, unsigned int id); void removeMsg(struct msg ** head); diff --git a/lab1/server.c b/lab1/server.c index 03e00e3..9a31c00 100644 --- a/lab1/server.c +++ b/lab1/server.c @@ -27,6 +27,8 @@ int main(int argc, char * argv[]){ int val; int server_port; struct hostent *hp; + /* Set the variable that controls the first user registered in the system */ + first_user = TRUE; /* Check command */ @@ -63,6 +65,7 @@ int main(int argc, char * argv[]){ } /* Prepare thread conditions */ + thread = (pthread_t) malloc((sizeof(thread))); pthread_attr_init(&thread_att); pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); @@ -77,7 +80,7 @@ int main(int argc, char * argv[]){ bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ server_addr.sin_family = AF_INET; - server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ + server_addr.sin_addr.s_addr = htons(INADDR_ANY); /* Listens to all addresses */ server_addr.sin_port = htons(server_port); /* Port number */ if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ @@ -96,7 +99,12 @@ int main(int argc, char * argv[]){ } /* Initial prompt */ - //printf("s> init server %s:%d\n", inet_ntoa(in), ntohs(server_addr.sin_port)); + /* + char servername[16]; + inet_ntop(AF_INET, &server_addr.sin_addr, servername, sizeof(servername)); + printf("Client Adress = %s\n", servername); + */ + printf("s> init server %s:%d\n", inet_ntoa(server_addr.sin_addr), ntohs(server_addr.sin_port)); if(listen(sd, 5) == -1){ perror("Error when listening to the socket"); @@ -106,19 +114,17 @@ int main(int argc, char * argv[]){ socklen_t size = sizeof(client_addr); busy_socket = TRUE; - busy_list = FALSE; signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ - + fprintf(stderr, "%s", "s> "); /* Prompt */ while(1){ - fprintf(stderr, "%s", "s> "); /* Prompt */ sc = accept(sd, (struct sockaddr *) &client_addr, &size); if(sc == -1){ perror("Error when accepting the connection"); exit(-1); } - thread = (pthread_t) malloc((sizeof(thread))); + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { perror("[SERVER]: Error when creating the thread"); exit(-1); @@ -130,9 +136,7 @@ int main(int argc, char * argv[]){ pthread_cond_wait(&free_socket, &socket_mtx); busy_socket = TRUE; pthread_mutex_unlock(&socket_mtx); - - /* Close the created socket */ - printf("\n"); + } close(sd); @@ -159,23 +163,17 @@ void * manageRequest(int *sd){ /* Read the operation */ n = readLine(s_local, operation_buff, MAX_OP); if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - /* Send Fail code to client side */ - /* - out ='2'; - send_msg(s_local, &out, sizeof(out)); - */ + perror("[SERVER_THREAD]: Error when reading from the socket"); + close(s_local); + //close socket in father exit(-1); } /* Read the username and convert to uppercase */ m = readLine(s_local, user_buff, MAX_USERNAME); if(m == -1){ perror("[SERVER_THREAD]: Error when reading from the socket\n"); - /* Send Fail code to client side */ - /* - out ='2'; - send_msg(s_local, &out, sizeof(out)); - */ + close(s_local); + //close socket in father exit(-1); } toUpperCase(user_buff); @@ -184,72 +182,48 @@ void * manageRequest(int *sd){ if (strcmp(operation_buff, "REGISTER") == 0){ /* Register the user */ pthread_mutex_lock(&users_list_mtx); - ////////////////////////////////////////////////////// - /* DOUBT */ - ////////////////////////////////////////////////////// - /* Wait while the list of users is being accessed */ - /* - while(free_list == TRUE) - pthread_cond_wait(&free_list, &users_list_mtx); - free_list = TRUE; - */ out = registerUser(user_buff); pthread_mutex_unlock(&users_list_mtx); - /* - switch(result){ - case 0: - out = '0'; - break; - case 1: - out = '1'; - break; - default: - out = '2'; - }*/ + } else if (strcmp(operation_buff, "UNREGISTER") == 0){ /* Unregister the user */ pthread_mutex_lock(&users_list_mtx); - ////////////////////////////////////////////////////// - /* DOUBT */ - ////////////////////////////////////////////////////// - /* Wait while the list of users is being accessed */ - /* - while(free_list == TRUE) - pthread_cond_wait(&free_list, &users_list_mtx); - free_list = TRUE; - */ out = unregisterUser(user_buff); pthread_mutex_unlock(&users_list_mtx); - /*switch(result){ - case 0: - out = '0'; - break; - case 1: - out = '1'; - break; - default: - out = '2'; - }*/ + } else if(strcmp(operation_buff, "CONNECT") == 0){ struct sockaddr_in client_addr_local; socklen_t addr_len = sizeof(client_addr_local); - struct hostent *hp; uint16_t client_port; - char * client_ip; n = readLine(s_local, msg_buff, MAX_MSG); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket"); + close(s_local); + //Close the father socket + } client_port = (uint16_t) atoi(msg_buff); //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); - int bla = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (bla == -1) perror("Errooor"); + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + perror("Error when getting client address"); + out = 3; + goto respond_to_client; + //Send error 2 to client and close socket + } + /* + char client_ip[16]; + inet_ntop(AF_INET, &client_addr_local.sin_addr, client_ip, sizeof(client_ip)); + */ + /* struct in_addr in; - + hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); char **p; @@ -258,26 +232,87 @@ void * manageRequest(int *sd){ memcpy(&in.s_addr, *p, sizeof(in.s_addr)); printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); } + */ //client_port = client_addr_local.sin_port; + printf("\nIP OF THE CLIENT: %s", inet_ntoa(client_addr_local.sin_addr)); printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); pthread_mutex_lock(&users_list_mtx); - out = connectUser(user_buff, client_port); + out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); pthread_mutex_unlock(&users_list_mtx); - printf("HEY I'M HERE!!\n"); + } else if(strcmp(operation_buff, "DISCONNECT") == 0){ + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + perror("Error when getting client address"); + out = 3; + goto respond_to_client; + //Send error 2 to client and close socket + } + pthread_mutex_lock(&users_list_mtx); - out = disconnectUser(user_buff); + out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); pthread_mutex_unlock(&users_list_mtx); } + else if(strcmp(operation_buff, "SEND") == 0){ + //LOGIC OF THE SEND + /* As the print is different format is different from the other commands + it is performed in this section and the default print is skipped */ + switch(out){ + case 0: + //OK + break; + default: + //FAIL + break; + } + + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + close(s_local); + //close socket in father + exit(-1); + } + + m = readLine(s_local, msg_buff, MAX_MSG); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + close(s_local); + //close socket in father + exit(-1); + } + toUpperCase(user_buff); + char prueba[11]; + strcpy(prueba,"4294967295"); + out = 0; + send_msg(s_local, &out, sizeof(out)); + send_msg(s_local, prueba, sizeof(prueba)); + goto destroy_thread; //Skips the default print below + } + + /* Default print */ + switch(out){ + case 0: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + break; + default: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "FAIL"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + } + + //write(1, user_buff, m); - write(1, user_buff, m); /* @@ -291,8 +326,10 @@ void * manageRequest(int *sd){ printf("CLIENT PORT NUMBER: %d\n", client_port); */ - send_msg(s_local, &out, sizeof(out)); + respond_to_client: + send_msg(s_local, &out, sizeof(out)); + destroy_thread: if(close(s_local) == -1){ perror("[SERVER_THREAD]: Error when closing the socket in the thread"); exit(-1); diff --git a/lab1/server.h b/lab1/server.h index 7eb7cc5..ba35184 100644 --- a/lab1/server.h +++ b/lab1/server.h @@ -1,6 +1,4 @@ #define MAX_OP 11 -#define TRUE 1 -#define FALSE 0 /* Mutex & Threads */ pthread_mutex_t socket_mtx; @@ -13,10 +11,8 @@ pthread_cond_t free_list; /* Variable that controls the state of the socket created by the connection 'accept' */ int busy_socket; -/* Variable that controls the if the list of users is being accessed */ -int busy_list; -/* Initialize the list of users */ +/* Declare the list of users */ struct user *users; void interruptHandler(int sig); diff --git a/lab1/servidor.zip b/lab1/servidor.zip new file mode 100644 index 0000000000000000000000000000000000000000..f0620b5fc85f95fe70b8010ae47292686b55d929 GIT binary patch literal 7819 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 +#include +#include +#include +#include "msg_list.h" + + +/* Returns 1 if already registered; 0 if registered correctly */ +void enqueueMsg(struct msg **head, char * message, unsigned int id){ + struct msg *temp; + //Allocate the space for the new message and + temp = (struct msg *) malloc(sizeof(struct msg)); + strcpy(temp->body, message); + temp->id = id; + + if (*head == NULL){ //If list is empty + temp->next = *head; + *head = temp; + } + else{ + struct msg *last = *head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + temp->next = NULL; + } +} + +/* Deletes the message at the head of the queue */ +void removeMsg(struct msg ** head){ + struct msg *temp = *head; + //Head pointing to the next element + *head = temp->next; + //Free the resources of the first message + free(temp); + return; +} + +void printMsgs(struct msg ** head){ + printf("INSIDE THE PRINT MSGS FUNCTION!\n"); + struct msg *temp = *head; + if(temp == NULL){ + return; + } + + while(temp != NULL){ + printf("Message ID: %u", temp->id); + printf("Message body: %s", temp->body); + printf("\n"); + temp = temp->next; + } + + return; +} diff --git a/lab1/servidor/msg_list.h b/lab1/servidor/msg_list.h new file mode 100644 index 0000000..1320b12 --- /dev/null +++ b/lab1/servidor/msg_list.h @@ -0,0 +1,13 @@ +#define MAX_MSG 256 + +struct msg{ + char body[MAX_MSG]; + unsigned int id; + struct msg *next; +}; + +unsigned int last_msg_id; + +void enqueueMsg(struct msg **head, char * msg, unsigned int id); +void removeMsg(struct msg ** head); +void printMsgs(struct msg ** head); diff --git a/lab1/servidor/read_line.c b/lab1/servidor/read_line.c new file mode 100644 index 0000000..967be93 --- /dev/null +++ b/lab1/servidor/read_line.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include "read_line.h" + +int send_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = send(socket, message, l, 0); + l = l -r; /* Pending data to send */ + message = message + r; /* */ + } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + +int recv_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = recv(socket, message, l, 0); + l = l -r ; /* Pending data to receive */ + message = message + r; + } while ((l>0) && (r>=0)); /* We check the return value in case all the data was not received */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + + + +ssize_t readLine(int fd, void *buffer, size_t n) +{ + ssize_t numRead; /* num of bytes fetched by last read() */ + size_t totRead; /* total bytes read so far */ + char *buf; + char ch; + + + if (n <= 0 || buffer == NULL) { + errno = EINVAL; + return -1; + } + + buf = buffer; + totRead = 0; + + for (;;) { + numRead = read(fd, &ch, 1); /* read a byte */ + + if (numRead == -1) { + if (errno == EINTR) /* interrupted -> restart read() */ + continue; + else + return -1; /* some other error */ + } else if (numRead == 0) { /* EOF */ + if (totRead == 0) /* no byres read; return 0 */ + return 0; + else + break; + } else { /* numRead must be 1 if we get here*/ + if (ch == '\n') + break; + if (ch == '\0') + break; + if (totRead < n - 1) { /* discard > (n-1) bytes */ + totRead++; + *buf++ = ch; + } + } + } + + *buf = '\0'; + return totRead; +} diff --git a/lab1/servidor/read_line.h b/lab1/servidor/read_line.h new file mode 100644 index 0000000..e3d4c9e --- /dev/null +++ b/lab1/servidor/read_line.h @@ -0,0 +1,5 @@ +#include + +int send_msg(int socket, char *message, int length); +int recv_msg(int socket, char *message, int length); +ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab1/servidor/server.c b/lab1/servidor/server.c new file mode 100644 index 0000000..b842639 --- /dev/null +++ b/lab1/servidor/server.c @@ -0,0 +1,308 @@ +#include /* For addresses in PF_INET */ +#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" +#include "msg_list.h" +#include "server.h" + +/* Handler for interrupts */ +void interruptHandler(int sig){ + printf("[SERVER]: Handling interrupt. Closing server socket...\n"); + exit(0); +} + +int main(int argc, char * argv[]){ + struct sockaddr_in server_addr, client_addr; + int sd, sc; + int val; + int server_port; + struct hostent *hp; + + + /* Check command */ + if(argc != 3 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p \n"); + exit(-1); + } + + /* Check if the port number passed as parameter is valid */ + server_port = atoi(argv[2]); + if ((server_port < 1024) || (server_port > 65535)) { + printf("Error: Port must be in the range 1024 <= port <= 65535\n"); + exit(-1); + } + + //printf(); + + /* Initializing mutex */ + if(pthread_mutex_init(&socket_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_mutex_init(&users_list_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_cond_init(&free_socket, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_cond_init(&free_list, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + + /* Prepare thread conditions */ + pthread_attr_init(&thread_att); + pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); + + sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(sd == -1){ + perror("Error when creating the socket"); + exit(-1); + } + + val = 1; + setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + + bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ + server_addr.sin_family = AF_INET; + server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ + server_addr.sin_port = htons(server_port); /* Port number */ + + if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + perror("Error when binding the address to the socket"); + exit(-1); + } + struct in_addr in; + + hp = gethostbyaddr((char*) &server_addr, sizeof(server_addr), AF_INET); + + char **p; + + for (p = hp->h_addr_list; *p != 0; p++){ + memcpy(&in.s_addr, *p, sizeof(in.s_addr)); + printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); + } + + /* Initial prompt */ + //printf("s> init server %s:%d\n", inet_ntoa(in), ntohs(server_addr.sin_port)); + + if(listen(sd, 5) == -1){ + perror("Error when listening to the socket"); + exit(-1); + } /* Backlog is 5, maximum number of queued requests is 5 */ + + socklen_t size = sizeof(client_addr); + + busy_socket = TRUE; + busy_list = FALSE; + + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ + + while(1){ + fprintf(stderr, "%s", "s> "); /* Prompt */ + + sc = accept(sd, (struct sockaddr *) &client_addr, &size); + if(sc == -1){ + perror("Error when accepting the connection"); + exit(-1); + } + thread = (pthread_t) malloc((sizeof(thread))); + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { + perror("[SERVER]: Error when creating the thread"); + exit(-1); + } + + /* Wait for the thread to copy the socket descriptor locally */ + pthread_mutex_lock(&socket_mtx); + while(busy_socket == TRUE) + pthread_cond_wait(&free_socket, &socket_mtx); + busy_socket = TRUE; + pthread_mutex_unlock(&socket_mtx); + + /* Close the created socket */ + printf("\n"); + } + + close(sd); + exit(0); + +} + +void * manageRequest(int *sd){ + int s_local; + char operation_buff[MAX_OP]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; + int n; + int m; + char out; + + /* Copy locally the socket descriptor */ + pthread_mutex_lock(&socket_mtx); + s_local = *sd; + busy_socket = FALSE; + pthread_cond_signal(&free_socket); + pthread_mutex_unlock(&socket_mtx); + + /* Read the operation */ + n = readLine(s_local, operation_buff, MAX_OP); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + /* Send Fail code to client side */ + /* + out ='2'; + send_msg(s_local, &out, sizeof(out)); + */ + exit(-1); + } + /* Read the username and convert to uppercase */ + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + /* Send Fail code to client side */ + /* + out ='2'; + send_msg(s_local, &out, sizeof(out)); + */ + exit(-1); + } + toUpperCase(user_buff); + + /* Check the operation */ + if (strcmp(operation_buff, "REGISTER") == 0){ + /* Register the user */ + pthread_mutex_lock(&users_list_mtx); + ////////////////////////////////////////////////////// + /* DOUBT */ + ////////////////////////////////////////////////////// + /* Wait while the list of users is being accessed */ + /* + while(free_list == TRUE) + pthread_cond_wait(&free_list, &users_list_mtx); + free_list = TRUE; + */ + out = registerUser(user_buff); + pthread_mutex_unlock(&users_list_mtx); + /* + switch(result){ + case 0: + out = '0'; + break; + case 1: + out = '1'; + break; + default: + out = '2'; + }*/ + } + else if (strcmp(operation_buff, "UNREGISTER") == 0){ + /* Unregister the user */ + pthread_mutex_lock(&users_list_mtx); + ////////////////////////////////////////////////////// + /* DOUBT */ + ////////////////////////////////////////////////////// + /* Wait while the list of users is being accessed */ + /* + while(free_list == TRUE) + pthread_cond_wait(&free_list, &users_list_mtx); + free_list = TRUE; + */ + out = unregisterUser(user_buff); + pthread_mutex_unlock(&users_list_mtx); + /*switch(result){ + case 0: + out = '0'; + break; + case 1: + out = '1'; + break; + default: + out = '2'; + }*/ + } + else if(strcmp(operation_buff, "CONNECT") == 0){ + + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + struct hostent *hp; + uint16_t client_port; + char * client_ip; + + n = readLine(s_local, msg_buff, MAX_MSG); + + client_port = (uint16_t) atoi(msg_buff); + + //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); + + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1) perror("Error when getting address"); + struct in_addr in; + + hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); + + char **p; + + for (p = hp->h_addr_list; *p != 0; p++){ + memcpy(&in.s_addr, *p, sizeof(in.s_addr)); + printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); + } + + + //client_port = client_addr_local.sin_port; + + printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); + + pthread_mutex_lock(&users_list_mtx); + out = connectUser(user_buff, msg_buff, client_port); + pthread_mutex_unlock(&users_list_mtx); + + }/* + else if(strcmp(operation_buff, "DISCONNECT") == 0){ + pthread_mutex_lock(&users_list_mtx); + out = disconnectUser(user_buff); + pthread_mutex_unlock(&users_list_mtx); + }*/ + + + + write(1, user_buff, m); + + /* + + + struct sockaddr_in test_addr; + + getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); + //test_addr.sin_addr is of type struct in_addr + char * ip = inet_ntoa(test_addr.sin_addr); + printf("CLIENT ADDRESS: %s\n", ip); + printf("CLIENT PORT NUMBER: %d\n", client_port); + */ + + send_msg(s_local, &out, sizeof(out)); + + if(close(s_local) == -1){ + perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + pthread_exit(NULL); +} + +void toUpperCase(char * string){ + /* Convert to uppercase */ + for(int i = 0; string[i]; i++){ + string[i] = toupper(string[i]); + } +} \ No newline at end of file diff --git a/lab1/servidor/server.h b/lab1/servidor/server.h new file mode 100644 index 0000000..4380dbb --- /dev/null +++ b/lab1/servidor/server.h @@ -0,0 +1,22 @@ +#define MAX_OP 11 + +/* Mutex & Threads */ +pthread_mutex_t socket_mtx; +pthread_mutex_t users_list_mtx; +pthread_t thread; +pthread_attr_t thread_att; +/* Controls the access to the socket generated by the connection 'accept' */ +pthread_cond_t free_socket; +pthread_cond_t free_list; + +/* Variable that controls the state of the socket created by the connection 'accept' */ +int busy_socket; +/* Variable that controls the if the list of users is being accessed */ +int busy_list; + +/* Initialize the list of users */ +struct user *users; + +void interruptHandler(int sig); +void * manageRequest(int *sd); +void toUpperCase(char * string); \ No newline at end of file diff --git a/lab1/servidor/user_list.c b/lab1/servidor/user_list.c new file mode 100644 index 0000000..befa904 --- /dev/null +++ b/lab1/servidor/user_list.c @@ -0,0 +1,200 @@ +#include +#include +#include +#include +#include "msg_list.h" +#include "user_list.h" + + +char isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Returns 1 if already registered; 0 if registered correctly */ +char registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + /* Prepare new user */ + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + /* Initialize user values */ + strcpy(temp->username, username); + temp->status = 0; + temp->port = 0; + temp->pend_msgs_head = NULL; + temp->next = NULL; + + if (user_head == NULL){ //If list is empty + /*Initialize the last assigned ID to a message if is the first user to register*/ + if(first_user){ + last_msg_id = 0; + first_user = FALSE; + } + temp->next = user_head; + user_head = temp; + } + else{ + struct user *last = user_head; + + /* Iterate over the list */ + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + + return 0; +} + +/* Return 0 if connect OK; 1 if user is not registered; 2 if registered but not connected */ +char connectUser(char * username, char * ip, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + //Set IP + temp->port = port; + return 0; + } + temp = temp->next; + } + + return 1; +} + +/* Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ +char disconnectUser(char * username, char * used_ip){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP + if (temp->status == 0) return 2; //User already disconnected + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + //Free IP + free(&(temp->port)); + return 0; + } + temp = temp->next; + } + + return 1; +} + + +/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ +char unregisterUser(char * username){ + /* Check if the user is not registered */ + //if(!isRegistered(username)) return 1; + + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + /* Free the memory resources of the user structure */ + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + + +void printUsers(){ + struct user *temp; + temp = user_head; + if(temp == NULL){ + return; + } + while(temp != NULL){ + printf("%s ", temp->username); + temp = temp->next; + printf("\n"); + } +} + +void appendMsg(char * username, char* msg){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Enqueue message + enqueueMsg(&(temp->pend_msgs_head), msg, updateLastID(temp)); + return; + } + temp = temp->next; + } + + return; +} + +unsigned int updateLastID(){ + //Increment the ID in 1 + last_msg_id = last_msg_id+1; + //If it results in 0, then the maximum representable number is overflown + if(last_msg_id == 0) last_msg_id = 1; + + return last_msg_id; +} + +void printPendMsgs(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + printMsgs(&(temp->pend_msgs_head)); + } + temp = temp->next; + } +} + +void removePendMsg(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + removeMsg(&(temp->pend_msgs_head)); + } + temp = temp->next; + } +} + diff --git a/lab1/servidor/user_list.h b/lab1/servidor/user_list.h new file mode 100644 index 0000000..b947099 --- /dev/null +++ b/lab1/servidor/user_list.h @@ -0,0 +1,31 @@ +#define MAX_USERNAME 256 +#define TRUE 1 +#define FALSE 0 + +/* +struct pend_msg{ + char pend_msg[MAX_MSG]; + struct pend_msg *next; +} *msg_head;*/ + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + uint16_t port; + struct msg *pend_msgs_head; + struct user *next; +} *user_head; + +int first_user; + + +char isRegistered(char * username); +char registerUser(char * username); +char unregisterUser(char * username); +char connectUser(char * username, char * ip, uint16_t port); +char disconnectUser(char * username, char * used_ip); +void appendMsg(char * username, char* msg); +unsigned int updateLastID(); +void printPendMsgs(char * username); +void printUsers(); +void removePendMsg(char * username); \ No newline at end of file diff --git a/lab1/test.c b/lab1/test.c index c6f2ecf..e495034 100644 --- a/lab1/test.c +++ b/lab1/test.c @@ -9,11 +9,12 @@ int main(void){ char line[MAX_MSG]; - char ip [1]; + char * ip; + ip = (char *) malloc(sizeof(char)*2); //ip = "DISCONNECT"; strcpy(ip, "DISCONNECT"); printf("String: %s\n", ip); - printf("Size: %d\n", sizeof(ip)); + printf("Size: %d\n", sizeof(*ip)); //struct user * user_head = (struct user *) malloc(sizeof(struct user)); while(1){ diff --git a/lab1/user_list.c b/lab1/user_list.c index 2fb9b59..0d80fe9 100644 --- a/lab1/user_list.c +++ b/lab1/user_list.c @@ -4,7 +4,6 @@ #include #include "msg_list.h" #include "user_list.h" - char isRegistered(char * username){ struct user *temp; @@ -32,12 +31,17 @@ char registerUser(char * username){ /* Initialize user values */ strcpy(temp->username, username); temp->status = 0; + strcpy(temp->ip, "-1"); temp->port = 0; - temp->last_msg_id = 0; //Initialize the last message ID to 0 temp->pend_msgs_head = NULL; temp->next = NULL; if (user_head == NULL){ //If list is empty + /*Initialize the last assigned ID to a message if is the first user to register*/ + if(first_user){ + last_msg_id = 0; + first_user = FALSE; + } temp->next = user_head; user_head = temp; } @@ -54,7 +58,7 @@ char registerUser(char * username){ return 0; } -/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ +/* Return 0 if connect OK; 1 if user is not registered; 2 if registered but not connected */ char connectUser(char * username, char * ip, uint16_t port){ struct user *temp = user_head; @@ -64,7 +68,7 @@ char connectUser(char * username, char * ip, uint16_t port){ if (temp->status == 1) return 2; //User already connected /* Change status to 1 ("ON") and update IP and Port */ temp->status = 1; - //Set IP + strcpy(temp->ip, ip); temp->port = port; return 0; } @@ -78,17 +82,18 @@ char connectUser(char * username, char * ip, uint16_t port){ 1 if user is not registered; 2 if registered but not connected; 3 if trying to disconnect from a different IP */ -char disconnectUser(char * username){ +char disconnectUser(char * username, char * used_ip){ struct user *temp = user_head; /* Iterate over the list */ while(temp != NULL){ if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 0) return 2; //User already disconnected + if (temp->status == 0) return 2; //User already disconnected + if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP /* Change status to 0 ("OFF") and delete IP and Port */ temp->status = 0; - //Free IP - free(&(temp->port)); + strcpy(temp->ip, "-1"); + temp->port = 0; return 0; } temp = temp->next; @@ -151,7 +156,7 @@ void appendMsg(char * username, char* msg){ while(temp != NULL){ if(strcmp(temp->username, username) == 0){ //User found //Enqueue message - enqueueMsg(&(temp->pend_msgs_head), msg, updateID(temp)); + enqueueMsg(&(temp->pend_msgs_head), msg, updateLastID()); return; } temp = temp->next; @@ -160,13 +165,13 @@ void appendMsg(char * username, char* msg){ return; } -unsigned int updateID(struct user *usr){ +unsigned int updateLastID(){ //Increment the ID in 1 - usr->last_msg_id = usr->last_msg_id+1; + last_msg_id = last_msg_id+1; //If it results in 0, then the maximum representable number is overflown - if(usr->last_msg_id == 0) usr->last_msg_id = 1; + if(last_msg_id == 0) last_msg_id = 1; - return usr->last_msg_id; + return last_msg_id; } void printPendMsgs(char * username){ diff --git a/lab1/user_list.h b/lab1/user_list.h index f661fde..ad01d3a 100644 --- a/lab1/user_list.h +++ b/lab1/user_list.h @@ -1,27 +1,26 @@ #define MAX_USERNAME 256 - -/* -struct pend_msg{ - char pend_msg[MAX_MSG]; - struct pend_msg *next; -} *msg_head;*/ +#define TRUE 1 +#define FALSE 0 struct user{ char username[MAX_USERNAME]; /* Username that acts as ID */ char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + char ip[16]; uint16_t port; struct msg *pend_msgs_head; - unsigned int last_msg_id; struct user *next; } *user_head; +int first_user; + + char isRegistered(char * username); char registerUser(char * username); char unregisterUser(char * username); char connectUser(char * username, char * ip, uint16_t port); -char disconnectUser(char * username); +char disconnectUser(char * username, char * used_ip); void appendMsg(char * username, char* msg); -unsigned int updateID(struct user *usr); +unsigned int updateLastID(); void printPendMsgs(char * username); void printUsers(); void removePendMsg(char * username); \ No newline at end of file From 7f043a29692a0684c3c7979ac5c63ac0f2c89407 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Fri, 7 Apr 2017 00:10:01 +0200 Subject: [PATCH 08/17] CGP: Implemented messaging service. Pending for correct decoding of message ID and message body in the client listening thread --- lab1/ServerThread.class | Bin 0 -> 2431 bytes lab1/client$RC.class | Bin 884 -> 884 bytes lab1/client.class | Bin 7198 -> 8046 bytes lab1/client.java | 202 ++++++++++++++++++++++++++++++++++++---- lab1/msg_list.c | 6 +- lab1/msg_list.h | 3 +- lab1/server.c | 197 +++++++++++++++++++++++++++++++-------- lab1/server.h | 2 +- lab1/test.c | 8 +- lab1/user_list.c | 70 +++++++++++--- lab1/user_list.h | 13 +-- 11 files changed, 413 insertions(+), 88 deletions(-) create mode 100644 lab1/ServerThread.class diff --git a/lab1/ServerThread.class b/lab1/ServerThread.class new file mode 100644 index 0000000000000000000000000000000000000000..269f89c767349d26ecc8e4c7af940d9b691265d9 GIT binary patch literal 2431 zcmaJ?Sxj7282--BF!yq~EDoKvK$oFnWhr25rFG~c%e2KZ(9R%AX^WTP7N!g{bmmT5 zy4c0qYFy%O>Qa*?78^}WjU9|6CcgUMi@um>V&bET4}EBY>EeIx%#?wkz&Yo?=ik2n zJO4TSc<;OK0X&YEH4wHdcuKCV1*k=vl-i}#Q2-xysMx7t7dqwk(;9Z8OMzcQH+nSa z*rQ;th7xR-9{~kH4KDfNLa&^jkyD?FXQj<^D*ENRPsMm6dk&G$`3s52?u&nE_anxvvnpRWLj2|`Q!B}X_v|0p|p-4D7X2u0v zX`6@<9ck(vjhn_WtDRfI(Xh2mAg`vjPr%V08#V<>y24SjJ2^gN#(RyS2=C-4EF*3S zRMh-OCfj=~9EotKcrq$b6ts-cnBSPNBQTc=4l_s048!Jf1hil*84sB|!ZJZ&C=xcK zR->##MPgE zw?;us#{`b(h$ErE(vieb=FLtKjx}`{meCoVNLoRQnHguSI*#GE%s4p@3F|qijuSYU zb+-|w_uG=;$gmmLaSEs9^n#8vI4e*+5cCE5e1XB)Qf#{o}+C*W)Mb@ur>JncPx ze`|M#*Q4Vc&I{;4Uw6l#-xmzF?)2$+5f>zx*}cKm_T2(%M(yDf^y~=q_*oEM9tBK4 zn`S&bb7py-p4~cLlDwA9@#;GsGAFEXjOiwv4tvf`VIGZ;8Uc0tQiyNLVT${`~F=0meGBhk!RSy1n{l!UE)U@Z8w@|HGvGkU} zd>%4{F_cjwF`B;a45gEym`9REB(Z?to}t5L$ZDzG$8SI=5=$`hc~Gl2@gMB#1Ad;FJEDn+T^9?)xm@BJ_H_PX(g|M*ZjI^h#M>jtmoM&Hz~;T27as4 zrd!!nhAgj}0rj(e-c2~_zJVjf-t{-(oO5@{EHnU}_M?mrU^yM+Al&AeP>mc&W-YE0 z9OG*!E;WUMIsanhvHvjg$wUzyV%sOOzIhv1SIFAc-$LsWehHxd8kO?w&zO|1?Uyj)oK-YR-4(Uq;0YT)bCS&Zw8T^WRRvox)PD!=3-({ofc!M(tY0 zYTJgj3@sbUS?=&E)U1{(DJ=hjD*!h0pdTv!nB=wID7__Ftt?ku9L82lwG8$^YT#r>;Wu-^VghkRWh8Ncg=&C ze69~q-7D?RF?)oS9Di*(DNB#mrBE|<_pcjFXtB60X8B(^**$#~HOzPf4jPA(Vko8r zmQoUH=osqh1lH3@_~|qPbOsSRizJ=LFLVLF(?$GAmvEn65e|A)X!M#`ORtN1dP8ia zH-(qp5`FZJ7@&8>1$s|hq4&i#`aoQ#kHlB>v6!Y$#7}fZ{7j#UTXa?2rt4ysJ`?{C zw=GT4GWwh<={l{VFVW0Ruoq=_;Z(3m!REWDR`8?(?;TW$d+26~|3ryiaR(|(RgS7V hD3Zb~0!5XxSaqN8Zk~dcv_FJ`E!9lLRt`+q_AevZHu(Sm literal 0 HcmV?d00001 diff --git a/lab1/client$RC.class b/lab1/client$RC.class index 4c0767fbe00cc189a2dc347483eb033f88ccbbc3..63169581de25605b3a7a1d44da23d2f59ac1a480 100644 GIT binary patch delta 43 wcmeyu_JwUj1rsCRvdkPIP^OybOhhmW?l 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 X>Mh15xANqq-xh@b$-WSuUo!S@ESQg* literal 7198 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 Hf68A0cs9X| diff --git a/lab1/client.java b/lab1/client.java index 7fdd816..e5271b9 100644 --- a/lab1/client.java +++ b/lab1/client.java @@ -1,6 +1,7 @@ import java.io.*; import gnu.getopt.Getopt; import java.net.Socket; +import java.net.ServerSocket; class client { @@ -20,6 +21,10 @@ private static enum RC { private static String _server = null; private static int _port = -1; + /* Controls the user bound to the client when executing a CONNECT command */ + private static String connected_user = null; + /* Instantiate and prepare an empty ServerThread for further connection */ + private static ServerThread server_thread = new ServerThread(); /********************* METHODS ********************/ @@ -54,7 +59,7 @@ static RC register(String user) out.write('\0'); //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case - Byte response = in.readByte(); + byte response = in.readByte(); System.out.println("Response is: " + response); @@ -114,7 +119,7 @@ static RC unregister(String user) out.write('\0'); //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - Byte response = in.readByte(); + byte response = in.readByte(); System.out.println("Response is: " + response); @@ -126,6 +131,20 @@ static RC unregister(String user) //Decode the response from the server switch(response){ case 0: + /* If we try to unregister the user that is currently bound and connected + to the client, it is unbound from the client */ + if(connected_user != null){ + /* This protects against null pointer exception when a CONNECT command is executed and + the server marks the user as connected, but then the client is terminated without + executing DISCONNECT from the server */ + if(connected_user.equals(user)){ + connected_user = null; + /* If the unregister also disconnect a user linked to the client (connected and with a + server thread running, kill also the running thread*/ + server_thread.kill(); + } + } + System.out.println("c> UNREGISTER OK"); return RC.OK; case 1: @@ -153,11 +172,18 @@ static RC unregister(String user) * @return ERROR if another error occurred */ static RC connect(String user) - { + { + /////////////////////////////////////////////// /////////////// PROTOCOL /////////////// /////////////////////////////////////////////// try{ + /* Before trying to connect, if a user is already connected, quit the function with RC.ERROR */ + if(connected_user != null){ + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + //1. Connect to the server, using the IP and port passed in the command line Socket sc = new Socket(_server, _port); @@ -172,17 +198,25 @@ static RC connect(String user) //3. A string of characters is sent with the user to be connected out.writeBytes(user); out.write('\0'); - ServerSocket + + /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum + number of queued requests */ + ServerSocket sock = new ServerSocket(0, 10); + /* Get the port at which the socket is listening */ + int port = sock.getLocalPort(); + + System.out.println("Asigned port number: " + port); + //4. A string is sent with the port number listening in the client - out.writeBytes("400"); + out.writeBytes(String.valueOf(port)); out.write('\0'); - //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - Byte response = in.readByte(); + //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); System.out.println("Response is: " + response); - //5. Close connection + //6. Close connection sc.close(); out.close(); in.close(); @@ -191,6 +225,10 @@ static RC connect(String user) switch(response){ case 0: /* Start a new thread where */ + server_thread.start(sock); + //server_thread = new ServerThread(sock).start(); + /* Bind the user to the client */ + connected_user = user; System.out.println("c> CONNECT OK"); return RC.OK; case 1: @@ -217,8 +255,7 @@ static RC connect(String user) * @param user - User name to disconnect from the system * * @return OK if successful - * @return USER_ERROR if the user does not exist - * @return USER_CONNECT_ERROR if it is already disconnected + * @return USER_ERROR if the user does not exist or if it is already disconnected * @return ERROR if another error occurred */ static RC disconnect(String user) @@ -227,6 +264,17 @@ static RC disconnect(String user) /////////////// PROTOCOL /////////////// /////////////////////////////////////////////// try{ + /* Check if is trying to disconnect a user that is not connected. Exit with RC.ERROR if it does */ + if(connected_user != null){ + /* This protects against null pointer exception when a CONNECT command is executed and + the server marks the user as connected, but then the client is terminated without + executing DISCONNECT from the server */ + if(!connected_user.equals(user)){ + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + } + //1. Connect to the server, using the IP and port passed in the command line Socket sc = new Socket(_server, _port); @@ -243,7 +291,7 @@ static RC disconnect(String user) out.write('\0'); //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - Byte response = in.readByte(); + byte response = in.readByte(); System.out.println("Response is: " + response); @@ -255,6 +303,9 @@ static RC disconnect(String user) //Decode the response from the server switch(response){ case 0: + /* Unbind the user from the client. We need to check if the */ + if(connected_user != null) connected_user = null; + server_thread.kill(); System.out.println("c> DISCONNECT OK"); return RC.OK; case 1: @@ -291,6 +342,11 @@ static RC send(String user, String message) /////////////// PROTOCOL /////////////// /////////////////////////////////////////////// try{ + /* If there is not a user connected in the client, return error RC.ERROR */ + if(connected_user == null){ + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } //1. Connect to the server, using the IP and port passed in the command line Socket sc = new Socket(_server, _port); @@ -304,31 +360,39 @@ static RC send(String user, String message) out.write('\0'); //Insert ASCII 0 at the end //3. A string of characters is sent with the user that sends the message - //out.writeBytes(connected_user); + out.writeBytes(connected_user); out.write('\0'); //4. A string of characters is sent with the user that receives the message + System.out.println("Usuario es: " + user); out.writeBytes(user); out.write('\0'); //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent + + System.out.println("Mensaje es: " + message); + System.out.println("Mensaje cortado es: " + trimMessage(message)); out.writeBytes(trimMessage(message)); //Sends a string of 255 characters out.write('\0'); //6. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - Byte response = in.readByte(); + byte response = in.readByte(); System.out.println("Response is: " + response); String msg_id = new String(); /* If response is 0 (OK), prepare to read the ID of the message */ if(response == 0){ + /* Create BufferedReader for easy reading a string */ + /* BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); - msg_id = inString.readLine(); + msg_id = inString.readLine();*/ + byte ch; - //Close the BufferedReader - inString.close(); + while ((ch = in.readByte()) != 0){ + msg_id = msg_id + ((char)ch); + } } //7. Close connection @@ -426,7 +490,8 @@ else if (line[0].equals("DISCONNECT")) { else if (line[0].equals("SEND")) { if (line.length >= 3) { // Remove first two words - String message = input.substring(input.indexOf(' ')+1).substring(input.indexOf(' ')+1); + String message = input.substring(input.indexOf(' ')+1); + message = message.substring(message.indexOf(' ')+1); send(line[1], message); // userName = line[1] } else { System.out.println("Syntax error. Usage: SEND "); @@ -513,11 +578,108 @@ public static void main(String[] argv) usage(); return; } - - //byte[] prueba = "heyeheyheyeh"; - //System.out.println("Prueba: " + prueba); + + char a = '0'; + System.out.println("a: " + a); + byte b = (byte) a; + System.out.println("b: " + b); + char c = (char) b; + boolean t = c == '\0'; + System.out.println("Equal? " + t); shell(); System.out.println("+++ FINISHED +++"); } } + +class ServerThread extends Thread{ + private ServerSocket sc; + private volatile Thread blinker; + + /** + * @brief Starts the server thread and initializes the ServerSocket property + */ + public void start(ServerSocket sc){ + blinker = new Thread(this); + blinker.start(); + this.sc = sc; + } + + /** + * @brief Destroys the server thread + */ + public void kill(){ + blinker = null; + System.out.println("Server thread is dying... :("); + } + + /** + * @brief Main execution code sequence of the server thread. Listens to incoming connections + */ + public void run(){ + Thread thisThread = Thread.currentThread(); + Socket sd = null; + + while(blinker == thisThread){ + try{ + /* Waiting for connection */ + + sd = this.sc.accept(); + + DataInputStream msg_in = new DataInputStream(sd.getInputStream()); + + String operation = new String(); + byte ch; + do{ + ch = msg_in.readByte(); + if (ch != 0) operation = operation + ((char) ch); + + } while(ch != 0); + + System.out.println("[SERVER_THREAD] - RECEIVED COMMAND: " + operation); + String id = new String(); + + switch(operation){ + case "SEND_MESSAGE": + String sender = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) sender = sender + ((char) ch); + + } while(ch != 0); + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + String msg = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) msg = msg + ((char) ch); + + } while(ch != 0); + System.out.println("MESSAGE " + id + " FROM " + sender + ":"); + System.out.println("\t" + msg); + System.out.println("END"); + break; + + case "SEND_MESS_ACK": + do{ + ch = msg_in.readByte(); + if (ch != 0) break; + id = id + ((char) ch); + } while(ch != 0); + System.out.println("SEND MESSAGE " + id + " OK"); + break; + } + sd.close(); + + } + catch(Exception e){ + System.out.println("Exception: " + e); + e.printStackTrace(); + this.kill(); + } + } + + } +} diff --git a/lab1/msg_list.c b/lab1/msg_list.c index 4484c2f..72a030a 100644 --- a/lab1/msg_list.c +++ b/lab1/msg_list.c @@ -6,12 +6,14 @@ /* Returns 1 if already registered; 0 if registered correctly */ -void enqueueMsg(struct msg **head, char * message, unsigned int id){ +void enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender){ struct msg *temp; //Allocate the space for the new message and temp = (struct msg *) malloc(sizeof(struct msg)); strcpy(temp->body, message); + strcpy(temp->sender, sender); temp->id = id; + temp->next = NULL; if (*head == NULL){ //If list is empty temp->next = *head; @@ -19,11 +21,11 @@ void enqueueMsg(struct msg **head, char * message, unsigned int id){ } else{ struct msg *last = *head; + while(last->next != NULL){ last = last->next; } last->next = temp; - temp->next = NULL; } } diff --git a/lab1/msg_list.h b/lab1/msg_list.h index 1320b12..acd1900 100644 --- a/lab1/msg_list.h +++ b/lab1/msg_list.h @@ -2,12 +2,13 @@ struct msg{ char body[MAX_MSG]; + char sender[256]; unsigned int id; struct msg *next; }; unsigned int last_msg_id; -void enqueueMsg(struct msg **head, char * msg, unsigned int id); +void enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender); void removeMsg(struct msg ** head); void printMsgs(struct msg ** head); diff --git a/lab1/server.c b/lab1/server.c index 9a31c00..f26a1e8 100644 --- a/lab1/server.c +++ b/lab1/server.c @@ -27,8 +27,6 @@ int main(int argc, char * argv[]){ int val; int server_port; struct hostent *hp; - /* Set the variable that controls the first user registered in the system */ - first_user = TRUE; /* Check command */ @@ -146,7 +144,7 @@ int main(int argc, char * argv[]){ void * manageRequest(int *sd){ int s_local; - char operation_buff[MAX_OP]; + char operation_buff[MAX_COMMAND]; char user_buff[MAX_USERNAME]; char msg_buff[MAX_MSG]; int n; @@ -161,7 +159,7 @@ void * manageRequest(int *sd){ pthread_mutex_unlock(&socket_mtx); /* Read the operation */ - n = readLine(s_local, operation_buff, MAX_OP); + n = readLine(s_local, operation_buff, MAX_COMMAND); if(n == -1){ perror("[SERVER_THREAD]: Error when reading from the socket"); close(s_local); @@ -217,25 +215,6 @@ void * manageRequest(int *sd){ goto respond_to_client; //Send error 2 to client and close socket } - /* - char client_ip[16]; - inet_ntop(AF_INET, &client_addr_local.sin_addr, client_ip, sizeof(client_ip)); - */ - /* - struct in_addr in; - - hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); - - char **p; - - for (p = hp->h_addr_list; *p != 0; p++){ - memcpy(&in.s_addr, *p, sizeof(in.s_addr)); - printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); - } - */ - - - //client_port = client_addr_local.sin_port; printf("\nIP OF THE CLIENT: %s", inet_ntoa(client_addr_local.sin_addr)); printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); @@ -262,41 +241,180 @@ void * manageRequest(int *sd){ pthread_mutex_unlock(&users_list_mtx); } else if(strcmp(operation_buff, "SEND") == 0){ - //LOGIC OF THE SEND - - /* As the print is different format is different from the other commands - it is performed in this section and the default print is skipped */ - switch(out){ - case 0: - //OK - break; - default: - //FAIL - break; - } + char dest_user_buff[MAX_USERNAME]; + //int client_socket; + printf("Receive sender: %s\n", user_buff); - m = readLine(s_local, user_buff, MAX_USERNAME); + m = readLine(s_local, dest_user_buff, MAX_USERNAME); if(m == -1){ perror("[SERVER_THREAD]: Error when reading from the socket\n"); close(s_local); //close socket in father exit(-1); } + toUpperCase(dest_user_buff); + printf("Receive receiver: %s\n", dest_user_buff); - m = readLine(s_local, msg_buff, MAX_MSG); + n = readLine(s_local, msg_buff, MAX_MSG); if(m == -1){ perror("[SERVER_THREAD]: Error when reading from the socket\n"); close(s_local); //close socket in father exit(-1); } - toUpperCase(user_buff); + printf("Receive message: %s\n", msg_buff); + + /* Check if one of the two users is not registered */ + pthread_mutex_lock(&users_list_mtx); + if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ + pthread_mutex_unlock(&users_list_mtx); + out = 1; //Send code 1 to the client + goto respond_to_client; + } + pthread_mutex_unlock(&users_list_mtx); + + /* Check the status of the destination user */ + pthread_mutex_lock(&users_list_mtx); + char status = isConnected(dest_user_buff); + unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message + pthread_mutex_unlock(&users_list_mtx); + printf("Last ID is: %d\n", last_id); + printf("Status is: %d\n", status); + if(status == 0){ //Not connected + /* Store the message */ + pthread_mutex_lock(&users_list_mtx); + storeMsg(dest_user_buff, msg_buff, last_id, user_buff); + pthread_mutex_unlock(&users_list_mtx); + + fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", last_id, + user_buff, dest_user_buff); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + out = 0; + send_msg(s_local, &out, sizeof(out)); + + char id_string[11]; + sprintf(id_string, "%d", last_id); + send_msg(s_local, id_string, sizeof(id_string)); + + goto destroy_thread; + }else if(status == 1){ + /* Open 2 connections. One for the destination user to send the message + and another for the origin user to acknowledge that the message has been + sent successfully */ + int s_origin_client, s_dest_client; + struct sockaddr_in origin_addr, dest_addr; + struct hostent *origin_hp, *dest_hp; + + s_dest_client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_dest_client == -1){ + out = 2; + send_msg(s_local, &out, sizeof(out)); + goto destroy_thread; + } + + bzero((char *) &dest_addr, sizeof(dest_addr)); + + pthread_mutex_lock(&users_list_mtx); + dest_hp = gethostbyname(getUserIP(dest_user_buff)); + pthread_mutex_unlock(&users_list_mtx); + + memcpy(&(dest_addr.sin_addr), dest_hp->h_addr, dest_hp->h_length); + dest_addr.sin_family = AF_INET; + pthread_mutex_lock(&users_list_mtx); + dest_addr.sin_port = htons(getUserPort(dest_user_buff)); + pthread_mutex_unlock(&users_list_mtx); + + if (connect(s_dest_client, (struct sockaddr *) &dest_addr, sizeof(dest_addr)) == -1){ + /* If the connection with the receiver fails, assume the client + to be disconnected, disconnect it and store the message */ + pthread_mutex_lock(&users_list_mtx); + disconnectUser(dest_user_buff, getUserIP(dest_user_buff)); // No need to check for output + storeMsg(dest_user_buff, msg_buff, last_id, user_buff); + pthread_mutex_unlock(&users_list_mtx); + + fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", last_id, + user_buff, dest_user_buff); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + out = 0; + send_msg(s_local, &out, sizeof(out)); + + char id_string[11]; + sprintf(id_string, "%d", last_id); + send_msg(s_local, id_string, sizeof(id_string)); + goto destroy_thread; + } + + char op[13]; + strcpy(op, "SEND_MESSAGE"); + + send_msg(s_dest_client, op, sizeof(op)); + send_msg(s_dest_client, user_buff, MAX_USERNAME); + /* Send the identifier of the message */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + printf("ID STRING AFTER CONVERSION IS: %s\n", id_string); + send_msg(s_dest_client, id_string, sizeof(id_string)); + send_msg(s_dest_client, msg_buff, MAX_MSG); + + close(s_dest_client); + + /*IF NO ERRORS, SEND ACK BACK TO SENDER*/ + fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", last_id, + user_buff, dest_user_buff); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + out = 0; + send_msg(s_local, &out, sizeof(out)); + + //sprintf(id_string, "%d", last_id); + send_msg(s_local, id_string, sizeof(id_string)); + + s_origin_client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + //CHECK FOR ERROR AND SEND ERROR TO CLIENT + + char ack_op[17]; + strcpy(ack_op, "SEND_MESS_ACK"); + + bzero((char *) &origin_addr, sizeof(origin_addr)); + + pthread_mutex_lock(&users_list_mtx); + origin_hp = gethostbyname(getUserIP(user_buff)); + pthread_mutex_unlock(&users_list_mtx); + memcpy(&(origin_addr.sin_addr), origin_hp->h_addr, origin_hp->h_length); + origin_addr.sin_family = AF_INET; + pthread_mutex_lock(&users_list_mtx); + origin_addr.sin_port = htons(getUserPort(user_buff)); + pthread_mutex_unlock(&users_list_mtx); + + connect(s_origin_client, (struct sockaddr *) &origin_addr, sizeof(origin_addr)); + int s = send_msg(s_origin_client, ack_op, sizeof(ack_op)); + printf("Number of bytes sent ack_op: %d\n", s); + s = send_msg(s_origin_client, id_string, sizeof(id_string)); + printf("Number of bytes sent id_string: %d\n", s); + + close(s_origin_client); + goto destroy_thread; + } + char prueba[11]; strcpy(prueba,"4294967295"); out = 0; send_msg(s_local, &out, sizeof(out)); send_msg(s_local, prueba, sizeof(prueba)); + /* As the print is different format is different from the other commands + it is performed in this section and the default print is skipped */ + switch(out){ + case 0: + //OK + break; + default: + //FAIL + break; + } + goto destroy_thread; //Skips the default print below } @@ -330,10 +448,13 @@ void * manageRequest(int *sd){ send_msg(s_local, &out, sizeof(out)); destroy_thread: + printf("COMPROBANDO CHECKPOINT 4\n"); if(close(s_local) == -1){ perror("[SERVER_THREAD]: Error when closing the socket in the thread"); exit(-1); } + printf("COMPROBANDO CHECKPOINT 1\n"); + printf("Destroying thread...!\n"); pthread_exit(NULL); } diff --git a/lab1/server.h b/lab1/server.h index ba35184..64e7b7f 100644 --- a/lab1/server.h +++ b/lab1/server.h @@ -1,4 +1,4 @@ -#define MAX_OP 11 +#define MAX_COMMAND 11 /* Mutex & Threads */ pthread_mutex_t socket_mtx; diff --git a/lab1/test.c b/lab1/test.c index e495034..f0a11fc 100644 --- a/lab1/test.c +++ b/lab1/test.c @@ -9,12 +9,6 @@ int main(void){ char line[MAX_MSG]; - char * ip; - ip = (char *) malloc(sizeof(char)*2); - //ip = "DISCONNECT"; - strcpy(ip, "DISCONNECT"); - printf("String: %s\n", ip); - printf("Size: %d\n", sizeof(*ip)); //struct user * user_head = (struct user *) malloc(sizeof(struct user)); while(1){ @@ -60,7 +54,7 @@ int main(void){ char msg[MAX_MSG]; strcpy(msg, line); printf("Going to send to %s the msg %s", user, msg); - appendMsg(user, msg); + //appendMsg(user, msg); printPendMsgs(user); } else if(strcmp(line, "6") == 0){ diff --git a/lab1/user_list.c b/lab1/user_list.c index 0d80fe9..ea8404f 100644 --- a/lab1/user_list.c +++ b/lab1/user_list.c @@ -35,13 +35,9 @@ char registerUser(char * username){ temp->port = 0; temp->pend_msgs_head = NULL; temp->next = NULL; + temp->last_id = 0; if (user_head == NULL){ //If list is empty - /*Initialize the last assigned ID to a message if is the first user to register*/ - if(first_user){ - last_msg_id = 0; - first_user = FALSE; - } temp->next = user_head; user_head = temp; } @@ -149,14 +145,14 @@ void printUsers(){ } } -void appendMsg(char * username, char* msg){ +void storeMsg(char * username, char* msg, unsigned int msg_id, char * sender){ struct user *temp = user_head; /* Iterate over the list */ while(temp != NULL){ if(strcmp(temp->username, username) == 0){ //User found //Enqueue message - enqueueMsg(&(temp->pend_msgs_head), msg, updateLastID()); + enqueueMsg(&(temp->pend_msgs_head), msg, msg_id, sender); return; } temp = temp->next; @@ -165,13 +161,23 @@ void appendMsg(char * username, char* msg){ return; } -unsigned int updateLastID(){ - //Increment the ID in 1 - last_msg_id = last_msg_id+1; - //If it results in 0, then the maximum representable number is overflown - if(last_msg_id == 0) last_msg_id = 1; +unsigned int updateLastID(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Increment the ID in 1 + temp->last_id = temp->last_id+1; + //If it results in 0, then the maximum representable number is overflown + if(temp->last_id == 0) temp->last_id = 1; - return last_msg_id; + return temp->last_id; + } + temp = temp->next; + } + + return 0; } void printPendMsgs(char * username){ @@ -198,3 +204,41 @@ void removePendMsg(char * username){ } } +char isConnected(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->status; //Returns 0 if OFF, 1 if ON + } + temp = temp->next; + } + /* Return error 2 if we reach this point. No user was found */ + return 2; +} + +char * getUserIP(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->ip; //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + +uint16_t getUserPort(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->port; //Returns the IP of the user + } + temp = temp->next; + } + return 0; +} + + diff --git a/lab1/user_list.h b/lab1/user_list.h index ad01d3a..fe7ee69 100644 --- a/lab1/user_list.h +++ b/lab1/user_list.h @@ -9,18 +9,19 @@ struct user{ uint16_t port; struct msg *pend_msgs_head; struct user *next; + unsigned int last_id; } *user_head; -int first_user; - - char isRegistered(char * username); char registerUser(char * username); char unregisterUser(char * username); char connectUser(char * username, char * ip, uint16_t port); char disconnectUser(char * username, char * used_ip); -void appendMsg(char * username, char* msg); -unsigned int updateLastID(); +void storeMsg(char * username, char* msg, unsigned int msg_id, char * sender); +unsigned int updateLastID(char * username); void printPendMsgs(char * username); void printUsers(); -void removePendMsg(char * username); \ No newline at end of file +void removePendMsg(char * username); +char isConnected(char * username); +char * getUserIP(char * username); +uint16_t getUserPort(char * username); \ No newline at end of file From 33ac1524c8cd9a060572f2d8d4a8727f8818cbf3 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Sat, 8 Apr 2017 23:47:56 +0200 Subject: [PATCH 09/17] CGP: Stable client and server versions. Pending get the IP of the server interface. Pending exhaustive error handling. --- lab1/DECISION MAKING POINTS.txt | 6 + lab1/ServerThread.class | Bin 2431 -> 2354 bytes lab1/client$1.class | Bin 608 -> 521 bytes lab1/client.class | Bin 8046 -> 7709 bytes lab1/client.java | 90 ++++---- lab1/msg_list.c | 37 +++- lab1/msg_list.h | 7 +- lab1/read_line.c | 20 -- lab1/server.c | 370 ++++++++++++++++++-------------- lab1/server.h | 7 +- lab1/servidor/server.c | 22 +- lab1/servidor/server.h | 2 +- lab1/user_list.c | 25 ++- lab1/user_list.h | 5 +- 14 files changed, 328 insertions(+), 263 deletions(-) diff --git a/lab1/DECISION MAKING POINTS.txt b/lab1/DECISION MAKING POINTS.txt index b0f4735..876d71c 100644 --- a/lab1/DECISION MAKING POINTS.txt +++ b/lab1/DECISION MAKING POINTS.txt @@ -34,3 +34,9 @@ char name[2]; strcpy(name, "FRANCISCOJAVIERGARCIABLAS"); Y NO DAR NINGUN ERROR?? + +-IN THE PRACTICE, WE CONSIDERED THAT WHEN THE CLIENT SENDS A MESAGE AND THE SERVER RESPONDS OK, IT MEANS THAT THE MESSAGE WAS CORRECTLY RECEIVED BY THE SERVER (THIS IS IT ) + +-ALL USERNAMES ARE UPPERCASED + +-THE SERVER DOES NOT DEAL WITH ERRORS OCCURRED DURING THE TRANSMISSION OF THE ACK, I.E. THE CONNECTION TO THE SENDER COULD NOT HAPPEN. THE TRANSMISSION OF MESSAGES IN THE SERVER IS DONE IS SUCH A WAY THAT IF A USER RECEIVES AN ACKNOWLEDGE FOR MESSAGE ID = X, THEN IT MEANS THAT ALL MESSAGES SENT TO THE SAME USER WITH LOWER ID WERE SUCCESSFULLY DELIVERED, BECAUSE EACH TIME A MESSAGE IS SENT OK TO A RECEIVER, THE CORRESPONDING ACK IS SENT TO THE SENDER WITH THE ID OF THE MESSAGE, INDEPENDENTLY IF THE ACK WAS CORRECTLY SENT OR NOT diff --git a/lab1/ServerThread.class b/lab1/ServerThread.class index 269f89c767349d26ecc8e4c7af940d9b691265d9..81d4ba5c36bfd05134e8731ee08dd30773cc04da 100644 GIT binary patch delta 1243 zcmZuv-&0jp6#mw_=eHX!9=pULgbP_AXkKCN`#W>HT;oU zQ^^@Cs;8!jhi015^x#CJ<5M&J3-!mT_G(9v^6WH2UabW0Suf5jZ-}=_K*V;Gy z^S<}v+;^7&JcLtcyo$UBMvI3H*l45G!zOI@;G)gO77q$dI>^{)_Yl`X939$h)uvMe zx*TNn{*;4lE}q6S4z@e!cCf=k51w`KoP(VXdUf=?gPemGbdf$AFFJV11I5pLdBtdz za$!GZiWGKXw~axCJ=h!mK~>3p7*e<&uMJ>YhST z+E|;9P@FOo<^;;85tqY~z=*IsVU9=eBdkap3G>q%KhGyvfswX3(Z`*#*%%Sbs1NAjpy=gG>;LLf`O^so6c?%JiY z+(ok7f~^06$y*nww-%}Qmg4h)wv!8ePXKX}kVKU!YbdussihyJ2w;in$l1oI?%wp`KsHI_^h?2hhc@ zp@(08mGL2}xPF+N78`8bX9 z2|CNC=`((pruaSjp5LdR_yd~Z#&NpF6Lg)=(r^3`8~ial{0S?b;5dI?_+DG#&%(0t hsEx;FvC78dHq!s1n&$9e*yL82JF5RieVB7A{{vr`1494+ delta 1364 zcmZuvZA@Eb6n@U>ZSU>fEntz47KAc!5^&&jcC+dXp>@O2&b1RoU|0nw3m+2-lWlnC zhMUH15$i|h$4r*Eikg^BEk=?h{`H4{^oJ&znE2CViTkkx!-wZBRGFdad*1V&kLP{f z=iDpaWv}`D(zjOu+>2MI%}U#i2p%!8)5I>cnqWL?VmI1!L`}r7$ApE)bnG=zh=s}5f5Q|57H+6_FRYMwOEq4uW?bQ>Mxj2dqt`&6>YL77 z)uMu*?x(1&W5B{7h6t63zLD|1kwEJCk-lVapno*bJJCOMps}$r5USHLY~c`IurPvA z9VrWA7$=k+OpYg;`iGms$yBm+=+Iayk&^B~9S1EO#)}pjF+nKGl?^0^4m3$#KrI}> zQPrOQ%Td~6;TR^BdC7u}!n$8gHR z>GaPWPETt6UsgJjl)k2&qeObrxx?;+#a$@oZj|$W5VoR8?AZRED^#M6^8@hUO2fA9)3=u_vL#X_egGoWUIe{*+$X&ub?$t;$qodS!{^T!Rojx z3(qX$+X<6J_;(RlUk}OI?T8Z<$S z>0FIug7fg-`d|zAXIbQR)a985BvN zB6oIaL8HWwR@$Z-WvQP}mQv(e{v!7}l-)N`cIPOsQzkm7m)WaNbLHytxaK+y=1sWf z|D~u@QYcXGZOT(Dyj5aWlv$%$wMr|nT*h{*!3IRU4BGy?)s;bYeg>;d*Ao3@4PK4H z%U!%N59*fL-kw=1imfTTLz05OX@!q?ch+Z7m$4WByeyg)&<&bLtthR&tc$1<(FdUM zAY43*0v<&vk6|MpMgt$g7Cwq7Pa@7X2KYF}_ym69Dg4H#@CTp9GQUO|zfLBfp-p_2 z8u%P-g2a*ir=OS{EkhR_+6Ue_vs7%fM)qa`hhRdkNgo`=ZkcMXK0>3 zroUM}Ue0hCf5H_!!&Uq_fgan1BZ$dhoQA4OGk4w8j7BN#eny z2Y-}t3Iq={>CEi(d3WFG{``J^0jT3pM-=Ni(#VEkLqkr(CPVDfmUeK(pjN6643VZg z5De*-Eyew0+!tPt_Z{k}-b6Aay8*Xe+Wd9V)w}M*v&5|(A_>c}g$$0L`5UJ#ZlvY7 zzAcAs5sch{hAjizC>V%AGq8hQ14ZmJ#OJc|2?H36J1K?Nbhz&epCJ=&R&%%<)_NmP z@BulV^W=5RZSs__JhlF*Zs5_8jc^v7TbA(svT2$Oxk`1FB4%LwmP69-$`QKP4DwWENf@CFa3tzPCHG{`2?uHGsEx?cfpSZIn^5IeM&N)xv@Xi`qP~ z@YKRGVYU{0jk0jq5npOy97&bc{1%~bvP&p$aYjYiHlf&Pek2&Jq%R56`;n3dr z9*SPfnaLm%;V0I}F&{*5f@GYAawpRDi5uxRXX0EizpcVJ8AWQ)k=ZcmTX<$+#l>^f zT{xIQJ#)hV diff --git a/lab1/client.class b/lab1/client.class index 9c914a0ef0bdb4b474109c4653153a65fdd38cfd..e011ec61794045ff15a040838720a5a08ee4258e 100644 GIT binary patch literal 7709 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 X>Mh15xANqq-xh@b$-WSuUo!S@ESQg* diff --git a/lab1/client.java b/lab1/client.java index e5271b9..ea74fd3 100644 --- a/lab1/client.java +++ b/lab1/client.java @@ -52,17 +52,15 @@ static RC register(String user) //2. The string "REGISTER" is sent indicating the operation String operation = new String("REGISTER"); out.writeBytes(operation); - out.write('\0'); //Insert ASCII 0 at the end + out.write(0); //Insert ASCII 0 at the end //3. A string of characters is sent with the user to be registered out.writeBytes(user); - out.write('\0'); + out.write(0); //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case byte response = in.readByte(); - System.out.println("Response is: " + response); - //5. Close connection sc.close(); out.close(); @@ -112,17 +110,15 @@ static RC unregister(String user) //2. The string "UNREGISTER" is sent indicating the operation String operation = new String("UNREGISTER"); out.writeBytes(operation); - out.write('\0'); //Insert ASCII 0 at the end + out.write(0); //Insert ASCII 0 at the end //3. A string of characters is sent with the user to be unregistered out.writeBytes(user); - out.write('\0'); + out.write(0); //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case byte response = in.readByte(); - System.out.println("Response is: " + response); - //5. Close connection sc.close(); out.close(); @@ -193,11 +189,11 @@ static RC connect(String user) //2. The string "CONNECT" is sent indicating the operation String operation = new String("CONNECT"); out.writeBytes(operation); - out.write('\0'); //Insert ASCII 0 at the end + out.write(0); //Insert ASCII 0 at the end //3. A string of characters is sent with the user to be connected out.writeBytes(user); - out.write('\0'); + out.write(0); /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum number of queued requests */ @@ -205,17 +201,13 @@ static RC connect(String user) /* Get the port at which the socket is listening */ int port = sock.getLocalPort(); - System.out.println("Asigned port number: " + port); - //4. A string is sent with the port number listening in the client out.writeBytes(String.valueOf(port)); - out.write('\0'); + out.write(0); //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case byte response = in.readByte(); - System.out.println("Response is: " + response); - //6. Close connection sc.close(); out.close(); @@ -264,16 +256,6 @@ static RC disconnect(String user) /////////////// PROTOCOL /////////////// /////////////////////////////////////////////// try{ - /* Check if is trying to disconnect a user that is not connected. Exit with RC.ERROR if it does */ - if(connected_user != null){ - /* This protects against null pointer exception when a CONNECT command is executed and - the server marks the user as connected, but then the client is terminated without - executing DISCONNECT from the server */ - if(!connected_user.equals(user)){ - System.out.println("c> DISCONNECT FAIL"); - return RC.ERROR; - } - } //1. Connect to the server, using the IP and port passed in the command line Socket sc = new Socket(_server, _port); @@ -284,17 +266,15 @@ static RC disconnect(String user) //2. The string "DISCONNECT" is sent indicating the operation String operation = new String("DISCONNECT"); out.writeBytes(operation); - out.write('\0'); //Insert ASCII 0 at the end + out.write(0); //Insert ASCII 0 at the end //3. A string of characters is sent with the user to be disconnected out.writeBytes(user); - out.write('\0'); + out.write(0); //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case byte response = in.readByte(); - System.out.println("Response is: " + response); - //5. Close connection sc.close(); out.close(); @@ -315,6 +295,8 @@ static RC disconnect(String user) System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); return RC.USER_ERROR; case 3: + /* In case of error in the disconnection process, stop the execution of the thread */ + server_thread.kill(); System.out.println("c> DISCONNECT FAIL"); return RC.ERROR; } @@ -324,6 +306,8 @@ static RC disconnect(String user) System.out.println("Exception: " + e); e.printStackTrace(); } + /* In case of error in the disconnection process, stop the execution of the thread */ + server_thread.kill(); System.out.println("c> DISCONNECT FAIL"); return RC.ERROR; } @@ -357,29 +341,24 @@ static RC send(String user, String message) //2. The string "SEND" is sent indicating the operation String operation = new String("SEND"); out.writeBytes(operation); - out.write('\0'); //Insert ASCII 0 at the end + out.write(0); //Insert ASCII 0 at the end //3. A string of characters is sent with the user that sends the message out.writeBytes(connected_user); - out.write('\0'); + out.write(0); //4. A string of characters is sent with the user that receives the message System.out.println("Usuario es: " + user); out.writeBytes(user); - out.write('\0'); + out.write(0); //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent - - System.out.println("Mensaje es: " + message); - System.out.println("Mensaje cortado es: " + trimMessage(message)); out.writeBytes(trimMessage(message)); //Sends a string of 255 characters - out.write('\0'); + out.write(0); //6. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case byte response = in.readByte(); - System.out.println("Response is: " + response); - String msg_id = new String(); /* If response is 0 (OK), prepare to read the ID of the message */ if(response == 0){ @@ -389,10 +368,10 @@ static RC send(String user, String message) BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); msg_id = inString.readLine();*/ byte ch; - - while ((ch = in.readByte()) != 0){ - msg_id = msg_id + ((char)ch); - } + do{ + ch = in.readByte(); + if (ch != 0) msg_id = msg_id + ((char) ch); + } while(ch != 0); } //7. Close connection @@ -579,13 +558,15 @@ public static void main(String[] argv) return; } - char a = '0'; - System.out.println("a: " + a); - byte b = (byte) a; - System.out.println("b: " + b); - char c = (char) b; - boolean t = c == '\0'; - System.out.println("Equal? " + t); + /* Creates a thread that catches Ctrl+C kill command from the CLI and disconnects from the server the + connected user of the client (bound to the client) */ + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() { + if(connected_user != null){ + disconnect(connected_user); + } + } + }); shell(); System.out.println("+++ FINISHED +++"); @@ -610,7 +591,6 @@ public void start(ServerSocket sc){ */ public void kill(){ blinker = null; - System.out.println("Server thread is dying... :("); } /** @@ -636,7 +616,6 @@ public void run(){ } while(ch != 0); - System.out.println("[SERVER_THREAD] - RECEIVED COMMAND: " + operation); String id = new String(); switch(operation){ @@ -647,28 +626,33 @@ public void run(){ if (ch != 0) sender = sender + ((char) ch); } while(ch != 0); + do{ ch = msg_in.readByte(); if (ch != 0) id = id + ((char) ch); } while(ch != 0); + String msg = new String(); do{ ch = msg_in.readByte(); if (ch != 0) msg = msg + ((char) ch); } while(ch != 0); + System.out.println("MESSAGE " + id + " FROM " + sender + ":"); System.out.println("\t" + msg); System.out.println("END"); + System.out.print("c> "); break; case "SEND_MESS_ACK": do{ ch = msg_in.readByte(); - if (ch != 0) break; - id = id + ((char) ch); + if (ch != 0) id = id + ((char) ch); } while(ch != 0); + System.out.println("SEND MESSAGE " + id + " OK"); + System.out.print("c> "); break; } sd.close(); diff --git a/lab1/msg_list.c b/lab1/msg_list.c index 72a030a..ba8c7bc 100644 --- a/lab1/msg_list.c +++ b/lab1/msg_list.c @@ -5,28 +5,45 @@ #include "msg_list.h" -/* Returns 1 if already registered; 0 if registered correctly */ -void enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender){ +/* Returns 0 if the message is stored- -1 if malloc error */ +int enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender){ struct msg *temp; //Allocate the space for the new message and temp = (struct msg *) malloc(sizeof(struct msg)); + if(temp == NULL) return -1; strcpy(temp->body, message); strcpy(temp->sender, sender); temp->id = id; temp->next = NULL; if (*head == NULL){ //If list is empty + printf("Antes de insertar, la lista esta vacia!\n"); temp->next = *head; *head = temp; } else{ struct msg *last = *head; - + printf("Llegando al final de la lista de mensajes...\n"); while(last->next != NULL){ last = last->next; } last->next = temp; + printf("Hemos llegado al final de la lista!\n"); } + return 0; +} +/* Deletes the message at the head of the queue and +returns the new head of the list */ +struct msg * dequeueMsg(struct msg **head){ + struct msg* temp = *head; + //Head pointing to the next element + *head = temp->next; + //Free the resources of the first message + + free(temp); + if(*head == NULL) printf("Hemos vaciado la lista!\n"); + + return *head; } /* Deletes the message at the head of the queue */ @@ -39,6 +56,19 @@ void removeMsg(struct msg ** head){ return; } +/* Deletes the message at the head of the queue */ +void deleteAllMsgs(struct msg ** head){ + struct msg *temp = *head; + while(temp != NULL){ + //Head pointing to the next element + *head = temp->next; + //Free the resources of the first message + free(temp); + temp = *head; + } + return; +} + void printMsgs(struct msg ** head){ printf("INSIDE THE PRINT MSGS FUNCTION!\n"); struct msg *temp = *head; @@ -55,3 +85,4 @@ void printMsgs(struct msg ** head){ return; } + diff --git a/lab1/msg_list.h b/lab1/msg_list.h index acd1900..da86c39 100644 --- a/lab1/msg_list.h +++ b/lab1/msg_list.h @@ -7,8 +7,9 @@ struct msg{ struct msg *next; }; -unsigned int last_msg_id; - -void enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender); +int enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender); +void deleteAllMsgs(struct msg ** head); void removeMsg(struct msg ** head); void printMsgs(struct msg ** head); +struct msg * dequeueMsg(struct msg **head); + diff --git a/lab1/read_line.c b/lab1/read_line.c index 967be93..c2038c3 100644 --- a/lab1/read_line.c +++ b/lab1/read_line.c @@ -22,26 +22,6 @@ int send_msg(int socket, char *message, int length) return(0); /* success */ } -int recv_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = recv(socket, message, l, 0); - l = l -r ; /* Pending data to receive */ - message = message + r; - } while ((l>0) && (r>=0)); /* We check the return value in case all the data was not received */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - - - ssize_t readLine(int fd, void *buffer, size_t n) { ssize_t numRead; /* num of bytes fetched by last read() */ diff --git a/lab1/server.c b/lab1/server.c index f26a1e8..aa34338 100644 --- a/lab1/server.c +++ b/lab1/server.c @@ -49,7 +49,7 @@ int main(int argc, char * argv[]){ perror("[SERVER]: Error when initializing the mutex"); exit(-1); } - if(pthread_mutex_init(&users_list_mtx, NULL) != 0) { + if(pthread_mutex_init(&list_mtx, NULL) != 0) { perror("[SERVER]: Error when initializing the mutex"); exit(-1); } @@ -96,12 +96,6 @@ int main(int argc, char * argv[]){ printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); } - /* Initial prompt */ - /* - char servername[16]; - inet_ntop(AF_INET, &server_addr.sin_addr, servername, sizeof(servername)); - printf("Client Adress = %s\n", servername); - */ printf("s> init server %s:%d\n", inet_ntoa(server_addr.sin_addr), ntohs(server_addr.sin_port)); if(listen(sd, 5) == -1){ @@ -179,16 +173,16 @@ void * manageRequest(int *sd){ /* Check the operation */ if (strcmp(operation_buff, "REGISTER") == 0){ /* Register the user */ - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); out = registerUser(user_buff); - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); } else if (strcmp(operation_buff, "UNREGISTER") == 0){ /* Unregister the user */ - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); out = unregisterUser(user_buff); - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); } else if(strcmp(operation_buff, "CONNECT") == 0){ @@ -219,9 +213,40 @@ void * manageRequest(int *sd){ printf("\nIP OF THE CLIENT: %s", inet_ntoa(client_addr_local.sin_addr)); printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); + + /* If result is 0, then heck for the pending messages and send them */ + if(out == 0){ + /* Send Pending Messages */ + pthread_mutex_lock(&list_mtx); + struct msg **pend_msg = getPendMsgHead(user_buff); + while(*pend_msg != NULL){ + pthread_mutex_unlock(&list_mtx); + char sender[MAX_USERNAME]; + char msg_body[MAX_MSG]; + + pthread_mutex_lock(&list_mtx); + strcpy(sender, (*pend_msg)->sender); + int msg_id = (*pend_msg)->id; + strcpy(msg_body, (*pend_msg)->body); + pthread_mutex_unlock(&list_mtx); + + /* Try to send the message. The 'stored' flag is set to 1 because the message + is already stored in the server */ + int err = sendMessage(sender, user_buff, msg_body, msg_id, 1); + + /* If the message could not be delivered, then exit the loop */ + if(err == 1) break; + sendAck(sender, msg_id); + + /* Remove the message from the pending message queue and iterate with the next message */ + pthread_mutex_lock(&list_mtx); + *pend_msg = dequeueMsg(&(*pend_msg)); + } + pthread_mutex_unlock(&list_mtx); + } } else if(strcmp(operation_buff, "DISCONNECT") == 0){ @@ -236,13 +261,12 @@ void * manageRequest(int *sd){ //Send error 2 to client and close socket } - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); } else if(strcmp(operation_buff, "SEND") == 0){ char dest_user_buff[MAX_USERNAME]; - //int client_socket; printf("Receive sender: %s\n", user_buff); m = readLine(s_local, dest_user_buff, MAX_USERNAME); @@ -265,157 +289,60 @@ void * manageRequest(int *sd){ printf("Receive message: %s\n", msg_buff); /* Check if one of the two users is not registered */ - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); out = 1; //Send code 1 to the client goto respond_to_client; } - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); /* Check the status of the destination user */ - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); char status = isConnected(dest_user_buff); unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message - pthread_mutex_unlock(&users_list_mtx); - printf("Last ID is: %d\n", last_id); - printf("Status is: %d\n", status); + pthread_mutex_unlock(&list_mtx); + if(status == 0){ //Not connected - /* Store the message */ - pthread_mutex_lock(&users_list_mtx); - storeMsg(dest_user_buff, msg_buff, last_id, user_buff); - pthread_mutex_unlock(&users_list_mtx); - - fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", last_id, - user_buff, dest_user_buff); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - out = 0; - send_msg(s_local, &out, sizeof(out)); - - char id_string[11]; - sprintf(id_string, "%d", last_id); - send_msg(s_local, id_string, sizeof(id_string)); - - goto destroy_thread; - }else if(status == 1){ - /* Open 2 connections. One for the destination user to send the message - and another for the origin user to acknowledge that the message has been - sent successfully */ - int s_origin_client, s_dest_client; - struct sockaddr_in origin_addr, dest_addr; - struct hostent *origin_hp, *dest_hp; - - s_dest_client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if(s_dest_client == -1){ - out = 2; - send_msg(s_local, &out, sizeof(out)); - goto destroy_thread; - } - - bzero((char *) &dest_addr, sizeof(dest_addr)); - - pthread_mutex_lock(&users_list_mtx); - dest_hp = gethostbyname(getUserIP(dest_user_buff)); - pthread_mutex_unlock(&users_list_mtx); - - memcpy(&(dest_addr.sin_addr), dest_hp->h_addr, dest_hp->h_length); - dest_addr.sin_family = AF_INET; - pthread_mutex_lock(&users_list_mtx); - dest_addr.sin_port = htons(getUserPort(dest_user_buff)); - pthread_mutex_unlock(&users_list_mtx); - - if (connect(s_dest_client, (struct sockaddr *) &dest_addr, sizeof(dest_addr)) == -1){ - /* If the connection with the receiver fails, assume the client - to be disconnected, disconnect it and store the message */ - pthread_mutex_lock(&users_list_mtx); - disconnectUser(dest_user_buff, getUserIP(dest_user_buff)); // No need to check for output - storeMsg(dest_user_buff, msg_buff, last_id, user_buff); - pthread_mutex_unlock(&users_list_mtx); - - fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", last_id, - user_buff, dest_user_buff); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - out = 0; - send_msg(s_local, &out, sizeof(out)); - - char id_string[11]; - sprintf(id_string, "%d", last_id); - send_msg(s_local, id_string, sizeof(id_string)); - goto destroy_thread; - } - - char op[13]; - strcpy(op, "SEND_MESSAGE"); - - send_msg(s_dest_client, op, sizeof(op)); - send_msg(s_dest_client, user_buff, MAX_USERNAME); - /* Send the identifier of the message */ - char id_string[11]; - sprintf(id_string, "%d", last_id); - printf("ID STRING AFTER CONVERSION IS: %s\n", id_string); - send_msg(s_dest_client, id_string, sizeof(id_string)); - send_msg(s_dest_client, msg_buff, MAX_MSG); - - close(s_dest_client); - - /*IF NO ERRORS, SEND ACK BACK TO SENDER*/ - fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", last_id, - user_buff, dest_user_buff); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - out = 0; - send_msg(s_local, &out, sizeof(out)); - - //sprintf(id_string, "%d", last_id); - send_msg(s_local, id_string, sizeof(id_string)); - - s_origin_client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - //CHECK FOR ERROR AND SEND ERROR TO CLIENT - - char ack_op[17]; - strcpy(ack_op, "SEND_MESS_ACK"); - - bzero((char *) &origin_addr, sizeof(origin_addr)); - - pthread_mutex_lock(&users_list_mtx); - origin_hp = gethostbyname(getUserIP(user_buff)); - pthread_mutex_unlock(&users_list_mtx); - memcpy(&(origin_addr.sin_addr), origin_hp->h_addr, origin_hp->h_length); - origin_addr.sin_family = AF_INET; - pthread_mutex_lock(&users_list_mtx); - origin_addr.sin_port = htons(getUserPort(user_buff)); - pthread_mutex_unlock(&users_list_mtx); - - connect(s_origin_client, (struct sockaddr *) &origin_addr, sizeof(origin_addr)); - int s = send_msg(s_origin_client, ack_op, sizeof(ack_op)); - printf("Number of bytes sent ack_op: %d\n", s); - s = send_msg(s_origin_client, id_string, sizeof(id_string)); - printf("Number of bytes sent id_string: %d\n", s); - - close(s_origin_client); - goto destroy_thread; - } + /* Store the message */ + if (storeMessage(user_buff, dest_user_buff, msg_buff, last_id) != 0){ + out = 2; + goto respond_to_client; + } + /* Message was stored successfully, send code 0 and message ID to the client */ + out = 0; + send_msg(s_local, &out, sizeof(out)); + + char id_string[11]; + sprintf(id_string, "%d", last_id); + send_msg(s_local, id_string, strlen(id_string)+1); - char prueba[11]; - strcpy(prueba,"4294967295"); - out = 0; - send_msg(s_local, &out, sizeof(out)); - send_msg(s_local, prueba, sizeof(prueba)); - - /* As the print is different format is different from the other commands - it is performed in this section and the default print is skipped */ - switch(out){ - case 0: - //OK - break; - default: - //FAIL - break; + }else if(status == 1){ + /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message + is being sent for the first time and was not previously stored int he server */ + int err = sendMessage(user_buff, dest_user_buff, msg_buff, last_id, 0); + + /* If any server error occurred and the message was not stored or sent, then send code 2 + back to the client */ + if(err == -1){ + out = 2; + goto respond_to_client; + } + + /* If no server error occured, then the message was either sent or stored, so we send back + the code 0 (OK) to the client */ + out = 0; + send_msg(s_local, &out, sizeof(out)); + + char id_string[11]; + sprintf(id_string, "%d", last_id); + send_msg(s_local, id_string, strlen(id_string)+1); + + /* If the message was stored in the */ + if(err == 0) sendAck(user_buff, last_id); } - goto destroy_thread; //Skips the default print below + goto destroy_thread; } /* Default print */ @@ -448,14 +375,12 @@ void * manageRequest(int *sd){ send_msg(s_local, &out, sizeof(out)); destroy_thread: - printf("COMPROBANDO CHECKPOINT 4\n"); - if(close(s_local) == -1){ - perror("[SERVER_THREAD]: Error when closing the socket in the thread"); - exit(-1); - } - printf("COMPROBANDO CHECKPOINT 1\n"); - printf("Destroying thread...!\n"); - pthread_exit(NULL); + if(close(s_local) == -1){ + perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + printf("Destroying thread...!\n"); + pthread_exit(NULL); } void toUpperCase(char * string){ @@ -463,4 +388,123 @@ void toUpperCase(char * string){ for(int i = 0; string[i]; i++){ string[i] = toupper(string[i]); } +} + +/* Return 0: Message is stored OK + Return -1: Server error (Memory space error) */ +int storeMessage(char * sender, char * receiver, char * msg, unsigned int msg_id){ + pthread_mutex_lock(&list_mtx); + printf("Storing the message...\n"); + int err = storeMsg(receiver, msg, msg_id, sender); + printf("After storing: %d\n", err); + pthread_mutex_unlock(&list_mtx); + + if(err == -1) return -1; + + fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + return 0; +} + +/* Return 0: Message is sent OK + Return 1: Message is stored, or not stored if was already stored + Return -1: Server error */ +int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, char stored){ + int s_receiver; //Socket for the receiver of the message + struct sockaddr_in recv_addr; //Receiver address + struct hostent *recv_hp; //Host entity structure for the receiver + + s_receiver = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_receiver == -1){ + return -1; //Send error message. -1 is internally encoded as server error + } + + bzero((char *) &recv_addr, sizeof(recv_addr)); //Reserve space for the address of the receiver + + pthread_mutex_lock(&list_mtx); + recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver + pthread_mutex_unlock(&list_mtx); + + memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format + recv_addr.sin_family = AF_INET; + pthread_mutex_lock(&list_mtx); + recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread + pthread_mutex_unlock(&list_mtx); + + if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ + /* If the connection with the receiver fails, assume the client + to be disconnected, disconnect it and store the message */ + pthread_mutex_lock(&list_mtx); + disconnectUser(receiver, getUserIP(receiver)); // No need to check for output + pthread_mutex_unlock(&list_mtx); + /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the + server so we need to push it to the end of the queue. If it was stored, then nothing is done */ + if(!stored){ + if(storeMessage(sender, receiver, msg, msg_id) == -1) return -1; //Return -1 if store error + } + close(s_receiver); //Close the socket + return 1; + } + /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ + char op[13]; + strcpy(op, "SEND_MESSAGE"); + send_msg(s_receiver, op, strlen(op)+1); + /* Send the sender name */ + send_msg(s_receiver, sender, strlen(sender)+1); + /* Send the identifier of the message */ + char id_string[11]; + sprintf(id_string, "%d", msg_id); + send_msg(s_receiver, id_string, strlen(id_string)+1); + /* Send the message */ + send_msg(s_receiver, msg, strlen(msg)+1); + + close(s_receiver); //Close the socket + + fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + return 0; +} + +/* Return 0: Message is sent OK + Return 1: Message is stored, or not stored if was already stored + Return -1: Server error */ +int sendAck(char * sender, unsigned int msg_id){ + int s_sender; //Socket for the receiver of the message + struct sockaddr_in sender_addr; //Sender address + struct hostent *sender_hp; //Host entity structure for the sender + + s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_sender == -1){ + return -1; //Send error message. -1 is internally encoded as server error + } + + char ack_op[14]; + strcpy(ack_op, "SEND_MESS_ACK"); + + bzero((char *) &sender_addr, sizeof(sender_addr)); + + pthread_mutex_lock(&list_mtx); + sender_hp = gethostbyname(getUserIP(sender)); + pthread_mutex_unlock(&list_mtx); + + memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); + sender_addr.sin_family = AF_INET; + + pthread_mutex_lock(&list_mtx); + sender_addr.sin_port = htons(getUserPort(sender)); + pthread_mutex_unlock(&list_mtx); + + connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr)); + + + char id_string[11]; + sprintf(id_string, "%d", msg_id); + send_msg(s_sender, ack_op, strlen(ack_op)+1); + send_msg(s_sender, id_string, strlen(id_string)+1); + + close(s_sender); + return 0; } \ No newline at end of file diff --git a/lab1/server.h b/lab1/server.h index 64e7b7f..911f653 100644 --- a/lab1/server.h +++ b/lab1/server.h @@ -2,7 +2,7 @@ /* Mutex & Threads */ pthread_mutex_t socket_mtx; -pthread_mutex_t users_list_mtx; +pthread_mutex_t list_mtx; pthread_t thread; pthread_attr_t thread_att; /* Controls the access to the socket generated by the connection 'accept' */ @@ -17,4 +17,7 @@ struct user *users; void interruptHandler(int sig); void * manageRequest(int *sd); -void toUpperCase(char * string); \ No newline at end of file +void toUpperCase(char * string); +int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, char stored); +int sendAck(char * sender, unsigned int msg_id); +int storeMessage(char * sender, char * receiver, char * msg, unsigned int mgs_id); \ No newline at end of file diff --git a/lab1/servidor/server.c b/lab1/servidor/server.c index b842639..469b0fa 100644 --- a/lab1/servidor/server.c +++ b/lab1/servidor/server.c @@ -49,7 +49,7 @@ int main(int argc, char * argv[]){ perror("[SERVER]: Error when initializing the mutex"); exit(-1); } - if(pthread_mutex_init(&users_list_mtx, NULL) != 0) { + if(pthread_mutex_init(&list_mtx, NULL) != 0) { perror("[SERVER]: Error when initializing the mutex"); exit(-1); } @@ -183,18 +183,18 @@ void * manageRequest(int *sd){ /* Check the operation */ if (strcmp(operation_buff, "REGISTER") == 0){ /* Register the user */ - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); ////////////////////////////////////////////////////// /* DOUBT */ ////////////////////////////////////////////////////// /* Wait while the list of users is being accessed */ /* while(free_list == TRUE) - pthread_cond_wait(&free_list, &users_list_mtx); + pthread_cond_wait(&free_list, &list_mtx); free_list = TRUE; */ out = registerUser(user_buff); - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); /* switch(result){ case 0: @@ -209,18 +209,18 @@ void * manageRequest(int *sd){ } else if (strcmp(operation_buff, "UNREGISTER") == 0){ /* Unregister the user */ - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); ////////////////////////////////////////////////////// /* DOUBT */ ////////////////////////////////////////////////////// /* Wait while the list of users is being accessed */ /* while(free_list == TRUE) - pthread_cond_wait(&free_list, &users_list_mtx); + pthread_cond_wait(&free_list, &list_mtx); free_list = TRUE; */ out = unregisterUser(user_buff); - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); /*switch(result){ case 0: out = '0'; @@ -264,15 +264,15 @@ void * manageRequest(int *sd){ printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); out = connectUser(user_buff, msg_buff, client_port); - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); }/* else if(strcmp(operation_buff, "DISCONNECT") == 0){ - pthread_mutex_lock(&users_list_mtx); + pthread_mutex_lock(&list_mtx); out = disconnectUser(user_buff); - pthread_mutex_unlock(&users_list_mtx); + pthread_mutex_unlock(&list_mtx); }*/ diff --git a/lab1/servidor/server.h b/lab1/servidor/server.h index 4380dbb..c39faea 100644 --- a/lab1/servidor/server.h +++ b/lab1/servidor/server.h @@ -2,7 +2,7 @@ /* Mutex & Threads */ pthread_mutex_t socket_mtx; -pthread_mutex_t users_list_mtx; +pthread_mutex_t list_mtx; pthread_t thread; pthread_attr_t thread_att; /* Controls the access to the socket generated by the connection 'accept' */ diff --git a/lab1/user_list.c b/lab1/user_list.c index ea8404f..ec14338 100644 --- a/lab1/user_list.c +++ b/lab1/user_list.c @@ -112,11 +112,15 @@ char unregisterUser(char * username){ if(strcmp(temp->username, username) == 0){ //User found if(temp == user_head){ //If the user is at the user_head of the list user_head = temp->next; //change the user_head to the next element + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); free(temp); //Free the resources of the user return 0; } else{ //User is not at the user_head prev->next = temp->next; + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); /* Free the memory resources of the user structure */ free(temp); return 0; @@ -144,21 +148,21 @@ void printUsers(){ printf("\n"); } } - -void storeMsg(char * username, char* msg, unsigned int msg_id, char * sender){ +/* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ +int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender){ struct user *temp = user_head; /* Iterate over the list */ while(temp != NULL){ if(strcmp(temp->username, username) == 0){ //User found + printf("Hemos encontrado el usuario, ahora metemos el mensaje\n"); //Enqueue message - enqueueMsg(&(temp->pend_msgs_head), msg, msg_id, sender); - return; + return enqueueMsg(&(temp->pend_msgs_head), msg, msg_id, sender); } temp = temp->next; } - return; + return -1; //User was not found } unsigned int updateLastID(char * username){ @@ -241,4 +245,15 @@ uint16_t getUserPort(char * username){ return 0; } +struct msg ** getPendMsgHead(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return &(temp->pend_msgs_head); //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} diff --git a/lab1/user_list.h b/lab1/user_list.h index fe7ee69..7570c04 100644 --- a/lab1/user_list.h +++ b/lab1/user_list.h @@ -17,11 +17,12 @@ char registerUser(char * username); char unregisterUser(char * username); char connectUser(char * username, char * ip, uint16_t port); char disconnectUser(char * username, char * used_ip); -void storeMsg(char * username, char* msg, unsigned int msg_id, char * sender); +int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender); unsigned int updateLastID(char * username); void printPendMsgs(char * username); void printUsers(); void removePendMsg(char * username); char isConnected(char * username); char * getUserIP(char * username); -uint16_t getUserPort(char * username); \ No newline at end of file +uint16_t getUserPort(char * username); +struct msg ** getPendMsgHead(char * username); \ No newline at end of file From 2310c38fbda9e20285b622ed31f834d019b390cf Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Tue, 11 Apr 2017 02:29:07 +0200 Subject: [PATCH 10/17] CGP: Final version of client and server --- lab1/DECISION MAKING POINTS.txt | 42 ---- lab1/Makefile | 8 +- lab1/ServerThread.class | Bin 2354 -> 2537 bytes lab1/authors.txt | 2 + lab1/client$1.class | Bin 521 -> 521 bytes lab1/client.class | Bin 7709 -> 7645 bytes lab1/client.java | 100 +++++--- lab1/msg_list.c | 70 ++---- lab1/msg_list.h | 14 +- lab1/report.pdf | Bin 0 -> 702969 bytes lab1/server.c | 345 +++++++++++++++++---------- lab1/server.h | 6 +- lab1/ssdd_p1_100291121_100292107.zip | Bin 0 -> 689617 bytes lab1/test | Bin 0 -> 20400 bytes lab1/user_list.c | 99 ++++---- lab1/user_list.h | 15 +- 16 files changed, 380 insertions(+), 321 deletions(-) delete mode 100644 lab1/DECISION MAKING POINTS.txt create mode 100644 lab1/authors.txt create mode 100644 lab1/report.pdf create mode 100644 lab1/ssdd_p1_100291121_100292107.zip create mode 100755 lab1/test diff --git a/lab1/DECISION MAKING POINTS.txt b/lab1/DECISION MAKING POINTS.txt deleted file mode 100644 index 876d71c..0000000 --- a/lab1/DECISION MAKING POINTS.txt +++ /dev/null @@ -1,42 +0,0 @@ -DECISION MAKING POINTS - --FIFO QUEUE FOR PENDING MESSAGES - --Server will be receiving a first string from the client indicating the command/operation/service, that can be REGISTER, UNREGISTER, CONNECT, DISCONNECT or SEND. For optimization, the maximum length of a a command string is of 10 (number of characters in the largest possible command, which is UNREGISTER or DISCONNECT) +1 character for the ASCII '\0'. So this will be stores in a char array of 11 bytes. - --A username can contain at most 15 characters, including numbers and letters. <> ===> As it is not specified in the guidelines and it may be something that interferes with the protocol, it is consideres to have a username of 256 characters - --Is the shell that has the role to classify the output value of the functions (register, etc.) and print the message according to it? Or should be the function itself <> - --CAN WE USE 0 AND 1 TO REPRESENT "OFF" AND "ON" FOR THE STATUS OF THE USER? - --UNSIGNED SHORT (uint16_t) TO REPRESENT THE PORT NUMBER? - --DO WE SEND A STRING OR A BYTE FROM SERVER TO CLIENT?? ((IMPORTANT: All fields sent will be encoded as strings. Remember that the -strings end with the ASCII ’\0’ code)) - --HOW DO WE GET THE IP AND PORT FROM A CLIENT?? - --CHECK FOR -1 EVERYTIME WE DO AN OPERATION WITH A SOCKET?? - --RETURNING 0 OR '0' FROM THE SERVER IS DIFFERENT. WHAT IS THE PROTOCOL ==> SHOULD BE CHAR 0, NOT CHAR '0', BECAUSE THE BIT REPRESENTATION IS DIFFERENT - --CREATE THREADS ONCE WE KNOW THE TYPE OF OPERATION? OR CREATE THREAD ONCE THE CONNECTION IS ACCEPTED AND CHECK THE OPERATION IN EVERY THREAD?? - --DO WE REALLY NEED A CONDITION VARIABLE TO ACCESS THE LIST? IT SHOULD SUFFICE WITH A MUTEX - --MAXIMUM NUMBER OF USERS?? MAXIMUM NUMBER OF PENDING MESSAGES?? - --IN WHICH CASES ARE WE SENDING THE CODE 2 (ERROR) TO THE CLIENT?? - --POR QUE PUEDO HACER: -char name[2]; -strcpy(name, "FRANCISCOJAVIERGARCIABLAS"); - -Y NO DAR NINGUN ERROR?? - --IN THE PRACTICE, WE CONSIDERED THAT WHEN THE CLIENT SENDS A MESAGE AND THE SERVER RESPONDS OK, IT MEANS THAT THE MESSAGE WAS CORRECTLY RECEIVED BY THE SERVER (THIS IS IT ) - --ALL USERNAMES ARE UPPERCASED - --THE SERVER DOES NOT DEAL WITH ERRORS OCCURRED DURING THE TRANSMISSION OF THE ACK, I.E. THE CONNECTION TO THE SENDER COULD NOT HAPPEN. THE TRANSMISSION OF MESSAGES IN THE SERVER IS DONE IS SUCH A WAY THAT IF A USER RECEIVES AN ACKNOWLEDGE FOR MESSAGE ID = X, THEN IT MEANS THAT ALL MESSAGES SENT TO THE SAME USER WITH LOWER ID WERE SUCCESSFULLY DELIVERED, BECAUSE EACH TIME A MESSAGE IS SENT OK TO A RECEIVER, THE CORRESPONDING ACK IS SENT TO THE SENDER WITH THE ID OF THE MESSAGE, INDEPENDENTLY IF THE ACK WAS CORRECTLY SENT OR NOT diff --git a/lab1/Makefile b/lab1/Makefile index 47ab24e..3a28c57 100644 --- a/lab1/Makefile +++ b/lab1/Makefile @@ -1,4 +1,4 @@ -BIN_FILES = server test +BIN_FILES = server CC = gcc @@ -16,12 +16,6 @@ all: $(BIN_FILES) server: server.o read_line.o user_list.o msg_list.o $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ -#user_list: user_list.o read_line.o -# $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -test: test.o read_line.o user_list.o msg_list.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - %.o: %.c $(CC) $(CPPFLAGS) $(CFLAGS) -c $< diff --git a/lab1/ServerThread.class b/lab1/ServerThread.class index 81d4ba5c36bfd05134e8731ee08dd30773cc04da..bdac80ca7fc94d29f3ef030de714ba5d1948bc11 100644 GIT binary patch literal 2537 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 N2Cl?*o;1Rae*yE@9+?0D diff --git a/lab1/authors.txt b/lab1/authors.txt new file mode 100644 index 0000000..f5b361b --- /dev/null +++ b/lab1/authors.txt @@ -0,0 +1,2 @@ +GUTIÉRREZ PARADELA, CARLOS 100291121 GROUP 89 +LÓPEZ LOZOYA, RUBÉN 100292107 GROUP 89 \ No newline at end of file diff --git a/lab1/client$1.class b/lab1/client$1.class index eed514a519eb072eae3702e87f51700cdff0c47c..68fe1bda449b7861ebb39bb86e0513f47698317f 100644 GIT binary patch delta 27 icmeBV>15e3osrRV@(e~}PHzS_CLab~Ccnv77)=3W%Lc9h delta 27 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 diff --git a/lab1/client.java b/lab1/client.java index ea74fd3..11d9e02 100644 --- a/lab1/client.java +++ b/lab1/client.java @@ -82,7 +82,7 @@ static RC register(String user) } catch (java.io.IOException e) { System.out.println("Exception: " + e); - e.printStackTrace(); + //e.printStackTrace(); } System.out.println("c> REGISTER FAIL"); return RC.ERROR; @@ -154,7 +154,7 @@ static RC unregister(String user) } catch (java.io.IOException e) { System.out.println("Exception: " + e); - e.printStackTrace(); + //e.printStackTrace(); } System.out.println("c> UNREGISTER FAIL"); return RC.ERROR; @@ -218,7 +218,6 @@ static RC connect(String user) case 0: /* Start a new thread where */ server_thread.start(sock); - //server_thread = new ServerThread(sock).start(); /* Bind the user to the client */ connected_user = user; System.out.println("c> CONNECT OK"); @@ -237,7 +236,7 @@ static RC connect(String user) } catch (java.io.IOException e) { System.out.println("Exception: " + e); - e.printStackTrace(); + //e.printStackTrace(); } System.out.println("c> CONNECT FAIL"); return RC.ERROR; @@ -283,8 +282,8 @@ static RC disconnect(String user) //Decode the response from the server switch(response){ case 0: - /* Unbind the user from the client. We need to check if the */ - if(connected_user != null) connected_user = null; + /* Unbind the user from the client */ + connected_user = null; server_thread.kill(); System.out.println("c> DISCONNECT OK"); return RC.OK; @@ -295,8 +294,17 @@ static RC disconnect(String user) System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); return RC.USER_ERROR; case 3: - /* In case of error in the disconnection process, stop the execution of the thread */ - server_thread.kill(); + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } + } System.out.println("c> DISCONNECT FAIL"); return RC.ERROR; } @@ -304,10 +312,19 @@ static RC disconnect(String user) } catch (java.io.IOException e) { System.out.println("Exception: " + e); - e.printStackTrace(); + //e.printStackTrace(); + } + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } } - /* In case of error in the disconnection process, stop the execution of the thread */ - server_thread.kill(); System.out.println("c> DISCONNECT FAIL"); return RC.ERROR; } @@ -348,7 +365,6 @@ static RC send(String user, String message) out.write(0); //4. A string of characters is sent with the user that receives the message - System.out.println("Usuario es: " + user); out.writeBytes(user); out.write(0); @@ -395,12 +411,18 @@ static RC send(String user, String message) } catch (java.io.IOException e) { System.out.println("Exception: " + e); - e.printStackTrace(); + //e.printStackTrace(); } System.out.println("c> SEND FAIL"); return RC.ERROR; } - + /** + * @brief Trims the input message to 255 characters + * + * @param message - String to be trimmed + * + * @return message - Result String + */ static String trimMessage(String message){ /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ int maxLength = 255; @@ -493,7 +515,7 @@ else if (line[0].equals("QUIT")){ } } catch (java.io.IOException e) { System.out.println("Exception: " + e); - e.printStackTrace(); + //e.printStackTrace(); } } } @@ -573,12 +595,19 @@ public void run() { } } +/********************* SERVERTHREAD **********************/ + class ServerThread extends Thread{ - private ServerSocket sc; - private volatile Thread blinker; + + private ServerSocket sc; //ServerSocket of the listening thread + private volatile Thread blinker; //Thread of type volatile that will be attached to the ServerThread + private Socket sd; /** - * @brief Starts the server thread and initializes the ServerSocket property + * @brief Constructor. Starts the server thread and initializes the ServerSocket property + * + * @param sc - Initialized ServerSocket + * */ public void start(ServerSocket sc){ blinker = new Thread(this); @@ -587,9 +616,15 @@ public void start(ServerSocket sc){ } /** - * @brief Destroys the server thread + * @brief Destroys the server thread */ public void kill(){ + try{ + this.sd.close(); + } + catch(IOException e){ + System.out.println("Exception: " + e); + } blinker = null; } @@ -598,16 +633,14 @@ public void kill(){ */ public void run(){ Thread thisThread = Thread.currentThread(); - Socket sd = null; - + sd = null; while(blinker == thisThread){ try{ /* Waiting for connection */ - sd = this.sc.accept(); DataInputStream msg_in = new DataInputStream(sd.getInputStream()); - + /* Receive the string encoding the operation */ String operation = new String(); byte ch; do{ @@ -615,30 +648,31 @@ public void run(){ if (ch != 0) operation = operation + ((char) ch); } while(ch != 0); - + /* Prepare the string for the ID of the message sent/received */ String id = new String(); switch(operation){ case "SEND_MESSAGE": + /* Read the sender username from the socket */ String sender = new String(); do{ ch = msg_in.readByte(); if (ch != 0) sender = sender + ((char) ch); } while(ch != 0); - + /* Read the ID of the received message */ do{ ch = msg_in.readByte(); if (ch != 0) id = id + ((char) ch); } while(ch != 0); - + /* Read the string containing the body of the message */ String msg = new String(); do{ ch = msg_in.readByte(); if (ch != 0) msg = msg + ((char) ch); } while(ch != 0); - + /* Prompt */ System.out.println("MESSAGE " + id + " FROM " + sender + ":"); System.out.println("\t" + msg); System.out.println("END"); @@ -646,6 +680,7 @@ public void run(){ break; case "SEND_MESS_ACK": + /* Read the id of the message being acknowledged */ do{ ch = msg_in.readByte(); if (ch != 0) id = id + ((char) ch); @@ -660,10 +695,17 @@ public void run(){ } catch(Exception e){ System.out.println("Exception: " + e); - e.printStackTrace(); + //e.printStackTrace(); this.kill(); } } - + /* If the thread exits the loop for any reason, try to close the socket */ + try{ + sd.close(); + } + catch(Exception e){ + System.out.println("Exception: " + e); + this.kill(); + } } } diff --git a/lab1/msg_list.c b/lab1/msg_list.c index ba8c7bc..ce0b614 100644 --- a/lab1/msg_list.c +++ b/lab1/msg_list.c @@ -5,84 +5,54 @@ #include "msg_list.h" -/* Returns 0 if the message is stored- -1 if malloc error */ +/* Creates a new message struct and enqueues it to the end of the message queue + Returns 0 if the message is stored + -1 if malloc error */ int enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender){ struct msg *temp; - //Allocate the space for the new message and + /* Allocate the space for the new message */ temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ if(temp == NULL) return -1; strcpy(temp->body, message); strcpy(temp->sender, sender); temp->id = id; temp->next = NULL; - if (*head == NULL){ //If list is empty - printf("Antes de insertar, la lista esta vacia!\n"); + if (*head == NULL){ /* Queue is empty */ temp->next = *head; *head = temp; } else{ + /* If the queue is not empty, iterate to the end and append the message */ struct msg *last = *head; - printf("Llegando al final de la lista de mensajes...\n"); while(last->next != NULL){ last = last->next; } last->next = temp; - printf("Hemos llegado al final de la lista!\n"); } return 0; } -/* Deletes the message at the head of the queue and -returns the new head of the list */ +/* Deletes the message at the head of the queue and returns the new + head of the list + Return a pointer to the next message in the queue + NULL if the list is left empty */ struct msg * dequeueMsg(struct msg **head){ struct msg* temp = *head; - //Head pointing to the next element + /* Head pointing to the next element */ *head = temp->next; - //Free the resources of the first message - + /* Free the resources of the first message */ free(temp); - if(*head == NULL) printf("Hemos vaciado la lista!\n"); - + /* Return the new head of the queue */ return *head; } -/* Deletes the message at the head of the queue */ -void removeMsg(struct msg ** head){ - struct msg *temp = *head; - //Head pointing to the next element - *head = temp->next; - //Free the resources of the first message - free(temp); - return; -} - -/* Deletes the message at the head of the queue */ +/* Deletes all the messages in the list from the head of the list +passed as paremeter */ void deleteAllMsgs(struct msg ** head){ - struct msg *temp = *head; - while(temp != NULL){ - //Head pointing to the next element - *head = temp->next; - //Free the resources of the first message - free(temp); - temp = *head; + struct msg **temp = head; + while(*temp != NULL){ + *temp = dequeueMsg(&(*temp)); } return; -} - -void printMsgs(struct msg ** head){ - printf("INSIDE THE PRINT MSGS FUNCTION!\n"); - struct msg *temp = *head; - if(temp == NULL){ - return; - } - - while(temp != NULL){ - printf("Message ID: %u", temp->id); - printf("Message body: %s", temp->body); - printf("\n"); - temp = temp->next; - } - - return; -} - +} \ No newline at end of file diff --git a/lab1/msg_list.h b/lab1/msg_list.h index da86c39..afe2e09 100644 --- a/lab1/msg_list.h +++ b/lab1/msg_list.h @@ -1,15 +1,13 @@ #define MAX_MSG 256 struct msg{ - char body[MAX_MSG]; - char sender[256]; - unsigned int id; - struct msg *next; + char body[MAX_MSG]; /* Content of the message */ + char sender[MAX_MSG]; /* Sender of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ }; +/* ================FUNCTION HEADERS================ */ int enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender); -void deleteAllMsgs(struct msg ** head); -void removeMsg(struct msg ** head); -void printMsgs(struct msg ** head); struct msg * dequeueMsg(struct msg **head); - +void deleteAllMsgs(struct msg ** head); \ No newline at end of file diff --git a/lab1/report.pdf b/lab1/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..20919f92b6c7ec67b7799f670024b77ade1ec2b8 GIT binary patch literal 702969 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

m32N@YTbQ*rRPe7EWL`z+DzjtHPcch}idh zBs3IqbN1RZ9qkK4!-wRihYk(gMIO`+!Yr-&Ld3tw?7`(JPbM49w?D0u*Q z6kZAlU%)+lupW!u_BAZ$r3E~spGK^z$~)pSMKLKpk`=0C`y!#nQAg1_%d@mp5m6xI z2?`2bYI%^wC!R?8&W?|i>~p*7U6~IMam)2psA(4yj^H2%7R&vLRQ#v>R^*NLq9mr9 zXlA&~y-fp$6A@VTSl_?h zupm=x80^+DSnqDD4Pov4PI97dSLC`2Cz*-{kB_13hzaUNXZOj$TT8pby@Q#~SH6k` zv=Eu|vKW$LC!J<<MvYkOSE-HT*@kBqA+YD49^M} zttx}ISwYk1$8_pz`7qRJ*qh6?-J3W%mB`GJ56d7HhZjgFDT5wRoKrLNEpteT#tLKY zAGfWrnp4XGpGlDobF~q1@plNeF2nM#$W`|10sGuG08(Vo@8NwQ2Gni`)YGr5OOB%_ua|_sNE$UAw+4iU@CljOF zxI$)_4PO|R{guKqUDP%Tr7-+?kbTf-Qkn1;Afddb#0~3n8V& zRq#I;c;&Rt{TTl(R#-|`T}Q)>@ATWv=-@1HPV06!(y0+L-b=9C{7r(xmsyEl*j;pp z^Gt+m+&eR0ZG?D&?-r-U64;s%gse%q!$-SRV7(xD!O%yMG?+MxZeok4x6LPF7 z`$DVmTu-QQTF93$PX)ToSczQVC&xuLnlNj@Rirp$H)D2*14+{KvnN?{==IwoDqK4& zUx^=X!?mEiNH5&V(P3yE?sDeUIl6ue`yqVuCSF~Cpp4hRey&J*B-qUsUxQ97W6YqW zX)Gh+`o%mL7AvrRYh5y-Pf-I#QvYZa7+X-Ys36?_QX?TGwxc37?Wvza>S#BeLDyM? z!fIMmHp5qz>UxeV#ZSua5>LG~&W@YjnLc_#&ZN(+SzbJ=K8gT;VX15wDlfKTxEi%4ma$#}@Nv}E>J>cbtl<~NFH2+I$ z_fs7m`Ha_1u<59Z_UaxgpCs+r`eh6}8#pxF@f=6GfsH{x)xz12w~p6M4;&6>23B)q z0vq?>ln9Tw`^;xVQJ6GDpmzC|rPL){398rj=ki4gA47MgC1W~<0rSFyhYskO=<=vj zlE&WjM-DwiPF^Hp&2(sL)Ipf1Tc{gOAGwiLcz-4ROn{t`p1=AdvOWns|1nWeURZ+okYtvhz|6Dfk7q@R&y*RktN2N33Ec{{A)Yyf!bgHXjK}l zgq6s71N^|H5TiIfG4CEJd`wMKc%)cf_ff38I7<FGdvNUVEYTe`Zx5e#0DEh~q|7%ftT~gb#vbt=KX_(H*{A*1L`Hl0 zW3n(6M^hD{jqj>MDzNX}C7eMA#Q~dt^?NK@K4KpAz7Ne$i!x9UXg_RVlC7p8HD#+b z~YEKcMNG9 z)MyNJ<=8W2dsM4GzEL!LoA=&4@M}~Lxuin)cpc7KZd}FQMh&(b3+9>R4W+^L%Z%`e zq+4`^nBW7Op`j2-RW^o~QZ0Rmg&w=IV?%~JyvmKLx_MW-3Hy@MOGkm2p0yZqW1An6 zkFBqj5y+>p^WS881&0ye^qj|+oKr8c-&`=^N7D0bzNx8(wZ|Yeum*#K-)In zEu%*eKZ%9Qh~OEpvH$~PcyT4nQy2DPfvtnWjJm{rlGl0 zgJweIp;xRGTBIZs=NE=#I0eMv!>ciqxTCS{gx4OZ8s!e?}ebuvmJl2OL9Rj+p1bRuco-w z+V}VT)G9b{b!HiAV`M_*QZl}x5fp81RbK5Mg%s7dik~4j%q*c~oY%cvO;*qBMzghx zmI?mkQzLcgtBJZwn@t{`BQ8v6&@G) z2A8k2Jn?z8egprd=d?cb%L*?vkxgE|Im{_Dgu%Qx`r_bmfI z7kk{__jAVTe&k;W{B7R(o}&MdX=Y^msZoIGml_Y|pBe>NS%0eWU}k4$`*$@SvZjW2 zZ4;p4H~ zL_pSchvEKSB21tXmml>v-%3S(rucs7eMc`IoLoQ9Df!BurPD{ zJ28Fh=V1FqHlTWd@BJK1cTF9C>F4-Xr1Z<;?=l>JS^S@M8^88*sCYavvir$Qe)KH- zrjLX5TYBcFK8_zX_J0;(+~0FQxekE!d#U?R-~L=u@<$)XcM^VNO#aXNH$dsNd(HW^ ze}nZ~8Uob6@vT1p7oPoGJMw?jzi~gyU%3A}Z}5HDzty!r`i4N=DZlsw_Md9L*tuB# ztodU9x$=aGiRr(n`C|XM^5m}S1oZP-cOyXsS1h26)SZ!kZyLHUtpWXX)lZWAx#r_H zUinug`?Xc-FOJ~f>D;%PtekpU3&#}kd?9txBcqi2IvVwztNNUwFF@D;!zF~eYQm>A9sf=E${l%gf5JSnh z`}|}|fkO}?t}xaqd3-^Qwn`kzZ%;h;6Zpn?$$U$r7TwuQ_`@NC-LvpjJ<~PBq{8bZ>1F zBN6LMW?%XTgeT1Avihd`lM0!bGxRQ3%X8d~yN6%83lv&1O^;j6_iuJLi9#do zhj9Q*lx@l@i4K}#I*Ik=%qpw-Io?UPg&*Bo&fAAYN}7st&glUEuR5Ff^+TFBVNKI0$@mbWIFPuoT%)JpH^ZrkM|{<}_zbbX@dQGKStH`hv#R!lqpM z5K6n_p@NBtCaatrc31{}1cX5E6=sa<%PCqqp_$6B)>>u|np*m2+LKyr9)3ZT8nPl{ z{v!vk+1jfodE5GOViyC=tDs|WN&=Kc5UfY4@_VcYO1ie-C+g|7y73;a1qK$lQXzE= zXxGS73z%F~>b4#q__Vdx>9>>sKB2m6_{p=|tD)Kl5#XitvWZ|D;Z$P}8&YZ%ifl7pTg{K&AXCbERSnB*gw>OvzD3ckoPZl54 zylYUK?N81Y6qS9g2v-2jBOUYxv#ua8&=^vR9PX0Z&k&Z)-N6w?#1}J6R5MXA?^wEu ziz7!ulsG95URW2Mr3NDza0D$EU+-xKhGQrOph!~Yc-&lqB+NAQxR8wLZ32a#yJ{0u zKAiQd5s?gPJhJ9aboGHWlR>ijOFeAwgbAOet#*3u#i&;2Si` z_-L@*+8{WyaD`ffxBApoU$rO8P{#@Qxri2#cn{mT;oh2Pq4p<5jECuvSaUU3_z?L4>zBh9q1zNfc3&Bf-HB4QUGx| zRr2%-SQvD*xoy|l8@7oa{D^aS9S;eYUQr9{omTvVISR3~+^J6vSnGz~rt_r*LuQj7 zDrni}MhaeD2WW52gbDE2Ci8pVWDHfLzo5^x5|vFSHU3E6k(U^ri(CAPXcc)|$s~qp zrdS=U|3Duzu*4vLBeS(if~;3G#o0u-R}@?pZFS`)$50piIIu$F*m2U_No|08Nt`Rb zVqAHMea?%W%5`C=M5}Sfwqe!CJI}mi!rbb!_qDel(-Kxlr z-l9nEvIy+bho&2v)ig%**qO~CrtciMw)5J$aa^UMjz}(E>IL)#ElT#-P~ zC1j{ngMKYZ>7*`vVv26X^)ywz8;<@;*pjH~SuCqW2caYj{rq@wycZdvyrR)y=qG$^ z6YYx!Wqpng3fpAc)c`IX7Xg*z(^Oyc@Ikh8J>6iWpOP*yDKS{PtG&Sdl5F#u z^hHu@%XwO@i!83jh@ zKKm$4Tyb7Sx-IBL)6DhO^a&F_GdQPL{{#r$@yo|96C>@#UAg?B24=) z32ANn5HWyiE@bRI^ z@s>Z;)vAGsx;vcw>i~>4gYAJ{pZx@Du4z>w=B?*try>vWc z?OwCR9U9EMiIi;VcrEryEGp8pg)hjl1Ngk;l{V8JmZ$|uiC@KSR^qet)UdHzCnuan z$38SS)9hR@%lRkr!oT|>-AT+NV|*`K!&gzp zIdJS)+vzHcNFgUHMb3jhy>)l#n@+$RYRXXBId49S4We-mJc51i^VP!VEVR^`D!>S$ zCtaic3?YYDhD6UEB~Hg)auS-dvg5!xYz8GO{_>+Ixjr+d)H^Fr9`>Mt=S0OKBgzHS zc+25=c(8GgrPvmXPn>|ATNhMFc9-gPO;#$}4mQn*WgPl%Uu zYN3HG`w&&VUutKT`w+vPaPoZ){5hZjZ z_)$NuEb5(BLXAvrfA$QS25#V04dP577Ubglj<7Dt567}Jsu_XiCcZ&}c|+KkvO7%C z*V3XDSay?Nm=_=7%1KZcgwHx7gLorqM9S)DQuEv&qu0LN}gRS8lP8MO`S_Jnk&SSwnfpS z7JYF;?}>j}t%de}&eq*%D!M>5e=_$RheZ?hHKj}?tT6JXCvPoTkVRS>?<4oqoLmR! zymJG9I~9BxaZzU!{Up&uMNmC;Bqv+j^|dpcy1XyB*U*Q?2H8bwRrS;4gvZOVR0)y_ zG$WjJ%A~?_hEgM#VoEv}>l-rXM}2Hxa*7HUC#E$Yv2G=6P~4;@L;H+#R#qL^fhqd1 zvG+XQ&Q1cBz(Q-M`<9g?pNeJcmn3VryJRF?APIW#27+Y&rOB^`3>B#o?y zXH?}m279NJw->EV5zRj5qb%c`9LHo=K3wZeGz(K0gll1J@X={%GuN0gP4+Fb$1&=W z#2C*p5i0o7g22sTrXmKKBsup#d7Z?OCOphFs>*1BLj|XIb}JfS&6D(ACe14r_ZZP8 zL}fSX#Kf^Kr6H>#)vjuKPBc+dQz)uS%B@O>nJNd?OTg{TA}@+5)y$qti$K4Xm?`-A zYe~w((3H07Cip%lhqsE8IiBOpK9h{PKoQtjP9@m zT+eTWdNGFgK|tM`Df-*M4wX>HL8Dc7J8k#-Or$7k6=`EUm>8IX zq>)r8>BNLHP~8)un|WT`>lh9d9&%>+>h#56^(y>TH+B1~|BJkLjE=2c*L7pt8L@5K z&WLT>ww;XFwryv`wrz97&dK+!HRqapuen#-t)27lv{rwrs^jgws#W!Vzt3}BcAsD@ zytE~iv&%0Kp>tP<<(BTGZwUmK2qr9ER%`^j9aqT+8<(JOdnOw@@yUS0;mR|oV=t6@ zOn7>Ofwsl*w2F5OO+mzP+aDnC_Bs}&lB!45*szNysN({ml(wCX%b$8(*i<>H0E%w? zegxpj17_FUKr4FAtugGKxlV!R&^29?e|#otcOy39{#3(NFGXp01yf}3EALi~sN#yi z&^~Mz!|BK}bN?w;rY~mPmg-zl#`y)2?H8qRT7uB&BviQCYN;0=J>mj>o)E87>=I+G zleE@J$Dl$oWfR;Q&(fiLJG96ntjb!KuMn`%hN}`U8S% z2~F`Z!nf4(#?u@Fr~Mg@X`cC7Pti*8KxYqk3E({aqIG#$LnR{l-NeDdi zaFh7K&>M`3J2!A_kxpC-2-$>_zJ3Q%t7!wCtNdf&e!^f)H#n01OT2@S^hUTgf&-~e zJFeVvo4M;2@M3qmXtlLVXjScEQxL}cQR6$T7cG`cD8pcD`k@dIKg68hbzDRCOilc> z0dJo_QH=5r-Um#0Px+GoYDWTEkkS13TvduzINO^6F^bTINij#*i|%@PvH^EpXbf9& zR4a?g%>_%T)b7W?a|_N%La-o=7HpiP$l3VN(w-SOs%|R6OiuQ7AyPEYeZFxt;z3P| z4T<{dbc$3978e}p7>q*R728gs7K4j)l!zI6N=`n}L}?HjBSZ2)$&nl+MkDE~Tsri^ zX76q9ovO7mZxTaGltMZoA$1GynU?KquiCRrK5~+`A#`wg(Cxi2;rKmp$SCYcWz=wG zgyG?!B;y*p%vHD5yE*^^P%@5R13;i6_Pn&aT3z>p@K92fwm*S`$ro$w_;8*QwY?`+SH zR_4^B{pkn!<~>M3rb^HnJ`=lxQqS>WHOKTL`P>L0#>|x+r{Q618M5X|Bgoe%_lYZ$ z^1OJXfL4A`hIHa+^aa_1dDtj)EO?M)26_avP$b}wjz*wow5Lq(3F}Qkg)Au)o=D=$(wweVl?d+&9X#ZHOFL6=#Ad1T`0z>Xguh_!Gw zH|D2eLm?R4li6gKw;Pps(o37PgIjoBM>XcrpjX63S)X3^rI;rMfy~~uvQ~dH#8C{i zOtDOY%N7<6sc|ybP6z!xb-?{d_*Ln4|6OUJojl7BuITWIODD zVRX)j-a||F3RQGE0hr;MDwZP>1h%< z%bqXfm7Re`O^n-ZnHZLLXV7-g5d5j8d7S~i9TNHnyW=;!F>`{}?T%_M@w_W`>@L%O zi?!S2s>XDOVqUkGKbAtY?N1L0Bw2!GuvhSny7-rN$LPHx)mBQ~w z3GuX)a_~0&t=F(REt=w?Ho9(guAOjxXh#>et`OBW5_HEDi%XNGD47B|u1y?vxQdA2 z;*HxU5Loa+x09V)mx%aH3JsYYAFI3KuVUpfw$WM6RW_Zgb;~6!wvMy_RjTI{5L_WO z@RtWon@HpFC-VSAF64#pi?X|PbavqF-KmR+<<_Pw01R7f{bXLPM{pzx_gjXBW_Bsx z<)+Rq#jJGD5t&T_O3|s zwIe>|A~$%lXE3s!B^jg8W-evY3P}QrX1t_~6y!Kwv`bM!6R@Za&VYUTsoB<55(-`J zijyI+ZQFJ!#3Sltyx$?hVSfDv=WfKXLCl_jy#Ou^tEwFsuLWD%&Vr(KV!fQ-TBlS#bagvfpk382Zge&BY+nti)r;P9 zNLCy6kKYn^yJxG3Jck!7fS<{NvYAFbnsz4?_I_IX+^>^>AP59LX`F$-`DWwu*~dyg zu@cUK9slhdJj-7*fBzSuIvdm9T_69_zVU4X+5ZmJd4IoydpAB6FA|D`BO!o{j7u|S ztQ)b-hw|X7V>8=0x3Jk*8muN{`T9O6$sC;yd3B4wRQQlY3M~&({6)j zWgNm)Gbbn}Kfj${TULggRnjbd%UE@~T39aba(QR!`yo`HM8gm&ou1|=0ct4WkX5el zJ0x@~+bdU+1W8XUhJhX5*Dqk{H-G^zm7F{z7$K5Y(k?BXmL7kE`i_^>KI-a=VQQAN zbV#3v?fU`!72_npVJz+}_$B+hfmszK*v?EUvqs#vet}fjRfqCoGCg36Z8`_DV1A9X zS+1;{LC&bqyfK%2Ztcdez7gK`cPy<52P{G|HgMZvj%cd82_#=vMI$*q!gnJFyr8dW zl!VVNPGUcpB&p8w{W3yD57`6h;}_3M%H{|bz|?#_F}tw^)r?B)1mLnDtX~^**6JNt1Oc;ZrPtA*8>cg_@Br!n#=4n7`4P; z9&7+HuCJhQAwdL*a_pdJs-Od*fDTK^Zd%4Of-nmt1Nx&C5a#YOXv#1p#@HOE$a=|1 zjv65+{uiSQCNcs{BUKABJuskz2I;|)>?|wtjFoMzJT%mqVB$m)t7Nd)$uoY6WL%m+ zh3w)%%8<&OG^iPlM8|(MbBqauI~s&E?;#0q+szqWM`Hqrsv(Mp7cH=;*-{0{O)y{# z$6;hfis#~zME+g~jAAw!!4ffavLWb;cSj!CnD5wj-gVW+AY|bKIhZN=%_)py%rZa{ z{N2q#n4JEPTwMedc>*oRs>hB;(cn+h2o3UguCA`L3&Z`Vpcct4Tn%CTD5?>mMQ|y~ zTQFSD;7<606ZE^A!{vTRNN(tN5yQ=mh0ho z#l*aZ&oN4?;>|jP4ya}q6f2nmIq9nxE-Wq_A&(dPQzp#Ow-|4;wpp*nUEMNyOR0OY z{Jd_RaHyO`^ZM}7ygG6h6S)}gvrSWTVQ^>LcmVD3VIPinxtCI;UdfiKz8KjuPSs_0 zs%~syFU7Qu`3qRzoz!Gtd%7DGu)^CDT2IB#8~+B#^9$g2lg0+iz4$=lK0H_Y!Y!!{ z(KC!B-6QkYP#b9I6oEC);{n2>@X+2azxb0NqKhOlrOA-WQ0hhrB70e)bF{EL!u{pd zN4-{KM`7Fg{5GnNI5Kn*`@ZxU@jk2az0)%M?5{LKtB3W9#}I<|zX&TcJBTxSVFYH1d~BGWmzEt=Lw~SVx!F-9xV2<9pQk~|_m0eF;pc zUS;X}<#WZFkw3T)HffSHtn`^YKEvT5r@eArf3hR?N~nn<{!s_CL_rGPfVt2oF(kzp~B;X0c5_;*e$ZwgsAB8y(9~kN4#g4ePm731v$-%` z>#*KIwk`ie`hr!NyvWRZ>xEL~kpu72O*#-$AuD1{r)h$WAQZ($v=EhBOFa}~Tp?@{ z8*bF52o4_3Pe4#Fm>mux=#jRds8(VpVX@z4EhI}jBjLYv=gAE8*MpSjtPLjttB`hU zRN<`{&EXmh!dS_<_l{2yNDZIslf^;j;b6IBU-F#O)43cce4u05>I#%rnc<&iHUp(9 zg0!+?ox|D4$=PwDE;{@zLIxIiIAxPe1N)eYuIpG#Lr+Qsx}2JyqwETzZ(zF?shPAV z13tqzmwzl$=HQlUaS-5n>r_)9i_ZO7fqKnG+IMDRP(aD?!BkEp_xy?9&D}iWVG}3M zU&1~{bdVt3<>h_=7%kma_RP7t-RrC4SDii%c%q~22j_}z>}P|d@`k%dq4n;V9446Z z)xd+^&f9W)nwVVs`ngcS)E*AKkf$k@wH>VBMRoB_xJ;2$S7HYanhg|^XkgjZDlw%6 zMeI2|W=_l;mr5P3oo!6($+c_KZCI~S4TW8YP?sz=_b>MU%HvqTJGa$ z#Y37>N+dFnIU`#7*$XbeX3d62?8i$}mw64ZrPgW@_fsmqmXy-+_#LS*zZ-J!?Gtb) zKi)!czNJ@q3i329Fe&UK*Rjw_yq6jy%=pyULb;V*2c*p26mYs}ie7 zvcnUFiL)Rd3rh3c*dJ^Rxn3^QEG9 zpSj5yOdaI$M|2Qu^(?f48=hUvZ6FNU{nOQ_mds07JeD1s`K z>>99jn<1&+oksbNd(({|VK`uIVDvdq46H+Bj$cU0BY4omEw)uWu*i>lAh2oxhpcsm ztm3-7e&5k4nl>fh_+c>f?<I-2~KM;Wz@(}MG|t#$I>p$$hK&Q@{xM} zaO8x!Nu34al@Dq}2xhFbQ87l)_wn#HD;fZ44YK5GZ1k@L!&{~p!Pgw>^PAb`&Z)e8;C!)-_-=m3O!#JSJV*uXJ!>sWKFT(!>l zwGhO2Gws4Kw-v3W8fhskYm-_?cMPcFzK3E;_+7?6pmQAF-5o+KGt#IyNt)L{IBYIm zAm3dtZs>8JAk)bRokuh~4{tb_vRZgrztH_Rvl`IcFE??v^04jv+#h1RsbMOiys(h$ zgeW2KNLP5XhxAYJ)+Ubz%aB?H3X~x@Mocy?ivq##N`~}5nU5Qj#v_5QrYlC7J9M;w zRy~H{g(T9bezW#(0(?kA6a(mhy}zt?8&X-1rJ)Z3gfcrIk6~g-9oNE7v;aS||8~1* zegZ7N)3>AD-0b&;>=XK`H;i1_9WkDW;yGW4OaP?zsI?BW>NE!t7Oy~(5e#M%Ml29ukz5n}+DY4zgKQF%fKY3C^K$tMn1 zi^^Dp_d|?a7#RwVbn`#Q;osG7oh}MZom3`i!S>MeQFCfR+BV#@%QP#v^o%|z5F!7n zuPHah&$%cFEBO!&K0h8qVnAp!0N$;MI!Y8a<}J7#9*nc5Ic{c|reanDIajGQkke;0 zbTBO`LWExE1|ZS~>|wX?Z1+*dQ3jN!hJT7lSG5=TkV6%F`?4Pe$?b+>c%@ih)SHhW za4R-17^v}>(wcg!AycORDQB`NfifIipK$S>(9z#p@vsj>j&M6#wW{}4ISqg8EV!)Zvl zCfV`S>Sj{rmbJ0178aHL)Qec%CQ9Ys&~1N&sL7zzpf7!{H~}y~@idM(+7gzc17kz) z)lyw`dKpvltc-C$tAR9B@pI&Z%fi$t`4!}xFnYjk)M>v14>}{mxKw0_swq@IK52~2 zAmYu;R(ayl7)^0*zG~s3ECk9D2al?f;d0?wMu8!0LK4%NQGLBEwQT&Os&yYg!2=23 zjlgKBI_K8KE9?wtvgLb6s)S8-qU=r43$HfFxoPb>s4 z7}tk!M;tXh*{uo$Ird? z9d_YE)-+v*@Vy@WW< zt@EzX&r$T{O2XBJID1w=ZD0sxx74bO|XXid}E42JgI{{sagB%eG~TIuu$WD z_Ufr>o{@|7JT??f$Qi*MKkjNWb8aZ(kR!zp>fn_cT@GvS7P& zm}&x&OnNcX`r_2%8$Nqbs!n%Haey+q82!So>XquuYO7wPXkX~UJpPbu@sfUo_YP^?u*MaRay!4% zCEM5rM~(k0!^1Hj6~U{jxPSEz7|Ul0^Ltq~oa*ox2a_){*<)(=b?bYc)?~-6Ho&3a zlvysW2wA0*bAykXU0?oA2$<<)!M7;yX|sI&n_oZvl7nzV;DwVRxoe^Wu4o)Xm8eSU zjBy3AKyH>~PfXEqsIlUnmjBbrtRV1X*2vEU55_`sECpu@o=u2GkD}_O^n&HNaHvcA z5AoKJA5yGpB49KPdaaM^yBsW6>)dxw@=Wy_g((KVdoH*KQ61y#eY>nGmrLF^JUXY8=Fa6YFyil)44);5K)+3CU%zkY^1H%b z5Vg>Fn2{(a{pmT~#%A~OzF?SEJYzRSxk%34_Kd< z4NYc>W7ZI;FjzR8u0F7M#pu-$%8&1+fuDh)VBkl&Xr8aIuDlPx0BASb23F3AGQDw( z>k)W}zzM}=Y+`cHKo*>L-6P%%k|`Z!Ubhq3>ZAXCV*Rh3CjUbjI6cST%+r5KtTnA2 z_gmvWd6n<*p5@1WnFA3++**t)b2ZSVRdibIwXMM?C`l%pXRyVegw083>iT{-0Tbhg z*R#2=<+FwkNQ*$UoJ*8}))&hfT4^kVPbq4Wx~DDOcZnxSG*6zZ@_kaS zjwGrvh@_*&*}yn{N7a;ke8}`Ky1Q~E%82&j(d_J`q&otJzYEEMXw@~)&>~I8xEGBT z63yim`1*a7&N#O}EKc&2HB!2TINo2uKfi9@ER{)~cp%P$J`w*=Pol~b;I73VQ88vv zH$jeOr9e401m_(uo~w%FeW%q+rAmut^q80!u=J!=&^B_(M~KWQMgi(FumdDwLN+fY z{wCS#d$QA%EMTy42>0*!x2A=u2hh{G_sHbxZrbyv0_C4XX>4U*J@LM);aY)q*~uic z6pESxtU{J>?Pw+dQ^s)`S!zgWFNwq&D)S9_sQnFPX*DFP6{Q4HOy(nFN`Zp@eA4yO zR6?+r7of1|lk1RmoQW0-uU`cA-xlcbA;%1rAAJ@?iMO0h(h{nTH=V?NP?o~o$T$|H zg^md(MPzlHg_veX#|AFm{AQQZlM!X%mvIDGE4UAe8*&*+he!a8sdU*RqqXK}sP5z* z)eKOt#7_ymYt9-JJs|FrM>WQ2;d^ zx;)h_WxGx9rYR`nVpqgwSA2n`Hj1iZ<#8{*N-z~_OP$~@{pq#6(*s*)(2HY#0AL9dDte^-Iui)JP;HYUa5 zKZazHI=YSlFzi9$lVmF_%XL*j@iUa@S&1pw(Mkc`k-I}itkuMc!n+ePi@u>rsny%$ zv%p_mp=&-5qH!xg6W|Ns1={oD7$4e)$AP(n8I-MRqvsn%AjWPg+4Wxh8GVXeVj{uS z9d9@8OW#d6M4akP;Eh84O)?Hdox!9?^f!7a2uaVt8K@&#@9Jwdsv5_FuK#7m1QY|u zKi@9(9nuoe!3C~*ZUK%n(hg8hI2=#iPW~T_SBel3B<@(%ky65U@z-j4fhdb}v$FOboG*BNyI?tLJOCBQCdS~$nzYA8} z*A2g-nS=?;Ir53oELovXnu?>CCGml|O-cBXI;<)NVipoU8Q_RlLHDL9lHZD!+Ju>p ze1b!VSmkc@;70q;xlMr@YHYSq_>4Cr*`HYIho}p^38vq~)fO(>PIj77Xl%&2$EN zO##Q@YBOF8mgyh#)*f^IDz6{$&vY5xJ%P8XRF&%qU(T!6tX8q(I2VlwT*lTur*5`0 zsuyXGSJ9JAtF1H=ms14y$hYZH{j*ZVCQ71VG#71Jl`2NPBo$K*`oGe?) zM(OH)&O8=()vK{}ns3mJE3e;7ZFHsSCUz^cR(Se-@HTdaYfH7L_ip86VjZCA|E44Z z#(k*SkZfyqKmh&5u38q_&w-7UxM)`QxZnKbsmD7#=875 zIfe2@gjh@`(wBC@YO>kix_mIDL9TrSs3zt!ugghC^;v-Yi5_}y@K=(VZ(kjP7b!k^ zL+*^K`=r_{i*M^D=H2Qd#ub-T9L4c=04nv0AJ z2LScMMAo5^GHPAXhKNosC%kxw^M_S@5MhO9zg~=aOP)0JVhkq?0bGbtOM6C1JZgFb8X6KF6cdHVb(~A9#UKYG)e^#Z_ z8t@0#{@w_eHIch_M09N#@R z0ArCz)`oeKzMvGyAYq+4xz+t>1g3X<7qIM8o;u5u3{#{t;g2^&*4NsVhsw0!T|>%? z15%+i)Nni2ixc!<9HG+RB_&^-wa9ia6#8T+v=Cf;ed+zMRG-<8(+(CNc2lK>48+(d zKIgqsdo}CmyuygiEi5CM0iq!iTa$eZ>|!_OezFT?w%2UX4x%85q*a)q;;hLRvLGbp z<5sE==3n2Pf7D;hIr;pMhB`T_e^!=p?IZh5OMljWz&@UN#_#?Dp?2H+{t4kPJgaO6 zPj&a{M;ys-YvUgq?|wgUEPABX|9a;yi)X$UmqZ_aRK{IZ)y})XO)!0iyB>ESWD}j2 z!4-#YA->gp1PXwcABV(RO6KkgcbB%d`AK2zjXzDyUfL>$^)Lt|fb~+x>XyO%3pz}9 zsMA3WtT1oA#Ql^}VXCBG61fxgec3~@GC&rHuncXK4dG%fB@eDb!NB1d7QhuDiud$<*G6K#UgAwamQE+Djl+o0}oVWg(zHvO8U{Z0T;i(5`7jRT3;o z#|%*X1@Lv~&aeDIU*ayH>OxSH?-2*)P*_4Sg-Cde$7uS2VCzlAFizcrf!vW9en-Cu)dqm}cxy689y_%pog*o4u zCtA}HonRGc-cH|VgS_SM!;;)3xmJKCLKH%CK?=cm4knZsx{!R(4@rTBOt^Hd6?XS{ zA-}`PHnZ3Sx1PZ_7@*sBa&lqmfHkP&N7Dzkdm7Zaw$khR4(DU> z!f3A<1R*DjQyZ5;0*B3uo>Mx%p6jAJCsyIGzsv^EMjChhhW8WxsSw z+?gr&0TZm4ZL~o@x+;X>{N)<0aK%vgsWdxubNx@_5ee49NI4?k+87%`Hy7{)EgyPw zCBTfpk8E}C`Dlc4aSv2))?OoIxD_E~%2smtjs0SI`z_g?7Gk;){x^i4GiFyxmjA(@buPAzO#u1~E?%Sc2UC>M9 z2d7QN9}ORFBHJLlQrK;C0S~bw~$6{Ns=hp%uqOcOLd%K1jLt)B@Jc5ym@`mdKz)*ps3`%04Oq z^Y&8Qg%YVmOQVRa5&D8V|sBu)K!vV7sW zunqJ{>f$VTzg0i9WHi?pk!!y@H`l%2BGLhodr_)(){qaQRA#;}pyIL@Uy-~tUv6vv zP-C-DZRz%4NMr@^R1l&Q1BIhk)`O}TDBF11v1V^W_ ztlyLMYEE~a&R(~`IOb5FOp*=diPig@Cme6j+arW{GG~S0*q#AQXq%N;{m^E;ZEA8m z{m=)!2-g`0rSovL2pOnhI|^mfnS_3GyK=qTlz7LX>dvDMwcOz9K4^JIr8@8d{`l|8 zb<+cG2PNqf*F5wW<~V?JL~eC*gA#In+Ua?lJ~v1t{es$qgh?E7DBHK@W*N( z!fK|*;h)Rv@WD5)q=ChNmV7KU=s8 zA3jni-J+m&Dl5DvLart#Jr6bjt9QNH9tl#MFSNjF`Vb$%eP3|r_NM%Zn5&~fQXHL%stq@4J97d9h?r!R@BgV8NF z6cSv_7?o4xup1F5++kt!;^I?Qkijwr@?^Z}t#P*(R5IfhNQs1U_+{`|#*q}0O`oxW zM!qOYoKKE5a$;f*XF`$J0mU%(vDKPfYli8 z$YIOtL29p&^0_FAL1x{76XN_mSY8eD@EZFASY9nh`kELDJdsaQt^-B(-1`a*FXyl> z{=1D5ZtnMmn}Xzi(PZqMYFfSNJeD?Z2}P%wxIA_Gbb+|$BuclL*TFOSjsDcso|D}k z0(zaB0K&{-WPo4a`r)u@)f80+@4f=6l&9S>0EL8IZzpNY?)B)Q#YBRj?`T;nG2M#w z+pqE1fOJkOjcUyHM)RKT-jA%ySQLua;!|BXJk=R=WG!>3IgT6y`#N3KE%{kOu%6M6 zw?`N01|2oInimbp!t^&DDAk)^nzS5Et#kLMH+q*!i`d4CsY^`J4aKNaUfTkLw$BJd zBso6Tg}+B$#w`9YPY<`mT(zU}RJYUpDVuhC^*>OAt10%vyB*_>8RV#M_ySu1lc)Xn zso}q3VE#$Y_%C$M|EfIV`0u16TN_7PD}BfRYsL}Fe=uqOPmH7ga*X|@z`_4t2rPfE z`j492e~$HkqI~>gaQ~L?@lWE+U%Ifrw(^&m_}c--M)xn0vG2G3OEUIt9Q!BP=$lf+ z@qa-!`VUCef2xj{zikzN?cm!0@Ga$K{@;-^|EUG|FXYVM8j=5Y!2k8({CnigKMwkz zs__2-HuF7}zwj*o0-N~{h3~&&TK-<|6gHd{@%+!w)FppFW}$mkbfNT|9MV^eN{T4GvocFe6gn%JVNZZ8D%u4v>ZHG(x_B+lv12a7RgfZd$O;OjGO+>P= zP!GNLiqJ7`RK-=) z+F8;1T-njH$FpZ}M)zoO-^<%I#ry8E;vysTykeb=F@e(4t-U)wEw_j9juL&$Xe)KY z7=HYmDvoDmFvc3Bm`6+$R-0}Nk?>KiHJ zowON!v7fQ%(xDM;dpK#)bZLDE&_e4_Au2y#(!|SVT`v18MNck*q(l`OciGwBLfj z=p*${f;;w?Q`t)xlDoMg$m)+r+xPFm1??F#0YKjuAx!BesT}ao zO)ox37^ojTpob$2^k7E~q)3WMF#%zl_$zKxFeuu6KEYk=`g10j&xyd;V)I*IfEVdJ z!l@N^i-ZN%_qV{H3G#1&fi)od1a6L(?@oJc?|ub78={=!>w&w7)6D?)ZSkmv`4kEY$9W1-ptSK18b>A|>4@Y_*hm>GXi+MkGzf=ZjMYjj*iMm;J08(lruww<`FpR`Ovkv%5e0^BWiq=AhOEPlw zt$Fj@zxaXSgkW6yMoueZM8cXtlWb=b8pp_!`xV&Gi>0g1rapJtKta|vGw5{Iv_D5% zY_AIuv4oMSE2OCTR7{EUGP_q(T@ae9RJz^J+O7?#=?Yg;u&aob0IRyE>gyVT(p zH|Du-M#d*?+GYJ^Uul@mG6XT3%IDMBV(+a!y=z8TI_}`th=;bVly)D>p!e7$S5Qwz zr?z)?J0N!ji}gODCc*L1{*DU^*cyaQ#y$VEid6jc0g>Ml^j1^4m9D7UU0O5qHs4a@ zAV&3oFVu^1{GJWdmxGZ<8N0<(aSmF0&%mbKr~g<*!jD$uslrzJ3nEKNu%-6o$bv3x zhxXY~C;Xm_caR}f0*j&&brjxgsMO>T<3R{?;z9WXrDlQ4*~A-R1r5PgIP>4nP9wcai!201IXeAU!5b>jpw%AG4}eJ3>A@Zm z?uXDC*G+1(RuiopCD3vv&i>3ugRvHs8WFLr4RRA9Ko7xDIT362B~GJ(WH;$IZ~%EW z5-6Vu)f%!!7Kg`ol^sa))|lm3e$VedH^g7G+GLv-Jdg&y(I0HnZ~VrL#%yIk3-vWL z!X6*hGTJ_AeTKf&T$Q@S>dNn5*uAy#p~n_^+Y;ift(nL7)-@kwI8{(%ZJ`AM_>vUA zzLx3bJ%1oJ4p7o_o>c>&c4H_gm1;O-fo>A6C3aPid0+|SXqA?-rDjNV#o`f)2^cC zROEp{7Y6WFFOM{dz3rg^IzcY0rXXq0^q=rl*>zvA7E4={YTE26(i)K>W;GYZeu?gW z=iTRKBMuyy>%%^xGqqW#Z&{_;p58rN?(Ln+TvU7$$EUDN{8N=6aTbIV)H$*2>7YT$ zdiOvkiG6HI{fKcQ>au{Jeb=mj?U#yA)=P+w=2Gls8? zP3@6}%;%2T+&spMSW`Y|(>+=~Q0(69G3^t)uV(~KwlAwV$;AHY!0c1LeBZiCD7^mR ziYKJ=_5!*isPJnwV+EH!(HXNAP9Rkh$iQ$2d)>;8Yr-quGQH^SmKdhoLX8_ggM&1N4Eu-G}9K;wCxSN=>XlIMg(t)LGOeYYWRNfPUZ z9F$#ojI~5#si}bfIVy?vPhORVcu%S~ewlI4(*8v8xXcMHpdxm=_}x8)W!YrH4e&d( zP*{S3IH;fMKN(~XhDwk=?GkH%Hs#Wbu*oQn?5UCDw=Li@HUg!rU9OF(?uxkye+W?Ur=2|tulpE$jAPuO)cqY@6)dB^g9`wOR3 zGgT?t%LB|05mmxJlId-hQ~LobcCj0b{rk_z-DC<=cO8&40OQ(q%_?t9CuQSJXGHK$FaVKU zzg`t31cpdcz=oqgR{dp?AE)&;t7RmZU~SPJ?xdv0PMb8W+SWU&o2d=Zd?_@#C>82u z9WzjoCP=vFf67Z|yMPqym(b(^v9N_@uR9CjKmIiJz`WieC4dO@jF*RaaA?7Q7eIsv zBCe74qc~Od2pB&^!GPLg1&YYc3_*PnTH%_sQIlMsu1NiVX#2+CN}F!cIGJ!_dnUGR z+qP|IV%zq_wrx9^7!%v(-Sd9$hjZ)HJ@@{&RlAuV28!uyIku}I zVSAxF^|XGWMPmFBCRvs$Rc`hq#H71~0IJu@b(*6z+MEP`v^+1hMcC6BNV_IFt zvXl$9?a~nYHUi4xlF^xu#3=%mYg5UKAx%>z^I4xafNU~lMSY2Ts6z`95+%wpC-Tlo z5Ujx-jwy?YQi-Lo%BILL^O)WUfkBl+Kial6x4G>MRg8lK!+0eQ>@_@hdX&}UJU3Rc zJ!N^Q0JmYmTpKWsFM=gR&Ub!>G`ibuA_!N=Sijp%Aaare<*1+ZUr$rxExTIR0vIj6 zrqd4J9gxIimF#;tQL6QG=Q?wqzJHA5Vh6%;1ekF37MO|gRE1zg6@=>RcAtKz?~yQ- zreFO!R+#OOzB9zh9JwM&%l{x4jb}4a*gnJYcah~!itfE@-E=}Kb^0cunDYw?J$4~p z^oJ3?icOiZ$9nxugdIcMaKJ+PmdYeiR`HFdS~JyA6*GpD0!80RPTbZKP7TR(Im2M)E&uLAAk+mhY@TCwd zi|6DB>0`Jc>-c(dxBLcv%3(=?aaR#fwy&vDn1NXE__}HhXkB=%N11-E>5(eZ-hnJP zPdW(HKXDFm1f_ig`j)qwYA)n&l45NaHhz!g$FGWY!MkJTct35~>I8_}rcwVG2-(D% zIPacDHYfCS7AoM8H5zI0WXhh$s^w)UA1>0k_~}xtFyOg$4t`di);51O;9Nr1gG>M$ZG!81lEHKq!8~h*hYxvDds1G@0!rCkBBS^OyY&MS&EkVJf!IO zuqjcCk3qeFf{|3SPOuF>{O5xf2MtLwkE4Smj_$CNITu@8`{j0jVNG1C$WFYO?M2ED zX0TG?3=F#b{nC+N)*P<$zlF+!9ib}E@Jq#ZPaGs2Oiy;;KzYo(VNvtL(Dlme?M$$x+K(d@$psE^~soV|+0v9N3T-J@^(Rks{J>>$Y>#YC!e< zIAH!M3RMLrVG?Tc+;#lKUB-N>x!mfgVsu&Znhf(A<3>JB1wLiocNA4ysx9L96Zjy= za`V4Eu>31y>OYSp{yKyCJN@Rrj>Z1Uy7`Y#=>+s_th8dr=B8#&1oX_zw1T!)whoGR z`i91U13wpYLt_O|0a^ibCr3GB2SHnFJ6oGSXMk+9;xk2y7oEmJg-DqDci!ZC1&q(GcB0(`aFT0x?EBud-lJu2=dbhwD6}kf>s>x6Y@< zhe9X-4MJ#YgGQh?B9mgHYp8(1rA4(@;)N@9H zX{~;k)jAK&xnU<94?hlDKYQNX3&bSCv{PTc3SVc0#(&tG`CT4aN7u9gX6izA^{f*GW}fR zvNv&Ht(K|ur?gY)!598;!qZ}>jrp4Bfz+9Joh}=y$G3p3XRV!&wL`3@-rLk`LE*Nd zu6XQ>=DKJ-=Td0rqLBTqn}AfJ?Z{5e{cBS-JWg)%^-e)++4Pe6;G1JbaXaWYP!t4y zWCRQdB`BvAXgj+&um?zEG-CI~+Wro*JZ%!vv=Lc(~z~ zkleG+4>@5K5gu;jO*5Zy>Yul&+-zqEFXZRjthrf)*{pegjD8YF4HFG0aldHH8vE`X z&kTYF1Ebb;8S{%ws{Ig=5nGHY&DhdGLjHQMf0w>rm9L!tIMx?Q85yQ=ktMN3c8zN9 z=+;c{ihj`|nJzPpHSSQLqwAg&i~WU1AOOBI;HonpZcltlw2B5rHNz;iYUfzHD59Ca zAJ&VqJ((#>gQu{1lh^Jcqs2;fs9H8vy@BXcOh9Qnf|woKq@Z}WLt4F2C>idh-6I#HZ1FKB?RHy>Z3Gz!3=sSCW^|^;T?=99TInRKAXL%prj5 z2D~|?*{6)W_0`7MLa@bUV^zBkDMjFag0N)X(K-|e8qkh{5z*2T`d za>2#&UNrsTpvm~&A(E37Y-Dyq^V&}3D>SAmFISTYM{0)t-6+tYBJjXkuD;vaSlCYj zFuKV4YPO5CWU%QBT-4joW^smbHezsDuzTP5=s-E>&7AUZ9^y*;_3iVg$+ zX(3^6TFl6N0E|%Q5*;nuw1!J<8hhH|#TpJKF7nmX+{nOv{Po036fYG=^-nIJCEnzg zXnk(#Q(Q-rx>P*PnRSJR<0$zo;+cI96(pu1K}SOJhc#6hvH8NtX#wK=qQN3<((~Xv zUBic4oz7P|2`#IJtxUSll6y`cOOl%ocbm*9x)&qg9pIy#*Jm3Fx!4yNa>Tsf3HdDE zgKx@{kMnLn(1KLF)z7go+9)rVLZ%mPT{N}bKQzKT?%4!@rg(5*`+pQ4;C0Am<3-KJ20ZD5Xizg&RYqwOlw%Jy7#dW)PrIew*)BFP3QXX~x{3> zAU*@P{o~+kclp5L$AjRFlk7R|lAu7H#b{>~BU5*Hw4;uDm)`=e&Q9@Xv5w~e9;lL+ zFlF>o!WL~IZMYg6Gt2Xnpn%O8YO4z)tWOD3VN2Bd`X@_>P_l9WFon!cY0Gs}a@;`< zdUyk`IBfFADW3U6w8{ql1)bEVxMiJD!EdX04$Fm%ULaJ_YbKGGPRF!ZO8o9k#0+~l zNiQjjXd!qT)`{d$RP%|jDz_Nc>0H|!W`AG`0|VbN^>ihfJ<@zm*WcgNQ#KssH2=fLQ}O%lf|1 zX5gqOSa?2db)CxP6+7#BaL7R*O@4Fha=?`Y{cM%g z-^a=+0bZa7RM5}gPTS%a4m)@wjdNFh@G5y2gtHQBLiGW35bvPZHerk;(j8ms_@13j zO}gJ6G<61zdK2$YN&j&V*0WacD}~hv)dV1G(mL z4R!^q>HzUhZbt2CI~N z(iHp~F18>!uBbwczPwK*3RHAjylwG^wXTFbf~+`3?he^zDh()VNgKAwc0~hc!S$=% zRIokD8}r56{6QPqTz!NNpm(fXe~np6IrHKI<2k;~$Y(`^X8bNevGcGM0iN={U(xJS z%vMW+2LoHXDT@Felk?k91^(pBt289gD3bw~Nj8~ew4gOD_ zan$q!p(0Sqr5Rwn!pP}^Q^3j{Bg=wQ%IW(`ZOC~dE^s+qvVN@T`Q zoLhsW<{0)pu22;swbI}?Wiu50iua<|i@%qyy)P@psWpsDqOL14JUXr2X*W4PZI-7j zKnwv3I4G$nT~d!If(Ud%#qa&6P)9Bj+)S6RUaGUM&^-qqIRx*^YOd!yd ze#|L7LTJJwoH*W@Cl7v!q3C)T@UIMV!Ta>CzTsFw{{A9-`rm5~;#-l`hwjFwU=1&T zk~n^maaNH+gYS#@_DSeXe)k}Xpy(eV1{dl$8>2HpkTcJh8^RRP{ZkJ~lW6=$FfftM zgE2-uWQoWRr%FkbGEg!zFccLKOPbl@Z)LE=F(_ZJLB^z3vh^qMa(C`;*F1t^Z@hj_ z8!!6iBFd?Ksb~fJR#(Ch$)#`?iY{j|1_1}a0@bmRO}~x;dQstRBf7*j1&r$B=&}@& zR}NC(=x_3UkuZ`s#&9ni;NWi1hlaD5(|JP|~=F;E%}fCK{<47Xbm3)PB}d_aDD1bstnrpn*V@)?b2* zi~ggdS{^GpK5(uL1PU@Ht`8?;&vF&@!B#}?e+zbE;e-aIg0zhCg9c_s}q z9J1ZYo{rBrQr{`(VtAAeKEFdtpgFU|ntFrXCpH==UB5)Ti3y-D%XAw6027R?%0jk5 zSw8LlBOdYCRbv={a0kH7w;pqC#CXBgbFqyO(+MDTpKn_WuT47fN(UqVh$m3Mlsn$H3w# zFPYqR)_0c1Ed2yv3a{66Ot!bE=$hE}*Q#()_q7l8UvBz~3sYO_zL3y&8h@CoxU{`{ zij}RP?D?%Pq`R@A)NS636#n(35MVr$*kKusHk*^2i$R_`KIUDwtZ38^sExK%FPZ*O zgdy_c*OTHz#Hy=s7iP?<>~MKs8_lh&Qj?YjV{Dj$Uo%s zS`yF*;-HI4ze4zUi_az^Pd>!XY?}Wu+ZGt4qalT3>9*+b$2fC6&c+iU67MNiDT^O52F)8Cd<&7+_dK5A>G4&~S#QsqB0~!L{}ixVZxT%Pau11k&NA7_vM*u7?2sv)c54e>UCw{On4lxwQO5m3Z}K@Eh)WvDh_glR$h zvtXgZG->NAcPMF83!^Vl5>Q&B-t$M~y1A=qJ6|irmbIu|`9ncNnfaoCftZqh@dINd z-K7(JxXC$uk59`S^*nepnMzA|WY2UBUg=~tc=II2r4nJ+h;(V#w&N!V9sq9RtN3yR zQcIc(Gmwo@9Kma#K2^_Bu%WY*XhbT)xq8bH6aD<{fskPxZ}^4H6|WKPMx`LzM{P^y z?83~=j+**MU4+M{+UKM(gt5|R{ADsq3Dw+%fN?tFK<3; zbFsKzfE`QC!8L=;rgEY}kWPU#*48t#o zn=MV(`Fjr5seV<88H=F`-eq$b=%);5o%|+G(wzW7bg7i;wJX6BE<)XTJAcGY1wY+| zZ0H4#TTNNr(gd{y*;mI0eaN!7lit!JV}|LT?|Ik>u2m1%CAHVRMn3n?_Y#QsxEo-} zY}jhIY;kGBGeORwr3|f`=v7>czTV@q+9*wW7D9cc6oC@(Q0JaAgV+?}R92!0@H7Q- z)tmFoHb)I`;;LgOiPY58We2LL=-mnMb2zx$n7H*8akzsSOTJZ_y)vsYRTm*;@`4Xc zAvSGT_2>v*w_{RTu7z;ioE@PJW9fC$=*cH3=a&grlon%9$Z;?9D&gx8zqpFj#U~Aq z`Z$=}M?$q)u4ClKqrg`+(ol2$}2Q}|(=tzTE9xsSA_n)cY_N}Zu+D7`>M&lOP|WtMn)U?^TrbZ(v;F2yvEXSiffT8WGA@#to(A__gb)jACKWU7KoaJTFgPP z+kgC`VbQjUIpwGpr>>N5MK#IWVVTt|rf0rq`G!y|;^nB!&or=M>*ZsbUUgCV_QrxJ ztBQN>d$>x1-%SuFGIg;k`jgM82B~xG>cWD+Mkrap{kw<6V-2!nsr4X@*hP{W%3_J(NT=!X z=+33Mr~@*ELMbZ0kV!}qb00XzNsq7jicP=K$CNUZy8F?UA}tnq9`&5E>U-e{s1gq( ze)Sm7mRHg1FvXc;zDOspi<+PiEjfD%mv8bCNx8_HUG*B<%5LnQO0s~!10|(Wb08>= z?a{t}oBMqpPhO;}2^&K57PEh-_q{8)!oKxA{sfQqr3U1{w>M^k+6hCKST>`@WbCnrHrUCp{;X2jiYn>tkEewX z@C%+6{eHFQccB^7mEf8~QO8|c5Q@NE3XrPjoGl}ittfd1Zw=Ojzw68q$p^(m(VtJ< zeXdWuM3IS!_jDWuy^OFQ*KPR6GTmtsv;Sh5p^!~i_hE7d#ey9mQ?XH3v(+uaK(mEU zdJ%64%Sr5Ja`WWO~+up$-nqxq@xAxa_lPM_9d`LlHR!ER~YZ?&!|p>vm^ zN}0*rrCBLu&j!vxHH9cg1Lvrfg0Q$mYb9@`^2gil=m`4-L?xfKQgyu_a}0W#d-Uy5 z&})4->WR9_!W$E*Qya0V@^28AC4%;sZ`tYs`Sqn*lAERgkC!&| z%bp7$*pDxN&knvcUp+zE_|E<{UHmEVzsv1{^El?0BG>A&G+G!uY*VlfucH)Ym3G+4 zXp>vTWH&x=sP@(-RqEtGAz(6|qv{n9LwMlf4kZuDA9vXRXrHTb57+N?VZSXSG}qkV zv+0nu7P+?1mGT(bS*a(*f^n%oH2@AE#bZTB3i}dntAam|)g_eLrbnk51e5BHOtdY3 zyE;P16^?853i#6iU>O0hiAQxfyF5Hbug59YkB?w*McXy!gZ9TcG!$4g)95$kv&Kz& zg#73Qke+FH1Bnd6DVx7EQjZ2nab1r&tvusM4kTGnnt4|7&Gtq7XzIaXzO)f=FOT05 z6eS+pFR216sCLtBmEelvm9F9!c$nkks)bmeAm0R!PA#&$5gVCMAv@KgPzBx*7~eXT zMT#RlV7S^tzL0Q>Os4%NN`PN$Xo=3keyrKoaWDW5%AWoA7*p@`WZNJnCEWefz0+mW zXy89%;#5yHbsCB0^F0{6^gLa26udcZ0)PQm9U@_b}w?g8rtes$V=# zwy3j(a;b52vNf@}FmnOgEJuZq*M%c<0dH~gDP_*xn|T#fY(8`Y!;|s;{WfiEQ@gw2 zB{RlFdW3JtU{RE% z5k%D={AE!8)`4UvRK!{@Ac*7y90oQ$iw2nW0^o^+YJ8DAn(|z|-0?2dwl27_vxmtd zMFyXd(m#YKZUq2e_UHu(u$4uxKjwFazjB}~dy;<;>7@HlsG~a3o#IT$0CfHsf!Qp^}*T0`|)tIPN%c3lP$6dVc&K zPV^agXA{74`QvJTI%h-`HHxND(~HH^hAoDyTv}%w0e1P4qTe65Q{&Elll{+nt4{Q( zczX|z;oXAkoTIl}V$KE(R;hA0EVLnE#PO@SqUcm~Vlgx(^8o`94??!i@HLHBdo(LM zh4m>F&yI6(w9E-~{~GWhqPX=;J`5U0f$*QvMp+HwVaw>amo30HXl8Hl;Bt$u<;4Fz zv?(D#LOBS4$5l-a0bJX54#8K+KS~&;-WK^*Y|@g}*_GRcvgwN{r_;IL(llX-{@$l1Ke4W{^8C_9%}xu zp#=tfFkuqsct(IAgU7^RO-UJn7na@o_F7q8rb+aD9#1cT-zARS%DKM1?4`WDbl&vT z#-2IDbx>6|i|4d$<*lfdibiI7t$j;&ns<}An0K-Yy6K+*@tl|LKsPyb@RJ2qyDH13toZN!6KU(YSjJi6eYn!b#OSr>3V%Q1-DNSPD| zmOJ=^{wG0ykvXw28P?J=I2ZYwQjLqYNRqOi1&a^01&RM=?PmUw`l4}ASep`60BL`T z``MXFWt=OUJQlc)5t=D~SSth@a|c~`%%U=;eHGMs_(CD$nW6K@q5qCK&j^?w=HRK& z4Is(K$qRP>Cq#d}(H74dD=d%O$SClXDX8g~yFY)llzO24n1+~SEY8>S(^E(L`~>ns z`e;;ld^K`tT8;wxN`;|Bmbuig319kh+=APJ1r3Q}vCORa@eDou!34*?ikD=949xO- zrREypLhY*cLetB8mJrLSAkIeSg;Mx2(jf>wfTi;k6&Q=-9c2qxC&4!OZ+6H$7?*yH zn*k&-DkY3o&|{8&Xy9wf_!9tQOI>eM0C_aCZxf9!=pO+v<|yG0Ro+7P0yKWG7zpYe z5s>qr!DW+}%If)I*b5VWk5gFkr1^kil@<8SkSwGhTAX&E-0`Qa)@Wu-LBAGd8VaBO1c!L8seyh%^6Yuz0M^wt^T|RgY zDk%Bw0`m2F_oSI}H>1I6P8-#4kV3CVUNknQrAjmYh_@i&WFo!>BI=J4MzZ2DFGx?# zzUkvu;nXA-(q=gkaNh*eo4qxo$+AmMtb6N{ej*I&s&p`3eC-zt2_<<9lpurlOJ75) zM)?^olF?}m2!BzkoR`C_VWd0GBHY+I3%;m~@=+V(&lB?25p^jPKA&TUee)h+tBbby zgeqFnGP9*K89Px*ox+)ZyXn=d$7x>yu@;dKPM$qYOTs!i(v&W-#1xa)LGu$r$%G&6o>(#WRXAg{u z*1{w)ztSNHuLQ39^cZgH$bf1_^z}C3pf^8CVnF0rzq+~F)TCeAGPiCqon`@1En;jg zRLQ^7$LcZKs!}!`xHpTRtuZ5t-?6Yh3UP5GDXk&g877ecJx>~}6jT;Og}6JmVbtM) zj>!YJknS5WM#)mdKr>}kE2!_^1~1qS!g#<}P{=E0QlV$SUyM1PD|>qkmsA(&%;4B` zTC-%VIM>-0J@Ii>(_oewnJ6`I!m?Hf?ePI4+>w zUeG=hsn2($%PC8LV>h7@l?pCf{|+$SRtjUsk4h)%-t2MC;4zYxI=cX)5xXHJmaRq>GHE8d>ePj?ag&YAsW-FkO}fRO=y z8d!piF>+B&c26{pHw`%PyvPOI>>H|?4YL-5x{JN@u*X<+X%N^dh=iFF6^9F9uW&2z zffAZVgvPvolYm+7GZU2Xcp9m5C_7kSI;{BqJ!<=nEfTu*vFEiYc-MphPx1bKq1xhj zwB!3I3Fn0&VOgJ~A5Z(WnaPaceF{j9*3&%$t6yGz3-0?==`-+qn(V}6(XSTo<9cuJ zt?M{bRkE{EH67FNG}~X)#t|)1LTXn|C}m9PT>5vpc*B_zVU2K5M)}pJdoLyJ6wFYz z&an!ZxAo1-1pDgBh0qB+b}~mE0#K9IcwAxkJxW)04|vyxfY3ms(fP_=dOuzb9Bb+9 znmAnfW8Mz2%x3fl}@EQ&WssW*ka6$vIBBXN#DO6DscTq2XNk_1ZdD!d3D76NvF z46{+VG&#OD?75l*np(N9T**8wJ6SZ2Z$p~YZ+C@8GLt8zvaDrxxAbYPJBxl(9G?6N zIY5^dN80M;x(anFba@PW3bOd^ONb~J^3WYTQ9g&q0&9|Ei|6V5JL<*>OMj3)OPGD# zQujiV({}xHcd`5MnFq2Ds+MDH z=ao>1uh3pN3azr9-?U;ky8|H<37K?%@*Dab^kM9X)h>nkR7YrzP!}>~@U>gejMJl( zz{cFmMRtuqqVt~kMc_-uQ7)i-L9wak@e9TKF$n1@-H7iZ=ys1@5Rg>zeigLTubbGC z+F`Os)}RgA<|$yg5!xKRM|vrF`tn9Y;?c08DCQZ^_$emubc2g^VA7x;*p&Pbr zfqli^16LIjGS?O3Id!5H=&Af5ZJ6b%@}*$RvF0dYsE8+ic7x#84q-)}r$14A6TaH= z9>@}1)85^&i*>)`@nQM`f}h`Q)328V6k%w1Qh-|{vSgeH+i) zi9U@;j-eag2;9h{wJ&|IfuSydi(MAMtvw!>|3=&;#t?fWzvVpYxBv7d{=#m=#5rxfRI zQTga*(SeAPoz62zkXJfA6GIOR2`e3>N)DWiTL1=jy8l1d0BitXivM~KaF*q+g{=De;PcrlptvLB9RrZFx>9$o7ue6o&Igb)G&^>9u@$#DSzIYIpO zg#7Cn@}S7|VcMJWQ7O7t+_ZNc)FL+jn@jn4MtoK_?tqlkBeJ#3sU{ZPo9@^=NbCAC zc#L#ur#Plg?!#w!uhAWAZRA7e%J0Ok!`m?5Rhza%;iEmTjPCR<`4}Hw{%vdO5Y6Iw zbZd7J5*>oYjYhc%>D(twXK*d8q^rWT@eV?u6z1$6_Bo)B2A#!5nRcq(=d+at!Ie``#ULsEo0nFR%Z`toC$eC4|_DE6=?Wn`Bdu%y+U+k326#BVfQ7B z`xYs0xIL&pN!TKM`1BGng&d{V|hio`EF~ zb|Dcj#}gBal%AP^^0V##XYI)0_x7cCK=2R zifBD+mAPQ*C)rCbhG6qfaO$du^FY3_V;4Z>t6zIWX=D?KD66W#;r}{*M+RC&V;;n& zzm;Pzd-E*r&gsrNtf1{zoxaDCo-ljDpAMBxArq?E-sx?$f$z(%c&K20qXu8Qk)PcE zQZ$fr2l{+l0y}6fx@QJ_o?Y4?Df{(B6P2R9#;WB@6jgW9j`<%{D^O%@ODe-IhaC6s z5t==_r-}MrREN3Iwb4{{uF-GQ$v3|atGgmf=w3g^4t>Htt||IU#K>N*mAGMpqFt(H z!kS*xv05%7-~c(nq@&8pUft&~B-We$8WvI7VsdGSSVsJm#T2OPSlEs8y8sQ|eym`5 z3sJ+CQ7^`j*@4l|iPvmw;Zk;B%B^;wERPGnC9>~J{e9o1WC26;kVB= zQqv122SO%`up zY}q&3X863DfuwA&McN`v&QP>Brze|I11j`Qo>sk|p%O?L1R*{u1;rt)hhvNeiS4|( zKJ%M&35~W4sG315tYa{=RO-=lKeg4!@kaGB;%Z~!xVRT&r1M)QEX@566^tc+XA>!T zI5_3UKQ^e_W9M}XoOzn*4l|yfH<3avev?9{7g3XyII5{u;jV1&W~GT5tYD#w@=#f; zKIYhTi<|YY2Z!3nMfjxMU*Q3AGBmqbgs*jER|_mC%^vt(y2-+LaM6`m`gERxN`k*~ z^qb1So?Q0*C)($H?!Zm(`aN=`QsJE|4J;1JTfj^`8*h?|og9~7{Ui5IgxshMLOI@3 zrJDAzB_hB++=f)iNog}4L@9;Yb(fOr=7sBe1yZ9{PY1qF$L%HZS`ISqA!uEx3U64F z8+1ALuEm!-9}?j&X6BUJAN~xVBsex4WqoXmK%MdzFR9#$x2dVxh$KvPcf`AnA%1rTGV2vP&GOyPOLo98Znf#d&U`^F{J-rL{JkH}t&2 z3~noq_CLd%s{okHnMv|#3FE!*Wa7P@w~|Gx5)C$5>Gv6Lr!Y$PR5M-X zgqgn%kDIDJ64tPy95kF?R$;zeU$*TGm!1Ol`7|e(r1Mg{wEMSTZ`ct9BwblDpO==(O*YVe;@dl`@xD0<~0NGo1o zUkE!eYe7*tsVj`ZevuJ1A>cotxB$@P=-j(r*W4Yyb5fugkm%e*eLF|6L9i{qaLA?{ zAU+s2|E4@*GLk1i`a!+dFGo~>Dn-$`4ZVgq{OSwkN%a~v?_fY!J%|l(xcv10EOn*n zc|Zm-0}`EKaRM6zm%W4vkBVJ8LHPq~@lU*$x6N_+YY`o^{b2v}1kPm)0pxoD6b|`6 zK4+rCi+LUPwFB{NQjK!o6qz2Bz{_NulpQ1H-k8|^=iEJaA`&s!tVd%Bl{|@iG#m?= zvIYVEf+*8p<0elQ!h=n%x@GMvelCkAOI_qQY-YFI?HvD@Rycz{E|)?e31KtsCEEWowY6N;;&k)_m0exLH@#V#Q%PCe!~BSJFKw`r)l->i*Ljl^V?&7@6$ENJ`D9jYl! zZ>hws4^gX%<`@z3ne^lk5q{b9ygHQ1r(#q{b2npN9QjaYNXU~YL0=qjz9(#Uu&q_`ORRj%36e$AN% zWbD$&8{g@b`uIxfIZYf7JC|HsGUIuz>OZ+EuTCQ_SoKUK)*X&EOE7ddq2Jwe#ofMD zpBg`BkgBmXLftzy-fd%f_o0+PU)QNz38S z@trZs4*?#@!CeE5h;yKI99L%H>;?Um{jX>-vR%XtIm9L4KBtbOS>H)M4jt!XvL+@q z4i3;?ZLKA0v=t*te6T9nCTljcQ;G5fe~9nz)9oh?40vkh-A&!p25K2ni`eVa_48jZ z@W%57Kz>d7>5M-C5_v(?&Oj+>h&>sx%ONa}dS&4X7=2FVOD z)Y!W zI^ku0&%oRm%GUMl8A?p4p`$$47{#uCu~NsGG)JkM#Oe&95);q0^!eg5DC{J!%R^IB z^RfBc{#fQqg)=fNthy{Ic_(*i_=^-*u6w_nJ%tA&-?2q>BgQ^Q`FHbqb?T&7vZ*!X z3>}TOU{i7v%8D%VDxC)Ss#FhigwIVIPX{^aJ|{#&&&32Jj5C`rR=x76s3 zHY+=)b!+(XHc_H8l;&CnIN08$^>ObU>#e@HzWr{asYzC&nf%EQ$q zqyDGkH}?H$jceFvQ1mxt`A3a#jZ!x&>Ayu@**I?lZ~y!^UmVS5tC^wb451AFF`V+@ zVM$J`C{KJh*Ur*XtU>tF9#r`CLjg4d;AMcCyt{$OgLxps$5fneJc2m5hV1fHWG)x0J-NJSWcS@7$@}VRH|QvLU66O z-<%@UjNw+Du$q!aDw(t}UpF|-C>rg5cOfG(%5z(nvOKQuowRQ@cMi`9_}m$JinRFF z*(FmfRkJpUsKgEw_jFfbg390k=i^H;J$13QOr(K7hlsL!F0Q(u2v`);bYorQq7~Rp z*zO#ZvpUgaxfv>GREQ3znA;5ONX49YYEVDQW7*37@W4zjqI651yNunOO2qpCe|$2C zkCLplj^QHcEUz)gvqk^Q!=hIH9!`3Yk%?73X;9>vE&bP=$sZHvqi3c-vvO0yaj7%6 z8Y}Ll56%GC@wR^rX3i# z=*$!d4!`C()T-rKQ$yYGa8p$(2c^|P@^}yw>hN?A&%L>b7u6p?xr-GbQ8^o5VzQ7! zi)VFf~d}qDfFJH<&beBaV6+!L5 zjO$U^{QZf|UIDYRlYWg}&4|nC`)b?W_bFIYmBe8XQ8_y>uLvtZ`>cQ|wVe3qD`&Aa zCXzbfMFaR3t1g7-T&t$PfUI=^|Ib&rjFi~FW-lz6+TP<2N?h3eqlNugI6&_ZZ2k^% zT#mcOtXm_F&ChG~&7qK@a&4J_#*6>%q2WF{H$1EWBPm%}VX)Cy`RkR*3r|2b(_&Xml=M zwW97zd<2MJff)s-c-P)w47xUfkATD9i!qBD*T&Y?Z(PZ% z|BW(pL4L#QMw7%22{)2kQ5Zu8fFb`Ub8v9^;lONEvK@bPf4=8v+`T9?Ans2Ga%@A5 znNa>EG7sQ5{96|s*@QlN1C<_kR%yudxH|u}5!-UNoS==wpX;boXs}ygqH-#KBm}Vf zq6Cb=LUiU)NT1SMjn!+4OZD?>chdDz8KTD%an7{@9zbIEz;FQhdO>mcTLF|_(AO*b zHBNreQ+a4C^b?B$M!{$8tgk}|4Zse^|9f_<#%KHc2E9g8;mFo{$Q}OnVKUY}>%C7V zIrkzcLHEs5M3H@WA3E9XdJ5TE^CyH?l<7`XUXQdh(ja|vxpVk9rZ3}U4cNp7?Wbey z&asWJa(1qU`QX7|3B4X|ya)_BF49tRHI7#oWrbdVk;~Ucjrr9x&$n%IaX_B#%G7O$ zVq2nFaDzFZnmBFKKxmui=C4nm23K-75iGphVbTgtorTVDz2QJ@nFouzNG3)CiKzbSBSrG-?MKDn~VuR$g#%KTS_bCj?Fe>U=O*|yn1i=f3QlUjgE;{Bmj(6H-$dpFiK+JqK)f5Lk% z5cKQC?LLHCly=>LS=K#UOV{D`@jgG@Y837n^xbDU=Lc`GmO#4C68d*(mP7i3SiDtu z-*GOQkT+oDrMGw)u3=*GjvQKRrC@k#l$WmA%2Q+G&U=&Wo8vFyG8O`F=Q|uqDLFU& zVv0lXzUIbKajnmd8lyC>ZK zNhVBYS{?O8u``%6$}WxN(Sq9J`c$<5vkxQ1+Xw?KFGMo-?Ko{Dc6(I*Rgpr@>jjN* zk+CBXA^z<5)a6eSNU*l2ke9%zw`#=xTDut+po0m;1Gz1d6D{U=lPoO^hAq$02SfIo zA{>_=`En0Y7h1Hl1>?>)uWRcaDw$-W%&g5a>8PHKBHo9ZOOIE$zFkT7!oeLMH2NQo z2W)Ont$`nIU9ijrst%Zs7xg-6{AFxQp|Axjs04}=) zylkq&9dbZoiI*Q7`Ai}BEgZ*1B){Y_%0`T|UXZAnbF$*>mY-*upgGVaf2a_G6=c-`t46jDO2e7 z^V+9_AN;i3fM@^*-Gyj*CJ*(>(y;YLdbF z+t%-@97?d5jI7!+Zn%b=KqjfXC_Qhtn7mn1v_G^-Q znA6FqzLs)8&<{n(dPvK$Zy>f{--0g_MJ|}(jUz05ffP1jYRWegP=FhYsn5M!JcCe8 z-~%9;tJ;D7s#)q5Io!v$@`sSbAx2lf?m$};unJ3UolZTNDYKWH%?H_?2My1FQuSrD z7c3`!d4|j9pq!qcTc7i6nA-A0Y;P6eH{t)mLs}9>2y}Q7LGFEUg?O=xgihxgC~tky zhWhf%Fr2I?p;~EPd=Y&UyO9ui^dr+!v^&Xz^jjvz{wLVl+>{pCEMO(vpLRH|oFJ!l z1;$jrdWllM8WLBTvB-cI0gi?1>vgc`C}wm2O=CYvBCdbR4CVfhrY{z_NlX7KaI4_- zJ)j##@uE8nhUHe@DLDzr5m`4xuRa?8@V zJU-`~GYo#rKD6>TJqw8{M{zLJPz!aWG~jP%_phtvV`_LZm_2sdX9iZfy}aMwRc>a1 z4dkEwf=O!;dTt?knH9-o)sZNnTA+b;LsqQh&NNzI{>p9LSVxF~^W#n>t*)g>&Y4Pz zR7q#&A&fgox*EWq1{?s^>6wla5n(ac)fi&hi4t zPSPD94gw21(`Bs6b?W~j@2#TZZnm{w9D=(BclQ9HaSa5w;O@a8G%mqi0}1Z#?(XjH z?lkUv{Vv<mEINbXEUn$^1P}&5Dx10^~!pnWVD>o3))$&g;8t$+K7$ z(t9Phj>+s;mPT1%du|-o-*(fJ%@EOr7sk72gG&v1Az&Kq#ct50{ zRjX7GTGgQOH8lE-l!d@v3_8`>-2(AAMS~wWZmvR@0sKpW1}k)Dt302}^mOCONda^u z-0rQG*9+xWX?!b7w2MA#O9PGx_cf$3i`b59Px&V%HP9z4i#T_NQ%~*w*cQqSRQIINS>Q()&|2 zyQ+Xek^8Zen+Ey&Wg`VOoV+%N3BueuLgl=UzQDIZB%x&SW=tMc!6sZGuLM{X{IAFu zOQrH<7Qp_yXY2unur!k*>5IRKR~oM+{}8Xt_*wOY77o)E^wCQmhA+~hU2Hsqd0Ejz4e_uB za#3)~*9dI#F~GO57y#v9Q1o9Sz)$v~{|5~UZ(n|Y+$fmKetPb(xdWwa5#HF0vceZ2 z{O;~FWS`{RAF$3VQyKg+4aUND@ja2QoglCPAgg;vJr}yHg}IMn@4h$n(iyWFnO- z4CXE(nq~V3_+*P&@C{$@oa|B+5eKe98pVrM{lam;DV(aC;hWS?zUTybJjk?cO^`iY zx;Q_>D?x2|!Wmu3c(W$W*y@dG#V>HW`kn9F?xhoXaSMCAr9DdWZ{<6{qxzTqg**TD zbXv#scb7IMpKBP|@A!?I1QB0?p9gRfNzw4fR#H{si>hCavjBKce^;qa-)jM^d1%nV zp$expaV-V)K#6?SI%UuyM@7BG#_*kRmC+}ibFIuq(VDH=`$^kqf-m-U6u zJ5xkJqm`<+Ifn^}q`pLrmq1UgJ{9`tQ%3|b+7~+$NwuebzJqXE@s?=8WLG=wo44%h zoSE;HhMWEaMDceij@g&DeW8FFy>kAHSyPF{cop)u10{m6nt;J6RZdFVu!0biN)F$* zH@p=Q5Ys=UuCUOW9j3lsZm+%rInMhnZx0#8BhZl-=qS$)`{}zgN?(r}fd=dH$7&To zTUI?yJJCeqg3#*ut6=zDHn{005}hkqTTk-Vn@iir;yXJYCj9*?*8)b>c@sa}ZtL>Z zT1m{Zz9`>V|F%#0`%a z4%3H*-q(vBrR^DqhB6y2(#hkC@iBJ?b|J&}sk}?SA(KodyUkgEZB4wUx}toT`Uuae z?7NWy>U-J8y_x$W=DYRZ*wI?vZi63gru~N`7Zd?HiR>-e6XZGDMP9kT9ilv!Pk>C4 zGSB^8pNPij6uBZ0fp z!P47MV>#UVG{_*mOty`&gUa(#b(9AiAL%L#Ds&v&{=D8@l&*dbX=|wM?L`wW#CIsI zleWX9ylg@S&6K5?mTkH@WM3}t9AT(m=C0-HW2ZxSR(cm4ES>%_EMqRLpSHcI?X!<> z*5knV`uyD|fyfS>-zpVXcP4ykxsIfHOvjuc-+dIZ023bQ(uZMpulP_!^<=Ld5}@Ib zV*>73_JklZ;j*)O3eM4y;d#?l1peMR+M$A;3DGuwvZO%YNw5MdbMp6Zi1*k<&kZ;K z6ujz+C)aDVo*0ZzB$C8*+G_cK*fj|7719_shnz@nO@~92PnHkNuw9zWLc&2SGLe_#+;aQ8F(;;JV zCF1@50H0;<;9X2UDS;E+3fK3}MOW2I?)oZT-5&5IXW#V2Q`O14+_4V<%!nt=e+oGV z8iggX+vOgAd(BVx3}o=W#jsM#YP-;x)F7x~{EEtcJFVU-h;=6<6{qr6ilg9>YkwpG zp)q?tXM_yUUUzc6{%B}gR4^4aOgc}@igWNqt3>4mEEGxgo2ybD-MYkY3=DAg($lqN z9lw0MJ^Hds`8Y!9?d1R-tOfrOrg>EkI@qy@a=UKxJjkPcB&rr7vZNz1#a~ptUT<({ zu)qFD?3IIyV~ciWR+k^Rmxe^S5R>9EUF)KctoBx9hvia_sJ6j}ekim?&3jjyt(1O_ zfnqMh3itFKpSQGyUMz888_M%F4Qk;n`$7GvsLBjb#$Yi*m^4SpJdUTTa zXHF8>m=byY19i#$luvZ;fab%jSzQ?seOd`bvt-To7BYZ-UM;&|rTw^UE-GlBrlk50 zwjG#)l?S}ox~#Y5){)0Qag+e3gjvf#0DY}nH|Kkn}A`FmfIY5Zn!y@dOO=WzkAaQhpXn|jZQkf7Pc z8ATq3@y`eE>AMf2kWOHP7eqr8w4X7t>hekZYoqb}?uH=2Y5pS=woKnnH55UMSTn;; z=Rr)l-iwIgP+z1Wk1Ads_1QJCaoK=ZZtXxL+~NO~8vPfhc*m{i_cs3*r_jA;)=*^C z&HRf~4E6rSDFzn*om1>y%511#s93&)iD*W3k&Z7x^=|{={@L#3c3ui^@lRRxt)7O#;V4;^0sCUmD?u6(0Io}Yv=<=#*$X!*c$I_mG ze_}NCvS^o~gv3*@s~$6fAA)pFV_Ws$pEWEVsrcA4AR(i1$)iwln)2Pc>s!U!42!A- z^Nfbicc+_fW{vBFgP~jM1|NN);vs|87@^7c;Mbvhr(x<`csDPlX%iv3|IsZWM2+4(?9GZF@=M4yYB`|F15)LYYs<0ieF z4>i1R1DxA4I8BMTI)KLcF~2fS%=NGu_{ik^ zKCoY$TatJl;)qVLG9jT62)&*ZQdP}g@OnkYJoIl#Y$4IGF273Ai}HEcd`&*)UbPGu zscq7*o(k9Rps+#dZ@i)GsYDRa@!wUL5D$V;h+582_B)ai6~7|6Qbq*(*9Y7=eB zqdJH18rP-u9rt!&0wmYQ2-@*lrTA^Q*7uSwq=;{H_i zp9y>l&U8Kc7bpq+51^#p?*9Tx8Yli6C<)?zle%<~acVonjs|_>0yC_;-x?EHgUm|) zh<943Ib(*j+%hVE^$Bdl;m^=^%vdl5={f6N6sg@T=y6T7+hJ(+a_kaU zV$9!FWl2*d{)xZSN83hI2slAljeLaqjv;Bq6}=aH67Z9PlW;|ei@XSKZ$NYM-s;EC zk}sL|U09Qh>*23us(^lD!^~5NQ_hN5F%F>hli%u>$m!X?#`PbZiIe8q?bPON_8$~;~W(>9sqKz^p3x;^v=-a#H=o2 zz{pSX?~p1^TOjmDedfr&g2_s`HJ`>>88A;Q?38RACYbCb7L?B9pnBV*KzUw;kS>8Q zrrWOLYVgXjfu^lTv7_D_vFrkPJ4G2lWkO6j*k!k=eV;~YpgO#@+%{!tjrM2R+si+H zuwB2zh+zF>182@I)BXP&ER$NNVf`1Eso6e465}ZVP@Xq33dZ?+93*|M(?}aZ*>`Fz zh^WC=GX(Wz&m0X~Lly3CoQw>V*xKMD{LIGU(3?eHnftZQPhhzSq)#lDu4CF&k}tZl zh%?u?_gJ-S&Y9$*GqvF(*iy2Su;{cTLocB_PHRkTGeKc zu_J{W7~CA`TTAT?XGNm36?1FP@u58x~$!xYQ;-FYqlq6_40E?QBUP{Q=pdj z)jiO#jQ24ER{yC%?{;rFZUAqaLQYLks~4(izkv-4gCe21Q%~Vh>tG}>QhP4^x|~E! zyI6_{P(RFjIBh*Y!I+tz$U!TwYcZ<}E4rDLS!qRmcZ@mrtm|}GXnBAXqL4Mgf%J3Hz6`&r>8ICB(aS3=lWAoPB3xL zF~Dv)j2C3VxhQr9*vp`Lpnfi>qAm&$<+tYyQ-73eNXOl7dHd?X2>eZWRrIm|*$2G3 ztlww;{VDO;tMYz%Mxrcp>*ZzQas#^%B%QS78=N!LRCNzVYD*=qBt-yVqwE}&Jq&ngbdkg4fqSQrZ4qp?t>?1)2eb_@ZN(7fDuu_&Yd~9&X9*eQB7!)6kG&*qj0T ztGNu>$zOy@<{BUyG0jQ{)*)YVF(;kfY0zu{!>0I(TQ(^JDWjaksNmB2vUWBp z^R3}XN3NfUcdrwR46vn;0^-sQg2K?-)+#IN%JzW~cJzop7%2SPpCjVr8kW)a9(S0~ zDoNJfURB20=~|F!B6K^zcg~oop!wRwX)z91XktvFeyvAe`H*j1cQa}|ne4?j=#%ec z(LHnk0g&0QJCnDxB*l*ctxz*k7y{}js!>QhE2?l81+f|l5L?HF1N~$d? zf!3?z0%oKg26`|;syPCRsnv=`s;3YbK0H!;XI=%@#W5 zi~ZGz?J(8=GX;`9xz}KlvWw~yv@%<0SEkhV&yC#9Ovas`2ei;|7r3OY3hal&51Wre zzFjSWSM6GG$oOoBM~CA5GX!|9@V?I}YnAa$t)aBXBF2A^yh~VRI9MBgJR2<>&Gd`?g!N-1iB5i8*(-ThQ|*K8 zzI3P(RzN*1L#suM6tn{!K7Cr4a(EzQSs$VcL6j}Uj7)mlvIO++Pxd=X-5qUEX@fxM zHPpnBZFirNSidhB?0!Ss5YpG8_FV!2zOBprZ#_0Ur4?CK z{7rBX7@XbVbu+!!6=eMR2g=@L=jbvmK|}F1-m)W{8!@Y!X+Y9#f9WJ>L98wa# z1hyf;UdA^yS0)1hV|y;W&(2{z^wsAb??Efbi71$OI{)smOehcFp}yKJ51yQ^cOGQ~ zJU;*_7GJ{BBfA?39zcj-rs&}JVlOi=UPjg)=twa2QCBZNk->xiBTB#s-A+-Uj|VS8 z1ka~SMPiEw*9P#>lE{VA3yOvDTaxHD`YNG}#5l%;*v%QFA)<#nonn1^iSHeu;~r@( zrsGY;MC|7~@gwKw5qyej&(Fw=CgEgMl1dUB$m#B_S97o$zrOe+t)WQ-D%FQ2`6N&j z)<+arCHHTPdD6iSmiwaV)UoC0UkLz(`;>^=eMI5+Y8q8o3UZxlCatIb_vKp{TeKBB=!@*>odN;0m4m!f_lk_!fa+(y#Y zViwjJnb|nRH8^4PmBihoKTl~yAm-!fJvH4R|d~{x!no!Thwu}}ckNnhJ zjzFp^IOuRtoCOM-4d^^@+6c%rxXn+PCp45`OeIXDMdTxDP`x-q@Q=`MNGD%P_}Npk zF~gLYfB$Vn5$MsOPYDnHE^eG$%Fzl)r5~VW8M=3GkoD~8%288FWq?UPU zH6TH1tlxhb_|BC!d9dzx{F;(B?T=+9kxvMB;8+B1#2~(-s`Yy&tPBTF$LZ=pD>7%J zX7|#y4o0-)e7)NBW!(5FpoBVJTecLJf4%73Q2uI0AR!=sqq5th&5=%WFat_IWB9SZ z4yqo${sdb+pw#wp`pw03^HPSqq(-j&g;{5f)MDlacZhgBT zPw;~%$*b_wOUMS9KpeSV%im@zEt5`t&yKqN2c|u1-z<;sAJ9{~)5|BEVi^5DnHGG% zOC#W7KNZGMGz2&jEByf;Fya+s<|x`II0G?!rJz~Ni?{thms!^E!>W;sj$=pJlFfuo zkI&H%(j{U1eSS)aDCj|np77M6RQg&X)aGHk#HB59d|bo-GR=75D{Svr9~X$MLvi63 z#MvdbtR;SihIc709nl^3wz0ubj`V3o$E+_OwYV^vzb z$4bP1`GE$`T!d1Z*~#7Fo0QCjLO|h=P^1B%kOKmu=*Midjt-=V+6?!rrrbBPgrAxP zf`uJ33Vp)PKX7$Oq5Y;jJM?Y0i(Rrc6yD{c@a5e*n_9X@f!6fsx<5GGHX^$p`h0!m zO#$HYuq?rL!}r@`&uuTSZ0mI1wJ*rqvePw07wC3fz|^U#$Fj`*+5NuwR`Y8y^-(0J zGtFXC!qLli!a#6?Ak&6`*ih-bLaliHGn`X~Et*ZdHy67Ft*|?qd>P(l*ybmGlLkTe zb952<$Ownx5{fb(#PN5Iw8kO@-ZQnlpTtxhXkE@tO4?N=KCc$GHH=t`Ke)vfmq;x{ zsSLhlN=|-OSMn$qD*xX5X-5_o*7C!6fQk_G8E&8XulXHXEEt80TpP~kU)`pol!~q$ zjWR3)ulrMbuj%t<3En8b9oqG5d;p-zg9nL~>fzmsA?CS;_f?Yx7TNNFw`HFJzX<=h z&*Us`Ys!h|mc!W*OL=e zG5#x!`!|?^1WN$YySm716bS0)(ul$r!X4guxBk^qGeywKeItH1%t2Qpf!S7YiQmms z(P5?HL>@fHiHPj^r}(L`)T9%#FXtC;4n^j|F*QC9HOZ+lLXDmQ z@(@7AoUog3VyTob2cuQ@mrkhf8%Ut(k2PEHZ8HXC2sz&{BgC1|jw_ z3sHePf1n&?75wl*UIHp44Fqd0Iwoz0AbI0NCFTLPdUW4z>bo%hXh9TSZ6uhEr%gSB z2&qYtYz(mk&?QVJshbh9T;x2?&-vCzL=mbueD4rR@_osMJK28Vm>hwj*zI>OJ6ZjV zG|t{mK7jrcMV}A)G^;pIfdPb(RzHp(t|z`fo8AcE)WkWR!h&cM+?`NE?jxO?CkzV+ zTUM9TV20^r;T@)CCfNH=bbZ?vROBAL9GWYp9!_kW;~kJV9rie^2U;9@r1GjkFb02I z=yn_ihVY|#9xHgjb(+JcY~Fh`lZ$SU`hf`({t$m4ZYUKZ$fGl8U=;3uM+fy^LUYS_ z*g9KxEE7zaJuw&QWEt%SG&L!IJ;DDC5n>x<1TlkA<1I5*=1CnVlL9lb2jd%#PZqK8 z35_2wtpK5TK1G@eeFzi!WQSF`t$;4!oUM_lns1N-X0A|h1T8V3C+B*3IhKdI?Lz|X zpRSredIwgtbO|8*%?J&L%%2fbk4!MqSiau7YDOVMb{{SVNeh*hopQ9F^GpC2C)-ao z;{7>aA;fuTS&xMbpLI1Wzz1tVpepAKJ}-Sfl${M4G=8+dnt>|!L0mWZ!6S1|^pdxG zfH$b*0#dR0S4C5GG#v$je7h<#Ee`3!pskZ&%nRoN+#9nIrjbm<^t)(T7A2l?q52>p zF0fpl9YKO18j_>TNT`HAg4Tm^%*jM@|@{#gi<5>w#8z_{!7MFryg>~$Kwu4X|$#u2>6%)+ixF0sZ@I%gtqY=|Ch|}yF zrA2+>06rJW8t;l7+yga%nR~Xaq2%EBmL{mM+1myknIhqS)dr31xoZZle8tZ2V<*|G z8H7}T7#@rtsLZfjteArUOsrONO}m)wW?#D;vwKEIivA&5TVjRT$$Am3<;b@19Vv(B zxcXc*G&10tI>3~XOY0m_FxpeEif80`6$C&LWuL6@t=~rleceWkhbj1fbd2{+y zJQS9PqH8NXdej<5bLuh1?W&SPKJ`|zT{YOilB zG0dDiPEoK=KwwK816RvX%`gy#%e0YDrLokw&SJwS5eg6_r?wDA3G*GcW#~rs9C=R74PJ$~I4_U92!XjAQ!^6!rw>q(CndL}$;>Csd znWwo-pRQl*A<)8<3i=zq6iJgR1-h{*b9ZyxsTitpQKZztmef3>LhE-Mme0GnRlX&< z7$`R}U}K$2YdE3KbAs08O9;2qk7^`8+Z<;{TTix*W~%0P5b{oJ4y$$l3yQTT^v|^X z;3qqP3KOhp#{+rAjM3!LWVuqa;Ev0Q$%$=0XM_~0Zp+*NDdJ@f^7gWn4>gOQ9`(eg zmq?4`(Nn}iS$tUw!G_r1HV4QS|FtU^@P+)j4jlx-XET`e5H4Am54u8x{+y)xWv*WmW~aBJXYC`5cxA9kyPYw100*Yi8u zE@|;#>FSFUBi7>@%<((>psJ@4N$tBm?3i-Y;JdHy7T2KTE1lxe7K_uZ8w8CZ7NCE+ zg^|Rt(mqE)H}aHLd7_+>ewFp)eF5VKLWfHK#{WrQmoxpsG|G57fpyoz6!ZgTvyYt? z>z5V(wwB?&`U5;Kd|z)m6E5Ub#|ePW#S6Zfm?6of=vg}w*@Om`W&wh145`Y9a!i;| zf&8nLZF|Y-UZ2f7BZi*#d8ycg&)rk1*`)HN)QfY6CJVVx@7o_hqO2+0$5+~Oa1}4X zX0O}YB@Dk67PVocUmW4?82Zg9|B>jr zBC7$Fd?ld!kpIHAaQ_0t#&<;8Mh7#uV;zpF^xKQdB)Z~iA@&4H(&Z*b^bxu*FrN3%>|zJn1^bL93)^aVJ+1p_|rYMm6$p*kjJ|3QM==$VhDIP z{Oh0SmQ3w{kT6;EnQBMfx)*g$t&4N#*9NpL#U)^Bu8JBc7XR3I1nXy&&6Wj7$so;-TBgT5+tRDzjo}HEy`&HPYca`xa zFuk$T?mxSZq&lhb7_AP_CatXzIAs>!-4m!wbAqRYz%TF$0(y_f{){8J9V6$#+1+&7 zo^-t=Ra^>pzt9EJznkPz?_gNlN4p^qzDGSoI3_D3fkyfGM?_}w==*8BBtMV-LeX*3 zh_)bYiU!FR!*LIop^66MttlZuh}b1R9M(91`FUe zqg{@=*g8u#8o3K$#uQrL5g5cA26}z%p6T1{!gbY65cppc{GVKZjnBVl_8*K%C^OO$ zw@=lus{EK~7U_5e{G7i9aQuY3ahqQO-*nbAl1jH;DxE?7LhEdyy^GW4@;8iJaN@h^ z*_%|&Vs}`TkIj`INXMTB=@a_>;}5SbHfLa#uy~F&8_BS#xY{MYG6%_)LTbigXVCc0 z)FD0baV7FPCZTm*E>!x%X>Z*v)~Xi}|7)4UnX3f^2+(vQc)ElmwgrOXX9s!qc2T z9h_A_Rmgv?zjuhQ4TC^A25YBOYy(*?qBf=W-B4C`>W2@%ma`O&+wZ_BJ+O`2p#UcH zMz|B*GXgM8P8aMM!h=uz7Z+eVpi#rP)qc_}Ye(r!WYgvbr{1bat^`MTOyJ=@i{$|! zR0PA7mOeC7U*OCZj^B!t`3zEp0UXulkUXEjY8*>c^!g_J4R^!VlaaXZb@x99sXn+C zUWw$astYFkI=v$Fa+rU3-v39 zkKg}yTE1NoH8;&!A!2;jMfU!CJnI9kY2+1MC{GYWD?(>ZmURaxABIau7Wwkl6?yrx zu}1wcC7XocmLV$Ag32?g3K-w}JqTxHPLs5RFX8J6Bf20H0?H^e0Hq8yg*CoVSOEWVk}DFOABxTfgk zhZUXvEflu$KWIks2wkQz!gaU+fMQ1?WvMJujqm8$i}u^yTzi4D@&XvS?8(VsMDC)}Ca9@@Wt1R(jdk9r7Fqxt zXKRI|;fs;5ZOBrQ*z(?Eud7^10Q; zYqVnOt1aEWwArTkvL|JnBm11Yb(RVY!+fNYauQvBdGgJlgd!*3B+i=N8mlo@)LC(` zbE$b#=%ZgzYqha6G_|5L*wF!P@%3Y;+K5T)(ZXx5+YC(%4=GYf_a0g)N>AJ-{g3W- zHc!3ADLZ&JBMk8!v<<2oZ%*;LEuD=d&(`n6@EnLT#{rFSZnA341@z$@LH5E}5IAnC z$V+0n3$K5)Dc|ENt21?0`;jl|ls22D%3iB0SG{Y#dP7NmbG&sPKEtCRW0+WFA5Z3h zL@$e=`oTK()4GzdO0_btJ91HCkB?p1wxn&`Jg{NzO(TAU;@p8}A=16jI@ zXzcE%>EE(ucA^frph0P6{fp1jQm0>NumqU=Rff6J1AR)!Eb|6ND+#IwuBkR%+;{O7 z8(T6g53`aW0DK)B9N(`-17&AmtvYt>qkT8~xB6m{0C*R#C2+oRUh0yn-jNO;PXNZY z>YRlSXC6B92L9IutH?E%J#)fOhpNus3J<2Cf8S?Gx1*(Z8fuj33^J0=amaYxDsPvJ{qG z^6mG>J1&_=`#&0%K4{8KpOWebiqb-~CMrp|my(ZTfX^N-dOYw2zhCGuTa2k81W`sT zaG-7A?cDA$y+}dH#F_cXe>Su|GyqpM-s{j>dX`$6GoBJT7n4#}kBZs;J^@+RYe3Yy z`-PCRbqq(yr#Wf`u`5Mrw;MZzqHc@oIXnjGc5{y0j^#?zYNOkkRext;)n2lU0U{F^ zxZO??7mL*DL@!k*=J^&g2b_)W1|qAoRO{UU3#x_-e;MOzBM5I{di0%1WWc4C!TRfa z*|W0sQ_>Mmg^&*efl!mt0QR7K$&)Y<>vhjSGrTXzLgG2-euFWdD>L^pvmXK|lhL@`kg>cD13%Eb$P2 z86>ItI{#y7{o`oFwViMut4`lY)31nyV5~%P$mFMw!@yMsj{Y6Fw-Xd#^M;Z0%DX+T z8N;jpUwJc`FAc=&AeQmqPQiz+8L$1EEcO@S$mw*VwdIN*{WZV6Wf>O!;PV;UmSe~3 zNYX%Lr{v&wI`@`lC_6FghvrVxbUE=sZXzNh?9`3*j0Y|c!&>_$>UaLy@kt7UD3lGq zR#xI?uRUOXIJzWWQbbW*m)G4KKIx1}{hAlg#9k@*Mlt6RCR&5~vxPk6CzGgRwBTs`=uh~CuOMch-lwCH;Tiw?aTAx4w`G+A5tgqh-j|6Ty1VlR^YivMg zIy37#nUX4rbEJ9};mb1!UdFENdy+kxm!rIB_fqv@)8xGeYKcjKFTW{^;bywjNi#wZ z;~;@HQGL$&uIeGwY@DMtY(C{H^Y>7CXdvn5{oQ5sKu#E#{P#cI+OGOXe@+@i@!ChF zo1s)9%uD;z|ewMOaHE6j722=>-Y_bm@9YgAY&VOlbcKF6Y+M6Q2T4H}Yf z=6t(#HS#VbkR(9U5w(BqAz%(H3h#Y9O5hd4z_8*mN8D7 zb+xwE5QmoOpVC z(gUSMAF=Om0>9Fj5f~8F9c|})_EZs58GDUL!(}L_T9?Yn zbjn$I3N!))=!d9Fa`*;1?8eGcL$RyRQ6c^^VN%XN$=bA~i1K zObMg$X*{bBv=nyLDHOp@M1SKnr)@z${3Jtr&<}rIBAb0eG{Hu~2j=#p8Sre zh41~Geaeb=;iOkaOmJzaXM}ktoO%uN_2*`Q9^md|ownCY7KG3US-IDZ#x~}npcUK& z$}+dif_bZL+V{1w2NLk43MM(i(EmgI`8(&K*b#vR44o6RgvMqN_h0bZ0*KFjFIJAM ztG0u3&w|b?Yca{|2`cJ9Lu<7zSt?+gc9!;pxVg?MF~qsuj~-NI5KVd^eB^_lbpV0% zj*^7q;b+^Cc!)_)%1&h$pE|)LoZqQYC72DL0Ik0`X2v6ik$EF@pfNeGi?uIpWEZ0P zHSuSXH>us!)%;VMm|FD%^*raZA1d~bx35E|`epc7=M9pQ*A^Hnbv<2NC#W00ITrSW z!?|%)3iu6&7gWJOY#u|cv|nAP3tv|NhO}9PbH`BD1`)Sddi+AjyIJopLu3}U5exs9u>VhT>U$N2#^Y;#3}#gZM$l#2J%B)ZYRfokgX$jD68~fe1T5=X=J2; z8}56!;X;zo-2OLrMDy%xnIs%XJXE|jM9hBRx2jk(vd98-8g8BqwY#hB`u9YH3TD@N z@)scwFL_Q2`Ugty<_)H#7*Zo2x%A;Y4ro86cyrRv?JQ=o&!r)o0TJd900FjF<6*dI z&v}#kt&Qqs3jNw)yXMAS!c)Sb(2-O{h$bIqbu()C zpVqvax^sHcR2X-hgot3w%id+B@`+46Dm$q!##>`r4sY`pPu3iIE!BB~6K_c}WX%}T zb4@{TX7hqWjcREflfO6zPk=-5j0@HyI|a#L=tTgAUZ4Ags*2CQbpq8rzo@i}UX?_@ z=pF`_;$EIgUl#ni$g}4>>^3k8V0v{@_m+E{4vzpB&a?;KcHvb=@hH93o0(ziQy|?k zl~c_A1fUAQc5{+fuZJQ3l@yXCi}b;61-emfiDE1DiQj6|C2gsZ8%g&8Wroz#M}AA@ z0qZ^qNUSg!Wuk;U0qr3bO!(_t0sD0iahY4yLP;p50N873mOv${EuJa23a5rqJ`ESj zelJhQrL{D6_+l%c48y>`FqKxa^X2SLVg*ZM_1CACQ*Szki0Zyz(NhfBYZJQgH&!FDftCS zV~=B))dKm5U2j8aUb0<#e7faF2wMAVrINin)KMjZDI6hqH$}3kU)1ujvpB`oo(*E!63P-=p{O`4 zqh!9#w*~0J!yHhyC%CwYMRVt6vNMY>9U(u+n(S1bAO&ajAi+`)>iz^NvQQTL55&ZQ z5PY^@#Nj_VlSE4@94Q8yUjCZ=Rzi()*=tT)UY46OE?u-XxQH+bqqnbZ2SGRu1P1gZMBGW7 LP6Ofz#2e+arcc{ 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 fs&T78yKST_<*(}k$ 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

T{lGaJz-0ER`-8zd8f^jd#ueJjePMDJmg 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 z znj#|5MJKL97oB)N)KNqk)KSEnP)8BvP)89TggT0-Ltgst10D4>q8|C=pF=+R7obKW zzJwg|G31bc1v%v7$RYnTdVii+Za3JOLo0sV73>PN^o{uT0#&oLag zh^!pD|M#8P zbv8Pi4du=@XJ_t!v)g%J({EIq{mwz>BTcow!8r!@N$0fliDuoo;C$*_b*^hiz%^Tj z@@pAIqs~s}b4|ad-_YmWcOE%Uo#)xZBtgbGr^y6OHK`)gH0wF%xjIrq>PQo5A?+kh z@}!pxk)>ogSw+^6b>toLF4;o1llRCTvX2}fhsY6foP12qfNSQ!HH+YyWf1-u2)zNq zZIinoouqMBfgs8;eW)j_sUU1T5COFbaRsfX0CvymF5 zCSI?jrktJBEHzIpQ7h^VYK_{|H)w7<#|-7KJ#ns6JI+;2HMN&Ko;^VwQYX|IjnT1m zd~yw)NUNRGFo&;Pq%)k)b4|3CHqd6;M(SviG|?={CBPJfOSj`*c4&NI#;-=t+7SY=)tt zQI|J&Aa}qOa+SKuT~)4{TwPYcRd=Pq`NVa{b=TFBVRyB=?zwsleK{GfK4-VS!PVm$ za1FUeKwar{jpxR>9=m3;?z`rk)4Dd-qHEdp%(VeRZ9CU<3D>Ucz;*0;;d;q{XBLeb zhMf1E)650tB9p?TGnv{EMsF0EJjTj67=|Vpkx^i+U?NNzQ^DM1YGI9H>X`$Tv&=lRL_T9ym^Jb)vjA;ClE1`kGCOn$v&S5Q z8bC8A%$XZ=$GYR)iEgz!!>x52+-A3peC#IOtXl>(Fhusa1MU*{4f3A5(p^o?FpB$@ z`?jmjC_39RhYjuSMt8H;o}cG#b9cJC^E%x3ueNKdX@hgp-EW%KR6C!z2aUakD)*zS zJ(~5)RqiqOqMw&sl<6V&gQ`Yyzud z)2Mk?!$h+>*2G#^J0-F-ta~iadfAYEhb?7Go%h*tuvMi7*cxh++N0LkI_DO9=V}ja zc)bqXtH7r7KJol7T6xlB&a<+&^AX7_V)jBwIfaXGWn2Y! zldI+Gxdx_|YvNiBcd03^gX`jYsd?@J_t3SG*UAlZp!73(3|0CDZi1WQW?wTKS2X>} z?XUCPJh#NHaBJKqx5Mpmhun#Cnmgk$J{E*8=i~WAUd?A{M|kbk9^P=Rnm6+{p5$3x z<^z0*eviMAabPwXSNKZ4n!m;0<{SCu+=RR)zRjuTJNa(@KHqP;ZMw}5URmQGu{G(3 z8KwLfKgmyDN�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%0A{P61!l|TCK2mpXpnQF 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%0D{XG}*la1(Mp+L=XGBCOfol}r1g3!q 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%0A%v_y%AZ>%=rlhiC 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 +B|OFS+yE_(JQQ`%)`CN`F#il+ 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%0AFmXI<>e>Ck)1w%p2I!-g_#t9IilRzl zXISs@S~SHtCMW*1>+`b@k#8IlL?Y}Y_S)A-85=u~gkyW3xqOFI-bJ`1Jjg9nkCaz+ z!CC=B-h8rU1g7B3O~elP%$TBYKVA>A5n>$7MD(h$+}!>c%X9d*W(0@jmHXDh57$!h zIQFFZ_3sbo(T0^{8=Z*Ezzd`b%HwfC{24vZ#wMsoWwHyv+u~67b_m}1AubAr&f;kj zG;u5<2nNCOY#h{i9RJcBK5-t8of0{64KI)aBxh+eq9hC%u@F=-y&nt@KaC%2KE{u2 zr>o*5^H?!1Co*K=H4tlb9{w&E#LOI@kRwd)vxrQWnBq5TWNa*^;ym0#>>a%W1-S2a zj$sUbh9^u0g7b(zL{phoJPGHvX&b?j@EEpFeDV-+>f!E`GdinlWSMtfT_!*W@{zO+ zF0WGz1eh--yZERR5Ru3tw*MyEZtkad!7IL3N{e z#fkjVz7jF}u!MiZi*I?o#tQiSZE*u1jqr+bv0}j@l@!8`oH;>siHfC1*Ydid)mcqr z({HV!(Tcbh_mr~gMyT==c}ou^jHVHTqR<+73f$qWX?V4jJWwy?)=6`+35I#2?C}Bx zZeN`>D^8jl_$;iVh8?S5r)gFY=AGNL1i6jd1R<8Fju7T=L5&zvbQNCXO=gz~Lh_(`>Ci;6dOF&w_u0s~ zS)B=vtNdXlDavVU+@8NR0|{yyn{tYgMQJNez(7}~p&fJ`f=XqTDuk8!N@>bZh%G(d z2VHaya4KcTm7n*m4ZSQP^C&;zn|EeBY?WUKZFQfeuX*ncba_I%bUrz2tW;3_fPSsL zuHutZ$`GGyMvOq+DP_q&?2A$Vy8D6oDW;`rHLsq;Vdop)FcmZ05Z+f40p>em2iTN~ zA+3;6t06ifhYu+)L#wK%>KZXEwX1ct& zqv)3W)tT!=kJOi;V{sE7Hy7=wQSu=?VNg3~Vh5Oag-po z9D!{m%x;E5M8D^d01sVv1wIQ9bXK(T<;hgY`SE4}Th#Ut0 zR`^56?+foGr)+EN!`t`jr|%qrt<?AEQD?!zrzytbF;HRYG5ZijxK8WcMIgTvD4ge5&EC#>?yk{phil>>Z7m<9zND>xPLrkRuO z(*3mof$S%9DmDBzMtf(hFuH=PgP>}Dd(t%_m+5w(Q;Y~Feo8jsBG;Gu^VQumk0~s4^10kYbP5fx zVcR7K57<(RzKej@)&;Ml4diOa!&HUI0v6`x17;fJH6$@7?Mw5d_7z%5(sf+Jb#hb> zIL81p-MP9ib8(@jJ?-;vyF>jz2_vWbnxO<>d(7QMK;jqd7K-DrA9gRokv4Em;?^$D zf#>VPV?eL&gP1!1{3rmd2fpcIg zQUH>;4Xj0;cE1myqMgyJME|={xU?LQ6!D{CwG znLb5>E*{SX)m4ux`n8Y0t_=sHrniBrrBUA_BLm0wEyPq=T2n3g@lGoqIGsuvIHpYZ zOYl}*z?q=1_*j(f}mKJ6g7iL#wbo1A3^LM3Y z#XH6CzIRIAJ%QFkXErdq(u7P+_bO>X{*m@q#2fOD(g({yA4AXR*ZGUL>(%ywPPqBm zz6jldsz5I`-6ESw{zr-zK0Xno88ug#v8MeM{nlNcYwcyZx33#{c9N4|so6gHXER7< zv9BSoDc<{hv8ScL9o|w+>#U14%bqt1$ze&?lHUj|4po2BE@oz;1B+`l#$~X2K>Qk1@;JkwQr3rJQrd2G8 zqNbbzZp@&(()k6m@^Q^@`$6Y5qIsoq9~4%nkg|!NA>4_%06hF5(s!UuxfCt~R(gcH zAqWa+BOw-)+Ay>XUv|sa(#t}0tE$qwp!N8JZT1FBpjj%!LG>_Z}FNaR_ zSl}XXvNTezP8KhadR^`-S|4;^cU?WE>=Y>8lmE6JzbhlU(O!5gV@Q7XQhoOlJa}@= zG|?Ve>GHbauAqfC*k?yq+k3OpBd;?%Sk*~VXlU>#!}LOdBzc*gzZe;ElDrssk;+>2 z?dm@U#&09~?RfM5JGhFi=baxhY<~wn#&4IgWd9TX`1k_)+$7Tf6JX*D>SltE)VGEA zH^jp0-Nb?%bOaqFar24qo5M9q>-fA+@lolTV@c(@-rTB0(`1GUptaIox(siIW{|aL z*sc`s|2Oz)&hQ1l4QwRLr@hjp82v5jNF}RSnCVQoVD9qui?I`#WSL=ILrYhx`yw~C z{I3~KIpsEG_=(b?AShb<>ws;_gA!ZO3&xO;19b!U#DunjEi4ZAz(^kNG0ro55+E$C z+o+_DK6#Y-Z`$%dOkDfX{*kek88&p>3;n113Ce3&jY&L_?c9;=$UNY*kL&geQ>LP4 zR4(`&t#_JhPiHOL?K=s4t_lmtb*(E-_#PGK9&(4=&d}(snhG)P5Sk!*0Kbn}7=Qa_)hi$jOto7yYbv~UM=UZ+O=eaZ6BRE;j%kZdoi2A<} zW(@26PXhZ}@zmZXrGAc5qR#NKOpj~Ynkuf5!2D<=W4PUT*_vvmG5Oc=CIe6N2;yn2 z|2r$ZY7FJFl%v=pUu3`S<2%yVEFJ!zz^fupf`luX2Iv%6w9;IQ(j2O}>5}?r*}R3R zBXi^oS(|K*X#))*)5)~`v1<(OxbfV&gQk5v4N021M_=3&4)vd5;Adq&;IUSTS@UX`Qcyk)-k7wkgHA$DbNvHtg9nTt<+Tf- zj6829i;_C@N8x2C!K8UjRLpwO3ZGcBWW?O=G+&R~;-P+xrCEE}<8z^WYnj<*3#YJFxVAlKDY5`gFz?C`)H)(D{Z7%&3Z|Fm~T*ZhrK;k zpTRHHzkcQtu3hh6m$eTjPU7OWD%>g6uXC>5tzi9z@J<5VCzP_MP-R)pFWB5TbT3Hz zD-@hZpG-40%Td#vK4yWyuTIu>7G8Yp-vANP?rAe}`fSDG(9)8iTqUWZX(8?i9r3Cn zQAh6fpX(A~<}ew8Hn|)#n)}k+VdI4xxejL3?Fr)rO;ao8*csw`GZ6LZhxt6A^;8dgkCZq=K-9%JlI@>fJ8vd{VtAr zXeNX&Q=A9m#F`UHF+25d3A@t_+NcNqGf+`{#=GEb7rR0WVp>PrmSGAg7aYWKET^8! zO*^js)zh(geHh)jFqw96a*fy;piz?12*Du&^1~fDUclDmkUoXw2@eP$jl7y-saGju5#HPh3Rnlgh?m6g6FAw zDou9<%D(~4C%smL)=#!8fEE7LTVNwnlh?l?x_@Kx^r@zBwK-4>Dpcs0zH}0aguRSo z@ba_uGAE2l46E15f9pJc?iBlH7d6R!t3ElupNyWuoatNGHx21&gV;*y^*wz_`BY|B z8G#(19G?R0M`}K?s2Swp-21VildqO68h~M*N@62KVh89HVPqF`ep z94}L8Oh^taTGK;vaf?P$Bwh)bW8y>drOAv*s6j7mC5A;5C}RIz(X-r`2stA)T821= ztm|Zm!@*^X<7c2iNbcLGF%k|fcW*^=!VI*9_JUMr8S}TS&;1^vcFkHdr!UF~sQvo# zco_dF05{aq29Cu$MFr|7q^HsF^9iR&uMN3HqNe}%7cb}zvM5+KS7dFj02+gj2U~c38nGoxLPc$qmU{jRUboYDZVDH4|@>al&=cO&f zyJL5SJK${6#a!S8+$(B;S`f<2?=_}FP9Xc+Bjuy%qt94==MWR=rj{Cg(>sNBE+ zS4^nzWEUMN}j&_vQXj9_jxRqiF+r0r6S}38@NlnNOWFe$l^@N5HtWjpJ9L7Hu`L_v7KC z75Q&DeoxOenKq>0EAU)1pxZrmW}&Mb;NeT;u?x#g7pOa7S|RxV3mzhlMf?<{SR^3M zki+WL^7~2X5zXzWyuIVtHt2e4chf|di0-iIycdi+)Dc;SenN6h5<%ho`Rc!$#~+ngE}9%LAkV$1zFaeE|?kM_cgSEl`07OF_> z6lvp+x?)T_kiV*v_L9@McU)rK-J3#94SSTZLJLht)lG%7l+m54nMwhgfo3iib)#ba z%+z~r!h4|A+wwqj6j&`_Pn3Rc4JB#n|79D$HT3OK0Pn_(^jDYhq1(oCeQf?^(b9OUQ=Fzb$NAK_o68U4Q!0u4Ok?xPI?n4 zKhde*=ijf9qmah-a$EC@8K@r>qX->d?1tUOK{>4yRaU}*Jh_>P{o)0FDMr_m^rOLD zhXyua%raF5^86eFo6gsfl1K(vhB7axifk#~j(8m2Gg!ks`6S&H02c&uo&(0D9^>*BV6MoAmx*IO!N9b-7?i8Gu z;N3l1i!HY7Kh*ApI2|=a7e9OYDoQ(qn#(ecQ5SOc*RKiy@we;+DDD(vx^0PSDUTEH zz}yJKo*TBSrki+QBQJgp1PrqX3S?7TUj|>uOU@|vVUsW>Hb1KvlksY(@V3ci z4*qeYc|_88xh6E9-u7YUH{eA>9J)ijdC{0Pg5{G3aza;jQGL zIlr3Lu;PKD-Vzp7Rj=~=%S(4lLBrekYL)9Kjk>hFPUsH#Uo`h=%lO?J#Y(*@Z@%}L zn#14CWde00pSezA7CJXcdV%Cynxhv<{r7r*EC;r5o+7u;T3`91P_Iy9LLRm>2t%K{ zlHnIb3U{MKyp25jwh3{Ort%_@aAyXj?=y$wc6B31U8@H7qQoLOvob(upXz%K-?VKP z^;Ql|?C;%kA3oQuUvX{2U2i>qQgyGdO||Hyv1}*>9SinoODb7LGm%~Q9-NNwoe6D= zR#w56{khY-{(5iB#ZT4QsWGxQe9|(Neg(P%;+t->3bW+R$GGoe_cWWPRD0N_9&BZ- zAVkf6Hh6~CfMOF9?_74thDbTM4aFz!?V~;2N^KD-yeuZ4{9Bm;P;`>6dDybY#h=As z+m?Q4R$zJNcxs@5jyP9&t8?QRVwt4if7i0wK#SM8vbcXSP+fX!vCREOrCYoOr|g+i z>g>^6b6e*~yLO<_z20s>7Nu<6$vVd$-Ujb07r*G?0Y*o@pSILh6uqi= z3thSB#krZn6)x0%NWE2z}L1Hm@tK zS65yxr?J8SHk`g@E?f47ERQ+jdquh*D^?0UcEi3ZcQ=tFIKnC?y&nEf&w5q+9Vdnt zh4Z!yTB|NpAq#|4Q3s##DV}JK(QQ>rlR0Vi%0Jf__Nx=;YTDf$4A0E{WC`D!4Afs< z6WBc^+(vRRIZwvMWA*npvHdLWz?sSt=ijCmi8-1wW#~%1S>T)WQ3qCyTCc!2;iDMr zJ=JEeZ^%aqST!oWobMj;$(8T7xQn|dleX*`#nZ{M%C^?%Pu&w`z@js+HSP1cuQrk7r7**3ZigjMp?qyj)QmUKI?_DqZ^O*3Ox z*5XaOvIk9m&u*X2Dpi_Sm)2|5BUoqYiR9mRy}GTh_MfSp_X^685#170y_q=W@GX=8 zICD8-PQ~*07PE5aEz=H^*QltuE#C#0ax_nvChs^NgqV(!H9l-Mzz8 zxkuJbW!Nd`;O-WJyGw9)2@Z<~2(q{Y3+^t92KV4eaCZ+& zaJOA-(Z_#py}#Z&^>v@_nL1N7Gc|Rlx@P*D>bNz$6_1@TbegpESX9rv#A$lbhD9n~JG;3x#Uu`$0# zdyg86M;plu+`$W#O?-psD2s}l`bM50A^1J-XwjgqR2Yi18(-sP%xDqdt&$G5z!_DV z%vh3KET=<#?B z{Dl7x(tu&G+i4*pa-3h5JVoB@SMd>(4byx?M7d}fli|pAe?obR%-Jj94e$A4HJkpc zKr!6uY9Um#x$*R1cYiBMNR;$7&8cHw@ua;3HeM4oH=6%o$dn)*=I&{(`#(NxtrTj$ z5lXc@8X>ggloOQ1Ak+uSqDeo|y+VOVnP=2}5v$ZD93w1m?5!m=tCFUTpX)-Qv#xR6 zlV9#o;q@#p+JaNep1k?SWfJi!WY|>59^7eB9`J}jjzTaL*{vPy4-?e6b|0H`(+d26S z_|y|?B!42^-4O$&RJMu;zNwKm;;_*T-elKaG(VIBHwK2as>|+o z8|L5>vTD2qGC9n1W5$dhc38)k#?}(5d0ppo1|LK| zGii<7{5VI+K3ivw*JP?zqYyOGyVD$zs~iDQ*MGe89{AL%9UzwIJ3{Fidrlh-Qp-Qm z7o$a(Y6M)-6B(E~#PBhPloQ05GTkq4Y=%P$TbyFXt&;StM(ZhUU^VS0e8=w7{;Sp! z2>y@4Ij&sD9AHt9kfPWGUnI17a)#hM-iqtzxnv-F>A&~0h^t3!=8kYP)o z_K3M^P}|B6aJtYG(mjRD3BvxM`H@#;aq3Or+b>k5*7jM59CM!|k(Ox?zA6R}Mo$ZJ zzqys|c%PqwRu^4PES4`*ei1;rqk-AQyxtXUISwIs>##=cOeXrNTbo|KM~XY~Cl($C zO#`l(mCP)o;wsXoHEIVkdgri`KT2j_0Q9BD0yRDxjav6a1cqd08pMA=z7R}Av>a*+ zGJ2=Cx1w%S82=JRR;fVS5BxD<{mzN+v7$#3Gf|>h{CFAr!jd7ulSvAM7E1|)_=VjE--mtEX8MX^&wf-~Zh#0)kxY^D4m(3o zMPLXi3q3=bKoUds%d}jkRI&p}JyhVXrb%|<>3#QcR~-6|XK(l?o;K(^^xru{6qWBQ zE*|i##0axxm?7lo9ay}W1Sq7~qzI&+7#Kadiz3m)R1PfE-l~?XL77;Sm;m@n7f&K- z2F@%HAPNwN%RUsWHl$g;T`}iAe<*n5N$w>aFHE6O)2tfO>MPtxxLtu0f=!ozisHOo zriMyl;4M3Eq+-bs+P;Cpe}brjm-FzIOR1rj{xie~zyf zY7=r4Od4tw$|#5yb>PMFRw0W9_96ZC>PsF*p04$^?1HBmMmGQxU22C$R;LUM@>Xwt^LOX7u-kECi%wP zm`C1e&*|<$>*;_(lER^e7nb=P6hExq4a9CNa|P2*$^(+=rb6!uBmj+iuelQ+)G^UK z;mh)*xU|EWOBB~zsZ7v%gP*NZZ5lcmx_xf+VwQc)UXlu*tER_2>DTLJgE*MacbJcj zv5f#rA%+t(N|UhQqBGvMfhBpBRcnE~N>z1A;F8I_tT|;%P6YTZ{@tyQ zTLQ|hy_;%P2_1MJfO2&35@jWhW+d+*l|?|@jCjR33VGKplV`F?a0*mssYQ)(_d-J8 z`AN&|;ns{PQ^TpV@3em&at`*N+I+jMfUvD_==FtBZ>9W7yK;2VV7V9dfq16W%qeX@ z?hQ%(CgZXjzSGYU5jGd7B|F*sF?rr$8Qx)8-r=iB^Ie{jL0vz}wVg;*QB4|vriI=w z_!#o1ti)6_mz96%r})~?XFEmHBX9 zK!>b;l*Voc?;JN^@v~g2!3ZtzMo;geczhOo8yyi6FFX*7|Hy#F5*tyV78S$zEI&tNDmBzpPWcS8%S2GV;9OpUA~0iTU;`Hq zxL41u=-s_o-37%UiTIcqnEL^o_sXBfPdtnh+DD>$tM|^24NTy8KvG`y!mh=VtrvfG zD4dKUW2sWgtcO8>i9Q41fG`yg=r^j!+@lm{#n^L&s)Yu=O$!c0dD`5`o>8l<#_B-6 zLPWjZp`EtWcxTUYKvB(r6B?6ea_e?&a)B|p&^dd#9mwJqM4IUH9|#t|bNmw~MN^HY z;Y<1oz2utuWTyy9JuBlP7;hnrx0*EP^T2x-v5<<7R6S740gHv@ezSK**rR{GCt<0N zTM&cWVAE?PXU_-MBGYqL3#3sCQm*?Jr@Lf9XVTXC3@pr_q@rW64(H294K&=ls@mJg zxBGn>;x@?1-BhZ4+dWOHxKBy?4)eK9d~3yz4aDaJv3b8a3f}6IFOgzYz!282?L^mg z8Isu(iZ9KOND>rD{}<3NR<$|qv*zvLFW|}9qv)uKZ6Cxa%FJYH6JPh zl7uL-|Kgm=eN0n@Pje>=gu!18h`Bni*+igq6K(gmioF$;Z^V&?_NQidnYMa%rS|sm z_lszkgKdi9=N7Wk#`Kxe?5w@g>EDtvO7~&fXQH}3NZhGew1*ZuUYKnX6x^cQ66%~Mkyf|vORxGoq_WK2gve@Ks%hwK@bacQ=uJzkW+zfQmsG5DGqY?gUNf^)EZ*%a z(To@wB!Z+P-_NnOZ3A6-BNrVz!VEheC(_c5`Q57$tQD#d$YtfMap2@}ps}Hww9~?d z{`W7-xCLU|60vpv%3*uq)PF16e{0=;tJ3d1zI9@RA!a>c(+~xF1xpkxy51Ij>#^lV zYx?8#7Y(A(CT^6SdPl(VZO66&dlwTKL_1253hkUlZ@;m*S#g{(DKWjeL`tbdU&&nY z@Hj0QlVv0k4~-@1zbe!R)y2J<>!)4l1HT&%%B}R#k15v5Od{s|nx!VG@>!o<)3JQE-j&G1vLUm3|MN|L*a`^SukC%eF(zm#qpWrYMGgO|*h3+f_inAkH{ej1 z%3SH@Udw!Wlm3H@aC1Awsz0X4Xa7QfQGfUs`xI>FdBZVG`xFG{dQyv;LRB{VIrLR) z$sA03d~D}Gn;!1djFkWJ9T^Abz>*&lXtJjw+9a_35XFV46bHA1Y6=b6?1``^{uCMJ z63>LoG^vtK^f%O|;i@Xzr*DcZPKz+|#)jJ_O|#Fso^YSv9ZTP)#douIOBlm3C`RA2iS{LoE=2t+`lvtjOy;Wv?K9f5VV7q?Hf@?(@ zQBh;iPos>AriYqQ%akCTZ+&W;_1Ztxanj|n2*G$`e$#WH5y)`T34XyJi_VLf*0A-~ z-!55%r}Ck_TRSk_`ydr~tyrPCZgqK>wblo~g2L60xP>W6pk$jC;&rLR6>eOaLa+eS zbXzr1vEzp-g&{*!jG~lkfTL1x!(KJh({C5sFatLJR8>poT|C?KzCaAN?U%efPEj2maQd(RhMtvuW8#JYmYN-Jd2Xy=Hp~w!iYOCzH$89GU?? zK4I(m&SjSaM}JmtP3xW5ut9!&`;71qy?>$WBw{`$VbgnI@+`DA(fjXsrOuyjV>srH zs3+odf8+9e8NuvVuN?}UzbB4jO9CeSHS>J4x6!IAinsy)@r}eUHE7@ChljX=t)P0m zv-i1qA4?E49G1ULWNEHd47JY;+xK&Tqi4ROkPws9{9HrjllBb&$GIcBe)jwze8D)l zAg>RZ|2gr#FNX|2&OvnEz?OX*Am7sv;mv!K14wNC zvUHA|$!B-T-+atZ78rpH&NbGZ*om@P?R?%AB4IlJXqLLY`^Bo=U%Qs~X4HEZG)Mz4 zdR!KyT^gSHj{hak#O{%EY3zEC1>W*FcqikMZj7lwG<>eg7?diJ{p~MjTTU5!>Vql` z&Zvy7v#-gs?YlAUS#BA2msbiGhH5`s?W&N4UtNEJ_Iw}L3{AP(zR3|Uq+hl@{pK8|JAg+eRY&J*0{ z4SPljIodV8i-;Z_*9|SJT~kJm0l>*-XtgMe#<8ho#eaDf=*&me&}z6gPT<(tvYu;m z+Wa-UsivT2eGk0&yAapIMZ-Wt0d`tQDJ76Yg%pRT#Jz;ljpsT0cYljB<6!q_tHbch zOVy1bn!7fr{h0yJoPH0US9rwm&t4}75ZyA?BwUY46x z*A>@jT9L6yyob}Y8zuK&&%@7(*E61l;TP58y&qk@s#wRsfI1dUB zOqTmGta0>3dyhzamen@QFfR7=9R&G%=%GvsMJ6(ej3sLGuF3eh z&ijsl@UC=%q2$v`;=RPQs$Pw`W{?dD-Pi{loAx|P;g<;(#8c$cI`=WsQSYAW%J4=G zq)*PRx5E}Fb~p#a?G4&PCc3pinHZ#%p8#oBSxV9nlNmn2Jo`r*xU`mL;& z3*|tvim%VkPdAja5YN9UTwFDoY_4_3#HOe@AVK8WJEyOl$8ZW8hWy;d1#IUUTDvBg zRpsdv@H|m#B*f|D$qN^hAkwMn7scwltY4~{YdDE}T?u;_ReJiu+M(-}8Z@W}Ilf;y zKnI{?x^J|^)kFv zK}t3y<;BPSg2XQDtI~7Dx<96^J(FL-{KTsn#OJ$b>5 zJ+o>I@rF?ee0|66#xG1ZriAg!p~+RWKXVEy+n_|=7|h|38(~M~*mGHEIeEDIh*1!8 z4^qsyk>D9>8tz2n{UGVv(_5=n?~zqzyYR2Q*U9$m+$lIsmz^@M72N$0sRMLJZ526# zU$Na5=E(gRx<2oV_uR_+swQ2i8v;dBm-umd#eyT0aTox)0xU3pducJ2+wl1MyHDKf z>(hXdzxn1Z32uO#`PcZ0B(EF3;HDn-+br4_afvq7%XzV`-R~_iN;Boe1t;&IcZJ`Q z&2F1TQ5cMwJ$KVyxb5Rm8UzdSrHld%C&8EYyHoi|J7KF&UkF7jD>Ej8v`tQU4h)vS z77^WHx#{m8`n-DBfglfbXHLY$$KQ3IFcg6`jvP>f>RF;aIZhnEJ0A&e(2_aaMpM(h z@tS={0AHxmCYu?{FKw?2lu=>jmX4H4?p6h?@i;T~?M3;^#`c&Wvh3ffAMcc`f6 za}K44BVww4OH8eGky2Gq9&GY8595Pu0bu2@1SHnTjO%*J2fF%kh(aZPuMhXb_t+A- zI9bXqV57s3UXSVa zqZ0d7`9LP9(9-g$*dMwL!SNG1eG@|dF005p*T*Ecdby>&Um>253$a_czSAz-yYur? zy9#3|0lRFEu={y?z(i#SES-+pK|#ri;4TFQ(Ldwi!B2fcS^oerus zBVm{2RGut^#Lln&(ck2Tw}>KuGIR&K=TQP7cxa9B5`~k zI=cc#ECBaX=RS9xPQ|C}_xMgJPs{=&<- zGw~O~KpOsy<7ZP&YiiN<|FrsVRzbZyQkJY$b{%TIrwQRG~B>PHvPLiBYt#)n2$(<#{VwoTh@Q|@+9 zu1N{uWK5%9SRPZJtX+tQIRoX9N#D|aSMdG|!4dkF*Y1APuUlEZ__D%B74Kii-QvO- zz%zY6#lyOvsn0S4a5RrCv*}Irm-IrOx}`ibHJ<&C`)YYXwI>qn!sS!-q9|9%=6-zr zFOQOG`YL_H9%krFK_<({m$+H>@r>Y!n6ubi>muC;p3f=NIFrif^E{f{zd%l-X-XCGt~A~_ zC?z+#r{DL6EDdt~8hmkY{H<)7W}r1P7`P-*_}g;cq~v*{@MYuBqjVj=%|Fl;HSr;~ z&cHFtkT9WmG@I}RP+a@6>$82SW!DYM>k;<6;feTFaWAau(jIvf6uxt3vd%g9y<+fB z_8UKTFTClmta-ai8!t~2WT)s?B#kEf8+JX|M)7dZ>hTb}!0pbqt?RU=Va{0|DTLKi zo&Dcp(95TG7@TBn_a3PI)Z_*cS`F$F)uW5^5cLSYiA8i3FE29zQcro;EN9kE+vJPe zgVM_^c9%7WcGVSM9E%1?eO}OvPVXsq+$i5yZ%GV!A?f97#W|WyQu-v2K6Os{pMmG? za@jULo}}b@%n;0-%<1AV7EH>X1gWAvP@U44Z?^ChBvsVs-+Q<0`qrwzr)n^OB@NK^ z2*_~fWX_AXYI`m$z2v!k$HcE_C4Gu6Y7*@iDH;T@v3Zp~2MV5D6Div7Z`(g?G;Fx9 zGMkcEdQ|$6YTi(rQuy+)sBBtw=jx(6R(B;)WLtil3khwQ|0`4;#3q!d4zlWjWqN>G zjQJ{cv`Qb}@Izp|HdX~)pgfgZRg+T`Ie4?(oPwqot5)ApO(|53 za6BS-JoK&}m8kDs1KY}H{v^(-fEJeIrfA&2d+;`=J_S3!Q2 zh*v4U?w*^f==5J{8VvM60!@3$@fhcVZfwH2AW<+(ah~D1q(#rQ= z+-woKlbsiyAD*%gMsat={?s1-r+M!JL7PLyjyku1;P#!=Nms{@~^B7=pj|t*b zQ{FnBr|9zU?g-0pO>{ZjBeS6}jNBi)|Ck!Yu{NyOqbxtd94Na!HjQ4hrRIqfhN{BLxFvfS^hw`d=XEzgW#C2JvVrsx{NG0TzSMB5 z1TsqSd^_&+R~Qy;hrDO$O*JP4Uv>9@cZu2u?mF2MB}l!8Prvjg6`q~*CGT>>bKHAH zZQQplyzJ^OGZ%gVtwpW)TCz!AG;Xg*xhg<@afFLriw0Jue3RKu1QjAaai@!($7WU; zUcFwum$7_v*$xCh9(>}~7ZDvp8uZr#fG67C1*8uP>*a$8UbmI*(`s!6JlJbot6U@s zr-Dg8nTc;_7H1Y^9p|1UE4hLqm{fd+Ks?2FpXjBC zwCK>K8;46%Iw;TOe?;hzRmQ9R)*-GG?+Md1!(l<{JpwzwEwR0a{F0x?J*4#)D6ajL z7gtHfC)E+2O?xd_V>_RcO=lWuM6Aiy@&52*_28;x)rZg8v8$RW_JmRtzqehPTYgod zG`D~AlX0Os!Z5w3LAGkXj`Zh)99eY@NI%zjiWtR7H`?<)QQ(~wc1{P9Gf1YO@e*dM zfUOVQs0MA=vOnQS-S;Wdyst|rJY_G@$c`hBN}x4W^GK9FjRLvdv z_&3RvA}8LX1Pd#TmveSX;lCq;GLcC90Ac#Z!|6>k{_Tt>l&6=QaNl~HAGs!bCk0gFd7#@1b=_kplVGyEjBx`yTO2> zEF&C^VK;`&7Z5gC9t~kP$awOIeAisfps-NT2u!7rgL8ky+#Om$YZe|+n~ggWxFK8b zS2948YuZ>jpU=s&EZ2BOd3d{9zT%K7GF}A9WD+!;!g86$`n$sj4aL}D$QU;MD^1yi z`lLERJO62dcG!wY>eYp2%2lLf%h?AvYzThRC+p3UO&?KFYfGc3TJqsi9P?kg0L?L3Z6U@M&D^8+VV zgLpiyd475iGj z#y_%@Hi3F{G84dg)FvY;{~N-miu41nd%B>epIPkOl9<#P*{2mKww=cH-u3TQe$(px zjd{f7M&gT%DH`5jbOGA}IZIq#W$XhnBzmgBl3gykv)@!l;XD3zMc#X^LAnBJyu<=( z#_0vi;!ITRlzw_QWdiL3yd?UvV*l*ScNAr@pb?H_xsN*#CfmZvw_6Bq`7E}fu&^zu z6IB2U0j+KHiv4v(W|&?=w9Z8?8>PY%lPswzeLjJD2uze4M?uVdd5yCPOv zZ5SsxOyh;f7ei^wn*0begHAKBvn!7?1H41=51;Eil;9sL`8kph!YtEhrzVUtE4*8K z*Ym))E;r=y2?|IpA0GNeqbrUu>F`C|D;;Bpr+%af>O1c%#rdr|V`q$4!*&>RCu3N@ zXwwnO*BoHl6Q8ZTOU7)@m{DZiZlZQ-Q#M}W7O}4ZP4~wra2;!-5m2@*Iu(IZ%$u|5 zOP_T@P5pbAHt1@nU+FaLaS9xFNI&ixwWo&??19hFVVb6&dqjbS`RAd+l7aI&G!np~ zM5-1&b>H9nK|44)#$v}2nSP5Hz_Y|&4P`@SZ?JX3Um2}u*4t!`+mV2OhV-}KNh!nc zt&ux4sZ=RL)Vn`LL++V&T`Pi=oI+Q(p~$ZnqlNsEzDf!xWF)n-Wpn&A0f*zKW8(|-;a*a_DxS_-octrdaX=PThYOm zPi8G$PdU}xvPF7gQP0us=Q#S?{Z>8D{K;ppLTa`@G1O#t*T5f+UM+sXFJ6mS^O9l( z@Aw`J0xBzCqnK~<-`4#0Y#?;Rinv;<1|*8icI0&!gR5sem-x*rHgX_&|23-X}f09Yg``@IMoG zNG@e;Avt#171tHl%wF|-1|AyNn5sp;rX_7|oX9FvXdL_zKY^|D#S&ImV9uX8Kq1|4 zd<%j8J@#DEc>_1f6>ptX^;w)$^9WnZ*j|M>qDHe3VwNz4b@MLujRlwkmwy$}VjCYd zhc>vrQ!BGGr}LFT@vm4#%>${o`q4i<^|#;M%=gda^xNya&DHbP1%A2~D&EGOk+CRQ zxX+UuP(}%JpS?%-!uf(Dz4rU;w`YXNB1LSn@w$wLT?L5w=uKrg>-B^uH& zoPxB@dr7goXK?qLj}~WfxU*;Q?=|1*S<%c5AE~pzqWyzWTr0?-IUr1aZGvyrrD*1> zcU&u0TQ|h!TW=xVz;vg?d|eY9K0@H9siOS zxqAp|@N7lk=*3SP2$3tUge4b9n{962{2Icj_omST#U<16D!J5YLeoeYycd~;w7@&e zamlW8%tA`wom$C}*rEqzMZnd^?)XQo64baHV?+Ti1@RQU!bjDAd#L~R*mpLhVhYo) zD52+XKPkNVv`_s4xbO@goZI|0R~1sUMBM^zxe|gNC$1vc1R-F-Uf+&&3h;L&Zq#R7 zn$Lu8Uj+lg2(X)G|Df0UauX&?^!Gf(^z zF)I@129`-6!xOp*B>e^w-wv)RzE0>k^+bOvEtsqwQJ!$i&afF51E?G8HQ4;Q&aO}X{FlhTE+J9k zOP34|9|R0>Du&yCVl!Shp?n4Cj?cpNvNTS9XgNIsJib&Al>O5&6lyahHi4!OpKzGsA>sKKIbf83ip+Noq)rz zb(kP)9QRZX6mBX@9NsOy;-%GS^2Dj#$aGJmjbwNqCiChBr6 znsU7{-wmm&mGPrtu6mQo_vVr|0C!6u_@`gU&zRrJ0->F?DBkPgcb~g4FTZr>UN1$4 z{(cwyoAuY{G-_@NdfSFzm#`rfvDzU+9@2Sjff9e7;(GMhJ;P&Swd zOleGM7~J%U_DKR_HfE##YKhW`(E;=y^|l&*Ik9}^M`4MXixC5hf(?|X?5FG((=$0@ zeVlNU3`mmoMcm3>rgsHd8+U`r#mNmS^)#+ZM zSA5BF)&`ImkC-SAzYvdXD_3Fra+Dc0gc&vO;ylD@H8z8rn%|;JVP6}QW`7?9gTF|M zAj^ut3ySm1WJQn*^F&iuD4Mk;o9FWE%Y*I9MP??iU#kb-y!Fb=EJqy=6IL15mK^8# z#muLaR6fou;~?{$=4Wh?JTg>=G_AT#(?(~rVsp@~Wd1#$s^@&zL50MOCRZ`ozZi^I z3^tQhKpyn565XQW)FA+; z=$J6a?WHJJfmS*lBriIE&ab-65UZZ zEw(@Wk2u_#X*&MzYbnVPeO?@?pw{b?%wX(8AKGA6f2?2`QpXXsn#xbE=ipQ|RX zH=?T-w$OXfeT;pLX-qG5bJ*@!CH;4qdeDRGpqYoKXA=rtCUz-!#x|3ALZlosVe?DAk`P)&JVZB~@9IQdtw{sGqC8u9uKd zFoAaq^;t*s&ni`X?{(}^bX=Pj7-Y8_DzPj ztj)Oq;Xl9)x5d@AG4JmS_YhtoSY}&x+sD3KpqkvziNAxwIaAqFjq!Wf9w=K}nOyZ2 zdukp`TMy#_>_ejVJ)@%&0uybC``_V|H~D;1v`@Ld*epTZFQK_qnN;=UhbfH5tSL4h zs}d_ertOa1G>U0;jJlw9j#0AfPhiJ%2Uwez5RA}<)9s)xetJ#!^lh}_dn5Lj=B_NP zq`94S#Vi&(+TB2338*MFm88jx6&IY^eH*bo_~6nQl~C;FEjOq9ooRdcbz%ZQfHP$b zSHFMRxHe6~O72Sv5?wH58?C?m^SjL^XxqQRSHAA*9DmK8;di3}U#Q%-0paJv-Wq$L zMoJwx6P!s;7IP)x{YME0jall8eA+>X?Dv3Z!UsIIJ$$wspyfbE$!jw2&jbGT#bbW- zaw)~1mF1#2H7zw~D@t;b_K!cAqv*z~lTO{k)!`d96i?^y4H+LuP<~~W99LuQv+}bt zwZx2HbGBjgX(_h0LGR16Chd+`W18hs(5{tLL6SVBFjdYrY;F1M-adXRVe;?A*S>Gx zEX=(a8OU{SNh*8kxRTZHjc{DsQp{j@6Xr`Owwq@HL(* zlLtE5P`-5IVBk*Zt7e|hQZj;re!d^W)|35FTz5}dKWYC9R;NECsDij}A&4~nMS0TF zpLG|4V;3q#q1gTnZ$ac?qFgKJRc`DHg7p!+jx;ucURV~KAT&5ico;e zxN)t%CUOk;^U!F)5rM-m>H{Y~ty>1kY(EF}D=Z{)LBk)f9-jWp*81*&%bt%GxW;a? z3Ouita^|Bl6U<{f>bQ;(W^TJLE$(#1;{q>Uej4U;nwAzkmcla37z$dq3sjh>#${!8 znG)=OCjHTu;1AlcN%*O3?l6f^s-b^dB3@~uU#U>=^r_r8@HSv^#@uWx<8Wr5{M!4w zVdtXywhwDeP3J7e6FL_>t=>@lHqP`o>hary_|1|oNcp+D;9DscgZ`tJT_2M?{WH&y zv_CIr#2)&i*2|adkP{4BwWsFpOCdP68Fva3d@5+vyZ&hi+Phv6S#awj;q23&+6oieyOt>Fl842ST0=t++*PQSj!NPBlxTQ70ggL^)Fo(cYk9j7Ecb)AhhLbmu z*^ucQ*1DJRjD5IL!Sq5dtU$vGR>x^9a~^c!K=$}LKUREaY~xc`-n}^q3HxyJs^b(Z z@WMe$(C_bcFQdNc;{0?=y>6`~RWz?->Jev^OS-S}6j}Yrt)&2G-xEmsa35hc^31X? zA+@nb*1_?YHE%6+O!s@4$>_?9SUQZ@TNoahDV+US!0n z8b9~la+W{xEG6G*<+Vd^g|9Kpwny>I;iCFap!MCSBkz_n?$1{kkW;J-z8ra_0+&_T z01scl=DC---@=mUYJ0=8+4ecnDH;EEpgw=g_cC*uoV|j8GcaJdz!#Fn8?^2*iv7Ua z6wDtbZ#j?@2OiD%=y!vaoWBuRbsAjoOH-k9 zB{toO7Tp8DixpD#W7TVnMpRxyN!Fi=RZ<&*-*bLzvb8LEKcXe8fn>-EA1H~gh-%!k zOnpB#JHTNn>Il}WvCi6|m{Y6KA8G8@;ZAEI_Kxi|Y|W&xt;YtQDy4%LYpwH!z00cZ zT7ANIV-yA~)64bht;L2D%E}EG)0@mJBks7_bdC)g#eo#ci|UUmkKeJVC9+>PACD6J z8csyU%UG6G%cDxeIeU!IG7|QDVidzlLHg%k(p!A)-&c0{@agKZe){O=T7YG{@6^9G z-AS5Qw?!!zhphi_SG8)ZBxGN)ZV6@Rlz}-;EE90(DqGDp6B)hBsapNLep$ zSz2u}G(zEsT(9$5=x9J`J~Q&>*ROFHq0~8MX!Hek%eG3^qz+SRu`x8dR`TJkNVmw- zf(&YshKYPPU=Amm=8ar=PqMFm;Mqgjd8AXPYxlV*NcXj%X@N9aRR7g*)v2O`S^&Ld z%^bvST=sQ=rn0ZC(|%E|i5>3S6NhK@ZVFJFtrCmySOlQx|B74tUeR9WCpM?oU+ zw;y%OU_y;?PJR0$Dl17ZohR%dXrxWiNnbBh?5?VRC3{+$f0hv}u`apgW52$#{x`T0 zNg7&@T8;m(z_2@%sOJ-ewH!79Y>|2HdP#kucn-a%l6bakOme!|s3b&&=kGM`eC(lW zfzdChNtqc)TZ7||bQH+M8j%(>-+J*?h~>X9bO3ZH-9k$V!<^1)H&eB|E zZ5wSt!yEYb7Qk4}(Gz-e2o?CouK1=-x}t0N0(mavASKeY+)I1>q;p&^&fJ6V|)^d%Ul$#ACV2&e3AC(zj+7^v?nm51hATP-%%P70VrvF7O zf<`%p-26qiaBMzGpZ}4gS*2E{mlvbAPROud?A%t^x*os!Rk`_;L&dM)MtlPET<=`3 zKPYa|MZ;0Oco7n31QGzAQof@3W*c=wI%f*Z&s8yTY!9;;zrec0vM8$~Kb44H4We0n zsWTARu-(wEPH>Gqms`wuJuv?Ok?sAZ+xv_63S(g03SyuBp};pqD0jC~JQVE;KxSA5 zSB7P<%Ulz%%hiBKXD2xJh!!FKtAD@U@$B&oH?9AT@1Dw zUqyXN3R4^P6?~S_I*JnUo zBH^$h3tNNtPx8s+5wa3K->|DhuaDu~wVr@)Ht*px`n0u=G96>wP)By%8p7Bs;~frW zn4VB{OKRJgh=GWZoSM|6$Zj69?~mM=J5wlUf13U$93fLR1#~}y^ccz;g5#s0p%-k& z(nTk^$55&%jqBF&SjghgDnri5r|Qxp50ZNwNbaNeL*k2zH+17v=D9OqBRRA$nrXzi0EZ z49%P_A^Mid>>|^p$>Tzt0?;3|h!QCxCuLEH|Ed2MW1vGz=#022=c>XfTOva5f%%?gK7WS8%F z3tI#^XM(%Wo@Pt(C~93**WgLP(u_eu~<72hHndDIA{7zw9R zODZM)XbHzdYUbAneUn;9A-&6yr{p({={JqWVp@oT04=z2TrWgNfEKGUINR6mI>Hq- z(PzFt{y<4IZ#g{OKON$o#pJ4t$nanHhjc@_tHZo|iCHo7eBRz)mffm`E75%EV(Mmc zpBI66Z4iMC*yq`<2yj$019(*Ox* zjm1h2Q-C^c&*H5|e_E|4wJ8g&Dalj`|3%YorBg!-!pXfLamBf7=_F^?s>1UIPb_z0_C_ms(%dsfgX(bWu zRAortCn?`2$pUB69&eIIT)841Z)S&GxmLP9n|-dCP~Kw*R}z92k|1{1WAED2iOt6T zgr1JkKiR9^nmXMek*QdW;Sn;^O(-72Z{ZTxeMwekwOyVG)2*BhQsa!^GHqZEbD zjE4#$vk90h%0$$rm5KsT?D5nmo1j!4No>guD8YE@+g-_i*F*toQwNpcc?N2fvEQ$~ zD3Q@0eO>Uns8u$6e*UG*l_kuk*0?dWr3@S=x*d4brk^qZBvK~6RQEP2g8+3&2YMD& zCO99nYH%u}X`qanteAA)+Eq z1r+sjr~F@A*9RusFixMpHkjJ#uky7z51nw|#kVo7XrGeYIDzt?5}%^Fk%mO$t@Qq7 zF5C!%z}*877YWz%)?0zy=2Mv)&4=)S)xZsLSMx8P3c@UE-&%%8Jip|cl$Xy9v3ya= z{Zej}w^8X~lG@VG>4_&8l*N-i2|?a(J>{N60{!4w$+DH$8TZ^Xz|VtEO7CkrcEB>5 z#tjdv-4{i2a%-3$4F5h6*fE{?L^cfx{UiSxFT|9`GikUVI+jbj;EANki+}F5RF>l4G;xa%tv(O-Vrt z;~clIKa~X~Ox~YSabjmgu=Vj-tgRliV-EeX`m=q>NKDhehOUmTjx~ikg+0}`wn`Sr z{HW*?-Ng6k<0I$ew;RC63ceh#{_cZJDaQ{ z;qlRN)}mNpbQbdTj}^zt!n0$Qv6`4|Esw=wW89_onArH(q}bHR`q+%v?AW~6L$OC< zOJa}5R@mw8M6`!TVyk28VjCk{V_Ra|W83ZivFBsEWBc84?yT4$`*FMn*N#Pv*iqD$ zrFM4gMC^3z{n+`~rMMoK5j~#btchoY`^PimIq}?h&v>7Bk$Thdl6ZN%I$jrd`RGZ zi4pNf6a5mQL?kgfIx8_QF)=YEF+DLW8cEDeEJ!R$EOzS?OB2iO^NCf7wJ2i)j@g{p zme`TlmDn5ZPrcD%>WMa^584~{#WSJ>*7A7I#KG|M)`rB9#PP%_CxKp!dpHy9M>N`$ z(fll&W@ZsI&QxO$v!zUDE7=q1^Pa?(&Ng9dL1Q*EXoO}<_6oLE>_BOV* z>>X^G>|Jc_*k7<^(Rj)B+~Dn5Ht)vsSP?Ja1#A$FNxXp%V-)DfMw3N39Tw$_>>gN=2iR;_g~!+evH`yX z>+fy07#3eWTSBD&80@=q?EB)prn4V_-`ld)T01S9ZPPkx9oe&5XRR}P4t7=^+X1Vp z7kfePulHv!=_Psz+pUk&$Fbk(lk`b!kA9CngT1WJ)bC^a^x67s_KH4N|95tP#vdJ` zkw$7p_pw`r`Ic`VN0Ij(|n74i}`)N4}2f+S!R}*#qT%Am}B^C^MVxo0a#2a ze1T$W{#{r@ZTR=V(OLXIz|q-!nd~Gx@gK@unah{M-s#1EB(Iab`3l)jy8H>)AfxzB zQ0*ALM~;VM)V8SyE-v2r)#BTo9E>R#I40B}J1)iJGLFlg0`wXaCyr@>a^;sN2zKanxqmHK7Ti!?qoq zN|uMRJI32nYi57U_IMn}tiUm=?Xu8TWqlxbll_65`;qey_9^QFWh2LFl>Io={Qb}b z=-+u&axfp|Ua}`Sx;?{@uzwy=)(NZ+SSNK;MieOv1%LIi`ztF2_6Y10rw)IiA4f@a zEUsXNlL#)sv16SH%05xniLy=X)y|`hwn@!wbw3|kD9*FaPL#a|_R@^Y)=3}d46d`- zUOi%Fqn!dfqEcBZ_HLZtcGF=0>{J$uvRBmg+B1~RqO6rhTV-SxSu4AtHp)gBPk)o0 zf@?nPF2KE)sWUX%EcR*_eYRcJXu05N*0`H-zHP8@R=GRWvvqgbt4D^E6@&1Iv$JkT zqa}mqROy~`FE&~-wHa4hGO*vyC~L-D6)tnC8!eh}41d9%3FAqHr@|T_OQz9^ferI` zXhL{}uij86;n=CeoP3#Wwlz5s=5x*AO*(ESKcN2` zo9QX_OknqWrg^5ZCp`Cf?qRDuGd=gQpLp)~JivZR^8l^&eB1MX+0SUcpY@*ad!Asw z@NDsHVcR_Qo)6eF#;eAw>_y`b#vj-&<2BwJHRqZ0*c-&5$IOl99`>fW*Ze)ZWF9gPaos#@9_AkNsCkqd z=5g~l_o`ncxzBvp{D7OurOBl{Be^oUlD9<5A0}$3Ij5r7&b52mee5E;1mE(C{E_SIYP-&M?L=*TMRtYH9*bip*qQd^xT$DXgsu3Kj>v@{8e5vq1v_&*qI~8*oW<7_DOp(j#ef0$FV6R*HulyaS8j3eb&BU zUvQXXR8DsMw(Fz~+vc=#{1y4?ew-|)laq&QT5lIQ1x`O_5YC!0GG=EugY9x0F-+Z! zGr}&f-Rp$x!|F*mk(!z6dY#egIXL5-iOv*fy1L$x>zrB6TqjbI?JTGoR(aA{9lZ&myF1K^= zbh4dcwV`2qogL0DM}-IRoKn>F;rm!^$S%UZBhGQ>lvD4Vs|q<6gY#ji`0QhqlkJjf z+ljaV`>>ntwy{sTc;;>wH{UH(PpY;a=SsN!?XzyNTZU)Ts;#d%I@Sp} z3+$q58|Ob|Cn|i7;nvixb8R}u2?ffj!7f7|r`gf?wV@y%0hny+Wy zV63eE+P27<)@puHkbkQ-bBC>w?wDQ5STPCo`A`jtx!-P7Y2B&J4~8&JQjOJ{o*1xGcCb zxCZ;y2R8+`2A>V?4DJaY2p&e>W5JV1KZ9e=;+PA;g&`JP7BX-|BIIw%xh8lvloni5 zSyH+s)GCxUd`|U}(iuZ@O4pU0t@W3mE{%mc4b2JVRpf^XLj8hcLxVztQPxSEJ%RH- z78<6`9vXqa<_Fh@LcyJ(NN6PyK#>h zxa*>-Q z2XiWBgz~HS6xO(!z9BX_qcgU*p{WZDv!kRhd@7s@- z?Xe%L*j?)%vbkcC`j(DSPj6^-^%8Yv>v8o(9T`9SPJqS0&>~d*nU8DRhFWyS+G6XdN!#$(*x*>l2pxC)j-ToZj<>dlj#qE2 zI_{+5T8l=EC_7VjrmoFMfs|H5rdOmpS$Jw_+tst3PIZ@@JSPwDdur*t;TNj&OXpQT zr0fsqd~wa3>g*wlhAeUhIfG$k40A>V`#^z1)x}Pvc9k=_{B(73>Ep`o7(S*-+WX*^C}$m$S{;Vb7^qRwv4Z>WymfR;VY!vqwEGLt2WuyXwLr^;M^8=F}W^ zb`2Q})pz+ij=qd<;2Rj{oA@Rs_!ho}Y5W=f4Ac2@{5j^~FYp(b!C&GpF)x3azs!96 z75)k{`K$a@Cizi*lqHFIVjlC0`C>jx)(W*k7SIl9hgdW1uy&ZGXh*aoELA(I9c5|S zG3^*@t{vBovvlo*c7nCgPHHDvhIUFj#aik=(tpHS=|9$g%v$SD=ufaV`cL$qu(tY7 z^`Ej#{Ym{v)=vMq{&SY4|3d!-Yp?%G{}s#DU(;V>9rV}r*IADKhW-ZYsK2Sd$vWw8 z>2I;l`rG<{v3LG)ain#gud4nPdKk=M1__fP3_p5+ZknPY-Az%|U0uJrs=KQC2V9I1 z5fL$)!x#}GB8%C`vf0Qh%Vi_R$Rf)i<|2z6$0CCqvY3mAIfjW0gApT($Rc9QF^DXe z%k1+!bDqBL?sc#G=k9fTuSvZsP0`O&_0;oxpQqoS&+}0I517rkZQRCQGCnds!g7s| zjgPTB<8O?=!Sap2HU1W}8~@SxkC?;wmhmmDzy$tbPE)ce87nj$F&)83Q;I1CD>9{; zQZbh)&6I`}n~s@|VI`(?Q#y9Slwr!i+@?%ZCgw3^o3b&l$!4-)rKVg{E=HO1P5D@v z$zgI}w8?35VvMQCRD}6V#inA+Z#rQ*fw3l!$%6$Ep z9BdP}sc}u$DzwvDHAq#*szF_=*Ep>Lq-~(v{UNQ1I?!7EHCkI}h#S_f1e%mJtyAj? z4Qbt4pLR(chLCpzJ`2^>A6AEGv8 z8)_3%MSb8c> zRnaqaRJQ3)wRNE)VuYm+bn6)rt8SCeDGUBIaHsdwmB?W&Ig%3SiX1B=Bbkxhh%=HB zDS@SXyKGu|go?0biP9WL1Rv^Y5eXctAbp%8BBvr%)RJWMXZTMBuS9AiXM-x#?Xxvq^yZbo_|1ChbVNMt-R6*(5U z6PXJQspF9atu3+?S@G9URmz&L%R8#IX{}mcWB}ZoO(!C2^h{(k@+h(!If!EV5pb6o z!DZd%wm3bi*{9WYZXlqyNlI_eZ`!DxN7A=*S` zvV+CxKS!YK({-@`qwc{t!1DJK|4^rNuHRHf9Uli;kj*?~XZQ zF8W-|8=8*!f^b;UxuEf$TPq)Gz!_^bQ@yBiqt3&GJ?WvqrBjGc*{(=%d?;*9rR zXadB}TCAC#jl`(~${Fkw&%`dq+9MZY9aL@XS|I=JBXE4fcf~JgPvj(afv$}8=!?{D z#2B8@eY#CL8|&bEsX?tG)*rjg_eLLsYfo`C+QXPnYvOnPm0WvlI5rlWq~{|ozKPgO zY!+N~UhAW0gPq~o*dpln>8Ncm>LB(&PLhvA(_^a|DMytxb|5em+lUP657b9d8SeT< zY&*6S+mAhs8{<|z!*7e7M0;A~K#Fr0uZ@niAKcrGXCV=*G`l+)rRkvq~tpes&A zj>TDiJmv_l)AMmjyB}BM;9qbeekvwNm;EQ>Rk}^n)fMelFgsowvBu8^M&swhlk8dj z2Bor76c~ZH8E%6giJggGi22k_DKp*@Z}INMFZpZ44KPmK^;gCgl{IxiYl>fvUj_Sh z@8e(v*Dj2LXul9yi{Au&JRu;t0o^zu}$y*xd7I@TYlij9?LYg>_AeYiY7zT)dEC(GUNo#2psG0;~| z>yz46Iae;1>oFoUswJ0KP@9nppkA`ePnTDh*TvGx>-llo5qnVH5ZEej@}DbjRo0X> zaHTe7&R-d*F27RVS>9FNUEWuItBjg7-j<#b1UT zi}%B)VB%kc9E%T_DKmwC9X`VnzXhLLiT@k3YS!>U`0Ypdkh#MAK782xe)IeBG4lt_ zAH=_9t~b}?S&#Un`QMtS@hS6+`Fr@h`TOQq@kR4%=AYm{MwGh= zpIVRq0`ToF{!2u*kKhyO@m~X`eGY$YISR;jA2IDyz_jP^w=Cx^pCAa!CoP{QjF!(> z+K2@Byg=eP%Vo=DBE`~S=_K9*y=3B;<-3;e5t)|nTV5qzvb<*bG2yg4v^*qAEvuHF z6BJqiJF8r65b#_3>|Bt z7CP3%N1$U()IrCZ_-Mkf6LyF*3A+jVM18_R!haz?0oN}QpMq=Ni3?UBKZs`QA?qRH zv({&|w z-|rBeaD5?h-6~o`#24YpLgFjdh&4)dTjSO^(POQ!o+Q2s*Axte>_v6JNKsST7RauwJrWA%?9T)=uITKePS%(3WF90V0JK}-$yMW369x?gPtlzi(M`GRjs&$$8h4leo@;3pK(}p8}$$7(j zo)Mps3@-pO*A2(vGwKaC_*{C!OV9GpiiX^0L(hf{b}$k)V1K~g1*vGaf}>+tHW<%b zm=}y#5~gDn7;(bEH(&-&;)!Ot796F^HJITo7xL@I;lI4BjJn88ehT zDZ4G7!ibVxp27_5)v|6m^ao?F0e#yJhWFuL!wCEq{te8G;l_u?15}=L_)J5`L&^zcPoefYsxNpOG#3WC}~Q@3H8Kv_fXj*#YWk{l`(!yaqyMJsfvs2 zRJ@80UB6Bdz_}jE4N3@{uT6=CW~q7QA~Pu` zEA2{$a!t7b&YVnEoKWS&fRo0Qo}g3dS8kVXDZ>G)bG1z6o+zN6d{>o81?HNOQJ1He*8;tvLD*KIk+PJ~xN`=GN7$07&f8@v)I8Z4nktYB4kZYx+^2AlL6{KBLR#BNY<*m@8&~E4;jD^i|T{sc6Oe?I_a58Ms zaB4U`ob5Y+wJJ}9^TTA=Ek6v?VOrS;b748GgZAzYSA2D`8Mu;V$_J*!n>JhH$t1FeHWh!naB)srm5Gi54z7 zJgW4=7cbL zO0`CL3L`^3qn-n82_ggZhh?=JLHB?CP=#u+JOd6xUI+fjOy$?@^z!Pn8a8L(2`+YEG?0qXJgYi&9z8claL4Tr?e`qR_2&_F5mxHJ4?-%EtRnWHauE(ihmkB%qPLoh^&Ak z5v=>N6s4UXgK+@br>CS+PS(zY{esp4#yq3xkm(SHnXD!&hMS%>J&O^hcbVRW8Q$?W z-|;rz@izbe^EMAHB$ObYnE|>G%NqaZwj0etQcisi=jw3O2uJw)gHh%o6$D_j+3D7U>Y%OT7bO%&WL+p#a(+dPjwb)~%}PlS1DSr~TMgn406 zcp$76uI9~x92>&6uv4}p>HbLT%-)gPN+gx52jOm&panEnb4{=^f-6d3#Q$3B$4IGk8vz4>ksy3s-{|eHpeM`?9Sc9JdEM$eX3Tg^v8G z;59cDyisry_S`H-u!Gujqy>9QbBkA;=HjKCTcR@$j3iF8(;Vyv+ihyvv+SlE&2Cm0 zF3k)MpU4P~1;@lY*_Uk{g{y8UI7wd0;XLVRpCD_=OST6kv~4jsQ&iz@vE6p7E^qc_ zcU))`shoy98{9=HI4gAq=Y!GUVh}_*cwM#kf$=RD?qxfUbN0Tnd10n_A-It@3r3Lx zvMRW3>!UBuMF;kUJH7zBZE9BSP;*8x&((f++PnQ~R|wp^P%0wT1|ec64v#7&-eL|yYG`SMw2g1nREu=U92#a{UWH3Y`O zp@I@>Pi_G{IVxWYI!b#>dp&hUiMAflLe=tR`6@jkU+2cGat$WEX%Tw|l zH!IJ9G2ZK5agE6f?lpUtyc8VHb7c7nMudLY_VS9n2DZ)O&EggJBk7*}C^-4j*%Dpe z753Tu963j}_qh+`0|oP7qEmFj_ry)bEN*(tN}`hN+E!BS_p>j9YqTioO1gc|lU!8o zNwxLc_p(lU(mmNqwvtcY@nD{O59yxE9&mXbX=H6tV&Q6OW@%CSV!iXRXXC6->8sT4)Ro!#h=~fRhlbq!0 z@ZTY?dq|*24&y8M3Wni7#ea(7hHb+(Mi~FrIF1>N-!^^+vlwTL^H`$sN5&QGsPPxZ zUt%v9cZ_dh8OHx?e2Qh73??IHLmDX8M4Ct}&*V4xv3wI};xM~q!ZLw5z%{=7e`vjL zH^GH#(Aw|`W6xE+0MRge| zsy|1H>Iza+UqCMYRpjD#A{T#>E0u8z^z89N z#CM1v;Lkv}9!~}O=^t<>^66c~HnEKtBe%YUc++6SJy1X43UcT_h#dM4L;Zx;BA@;v zP(R^k42y9D(Y}@ElZEh7_o-4DW&J%8&}w z)hWYKsH+SCsH+S?sH+Sz)Kvxr>MBDB>MBDR=&A#Q3e=BexDRyC9~piM-C`pS-D0B= z!*MU({d+Z&vh~kye-?}+nP3zkF*oMJ1kn5A*lDa9JA<9W2u}lj6*GA1>8td0a8yfQ z1OHcn{|%l~bTc}N(w*QaM0e6%;D`h141m2aq4Xt=R?I+m&{34q<{1O;Wzco>mH$hl zCXT*Y5?sWLnKOU?mv_$z|NTxpD%&r6S~v_y*LvJcAEr|Z<_ZP+7@bMy9!<8d(@sYk zU6Ov5rV96ImX>Ihjvv2Uwojib946O1ByFXu3g!yt=vw+LeV)ERw;VNtI=BpST+NuI zuhTaR_X|!r>*!v3fF7hr=y7_AzC+K^3-l7bLa))A^dowgK437=SreILCY4ENvYC8_ zWZVo*4=@}(!pQU#qti=F1#_CIX6l%FrU9gEV$$hdMrK->Hs%V`$#gN@OdoTL8Oqpa zMwtm_nz_r|%fHIpXO;_gnTO1JVH#cQ4K5zD3^y z-zuoV!@iB<)%1XG8v#G~ z{FI;dOMcZK_n-1t`D^`WnPgbE{`39|{uciw|7E7$fAzT8f8Br6-|HWsDR72C|HyGO z_}#dF3T$@@=8nS_0-GbvL;C0PFB~^JqW%T{l7Gd&mf!N84*#bAk$=~Jz+$Y~KFubw z$yv6e6?T$Mr4QTJvutcSo6Y7Qze`(Ll6AB6ahl~adRRIA?D4y-&Q`Fe*=k1`TgTS3 z4QvzJ%C@mr*iN>K?)8vtH=UAxmhCIsXK%4X>?p`F;b~>3eY5Oc_MUH>z0WSgC}1D5 z>+BZ$nB9XB#6AfSfkT0$z!4Ay^?|fNM!*(u!1e-LYrqxo27Cb_5DG*CCj*s%n!p+Q z0Q__=(C9bPD}m;~MS3dG9_R>M3)~3w1o{KFeQAN=z*t~1FvGY5vw``*V&DP2z$6D& z0~>*DCNZ!R*k@>VIq=kP<&2(I+UOx|XV_HE>bd6_;|_Bv+%Ybb%k?aCPTwL8-khimS?>W7hNMvL?A&?kw||J72KNUEo@{OU~&+fx8T1 zx1Jthm$|Flb)Sp7$@Ovr+#m-Cmz&Di=k9QG+yb}6t-NUE*0@a+i)Xk;+%9+EYv!@S zG~Ntjkx%54Y4v%@*TJXKDSSHEvR`NfQQOR?`WitWKgH)~xO|Iw1h+=3JV_gQH&652 z3nzJ**ZB(0dbEK*%~$hvd_CX5H}S1}8`!S!oq-*`i|^+9U_3Hz{uV#PkMa}Xchme` z{w}@5-{bG|%Y2tVmw(7`{CYrO>U}%>7XO&vPpO!RH!w~)2a5fU2HHyy&!Z2)=-c{jXFOVGI~*cEotox=VL+rm@P2t61vMLZ^E zLf_@360t<2L{^lZzmv5ss>fw9E}lw1@2nH6#99&bU-7(nA!S-@$=YDn)31w{#LMDU z@w#|Z>=g&ZLFg(RC68~t?IVZ_;!<8zToKpA&HMxLk$oMc*v%uv0|}GNzw-fp=Kw&> zFUgWFRq(QOTB?w$r8?Sp+$`1qZcLWa(Rf@7Mq~B(UH?e_fQOVCIIAE?O$BqFRwr4w zFSXhypt?tYCHt!JRSYw}W_%69jXyO05PaIaZhRel+PqJ9MNzFqTv@24QC@7&OtP6Lo}R=XgCkia6Y18JECC+qTxbB!z7~NB1FSFqTwi_ z;TWRfIHKWlM8g$`hEF0IelMco_aPcSjcEA&h=wZ>4SxX9a21+g_z=MW0+)8|x z_yN|1)}nkB(k=G4kZ!S8Al+gUkZ!SWL%PML(CokhnjP3cvjbabcHoz2c3>OL4*VL@ zE%qjwBiKcA1iwLZ1bb+X;J0XwU>~kR!48aV#>?1SrUSsHM#QGa5u0WpHhmGXX(nRR zEX1bSh)rKYY?_PKf%wrn5EiWi2|zZ*IkXyt2W+~G3uqRg0nGw@63qfMqFI1Xp;>?n zXcpkpXcnLe%>sM|%>p!|S%5!AvjDAV7T_7AA9?scLLUAD z{2iAAvKY?V4{}%c7Pmyo`7Fr#Fq16#MBuj#TWJwqxSrT@%=Aj6!d2pdM z55;KBLkT2H;shj1!VSrin1p0Wd>{GbzeGOyuK=ywz$SjrEQy`}!~VY{w-h%sjTxBf z=OpGXMr2KA$>4XH%oJuwIrf|jyb@W1PQYU+NzY|7W8ghAGm60nSEhhh;<G%M4QyOFzSZ)C19H<+Hx8%+Ou&NH`} zVVj!ylo@;XEYrbE+SZsEW;XMN{ZQu9qqmP-&uvaiDe7nD)1SPU%q(VZc&A>fc?n z7iY&r$0r79EJ?HcRGY#R_93u}G{U*0UttuAzNZG^?bxU`oa2 zmZxKVJ630A#uArC@{bnu?s}lhw!$TO_2o^bO^!|Lay+lT;`P|f_Ji`PVsoQmrJu-*;`8kX$#K`l>WWu%SYA9`X{TUo z%lg>dPFW@CvZK)ru|<)FXkFRl;_0!au_yBe##Y7FM&?IGS02h75Zln{SkBUJHL;fp zwiYaCb+({)Y)kBoyxQ1~jx`+zRGx@T?OK&x6PXd)726v-5IY>1uf|kTn>iqw6`519 zxx zCu3*i+{~z~ZCPJ-pi@@<(XykF(XpQ*4RNDvRNRec#OxK;mnX`3C< zQN=6bo#Wl&z2p7ker##W`uKp7bkUH=_WZ2);QZW3eH+oSI9S&;=>9C#H-7uMNY(P@_Izh6%A<~$zNKMjHKh^bC$L_pk}_4=p@>nk5B3p?pP!H zBP4H+Z0$s>XGM>abm8gvlxS9bdUj3a=630Btz(Ib&G|>;vkQ8+YsjlF8d6zX&^A7= z*oZHPFD|H#FUzmUpBrD%uP(YPzPjt-!X;|XJFJPXi*Jm-(qXy0b8GiC@on*)?a~FA zU3SKI$M?k##y`EZBC@BI(aMN_5kDS36+d3yB!0HMNo88fo-f&4ygO2xf3#$I!YbL^ zVSA!UyET=EIy5AjXIW~_6FF) z>`yE#8&o!^Q&wV0Vqs!=_X&~O7Aqoi^490AFNx-@iOfi>?7pV^nocJZYf2hQ&&IYS z)+aVq9%^$SelS{**qlEq@p@u=-oQkCVozd!es1NS#Gyoe*TTe+oJgXf@?7FX;&kF% z<^Dw46JEG$PcN(Nu$Suxt$LGV zGxLvn)AGaK%=}}@R=v3erA4`=<0EstIOJYL^45AAx@@al$?q?DTf8^2 zYvNN{clLI~MtQruy_uQbf##7*E6SVX5AhDi`g%vB6D!L4ZOM5lM|j7)lZ8v7TcTSE zdV6QQpM1l2^XImooSB`szU3M}Gcv=^&d=?9wsMc(+HYI5rMSBD`Ih^o%@ua6@k{eI z`|uoJhG6 za=q=3SNmuE^MRE+KWGv(FJ2Mk1o{0l6ALA;sB(FtNx}G*^+8$Xp&%M*C_EAL2>JxE zAld$nvXYX~?bZYX2P0*hd&;j3Mwbr{CX|m3YJ;hj4V4YSj9^YM zzr42X`O@CO!is^xl3;l-I#?O3>GMX}$^2ZucgLDweV12)O$7rYGlI?KGrGsh=akQH zv#Wez=d<0m2CwH=6!b1U9c&NkgFV6i;844CEaCkW90?jKMh7RnxfNv#Mk`>9G$-c=%-sxmj z`-Jq3>ExjN+^A?HqT!BHq!sUpX0yjgqqmpBj6O)q*wnj^$k=Wjh zV;RS~4)RO02e&(2Hmz$xhT1`+{!QP zRZ=iaN=}JZRUSz`sjekgCD$f5LEzy$hG{MGnHA{kjnP5Qmrdb_?eaGQf*VE zsm_(@RJT;`RR5G;cA#T*e0FB*%A|Vp(Fr*r!*DX4Ov7|8aW0X(|5UyIQ}zB&)%*X; zs<)y3XWC^7tu5dWaMWMDG#wwh0QA6Hz-N$r0BjF-HC9Rf<6KR0?+EA;Fonz?p*wK( z5{2eHaMa&~HidrTvq*N3>&CSD(dON9{hGE9wgCSK<|?%Q4&53&q0k%)j)e0XGDj4O zZE%i)PlEly7&1$s?*iWdpH=Am3wjLr3($t21N|oWJx?45y_wbygI|G9!GF$pK;Csf z^jqL%^ePMbZuHQRu|Eji4gK_jvlq^M=o8ROKs`H4;r|@`2u?Bj{55nKt!8lbbDlK< zTn^qt58s8p0X$8wmO{_t>UZ4xD6QQFz73}d^l!m(@K@kga1}TS$q%6Gz<%`SCh$%; z$LOsdV+{E}z-fej##ke9Kk{hFS%le>^j_iBUYqxH3Qi z<|FedI0epX=+D4)+(j%fA86)!;SYy|ge3dqV@(dgB$zNuZfw$W()E(c$IDl!9fdP4OF3 zu6pZvI9Guu!2@XWYb9ec%g!C}x69quw3^dqNYUmf_*1Z9IJyG#<>Xuqq-#pkLSyd7j_ zoyBN7AI%>G%b6DwekVAugRj9E&Rt{SJOR?0rG4@t@J~qMwXAdChdljJXnH8#haLqV z?OAvg2aoEaLpOw^We%4z188|UEw=_cgHM92eW5+Twa`1^_XPv+3R=(}uO%|tTe{pe z7y9p9tq12JbCvlAtXlQ64Lw{5eTu&6S!0chW6)CJ1RdzJd3eHoE1s`br1Jr&Xn|Ws*t@lCvs{MNq zOEB4yorU0F^`&*WIt=DcY2!!uXwSL}oCb22h34&9(AUvgn!B`B%m6QKqQ3154&(Qy986DNQ=-Z;u#_##{Tu@|B5xacPp=M7Nr zR*X*QeX}>ux*k4~a(7lVnz6fp^hZ=d*CIa=90^CSi)A2Q+8W2os-TDLbTU&=k_*7! zft5(IXIXRL9OfyPGru$8|AGAr4{ZGa{UP`&c%MSIQ+mIYZ;A|YlvQW^Bypxf8x31p zZ*N^(%VQ<~=Ek!U^U}*DGK1Cy@Htv060>@OAHf+4Jro*U*;n&i_I*oxo8P4;OHQnD zh2(fjQv4EnGBTg)xl?!9uPRCNu-YB$Ke1m=M?PC!wYsp&{E=s&E9(r}?j&~`x$e@d z6`#B4q1`LJO>&4ut($2Fn-SUuYH0HjT6>YJ&qJ?aKe`#2_G#(!t*2?zqMe^3^8@@V zk!g{BOBZ_P4-{Q*Osj2NL)tW?vz=q@)Z)T-xA@BL56t1VO-Ad={a`mpjD?1PB$d)H+!o! zNNeL7uaxx4^k%g}k$D_>VsC3Ueg4{-j)!yI*=r@ooOcyBY zRkP-x8GD+dt?ovD;vXe{6Z)L1W?V$|+JUo>$l<&6Jo=#8{DFJ#rJrw_Dh|w7y|TZ8 z^A4z^rf(a!O4MHQd^%UnBi7y(&Xq_$YA%*|H}n{0?HR^Ge`F+}B>&DR#;AL(x0N2m z1$y!p{IxuNJ(@YK{UrAiZ_AaXET>yzg`{tVvj?0FehK151v6;lz3o>){H?9`uWcY% zfY2?Bht?7Je}TtA`fRgKZG5$j2e#SoZ1!=RbuHR}I!b>JJP$`_b2c=dM6?6-h~5FU z4&yuy*e1)c(TpG)we?#5 z4V-sDoqhZj{3RFxi7jpR2$|C>563Gi4Y3u;MhC`Ghv`+L$u^+J*dJU-KpAX^dStHjI*og>n zmAzFIDQv_88|*cO$jew!aqa_4!SBJw6mFZ_Ce!$ z1d*qWby=L0+N>a(4A-j0Z{Rb<4CrfU^9Jw(`ad1I5PT6_0Y49VBbWluflqOD0rYn0 zX3#?~_EXUlz?R@>WOAS{18)I|qhusMmIzbP*sZ0`K{^qAmDj zNfusFP_M9AP1agCL>Jbni`J;H6Lw9RT3x^gg zRCEg>h*a$~glXTUHoX(*xVUasn+u$%dLAEP&En;bUq(s)NOWbH4Q5;c`9wPZG zkkr*GVr&QhFNogFvFW=cKMy|I7P|7Lvt~UC_F0Qv+d}gWyMXx~PtiG1cTm?@et`_J zy1>KRx}w6Iid)jh43$?Z88RB1dj&RQ>Fl1$m~|O4x+bG5KZ}uPPMvOy7kvt1MVGxy zkf(_Iz*p$!U(wH0q8+YUXSq5+@lEzk6E7jOw#fu7>ci%nO2)1OA3!9ZaBtsYMQ#O?==V_20+PX%~TnH>Pq;pvIM+e_)kx4o9++_xBy()DyNPSFD zr4%1roYTo_T`+2`6OBX{f{4QYi8k2%IPadambP$4g)9ek#p}*xzk> z=ypxdFjS3N>5cgcp&5tx#37G1&mcq1$JDh!Vl9iBjHN3rtQQM^VjfkrGlaSR92}wa zX{~0)^(r905acY@%kZy-(}Z@2kj?4brRy7d_e_AgVt{R%+B4{EU2C8LWR9fQRU^Gs zWm^_=VX;o#BaCiCdKde<;@}lSdi9|nN9SdxlCjv|Eq%tpS%!51du~c^>p`McS67*c zX{`nDSwW&&Wx*ys(`39>BY2x?Uy$L7t5v38?nQgLLjIe^H>He@)pye?z0$Qu(itLF zA$D<<+Ply(&;4+i5sNrn=olECxZ0oSQ-E#gUsvGC8iclIY9oTE(!!q$Vo^&+u=rb{ zcNX;H5D7Rso1pq6<3kw*6vl5B+ z&lM&y5vFTah|?MTO&07Go-COlaYP`A6>afx_ENItToYD z1G}fIW!OywPZ307GVYT5rlTWIX4%zss+Y}##0+&+u%cx?r6PnYi3;{ZF9WmS?1JtA zzDN8(BySNtifUw@BX-j91`(-1Mm|^JI3mXWNY=t>4?Y4GD|B_FeF6Li+)JCpMREsJ zco1B}RbqH)d+J`D1vuclpsvwj&w}Vn+^MYsKALpc3k0#2AW9U(jbbP5e+XSfACPf~ zFvTXWvb%-w!?w;1sh&A{9pN#AjzC!HF8hL`tCaX^7u$20DWPkpw-NKtqh5C{bT^*$ z1e(!#wH^r5spL6Q@l)ViU?3fgVF+Baw3a8(Jmv> zn@)D{ca;E?wTVtzr6CVqLbZ|W}e z)8t|ExRghq?rAv0$?kVZlBEh_X8WJulW@oZ1<}6M99#%uf%ZWa{|h+w9&k8F%x3A+ z2kj-;CEcovUPa+HS|;mp^jt5dKjbf=4CoWctW|k|&55TVes=JFE-`~Z+fC*`YmSaT z*^wQ*heI7EMAYQ;Qh9_Re|NEP@dkZp3Wp5B)uU$i-CXDgkU>8JE3%m{=VK7dbji)# zCCK>jn_aXn)hm69gr9e*hqyYr(0iHQO{gF_+mK|}6G^Oym`!NkizXdi?csdE(G@UV ztI-jxj&q0v9O~GPuCP4>pA1W|L%HmyE_<9{*6d5MOrlD0jIoe=+GKDxai&#D)Osg4 zk&NSJ=%hly37XaS;?>o7{?+Vj3jYA747xcqxt{qg91G45;5KkS_%*1bJRy zo5heR8NjN9K zy+{sW_J2}+vj)@h2+me^5?eOXLuSFwLUJE;XJ{%yo+bfQvYe6Ao;$R(oooAsjhe%a$?k050S8MxZmOaKY8oZi5@I?D6 zg%<1Ao=l&=g`WleGN@^uVr^h7dW`?2M~Zw;G`0@TF}>E{XOiXlaK1r%tRs6f*a!ZP z>R!D0SzQqLF<*Q zor&N)ume~G{sVNG3zuFQ=>e(*#zOz?U&9{_R)RhCISy9^_CwBM{tNzV+M99J1~cG9 zpqC@Vv&?Vkc^nSAn?+qk#=1%#UuqX{HJf|G(0>762U(RC>)m--$8zMS>Rnw_{?(Wvk^IQoVD*)_ z3>=y6toAr{T4(;C@?T4zW-c<1;N@PGNF~SohuPXtXT%2#^}d19f5iMz=^y!ydbd)u zBd(YIHLc$?_L1~GiWbcqcNpreB-s;@-S}5YU!_JWGFUs8((^09cQ|)`ld&fl#f_?Z zU>@SCK|B4_n+(=@)gS9fW2vF4i;8n8^Uj%zm_*&68b1D96w|9NiX#ejceoZ zfc_Z%6>wf}Y^OYo;+yOvCM(@)!PV|)dvN1H@;EiF%UP$|O2-&asnuarN$iYHK9;S@ zs7B4WJ<=SetOEZ1+J0DH4}t;KvXr&+E%RH%ELgn%*36hL@lO21udOnPg=!v6{jNfd zF-=~59WODH{&dIhwZxN@LXTi}!p!Cvdaf%cz190~QXA^(&#{e9z~`-BNUVj{me7lK zu5H{XaSzX0u22l)UA}jTPIof8*Ba%h&11^**vHUJn)w>4=3TT=vn8}(%fF*Fi{NBUdyAE3&&r|AX zXB;Ea9`X@zrFpNR-e*wsTjtMI-^_mMZ2`tIj&^$U^jdc66xzF*+1ZeuA~CA`gEf}f zA%B-XN_lMkPC_x(vK0GCuc4Xj-rF^mN4<^Fg_x;tpo>{M3!x{_^D0JHi02$n zuXw|0D2Svo0u`T$7eoZI#o)5-hnpJD^Zmx%2}il75U8@gp&YjeS-i ze*;gMuJ$tPc1F=$X~ul7(NrAv#8r%O7M^EpV<#-3qsn(0TS?9+=J!_a&0us7H~t{$ zx6{8@u{XQV`;2iYGDE-*Xn7>Q>rY(0Q}LalN@HRZGIz5sI@7`o^A45EU}@*UfvP9A zPk$bx1&_NPViw-Is8ywbDx-&#{JqkQ{RH|s&g$L>cEEd(!O6%+ot@pMJcIco7IF*v ze~I;LH_n!LjiT)eDvdX&t9C@u)+l0$a|-3Xs`h(M<(1|I-bI<$cv6mTmuk~q-&i9# zYt^}r+`H8qQ|<5)an(2Rknt9pR91I0b2OA5>NBrF^y)fx!&z!h#a*DMP}-+@*NB+h z)NcYr)Yz>lwEqV9s`Zk@KP!8-8}PRmu!kNzYt%)Lr|f?bt46;um`hbB2gwv8y_tJK znPVQ>IrzrKF|Zy`!@F5 zXsj1?^?q3CRm4~N|3H$hG%F7-GLT-^nA*Y`nUI*>{Az(8tSchHETD~ z^XJtQ%@>FjAE7_{m~q}#wQgZvn(zkTct*4W>*}UFjI&%tq!y=9p?4JRbW!()ZdT~> zj*Z}a$K~w6iF5T%+J95^-#w|&;aw?*tid9SboKkXoB;{)qmX`=@)ydYT>UnSj_0d% z6#|;-gwXHskUI-vc&9aSI~kMtF|@8%=*q?fki5yE`ec)3m|xO@&PS-g2%&O1lT21n z>#)f+ggztC^7@VR7G#d>;I2NU`jqzBi|v`*yM>nZC~C-+u2k*2oI{B_XhEOF>k~Tt zRu8AQE+<3|CkPIe4f_$=(OH{5ZzZF&JMvtOWG?n}XsSTsYxR^6C#nu-mk!qDaQ5Ud ziV*%G)SCWqGVAjGPl&T%XA|SS3`tItL-g6^qPg3cZQSMv=~)(dU&QR%)N459P@GiT+}6~PftG67J@!`&!GwL2Rf^fkAWMpJ=TlM`*@*S zb=1nef2Qt{Pye^jpAhsJ=>AH^lAWzFHi45G`^F&bma{%ZKsgwfy{V?O$I~1k0jM6p)089 z+}^>x6W}mLo7$$Mt1izY-<&olaTS{pGeCWQ%Bh5l4cLqIEYs#bWN6bNiWaBfJPzj? zB-cZ;#%-SEQeAiFAm0ttrziI#KL&edHJRH~bxS1Z?Vnkd)JTP{ZEi<~)oK-ktQY%! zB(*Pv@A4jzi%)a)TOZU6-43+II{<=rCmiI>j~K;WwAmRQK8QR!i|Ef?x~BIE^7t0F zE%GnG9|FDvUIylC?+wi^Y*EV+ROjp)6dH?-wg3Hv6)*bl|Nh6X!>BKY8MbGs?}iyx z;wLX#;u(o{;^f8O8oVs|+Yv9z%ay+!lyY`rpS(lK??Q4%VlR@fBe|J7{%`-1``=%L zv1?`i^Y6cAlbHFx|7Sj**qbTQ$1tKW8dyS;thLGM%V3-7p;I;HyHo%PPk_G%J8`Ic-mQ$9oXz;7a3JtccF+w1Q) z_j9~qe!gFn*z1@1QNM@Z$B+3*f1rP@KinVbkM<|{wf9|mShCQb&6f~CQeYHYzOrQ2X_upxLU*rLYf^$*?%b_Bb;nqY5mAUGTx4UPpT zgEPTTNh9fcrOC|TSTZ}=I@#7=8H`PqN$0sLAoRXZLoSmGPT##IxT$Wss zT%BB(+{hfR_EslfNsgEIY)x)U?o94Z?t{N9c`*5D@{8p0s$o z)C7Nhsy6XcYHDgmYL1#EX>Zluu+)6NKD98lB(*%X+%r-uSR_H&s2!Usq|W&RCobCqu5r=1z0NaQT~eGV(U$7yYaZS!`fjyVZCF$V=T8mv_3R` zV|^(zlqdOq+EaW#ZH4u%^{w%=^@H_;v6642J)^#XV60N#Kro&a)5UaSwU{mLGkz=X z7Y`WEi8@hdtW)1TFn*`Ldtm&R`tE_TPkr~mcwc?@!1zFY_rN%)zI$MNq`rG#99G{w zFg{V=Jur?tr(~r4wUc(z#yQt;P2)#bxUTUpx2fCINV}PCrVI$O-5k^4O9-}mh1*xA zSL*NXx$c$jm1f8t><%`YxI^7xW>a^#d!w1b_tskQy|pa9w{{8NTg!G|a9=Q6@^|-g z+>hLk%v|?l_ha)?_Y?OMv$cE5J!R&(-?`tJ`Jri{X=XuadT54O7@8HDZMF-|3C%H! zLl1-=FiS!Yg%+6Y)mIVB4xztZA zyj*=P!Ms9!Ey3)ozLsG2Q(r|e`>U@an3d|Q2xd%u6~TZ=H5jruBrd8_&= zf;n1!6~P>%zKURuZTioqKbqshcGxzjgf9tSV&1L(ww*aO+%w$EyeGUk{Fr%f`0?=leR#L|Somc4q`55oUHCimiHv?3mFDt{t1_-KpUSu<<2rLi#?Xvm z<}(@98P(>q88sO-=IV@b8RN{~X55x>o4KZ0&@3>YYc{aiKvn%SmKvM>dw0BI)c^6{ z|G1;a$HylbcDyD&DLzI1_P^Ns{^+Q(I?q?{MCcER)GFEW@%a%gL~am_eGR5g8gILuZje4#Q$Z4jt); zNYjzV7%^fdo59Fr<9^@gTLNwOw))4M~v+~!>ArI}k+~r^G zmE7ks;|cbm-~7zzzg_y@$1~&7nf1MxE=*5P&q&WES>>qda5|AT)Ai}O>G|n}>E?6` zoo(qA>Gt&6^oIH!>CNfR^mck?S9(Uuq&r=dem|u?NN02UNG|02s% zm(%^Y_O7m{`=2YI>sxg94#nL?8Aj9hNp7bSG*h1S6z7#-GTodJ(=D0&bbF>KQ=HyR zno^!F%mg#hjGD3QcW2V+bEIdDnWoI*OlxMD)0$bCSxqU{d3k0wrl)7NWVU8@q}SG$ zQjU~+W;fMp2IZ$__ELTaGKVr-?83~^%n3)$oXVU@@6Vj4yO*dg)D{^#bA_(1Wo}Tp zHe?3Vb2CG^I-SdmPz{=?zU}nen;G+tbZ`Bc%(~1(W-2SEOgo${$WF_aWXsZ3*+4dw zjd^v;>R#L0+p}(_D4X@_mTu3^qkO1sGpDi((g(APvP&{SyXCok*`?Gg&DrJIRoOM! z_1O^BWh}di+Nmwu@!Wc9_x9{Is_9xvvomdG_fVg7QY{G>QZ3skR8M(MW%p68)c)D- z>|w90>C4$;nPu6N>E7(=>{-Iqr|Di_y8jUxey%Kg?_r;vOO2AeoE@k75JGm(dhv7o zbQTg)9Y~FOc#B$MMrO)8Gey*!%?}ZDg8GMg#lyzwi*x2u&xXA|^yHlRRJ#^R-RAXD zdac(_a~7to( zVDZk3J!iZ3e73BFKM!uhLxgitiOc^nK0uH9_*7 z_njAH-$ma=LGktZ`pBqW@m&$}eEq(DA>TLP8xY>(yWzVb6iAw+3GbD@Cw)&SlwOx! z7v3kmA-y3KN#B>gFFYl^DZMF7lYSumKzP6OL+OXYbm>RZkAx3MKbC$h6w8O?L&DSY zVfnC7A|H{D2p^P>%14D6@-g|C@Qi$1J}#8XC*%{tO!=gIQYe#qA=JtbXnER5uQ`( zlsX};#Fe;^QB*}0vWl+g!W_j^Oku8KE4J_<#Z_FPL8({jg%2xfB`wTT<|uQ7j}-P7 z_6ze1uN7VsK3X_XI3P3@UN5{ZJYRUD@P@FU@MhsnLZVNw>l5ty1iSu@VOQT7Y0o1B z7(4izpN9I|rT=|A4V%vNyJLKPzcndHdY3h6i*&V<9uf6zBqhDW8phQ|Yl^PcSvTlc z)Z495x>{jfre9HCYTcu&CDvK`74;@-gsvK`6ZHGUPX4~y$w&LH%cPZ9Sx)!7_eEsi zi^hFpGC3X@HvFb&=0|RtMP{*Cs&<;?W-u~tMkC{D!crPRmi$$Mth*lun$cbL1)z2*V)ka^TRVV$G)Ntxuk&x=>qK7wB%c)n{F`2CSRb?RdL2?A6G+ zXN}XFAJ~F=#I$Wc9fk2DcA-7pDzKK@Gwj)RmAT9g+X>sW>+QMre0!nYY`55LBv+V0 zYrt-|*Xj@K4PM|XnvJv%aPU$igV{dHUH>)LMh zxP6QIz;EBN@2Y}5YTr-ZrZ%6lC(U9k~k(+9#+Uex038%;@raWgmrB1mMbfS)G zZgp(yfs=L`tOa%XPNUQ0EOuI*W#&-gl(W)V?W}V)I$O-6&Q@oKv)c)x&ki|zodde- z9Ex6cjyfmoe&>{V$~lu5bj~}MoGZ>X=Y}(A4J5~%q2xHdZN#1*8F$8X{|+&2E8tKp$|Yxh0WfZkZb}x40o&(2nZU)J`|%>iWsZa;wjEqX*rrJ1?@z>m|~+ zCU=3^s&?54{eeEL4^yu!vpU>Gk(MV?{XTgd+G}JWMYeZ+CA%>k6rMt z+zW1>d(|CqZ@RbLVP~;>uP$E|+;R6oN=W&s#i(Ucg`QrgrYFYCGpQM=*{LcTRo?%B zdV);f4VikFbT2UJ{{$x82Tb}oVAB2KxH$d-6b_ zjHbs|>oe$Tgmhq&?dC0x}YxW1^To|hdxa&(aZFJ9@0ki zn0j5;>B@}_=vm#>=V?Rw0(xe(_Y|He&==`T^riZ8eU-k3o?5S7kN4}F^bUO+J-0I= zQ!ab-eR{WkSU;wp)KBYY^$U8RepMgPZ|b*cw!KH^xc9Pv(XYM&_hO>vBGHA#**8Nwc*8yVq=4`+2}O3 ztNV>zdcf$?hK&8jL1RVufN><)Q@16ujcVhS>7;R-@~@&24O5w}8a-Z#j9z-nIsKk- zk=}FJ=%?~rH*RS|(XMEhamTo;O;kmVQN7H#AKqw88r!MPWz<$<)M{v@@PvnQ!VPs% zvnbl-A)RnqZAl!}#;7f+g$Z+%Q_Gc^K|NqbO;s#tBn~s9Q1bNbB3%Jwe2JH@aFO&k6xKkq%g{(P?F)osaO7HWEHS?I5eyt>vUudR;l` z-aJZ0h{{?|Ic*}#Ottg0!0Pajl!u`_4I(}0^ZLu`_VmX(Oo(cmbrSt0c*x4SU{n#B z>NC@fs7SkpDRi4qRg>A^p(@hEJ*1HXl%CKP>0J-S^x1xTa<+%BJZwen{(y9DF17r) ze%7uss>}l()}p$s3Lgj`uuW~kuCEIwitV}4u!p^@<)ZeI))gcq|e(vh_JIvxhnL1*Yl@*4cIC&LQKDUf>KxI-C>E zNO&W~6Z%vaMmJR6jdoG52aHZrjC3SPr^Bt0!;v*cXJVa)Og@bC6AcI%JYMdFkESa>`!i}Ia`yBtVnK7c2?+RE0WujyOLeW z{mFy1=K~v(oyj9*ozZl4S1_GC?v*fkE_pF|IoY4QUelMnmAsR@n;cEz9cnXT%Ms_wX5)tzjwUaRg__a?HG-vRZIdQ?48S+1T^ z&jk9_^L4{B`(iT^A@!1aMZH#bF|by>5$H^GsDtXzOj#YNlB28RrL`N?vFMH9C3Qlb z(qyebn^vi6C0beab}gWV5*@S7Yq2U>(=}HssMx1vwRy=q+5&Bnw&d9r)d#hufxFsr zZ573>(bmt5C9Xc(tZh;^Y8}yKvkPXmYTIhOdpor~RacW2wS8K*c6fGKphY{TolI=g zPHSfqCE5k8FL+72I`gVFpxxANYs1>Tx_jDq^nArq?SU@ne!Wni?$s$-SbebScJ(gx zQut=1zU*SM&8tyWEYYFQPzUwdRdQu{U{oEenpYJ{-l;6r7Q`F%s%KZ|;o8PzPsMUQ zL8V-pxT>4lrmC3Mq1WqkXSM3{^@VzKWxjewZ>eplyQjD5EA;jXS6>_7t1Z_z=$rLU zI<{A3%O@&s>bvx==!m|*c1QHa%z=2Ytfj11Kd2umJ*3@E_NsO;8a<;Q*LxE8DwaOG zLGRViRSf7CwUheg$}2M$>HGEm@VMHjU)OKxcl5jZsD3{=U%Oq~NI73ui-YI&UiA#s zqF-;vJP*G#HIWQ`OQ$M@5NR6xdL0s%ljrI90LUSZuT!%k-}54aQ13RvYV* zqt)AujmDOEk+Id-F|)7CADA?D8|5{9#@?ArjRU03RcdL?Qsa-uVRsL$+(idpWHudtoFQd&A2g(u8l!s$QaR1CPyol z23m}<^YKesF zhHDm>1?Dt!TCHuCsO6PMYc7~&X21-^W|%QkH{JLNGi%N>7sL;li)I&?OVna>9)*{h z%gt5h8gqT(rnxEFYId00%$h!{#ybqQ zjdV1cx9Ls8<~?)Vd|(b+!t8?ZZ88LfmF0R@yeW88D<~g~PFd3{ClbTfjJgZfY^y3> zt{-`JezG^wVTB_tR>Cs%+0jO;zT#%(l-V7;WX-K?HM_0(*1`%sxnH|ld%kvu)$Cnc zEmoVgBC*J7k0ff>S!>lZ>Uqmw5wkWJYQ=?Q+bq%AY;~3%jovU9(cGe&Wuze^TEN<# z(5+oom$kpLHQrP)&pK$zmS7$6<`HvAV!%3X^;o@e+d7vlG;fEd*OaNMb#Z3Qx@`4Z z*R5ODoyu10t~FY9l}6Wc?~E=p9~gFRgK^2a@BN)1&{DCqLe?(W`F4?Atlf)Vi8gts zF4(1ZxgDG}VMlFMzg6YhHqANb<4xXKS)LfL*;d(Vr|ky2(O79W*^6h&+F9$Ce$Z~U zmj#>bm1bXUgS|T5Xs-(h_D1uzy~Sv>x7w@A?$|r*-S%GlK;UxVvVDl2IQpzvI-zZ| zPiV_4_61Mar|dKKdHa%mrD8!mT|S|e+1KnF_MkmvkJw}3tM-IFl_+y$E#y$IInz`- zW;!MDR;SDfIH6#J6H^BhJ7<+Ty5q)GCrih?KwF@NR^p=--(pp>@RV zXOCB}wMMnu&QfQ&Gf&&5?r>I>^(MxhRnD5|;_{KifU}-PMya#O>~lIQ%A9S^PG`^T z5@#Rf-R&IKS2)KK>!UZQ@9ycl$|p)MRUfGwb55#PjFo{E&S@&!S?7W}MY=FI(c$zt zSDk^Gp`h*DbZ#eBIm5}G+6L!dV%Qls)S3%{4Uy@jT!ncNef=R6gbQy64=BW!tNkx|iMlXsfo!z3$#}@3?oh zlVkx^y}qK%9o4%kr`-GQWJ)yqQu&b;YE$%5s)%%Z{lhe!a7g&a3>3`vZ^N`z_AjsNC<6uDFBF zZNl@h<2ZU^y>y(T--~qB8@o)u{Wz}2Zqadve$U13(s4XCO6Nr!cj>$zoAh#si?PXg ze!M7N6dR2fQ<`3iAEj`qC%xZX=oYR-N`KtTKVBZY8!xA$2>DJ@F2Q(|`u6!J-!kOB zWe^onh~kTeI()eh!<_o5elzOb(Yvwoit7lizsd`3h;2)8|Uou4~J{zY67oyCu(DW$Xg z(e*o>UY_Ch+}XzY{c4(r?+WJ5=wsphU%4NBSe|%zUGCUO#}+!aLhcCf4)3L7UHCxw zQ1~c?w$S~(xwv)V6G*oe@u%oKL&qr`TfM*R&=cPM1ElXozMHdt! z`K$72L6-lQd_~BYzboG)E&GxDW74TH`Tvj}{gXT;R4bAq3$;o@Nsy*wlniOgTxG6M zm)D!uOX&BXD_@_uL&pC*^_?P|EOenPxwywPLPiG_&kp=r+uf%R-EyjAzSfv-`B}j{Jrn*$yR*B z_YJZY-|~HnY{jd-SIJhq=6j87#dm$*6$*TVzCq!=;#P61P$+H_w~?(-C6#Q&4e18i ziks3+vK6UZq%ln-0 zeBS5tJ}-PM?+bZf5EkbBb>3eKAJ6+@-WP?YychCb5dI+V#k^y}qP*jIuLw&DUoCu9 zSYG(;!fy+IRQOuqYr=}c?-YJV_+;UC3%@I@Ec{;K_k>S9(TpdW@&D0`9D_A`IQ6r4 z2KaNy|Mv*PZ;}7wh}n!7P6NLZeomtz3|}zpgC?JSs={}JAAXLQZ6)W^79M=q9}_cn zFwZV?B;-6a?Sf=aDD1f&+y-y)*~FZb@E6ZszuDV0^9?Xx2y?3C{5ru0J^Q9-58&+M ziJ4BA7mz(@Gb;)Ecw)cga!h#2^Ecs1u?68d2qRvs@}%^C5w7+mX^WTUw^u@i~?ku*IeBzbz(LJl!v`LJ?__u znR1vni+wyXbB`>0{?XXq)7w2gF`tKm)?A**yA~SWg377fAEnoTXW7s(^B?(f;7xAGl=jw;@Oia`^kb= zR^}RE*46iH^4J-3{+sqdHX&ztmdRs2A^2}%Pfu_0;xq>NQZ9{G>t^&I`&jvJs4qOd zGP?uypw}i2BeG5;`^Q6BW>5+r{9^{ikd>zt%3UU|XUqP7Dd<0?Wk{E#e6Hn$( zd7kzBYfxHnz_2%^oWG=%cuNuz?-l%;1vaVdByHPiS-Wh1d!?6E*rTsCxrq&^zKP#C!qapF+NY7|byK58+&szGQ5&kkH^ez9-5WfjA$2>W8&C6c^Gfj@2u_xE#TtZJ`Br?+g zb9v^tmYKov93*mJKAs#qCUb>i&XJg(jQKA+A=%3k_>-8QSYl0MHYpz6%;JgJi8+9o zLxTA%CA6~$t(IUTm_?c#rxE$rLl#1Q5^^od^Am*cp#5cpF$*y}Ci8_eFDCO4FarTI&N2@H zb3x_U2)O*P(K%)U=8ObeTaH(idB@k|T_L>p8H8a;nWsF*S&lMDe*!vn1^F05w*P6c>hhckmYTP75-`UbGh|4Ai&A|cr!8KX*;|=A z;SUkB1TDE3VT>#V)?fNJsNJU#&LYgSC3I5!Q-psAnSn&VjcjMU5mvMATuo&*Olvx7)r9m_HA zehg*693o+cp+5Cu{tj{@V%~@FNysljZiQqW#%v>f6!H&HHqMO^2xc4UQ@Q-Ty71ic zc}V8kgq|x$5wqWudDjsJdQmX*jF~Uj zKr%-ia{yzOVDFsFSgBydF>@00)B8CejsgDkvnH?1jqay}oCn(+LonlWAZ_Vc+*MG{ z8ic`ICGw2KxG{(@_}(P&JrMHo_`{f|`GdI_FU)MU+1$*=vz*5z2KF6aHzfNNWeg8* ztvOadwkCgu7@m3B5D$ze0iQ54T>gDvMa|O|h53!ZbCw4U^rLO_F|*|Z3Hza|%yX9G zmwHo}0}UrBKjlf0nQy*^n6{h-dQSo0=9o)>aKtxrW%F83fc#^$9%Igzpl^)jfJ5?J zc&WxbpkS8E(~t&hB?Z=pM%hzfZTFtS*c88l7>rQg=O8hnrEcJaO`hL*KWtDwR&Ww< zql}WsuqiTTV;{!5533syI97ZnH)_16fY#X8p~BeUo3JB5ZW8dMUx&mR%Fm;lIsC@G zxzx{dMMZ9I@$Q26(GRRH@#+%jLg5)>6nC)}P+-4AAW1(~Mt&ff9H;esw9f{V7Guf> zwCv+~@;K`FB5H*8RDd^pK#aqj1s{SB{56)ImDoBdBCDFa#MbRK0^NzPIwA4i8s?S>Ub4lXpY~9lnKQ1Jk0#- z%tncI6SGh=BdmlOILB3qcFwVMGe)ua}t)nU5JOF9|HFBJ(`) zNMu~WJnPIm2y~ZYsR!Go1Rs}#sp?Q>Pr{o&X^to1!CxwdoDca|@L~Ojke@(IE2Ied zb4d8>mykwcMu(3f{Sd-)Ai*uc>>A8AL0am`8c48l$Q<4b`8h~%qDbrw|6d{vq@+T2 zL1G@3;CobJM8UkF+)B(2_)KoB3BoVAt1(wIld%YHb&2B}kSBOn$nJP@HzXKMByg)p z7a*@g{sn5v*pgW@p<@z8AM;a6%aiUX>>xDy>hQ)oyv396N6bQmmqD_3{?m|kxVsMW zGl&6$h{U-agggQHCM5QGXkFl?2TGKn?IMqkJCLxC682t1pk)zzCOO7&W_DpVWoWX< zOl-_^jFuF!KbGT+VTMj_HvwVT5s_C|hf%64kYJ>sbwnLTkSD8APA;v4m_J8v-a)tp z5==RSMLh|&8wI*8qZi~OkT2nGJLE?pgUDwx*Cw9)W5k${%yaN3kgUlF69%Y5?YuCz z08p;PjIC%}<}H@6m%=Q?BCo}Ox0%mXybXyNo4LKkTe?`>pfxt!V&@xlI$m?Zh zkH-2U$8wE*ND02tnHf}KHb?B`O3c>A{L0J%$QSzM%*87*OB}E?vlL6fd(1^A zV*ZhVokU)lVs}MkJI?Hqyxzgi8?!#s`rT_8%mxbVnv6AX9!3-MFFwwp<>&Zrgn_se zAm==!lo7)`SRylI@@K&N%iPub z;oTVgxH*3JS>VCNdQF~&oSDDboH|A+{}x=izhw1eCTVZ)9b=!F+GVV!nUk2AcXO=m zTnnt?#dDBg;1EIpk^sYt%pdS$3Hyc;^$lK)zm-oY@fn6wkImUO~)8 z^c3$pVm6bodnth@BM%r=!QU5{A(ffnC0JF7H3aij9`?cV5=e=4ih?qTydwv@@B1`( zG8i-SY6V`uW!`zlZk3otp3K0FzVkJpv|x*8)(U2bSCA*O*XNke+7NE`@?>sxh5sJJ ztl>YII!F1SgnnqO3@pJM=Q0qTe-tHQ5A2vXWS-No%9FS?_-{bG(&X_t+sj$}J9sAt zlZVKhdAz5@dixl2EqnI&jbg;%FJ(F2Yql(m8$X12>;U+o=gJ^>;+d86tQYnJbNYGL z5u;E1Ia-P9h%w?j?WJTkM+uCu%3|cxg!HFThL54-Z$MADZNV-tJ`MRlAn}(SVGQ9N zkUJrZc(meO*pC<K$Q<@eLw|S;P5nf6S!Le=CH|@_iXT@t?=63!PyO zdwCuBfp|~y7r1*BcbR#YkpR!S&?P^RgKyG%)(49wqAtvH@0*923U84xw~MbMPsX&o zTaHzsh;b)^v0i+Y+3q2E{c;R_hk4A$+VX8^8d_Ll#y+f%a{TViV50=b3^PhHZ-j!s zwMj*u4*UKF`9FYMhPuxO_tjtK{N}gfuV!BQT^^^P2xbDA_aT|7l>aKqdqk`cSV#M? zD=2~sM?vfP8E0Z1Q=s9@jw52<-iP^6VkUSnWy&46%QGaewt#Q*Fo*lVtm$JuUCazJ zT3%tca^QUCiuUs^G~ObA67_=4`>>ngdmZh-tmMpvJPqMDbA92B^ggsaBbJ3o4-6nR zBOZuIm_%CvH7RYli+PN>x|yF(Od~h`3pK2mr-t+{M&rDPnZc}e7xFZ4!vACMOTeor zvbN8us;=tl+Z{p(VG9uURR|CP0oiv#SVcfYAnb%K0R&_hH$dDF8AL=x#ARIg)KNxo zM@3{15go=|he5@SaTHO>f9l*;Nycw<#_xOP|Nm!lpS*Q@x!u*LtIvB*b@y9zy#uf$ zOB5|SGiQ!9$F^mNkN$T(Up{`G_KRRAqtxbd@m`AQM zFne#FLwg*N7_QS^pI($2+&pgAu9M)=hPE>GL=VXcazr8otl2AuHZqup$=wsp;`i$F z@nalMV;0O~_nyvwZ4g#k<%DBL)b3uVgT$XVUK|ck;4!wrsTqoHumL0TBP~nrL<21_ z$JMP1Nr$dviEeg?yoLz9|M;!_Ws8S>1Zgzzoo|Q%5@+E1`{tlqcTI@K8>*<6hs(rJe?4VP(C zmiu(N!&r=Wu=}m&vQhx1wIv!mI~S!7CQ!O$U}vGdz7rJ!>L7@{2Nfs98bJ>d*w-3l zOUfyVbW;UP~M`f^HG@)6G0vb zo@urOPLU%Dfe<1d@o{dU+TLNW>j<7JKUB+;GXQbdY+`M}1%!WIqC}8uD1WHIDDh zH4RfZLm>$tA-^C$@o*nbkdS%b1N-e1bfx=F)fRLs8b)*dvKoBx`}XxoMVc06!Rv9M z(fJ%qfv@sNGJ&GY-up~be<|dF9S>ay>*mrg=GsK%0XGK2%t8kHRtWi^4%j43`oHy_ zfz;&iCs+Sr>U+{U>Q$SCb0284<<83b9SfVF%RU(#feU0<^Zn()zvB1xZrnH82lQds zXTI%!q1PA--jvJ9=*K(@-p+@E3PHff&xHzRphrLH%U0{V0+UO=SX{*v#E?hj7_7-Y z0qG{@CR$XqlnbM{>!P>Lhthuh(NEjzYrgRdq>nZA55pe6D&kEGC1Ec6Vo>-j)O2w5 zEYSVy6dEjgzb+~)u&n5|9v$VFjdmgput9I?uxeTzvBALS9B_l7!?1JY7TN~`j0t82 zPrGSm<}ho79rpqJumqaQ(TPkJUX9V_cx!+i&Ot|{4!ffHW#gHG5{Ln@fzP93DW>yV5{V_d^5#|JIfZgwdbAK@e;fklo473}=O>J7MXT_#~JGh~3EI=JW zXr2X*Y(Pb!r8dzVYArT>j>PZsvtu}59`-=R(cPqrpv=WF*_>)kx%+is5otr;zAeD_ zU2xAMCw>psl>6NC2#xoy_IO6VbXewjkM&z?Wbdb+lO{VQlb%t@zO4i0ZbCNBhFoI1 zWwYn@>%;5&QJ(L+`kIFnj{I9c@sne$d#kQOAhK;(Z=7Zrq6gLD6U+Ehzw!l=_RB;L z-a{$K{AaO6@?ANrN(l%36M=|-AV-J~bL%ySG|u(wr0$cZpLwt$rC&W97u$c!7A(3q zrIZeoYnwvz9Lu@xyZ&I0ZUL|E{C5$BvXq5y%57j=IX6A55amk8B`GqD4sgtC1 zZ2NV_CPO8#Yi1Ywba?XdUlNiT3ojxIe8@5s=3{7%%@@Qc#m>{W}) z<5g5@84wN<%ghf?@e4{SDe2pq=I?p&8#V1Ei;ovXFDg%hV>>Dq3g+#JPZb|U#VyI1 z)8aHtU6qI5=gQnx>71flArewKo$?4MAITL^9Xn@UH2*M_&uql!)-QMr7Qa(^;=w*pZ3FmZ~@D+B9-@e2oIGYCrYIafZXTW z42VgVsJ}H{IeM^wc~pE+?IC->?pYZIDeiAm>VrKkYY74OCx>{)Z9G6|#1d5M#scK6BB)Q2~W*@&at2wNuuI|!*kZRs|JC6hI z((SyaqB>hLTy0n$w!3xgA!*u@QZ}96;X9II?wq-Ytvn-lXxai&Hpe8c_lf+~uM}Pp zv(R3i|J`p0`0rrHf5JrUyQp${02VY>L3+8qQ_4PAhce3WpI#TYeUZpiW+=Bzg65xD zWH@_~n1pBF|LJUb%y~)ne(x&6(NHk5mXca!sG4{CF=P1eu*%p&PVi*U{?3rsSmVeDs{rWmg=^eRxQv~eV&7}psJzhBv%a;4A= z*|?=v9chQgP;J>GUbb2tZHH!QupR)otwBy0%mBBla-$aDS{rNySK%u(25hKBeY5Q? zp1#zge?e9X_oOVHzSN^#2~QE8RjBHO<`Se3!Ptu3AVP=`EWu z@K*}uFM;%nTL|h!1e}dBss9$UYk^T-IO5Sxo$>3k0mw6Hls^*_F-k_0w&stkOJ#Eg zEKQ19kzASRT+hzsaH}I_!n)N8QN7*LOn)9S&Hp|-0LYy(;oV;)=zc(1=6_-A%i&m6 zuT(znFr9d@dhyP4*+Wmt1YFZddK_YlK4zJaZR7{Z~I7mdWW*$e5tZvX`i zAlv$18~lLme{yPP05J$44_G)u$;y=OIX!oL7h)+{ zplRn&BAJ^wdyLoyNDkSvyysQ`0Vg2y&X(m(*L!vs;gE^lgS!9tIwV^%LKDo!vj~g`_4`$o&dGCPXQH# z0Xh~oKso}D&iF6Qc%a9X4<1hx+vxevSkb5Obwyvc7|+CT2? zlx^OYGzTXWbdSN)-0+RF5skCyCppU|IgQfX=2P9q0pn8`9uiHC$8?X&dM6d)(n{bN zWQ?3@+EZFb?_`J{WR#9`%qMx4(tPSueavZp77f44hCUTC-b!E|WVDWR+$VXS(tOZq ze;5tF%?3XgQr}LXj&q17d87a}(tOhCei%)@&H6qQ20k4Ctw|i`C{OZKrTGBX7cm?7 zTu6Q^!Frfko8-Al^I@m`aWwos12mHMRs#7TqjDT&J&CcE#^O$E^JutzI@CFr;Z{KM zbrbGJz!A-TUHp^GGs))~`n{5(eq#T=13v>NOFhPXxq{M=vwiqUifPD0z8WCjKHeid zWngf5SV!l4w~89`pFOOi%FH@Fb8??m6MBZ#6l%HO|uhofj=Al5vzHg$JQ zTmozVIu+9X+fQ+jv}b7n#(+cnfX9%ddz>)o$<3hCJDH+;44L+ZZ`_S&+^uNb&1l^1 zXxuG6sj8G#SI%HyL}#$1J6t{#sg!|M0mGoIH9c~E=j!$3W|;^A=$jY7hAo1N37k)T z7+`SSOd#gm7i)Hz|43es#AqT65usvB5TP;~DoAeJlap9yw*kA#WC?_s#^4t@fzE4q z2%a5s6F5EZ#B+4m{^!nW1Lg%tYo6SYUgP?R*nz%rgfnR>)33g9u#UWOpz1%Ta?vgV zoa0X{D3@=TX@_qZVOAf|6OJ1Yf-IK+$V`_2x#^BR(~~XS9XA%#lTHjt$8Bh0wi}QH zK>E+gmTvlkHSLxg3n_pO2dLEmY9WB}15#-Z*0yyI*0q~%EUl9O1DsXQIx#c>R_VMA zU2PArZ*F@3iG$^h%bjIqt|!nJ%_4WPF2T6B^ z<-OC>Nc|)97_o*3{_LBv%Zv)PaZ1hudmXSd=N{85oeCDy$3Tme9l}Km`8;m|b6GGG zbPJCe*k%j1?F)R1?3FygVf&Zbui#M)eB`tNg4>UVOq;8A9CHvy9U60h zM;&mp-$yN$b6`jv!?S-@YJ}S@)bq&qEhbEV+%0ExzuYZEbRW1a7|9-@D^|(Ar7I-O zV3Dn2BXZSVO+Hmt9nBzZ9IQ?_us&P9D#^0kq)SaJ3c~*HJKW%XmwlI1d~7(5+Q?NR zXFat#mCGTC6H82ZVj5<{XB1N^!-0?EyRjsTd_Fcp!v8VxlCO)Ylj73K#P!@NE&b8L1 zj@gWe7mtUoh})h{p>2H6S&ieW;gHUXu8KP{o2V9$oabfti#s%%j2Dm1gR4jGAr>dM zEVA))b9M>Ec_t^SxU!2=_xyD0T#ayaYf}0-#g>ID!Dj0kjtFD-R%~kZb2#@x(;|^G zvizv*@)EgBMgbi%_w$O!Ed5Sz1stS_$B=gdyP|JZAN=b1oQs(urgs~Vp(bH;GHd2X z5@s|De7lG;>-2~!;*m!bj!9kyp-%H^x|PtGDTHG&yG=|wA2=P^ij;i``<^Gmew*Ex zc&Sgi?KB>y@_P-9t!QO6<{jiRPmT@keB-r=OXzd>4~!16swSGXlttl> z^sj>UwePWSu`PYT);ncW&sZPX?Ni@t-lffJ2G6POB%-kMOI>`%vPxShim>GsSA0>q z$?r9}(y}sKh>T$Ar6T^9xEfr@P>{i8BLQ-KrcZ*gIENJ_{&szTpB!n)QuDK+i$Q|S zWoRirjaSPFQkm-15->1gnr+UTm!%hCy z4^knG5i0;Yrmgc=*dEtCs)EQ=P}$FHr+-;gimMqnKy=tF|AwGi-07UI&8+Xovh{6! zb9xO%wV)3=FH==G9KALt)f%(PWzd?ECUSt14CYUj@iqt6l-TS*yAHfcT;LK@Ir+^B zbpy|X6_RkO%?W`J6CnA?eP_B4PVGXReQ2+;PezR+!6|T5@My)75<{GQWN)(1M(skB zeR5wn2&s5o`1EZ5X1Xr~kU!hCQQUz7?)ap0C0CMePfE+ia1HQ)gO?6+19H-z( z``~_V5T|W3jdk*|^S;ocaM|fgt944&d=L{piQ8tgB)Cql~ zYaB+b;`;!q7+J>E=tulBm{k{9#UBA2K1D*^(Ny;I&7&-JLfuhR_ga>5`-MXMqRmPF z5|Y7%=IQe!)rl3wCIYnquCzKKqgX^BvsoOis5+q}Ar*WuAe5WO*GnrD>R$v{Js>s% z*pYrjrfx*0Jr&VomQa79j!9gtCqO0)upode93V-GM+UDLL>`Nzl4oibZCb@&GKg3V zrIKf87OgVW0Jj)PEm;p8fQm3~Ac;O>+yDY*0}9wVt1D4Hd2R_VR;Ckz{e)a!-T>x9@llJ~FETHPPG z67pt${rKbTkGR73^eL!P7TyNJ`GpFGlTyqJy2arsk2=@$N+&HGIf4C51~zLT$F!1k+yQ<1-tQTRs!(O~wx8c>e8O<@`RE41 zLwM!|fl!KYrZaI|B;&1J~JtU~by#mvl#lz?S4<520|+%2k8S({{K^x{a} zEkKjRhhSv_kExujW7N7ns+Obc~K(Cpzii z(3Oo(Ix*qUknN~s+GCLb@cS6`E(Da%cdeaydAU8GsAZ(`vYmP<{c%oKHZ;y%4@_#7B&cO?lyABf{P}*!zO7w0yz{qYt&T)F`A!qd=>{ZtM zmG7;%@q6x9`4w*cNKDfef72CT(^Szq%Qf?(vo|k(t zU4RZ#sBXqSKeW3L_muyBD2G)ZR|UeS-0AY3^bz$Dr16uYJ!kDiLqE^I|y`ff2pNO2jlULwxsYs-QL039HNyLOfLpmYE&@%n>RBGeU zw0v2_Fg5+=R03*5hapZn9ZkWsE&e)DN@R&a`8r8W%H)WoeT};;R-$mSS6;Hh#Bh3M zsjvu|Dkww#VETBn`bfznBcpUmk_98TG(3vY@cQ^l$_iOy6(!|_C8OktYeTB>>+{x4 z>E#q?LxJ%d^a%z-gf+z{`7R}#q>A@)&Lx>A6`)04CQ)eRlTy5MO(sQXg@GkE^FVf; zC`FV~IrB#Jg8L;^Ch4dWDBJw>LgEUta$YH=1yYpEJmYeHr9$JfHNc`FHOUttk2jA4 z?{HlLKiWLyF6UbBbYHFB{5)kj^MHAHkJew6-qJiZFQ+Jv+F$wGB|o_@7b%awzv{V5 zb>>1IE8dyjF^gv|9^DjriguQ7PFd{uo*=gbd*K%w)g<s5Fj7fT zEUaf5t*15@XR&QGvS3My0QMbZ){<0Nm~v#{l9XAPcx3jHtUj~2m*iR4fy%vfh()uU zrW2TKGcH9l4$gR(1as&{Goz+0m^5V=KFp{y&P20;m{eq#l4N0+lvFScpQL2iP^3#M zE-y1CP7O1TPqQpeZJFXY)_TZx+xc8Osyi-y>-99{rXQIcIY#*5`tkai`G)(U`Ih?u z`Vsgc_(}Z<`ziZL`)Tvp{Hgc}`eFHz_@VguE7#IE?yjt1;ALT@i@@9%Csk);Sx#lK zV9BPjZM+K6oL^-~u|dwfpxpFi>9x_z+!$qP;1O)4pRs}bEV(h?Twisi)*NMJv9Z=* z<*_m6+^}T@yRqiPj);l z1oQ-$!2cm2t`C^n1!h?GnlqXH++f8f4;UAbCTRd`D12!c>r__#>LLm_thIGi<7xF9)1r-=7hnJLldzB|^X zh&zN&#N=JOPYTKd?Y1NRAl2W1pN~!D>kN)bFNbdR^5p!Z?lxZ$18;ttxs6-2>#&W3 zcf#8k@57Y=nNQ&n}#TY@^;Pu5RG&FL>Yimlc@eWW3{6nW1$;X5g>H3s%3X6_52I1?70!+w=KM}?GWJ5Gmf{-o> zG5hXcU(0!Q7kGr4w zvt?f6%F*>5Rs~^`-}-Zddb`u-^F#dn0a#jZ(B-G2v*f4rr*LOB=d35)e$s~{^etOg zcwOo;KlMtRu-E}J#jtgtCw7DT2Tl6JLzqH9^O+#RYv$iiOWj&bq!KTt=Ch-60qQG>)SoHRUj>08qC0Jz}tF$o>#zDg#(-&vYAxt1Nd`tjsZmZA*Zk@;ePtGnpDA| z4}0u(eyGqa;hu4@7;Uio#&?OY5X@!d@1}_tAeY5jT_F1(AKecmj=3n-VyR>+GHzqL|U~lMA(t=!T)GU*Cof{@K z{a{m*j?Fz6FX?D@6OM%%aB`SICof(zJ5<7GGHghhSx;3;R(GL&N_ik+UK75CUdw#y zdgNTcjep4G27H!%BpmBV0vd)wcjtHI>&W6VMv+^y&XJqYX!<1X=sPiMdXZY;RrZov(QEoE?$A4tYX+EHxvGaSY_YyURt}Pgr^B7f)lOos7AzC@144++>>ntx-j_55=rvlDN^UY_4h*<-n<^#+fTVIm)n=LEkagI-YxCh z@my`pYZ({}9EsK+8+h2QUn2XZZCFcYlvf?W6TfmBCeC$zI|yI{K3^`0xwT)uS7Vk@ z2SygttLA@XetCQGU{vy?KPMj_6JHE4mGwD| zM!!VIj(p=K)D*=Y98w{YC^TNavzTop;YHZT4!4Fat46o9n<#Cn*TQS%T#&Wmp9d+fCa=8#mhQ&>TB4Rld!3fuArnPE*uR`;vv(E|L*q z#}UbecOPU*Qc_5QR(eHCF8_p*K(_PqMPFY)H$S&;$6Q=SV+T4vRc}XLTzYckDlN%4 zw=AvEI7ObF-8u>u{^XP}@Qy!%@{TV8=NXHynprpzh^C%p$U~|d@MP7fnWf0ZF!I;P z<={D)56E#i8a$%nz0-M6ccKhIpwq0d#$W6xdBQ_q9U+YmD4 zx_NW^R6UcWl*Ytzvy-J3$MEq+opUCZ4asVlb9|Pi$=aH8bl2>3)5E2wM;zdrwkc(8 z;tI(*NXtxRjpE9@WBPlzx`kyO`kA<6Zrf7pqCOhD>L{?B$P}>Ag%La?|zQeEH;Fx8+C&l4I!+&C*ZDNtAWa`b0qisjClA7y^r7UrS zyMmfw<&?kS5v7ZRZ)0}Lsb?WOa;LXoj4L!|SK1Ta|0%&LMPgg-9RC>VV}I^S2WSS&(g9#j#B5djd{3aXgeu;DoA zvFvj#Whx^71;KL8i}dCwPSNhdZgab)u8id9I7os)bDO4ejhyOmT3A(4%z_yO90ecw zA^9Q&Bn2n=UUPk?wvWz^gzU&zG17u1@`~cI@#*n#@ozq>ANRGT)kZq)X2l@x*(Yt_ zf2=|5m_gv|dUH{UhD&t=LPG<0L+L_6kVq7b;eLmq3JuW>?sDS68$i*C%Yx&DHqa4A zk92nVbWP1=9%ee+yi9l8#AJMV^(b{HSCy+bnb#X#HplX(MTi+I-lI*reEWzJ|W$x~|zY;Uu0(8rchTg~*OJ*?YVFJ876#FN33(-WFA zHM4i}An}UyIrVw<>GjF}E$7YkL;3TkCunE*=5S|^XO{;q7BtM4;2${RpR8W|Te!bq z?qKhb{eK7k5&+Nn-~GwJl>@wgB}*k4MWlqQL_CBD2R8DT@;C3J=BwJx-7Uhh zvlW`fYb9!>aV2!6HUwYe&z2=#1e4;o!NY?>eufJM8wiT)pX;~lSJm^URZAt#q?r6? z44wkH0tOjW)Gxk=tQTdQQ!DMNxQfe3V~N}hZUc4$i36S!p^D!eN)jKch#xR2aYzCI z{{;Vp5)>93CLEqGbRfhmmrp9hsF8>_4qt_M6do>QlrNQUK1VHAb((wHTFU1r?I^cM ze*SL@ehY;Qo(rX6(2`Du60Ty9xUMDjA85o!sKAiGVBG%PzTLj6ojc=AH_GNE%4=;Y_PVDS)9f}(<=gTlJ`zh?D}QtT?}WK+qC`c-ZSK%1p9^pDj zGl`T%A@YTaWYFR?MLG1MYa(d*P%1Dg(aO;(>xp6Gh)0q~oJPg=Ve}$urIbp_rVui`wQqPO)-3NSF~56R*lY`%f(Xj#bzgFC}t@Z4oyVs;#N)0G0oB*iW)Us z6;|`i78*@h>l*7H>mutX?8(tp2WN!rNz=Ix^KWPVj$MvlPI~Qn?Q!jm@vM!n{xf~@OxfXLxXY5WcjrV1Ed401A+qnctf-s zv3jcdqjZSq<4_q;OTk*f>H~ZOb^-x=nS1_uL$k)GjGJ_vw48M8u{2`X!hUkbi>Ok< zHUxT5%+GYer~^@P!=?v<2L5zItQ)C%n);e%lT64M6OkE_OT${j>IZxWb_M}=nRotm zL#xJ@jN5eFwA>7IQq{!KVutdmj>HjTBZ#`^dgmq(Owe>f>B1SqY5G#&#fA#$X4PZ^ ziAL(y>IUSDN$KQL8j?)KUd8MSatd8%m1Sd#mgY=Osn%)Oso802#;^^emGl{t+{eEh zU>$fIO5H-)<~i3nr!g(08B5Yn(ix`Kj+u`29fI5%+&bK1+-wNC2JhwgPHqEaY zcNlo;SyeTuI3p(W>ryGVk^A8-&kVrp0yTm)gf)gW_Nm5_(~{qkDJR4ws*6_Tjn@pz znlI}Y)nU}5HP9(fC{ZY>l9?q+j-rqJj=-Pf&7Nu@D(Nc#eXj0+J{#KaX|qT6r`o5&raAX*_c`~Wb?YuZC9lY= z-mcymUlBhNKj_|u-iO7TrPv$X#7dOewBZ?FP~WN7YBr$`{uT;DO}qo~2bn(@z9xQ) zq|An^yR~N1O7L5KFTTvMrVqJn|7R1t=9MIdth2pCq|~O|rrex+0zf#PzaJrIDSB0Z zy93YC_<92(R1{H9lz4q~*k5E^@V11rxW9G&bR#w*HbONU#wPN~gJ{sN#`h%yBEv

_VyqFqF^|-W+FqLNL{C>4 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 /* For addresses in PF_INET */ #include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ #include +#include /* To use ifreq */ +#include #include #include #include @@ -18,16 +20,15 @@ /* Handler for interrupts */ void interruptHandler(int sig){ printf("[SERVER]: Handling interrupt. Closing server socket...\n"); - exit(0); + /* Close the server socket and exit with the resulting return value. 0 if OK, -1 if error */ + exit(close(s_server)); } int main(int argc, char * argv[]){ struct sockaddr_in server_addr, client_addr; - int sd, sc; + int sc; int val; int server_port; - struct hostent *hp; - /* Check command */ if(argc != 3 || strcmp(argv[1],"-p") != 0){ @@ -42,9 +43,7 @@ int main(int argc, char * argv[]){ exit(-1); } - //printf(); - - /* Initializing mutex */ + /* Initialize mutexes */ if(pthread_mutex_init(&socket_mtx, NULL) != 0) { perror("[SERVER]: Error when initializing the mutex"); exit(-1); @@ -53,72 +52,82 @@ int main(int argc, char * argv[]){ perror("[SERVER]: Error when initializing the mutex"); exit(-1); } + /* Initialize condition variable for copying the socket descriptor in the thread */ if(pthread_cond_init(&free_socket, NULL) != 0) { perror("[SERVER]: Error when initializing the mutex"); exit(-1); } - if(pthread_cond_init(&free_list, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } /* Prepare thread conditions */ thread = (pthread_t) malloc((sizeof(thread))); pthread_attr_init(&thread_att); pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); - sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ - if(sd == -1){ + s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(s_server == -1){ perror("Error when creating the socket"); exit(-1); } + /* Obtain the IP address attached to interface eth0 */ + struct ifreq ifr; + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1); + ioctl(s_server, SIOCGIFADDR, &ifr); + val = 1; - setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + setsockopt(s_server, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + /* Initialize the address that will be attached to the listening socket */ bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ server_addr.sin_family = AF_INET; - server_addr.sin_addr.s_addr = htons(INADDR_ANY); /* Listens to all addresses */ + server_addr.sin_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; /* Listens to IP address in eth0 interface*/ server_addr.sin_port = htons(server_port); /* Port number */ - if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + /* Bind the address to the listening socket */ + if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ perror("Error when binding the address to the socket"); exit(-1); } - struct in_addr in; - - hp = gethostbyaddr((char*) &server_addr, sizeof(server_addr), AF_INET); - char **p; - - for (p = hp->h_addr_list; *p != 0; p++){ - memcpy(&in.s_addr, *p, sizeof(in.s_addr)); - printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); - } - - printf("s> init server %s:%d\n", inet_ntoa(server_addr.sin_addr), ntohs(server_addr.sin_port)); - - if(listen(sd, 5) == -1){ + /* Set the socket to listen incoming requests */ + if(listen(s_server, 5) == -1){ perror("Error when listening to the socket"); exit(-1); } /* Backlog is 5, maximum number of queued requests is 5 */ - socklen_t size = sizeof(client_addr); + /* Once the server is listening, print inicial prompt */ + printf("s> init server %s:%d\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), + ntohs(server_addr.sin_port)); + + /* Define the variable for the client address size. It should be declared + as variable because the size depends on the incoming request and is an + output parameter of the 'accept' function */ + socklen_t cl_addr_size = sizeof(client_addr); + /* Set the control variable to TRUE so that the listening thread waits + until the thread stores a local copy of the socket descriptor */ busy_socket = TRUE; signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ fprintf(stderr, "%s", "s> "); /* Prompt */ - while(1){ - sc = accept(sd, (struct sockaddr *) &client_addr, &size); + /* Loop for accepting and creating threads for each incoming request */ + while(1){ + /* Accept client connections. If error, shut down the server */ + sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); if(sc == -1){ perror("Error when accepting the connection"); + /* Close listening server socket */ + close(s_server); exit(-1); } - + /* Once accepted, create a thread to handle the request. If error, shut down the server */ if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { perror("[SERVER]: Error when creating the thread"); + /* Close both listening socket and the one resulting from the accept operation */ + close(s_server); + close(sc); exit(-1); } @@ -131,9 +140,7 @@ int main(int argc, char * argv[]){ } - close(sd); exit(0); - } void * manageRequest(int *sd){ @@ -152,22 +159,28 @@ void * manageRequest(int *sd){ pthread_cond_signal(&free_socket); pthread_mutex_unlock(&socket_mtx); - /* Read the operation */ + /* Read the operation. If error, close the socket and terminate the thread */ n = readLine(s_local, operation_buff, MAX_COMMAND); if(n == -1){ perror("[SERVER_THREAD]: Error when reading from the socket"); - close(s_local); - //close socket in father - exit(-1); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value } - /* Read the username and convert to uppercase */ + /* Read the username and convert to uppercase. If error, close the socket + and terminate the thread */ m = readLine(s_local, user_buff, MAX_USERNAME); if(m == -1){ perror("[SERVER_THREAD]: Error when reading from the socket\n"); - close(s_local); - //close socket in father - exit(-1); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value } + /* For convention of the server, convert every username to uppercase */ toUpperCase(user_buff); /* Check the operation */ @@ -194,31 +207,42 @@ void * manageRequest(int *sd){ n = readLine(s_local, msg_buff, MAX_MSG); if(n == -1){ perror("[SERVER_THREAD]: Error when reading from the socket"); - close(s_local); - //Close the father socket + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value } - + /* Get the port number from the socket */ client_port = (uint16_t) atoi(msg_buff); - - //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); - + /* Get the client IP address attached to the socket */ int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); if (err == -1){ - perror("Error when getting client address"); + perror("[SERVER_THREAD]: Error when getting client address"); + /* Send error 3 to client and close socket */ out = 3; goto respond_to_client; - //Send error 2 to client and close socket } - - printf("\nIP OF THE CLIENT: %s", inet_ntoa(client_addr_local.sin_addr)); - printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); - + /* Connect the user to the server */ pthread_mutex_lock(&list_mtx); out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); pthread_mutex_unlock(&list_mtx); - /* If result is 0, then heck for the pending messages and send them */ + + /* If result is 0, then check for the pending messages and send them */ if(out == 0){ + /* Send code 0 for the client to open the listening thread */ + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + /* Send Pending Messages */ pthread_mutex_lock(&list_mtx); struct msg **pend_msg = getPendMsgHead(user_buff); @@ -227,6 +251,7 @@ void * manageRequest(int *sd){ char sender[MAX_USERNAME]; char msg_body[MAX_MSG]; + /* Get the name of the sender, the id and the body associated to the message to be sent */ pthread_mutex_lock(&list_mtx); strcpy(sender, (*pend_msg)->sender); int msg_id = (*pend_msg)->id; @@ -237,8 +262,10 @@ void * manageRequest(int *sd){ is already stored in the server */ int err = sendMessage(sender, user_buff, msg_body, msg_id, 1); - /* If the message could not be delivered, then exit the loop */ - if(err == 1) break; + /* If the message could not be delivered/stored, then exit the loop */ + if(err != 0) goto destroy_thread; + + /* Send acknowledge to the sender. No return value is checked */ sendAck(sender, msg_id); /* Remove the message from the pending message queue and iterate with the next message */ @@ -247,52 +274,61 @@ void * manageRequest(int *sd){ } pthread_mutex_unlock(&list_mtx); } - + goto destroy_thread; } else if(strcmp(operation_buff, "DISCONNECT") == 0){ + /* Get the IP from which the command is being executed */ struct sockaddr_in client_addr_local; socklen_t addr_len = sizeof(client_addr_local); int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); if (err == -1){ perror("Error when getting client address"); + /* Send error 3 to client and close socket */ out = 3; goto respond_to_client; - //Send error 2 to client and close socket } - + /* Try to disconnect the user passing the IP from which the request is being made + as parameter to the function */ pthread_mutex_lock(&list_mtx); out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); pthread_mutex_unlock(&list_mtx); + } else if(strcmp(operation_buff, "SEND") == 0){ + /* Reserve a buffer for the username of the receiver */ char dest_user_buff[MAX_USERNAME]; - printf("Receive sender: %s\n", user_buff); + /* Read the destination user from the socket */ m = readLine(s_local, dest_user_buff, MAX_USERNAME); if(m == -1){ perror("[SERVER_THREAD]: Error when reading from the socket\n"); - close(s_local); - //close socket in father - exit(-1); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value } + /* Convert username to uppercase by convention */ toUpperCase(dest_user_buff); - printf("Receive receiver: %s\n", dest_user_buff); + /* Read the message from the socket */ n = readLine(s_local, msg_buff, MAX_MSG); if(m == -1){ perror("[SERVER_THREAD]: Error when reading from the socket\n"); - close(s_local); - //close socket in father - exit(-1); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value } - printf("Receive message: %s\n", msg_buff); /* Check if one of the two users is not registered */ pthread_mutex_lock(&list_mtx); if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ pthread_mutex_unlock(&list_mtx); - out = 1; //Send code 1 to the client + /* Send code 1 to the client and close the socket */ + out = 1; goto respond_to_client; } pthread_mutex_unlock(&list_mtx); @@ -306,25 +342,43 @@ void * manageRequest(int *sd){ if(status == 0){ //Not connected /* Store the message */ if (storeMessage(user_buff, dest_user_buff, msg_buff, last_id) != 0){ + /* Message could not be stored so send code 2 to the client and close the socket */ out = 2; goto respond_to_client; } /* Message was stored successfully, send code 0 and message ID to the client */ out = 0; - send_msg(s_local, &out, sizeof(out)); - + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ char id_string[11]; sprintf(id_string, "%d", last_id); - send_msg(s_local, id_string, strlen(id_string)+1); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } - }else if(status == 1){ + }else if(status == 1){ //Connected /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message is being sent for the first time and was not previously stored int he server */ int err = sendMessage(user_buff, dest_user_buff, msg_buff, last_id, 0); - - /* If any server error occurred and the message was not stored or sent, then send code 2 + /* If while trying to store the message, the user unregisters, value 1 will be returned */ + if(err == 1){ + out = 1; + goto respond_to_client; + }else if(err == -1){ + /* If any server error occurred and the message was not stored or sent, then send code 2 back to the client */ - if(err == -1){ out = 2; goto respond_to_client; } @@ -332,20 +386,35 @@ void * manageRequest(int *sd){ /* If no server error occured, then the message was either sent or stored, so we send back the code 0 (OK) to the client */ out = 0; - send_msg(s_local, &out, sizeof(out)); - + if ((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ char id_string[11]; sprintf(id_string, "%d", last_id); - send_msg(s_local, id_string, strlen(id_string)+1); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } - /* If the message was stored in the */ - if(err == 0) sendAck(user_buff, last_id); + /* At this point, the message is assumed to */ + sendAck(user_buff, last_id); } - + /* The response to the client is handled within this else-of statement, so the + 'respond_to_client' label is skipped and proceed to close the socket */ goto destroy_thread; } - /* Default print */ + /* Default print template */ switch(out){ case 0: fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); @@ -356,36 +425,31 @@ void * manageRequest(int *sd){ fprintf(stderr, "\n%s", "s> "); /* Prompt */ } - //write(1, user_buff, m); - - - /* - - - struct sockaddr_in test_addr; - - getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); - //test_addr.sin_addr is of type struct in_addr - char * ip = inet_ntoa(test_addr.sin_addr); - printf("CLIENT ADDRESS: %s\n", ip); - printf("CLIENT PORT NUMBER: %d\n", client_port); - */ - + /* Label to jump previous code to respond the client and skip the default print right above, + in case other commands (as SEND) do not use a template print */ respond_to_client: - send_msg(s_local, &out, sizeof(out)); + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } destroy_thread: if(close(s_local) == -1){ perror("[SERVER_THREAD]: Error when closing the socket in the thread"); exit(-1); } - printf("Destroying thread...!\n"); pthread_exit(NULL); } +/* Capitalizes the input string. String is both an input and output parameter */ void toUpperCase(char * string){ /* Convert to uppercase */ - for(int i = 0; string[i]; i++){ + int i; + for(i = 0; string[i]; i++){ string[i] = toupper(string[i]); } } @@ -393,23 +457,25 @@ void toUpperCase(char * string){ /* Return 0: Message is stored OK Return -1: Server error (Memory space error) */ int storeMessage(char * sender, char * receiver, char * msg, unsigned int msg_id){ + /* Store the message to the receiver pending list */ pthread_mutex_lock(&list_mtx); - printf("Storing the message...\n"); int err = storeMsg(receiver, msg, msg_id, sender); - printf("After storing: %d\n", err); pthread_mutex_unlock(&list_mtx); + /* Error when trying to store the message */ if(err == -1) return -1; fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, sender, receiver); fprintf(stderr, "\n%s", "s> "); /* Prompt */ + /* Return store OK */ return 0; } /* Return 0: Message is sent OK - Return 1: Message is stored, or not stored if was already stored + Return 1: User did not exist when trying to store/send the message. Message not stored + Return 2: Message is stored, or not stored if was already stored Return -1: Server error */ int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, char stored){ int s_receiver; //Socket for the receiver of the message @@ -426,6 +492,8 @@ int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, pthread_mutex_lock(&list_mtx); recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver pthread_mutex_unlock(&list_mtx); + /* If error when getting the host, return -1 */ + if(recv_hp == NULL) return -1; memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format recv_addr.sin_family = AF_INET; @@ -433,19 +501,32 @@ int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread pthread_mutex_unlock(&list_mtx); + /* Try to connect to the listening thread of the receiver to send the message */ if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ /* If the connection with the receiver fails, assume the client to be disconnected, disconnect it and store the message */ pthread_mutex_lock(&list_mtx); - disconnectUser(receiver, getUserIP(receiver)); // No need to check for output + /* As we are internally disconnecting the user from the server, we need to bypass the + IP check, so we pass the IP of the receiver as parameter to always fulfill the condition */ + char reg = disconnectUser(receiver, getUserIP(receiver)); // No need to check for output pthread_mutex_unlock(&list_mtx); + /* If the disconnect method returns 1, it means that the user was not found so is not + registered (it unregister while trying to store the message, so we return 1 */ + if(reg == 1){ + return 1; + } /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the server so we need to push it to the end of the queue. If it was stored, then nothing is done */ if(!stored){ if(storeMessage(sender, receiver, msg, msg_id) == -1) return -1; //Return -1 if store error } - close(s_receiver); //Close the socket - return 1; + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + /* Return 2 to indicate the message is stored but not sent */ + return 2; } /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ char op[13]; @@ -460,7 +541,10 @@ int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, /* Send the message */ send_msg(s_receiver, msg, strlen(msg)+1); - close(s_receiver); //Close the socket + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, sender, receiver); @@ -468,17 +552,16 @@ int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, return 0; } -/* Return 0: Message is sent OK - Return 1: Message is stored, or not stored if was already stored - Return -1: Server error */ -int sendAck(char * sender, unsigned int msg_id){ +/* Tries to send acknowledge to the sender. No return value */ +void sendAck(char * sender, unsigned int msg_id){ int s_sender; //Socket for the receiver of the message struct sockaddr_in sender_addr; //Sender address struct hostent *sender_hp; //Host entity structure for the sender s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(s_sender == -1){ - return -1; //Send error message. -1 is internally encoded as server error + /* If error when allocating resources for the socket, then exit */ + return; } char ack_op[14]; @@ -489,6 +572,8 @@ int sendAck(char * sender, unsigned int msg_id){ pthread_mutex_lock(&list_mtx); sender_hp = gethostbyname(getUserIP(sender)); pthread_mutex_unlock(&list_mtx); + /* If any error when getting the hoset, exit the function */ + if(sender_hp == NULL) return; memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); sender_addr.sin_family = AF_INET; @@ -497,14 +582,34 @@ int sendAck(char * sender, unsigned int msg_id){ sender_addr.sin_port = htons(getUserPort(sender)); pthread_mutex_unlock(&list_mtx); - connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr)); + if((connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr))) == -1){ + /* If error when connecting, exit the function */ + return; + } char id_string[11]; sprintf(id_string, "%d", msg_id); - send_msg(s_sender, ack_op, strlen(ack_op)+1); - send_msg(s_sender, id_string, strlen(id_string)+1); + if((send_msg(s_sender, ack_op, strlen(ack_op)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + if((send_msg(s_sender, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } - close(s_sender); - return 0; + if(close(s_sender) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; } \ No newline at end of file diff --git a/lab1/server.h b/lab1/server.h index 911f653..f1acb08 100644 --- a/lab1/server.h +++ b/lab1/server.h @@ -12,12 +12,16 @@ pthread_cond_t free_list; /* Variable that controls the state of the socket created by the connection 'accept' */ int busy_socket; +/* Declare the server socket as global variable */ +int s_server; + /* Declare the list of users */ struct user *users; +/* ================FUNCTION HEADERS================ */ void interruptHandler(int sig); void * manageRequest(int *sd); void toUpperCase(char * string); int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, char stored); -int sendAck(char * sender, unsigned int msg_id); +void sendAck(char * sender, unsigned int msg_id); int storeMessage(char * sender, char * receiver, char * msg, unsigned int mgs_id); \ No newline at end of file diff --git a/lab1/ssdd_p1_100291121_100292107.zip b/lab1/ssdd_p1_100291121_100292107.zip new file mode 100644 index 0000000000000000000000000000000000000000..0092f37580bd067d36c8f2a584137cc5379d48d5 GIT binary patch literal 689617 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�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%0DSCdnPQ$Pr{g#46*oSXpwY8xsT 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

h|ePTU;i%OwlRB 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

Q2UlQS!Bv>^Jzyy}_{HGzSHDuqe=9)GulI{j z{9{LA=K47{_183os3|zK`ccw5d<|v_B(^nwf7+j^h>epCc#ev12U>%_{nI=C*i#c; zcq7)TT{*rl{IN&eZ6UJ8Fk}7lV@IYg@XvkmNj!+y%z5yRRQN>slx%^6M^B%q0rIc^ z(rx^+3@;Z)RD+%G>61>Vv%40my_7XK$21CLh$~Lnd$7m>M$mrdhERcX!K#M1{HjB_ zDckv@lL&-b^#XkX&nj=(&H1wXOFM!Umj;KjLAP`fr){UgB5+sdfCt| z0yF-!_pW!37;zKsBklv!Y1oNAYPGTRuGq;3mf+(JR+&TR<&ACpNvdx9pt5VSI_KS5 zv*%~<3(%49E~$m@6B-yVga^bUmJQq`^d@^Ymdxizw95ie*b8+hN9Tgik4`q98y{;h z%ugF&!(gCK8W7oZ=jNY)pbVsFP)0S~JGJiGCu|=rpY?b8?q}b7D7gMNA|G8J_cue` z9xx7{&}KGxW=sa~s~0d=pQX*4U$8$3A!vkObw525oia|MXH$a#1w2@E;B{y>Z3j0( zPSTJ!{2uK?fFX|rpPnh;Jkf%9VFU;R(O=$lNk84nV*TwYg>nDY0EcX{fZGS^|Hs=|%Y1Q}rnFoox&^!;PYd4ox| zeg0pdrSk7r_^D5o&4@mk3=`jkxQE_$u1i#j?DNr;ML`FXsd^@ojP-?BYVvRultJ@o z0_I^kEPemMj>s(kDXo-EPCXgkci5+Qs{!d&fdx>CSTFr4t(aXDHbvcc7^zqPjQ*c6 z!&Ym6qgC_8sQ4MKl#L!f6^3ror&q7Xs8*9Kd}@mk)YuMB(t==dk)`9VZHw<);Yq0U zbv|hM0ncme1NPgNJ}Z*b59t2`q-&qmQ{dE7A{f;J{sngw{d<)D zQ__efajd!|1|#~eOg9Fj37yf*u4Ep6M)xoJ7;j^4T~>v<>6yLkZ*V)e-}{e@EAi%M zSx^{4Y5njmA-I;mI@R-97^D0@(!Y%z(Z_@pZp?rY&TvnsJBt1{8NQL?ejj-Ljiz|F z3J3T~BE(8!M2+2-ds^scZHPB|zjw@Epzv%EdCp%XWrLD*K-|^d1cxB(Ll0z!cNB+r zI13$=Q|*68TsoQ%Go&@J%$ja*V;6>$`0_VAcTGjkwd9lwKmY@&=N<9%s z6aXkk%nrmHW6|u}fw*lr2HnwI`8wz52HWslL1FFKgX#eu{wl=;BF-dx!J?`G@!0hp za-26JvCKFR)_rfzwjh$#i%-9!H_yfY%%aC4{E{;l13_1yN+VV3Ah#2k_dG%;xX8L1GP7D?;z>X5LWl)n&3#lSo?q`!lFRjr9tqD>L zd}8=Hzc^Ck=fv=z$W+ZGlex5FG$D&J*#(wjVs1kPrl!+{0pWxoT)xV>E1DX?O41BO3BhBNAG=z+96vhpUf?f%W>a%^Mh#G)qM<(CWXU8tu zR7ek+vHddMJ79}3-p|2~nbk>tMd^Wau*JkqnALZ{fSxq~*^H#!iFrk;5n$Sk1?=2$ z`3&rhbAbVNdvBYL_EcTLW%hZ{blN|{dxZz81RPv(y%Nx8V|aJ!wKWuIX~S9yRqepj z^w_l@J%&vx)T5NiM9;ZUx2wV7Z>p?2%p&!@aSmzKiqgQpU ztd10^9x{{sJxMJMYe45xoi~?@WS=AY|0C5H6 zhujXDp1E)v6A1jGH)ZgGhIEaOw%9+5Y*R=;OBRUiBu^^2(aiFfs8Q^>A5pGn9oN}+ zw-p??z1c0QV!*BpZ&UPR#b=`#Vujl&eDf7M4FuF6?y9pQy!=`>yrzqDPH7+6)g-&9 z^=E*F5_mP-rbqQoc^o0zvBC2tu|+EkIf}ouS}I|uW=_b6w8wj4F5JF(EWCN|JDKBs zX}sz1H`DMx;!X2ivEee(Yuu6M0;wKMAX*y2wtFM^M;UfE)(HJMS$yN4QE`n}<7?-- zXJEO_BR)oxEehcjnx)K@LUs%*mfsEg$NC}k5>T1z$%ycx%Y8opA<+xQjs&$-=LHeG z%^=bLFV*gvV(*u~uVF_Z?7LzIBj5h+0Y|=rmL4`^!#UoW^2k2ky~GZ6u#Niooi|W= zhuh=J!A{*H-p6q_f5O~`eI)J(2xoxD+=;CQ9RAbQHp{j<;6NcGS1hAn0YXh%PNTgv ztG+m^p@chhtC1j|gUH;M9-Ap}7bL{30~f65P1)D(2oF5z%_J8T=`H0)Y3@kZN0v-q z^lB4cj7^T$FTg&28b4KagL#a%e|nBw-78Cb6k9diNX=*J8kjqkNMIJRHay5eOxp^7 zab=fpfwQ{l$h)!x(74!3&3Y9k*{+9L^edd==@mO`%3cN-h3XDeH5}ks0KHzy_vF-xaL!LyMKUOxPAKj%6sa!`> zd;Pna-G`0sD4!Z8dNqjmQ5chwr%5M*&q#qiu)JkLUc-RH*Cagmr33G7>U9wIHVv|| z?sLUu$GUMDpkq%3e16lCSvWNI?)+@2vbRq2cbz`1ZZiYrO7FgFW&TJ*rmEQVdt)12 zO&i@3^aKs*$2NCe{AoARkHKL}b_@D7>f6NgNY83|gs(jXP}|=my1UrFQ_;VDMd;H_ zMj;i8?q_7jAm?%lTaedHplxV$$HN!XQ7v6YpuRjAB8VIjA2OfBXv^QL59kmA@!chW;tO9YkrfNP8babZ%>cBf`)cN_a!z>8FlInCy3$*#@7`37H zh))XKI1cacrTYp(15&i>I;&-ZEJut1Q&%<7feNS0>7mkFe$}i_x+?fD#B{aPAhSh1 z=bEK+J^QCUUB@T%X0H5U5IA3#v@PO!pXViwGB57K4j6Yx@TEO>gvceu{wCw==ja{i z(LVaC@0s0Imsu`2H~dsrQ-8v?iO2fs9wa>cjSua6vyi>XoSa0%_)xhvPNci%7o~aH zKCa?jubf>eWdKS*wZ9`kl-NCx&&Z|p<3e@AD~?9^i4BjJPn&?S6?Ti^Zeoo3|5T)e z(FatZYxgGEAQx`wY50lvD76^7xEPsiO{&-UMe7=FCG`mG@oKN%=xZZ}>uq#DT*g($ ze-Xc#*s#l@e|Y*QXj45D{Cn7I3J}_B+7?L;Bn%eXR->vc_+P@5D_-&b&xS=#4jI}G zU3BJrzo6bFx>%){`hMVZQqJR^_mGMv6^DK7TtO@sc_i-+y}YJCskx{_MXouzX4#>d z&;nJf(zt?sVJg#Hdda>7i*YH3{8)BW9F?z@85$kI!kG>tWYGCnSyLy7>?p>aqj=fnki66HtSx^(;@~40c68j9 z<&Sm_&OgEnPZe)$+XO?T zjy<(+iYCg)miZ*%`0{jPtS#p-V6nhxb+4H9pptQ?BiwweO=$J1t2|BDXq7-o`IRD{ z>K&iS2G?ppVze8-xGUq4@!W4oMVD16ITGDSKk$E(;pqE%fh{V!bpJt~vtaBMGu&Lq z@hFDybr8ja*p?_X}og4cH@-D}Ge z3@d2N4OOW})Kuq(Yn2ik{$E&;Qc1tzt(C5g49ht=lliC(FRM6pnh*wuccoG!@ZJoK z^xl)OQ@B$>EaA@7u1&H35)2hd%5YTY21|vNSZYgS6eG*c4F2a3HS~nObEi8%4%fY?0(KheeJ=s5 zJJqQ*^#=%DA~qBVJqCDD)*J^^8j;pJT*dt?k93uN4>tH6(I;2d&0uWXP{~ngHcVDs z6_2`$@`J{L`586XIpTCH`h197`kA-6)Ou{i_qdE}Q|bn;)K-X*H7Ut~TsFq_-lvt9 z9u|!^=ZN?2t#h&u=Ua{Pg(*&T?7X@`fk z^|Pb9QO&kiDZQMjR$*M0!#HqAO}ADlxg4F${BJosA{kxQ76IsJ^w4WW5{qGC6bF#UNi#}{-fTZIF_LJ!u7(=^FM+&I1#FblDe0FSWg*zr)idFX8c{%s{a3;zTzL z{$wt=n#0d<1d}Oo>lAqF>*7!mN$%1eS^Vf@7lna5PJ+3s;wTZv|EZP1eY`769?j`G zJCr9y;CNjuADr(fs`mdJQU@HlD|c-1qfcBk26i|J7OtA31|+$ywrx?P(_B`2cgP6X zu9`#t8idov_kSx&qQyNmj(6k; zlb)Mr2MT!U?ri@Hi*l@hIcZu$%>Lg*Nrw2DhS`A}SJHCJ?0A6_UBiFFx4w09YhZ2uOay;AC0W9-8TK4nYRCynX_f23hx;HODpeUvNdgfjaVw2y#iLQ^;^MT zL2(jPh5z#bRC0Z`ssE(S`u;GtJ{E1|<#3aiM!5ERxG%!S*ZMT|-?JpUm?3A-B;*wxBA%dJ6<$Uc+e>xF)b#P8UkX-kUBTut?3Y zOYSg7&M^O9iSdKvM18d=Q;x#D|Nnyex`6?oZOf>b?JqOxo-v%sdxeSWER(;;cx?6* zR3dV^W?d_CXHdF=(pn+dWI1R0a#DY7vJ8c4*gEI(#p*`GtH}NB`)%2&m+`@^5pd3R zP?21YU3@DC@htUO(HVGruDteE+NSOJ0P;>{eJicfzPl^y@S0nwdVW^a1|FY)yj!V< z`6_lP8n*op5_2ec-Dn01c&3z1)umV5-tVrfk{X}L(^#bn{+pJT0Hy{BG(;rt?h7K=z*@)c?uBz-?GYxvkn|q1JZ0^t@;oJlz;84 z_9f^R|X(rIWW2t-W{?2MgNyoW2(&i|Yp?2lgs9hwo0h><$W1h@J^A`k%S+mE1VX zxu>tp`2`AiJPVqsE)WC~9s)HJ5O)~4@t3(Q~@ zon;#WOKE3Ee!El)Lj|KBqeq0piFu>6Y=8V6#*MTi-zN(3L=5*^WpcVexCv z4tdao%$eyNpW+w~0mz`4)=TU0`4Bj677fyOq4IKVCey-C+y%YGmcJX20gMt{z^S{r z&L8Rc8k_Z}@!dSkf!3@0xX#A~_P5jI+{nBGH4EKp%6l(+75vc-B80YgoXVAUdrmc^ zeM(!ntZ2_$_0?SoRe_3?ZVQU^t$KXQ7LLGsevn%!-R))0^DV@MG>p2&9MQ1h6cLrV z^472+l{tq}Y4Tj9R$eLVq7bXACBlm0fYV%!rlEy0wz^`!l46ab;;9^Zn?fHQdW<|W z$6rBRkza~*SE1W!-1137$FC;zYh6>~r3p1n_vQoZb-Y!+gQ)-boW}cv(G)c^r(Vezk;IEb+2T zy9h+(K5`puh;l~l7IiTL8O?6|12BCd8bW2CsNGIUx6J@n7bI!%O7Wg ztOdia3%!Zj`j7H#8A`9Qe)?q5TSSJ7jxD`b(PXv?7#P^8$ExyU)dR$MX9 zz|+Y1$}t}#xftPGO}dKzQ6u<_4*Rx+@2!*gV{)_&HSs{_Zxz>WfO}ozX2$twFmFUX zJGY8XtSpx0L_B}@HRO+BfE;FK#EZ}RR3 zm>Uc0s=wcJJ=#Q>0e&`UWvkIwH?E`eQLN%+?bi9*n%p)#8dL@Ed}X>2#Y2Cm z^OX*=J`981&boha-TIPYyL1Rl)+`pViqb~LM*^bEZCT#jHH98eCO3as2Ug z2|kr2ty37HQT##8IC9{;$#;qRiuNFkit?~!oP72gjPDK+?ZyWc{ggQX02M5d_dK8g zyJwOy&&6IjS1nlDc&^ePfL+!#3=(sS@)b5sWu2;2Hi>Utno2DzsNP?lzhmqO9RN-j zsmEXHfJxcoSBC3VHXa2R70wnc>vrW}=97nQ^LqI6T)@7Tip9e^*5vh4_r%JK)J2r{ za{D4RA?pPI=HYrtsMNr$4nI8EdLXBSLmoMeWN}Xbr$m0v7gVmPXfRYABvtQ&?$}`y;n0qYPX~A*f4yekK{_BfzUg6DdP8&`4Pc2hQd%d#aeOQv zZp(vCXs_ILB(0*p=mIoP7$XLzIlj}xnU(%#nafW#gBkr%QK-aw?!F)P@_XZ{{vzw( z?XT$ycsAiU$xvL0&<#wb{RP;QC%d?8@qvl?rH#p@aL2QoR;L6Owmg09xtfety9%rF zg+OtKEjP^vjts{FDL1Ww)gt}GlVm#0>uNgHD%fKMP?aL6uhhHbcmk9JV_f{$l;_P@ zg%Psbq*U%$b5J1{J{G{odH+MJX&kUsXPC2eYtd*&%Tni7p%Gr;3&=gIaieW?qh$r| zhkCSd%#mEP7)||L#H(QQ^Kx^=m*vazJha6T8_%q#`nswP!UCs5sZ&qRsv zW>zHndC>@}MG${>i-oHmeJeVC-O5p=41-rc)tYsTtt@y>;Vj#XL=ktcSDfqtW4MyJ zgiYRw)KIxJ65nh`bH)W=+P==LRV5syOwvvsKiKqJ7mG8j8>&qar{<`ic39GDwP5_!n2eDo89qkVV-%-bH&mS>ADM2ptB_Yx z-3PHaS|TjPa{M}$u2yohaQxW7=~WS>UAFVL?D*Bhc6iUawqCfh;^6LYWj%A2*0NYU z!gg{!*6LA5w{e=%ymHPCtm36@$IPf4xt>tnn3J`4n8m}t~OkvM3%<9a)^lRo%FASR~x#lSKh@#5s2~R2IE*iG~dm}H^dBz+$ z1EXYrtzJ#AOiInM^my&|SYfE`NM1Zk?Rj>(NS@_FX{^muK|D|GnMMx4F~=pccb;fp zfw%GXp=41Po94E1M^bCdqkMU+ ztt)@pSX$Nd+6-4Krq*!QXm_k4>#_3tvfGSI7!Sv>ouyjsr!(T}u^b*E+Kg9uj?RBO zTRS|w-snynz>fMd+6*C3C_)mI}A$F=6(34mI4@APzTzCd_b+w$UC zwGMVabI1aFSVYD@TG5VqOZ%byltbC(I}W=>sh(WA7wAoSy(3G{Hr&ApqIY}e^fYLn z*3`CLP+q-D0PXD#Nv95tk4UFbYTcmfSK5QT^de}>bK6eAo!lGgwoa6L?(#sbJC@Gx zYFpY7nZ)O`;~t^r@R_iweITlYOwc66P!(K7eCo)_YwHVL!@it(rH9sC#lvHxkcLII zvw7jB2F&=L0XX`>aflNB)bP}oCqOB++Fr9zl=^OSU>W?q&e&h5k9o6ksI{zi?gb%| z4H#_L8YELcDDMFRN8kgG7(mhjh+9O?JiLYtL)pEhjVN&unDX@X1C z-C9)Exz}X>9$>8PinL&?bI-|+t^N+virDhby~jmv3MypnIDO@QBu-*&dChBsFc)9i zPr}ID7Y?w=jJ>D-q5!W^4ndtVSj3w|VyW(SW#FLPg_2rxSd7i00Jl+lLiJ4U{*dD( zjMx1-ea>?6nAO4&xA9_p$@!q%qDQGw_a%y#T77suZ$ga8q5!+G6;4FIVy{i;I-sF# zA~j=U0dP|3iRY2(FO69^tWx$SndqDN*@n~wDEW$YR(BQ!|GR$+rX(J9a z#*#Ggvp=+({%gtWQ#@8xmJ}k#zzuMiv&V5I_YE*&%=i6;XbBPh2e4afYk2ZDXEfM= zS7ESq>O`%)hs+}A)PVJS9Z?FrP;ko%&a=_s3janTB40|I^Ri}a{aCZWG=3~0cO+2e zv5)@u3Y?|7N!n8y`7OqUIxO%rM&_*P%J%v1jSB zKv9TUl2D_6T%$h>YMmD^!gmt(#B+%T2X1v*bBjdX;H7{TVxBamqd#cYs&6~0`8U%3 z0(m0b=?9M!qoWfu;nbhQq1x4y!Q@Y)L^p;Z-yU#oUIVtydvTqcbqK>CB#`g^(zv=%t0p49|wQ-Fk29cl(Ts9 zS0DnFgG>$yr)cKI;1xbc2gyK&-Rif2J39^ffjg(tr&4wLtUIR!%C_NnjrE$kQRPjy zmhz+#H?E<0?)edY0QY)K50{+^eej)~iuPj_MRbTa6DM&hswXu!hGt-y?Z;Ewv#!gx zXXL*pW;lD&O}JvQ9LCRWyqW!YTo5mUU&5oHBZWSOsvc+qI}qt1ahHtg5%M-vQawlP z;2$GYc39&by!3GC&A3N2-pHFv?DXh~ZTsY~iJi|HA@rN!k0^BA%o-8LCVErTmu6Gu zTLrlbS6>o!KL+chLVr)c<0qo=VG~ez!2tRFAIvXVchz1o18hLap56NT{ec|%r?mr% zhS4=61WbRuWOoRF>d()Z34g!*IaI?Az7RAZ))9Pi=_!FIov;egnly?KNgAp9JCrN>ikm+kC_c+_l%=E)vB8wal@2J_Ic;X zwTbsf+^ObjvSq|V?Rq{k9pb3JX2}P(^8W2N4k#L7^gGneaN0dh-KbO#&=RFe)|7mhK|0J`!s@tQIkFk)n z9J>ztA{!q+3V6~0Ynt_tyHWGdlNyT>uSYX%`w5{}Hu*DW{NyjkQF@NC6Kt)Ct7lga zaOLf^;_ikm=!BbqVORb=?i@QSd5)%p!6v~DDig1zhnru;C&R`s{Zjs+nrbU1FS#5@BiKeUk8zzZ|^kY0S zForS+&8RcMFpppEyLmfnl3$35lfG17)~;i$^nOlju&$f8oNpcDY-&4{J}p~v@;{-R z0e3qJyr;!O^xv}KiU?q|p_lkHpEkx+>nhATF}ROilZmlBQJpd3M6_bqXj z&rv;(QTOlg>Q;E_CH>-1ka6Zaa3v^j3+ylHMr#m+psDWirD#S1r+*ClJ?Mi#ES?Vg z=D=&uoyCzkfk!xwM>zN&pb(zwHpv*^p3u)cV4S!~K5*TplNDHnf9M1-fSvol=n_l# zLFt5=P$lx$5RBpC|4l|eZpOrafF6Nqo21pJNv%_zcC!NGQVBLf)h&Y&mmrwq@;f)A zbPv-d&1m3(4gojf%@(8!GDfHP<&XByu)4_YFyT2!S~DlRN4Y^3^tHPw7Ij;48T9ls z0)`@o!&jepv=C-nt}zDZT1*hKHs6npN>?g~PR=ZNJigzhSP5~?sO zspfCy5b6h|Z2gw|oSZM$ep-wOTG}TU8zKZF|JBU03^>=iaA=(>SWwc(+}lC~SHu$< zBxcFxL|`X6JQhCREdtOi{KjM;xTTHU!Ri1$DshA*1q+NPBB=V;#D?9Z9lNO7*P-;T zF=DbKa-FNSW&-#okmSeQC*K>-wwj2;lVgoD#=I)W$-Q<_`L06=pL(OW{>JwM4ErG* z_)*dmM!Y$9MGBKE+I^9|jbPQ}kD z=+NtUQ|~o(Iq8ho*cJZGex2R^igtMMnE>S8gMG%+01Q<%VknMOq1M4{AWbpUT@Dy? zfbb+1R#}e#%5z5m*>+$&fUtWMjZK-F@FDtglT!>2|v+ zY;fWHx)>mWj==TNDpv#-K@-C23aEi5d}h_|3F}&bna1{$@BMA-q8Q=rKtvGZA9gz zaWhP1kSgadGO<6QCm!)x&LgZ zGSyp;2Mp+7j0O#CK_`PtALIQnMo3|T+E5I+pz3u-j}_9aEf&Xc9Ll9roh1!#HIPlB zIsOkO=ZuK)^PvP`#!()Vr$b@%`0Z2*?|(9HeCXH^yNTH0L^dfD_|dD$21oP$=51&c z`p1pVt2PQKsTV|g<^B5~Nt$m1O{u|8Nk=5~Wg_%+l2?i-P+l}<=p}CGMFdMefH7vu ze(;c>k_i2`eR+d5G{a9n6oQoX9@%^wG)g=n7?Bv_8+QXQMB|ul)%^1Qc+1Zf>JAV8n(s5?A|^6qQZxLQE}dn(&#Rd0x=ia` z16+?TP=tXyxi%Wy0nx#iXQA;~XkKO6(Z{w|sJvd?1JaL=(1hsBFzCCvemI-d9`TbD z@qfabF0U|n*SiPQA6;Mxt+(?2eEBz4xJ=y1Pe1DcB+Eru#(w^dzz4LE{Iu}GwEu_} zm$&a)e4z`{+jnvQO?fPq-HK9N2~kSz``?q}*bzrfHc@mAoIkCX&qr+enxWr^Tiz|K zgTNS&tY!)*>LFlgefh=Non?$+4zh|)Jpik&zHgXYK2pMggZy2jxvT2+QFIaW=#}mX zbWT-4=GkrMezhmt_Xghibj~8bcs+`4`|G?BC6EZhCIqfrDR>e44sss3(XxWKZ)80F zhh{rSr0?ME=hYl~+?}g1{nXMSN#zeKG?GYQNO)w&Hg{fDvyv87>j>C3&YYxne(MQe zae-T=S`Js)*)wXrZXt1ZiRQDeVlJPYyC8{T*ap=Mln@gm2SAQy(!6)$7Do-3{k)BRyihip;u-kJ;b-e?`w{vz?ZAcy@a z%)UwjXEL2^unKZ;Lq$|RVoBbSWT~8bDHT8+e`bkl%(VhHImRK>^e9|HeWfst*FbnC zO+s1Shz787>(GdO;PGWI=!kUR1`DjIM-&S(kBG4UCs;(F?PbKe0WYlm7DqDFM309H zm{tJfB}zM7RVTj+L{+yQMZm(Qql-9ZintCXjsM;yYq^i}rlt$xdT_!en@S#L%Ktj% z%*Pa>xd--8gcYCs$wU}YcWPvTafEjS5ap9Xqf(w+u`+lXQ= zVatI3bt0 z0M#t=K$>1(W8sfE_2QKW~TgX$1OX9KALtx2Q}M8^gHulmNn^gYCGgXGVMUH{fc zIwf2rfO{F`n1+IP>ezI>x9Z*Bm1&5tlS&=86}IgXTofYa>x6hCd_QBsia5Z4(!2SJ zE+;5o?O{NtJ6WEub#Bt9WdmQJG>c_LCho_9+Q#c!9h@ohlu%D zg!WDu=q2Cs5vG6YY6H1oV8UP55?_=k0l075#oU1?2rdm~(cw zW*lyFB6*2iJ*F=R_gRP?ERrvWl7s+Nf-wUg#|5UTWTvTj^A7-@HMb)JZCk%*mNfO9 z@MAFh?=xiHOdMPC$0}+OSLN-@%GpM#ky*)HgfPvuEENZ#>^nH886bs%ZF%xhlW zA*1y`y1Xn?5sh!Qcn8{|QU@1VNiwDG& z@PdjosMzT*0eOmD4|4C1Z4QxO#4kla>7=WAW5;xns*J(lB*vf}GrGdV!v^(p;R}zUoDw`<#*6c29 zWmg{M>VGJO&$#{oxFC2dEXbDzALh6PZZIwg>>WS&S(D0<+&ZynrWY86)Ex~RNH+Z% zYS+so8E4=MnQ>L)5tKJ$F34hXP3sY~cYEeMIr8d3tO zJz)uHF6+5RY438J%^mxREMj&-#qEJk&;b*z5hzmGO`^ONQ+C;*c)KK-1OeI(#gNu3 zSkyH?x%HC0fbzWmZgl6%eQt>*=8>>Ia!A#Tn1!vJ)PX2-0{$F1b+M&=$|ek4@du9a zn>QS>@rOg1)TCoP%;?3>-z#khp`VoF8v9?so`%L=fD1JLkYLU>ibqzTIGV8|{ z=X5cfEjLg^3+D^PuSShxsEg(&Rp?^O6<|vjclK;O{$1bv>sHBgaea^#@q#JfDq?b? zlyNltX!~I__{L>hds;vEa;o%`JMt5LxhsV*AZ^;C&Rv$i#;ayu5OfV^4 zUuWE@u{eCix`+@lQ@Oe7)d+>He)$%S9&!5h!6P6hqt}yA*MQu11HR?rn;!dW)d=8R z30H8;W}ddF|7CXZS7gvX;gP4n{KvlL)~I?OHTHw9+4)y<(r%!*4bR)14%vg=O4^xC z?zYoZY>4u&2;0yI_>hQ(5a*E|U@>Yt5Ul{sn92olZSjPlGIDd}vUXO+XzpycO*5h` zfZ)M|FWp+bq{-inu7azcrX>~yUXTx$t3P{mG8_{ z$n!WNr$$L4ok@QzWOfXQv3pdzXs{zfv#xLvtLRK;E?{^%G!ZbS4cY7bOuoD9oPh{MvCRO1k&HdTY} zFkR0HwCvg-(ep_7m%L*A%0rJ-*xCi`Lbs?Hy^@#8ShRM6e}A2*?G9_c@Vo~lqi;bw zlNt%R3~Pp}PTb^U-sEo>WqS2;10r0Pe*=mM_cPz6f=t{!n0G65m`RI6?FFIsO`vW( zGMKZ_IQHc)>jy(;(K3kDmlEsVa5|7V=0j~TcEhBU2v%X5elhR{%i@=3vemk+4_<0Q zO4~%QAexshsJnzwH#wXZL@v{mdwA7zX- ztkzE~!Hg>;lOMvGu&@Dy@OL?s<=Vm)Z6v&Pg>Q*Gwse^aALOrL#k5f7J)_IYIO>D+$r$UQLC+BpVTk^+<%nW7iU za~GJ;9r#G-*zgr%QsJ}X6xuO^lx(qcZt7O6OOtpW-XrzIYk$uP5Uz;(nHnmKq#$_VxNZekA zb+LrXVmn+=?-9WWz%!7gHN9fkp^!5rDsfEi2p?sCAwR_U6?#i0c3KGB{9Qm%lg8>_ z6rUSu?a~Um?QnUSy9iwdUV3%cZn@{2(zhd?Ux6M8LW)59H{`>wNm*PEk4zI>?bmS= zss_m^#Afq`9(RG}toaSXv!)S7Cf#20l`K1I;*|~i&F~A$b`|(foy>KIImpUsb(TF` zSECY9mqh>M*2d2SINbv}6RtlQLeXW8rc>S z%wkGnYg>w)=Z_UeNdMsdU6EmAU)ki7m~JhZ!kTVA;?=fU6+0t_tPg)KlM0VzE`VHO zMOv)c`{>UVZ$$lZD9cyNu`go*t)l>%evK?ATs!(mmzT(+vfnn^8rJ=H`x@3mck}7y zJ$H>7)&p<0nC)q;^=W-eZZg_c#&D*Y<4$#q7q!q2tMNa^C}z@6K8DwZYO;kahRbq= z_$jn5(prxiC*czP$lNtO5hQW8y;#ARyeo-#O$b?=y8VBKu=Kjrk*V4rg61Zk9uNJC zin?ETweoV^X60rdr4Jy=<`16UX4-WcvdFeU=d0QCN8Rr&PhE4Yx#QmEQIpHo%_kt6 zOqmx5*%J__vdLchX4E^^O(5Hq=_3Isj{|i-=n=?e-CgYE$CZdKtki*Ws)$gwf2iX!;;3$5i=*E%+O5rs$VEvk7_A5qVR6);$lVVU{8ZSd$@J>fwe$4cy^|0u3%B zNwkCgt(IEFOJ`4|FwWvNiFhk>g}#d^7{cs(vjA^(laeX%bn{!}BrLYD-~HN)_kAtS zGtp({m&6Ol1r*T(JwOHLZ6L+nFBPgsTv6Qax($5V=Yg2sp(=*;x$thlX4Q(Nan%>P zCp02KDDI=*+lU@gnD~8)xqxP2jgh63NxOs4v_9}{J4V%Z3M*9cKA5QWy_@Psg>p=J zq1cJI+^^2p@r#n-^jMJ*!g`TYv+P3UES%UGLN&I5whfD>8rHXHhQii)O_!0lkzTpo zgDh6)8#q0YDcjkM;nD&-w!D!M93D8h^jP#bk`d04io#5;t=v8Al9`kftmA+14WM>t zTzyAb#}mEdIr=%SQCvf9E87*En8)KX42^gAmlU-OUw>(lwBd5p2A}G_{=QEHM2Z{o zxyIS1oYKGG;_rQOEt~p{5JM8dHxgs#XIs&(&1-U-B){uGqC6fSjoq`W@l?vlk1>oG z(Y7aI2VfK+GpxC4UnLod;8!IAGOqu5*(KVcbrn>?q0U$8c9H&F5RovfWV-{dC@{y$ zE1yC&^C)Ln64Y-t$KSv_Up8MF8KZDE8!9aJCY+&%Rx&ed+OJ#+;Oto}9ak{MUQvW{ ztgMmGsG?(VDubO1>?d%HX&t0c16ZKjBCoe-r4Jh5M0|m zV`Td6p$QTel7>CZn1+~0J4XY1gE9%>Fp|DnidyPgajVdH!TZ4~V#65g-NwO=LEaWF zyKi=)iGoprQG>OjhWT=dB2lWyPYs6Z*w@*LGo_R>N|t4nvr3+2C2~rzCr!f*UdC@y zEH&ee@A;`}$|`HKrt|Rg8OJmyRwr6>Gp!q``EKg+<&?+t^F8wla|>>>ZVGD#W7P!8 z-VK?xnQ|@jb@O#p6K>;fQfp?k)i86G^SJYNEYofSZrYJ`y!E_t&Z=1|C$l{BU#Lq8 z)hMY83RTt1t7h}&t;!U}s_)el%^GPfN-~=)+gjYFtjx1Y-i@;Kv#REoF_$q*^WQ{X zq|Nd?Th@duYuc7I6>B^jJR6pEwe_|0oR$|>0CRM0Rcq1-E8wSK!%fyTBBe0y^*l=W zbr;nGY117GnL4TWg6^@VOY)~Fh58e<#wiVF17`zcocDMyznNw-%_msuP9g7q)MWyu z-+Q^cv@EOGr0dw0UPd>TUe5B2jN69i_vfV4iz=4ZIJ!87+Q&KOIL1zo(vQ+j@9oBI zIg<{0d_{3HL#G!Gwv`OlPL+18Dc~6==_jMyMO8B!?Q<<- z*cJ$m!d!V{$Wp%YI_u}FTdSr~4rJ^PX;0(d55Vlpnfg-n*0&@a3sZM8j>au+qz+t- zJ6yBsI#qR~9JFk;7|A(a(yhm!(!s~U>}%~8IV_|?Q65KwbB$)1i-gaL&3RGoa_>g5 zr@l;m*{_=to+{j5HMuddx9@OIa0fj3tqh#$cO2i_zodk(rLBP(<+z8thd;HZ9ju#m zY$4b|rC7I+tRnBDIM;J6YaB<}4y25%LZ6H8bDg)H59~`hXS6NduF;-L-DJCepP!T% zQ0pTIV~&=LnrOkN+K8d7x-my519`&b023+UElErMXUSxsNx}Z9$stsW%zi< z@}{Ha{n+yazfssl1VCjTkrV}MuA$Li;Ap%Wp+2u^OHR;q9=Q-Vrebso?IG_I5{K$SX^!WJ5GcSMjvW=)V(MK4?r$-yYhm&OmK=Gz|Pi~;# z<>Fm&V|f>RH8r<=U3$EkPs9E}(xa9s%axaT_ggqGf^5DtLI7K&f`z~J(3z+`+)R^F z3Tdp*`$&X-uFoxrT{Ec~ctkFqe`f*sBORDIIF--}<;bg3mH+G(O1B4GDUC*WFZQx& zP`Eg_0WO?o9UiDB--qvv1vh!y7{T%wKmuM*5y!*ra2-is2vXXMLhLnOdl2kT-;snDl zG^Igu#?PNFtoUeOF9u!TDH3;-vt}ls5#O&6KqdDJ)$&Cq`mn*s4od2_VD4kxW!^K| zhj*id`v@IxMK9j6e0c}e0L0q661Qf8{`H5<9cSkWt*2Hl{;?H|PE?_ph1j zh~{s3r^dib3J6}skO&)VyF2WxMm~_0m6x}YLe|nm#>LK(_4G#WgSpMI#CkWM+k)X1 zF4arrZS--{2~RmAsEwT9)rfi3>fI|v8^_tPWfn2&3uyCjM|I9@SQVc9Z7N>Uu*5T^6dWjEnsUM7u244r|l)= zxgX+18=mgY-!#_GKMeC_yqS$i0Du~7rhIfH5jF>?2m^;ych`IgP;N##4`H$INKt+{D> zSOF|6khE3O%Ez|F#nsiyp}8|ua9ucK>Z|J8!g4!jLaQzv7Q!lgi%?gJ{~A~= z4#`#&NsYHB7(o!V(=1FsVE-cmH$zPdKQBvup~U#s8HY16(pO5ps3qp0-fkJoKOHvR zLZ71Yj7*>X{FGP!`?*CdBj=^Iu-9g21fwtc4;a0tn&5~l-x)?D7Z$*C|BnmO3(_5H zt(u3(t6!Te5e>cz46I+YdKU3q;CIS8&9T(Mt8~$zJ`B_kBkjX*|1eGw+k<4WAHU{N zT_X3_bc%?kAdiLo=E}1Y<~cIL8)v8T2TAG*uR@FVnlpF)!|0UbQZJ-otw9jbdon~|2^wroq&gPyC`k$5VJxJDI znZqe6WC?Qx6LzK};0{TbM`JuC%1LD0p_U7J<=nyk^iJf}W?(Z9dofs_s`dXV_gA@)Y)2o_udouY|`P;JjgG zFQCy;sin2Hq5Myjw_3zszJd|``q|qpFWcoeas3laHY_BUf|w#KOfEim`WKpvVCgr$ zUw!8S@#IRS6c~a+5U_Tj4SOdPR1`6vq6@y8rMNa@tF$(zjTavI4qL*`dD(Lc7vZ)% zS+fYPFRlbm13gS#89td34&>ebH*v%sUb&f+=V{={C3Vezij)LMdGp>SC`dLggdF@jAlJ?~sC!G`JV`?#Z?Xs$p z+-G6W;9I%|*e9U!2FV2CG1TtU@3(+kf;%R|Vt^U_^{G7Y+l2Koo5h>vSy3@(HgiEA zd%cwIs~>zHf3?$SjzM;^2)f>uO2BYmZViQ9sY(RZ=LNaV-;oJLaKdaJ$OTzkx692ny^!H=&uTB+AU>~KH8>1ce# zS^zT@W)q(rLv|3ipRk|s51tycqj#VWINNm+mg;Z*ldbOht0^Q~{mbMTm7JAw6SW0f z6YjP4ju!Yz&l%W==mGS!(C2*IO$46$XJ(iVR-fPN>|eh$V{Nj!nVZux+(d%&8(V= zN;?;UPZ>2c{mHVOM8O-S_^X+-q3|?(9q?Y1TIq@2!rBlLYbL<&J^h&Tv^YNM=;!uP zSr|VzQ$M#OKR0YYx8b*;H|PSamtolZ0_b}~h{YyCEMw??%85(3+HDi`7E(LvK$0dQ zD}Q`EY>BBsBprF?AIv|{GPh#3&@j?}?t+f?{Zyh@-75&XEPlij8kT&^N~aZKrUb0T<^1W~YFk|?eE z$E+1PZ^^qDR*8O3Rm;C6AG|}pa*T!%g;d6Z%{>8{greOSnzV({p>H%5XlhPw#J95+ zIiFNK>swITVs5J>`IYVV0k57=@#cgoF|#j}blnbeybJ*?yNY9|4e?%32O$MUM@QGr zKn-|re?AXS(TQKjW8b8^V)~3PC!W_nd#5Zf(G46n@&RuY82~k+QBZqsNZQmJG$m(; zlCl9X{SPMI+AU^)v%#m~j!jW&xvKTDhn*W-?UQM5v=Qg#7deprh_=T#VP7sezQ|To z!E96H@itbu2VMh#SBbb^MMRNbNdaAFP+mu{%d36guRHV;#VPv>iV^x*`eVqhH(v!F zMIgocgsT%hr#m64_v6>aW}(L(ge@{ZBX05|+D9(>!3Od3CP3gsnTj(S(2iC#Q3`Uw zXhDb0MIIPD@!e%&{^V|D8zh}BG>CsDKC(W8!UJkuWJ?javlrq9+)AveZwx3uIfD4D z#UC>dZYp;*MYi25NiPDu@|5+pc{yy2&AP5SZ?KTceK0$IcfBp;dVZqAT*uvVrx7WB z+8{5D9%$8x*SmIx+pwmqarDuWr?Gy$5FWM4xr>(k$}4su%KE4fqPV8P4-#+$9@)5n1jD$3 zDk-|1b`fhtzhr9J2-P-wV!XA=@gfLm`Tp1_JVENkYl2;L1!niTZ~hZ0jLPN1&y6PV z^pFicaSGXk6Sq(;^x2f*jnCeU4wJ2?fCM{s@wKzFUq%%og-tCDH zh=U2MU%MlYB2SHBk5*cI9$$!A)TDbg*cgfn2J2|Cd@*mc^$*X0w>mrm55mWW>2pjD zh+V-@jJRW+>{Zio4$`9)8#g>Zm+H{nIx;b=Ig(j^+>SuawFp@MRKVu5Ps1quyk6oR z=^d5Hh*{~rk#%nuO{fJ8KJty}{SIOOVyB6b4?5?o= zR0hDBjxtZtUkt*>=QF z`WfKnim0bQuh7D$sQp9V=j9y}>T$v{0%dP-iLinCzzJL_`i?t6I=6Y~V*luMcv}T1 zAnn!3$i3zB8=vtO(D|1&ZyyKw0=F%keZC4-NpA{WV@K2kQKsTs8RqRnPOdTC<6Ic9 zjxSitrV(D}9L;-LapSAgEn&Lnm1SA4S83A8$gQVnf+Hn&+#ua^ijYOQ^>7Dbni;?5G?0W>{ZLrYx_;QXY5iZJnJZXhq+;WH8o?-;ARa zQsb~WrHsIy*v&40^>aRW8_)U4HTj`3ryO;b|I&NXL_BJf&)q49E=imR-Wxme!Hc#F z-?mDW@MWguRcu!pKIDSX{IF+GLon?s`Cwc2>Dl|-NKHGqY;KgmIy{F2c8l7Ca@cl^ z&1;y{7GQI5Yg@miF-;0EMCslp_l~uGJt}8!g1aJg6j9ss+(fq*-Jr8{ z!Hvu}*ZEKYOXB|Kw|L<*A<~X}1#I+r0C^lblZEZR>;X5D^3tWqM4xA4Cf4k;c*E=O^Afb;duG?S4PSAEK|OhKUu&l8YwlvF zd`h{qx(r?06d^p4eitMLpz?MYuWD$2-@x4Zx|mJBP<8DL5aY|$-l5*FJ=@ZAw5GXC zDiJw2T6Zhv<$5He#Pj9(Xo-p0H(NZ3&+6*FDM|J;bKggZTpk@>1O8Lb5hm zWTw$6p=yj3DPJH}1~7l58OWi&fsM;(u^mf3qovdHh#oz*6ZDp_bL}uH25!D|Z%PIJ z4z!jC2OagC26LGyHlD9l%(M`g2j`#T(Jq z9tM3M9B(^$Qz(^>Pi~1bdv5Wc>7;VzU&2{%y}z8c>K|U*wbI`Mt30m$v})Ph(4~}Y z^jNp-{Ct&sHq3>Qs~#LY#`WinBJQVdIID_IFA_}2xEB0$1HqBHYog_UL9|qk@NpYg zAl}P)Agkc>i_%Q`IbemAVVEq;(W*9kWQFY5ikvIu44mp~P8Y^qz*(3k$rWcCZysvS zBEunxgl5i~J2HVRo0)Bu&?Mtfy&|ucoY`jI;No$w3mSxDf%T zG^VWIa(_r~PnAJXI`JqvxjT8Gus_S1$SBUKfPsxFat2Q@nDI9%mRQ>6V{RUy;R>D5y zz@^f)2=gv?pMierW~{AUfqo9}yukHnpGS+dDwdLcfpY224qVNu+i=m1Ed^ zm*vMm^?52sqT|A7u&VPI-a*6tax$ul^O#5chxNO>%}B~(=RvDnj3pOReWZk|c#dg|ADi#P zt`lDf*%ve|t6O($Szhuo^WE^?^RlqH;sWsZl`hOL$nD9?YExcR62@NpW^{XA6BL(5 z-^z!L-n&XI5|O14l^gZS2aE~=%7RbSO18di1t}Rd+cwuIlCCnZ&X(d>VOW_e!X5;# zs5SJQb)S`&+q_(+%>Ul1>%lKSz2w-sDevD3?@3aT?D6b=t1yZwjY(A^C~H%-R9PG2 z44+#ruT!lUJ038zoUbUKH-a~8U_I$DDKcR*Cjd4W13Eu^>S4vud9LyqBhPF)d7cVF zm7+1uPEN}lq?7tUjd@d8A(bLpG{cNW8IF$)MS~AP`j`020cQ~(gEg#?Ql|)ZT;`|! z$ml@zv6ot%lzK7zhZxuU$RzTSJ7eObKq<4bWsKu)D)Sug+F`XrJ0(?EN5g~$8R-w9 zIq+exLmT;F9>-;)pzyPiekaclveGqdn6!j`LAeh+7tI$WVGfYc$CaT6L)IpKGLS)0 z3Xf$(45om$Z;Dg}V7xZev?@T=Ws9i(9AdbvCZ*gY0%Zj&T@x~3F`_~+qWUId=FIk~ z#QCHp<@Hk+<2DqQ`Q}*qem>Yfi`E=}eJqNj0_IXda`<<}5qgKaLvg=u_^Vz$n z5^`G^a=Xgk6R}xa)dpC*=>@;pk*lTzcc`sC39QWa#?SV~nQNM^a4^#`RKcE&GX9*; zh$_P~3gM`8qIM?(a|330<>4boTaHmpTamb!YQ5LfSgS^axc^0E6#nwEZQgkBV;O## zGamd{hPmd>7^UHIlybNP9%6l$^q5J5`UCoBD0855LgP`~n3)6B0t$l)4j(2GhKNzkrvTSy!{k zrYzQDQUAG#M;%on1_B)4jNh)p%EXXTxwS=k#TrWl@f;n_m=oxMu+nJzx6XA>W?n z-qDXXPB;F%uf1oeEqO0`XYYeY{iclC3n)&|=VHZ9-qPqc*m6O$@0JQc$tXr89g&U7 zWhUS6rP%mwgYpNe?i)zinH@0tPh4QFR<{XYOz)bmQD)zgK=Swyl9GSr(yIP7ajv>>KXK5!X;Ux=l+y)jq93pA` zBF14>+tfeX*qD|q_NiSPtERr`v>A!TL=&cxjWhim_#7)-XG4zTHse3DChW%tyfil* zgx`|5lymO9IW(ul*owH0kG3>KDl$$oI%fNi4&Z)~i5I2}PckeX$h#SX&>;^>j-(Hz%Ab3AuC7pCsX*c!BtwntP01J9N)`V#x_L#$Xxe+y~sjshFJM)s7`~Xog7~Bb(mqs=n#;?9?!WK?+ICun z8VnH&o8D`#8908%?V+#M9M)YojW?`z9Xsve=_l!qhZFAOFN1aKs?h}R15ckk*EcP) zjOYp}LX73Yj;IF+;Ji=f3IQd8>w2bM6^|R{! z>JCfNN2B`1&@K{iM-XhGcB=+#fj`z1nm+Hfnpz2&?JL=p$&pm2bH*RcJDyCbT6s2s zH8|9*(zr<3Nf&yst&9o7N3IGFE-hL{a7(U|EvD`eJ3+8<2Bx;su40&!6|A5<-K=t3 zj5*&-VVJ{UjiwYc+LNi+{1*)Cj0>iWrs#B~9Dd)I5cOx0C9o$GGpbO)thyMkNNT3SRKP?#g+hLC7ZnUsN4g{yGMr2d!w}&1 zx`1jC$sQF7E<9+FKT2B=i@gl{8`XsOlx*o}QbFXT>HMx+vo=&L&`GdKd9OB4Hjs}q zJxB4V<6n&@e{YT2kWHiapihYv*pOOO;8nsQHseokIvqkcQ{L5%I z!f4WT^mB=;Mw_qdx0KP(x?P`j>E)ATN$;fZq)SWbl#}FRTlqDADb6Mwikvu8-bp`0TKp!V4ik-Jqi`GRlbb5-t{g*$z zNJi;o zqwIhXuV~t5p3K9C#oP`3a4%`WTX&18iy9#yIoUH$j`3^zlM}GcL(|;&yR`*WGOhh*@CV zVBPovGNRKO^Vskpd`IjAmW7(hlHTaslVCj=*)!2lV;P2)s(aeEJwbAFjpA3ApDC%v zN1CN>q_q7p^2}S_kKVV+SKTYFd}?bUG@a)x)gxeFQN-xWJ5JP15v@CywH#@*$X9(U zZY?I9tIt(J%M`2z1$DpR!d^@uuY3C@m?{QjEqM!+eOUwzDOvuN_Fh-Jtw z&B_w{){&x^kUUG^e za1OXqM(X!&WOz5weKqZVoH^sUCs5hHJqw&^>pqGLoN2<8vgSl!2T)tAqqAnwl>-2m zj>^eywG4L-x(8>0Np0ODGXY6WP?#dCC(IBe&H>@%u$b0_)t7kWP*3(58oS1H>sl%< z>Go~ib(&lA#xPC1>dlU|HYeU+o9O6QTm5WKn78JSx-(}oV#Y;nhM_W`y2w&^nvnX_ z4i-j&cD!i3=)cgElf zmkm?3tE}FI?TXD3S=!qiPU%iagH;}P*0P&5IEB#}Su|U!TSaGX^cErSV za+;RN>Rk=pp{MRxby#s;O%*$NFrrN4RiI1Rgb)n@-*SOlw9~Oe#j5 zMX=yj2bss2VVtV6G_v)*7E>tVXy`S9vdDEpLNvrwdIw=)$+T2@jqbkgU~0y+jOz8h zC_+Nz{>32$Az>;avdAMy=rwSEXCK8tXH-}CE1Bl6wA|tlAweM;S%uyof`6s`U1)f5 z$WktGBE?6E|CA8)Zw9uILa&7^@?Rexl}l_C?v<=5$Ty1dR-JqpOd95uO#7^hAAT6T zluMXM@vPhUZ|1)%<4`XZs3}BojLB3OsDMT*m+aAs^FO{Ib_nZH9+cS>-RvjgD z+hZ|>ID+)XfXgTW)9|xbE__+kV|u=9XYQAU%t9G# z!ts{wXMjzOGh?G2_snwJbQ{Xs(XpdYNizzG2>Th*)-As}-qv>)HkUWqiOBUx3dcBS z)Qo-j+b`Wri@1J(P4=R|Ue=V{)nsa9smzBz4@fiv97W>kaR-q%J}4*$yJ7)x7m{~{ z-AprSq4ONersPxOed~DEbYixnaTh#0JpSAhZm>F-MAxBiY3&obz@MY23CRa=p{~nr z?(ICqDf*ch>lf=6i(FBzxhOXp6pYfip|028mxmHeiUI|>TDGu=)42uNf6uBBr#qo+ zrIR6#ABETqlfaZBNePTQ2(pinHV(zR6w+>|aGDhGZl_Rer{FEF+Q2S)^fJhX>gI;% zj{EN&l2T2HE953IApsm3-o&3lS%J3%^54H;J;Dp&y|iLArbHx-Ig?@K(PO zzv(~;e(9{m(2O;iA`QjRB;4$A9r>I~51frMR z5h;s1Y?+<6g!Jk+_m2{ynBM{{nv%g8B}UzL2C*bDLy%?&#BstQ5}83DY?iEA(jTVZ zV}7HCO4uQ#(D)hGsPU7R6qr%k(J7B?9X#$DG@xAl7P!lGLsnn-_G2h9`MZc-EbOfM zv89ElNJU^4NgSCOKrK2QFK)LudXD_kJ1jXLS}!)T*bCiUUeYc;&QV{&PaM)kfvY<(P_b zqU9LGH907uTP`7MxNVro%U=bx8@@lA5!)_6hP3q)@$j<7)RI1%p}5oBV@;Q9sHn%o zQis~D!cS?LZIW>ictq3^7Rzr1z%A(ED z%mJt%E|yhf-m8`4p2FuOfr6a+ZuCyR7*%Mnc65(8Ubd3fH&wqbcdI$c3W3Z3 zN>z96M~-e8-WiKtZaG?qh_hM8(r@aw#DGDAMDCxKq?qD5UdU#-mz(tDyICbeT% zl}4$ATjm;Rv5cEOQ28RH9_H`2330c;*&Dyb1U-=SX}F&D{_{}CgC9svv%GLa-Yj`6 zu~a4FPVt!vnC2w{+|eeXb;fkBSX|e82?6}F@UCGC2PmF?s}bm1r*&#xWYi->=8`&f zsfjD7pwuf0Hx63l__!EnkUQlp_UR>sYmz##sGIFO&-vf!+CgsyQl-l&hyvjMvG67hi1^cWf41-#%GW@weF@9IW?Y+#7%=Zwo|B`G8c;q z5{!F!F(dF^Fd=saj!0v*a3VyKd)R^6?+1((5ew~iL@_K^ zsRvB=JeMya09EcLnE>Js0};hN%>tl#Ds#2^S8D}-2bq}KM!58gjf;H$`|#ySCzxwy z`j`YxEv`mmZZ&FddU zg$T~34b9UAJ@@c4)ClI4_pZa*kF%MrL$mbH+3Xsu!6$cWUp&$?4#^;Ks$6vKDz4VV zi-1^B)KjkOd%r`BN=Q|41vVbi{w#caPmMQn?B|Vh40WVzyk>zAuOtX4e^>IZt$?0~ zuzQsnym(%-DR=df#?wXyxd91<-qPNF?Y{WGaTTZY%@RtXzq-Fc`OG42Hy7_m_uI<$ z5T5W!u)Nv6yWo|@J#pV0Ji=0pXz$V&;(4b4BkbPx-pzDIMjqFsgz!L!nYQVaS^>jD zOtv6E-?O}B-6dt=M)-SEOrA#WmGjSA%v8r#anHQpjre1^VXqHZ>ib$=evZnrEHarQ zw+FuOtL|Mliv_ppeA$E)htXbNsAYuc7e-ux*dHS;Po#ECWd-H>N($t})o4qV2Mq6E z!K{J_&Qi}ENEI^s-!k4ctvLET6xN{~c&k;j%_tSwCR4ls#amkcO&)(hIRolKawyPM z_1Vs3PtohgHHG34G3f@ubi2pHfqZ>#@cqy)P|QhZ7AR8k0+zYZ=n#7rjyf9O%UYNT zAO^e5m^+oA!l-_gLihCKLW#8iS6*;7uyyaPsS$o<6V8AiYn&<0JuoCuvgpjK<=Y!v zraUoa??U+f4PySRz#I%;qlqRV{KR&+W)l0POWbte_LpG^{(P?ETfTR$&Fjz^il?ev zwvbbZ5IRU&MlOl!4JZIjM>vK8li9bsL)}meV}CT#bx=xEkiaDf6surj=gU7ojSce` zx`}T+J8KTwM_z#*hp!C3l7GiYM}>{rrbUR;OJ1S_pVaQMPxVgN0IyqWcyEaJ!7k?` zeP(-Vl6M6mjH)Ftnnw<_Gf!ptVw)y{AR1y)j+sXl%1Zo4rIK>{xl^bUG#sOcB2vC7 zuj&7=Cd-cW*7Z6&b|!^oGGZG|Q`TRHds=v0V|2g&i71y3MS0kDw}}LJ<6T@{xDeL` z5*p2gc!Rqo`em+tJZE_`y@J2_9-h$Z7#Dg|?`y08;oqWiH=Jc^`FeqB2Rgf>X{`1?^xb&$Ji&) zLg9$|^HGn{kI~sdw(sl~_|a3pyAN$NZkqX^-PxA1`~YcT96YGx`YlvdZUkxz+UaJ%$xSCQ@#tnXt|NMy+L5NH!_cQV2xC44QowfY)#al ziilx(LWHA2zghy8dC{OsTem{2VYwzS$s6CTlO*#y$@y@I`;Tp1Y}*Ck6yYbt=w@mX z0_q>zl@ZP4B*jErA$%MXt729Z79%oPr8PPzlkKeBn9el8P;U?ySAH@Iqob>b>Wzjy*9j_O#=hg&HshdS&@ZmUcbA3V#~P5NenLO=YA zT{`XkX!g9+qeBd56#}=V>_Llz5u>)i>)ztGqGUGsW_9`bVc#tC_u$1c8S$??=HZ#P zh^5(3NhEG~N74B>SJy_YDMpnkop_Z^T@VcW|u4iBTJ=cnd{+A}@45Q4qv%7P!!QPqi{ z?OWxy;*ddoA+2qa;*bDDc*0*0f_@N4p+tj1AI~DiA)+CYN+qO=8V%s*p`>D77s=wyyu2%K*^ff&_ zK3hO9jax^|8 zNoOJl{zRZimxw@tjS^_q_uS`!`t8;$r%_Th73L15-7BJz1Ev+;uz#m%Vhi;kkhCdv zN=h$ZV%%4%AGMMHpi%?$(~Vs8aZj4pC?E4f`dj;fr5&tT8ct8B}3RkQGg?gFl zI+oIS$Eec@n-#o_8 zXh*FmhbS#_whrEEfZoG<12J{s3Vjvg;{w>>(^W~AL2ruWTm*mH2wY5fgw;~B!BLN4 z^g(P2C_NeI>xI-Ulyudt85K#-{VmdlRe_>t72ez?zgUh~)=0k;R zQ94q4Z%FdDHu!02OjX0%Q6tzEk5|JxQfoO-YZb4zrmR0>ze((DQqICSKOp4ML!?5} z$(>W>?$wLUyFoV)+?$Z%P55<(-}Z`NwHF`BITLdDYIia4%!kLFd$k=OEcu%t$%Cb@Y9Q7q) zfwTx4ylpnTl%^^~+9fH^g*)>XRTAXh4T@R#k!lgRgH0Ky5FkBCLMU~XfhZ!paX(vVeZHi(19$CMo|eC>ATH z@SfH8`$i4aw-m>?2@VRFoH2US>+4d@NCu&vXg4dL7fjG@d~rB^sHp?D_X0f2$w$@` z?F<*IU4~!!g7N-g><-Z|u;YQe5-!(ge|{dH9|j)o1a6(ar`hLFoa~*)Ei6EHPD5`l zw2~vFdixMG{oZy;aO8StV=n?y-uWB_Upzz)H4-5_hdF9&A$7-T@Tpt%aMob+-Pt|| zWO~J^^~8EL*YI$Aad*ji7|7+(Vf9wvIJh6bs(Ki3y8ZXIPwc_3(Z26i@^b8Q{flTc z0V2ZNf0VhGxnF*yh@R&>mT6p805EUVM7~l`5XRnY>!aAgDw9 zN1tWC+-LXe`<%m^rLgG<-Cj_N`24w=;3($~^Jb0m^(GbBSZBA;fs zQKoAKq$)C?=uq_C)_(TogvQb7-sL%^zy;AF#{_qaKhYN57F`ZFfE$TM2#6O(d#~Ez z@Rlss)exXD$qaw^)}7tGiGAl0;}JvU$qS9PB7(2JmQ%Q;4N!n^ww~Tz0C(cLcx>CL zdiKnt^L+BarYNLnsl^qTLKj$dno`9h`cdKdm^EBtQBUIl#+&uUpKv?0a#$J>^Njn`j9B@H0sbEnLh_CjQ;}^@8CnAl_ z;-Q+)N@j-v`hKQ>xk;RcqB`XLUrr=;DA!XW9tbuuo6ZQnZz9e>55ajD`69q*9(ibZbjGIiEx*22H52Mnhi<48{;;3F}$o#FKF^Uw#iL|zEbdh%Kc|L@hxA!I5!x7=VP`2lNj<}u(2qfD`tfcZR#9t!plC~Mt?I; zjWxn|Y==1>3)1jplrjEO34vXwnpYOc7Q_RBb5u{9GGdv;5(NZnyqyrPVM$q`8tgOL zVU7L&!munltnunD-dYr;LgViF`5L;-oV{|i2>RBmPY;^m{CR)jTA#h4n%KBEKwb8P z*`9pfM#T`INSz+7BrRF$*9EV9qghF@xj=Gw5S3)&?*NSx{AiiK4c})J`%DR+DK@Z` zoEE8A=b3d!g{vMxFKg!g_@HJ4YWzmE%Kc2kDdl`yRvz)Cx%p%C(quL;nQJEnF!WpZ^7K*&FN?)k3fUi748|1{Q>tRWJUqCn?;ALZiD7k+# z5W#kNQ?3wKlK8+DMmRr4egcdIJlkm8^w7d>wVL#=heRJe&PK3YJlxVv_Pt9!O|Hh~ zHud6&swSO}Z1|zB8ml7N{UcB>_DNBNq^XWj*F zCCgG9zY=dHo&vPuwc}-JITMiQb?6rfp`)duq{P`033sf$jlD_sQ288-rWAXMx)wbf zXEwyLR>i$`+I;MYcejGMciL)qhg@M>pb$^b_^ZAd+7WGa9qab*S{GO zskk*VXk=1p&o~8EDYM!xknJE6Ar_o_thnuUSs}g?j3wAQ*h7kMWKl_&X3&3iy?S~Y zdSYLr(P8+V|4M!PEZP@dIo&RzKizNGWxDyng9h~4nI&movj-ckc4-gY8F~)1+v^l* z2+k|-%k>T1+RMB}Gl9X~c=-AwJFC4za+fWr=a6f1E+uenZBjU+M2F+E+<-)mXqME? zT+b{aA^G4}={I;iq&eCRPu_zu5Ppq{R8y&!ng!3!#mQxllttl*m1Q2ggOcvh49B<} zKI-8&>fwohj^|dDYA8)#1U5osgn&@*qHnw%#DjgO@3KfYPe+uytaKh|r+29s^lp(# zxS@9*dvmyU_zUUZDJMlY{8w_B&=Hq$&ETZ7TRS48GfhA*Cab%`0%FuNs9Gn<>Jzqk zfU2~dW}PI}Ix&DaFm9wDMnJrAr&<6k9e1b-t&2VEm4<_wBa&pSIdi-+M#X@?9Azo| zz&|Q8=mu$#Kq=-et^@N+(V6nY3mMf8ng`A8-ziBJ@zR-Y1$5 zei!*II;k{vd6d|zln><#;!VhpW)Xv^OI#29TLDk~RPGdKtQN4y-tQ~w3-u-SR(S)7 z7x<>LWPd1~&86Ufc%D7pDXLzcEDEU94gC&zg!&O|&=vR;u*tafqff;B}8ux(1F zqHC@@1>+Qx%E;&r%8P_EEG2e!GjgA zKcWp8jH7pI@vEe?hc-x@ppr*x18%v|ja;(0@QFRZV-L0DQx2jI$Ipz5(hFn-+$y*b zZq}8}!_F?LXq+Eq7s(yH@oRvSj}qFsQ~yJ8Oh>M9OzkwR#wp;iv5xeh)WO2B!N)^J zkVm@J=Tx)LktV-mY3S>eScBIO9+JsiDu|nN93Vo@YOJ><%PaJ4iTCLCIKZ^!ll&E- zqxnNtHfM17;&2FkJh zID$CI(+E!v4(c6QmLl{)0(+p^r;5tR$D~hCFwzcGV1_?MEn0_--XT3FO{lh6W((3A zaf`23t5W;@UhzmZGUH;!Jy4r3%$T6&6B=LD;IgBJQ3gjrz%?K^mJqrWimY2iC+No5 z1QpvMtOGtqJd0=isPL!|6bwaJ$*+(~{E_yCIY7OL_Ul{ulX8H1DS50}QU@|@mWk(V z|7`zPtpeyTjd5r!D{z4xZki&CF=0N4>opgBmiA`|&I zJX@Rc&-Lac_9Rxmr$<>Y;->Je(2qWlZFkPM{QHkxJ~!&==!4NO-)aKrk6aJD`NeaX z3HGtSFA0SCNX9|}D@Ja}PgrS7QMkkyyKvF?G13TiKD%b01HiZ7+{gcK@+!R-joup^ zkWeXwX?j^b)GqrK^UINB=f491f@uO5@>}#?v`;LPosefFD90*>b(Dx_rb^^R+bi+2f|195ditU1}1ysBl{KX18JJS55rM~5U3)MQyIXc2B{HB zWr|mk=3HjDoFAbPI$`ktW2lbWtNonI{+`PZR|%mtBC1SrDKpk0hdtIWu2IZozg+I8 z=eo_bnz;oZyLgfTcR6|Fs)*D9jr@sf$V2Ttl&8G+oo;GH)X6`%{&d9PtVPiLn;h1R zaumF$tH%$t|AoH5Wtq)T370tvfm4#@g~?ebt>68Dc>jc`PHC8`pvql|L9F)kk1@F2 zr@sgLMGRydo*?}T!pJMZ5`RC}Zxg6?76f81OsqBYOEOr4EMR`!6R{0`^N_ioKy|aq znx$nVW3T_3(G;MhQD3P`B)jRk>A8%VCK7mRt&Tog21gT#%OwUVZ!M~+qZFNO{|_m# zj|Fp|@_gEU+EV$O-2TW0rii$zqsYxczAd~hD8q8^k#@-YqAd#}*@8sg3_cljstA_8 zMY~r@PNx6lBgNiJX{4Tx?z{Y02UpX7kS%61f4p8u9`VKe7C6N0)|>km)e2t0;AupI zU|7vJk>M4^$$^OH1F4eP%i=2$IGsA3Y7y2B+z?Ysmtd9<>UT6-SlVf)s_^Ig#?*oE z_CZ5{`{a3W#KvF4Uy}uexP-ba{93*dyPLAZyFYxKN@Z6E1Y(FXifxT)b7ZvNkev&i z3t>a(en4zm z5^yzf1B_e07T)C4*?n8T5GxNH&mC_L_^W*TQeG$CVD~Sr&aJ4LzAQcyBdR>81%?eM zX_Oc)5IiN|j)NQ}klqJhjYHrDgN=hD2eE?(MOX6JcI8(JT6R-*RTud-*fvsTU|W$~ z^I~>mc4ZgShcYb*{foJael{uZXEwn;m+F@Dr=-QFDH7DuOW}r$F!8!K@#Um}WuFch z+w6@SW30e;Cosz;@z?iSOuRL`IfuKzFcX3RLK4gd^;5#9U9f?5bqWRKGOu*CXvK=l z4in*zo+!j9LVt|>ukX7GnhSgk4b$uF5+GK{Jmo(ogIB-?$698eX`9gFP^z1k50=&} zZN^KRL2H4`T$W}=vixG)p|DN1n(S1Il1+cc06 z&3=b(q|NY4!3m2w&c(6=qPu7?5{>fzHL-E++@b$G-a4R$} zb;)%__4T{8HS~Q#W_+gqp+Eci4ETbBmg8L%jP#OIk&si7f9?$t?+xkh3v%5VW8D=@ zb(8uc9}k-U?1&RM77gL1194Bm#NH%ejsxjGr&6(B8Zg;fpsr|)uNM2V31Ne1Z_MM| zm5uP1(#0bC3-QXs#H!nJXPIel&BC1TO7>BW9Fd)O>M5Uu9I>OPCGw)xk;j{>Ia0iQ zbS-{+TDfm{7)tZ<1aw6e=8DPl8L5q}pfS6E;R{$|ch;~>^nn5CI!Rodkds*Wh{Cc(hB&S%&qh4V*zu;?&U8lPEQLoClsv+%84tWva0n>Cinv2sHQE-tRq0)IM-1_v|a*1`KlUI(f7R=)AJCwv8}6 zUoZ3@;|$IjKP26CKAB+W{en&a``UuXaONZjoUw-z_(=s1ujwVS2GMXxyL`0P-MH;}y&?*cpn07689F+Vzji*_RWF(eRe5o|>|QUl`3`)&Gd4iI{9 zz0$q<)dFheWp9>tDwA+FVifP>ClC)jcwe|2F5$0)YuEz-e?c`nba&9cXdh^Y(5}#~ zN&+{aem!DPrfjum8N&N8DM^-exRlpLeD9dn=6%1 ztL{L5!}dmKUeue_%Tu)mHiz)GX0O%pf?_Tg5xYVc6sBrbW0D~>d{dlTn7>`nj#o)~ z7kUWpx(p@x_zLe#u&I>%Bak%p%b+wj1%tQBUDP^_YH-U`~(D1G+g0NtN z*nX{|%wdJi#^PLC!0zmrCrIEP%7}c=Y~Z6SOeiLW?D+Dz{JpnAx*VAn-x&n-M@yk9 z$1yzOBn?-Fb=tr-R{@-amJy#fANrwJg0cFsSyY6urB{TrH7jf7BXO7E&7x#4%FgCX zE-9X5@-F4%^^;lxCY0z^=!?CYd)ElG8N{oL1X)W)0Js!VB8ja{bAQYnVkGaZ(3T;$v-Mh)PvVHY%R`ObS%YvUgSMf5xpD z1U)#}dHsm9?Q)dva=bWn*30d7oNCdayGB30x3%|w%6Z~*d);pKg%0Qi`N(CsNWYVd zx=3}iwzXAnp=Yh@0+42SrLN&;E(>zu_-N;(%1{>Sm>23QeOi5xoEOZ_07O8$znIH| zK=v~rjMK<+?(5&FcRqGVy0z^=&wifw_;v(aW|x!iRjK!uhd*?~y8_gVC#L$3es?51 zYe3(fP5s?6t3L2v4oioZKt-S=46YE|ic75!;w0opKtv0QI6eCv^0U`u*YgZzRJ8v6 zK!8zlNF)CmAv1>O%EsDfNOd~<4L-`C9+A`w16)t8# zRdO>XV{~~Q>=9UY8|U$>@G8vXXR}v zmygy!qgchJieqkjS^X4;NU93M(yCaAnz1gTDmT$cS5KGkRav`~3S0HHe5h=mtYJc7 zlcyp8cCKmlvsGnJM{^Ld9E;Duk=XEFO$&)=kyahvN|Pqs zIwo@tfBThZNUpWZYaQDms1w}dsqGEE_Da9_cv6UP2K6u}>dgFh;{FJEvWIkzBm}2d zKp%|WqpgQn{-ETI#sa9X-O%N)0STM$!RNG=^nzhc!+c)n~QDw*jnqN&-$M1hxVaNJGi|fSpq`X80M{Rvj-Y-4- zXV;Nkz9&mDyZjm{ywW@ohP|fpShP4}S!ChuZcXzYxt*SFppLV1fh4)RsqssF_VDTg zC0cFE#2fHVCcZ?ov?QUql3j8q7bM5Rrg{C4gOrf8#U`8N9r83Vjc zb)w7dP}K>2;wk2XyvS9`g?NHqj4cl{>;4OLt$0g+gS0qfe8f!8a4WY6b3LK8>2iT< zp0!;fQ^2`oyF|1st)9m(jafrk1D;rK`$5D&2ucn@GOLY*=NXM4lAmHUx zvv7=}0J-Wm+Bo`Jboo)VvBnj}sk@&g#JM|D1B5f$vE}Aiz!^-I)|%crM{=)wubW{# z!(=vx>e#}WS(1U2hBVLOn8O)ck_k5j>BN0~xZR(zlbt^xPq>LUFNnQ~Vu@ub^c=Dl zy0-AywZPBqd>Qc~GKET2GNo#>iVVJ080*h839ni) zsobpoRz86XzQh-hPPk$vEx)~~O?}NWBLWI`6Gy(_GT%8bqgG+bOcwxDWQ#mmPNCys z*=*77_-+$c*>gCc+B(U$hJESxzP=3be|%rQ&X2{b`w|@9md_mE40Ckj6!Y25UIH7FOMsWs+PJD9_tM^B)axs7rt zK9p^z?#s zvCb}7n>$vHJh@K$9I;(h8skQz2=0|e5s5F-2{~8f%tEt71S9h}{aAs%vDKYYXW;Hi zF~$D#MSI@li1vtNrB|>L&J)UCauF9vS4MM zRvSP>?YvdWx>L)o1AQkqo8GmlM;E%BxsSN><~FYet;D*ww0ZtQJ^saEh^#Nv9X0=Qq-td)Z8E zH1?Hyr`B3V%5%ooI!3&|t(TuzWt%yz;BZPk=%jEm@8<3`EUh!nf@xUUWSU8-Rfaw9 z*8VPrWQ#u=s&=r+w6ap0WR`eRQrpn_$e~<6+v6A5Xq2zBY))#N{)eeGD6NZ?BxO6) z8t2#RS;TtIyGn6Q7muz9LFuW@nd>OvV*%00BrA;{4Ax{?T38M^Qnl z?1K%}rfaghYT;u$s&cFBTTs*TwY=j&BU!(-%1wD%F8T4r3tu+JAfsHp& zVp?y4A^2uv61c1zfI8qm@w4HUX;DT#%2R(I4lvcmw#S`)EhJ8_^L#(rAi-rEM-3yE z*JYu!>O^#}bHbtJ@ZnZ`%?7l&2sxiIYY~e7WU&C=mseDA{B4h$`|((!7NUsP1F^X3 zU&#Pob8C?kFW4cwE2T&+r0UfO^Jz1IyZ^lLo!8jBEDLG1yswo26v<~31v8WX^m;({RJA?~Rbj+!kFnkVqO=x4ZT$SL zKS|ivir;0;c~Ey4H`t2r@SiJ0EyQ3i%SOCy5A*(3e43+zr~g(I2jFem(?Wv%PY7hU zi+F{S^}FV4I_^Z`+V(b|b|qLV6l-OM_95It&-whem;ESLJ98y{Bc=NTz!&Gq-AIZe zYh9)ej}X>TblHNcr&vYa77IU9U5c&wuKQ|*vB&oPrTCV>>g;)jM3zFTO15>__(&Rl zIsVVVN2ooVG7O+tQ^u)t)!M0stWTG+I-%eOxzuA;b;AvD;W+}k&7AU@Q$Ju;@x*Hc zd029VMSa>iypNpY$3;>j6qU5RJ?QRkPrk{qsdT?9yDMuP_NaaolpgmRf5K*MohH~d z;LI?D>nv*t_i#fwH#g!q>DmsMwT0#KUH$-b+8FZR#Tz@N6$0Q_*)sr~@`sbLqM(yXuT0Q@JK z)$|Vb9Ma)l82N?Pw-xqZBs~K9`xMz#s2M}onpWBo-g^J`ob8d}zK(s}>VOYMH22?E zQTe|%FuD3+T*#NM^+Wj(z7NVrZZ?lll1+MjCDen`$$w!Xav29o%~M%=%*bUWM%L*% znyQuhs}<-uE+#y%O3~V67N-!f3(+bzE)s!!S7>-zj(X*2$C1st(4)Q%ViT`f#CV;w z6su&i$CW5uc%>4X&ARaWA(S$TU308Lwk+r*h>cvVW9HnCJWJe_&-5I>LtH+D)ZD?D3K)N)%cXP66>e|U5>)Hu)Fb(G zlH9sL{Vb2^eT^<}IC?kpF7zrG34DZORwV>`w^T)6VUE@>2-z$}Kvr+E)O@R_)zBBq z7&r?t^?#K^NLk5-WZOqI=scv9Im1kbY$-#&SXU_LB;3vyJ5X(S;ST~oquq)^|MW8k z5&K9*~HS#?tAY;?4j9v8A{2IZoSOD zG~X)R*58KTTHJQ-G4DHOyvbVJ@4@X$?Njer{m{bL#@xo;#@@!?M%xa=ej4TvyN)G@ zA_%t?yePe;-*;AVP_b2sU(j`})Uj#(r0T8^QQ^)+RLQRFP)S~^hSIgE@KAZIq^hiN z+F`?6sjaA~D91jX9TG{en5#Dsw|aLOx1E?04d1UMQ<167*p)AVk*P3MnXb;bmJjj9 z*?WnsNKvV7q73g2qMnwZ+15(KC~qkJLy`hsJT@;eQd z$dUM-IPzvHmL_tl`UFD*OC!=u1G|#vD^?wxY#$8y8?rL*iF<7SW8nm3(DjCRw>;({>LD6FOj&p@K0n@yxRA(*7=?I&$W_F2 zPa^nO_^8;IK8hx~Dy+)jrDIGq1Q25#Z5?|NaS?tI>GgY+fOBOQn1%S-Ryt?(vHtlt z_9WFw=ju*`FP=PD4|Wtar<}*_C+L^9@HMR0t1FcZETGi-h=wQ17xo!-YtJIebzjUb zw-3%l;mOze9iPN$)zYVe+Dvt(JWH*;&cWg^BBD9j3TkAs@I_bcs&+%Yz1@L&U>(|} zc0;AT)IskM`mi?XvSLHe-A?~wBDqCqDteGhLjxn8xIMn0VLJJq$m4K8JaVEq z-X(q}-ZpSbppv*anHnlR`J4(Q;*tDL{7JmNbfIpd|$lz~6>zz`Ke2tSh6 zkBJgs0%_DEYLBh--NwMxms=vk4-%C{DiS%SMBj=ievGtV2lk9)hufyFVrBoW%CQ0 z=*M}A)qC^%TB534ra;wRKpP1kI_MGBJ0z|exJU1RQa8QZ@mTpr~;3IKtRqY{Kq?osJ$$PI~k z6!R(NBK*Zsdpze4r_fnVk$^woR@AoObk>=3KXYM8;3XE6zYGp3>&W2VA+SNlP*VK%fwPdBpl_Rpnk4R z8mdQyUmA)rg&Vf65aZAOrr;$(3=!9%jKN#{O52E3iBw78qOnu%E?Aa1B*i5F)`ZM#3cp!}-e*q?OKxH>X zcGMNNHE6vvYe0ukt&N@s6CK>7 zdR*if7;;D%58rZgDis5Y&BA7n|fyg zK3v4{?9kt;b9(1%$-0ky-j}FR(>w7k-&j98Bz2-|@LM|8xO5J!&@v{C??LfC&D&e< zcQk|%(mpwQeoh(pRze@(ulWSKm&GODis~ZAtK>A5-r!}`>9Ui> z)9qtdOlD2>u}t$|S2q39+y9Da&4q7B>{ZeRdi&{&rxoYma`*nVMvdV9{YCdH&oqmF z3dzzzUkmJ%V+?Y!(nH?GzjWR|WWaiwk76Grhi8on9yf7{{yC^YfGw6k@L1V-^AVfuo!QhJ+S zt4_N8OZRFgf$wT-Dg5mspGSa+|z^{+r{NCG%`$pRm``i{Su4vdNbav<* zQroRIP}vc9Ca3N1lQ7yyuNYfrs9)fBX!t_4M*r~X(aBvw0${&t5^4pm$1@eDE}_0v ze@_;z$N_)ueAZe8YPO^o{{{%pZ7P_}_lM zL-Y`ZO)BleVonpNMleHns~y@p{x#}qqVA)j_>+}R&0Nv4ixOPq3`d`R24ka6mmP>Y ztu>){{?Q+Vn?G(8Heq&@I+**2I~aFhHc6)SAV-ViW)B z0k9*)>x8-FsIa7h?R6-%0%axIsS|Kn`afC*Fp0y6QxHZJMC4bfFG3YyVo2j+75LI| zOCRRqC3EeNMX9_wRKar4P5p1nI1O@Qxbfl63k0WrHxA)4>d}DHp;1#9^(a<>jdVX2 z$g6nzT09`5lajFU+J$p`KSl{d|9QTj8|?!<;%2TYC<0QA+Y zE5!2&(hq|9|6nQi$4H^!RQU*s779cT^8sR5Z z4C`2`EYU7nk?NEn(IBNuNg_hos;~uNozUU;EYaNuT|C$qIB&0Mn;KGNaEf~Xl-i#s zJ&kbE>7bkzclEoLK=LDym@F|gwpbFRk(4SST~DBPr-e*0+_9FzI@GqH(4f0Vlu9mM zE~pPXl8rRB2Y;swrDfEoXl>HsqS?&oH|`mA=yMoj(&v zwEeN&umRO$)edks*J!FzU#7vPwo;KOR&7>+e7#gnW(8_exL1=d|1TT$#$%c`)r}6S zflF_wM(yj^O`b+Iic^G2m19Sm*i`}V?kD{Zi_BN zPJ=82Q1jUDxEiicYI(HpoDGrz*UF;RWTnBHv&Bm*zIsvBpwcVC%KEX7D|6hm)!l|r zYjN3>E7*Fyv0tafyRW+?uw}4CVBLO)aAL517LV9WS_UOZ5c)hU_fTTJn>$C)>6uuo>gV<|O=L_=)Kq@j>#5N(cH4+p}872s+U= z^pJ(v<`JJ~?B|ag!gs$aqo=|buS@ca(u)@s&kN$&fmy^S z#`hraKkGw2OBwzLrzHelp*o%)gcU&iMU; zLYVrP!aj-HC4kh4y8;2Zi8+P~`j{ba+Fm`n+gt+IR%{lTQH66aX0wE<;#DX{c2sxN zM=ZB++kVJ?%6{H{&3>8jtZk?5q^*k9McYx@;xoo#w8{waY)U8_ax`JT-e|Mj&Xl7u zi*v@yEWUA3W4Fp_+5Gyjo_AI(y>Whf>H66SfTeaA8zw2%h2nQpW#XG2a|vX z-*;K5T7UKpfEN3z#8*E%S)w)%K{L zFCSFi&%CmLJB@D}J$csaiOZg~^m~!-F7I5`-fXpiT0pNgjJJ1>&o=Tl@M#kPjU z2K!m(PUlG{&FBxsF;@gHlt-o>%Jbl)*e98HQ*Xx}_w4|{xL9{JV6&D1t#IkiOr7jQ z;|tz5<~598uj80L!S+q+6Rl^VL9a#pOVY8lcSJ9?K1k0D`zG_l<>Az)wjD@t7fAoq z`q~etW&7GW>-+kwf%xkA37!8@=li>BzT?|%Lg^*+WAMxI>;B8WjV+9H!~IL@i@L_J zi~HO8Tjo2;+G1Mii~Gy-@3H@PJZ%IYsP{szISeeohbj-=7^(rH-9O-;eI896u{>JY zunU~IyzD=CaWJz!f?v>v9nwv^{!hkD5Y_}z4pbHP&|Gnc3IEs+@w-C$z$QY$A^Z!E z+WW%$DDM?_;G;$VGS$aIih>(CY|Y2uo(SmuPWxAhllDs*s%FAoWG7_G4dbcMU(0`e zhu$0?%W?~0qjeDq9}1nYz^{#{?vFZLg9EAo!TQ0!SP|HYs){_WUt9cX7&J+|J)aZ~ zbtLNe8`GLQuo5iFAEv#j!oRW}jl&uxKl-wQ9PAQQA=pePBMvV?Xf~FMi?{P_Ph&YxK8zFjGw3TPV3LYB?LJWKV z?fv8&#}y}r#f9yPt(pDGW@CE=w6g71bgRBUJ{#eNWOc@jBX{nI17wR~BOBEa^xYp` zbW_DQV$&V5FV(2}l1{Troyj^fPl{Qul3@FsuKxu_87J6{Yjsh2< zHTXHGlVJwt8typ+DFPN(BNRyqAD#dSslN;hoEAuWaKnHnLqGe$$s_gBHMM)o5EV11 z7Ii$#y?ef!$#4{W3veUzBKM+C_x<;ZJR-Gg(oSmsfUPUTq^*Ktp~z;!hRi9)*-6=2 z-Y37MyrB$LsD?Snc4=N=S&=MOC6hr*gT0(dGN_%{IF5uXI>K1;88jtRU*h7fy}CHJ zxVdOVW63q^^b2z$-#G8IjAz7}t3FuH02SmEau+rwVLLGAxTT35!~%MkoYiDIr^qbYHO1U!^~@BSo;zwe;+@t>xj6Ekmv;o*_a6;T2TqS> zhEgCEW?S>6;%b4h=K}BnJ&Rr<_-3qnfSy&J1+UUq-Li^Tf&0Rv!=ojNaH_)eIqRJb zbAcvI8`Gw!yBKqoCbkMN^l3*0$}{-Qh_}MsS=!Z7VWYVxbFn7wH5A_8yr_6#_|Z9G zIT1PGF~Xxf#pWX3w6QFNke)~|D{S{88Y1r3KyWm+vb zk;X{D8wqCTk4Q#6#SDKZ;xoy6i;If8Ow6R5rLx^U;XsDw^(}2$0krWcZbNwO%MIL2 zoAav;>*OcIt z;*?R^b4C#w;uN&W@Wasv!{Yh~b(1PGRV0IWO4C?(qkMIiW%PBFbIY=*%g9G?f+#%O z_LPJE75jyM))Z{G+!)*hIDnjRod}(9o!HH&>7lEkt6}^h{NWU%%IYGO)r{4Q&5U); zSE zYH~lh<{S$=3p}fA^K9$xHIG5pq4@=mNr$pWmvfz+_i7|93@tTH(4Mt6ni>QkmTTYr zcEBzCS+t9%CowZtZS;Ikd*gTO$mXp+50T68{_W=N%*)oxmz!P}zYmEIjnBO1F=cda zOs)-GMC=It5WV2^r2M_67Zo3EE-4>QZX|FNV^6AP?`8kRL(rh5MLIn&JW5!VXtaSi z9#AfWN-Bwh7Cs>?Q^1!mmG0QUfBX0LS7GW9lPG1lidW>k=mCBx zBUEm#m(s29^*@+Q0MuHNO}fo$y!*qoO*;n^fcl?}HFe51V!n4>Q){xwn*d+*(3(q= zN_r_#p-uAsw?;H70 zQCp5NrdLK#t~Lg*9UVFyz5d9CS9*MwR?zn-2AAH<(0^c3) z9fU*n2Xmsp7j)t{kJOf7j*+f0CRr?{iE>o3Jrg~nPf7B)*&k^Fr4d|XD6DwS5wCQ6 zM&EI-P?#cb-ph08)B>ejtRp1UceL&)Gc;&4J>w_JE%~ng3pFo^+vBNYG(82cXwE!L zg(xOHd2RU*w1wK2ls&B}zdZn&?`T*4%XP#xLtunf#5I$i;)co;qi;=`+6RuK;H}Uw zQaa&qEE>N-PsL069_`UX3r0(K-$$#>_GZgWmV&JkI`hH=5;gx64K;s3mA+5aM^Hn^ zYk7mJ2C%Dmk&06_f01&!O3^|AN~5_!0?Xt+nb8DVtL!7HA@mdP5F;scRgMBWiF^f= zq^E$`2z8h_!LHHiApD9{CB#{rWyoLLRo*r2LUB!TUFTbtr8HCjp7dSeHRdDRo~Lch zU;7d7kbbFDLjhV1JSF+mc#3|wc)(b#E$U7Bf_-m(NO*{CEIjR;Utb-6kSirHz?lE0 z`2@~0E%YY&5M8c5urG+s>xvV|5J-7ae&U?&TfCm4oNmifi+^W6WLl7(ZcFuMtETg1 z^5v>#e*sSUCH7TFEAB01mtu2X_1BOV`BlD^<3%v%WkODQys#w54}?+^^%E(!$5Pda zmY!*Dw-I~RRF0DPrxkdEa)A`vg{LX}g|`Zched}?hgBwv4*d=aWf)Mjsl&*V%@Z?J zhUpE`TBfv)DeeY!4cH(%zaDx;?{7wff7@yT=i7!`L>77b8p8QsypPxMHfNy4+PQ0d zZ+_1VUYTF-Wbb4KE47V!kh z6Eag0Q-pk|Y1wI04~o09Qsi`Hsb#21ujSs=*JKsrR5MkjU>DBj&&Hq^&K6waiM;NL zIPNRc^+*W#$KyS%-Acpk6|sIw*NW`hrCa^at8sx#H|6>k3}%8It9$ML6MWJgn*sXmws%O8Kn7hOletYVO@M zW67BIN((0S>Xdg?_Ql}-MAifkC0M3=MSzt3<`DCxL}tN{%sa0;9Jt%{-#6<|s6|0u zY1YJtar5J1gyrH0MP?_@6vlB};@8BuyZNlQTG)$25T~4b#6Afk`X}IbfAtCJ<2Z^g z4;G3NyTtjVo)S{W2n60}??&V9`ZT)*bjkDr9(?Zf{-VWw!*+aw-H{a`B_NB79Mt~p z7W~3iWPJTk5Z_Cvw)0jaLDQw6$?v(GgnuQb4dcxi>KiWpzvTJf4lhca1m`iDPN zl_gQG3TtJ?IKe=p_fOZ@4n0V@*fcq?nIED*jQqk$$P(LN+XTRmn2(U})7%GmEP5<^ z40=p@Yn$m$a$6{XgTdCKLf;wOr;6`PgG?GpqVByA}vM2gy)w9b;A zB;Skq%JsOwPt%+fxoESKMT_C)MNS)>WHJ&;idQeG=d)PoX~m`HjmB!VP*dQgmY>k1 zVo0|YjVYUz)u{-V)X!+SB4H9X_kz0#r55K+SB*{snt=0}LcTE8TE<%7+9rWq!u*ug z-_fV-So4m`>y2eC{Bq5okQJBfJm5=!m zxqt~&qWu(OF5FAS#O1J;U5XXSOh|0Y0M+xq9i7%fdaC(jE~eXc2?M_ zBAJmuBm;BrVn2N$JNdrjIb_%*GTwfh>GR0Mf04-JmmS}P{gCR;#rZ;=pjSPbKp68Dts--)95HL+J4=j)oGoPcwJR9zoQ9bF6{zdW(f^%J zt9I9#VH&7;yoGjD4acGP!Il^0d=8mO#OeBB8<(Lcn?JAG2)3bz)Td!O1(;%4f0}jV zh0Fq!Xl0qXlaDda3(4We-p_0KGcU?P#CDSa)fd_=H?|siU)(|Wk@}uN_iHY9EC;JL zo>%Mg`t&~FCQo=cE#8&1vTGAb(T!@WR!VHYj)z*;;t}vx@3h%-BpRaapm?39oe;ez zS@UV@NBeUAZMU{gvh{5dKI>hmJ=s=be?pygc0=3s`A`%CpTN$Md62GJ36hUDE{Qo7 zY)|v=ITD{L)nlGR94|Q*VxG{BSLbBcFb*|b9>6$&vNqfs%xBy)ZKW5Dh4MLo(RUYR z?z1{tyB0hf@(E#%syi?4nHGNDN!fLbwWPP7=0c+uH;EFyM;ul;Qq7GI^UhTICVfIFJ9XlqeJQtNhh( zy?IGO@ah2YZq_P3nG^#2;hQpN_Gbvaj@s6UoOyVmAK2X=gA>=X7uVpLcHQ_N@Dr#R zPVBFZ0~0`p+A?dm%CB$eILTe69<_4o`-`7DRJkNR`PJ``Pm3Z6TBIw$^GvtQ>NLueDav0+n~8!) z2!FfoOrS=Q&z2OcmK7O-YnKb!V88iB;q)!H$8^Z%#kyn3Y?7H>IU-|IkS$dTGDPqQT! zednxC@01OMsQKg3q1T>2uE?0e9ab5# z(K&}+eAdpr>8Vg_|M+{UGzl+|Yo%8H+b;4vVq6Y`bS73HGb zbCc(jjXiuH?{SWpy!X#ppIMOEtK>Wnft6L92WwsS0xkVuxy9&M<`GH4?HZB+tX+G^8yn6`mG0!pY zevVYz)2~m0fHjFQ7#{Y+M=|qQd&oa$ly8FW2nlMZ(+{Rbp6-s_kZl9MMq%1AeyziR zFb%x5O@b;Ty9@yEM*o_=Dc5Og$?l%y{dgXj%hua!ey!{1svPhJdmQoZ-*|!{ssA+#_|?PbCLU(`JwZEA-~#=B6)Tne?kR28D0fa(+U%@biC8^-^owqpv>6ClEcRn;_={ zlJp9lPnzpVn-08LzI#`>pWSjRFTQ)X-@Q2)E6iVKc38+(};&z2)fgzUF2JNh!o?7zFc@ZtA<`}B^! z*XvblTsMPsJujO1aRvFn1AdcV72jaNEg;Y6^_j)F zoYzv z$aU-a`9f|(rNjA1#r?XydF3>ma)%f)nmPa5IO6`BgbmlUo;g=@`F;uxdYg;5ulTS1 zA%hsMY0CX?4!92#^`E+-Y()L-7)`{PNYU9dT01i0ni(4oF&epF@7q&M$LPOfIgtW^ zC7x>F=nJEN>e6yj{DvP|f6|nINc9=L>A{k}&>r3`Xhv}UWBDk-B5$Q()T4YQ`wY93 z!O{0C|I}f|Ci@M)RR5$I@%*0&&3`7w|C#Vh{b!;HPSvepaclg4Vgne8CPFRjuZm77 z;|}3GDSU>KAcHB`e}M0RflVwRv z*I2*YK7*R};91VUj@w>-*;UC`OdL~6LRStK5gQqtGrv4i`we(mr9_-|SZy1c?4LOO{fS4E9NGDRkQRFt z@S0$uE_c^}1Fcy5=P}uy;?vYrxP(!jy;)!IjH)XQz((+q!t78NAwJK@T4Ot^oQI1} zi!+u$BX)-KtdY#EdSSOs7ij^H=0mtIJyHi03-TWEbtCuPd%xLGccPt#f8p+q8Su)k zCx}dw$K{ug%*p;=Zi;IvlGp$jRzfY0rmHG=5s!) zAgtJ_rN7jL21(wA8JQ}=ke}5UbYSW5q4t^BQbxe%SX4y>k_aX0_r_( zLRvAK-d2UMJ*XPpa57r!p-~>jf|&MOcD2TvLYk*mIDFC5W9O@_2mkadx*!%ye7p1u z-<0Wdo;1ux=i^XcM#Zaa(%PK4{^KLDsNSy>45%bjjS3S!vDL2 z(n;yWv}v6sdaz%Qn3xOr)v70F*Xv!`)Fop`j-U5fBfvR)W7_<>VRcgrJqpVvSW>S^ z$AOa>Dx_5fh2GcdjIo=W@^S;#wV2y_)4gdo@poT;>D&&#;1N=N1?#JLwl(kAe#<8& z2U!2D_(lf++A8GcZvL6_Ly>Rgbbc@YoQ=-Qe5u|+^0SRGebHCiV%xox>G9Yv(f{kx zBB*#;q6@?1f~xyZi?C&mo~X!z0mXe7=fhomW{~+|1^{+MxEk7$vanp}K_oBLrG_Ts zx*7-GQa@{yADQoLHqTp_v8=+fDFs-H!h1;Ayh9eL z#j;`b+bT21?sI3utm@Pjxvx6Zmk_JtN#Vii$!9Xqwpg+bsetOG_Xts}WWS>)^o6VL z8ei9P^Mw1v2CES+5yUiNYko z@~QWCA*hE%AXcczIpn&}^@iVNVtxDEvcMd-YfY{j8`1dUjgX(SO^>Cw)|^ZWQP+b# z`XQ<1$kO`#Jp86zd`9G`&d`pQwg+NnNpnC0k(c1V6srH1!r}jhO>mFy+!XER-d!0Wtf{<&qmwUp}b-Df{N{cVA7sm3; z@Eod>@uqHKhZ(=~`i)lJVa;5(k@YQbuZCRB_qlJFg!lADIH!^J($CnStKyR!(K{!% z=q6T`IqDw(1t&S^(d0sk2gDP+S&>+|B<-{LY~e2pBe6JNiA=$1J91A(b?6XvwBgypG`GY zaLp{=Wl+8N-6vx74$d?mnh|8F9qo&oBAYc`*=I;fn%i9DSe^9|GZK^iK5vFx0U!!4 za_5UF#|S~GUTGwe{K&k>vP#uvWz?RPqc7b#&Tt#Fu$1H`U9fBCf=8jIo>2$$dVaPK zzYou`kG^$+v__E!Tci)77m>v^p=zQAJv5QlU$q{>Gq@u&gXDO(LP~Z1m*r2BfPVzs zhBkbKal;e`O4NF!pDjBJixZ{G{~=H!+q^C!n%eXr8FXOtZbHw*j}-{O-Qp+O!JEkn-wOWA)8 zgf<9y)xqL)!VRoUaPb;DlbRR2~Va$a@+DqxmX&6pOP7K8^}1-11*Z&>+})=_h{ ztYh?kjUx^xr-eI)Z=E6OooVTv@Ia?N=E*p{5MuyIDx)tqgKz8`l2wnQQ!J4?%SsWh zT~L81I1jdTC^Mc1!-M{bXa05Y*N-=d6QdK(5|&$S6)l*_c|#SRZPJ&>S?0$J{f^l; z%1t%TOVmxJlt5Bfqd}h=aqL{x@g1l`lvjhB9J?NQmi%Re8iZxIY_uxmFHrxxWMLyJ z&dB_^;$(jEb|Ckho+N?m{HWqvTOwb|{Al(=Jt~fip%5kU7WWE8b(M-!W%0hAEY=p6 z$n!r79T80pF>2`97DSu>LjkT%_>>W!XT=(4q?`@}Cfm)b9KNQx8i^OK%I6*XXxW7p zF=yZOB1#Y+q%UnTd4s<)a799qS!mIMzl2ZTEMo`DIK@8Sm6_WJ;0Q{qKi4phxldM` z-m?#j4yo@{wX8!)Lr;c(c>q>GslV9&((^7z*wUgp^+{;aFy1ix&ofqa@fFIBBA!@n zc#N9-)XJ)k3Hk$-$ZdkhqobyE^2n)O$+;Ghad%AQHrA{4nQbe}TEkqO++6P;gjG$o zlhfJ2d}yIV50eT_$43==$!QTQPa1tNmg_Q6syBLkAQhqci0dU!2iDMc6Gl zchQJ)%TM@%L-dFfhcPd~O6Mln$lewdVOk#y3JvdnO}psj+y{imfATf!3k^3;BG5rszui41GSe+D>&~bs}m#;*k0l zsCuC-u{rJ|*_5s9L|zJHrAiM!m}23pX5ylr7JbZrw#e(8CM(v#<6V+fnaaDyV#Vb} zqACT?O17gq>Cu#p$?8qI#s^18aHORg<&XN<*wH!FK`vD7TL<5w1GV;pqE77(C$C&N zJN1^laIy4ENVd<`3wP<$?Tz6%itSve#2i3Q<_-RLo3s&#&N3|`2hZhQy{iNwRaE?N zU-*a6F?Yk23%382 zc5f6I##9KUjK?0KUh5p*#0p}XRroF#Z&&>BUz% zat)n#vOk`_#}8^{CtrB!u!~fAs;Z|pFBX-_A2%CV_e|K9HLzys3`1RM5u` zhcC1o?9mGFrJC4Zolm&c879?>%au%xs?3oXbG6P7Cdf~VrB|>IAo?X%D`<4tp#i+7 zt1wL@g-SFw;2`I~O}yOg-!sBCH$rtyl#i9%a8^^IS<;ICxyS&@l_y*>VMMZI;@ zL!{jM`XpQ8*_Qna)JRB?E_~W^+KF9EAaZ2)<}xrp(Hq6=$@u~rpogYwEq!6>&R%K! z@|EJCpYIG`X$1EqV~W8#Wqy&2|IT48;5Iu`Yaib08Pfy4zHvN5^>ib_BcfP@CNF1d z-P2_854fvxI&`Sb{1$oUz|FMKXy1TgtC>0D^$N6WyO=-l*4dF@n-&<5V2e6b-VnL|CBD4OvW$zW_E;la_~}IBAjg4j6EorV ziMjf<;qajJx%+SF8bQ>DiMB^BGLaT~I&~NLc~h&h=0uu#8IT(baP8+zof7~(-xM9a zMnOuNk=%4y))t1-Z@X-))Bx_ni3f zCGYCTc`{{KD-M-{wkydC28ol@;-2Zfczh9TiIU5l{M75mjFO)25*qkLaUAd(;Uo2g z=DkC|w6tvn#Mh^6v011}nDhS}VSBJ1&dJXp2;e%1z&l8}G>*z#MNT$2mREV^F<8wD zup3h*OZ@z%6iFPnHBRK!Gj7rkoefxeQe9s4)M#g`kFbbc)5Ku`7(4aNXmotXH!g8! zRnx2`j&Wz{(KL9PVXR5a?P{Bz)uXJ3PVrejiX2%z>3hd>rfpSInjz4Z+)QQ6vvCov zd~mXv*{!|l&SgiEa|Vw6I`g5#@!&2EtiFI!oA1njIAP_r$whr__79qE$$0%r^}OXQ}gPSF7L7M9>ZXu!(v>rQxYq9pn|-2ssF)F%`x- za;9t}`q1U@RY ztBi|-Ylnvovg*gEoZk0LK1lWc4 zB}w9nTvGIX|9>&OvX zw`4KX;_^nRY&EO?WE^K(p#JXe1fhQP{`as0w z`!hC?jND*W>EHZpUzz@S=CdA1Osd=82Zk4O<7ZlB+d2>CkYcI<|*?w7I9x*F--v9-f~`015tacwad zH)-yojBo|!n=Rgxe^L|ZnBm#3yAg5hD3mjdw~1}7Ywc_G>mjC|jPr)2v%D*>rHj{i zKewulp{&AF!5DoYedHQ0S$U*;^lPi%c4BrlhbW$*wMIc!(?b*V9T)FV1}%MNJ0=o7In|tt~LI(?g-zE6&fmPXJmY#$Pjl9j|e` zYs2Ne%fH__{k#L%mxH$p@5c>_=OPSpHi@ize9IaZb8-%eF3eAh!~EMfEw&y>$wp#k z%`YMi9YhlONExo99Dbf2wT(KzU z90##4RE_hs73@t>BJ49{dS|Oc+A@(FfXvDT`-09Yt?(MlC*=V0_5E?V9aM#LsM@&p z``-%r)Q@`3P{A-=j1hcHjRS;s%fy4WoVbX`?~a!uKzZK$m&T7^$%R6ytYpoF^VKXk zmojNPZYJ)ucJ}jieRT$D3*$9pBMDQA-q#F64qmKO!%nL`+aS+B`JVBG9&>OujPf>g zTQ~Si8Wyn4wmSv>nJTqdo_CT{4^o)f$z9zfyjN8BKW*IgCVj_kJwpaH!ENqu`BJOIs6yr z)%x@zuE@I zdDd~c-La{rET@P9e{ehxVD(X6OBsF%RC$BjcnRy5!GO*tJn~ zLNZr%6+7>ZWcF2Y5-as>?-VxnF*?+Mba;4 zXmV#?=NP3v4cn+%kZ&r5hK|{u7tcKy@o;w3RHxqQcjMrg&(e?+-tE~NlKJ@;0i+tW zO~fYv?~|Q5KsTHpG{^lj-sy>|_ow4MnCb}9qp)8H^BdcRL^V$x z);Wl>E~>V&uXHPst0CvBAfvPitN8nx^FFVDePunAE#8TZqNCZGmSY|D(OpxFEP6!AksSDQ`7Bz`{g7il z$>oVEqH7*UnQu%)4v|Yup*6nr*{8Xi5*udA`a(O8{diFayagPo#73S=bQ5dKF52Lw zdZF##Gn55FXFWf?IoD#Wk~(|~9~VTIwHdVwiA*aD%t*5-MP0A&rOP~_9Lx1<+GT+p zRM#$$ozz_0lpgrlTzRzH%AhL4mOQ1?#3Q)rky*I7i+~WtvoG+s-!DCt__`4YVjGnr z4f&Pq;&0y<_M6OCgwvQ2R~pYjM_3EucF|bFm%=4ArB^=9l5^cl$_ge7gs_Kxu#Gj-B)(gY$qFgGssy7J|*1JXFjED95Fd#ARrDu3&VBTevLjc=YlS0gGGFwk^d~Vo>FbDnJ zlZe!P3nJir_HDDtv$eRss8xg`(49NYK7p7iDpO%zr+}-F zDGO6!ey9LaU=AX$jzubkgAFROCttmpCUZ&k+$$j$e^4*Mmyh{}(M{|t)Emx$>)&38 z@6Z>1VPCK}xV(3P=fE5!UV=Bg6W7^$Fb_VzZ?X^eU0=v=YV(mbqpEHWCtP>Kd2+Ju z#v7m^(kHAE)M$SmG04|Ax37>cQ7 z_hB9SkaIoYeDN2n;yEz9C~qDo=lSEZ_^Xs@!kZGa=XoH5Z<>o-$ZiA=9A`NOkSJvb zo7@caxN<+5dE3Cqj}Pv0PjZhje?HFHR$^P`5vQ}5qAPKlcJw#RhaEj_bj3X?J6FGZJ^0Isu9-8jWlQjmmINoi9r=ktPw*(R9gScs;;49xUL*&tzm*#N zp11D4o1f{kK1+o%P=%5N5XyS-F%S|vcf*L=#@8*X}3d+`m z_s6Cy_VETD)aSrx6)3x7;U+>?<(6? zcrbdFU1%GA6R(3CyG7BJ8vp%ItT)Uj!~@b8f9Qv!x*I?G7E&+t2Y!=O71WUBEN%y< z$4H?W56k@`gB(JkDJH8gg-3|sJ{SR#+sdg1H8_`A zkgl_Fh0*um$~OZ`Bdc+X>EA^EC^^(uVFiY)9(b`FJfpFgIr8;)W6#{?d9&&V^XE@kLEIZ{TPSVP3Ug%Lm~J7WgOE!};ue z-Z7z^3+x3QY7g`_F*q*~gL>?g$IJW9bz$$pe4O@KJ@m~AMA{!~>U`R}IyrpAIG77Q zfBW0ZHdFzO{8Ac^i2`5jw^Bl(t2>)3O~`K8SDu6WyvF~=ZFMMs_bCG3bJ&iCYt)du zhiO@DiYZs)$QSApi-o!w;7WY(FBkWuA=PnpGFUGEo^s72p(RK7+u|WN1US=gbi5P$ z5BTe3bG9>{d>u2>Cd@rH%~di>Y37ywORSRv>H9^6?h_j%*VD&3;1fvwd7yC7+IHdi z6{*ed<1f|Q^SDrJTin|=jIt?F?>h?QYp-ATdE2ahaBcBe?Onmh{ENE1G!L-M_Iv8odRhny;%9(uGayR*pf-$9;@9i-CMn!y*B?R=IZg# z{ZFh1R0E#hE!}%~J$Cgp&aED>II&GGq}ArI?^Yhm{O2P2KSld}@jcQp*>M?9^~=-i zwAcGb>VJUV<~PC@4`Ry-pg?zalV26iGERs z5I<&<#lOAD42YkLYkhv@_yDd)uP;PGZs0+HhTBh`o;=sDbN4q8$Kz_AZ@AJoA~}#y z{u}$)=lz-EaZa4+kt6}Th`5~T(h436tNENHhsDDSE1v9+95yfETq0q;W2kVl5AFA# z@YEpTWKn5Oq7ojxvD&{1%<_g(`-KU@V*bKuqM|0@k?nsBuu;-yGVinnq?HNDDkO!g zlEs(lchyoUR)`r(?d?eI1hg)hESKPiNcaq@J1|rs*EY+$~02l1e5&>t;3d+8|j$cqDRwN z>Yw7eRpI7(Xjbuhm{xdJ)N@`G%Mu0M)>T>uPBcXE8&$_W>QrmY^EAtaP@g zzRK1yH|Jp+Ngqb>T=lPlGEq5EwCFggqp(I+hB$_qM(gR5I2S1IEF)ggcoBGsr6ev? z+k8xFM#c8I%SFX*tKu$Q2{YqvXmegPIe4{bwI~2g0J;SVAUVgE3*vsyW^bO`n`Fjv zY~6)vo_AlTfOXIPR{bOArO9!i3ef`DnW#>g6D{|w6Av~FF?(P=(c8-WwHRpD& z<`xXw|6x8xg|40$xllJkE`dqKgARMIF{qc4kGVETJ2 zZkYCBB5Y{CnXxPd4Ze z^Ir8(!O;8=_pQ32vthPynK5Gc7@r%toWqhjH6b=TX-hcWw2Lr9f-x3Rn~kxhp=*(h zp&m&J2L(VjaznrV_}^ZbJj5S^z09$&6SmXm@uBo0i4;P(5@wBtf&64HVuCRs94k6|b^L2w0Gt0Qycw-ij6Bp_RuVBbRxTz&HcmAsv27yRD=srGD_$?b zi||d~!O$V1D?L7oIKG~ZlYf=cSN<#SVDBXDBjIE+L1~gKRZNuxF45`_c_L1M)c*d` zbvzgodn*}xWc7Mt?g%;Q^XO4z@nAw|L1fV<>8nz~bRv!+WxchalSPs2oq7X_JC!D} zM#i0ziBd8Nkh7es{6e{UY*9H|c`(U1P?=i8LbZ6UXiWq??1(g6W}Gu#o7?e|dg6ay%C$R`sHK`e^Xn#-iJ)Sj~_maIwfddT5do4}|uI zn0|DPOiUzYNUYSf_^700q*GY76ul^=NOef8NVRymgsr5d#HHk^L{(&T%ol0MtQfI0 zLgY=j!rDRp>|s;ZX<>7B^YFUH%e7f~b!_(p%S8#{>zmzp@Y}VAaD5wVYMXW*@Qd5M zIA(p&mC2LiF6b^PwX}g}$wRrb@gw`tbMZu>P^&2glR7o%pSc~56vlvI`-u@q-8e8dQN?pOfBF&uQ^&df2Kw2SHpL!Ro8 zr9IJjTs@ZatoYQG%+aVlVsYp&TD@30|MyKHUQaol z%%mmB{aZ*QiB4+aFguc_vbd`A-)a)wdeKGCScBX|zY}Ky-FDIB_=7L-pnGFboRYYB z4^pxusVb6!Q_)hYJeN+UsOjZdaN9@Kqv=b-;=Pw5yU3~YU%2+a+LT40x30$<28D^QD%B^wBpT%^21RqxV*5Xfm+N33J>k<;Y01imkG6kv zuDt8w7O5qj+Q#FFe>(qJB-1^MpE|~y_$Br8QwsSi`Xph+e_fkX8Wl%)iUTa1-QJG;jm;@O?>wd_FV&=EK-yhA_1F=7fn4zK^~; zes}#IB^Aa8Sf{w?7{c4DuW?ifMKRXwcce^Wjyh;hx=>884w*y^YStL74`GHn;4K@{ zMlwd(M~l?M*Z&&+Jz@C!*|X=E$NjJDv$UldS@Zhh@rTc`>kRMnh9i*onFs$8V{ zQD)+UuUlPi59GIUUztODI}ewNW0y6fqu9L1o-uqNk`n$iEVX5jz)ZVk4 zr0SSmb?cYs1-%$ldALSbgK^(&YV;WS*lvolLQ~sn8i^a4VdKz^YLkGcPrici6acZq z5Ec!v=5c<^iRvB{JswHF%!;!KYrtNtJdOMGIOU^l6QkdvJmb67ytS=5Rrc;=aOF9F zSME{jxp%WkRjwkAfs3rW>E3Al^}N4TdwZ=8xn0eO-lJ!9J*juZtD(XBt%F&f;|V>| zeXU!iVQ8zXqPlUfi#GbEKsxn@ z?_4k3GU!}GdWA)qaE>0UX0;;)Tn;!s8-Dw9?i=5rbe01g!t<5n10Y{m5tTP=BS$%t zC{^!n-eD7^;l%SeZ-`a%!+~yx&xYQ*Ry=SEX=Bu~&kL6qav*86$@f7M(DqiwA08)) zqljhA5>a5wC%>NT;#L0Cw<14lU04teQ-!cn2XJB|J4#*Z5v2vjOE$+CY$KN|zQa_R zAx{m8Z*JuLZBVH;v2fV_yWIZkNo@}guOFW}z)@7wpQDrmV+I-dxX*{eL9{y8vKw{O z0f4^Fu9KrBwwhuY=*?5PJlQX@ybEb{6UiH;87iV>$dArR|I8g9X+MfId2Zm7>LF`q z6F*6{j4F0cM6&^xqy3Y$hW_&0a3j*l4y>McjlPk6vLdJVd!jaH-F5i7Ube!>aeu_P zzmYVjcdR)zw{k4Homche`{Ed0JNodM$kn(z9#+!*=`hzUc`h~Mw|RYNG(0uIfBGPj zFZW2EWGi7~)fwPg(OK#h}K;ohI*loZ*H5l;JHh4>#MIo)_G_Ero$t{AA|>a%1Te z+HRM9)?50%@9*v8PyYMPh9Wcx_F?vlmi4t~*6Aoet~xYpXc>LAEE~x8J^{O*xDe$1 zSa#@H&=~zDb_g3kTKn+qkl+KvA`EVRO8b@St1eWL#6jWyg*%vV)O@Y2n@o1Dcq8p2 z-A^G%YXDUFis}Y7gDD4=MfKJ_<_SD4S!Q*bR$?{z@#^->A^=-jhOr{D7tcn&~Z7J~G_ zBNWF0FUuKC3Dt~4hR|vnYS2V$ik58Ukb{QLWD}eElImhbD|VG=<*H@gTQ%6Z|6^K|y3z7MfpjP%MpTbo$J=-x(9nm?CnXqe zfO-d`Ja@h>^ye+{*E;4F>K5+SpDj_BAlJR@8`FU{`4x#5k%1&rsWjOaEn3Rmc9{i5 z>+u#;+NCE6t&S8^$Ca%<%ZA02;#C{Y7N9wzR?j7S6a2cvx|U|irT6-~rm7*w?fqJ5 zqAQuNj^{#-nO>#$NY6}-RpsUPT8~a;-F01WDb|zD)AmA-{4en5V+|M zO!{d5?b#AVxL_MKFoU~LrKwr$(CZQHhO?|0j_ZQHhO+xC3t-2bk1=dPL6-ASHK zQb|8mol14{+yBwpM)XYTm6dGmwb+mNzE}QOZ<^n5-{`MBUe~^gUsZQ%4>z3b90G;B3!OFQ{2J;>5-ESz!_ zMEp_TrQQ&_>yx?ZZ(^01MF}4xqY)fNIEHJa_(|Tad_8x4`u-H~6~|p3eJ1l6uScs4 z*_mK*isdR=R5L}!Fb$cXiqG=6%S*u;9(ApA{!5SSWRb2nr&{PEg70+beQ#aY`bKVmQFoqm39nN zvlW^3Y#6{~#+Ws27~L|yWra<%J+*sI+OW@M=$f^8f{MSTvqv#4@PDVb&G`9_<7g~d z@(Ik0T~W;-I!|YdOf;8hQr0y#JZW60{Y$Z>ZGx&sRZCE{@?4eC6g2KaZDm8dYhjCU ztC?9vv(9P}zH4#Q>Z<8k1tfO0EplDwvdXEK)5cXRb0uW+qmMZnd{9~KG|^?9)m}3` zvVPI>ot3<@v%#tPS{1e)$7&f}=%Tbf74@|7NrBxOtT6QEU}oEe9^=hMo`puoN=T2% zaX)B}a)hjdLJyl7?5)SE^C8bI-2r8>piqsR>I-N=_@MX{DsYp zbs1a3)nC&aV}A6`9D0BqV{b0;5bG^5{l$dh;7UyB@JLNdx zsOmZ4ID0Qp6Ef|pa-O@GB-cu5SX#HeW`)BDiz#|Xynx(X5(BrP+`lFCP^s}Ktft2> zv3+ocyvpT}TIG*MTG;h%en)s99A3r)zKJC!@{`MAD+2ZoQE84_72O&zZD@_*t4<*Z z|BHsJMZx}c6eG7};8fNQT0r#Yt*&V=BBc?EY?PcN1Jc&<{C1qEvp9+>!2F5!L(2|x zXLRs$?eX(;_06Yr(CaJRddB{wbpYSxr1?TV`e>B0Iita@KhLl^ zicNSe##s#g{GYq2puU%y9+O>dH;U9+RLquF#)3Tz#*a1rrRf0JjyVql9x#7*!alI^ zbUMgVVD@3tC!I30vOs4o__bF_#sQC^S^9?8309Zh$u&zFC%5{|QWa3!Gmd$kCV<-g zC({g3(FTpu8UmxVEIh;@^w-z-#i>~R#2)(fqVx33DVj6$?LUs&qqEZ&tvcqm4DNn8 zk1og8o>M^QyGkCWKLtbi=k9o)7S3};}R`5>ZL|-@9Jz- zRi=Xu{5mvsAlg8+fpkUx1o|HEifwHY zG9qd4@*lis1Lq;&QsY$BS7{wlETnR5!^OR34xN?vM`AjFw6No_#$w$l$8wGJEi>VY zuw(Tm$xvE$9veouR==i2Ny!?=;@2$0ea?8Ro#_!e4aYI%$!_) zY1a07>iDWVyrBN!%@>4Ne{{R2%A|58#tG9 zp}gqAuY_R<#nj#^IG2+)hkg7M2=Cr1XrH&Y?Yfe>O!g5j<8htAg>?$;6i^2a739v( z%-<;ZTM#@GJioKstKvZOLB_nphmHy*?S9U?j3DYlTX;$F6yWjd&doOkBl>3O<<~)M zuSIpgcv%`m-7W-swL3`cmD?|}H~Ba4jebJ%xohtsRn~H7B$U}B`#$5YxSw;s?4Ww~ zeMmg3=ijZshx?6v*5bpVKssD6D5UubJ>&Xv*0`VN6y7!NeS$97`}g@tKI;~x1fVLmmbM6k}>fiM9Z8q#440b%S(}IECtMe^F7nrrrpTH{IN-PpuY4ZK`2@LB!Ma-}_bgk~Z+JubW0&9B-kbmVFhFtRVL0)^Nk@Fhr%nHCs0Y7=uJS?_vZoQpP*=DpUqo+yq;|7rubxMG?%`U>T|*Q>5E=h z&M@cn`Kx}Oa-ap=?s}xHx77Nl|MX_$?!4x|_czafjQe6`MMDb+VWLyXls= zZ-3mRaTOkk%fFfkvL(F5VkX>aD{wXHszyERy0%32j;-PchrRhh!Oz#K;p6vnir&ky zH`SbPBfs77g^uHIvC!+2?dPY`qyD1%)E0Q;_@V6B>I+y{rywz`vYOXWVSd$xPI3wOCKYk>Y#bL(3V zK7i;j?Yrm;mhGAcPQLSBBy?I=uq*in>j1s&xaSPtiQf@6fcsxOH18kzUQI6fp34#^ ztQ8;H`DWm}6P&9f-}|4g%F04ck*{&t2*eOfc7~4lG^9J+3Dyx=xZYSpW^}*?K(1m zn)M6k!4`jBKQjx)x^JglOd0ngR0EClGM)N{!+*Hwm&m`xepU*AECcSeq1wE$F6@D- zeN-A~XY7H)1rhfePvjAQD>u)qSEby&q5*F1oRaYW`0_Pgo`wYna z=?%jL4DC~J0Lp!Ff9LE2P0APPk#Ah|g{-SO;64ZO5x7<1r^T$#(EZ!KiXD{uFb~16 z{|Ku;66G;Sdk`qSSN%r40dWHI3>2!D+Bg)@><4!-je6MlFWYQPyHtNr76Hj4D&B$1 z?587`)NqY2kg2#W&py| z&p8^DG;pzRA^}W!KPGfh5Ut>5fk^>?S%CV?EF@a67!MAT5<}iCVMDww;_p0J%|bckgq3}aX_semnBelx{Zl!y$oNcKLP!h@u%1i48j{NdyW1wE%06J z80?z%C)N*s`|z&q?tJJI*%t`n3+29TO)T?(Au*cfvqOyU#%U-*BO)Q>&4ZP}^6G;9 zsVDBO>)=rZdmY<@d0f_Tgd5jQqBY16Y9V`*pz}A zfI8aQ3~>|Hb)*eb5CIH3g?=4`Etqz4uXNHqAjhDslDszuVNWs}piD6A5%fR9Y%l(< z+UGh4{cqD)>AvS<0hdwKV2=%w3hO38&}**H8*Z+}Niath(ieF$qLz_jHLFp9*LO0s zTZ#2m?RMR@*#K^R<~MU^+2&%YN%m^nZm&jqs7hon>Y&5@X349D`>M3E3v^v)7wp$C zcZf&5wMj)gHOvS5wz3)Pkux1qm?^E#+ zk{Kc&evTHRvVGNlKWKPqAm|Stz!&?|vKg z))E>`OG~w8dzhoy_*IgY;7|1Py?r{y$|6EtPsx!V%*>8^J~ECPIa`~HdQu-*q102T zvsrNV%l`HGACIM|eFW^K)5|ogMk~;a3g~KeZFKY|&lvkagELn1KaS%|?Bo6N`LW_L zV@33YnGRdRbwf9UU?t^fGMLt-#tAi8NFDRB3gNB8MZKg7N<_!Cw&tp}y)~F@jZU3< z{fz6J3n(@)$sq3vh68#wII4CkTo;&KFB#uu2gtpjH$k8K04v1z7|V?p5P84i5wxk+ z&>cxaxfl4qw=^C;b;?T=d|OUI$z@RY(5>UAp6n4@;N_FW-NiSvNlMH8=M%{t*usUq zOS>P>^sNiNW2@isjnaMDcT$tIrpxa|?tg0AiuAg^vKzm4bZ_k(Okdi&z_)dHk9uLZ z{^uKcDKfxI^|h@~FsG`B|=8T(ULM-NO86 zI7jU_Rr{<4l!QL-(L}%u*pxsZbIJp1c%6fqSLA*gP@HoYIjAS#RaIkt6P(+qa>$Vg zA50_$vTc#xMsr!YjjG_Sn1KusgTC$Lk@h{8fI(01d9jI?^Pi|~m77uP! z8BdN}))~+_z<+M;lQaCxvvx^eHB(R<%qJI`qjadENayXDt7>0-@=K$4Whtyt@4aU- z^3`hrZqs0=YkUvgb!wD{18hvSAcrcuFY@dzz?Xt{N`!y7LHJ%=w3lau_^_}>!)BZL zBtuZUudOL;qqinlso$BGMnpvhuTW8H}Xq+g79g6AzD4S z1!SN4+HN!a8UXOv@92LwmM1@V{ZCU*E*{#vzTt03n)<1-hwq5XxC4$v@)*Kfg}Ltd z---!u7I=v0W3WBpB>^teF)-^k^)M(NbPTVK>SiX z{m}d9fODK>Jizw5dHePP5*)S(#vS5JwSIYZ%TB+IeY4v3g6}h802&)0$<$d^&9BO+ z6<247e2`3%EAmA=N+!z}`Y5HME#9`Y}Mzqk4>zif~s zhuQQjgHRRdC%*5AKv(}|TM6VTb&5!|QD%&^7aw4Af1bg?%Dhd$}^nXn^nmD34gw6I>Y~{eA1=q+^8N-LlHhyM1Z(L(Saj8$_^F77OvTmHMoCXO=?6`G@3oiKnFm1%2q z5h$gZLHxCOd7_+75<--u%J#)SQW#jYlPzC`UEE{;3dF!fl=R7QCujK5Wqf@0l`(ID zH3DnI4U<4#jpS-|Jg{D>c22DMp-;_4{gLUN`h=vpK`@tWhU7nKigs!6qq_2^kU}QA zz|ScOLb+0z`>kjfJ0PFRSQ>Q!T>@qz@=9z@t7*CKj9qen=xk+LoET@-TbuJ(#(#{| z@*MTio5IwaqFvn{cz1g}W|+$*JFBr^?np0TPtP@)n_H|i`4N0AOGu!8?B-#MddP~t zk0pU|kQuy;wr}(;AT~`~oBf4pGGp_82XFFlYQak&J8hUX&y^=`)X!G`0{z+;UIkle ziIQO6^6cjtB9eVx@bCBFHeUwKHKm_pBDn)vQd+e~eHg|RV|&1gGBYoSWG5btxiCy1 zi)Qj2mY}RFz)tlGOAu^* z#TBE{cse5*i5$)7w}x*z!}dVsH^s+`;LaWNwBV+zWxt4!VC2KU*W%kx`qh0^Sk5zr zmUCt2H-N@fDMFODBfA?p)4Vj|8s>CPvwf{XOgbX?tbU@xb4+f;@Q<-fW_2%To^`;R zb>NeCup7@b8cv18zZwNm2T&}_y-*ah(qs-hn>3u^=BZ3`m8;kwmCAGay+*bitkyc& zHOZEzzUvj|+i~(eqQP3yJ9Cb7k)$(6RF57;T(vitRHeHh8uQV~rfzV4CC~mq&i*j^ zwNav;12J#G(O%f{d)1$99>R%HT>aoX;$DAZ_@QU;OI2qP=!4mCiN(zdx-smAN3S%#lK&-?(UO)q>JM6P%3X2t4g{nWq$09a$J%N=hATI zGsr45OVtTnq52`Kdj{64uy{fmqf&mS{J>d3%ROQFa?7MusUp{HRvyz-?{|Uzx)-Tg zCyHtO;p;$}09in$zs)_~p*fxO58|aX^NqQKSU3f|T#2!S_2I%A#`XCXeMj7VP+YZ4 zrRMzd6p78fp@0AO>(8L9z3TK~Zai(n*c-OynMLi&Oz`Q2KIU*|k~Ou&t79Lh_8o7I zxq#7L^?du0c@pLFe*7?|J=n+#N9n0Vn?v{h)qdO=&c(_7K~&8c(NBHM$?DGYoid)e z)V%fgu&Hf@F`rZX(H9%xey9U4W?V^xTM(yOxnqfeLRRvYq1u(K;jXY3m*p-o69?t4 z&?SGlEEdaADNBlUQHqkgoTEJ9ykwKi;jCaFZ#hY>%vMQE!g5+hN{Vz;qL!;1mh|PQ z03%1;FTTuL_D;gGm)ePmv{Rart!$V4VJq1tOQ|i^%36j?fU;G}iuu$~ij$>kkc4Hc z=q+_wD?Y?};VhoaTvk_}v{F)*t*lTKm!&F~ykRNHBzsvbhJqfGsw|S!Whn_KYnd-6 zAbOcge#}teE}G3y;YivvQ(BRs%8-O*uFxZMohmlUP@zovG*QZsu}Y+5WvUPs!$qv% zB~u+M-c47*QpPe?(v_*)cNi{CO;bfv49DnaS+P@$48`At>XP0ZAmvW?=>R+5*d zvXq3St;j8LX(~2CL;Y6_m#WgAxT&u6B6X=NSwdamNV-x}T${4om`J6j)F(xyPB}yM zvFrd+ER?dGpLnS(LR6McBYv;YZ>cSA3YT$dyPXzRZ|7DJHcPUPSI1T^y9KOqWPd{20HClV~NZGgCYmzl^3-DWoJXQ45f5uf!{H2_`v0P=QLK z8kEe3kP=u-7Ow)F=}S%-;?ksGo%=)b!}4i;QCHGOM;YBr;)#Bwjrm9XDISkT{zv)4 z;Olv<^{L9^2CGDVL@K0>brWtJwc)3`$dy3WCv3W^_MRcc>&wQhdH(L!G>aeg#8>op zE&OW8f23d37yHZgN!r*(Wo!D0ca=Y5&M&JK@tn|Em_p+l)^nIbmh#luJDF>b?sw?> zSwXYnvHXVdfs6MADyCPaKVbYvtL>e`TVaqn%~ev}1Z#=-L-aW!NjHjpk=6)0no(

7CZl=_0>F!l38mw?K9dWFbhB5Y7%dpqx2vC#C<+dEV_Oo zIRcI57U>+Gt8!-g;jDWDkfvwU9em%a#ysxGW$??gMPnv14~mv)dd6MlpJv`YrI2O* zL7T%fkexjsEj0UIf+*WC{H6R!w-O$NUP*-hXg~XA+gm_xVe{p;!O%o}1F?P87kubf)?2PjvnA)IXt98|^92Fg(*P@|bf>F3Lu_ zbsv2{(KpQCeL3g;sF(OnzL9>qp8x(af6%XMGs3U&{^ibt`v2}-{6%mOFCCukmHeS8 zD>g}__{CX*U$rf!S+XtNG0?^J2>bzQUm1NOi}?xt@m+<#cW&@3gqhD>JnhcpB9+Yj zYAySWelTMx{heL!%N>G+EDv3w|QjV~cCKHvgEJ|=@hf8oK=PgPgCX})OiB1-#m9QUhhG_)0wbIi9;y=5+9gB0Qwu~fKKLGoHo=u3J)RMcv9>$G zQOvdc!VFiWdBCpY5;|gK#FvazB=kcX9=`QA#2;ZveFKME^Pc$b@5En&`oVfYy%QWB z`cV4u3+;k();5C9rXk%0Ofh*AB#?J?m97e+7wNM8%wpBJ?Y*L-@0~Vozlz}M)o?rw1n+u_be*OzG z8)K|5Ccga@{SS}^@bH+&k+fMtb3n4U-vV*12(3-%*P7r~D!h$g3`3z8d?HF9J0pB8 zu(8Y!=9?6uZ12#RKnXd$Bcg1;A0!)g*fK8uCDHbgcAtu1G-X^^hg19(xHsl;JR=k< zA`g%e2zeh;)2X=+?koQwT3rxQ)zX>4OVu-$1s#W2c>`EPw#8m3_DSyqy?-l!IgrDA zHNH0ptAbI&z8A0K~V(__m5a^tDYOyS@U$9_yBl zQhVV@LO-}fiSY`#9h%q=V!~`cMnXCFs9+3ry9^;ti0Fpuv?y|OVK$4?tOqQrV81u` zaWCG0qCFDPxd)-VfdBxh@i!6PH*ssi*-CX&nmnNi@Mdjp5&l zn1v!YY^r_&dD7!DVv+8M1T#Yy>$bL{p|i_##Xrr`BDYI%foMZmG~xc=a|}x=v9!o9 zvd(Vn;DvG{9umKF9PDQK`D2V<#;1^M?veN*ta+XFFvLM5&e<{sb38G_&XmWA5yxUaL7N6UnC6clh4GHQW2BrSWvZ(}uF)A}tq1ZzFe3E)^7W_BE z(rhx$(~3w=iNvII{g6(bt`i<43-D+e)K z)FbgU>usv#TX;#ikIqkGm{on;CzTPe$~XZ0z}Eq*l8KIgyUWMfgScX_Xz~fn>Z?XL z3cFFs)S=l6?ZAcO+$re`R&X3NDM7i51~ID7`9Ur$*QCwp^G1ts&te#yt%!Ob$b$r| zC;S8aA!t?UWHr>QE-!HVT;n_Cl$W&yYbwWu6Rgs+h}$j8U4lWF#YcW6ZXn?sHO3`N z$3M#Jp19n|FIM9V)>x;#M6{@{cvRK#uejs(V1Hm7Vx|9nl^T>6>&2?lm9b8f|8>+I z;gv_Ssw5GEbLVl4Is?5@1!AI)aYP*9nc{FG%eI2OvQ>7g2en2P)oj+64lhjEp0~8- z#v80y2hT(pQQ?n8 z#~#%>;#iwvpDN<`BGw6bbW8=^$d2d0yut&ua>b@b6#X2X*Re&HbC`)>3$-5fD&Y{b z>4D$?COcgVY}WtT3}wr92R?_k15|_E8hwAc-LnUr#BW2(sq;3|i%XoqC8v5E*5M@9 zV||&YcEf)wGtGS1Y<;*BUk-bK83)yBkL)#rcArWW^Qj~wt+_*tE!qho%36L$p|lAaBiA#u3p}3NPYGuYxRR^lYMaot zID?;0oXeM;e;hT~Uz`7TrXl@>k{S)D2k%L()Q&R7ypfRP?4gd>z{ky z$<`}fQpE0R$F6#o1UN|j@yt|_15(Ubdip4triIEsGX7I|iZv7f9T+oD7Vsv}2=T6)=rq((v((4<-&{ujyFhVhUGATHz$=F|(G zQ<4VU@%))d+)Bg~N_Ztk}HCl7!ggb&^a?2$p=`2uc| zIio`nWE*rE^cU*g8tTb-v#%Z(8{S(L+6U&{df&O99pRKt&(}kQ@<{=&En$x57wdRs zpLG9ez#r~QI*l%H1G{Pjo6=-0sdq{SdT||&s1Bs=L5{y7nQ_0(BIG#`;qlG z5QjN{UxZr*lrQwT>p#y~Jk+=7qy9xpBC%wEow7E`=A7|MXdHC2@&gw4^rg#=*o%G# zrUT5)jA7aZ-`a^yoF{{X4|*MhBTO-|740J@{nAMIf$%Mv4^3!|Xof=~56n!s0b2ua z+z-YFIqV@ku8fnY7WsyO{N~ivV5;nYeW+jJWrfsX!mVQCX{bY_r*ZiFjuZ0j_F58Ms?l|=AL&TcUB4f5z6 zU^-uD>M=_B_8=u?xjV5wN!uiL#`;XTyG3CQbDP7O4t>N?+z5VxIp!Xl%=^GT!2i#U zycu2)DfCs*VH37;rK|O3Zxh$hAH{h7P ze2QiH7N{NUmqH06u-&4nbr-`DUf>svWT`(c=#01}jqoEtJae{B&V|%t?j!e?YfkoN ztXkH_m@{vE$z!#B@8fOyko9*a-6_(RPZDp4=8J6$7B)3x&3bVV?cr9U;&gRMZ|y@} zpw3z1hN3Oty=uU@m8c=PqbfY%E|hYGj@^M~(i3=cBY?%4Q3{=4Zy=rrejE53jM(gu zQZEaF91tHI59AlGXRa@N=?Ix{01KTxz7%T0Rzp({03N^{SYJ4OX}>6d>3gdG1fz;d ziSCHSHG1g1tv>Awq{)oEE%z5$taps6)QBeKTpH02Y!F@un*SezpaBGu-`rLdmzb;0 z?Y%w-9?&l!_qyafTu3oK0=M=qej*yH5uymaw2Tj?r>!kvLB`cVwJ!-;|zS1Sb>j(}`uP6WA;B1n#UZM8|(? zOaAtO4}dM-yUV@b{NwmH?dUqbN0`8cc|abpK3I3c5V`opngSJS;#R&dAP>MWA5@VG zwAck&^djv)m_Md?@eARHxPWGSwV?GDu%mD2@38u(>!_SF;cn*Q-;##P_K#VVn11Sh z&$=r%Im3{94c~^FFbGdp;=L1;q0LG{{OI^QW0*A}7@^L0tTU|;&zPb46dNuQYmONa zdZ7h1fM}pTuy4G3&ruJ61NFkau!iCn(dp6x0rW*lV0myefGNdO=l^ti6etf^2M#Bk zF1f!4Vn)cC5sSZ$`;K!DwSUxa9+1)>*dG?Z30)7+Udnvjo}wOf7C1(D0o4nr0UuGl zV;~_1#P|rSgK7lFHsYvi{S5Sr^$uo6ohQLU>Lu{#ErB)A7I-J9Gi)`KLKDZBC=wtV zj}rU_l7=QQJD&%{F60FMX+%HC3B~(Gx5hprgwYCSx62=1;iI4Ro&*uGD)$AoI0iNA z4VhRyVDW)*@l8&m%dlrFu?yyp6i)56rZavf^oUDvrze%z1+=V~IvlzxG1TINm6wo; z;eXi8fxda;0$2yI7q;j$rGNDa@$MVF+m^6KWx)?L*%JeJ9nE@zTixLgoI51L7`P{( z%{#gN3HS->y9w2m)()wKhh5jw3x5004WYTDozE9#T>Vou8|WacpI>mcFK*^QgXE)V z-&|=O>pRz&vWk;Om;6zNC)}lzAk;lS2YefdXG)!V65hiU-FF1SZ!MSt#Zu^*%VmMO zC)Ve(Ytvf2j<@HP8M)IlWkVH$d1{)-uf?;4!6xqJps$;7*>3Mfj9SM__p<@+E?y(; z`DtQ}grEN=MGu-k%{}>t`J-&e{<^=-1wz?hvK{x2WsY7ccMkfkZj!=_HF0n2;42U= zPd3d%E=p}wZ)T!Zx@E7g2$%a)dh6l%FViiX_)x0ThzgKY{h|g&;UC3NisPh;X>Fs3 zW{HhTD%om(#kh3UdY#F)#=2m8j%zKn&KUHVB%0@TNZ5%Ii zaOH?4?=P-h;W%Vx70Wcs8+aRj8ieJL8*m$-V;x=*x3ISGwl1y-)zG=|tR3ADw9%^~ zY@=6@vyN=sS~+1=7C+Y;*C*G(jI=4&UgT)4jk7rT8WbC(W^)NWxpt9DP8k`+yq zICX+kV zCa@GQhX<3HR-{U&Z$hz9owN&k;aZ+8jXp$qbBJdhG1I((9Gy+!m9_!i?nP~XL~lx? zHeu1Vom81lw6HF+osv&S4o!Neaz5t&S^7-Nq*^61qi)7CuTq{RQ|>UC!(49dCvy;+ z_)?w~O!!3Q1WvTaE|F(AElK`Y9gWHQu;i+2~&rG}OwO*{Da0w_dC_e6GXcxyrRm#Mzd#4@RJM7`YCs zOt!GL-WIxnHh;)DS0{>BBRj#3p&>zYcQjnC;}|KDBWUAf#V+LDRL9AZxeY&XQX3zI zvyQlNsx~MN!;N0%h&Cu0eMx##uwgKhN)dh{LUV33d~3{^OcrRcDb2=dGU7MblrgMQ ziaiZYxMr_6q)X4<4jzD3{f^CL#63r&4m$Up`8lSvtz;qO+|<14hgkY&r%?a9my=%E za#vqA{@YHAw3O2~4{#>dTvIYHX3qS=b8FA0X?SK%{8iepd3>6nmwA-#qnGq@QC7PCp zVpnEYW{yd&ZLVz?HZcvii0s;^YN72TUejJOFfF;QxoB-#bDDDzhO1WAE$uU2J6^iU z8unWDk#$;q&3=?pHEq>5hi+Hwt8$KEuKl00$>yn9H-yr{Y2!@;@Yym65cxth7;!z6P&b3Tk4 zPrULe>4y~$%i$Hf>fLqWVLf$T`lzVity}}{#b1>yOG?f(f9HMoGlyV|X=XP@ij=94 zy;K_nm&0lc1a473hxHs}a^Xvd*%qoQo7iq@G$UpInanwbZ?fMc!6tDk1#znY4Py%RC5>k%=OXvxL)<8%QCFqd^Q!+~uWr&)>Dsh(q zha`na9Dq^-^!OrrI%xAEstHQE&FSpul?|(_R7J2@PN!aGenf>r8!6ogf`FAWF5{1E0;A)4b`t zKrQv}B+g1{X*srTSshU}pR#kKyHP zciFq1&=d58`l0qyl9y8tC$vO;EOl5uqIfsjPgKq>Zk|UI@<2s9%DdOsN!O2)Ph>|; zL~&kxUk0xO-IT{s6Y@jso4h9MChW&Crporim^dZmeD1 z(cOXXIN9if8cH^yql+S6=or#aG5FtVN;OLC_xg}3Vv*dT<2gSWdOtWn=AJjup+#4R zI-Rkzx>-GaL*pLmr$6n7*{qWX+VD&eFoN?4*zhf3o>CpJ@- z1bx(HgjjPMNlpA`3bTktW6oMm=UNecCpeLKgqWO^C38=l4?2w#&ozW)q?-bc6DQdR z@6QvCvHH#Y^AH;e1yYg3}ajA3n=6vFRf440tZ~E;N%H^Uf*9vZK zZia4m*N6A#*MS?shMZ(d^bpU3Hz-mK?$9IaX4fGr7{s?oL|o6(PnYOW>QcF4LM|*H z4MI_=LuJpOqz5rJ(i965c?Z;d;{Kf9Fb9S5uaWkrqMq=KGBOCz!&VJBuiiDyeOKaN z9T(01RYgBqQJa!8>S2{9mp-m3T6Js{=q%dQtCP)^n@TlmTQxcJOD{UU5G`9l=Y{8s z^GI$Bm*R}e} z<9ous%5+??l#JR4m(p6Ztjs5g9}L>~lgW<3XUcS1IJg)&0BkfKxy{Me_X?AaQYe`l zk^6+2MfZLj^9?djdU^Y4qq?Tife9r$#1}%sXeFZxc z;-=x?J1HbPWXeLok=K%<<{&vCdLo9FoT{c8zu`$gJT1i;X(<{SfC}y?F2Mp@QjQ%; zOw}-PVbHY#CRd_s2VHmIjtCVl(!TXA!YPj8XwTpQKyF;lxfyOGk5M{C8Ctv`B=OftWt( zNDK{Zic%P@Ya&@3IVnuj&88r>Svr0!z!*wzhF%dq9ZqA2=EtTWvpG7x8-UA+P`@E6 zrew{^2rUmaFUQqL+_>ORxOm>zPq)afgjZpXMrX*4vVpO2XfM@KPme=J%RDCE^*7!r z5!1(a!eIkKv%R4|r}bCqhOQ@Lt2tEtWyycjO|1I+aTDuOMZwdA_2*+TwWaGJ;-O-~ z*>s!r?NWoBafiQoJLo(3Lqwe6TKAgd8X5h1*49;z`YJlgbj7!nC%>uWU*?7$A@)ej zJMj6*4Y{(mxZuja{^L+gzb=5UX|k6aTl=+oyEWu$K!|@+>g$TD`-Zxs9!5P7QWx8t zf~#v`|F+6tQc%<@RbA8#jZ%MexA+n~J~=aa(r1*WmdhsHuB46_7)d`n){+o)c>a`Si(<m$#U3 zs&OuI-po6bi^hd+bs~Quv4q2A8J9}u!Zvcfz{Khu?~;6(pG-V6FmK4M-8tWY(quV@ zy@}0b;GRggoNmMx^P?bak@nW?QqYO=w75&(%%^h2OQ2iMHPQ_((Ztg{*(KXK|6f(& z4ZP~V+?U!^x@MY@ZkHQWEd;G&T?$jxycQ;6IwgZT zxFq_&4y5gb&Vu(cr$B>z|G`rS2g}pr{f6m@5Vj(h;tgz?IUGXWe9{pn@pv=sdcr1+ zP6Lh+rioW@Yi3|d^zG$Y$tEgg*^d23H@VD_+|y*}S=%$Amutw`=j#MIjKFJ{tdb{r3C5}f7U>`EYOag#7)rB*8~Ev0`=-j0r?rxFRoP6*-lkO>>(;*1 zZ?gZPZQ6Yt%Rc6Rac(TC>Q$ww0yJi##zuAm$5-7MMMi zDX4U`pC?ug^gqSy_PS|b!u&4!cKY{KW-0N^CBL+<@W1S@@UL)t$p1*>ytH<_duH!) z?{xnx{htOuy*Ia57d}Hu)4IZ$H^1>+N?d!_D9%fpXLrZB8BV{oH`%MxYH#bwPdV0S z#g=aHlAQX=+~}2E^KE;&6ghVaksZ*IOD#K!vh^=~5=p9!@~;n=-sO{3KhIe@w5#dGcY?A8`>1DqurNjDS8OD^7A zC4cEZ7&UKC*PbdtWjAG^cKpWt#4ul7ukMyJ>K9)k-bA5(>wf7%{6_pj1$j-DJE-66 zc0(LJY#(o`EJiGQPJ2{)TspA7K(1aBei4VgR((>5Ew5U&30`%l4m6~*bDrif(w{bu zLrHmQQ)#69V=nPASN-HVqur(Pd8-Fs({OptbPpAsaCiNE(O&M)xK};Tdun&NuSDLI z9ai3KTH}M4cJD(>4i~rT+{!*HvyH)ra9v%vXr^qs0TGIBfx0BOt==2@h;N(fTfQT{uPtu; zj(xoSy>dJPUnSVX!LJ5iW{eBHBY0H3mV0LYx;)PnPny4~6+(Y)2BRyHK7@<%dU*bz zGkw(m^k1JJd)O1PFKJ(5i{}=O$GoO`l6p{gF?Tn1KaS0pa;+oUCcCz~A{}zt!2F8b zquO@6g84RB6ZfRKd&uZ@Zxr!eN9x|TOSLJ?N;4=`mh8bo%oa)6UOZwmh;_{Ho8lyx zqh^c}>|WWy=P}xMyK_hTV@_j;hPr2H3KAT;JiE?~Vj1pGbZ5Y)oeVcI-Tu{I)48D^ zG{|nDWVEiehOWVF5GI(4Ux(js@ZRJO+P^h?g$MY?=+Xqa`FHi5+rc-3N7nlm`6h+0 z3ttl!hWS?U%9v~!UwezteJ0#=2I$VAMwVKCTff7!BzZ`MHxo+Ylj$dZckB3xJUXj@ zZ}i~4zfWcBPs$VVw+y{q;PRR49xA`kUHoSTJni9czu5jl` zZPAweLe4DNtHqrC!8bR!nD?4f%zGXAR+EJPhEsfzF?R>WEzcZ(Pn4WTx}wD^vZm;G zPN^4|QiSp5e#x^=itY7r^D=8XYeKDQgf3*n&7i@1(CF>oNG~LsHwBFwB#j#-&8vgP zbwd5R`;d`8E}AzC&8u(y`jKJ7lwkvTzma^?-ZJOZ=rV(6;V!yS5dbJ?gDgpZ{0sJZf{VD;rwF25I z0sd+}z-m6hYCghh{;fvvphj?^MzEIw?Bpm`auh2CytTr>-)2kG&kgE#^^t}xbCCs+ zPUS;VgLFpJvNzrRKj;s&sK1Xdnr6saqd~F2vn8Ex7RBs5OLY5oEQ#KLmQLu+Hdwz+ zw%D>~XU^!|q`el|28w7dJb!QEORf?7$50>qFm?0>o|*yDd%AaozP}xe$-C(jYTlck zW^oFh-L^uRMQYJUTxz-@3R0Y@gO(dhXJz||0)}su3FGM(>KK~XsfvVe%K{g#?7v;f zGI$Pmbxi5STd8mKumkg<=Qm{Cj_>Iejl;9=G?@1unA)a8;6a|BFp`QhhRv~B?RVX? zh}`V7**R-o>Z4X&&|_U$=1mjiU9iO2ngZH=^3Y~T4?PR~-4uq6Q2-c~fTRI*WCaG{AOov#l;a!}A*4X-`-p)B}}ipKm_DvbC7#QBA+n_s(YT@|VRf z|Mu~Y*%Y~|{7HTp`E6@&P8z6QEBeIx6rj9tf62zG_BVKbUu^vNl=;W!lCEgqwTZzA zF-PTbu|Xf;A-^o|3iK^j=GQK0hyQ|SYz^z7qmYt z_12)jr)zd6k3{_A^XlZX0(UAp1t;-LIVAGbDQe3{UqzE*HLE0c`=5^oEaQpMujI zuq&;fIYVqI<~U{*abwE3hQ4ufoKm-9NWRk|Kbu5i9-MV9iO~7m{FO>4YRZ0N^M1%o zdcp2wF5+0oiD&o^Dd)owesTSXw6G^CEZdG|pot&sl4rhWfoz#Q{QaO*yz5f-gc%d| z#_RA!x3$|}hB=$3S+|W2DHiqTTv1Z?xjSNw;NF|ckMRF10F!LByIrCzUlmt_rfEJo ze?U$x{C*GLK^-qfNz=VDxcBti_dC{%JZVk1!yotxuaS*L9P8U4tsU068>~{8YtsE` z#c7514F$3jQ9jCs%GTe=hHrs*Y8K)<;5dNiRvYu_5DkvEX&&U*{k659#g=_~|Jix# z5mGZV?XBTqDmJ>8C-*QdrKldB78MsDV5v!pnhA@dP!%Pzs36f!LfJlWpKbGsf846T9L3E#(jm@5&5b3N3MrznIejy z)=8k1327`-vPoh1dflnA}6`K@reLvM!0J4<|+K!=XGJ z)V)PT)ay-nmeWpa&)l!2JAyAL$D`qfc=53Z`N`%4YUL<2TM-R%p?{y#H9LhLDVQSk zTL#m>J(>`40N=3@TLx?c%5w$X-*_N-sAsgJS+407x7F`Tt>IKN9l@!G;O7CSiuy^h z1S5b~0pXI^2!7We1~YA&4z6bt!tHhw1-{E7_Td~x12sYs4N^Ej#6sUog!F+IMdfpH z6n^Lkc_3!Sp=Qd1X2W{|#Bkpm>rjiRgIFJg5C^H9Qjmquf_uRU8>8ko49;tSp3l|? zgP;!=LEa$=B)A|4T{CnM&<_oH;pjscQ*b{DxWTeG+|o?XhksBE+6lik$`JV^BS3k8 zK-{xmjwu%74e<~Bl&6awhBzi&gW78ovJdf1=(TeW<3n)N4d`ukO!G8$O8JJ5JhA;l(2Q?K9!JLJb7`P*MAmkMI z(E*?|p#CNYG6zGZ)|#oT$v=+xba3zAHke5$J8p8IbwHVi?;fDQUNNu=V3Xqja}Svhw7CTIN&{U8Q#@fs zBdYFq!nuV`K+UZTFOVQpx{n4hNdY_wU+WXZd;;Iooo9+~IqA=AggaQ0f{5T5E+=?WE9C0`$jmNr{EZl`w|q~JD&j~gy^eL{_{gR$SGd|7lf%H!XNMg8JpL_ z%l`l;;DK6D`~y)F5&S`ZM)bo`8w#lbVERH7_JAE^C$KyL_dE5jCBGlZv(gujTaG&M}HuIM3_H=pZ*Yt0-gtr z4f2l~HL4v18Gr(*BYa2eNeOvP?$E<8wuGP8mVgTxv(OO)VMTNiQWDLKXk^8CZr}h- z#|`WeMsfMVf-}?1N407MDy06-C)R$C^%Bct+dpL^kPy$VEzd&}krbIn=~)SOK>Uxv ze2Bs#ua0y0-#Fy3Hx8)$Xk2nXAmea!<#iNgS|xtR15JofmqE9M(|NFLTX23 zNFo!QQ&~gx!hK1Pe{g{ER4$`9j3=Hb4Mq_pjPc_G{NCB{4iAX!3fcUzaKD%X{4!R0 z<|Khq-@1uAe!oRbGZQ;>bZD=|ezn-4Foyimf>xs#!;L~jfbs+ihNLTzh)2w4OZ1g4 zMUd(SI{fBQa*UO--1HFofSwukRiDrn335bfj&j$DZP+B2ckt+uKHg$uBzE!g?b`28} z;moEOAPMO**-Aq#=UptYF14)ti{MJXo)D#Lf9j^Ap^pM?a8wd&dV-N<@sf=Bq(ZVl z#lb$rCF$Jt2s;Kh35tuH|sA(P8s4f zXSLQe$n9$qMpK(Ijhwpv*=XKfKI-JD`8~%_eV?p?yC+oC1qK^Jzqzf)@xroAT;r)I zx-1`mbpJ$F>7A93gX>4Yy+12Bov^g$ab$5EaOYlzL$}oAjqvMaQ=Jez+DHbx{>-`y zwPe|KE$#KDPcyvzh9rX=xA41lWr{PwXZ>jX(5_KZZBnC!KLx@>OR!ufpOEfQ~+8@-RtPyCK zI6CCl4 z*){`*b)9d`GIBpmp+R3lt}OJ5>+siE#`?1O^@?=myR<}ahbHDW@%$>YcRR7b%)bAU zvEi`6rpTgAOF*koRBV;Z8<4oXSm3Pq8J#%QrajS6DxRrjrxliKTVpBhpZ&&FR+grpaaFW1K{iJk#q462 zj@sJE*T;{cU)oXkZOEjp6!kg0mC5G`R8 z0|jk=bTq>*dPkc<0@;(kq0ft6{uph21CB;+DqH1sh#rL`s3)IxIOO-=_^Wf31ywrI zQmm=}MuV~lhy#+rT@Y}PZ_mYV;#A>HGsk%e1Fj5mJEmO1wYahZiq_8G@L|AVD#A)AFl;cr))S5?&g}Lra%<8FW|y|t+9?cf(y{lL(;lgJ zplNFPMPQ^3yv>8L&bWfmkOUU=9J!s+t%%lHAsp-mt~hxa@JO;b((W~i|JUfP#)2y5 z*(N`kYgIOfK2l1b?f7{Apu0@X zXsn;CPrNcWNlMatM;6zJ*8u1A#dTyf5Ons+BmmzBDImGC-fj_zHmbiQ<%u?B|0sn7 zrYMuzVE}$M4^w>Zk5jy;0mw5@-&a#`z21$c z1HZ+UHO(ZH7XI*|FI3YK;y&MOPt2^c$(IOIhDN>h+w)z7*YfL5q8{Qvs+!nsdtaVt zQ0FDm7;sII-WZnbui%_b|Ck-`yWt_O0(ZBIEv=U1ReWn7^}duL zmVz-(DJvN3KAfw&1~mF%y8fLX4T86!#VEkr7Ah**PgOKa;Y8(@31^jXpoNzxPgexQFcA8S$D(`l)fOxS8zy*#!H728h|yc1>(g`w4F znQgU4K=Z~bsq z&CQvglB@TFEnO#A&|}J*C3xLQ_4eE>W*^_kyZl5k##b}@S#?8usi)hev>8Wsx>pb5 zYR%^h>McITE2=?+w#&wQf)x9p1^Z9k(W~~RQfik;rqHg6GWS_^tT+T@B){r9jXJUZl0lnpH=6QlR1YD@Sa=xcO!#CT+dj>niBUzujWy zKd_Caq)oSwll1#aby2Q$&0W|nt|w`uYE@1m%eIx&v)owYBFt(_{krYqQAoR&KD0H7 z%~UX!_M4j+e-{)~Pcw)Xc6cMmJ#anhV75`7zB+|pw5KKk21=7bZlva<{b}Gy@5_1W z4$)}Y62F-JY=Ds@4a^Fi7?6K1YQp*B?AfZ{Js*a5T!}3U4;n|qZUl4e6Q}t*RNbVF zW9u{GK%6Fy`U8Jm>sT1Dd`Og0SuHj*FQqcQemi@y0I{epv9!FXGPwXZsdlmWeyKKl zJ9{&^v{>|I@o)MhV`&F}^f=@180DZZ&L#4oxi|1+$A8Br9_({mMUKf(U;>rB5l zcg1@X5PX^JqARUVo`0n|rJgnQ!4VwkTl;!=nd`^;509%FDQNSsL+{a%5~&$ zjjEH_-)OiSet_A;_NMP9vSI8Uj(TN3@G$*Qs_tf9ySb%JyZflrQjaPt#PaKO2nni5 zJ_>W11^5z8fUqi&Tr;={4;HLjIZ9RJ7%m_Y+Aefm;8Tk|q_Hq((}LJ1_)PCLk@ph8 zQj|iNwBlajDR~jL^+k>?z8+e#-!{bIPSArpOV;QFe>=0k;cC^VvMAdm{GIf)sBQfm zrxAL~wzoDNZ6dYl)N|mzo{nB*aZUX|F)o0?oFQr)=MQTwmvPUWd?zEG#PfbWB^CcfLa{g`0~iWO$9cxj zi^Z|P@cqsep#|T+Jp=$80Rj#K8#tRH>lb;9sLb&|@z3nHtaP(@?&? z)jPv>IXRo&QIIxqXDX#%ZZUESL%^;~FY| z;)w<=ou=hpeWrwcS&rmVJfA3bm?wUGj4-3se&IQirb_QR=u#Gs>P#@<{JjcU!rl>S ztA`%Gm!ExqqSLJLW8t!H_4Tk9kP)gjua$efbr!IEp(IQYwXD!H!>CZPY-`hF%vA1G zkz%Q>so>4aUh`!Ze-F&M_9dt4H0ibPv7Jead(6@#OJ1b+ipcCdO*j`$RXDn@#(t7f zc4n8=4}Qpbg6ekY@KWD!YgfXngij>rLSa1UH5&>HJeHr$3U;`@6<5b(Yt43GP9c%s zj@GGm(LWJ6;l>qt%G{W53;1#d9()vA3fcx+%u!vjdx`Q4F{Qo?x=yuKdw8~RQvG@^ zV{iP5J$0`>SR2{Nx87kkvSl&#+)Q7RSrfh)&xq{ zxql3Mt(KSYxNsjXU=-!w`>|AO8s)2k0sGU)TN^f6-cT|s7n%D*{oznw)XM0d zrTC7I>k*$guE-Ubf4D7yS6$9P3p;n^@vnD$oq1ZJ3=bXb;Y9d>_V0leh4Sko5X5tk zt~<`QTV%t}!n9r6&uRI)D`erH7OFf$Hp4VU0hx3Kww173xSKArG_X!Hfb%Q1&^OaI z%e8#R@c{$5L06+;T+K-wM_77PRuvhv`RUa=58^O%c@E4z?{R;AC;eV%I00sNlTdPk zOV17_zWt#jQXv*cq(9^hA>IdJ{ZX}kioV+cQA5K$#YR5GY!_pRzz@mzxe4^MkS>#s zII?m0>k!Ohqengsix$FX1UvS&bKEyWii5kn2RdWCqr)+%N6t}#zKDSNe&t@oj(|9iSa*5Q=2lAeNw?&ybl+LUtDhAr7Tm zVfQbnSbrHB?6Eb3gKDcM+xeLmp8HpO<|N5mHMQ5d$yxm!Rm>#?iH046+oc@4#MC_L zz8cX^CE$uBV@&EwxjqvGQt$4bk>%>4lj>gRy9H|-UT5@eO3aQC#RbPXz(-DFtI3}v z*K2CupOVsE4$@lI@aY(J6Nw33dAU0}3i@S#k zYv*)x7+!UNw=fAV)KT}%7WW-VcwyTpa0bUD+PuELiHCjMvUhtgugvx`PRMprq{{13 z`T1aaw>-2Z<&3TA(r$XL+ZI*jj6{+xwGL&iHIi$F_{34SZz78r%>-6pv4GQ z4q_BL0pZ1wn*Y@SuieFk^z~9x%Gd?Yo`oSbAzEfX^@RgAy}t|#9*v&1(e<17^+*%~ zuC3y=?;eH6KA)^fzUAfdwdcEawb{X(vfrV~Wm2Cim8Ta6G>QI01(kvEOG5^jmP9%O zf`P@-CCK*%rh!0LZ|0DE#n)<;)-e$=NOm_-$lla9VvYzLlQbvU-Yd1HZiqehcCvQ6 zZ>r7lc^kx$Bg5F*^q7IuakGc-6nwwl_Uu!7J)t>SC26RzQEeqX!?Ig6^s zb-wI$RpslzIB+(KQKy$*w6!(owkO<1+dW$_g2s-LvhscoZKHq5IMA~_XRF@t)gt^h z@!A}lLejN9?jx7D;N8NA?=!eMSNu9|0!&;y?b%6%`XE*t%BD5+l?SW9ULAwl)Bo{x z6;gb!f!5YH!_>!}K$S3z?s|b{FC#sX`K0~%HdDFA!M>Yy|GId^F_o{-jB9{>rB=@= zx>L91v2k{=f7x6h{2(wlrqlEH*Qd>BNMv@uGnWe4OUIGq@10llmPZWE2UtYj(DxQ8 zV1$4Mh=8v+-Tm7LYwG(uw9S>P9SS+CA{ncrM|d!}&!aWLg8xjEfv4zf{fGChc3p?{ z5$^oj@;LSxod}n8KBljk{HP@7_I+Z^Qcm5OdmMe%V>7lpDYwV7$Y`Xi(XA;F_7%F~ zxT0*f1*=1Z#M!j#nfgL)y-pZV??XW)?qS8e-HUy5}_ssAul&X{O$5liU z3XhgpF*ApLoxq5)jkV-O93WdOHhYLw)A`iH!yoKucrsJb`B&uJK362*?Cp!(rmlC=z8FHR08I_z>pj%3YY_y4MuZ zr_>C=mD14|%WBGwW;*Sqpd0V-FZjIvAu~Yy^N`y zxr+q>BO@~dE7Si$jQ_F0$jrgQ#|I1be^cs_eeDBjki61z|B<@!=9`#7!u-LMWJ;Dn zl9WS(pCl;(A%TRHO-KWoAs}D^E@+|{B$2NwXrptv7~0&r0$+o+S0zPlS9hOVlWJv6 ztFl$5s(q`nR*K@Y(ecN%C`(LsL0{{x3CPMT4@2qv! zuk;8nUyI$? zb2s{x(|IrVHJCfF^V%~Xw*b?*OPHEjE*tP26u!RJXm(q`@(h_i1wg@mzr5#1{k5j! zq|RLh(1RF2#_g{Zw)W#?XAW4#8#|!a<|5Nny*G2C2a@0q3&3@)vG>Kg9|osC3E#;7 zr!hr474O=w8!aEN;Ob)_uy>vNY)PHqFGWM2F&tzBUPayL16yMjv)gIt6#nh>h2Rd2 z=CTe$qmAk>ZlemI_YJQVQ?sM9@9vh_TOXLC98BWxC&f2w4I_7vqv2Nb`mWQ-KzMK4 zU$+ZgmvGQ&*u+F`B2HeAdKcK^P=JEx5)Gmx$u{TZPi}ea@l}D9215P2J#X zwak@;+MJ|1xnN^SAnu``PVOO>ckKj7$A1lW@zR5Jg}f`rYZP>Or#P0A_JWKVR1E3g zn5bf&41i=J)Vb(Hs$?%*52YOvKMk?`=P)Ri1@2RlZm%Xw7vLgg)99`6phW+G*FkU>_`A@x$Lu(tBSz z+3cIYwvqVgYy zJ1W_d3YL`LKN%T(o3F4KT`VB$*9b@!co%B9vL()OG|G@ZPgM6#8TR&S!C@>e{dPP6RZyW+%*-lpYljYNY?4Ns&?p-mk z%hwv)f&BTmR4ZHlU-K+oRLPY3{{|QQDd)#^$|T%zDkd4a?@uH zvd<>v?CFv6miL|O2E0vy8{;-cwMJ~l7njm3$pI)PMsgAVQTIZ`Mk?JZpJI$YXxEPS z8eU?!PR`c{!#*hMz>L%XP3r(*7h2~t>+`!OnOFAFN6(uysn7?Ix@c62r_(P)c8Zc8 zXhRVMRUX7J9iWyDdovH}%K$KC2x}AKy-(VWyD_c8Li(7l8%N`vQK_lsp z{z^aaTOj%KWr(0Q$aVd zdi0Q&&tXD~HJI2xHYBvKwgDcis{ z9w(5Gs!IGPot;xgzsK`kXTy_CSe2v!@B7%ybrhs$4kCLQ{|QE2oDn`@596U5H^^qN ze~m_{Kl7Ikqu^ewOB=DEC2Bse(EjMh0LY^g0b8&7+@e%AGHEmVB@q{0y(^3XHIQr2wbKS zb$jW$)3QbNTaerw8Ox;`Y}Y?-;(r8Yq6J$a=G;W$DwAThjsg)N2#^jU6+)4b2=ODC z#L1nxNX*Th6{irePOz1862rDc^+Nk^FGl~Mi+1ZrT?$Um*BgG2s{p!6oJvLL2tx>L zQA{8Sb*4ajGm9NuPOsm~N5j{omGt8Et*6w=&9V@>^Dhhf!Gu1*M z<6|v;=3{!!#52JfN{-f(fZIzpT;Iu3}fUhXqX_0rmZD2xA=_`>G9`Kivm z!7H#FLm{})8+uM>*#?#ugi|XwSl81WaA32$CJ)%6+bsW@FOPGDuf})xi_`KrdtWbI;Ll)J59WPl=qtH&|tsmzsU-lr$|eB##LB>WL*q z$?VuSp`FgXJaJ_uY*Wq!2{vn9dNxRXBt#uO0t%(Wmcly?@kNa_ zR#~>QTUsKQrSQNQ1*hd=w=Oty@QN4q42&mW<|6E9FIszNPV_ppBh#9Rfzm$A1ijiK z7IepshC}lr-fqJ&9$7iTCXS%#^cXIXir^woh>yv={fmGWNsvSqUmQjxSK;1Rh5FH7 zo_8-S(C^~s(g@ah2g(kt!U;olmsTgKD4`N}5>IH*nouEIi?e220Yk@U&()@o^Pi3V zmucru?nRl><|<1iiy>28h4lubi&(IcW|T`Ych5%G zi!1JN`LE-NIPP+SpWr-_M?%@f*q*|R1pJC9u9E=*se+{diHNdY0&tV!_?3VbeTy6K z1kf$ArCI`E>PMUs!SWF$Cg``wC8$(>!J@bU5{rHjNl`S(7eN)_z+u4{Xb-Q0jEiF% zn{*P)dJtftvBL|&qV^X;RC*;S5gP)MicaJlHe@$GUm8+(G<5#k(YbwG4gdDU;j0KZ zHXt|>37PCv$XiEzY;-<2S7h!AtvDAH;@kkWw;a00gRC`6Fduz_IV9)DR|L+e6z1Wi z=0{PGZx$h|84Bt+U&5&$ZN>=S3Cf_%k7bolZkh;_eQdTI;Uz(kcnT6Y4f?16tyV1F z3z>&hk4b@m%jQ^W|52_KOSSG*u;E806Ag4QX~uqFSY`L$q3@>!iQv`WfVOwTDn z!~;iO!PMl`iZTC&i;Hd2)=^#})DKSn41!U{!2o7L*yY_QXg)Yr*^g0`I58~jBvaa5 z;#|5G(;um@%93-Fs{LL@kX5Ru#`mi-+B7sSC~ES%cTjG|1-FDr3Dca)SlYC@BAPLU zv6!h-MJ#EOLK#z(idf#XxFVV)#qfiDWLunwkNl87{M{9?kL-|{$WL{cKH?n|F%RVd z5|N+$&|LJpIXo`veT;~Y>~KuPM`Rd2+@ml2Ey6=%*jv=6C)_>CLt?l~#3v`b4)s9} z@ebj^4bdLiF)VybberlBEeLoCI2j!a;gojgGjChe>#H3F?}tcAh+H3r6Z4;!y-&&%Z~%NrWV26L^?xnBK%n>)fxqVm8>qDDz6uc5Ue!edT@cm~S4(3XvpZ6d0Pjr=jQ5BiU zUo?$;%WrSs&5C=BgXU|U2Xtj0lhB8jSh+U*0^d&oSnubFaI%yGgfI}ZuJ8l}WM)%b zB3YizBjtg1*gzY+A^qUJUB%rdZnFKBTZH|Wg4-%=7v&yaNWl)$9vz5y$%vj|L$Y?X zDVpwlAzcfF6wRU$G;+N_!U@I6p*!1ZS5L=gw@yxNz~q<1^xJ{HEB?3W*Y4NmA$%l% z@tmIo>U*uw^90QqlUb&HN6aJB8g6Z{<6w1%Ao43Y+~hXE{uaZfb4A zxh)p4^{R>Nnv&h)BtQcmVZeNV1N$Iya@L#FPYY;^XUpzp_U5&gx~*AF(W;(x1?%di z6>7_(Rw#T7eJjbKHCcvzQe&w#AXoLz}_-61@O zfDz22Mju|7mb_Dtu0{Wc9?cvgXoiQkdH6QVW(dYEGR_Tej}RC7U_QPy>J2Xj|G(8b zeSZ)JDNZ3|64B))3Ez9t3VoZbWaoSDWjL^@sI1<1wSSk=S9p@SC`sDA=*r(b~A1SlAJ_ zk=iI->@CbK#4Wrnw5#xzF)d@-26>9lsN(az6=^0IEdWXO^8s=r1L>qY?g{CNrHJqK zjfOg;>~Y{>Zsd;%$xhg3nVoe_Ebo||U|JacETNE%9;VD$sd1Rv<@5J8{Ve!lWx zJ&msnncY7kVp%yAUR6QVLiHc6>yk*vqD@2pL_MjKfuAGTwjnVOyxSn|12YZy;CAc1 z&?N`lRT|0fUria2-uU;ekq-iVd|_$S0dD}8Gg1%_L^%U!;#Ge5C+^Im;^i!Z%~}u}hn2My1Es`hr(nRW6=+ZwaK?CA z{|t_H#qD|c4<9s(k)r0L_u9=y3rjyw-#6Z!8(f#(WfM;4n>V7`{yA$I*?yhpy^FJt z+G$?HQ`&yOj!YK<1t?2gYUR8A%Eo}D!N%EY1qmk7+T23|ogW-WnD?pV^ zgApM6W++g8kfqhHZE4>BwJh_t6dRbAD+@`$+0UsKj6(&>iCtvkYQl`$2R1{Nz3}MS zCEYV4j}+}G&GUI6VL?zmkE7RXuHRgX=PL-%l8rw28#KN*L#|}~S>hC<1QutJzJz>q~*^eqdt#@uU8@g|U@aifTOz5n4}d=4oq+r{vi`&WRl| zBrlpWV1hgM$oX~9Am2&N!X96@lcYMDCcTcrP}?kHYEPz3piDJmLTgeX8|jNk6)Bie zQHz&fj65G$SbEb}T;1gQX{e#Tjae(64(nW7@2sq$a_{6ezbIN;yve~A zJEdvCAlIG|=Zv1xn{T#ydc*rWr{c0CzbnjnKZqy>OTJ+1x^Y;yI|~3Q>Yb>%c#_1t z0Nfqxyb^<|Z9u+r8W{rJOpBgy>MY5FFvUCpvf3{8~oYj5Y4|RnATEwM{s;6ZOZ2!K#8CFfdXA(-yMPo=0H8aBSpr{I`vcLBx3_?G&zL zf;*#j)s96)#ktLlBJSzTd38)xht4XZXlGfyU8U?@IT!cQBnw4ptjNvt@D}oZw*E43GV$rR-oJR?LQszg;c+qZYi@&GKK2!u9x;z?fX?O{bTZeKobIY$k{GK_u z$Ae6trFkUEt+4rY8I{qisml2|KgMr3nS>YG1I?NR3F=_1)Yc(~ekAmF#xgYxDl-7c z?A0@5$V{9tbsRRt^!1vJs%n!rizz&t%3J@aC-!N zy?JS!3U5bS6p>1Sn>sVykLZ5j{U3FrL$=_y_VQ{F zQde_PD!fV6Yh&9Dt0r#7#=tjP#ct|cs7Y(k#mMwsb_;Om^5J`rVK2i{`TM$}UWP5B zgi!lq%enZ=v}W{TkOLd%-Uby6_3fdjYFDIQQK1Tzn)yWIbv=XB=%K?o<`2Z({F$ft z!hHn+azFr|K$a%jP@J|VwL&G&Dk}<1>eNj4NT0UcH85^fV0t($#ix2U$_6#yUa>L? zHjPeJb6RJgJ_w$vMEy^y`{#I*ZtP& z2sHSk?gD3=!FkoG{U%}`*Ycny%Ot`JQkPS`pO>ULqL%L5y5?zBJ6uLRT?bT#*NR+9 z1Y^uS6>oiYk|Ul`jh9~7noF8*8jYtJsJyO=S;0a!0amk5;}__Rj2%viO(EXo)Hr4E zu0*u%ylsK?peOT9Q`)z|$yA;F*N{5bEi7+MRm~#{81s+xrgdt8{A~{REB@a5l3Lcs zT-2$jm)%zT!|s%Hgt%ZAR%*0?4^BXs(t@Mes09bIPBLfM1m?kvS4DQh9(jtC*pO0% z5T=0-7XA_UuywUlXiQ*%Kt73m8XsyK!WQBisHRe5>E~Vyy^V0N1?z{t2SB|)TO9?d z7cQiF2Dc<@MAHUx@uY~cBqrEZGR70oLz6a2XKI%=zNg2^RNF_FbupPerRfIRpRBpN zZ?l75TwT|{$&3}9eFZiuyF#tA?631)cJ``gUUd=Ri%GE?&vq~6XYH%J&jxy}U@Q`} z2leJ~mSsb#(F(^5j5Ub9QIQK7%~HC4Z5XxmXp%IZx>3Lb=X2I5&Njn(1{)NckHl?=03Us#>6Ifhl zcHZxtOSHaI1v7t|&sb(4QV0;u6eN|4Z+8`_` zK9h!JS!Y;OeU5I24P`Mz5qKPwm|zOxBWBMC!Uxh%(TZUmWxe9=T(mg)1*`bcNS4%j z3?l`w%a2^_Ej8O(lV!9z;#&v@ELk>(Qsirmn+epp%g>}Y8 zQonirE{dUO!lX)rQzI!PZQV4?bBaiPWz{peHmn3X=8_Y(hiET7@sceXc*{9{(b+FG z5!b{Ok2u%a}{H2nHGN{A#h;dElqje_1(P_60W zLumDi)iPAVZ-ByBvY9`H6dVVxF6itn^5tUUiP3j-)vT^UH;|=hDu#&Y$xifk50-o# zdLmppv=^4oAd2srN?dxmMMCKA;qPu#)AuxU_vgDW3tx17KD!q0PC2wa#nq}z)ak3M zY}PE>W*C#nUtyI@Rh3NMh4U=SxsicYz<@s)O1@5F6A-E8-rKxnvf3`t{zv7KqCRBm zJl=_NgdbdI$X}vUNLapsqhxOiN_FVb0iWoubAg)7X(6=0VO*POVNFQhluZoUMYC`o zOFyA>Niv0JJP+AKa$iV&96$A3i7Igovr1}2z#yNGi6YrBFYRM>#v*F}KZLgfkZwV@C3wrWZQHhP*|u%lwq140wr$(CZENa( z9WnD>M^AKQ?v=SV^6Z`Gi~LSnIGmJzI6hG|EG?idhw&i0A|II*VrDXpoLyBacmm!< zL0K%8U7*oaTx+eR5mXEQJ+jo6Dl>UpJS;8)as;}=i8S>Qlw@N_hRNyuyf_|$BW{EZ zcZ`F{-*!UB(#~1T!WkR|t%P(MCh8Qd**0$Jcn|m)kR$a<@OLYo_gV;3`(ZYYTkxpL4Uop><7 zPGa!6k>%q!%aYhaNm!u~l2bC8+hLtN95`2?PRyB3abqeqrakNP$v5xv_R&5V2pK1| zbk7qnry-BdBz-N0HQA9^G{Z z6x=N`W>0#3x{Bo`p5MDF)d@idMnuX3OkWE1>drSnPvldvWim0fUbTR7be$q0=|^@W zJui#MM66c|OMHzpMp0aU7#uOfANQ*Bv@gGv%R_l1yLMz+8=X-p-tcgY%78{oV_+w8 zP2D`$0(c10M|T;R+A?*_nWFUEgbe+Cnz8&<5o(p3mp^Mfonjoxy0lXLDKW$L6FmR? z7*ukylJs%OQuRP}0>@G@WqUsrvkqx1GMl>5h@m78{<&xy5(6^&PjG?$EW^FuL${N% zC@GO+!32l!X37G0p#sP$f$TT}7}@r^Pv}YNtI2F!SS4TL${^KxVT^oYCNS{+5Y?OL zDE(XWF-mNmR?d3WH0_-SXGKv+me=|FB93&|ZSN!sS2;Z=b6fW0*#qB=_F9}gGaJA5 z3MbJ_9&9#T39b2L=WW(Tvs^{F#TIN73etC2wc&Q}-?bi*Ly3D5eJ*#48;v=?2&dY z+$Mjf)lJA@o_K0{wxYmn?EZd)e?z%r=nZ{SerM)Vz0| zkr)JW`_#yrWe3NteIB;GGRiW1k;0Nq=&l-O-HPSmm-Hu+?$?yh`FU)MX}mJ#tVeNADBGrmvJmd7{$lx@1IeuX~pXfF%Nm`P~BF6?!3`bYfO~ni0IX zHO2I!swHcI?(PDl?ENQY1h$2(YSOSYEHx_8Axn_thU21sV306mQ#vNNln$^iRz=OdTs#`crgr7p#YOXHT{GjIt9X4GzD9h)z|6D z89Katoi555EOd0p&@$cNWI@OCho0_GgDJcRJ2*S3Ma{}tn#KK2)f6wA(~$^ zK{K)?PGbDej{L2r^;Ia-$qrst1M}*qIqvj6Dc8}gsk7BBq`NUZf?)I?6$eZ?NT6qv z;`2y|Iu*@T7&w>0)*@Oc?t@pV2XnaGBixP;!W*(TN9P#i!d*Gb&`?h?6>PhOZ^pPg zm$tUr&&pXY0+=QinxB2WpSF5B?=u=g>3RaCJzWJ(CVJc+*xnlYZ#b$twtt>mW^S0` zUqdR_zgjI|M}s}Kukf$2>4Xkp{9|18z|ZAQAKkJOug9mSXVB}lUZ2gqcocR>NV+8? zD82hD?7|6-PTQ>3eNUKlb%Mao^53{pV+IGtSpJ1}57stkMdJ#$Bq8GBAwPD;hfTs(XLvC57=%e?`o`m{fhbT)sR=i<^$CRWY%>fcUb zByqz9=hjhom2c(rPVB!nwZe^AY_ZnG+ZstWxjY-lWAMX zkJ_<*d^_M9f6&~|eB3^6f2AYPSH8qc@Ll~tJSC5@yeh9wKU;h87Hz1(G#Aa7 zGi$5>A>s#z2L}d+$2Z~!)JJW=Xh>fI4fJ1S&iU z9*MC|8XSazMGq9MDeo|42D~Ib`Ps>J{T^t`%5N`EZGTZ&`m)(7M^MDRMWimc=kP|q zdi4^l64d7h<&OWGC-)b=VYYM$*~XDQVp5aDt2C|fKCq3Hg)gG%f)BH;FmFjmk+(j9t(*Y}ki zxWlQKZhgb&_ib{d}obcS*MaCT>suoEdj-^jCS8J7fCUL~NhuX@pH-?gS zRJ1J!v`?e5CMv}FfvE*CRX6dfF}E(*u1zjD`)B47w<}6?K=qH$hvqe2WW7#xlC~bh$>1rv)_^DilVbM0FgVI2AD~q{1o!vvq-ay{MwQ`QtQC=aV38oPsol za&x+_9nHX+*?$~VR^spe_gLc-Pr+d%_2YzO?Mbl$7`R*3C~Rc z_@4kax+H3&Ny?n)Z6;9z@ey)Iz19L{N^kK_68Vck^6{LA6r2e$?2wdHU#NPOx35JT zQNtELl5)@z?uVJZJZm;m)1mQnJYMEE82P$7;b6E2CWLB3vw=$Vya_6#@!39j zNNd)t`n#iq%l|mE0nWIx%IOK@=Nrm>S_ue92^apGN(H3*(=8d#SOuY}!bZ%k!z-*u zNYDIS=OoA7;2z_|ZkxF~fv5n;#i1{^<;@j~-2q56XDw@ky^KTWGhBme)%Sp@P7_8? z%1|c}r8fTl)0?JEI!cQOO#=WP8bu)bM`;`JPkKw~v{0_qw$pK5DzA3uL&apw(F%hi zQpmV_feNiW9pA^fqpt1xeQK!glo6|3lP@QW#TCy2-uKy}u93A75*IC@9yL-@>u7zu z@ct}k)~NezU+o=axJJnmj<_Yr#^<*|s@KL&Y)Lo&_(MvS1Xw57NNe9hJ>ll}sWfRo+xYM57RSgP?c=|-l7Mm~q<57MM0 z#jsgqIwjfPKLN9&b!KS%AmD!r7SYA-0*(0Q;~V7>QzDENtXPU@Ek z7(CBcAhri3N+&M_-mLC-lP1AtF30gj%jA;+ErXn2#Q>`4fw3_J zP%D$SpWZi}GYh8jL?!XjN4c~9vZ(Vk2k={HY%P`ps$kxZyr?XDUWz8`wc=Z_K2meT zC!dc*wRg7;(qb@p%+VCt7o;H?9cPXYuPjQ1S&WrhjQq96y7rW(&!i|&j`73aXBKLJ z6<(5;h{#6}9iinrD@5486b*~SvC~8AV6V+CmgKj;ba?SdW2^M33dGUP0-E&fUA(Q` zBEhXa7JAs{5HT$1OW$f(j!|>)Qd}uWv~h5j!dy~eHnkZ!_b?giYRKh<_|krW5={|F z&)DBxOg^Y-YZ9-(OygkD)@ID-#J12~93nZ@s66Ttv(#^wN? zEn}6Rh3L&dIsB^b3@wpMM;NO?7Q(P}&KG)Oq`X-j8LhB)`QFF|{IYCC}} zm|=@H-1aOn$u}OBevvg(*IGwqScsI8)?`7Si(&>-f_uWtTc~yqap|qe)$rV819<8V z>vO0nCJzHfNpeTgo?0eM>c8!CxaEbVc2-t4HH?fFQrbhDzVdgK_NEqJ8um1g1?LvJ zy&6V+9=QP$rDV0(khQ-1^P@)|g){W`j%q%bgTaFgzL+dQG7D_jx;KY6NRxn?lY!=G zEzHdGqm;l+l`fCc2c9<8mtJ;0WAF1D#KGU~8jhu#92nWSim4g(w$u4s!{y3wN~Ft` zmAP57NHEeuBxYHsBfa4)%;Djvt6&Qt(>0I6@=@Pea`b7%!Mc$oYAE;gkZ_|j3kFDl zm7v}7Fu?;2a!*fryH6J!|0Ljss@H<8kxbngiYX@^fD;%0t>XGv7b__&Y1aFAT0FlG z>oqBxK=rKM$%t?yR#!Htg3hia12Ab**@PC&5xq3qTHT4C-4`PUmdYeRFc+rM>NsX| z9QS)6gy;4nvi;#o8zNR#8^jPTaws>TBo?4dh909HP0%+w@e{EAw>at-hiVQs>;CU^ z*vx5F8ST_6?Hy72a06s=-!8aS-9$lvHcjelq$Q36a4FxUGM;gEFi1iYbfGA`2D>+c9)|uj zOEB6$bNmJly7)_1lJ@lJ$aoqmxNX%Q7W5c(L7nH8fM#G;(3TMkkX5VwH4=w+ReLGD z6hqelexob>BU>e0_@-8K90)Oz%`ta{6oH(ko6Q8O!%)DqyeXd#gE`XDQsh|fK0HIC zWL(SYixQ*XqP)l+;j@-jUw&RqK-S>*ue#~hd=Bal08^>nWthRDM3Dh~6}KgFn!PQP zFAPi4ae$gtQ>`Kk#L+Swjb4|{*O#~pjDKvK!&g}Bc;6eJ2}Jw~Mgrqv%VpHX3Cjd^xR6c&`ce1PIJEsw#l zkiN&T2F9X^Ok@=|Ad zH-MX>1wE=MC`{RUx&qmfbfr4AeooO~*`(p?H;iOJjZ>)|lrNDq)009rnZj0)*tsOB z%Tuz6(km4_1yH8h2X9^wd%saVN0M?K%|w;&-ML`G9hLWaZ%CX zQV7A^qXJxUhJJZ7ef9N&dhM5$qIkl=?RKqp^f=!d_I*~gCI4OonLB0}ZT+AVkx=1G zV&N#ix8wx}0Z`KF%&tmzQ9{C3&!@S2>*&17cy<|lF38)G8_Ulx+=lO67GOmtJ#29~ir(dp*X2!P$GN2iNx8qR-R4do$mBR} zk_e(KxthYr`mEW}VKuZiY|Z;uo={d(O;dWS_@jP0e}F*F@Xno7v}r8|ZV%UQ!R{~v zZN*^p_#+XkHrHWNRyNr8L~-sjSpg@d*KYs-^bd3Fubs6YLe_&jw+*!DH0C7fgWmdM zQ(7?)@4q&^6RyQE{Y1qS7C@fAu?7WJZ9G=0=<;^W>~oq((L2<4txkP_>5aXaZJBs% zjzJBG3}X{He#;o(x#V!_K?9+{>3ze7R4u42JkY50!GghCRN$pi=!)npnDf@mC;VzS z!^1S#dVuJsrhq4Rz`IR`ac`A^2=@s>4TAc>LDhd=9{P1YZHBP7e_$JDo_P?jJ!G=0 zdxq79qO#PujZH1b`o$ldQOXk1%IY1)9s@nAcLJvi6{bvLC#)!>N6t$^2gikqNOUsS z&KQxW^{UlRIi+4B4Zbaek?LUZ240mcE^EupvooTAMZHs?1ob1QM4OU4>b?WWpZn~s zjk6-n?V++hf&Z!qRaUBmj1(b)+S1aBEJbO_wH115&>N{h<+vaG9<;@dZqTR4ZndVo zR#j-2okXIK&L+H;QfuZ_m@PE`u}gRTB?9mtiv-ScK>T*}Fw+`SCP)m%jF~udGMIBf z(+{i_u$f8p&V5YCF`PWW>h>pNqRICG5}$~{q)-K&S_fAP&`^*g8*Ti1j532Ra;ispxdvtpT`3J8!prRo@3bH&L zkE8dUA0i`nUx9(?4t?!?46m8YpHIC!eo4f^J=oaMJNyGX(3{dRKJh(}AgcZ3J|*|= zkH{doMmwT9qA|)ZT5hS{Fg`P&pXm+#ftQ|>QOH6qstCxle}=Y+;D0#3P5|1k&I!N>v!HTwWJ|pvtklIO7Kl zB#No_=4c2@G0tk;iXiPZu^5qqD!OiiYiAHILdM%-5pAo0TTTf!2@x_rAlqoCvV>pi zRmRs$3t9wGKasz83*DgRRi?4@x zTTy#vASE!OmxD^s>ck;Q491Ae>kzO5`%RN2I-&y|+&}Lxk8#G(_ff==uh%ioB5P;&Z79pQ!j}3 z1(P9Uk4QUkX3)H&v?*zY`};eFL=(knP$NcT|8SS6prJ&F8ye_#4qQX=iN8b7+a2HoxPlw~p7U%07pN0+Rx-?gxRi$%Uo~?hYsp;BVJO0aKWHB)q%LrHKU-GDo z=F_hx)B{o^Pj&CqfxCZX&?$U)uA%`jW9n~ii4{=jtuNn@N^yR78u@nu(iZjX_UDTc zIpB|+z+NP*SRKNHQB<~9<_6#oYkKHtzv{PB?p7oZH-DLAim5#aTAI;Go*rZT*3a&f z1A|6Q=(h9m6U&TiwAxzTN%!{7R?GVi8L#nq&g@c?tL{T!Y>RX!-{0(SMcadAb?eL% zVUlLFmMX7mE@bu&qrGMtPnW8Hwi_L0&U_fLUOj{8qd+MPLpG^ukjxe^Btn=SI@GDF zL#wW}mRGo3j8K;^^agd(luf%Ev4z%Y-rU!X4(9$)7%q{*yj(SgiiF=T(*}uGY$b2( z20D+!Pb%#OU? zMy;H1fo?@%UW^#Gi4*}=ZyDH!0SYyDy-^$up2=!zpsq6_yylUDnI z)S??;(KW)uOF3DoWD*3t(3@~lDuc=WlePArrP{#>PXh1kctD=Ng-%T5#fk!LTpi^Y7@pe3_R;f5S48G6Mc>~Sy~ zPfAiGWLRpvQuTJwr|H|(-fW5dG!1ie!~L{2@BeZSNxp+q`3kE{(N22kyqt? zG1_1EP`X9EKk(4%e+8l(rD#2yNYbAMOA#+4hGpjP_adIT3asPM!N(teC&J*#1ZHBE zc8i;cQxQ!M6VyZ&&)jt#`mSB$_0q(E|00W1Tr;zu!-4zBX4Mq(nVcVxnV@N)AuZ^bKV&uaMps`xu8@x*n4g+QcVa-fX=1? zqJ;z8W^V&~7%3(Km0s{VZ$*?0QIVi%rgUVZcT_Yg@EJbj_Ry?Q2kiYM)!`JK zEA0ibC+$_P7s#6Ru&l(6L1vr1^}lW_z0dm#DKt;050yvSnzR+xx{=S#c5N=r?w5hF zr4Ky3o`EMeZR(UZ%fU@JS1XU(-XKdhYTXxebGe;*N6`ssF+8(wCc+`c)u1PfK}K>= z-#ue`(jC@|aBCF+vR>*xgSDiXa}$$t#>0tC>NBTTquV7ddQewSfF7#+T@!m@=@I_H z40T*sJp;V1hex5AW>|@zCs=)_Gy?~mJKx{W`sjYb&i4#{qs8hheC~E{wq!i2wPxoVEqGQO@0(F&MTuBSfNy8pkIOO5SSO++#N$GAdTOw1!{4ovKwyF!vxjeSM@t$L^z|qFyF%JMT zn#F~I;kdJ!%P^v)0_yyHTI5a}5+5u$nCTkvTk1Vqc#D~1&4Pi9jnCX4yTHzmbD719nyKX4{p!c@DxKA`Kq&VHIDz$f-fiCU8 zprfpugI$-e(K~)kK&|||+0EEqbgS39o#bqRHAX<5GnB0*zlk6JQ(?Lg2eg9}mz`b* zVge5&>Qs?<=#z%MGm?+Vz?lL*WIyT%>3Mf(0QvuB@OSzANvRn#J?R1&x2Ch6@{K6?KF69`?4O zGyDBQpz?+SpYk^-MUiU7ihIj-1nlAhjaB}}`u(AsNtX`K&0JsA^yHI6`{9UZ3x-MZ zpy49ZG#I?q!|Ca~#NF;lWzyTXZ%=&&``Y_YMDz8w$Jcw6C0MEE%Ti@7=hv`&!3tt! z9l#P{v>9BjAAZ3C(=fgORBrJQ0T6qc(t0I#%Dy+z#h7HLql?iiL`VjHlPFds=ylep z+mg;yn7w>!xndZvYsVua0X845IExOSSN{pQ&BsfI@ue-vKaF#&Ph-Bc@ub0^CqW5t zKXGe^^f>5rt0)Tt@|PR>lG&h188J!D^r3=*DZG?Nv&3 z!^k=bK1jfV^)RR?4N*&xWglxb(xNRJ{@h0j+4U=t5J5dguNJ0n>t?r6WZmm%ILBd; z$925z`T7Ru@y%(FMA#aOE6Hsmv+~UjJ^icp=p|)kX^Fk~0ir;~wBa{_G9P=%g@_Qq zfr99!9m{ljA@-u8W*@7JNzDSgoifxbqnRICJp~Y#c(tMc%t8kX5ruUM2f`ByQ4)uU zT31>`^+5ro?x%%DlERdTE84;ie0aC4{H!@|ni-&(tLnBvpitsx2NF1~&?+KEVm;Mf z(kbj9S8hW44W|T(da)xF-(&uUzaINEjWU(4AsL$F&Y)q^&0Lv6Hi)sl-VU0_$Q|YN z5GX`Vrv$qoo@u0Qii%L*UW5Tx^tfwQ-7F(H6Q{BywzbyM;;$~EFGRJxDalbnDfun26?I&mR@6iFBAHBf01BHBqnUgazUlhVfR*n zdK;=ZON+%n4!nG!1-g;~s-HyhQ9gqDxqMcvxic45kSfA%qCIQVEOyNT!o2b0T3 z%Fu8jOlqi5T;xpep%L|x!)Ejo)Vvg4qyXlRRx4JjlaY^*_dtr(p(LvDcHwjbN#<*U z{A-!Tc%UTf14$;MEg{R$ZUWX@!dh!#n70L#E+bAV@LGbk*H}oO(CbAm(enjb$Dc1~ zcr^ca;yZILP`Evpxc2DOB^u1lP)*@;R^yAtA+Ig+&uNSEnJ{at>O^iR|6uOXWt(67 z;@_xM7YEt)2HELhXOTrwDA<7=Cwu-HA#+Re}Zz@rz_uTrN3q=e#N1#ZAE%rcT(5}Uc z$S0txsSI}7NnQ#WUJjkKu#7BQ>YAwOKr;?NVgs3TQd1*YYvtELd$~>7<+ZQaL0O`z zYVC}~2O!q5H8X<73K`@4tG?xgM7JYO>fRSh?)U%$WmN=ytjG-T;?Br!LakR7$yaBD zjPy6Kq7rvz2{Sc1Gg=YiacI4KUuMs0#r{yl6G7uS%4BiZ@zOg=#Zfc|%`=fU7F{w4 zO~nV)Z9^bt#zI85Xf7g=Z4g-~Wg>%(3$eBiVbV|)CMHdySISDY4pStwNr(y~9!zXG zSdJh4vd%IxMOt>XL&L)Zy?(j`;q0MGrna3kbl!uKMcsQ?ZB6$Yl-X z|LV2>jHS+i@BZh1dGcWPNJ`X_ywQ7;NyK+BVq^BISu=SV!ARSy2xRD z?LV!cD6W`qIC3hTKUA|W`4uwxFw@ecE@*#I!Pt~n(P*S_6l-vKvq*nVzdJ5f z=VSiaB)X^Ecs;ASRnsO#K>jP^<2slsOG@V^7r5K0i(dg!5V*Czr`uD_V>!1C{{0 z#qEcER2)t_vPcznnCHS>Ltch6ilnkPshm7|*x-qQ5_Mr-MU)WF(AgloyAogNWp^UGjp-Ji36h?42pfrqT_7;A}fAcg-Y9|L3=YA)ROFImvl z!dlrG;!rITQcgVmwlM-h!~@r)NTW$wbqq;r^WaxV0s~BR!KS|ilZhrv!IXm5$%^Mv zYPqb5t8n_?flrMN3GhA2ekv_i8x#8~T@d|aF|}Ngv`E^?U?^d9BJMo7RvwkqiGSm1 zfcq+(#8xPGRe0<ZzWWt@|Kq=tuTjHD9U7T?o8T400fnHZkHa$+D6_uf-oIX&^nC%|p!6ggfUR#KD2L~3N_FE|cvH3sh|`7^YQBGn_i)lc zMM6)BCHc@~jn4?iq!n_V8YUypM(&61;ZP!fGS5bP5|TiV0>@{R50rZ3z67%sdj9cB z{$-MQaI|i6iEP&0sOivoDeIQ^J?u&Ld8{E20xIqbv5i_#9!0;@ucXi>ZGs>Kgdo z2q+HF<;Y;@5*jskea{k^W;BgviZ;iVgzFHje%ZRr&wYFVIG^M~KGw?2ZrK0v;ABTD*#H~aa{|k} zHd@dG^9@_@{#}}egZ>p##@0~M22U$|f$J7cdKX3^K(iE7)4oCnXya~UdiQ@te6eqZ z-@GAT8r`f76}Qx%@v?5sEMJ>GfUSN4u=--z?0K?p#k_UF^duH?tvRjis%KprFMJgO z^C<&#$KHH`mvF5*k!4CTy<+GT&j<*fle z%5b%p{Kwxvkv`$*aD1PY)y7R`N;@<5f1^~d+x)+Lqfen0vb7g+7NUCOrv`Av|LyfB z`5)HfZYLCVud7yMjrJ?7Ll^W)P4COgZhbPlFAQzw2(M%g!3=8vD?Kdp?M(G(g?dO$ z%08KjKkaig&+8OzZOE4jnoP~7_I1YQ28hR9!^*Ah7u|C=cXt`%#SiyH7h78!jWL}D z{y#ti3S$H+B^41lrz8Q8m16UC(0O9wGeDKn7{=1Dr~`6J$o&28hSCBVU}1h?etF@= za&UG^MGW0DaG)Fa=`QnyarVjkx36#ahsKj_(;wa)#~jC;Oeb+YD7x*kck<;`s$2aI zMAPbjOaVI>RQ!x^k{UIdOQEOLaL=45H2{@VHW_DXrTu(ZZ?7B{xLrY_lmqqX#|Nu~ zqE^Im<#n-LE}qZ12bd|tej4FjDZo=`B-XEHUY=DXY6{X+v3hTO8f8-rH6SGb^Ol40 z&*hgN5|bk09uU?jRiv}bF%}s8s6CZ=4hFQ4LV0|}7834*rMXt*F*`+z3Qv{2tPoo9 z8u}Pj3=u?=z4MEd`))O}Ne0>^(={INqc#@1_F2C8hXa4m16A)e$5f^cwBS?{nyeAG@# z?5~#3r&CS1D6%)OLr+cRi}$oKwvyR9Ca*KAhY-&zmeEVP^lC)+(!|{sF-H`=A?;DB zEJ4@ol9}@N=R#jK3hG`urZgLPDi~%+amPys#T<*@R}aYkLb*g|aD*8XVDj;kD^yvh z1db+aV-iV5#z(JZl;?k7EV2r?ArEho_8{fs9tFu)tv93P4h+IJ6RjF`O=;A= zWKCsGnKFf#$Do0;oy|65>8|TY$nDfFP_ZZuu4%e-K=z~OE3Z$=SgiL^@KALLXFIR6 zpcrjgB+*~#c!s{uVk%bk&t6spz~YrFca9|(NZS+cs%fz#zngaftS=l5rpI=sms^e* zkW7~t2(*huF7Uz@y+sG@3F>dGxuWAl!A``$|}pfDPvzN zz1Jp@t{fDnYTl`{<`xa363;yw&0MSZPP_ujq#>Oh2U^1p%42&1L@{neN$G*mfwa$b%&x$^NJFT^osn1}{u%pz7T@I@ z%KJGg?x{` zn6SiAPm$AU8_SOp^TwVZE>qkip^O=x5!|M>ZHz1Xo8C_Vp-wd5ue!h73K_RC;e+|{ zX>ilYm(PxE6YP|_hN2J>5(4jyE{Mk{6 z4)rLuhXKLKf+EWygG}5G!qteiQX=^S^88x35uv7|f{<1@s@h;AqVw$5CBc=15wP|P z5sE=N)naDjuypge;U7rHy~Eh@I7KLt(qNPZf$}JuD#efb*sIp?qV}`W%EAVbw(WrB z!Mujb$tyYC0>g+-W2qA0gDD|I%7GYq=x}e}C%hSQ`4GZ5;He@dDS;sIWjKLC`NM_) zhR9u@hHr6A`Duaj_(kxeD5H`*Dv0V5eEJ}D(*d2+6@(?S!OIx0$>(k&5yuK~iqLF< zAw(tbM2Y^2(e4o%7<^^$vzSxr;Fdurlat@Y)#Dg(qmq|Bas?t$Hx`e}1%yGcg9d^3 zcOh+;C97FG=A6r6s6s}2N)mocXpG67qe3Mqhj=mAI`dD>TgCcgmN+`o%U?ga*GXd- zKoBDXpztaeOAX*b2YspW7UZ)dI>co~rf@}D3iqn!Q3A58(jus`qTRg*pa3wE2Scza(C6@DDJ^5cDs6xsM#k$< z#TEWrm+K?9a291AQr21U!C5ctor{+nD>B1^9FOZ{3S~d~QgY8o@ZJ`lR7EVk9V({K zlSrJ(?4d?2iz+wpEhIdL0-KYd4f_{go<35rRLHtts7Jk@9aLl{yRd&0F6?CX^S!jR zR@7<1N}>>Mk)AgRw}&sRTmX$mQ2|bxluDi> zz(3Pw)KAU`kt|^9Ct74BVr}H>uA$qxF9W5VvdWwad@u(uqt^ki1WzlAp+-29nZbo9 zN_B7FcfQE2#J=>J7FNp9#?g2ROgXpBCf%@5?J|rh`sW?kJ_WcP(W&0dfN8e8 zVjwS!&Rb#d(vh3kL+O+7C4iSC!lsB=E|^!Si2^PtzY5ifyBvT2BNbS}+f3WN+pUrG z2^YINW*a7QSB)-&W>YT!EUG|E;43Hj3l^)E*UfvQ2c6%tBx!XG@=dq$rUkv zZd(4$oc)Dpx~DIDl0WMT-c)sP4b46$h8+sw#68TBaGzQ*OMg&3lHFDy>sQ4%*oJNY z4PkF1thJ%JkNi@+XBEiaK`_k(e4})6uMKVV+V#6#x6!M4F!LKJg6SRZb~?Pfp7vi=nl8<1#Mp~m~{bv;xgEVW&f?L zHPV(g#58D?6V2+WAepsp`2#w=f^Z@__=d9o31BZVxQ1c>ERrPzf5H*=U@+*8vY++4 z9>H`b{7H7$gU{d_^8P2${$?0EpJ3Jp{E5I|8PT*$SOeDn<;L#~o(<+CJnVt_Kil&T zf8sRA0cTGum{kFPqA}QpVt*}`6}qdE0`oA3wmCg5oP|ax!?zzrIK2UX(iQd~KiGz7 z-yO}~LhzsJ*uoy-N)K`6hh&kLyuwQNP9oAj8UIt;K^W5Aou=k~p)8dGdk4|brrW83nBDiY2Dmq?5R`~ zd!{0f_V02oukkNPSuRH{znSx_U#gH>5m+gJYOr)!JjdK#u9PKR5!>Q)!~$7Ui=gWu zY%h>kM&D&UkBqPod|kgu*-a4Y4tgp|^rV=G$&z`i ze6Xxo#8RFp_+TCIE*X+&Qx?msdNXh5Eg}-Frj;W*;8np1eS+QkmsC5et#F?lVyqB; zvWiB%KB#oUc2t!vb7a_E#l>fCy;#cMc*?R+%BAmc3<}N^t(`f9Wz0y(<+&fUoPu0} zl`<(wpcm3Hy0{oU9h;+GX8^_WX~tcQb=CDv3A%!=|zG=DX(U_G{-#Y5w^7nn!>dmzKr=NxBj!v$M!*4>5KrGo24q~7aCvjBvHd$;w#Ki-IS`h+<^zu(Qkjc#)^62g;mS zbHeMSaB{9v?MT1nWjC!!!~AgOwJ=5!t+V*UbB$Om?qX}ApFs(3MD8h-fQ+F7o#Ssa zuROjD88BUCN*3QWsYzcw((`T?Yj0^-8y#k(uHf{vs;MA*cPS_YA8(xQ2}Dm_KF4K|5klw{K!@Qpa_*6e?&W ziV&I0`ihnJQF18G;*8lWV{D`4qKocH2Nq^3ks}5<%o}aoQyymhq!)d~uW`p58JkI2 zZ1Vw+i!ea=j%}8#>cIq!B+2$DDU@kL!6{hO3%#b?$w@Rd_6hUQ&Q#PQ6B13_DdrR% z_?8xo)%l>30m&xXZgyk9s+mp?3ZSAV*LU};vwL9En zXtmY1=fq;*znU(5h-M!LZI_oQ7wDH170IN!ZXdZzuFbM#PJAYIQ^t~UST)STGP7v3 zmg0a(4r5?HqK3N}`0arQmFuG&b&;cDcsMyaf zc~8$hIyvnV7lsy3x2M#n*9=}Q={<&X;35R)yLP%v1?R2WLW?Nmn=Q{I%!8mDP}A@8 zc8swz^D{Z`5Ks&cWV~0bjO7vu%z4#I8>s7MFg!mDPyKhzsvg*{qL>(eFkjY2jYw1W zoZE%nJwvIGGL3;I=PBz<3JYLPZ`>>#*W%&8JkRAEI!ud>shy}02wWme9)p7jl=(ql zYX)m>ca^SQ9NPFY=sw2B_eH2%O(9FivVtX2MocKkJ9i5N-j5b3v5Qg<)cT&`V)d_o zC`LlO$a!Tyl^Q(R80T<@D^+D1ksHe@@HU~-X&wV@X+B){X7hiN*B6c3)r&*>tfZbn zbAw^5tU1577Wu#+!;-%2;5Fz=%QM53Mb2JM@#+=G<_41TLL(9eq%k-{io1FWws-bP z^6b(bb8%X3#L7RkZqoiT$5(9A!5)>r#FiX+ki8=A`6|g2WLTA3VuSN73xqOO2A0Q_ zYlg_yU9KRBRm^lO>SkNSHl9DWe6Q~%zVcJ^K((a-ryiiA5i%9Q2cR#qTVK5-dhBY` zLI*I}RUPaidbt_hQoT!+2k_n~-SDqn%^@x5-e3Ls(xXq{0304DvLoT`(*YimlgUMz z62>DP)^(a=XZPH%p}p--P9)8_33g`|1XIexTCziQDwI7D?O(IQ)e4!}16=Z8cs*O_ zkZ4WO=*Xkut#b|drbia-dmA;PNp>A1b3qbXpfH1ev*UygoU?bkxML{ecX#|$Q zK`i_HAqWvK=>R?!Pdr1!5q`LIK7b}K!zjfl;6OUYnc(>O9Z{Ml<^VBvM7)x?DN-*W zP9fPJ54jd@1Ur^P{1G=v#F2J5JD)Z~Czg=K@4z^Qm>{3fM0^qwV9e`IHYP%hNBX8j zuBA?pn&=g5lyJzIkonh!sEr8uF7&X3*fsGpAP3^4~s`FIVfx}XE)82K3G?}Kc^3Pc;*h))tb6A!zH zQ{%Ky;X)*vO8$29-;*TNBx*@I7K*@bS0&b-_;;x;IK_ zBL*wLE=5bgmUh4%gA$h^bmtfs@IV-I_^pG5_~P$$w5sUAJ79uqyq2&7#n{MS-b8-T z$0K50f^_1xm_yQpjlb7&xKJ-*slI!ZvyP90U7t6b47J~7N;jM4r&G6;$6hhFKgE;1 z^(iFKJUe&d;kdL=U(y{v`#fTFZsT-X81H=t$yx9AC#D_hijxNDP%)}5oHl1)>6dPs z^(*$H&p%3#QMMfDV&BOfNO#p(cZ(Y_ha>LB=$_x{hv@b)A86Ik2g`h^I5Cnr;d5`I ztw^{bN42Qip9f35)bhS%XSRVm6yICy%HO8(H1A=63^G!vNBN?YC{RO&`y_Qbm+&9L1x{mDYhtLQ_705Kge)x+%`A7; z6P-aSZ{1b*KnwS)YR7?n3hp@k71rr&I^veG?k^=tsgFiWFxDXw8=pqH4TX+VPStBP zo-Llm#@%17DQ284f|*P`#@!dADsSRd_eV4%HyRt1d_6~A+PP*+Jt&!54jM{S~RLWdTx?5(5-bO@1fTmr#g1%d-=hUU2^ zUHeZ0(RpL513g~Do%xArFSq)>=&rz1K&>0+I!WYu^lDlXz6i<-NCBW)~+CC7t}xjRhf6(lB%JiMs7Lb9%2`q z1vDnevQlI@X>uJjc&{3rZZUgG*1q{0wxk=1EUxo1K1z?jA2DBm8i$7(he;ZTm8Jrf z8j>t<^D$#sTSBS?u6K-V30<*PK@Y!io?-XeL5TCy!7@H@U%Fb!E*k>ZozHvT0eQI` z7ALCG{-o=Ka!x0!6@xwDKi4o=*bQM9$LaVpkFQEzl4R{EKU3bnfqDWFPgTxMa!y&* zR#{QCuDUeiY+e#QBk%&PGkT&+6HUQNR%G4pPM`#nem(cGlI2%)v9(S{%$2Hp#>%kvWB z1z^90c>%X4961wBT+rsG&IGF3q;BMee#-fP^BjrY6S0f?Q1gW(9+BN6v5WYS@&)QR zv~0q39pScty^nf3;AK(vB<=|4zM;LLu}k~V^@M7<%i#w3+}qyU#*zKd{=j~*C^8Y~ zHZVhhnx$)yLNC@gQll3(Ev)zHRRt~s$gFUhXX}NfR2dIotV66r$o)GqTMX1~miHi(>tY z1#D_rVp%f4q2aIc$58y_Bw>0a&v`2J&P*F>m-_&=aquCU?;nYd-ez=)Tb@0f#%@j2 z$1ETniR#O;50V0BCL?&b9pTa{@> zO1Z<<0gt`k^8&6sDR?Dc9UZx4xMk%FjSZIe;>Lr^d;{hM*gi_VmDGdkiP8nte7o{u zu{yAP(JYX`$y_UPh}`U_O~f08TQzDEy4F)Xlxa)Urga_D zzJz=$`%KcNxG?7FknkbtF;Jc8a-i!F^`Yr85pn3*objp`V68Q9=f~CaStG|%5C0VZ z9t6A(3tm>Soaoo^tm26@ z!)c14E_Yt$Y&g?EtAdI&C$k`{Z(UZt7)R7_t>UU!^f2R5OLj?cL9AGonUm3H(Xg#z z%glRPdaqB{s7{%vUb=7OR;f6$e7oed{>K_OH4kbTxMpP?#u~I_Zfap#f6=7B4tEK9 zC3YpIQ_5oDdthoF+C=0PH0?AjcA=2!6=idd%BT5quH#e9%a1oYayIa&|H{|QNCG5DG+S|mSIBY&6v5oH-|>0W2wWe@a%MTc48-s`sDmZ*xE89miG zzG`80v^4BF?AbZ|+WYD^L;u|FQ3rG8Ue5=mA^FS`lFe1b-lAo3+z(AI0 zAcGabp^oght}tmX#!$jDlm(0I$f+=SCd^R6G?Zl(!J$oloQ02<9BY8A5Kk6LD61O5 zy+wZSR5E%{G`bK-C@UMmO(uWHkxn>6f$Z)fe|RPxUjiqRqeyZ8STyR0DUzcV!Tm*k zfB0*WjVH?`ocR;M4McGdoj=NyMmTeZ>>eU_$nm=lfJhG0uexZIDT+{*KqRMu{2sbw zlqrC4=5GXd0r`DY@hDRW;mjH`!*pI4Lki(=8#2SN{2;n4!U1;#`oZmoGnv7o>okt+ z-b-9DA}H0}$F_>~@&3zz3`FR&OBO*aZzlI6;*r3f_x-;t?$TcEZ=QuE9iy7Eu2CIT z&-gF#E0Gi>&-gC?k4um6ahW$xE;e*+z~ z2xV;w73UJQqawAXK!YW5qssD- zGj!Ie&Kx}y~LXU zdetX>l)Ml8^sfw4@r9khK0470xN~y5{wo=12=PEnFXhJh)NtoaGpb}&87LZG=rjHm zqoXsuhP(`jzN=%Uwkun9uPVfwFr`x#CaEB&r@z#bn*UxL=z0 zi7EU$J^Qsvy|JYIQmu+l%teYG(3M{=Hu7KjojWG!24?=cY5t1)cuk-6cujoH)x(3< zh|R-Kk9ryDPJ%7KD2xM8&h&PQEl}#sU$2Oyn{ihG*4!tNq&V1K-j)SV=07F-V>{A4 z?kV9%AhVz${dT9&M0;AJeK=9iplAjPxkx(UGiR!Xn9w5dehX(UCn0mT!!V%|++W#H zF9SsM2)F}Z-XPpy6}4Lvx0p!-xx3P(elWENh_w)kC|1KtFq(VbrT%ccNTtCu^jqM$ z1Guda&-(2s-9yZ9&jYb;qE<%O*9JPvU^8ANb>FwZSiPXV4OZ}2kTZ3HtcW@W1#50@ z(b9To{h619E(p8oVcIZQY6w&TSCwhWePGn1#eK9YeUy7lDpS>=-kpAEy}EDoi>q*6 zkS_zVohdt`=(?k5`y4mw-_#GcM_wQeuaw;p#`mdjRFyEk**(+i_tIWSmLolfZp{ZD zuPc>6KOw#YoOd^`KFjHNyI^W)eZYofvp;d%@=hpQYB9HvbQh!^5s7N9PqsH|aE%Dj zPe~z@dPGK89AVMPB@_Bq8QhZZYEtjUaa%McW9Xjz50)ra>8Nx0m+myhLu-*5$tpuC zW=u^SRz<9;nG?%q4~_0tRjj%lfn8-Zb2>&?O(^R+&t*AzuDjMxG9Iiq`MLjcM;#xl zJzTe?Z}Lv=a6P(nW}6<2iC2y5Bf5HU!T)*SL0TX5zaWb zU9ifZw{I=sUpwR2xgv*dWp61Ku6PG~W;}LKZLW+3c{YEzxF>$NUI*XPzJR`fzWI4Z zdRAy%`pkUgc+GZgedTGLe~*6Ec@2Jre?YyZ{oa{cyoMX4BzY}e=()yECZ|nI-vZW# zxaGUeTv$3Ll1<P&{I}{5L(>pP-;)H;s9AM7$8) ze>UhTd*DLpRiuY{lZQO+`wS|xqPX12qlUM*5okjV(jXbq!hOzBTY(C$72E)I{8aT= zuBWYQk-B?Fo&NY3_!0EocLMi6D6Lw8t0#Cg|KlG0>wfd=exkgq)`58hIpdK;#gi#t{SJq|CPU>r_uxM;84An9 zg>Ay?khXS4|4=tDN*fw4i!I9Qh+gK3{U%#SnlshoG0!y^R z9_4jGf1f=t>Ju8@!yeTcd-1y*1w(x%`rCu==;#Y95g4}U_c{H2;K1k)dla@4y1A3p zku59}AIBuNLmI~={ex?0IuR_9n6)Ui36p_+CW7Q@l-j(>;JlS6^?=Es!&;P@O(w!b zBSsxJED_A$XzaKGwOo|iyYFyVvObf6@p_b+wUuZkbtXbZ)l}Hhw#neR9+QFduRrH+ zXtuRzB`qt_GQ_WhH&>}~urjHrhNj!VGHv0Qbiy+6V2jE)pmVJ0A0mgw>%bCq{iY$w zV9-P)TAy5`#`7a2D&vfPc0uouG4Qu~;4fcj{5LGo8!QnJwkRlP6!dTCmcCKgz$gYR z5eO`i>95KWox%y7V?y7k)sTt^+eDOeGRh$h^6T5|GW8hhj`7OgcTDE_u-j<=5nQ@cnlKz8>H)|IP znzjuXZKVy?CI&+4dJomj4J!u(qm$?6kM--+r-|1xk5HEXOnag*M&n9(lf|jEvgXq7 zA$i_{J;ZsJqDIFW7QJs>C*DcK8tJ-3iLleuD6w>`W1p)=e2oSdHe?X)CP$3|_f(ZVx{cCrw5ONqwg<~H9a|w zdk}v=761c2;cys(DCR;~SQt37o*z0rJZ`*bNO2qUl?Z5?84+4ss=1LFEgK=>JTsv* z6Z3qd^g>v}i!WqTk4v%V@%G#Gq}RjI!wyx&vd+g&$Mc$H6(7cc@wRdn(Rlf=WvGterS8&o;GZ$7~k~^&_E*PUMQK4s1{Jgh95wip) z%@$pBJnn0A_Jru^825`Y?nj_CTp5_*hUEFs>T`+*Q?qv=ZN`_&V4*+kFpTA?3DeE5rT)pl>SOhtzWJ!xVYoTB3eS+suWDq)%9Fmi3u6Ov*k!h* z{ww9l}vkCUWH4PZ}gyYjn zw3`7>yN{k1q^U1^+uI?ro0ulbApZd+`+HIM_o}g;9&L zm_x2Yq_$`$6O^T^%A9k-Yy6=?sw?MAOKJp^E+7LCgKzp^JUAeV9AR6e)P|Bx3Ot>IA~F z1X6kN)XD^cHR6uLxU2+82T9y9syE^uWW8kVzmSp$6yp_K6n*6#$Te4mQAu>h>fS2? z?IM&(Hpw5O-bW5?g4bj(sbHf(M*{bH?qS?Y-D0?;aH(RWFXKcEG!-Bhhh&Ek_b*4`_lXW&-0C^SoyDI8_2TZ@ zYn7j-#*z0S^~!H##+moU_bK;|#vS*~^+Io^#wGQVYgL^Em-5e)A4y;107u$I(r>{I za_+Jmg`a3g^dB7kJ~8#VE=S%+Y4`pPT5ob3d0vHCO1vsE6g~S*ISwH!9^)mKCv4;H z&yM~}o@mKC6sbuwNfYBY$yDQbNi)fOl&Z;m6f0^dZrX2xZFyd0kd=_g%Hqk&k>#c3 z~e3mOs zbd6Z+sY?HXf*r!g7X?wu6`~c&6{(u!xt!(5oaNb`NU@^gm477Ly7 zIHBXnh|PMQ{q?}BDlB+3=&JB3@k!m5{>jnF->Gt4@jT^u((x$U)}&kbIQ4#V=n}js zd07EF1$q*A*YghJOjKrF`OG^Ih-4PF^o10 zb0C?iN5nctxnRkSuv)=9d3CrLp%zWAtD(UxlW@|^!JYYn)U$bU}fKN zm~6OYpPM^2)0V0!IRZ)zmm%~B%_e2XC>Sz@PWIr2!#sCa8-Y~*prS=JE6P3zwRXo> zSRJ;wy10ejD*#$RrN7zbbG(@<@%X`)F7*ux(w;!*W*>8$QLZW7Cw5Okqu&nW>PtB{ zFHS9Hz+}pSnt`TRT_qWTi8}P0yuLE?2TxA@TY(srVJ7J4Xm^B-@+beZ!a?S(%0lFGW0G(uGwd&yQuGiG?$vYs-w{JC z+J2ljF2fDmZ&9g_i?HH)wP$DK4h({C*+>&zu}TZnz%#Z2%n1S=vFBbUupG9|Dl1jI zu_KuC0&2_E5^On`9Hvs%Bc5g`%hhYofScCLI@zrIRQp(7sfsfqCvNYg<=GK48t*J# z5weAnGvs&ZY>C{Wg;Pf-+H5i1LKr7rZGNzt9~)$x_ZwufAI1pSua~fbaTVv!ANG`brq&L6Ni)5rCqVt& ze-L0nta&YVa_p3kDC@zF{qTD&gM>;1)4XKcG%jexkvv1Z{m^w<*p!n9q2WY9r1pic zez*0n|6b#26};5E)YO7a;rS4E5PrxjQ-B=OZ)@%q?-hmXqne^f>W#CEvFp^zsg;H6 zxQ*Q-N5-X;!Fp;X{ukMTl`lRFn|qO7}?+hH3`I{S%Zp6Q{?o zB-rL9_4x{W6p9~7fRZ4K_%J33KZFi(kMxfi?!)fcBX69?eHE4yS;j$)iPURk7xx>nr8ZJp~p{aGt$E)yFA_|_(QLwkCmW@9f0 zQM0*?XH}{oHf^H3GQa1#QnxNMn^Q64LsMMmv%HDyIy3%)wU6S}&ZVtxPEns2RE>5V zHnxwpA9~gLOs^VLA++gtgpOBsa^c=fqq}5d`T7=gdlS z$Gny~Zcg9m>qo4*UYSvnoFapgou$0)Q<7@A9n$BDwn`Y>f~Rp? zFezJ!EEt)qWEvd92N9yhjEx+@=BOmp4vUK?BKYQ>NvJh28>1_@`V+UFyYiZfH&dF| z_4dRhN|xbubBM7KF{NfaYRRduU#$z@jM`xamAv(A*93@-t<{~Sksu1obOXYw2da5U&y$RciAE5DivcDNEbRs0!NH~c2??~8$-0ytebN>w zm$gS0cl4VJh&sTF zlDp4fh(y2KC3?z&l-GL(9yR;f!OCI8ulX!gQ*# zE$D}V0gG#h>Q7#hs&hZjCziW@>ob9N$Q$A(6*QY_0i@%3#1i^@^wR0Cp!dlvWpc`& zQXu;nvb5i~JTF~jP=jkIT;R)DBV$cXHF5CjB>;v_AD;$oq51F%->Eakk<}QxGft%3 z(e=9r*TxyK{1vOuP@g3I;5+`Ni|s&MBQ7#TcNg8woJB8b_VJkDxkb4zlYH5-NL(x|B3C9 z4OrV((^pe3y~nQN?OF8d3{MA%%{bEvV5zxl&NHj>?5VH=G=Spn^ClsP{*80VfD{ylT8kkl@EhvlYd* z-f57FdZ&+zI{Ow@($u)sp=MU3Oa&LIy}nhBZnJ7q$pq3{4Q7?{aR`g{$Zenq@TTE$ z2~ zo})3GHb3%gqA{H|PtqLfgE;I`%77v6N&^*Wt=gC&E?fL$)s(LPo))h{^+rFp@upVm z);=%o$akiW$%OW!Q2CG$tD>_+|6~fENqS1@tK{XKrMyeEsYG;XG2J z>V0zODHU-tbY7d{XV~+$s{hYDr+Z+h_%>8_;&v);9B&eD0&j{B z$(P2v@Vk;tvg%mH5zD=Xdv>SJHok2V+r-s9!&|GDATLF30$)5|vM-Tt65UwpQN=yW zTgZ?_ojNvZ>X6}`I$%m1i9xtJVoDOpOoA;%EwTou2B$iwrcH}e9kS*%<9bx!Fu_5s z{UH1M&rZyz@BY=_PiYjcZQ@9Sx$ohP5G%e3utV0je_r6WX`fZD-GBQ?-cp@-yrXUM zZ0E9_@Ob{l&Kf=<^GMRoPCQa}-Nb!IKPX!EL$(Qo_apAe${SQ=g!JroIFOpqkLs3>xtFrJ8K3m zx3U=0G`cjSYD!iXEkj=DU4UPhU9excS!OqFa}IHCac->ZS=ZAxHEXP>t!U~t*wl3! zZ<%kI@)+@0@YwJe^H_H2by;;;bm@t*K-5A{%+?d>$-&o?A;hEGl z#x|*LSY9DrC0;FDGF?4fMn9W;Kz>+!aDIq>n0&B)z<%I*W`5OnZTa;3touy+%=rxY zOcAgnhwj;N1;n%x9gsUYxgc{%U>C(ej_8emkC=_HkGP3t7i=>OF>Enx%1cOI>tt)8%-vhTAWv!Agau-~*EzHZuYQE;-9Y@IoWWQ&_Fug$r4Jjj^3 znx;4OIF>pVIz}~&s~=?TW*ugoXYFMjXzglUY8`7GX`O7IZeDI4Z|-fLaG!GTb02e` zaUXEsbRKq|ckU%cwRIDoRQ#vcRf_8|uigpaQ4R@StJylawpH;6_ zgQ_N4mQ^e@4L5B+Wmr~Nc38Gt_+7+RY&rKkuRBjW&p8h{PfY=aZ(KjO4_p^=U0k1b zZ+Vw=lyua1{_{-hnCDs6zN&VXb&_?Fb)0dUab#=H+@jj7*t*!n+REJ8*yP&$*aX`W z+Z@>>+cMok+f3b3-D2ae7kgpn5s=+XyhHZj^o-yk$x)CEHZ3(RG>s}5S3F4HO+QRO zPv1*FP~TO*R6kZfQomT+T{~PmU%OtrGJn9n!+yzn&U(>$)_U5!9oN~qczo}Yw_V@p z+Zfvz+L+o{*jVA3<(kwy!?~z>UiKjKC~-4&J8{G6n%YL$UfOovj^3Wyw%*3s=GkVw z(Z6B1p}0}M0l6{0QNDr6yG8*{`UA$`jPSt^sVy^_Ko)K`eFG&{n7l+{`US3{3iM~ z{7(F4`hNJ9{GRz*0W#o+S_RtXXODw60?Gy)@=xGb|L3b`re~xl^^Z~xDGfdiISn%n z!wj4mBn4Ch$P(}Zs0O4NcpLH(`VtBo8XE>1E(Bvw|lp5H-5Kn zcWgI(_ieXm_oVNFfT1w>lE9W6TOy=BFD7q8$Tg%rbX*Wfh)B>-a4D~Sws3ZFHflC& zHehytwtlvJc6~Nvws>}V_IdVt)_*o{c5e1=wrqB7HhA`Ewy73Hs-ebw(mCn zw(fT9HvRVPw&?a`?*f6tK)5sBj2Pz({tWpHks>@vl#(!zh=|CLXeoYuba3==v~hHD zwDYf`k-Cwxk+qSKk)n~Mk*AUCA^)M=q1mC^q0*t%q2Qszp~a!7Qp~x$=^|dV=)xTA zoXi~UoXuR$T=$&+oc`SS>FVk0Y0&B6>EmgZnW2-pld_YwlaQ05lckfVlj|e@quis} zquZm>qt&C}qr;=cqo`EO8H4F0UgYq69c-OU9c`UWT~1xZ>a3cvl~yGwD+4PDD-kPM zGk!CBGj%g%Gix(JGet8?Gfy*@3%(1v3$qKi3#ALI3xNxV3yTX8?Z{Ir({-%a!I@jA zTZvn$TZ`L_+sY(b#$_U#~%aH3Z+#uXY z?2zox%rM;`-AK)_E%9McjveV|xEW#gY20bjX~JpBY5HjSCRQU4X`rzt#2xskPlfrEpChJ%TNPCdg~mR7u0wpQw9+Gf^f%4Ym#qLn1B zOf#7*u`JmP2_0z-aZOQBQUasGwGuswtg%9H*>u^yl6X0@ay(`hW;|v#W-4ZGx#Utw zaba)0h0odTU=X0TMpd`*4y@{nGb1?;rG>>>#^$$-Na2UAG5E~ciLz9=lbXS zXW1Lm1J*s-NzJHkVh`_6(Sl(N$=OMmqpB;NU z((4$!esDNq@b~u<#=>NBSvRp&XU7}CiF|w0iw20+w^&_=$9i;eYZ%DfTD%0j2I+?Kf*bwd)H?_QL-W`}lH`u#(cAY2gL~9@ zec3NZ^X_Ur5B8<|^xWH-SjpiApYRLc@W(r__NVFn-7)@ZI00AzSi?$s>VaD5-{JRD z^gr;>F%=h!E>c78Au>k=`N95Ze|j)Gk|)cb*xL%xO==M0+ds77C$f(n;tC|`Z`^y2 z?Eoj0GhzqNJm3iaWp_%IR|dNL$I{=KBgmNNu*4C3sv%DEwP%!&_BfZXEEKP6fo)Cm^S)EQcLY`9A35tlD<*NT!%wO zHZ4@GzY5C@$_>j6z#ZOTpK0z4>4xbB>V~>fhbzohhtuJJc4*jp(2K->EzicYt{>?s z(n;D36bldwB>Tsmuci%GIn5ZwL_JttML$LP7J)VX!ct!yYC=P?0gACDJaaXsA$Ugs z-z%P6Q3P(9XfgR6&gfOmkeN6A@xeZ@Xnt<9R6Ty$8+ZZV^cP4=Ch4UifQ@Yaui zp}z#Sv7mJf)(O@T;Z{A$e)Ve6U+xs)ooK|~(Pz>MlZwv3u*6EUUxU~Fo zebCnvd7}i-Hy#OtC6%O>wGNz)U(hEev&z1`7*s|xQk4lQf|7cJ?9^}mm_1JGkUqvm za<|omWuO$Yd+AHXQ~hl1H*!0?+Gs;90M$bp9Xmz&v-0l~^%iGW<}!Wj7}sLJBFK(0 zc$Nv8ZnaMk*kN$eq77R}27O=&eK;*R%aqR!p*Gm}q4$9b)!Ok2wV|tQCy41%8NXQ0r3d)yBfq{;;J=cf;gUKq6YA-CDoB&Cb$#t-e)utpDth%x(&kt z>JW7lX0@pS9n5F_h`oV(agx_@9qx8xT#GkGn+uDI9*gRhsWt;>3ft^huVlJUqrnU7 z;fRLOVKcGq(}vs?|0ZihRfRL^$s56txmOivxeI{HnfH3z=W^vsO}<;g>x4S!N-%08 z>}$^KI%_x!_Mj^WmrlP(S1^`zRGI@LMS6GQqqfy&`QMay~!9i}Z_uK_##TVj{`Ef#v_VJX!VUKsb#+2tP^`mn3{-sbi0 z8i_8(r;lO}ggm*c_Sh9#%2-dNlqXlcad+g5UGzOJb4WT(fyC}dJi$-5PH3f2^KW|= zd=`Y||7}9BLd|^*{i>O!D|!c0SH{c7jT|<2T3>xHjPmhI2Zbc;=HjMy1#J;P9*{gD zG16~cd&;0DRVU9NhMh>G*Ey8<1I-!9!yS6V##ml!aY7qLi|Afr4-!DUSsX#hNJRG! zO8cWPsP;!r=wmRNY@dV;hL&T-vcJDFFsZIK?I0Jrb?M`AD*!e;?zdU4IH4#^{F{EX zX$2L_TPgu9h+`M#l|I5C%e*Y;3wZXBw-}RGSUa+3i5N-tmI85LbqQdeg4=+o_(A-U zNy}t`L;E$S*2!NF*azMHB(JCFIlC#K5?23)MB(Ew?enV zw*sz09$F>nqG)-Zb%%~8Spm_JHqdcQ$0 z9RHts8-|5mrGFjhFmx&a8ldVQP5&$b&?qLoEPw-ObkkmTpkWO9>9l7$0JJ<*YoPlN zMR300+y4SNaJXLx>kdBMKv1=1vInU}X@z`6v_p7S!itMk2$GMWmp~Au0Nfyar3lFV zZ%}C)-_|X1{EnJ_p=nh8KgbPv<^QSEw`yAd>4w$z(xq*!nt4NYvU$!bbJB&uQlt)9OR}%&KTwZM{U7+0 z=&ON#Hm;=$^u{<=3DGe=RsMxEO^o-HbnmszM$v2ky@_6uUesN{U58zXU8-JDJ*2oA z84mWOK%xH~epa+FszJLU|C7`n5|vI23LfxJ;I1$HCtSdZz%4g;4p`p+z8gB=2SF_c ztULQVtk}-pF6(AzJ9aDLE99+M?^3U-e{?S?{s}AgW=NnW$){?+@Ba>+%Ke(Zu>Y-^ z@liIvDVu!kQ_lRNSk#tFIrXJveqAEr$fx}OnLv9iZY%zOV6qvrp(^CYBGIyGtZDsF z!`h*WwM`{ct3tYZX_wL>SAWDi1m^|AWz%%k{=bo3r9h5FJy@1BA(+(_Kkxs5D~#Jp ze>duLQ*F&qmgQUpYL~??d|S@7EMIn@kG?HuJXErrs9R1qEN7Wkam;8q<}@91TRJ`z z`b-D@_Z`MRkq6s$-qrpeQ2Z6^SFx7nY($r~qEG9bCaEnG_@Ns5p&E;D&LGGmS{i!e z@ml>0Zl$52;A_4e<4Tfq!1aau`-mnOSqO2_Y3S)I?13#K4MGse-I!i zESOnqX8xABKmUVh$E-8V0&dLIe;qaFT7N`Z`4(NBtbS8^FENY<)J@HA9C>6`wM0I; z6m1`$TDwId;-*s9eo=4e+I*}v_l!QPuKUDXh1O)0|DU>r=5=k8j^2lQbI;~;gSBt` zRZZg;_6D4;b6NMfg7;FN&|?74C#dnVoPrEMHB_ z#8r>2?VKixkGSnmaf`c0hs;QI!$8N{@wpwpZRDeF^AGO!x%|Be%Ja}!Ep820^Qtcj z-Ml8sc6AHixpmw2^>SUu)h%tar;}UH_ILgRAI|nU5#L1xG~~#6RpU>JPGJjWr7w#^ z^U{XpBdfxQ=(>LOer3sk>IK{8kI&pykFL|l4cgYXqOQ{erl7B*sCW9Y?+;AYEt>h` zPvQe{adz$v60buh(bp$8W@ssWIgT{;6gJJ@xfH`}oBqrp!!a`U;|oF-WcI#ONrT z4@qSw#3`a>a3g35jW9c(zq7>D{xjGv@71sNU87LZi<}ivWhcrhq6ey}JL28pS3}8q z@g&#`|1D)jQrS&-hO8TA9kkR!oNZ7-PEgrR{;P;k=s)jBkf~F>{PmzcLpIKjy7iHl zdG$NMSd{iQpFeY3zN6NE>Jl$G;4t-6lJ<6zVXu2;>H*L`zceNfwO>Pda$)qfiL zxy?e&>-o5uWzr1#e(xF3VGyYT*qv?A3ethV@AQb6y#Qc;j6%y(1+hDIrxUD!`L*c= z=@9hluLQo27c17NBUJm}c0ut7iL(0^h~{|YM9J;ElU15bfIkiS_FGK<(yw1S4gU1> zOTVM!EdRi(G?)cxK={>WND?i2{0Ul$!pu_v!LK}C0&imdvv;EebHTwXSOuoX{wRg@ zzbqU7vFNj0h?b%Nf>*S$305KTt4;MHSTz0VztFx|D|crXtit$J4I@|_{pt60IC7+6 zVG=7<24=r+jx?QY+7hWaYvUBG!tS+aF%&C(0s^ma=Mts@7}4SjsNaG&L9PP-cin^_4JiNGj7;Li2=JgKXp+2T5qz(T4;2TMhU6d( zB7Y)n<)0<02=K1_u-X6naNAjg%s&%|cz*E{A~X|%XaV!5-$Euyjtby+lL~?~;C@TM zBUvo}ed*K`dCQ>m*v%HNQAaUf&dUc~A~ho$U!NYGbskshEWS$xDj|#dO%f_y4;N?U zYf1?36-9m zA!qybpEJGU@j1Cph%A~F(4#}vS|nAbo$8}w%xqweR9>homcv8LGdJXsy<3ojV+ zp_n&JepPBa*3oTayEn`d&vxQOILVA~{f;*aA2gi7pjeIE0bR@rUb9YHIccimJ2!Zq z8KMTd#H!?e1+Jwh?v31>wz83Iokz#@=Xk*Rr6Xx^>n26pwdW)z@_8%d)Kzus)n~~0 z1#G4=bK63b&F68r{ch~*d|38*Iofwbp6xr^+4+EPvy_u~d>C)jLYSSl(uf?^o)4`mg(5~y=S1X##T%y1q(OnK!CdL3w6S!u z^s-c0{ze!lh7;$@P08hvc{FMpzKi5tOX?;qD=qe7iEOK8i&E>@J+;cQZ4sv#hhxPO z;j4B0htURQWnyuq(pfX<;9UR3es!s$MoZ~ASJEp9;sdY$I?(;R3UHfkS5>)5W${lOwzPP+`P*Ns6($ zYNk8xVR)jIC&{9XHvJ0Ilv#7BGo13o*n!uw$&~8w(E!4{e8# zm$zHdEA>?;NKDYei@uw^oB7-BvyIgxb8tD-=Zd`qJ$s_4I`K+ry36Uh$AzX< zqrBUoib|z=>Of1IO9I{{e0*r6$-2Zcue_O*Zc*Dx{Gw)orI+!^8RXNunkqs8pwhm^Ujesg>wXtw!~|N@{b? z*X?KWTOH^bE{l!a`L84j7c;5-h~L+*;)?AtJkKzs7*?C9@}^cSR2EZ*vC|}ofzU+w z3xOu*oW1^LG@i&bYMuW4Anz;W2}hZ++$gAzVY4(=>!v-(WfEX(3aFkM$rY=`;MO!GmYZRb~0GaIw0~_iuI*C!MqMIq2p{ z>r|Pig6#A)i|6d6fQRq)B|?L2@smU*|7T9)WaDKc+ro1Zjto}{YJj67wqtb~5?9Gu zmWm_kWIBVX=sL${H;1|7^Gp?A%gZK%`N;8f+Je=!%4SU4$1!e>C+Ai?ZtgY<55rgZ zBg2{EJk$KwndQ9WLg3lZ+0oh3Sqal*)H_BrV}`a0hQ-pJfojQ!DYv~l+Vx55RasNl zlR?S5cs6cIyjS1T`k`O`+Sd!+wFC%Zs7?Gj3Kl$vrP;mIJ`J`w)-*fCF5oiVo;{>b8nNp*k6Rzcz0 z1UiO!uy9txm2ICVMJ}n-_&uStiL00@dAhiP$EJ~ynvuFzqj)qo5#9e>;r=xg?qH?g zVwl*M2XYXnii@^blUUgdiq>2|CxtTgYY^3hvss<9O2abSk#qfIm9c;{+Zo?#Tu`~p z)2xgxEpz&_qlg>_iagfIF}poHi$=YddhVuWuclq3bur#aX*ILvP?oC6hrz_vg126= z7WDq8)*FQ}PdqAVcv9V%+no0HcKR@XN3$UhZMxgctG>qTE@Eg^+Ds)?w9>J0{`Hty zO5I1{?mlQfSQ9JW<`yDQvY}0|ZgKj!q zS;12EX89(buEyS3bO~M)_xFl!>K97$akjHceH)d^vhKTHpQSykbE{J-owpup(~Ogu z^y)wj=K@o$wWZ0JhsB9Ug>h?L{F;|p@aI4&ees00#z<-gd##45fF*fjztEKUCU#R& z0CRxnx?Rv^shxX6da+!5(=sA;(wr{}%(~2FO~!iz(V~)q`kekTf2wI}S@6ljaUX1W zc?O&LP#pTy9>=;-A_-+gxEf-&LGaulQE|VpzIf6U%=tK8{s-a5>bM%kxLT9@>J+i z?Mfq}T19G!b{efH=&qZ;YKv!q*2-3{w6w*`;zQ!<95x$;b@5=n>vVJhn0O)2%5x3?0I;^&Iv% z|EMe7g2hpi3;4-yb5+Ofw;#xEnbxsx57t844!fc$l?GD${j0q|I4Bu_6yY)(e53Q4 zi$2sPC_1+TZ%SrJYF(BgScNi>aJQ9CS-f6IdAwn@htMj`0S2t|`PjU8$9PIg0Jns}Z!;N#CM`u=6KXLJLpqZz6uTh_mxImq#zI)7F76xXCK zb*EwbJ5_oKSS3C^wy!RGPg|wNY|@<`D1E@$hszui7Rz~p``=Pt?Z7LDh1av45{qmK zk}Xp-o>L{CAK7i9U7jDUJZDa?zGirW8dsOtOTN3sY8vVuz?-fz<8ivH+1hkjkgDW#(fyfy2om-vHa(aXNv6>nFS+`Oo>gVfp2& zt6}`llu^Z;gwjA}1sSABycYE+q=3znp8pc@P0d-m0L{ul zyOrM0_N~7`%Gh6-zJV6WB3~0%kY^Xp1(O<)3r5=5@de}9?haJnVG>C|;b=ywB5B=5 zfuWUwtMVb=C2PSv8_%pV|BZST%e#EN3l~EXzUe$>_l%bV{*X|3we;jvX0=T?eV4Wsq$+lc0#9^suHmxiVj?H82pcBfU1I%Y=9g5mf)qQO@X`d zyQ3b)(r?&#jax9hpqqOtXF$EcoqIBE&^BP6dw!eqv7Y`c{d=y4dPxj%TzU}Dv@2k_Y;r`PDJcETBARv+ySaqtQ4^}Wj=FHrJb47PHpANm* zP~MI<(`2=_BA-Y=YJj{h(@fBn!-$XZ2r<$Tf)^~R zOj2Nhw!n(?Y7&B$lq$w>4l@3;*pv33j>bG$ z`VY7cQ0sp78!F@;_ZzMcP^ewt6#(x*xLv{(2yg%B-D~&&$r?~D|H>OyX0JlJyYWOo0zD~XpW&AV65VuRdPN!CKgP?b;mn3&?5l$RG zF%~{A#h#HKO-kkzjqwAvBdQh3ZN}&RWf>}@iE9=ixB9ft{NIP|xNotxBb2`ECQ!<(Yt7dT9wi5H@ne8 zjfnHv38U+c{Ay<;7}#9pBGS63#Gd-Xquet<%25&2Ul6O&DHdl6`(Z@ZlV~#9c zqCcNkzp+fYgQP|4RlQEx4gS1Eq4#?#M*PYv4er01AF_GI7-Fs0iK3mPUrsr44@EB5 zfnlu(Y>qgL^^7z<9^NwyQjQ*RKCNAVW&HYMNnnb!$ZX`;#v-RcuUDcwATt?~8-&0Q zLl}f9^oub9wXAk$QKi<5LWL2v0ux#(612S6Z&9bWtX79nrP|C6S8A$%)RiTv0#jVc zpQxOPp!JDLt$>trZh>AH)&0mWnYx#Z5iF>&j-`(JS8cZMe%T{TGA6sd7RT}6`;x5E zd{;Qs8NG-nSZVd|N5<)!69g982A&(`TB&xhu91+>|iDkd7H6n)yisBJw^DuNhmP?vhgZ=n7)`xU`H9QqxAuQ#Y2FxNfp zG63F0({Q@b|GEk2-stV2)PdDHa2J7|cM)!=0qR-E;1NZ8>MRh89gNt4m@I(!QJHjU zZI~nZRV*eDkvX&szUH~48sL*TtPMU%cM<1cCZLu0xNAJ>Cji~PQ8q{pep5Ek8&H}D z7|xL#r(A%<_yb(hvG3T@!7;>>A|EEM3l+rEDYY*NlLZz=`cc}(8m3y(Ekrh+@#pCp z%Li>n!h6<7EX%a5QKOC%+r5_9*WLb1(b+sDW2Fga*3j6+f zVwqN^Y7ti?akcqKJwV-cs4x8KR^YVxS+ReAGT(4w2NBAEE+%}EVEgaO02A;0`GCM@ z0WEHArnf=$^0O!Dncg_2eu-n|{vvm2O~H7r8J=~S$pp0y0Ivw)V8+o?6b`y+ycq=U$zTPR_()C z7^`6R9jO-RtJrzh`_bJ=;$cSBq*f#QNCs6QYF3edrIRmN+~Q(v=WM_Fy17YpOwOV? zO2bssk^P4Z|G&>sUsBAHt;-L#6mm*wve@OqFHl=8)dA%@W+iYiwat;D^8qjByKGPC zyUjZpOfQzXoTqF&!gIFSM#gtXUnhpcr~jE;?MHKq71K6Zo}F6a^__b+Z``L^(YlE@ zgf*zgUf>Te!9RBqqPU@=djZfPL}?Nl`bY0Y(E+76S?zoBo4n+`A4e}R+*Ofko!6@iT z3+R#EYhWwTN%#@;#=V#ef*r}U_(5$LLwPB2mT0{3+<~e9DVc1Tm_6sI)^P`iYLFTB zgG9_QCz39rL=b5VR06bM>4U5np5e3Y1Tz{P0Of6|E$HDxE*jTE-|;cJ+U~fY#f5Iw z#<@Gp-KsYl)DE=_1YQr=)GN6M1YWPuOT_+z<2LhwI%%e=Ns+ zY=is3=8V7R8f%}T6u8GR5uaT9jnIQ2-8_--CN61^tvdH=`56LlS2or?_{)8*IE)%%^~#yWz2 z2Csnl1>03D1=o*oRu1LmVcnBU2^r6)lXUAECcz>qet4qa9?qJ%<70hN#}93gQqWK8cr z$Q3%;Zu4OG+&Cp)}&Swvw%^WU4!37Edj5`X&~N)wLvu!(@U1PkVAALg=|j<&=i|<3Vk2?`&ujdmuYn1Z|V_e9q>OUgMVtp1!~H9YvWFt z)DjU2K>vpps!3NX{x@GJTsD8OWL9s%M7LPtLZOQ_qC?1*8g*DmzN`2){wD(SEv11e z>i;!Y^v{dF6gwTplm`6B&Wp_p%+Ldj?vUeNHAVP^^-7LKRK>e z9Mx&Gk4klg=%+{BWQu=AA@*a^O^&M(^|FX7w4B4dO6~I195V)4M_fM`{!64APhk-k z$Vpc#{P$^O05^4o5Xs#@FPg$4Hk6XCR`74r$N*~U3IUS3fo}MZ7)V)H^WVhrWI}eG z=(rkT(f?>AaSYRiStbf-OqPcgDunVkQ}YunsW_k^X$}QwLZMF`vP=@t zm>iEP6p6U+?m>n1h4vL$#8h7bUdVY%w$aOEE~o|^p8qz+BgsVzK&;uR|4?}AMssX9oyJ!Q$;1hIbKO6F7MZp~Uw@yHVTpLBw5Wi85 zxAH)i+;u?=w=qumf1+awW`<=gsUK~9mNv{ExNg0lHvkVo;P?n{ef&2x9Dx13d#UJ> zu0uU6V+0bFN~eeM;d5%juB6HQZ%8FOFF-UV(Q{eb@_ z#GvC&%uY|&h2EX6VOMwcUKQGaC7Jcso}}+4u=*!9l>vKa{bEcQFEt`Mh3$uXyRLHO zKyf{??JE{_2Ae|o3iK$PxJR!W+fNGQpmfcGcx9EA$O?XX))=e>3)qLa=Q=e7k=#); zf$ETVOY41{K~&@YIiF(X;xq*RJ7ncacmHoe5eGPK7O*t)j_S<@Fb7-~cTeXG4kF3+ zzwaT&T@Ghf*A4uG|Ce3-v960ik_&F&@IiSNAWh6W#vk$%P?QHhsA>2+af0aF0$0Bl z-Hmg3Y%IupAFgYRa)y!G3G`DJRWDr#Ve9FGl{{)Ecl-(K4*i>ck_S= zI6dBi=&8R+>b^zbcjv|t$1mZWf3|2A zsNtP|?a!pmt!LvP%Z%{Q&vWhV{BS3b&%D$vc!)cICoph)1pjdl6P4p9%eCf=m`ILxR=^k#fFziE!$c3J^s z&joRcHTvg+O-=T>C(NN;`8$BZ2+@`Gj`|&o$kz&=Gm*l$o)9$ePf9367KF?r;a&I> zl12gwnTN`|KoFvaoCnW~Ob|k#kPE@P@H+$(MArYe8N2|b9|>>F7FxkG=&2{Kn|4f= zl9)7kVX@-OJlTmU>q7&!o7#^iC|#acT&jgykgPZ}?)Omlo3ngOo|K$(d(>n4nQqxW zWy@Ir)wS#(J`2wPPx|Mbuope*%sG7MBn^|{6Oa8K`+#3%8)h#xo|#2oz)9}z;?>73 zoR%$m5B(~Zdd_H&t2{zb&Chk}IL4)g)}>x`lQ!VmLmuCWV3)H@?CwIyic1vVG5bP0 zun4^6($R72QcWS+7u%dWam(a4G{B6%*+|#BuCR608Ral3y6neM z1-|9h!3@70=1@6Gob|#qK+kkT$8^&~nAMDH4Zi2i@9}e3BgkszzP4@+Ru{1+cZfCb z>?V{{p4%9@wMy7^nrip|WM}n4``YaG*zXLs_oildZ;vkmKfcXyyC$@xj@p)P1DWIG z@vz>*OE}%)dhu+H4$i?leT%=+o#X85=Yjb8i^!{b<6slq zum-Oy$c_a7lfVTlA3gm{tr28l3{qsrp8zLh*|9(Xm)ynVj8$F-}tpQTWg{p|bBR?31dadR2s*nLy zDgh!_$onx z8R0)=J#H~<9!GoGO$`NRw8hEJ6K*#$nN28#Wj;qrh2`iorJOdD5-ZR$b=`6`j4~yo zay9(2BjLq4*+$={vP!{4pb|9zMd+0>rLeNZJTvPYv%nHHwz8y%G8lnHpr*3KTrH%f1vW*T3mFSA%LW_PS|2PjStK?Zk&HZ;>bN@1w ze6!J#pZ@;sJ6z_c`j6qK`dW?|?>|n+`4^RPehiG0lkfoC709n%MAp`yQ+wyElmh@a+Ctr5OXcp0bQ&IK+XQjz6e-pY0>jy|LW><|Iqm; zBlTh8`2MSl`aztwl}v(k{xS>N#r|LDI4+ z>CjBIYDv?!k*aD**0wQI!xC6|y?60%>)IdX^CPoNjY|J=%N?^v4NGw4al1we<@2f* zH8kaOl2%OPR^l$IF}q~ZE4oolC!1vO7IARr)gH~Y)^W}aqH)c-f8gIbn)B%n)p_eU zgmdZvRs2R_e7l29GVE2IZ+k}1KUFB4N9~fWuI73*+x~GEOE*P{v6B97(U8r;6ouetUQ#fY(726?RIs}X3T{JcifGafN^ z78cjjWk4R^*Ku%t%rH3_5%;5BI`FSI!-Yv&zUcqbF_r9nYta`x^XS_L?k#1McK;%e zHomDCo>uj?{DgV@T4FnQMW(2(gi2Z(s#xq*Mb4<^BrqxAoV&+dU_)(QQjPA**jZT1 z&*UDe)xVV+)-v*JW!&u?R@L5RtbRySX7vKn+F#)~4_%6PaOtwIe)Is;I$k-iw64iI z`+S_rJbLA0U~vk1j9jA6R5#GPFs8muV`lY2-MUy&udr^+iY%O>uJ3}ecK*OVx4Y(C zcFVFybGZ(TV&2sormC%~>6$m+GW2X-u6RgOjOqrzcC?6m^jvywe=<5=a`VEVa=zeS zBCo(>T3!Mz9#Z!^ye+qtoPqCNT0_kc%v^mD&U{ZfKEH(=u4>-W+1&ADcD*F#?8azj zX_|E_cZ`4DJleR-+V+JV<}#F2o!`ex-iS1Eq9UrKnkbgUY`Z@&c{?lQTA zor2=hR$3@=z!OR@F+)C8A+!HYs_Su<{EB|8EYp3rfJk)Wl?AkQra8$oyxGBuDY( z>&6qXX^7fO@@5kz(&H|R4uFgHeNJ7HPggA2wiHvN3QJiG$edEcfQ$6d7#Y&S3QbuI zFr89^fQxj|h#1m>T<2>x87L%sspM^XkT2*!?~8QWNmmS^oKpROi*(RH8Pfb*a4b~h}oq&rpm0i~w*VdQQ za4qj{9PKWI4^OrY4*};Z#FN=2>cJ&y0p%~Ka^ zUI@#OB0r+>ZXWa16ef^CZX^)dPT?}N9^72|uI*LpS&dsCP|Ehp(QE2F(;HaIv1{vf zK0`fZKGWLf>(}vC2z_R9HmMQDpu>nX<()kAVMSpElG*mzG>dw3@*91!>-IW_cl&du zz9yGD^I=5==k#<-&v7@68uickWS~JCWn~CKafEq=Wo7U{D+_Y0UQIiH1}RFJuplJ* znBag-gd-@rc{lI&S{j(AMp71;he>+I62>OxOa>cy9QBMS=eBh&=fScc2LA9XN8aXsck`3@4w!kt@qitYtwo0a@=S*!oI_@I@ucyT2^Mc1273KzKB?) zw=Fs_pi%N0e+E%XD5WiN4zGVA75%KlhivhW!f%cUJsjwez|&VLNp#|i5-c`319EFte;;{EgY_t&i_`g?=j*`5#O3tzeen53l=YXOr_nWO}kH` zWn4$y@oF1JN0;ANK0OzFetN#Ut2BZuxTk-1@(!vid}zG0tFLayKRwrcYT7*k;;a+_ zV>#$l!e*FzORsHjH+Kg+>hmx+t!`sE6bK4WHFkqvT3;*QQ z@rGO9E{v*Nu625Emt0;tThn-V=Q&opxVC!#r!PsgmUCP;)m+ly6^1^k5WIrkC&CY9#yN~ zFWb78zO3?n8lRpUJ~?exnz{O)oJA2dk!MZ4t#iT}6=bcwy|d|-l)D~Rjl8Y%|EW^s;ipPY;q&g*;rJt+q`ND1L4lb?899vr7 zwoGVBnmbbJa{O1{ZB%9F1#L`a>f(-%iPoC`^bK{9*Yi)`C`};VieHnnm$JT?#bn!( zcyCm1f5$A6$#E0OpLS_k^}0{xXjE~FoAMeDfV=O~FcR#Bak}iE%{z=(Yif!X&o9L{>#V77fwRVi`TWe_TQkS>+5&Camy< zl9S#di(TXoFo|vO{^MG%Ro?oa-dghQin~$~mF4uHiK+?)hDmFq5t9|K7Jl3n*cERH zhf*fA#33fj?!k&(6bxL;@4*wn{+NG;5{O7$FkqO-{)ixkUAj^FEc?wP-E-7u7nB9a;=2hLavkv&2%pegD50c z1sC4YvU6TgWCEQFi=vw5W2cX%^M}es6Th-<(~QSWo5K5;i&|JrRTYkmc{4&B{ie}*|_EKh#ckRsEHhv<}UsaSr!%GBs8SQImyd06FJJsq5Y!> ziKP|fa6z3Fh=#55(8edsDa(pc7dj{<(20_!lNu5iUKAy4{;01-ZQ*iE%3Y;d1u;7LN?QN#7|5{FWn|x+x1bds z!|+tZ7gZC>8ag}iS!iefR?DBW=*l}6N#vm|aC-tL`-G@XL`#a#%lI9=<&I&->)QAt z&1YP0L$)WOQa#xQa;GN6rO?Xor$Mz_+Kq!^55(pjrRioB_PiRS0UV*FH+ZMrQIqKD z*5Tugefz6YPVTYAE?_vJcQfx$3fw*_jtFcgeW++1xF>>W;aa$8U2Z5BY(WlRV3&Ul zc3(NAm)-?+TJU|(I<)Ua-Iggy4`VB+c^{i%xRnL&cps;QY%QPLy-Z6fG5o9yw-@&U z?yNiuLP?P`5Mw&Kw|-V<(LM^V;ftvx8V9dJZZqKQuYxm0({D_LU4aXRbBr>lqAmuv zjtI4n)7nE>Iwz`+(OPI6>$|M*%IgTK@XqnKs}fqL(qZyP=fvgC;o3!6`PSy^X0M)U zQzwtg<7C!nUgyW;ef}-`z+=3j#FjDh<;kf5HQUN%tz%BS`xiI!(spLybA7DNW2NCM zn+y3_!$o88a(u_c3>-&qleZJ9Hd0anCj)RAE3+&<)ncu>`v z!KfOMN*ey=vq9%N;0s>Jc>Qi3*x5agEr3`ygjRjTw)AVZ&`d(3YwER->9$x_%%2+W zm#8wvm&Gvy#kRy(ec8Lyw-_F%nJ?IKFVGf(XjenWx1b&fn=j%Xkepom-Y`jvPhe;Z zUaN1)FV-G=C@qfr zy@4C6af05KzpM*xozZ)nZ*e@(w)>xNy>Ea&;PY1y7#Fv~yN5kr5WFJ1d!%pVBXo&} zZs|9oy$66_SiO8915yOQz5~FGjsMS9!_N$B54&&s$oCfSTSvs*($_+S&xU;a5xF2y zg;0fShy2wD2)Bh)>fs9ShQ1E+MAZ&ebb(Xa?^N-B-u-+5NUKFn-t}+6ep3H{@<3PK zD#7MG!mp0O(Q{okJW}yMRT!e)F!= z#_reaFV_Ao)%;6oCi9zvOx(;ke>|o^`mkz}0 zK1dfvEq_-Q1mazTk@(wXJwU16^BcDgz~VgIVqJVGVPKPRZ^KvRr2h&`UP;RxtSWz6 zkMc4Y;^Kwu5JjYbMn$nOObH1M4K6N=51TqRl9Jc&>eRLprc&lGvP{+shTvaKk!w(Jr{}889=rw2wORp0((FDO=c(|Fx)~@}Z+}F6SN!#TZhgWo; z;gaH{7Rjylq*Z#Du?S0tIc*4 z2|LPsl_PJ;z_b|UMlJ3YY;lVz?yBAu>~X)_rWFe`j7RI!T$JV>iw+tiYwtDAU#mX( zhSNB@R@(Z`w=gPW*4<#oEt3^FC{#x+Nx7I*My(|4)`eCpv$Kid#;wR-RO7OVURCd8 zoZ|1*Jiu7VoFW@xmIXU&f0ip023gbAn{CT?*rv{=PkLUcon80pV?*-1yQf9`{?DrQ zat~fsn)6`2&P0g3Z+myy^z5(#tyb?ncXQRGu0H?lZ1}EOJ`^D)J3q<=3jonHlDTg2DN;n7ZAQwl_C&`X2@+}B#&n6vl z>G7Y(jDoEA1^YNRDYj_^i``(&GlyM|L5mepSmy4X^Tx-el-kZW zMtal6V4tYY3pMnJhE)!4&77+dX_nj4(mnj+7gh%~ovhL`*Nu*wRx>r74AL`M4A5X# z1KBSl9GwQ(*!RL4J!h@h_l(&0j@AI9;VuIP4>NBjO-2qhG(;c86-`RZG%zXlUpYIv zf|s9fo^ZFe`itLR9k{b$T^+oM7Ga0BPBsWKBEw&9*}7KM+J-APwsG&e3?@Yu`pe&3 z6}hX=juk%}kA*oKuYKIr+@$90Qm<^EIf zPA+10^}w!u=Rp+_Xi24v{?bcA!4!M8OwisV6xGT?{){WBZz|G0Qj{GVdqme`N@POj@s^q)1K)c#!) z7TGQ*1~?F#)oRv5;@`LRk>>~>z;^S=P5*7&i z3&t>t612rs1z~f2aG_3IZ=3V$_{E$=Mqx=;@rl?A41$rDMgOzFA`=E&$RhJ!%n27U zaX4}tr2kpiQz%6e==I)0?7-tfa-R zBpiI4QRQZ*`8|8!s^E9)wqg$1KG%7!sPaF=$~Ooe|5K>k3wdf4a|QOj81*#0NgT)^NAX>8(O~z!GiEP&sY{JrGJ4mIdOG=yu7+xsV(wK? z8`hasN&Ejtg1#^!kYDJjRO)Ps7esy0dhcK$Av~8Dm2lNJOty*s4!nszA4&Uv4e!#I zLX6g=Cqk`A4enAh+FVRZtV~aQokHY~nB@!Po+_Pl-`R`gm0G5cV&%$eopWc2O4SW+ zh5s9p!;Hey{-MWH++7yc=hT__A+}7J^67g9eHXYhjp&Fb7=b+#4-qIt5{{*~5Quj*^r$qccp zX8q^#18IG8KcU48nMsF=)mk`KZ$*aOJXVy+QWG`7d9pO6*@mzpMTW{eQxwVa|4pgQ zNxz}{Ny(zmXd`Id7QAT(cexg3yGL6eetQ7ED-dTkKuo&i;r|>2Oy>mr$==&9VyZ6o z!u=F^Bi~DI%RUdcJtta(TW2}NR9-7zcy3T%8%VNI59jmhrH3!*o+ITGx82b6)j6(1 zhRpui~_L)Mbsx$1DU>D@p2644eM%MRad*22^kIsUbO=!k6_MrxG3y z)~P{P7QE{n&7S}`U-Qiwz3Aq{y6OAXy0L%k=ZEH1{^{Yy{jk12YZunN<#y6Me7YiJ zTJdnXhZE&Vc1G=;&Vmuy){Nz7&HR>~X0?qT*;b9=s7-&?WwhWqS@NDH`^=bsWiGUj z*7Dv3FWCZtwvSlR!+uNEftB31Dd~Z-<-h1cy|m-$!p-GlR557y@|$Wn*anmxK@=Dsy?=ySgM6cQRam-1&g?t4E9(>zt2YhzXqfXu}Dxd3K?DBH>d^W zw{&7wv2j_Is5~)m_dmj{tYf3HQc-qx3Gw+E*oOxs#Q!%^232G7*I;s-Jjk_8BTV)6+5;yA$D zgZSW%PVH4z%Zrz7ZJLJ7Ax-&UFa%4}$#JN#+jde|!ZnJs%5Y1U!WuSCWfN-OwT`2CCv z{u26V=ql={gwNW7W(@%=vMOYgnY|E^T~F7+_CgnB4abusDY`295-w>VD}{0h)~42f z_IA-ek9Bcacp0Qtg)Ie-9OT~cwSCdF8#7bmjrmp4Rs&^toRP{i=`y8a5N(cUrw+*!t$hL7ZT%eolZoA zgz2~>WtEG{&c~FqO1&_ocut=YOh3P)ux~lf;XLzZO@gKC`-@k1=aD_r@}%V-Or2gB z1UFO5*oPN2caStbrW@s+MU_eJTlVtEsoMSp?;mOpl#kq8P5mgF$6D6u^?lNhL^h?G!?W+#fuh!|2`$V)_i0%YzSwYpa?|xfo z4;}E|Scz}zc8g+ZT=3tu!`!Kqb9b)|9$p@O_SuwHO65BZP*UYP4j=f_&ZRd$i@f^z zNcLtc?_PQe_1w>-q6%tQ0Qx+tIV&KZ7OyxT(3q`xrES2?%hg*$-&=#99dwO!M#|R; zs*R=+dj3CvGx&RQ*W3PO8~ckn_<2^&HwmgiA*Zl!w(z?+!fdlGd7VRZ3orE8d%S8Y znVnt-9G0d1c!o-$A3X0`(P=l+Y1f0XL)Q9y(Yi~srSXk%R^*Z6jGeWlIt%YJuOZnu zd-2-+GhqL6ztXGEj9b^sqM7Qj@}2Y$au|-q%f`uI%3pRpV>pj_npB|EJ}Z1nD5}`93ovEGe4k6j@IF`6?c!Z`Ld{~-Nh6_~rh8FElQsLd=5+V* zhbJ!g?i-vC|KeiRYl2C+R`j`}Y4XDwe&<`~BGu{Q{q2i%9@c{g&ouahhsN~qqlZTJ z@S`hFHu%F2G@sosx%8fA-)s@*W1VdwSyrz5JeioU?v8h_%C1&cQ52(sGLj^iYa_L* z6U|{)!gp{w(WszrBW=hl<9XCx<@cibQxD74r`l1%m3lEQRzHQ(bJ>ngMp3)>Z!ohXzsIJ15A0{_{bDy3*4tmo-t{{Entk)(zCOnN z?#sq;`~E{0^*w)4wBo;{O>n-!zohBH5;kbJwCVMg@Q85n_|>t@ahCSvi#Ckw+z~?j zkqT~PUt7$<#lo(r$(ddYjCI)~gxgg3M&fL4pU1}a!(5J~Yr582<&DI%eo8R2LOA5D z_hy>o37(Z5{KoXR@3%So-2$lX4(GZDHYUVXONA1q%tOWbLodIw`m1ec+`Y{+1(6w- zKZ~&NVs~YWMRO9q&1~5Qtqp>Yk^D&okZq z^^5bk&MMg_r`1B{GtGNay`~6`QQbFArd9S{S!Yq(yJO+3cl*`Pw)S5Xv#R-_)$$`9 zmv_`GY_9$ebDcU~))$7>rO{U${VHeeH=C+)n~JYjKbF`h<%mpOt<1=crDw1U5}KMB z!N82x!ej*d9>gWTtOP2g%x%alnluwr7cqn;e=pWS58qh_PglHYGfH?{H^xvAT!+ zmMkMAzDKnTE$4x~*C9dqnZtU#++Aps-Yjd^l65Od{(7!r?7pTW?fBepC#8)HJ38Km z?ns{(xy-xdOLy}$i&=+u3;EC4Rz&kZe|$M)K|9{fY(Xxs!Mq++`{(;Pn+FIpSSYJB z*ziQ^kh}{feJ`!>dus0@8AoL>C?~~v*brw` z_?>rMU-eTPw~Qg#^t>FeVzHuQS`ie3VooWLB#OirM!a{B@Wf3JhP?OCLiX!tncJ4n z;ETK>r*>EuPxF_8WA$B|qe-uB;t|@slTcO@bc1HjC6FbWN&9cX2@wQ(xq%2|T0+5z zn=n%?+DY;v*FlEr6e{Nmru+T;`spF(9pXY{>&-~NVQH3cgH_S1kM09cNDpMer|D=AV4#5`g#qw<0ud=+p5;Zxbg2?R5Ebp;-pj|23d+jLon>y~8)FQ~>t^STv4SxiEKio4FiPjTE)ciLfJiuYq&C(~V5 zd2W^nR)U>R*und_zZa?Gxes4qSs<1RuRh48+U4G)h~DhR#Weq7 zjP?VY4$OG)MV$^ronE}2BlYL>Z0z>dEnhQ`V=%A|FwgE6HDpUHBP~NM zW1S&BXpPql_Xm9mwgFfHW(|^CqR|^=tsCl6JMc+(O*3jsE3C;nvdOc#ebL;x)vEcB zYLJBDU#WySGBN-2uQpUm;_MNA;7Smk3K62 zE96Vz11)4r0w*R$KeP-8iVuXXT9!ZV6ffLyPOyD~lf2yoR1X>B z`*QvB3I@B;Ii&Fs>X0$;*@llBQ%)2Ndh$Ps#2I)r^G&+@OEv|W5Tu$Rdjcv5~sM0x8R0xOMQtLXbyy(3z`L^1Zg ztTc)Wdd0s1h1ngeBH5Cs(GRQWsT`Wo^Lf!)4Tp%Xj0iV1!|T22sT{rezMe+}s;*<& zU`n;|4T=6ZFho)LZSXwBs6{N0Wm*%v3<7z;#Tio6z#kXQIXbO z&8W3%!EQ+&EaFyYfIB^s@kE6As=@nPU%T z^=oBWan^*S5#5Bp*#!!pm382}Fx|3BCTMZ`-2vOlw^(0)SM5G2>Eyk=9rM4^%t*zc z%c$#nueKy{I;t%X&zWt5w^Jr#2w_$p1@ZehiUuC9+g z0h?a6ykDI(Czh>Y9)r9Ws6Ib?ean~=rE*vmcv?${qp{sUZwGUfd8=gsiR}iclJLF2 zKKY^=NdBzL`dYx9@dVZpMzQ020qp_brVFj!Vb8D(6cc{`njyF7@Q8=0Rg-CQWFN0F zsv}imI-z>lpcrd9_AM4x4f;ec@ri8C2B0hedUs{Qy_~#*`!mdq%@8Mf8=V`&?SGU9 z$91m_SfxIXWzw&n)69GA6UHmfdo5qK>Mv(VSAsX)iZ09;6otwE zZP;=}(R~7s-GeCP&Q@*a9$_93F{e9Xdv)Z{k8)=_tbX#Glq1QJtHzIB*r9%{h$Pe zQLCLb@0uq(5+B8(x)6%n``FIg?PtbI1v<%_L(gk0E3*hK1uQ2c^8^k9c<6ftJ_*bT z%O^e?#`cBlK%7(k_n#yP*g)d5HZSYWW+vUtEGuJguH#$&#tdKqylvk^g<)>@+c0iXmGcuHG*4q!zy?gTdY zOV&)gPu@)~MSiDF%!DCh-nqJ*Th*8*iqFaZr4Zd?XP1`G#a6Q~oR8HJh3oORxLUS}B}OR%pG zfHgj>UQL*ma@|CQktTV_mI}aR#tO_~ZaGMYd@yuHpa?SGs0DO!(|kx%dTM}3AWaBN zm^KIp+7rYw+Uh_hDG*;`dL$4pi5tT10!-D=SbiKtN0m$(zf4|Dd{E2TGk7%|zH)vO zM~F(;+(rBbwg4q^tNLC`k$hq?z-HJM7*b@=pUknx5<(-W$B>ByGIt2x3_7XI0?8TuS$o^al3LQBXK z7>&mwp?iuPSJW8}Xp<~ZhUq-#Sgkx+&TuZCt!SQco^jr6AEmr1I+aqxAWpsI{>eKZ626WgcjU4{9HW5H(%WA-#8iFP!5bI zm@_W$4%*u&Dt!K_@0b=3af;TYo>WUQC{y zEGua9aeNRh=6p7NxtSH=sqAxugK!UW|8l@EB--@#Lf&cnvsE^W@KAeo4gba-!sXPz90QPpz6TAL0{sS!;P6(hZ+dmRg3+49bm5rRmt8 z^gTOh4kzI%=Yb(1Z7WCE<00lN%!BsxR~g`EUbmJO1>S--m9jQDb~kfrlo^T-Y`%KC)TVGX=S9V!&YMWc1j?B%<$q5}fCK+0LIBEX18O)S(!(maN4Wx=nVJ z2iyUs=b?9;Gls3LGOTL_?$cwClwiqGhGAMt?(GOTQvoW|c}^exvSPp_zycHk^Be=r zumUi^0z?Ay>?8lSg^FPT70CelBL#?94B#v8(*yY11^@yZ00{gaY6XCqkP2W4J(C91 zQ1n|%*%v*PXA?Qc62JrtU=7Tt3Gj!CU;)g5`81I7tOCq1f}W%SIY?s{Rn4D!?3bfDuf9IxwFKz~BF(Wkmprz&wipGK>HUF#nxO0;Yla6anU#0+?U| z{7}Nu9t1{hl3N=Ae4fy^F9vu901y}eUSOUX0C(A&7#5DBtRvKcv9=JT-R={ruBlGKb9dBg?G0=G)oP{nH$mrmsz_vxXC7MJRn7H}ih z)0D#k{iOIPRVlWg0!Jv(eNxU61qOYV!-UHm?Y`*n#qz*UiXg_J-(r|>Se*DF*$xvP zbF}xO!~ea|&q&*DX+FvKLA8>m!FgTMJJCdG)D)~|gw^n!TY<|C^;0i`A95&n0PY)= zKF1+q(CjCDA6C#0=@A}SpP!j1S!vCZ%budf4!QhISp4+Cm~_Dz7a zo$#RHoa6#?I^+byKFs*yvd!>=yPfcWe1Q5A@&)Dx8I`rVg+AI_JeWZaG5F|ar6=;|% zKx%(lEfWeWFwTu%E)X}V!2sEV1OP)MA+%6KI>s>`wQ1EIGB(&2Ik#X8UXlXPCnEw( zjA0qIObn=$SlPqDm&Tcw6lOHu%#Ulbx|?qZFfW~5>*QZ$x5}?urdtrlW50z2DwQ|I zh|d_wMc9N0Ve(^>bS}$C*o0kpr;)-sWX1YP3SG@rwb!s3n=f3<)j&sHK@2v)%lC7r z>t~~3-)4JLfig&W@KAHE>-x=;VjZgn%r$7u=|20;HCo78hRc(7%7|LbAY&NNJI|0s z_+buZ5o)w52^V?D%zmRV#)M(&bOT>F`+UOIYy)nw_qc<*R4cK^4^sEg<|?yu`yVXu z*qQl!p2lQh!hPfHbf^cWX&wyY$eHC0mHO>!Qm4$@amkZ58<5T1GAPd`*=k6@S z|J23{g(7b#$ZqY;( zMokX*%A7_DaAy%wBr@$;L9YX7rvpNRd^;CR15NkWoljJ#=Wisg7)ZR4ifdq57?vu) zVSGwWF>1ZfoKul(K(PZjN&9gu^rVj zafs8*Zy9ecl#p(ekV}mLW;4%>C-0cnpKV#p$Blo`k7q&k)ezf@GOLywidzfO{V`9Z zXr!DIl9Ms!%R-u$Q7gs5O%-L_-Hm&*0@N2Js$GZA<6xok;^MKsR?K2e+F z8T+Z8Sw$|r2sm3LXx?9~2r#lKR}Xp|tyc0x7{?YF8=hHBg=Ph?{G`a2cPYZUD;JTp zE71@nLi}2n?5o{QKBeLQHwrk#eWH9=)ouRxeD#nL{KO~!&JqW z!n*V;RoT~iqI8O9QJrwv@k)7_{BZiH^p^KG@Kz<3{3rG5Rkfd3+=CwV&sY9BF}>sJ zqLT}=L@U-%dwMs@Imk*)X z4OQ)0x?nM7;f=D_n!nP1pfiO!9}d@zas(FFkbbauVYkOVACy{1(Hs5)90JLXj zkAc^vemHo6r4LRY7}s&%+P~;H5#x;o*Ry(n;0<0K=D!kAL~D;#8{&K6bVp4dFW*Z% zIdi2-8%f`idO)d<6yK$<&VMj@vAZWtAJnhde{kXI34Y*z!MjItkKq|s-w(fTuOfEE zP#cK9a=&n|wtuL85s>dv-zTpQd(di6aP3y#6J5xEF?pwZPKCd^TY!3JcTbDG(se~t z?q%OeuPT4of3d!&RUeeEm__w0-8OpQkneBb!dP%_4=~qCc4Q>iPj>hz*Ic`zRO@ly zXnHWO_nEhjlfhWoC>e_I*Wn1!6Q(L+RYoXXpzYJ_+cd44m}8HcMM?<~TcHo558KSM zES(Gm&JLf9Q|c$!VmxE)M`FF?4teNvagV7OQS9SHL`O=y2=BY=GhZ9D6lFit#!rU7 z{Bh3Ov7(AgTmV=_*mf05VoLGM8e^WFRP)xaX2G5$>&6qftpYTLz<-Tm874}=;K zEd=_tdvI_M@hhxF!r(@EP=z+Bo2m+V{{_)Du_dgVveUK@?z64QGNLiNB zizy1Feb6eu*oKJSE!RB_qqC6G9n14j^v+bRI?+HqIDRdEEX`M!y4_ zl$!bP82JIx5T#ug1%p=NcfvQ_R?_q+LB2}YA8kgl1H{$=mA~6@))?c5>~}c(`mb3O zv|O=xW6=@Q2gG;s`hg#OUb-Im;)bQSg&#szG-8K;Ups4+ltwOxoa@xS3@qXp>xNbc zyc4Trt!T%ME$Tm#wpR=po8uz0E0dP+hp3gX%EM*Nam*d*<13ITA_5%C7&ka3+GfUR z&vtD;+aex5pZ+7^EAERGCwa)tXi3C+jOym6}|u67?r(gH;5V^zJ#%CC?@8 z6CQIPb6s;AC)A9hnv_(?C&DY_$`?9T-p1a>ItJ7%JjhrbFpH zs9&_;{XMAPP{ZjxtKXACdb^rE2K7p+2cEmouij^#1JQTi*P2x|j>;bt!_GYxyYL1D zwxzqW1&XeXwJTE$?9;mt>Ik3{d;$r!^wxdg0_-BxP1|RDLw%7F86L% zJA-R1jrv_<-Dr&zetG)jaGS=to<*tEY=6P37n*7QE!bhWZO#2>tMUGlc!2I*)V=Fv zLraGmp8PWKiSIU0(*!My`V#E|O`!BM?=wuru-k|lVSB}T)jHhqN$#EVHuE#KQ^KO5 zyQUjC{j&P9dJyhQ;hU#+(7WyXSM9iWly^(XZS+laLXdX?wF^ERHR;z^5=&=EUo67a&X^G!s<2CpZikEDF;&4 zGeFcqZm?+^*Oy9ofSbIw#>6dimX}g9wiAvs%Y^h*dv_EoV5m9 zQ2cdlHz?gZnmn>C$=@R_a35egYwmR1puoNDn_I8-KAJwKG&)>;#vt_t7oa0TiIUzy z*z9ST0-bfS@0ySoGQzeOz*v_TE=f^H8ijUoFVCi-KSAmYco4D zoV*Ragt1;72iCfiNUw%AvN7SHKl=_*`TKAS$9QfnRlZFO$<-vDCn zosb=sk(kE4p3R}j#@zl6t|8g7_ghxF=-N#9{>Wa@JC1p4frM-Hm7sLa-i{AiXp}xp zeIM#IvlhVISWcf%#JzpsxYz(Ga5ca)b5*`Z`aSbyVHJCfK-!?P?SOUWw$7imzscX{ z7KP4|^NUom9XWK+~A$cbG`awxp zTT|&O{0i(Dt5JGGtU4facEu>N8{D*0@OhT2n!H6n!Fe}o_SX9R zDOSZm^X7S@!C~<}>@3q$(S4%&NSe=j0@~+TDHjsZ=5wpf1eB8xuYqx!}e*d zbB$B{((z;4?c3;Kqq{MSp^6X(lhdAunUW|xPgpZ=N#Y%(W^~T-v~u;ZS9%f-oYCK& zxW(J~da+!RdhcYAhHT%ZmJ4ktP#4mSLWsmM*wh_ohSd3#fs@c~Snos3am*or&QMY} ze%Y-MZP@NylO1B&p|`rKek)9Q;}?;~aqiWZf0*e7d3Z&5If}1;Guh0^*}K<-)`p{7 zx5{?niYWLEZqzb;VeMLh@g5}SvwzUGdk1}O@cH(T24U}nSM)OFbBW9M*|V59O}Za( z9L*!og7Xg3Z=Mx2>(rf$xf#$ATQnh3!BNntV?H=zcVz%aK)AmuAB{2&XZ(X}+d+Kl zI=;Qinqi$`uWH7NVj&)+rQa8XbORF6mGBc9Ao@a$)xzT8>uN}8goYO~QF?N7Qp%Z578nta1 za7SgX-qyM{MOsg6ucu>x)j!SK-m%KH^jlWf_K=D1qkP~tHC(){=Z~5ZF4Y9QQ`<`A zUEMX?`tU+_&2%2p#8(^bWGHs1s=hGQ!)~nm%MH(YRc>Cf>>~Ev+vJ>A%2!%{Zj zQ<_!E+xhxCm6t+F+sqfm2O1taYBL5nkcI5C@#gNTTUyl$3*KTdpY58Q&v{D|@Z@vl ztgcrBZS1dCDh1XOGE+lBa`~1%zp4V19~#~Z-V2iNI@yOj`#NVm`#p1d6VFPEuJx_} zqCjB^PwvgGieB1V-OL5#^QHqDZ?52)L}E$>H#+&nGUhk2J>_gPRn+r3mu(hDtYQ#J z3*9fRl-GSn-Ga+zJHecYXg&Vq_!9}+z?J~MKHJ)d@w!$dpcn6kDFy5HTDfiP0d zI7b@ouU+a^_j!Wd3T}C>s6QelnjJa=_St<7yq~^lxpcZe&d%MrEY= z)8a^MZK^msZgL^oF9$A5Az6Kw(yHLDlbu+9Em z@19M3)3XL`bDwB!NtAz#5HY|DZC!M4{Ocgo{Pv8LHi7Yu7qis%_%=mSaAW@hls$Z| zAn~&WVTwj>IKx!8C%1hok(X?#1{OnOK9zAbt8nAdW&7-Ym?Lsd?jDA6IJ=oHe3vjEJJNS-JBD@?bgnjBVuRtxxZUI| zF;BvIZJXbc^hH4>At&dcAZfC>XRFM~*baHa?XW||m>zwfRy{+pww?`4- z?BvnwnW-WtK0`w2^Xh`cHIkb#_p`@^UY%ZE9{pXcf{Mn6XY7r4cJJuo-Hg0Pa+lV| zi>}(N>?pjc_xt8l-~Slcejh-$sL}+ajB8AMm(`XN@bZDikUW-bV614j^+Js3J^H?+ zEm=479yYE<;_OaI!3#VAH}e0k&hjXg`&P5Ex#IuSK9YPqK99}V`pC1mUY2d_o=qt{ zVu+NGb2{#yb#j0!$x~(o3~KWtZ;8Fu+zHW~v#j@N2b5^8yx$@&X>= ze1rM@e8%jvQM?UshxQ2;)A}R0o_!);cpkVL4rTNOvMzRn;u%iST<-{WeihwAw1vDTq(YK+(f-s5)!joy*y|tUxP{0j z!9`ksF?ei(_-ZOaUHrhQmA}{_lrhW1YKHOaQrt6Ct)t9sz@j_@_sHt<8hOIL$b z{19wk?UO2$d#uu~-8Q@;iE-%HCu%7BqxzpC6)*DDk$N@NV08S?uaKXqK^Ox18G?SU zV_2dtNBI`EZiRw%6wQ)K>e3(mO2>T1d|4yO`XY?&(r01x^GenwZ2fr8QqR;{)lR(L z7v3KrQN9+YX)1drL`Qk*eDWM}diP>CxTrZ^g~Q-peRb-(t^YZ1vijW=ye-) z8(k<_^V4`WCa;OZD0jm2{&{2qi7#))PbuPF^o}F_@cbxFOZxuxjbSAI&HB}AME))F zZByUq9pD|XI>kNaox7UF@(zh;F$aJM0VWE~8}^J_+$-Quz!AhKTf@S+ zS@2FX(VRMd!_X{#%acsN(;MvOt^;~s>BwT%R1P8hlt2|> zDLqbLPS*Z8Se0A}y9-NH6u2_6jCF!7L8f2A7s;SB@TtZEdrFW`axMgAZg{^;_uLSF zPGr8!ci;^vZ1Fe(1*W)iUXZN=3=4)dlFX1J14@QOKE;gVi1OrLxM{3Dm- zHwf`J--*yP!9$)PPX_YuDf68JM>W3;>lt?u>fGnvQSb+RmRE>eG)n#xFax!ym*NIQ z)^32mk423TqzzGBz}Dx!s-BESnK`uQa0S%y-itfa4 z4l5O<&naUqy@ZvKF|wd6ETsn=gQ!#N8=Px_?!pqC3648ueC!XdL-mAKGrMy@z=Zl* zt)u+=J8=RKPPx{+w;zNFfy1CKy{8{6o?}_2jAn*dCphExLgoIpwdsfwgbKS=Uv^+=G0&899 zxL!<2^tkrYf*r$IpeFe5ax!$bcd&EoNP3q)ErYZa~&wge4!WeVHOa&%$+)KB6 z2EHl%Qs}MvLb+hMPOYGQq7c6ZFJtNmjF}`deM3OQ#<%4F(KcK?q`yt3td7bdu8!)5 z{)RpGW2u17EU176jl7OD!_@gOx%fN&vRG31r=JlN$4YEo+H&$wJu8mo-}GRDtu>Ae zwsgyhsf9(3A&w}y30x!TGs7o3>AbC@(IZlaywz=Np9CLQus#2Y`jTwdCX7EuQ8d(l zA+el5ag4M~wfHS3ZjTxlW;1l8_&n-Z1KE0;Bn#yyO^+Df{9WT+ksM{LmHAAaQ=DgR z$JSzVD{ydN&7HxX{0CAK{!Aen<9ju+q*KKHof|2x_?-zx&H`c_45br}{x=BUD~lys zt=yRo|J#NZo0J!!;Au>5u5?UJ4ozijyk;66V?kSkimKS)G3oCaeigj(Z?D1@#9LcE zY#8_`8<{@EJ+cI+#uOgm@bdwI0&VIlaN<-w#MeOsT8zf+-$lQt6=+e2q><)j?j-mA zW^@W}0C`!VH1C$J4?1Wt@^ARk8HZUMWD^<9$L>k*NhM?u+RZ$*4`{Nm3r_$Nd!u>_ zjcx8(C8Uzu$@X#X;U?Hrr-Yl|3*b7UK8L@@e)+ig1h~j>hy;hkK;#zQ4{&I_$GAWc zaZ}(5WeE=uwmi|^qMLbWa739y3joe#!%Gt!d(h$$eQ0t-#z7Bu$K0#lQoOmwsst!; z5NiP`Q-=?loR;fBnz{0K1ST{O$~9bR-f~sF@py!IeTjHP+;Jn2ll)c+le4K4s{n-C z4zZ@yG9P4P<4*{^K9Q)^ssM+>8u;5_RsVu(`1RY12U2|iH9>}IO!iBu7KKqM1nOY* zZ&NPn3+;mXEA7fPGJ9$Ai|9wd3sr4+8+mrnf_qJf8^8_vqf!>kC$B5h0$x^RWT*Du zT?_lwjJ7d@REbUl=v5$A^|7T8yuWb#A2zFC#_MBE2?Xn-PYxLze7L-vhp~4g8J8sN zc>(!{vm}-A7XkH|hG+-ZWYL0OR&=0;4#~s##&E0gZzEcFE(JZwd|B}aqAh0zu5^2z zhomF(+E2w^W7T{fHP{g!{0Hy_5ebB`$3U+5bHd}Z4iz0DQM|0lW8<>W9aLwq)#lh{ z%GYsMWYvkwyB7kfkX*#0q#@fR)?qpQnW*0kKGSlzQZiJ5-~@KF8H;PV0S z4FJIRO$mVSBRaNu;&P4^3JVEQKtLdr6N`O&AJ+bPTj`%TfaPU!Rc;PdCXdoI*aG~0ptm2fV+q{xET1x zcknIr4f8mIb{byN&gV6vn%56>*1hN*?ygcsEeI2R9?kES+V$)CCg2NX59JLC5eiLC zJP;b;TlSl9Z}H8{?ri#OI!;|z05gY%fCz}NOMr3#)*uE@u3!m@RIZ3GY(eXiC&;Dz z3v965b3{b`J%;y=@)O6byu17xhqe82v*7&t)LrDv{jsyeKD!H#4*ZdyQ>+ZYs z8>td|_8asS?lC`xyUP1lD$<*`e43ZsH%MdVob>J#_dGZMMhQg=F1x4rXIMVs8mGD(TN+ zyc=y9uZ$yZ^&9Ax(8JTJX{&fAmob;~9&d+S656I(U@w6b<-7P6Lww6h;Y-@G+Ax~2 zn&pM{+h}oKc~%xA@h!|C13atNi-Ix zwYdhl1m#@FOv{Yj|GNLhKV>rwF|y!hh7XJ#jY$zL$Q6BA>kAi%K4{VvXX}BO|5QNl z(#g8-5I7Q#9uB8Rp*5(|L8O0cHnhhWF&IpXYCWmKky-0Pq;CtZfBR=>TQo*-WF4$Y zN>70^MAi`{|12q@%p6^@*+?OCN`%cn)&bS#Av0m}q!law_$nd`8lCf)-c5;pXj(9; zZ!)lF@|o8Qmk;lah>uDCgl}kOFd|nRoj;k*4R_?kl_CF_PH6g&XF7UE6!o{kO#TD< zoVZT`y-xw2u;uuPGtcO_Z$Z6pK{k-m7bhQ6Wr3o|H^K^AdKPHg74I~luCsA~CP2U^ z0s5#o#OnjyC*sAbvJ=A`E_GE zOfI~N2YbwOI>c&&zZ3o^tc@#^&8vG$8(J>>i3eVm8#fMsFdIaHmc%u1sdK(JKxr~S zDIOs68yX*}rwAUQC(ue~LhU<`&hxwudp3T8EU?W7O4?dkp#~Dq{b3rvy$rtoTg5$1 zXE3cN0S%|h@BJ46N-c37HprFD{uR#H+VR{^V= zN^6-Z%?FgSwOJ%TqpvLT`mMyC&!oxskUz^?jH^^a)6QuzZ? z{U;~zM<(!lCh!L)dX0|Ye@r?@@Ono(#z#7|_BZtQH7TqwsjMmlQUkKuvA+>ZvPBR@ zMVQehW2I0>MT$d^3)DlE7L*FY9p(hpXHjjVMtC>)A99rPx=*56{_r8ADu8|IQ-$OHhUO7;=s9JOe?iJy9IB$Gpd!K#m$dcz_ZeK3v-Q()q%4bo#(9SyXThr`VV?%)uik0Q!YIOZ zNU@r*y|BI6vB|!PKg(onP&p1Z&hPB~5#NYCL1orA_BVNT;m-UlGHiNmdW31ajldVx z;rb91^D+>2GeE9<7g_V0Jf(zP2~hU29|ewU9uS)p4!e}RMFuxTjw?lu`M?=mn+!<% zEYcyio_g-HC$p|MGbcUsvo{CKhc}Ucvqv?^p|w6^ECWSHUfD+y1}MD@sMyX={&i#@ z8`9{|DJWAn%vmS{;Xoi$R?K0jr}0nA(xOPTZIs{}=1rBrO_goJMF;8yIq1bXTLCc( zF@Yy=iV9uI${(7}Y@g^xT`r|TkBWd-6=>s5d$u#>3W{u1Rpw=$Wu6?H!QQwOPofsE zb}+(978OSNDiE3~wF8nQ#Y3nzzlAvzyTFnk(ZNVQaUwr1MYz!bS8PW*`PbRv)}6_kh;+H8`dBu-TZ@jjc(h>J4yRiO>ni8Epi z*Ot?-JnXf>=tzDvgE$mJ3ei60&k?16O0xp3wdrU_VVbKr%zcvXgt{8NwWzUC9ITWb z_OE08<>7?MjDiqW(Wdi+b7YhjE=Nx>&y-Z;7EH}Zg^~zvLwfE}JukVub_cXXT5(e2 zq&S$Qy<8wpSdGG%RptZVI#qH#8bs-> zV$?@us}qWDKIIMknU}pPbg8umwECx`5rrWb;?hPGz$vxJC!CL2B;_vRtoKR3I-8?p zCoc*^R>x7?ygRx7h(91MXp|-Ig@TSVTr4XczA_nq`paveEgy)fu}e*ZYf`V%UsaT1{PA7h$sPxIKh25>)a6pPWhPz zYRr)i6NdXdx+B5EiEyYNiRK^a1nNi-V@ELDra273@Fe;)x|CkGCj=@5A(5VtY(DvX z+?H7SOgc_jyR;gF*j3FtP2z|z^bOM!MsLs$j2`;#g!+tHj!tEU?STAio^LzHnrBML zldzBuO$-=q4QRCTO=)2L!7?NreK!3qT}L_Kb&V)G5@zy;eO^JC4}waT=MK)38eOTL(YLBWd7Lz+=5vI3hBd32(My*7i<2vD!N9oLn$qk7PN61tK zGY{Zd1I!E~D|oxK-%9=0oYR8F%MYXR>1DTk%Ht0W4y0q{W9-8_KntxBn+b$#do5hq zU38ia9wnm(0BM3f-!VzH3+=L5AR4{k?+2LE8}}9 zaRs|ndc=wyh~E*>3@IOwE8sJaMUHG!H4|=;Kj%&P-~CP;<-dc6Nw^+=F3m{QC8h7D zkj^cRsY?Y%rH7-?1ykw!MH7yp!$jX>m4zt{GsoWx0G$GeN(X$gf9uvE^3Lf+rjN^# z=Bm?5yaOo{M0^67zmS+kURrG2V9bzM_E}Xbz7g7j^s@)JNwVHnxu6}!h>R<{Ya3Ts zH)p>2QGS4XV8SuKj%i+TEl9R2d5}hbT6Wc}KX^upV_I{yuRplH4r6Yce7qhuZnkva z9-|pJS$V{N6T4osW@iIExha zY6nc{KJh7T(|e^vf-hznqG|UZdUJV?)oZOs!hObEdfpe`8olAIQ67)8JK!5Jy74ZLdwoAr zdT%{!*?kMV^XUz3o29~FC^bPX`p!+Cd1yqe3i6#;^TXcbIy=2f5`g|Kc#asY)1JSd zC{xg0meK2cEra^XXp;4tpZ(BdeBymBlex<#v@v`0_#;or$-|QJI|;>C@(JYPE^e5= zfAo5RY8uhdGVSY=>O8M2?@64`Tf3QlQ8_y8{)wqQ;@LAx$m=t>R&RTT>G??&3)u5L zbLbqjQClE8TOG;Uh}*Y1#^t!&L4V$w?W1$To$LN0IoB1da@_n@;*@Z^@WJ^zV|Dh8 z;K_nbpOw3LThiU3q0m0*4Ut>3TjpK4qU9x*E4gZ%s`LpjMAdE+E#kiZtF>XiE1%fE68C%G>h)7s3Ve7CD;8xqsI z^6M=Ffr+GQrTw<3nh(hMzRS%~t3R;YUc2v@1G?jO{c$W+leNn>@QSG6v-R_9SLOrm z8F76O$Fa)oVeQg3MD|kjuM)<|eAmmZwKRku{^LLewt_Y!QmcUpmvU z6w|jZc5uvNG7K5jqcaRsAD~=Nl0cd#5znlWTs?EJG@I^{Vb#k@5zZX=-18b!B({_{ zcAR5!M1US7I3q(1A1-NEA;T^9xMjZuc|?>BBQ9-z@qYnE31!ryd_C~f!K?@$>HVI%M zh?*67DuN1=9xO&i%nlWTDvxg>9m-NvX4`;;i?kbHM=Y6|otVuSVu`~cWmt+m6Dc&u z!HAN;yf(Q$5kbPv#Lhec+lL#%Gl{zu)`$5N$n26}E}u^}4P$dowURxinpbeVqT4jX zX5cDZ-=uQJo|OO5Jf5dFy7RVMlUun99M3ikCl!vV%qJIG$JMG@`#j{%OQkfHpcX>M z)pFTvRnIGbN^j*z$>3dv#8MKT^32F_n4a*?{4t*gfIBzGcGewvqo6VX0`YCb=e^ zRJ&AWUB%{~c*8WOa5h8Lc7CTg*EI{(Kkuf_F55p1+V@4IHVt+8q&gpK6U3k0~Oo-PGXN3m)l zv2G|;QK*h1%3N-ptHRRyc$|_E{Xef92&=p0c^8oOpX3U1d<(&}5-p9?tdGr36Xgw+ znurq^Ke}F)a*OP>P z*v;R8t>1|f{V0HYKDn@ZS8~Z3@sh-`=YAJ5eSnZX=;e30zC3AuFA!NIEV`OOKg?(=`1s}&X$e^}Zm;Dy- zNYvPofYa+>5RdBV9c5p!=3`eR(zrXIm;B1V?J(S^r@sC_(+{@ zy4fMin(b&E521RfBA(;C?XKc{tbS^+ekxG48Tytz#od+T8DyH1_(%)#^h(Z|H1!HF zB{=R_7yoGYy0qNA@ZFTmj(guL@T~@1%=&pfB|9xG`=IB8f*^Ty_(I&OKASbD!)U4Eqf~X8boRUUgnb2#=166rB#XRP_Bz~Ry{gNyEBs-5^0}nAb$A1KwDU-7p<{X@ z_`%Dbdv5HTXq&?Tmk*W!$n0h0BcyI}|H$^t#LL1Fm zTb8)K*CL0)1SWE=%zlkD_|wo$RI{xV$$ip5jFfXhDsw{$RIKjGSOHJZ45)EYp(Oh5aU_U{?h{Pr^OW49OsY1{x0&Y^KJZ$_V5^()&|K-qHV&T5GHpLWhV=} zncHCBg-!v+Urd6tndRsJd44iS&&Ed47ZV)bAG0z^dK44ixbbS86J`h1|@&v1w zlmd!TxXm64J^-B1_q7gLv6^0MWIdGD32OdCRk6w*PNWA(5kGfod$Ei|tQ3|Qqp-CJ zd9k_a_vnIlOKft(u(X3w(R)82baKT|t7;L{=%Q)Ct9E+(t5(rM@Sl8XKeb|by$<(! z%#B0x0-0Txbt{NTTHkU@r~}$E>+hC7le9lmFe?1}pqH2--rcXIi_^XAnN!n>NqN=u zW)!^8=$L#5x2P8oHqKZ_H-htrBv=OoqPl6wz!;aB-L(rY|5V;hjivTbmqDefn3@V&b^G7l@7-;Hs8UMz`b&qosDmw zxbE7`e(8PmqIWBsb7fP=IiH<1!Z^ZM2UrQC9G)DHuYX0yBIjx7uRhWq&XD@dmo=7k zb}b-I#O9Dy!kYPophpjjkIE}H)DtW6g}q73`Nn)n{yWpN#F$=r%yrgvmh|eCb~~Cp z`?LPlaE#WT7q+P(lmNIPcJ~_H?U)5J)c%hBDM;_dZP4o;b7%r|rQ!qCv_*#cGWQ&0aEpGav$FsQAQ<*wdBvENE!@Dv^0S% zrvWfMEI;+NEa6dewfI}BXfmaQpUla`X-8t=PZ~VF8zcMEfKou5RW3?E?bUurTzpLg zT!&tw34@gmDm`|DDZlU|wt`>H)%|bnq=-?vZl93^PgfmM>%}()wRI9Rp|Gp(-&!;i z`zN4C<&xC2L7WKo5EWNGqZ(oZFn7McwZsN;9-Nkpr&mlu~8tA&Mw zj$?qiuYLc|DDTeM%T&QsqLiN%)ux7%74oJGe|zM9c60VC@6A={DK99GjHt6{R>A{@ z6d0o2>rsW+g|m*djm(g@_N078DK19VoM=(T}z~V7GU?w`g1J z9m1+rLiaG>gZb8g|C3x&k!>I!((+T4-i zok_gyzJ=UFbkjtD&8ZdITVVXU7W+raHBTOoJ{ESU_q!5$3E*C4Q&^*ghmBMgx%k^L za`XV1;ri847eI;>CUQ=EK#WR~0EP%C7BLn!23(8MJrE;`V3f)uso`Pk&LA!eCyQi< zSJt2C!$ry${HbTJM_5?~EE}-GK`sAT1gE*;%1etgjPzxXn~Gh-Si@e!=R)Gb;Nv1U=*O*^ zF20p#5#ZuxAayV~`dCtLOWQGWvGcLhI0GM-R=esTuc+!m3?lM33>E^c1FK=HXEfmd-KBqxD!qnvtA#Ffr(1+#j`dhA zYXMqk2<}WZQ0bBm-v9hD?#?y#@hw@mJ4A2WH6XWy5EBxTXKnIMvj2(|FG10{!CS!8 zs9K5G{3)F8fU0s!No99LB8md}#mamOkLG@hjvhW0Sg~nYNUEuuRKX%Sb|=e{bt*I{ zUDQ04{Op8r_*2tHyI|g=PQBu}E>=EUJzt$K*m)z7#4dvi2xx*{|6RUZY^rD)%C49p z!nTgOj>?)@cMBy?K3i)h zXghkOH_z0ME~?ry6r801E(jl~W^l zu=`lt)o5{wU!J{b7Rkz766lcD5o10li)UWllM6E>j zm;!NXa5WkUaW$f<*4c*H4KmoLT^C#d9T=u}zU*UsD}2C?A+JR*r3~}pRI2qVbBLvzD}yB8`lq)>>ymTRDfTl-(Yx^_pHE#iloAtzwHFi0!d?0+mdl$8XD)isrx0 zDcV;Yy*Pqb%D1zj&4R;*QX7YP=0GkGj`>J%$1W{N~h$<-|3{DMGz5T zETSpk$Y(61$>3i8t<+h8KK>i{Aq%Bx#j21w|8uTu z!i|T#ebKu}E%z|YbDGBqVP2@rD)q=*$~AA!TIT(HilwVEa*of^uTl&hE9W6(xy#Dy z~0$SfkyOg@8C&vLzQG|n;@c$SDB{_SIf z-%$H*_HkK{-?;CDFI+OD#O>w5E$zdvqgp|dO1q!1UX0by1!@;nX1!*A%}$TZ%5yG( zU<-ClU@IZ+wj8Kn4VOWF9hansIRntIW5b~E z&*$DF%^OYG!_D2z9~E`br$9~)9*%^8wxKp~_J4BN`bP~bVfK1p?IeYY{Qn@HghmVf zpsdQ$gXJ*b0j7Ya!=h(LvVVZ>Ai9uYV#oYDs5VyYJeH~4v_%n(YPu3@Vy(x#>--$b zVjOv53DeY8z$YdvsAdqx^r2*MfmN^)rNT5`l}=?rw)ZQi1a~MxAAjp|F^hZaT*{Vw zmQ~xuGvh(!#7gPr{HDBsM-x>G^{k~jr`7wPq*j6!$HGCihGxtBjjK)}dbLg~2$65> zgRsi+YyOFn@5+7n39jpq`;c3L;lgL>TLSl~=gg--`W^Qj_Yw0e);pB_;(PX6um)Ea zx56yqF7uAr%EbC3nr9+QH2f$xfqBeg~`plxZh zoNLPJn0?CVn$g9yy=`K%2>TpUbjs?QBgWj=^ZON~F5&6s*|rSB(xdL`c3iUSCHDmP zw50IG#a8j@#>NHG26cmeg2wg8w%tHDJu8H_BcDznyH}aV>ig;^Spx5QfhmCjfezUy7&Hax1pXcDb5` zSBdutPTH@jo3ComxXp!W1am0=$L1-~?5g+H?mE1L{#Ks5rc*_{$THoIhRbvg(7 zuwR=;G#Q;jd<*j|O$%o^RM9oHZ}na4pKRcpBkX$LFMjQHAiO98`9|o=t6L<^U)GMC zoA~;hFGKm(ryF6uSVYlc#9Bu7K`m1MKjqd3+Tug=O#X6G$ElD&Xei|0p8WzKP0 ztd)c5hC3DlrUI8Wb(nim%WAGPr3J0zuwLq>3{Ak*nO*VwFRo`CAE7BBkn*!6mf$ZI z&x!Bpv+qEzsu(9(MF({a@f8$h`tO|^pJ!lTg#`7mJJ@z=%QR25e!0tj?mJOLXF}IP zCkr)mS3{QzaM0~UImwk!zYIL!yeoo8c?4ymlSR(B?1k#4TyP{$a@lRggTtf6%|+$v z_PTnN!!Yp0_oepb?@=?6LD$IbinvX{%vnNrVR%tD+6}c%yGvC~mP-c1N=L^z*p2ng zPn{R?F(MMrv+n+JcD4pU;cK`B`NufK5>TqtSw-qe8NSU$uFEFX#!#f2L5XRZL!#*h zSFsJ=iOh`ym~(Gku`XYy)O3w|!zU-QJUcBOLW|5O(uC^+NYZcSm>U?ll1!^-}d%_1q;__O5@wYruBk z`9M>wGMIPtRBp9XVd@cJBRK@UIik`_z2^RYEQM{v25t z=Z+o~`9Sbc-T#o^Dd_?b(fS^bcj#X`G8=Rm%53J_o1@``%LZ>+J zT&$8d-EB+-7H_JPFqYP*C?FZCQ0hRLGRbl+Vi*Dwxab_uSkY$|<`UFqD&gzpURm zs1pwGl^y@Wk&jI58~r2p1_8%b8H5fPcM|k%9QmC&#FXKZaC3PH` zk@>+h6Mo;W-1C1&s=H=O!b`uOQQEL+1yl$sI1zCOf9deTe+m8oY7RFkXC)2X)%OOJ zpUGKtHkp&phIQrJcbRK@$~oa5w=22zoEPt-r?M88TZ1Q;$Cq12#0-rffnS7UZo<(* zZzP!|Q3!`-jvpv%?D8oMf&KkMA^4oT{R0R8w}3@_dxd#maXI82^Xu+x^l3gDBYjJhFJ_}n8d#*zd@alzLXy7(yzrA3gdK6)haoI1|pj%$yTRTc6!)U zWSZUvN+%Jw0;2z=;$UgyN7mxVW8ING$?G&$^yvA)JymF6^{I-JWNf)LCaqt|5=CM1 z`Stn2lGohZ_=3GNExfs)$I`$O$+}=0UPVu{(34pM2z^mKVGV29})& zuC~`NS;3mx^WHWb-VRqaMr?h3%H(4}KZ)x+AxUwVSzu_zpt3Mh!yqkjn43O9S?CSQ zjtJTv-@b>KbmzZLf7U^ZK?^a-PQgw;lu(W^jya-zz+g;l^eS=l?8c~eJtkSamm#6M zjFC#3e7w0S7l>7>OhaNBRmiR)$F10epJyPUZM4--f zF4J;Md`EwxF)Z|!{=z|5=*jaA2ru1H=n)}5e_6bVQ>#+EkgMaC&kChICv`%pFHcw+ zD;3Vlml0%lD(6ODTQWOmRVtSOmJ~2M1#^ROEvB7I30E{Ms*RRStC*08Rsk>KB(o}} zMXZ|yt^N``$v?>tmcuRujaIOiNrx(8Rz$?fS}AKF*EE+|iOHpuOU9KJFR{iqeyw{S zt{|8~%Ki0F@xTCY3Ro9Jn@2Dc2r|4XY042rzA|a_&1uY8^2QiyWH8hDceFlZCJ;j1 zn6o02D{&=qwK5kGRzuqD52C$W8U)VW4X&W*2>E2cy6<0--X_aWgZQCx6gO++Ce7jt60X4mxz6B$B9w>92I2f?RWNccKB{<)%tTCGcdyw{85XXWRton zSl*UtQ*Z^6V?gV%-h^^`}&z<4Emv4L=)oP)^#FsPom*Q+1HvETelL7q+JNbaG~xe9`q~z@pnd z4`JHoRo(Ln4|h9|i9;xcr<>_GQH}&~8h7j5%H|of6lCzP;r7Sy;wW2q0%&9J>y`xT z#?LZ3_OZT2FdL5V=|&iZSp43clr4VG=h6pnEE?+{x*yXRK9#>VkeIA{=~gf>IRwn> z(LOgL+l!ro7McC;+jVaVmJAy9O=4+^Ng8Q84>9aQUb>h_Aw(hlJQQ6ziPgUhUfj-c z(jaR)RBirwY_2nS_mV>CHpEZJM+%(>nYR~BlOwe~|4mFTG86lHs{;p%{w;iJaU_{JYNZP50TZTDBB7=!;>Hu2Y>`JygG2m+~zV~*lR7jDxi z(M9vjPK-$fyHS_KH|7p!jmo&w$#bH}0W4{xL_#=`=R&ez2K%HMNa8;(wnH(X(EIvI zv8$o73Cttbz1k^BVt%)`Dc$KMKIkO(3gmmYo|n~%q=$==qD3t{{S$vwEnLe2cY4|` zJH4BAa$9EEB}BT~7WpQ4c6`oj#MTUL7B23K8SbZw!)^zy$+uFh6Y%Zn9qFC0+Z1*b zP#AW($PgeP1P_|F*fP6wuVc0k;kFTbdbusPQE5lo%d@0}A26jKYlUWmV>_D&PQ>-9 zI>KEx;C4~UNT|(?ouVUqB5w>YK-Dpmqd}w3t(~&%sM^kX{MUrwL~Mjp1_ClKHHOG| zakQeU0XM=oqAmq5eX{F&-g5m8_m!*^RU(9C$3UL@&*k1bl3R&lZBG%toS& z7!gGQ{#d>JuY4jDHxDTbHIy}X)rl)f9QBAK zD?y8LBBsL|y==kF{g6jfc`$E|s|wpH+iKnl(}_<T*ZEMxKBUh z0=7wRkZmA4-*Ac3JjFoKuGybmFvuZ4&G-SG8c)tkgvdcyHYm=K9MCu<(*0%J<yp%{wxnUC-Q%dsuUKxQjiR+ zL?|U0B&;wvH{Sp&J$nG1bW*%wMRBU@)$kZ{y3PI|TYOd$JdoGr z3Sk@a|}?cz*1GBK)mz4m0dt2v+ zJG;P%1TF5QXyR|!?E*1x)s)qwO6Yc5s;70 z=u2vdXGg!ZMRQGt#yu;K;a;-UED=o0-iEZE=LEaZcIraEn2`sUE9edsz3Ub^QnlOa7jVLa5I7JqYS zW=$~OH3ObGa-Zs3VX9WXn~v;CJ4m*j*uy%ax$pR0GVtxx2Sc)rlaX`8M(4=Q@X8eO z6N!sxUPfHl2b{R5V5>1h9Bf^vfR=HQ`W=QpC$-4ihM2-q{Evx@a})2QVL7~H3saTo zHsj6JvKqz~F0WliyR|GxCLI9gwl3n*3KffcxX$fUQ3{w6P4Ilk*AB9wB)SE6c>aiF_=)D}c^TmyHTM5rafcc+| zoKa6lA+|3RZ;D^o`Vj&fv>)&wVxKTujZ0MP@Cxts85qRR{Dsq$D>D81o_?K!ng@<` z7CfhDMUXN7Ryuq-(*{dm28i9KaIap5XK>+kj8vM z(G&gB4ko+myEq#Jt$k#nvb;P9VD!;&vJSdy4%zrWW#Fs2wtBtp zym$3>#gV|-`h;D4)=U}6Qt5{*1@%Tf!Yts7-Q2pLb-Z@TIS41=aRM*^1qDp17C0s{IRR%!k~(EsWugpY<~cstuwvXyv*tbsW3Klv4V^c(XJw|b#`9a$?>{Vz}h zwkE9gZ;pVCK99byU6SvrUBOUCm$r^ddrG22(xJ}KWj#qAa^9674QKX5oN*|ew%-=! zlp9<|Jx7`Q1ZZzvMhJDJRjvxF_M7!4wF$>E7bq;dW(e4s(*JDibV@0e`UeC|fT0L= z-Ttwr4i8O4*w+fk<$D!Yz&C)V|4DrTr4pt&99zixzrvEW1==D`1<4ShtZ9)A_0vLI z7RPZ%HqvC}6oqMem!3qF^CWX2u)Mt4x7<1BByW^>AJmZ z;GdAnN`53i*CjibzHw4XrrPstA$EqorpP=p)eXu|6If)01asAs#aqNU^D6ZSB^#!U z|F`e7)TzKAp*9%zwrDA+qsK1*O?e4MN7qhcdPu8E#CD@O&V=|8x73St!n1I7h2xlK z^u?H$LaM(0eR^fnCiVdvtU>nvdz;{O<{2?Zx=$4D34I#*!?;vJk>n0dP z{+zW{?bayO7_9nZ5oyb*Dph=2(x;I}^^j%VN$4g{i(TVXzg%#hzAIv*dC}oT z6Lr&Dn~`CZ&%V+YG8uy~>?4s~sK;5yf9O(@+B*2cDtYUv=$-iyxBD^^MY4YC()$#v zaglIqLXwK^4*Sxmn^;HOTGF~@>#Cqi`dQ^6k&BOE%et;OV?>g|vr_i(8a?{su#;9N zs0KoPMbL~^`kpPL#M7!xNiO}Q)$7A6LOvE^2b+U>I@ev z`Ea}%R6A9d^6+0Ru#a5ZOd%1cZpGo&nw8-5ZPut{-AhXH>O?Nzwf(0EpY{w+L+i0i0Y#=g?!S4xXN1MIiyY!pnGrc|MJ-&zZ z3%|4Ixtorwt*IQg5vhtGs@3P?r2XGJ$u=V`z;?r`CiYXrN}Q05m)`sq70hY$Xbp=f zHFLeD zuDn;?oa0Qs^^1xF*NnC8aI374+!<*81>U5MtQ2jDWcnkvqtIk1O^U3Q2k_3dSl#LU zt7BRV)S7_)#Q10t4T8@?(hCpC>ageU4*|lL);EKpvj2#e zorWFD^Y^|ItfD9XH;hlF&7Q_(26#cSay5XYgK663q2!GpWT}lUaA}(X z`H)WQ>>YTqI}%Pq3+GeUTG~3gJ}#R+EcNm*56k+Aj%(1N*YT6x*k0pR4TR%Um3nA% z$iUOytHbez zf1nZQNED&NFot9gUZA_jK51>OLD_(YMb$@l%bs-*emlofZz_il57Rsd;;Y#}q=!fe6BAmxXn{SeYtpH2C2fPQF`e!o zzz^c1c-H7}Qlc_#i;L`;J`cc2@(3Hy&!zWxn#~v;6TyIH4Vw~3rES6j3)EXY>(`{B zq2+w0LpBhU39F^7gtF)lcH6uYTXn>P+UV!g>q%@n3j%Z^?B`2y-tw`%Te(b~anZK; ztwf=qG}isBx8k%}Sc{irwlwRG#FHm|!sP{1h{ff2LT6p=7z~^zTcCda`QKm9;pt|; z0wzmql?)*bXxo_48#4H?AC!q=EuFfLQMI%m*tD#Yvq7v4al>tWVBaxhW*4k+h!N#& zx4mv2_BZBYKi*ZblWZHKWiabg%YBwNA=7b@YKN3}v&=lS*0J3~Yf~SdqX6q0JcLI;qNX~rc5Shk znL=?P2gjSRN7`D}1|7PX@tC#rjE?h@x<@4+XYs`4G1XV_;I2uiG=p8U1sQ4OUx#Mg z)rg3QXziCG{hB5^9;f)69M%+ZWLILmRTZm?ZnurB0xJbgZsUnbof#U``a<{E1BHl1 z`Ygtl^^Qom9(tz;XrwD~GHl+X$`*6W<9*@+E$%5W$3gzUi^wa5oVu;G{tvevK6!49 z&ZG}g22-5mzc9c;WDo9WgD+9NkSo=_OjdHOMmy(%v+lRdH{?MX3vI@bW{t==Jmlr~ z)HB+}_9w_&se_`iUr}yz1U&13u^54Q=aQJ!G@;$<9ivo%qlfV7w)3}BxU=O7^=1f zY%-Vg|J)u$`x1UKmv@ixcL}ysEv#ScJB+Gtsxy-pLE2fNX4P z4h5?#CUf2pEnnPU?-0)2* z)R~_-`%+=1a;a}Gds1PX)r=2QFf89cgVJo|Q{ND&Cp|0rC%=RGCtKvR7NPfrVtKNN zxo@>i_6J~IK+M}0Qc{#~pP1+nAW0Z7AM6_^@^1eZZd66r8kRe@Aio^ojX6q~kJ9Q> z2TTWuB~uZ317-x|5M;13_m>l;r#B7VPWE7438iN+l3QF~G)qZOG^>#HW~DPn>EJVb z(Nuf6Q{3E+U4)r4gIFt7fMV-EsAU4;`2Pd%bb%Q3iF_g9iTq&%XAE(SAi)x#8}Q!@ z+PJd}3giuNAi9@?f#ff;-PKX#yfq5~`)=>|(~;-AwV}j&RsN4c27%@LkM85I9@1|6 zNrV3CHTx7YZnU5qe~iF1ctPIulKa@7p0u~bWyDJJ)hHZTN+g9gP%SxdW+;&DSxP)P zXG)jF6J?akb%CA8Q&UVAC~0Q`$~ganCufYp-G6|N1@Os*#a`8x8;v?_m%Qio!+j$L zVe|j}Er?p+GpaqG{5_ELO%tIdw<{%5{;R7SoPW$8&Wq$z%89(cjnoU?GaekL1R*+B z(Ios2^LHJ~&$4^MS;$-Q;~fX{T~iI6-#Lb$tbTG%^^z8;$?p>72OpNhb1&&}Lhp*} zthR3xB9~M0_NQBnEkPF}t2w^Mv`X#v9DX6h&nV!Eo`GnZVksh{FU=(Lkw&Yxj zS=fKpWC9wXqM3J1!V-dQDis~ar(sN@8W7ImrbSH}8sOg@|80qzy1=OGp9L}hIHArI znvD-`Cq8*2u|5Hhg+4JlarEBUqdSRo;HNn4yw)7IaoBd;9zW-ccXGWDb62sEx#FS8 zY{}A?#y`n^@MA6>nJ%&YVlVN_+f~PoM2HC$5B5OgQX`*I8!%*cHz85%O+6zYo@Qj2 z6-~d^=Nz69PUUonEHfbn%nK5pAlMv5&I8j99yPsj7vfoxScV!|=>AY(1)q8Q6$4Wj zxExdmu&Ja1wf$7QCe_@-v4e{|g|R0Lu==nZkVRR>H2vbRvZKJfml+!-*=Au+L)w1U zPgeR@vbdynOpi>`M|S_ZKy$}V)iS|%Abd0&^;g3^&UL}}g08+ra$jMRt#|KZhg7Xa z*P^tbv8dP$mpqVgENY#P@~EbL@12#^u|JvzYKdwzOzcw^U`BboIni@$foa#B?w=t5 zk$CeW2m+t$3O=gOH(`KQ)0y6bOMhM3(lx6dODn+MUE16=O*Fr%1y{IMC^sFDkA28Z zrrBgT+UWgCvit}X)2^y3s<~GDE#k24s#=$8m$Y!JrB|9Swpn8At~vwuWq;2=1U?!(Kzb7~P73J;Sb~d#sz~A~J6fiS{07S-(WG zt)*XPyXd$u7(KPy91lf#=nmPLI4?UcvwDqnISzWcPIyTQ?04>VUv1k@cereNgtXK` z8asCowi5ERY|1vc^CbdK#38JnJ?49XeHB_3aNrnIkB07#*}r1e3_?mNxjT>adW((8 z_xB<_2zn^;U$ryCJod8GytsGv@VLjG-H@&KA|)EWu#0^c=|=BPp2jqTe%miTQ+bk(lHin$ zyNbv+k*#b}V1l1xpu*?E>+*MGRRcaek&}ndWeXy8#$ZOowB@1=@qYHl*EGW5tqf@RU&$r$mE0JkD}|@|?;2zAL^vg%@d-Qv)xqp@C&A zfl0-hdJMfuw3Tkg>N-k+U5u3x&nkU0K%n1WpziC2cMPHaWL4gIlW*Xdxun5;O%gEw zZ6C( z_UWrBKIQ7Xr@pXG@d&>2ps06e+2~5yn_jR@A-;*c$F12Z>5f5qf_Z`=E(MkW_s;Hd zo^W`zv`e&s-Um+%vm;2}E8Lj~NxYJG|guIB1U=xw$(9 zFz;;Cr!8`VJt8pgbSkqoB7!|C;9tZ4Me}lZB>wZzA2o_{cg(@RmMKqPM8Lng0fIeE zFz;S9{@xd8j~^5;?^Qt1$*xx+B$7>mzpDob)58Q;TiNOAWOaU<-Gja*w!h)rzF+=}5ypQB$Uc9Q z)PLg}et&0OeuLM4V`c@(bluf$>^-qo_li91<%8SKdE3r`Z09WY@`G&W{A}m+v#+5Z z907qPJk)^^>GIikp;YwlqmcKUU@O_bBy?`Gd@d~=BR2J~h>ReI7G~@llhdBk*-%t-z zKYk|UBgCcQ{NMvx&mtMdj3j8~Y;?3$G<7RwYII+{o^78Uo;7xg%E~*QH^}oM8NX*C zyYqj~Q_geCTh3Pl#}%^5BPnm95Gt8qkFxzo7|8yTlcpnSxK^HLlZ(Vz@~&CCOy)2GMYMgSFKVsa(O!1CY-;V z-`W}FMD01($&3ZcIlM}p)zv@8yS{3^{wrnk!JqYrjdKLG{*6lZ68*S z@w4fF`r;447mXy!JW=}8oG;AX_WNh;8NIcMd_c%zuj6IstG8*cW2f=7irZz20A){= zG1dN))LZO!_v2rCsp5j=EDViI3u=$=3*z9xVXafK-MWEV-I#0T<`Zxm@B!NuDz^b~ z19``SQ(YdS+h;dVT4-GI%+|A=^UL$i@z6y82wEymwN>rYzzGQH87=|>R4!#^tHaj+ zzN4(@bh0;NsY~Cq_J}0U{mL^m0(4Xb%}{Z=#l!Cklc~vcpFd?}a=(I*uEXH}V0^lq>?+|1kPU)n1}hlNQ-Y-i0a zx&KT+e*&L?ObkvZiJ(pn#zAK=O=PN8r32Ndd63c@XfkOnwN>ex^bLm}haZ0i^zQ_9 z!RquFJDL*a>|K=?yA9aW&ErbYH6sVm`QEO!joc`RGf3<{TY0C6o04;7Ug`NP zqKBF*)vk(Kj-cFOTW!a@cuYXb5kputR1CH}rd4<~G^VzT+NygiIWtv_45yrm|-Lm*Lb*-KP3c#iVx!go1e9oJbA;#rt;5C=Bsg~*i?zGEAW{L zox?CGD=qG}X}i-Vnxoh1{qgNNNkSntxW^X0GZ}fQ zu4|7;CQz>r=FNNJbbF<^r>ukUml>R0~^` zBsnhUbF-7~Yxt!@leOz6uvK|K3GRD_^T)Lg9w9a%J{^rJl6e$hf6O)M_@hgGzXbqk zG0ouFW2!P&>H6iv>^*d|0>42QDbP*Vt*F|i?veBzlzvck*ZdkMXVLdd@9u5^J$xu+ z<6!(_KV?5lD5X4!Le}9`SX+GNbJH)t0A2`40RxGT{QO_x5Rky}BjdNftw(nrKnuv@ z^JQZ(Wb%2N_3p)|1>gX#fzBF?#ObN(%yczmOa`V7`p>goLK?8ga8?s$R1A`f@YXo9 z4S$Ca!`{Mz!iK^tXp#vw)YnV7+VA~}Z58z;^*!`~du@Z+!jk)c?S%H__D%O)EiLl- z?213{dvVxaELb54dC7dN_U*?e3*#Q+`9e4-912nrz>Q#Qu3DQ()RdZAE!E5{=6)UR zjYm90KnxBXfqyO0*H^qy>K*rwCfxZ&IH)96g-KlimuqO#u${YKuP?hqHu~B6r$T0s zjkTF1uhV|w{~bO8O$g-sieNBY1$~8fzf0sq`1T$6YONb zOuD zi4g1}K(Jeo%v|N+vL0W^5&41FIP7s!(;?;~e$r;#X4Yngm$#~!{dcYWz(4aGYS?9gJ!!;Ddl0F&7lt)V@C9gE_0;_mq;4072XU6=Suj1>a^7%VO&1ySXZyga<-6XaLYFn25$?A~M zm!@~c6(Oym@?rNucT%@M`JmY~g# zd-7Z5TEeC+v9C5=HlQa4mk9P&e?@!E6Q43@1n&w~w6{<7;Lq2W%i&0!D9OEZE$T$% zzwO{n$TyEwYN+YI2_sF}CB~3$Socn&X0>2bvS!~%hZ(az3GAPcPo4j=UUJQj!hr<> z5YD-77;w2<2-Ckd1l?F-&a{Nm>`XD_a7iw_e@;QL`Y^InuL*w7?21R9CrcGs5zem1 zm|a!n5?t_bN$6xY=yHuxdhGnZnEedI0SUkHozfZd?R!PKD5tf|?LaQuF5}o{+!+NS zD%?wdl19tQ6a@9?Zu)HVxj2_roF?BC-&C2Wr!J#McO!!03J&4~bSuBZv~&JFP&Cz~ zE#r(!p{!X7bxX`JJLJUUirCl`9P2nV3IK8r!XHdeYM!K+wB8VHNA2W1{uP}r(IzKz z1TZWpj=Q!PRK(0q=JRS>G5q{S|B^Grq#Y(d`P~4KihsU2wD{n={6|21?4|F=e!&co2>enX@&3K@${WrLKSGKZ!x0A+Z!Bmhx!d~Rd+RARb8F)HwHW?a{zM}O${ zw*9YfJTN0+X^x{5P%}W&=hH_+?&rS!Mc_uyti1=9XQgF&ePoITUl9n<>Ew+DfgNE6 zv{1*eT&buB1zjQU0M5o(lDqbgiFF_;Hx)1=jQ~E$TN7Qj zR&*(U9Y~E*0Yb~-?1s~wB6h;cLBnc?Ess_|qjjk8uF z*LIt_-cNU01GobVQeeCmCW+#ti?7#v+Kgc?ddLw0+(KCg#ezocsBR#xr?iO7o6HL zXEl#24j!ICea*X-tQzXHB+WhQJ5(=>DzC(K|51k{_3H#x#9^bGYu-H8*IWa%1w>idM`gC!J?-@?r*2PzUG5RP_us-gcX!S@sf% zM7EXmuFpBmdWs4$*)9UV z?;t-~8XM5k(oA>ec{w&)`i$(EB0L$M%^=jN=GLSvHC#)!(?L<9!x=9epU{n=spc!A=89UV7IX zlbR{`eal7|L@eF(9?2CO1Ma7u=!4fR~^Mee`di0-L}kI47}W)X#JUdGEz z>*Mrzp27ZjU({uHOxlI4_GQ5(UtmY!{Q?%efxkkITUf+E2nbo#>V&xVP5oH_WH`4o znqx|~KkdrdB8-mToUf~nWTKirfqA*|EU3x)tu;t z|0242*j@O;Q=gtxAH173P5*eQ&rWir%MpQWx9hrWk+>4MPjriL3%hHuYo`k7DPDD$ zKey?P`wBIhU6IeV=CEf^jnR?hMw+VULJ;yvQ;Yw}ccjNj{SSH2gcjdLSIC1PRG{K? z*f%2FnE1%VH@)r~)fKri_i%-B?A_)7mmRriivPOzH{O)zW2f%sRnwL?rIknex?|-F z0nQXIka$4vvS5@udNvcD;G%cUa>|@lF$jI5rNJj^Pd%Nh@Nbtyir&vI)VgfSXL{GL zI2?l~y-jm*tK1jVGThfTS=F_Z#4-vEj(~9%Bbr_Vh zRbhJirZ!uflu+d!|XMxhVm3j#}e`}z*$d7aL! zwU|n^glv*Q-)Es*?Fef~pi4{vffp}4f@T;&^?t7he&@tpS)1YvL+b@*-4En0AsFLHUc*e)rjMd-Gcw}d^-J#Tk2IqM8RL}>dpS+1{c9MQFfy}HAwhq{$s}RGy-+5;-AIM-Tg{6T3(vku=q?w0FGPtSX}}n(09P> zP#ZkJNN!o}(R@F$LwCV(H+MFvvuMCv9Yi3A>wqP6PK%+xT%ULIjfo3m$aINa!@R`h zwlR@Lg0JMvT~S`Px)6+Rc3Q3_4%2>^p*}a{urr2DCv@4acr2JzYyj7(cZ3jckpr|k z6v;?#WNK}2!4O>Y7MQ=HxKA;u64EY1N{*ObGRWwd7q~=EXL@3$iOmjy2;kP1I`eU^ z@Ay}i*!>VyFZq{g-&KDuL#2CA`t*!GJDR`JmNt;t$;IFtn92`l`97`2X?@Nv;NcGM z#~aw~^2z{OhRzc`VXO3S9G>lyYHY3XacC_szVNsA88x(+JyhzDm2kRNSi0E>uIu78 zZYhBy8I|_c)9YU(%yvanSX9TA@3?=sVHaKKEuMjB1S90K2aWC(k}oIhBa@dKyAVirNfCSJbB$`bYb8nzUYCTXili|PQ$Qo^0u zoCPmT2m;-g7f{oKZ+sYc6-1nsy$*&&$`HTxS(i5(U0W1QKgKUcV!#8QrI8mUfUoOc zH*H;{6BzSc7h48Svfq$B9p<+qyK_=SflJsn8NiV6{5>fCslD6*GqP2Z_ox=+>Y5Jg za=%+$ZQT~Fr^kuWz1Q!d#Y{xcR1aCuz&0~TPT=(zs(}Bj4={PYW_xF@DOwrCpSFzy z18>9#J_h~1d1p2{7tH#yxVl%$N*C{r03p>!M_*tG=JT2mGGCNb01;Jw09wA$tHDib zF~&4)_llC6+op?H#dy#yluymc$K3Z%C(m(6Cb=tTy^Cl7Npm1LlBZO=pPaQq>@)7E zO!I98JaHp)7j*0Wrp|vD3Xe88feoA6i^J#0z5~DKS|90uwAkHc{+J7aJ%N+U0Nb(E zULvr@16nO~;>+yUWvCw3XsSTS&V!BftMDpUsf2k(Qo_?d)bkGy3;Ps$ z)DvX0Fjs4_*u!nIr4BNWC^gz%swal#pQo$HntS6Si^(_pp#$DC)mB5a;-~YgZ0aC< zT%zgH$lsv!1Z*6yWKwZ7#_kcpu*-#IIeI%|RSzHE2l>U#U56ZSSa(ywCo^4DoQ-m* z(RXFq2u|Sjdq`(Xk;EU*o=k&DQj`;?E z?nd}Y*Q#s}OJJ8-(xB?z(?Lmav`r4ce+IuHk8Td%CMLdh3=Ut?uw#kyp#)sf^@re3 z{fM}ooWacq8$Ar4arQWND>4(=hEnlear!9XKHm&8;YXMU{iS>6lGY(txaYd1zU6gI z&_!I~t&rHBQF}3kzb7C6{Hf{B$Kbn;^Zjdk6urd`9d=5P)wSjea7dyX^o-Z^Emo*A zp-p14^(&aOy}sjXU*r&1tKN*cW%*z$>dAF0v3wOXZp(C0xN=p)AwD+hd&jinwTFIVrsN8RZ6rB zu9&aT@7RqdQ0cg{jem5&_6M$i%BAQDcXls&hF3@lE&TSzo+3RrgaGFcIEJ1!(x#k2 zgJ1K8%sz|i?`PcjF*!vtu3}K)xoY%sxBE#yIg&9<$v9#)<7(dLDxt5!mbnX+C| zX3X0!Qa@sQZnT+CF!|E$&?m2Ono%d>Siq5Qv_<~j_|WG!M=sZD*GQN#Gbdi=z+6b2 z4;1}{IqGq6C$i_y!lq@kwF@iSgI>2wE7Nn+0W?-rshao6ensm~8FK&S~HjOb`bx7?)U5Apuf_KomL!x-W zoC|Nt9|744Z8Ctg^C*9~aY{3((Wu7yP2L*;a~p{VMS%mXfmQ@4RddK&(NGpZ(;hj^ z+FflSq+MA>r&7=0Z{sfu#qD*bMMcL|3c|LcaDKLmuoshAsv)eC{_)lV>hrkNdZg`O`sBMf4npQHw6ET~luyMRey zELRMRrV-1j`8iacGRf!Rz80`b7J>#g$sNp5+n8gK3qd^wY6L|KEud(p%r%l)P3X3N znL2FL!u*bG#qYV!&8MGC_SOA_3NyslACahC4nW{9QBpF(Yjcjn=o6!$i}qx3D;4^? z8rypVtpu_HVuE~g9`dWW`)S?-ce5C`q`|h)p3`Nx+-7`#W5WC&MJ@uDpGwPmXpeBmxn4l<<~cps%)#! zmDAO-298QMxfGleLSLC43I}(!7$UZ5W7&3isXy?a%~%DHtz*2bo6he(Ln|MMc^=x; z2g~PCPWq~K6om*M>zgNYr;;|wJj2@-0^;q);7a2PRu*d`KZbM;&U@lIba5XlKDmd?28b9)UUWt{yEE`w8>d0#Yi{d!G`u=7L0n49%Icgg z74xx{&riY_`EUHr9+BOtk-!8u*sC|h%6B%~+!r5X@~dwQRkiSq5*tg%`wf_#H#~X_t#D3KZ{<9)29j5 zzW@b0w`h?eP{iQ??Rv=OLxc0s+@cQ*~AFpgWJ@(|`oSd~jsrrgyHS`u3nE zW8E-EZDjKvV_o*c%&SSj>Xdt^ohOb)7hueV^TN5adhRuU{WM(uWtQK2PJ&Q3B7 zoQZ|D&GB;c?^lLlWfHCI!6jN({qsS6x|0?K!Sts(;Ekg78qlZ*%W~>m&5tt$d;E3D zLu|uxqwt=Koe)3I{t^FLc#o&{)A}N_;_zg!rRt=1Pc7|9hAUlk{4*TeE>P@>Ln|t> zLs)M{e?X+3nKGx%_i5Z{hM6NQlB1i}3wRKkBZj;AlKKHmGjHa0U%tuZV_>4u*;nsq zP53aXu9r3r=X+c5^3Qq@nQ3qNE2{Dq6aG=@?od1b9Vc&{Kb4?Xrd@&wuT@-$&RoAd zu}W8Aks9CPqE#S4k2JAyrA64#uLR}XP1ykE!5=8_$-?e4*$EiiDF~KV2v8K`gMX~c zPG-d}Nb-(soK>SMRacfs!+z~~eGpf7BE0%mSs@NW9oo18j4|{1kMK{!Nz_>j3~zm- z@6NPOmwD}3REiXI6l3=T$#lNBj?rAiD;*}Y$k!RiUW+PMBQ3#RajU%%JgY1);zG?E zlnty*x^-gFW1Mc7F5lox_{LQ~qmw$bN8MQfDRcc0>K)k)IFUz*a}~3$X_)yhqV|u7 z#x}fwWj{}qs-yeE0G2cY^!nwliPbN-kIaL%(2?Ghz7g;%0m+)G7kDH1582|!_Pqu2 zG%9_e3-tBc%;Xw_XxT)kVd4z)9x;aFh@-8GAr*QTsb4msc)q9*k6mY=`QTo9!ITc( z=x)r(EHvOw(K>w3{&nF%7h(*KX7&#|pn0Ht?3(icbM((H=c;{8d@%l?&crR9ohgcG z`<|cP2{_XZLrtRtyXdz_AsukjHL*J2ihpS5mSh7_j5uj_D>P;Y{?Y9-guM38&B(LH ztFe_T?lgVlZ$_5<;{EERe*xg7mMjD$Bi*$b=t>->WgTptG{-rRGX3k~V zR-Ggxw_l6k`>MRrj?FCL@kRdhy&f|76Z?;Byh!jYS;#JJ!Ia+qtg`?0kHeDKoJA&v zS4asEK?D;F!b~dHU^YVM*8B^zws3*Lc|@keH;EN#yn9KPaR*x>~=Uwmh@Uc4V_!6lIZ*%o=bFmpi3D+(1)HvJ$A6rKOsW zF3jDVQTH+hZqX&{IKtP0j>`dT;~j)KZBlO@x5^3kJq0?OFJtp{5Y7(Cr<`%EHf&Yr zKiPdb=1K19s)y2LmGt*ER776V$-myYjI4hOEn52ajPP$FJ4EY>U%frd`TXjhR`V)7 z!4+*Z5Y_5nO2a zY8#^Ka(L}np&LQ?>f{G|#HIK)_8Cd>F@s$@?9$6^?7_#XF7fm(-OP&h$jDK|b&ojk zBd{5somjfvFOv~FH*j5eUp{Mn9#S$5^~g6wZ#pgiJK?hynlaz)6o=;;?Kx_vaB7SQ zZW<->Iod0dAsm-2fzX1;Xg%81azFanmVt-mue}p=DfmWcN6&@yf|Dhg_xUsG^hxdI z)ZvMHSk3Efi)uPOSX7{n1zO|mWBoll*V{QIo7$U9{!?n~N2}1SEh1^be(cW%H5%Gy zaLI{FO^mpXs2Hw>w261BQ^>j4H@nd!@Y|vvYd=D0jdmX@3EYdne;977alib#yg5`* zxUo1S+Y~sDKZR5lTg8=f|CJymv;T$)baj4Zh8Fz0}%~8YkUfUArj-$=&X#S|8p?FeL5U(>rWYb6upREx`s%SzA0y66|3lwcNP zR?OU+skw`^Q_Y?@)w@-rSn%; z?_~2ARQu3-5qWVL7pZyZ18jd6u;)r=5WX?Y< z+$^Li6ivXiH%REcDJt%}j@UW;v zsY<^6=^VHXRo7*nav$%ML~_L8rSvv;R?eqP*NM4LS%6Z*eQh(LS!rIwt>{#J?%xTi zU&+yIVr<0?*al;2rc}(}=V*4kysaysW*GY*7&bNxOsqMI!l$rt$I{?&PA{(;+DUN( z^lbFm;C}et_b((pfy|Tv*Q+Atv@6kC%*}e20grPCL#(-%&qr7;S(3?V1Gr`Shkx0Ha+fxPze_v7=h@rB@t4_wgx z8f--guu6QUIy;F!mVe~CnL`WxvbEWwBJH#-Tdz&c8smEdbocFYW66oeV|){+fm3G z@7O6(6Q?oSG%KoVyi=Cs>SP+gu~5dd81J4bvECYvnO>2C=hb6uvIjtpg5j|MN{8)lySY1w9) z@+nS{vR%0=3#W%36~!;uHjQR?)g&X5Zd7ciOWI9mZY{0{OQIZo9ZQ#eJ_Bb%|6$5! zpe_76IN^ZrfX_gCsw3L|XzJNm$E~5uEvj>EdoqDzBjfGf*rVYOBL(BgC1xq?B-;n% zHS8n@Tt-B_M;nkbtDo7Ua} zulBdf4raF}eSF6xeO-MR4|BU`yJihkuim#_4}die;~m55aT$}6DT;c5j4v(+>1VpN zgDHvzi+YR6lKK)uS*8^eAF>ac?^nve= zou0NBz=WdsKy-3Zd>Qpq87I2JssK8$y}NAhyaxR$ExcS-yIk(8iJDsxd7!#A@w^J8 zj((!-*0EoietF&*{=A6wbmm$w^!2q-F`}~rwOFcevt-|}E*D9o@ba?r{h{-)HV7K* z8{8Y@2}2E23~LB`2#W}#5vNH@y3D%F;LNzJ@s3CkiYG}ZNQg6JRx2vZK>bKSMGZ+v zK&6Opp`a%(shDqwS1UivypH!uNJw~yhmC(4D;fi@^BOxE6MfRC@jhHIC#zBH!Cji0 z8nY6QV9%7eR(jgXDaZ(@in)f%XC~u-$6L1q=@}PB=()u>MZ)^ua&NYlh9~K#! zjE7~(fGcv9bt>uEJDJ;-(<*1<2t}1oE3w)UAC;6V9w@SvQH^bv`z)5I3ox^>v5}}H zrDv5(PRY_q(aF$BR*A6{Ef+4Au#*AGQG^CD%IM0j$}g)Ivj^9dB+vhz%bk}#QaZ6Z z@h)X+mY?HRMd!rj9L_Jc4GJpX1T7vN8tx!fyldZ!?I-Rm%t&j-d5gG2Xnp}|E+M|z2^_>cP`oC5itpKZSK-7pfLMKseOd%K+@zikBENm>=b(o?Qb>=c|Nzw`as$~ zJwA+Ur-Ul1H$4fO*EzScZzf+4Ad&Cz_1$_b0VnPDmduNp#23oK2*ro5u1HdWx-ih% zW9%c+()2(X?0p6=xi_hevKZjgl{*clT%Jl6SY#tZFDt8bV6Qza%gD#oM9d|d#6JqP zRA>Vr8ARKOngS-&R8bv!%k7c*>;1we9Bn$MJX_z@^K%8W`;d3~i zOk+8j@!00V-kzzX+M`0)`rv)aHcPZ$T4YmPk=MCB7~a7A$6FHm%m zvdV7H7;gYB4laUmh`~IfQ2woXq4RdFT)>m zO%!vo)uot5C|eTHNyIp&;P@CoE{3PLc{Z`x@5ZMY@p$hlryB7n+!);CWqGK1sPP!) zh)t4vvtzU3R4C_gP7-E$3waCkwX^O$uK^zttA8l^(ezpo%xK`&)5Woi|lGLQnbJmlifG9`Q^$fB@wvZr`7 z<(hI}5%W{KyH>bh#7N!{>g@i}?0&m*igQZh;`Q=%GMrT_yC!o}i>XZ zxlIz@mDTzNDbSZIZU$1WM~_p1(cyY!h8FfQ7A#YzY9mn7|l*q0U?@h2G7d&rE8RyX)RGZnyun{p=CH1tNO6)p!5E% zU2EqS?zCs3cIFK$JC|YiOgd|eNxPS{h^>HVdFSYA9{;OcEhTNRnevj%A)_k&$hIvN zsw4O5E6i-gpdBUontq4!+l=s&^y?#Trh{-kLxP9!&eGd#92-<`#V%?a@}ew<0S#)t z5#*Zf+-H<**{Irh<-skBQg$NST>jjpS0dXJ7K zzw?as0Y1vppTlz++p<@%(+D?_3ztt&+P)m8TF8+$;lvPz;g?-`$T z!?`U}T4x*`$vp#AXp_G6<`jyIV4nv0L75`c#65J~8(K)NgnSo})pAyJUEf4Q*;{n-atx-Wwfzi$|{{C{0=& zN!lt|T^AIB!Q$ok`;Wn(Ysrbee3YknElTM;d zZJm{UnpW9>%vOC5;;BwugmmC!-u=O`yd*mhd3MA6{zj!#*Z8;u0XuG$CCvMMO4%Fx}jBFdKLb%b-OWxmV<9Km(*E|{5g9e zKX##})Jc0~gG$Yki54wkXf%~g6TO<+vdBfb(^fl9gXNM;3m_F>U_pVfT5y%QYI%{b zrJJ%I77u%johY6-oa-T7P%mAAVibY0maJ@1QVHP^-ZWg@XremxZ0S+m#>+jUtqY7e zX->gfGOAxQU0Iu`)OJ7S57)A)DP)m0j_F$7Ojb3r36-hm*wC2Jm|#CkxWtg>FPALW z^C;Oew{Cd9^g5msuJVe#ZvU4!#IKM2Y}c{HZoOk z!xfL}%$ylFjYYAdeuO3;uADEERa(Fk%`#S2Yo0~zP{6XFeLQJ*oR+nW3byz9RbY&#g$?h_Enu=ae?;iUl|8J=Mr)2xX3C+P-8??MlufrG*uIIEj!P0zi8jUtiT`{;@#7BWM~6U$=o3v7G+#K5?$nT^yBJju^}eSEKx|~ z-HJXKr?_(+%h&vA=XRc@VRMnj%LS=NloU@@H}W#?^yoRMOfsbF65{k@Em6 z`AvF&S*vKvPu6`A`Rsc-Wk}Y=QK?Qa#-~Y79kvtgXImNH5?>e}qjWJ)~Im&AO=&~*u z=Q(-u0Lv$wAKlzDRMqI5*k&`yV`Qv6^In~~g~+7#=p__4XkNB1Sr@n@cpg!mk_pba zz>XLmr=}6!ER&lMm$m9lK)4 zkQH$gG;mX&wi=dy9I)Vb8{X2 z6HgGiCJr7h&A)l0?u5ZPjQDXN>8jl3E9CT)eZ;hjP3;2i_VrC`V2R3^av7Urijp~>nTy(2 z_xk`(Vak8j!#zLYZuUTTLDGTxk)bX+Rxx%FAK#hSXDD=hdLD;PuIHm6$`1n?wWja_euj?o2Agf`B#STU5KkKo^ zhBH;wTZLEC-X6kHkDv2l>eowNR2x@?o7%-1PLq zO~Pj;5Ho=HvREk-)wpH(aiT@8#151yW@E!m@q%9xbGb>$k!ooN^abc;nIaPpGl$w@ z#cFB?E|EJ-&!4aQ4cp_>#TYWr&>e~6rI;;e0-6N~IRr4o9IrYn=HOZQz z-Nsc6mh%?FCMGShS}kRTaqFq-+v~*Hkj*`qGx*id#x(=tC~pREpGGtV@e3lj8?Z32<1OJJom53rbn;7ck1&2fj-qfglU9oq z9);{W%~kQKg2z=L0LI}Gev$s_z0*)~))UB<$OFMJnf+L9ti_5ibz^$S#nA1>KS<$-a7XEDY ztZw2lCuRb)HmRInL*?7MjA3BFo~*GQ#VAAu7*u%*?@ik;ahWq<^Aygc)ecwFl>eDX zi_SvuC|WSPa-Qboo8y~yD~MlToU2joKusCXh?MABXxoJ|W|*bPq#?tfbDEZW?t86n zJs6*M=7?(i8(ysrY+O{+ZcQ?`%bCSh!u+x(w^EyaJ`6XF(LOMS^*T6Sqcb!~D7wNS z6ACH|E2;+8lGkiy(K^>-Slr7d);N~bb!lbJ(rmuDqid`gKCol43|c=!Np5HzRJ(Ar zX+*9WcWvMmC@4}5@{4`BbzIjrUD3)C94qAH z?a+Hvc`RQ^<5&|~VJ5^#(T>(o;SpJ0xke>XRQ~r&xsDRkeiFqzPJPmj2JULpW?v-1 z&~US>ug$~r*Nu9%Cjbm}rCSv&mbERIKQGwBR?-IDg6Zl{3D=O|4#!E*TC4I-UB4{r^cENpn={QZ z5q&DZN3N5o*&-Bwe)9B*tj#lPq(yReJiFdk*r94QRh^URD#&fiO=Fd-+CGrAXOYDD zg6SDAbu6zG0ZDNj&!nXu(6SjP!oggu*W9IGz`s9%?(dtt4fbSwny{q%qcKz(d$e+Z zvzLK-BsnkDYg_%{(aJo0WKqlFJ_Sj@)N8`0m~aPFj0@R0{xN~QoKgNGm&1!UlBc}= zfH%p9lxWFA+It>J9Ldq-mzh^S6*`S2@R(O1%zL0wmV~5Has8xbmir&8fP><~dIM>r zlt8Df@V0~pi~Etn)2hzaUUgP_y{b@z<6v0!q~&)>c$%Xk@{;1BVhVVesd~Uj)*?xN z{PIN*S=K3aN49zGOOZ-z+VuP)wT;zu(PH{y_@a9YXVaL4gq1iOrc}uTk3xr{2W+|` zq(X?|$bEIu^RNX<*Km`PhIo)F5A@TfUeo{EXHvcTcI|L_+xyfGX}F8jDg)Kf)X*9# z!rYwV5Q(_86r9{<`#$5>_>lC_m1CoQ|5Dtew)|%7XyZX? zX6mw}U=3A9X4O$qcGEKk%86RzmhPW~yIlNr_v^8T{>=?O;p_zMo&#LOqI}?3_YaMbwC2pYU)ktA+PndH%XEc`;lBzqWpCkyaNAQ&OkZoOE1Qf<} z=Mcu!7!-G7w0;|Mp-XLEOy+A4cCnGA%$W!&&laDTR?~eZ6!|3Q+NkwHffcp{#)~Hkb zrEaU~LIZkP0C9DUo`@3oFvDl%wEm4B^ilN@`qbP;uI{d)b!r(8xCaG&K5_#qOsF@%&-2v4*hPcR{yD+wdISY8gX! zJmG!c!nK6-zp||jvyX5bk=PI`=wxW*5PmQ<^)VGNOAN>hD3nJCK}ZmNlR4!nl<&rU zr#DNy3F-#m96{z0#)`TzJrbKG5{7t7;T#psN-DUQaxBtpk=4Ylh+*HWyV02?2FCx1 zvRCJl#yN_#4`v-#JEAp9v@XhEm57-a!YKltCDkW7jB}k;jk_InvZ|jczKa#`7Vrz< z9H~92%~R?q^@!mdNuHaOF8kPZfag>tm8E2|E-;_I1w*+Eb}Uqe_!&Rr>rTfi4%3x^2%ZzuUXRh zFFVA&F!3+hCxN2Cca5i(Lizb7$9YO@bqKRWDY^vKaVV?bW{Gj@V)K-0>KJB;bL*z_ zlm?AVh4S@Hmh+Tc>Ii0unsh0w64}WBoT9%pf1(r$(c?s^mczvhq!!8JMX46X#R>+S zIL#96t1?+76eQzCnb;K5i`UZWwrbqcDU?N*MV7^HA}eDmQ_6{PiE#@diE&AAi_YSt z<7UJWMfnNeIv?c@&qf#KCr2@fbz-;C-N^4FS!wPq57o}L;uu7o#TrO>NMHAF7Crw*>@D~qLgUxYKvHzp9cNF*Rn$)pmg~_fR&buz&!_`|<_KO`XGo6+LRp^&?K0gKYgoe1 zu7~BR`$Wv(0J?zYxW*{INjh5U$axIBqU zWPqU$+);UxaxSGA*Gs7GA}~~6FkKF1--XvnN>3N(&{Wc1@>luUA1qHNi?R%*J^9^l zHs|Q)Nj>r*g<If<`?6CAoB%w|NtZnC9fv4#nJcgZM! zeRB-#UIla+0aDc=YQ)rk&xiPcySjw-^3Z+=L^I+egCtXt2Mq&yTTnk7zl9KGF9o3a z-FG%;P(L1w1u7>s^}jEqko0pDF2SjFrF&(eKm7F>0xzs01^+XkSkM;qKuvCs$!+-ojeNZ^j_TeTuD3SQc5bz|s zQvM0On~25|rB|gnHV5kgP~W1Xtk(l4fsvaLwj}Sp5v5(QVsA#H6`T>Q_IPHkIfTBR zXeK&>;`2dx&zZOFm=Llg@Y>I7LJGTIrLbpj>jk4%TTlnr%(?=b5ZvBIujvgdv}#D#n6`^bUG?gaqi!CsO$h!_iGatG$3pDua~ z!Z@Gs7P~pMvNen^Cj^>L5CTG@Z}8s1NIi(MU&xDG=fYk;o$`shA)3@9u_86G4OF}_ z>|qZbI6oK-!AV7}v4CSfF}(5yafpBOv&{^{ULT-(U|rns>^b*)pu;><6N>Q!t*yjj zvI{(M6#h+m*wHzTG9F4j1VMcx+_{Ac=FAa86-=@MLRr6~U*kdrGa&e5_97z2yeDal zWzQ#bjqed1eu3GuU6>c22!{Ob-ri&3zpbCdL9rSk9q=9C^~KPOIhHavIwnwzOM?oZ z!@0e4Eo{(nHcqmou>{b0p`&o?2!2qTDqzM@4YM7??zVRXK?ZN)vH|LUC8<<1I=o$Y#1;i~(0T>}5loS^GJF)FAM1 zk%~MLDV>zo7|;q+5F?&3No2SV@nDnYhW=_4Qesv7#n_Mt9Vi7*>JEu#%rFJ(SCm(O zbTA?yHQwlr;eYTc_xC2|C2Ju3nh-=p?iNV%?rj{Vq~K^77> z;e_frFKORZ>=>_qhJz(H6(sTH%qh|DM8D4y;7y~S`YTWyr03Oo$FD(y$S2G-k_TG>JBHCcu@eoYD~?L)QaQ`3dO{Y`Eu2}XgsF~qcl=%O z8*NW$l<4PI8`4>t=n(&OU!lGVsbXX*>DXhTZvzJ^ljYn}p3>InH|^mD@&j+bXYv7H zuY1<)UNlfonrb$7eG3ZlFMWWpj>5M8tpJHMdG#+L+Q>9XkDgdFfgo#7q&*(Tn%Ky>Y--1x0~4h#W46Ha0w%+&ZC3SwoAY4%K{l+XpTeu50C|I zlmsjF{Q-X)4cMpO{}2X9Oe-loD&tV)d(U$Go1GzABt3&6$}*A4pgX@xbGeby@1{mmpu zzgyhjFVB@tx6Qo>fn^=1xe0!Qzo$I<(~E7gfsR(3d`WmU`JgUlJ74b^?n(qZ_sejS z&2PoC*ye83i~Y8Yc3%Lwv2xd=HyU2>J0$ljwSTZMls0-C&bVtZ`BWm|urN_)Ng})+Dt?9eT zzXLT^(3d!uR=VNB_b1z@?VC#vwUJ7G$Ddm zr@9Kg{Xx1Y%WlyWxOrj5eP>+(Pr)rn_P zM{hLSO^O|vHfhs=#vl4LKPG1W%22D3`WK-)J^wctuCu+~DGDoUtpRID?^??ex3)!c zavIr~_gc`CBHJ4MJc`Z`{3wtNb>F3eR6lpXXj13?AFl{l|L1YPjSoV#e-?%|LKrt< zftFG>EaP&&WgcB{X6R<{pE+EkMZ`5y;*%MYFT6mXC`Q)uaP7EY4n_C|Q7m^(_=gA> zKI~yyQJbj&y*`+*I5yhg&$OrU?VvV_fc~k)5noU^^3@y)2~w*r_yE9s>}P}`K0 z(Qg3#A2;TY&@x)7q2J>1RQ^(Sditupye51DyuGpmF|W>}5~ByPF@I(Jf3pa>aq0eH zL???@>Y*aFXXI&{DlYTDF+vQ}cLayz|#^p+)gAvkBI6+%I*`1SRxrJJl5? z`DC?3sYLZq#?A`noY=5*m}9oI9SL2E310eC`F~qY+Jp8ar zVff<-cRvxjC$G!Q@-u$o8GF=vR8J7+PE)G9FLT0Bp1hcv;WvraXjH6aLa(=+E&$we zy9JV)6ak+&+n=o$O02Q99_{WF9Y`$q=OBSA`j3W3YZ~s2+$hO}57wUmpYu#p5L){{-(Xa;S+4`?iH)Co<$FF8Pm! z?tbdbNH%e7n;qt!xdE8?wS9d_S%1S~rW(ro3@!YAZqjAFU)FTn{i#g!EP3fv*Sr~w zLXm61QiMiTqb`OBybbAT(32Q{RBb1#Qv@%JFz6o&Qm@Eaz;P@rm>Zf?U6*klP0k?f z#0EZxHuE@;LUt201|*z*Kj0_)1A}4R&imKp56l%T2ySC{y*8k>gnXT;A<5je=wm*5 zdEvUX?L-e$UNvA&ZAZ4oeEkI!6iTX_9wu$^g`KkTZ*j=GBgZl~SVxhV@T{Wn$w8nS za5lmT9`@-}O?9$|b!(j_G#cVdK8VjoMsP96ebPLlmv>S5{0j zgGjwerN#FL*c$&}Hd3e2&Dn%vF?s~-zV}<3SSQ`nUz!LkvhyiSQb$Ms?L1 z6tcV|mBp-=v^xFC`yME1y`z!pk}@v?RCCLZ4i zk0#nr?n)JUf*qvq5cV}0=d&%~7#RmYbljF-0H_FnOlfKZ=3&82JV{k9lS7jW#_dkM zO~*+Z-VTGRPzFX)10QAg=y44&76Q6QOk+`RA*vdRX}B{qSgAEe)lAxR{=v}jM0^i4 zwFF7SH=Mf$6#^K{k;=tTHFXC!`s1>*Ca*Ut86r5vH8cso&PB2u1HR$5`Ze9bS)djg zl04=h|N1SgX6yLzrln>DH*{{Bk{nxS9;qRc&_tTV&HN#I4EW`9g2SqDD%?wrT;+gB zy1J6bk4)$v;&g?r*@3yz9muExNOQ-(O|zk}FOW7moN=^1cBWRPNO7}5^)ZRttI$@1 z$w#Ps+;H1cSG9Fg%7h>2mj@wco6^5niRGG=OcpSQTf6NMcwTkoiy8PQmedV3es>>c;p86(TTN) z9iSi@*&YV_M!}LsmHUQok?-61jVm2C5W-heU0ao(OIOQZCP-l_MRU|bSIdlcTzycb zb0vhssHbGi&u9{0rDO_04jRK^$ouY9i|l4xeq@cjV|*0CvT6NEhdqgeU4eJc6v?0s zyPpPS^Yy5SHbbjvY!TvacSR)@Y3+nIf7?E2BM+APl4e5iPORUnx%7&^$JU5!?C?gW z32Q+L_mz7VdeTGk;HneN8Za7ll3pUe?viW680Gg38l};i9o8dw>I}a1j${69O|;fa z{N22x6=%&j4=CWMC-@MK)ox_&sq@Aw(h9*c1-{uZb~7f7r2i(E%Gl%n2i~~%@CA{$R*5{7C~XPA0NU0_sLdF zOpbw6uO}`OE)9}Oh`_fpKsb8^AVhq!gYYNQuQs(p1UJwYa((2gkL6&eHOqaW^=eOV zj!oGDbZ{*vY;A_~!WI4=i3dY=GanMvR4*kmy-fNQu=iMRD+bTjW-n&trs~r|&_PFT z;&EM$SI%D7C8lF@NbS>b+xjCp9swr2L}W|6`@}?ji6xHx#o1vKl~b8bfw34vmZqpY*PLACO&Cp>TM@Lr&oTZ!qHn znSP-XdgT`r-E>o&Uu2hl>kb?^igfd9X97i|+MK+n4+ys0-7lt7u{v<*BjR| z>*8823EK1XQErZ>=VKWm?-bo20fqXGr;fq54$(5iE{o+$!!Uk7L4w}bv(Lt=e!-wLDI{P2`R;C(5En$&tn*Yccu5*K@5K}M-Ys4jh_3RV*0-U zvT)gyjDJLDA3J=>$vvzf{~|uyN6hE9&&*-A7eXHiAFtP%ZmUTe&}&!EXaDK-4)0st z$@SZ{fkpv?mzm|G&<>56wb$jD4Syp;!&&R&7)uTx@ZRX6$>zv8YSU8sLcn8%p=mY% zbNgYyY2n)~0+;Xpyu!ujJ^TCf{w$g<4;I(ObMMTiBImug@ndJ_x%TpcoJisG)sjTWn)7yeSR?R!DB$C^=MT@|oRh<5Ip5{dmEQ3FXn-%<^ZIqj z0mBUP{uA&0f>`{iAACa(P3XEaae{(NNcfS^^Rdse9iAs*&W^hOK3N1Q~Ab^YvM_V)Wl2=pdb^r$my@ zA6@RKSgaTJ3|{ykd6{bFaf=dmQCG~izt3Ne{~zQ1 z7&KfHL6jdonL7npem3#?ifQX{zYf3oI|_hVF`yXIt(xsGY;Ov-%RiC-mWCFcH1&5Z!#<3~ze3a;JCHQoKD@0#Uk%Cq8`U8sXtED6@e$~? z7Z5|<-#orcuTXg`xeBhh6j#)0A!ju@T)D@OlJ7O879P%L>Gh?-@(#}gPDq&whz~DD z5D@-n8zNTtS5E6w&6N_n&Gjp^r6Q4-N^nV8m=GMB@H#YRpackKgUt)Jjp94qE#yE! zs7xfZWR|1c_f*e}X$T`2;5_*pN>8zRPqt8l)MeIo`H+nHL{9t%&WO0cRi~RO4GoDJ z5I&P-X008fo8Eb0pI!6F0dm0r^9aCk5Rf~;NkGK=W3VS5CH3$a10rByLBD7)^GOQ7 zpq8lQ4In_mrG84K_-R81?<|C?h z+u905{7O`jIFdq;^`B=EUjk_Qi`Ht^N;W_8r48TM;@OK9rrJytY`}6XgE9lY;5d?h z^^Fre_?7!$z2Hd_yjNc=&9ZDImKS}M*{1&M_P{i@2B?X@=P@`E7*c+2CLr!rEevCz zn;j}xMSNY451Sw_;(On(KiOfdn#vZ^oN)thSH)-``iQx^ z60A@W@|5;*Hw$>}3XpAOo!?QOZq}*GSW1K2c5ST`6ql{eiMXY2O`m?0<<+Gw+k2uY ze*o304;t6jEe&VZ0O%Sb8tK8^ZuhthJ9NvdP>HGW0k6UB&^)J7vRd~H%yY=&djU*p zM+#$ENx!PBoP^QdbW~;|3UnuG)Bre>P#Gn1|e8=NhGjqr>aSo;+oUA^w67v|VoZ4z&1D+B0QYMa$OqzlMimG%}`dR-%oMZfW zkSK(t;C8Y({D z_R7Wiklxwh9$17Zk^u&SpRk9dl}rse9L)ULHtf3fk5KNBP^sL;<vM@aPxZF4ab~e}p`v&*v!t}Vz`W?8`$FqqCx{=MPuVYkbemlS&OlQmayog(CId36=F9iQ< zR2X_LbA4EUmupx|^Y5E~dja=oO7B3-TlJxU@p*+_Q4kD6%(0f*KdmJWkY@iXn_zpZ z-Dq1Ik}tF}lkFDA^V!^;m<*m9`W%Q)yj2nh78#Gsds^Y2VCaUa-j;aazy+{&0MW>5ba5&iTAcXifwk?a}Q%RG_?`y!WYY}1=oz&=`DAI@BD@ljPSU^`C zWVgjnrVRv$;I3O5(ekkW|POlZo5-EbLtV(q_~c=71J9)W%hh}X&QzG zXi|~Y9D;Vw_81{95;S+Y$NoSrlWYO!PmqO}rkI04hTT)6073LYX74t|Ti4+86@ztP ztM>_s&?yf^T#Gnz^Zt}MfqRH@^ebmR|J~+)Bv4vI^Acl@WIvPlSt(iz-z#$D#17nG zr8YO^;flq=mJMmS!7$mjj_8>-1lS#0nAQ0#CwV**Ixhbl4(OCs;KvQhu9)xLr@Ols z+4OZ9(e^9A@muTMiy9)o`)-uzl-fD)ic&Dy?J%1BVZ;BR&F+FrIdfc1_GU8%1 zL&#ZtHfnX3s}A(eT9hxUaN6zvJE+hi39bL4d140G9}fb=t{8fI^k*%wf&wAtE5c_y z)l1Ms2Jl`|P4G)B{>cYIq$c5q9v}CiBA(YGMa0ki<7lz3=X(SYJqCn621IufdCK!S z=OB^vX$kE=rY7#i?~7>&`H>`}2JRi|$!|YJ6iFpWHgu z<@eu31 z3bBz7h#eoU4b?974>ca?ctL0wdfo;_9rPIB4T^qb;S}>UGhL?5xrM5LjyOG6stj++ zisnHc>Ge-*#+8xhPnOhZSta)oaZyVkS5;0WnGAI?5ecWm($qdoL9kAJa)xH>aSEw5 zhVxrKD&ZntKvTUwBD zgq33(sZ$zLt@4#Lde&`{yU(8s?&mKu6}{T_k)2{Iqw}Vp2Lu;E1LIvkPPTbY=gxfi9qK&gE!Zsz<8N_jI=TGufHF|h%-HKe|Qi2g4@C3EW+Iq ztk~OB$|t?ZYCP<~95*7FHFje@X`{hS3db7;ECf~f@TqwT6SN^a^@e|>HxAsiF;yHYuox6N zcKTJf*uQ6+MsQPxJHb4@6uJ7A^WxXv4pe{wy<&~H2Bh#pwuEvObM2q~M-K$;)-U^# zm%{7E&`SrOA=K@G>u!t*p8+kbyXh;ANUWa;PVScn3u=<`$<@l~X&@K)H$4Mu)AsO8l+Dkkne(c2-S+jmd(?jM)ocf z7UK;8OvOv7;)R+dZrfKu)aqIAD74%4~ z(j{25`tmK(#|EV=2O|~T5Sl`L84T~`K9V?p$>rdI+x9GZrLHDNCm3V* zB%s)6C9hyWlFgVDz~rKoGVmzx&0dBkRSr7fcb#9Z_=2hMI%QbMNWk5`f~T zVSX+lpm|n}qiQl7`aP*Z(g@IaW{l#yJq?2{{qns9hJ7Cjm=e}J*mRdo%vbC)xK;Wp zsC&qARfDz!N&eD&!9>{3ML<}Ck^wS_3Fu{l>wI!@@(=9EXI1uqR&(tzPJLF_#<^}m z3d{EnZT#23(@zvWYxi`D(pRnTp>YoDY)?r{x{D&&27t-_CkhzY7k6DMa;}LQ8jeL& z{qX=8L%w^!iBcJ5@+t&J?dJBth>=E49o^E3xq^4{xvd~_-t`YL*{N=K=xCiNDM`93 zFeVq@;ocDdj4o85fZur152jWxEtqds(ve6j{O~CYNhuNE!WDPe-|bC|1fm9@Sr?);ySgSf8riyC0q?_k=y@ zU>KMI7&r#qnO2_*^!pSNV(=~s{(Whj73%TT@nOKd3smBF*pwX>vf)+BVhN_IsvP>o zXO+3UtnrzCjH~&xbq*t2%84L*e~(Pnp}BFjn^?!M<9fu)3e-_XCPCyYD$-fCW{^=) zG}Wub2}ZFr2TQ@!JMsqFa&`^Ya{NWl=(U>KXS5`60~%j0;@#1|tULt;$IE0?9Ha4^ z+L!5cqw_i~!8X`A2uhi#RjYvog9UN;o7-v}>s8qf-}Mwn>3CYm*<)&q)QG`BLA2w< zc9z0G-@Ujt zKtbi@1-+Msk4z&D>8wIa1m^1!E9Qb)w~(?O%CS=mr$hfgVYLUmfKmagw2X4)46W=_ zsH<=B*6WV0S#+zoQnJ>QL$xSbc6%tC%7MLSK7L=e$3+BR-Gt9%t*;YoqNc!ZU~KC> z=Q~IivxL1hL{3M($bM>!xzH9%wSg(6FEjh)kubeKX<)dlV(M{zy*2+yj0Sa$SVuAQ zMWH?|mU>Z=PP}qwdz>Z1{b5b%TjOE;zi@Uf5ScKLCbq^-&W&eJ z1Npx~yJ!0(=vjr}qmSPGAnWGpU{4!{fg)gQ3ZQ)rZSwkGXd$IWZiwvpTGliSkdkwE z_l=d|O04X*Npec()|}$7bBmKuPkT0C+rt$phnuR4-@2m6@iGL3v$szkmD=6qc z9)>kFQSs`8+#Y}?kWuwZvK%gHt$6IvjC%L~n>_fJLV`;F9)+9kVT`1YXmh6e-r;<; z;nf?lwgMnqRJt{0PovKo9b{tpPnp;^rQQ6S5`p}|D%ZBwcmHl0lyi1$YO(0jP(D1@yo!#&dSF6|9mmvGcs|ourmLDGk)y_ z;f}S^an9!?nrJeyS-qlooiNsD5{I_YXhgM3+Ir3IfI8;TKMAC0O(t8&j|e0oiC+qj zh@9F^0-?2qTy7E2YDC@>u$TyBbJ0^=*A};U(z^?^lLk=IMq?BH{L7Sx%~3oblKR$r zs%~~l{r8vW^!qc;N)Mnv0tTk&J~9Xb_tN|MFJ2h8Kido~*vr!f?_dp}TLm<~(|n-6 z5rvCdjHsX9%fCgZOMhgt_A1tU8+!N`wf|KtwWi!k{r3RP_Md*PP~}1bO+(Gw?e}30 zz=?R!yIAe!z}O!8urHWw)7YxrPW?%PSPrWHBo=^loNc&H0}40(zNhLxdYkY&-8&wa zs~Uhs2LG!+FK=qr&nvV@_&km1C#Nw7{5wD!wpRqa$owJ;)o!o{zKHkl)CQael)d#I5uzY{#lId74#mTvU={Eg{H?U88$d4b$ZS`~POTZz65 zzJ5>A2}})H5#?;oyc1m@RuVuri`3Ud6mGeS|N3>I33#NX?GbMnFkaEK@ubR>=VE?k zgZIS76|=<@FKQROH_?y>Vp& zg^YtqXG1;mzk5{LNYD<1)C61yhPAk%<75W$J?tM^wX7~!Yk*Sf2(+d4$8zhmAtaXy z!B<0;{wUf`mol}Os)@Ai>FA0SuNdv9XRir!{CSsJ_38s((ve<%a_?&?*B*Z;P->~4 z$d^GO+%Q({Sob-@p4imbaX)l{Av&N}KcMyM%i9A<*k_5c$B9RAV*9`6{$%7QH7Vaq@u;$=! zM#8~)^kWBT$gw_9TXFqz?O_LK#ei14-`UASX7F#wUM$~%JOA=T`5s6u^p~&I4*J@0 z-8BZjDA#xQkba#YwMM8%KN0+m5%F8D=LQ(uieV}4QPbzP0kbdvZLqegU|z-CeVooIt@91izQ$Fce_?LV_NI2;>@d(KL!AhA$nW+I{t~!w_#|;epZRPJ zLDVNn5o_yYv15iPa9A{@VgYKCi`X7hF|YpE`_$`IqV64S@VOq{nD}TlQWDl z*!eiqKli!F>nQuLiVrI&52VWVCGRXcY;5H4a@@Bv1 z7tW@q)&|La082o$zgC4I-B2scqz1mSrzg}UMlX}cQ|f-z0N2D_F)z$oPp zIbfUF3PkDs*&i~!FxT(Sy*^OIAb4v-F!gY@!9Vr@wt@e!ha0r^Roh`;2Z+7Fd7;~e z4A_Ch4q)4n&Tf6voOOYH=%3p0LJF~Zms}uJM^MyXps3Slm%Iq z1>sKx*q#R&)d8sv6xYGI4A`)P#10%vbANCb?rD3o_eSqd>dx$BN{|zg^T7H7_2S;2 z3cyf@@&oaLW*~ownBHYU{xE+ze^H0c6#XQBaxFog(4RaOr@Sd&q+i2+aBm^~6p60c zHqI2q5+{z^bbTLA%5+}=zQ^B*j-p>%zf-#Djdvqo6Sc-`ro)PDzFf5%e707n=(Z5| zx-E|0Ltl)Fh^}aRjBhemstAXu!c?j8)LWhHCk}r_puSL_L%X_8rE+j?Y-*kaX=a?V zFoR%T0y;M{EgLEq^%QQYkR*G&B_6Qjy2ekO*KJk>qc)70kdu}Kr|?k z@-ATL28q}@PH1U2@4^wU{o*V`-y;J zfq3e%ls!QR9K}WB6Zq;_lgrm|ef++&$gkPZp> zc76&Uo*t2^qoKSM4Vqie)Jq$J)58p}G4T?6eS)bTz|)4XaLy_@gr$I?;O;TalGV!@ z6ul!4DxWuvij9pGD$Aso!;f;5db#(#1#7kLcZsn^IRXZvc<+zdCZ0Rk9$T;_tj|r2 z*>`a?>3#~6*dMMU@c`9^4tuh?C?qV;gv%_9h7?8G7Y8xu=Bl?*)Oa;yHGSU6q#OU- z^^oHv!x>VBW2nZ8vMtcqMJ^b#}S!(LQJE zz{ADD9CD$pU8U#{ibxZCo}(HSwSPUQIvigAR>-uAfW9r!NC{0sg(73@M=DZdPe7Xh zs46gXBEg6e?lx~DD6hW1R#}4Z3Q$;jH>xmuR}TzR&vhHC=(A)JgT^Tfqk6{nNm|y zczHZ(Xg)ee?xwM=^8hv7pOZ1OhHb&K@!!-Qe74%o0_;i3x+|$YW%mScv$iZCjl$C8 zh-PIdJgN&%ih-;I;QKMUHUqSKaM7R;E6C7U2=>|fdDN!I^)9{O#jE7 z%LQZC3jQ2CM|Dec)Z){#T)Vx?JX{!Vo!_g$`mO1)@4K@z#O+DgynP}WbayaTQE$SF zsj4kFoWteK{i4V$t%Gly5!lW|89T>pWp<@0^P*RIj#PfWwu6n47p7cH$ql#{JVm+6 z$eewk7{z6z;9L{(Ox|>6)}9_Ba8PvMal*f_mQ!9XGOLvE)X?o`u1aUdU{Y%`$^;EF z)nl0I-r2|ReCGN!o1vSYBl_kL^98&Pf1ZI9p@1n1&+jP5Bq_AwLr+MDL=@O9i`+eU zj}F7(k^crO(xs4_94BZ8oe`F;{GOhkN<1kv$@p9kC5AK@dC=O7O+7#N3|GK5Qoq4M zLl2fJCp8^_QWc8F26zt^8j5Ft(aN=nl0iGvaWLiqAc0|WL5@?5lj}-eB5-|7aeq5T z;tyexssx(+JMI9Q+|YfE4ooz*@tjW4Bj3>&AH0^GaHQ=iIw|PHo|=Z6B`);EH1EM~ zRLCR;AVsI(%&1cuz^Fc{CgG8&y4VCl?U)G56G$Y7U!58t_96{19!8;I?NB1qmCK7seDoiGq+s3R`HA7CsIaN5k0_hq&i9 zP4XG!*3iiJhcLvP{7DWlj+He3G>D0|i)P zo#5P7@PMUa0w2f8))apW%=>9qf&4U)H2rWuM|Ld$E6P$Ox3Jfwy{CyT=#o9UvKKa= zAS9~cHVI#JXXU9ZAX}qa3n)0M01MvP%?_jmcEYlR2C$v(CkZE>#feulTA$!@Yv#w0 zC4PjQjf+23(;b-ha^ake$v4xJE5eZzqPfJnN6$;BxO@z02%hQQJLEJu0u#fTtwt&Q1^ZU?!hYibtEr6ls`2hs6AMNx)JRf#BqtUbZGK214>w+D9?-%Q;SaG`>Ga92`QU;aK;d=;Mj9 z^>avGO(8s%(8c1*`?@-*A=%<~!SXf_kmeh@jJ{@y)5AIR+QL|P;&5F|B9UlRbgxgi01_pO>qx6q9m}T4>G+CvNN03@I?#e-Uh;nQ%5@J ztWx>oWQiL-RG~V$jrGtJZmB%IINTgGB}Lz12Y8Nd_;reWRWcP5U6as8RB&Kld|_u3 zkW|q@IHC$8D%*__EcCHx6-#4}pM47!h8FPRBVMnuo4f8iD{t+tk(*x6*h}8t;HwJP zLxTww?_t`J(UXbm+v(J+E#0O=$;#Rp=f!y~jSA zoAmAj*2=>k{U*ZM_?jp9 zFG5qW1~iQP;4{6!$H+YKG2%c%vPCA zsBML=6=X-2&1?s&R?^I(ITNVOCummdZYk`#cn*xE&69}e&~ZS50)r(zeegm33_Ue^ zev&~wVl`#_y^NVMKs2bdx`*}CJM6wRz!spjl)7KI`iFD?^4;xysv7z?il~uF|D0+> zsO5q>CHmw)BZr6pI)=c>V#65HCf%&Mr79K=&%ui4{(4Uq3>pehzlhm&J7br5NQ1^8 z?tgzK%2)hi&ZDa4E286;H!8=r?OI-C4_^6x*$nie6Nb)APLSD|g+N&o3i=1tAoO}u z==re)VGR8?>Kw;ueKnmml{0&)yQ-_Io1<+gZ5>wekyL5@M|bXH)haB@u3H3--#8^GyRFcaH=%ohY3i#?Vv_YR{X zWp4)N{HfzV3qEba!Va=&+>vStV&lWZ*|p)@`OR=RgRHtZSgBLC1ybHx9fUvI4ky*U z?jhPML~3ut#(r|jv}l8n(;Vf~)w;9P*ZDl0^+Z9*rIcJJvfP&)TIr_e8DOAY=R93{ zxFcGQ5B-#nh>PkwFP@YPOzJ^-Vz_iojIO7F9@H~ zZGeeE%{81rl-4=3zAY8Kpwh)WFPvY9>55~Df54_D?J>NGYtz4&%pNAKDQOjxecrAE z$kLR53f-u!KtFQipMPU3cb_$vOLveCy^kX9*v2I+FmMB8`$dvpOX4?99P$a%UKr2= zwCW&Z_HtJQkwjbi2hhsM2bT|E^`~>uz7W2!d4g2mBu|XpJ=bcgzL>nAQ3lYQ%68?u z{#y=YctO7HxF7bd-a;O}X)yz!B`!A{$*lc|-meF-26iszs1(0yEHNS1J;-OclLuAiQ@(89l<`AN7$TcKS{`9xuh|3s=B zNt0)@RfeJ1djQKvFjOp9u_RZif{~|*1PofjFi*amPbP5#2rR|N$}V~WR*nc+1+6M4 z8pzD-2+-e=kSd=&1kb4+%7gde-`PwO;Uh0RBAY4b#Pc4)W&~?c!qd;h=X0Z z7~{+RW^h}(c-hALeWu67T3_}V4>+l0AP2?smfIzRU6R_JG_at}Q!91soD7##F`!$x z^ybVN5~~-HBqix?yogY}qJBaE8$&-sb~26HU_@cn>ffL^TtaYkIPVMmcG;t&isRInfB_Zi;W9$;lr zRd#2wY?-;7pZ8@#qNX;*!5o#EoXYy=DyfFlj3Cok*HLIKowl7%WpQh6P{*}dMp=pA zV)mKwV>)PE-D01U+^`GzxlYV*8K8Yk}bN)n{A}s98eWBOU(W@!#GpQEr#~`SaOzR7J`@KT0(UI^$6w$pE>ndsF2^O`1IGR^q51d zEJJ({lrd+_C9$Z>j3(+}Ph0{eJrbv^jYq`dY*5r@2v#(>cCCB`k_=)-n-xhaH-BZF z7ibw>@$g94`OWWXRT%4bJ#I)DJ##uLkl-PS3R9K`Sx8g{`Mv&JAxEwAeWM6=8>z&zYdqLb*F#Uj&#oq z60Sj&Tu8>uIy3c~Z`tTDvRUX}F%oLqtFLu;L}t=_-CO2drWu1vqf=ok6D3qv}PCTWxtiRAO7VnhF z$Z7z?{;Lef%N9~Fy^e!e1qou;a-%dCohbAUI{$(Ey}*jhwp-YoE=+pRkQ%*eNqX1@ zIWiGRaxmdgkftM1tdY0=xJHcBU3LsiGgcNfuO=~X)@?SuKEdRC)0Rt4uNFZunILQB zQ`y;+Z}eQ5>;|H`^Rf+mP-|mbUR4_j-Rq>VIt>8Lu{3!!-g}H3>}L8qvbK?vWoGMy zzGRX^xgQ7^I9`r+Xj}Ub=P_nJc`By>JZ<90bo5X$F&X*s?MtHR)N|~}mL*CC4Nq%v zk62LGP}ETSXqcQ+Zw9nA)wi)ntb`5rBj}>y03|ase%mIG{Y!puiQ}}OmF|(Sitvi z9B|~TT$P%g9hp$U>A}^}3>t?^CjYhLz*Iiy)q8YzZ&?vl7WE16rPSu{A3}zgb7+WJ zCygpGOov3HDw7tQuJ%w2Eo&lxikTqSoZI6EI5}V@ROJSHeH8M(P>4dsqet#RSF)~8amilXnhvCj7sQoJ3> z6J4Cw)h4u{@gX5$p=PRUaoJT~Kd~VJP0~2Fw6wA;8)WIA(5Eji#v+gc*O8@XKhkq* znnWTqWz5CjL~xBC8Qg1wb?hQe13DaYx-UCq*@#ABpvVji;mkH=lVP8ubZp93wL%Yo z7x1}N78MPt9Fext#DqgRUSYmS)LM${sT;RTN3xU%Z57^GeS9qE$dlcznnF2RcU_r` zF5b1id02jL)SRu|_0Yc^-()gyt3%`}=3CYno z4HeWNJ<_?j&cUbZm9A!13OoC#no!7Mj|wJ#V4hUwj)8|%Ku{1*jwVD8ps0gizRp7c zHgfxSrfK?FxwS<2u@Z3nXYq(ueufHX^h9fi6vQ7AEC`$nrR z-{nu8UY%lTRXW%rTt-K*t7vzjtbSAyi7=h{v(W{^@;$wCs!da}MlJ<@_h`ZL(&q+M z03MluxtkTQcoR6mt{7ofAwAN>JU_J$Gl`wq!Owv`Lb<&27zs(Tz-hN_O-?$w289Ci zj2g|5yjwvDT!R`mdTpPkjC@AsH_}z@wZ@fmXZI~jP)gwi5#tLg{(KvF&x~%tc z18nv8bjVuj@iu$Ug4R-}v#|}o)pA}rSL1|2rbK0=azOQk36{nZ%66yO`W1!6En6Bd znoOotS0TC(8Dvi`)~Rb%!4CC@T=4gxb(4M3=#9Vj!3f}b!7Y$-Iu;h-r&V^$^wdW_WBdrd!dkq%d4G{6EfI`i-X z2Fe4rH0u{POV%D`jaS|NvgPLU**?TtyS7p}$(XT}VHe8EY`4MrykNCKWkow#tjzi+ zl9v6kTtuh+*x!&ku`=D3soHKyS-yrP`4jrh#sOh_yzX~wUtL?w561~7#r^L`_vA&9 zfYX@VB_(ljC~-9QzsBDc;5Kif_TQ9Oj;+%|9nloL^8h=xf6$+79(u0)uK zZp0-8H&#hl>1Clk5Jk?&0C$tW$%ll@(lr~V4JC4xg~e50(vl3)EkqGG4F%X&d=2wL zR>=3p+vYK4Ht>9CVaioa>~$OMX8m%ZvMW`YMz>QR7w?kx0@u3Qsx>}Hr<5t7^`liX zukx4K?Fp#YUAIS5}kypjR0OUDup&xBa>??ZU@s4 z4nvq;vWJ<{sx-YotJWUYr1BJsq=V!{G~swWgFK@Mc_ucdp^zwf&U0XXg+3!>TpLi> zAuhcpd;zl+B98X!)TLf^0(v1USl6@J=>$jvn40azPUl1CR_YDYX_Y4^CY|OYhJDK{ zT=mZGS!JHxp=&2?hLXx8tL0p92i$EsC+1&ocTGsdnzLu>%V(Ol>(s)>(a}xYwlByF zJX)D9QP;#%KT{~S#57x$)Z;!9x1M66ThKpPQ90~xv%w*R+xlaMj1on?ybQKXTDBXO z9n-_;ckv8y0tSs5kmCJv;})}>fC~`k*sVxyvJnhEZ^V;=Z5K0cp2?zD9^yE`3dM1p zShEO;Gcs4^|1`MMM7|K8gp8=e@_9j&26L3D*r++R1z)X!-}vU`a6?=j+vnz$>YdiI z?}SpC3@%3d6_y(8b#;wdo*p*skNcw+SS9KV&4tD?FRst~?+i3IPRqI8#5+bU98Es7 z=7AcAci!41Rg=bo%h}buK--!gT>zHH-K^OoGhFafe)Xi5NF}V4Zqm%=xixW&7)jZV zp)bDmM^h}J5dh@S94GFH@9UdlNgsl|`EWvL+ogRrqCG2a4Ar{B6g68hIZqNqc=_Y> z$4^2~_8eZ#+|m|R)^nLwlG*H0>L%Ot4O8z7je}P=@W==W=wdk!&%%a7t(#*Cao%0h z>`~6ST_tZgLqD)eG>;f74lY2Khn|K;%MYl8RgTapc0%+jA{AGddJX8TyZ|Mv6eyB- zcO9JjefO<_%kYo`?I9-2)hr+MCVq4pY`z4BxxH z*4?NSm}>V3vZqznR?iKO5nMr<}Ud=-o@-e%&0KA0B< z1G<7s%&(e{DBRBxBD3FT>Nc%hUYIZN)d2~boI7+IbQ#Ge7x8S87nPJ>3{_-~S?E0rD-3gk1cpiYWV(RVL@&8m4ICV@uh)4(73H z3lwE249iMEK>X4R(wE%KST6Q7-t3d}EiS=VAmvkb=|`T|^s|0>!BJ+6)~LVCPAH-W zNKG+pXL=@f26eiUs`e?x{8eV;R3^O!B%0$_WfjSE`lLrqMO}A0i64^0i zf;{IHL^=>Le^V|c%mQ|5r76Qz_H>viw6eIji8Lva$YL$c&yLa!pD_!v@&~j5h15FA zB(XkVroV~>>{u0d6JotKVr2f}K@QK@(*m|k(e|A}GPjJ+QeX6x=g>=tNauTM0@mtt zGKQhj0!`N+osAw4u9!=Sm)*{8rRUw{?PZVWo>q^AUUlMfE3wq>@lL9mM;VMM6RE!q z{AhK+KWZd=*iiHyczlL+{ndNKY=cLCYq|{MQyFn^dSYk{Mh#N#>({Qf%B~ff3Ga-F z?z%oXEw!Cqv%k5Hv*b;;Xg>#qx7=0*gD}k_@vd)}h#t6G>K#S&z^x~(I%GwZy!DPi zsgWHar!$`eGPxq5ysyijw4dt=DlMJ?T_K1&yKg-;yS%NQ?t{PP*weAI9ltNFAthY| zqF@m82%b126~u0NuUn$HPlR9?&oa>}r*mgeu*D!^RtWtCc9m|(ide|*fl(P$>wZ9p z?+PP3UWO+4kdf2(Ihufzfdj6{L!9nQbA|41^&ahHeqHYH*9Me)sRTr1iSerhH4dZ! zz;oe?t}mBVX)WvPMO@dLB=|~;4Dg=Z`D#D!l~S5hljzAr@gXOgG&X2wlw0=t%4Ts_ z8CsN8seCJO*CCX&Yvk2rTuJ7}?mcoc1V57B!~`?|AlCaJOkPuKc~E0c$tZwC0vZ<5 zYXSMVUD0G*8-C=N_#20+6-JHvOP0%tz*5A7h$O$b_vfhwH8j9mg9`Adj`Kgd+Q1DA z{$+KCSFfnU9uXOiO0`?0DV0fnsSuw@#xjvx#f;D-n5Sh(CvKs%UN_|_^dgNHJg(yq zJHM|bvnPw7F}p;w3bD;IN87pp%ff(SyGH!gwtvlQt2x)ANi(M@Skd97O1g0W{Q&Ny z@aY&i;Q?@uFVOr`fqy!pHOp3HP|a(20gVDn;0lBPo^0tJ0ly)M`uK#btkJDe7;`RSojV(VP2|nc94QS0;e{HC z0`<-Px@&4&8s|&r-ZfT(OKd6fE>5OURRDEtv}-Gslqg9m&>NQeEDQpBOF)9x7Yt8M z3*DO_s^Z-3c;%>5k`Fi>DMK`>vLD@CUNv8%o4ysV$QIi6C&@(FqBGJkM6yV88P~8k znycozUni(&KE0isl^VvHUnjm!M2)DcJla~+m_DyNW3U!AK@wk7%N!r!n z?0ElGnpC-Qw{N~L7v)H~(r$R(1*(XRsoM42)kx{TFXrq8>wHCaC*;Tu(?FZS>S? zu4=3>m(!tTZ5q^8taQ}#acXyencvOcINkNx5iN9`sFT{IT~+z1MUm>rg4r=Yj33~y zsDv!&&wsHP!pIug2NEMvIgeYm$)H}(_SJSuT2}q7xP&t#d9nNwi8vDVR*~xT~A+a%tJ5c%hC}f%^8UF<~P6m#JDYO&S^UK0?6czHP# zlYvmfUOrD)lTY8CodlA$Yh6Kj$5!%*X@S9T`V{(hsZ}GK;`eH&=j^gW*qSKrxoF^L$sodH>HIp^`0#V7 z$I43A>vRY3kbl)wsA&|d+irhgWK5V)c1zqG#ub2*M)FUVI4L6d7PYNQz(Z=hOx4IZ zZ99ECi90>nLY^@+h)Yl`I991 z+gIB@-H)}?^+msso-7kxcdPN)N$`-S@a(HW*}2ioA8gX9%Gt4OMB--x0(6c5_@O`kYu(F?lD-ZFcob-L zS9bF&=DC7R!(B%Uld zr3=U9LPFTu^`=4RZ+NGXE$3xN4~VOV)ZQ+-%_N)k4L4J3OM8zOLCG|gkWSXx-`MKn zOC0s>V~xhIUHdftpB?);5m+K%A^g+1iV_n zD|^@=eR8ot;aIuD{Au59?Mez&6pI>a3DwjZhAxp=ZSUm<#LD2Q8Lo#497f+iF4%MG zjnUy$9zsnO^u@r==h*xmXHVxPRFh&+Lo^RuUs)%{6=>=p3TXsT-rinvGq<-vw>7~ za2{JbAz%CE7*DhIAhJ!^Jx`tF6P%K~)L5UZ-GWxwu1wzrycJJRH@bLxly3;mD5p|D zLV*Ej^k|9oF_}Y&4Bg;QRC*QFs${O`MG}#R#KKBV-X!hU=}ZjkECsr+zNVDPawt8b zzXD}cK-=siYBWsu61jnma42X^ZpzU)dR4wbK7zU6e8rC%Xn)T%_T!)?*v2KvBa#VK zQ#{nimUthPQ#WC?NP_ES06Afa7N#1Dj>2X=q&Gv+v|E$!D5(2yA*o|)?y2lQAZ%A9 zY1PzdH;A88k0_sna_X#sv5b6Uh;aTLg8n=PtiUub zK#6}uT(`lz17u>45CdcB9JBt=NZBaPQulR{Kl$sMw(*};jTq(7@&81a^B5J!si>BS z4J~7RciB6gWz0GmR+>9KoUNw@j?I^V_sDUzE@Qvr{5ZIo355O{T%t0h+PL4caKLK2 ztiQ@CPT*|&4DW{SbWQp{a1$&Lr?2ketiEiy{+1I@$h)rxma_1;WOMB$%;ohl7xx(mPF-{DJDdxSBa|i0*bC5}Idizp zVKf9GrNAd@1ddV7Z~VE)b9YQIZv3g(3DjFGs8p5n$6|HsRy5;FBt0l|U<>AjHN}lK zms*;Q3Rd3or7EKk_N*c_jYulefT5ZRm%Vwyl8Xw=dETt~JMP_CT$dV7&A!bK5R7X~}x${4PbI)GyrXHG+nFJ7#HtH^6qoE8L2pBduY zLw^H1Qi0$g2JG*J$%g^IAhPt2*mWYw;v$y4;$!6s=nd4_Q3#=@4)BC3AOgU+m5Hh% z^X84|Usxq$tW~SPxEL8}*)-}GAvHyaJQLZs zi%N{cA@}Dy10q0oMo)j;?{ZzQ;Zk{Ce-FTn@8!7IT=6_ly{cff%TBctaiVuj)x3g= zFJklB-r+_$bl)b!T6aJ??(`H_5jU#Tr9As#3wX@t&jfnGE?#_ks~3_PGRD2-SHq)` z1X)j~W!D)aT4j+*#%OLBHfPBbrY;64(vXUu2w{=Cd>-B!)ACq~WpD`L6WWrAwxm(! z2}%?p{Z>+k(@rpz@CTD&B{AnU5g%XtD7vt}v&L>%i}$M@I{EmC+UBRi)HO6{X8Wvk z&Z|CpDoHg$X4{PSXV7+{tbA#nqBKK4P5>PSfTC@S+oU9rYK+Z8jq~!m3}N4^!uc8R z50M8+@3&t*=Dz=7DJ2nEBFAH4bvBgQbz~s9?%xsH$z@J$I ziCUv&?Wo5+J-xh0p?aE^ZYCx$voNzrp<-C#g+Fz9n6nay&_|eDtb0>v-%}wKjHiQM z@M{UVpzk9dd_$8D5`-yJFRfysyQX#Ffa}bFpv0v9?58m!h&5a;bX$f<%37{wCf4W8 zBC{ydYn&PnJ|uQc+mPaynwy`;7Hwp3e1TQ{CI>KgT<_=>5BBue?lGikzGkDzPXgiR zv*DXH>!b$=pzJ#uI=d`te)Dw$kdfHG(Mh2`Gs^`!B`=w5uo(<)o)vIDmc1R$^nO*9 z+>BNkJKw!)bLpRZ+smGuu49UHO4dqk(C?N3{J%}RmuRnhG-*ytN#o6%S+M*IkhC1y zW-^2$NTc!@pw+1hR#UNK7m`4NXym9YNb#XUgbpSI%TXg%V*q4OprTO%&dM_Au;9x) z35_ewG@*P=s>LwD5_i<;I=h^2LKdgA>Qw*0&Y!%7N&yW0lErOdo@>sa!ad1R~~r zBS!7CH9ysqbgLG>LNQLLzrnvlB|P(gWAAtr%j(a3MRsue7#a_97uS{suf5+ZZXh40 zf$MJv#~4XsU8utYn)R1ry?P*?+VP8k$>|B^q4(k004MWZHU*NrDM=%it{BxZ0urqA zls68hxZ-Mbzfb(Q?Pnei>g!+T9~Q~5*ji09kv2$l&q8f-w$k2Crb9#GZo5!5{oF4$ z!&+;&o>ID6SqF2kY8%%vGkZP8P|~h@IvuWa&HBKJuOoLy5uXD7sgoIN|LZD!hQPy! zVHi!weIw!vrQ{ZKTJMpu9~{AMV0I;Z-JgM$gbf@NS;?U#vB1xJc0M5nN&y#w58>V_ zqSa9(%OJD;9K0v%(_ZbkTUTSV#dxv}6^)}ani)3jk4w#&lItbcvwyQ8lB!tLCQMjt z6OM2fU_wV>WWE790tLRplq=EnIRdI$G^amgCk22hP8dxU$bc9a1qdPt4-|t|8W*az zS%t1wg*7a;9rfnCddjb$-Lx;3O-&YLh@!6uWI>2{T;Pc5C)-ih|*gn1v-PkpIA-ERfe6{vZ;D- zj$g}K$tFWp{8_jFKhM5E?>>fdVzb#h*!idD8~COxZIgPZcdPPHwHbzVW1yN~v-k0l zs`@s*Jr@Hng9&;+nCD=sIh>jN4=W`5C3wV;70gbR9J6`xA^gfz;7UXqS)G25TC@me zgY+L!QnV<7AkxC8uu9-PDK;o2ut4Y~KRjst_3{DGLXo48D?ay>w#?Lw`B?1X$*%`h zYg~<&>0V%$7?vmt+1Dz`j}uhY>M(2GX4}hz0JajV^-d=*Pg_;PQz?j*onAkuuP~RKy zf96FQEKxYvN=v)LcH$zdIkmjD#E#3=4ma{CqOm%S||EYOHeC>e= z+uXr-%a@78#LU#H18ty4a*{uN{Pa!)=9xyMG@;OOI{|>tVlP$HRL`Mb38+b6w&xsp zv}v_XcD)@J*odK7MGNA1Yv!A=TI+UtX*`#`v`9##nR#ExF>9&Ol*;pcyq0<;>CzDLM!iO;8_|Y%<7j(d&F{geT(4 z4{3II!}uTrq7|=;6O@t=oh>tB!V>d5fP(7IwlmRmAa=S$Y$uQZCmg7v$hv|Tuf*V# z0tQ67)z1`zLDBNOplHTn$BHRGd!h0ueThv+tb(N(;l-yCfC0+DIIt}?O;t2gC>8rz z*#{HSwX2pa$e=hkjesYS2`gyR=G0jEiWQ!x+0 z8c;sa(!<(X&tcceW%v?@eoZDd(pUGu(R zFDa&<;BlHtm`J}q@My)XX5HRu1JPFNo`eb09bY;docf57^&)LdaZB3)so@Pz{r3!; zCe%w55x|Ku2BX<3oI1G~TSTp;iYNTM)2W%ILFPUiOd!A`h4Kv_RY?^Pb)<5(lU1}n zy%tmp+uRK)(lB)^Vuz`X?2Hk2!!cv&bFIg|7q0>;4J1^bxVsIF@$>tiMSvz=7rF9W zXP?-wi6dUz>Zo@-vV+wY#`{B{3}ssdeWM|Ta7fhw{|FjD>jN=?a@#fp=gVM&gps6~ z6WpH=Ci59SsQLpgw5ilFv7v7Qlc5%zNxwt&l_|s^E1BRSnmJ3O3f92_Z=sWOT-`b7 z9(%zjn8w-50e0$SLUb%Ji)a_fBxu8mJ4N+1;~E;Vb*m=$B%5#ZhZs)91Ul_Q=$QxS zG#bjqy_N2g$D2 z(=Lz#sZd{#DEEexYgM{|+@mR7A!$#r1Q|ChZC^3{GVBY)VYLEV#$*y!MRpWwf61_l?L(V z2WM*wNOC!*-kwRriade$p2MS)^wUW zCyYy0OnF{ljSNy)Qzffr>j<>%&%jh`VBTKOe`GcUu~vWf40!(?2g5yqH0jMvk<3Tzrc@6^ghD~OA zKu=A_nY3!{X9oEuApm3wh#FZ9VFm8Q6`)5-Vx2b3Cr2g#{Q#k6A`U8n{)i9wzr1p= zTFn$*gRL^LI1(vlk#=?>jAv4`_bHlH$dPL%FBLH{w^iiHtXkME=g-f}fJ#WWVnAA( z=+-Iim-wWk3EMJIvyp)ZS>*xt2U;jWY39*g8qz$0kYI4|0%Hh})dSUF>2KgK>hn`G zhy|5EWP_507{OIoRKlbJQd>d0^YXJS$|Q3!5-X>dlX7)vdjNzRcd{g+I0aNtU@6}w zemxz6r9Q`vKBaNjx7q~!q4A})wK(5hQ}oooW_rxJoA1J$U(bKX&gA@zjh%&c3aaT2 zkbRyqyX?tv9L3CvKjJ^kOIAWWMBW){)_LK!=Zk_Hoj9{I59ssLt_1_Dlc?8>LQne^ zFBk}14X(R|?ZIUSI0iTzHiwCQYXoosSC}P0R_uzkR{WD)-g69T<&;+9k}*oIY%oly zK5H-v{|t|$8bl<)sm$Y#Y9g%rKR zcr@NxE5!zWKxCq99p)0hnOuR~ZALwzK!f{JSYPF)pIawSyZYvSx=Lx@oC-TbA#{EV zsI<}}vBNvRzJr4PSv_6QFOw?SZ=J_3o`)DL^P=VMcyEr~^+vfi9M7s(+E)1s%UDBPNle0`K6BInHC?=+-+5E zug92O%}!gzwUXnxDTB^?D*vtz5|_%ICbB>FXP3_vD<22{t$3i6*=j{GO}lJ6HIW&s zUEUbdJ^k>ZY?(l$Q8q4iKl#3cg4za^wk@Rde6ic%j)GXjh^bt>QaYrt!bcgx))yGE z5U*e`uR;08EmCD4U5OU#Ob+*?RGqiEQ)UlvZ+@d$lWUBFKfksl_VP>s@9av!BU$_{AMUQ(Uq2JeHs-LJ03?RKyUea= zz6dx0sas`R|JCAH$o^7Ha!6SQTQ~knX9zgS2vlkDn73nDUK6##e3xK-bgGlSFCWdD z5H;`Pb&C9HU?8{Fzs3ZX>ht*8X*(~B8$r12nN zH)C|A-W**|?-W-PpG^0Nw;^hL31KB?UK|exg+y;p>Oc0 zAB{M4=GK8yJB5#~@w5=uEHZ3(%iBL;jC&e~=sti|pvq^+7A}1k-k5S4o?^8;{}AJm znjkP%07O>0Dn-z*gqDzJk5$nJIf5O$(%%mD)?EATWk;uKGusBs)~BPW$;?a5%gWXT zPpU|Itv0u+&qt%!Ov7?UDDAbIMSk7YbfHOg zLprUJ2wh(SQ#dPrQdoLk9yHi7AoX*HkNBPc0s0~^ZTwy^1DqhmEFV$1v))Qjpr@*W zJ?qlJ#=j;|)P(2St^)Y;5jWPISr-9Uc?RKiw&lp0vnske(&fJG%0&T zxTnT$e!bzWVE52xv@y00o7xP(WL;h0TT`f=009e;iF-OvGPF&jo^4%O63xCnUQvRP zn+In}AJ?1QTwK@eNz-08Ea7-5a7QqCC!i=ykXKP&xr4AX2$P+>O0OnY&ukw$jcw%y#!YQULn->AQ*(USM`+%t=@it_^18Q_dljMC9q@;L z_y}8jBiO8ifPv?Q!7ic z)_xvECwHQ5yyJFI`42?tC)AMPKF~!F000aYCwpUnQ(7`~AemgFDSuTzxIcqqxQ8yi zL4xm0WITu)ukfOxlKn(|R;`RhQjMYZ-;Ig7E&7a_WiZV$j+0v}jkYiqXj@e_L*LfK z_48lTFPabZ4U7woXc;IMC}j4&KMsWCl{n139tQP~SN9xZcv32Nc|WgH+Bb1{kO|P) z{H6@_K;40W{0U{c&2eAr1_cG4=9TYfX!pS>JbuoTF*+C7({gAe-kj{Up6ki9!`Eeh$K5dvi|iYNx0Dg%mHHrYEve;5km_(^62;aNg+!o%XH}ifZ13vNCAa9YSDr4q%4D? z^A;+JyX6d5k-W!I$tqOTFhPyC$_t$mP1EoShUD99rsj4gq!*7J+Ony{7WYl^tPxz< zm*X-iJG;Bb6f0Kio7pGVAk_+aiZL74nzk++UuK#7b=Oc6HU$U=N}t~FQR;Pkc#)VD z8GoX9UAGTThjDH(&sQ@ngf!W|($awn;h_mo##0&Ilc`5Ng*7VNk-SAp-$>bSWaiee zz`bI8k<`EPMVct5$_B!G-4gO|j+3(`)zxm?x{ts0FU0!RTB{wO*@fwRh=BNDcpw6P zd_YEh(4hN&xc#wb3=IH)jUa@H^rS^daO<)*W2COp5=+oMw^FuS>lsO;7Mtv{OUyWo zD>6(R4M=SkU<_S47SL#e& zw~rJrAWBx6wmDE{zoO`m|JrbxlM_wYb0z)>(4{sa%BxLFtQTFi^WKtgGfBotGQ(5U zwxIQP)S1R1%8t++vyVD^X=5Rp*EBod$nlxFLKyY|Z83SaEr!o>_G1_W)~r?o$%`3>OWU5F_Rt(HieCRiEQuBfC3+b`%TA~@X;E* z4ewL`=~?Rqqdq8NyTQh0PGFm9$PyNoB2kYyP}?;&Ai*G+p-m&5O-9EVH0e`q0z-qW zfn&pDq@JJM?BzgOMyC0)#CaW08SJW>wc|CZ9Dd<5T02jV9aoHjdx)R@D+Bmr2oDi6 zJ}v-IK7WXjr1`6~L@`#_!RX)?y0NfwMO{lXZ^xsvPw9$Et+8J@tJ!Uxg6_^c_U$K) zvLmAavU8M9CG;T=i4R@s|N6Hx56^4o51GrBB#Pw!FEF}FKPe@%I(zqIHu2Li=Ka-W zg=wl1XywJjsujp;-zVB9=yM_6 zn^vG(*dsj&;xW9}ErC0$kY=0bP@!Gx;7LqWHdZlXt zr~N{$QE>$`KSvXI7~PL09f7rJP2PrbN3qIyakT8hR<--=94N-urNQf{O||uAxf(o0 z+CilwD(Y!*W(6x%Op7xQ>$dj**K{rwSndsTCJGWVJ8J80^JTDyjjyx9&kMyE)UG+C z2jnC-&hg60QCZnK0TSdDzDaVXLQ4e=JXUYxF|lZRzKSJ3GhTbDZ*to107#;z5<9Kb zBKXDPqeB6?d;5eO>P~l~RjBFk@^Eso;%217Vl)$GYPbmB{j7!0`{(1zjc>sUVBn_K zgtzon%}vKmZ*TObUF_cGi1U`~@a*18HfW?!F@xV4d9_HH!BJLZKeaH0Us<|(T)e)+ z{V)v3a8#tLkzwid&Z}G{<+lE;>(jO78hvp-TlZkvPLfFlOzoHA{jlcBQ#5Yprth~` zR%o?wyJP0RhF;7M;X}9G&x~f><*q%J2YOLMqGZgxrE+Gu)Y9;z8Xp(%AzX9FLURQz z0mrO z6Dy787KowAY6^>Mh|m2r>11vln%wyE>UE=^Yrm)AiuSsd8<1 z^zN;N<9=-OPM0q)Wv9ir_x;rz;)(JnC}4>ItQL8L0P~7_Lqmg8G;PL$aYmzLxR`NZ zW5rmKf$H3sNQTKE^HJ{XUCj-e?hq3~TLz$L-b%^$hNwq1X6HfbhLz2IeI71Cxv*6^ zg*5JmqN8M_M3W{ht7SCxll%1dqEwmI>Ng__OX3YDf6RaAU`$YSBARP_Mv=5HjJ8&Lc)^Xjmn^PjE69Uz=uhv#uuHID5ZgF zuzj-6UfLIoq!+VibHqx{Z@IivS_{R?p9o=>U&4DR;?2hP8Z3r*@e1lkt~z72tK52Z zCrH|UsoDy!%XB0{)J*>PN|R;TbLhopa~_!IgbK9=llnM$juYn;^zOL?%#K`&G4>yt zuU)@V{Ew#DS0r97+%s(o>&vcopZko;)p>C{Cb#VvilGW_(SZ3f<0iFiiUDIPCbVNx zV6E#Bvdm+I%lmQygaU`hNGUl3B}TX;MHjngr*_7IyYen#oTP-HGAdGo zaZ|Loxx8d>{_q)$<=Y=AWuJw7Bgo%={y!W)SOt!3^pp`n<=sa=5=x!FrgHDoJmeJ6 z@$|O{A7ZFkrcme}Tw8t^ZAs12US=YpREm>5*n|s-p{X=TNl#!_gd{W*Ns6a>QY%lL z$#p!XOf=3FHv#@j=oY7&X*g4p3TElq!tKFBXYu&N?+>W;wWvvzQ|TU~U9X?q5__~q z_TfV!{EXnOXY3xTkCFGX?YR3Ve4kq3!1-QiUbCbih`WGHCK%9|1z~1V*$i9eWK+}0 z=s?uH2Y*~7Ir4uphLQ6xyrOZhSU5p^=p~uwlu3SM{y*3!4!{E|YkS!>x-toEN*tv0c6dL|{+z?7u+If7s7%@oGqKYNbu8 zRq@|h%9cAP3zkyYk%P&|iM$LpC5juSAPEZ+S>@QfmSd(ho{!BaKxnnAjlW~l=dezL z1EqT}cu6ex9MkARw37sTWTdF)- zhvv|8mfP|N8Xfz!Z>{s=i?M!`h69Z!(u#+5xiZI*($gqi^lHL?uC?)|qlqD8JWK~w z-RE-+E6+8!h?v*>IwNs^)XMmiIGSo3D4lrW-& z%#IZqoIShvM`gE9jX*-Y7VxvB%gHOZi@_VV&*UMuj2};c*V1f)5ii-yejO7TFom;Z zY%DBgq9PQz8z32tuCYobmT0rB^foJ;IBzNmyh3?{?%dXiv}}1F5|OIK%IZ(1dp-A* zl>)?5qWbWgy<(s>akXK2!R z2Cw0UO=TAr;j9iWER3;ZjvXt z)6L8+$~Ro0|cbO~Or**mcb7Pz9WgEE@iuv%0 z*xN)hbo>tE#1!|duPyI6G(IZ?uhRa0a|Mz!%&>97yWX4vkxq$sLC6aMMG%U{elNrC z>Q&B#FB|7l)^J(?HCl!> zo$gc13>RV$+L)YM66tUFJ7m~pad4?|65DzNjPh$&7%`^BYo88s1Q;2Sab5L8L>KJKc zuLN=hGQl>3x(istZtz?e56cf-LPNz(X9?PcQbRO_P8W9KK6a&(zY@8M7L%+U(%G3z zCWoOjU`AN1QPODCMny?P22$rxX$>hpKcLe}hfwRiwtpvUanqTK_96K4_yR!znpN|DvLT_JH-L&Jed?=(iIh}jYKDz(Ofl^nOh>7@j0lTiurC!?>Z=b z25f&WC_OF(ebPdGw4=f74^GmX5p`YbyUQhSG{&FXekVJk*qpud@CEx>~W_`?b5?Ny-pIfVo6pll+j>| z$YIorM2s;a8KeCj4F}nm*gu#eJQpXcbz4uF783_=U_K9IdR;p#O}F{=I^=ENhdZ?% z8RpU&60Kq;GZPBfld6|7U`yzfC@nAR5ur{eenPns@a@6uXzqWCgTpye2%}JJV9ut6!U;Z_YF_SI#u0;!@m9W(sMo2reo6^D~lodV7-(KqOk^M+izA?JF z2}CVVX~Klz+LY}XE@$9TqK6NOb40&G5IKfe2K^QO4Wn;Oq0ytNtSt06mt!TF%r*zl zEo-#u^YZK}wRH4Mgmav6B?qHsw%545jqBPBV-5Hrx)zD?x}y9l~ky+uXHODrF1wV(%!L%N@6%Ynt3miboK7 zpPLt3v`BWA3pony&=hG?C-&A6h3t7IA`3`_E~1gdTzUvRDaFiZ$mr=lYpjlpGO-d5 zCEwIVBv`w> z$RV5>kWW`UwZUG9wFTFMY;qF8T=y2VNmUBCwvX-vioi!WQJLb3o>XQdAI&pYwE8^2a$%hyliH_%~hE@smdLpz9lG^dq{XAB3 z?4z>m%F0wXAX#$u?P6dl-iAZ4sk$@1d_#q6#5M5}jZ(OXe1n(up_;P)z*lt=@(=>kgl@mV)bg)LgyRxl?E0 zr@EM;AGRXTV~^3+KAMY;70Zg%`fsVs4vsY|?v}H)&)P}66%D<*g_D!(G>v7(W>_d6 ztf-~|qpEt7)+}je$0$v+c_{5O5({R>7apVMW)vG97Kj3$jPbkD&$t{6I1`E_Qn1B^ z(?(?5wN5AG*K0k1dpQY78Kvm$Ty~XB_%$A%>qCz84XCoci0}y&@zndxA1}2HOPPhG zk>_b7gfhB15a`PlG_6ju=s#QA%ng{Lc@P-H6^+l~S_KEwN|Wc>-qIE`lbIBeX7J(! zwV>@o6Xl{Aj^|3k-XT1%uwBBKd!`cRQ8HRIN3ne>W~NNSS^Jiod=Qjn4BJF06p=(K62m8;FIf1O9xGIIo(4HXXsaX+ zFd^-T&u&k4)nphgq7BR1gl5E!K`cTvdo7pIv$S%FmP%G8h7p`naG6xh8uoc8OJ7TQ zlhzr9$(1~6!Aq9Sv4pc1$BdDekYle6jf*TBA2%%v4c`=*%te}j9BRemwRxHO_RgxC zn;FlZSIEa@Zv=c61VSqd&@cHP{(-ayQe5{G=>F}if|DWF&-H`e`21Mhkcprgk^HHI zgOs2LVK`)YI!uOHLx()bU(!l*+uxf3VPI;yHw$uouj`eaEKNG6$*CtTR#}scN?Igc zPgz~uJayO?*`3uz#E+9XR%a_ZEewk`8V6OnSQmToeT6W^B}|7J_hZV7!q{@~XhR;# zpBP}!#T0cF5~lW)`;{c9NwnR<$~jba`CS4sn=oX)v-={w`!z|*%u2lyuG~6isTR?$N#3Gg&QTjX%JH|; z=~SHD`n3{N&5cOD^y$%$gyPzgW8Iu@fuD*s+w^V27IagRC@IO*kR~XYiCHr#PdTt{ z60`IRM*ERE`xPkr6%@pKNyHB2j>4Ua>>0^{a=0w%u-=tM&cV5onC6UA`DWq=qN@{u zvJY$Jjt(3Ip@e@#vF=M>A?_!WDQcKFE2dM;icSxQGEb!C=$yxQyX#Z%*MSWc$O zr|fC4vpU^Xv!sY~mbqM0ng`=c=1^tQbhX+G@l~>1jzzR{85XW5S}GPJN@uBZI!rsM z1-z2zqC+W>s6lI%5eEa4L>9{Xgk9Q>#r%_Ud5)L{Xx-jWX)v+~v{hN_LuQ93TAj(| zTGS=F;|W*P@zkc~SgYDgl@-~lYNn|YRU8P}yEqckB8sHhYRD`Sj~-J~rz^-5BVaHq zl$IW4#o5 z$#2X{&7e0;7AF>Z7ryDe+(VfUp}Tc|I;Z-l`35U|7298R)S@8|ut#|^Q_^`RHcU~| zZs~Gaa%Oikyfzrk-Wg5gXYDSfFK``IPJYR1>25l^XdZg&oPQK2oqh@&d3dva3%&im zh5btRz6XngUXXVblQf-;=F<-}V_PFUBY4Tv6dbqHZnti~yDVUn4}Jn4Ru-}r3Kd?8 z8gM7Si)d5B>f8_|ZP&4lW>d0%KPB5rzc-I@JGoOQjvruYEApYgag$m~nq}R*9m?xe zqLegf$+?rilUH=)Mk;S|INkZ(8aoAbYV}&w6YfyAx&y@lZ}nQt6a8Wcbmg8-cADw%~Szcu8WuGGct>{|eQMlMqWw zRQNClKq77hzce-nyr^Kz9tka$a6rz8EfSh-GOiT5ecXQr+fQ>;2V^U>9m^ivj^uFn zF43=r@MbXMTO5|q3v&S+-bU2RpTNO#`|n%-n|!cR9H^AMzcBOX zf_Ed>4Q$79_z%+Xf9HvIL*3z-6$j6e;bQPW{x_TmUl8|P!gs2;@^IWkSs2uJ9EG6f zJK$VVZs78O&p1Fh1g3rPLvoSx52^m8a5HkCwj^ON&mR!^p!C>sJU=vhDDz6-o7w-$ z_2fE)Ka?HTS(h|Y0sB<^-&DSC$34?8wh{Qij}DPm``=9mPg4*H%*y8*F*<&qkA%wxZ5#A22?u2{6 zzZv|{9}0|vb}eLiCH(0g_o034MY6OR&eW(k!SS^J-viI;)o8}I8bcH(OkvDm*#X@J z`~Nhz_SfS8+X#DLE^fkw!nqLK46ba4dBVTyebEzUhqvrWcSD&TSi^_70OW{r0lC48 zykXm2zLolI#O?lrTikJiA1!jBvu^gkI1(S@3^&3VZh&Ph!EaLf_NEf#+U{)jD*OEm8Ee{PE87L7Y0 zd&CmXDI9Y|a*HLLk^di?k{ z_ewZ_S)$|%Mtm^B1PIp?vz=M)>CN;~caBG98#4==EceV-Mw!R|kFyMXf&V`* zl|=kA64V8OE+hEgYZCp#Kp(=Q%s0Q5IN9@g$QllZ(WeBL<1?@s6h?o;CLkRT?O(>L4H+PNs}MR15Dzu~!Yi-& z0n5E$AFKg&Uw?tl{)v#Y;7o|;(kp->h`lnw_f=49>$`YbV&xm*?B2F0(l%GT654Xe zz7x7<@H{30|K!(V=Tng$wVF*JNI7XYEdq8OT+e~XZ+9(@Jd=MWSi$cV^U2M1jOzIU8%P@!uKokLsP^y*il-NqM|5efMtg{G*m`F=IAxr z6Ld_G=spVn-iN`lEjGoegk?g^IUSk(ec_k|ADw1E95N;_@3RRQu29D_B=2qXR$E#! zzZTcyiI>u37CaY2-ViD(P-?!huA!nHx$kWoD1Oboe+g# zj|bJ)fU36*I1x=S!>E@f(PGd#Ti~NSM%0l9nZKBGQM9rZuWolB4($lff+7RQ_rrP4 zJrLiSd)LEjcDzAQJc#EJ@A1)S7JV9_yLFwtvUPDjecQV)54jOQ%P~zCF>jEOZ>jGE z((|#FCw(VHnr?Q_H}s1j^Qh-bVubby+O>dJ$Wa1vWFDEf;4qB74cFz>5XVjo>ysgC zkxf#~I^5BMlYpTp)Dbr<@o^MuaSsIN*8-=FU~BY=HXiN@k#Rh|W+hTdN$!n5#<5tR z%Lq*iH!l%wc20N7yOY78wDs6@VtR&=6B(=Cc{vuy-$J(G!1-BG5&M8H5&}|TmyoV; zMbw!xx>53JZEU;B;5iEK-8}=YV8qu#UPPjtdeoeZH*9t|`W^^Ic$)xS!x6*P0xAL{ z$1ELo0bbmxnYlW9SF_Mfu$(2LXpy6H0k$r;F96Tfm1D*Cd5|=Z$1z~^wC%z6@Y4n2 z^`Q{0_rGWGCQ1e?`L0iU+xs7|g+GCP#tl*#!P%X7`)BC$nLMEnj)$2>k3M`3JTbuR zfCi6wvTUkvcWHQz`$jJiyIbj;Y{n zgeGYc`wGx(Z|R9*BU+xK9&$DCxoqC(D0t7*Hf?KL-Al-PD89EN7pT3gzT0!5s`rrW z#Xv+*B@Q_cli`>r`fT}@RBi-)$b zzyp1=VMZeKOQ_Ip1i$(<3k&Ff)C7KNZp79QAA`N~qIzLYp>1U}$8VaQJqA))b8A)? z_aQ$zJ-x6}X7t7ouc^UXLd~4VPp8Hs3I*meeC^cg*Rc9g&+#7G zhQe&?_>k}4J_prd2*0=jpg;Jt0mxex(9oNMi3;@X)EK}I;ohlt2IBuR_3i$_%AU_c ziFn9!c%XRm_~2uWM_{wQQ_I5@2H12b*y@cVUc3f&BY4W!^8w-c@EGXn6RB89wDCoA zwtao+OTW(}L5orM2*hum*%YbtJOf1G9pATwRV463Y9fKdz6;*$*3T{O-oSWl5%tF7 z8~SO9^~FK{U#z$TbSF==E;_N3iEVpgn-kl%ZQHhO+qP{^Y}+sMKfLGOx7K;*zN}qe zc73(cRln-)T@CIJ3kdbIc2a~IGWbP+w;xuIE0VzZ^|g=HM-^L?q3wYhtR)dH%qt zf_gY4gu2{YBEaHYi?mT|LEWDKs(Qei`QXr2=I72{K0P!EeCSB4|H2cU1CDJ6NH>NK zdIz{3AnxnHP4SNe?EUq?hdTl3jaDJl>i;!M(aGwKmq);D4QF|6>E{*uE3!3b@a*bF zmsd7bhv20jK7r7dFE`wjMgqA5#9L zq6$e(>^TWo#GN`ern!H455_X5Pu5zB$fruCraM}x8O;5)qth!SAqfwd0^1W-P|AXy z<|f!LiC6}Tt`UC&JM@0BMFR*3XetYhlGMhg*S5DRrn%aEW)bHkz%^+FnP=XL(*NU6 z8Xtxq9&CuHy2-WQs@pq!8u=Qi?2M}T5sRM63|!1lyc&~^nbD1{OdG0qsCw#|?cVgZ ze%wo_o*y0<0HnTdj3We6;uhyRw1Q^7-9HaqF}Y0q6s;@nh>80yQ%>>92>*zBT@Hv0 zr&3>+2?0R9{}Kb9gCJ4^ujdOn_ub;1NoOS+IY+J|GEjWRm51I>l z&ba~%>-&j(XP)ET-vM}EK4H$= zJ=FnlZ=D*?`xWJic)ZQf4faZXNS(87v<3Q#eaMv~UAqq6Z)Mz!7=^7D?6cK-`NNG= zSs1M8?Ao3t(XSDw4j7a!|vwvadIE7XlcU#PL@6TEPn_AAj&0go7{ zYn*pHv_5fnCOz4C;pCtBaj;(4`-=&E9T=4J>t8d`K1?b#{d>GT082W(u+jh@j4J*h z9Phx#*?xZq?s&6*nAhk8qxycb{T=9lzNhWQpjz2s;q3roB#0s4;z>@iC(MukqW zbBZ&-HW0@(${)vKwPc_+KIbI&c=zuq+W(#6<@Xd1|4#7|J7@b~3*?mxmer=XMV_~N zx)bgmYy*rp`%ntVGl&D|K6oRT*L%Pd_+IsrYR3D|XL=_CTy&louA`%zcyWCVT9ZWu zAU`-bO$hu?x;%oq@}G3)ze50k1o5DB;eiOmRRkmO!X{Bthxmp}ZP72t=q37VSY_$N zz(ROqdBGt#E@)ip~6wJdNJvgldh9@#ZkAlbFl(SuSEdzm7oL$1 zrIvGHtX9h^;%W0UKh8ZLbw+xBenW1Iz(}wFEFmt0E>DmLYM&SMi}Z+hj5xnoOgEga zbdPC2@=R7%kio_xIRf3=|=lh-q zjT>sNuIP2WRtZ#R$Ab=UGQo1H&*bT^Z+wB?epiC>d?-MXTOI!)RsVzf{QYRt0_vs` z?;ZN`8%;oFe8cuqP2`WWa5l?YF zx5QzX$X6Y@-3*V{%0SX#iiVlgPjIy`$7xR)#yPC5_SX7r*GJs_aTkUpTunzAvK^uswwCGTi|JD#lDD*UVdD8?;|q#h?v#djx6@cWypX?CbdCBVK1!_3 zVG=S`G>K8X$*{ICrZ{vn$y4Rmp7seEPb)^BN#2C5cn}EFt}~)%t#dn) zK^0KBsXsLx)M-|;x%^XyzRKoZi@)PEZbYeLRFI^K0?QYj`sQ8n(-L)diZ+Y)0`6M+ zwc+M_XsY8~_~XLl7hbE?=hQ^o3vOdc`j=~e+lzLWJj>VmpySc6tmCFfP zsOi-2bXW#N9FwyP0pr3t8eKKRsHcJG_y*GXexf4#RU@>lZG_Rn7m-cE?5sgT?0JDT@X-|-5OC^h8Gus@}7DthbhXUnKmuiB3eHp3fHQfyVxdvN{3_l@yQR^nI z$n6HNpH7?U1M>qbZOrwzcwclv!qVUH8FG;w%!hkA0%JOzEi)#na-oN1zy@sv8_ zyr!@FVKpS3;YCp$R9p_aRIU3bg^vN04NTnM2%3ZS{Q0`I9|~;JMauKC=em`UK-dBI zW}w8Awt$pv=#lYuxEYt*d7(@8ZKyapo7rpW`TfS6^f8;2m5uymd_SMOSe~YML+6Ag zYr%8Q=lA^FhH3C{alEuBnODnhCSHuN+Fhhs@xcq(H7Oq(vOIYitCg9;;2!zm_{md^Q9~*=cSzr+&ZsO_Eg18N5V7VCMI`m z<4Y>%N835+!-7MDql&53lzOINzLms!j-#^-Ahzv;$0^AX$v+;-Q>PoBt&bU-ts><0 zOv~wezwC^H<;|AQWdm&M8H{MNJ}%GmR^5$pGc{vL4_0sUZr2VsO26+VhQq7hoNgJ~E!y!M4S+=SlDF8affV@?IV%PK-5jztU#=?S}#e zZJ39W`)0XGsqb$yCfKgf+NgzLR?!-li54q#r?N}chtV$3i21=5Cd?)!Fxn8Y&CS&0 z!*MH8SAXRPRvvGT+c(9FPhpLvm10iTG&Z4hp-*k*jSr{j*76W7bp_`-^-Zmt+swBO zq_DqhW=GQbtp>>kJHdEbZIriiO}0BbT-F``5+Kd#zp$q~)QXZlT0L}(mi5F~p}Kp6 zTro6*Z5tDL~ZXX1EGp zuV~D7Z0GuQpDgX4YP__T`{;Im_NlhUvvvv9Jp0@>ZHDgabZ(T^_|R)|_I|}` zjQuPe1*1a$mC;IbG`yzWI$J7!PE)}f4DuUF?t|SK%e9Ni^3*=RBK5MRb&GK))&Wk?ORK%yR2mbU5VFK&&hh0F8l&}ql%X|N_)W!{Sk-(EXtxu)1lUF_GK z8DNuhyRIb6o7tKcgN{3d@Z^MNxRW7#>F5Scgtp4 zrn%adL}_g*t@qbaV(KI+6+2hc=)&E|>JTo9Jk8 zmV+o8FC~|cgFbTSW207*Po<6hHmV0f2;w#MEck5IEPwc42nai_qJ>I08Aw)azdcBz zgXn&t4E4H*1|f+eXYasV4PzQLEKt!6UkrIarRE?-2S$*Fnqv<)M(wE$ z@5ExmTasNA3VPe2(i2J<4g795CQf(dnn1>Rg5SBF&XYQg{-kt}FAiX5cf4n(9{(&~ zinNs-i`+iOObk{awe0BA$e=$Wh?XN2!YVwM^YkWf?pB~Fgq5Y}wHRh$Xccxp{b`!h zq)@Qd#0P&K43y`ci4ws!T^wllMYS+t+56QLm=^oF-l0DPE}z;S-=IJvSGt(Ugh0!b zqX1FZG#fp>9UVV+b7=AQ8k#fI!2a?427XDH(Tf;(^SH&rL!9IoM=>SNYy!SB#6p%Q zX4WT~7A9AUZVN0JYF7&6ij9xL&WCmH1BQ=-iXM)X~V^j!w@UHbH0dh}ho^j$jiUD~e+_tSr%o-rb-Qy+V@ zo=MOBy?rrZd%AbAUM0v;SAR)7p`Af@`zUuSaxDR!_jf+<>lEZV?#*g()QBvINR zd-5C%oztb4@J+@8D(YiQfla-p ze=zEiNC8oefnke*Iy*VTUiop==UxN91;%0FH(3MH)W@vzfvGKmzAda;_Q#J50vs5G z(WI}->xUaJt$non${tQ@7g-`EuRse>UoJdj5Xp=}!uTW}U|YzYo%HFw-`4f7dtZ?p zS|ae^cQjibQGsnbT>3kFhW`Y&jAK&45;~Tn47y2V3EG8lO9{7V_rb-wIoD(ro`H?k zL|fDzY{2F&Cj2y1z$+9F9B-3*%=TGyU^*bo zO{-&EurI9fvR{;#W0eHo>1tpTKYG*@RKmqVOXRwOasP<0Lh{HqBY6dB|3SNO$$^gQ zhvpMqU5GJwoP z(v5>RyX48v3)ey95T`Wy=To3aEEqgo5w$~b*rm)Ywi#prz+Gukzd;HhEgz_a|4C0r z*+e-zP>OnDt71JKrk#(glCc2JgfB=Bmtt!%#a(qC>B2!o?hmCNF%^(wFyxP%Dqj{| z>OBFGlE7=`4xn>@2hZE{k@OJNFN!nmj~}iaH`+R2t{kD=1fQVkHQGpJV1Mv#@#mu8 z-T#@>&Js~ilgUK&5-*Y&{D44caIcLEXcqC;zwYbe4Kf#iI2|e?dFDV?zy|7lGdNpK|rqJJo)@xW?`WC;RE;O;4B1#+63Pi7T#nQ zu=+WQ^|CAKXD;byh82j?;X)^M8aygGYaXX!${>K+fy1+sFOO-Mca2M>P_J zbx4kC1SHKjhgIcGQ+uOXbfZ{wBY8-YMbGSi#Wqc@Npb+AvPtX^4;Dt7b>kenov^}MAD@JbQdKL1Qmcp8`voUWDOs)7I3W=;N%@h z>15>{mKMMxafIs#axh*`*+|2(A$mpq)UsNMMU^5mDtV@)QjGBgU&FB;dczS2 zIrkU3W3cFO$y>xe8Xky`9dfiE(*3+>!2Y`6(1E5ZI9U!gf;d#NkV>M-M?anAMH-HS| zo&|SsbQ;TQ)fQDM%_@|bl*-jo#kLqzXl{`&qvK%MeqpLeL+Z;N#`555@oD|2=I8DJ z4c~EGQw1E4N$!Uns*AfVk6ET~YK~c^TXJUI=52Lm^M-RpbWM+K#IuG9UV*^vrFq7D$IiHhI1iHEVR**s^6~CTzD91zLF)>#)`9bYa^K0Wf%^mj+xdwV zM0kz;4kk7LPj&U5#2PY*1!O$k??AHmR!QHrytZReWy_4pnkmVd>#sC}kE<7Cpxh-g z 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

aM!c~hDk|yz0O1I-qEU> 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 DP-7bT literal 0 HcmV?d00001 diff --git a/lab1/test b/lab1/test new file mode 100755 index 0000000000000000000000000000000000000000..0e567722f17e1267f66c85ecd1e31e36265dd948 GIT binary patch literal 20400 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 literal 0 HcmV?d00001 diff --git a/lab1/user_list.c b/lab1/user_list.c index ec14338..cd2c93b 100644 --- a/lab1/user_list.c +++ b/lab1/user_list.c @@ -4,7 +4,10 @@ #include #include "msg_list.h" #include "user_list.h" - + +/* Checks if the input user is already registered + Return 0 if is registered + 1 if is not registered */ char isRegistered(char * username){ struct user *temp; temp = user_head; @@ -20,7 +23,9 @@ char isRegistered(char * username){ return 0; } -/* Returns 1 if already registered; 0 if registered correctly */ +/* Registers a user (if not previously registered) and appends it to the end of the s list + Returns 1 if already registered + 0 if registered correctly */ char registerUser(char * username){ /* Check if the user already exists */ if(isRegistered(username)) return 1; @@ -28,6 +33,8 @@ char registerUser(char * username){ /* Prepare new user */ struct user *temp; temp = (struct user *) malloc(sizeof(struct user)); + /* If memory is full and malloc is not possible, we return code 2 */ + if(temp == NULL) return 2; /* Initialize user values */ strcpy(temp->username, username); temp->status = 0; @@ -54,7 +61,10 @@ char registerUser(char * username){ return 0; } -/* Return 0 if connect OK; 1 if user is not registered; 2 if registered but not connected */ +/* Changes the status of a user to 1 (ON) and links an IP and port number to it + Return 0 if connect OK + 1 if user is not registered + 2 if registered but not connected */ char connectUser(char * username, char * ip, uint16_t port){ struct user *temp = user_head; @@ -70,14 +80,15 @@ char connectUser(char * username, char * ip, uint16_t port){ } temp = temp->next; } - + /* No user was found, so send code 1 */ return 1; } -/* Return 0 if disconnect OK; - 1 if user is not registered; - 2 if registered but not connected; - 3 if trying to disconnect from a different IP */ +/* Changes the status of a user to 0 (OFF) and cleans the IP and port number + Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ char disconnectUser(char * username, char * used_ip){ struct user *temp = user_head; @@ -99,11 +110,10 @@ char disconnectUser(char * username, char * used_ip){ } -/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ +/* Unregisters a user, deleting it and its pending messages (if any) from the list + Returns 1 if the user does not exist. + 0 if the user is deleted correctly */ char unregisterUser(char * username){ - /* Check if the user is not registered */ - //if(!isRegistered(username)) return 1; - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list temp = user_head; @@ -118,12 +128,12 @@ char unregisterUser(char * username){ return 0; } else{ //User is not at the user_head - prev->next = temp->next; - /* Delete the pending messages if any */ - deleteAllMsgs(&(temp->pend_msgs_head)); - /* Free the memory resources of the user structure */ - free(temp); - return 0; + prev->next = temp->next; + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + /* Free the memory resources of the user structure */ + free(temp); + return 0; } } else{ @@ -134,20 +144,7 @@ char unregisterUser(char * username){ //If we reach this point, no user was found return 1; } - -void printUsers(){ - struct user *temp; - temp = user_head; - if(temp == NULL){ - return; - } - while(temp != NULL){ - printf("%s ", temp->username); - temp = temp->next; - printf("\n"); - } -} /* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender){ struct user *temp = user_head; @@ -155,7 +152,6 @@ int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender){ /* Iterate over the list */ while(temp != NULL){ if(strcmp(temp->username, username) == 0){ //User found - printf("Hemos encontrado el usuario, ahora metemos el mensaje\n"); //Enqueue message return enqueueMsg(&(temp->pend_msgs_head), msg, msg_id, sender); } @@ -165,6 +161,8 @@ int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender){ return -1; //User was not found } +/* Increments the last-sent-message ID associated to the input user + Return the value of the updated ID */ unsigned int updateLastID(char * username){ struct user *temp = user_head; @@ -184,30 +182,10 @@ unsigned int updateLastID(char * username){ return 0; } -void printPendMsgs(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - printMsgs(&(temp->pend_msgs_head)); - } - temp = temp->next; - } -} - -void removePendMsg(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - removeMsg(&(temp->pend_msgs_head)); - } - temp = temp->next; - } -} - +/* Checks if the input user is connected + Return 0 if the user is disconnected + 1 if the user is connected + 2 if error (user was not found) */ char isConnected(char * username){ struct user *temp = user_head; /* Iterate over the list */ @@ -221,6 +199,9 @@ char isConnected(char * username){ return 2; } +/* Retrieves the IP associated to a user in the list + Returns a char array with the IP of the user + NULL if the user was not found */ char * getUserIP(char * username){ struct user *temp = user_head; /* Iterate over the list */ @@ -233,6 +214,9 @@ char * getUserIP(char * username){ return NULL; } +/* Retrieves the port number associated to a user in the list + Return the port number + 0 if the user was not found */ uint16_t getUserPort(char * username){ struct user *temp = user_head; /* Iterate over the list */ @@ -245,6 +229,9 @@ uint16_t getUserPort(char * username){ return 0; } +/* Retrieves a pointer to the head of the pending message list associated to a user + Return the pointer to the head of the message list + NULL if the user was not found */ struct msg ** getPendMsgHead(char * username){ struct user *temp = user_head; /* Iterate over the list */ diff --git a/lab1/user_list.h b/lab1/user_list.h index 7570c04..03b964b 100644 --- a/lab1/user_list.h +++ b/lab1/user_list.h @@ -1,17 +1,19 @@ #define MAX_USERNAME 256 +#define MAX_IP 16 #define TRUE 1 #define FALSE 0 struct user{ char username[MAX_USERNAME]; /* Username that acts as ID */ char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - char ip[16]; - uint16_t port; - struct msg *pend_msgs_head; - struct user *next; - unsigned int last_id; + char ip[MAX_IP]; /* IP of the user from which the connect operation was made */ + uint16_t port; /* Port number of the user from which the connect operation was made */ + unsigned int last_id; /* ID assigned to the last sent message */ + struct msg *pend_msgs_head; /* Pointer to the head of the pending messages queue */ + struct user *next; /* Pointer to the next user in the list */ } *user_head; +/* ================FUNCTION HEADERS================ */ char isRegistered(char * username); char registerUser(char * username); char unregisterUser(char * username); @@ -19,9 +21,6 @@ char connectUser(char * username, char * ip, uint16_t port); char disconnectUser(char * username, char * used_ip); int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender); unsigned int updateLastID(char * username); -void printPendMsgs(char * username); -void printUsers(); -void removePendMsg(char * username); char isConnected(char * username); char * getUserIP(char * username); uint16_t getUserPort(char * username); From 7418ac7f14b63a618a81a6fac9b1e617145a68c1 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Wed, 26 Apr 2017 21:12:16 +0200 Subject: [PATCH 11/17] CGP: Started lab 2 --- lab2/.DS_Store | Bin 0 -> 6148 bytes lab2/MD5Client.class | Bin 0 -> 756 bytes lab2/MD5Client.java | 19 + lab2/Makefile | 26 + lab2/ServerThread.class | Bin 0 -> 2670 bytes lab2/authors.txt | 2 + lab2/client$1.class | Bin 0 -> 521 bytes lab2/client$RC.class | Bin 0 -> 884 bytes lab2/client.class | Bin 0 -> 7989 bytes lab2/client.java | 740 +++++++++ lab2/gnu/getopt/COPYING.LIB | 482 ++++++ lab2/gnu/getopt/ChangeLog | 114 ++ lab2/gnu/getopt/Getopt.class | Bin 0 -> 7366 bytes lab2/gnu/getopt/Getopt.java | 1337 +++++++++++++++++ lab2/gnu/getopt/GetoptDemo.class | Bin 0 -> 2868 bytes lab2/gnu/getopt/GetoptDemo.java | 97 ++ lab2/gnu/getopt/LANGUAGES | 23 + lab2/gnu/getopt/LongOpt.class | Bin 0 -> 1658 bytes lab2/gnu/getopt/LongOpt.java | 195 +++ lab2/gnu/getopt/Makefile | 7 + lab2/gnu/getopt/MessagesBundle.properties | 33 + lab2/gnu/getopt/MessagesBundle_chs.properties | 33 + lab2/gnu/getopt/MessagesBundle_cht.properties | 33 + lab2/gnu/getopt/MessagesBundle_cs.properties | 33 + lab2/gnu/getopt/MessagesBundle_de.properties | 33 + lab2/gnu/getopt/MessagesBundle_es.properties | 33 + lab2/gnu/getopt/MessagesBundle_fr.properties | 35 + lab2/gnu/getopt/MessagesBundle_hu.properties | 32 + lab2/gnu/getopt/MessagesBundle_it.properties | 32 + lab2/gnu/getopt/MessagesBundle_ja.properties | 32 + lab2/gnu/getopt/MessagesBundle_nl.properties | 32 + lab2/gnu/getopt/MessagesBundle_no.properties | 32 + lab2/gnu/getopt/MessagesBundle_pl.properties | 36 + lab2/gnu/getopt/MessagesBundle_ro.properties | 34 + lab2/gnu/getopt/README | 57 + lab2/gnu/getopt/buildx.xml | 68 + lab2/gnu/getopt/gnu.getopt.Getopt.html | 639 ++++++++ lab2/gnu/getopt/gnu.getopt.LongOpt.html | 210 +++ lab2/jax/MD5.class | Bin 0 -> 487 bytes lab2/jax/MD5.java | 13 + lab2/jax/MD5Client.class | Bin 0 -> 800 bytes lab2/jax/MD5Client.java | 19 + lab2/jax/MD5Impl.class | Bin 0 -> 1116 bytes lab2/jax/MD5Impl.java | 43 + lab2/jax/MD5Publisher.class | Bin 0 -> 446 bytes lab2/jax/MD5Publisher.java | 10 + lab2/jax/localhost/_8080/md5/Exception.class | Bin 0 -> 664 bytes lab2/jax/localhost/_8080/md5/Exception.java | 60 + .../_8080/md5/Exception_Exception.class | Bin 0 -> 810 bytes .../_8080/md5/Exception_Exception.java | 54 + lab2/jax/localhost/_8080/md5/MD5.class | Bin 0 -> 637 bytes lab2/jax/localhost/_8080/md5/MD5.java | 60 + lab2/jax/localhost/_8080/md5/MD5Client.java | 15 + lab2/jax/localhost/_8080/md5/MD5Impl.class | Bin 0 -> 1172 bytes lab2/jax/localhost/_8080/md5/MD5Impl.java | 48 + .../localhost/_8080/md5/MD5ImplService.class | Bin 0 -> 2282 bytes .../localhost/_8080/md5/MD5ImplService.java | 94 ++ .../jax/localhost/_8080/md5/MD5Response.class | Bin 0 -> 735 bytes lab2/jax/localhost/_8080/md5/MD5Response.java | 62 + .../localhost/_8080/md5/ObjectFactory.class | Bin 0 -> 2032 bytes .../localhost/_8080/md5/ObjectFactory.java | 89 ++ .../localhost/_8080/md5/package-info.class | Bin 0 -> 250 bytes .../jax/localhost/_8080/md5/package-info.java | 2 + lab2/md5/endpoint/MD5Publisher.class | Bin 0 -> 682 bytes lab2/md5/endpoint/MD5Publisher.java | 15 + lab2/md5/ws/MD5.class | Bin 0 -> 503 bytes lab2/md5/ws/MD5.java | 15 + lab2/md5/ws/MD5Impl.class | Bin 0 -> 1132 bytes lab2/md5/ws/MD5Impl.java | 44 + lab2/md5_client/Exception.class | Bin 0 -> 655 bytes lab2/md5_client/Exception.java | 60 + lab2/md5_client/Exception_Exception.class | Bin 0 -> 754 bytes lab2/md5_client/Exception_Exception.java | 54 + lab2/md5_client/MD5.class | Bin 0 -> 1080 bytes lab2/md5_client/MD5.java | 46 + lab2/md5_client/MD5ImplService.class | Bin 0 -> 2226 bytes lab2/md5_client/MD5ImplService.java | 94 ++ lab2/md5_client/ObjectFactory.class | Bin 0 -> 1089 bytes lab2/md5_client/ObjectFactory.java | 53 + lab2/md5_client/package-info.class | Bin 0 -> 230 bytes lab2/md5_client/package-info.java | 2 + lab2/msg_list.c | 59 + lab2/msg_list.h | 15 + lab2/msg_list.o | Bin 0 -> 5040 bytes lab2/read_line.c | 68 + lab2/read_line.h | 5 + lab2/read_line.o | Bin 0 -> 4784 bytes lab2/rpc_store_service (copy)/Makefile | 47 + lab2/rpc_store_service (copy)/store_service.h | 97 ++ lab2/rpc_store_service (copy)/store_service.x | 18 + .../store_service_client | Bin 0 -> 24408 bytes .../store_service_client.c | 127 ++ .../store_service_client.o | Bin 0 -> 14864 bytes .../store_service_clnt.c | 54 + .../store_service_clnt.o | Bin 0 -> 12720 bytes .../store_service_server | Bin 0 -> 29184 bytes .../store_service_server.c | 200 +++ .../store_service_server.o | Bin 0 -> 16696 bytes .../store_service_svc.c | 143 ++ .../store_service_svc.o | Bin 0 -> 20616 bytes .../store_service_xdr.c | 46 + .../store_service_xdr.o | Bin 0 -> 7440 bytes lab2/rpc_store_service/Makefile | 47 + lab2/rpc_store_service/segurodevida.c | 182 +++ lab2/rpc_store_service/store_service.h | 93 ++ lab2/rpc_store_service/store_service.x | 17 + lab2/rpc_store_service/store_service_client | Bin 0 -> 24232 bytes lab2/rpc_store_service/store_service_client.c | 127 ++ lab2/rpc_store_service/store_service_client.o | Bin 0 -> 14824 bytes lab2/rpc_store_service/store_service_clnt.c | 53 + lab2/rpc_store_service/store_service_clnt.o | Bin 0 -> 12696 bytes lab2/rpc_store_service/store_service_server | Bin 0 -> 28792 bytes lab2/rpc_store_service/store_service_server.c | 198 +++ lab2/rpc_store_service/store_service_server.o | Bin 0 -> 15256 bytes lab2/rpc_store_service/store_service_svc.c | 143 ++ lab2/rpc_store_service/store_service_svc.o | Bin 0 -> 20624 bytes lab2/rpc_store_service/store_service_xdr.c | 44 + lab2/rpc_store_service/store_service_xdr.o | Bin 0 -> 7200 bytes lab2/segurodevida.c | 182 +++ lab2/server | Bin 0 -> 37168 bytes lab2/server.c | 629 ++++++++ lab2/server.h | 27 + lab2/server.o | Bin 0 -> 34632 bytes lab2/servidor/Makefile | 26 + lab2/servidor/msg_list.c | 55 + lab2/servidor/msg_list.h | 13 + lab2/servidor/read_line.c | 88 ++ lab2/servidor/read_line.h | 5 + lab2/servidor/server.c | 308 ++++ lab2/servidor/server.h | 22 + lab2/servidor/user_list.c | 200 +++ lab2/servidor/user_list.h | 31 + lab2/test | Bin 0 -> 20400 bytes lab2/test.c | 70 + lab2/user_list.c | 246 +++ lab2/user_list.h | 27 + lab2/user_list.o | Bin 0 -> 10016 bytes 137 files changed, 9143 insertions(+) create mode 100644 lab2/.DS_Store create mode 100644 lab2/MD5Client.class create mode 100644 lab2/MD5Client.java create mode 100644 lab2/Makefile create mode 100644 lab2/ServerThread.class create mode 100644 lab2/authors.txt create mode 100644 lab2/client$1.class create mode 100644 lab2/client$RC.class create mode 100644 lab2/client.class create mode 100644 lab2/client.java create mode 100755 lab2/gnu/getopt/COPYING.LIB create mode 100755 lab2/gnu/getopt/ChangeLog create mode 100755 lab2/gnu/getopt/Getopt.class create mode 100755 lab2/gnu/getopt/Getopt.java create mode 100755 lab2/gnu/getopt/GetoptDemo.class create mode 100755 lab2/gnu/getopt/GetoptDemo.java create mode 100755 lab2/gnu/getopt/LANGUAGES create mode 100755 lab2/gnu/getopt/LongOpt.class create mode 100755 lab2/gnu/getopt/LongOpt.java create mode 100755 lab2/gnu/getopt/Makefile create mode 100755 lab2/gnu/getopt/MessagesBundle.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_chs.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_cht.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_cs.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_de.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_es.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_fr.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_hu.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_it.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_ja.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_nl.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_no.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_pl.properties create mode 100755 lab2/gnu/getopt/MessagesBundle_ro.properties create mode 100755 lab2/gnu/getopt/README create mode 100755 lab2/gnu/getopt/buildx.xml create mode 100755 lab2/gnu/getopt/gnu.getopt.Getopt.html create mode 100755 lab2/gnu/getopt/gnu.getopt.LongOpt.html create mode 100644 lab2/jax/MD5.class create mode 100644 lab2/jax/MD5.java create mode 100644 lab2/jax/MD5Client.class create mode 100644 lab2/jax/MD5Client.java create mode 100644 lab2/jax/MD5Impl.class create mode 100644 lab2/jax/MD5Impl.java create mode 100644 lab2/jax/MD5Publisher.class create mode 100644 lab2/jax/MD5Publisher.java create mode 100644 lab2/jax/localhost/_8080/md5/Exception.class create mode 100644 lab2/jax/localhost/_8080/md5/Exception.java create mode 100644 lab2/jax/localhost/_8080/md5/Exception_Exception.class create mode 100644 lab2/jax/localhost/_8080/md5/Exception_Exception.java create mode 100644 lab2/jax/localhost/_8080/md5/MD5.class create mode 100644 lab2/jax/localhost/_8080/md5/MD5.java create mode 100644 lab2/jax/localhost/_8080/md5/MD5Client.java create mode 100644 lab2/jax/localhost/_8080/md5/MD5Impl.class create mode 100644 lab2/jax/localhost/_8080/md5/MD5Impl.java create mode 100644 lab2/jax/localhost/_8080/md5/MD5ImplService.class create mode 100644 lab2/jax/localhost/_8080/md5/MD5ImplService.java create mode 100644 lab2/jax/localhost/_8080/md5/MD5Response.class create mode 100644 lab2/jax/localhost/_8080/md5/MD5Response.java create mode 100644 lab2/jax/localhost/_8080/md5/ObjectFactory.class create mode 100644 lab2/jax/localhost/_8080/md5/ObjectFactory.java create mode 100644 lab2/jax/localhost/_8080/md5/package-info.class create mode 100644 lab2/jax/localhost/_8080/md5/package-info.java create mode 100644 lab2/md5/endpoint/MD5Publisher.class create mode 100644 lab2/md5/endpoint/MD5Publisher.java create mode 100644 lab2/md5/ws/MD5.class create mode 100644 lab2/md5/ws/MD5.java create mode 100644 lab2/md5/ws/MD5Impl.class create mode 100644 lab2/md5/ws/MD5Impl.java create mode 100644 lab2/md5_client/Exception.class create mode 100644 lab2/md5_client/Exception.java create mode 100644 lab2/md5_client/Exception_Exception.class create mode 100644 lab2/md5_client/Exception_Exception.java create mode 100644 lab2/md5_client/MD5.class create mode 100644 lab2/md5_client/MD5.java create mode 100644 lab2/md5_client/MD5ImplService.class create mode 100644 lab2/md5_client/MD5ImplService.java create mode 100644 lab2/md5_client/ObjectFactory.class create mode 100644 lab2/md5_client/ObjectFactory.java create mode 100644 lab2/md5_client/package-info.class create mode 100644 lab2/md5_client/package-info.java create mode 100644 lab2/msg_list.c create mode 100644 lab2/msg_list.h create mode 100644 lab2/msg_list.o create mode 100644 lab2/read_line.c create mode 100644 lab2/read_line.h create mode 100644 lab2/read_line.o create mode 100644 lab2/rpc_store_service (copy)/Makefile create mode 100644 lab2/rpc_store_service (copy)/store_service.h create mode 100644 lab2/rpc_store_service (copy)/store_service.x create mode 100755 lab2/rpc_store_service (copy)/store_service_client create mode 100644 lab2/rpc_store_service (copy)/store_service_client.c create mode 100644 lab2/rpc_store_service (copy)/store_service_client.o create mode 100644 lab2/rpc_store_service (copy)/store_service_clnt.c create mode 100644 lab2/rpc_store_service (copy)/store_service_clnt.o create mode 100755 lab2/rpc_store_service (copy)/store_service_server create mode 100644 lab2/rpc_store_service (copy)/store_service_server.c create mode 100644 lab2/rpc_store_service (copy)/store_service_server.o create mode 100644 lab2/rpc_store_service (copy)/store_service_svc.c create mode 100644 lab2/rpc_store_service (copy)/store_service_svc.o create mode 100644 lab2/rpc_store_service (copy)/store_service_xdr.c create mode 100644 lab2/rpc_store_service (copy)/store_service_xdr.o create mode 100644 lab2/rpc_store_service/Makefile create mode 100644 lab2/rpc_store_service/segurodevida.c create mode 100644 lab2/rpc_store_service/store_service.h create mode 100644 lab2/rpc_store_service/store_service.x create mode 100755 lab2/rpc_store_service/store_service_client create mode 100644 lab2/rpc_store_service/store_service_client.c create mode 100644 lab2/rpc_store_service/store_service_client.o create mode 100644 lab2/rpc_store_service/store_service_clnt.c create mode 100644 lab2/rpc_store_service/store_service_clnt.o create mode 100755 lab2/rpc_store_service/store_service_server create mode 100644 lab2/rpc_store_service/store_service_server.c create mode 100644 lab2/rpc_store_service/store_service_server.o create mode 100644 lab2/rpc_store_service/store_service_svc.c create mode 100644 lab2/rpc_store_service/store_service_svc.o create mode 100644 lab2/rpc_store_service/store_service_xdr.c create mode 100644 lab2/rpc_store_service/store_service_xdr.o create mode 100644 lab2/segurodevida.c create mode 100755 lab2/server create mode 100644 lab2/server.c create mode 100644 lab2/server.h create mode 100644 lab2/server.o create mode 100644 lab2/servidor/Makefile create mode 100644 lab2/servidor/msg_list.c create mode 100644 lab2/servidor/msg_list.h create mode 100644 lab2/servidor/read_line.c create mode 100644 lab2/servidor/read_line.h create mode 100644 lab2/servidor/server.c create mode 100644 lab2/servidor/server.h create mode 100644 lab2/servidor/user_list.c create mode 100644 lab2/servidor/user_list.h create mode 100755 lab2/test create mode 100644 lab2/test.c create mode 100644 lab2/user_list.c create mode 100644 lab2/user_list.h create mode 100644 lab2/user_list.o diff --git a/lab2/.DS_Store b/lab2/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..887cb27fefb12a89fc35700acd34f6898032bf7e GIT binary patch literal 6148 zcmeH~JqiLr422W55Nx)zoW=uqgF*BJUO;rgMzj$7Il3=DEVx>W$O|NICY!MASL{qg zL^qFqEz*g|9BwKr3nNqPr*f97Jo@|Ta=hIxL&YRlRs-*3^n57ff&@r_1W14cNZ@A( z*trdxFG3kffCNZjAYlK80ynLxE!2M<2tEQpXGptY?Xv{5SOQv8TPQLxjaF#1s*fR- z_jYK>x|-TTqg^zI56w5LO))TycF}?jOsfk636Q{uz%=%qo&P)dr}=->!Yv7qz@HJ& z*>=C(;G^KmuPS@C2_M B5p@6n literal 0 HcmV?d00001 diff --git a/lab2/MD5Client.class b/lab2/MD5Client.class new file mode 100644 index 0000000000000000000000000000000000000000..1cd92a21ed79511c80fcb29c3a612285f09b4cec GIT binary patch literal 756 zcmZuvZBNrs6n<`3cDJtE6dWqZ5JBvCtBU)C@e68VvLQ){iSbicZk9q{meL{oB0uAY z5jF7#_@mUPMO}z%lXLDpFVA_-IrqoUuipV|qiw*%oW#5V4Re{eSH=RGB`j8OA4>)v zU|C|tKp77uRwW(@6rcN%pS}<%Sgm&g`fhxv1nM0>QhUR&r;-D=7to@It{(}^S|2(` z?x|}BZq&D(H1VVUPL^18QrA1~x`RAk!Xgie7Rw13PCQIJ_1e#XYTcLZ-N08-x|IQ$ zsG=s&2oKx##}k{*H{l>~RC4Nj%ETJhB{ocKVvAhEUF|{#W`~sOPib4&co^i=4p(_6(NsVuX~4860^ Xe$iNvxFyk$ybFojIX>3$g7(Mr!>AW}7*KMH7)FM+C>_RD6s8SZC3#HNp7_1Z*e4Reqp~Fm>c>|Qi z4cQbGj3J`N5Tn*;)Kp<0G%BE&h(;0Xm&VL+{~j3ik-)rC2BJZ1a5qpSe)LQdZt6U~LHY7y>!1zJSplS=ViZ zR_fh;{*nmxpYkBnO87`o1_VFNbGVUvbIY*w&E z!&Yq5@Gu@x@Ti8z@OYAoPioXny(KUZF`3fP*J;>}C#2FHX&%JS)36h}B=v3$d+?-y z=4ongT+`O%@hoa?((n}a%J?O}ty$EtR6tE^y9I3S#Vb16cp>Wev2$MRZH;qyZMCxv z$Jx7(U?mo|N1zzA?{R;8X6kJY^L zluAxZ7aOMGJG$2zUh|rG)eOcd1SXeVP0WmAm6M{7`)WYy^#|C6i4<})vb>Q{h$}Z4 zw{-fk4$L19T1wl<2zX_g^7%rS|FJzW7zZ_!d@atdHpa@D))=#(gzcKrBvh^L<5p$69#g z=HykqY*(I1_9@R+ez?0KFq>CXcosZoR2+pE=7qo<9&Pd?`FX6xZ9Gco0ydS@u8I** z7vn8QV68X|Ym}`kkH9u=?v$s{AT-*HNwft;w3SJ?$P-lIm_A?@n=7BeA*U$RAxvp~ zAC3`Zb{&Q0%!(qrGK!oia-+zr5PaM)69C!BgPpZVrNyijv>n;B3wg8yPTGk|+KrjC z2XlE}g(bUQL7j^&=OqPL&ar?@w%dPX%!32w>}p|F-vXFx4wA!hXlATqpHqEwTg==uX~&2@K36u zlf@SXd7iH4{xy^55|_tpXWYps&6u&Fp8?f8*D7e5>cu_Sqp zI$LXXvMW@7h`b7LnpNikj`uF literal 0 HcmV?d00001 diff --git a/lab2/authors.txt b/lab2/authors.txt new file mode 100644 index 0000000..f5b361b --- /dev/null +++ b/lab2/authors.txt @@ -0,0 +1,2 @@ +GUTIÉRREZ PARADELA, CARLOS 100291121 GROUP 89 +LÓPEZ LOZOYA, RUBÉN 100292107 GROUP 89 \ No newline at end of file diff --git a/lab2/client$1.class b/lab2/client$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d51ca23af6612a14ebeeaa6cf20d3e31a61254a7 GIT binary patch literal 521 zcmZXRPfx-?5XIlNK(VxdNKjGy7Y^V-FdjT$j7g)333vda2V-<88>p78X^Y>>lf;8Z z4}K`)6bK$@(wW)m@9nK$+F+v3WJkd*B@LWW1r{EgEVm(q5< zz>$NN2!~!@!-j!P6b&Sx8Q8+MffDu@k~3NPm;nsNwUolQTpk1>V8}+B)m$zIweHXt zyibm2Jb4{)hddQ3_sxH*6Z&*yBbr6$wk?97T(8#|@|Ef`MNHobY>$q#Lk;^3O50-C ztt_L}=GQp)dTBNqB1u(=GEIc|;Ro0|6{MO1)Kng5r7zIaIhvk8 z`G!t$0`)G^C{s-uDwU5&C{Hkz9#Zs01v4oaQ^-V`a*XaZivm?S62>Tloa|6{_oDa* D_MBwI literal 0 HcmV?d00001 diff --git a/lab2/client$RC.class b/lab2/client$RC.class new file mode 100644 index 0000000000000000000000000000000000000000..6ef25cd5d9fff5850d0a1d3632d6f6a682dd66f4 GIT binary patch literal 884 zcmZuv?{Csj6g`g?T1xpbKy+*q-O#m6$8_!!WMLtgEF+S%ZVB;&DOgFDt|UCWesUSoZ7*=&O)h%w=)KePX-5%PI-eOz zM*G~kbgI4+461fG@`6FlT&AykffpV!6#fG}HqRL1wl@fza55rh$>2L`oyM8n+F0Ok z1(S>V0{J1$s@cQIsPDe@xUR&^g7Bd%kVM30%nS#MGm5`cTfpD?vrJ!W?9m@i(escS zs~{-=Wl|$D2?8=jJ`G18j)!;zhE=LIDf6XG!M-7K1L+G@3`L4Dah4(c8rJ9dEkwj_ zA_uwh9nl-e_b)`aF9hTbN|5LSl*-QfHDX`yv6pBkf+tY%l;TX4ODg#~`U$z4RitaE zSBQ&3lSPpbg&q|}GWLsb(v;poSDqqaccW7z?JKamc3DBWf+U$yBx|;jAzicPo7fT} P%2=VSkq8+EGL7OtEBK-v literal 0 HcmV?d00001 diff --git a/lab2/client.class b/lab2/client.class new file mode 100644 index 0000000000000000000000000000000000000000..f90e08494090da6ae0123803bec952f70b8171cb GIT binary patch literal 7989 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 BdWHZ1 literal 0 HcmV?d00001 diff --git a/lab2/client.java b/lab2/client.java new file mode 100644 index 0000000..aa189f4 --- /dev/null +++ b/lab2/client.java @@ -0,0 +1,740 @@ +import java.io.*; +import gnu.getopt.Getopt; +import java.net.Socket; +import java.net.ServerSocket; +import md5_client.MD5; +import md5_client.MD5ImplService; + + +class client { + + /********************* TYPES **********************/ + + /** + * @brief Return codes for the protocol methods + */ + private static enum RC { + OK, + ERROR, + USER_ERROR + }; + + /******************* ATTRIBUTES *******************/ + + private static String _server = null; + private static int _port = -1; + /* Controls the user bound to the client when executing a CONNECT command */ + private static String connected_user = null; + /* Instantiate and prepare an empty ServerThread for further connection */ + private static ServerThread server_thread = new ServerThread(); + + + /********************* METHODS ********************/ + + /** + * @param user - User name to register in the system + * + * @return OK if successful + * @return USER_ERROR if the user is already registered + * @return ERROR if another error occurred + */ + static RC register(String user) + { + // Write your code here + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "REGISTER" is sent indicating the operation + String operation = new String("REGISTER"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be registered + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> REGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USERNAME IN USE"); + return RC.USER_ERROR; + case 2: + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to unregister from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist + * @return ERROR if another error occurred + */ + static RC unregister(String user) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "UNREGISTER" is sent indicating the operation + String operation = new String("UNREGISTER"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be unregistered + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* If we try to unregister the user that is currently bound and connected + to the client, it is unbound from the client */ + if(connected_user != null){ + /* This protects against null pointer exception when a CONNECT command is executed and + the server marks the user as connected, but then the client is terminated without + executing DISCONNECT from the server */ + if(connected_user.equals(user)){ + connected_user = null; + /* If the unregister also disconnect a user linked to the client (connected and with a + server thread running, kill also the running thread*/ + server_thread.kill(); + } + } + + System.out.println("c> UNREGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to connect to the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already connected + * @return ERROR if another error occurred + */ + static RC connect(String user) + { + + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + /* Before trying to connect, if a user is already connected, quit the function with RC.ERROR */ + if(connected_user != null){ + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "CONNECT" is sent indicating the operation + String operation = new String("CONNECT"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be connected + out.writeBytes(user); + out.write(0); + + /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum + number of queued requests */ + ServerSocket sock = new ServerSocket(0, 10); + /* Get the port at which the socket is listening */ + int port = sock.getLocalPort(); + + //4. A string is sent with the port number listening in the client + out.writeBytes(String.valueOf(port)); + out.write(0); + + //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //6. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* Start a new thread where */ + server_thread.start(sock); + /* Bind the user to the client */ + connected_user = user; + System.out.println("c> CONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> USER ALREADY CONNECTED"); + return RC.USER_ERROR; + case 3: + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to disconnect from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already disconnected + * @return ERROR if another error occurred + */ + static RC disconnect(String user) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "DISCONNECT" is sent indicating the operation + String operation = new String("DISCONNECT"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be disconnected + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* Unbind the user from the client */ + connected_user = null; + server_thread.kill(); + System.out.println("c> DISCONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); + return RC.USER_ERROR; + case 3: + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } + } + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } + } + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + + /** + * @param user - Receiver user name + * @param message - Message to be sent + * + * @return OK if the server had successfully delivered the message + * @return USER_ERROR if the user is not connected (the message is queued for delivery) + * @return ERROR the user does not exist or another error occurred + */ + static RC send(String user, String message) + { + String md5; + /* Calculate the MD5 of the message */ + try{ + /* Define the MD5 Web service variables */ + MD5ImplService md5Service = new MD5ImplService(); + MD5 md5_ws = md5Service.getMD5ImplPort(); + md5 = md5_ws.getMD5(message); + } + catch(Exception e){ + /* If exception occurs, nothing is sent to the server */ + System.out.println("c> ERROR , SEND FAIL / ERROR IN MD5"); + System.out.println("Exception: " + e); + return RC.ERROR; + } + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + /* If there is not a user connected in the client, return error RC.ERROR */ + if(connected_user == null){ + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + + //2. The string "SEND" is sent indicating the operation + String operation = new String("SEND"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user that sends the message + out.writeBytes(connected_user); + out.write(0); + + //4. A string of characters is sent with the user that receives the message + out.writeBytes(user); + out.write(0); + + //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent + out.writeBytes(trimMessage(message)); //Sends a string of 255 characters + out.write(0); + + //6. A string of characters is sent with the MD5 hash of the message to be sent + out.writeBytes(md5); //Sends a string of 255 characters + out.write(0); + + //7. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + String msg_id = new String(); + /* If response is 0 (OK), prepare to read the ID of the message */ + if(response == 0){ + + /* Create BufferedReader for easy reading a string */ + /* + BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); + msg_id = inString.readLine();*/ + byte ch; + do{ + ch = in.readByte(); + if (ch != 0) msg_id = msg_id + ((char) ch); + } while(ch != 0); + } + + //7. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> SEND OK - MESSAGE " + msg_id); + return RC.OK; + case 1: + System.out.println("c> SEND FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + /** + * @brief Trims the input message to 255 characters + * + * @param message - String to be trimmed + * + * @return message - Result String + */ + static String trimMessage(String message){ + /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ + int maxLength = 255; + + if(message.length() > maxLength){ + message = message.substring(0, maxLength); + } + + return message; + } + + /** + * @brief Command interpreter for the client. It calls the protocol functions. + */ + static void shell() + { + boolean exit = false; + String input; + String [] line; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!exit) { + try { + System.out.print("c> "); + input = in.readLine(); + line = input.split("\\s"); + + if (line.length > 0) { + /*********** REGISTER *************/ + if (line[0].equals("REGISTER")) { + if (line.length == 2) { + register(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: REGISTER "); + } + } + + /********** UNREGISTER ************/ + else if (line[0].equals("UNREGISTER")) { + if (line.length == 2) { + unregister(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: UNREGISTER "); + } + } + + /************ CONNECT *************/ + else if (line[0].equals("CONNECT")) { + if (line.length == 2) { + connect(line[1]); // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR + } else { + System.out.println("Syntax error. Usage: CONNECT "); + } + } + + /********** DISCONNECT ************/ + else if (line[0].equals("DISCONNECT")) { + if (line.length == 2) { + disconnect(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: DISCONNECT "); + } + } + + /************** SEND **************/ + else if (line[0].equals("SEND")) { + if (line.length >= 3) { + // Remove first two words + String message = input.substring(input.indexOf(' ')+1); + message = message.substring(message.indexOf(' ')+1); + send(line[1], message); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: SEND "); + } + } + + /************** QUIT **************/ + else if (line[0].equals("QUIT")){ + if (line.length == 1) { + exit = true; + } else { + System.out.println("Syntax error. Use: QUIT"); + } + } + + /************* UNKNOWN ************/ + else { + System.out.println("Error: command '" + line[0] + "' not valid."); + } + } + } catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + } + } + + /** + * @brief Prints program usage + */ + static void usage() + { + System.out.println("Usage: java -cp . client -s -p "); + } + + /** + * @brief Parses program execution arguments + */ + static boolean parseArguments(String [] argv) + { + Getopt g = new Getopt("client", argv, "ds:p:"); + + int c; + String arg; + + while ((c = g.getopt()) != -1) { + switch(c) { + //case 'd': + // _debug = true; + // break; + case 's': + _server = g.getOptarg(); + break; + case 'p': + arg = g.getOptarg(); + _port = Integer.parseInt(arg); + break; + case '?': + System.out.print("getopt() returned " + c + "\n"); + break; // getopt() already printed an error + default: + System.out.print("getopt() returned " + c + "\n"); + } + } + + if (_server == null) + return false; + + if ((_port < 1024) || (_port > 65535)) { + System.out.println("Error: Port must be in the range 1024 <= port <= 65535"); + return false; + } + + return true; + } + + + + /********************* MAIN **********************/ + + public static void main(String[] argv) + { + if(!parseArguments(argv)) { + usage(); + return; + } + + /* Creates a thread that catches Ctrl+C kill command from the CLI and disconnects from the server the + connected user of the client (bound to the client) */ + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() { + if(connected_user != null){ + disconnect(connected_user); + } + } + }); + + shell(); + System.out.println("+++ FINISHED +++"); + } +} + +/********************* SERVERTHREAD **********************/ + +class ServerThread extends Thread{ + + private ServerSocket sc; //ServerSocket of the listening thread + private volatile Thread blinker; //Thread of type volatile that will be attached to the ServerThread + private Socket sd; + + /** + * @brief Constructor. Starts the server thread and initializes the ServerSocket property + * + * @param sc - Initialized ServerSocket + * + */ + public void start(ServerSocket sc){ + blinker = new Thread(this); + blinker.start(); + this.sc = sc; + } + + /** + * @brief Destroys the server thread + */ + public void kill(){ + try{ + if(sd != null) this.sd.close(); + } + catch(IOException e){ + System.out.println("Exception: " + e); + } + blinker = null; + } + + /** + * @brief Main execution code sequence of the server thread. Listens to incoming connections + */ + public void run(){ + Thread thisThread = Thread.currentThread(); + sd = null; + while(blinker == thisThread){ + try{ + /* Waiting for connection */ + sd = this.sc.accept(); + + DataInputStream msg_in = new DataInputStream(sd.getInputStream()); + /* Receive the string encoding the operation */ + String operation = new String(); + byte ch; + do{ + ch = msg_in.readByte(); + if (ch != 0) operation = operation + ((char) ch); + + } while(ch != 0); + /* Prepare the string for the ID of the message sent/received */ + String id = new String(); + + switch(operation){ + case "SEND_MESSAGE": + /* Read the sender username from the socket */ + String sender = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) sender = sender + ((char) ch); + + } while(ch != 0); + /* Read the ID of the received message */ + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + /* Read the string containing the MD5 of the message */ + String md5 = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) md5 = md5 + ((char) ch); + + } while(ch != 0); + /* Read the string containing the body of the message */ + String msg = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) msg = msg + ((char) ch); + + } while(ch != 0); + /* Prompt */ + System.out.println("MESSAGE " + id + " FROM " + sender + ":"); + System.out.println("\t" + msg); + System.out.println("\tMD5:"); + System.out.println("\t" + md5); + System.out.println("\tEND"); + System.out.print("c> "); + break; + + case "SEND_MESS_ACK": + /* Read the id of the message being acknowledged */ + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + + System.out.println("SEND MESSAGE " + id + " OK"); + System.out.print("c> "); + break; + } + sd.close(); + + } + catch(Exception e){ + System.out.println("Exception: " + e); + //e.printStackTrace(); + this.kill(); + } + } + /* If the thread exits the loop for any reason, try to close the socket */ + try{ + sd.close(); + } + catch(Exception e){ + System.out.println("Exception: " + e); + this.kill(); + } + } +} diff --git a/lab2/gnu/getopt/COPYING.LIB b/lab2/gnu/getopt/COPYING.LIB new file mode 100755 index 0000000..161a3d1 --- /dev/null +++ b/lab2/gnu/getopt/COPYING.LIB @@ -0,0 +1,482 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/lab2/gnu/getopt/ChangeLog b/lab2/gnu/getopt/ChangeLog new file mode 100755 index 0000000..7fed6d2 --- /dev/null +++ b/lab2/gnu/getopt/ChangeLog @@ -0,0 +1,114 @@ +For release 1.0.14 (2012/02/08) + +David Zhang (david290@qq.com) provided Chinese language messages. +Daniel Thomas (drt24@srcf.ucam.org) contributed a patch to fix a static +access warning message. + +For release 1.0.13 (2006/08/29) + +Krzysztof Szymanski (sirch.s@gmail.com) provided Polish language messages. + +For release 1.0.12 (2005/11/12) + +Sandro Tossi (matrixhasu@gmail.com) provided Italian language messages. + +For release 1.0.11 (2005/02/19) + +Daniel Perez Alvarez (dondani@gmail.com) provided Spanish language +messages. + +For release 1.0.10 (2004/09/12) + +Marian-Nicolae V. Ion (mion@neocom.fr) provided Romanian language messages. + +For release 1.0.9 (2002/01/16) + +Yasuoka Masahiko provided Japanese langauge messages. + +Csom Gyula provided Hungarian language messages. + +Guillaume Rousse supplied the ant build file +and documentation. + +For release 1.0.8 (2000/09/11) + +Ernst de Haan provided Dutch language messages. + +For release 1.0.7 (2000/02/02) + +Fixed an obscure POSIX compatibility issue. When an optstring is "o:", +then "-o -- foo" should result in -o having an optarg of "foo", not "--" +as was previously returned. This new parsing behavior is only enabled +in POSIX compatibility mode. Thank to Don Suit (dsuit@fc.hp.com) for +reporting this and help in communicating proper POSIX behavior. + +For release 1.0.6 (1999/06/27) + +Added French language messages. Thanks to Edouard G. Parmelan +(Edouard.Parmelan@quadratec.fr) for this contribution. + +For release 1.0.5 (1999/03/23) + +Fixed bug that caused getopt to throw a StringIndexOutOfBoundsException +when an empty string ("") argument was encountered. Thanks to +Steffen Siebert (siebert@logware.de) for this bug report and a patch. + +For release 1.0.4 + +Added Norwegian language messages. Thanks to Bjørn-Ove Heimsund +(s811@drone.ii.uib.no) for this contribution. + +For release 1.0.3 + +Added German language messages. Thanks to Bernhard Bablok +(bablokb@gmx.net) for this contribution. + +For release 1.0.2 + +Prevent ArrayIndexOutOfBounds exception if "optstring" is null. David Karr +(dkarr@nmo.gtegsc.com) had a problem with this when commenting out options +during debugging, so I have fixed it. + +For release 1.0.1 + +Added Czech language messages. Thanks to Roman Szturc (Roman.Szturc@vsb.cz) +for this contribution. + +For release 1.0 + +No changes. Just increment release number to 1.0 + +For release 0.9.2 + +The sample code has been moved into a separate file called "GetoptDemo.java". +This is so that it can be legally placed into the public domain and not +subsumed into the LGPL as would be the case if it were in Getopt.java. +While I do not encourage anyone to write proprietary software, I feel that +there is no good purpose served in restricting what someone can do with +a short example program. + +Modified the Makefile and various other files to support the change +above. + +For release 0.9.1 + +This release contains only minor fixes. It's always possible it introduces +some bugs though so unless you are keen on internationalization or are +having a line separator problem, there is no need to upgrade from 0.9. + +-- Messages are now internationalized. Thanks to Bill King + (wrking@eng.sun.com) for this. + +-- Changes all print's to println's to avoid system dependent line + separators. + +-- All internal variables are now protected. Several people suggested + doing this in response to my request for comments in the help file. + No one suggested keeping any variables public. + +-- Fixed parts of licensing that mentioned the regular GPL. Getopt is + and always has been licensed under the LPGL. Thanks to Arieh Markel + (arieh.markel@sun.com) for pointing this out. + + + diff --git a/lab2/gnu/getopt/Getopt.class b/lab2/gnu/getopt/Getopt.class new file mode 100755 index 0000000000000000000000000000000000000000..735a7f1b16f8604e9cb9d33e36933c4d2349e9fe GIT binary patch literal 7366 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 + * To use Getopt, create a Getopt object with a argv array passed to the + * main method, then call the getopt() method in a loop. It will return an + * int that contains the value of the option character parsed from the + * command line. When there are no more options to be parsed, it + * returns -1. + *

+ * A command line option can be defined to take an argument. If an + * option has an argument, the value of that argument is stored in an + * instance variable called optarg, which can be accessed using the + * getOptarg() method. If an option that requires an argument is + * found, but there is no argument present, then an error message is + * printed. Normally getopt() returns a '?' in this situation, but + * that can be changed as described below. + *

+ * If an invalid option is encountered, an error message is printed + * to the standard error and getopt() returns a '?'. The value of the + * invalid option encountered is stored in the instance variable optopt + * which can be retrieved using the getOptopt() method. To suppress + * the printing of error messages for this or any other error, set + * the value of the opterr instance variable to false using the + * setOpterr() method. + *

+ * Between calls to getopt(), the instance variable optind is used to + * keep track of where the object is in the parsing process. After all + * options have been returned, optind is the index in argv of the first + * non-option argument. This variable can be accessed with the getOptind() + * method. + *

+ * Note that this object expects command line options to be passed in the + * traditional Unix manner. That is, proceeded by a '-' character. + * Multiple options can follow the '-'. For example "-abc" is equivalent + * to "-a -b -c". If an option takes a required argument, the value + * of the argument can immediately follow the option character or be + * present in the next argv element. For example, "-cfoo" and "-c foo" + * both represent an option character of 'c' with an argument of "foo" + * assuming c takes a required argument. If an option takes an argument + * that is not required, then any argument must immediately follow the + * option character in the same argv element. For example, if c takes + * a non-required argument, then "-cfoo" represents option character 'c' + * with an argument of "foo" while "-c foo" represents the option + * character 'c' with no argument, and a first non-option argv element + * of "foo". + *

+ * The user can stop getopt() from scanning any further into a command line + * by using the special argument "--" by itself. For example: + * "-a -- -d" would return an option character of 'a', then return -1 + * The "--" is discarded and "-d" is pointed to by optind as the first + * non-option argv element. + *

+ * Here is a basic example of using Getopt: + *

+ *

+  * Getopt g = new Getopt("testprog", argv, "ab:c::d");
+  * //
+  * int c;
+  * String arg;
+  * while ((c = g.getopt()) != -1)
+  *   {
+  *     switch(c)
+  *       {
+  *          case 'a':
+  *          case 'd':
+  *            System.out.print("You picked " + (char)c + "\n");
+  *            break;
+  *            //
+  *          case 'b':
+  *          case 'c':
+  *            arg = g.getOptarg();
+  *            System.out.print("You picked " + (char)c + 
+  *                             " with an argument of " +
+  *                             ((arg != null) ? arg : "null") + "\n");
+  *            break;
+  *            //
+  *          case '?':
+  *            break; // getopt() already printed an error
+  *            //
+  *          default:
+  *            System.out.print("getopt() returned " + c + "\n");
+  *       }
+  *   }
+  * 
+ *

+ * In this example, a new Getopt object is created with three params. + * The first param is the program name. This is for printing error + * messages in the form "program: error message". In the C version, this + * value is taken from argv[0], but in Java the program name is not passed + * in that element, thus the need for this parameter. The second param is + * the argument list that was passed to the main() method. The third + * param is the list of valid options. Each character represents a valid + * option. If the character is followed by a single colon, then that + * option has a required argument. If the character is followed by two + * colons, then that option has an argument that is not required. + *

+ * Note in this example that the value returned from getopt() is cast to + * a char prior to printing. This is required in order to make the value + * display correctly as a character instead of an integer. + *

+ * If the first character in the option string is a colon, for example + * ":abc::d", then getopt() will return a ':' instead of a '?' when it + * encounters an option with a missing required argument. This allows the + * caller to distinguish between invalid options and valid options that + * are simply incomplete. + *

+ * In the traditional Unix getopt(), -1 is returned when the first non-option + * charcter is encountered. In GNU getopt(), the default behavior is to + * allow options to appear anywhere on the command line. The getopt() + * method permutes the argument to make it appear to the caller that all + * options were at the beginning of the command line, and all non-options + * were at the end. For example, calling getopt() with command line args + * of "-a foo bar -d" returns options 'a' and 'd', then sets optind to + * point to "foo". The program would read the last two argv elements as + * "foo" and "bar", just as if the user had typed "-a -d foo bar". + *

+ * The user can force getopt() to stop scanning the command line with + * the special argument "--" by itself. Any elements occuring before the + * "--" are scanned and permuted as normal. Any elements after the "--" + * are returned as is as non-option argv elements. For example, + * "foo -a -- bar -d" would return option 'a' then -1. optind would point + * to "foo", "bar" and "-d" as the non-option argv elements. The "--" + * is discarded by getopt(). + *

+ * There are two ways this default behavior can be modified. The first is + * to specify traditional Unix getopt() behavior (which is also POSIX + * behavior) in which scanning stops when the first non-option argument + * encountered. (Thus "-a foo bar -d" would return 'a' as an option and + * have "foo", "bar", and "-d" as non-option elements). The second is to + * allow options anywhere, but to return all elements in the order they + * occur on the command line. When a non-option element is ecountered, + * an integer 1 is returned and the value of the non-option element is + * stored in optarg is if it were the argument to that option. For + * example, "-a foo -d", returns first 'a', then 1 (with optarg set to + * "foo") then 'd' then -1. When this "return in order" functionality + * is enabled, the only way to stop getopt() from scanning all command + * line elements is to use the special "--" string by itself as described + * above. An example is "-a foo -b -- bar", which would return 'a', then + * integer 1 with optarg set to "foo", then 'b', then -1. optind would + * then point to "bar" as the first non-option argv element. The "--" + * is discarded. + *

+ * The POSIX/traditional behavior is enabled by either setting the + * property "gnu.posixly_correct" or by putting a '+' sign as the first + * character of the option string. The difference between the two + * methods is that setting the gnu.posixly_correct property also forces + * certain error messages to be displayed in POSIX format. To enable + * the "return in order" functionality, put a '-' as the first character + * of the option string. Note that after determining the proper + * behavior, Getopt strips this leading '+' or '-', meaning that a ':' + * placed as the second character after one of those two will still cause + * getopt() to return a ':' instead of a '?' if a required option + * argument is missing. + *

+ * In addition to traditional single character options, GNU Getopt also + * supports long options. These are preceeded by a "--" sequence and + * can be as long as desired. Long options provide a more user-friendly + * way of entering command line options. For example, in addition to a + * "-h" for help, a program could support also "--help". + *

+ * Like short options, long options can also take a required or non-required + * argument. Required arguments can either be specified by placing an + * equals sign after the option name, then the argument, or by putting the + * argument in the next argv element. For example: "--outputdir=foo" and + * "--outputdir foo" both represent an option of "outputdir" with an + * argument of "foo", assuming that outputdir takes a required argument. + * If a long option takes a non-required argument, then the equals sign + * form must be used to specify the argument. In this case, + * "--outputdir=foo" would represent option outputdir with an argument of + * "foo" while "--outputdir foo" would represent the option outputdir + * with no argument and a first non-option argv element of "foo". + *

+ * Long options can also be specified using a special POSIX argument + * format (one that I highly discourage). This form of entry is + * enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid + * option string. This causes getopt to treat the name following the + * "-W" as the name of the long option. For example, "-W outputdir=foo" + * would be equivalent to "--outputdir=foo". The name can immediately + * follow the "-W" like so: "-Woutputdir=foo". Option arguments are + * handled identically to normal long options. If a string follows the + * "-W" that does not represent a valid long option, then getopt() returns + * 'W' and the caller must decide what to do. Otherwise getopt() returns + * a long option value as described below. + *

+ * While long options offer convenience, they can also be tedious to type + * in full. So it is permissible to abbreviate the option name to as + * few characters as required to uniquely identify it. If the name can + * represent multiple long options, then an error message is printed and + * getopt() returns a '?'. + *

+ * If an invalid option is specified or a required option argument is + * missing, getopt() prints an error and returns a '?' or ':' exactly + * as for short options. Note that when an invalid long option is + * encountered, the optopt variable is set to integer 0 and so cannot + * be used to identify the incorrect option the user entered. + *

+ * Long options are defined by LongOpt objects. These objects are created + * with a contructor that takes four params: a String representing the + * object name, a integer specifying what arguments the option takes + * (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, + * or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described + * below), and an integer value (described below). + *

+ * To enable long option parsing, create an array of LongOpt's representing + * the legal options and pass it to the Getopt() constructor. WARNING: If + * all elements of the array are not populated with LongOpt objects, the + * getopt() method will throw a NullPointerException. + *

+ * When getopt() is called and a long option is encountered, one of two + * things can be returned. If the flag field in the LongOpt object + * representing the long option is non-null, then the integer value field + * is stored there and an integer 0 is returned to the caller. The val + * field can then be retrieved from the flag field. Note that since the + * flag field is a StringBuffer, the appropriate String to integer converions + * must be performed in order to get the actual int value stored there. + * If the flag field in the LongOpt object is null, then the value field + * of the LongOpt is returned. This can be the character of a short option. + * This allows an app to have both a long and short option sequence + * (say, "-h" and "--help") that do the exact same thing. + *

+ * With long options, there is an alternative method of determining + * which option was selected. The method getLongind() will return the + * the index in the long option array (NOT argv) of the long option found. + * So if multiple long options are configured to return the same value, + * the application can use getLongind() to distinguish between them. + *

+ * Here is an expanded Getopt example using long options and various + * techniques described above: + *

+ *

+  * int c;
+  * String arg;
+  * LongOpt[] longopts = new LongOpt[3];
+  * // 
+  * StringBuffer sb = new StringBuffer();
+  * longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
+  * longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
+  * longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
+  * // 
+  * Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
+  * g.setOpterr(false); // We'll do our own error handling
+  * //
+  * while ((c = g.getopt()) != -1)
+  *   switch (c)
+  *     {
+  *        case 0:
+  *          arg = g.getOptarg();
+  *          System.out.println("Got long option with value '" +
+  *                             (char)(new Integer(sb.toString())).intValue()
+  *                             + "' with argument " +
+  *                             ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 1:
+  *          System.out.println("I see you have return in order set and that " +
+  *                             "a non-option argv element was just found " +
+  *                             "with the value '" + g.getOptarg() + "'");
+  *          break;
+  *          //
+  *        case 2:
+  *          arg = g.getOptarg();
+  *          System.out.println("I know this, but pretend I didn't");
+  *          System.out.println("We picked option " +
+  *                             longopts[g.getLongind()].getName() +
+  *                           " with value " + 
+  *                           ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 'b':
+  *          System.out.println("You picked plain old option " + (char)c);
+  *          break;
+  *          //
+  *        case 'c':
+  *        case 'd':
+  *          arg = g.getOptarg();
+  *          System.out.println("You picked option '" + (char)c + 
+  *                             "' with argument " +
+  *                             ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 'h':
+  *          System.out.println("I see you asked for help");
+  *          break;
+  *          //
+  *        case 'W':
+  *          System.out.println("Hmmm. You tried a -W with an incorrect long " +
+  *                             "option name");
+  *          break;
+  *          //
+  *        case ':':
+  *          System.out.println("Doh! You need an argument for option " +
+  *                             (char)g.getOptopt());
+  *          break;
+  *          //
+  *        case '?':
+  *          System.out.println("The option '" + (char)g.getOptopt() + 
+  *                           "' is not valid");
+  *          break;
+  *          //
+  *        default:
+  *          System.out.println("getopt() returned " + c);
+  *          break;
+  *     }
+  * //
+  * for (int i = g.getOptind(); i < argv.length ; i++)
+  *   System.out.println("Non option argv element: " + argv[i] + "\n");
+  * 
+ *

+ * There is an alternative form of the constructor used for long options + * above. This takes a trailing boolean flag. If set to false, Getopt + * performs identically to the example, but if the boolean flag is true + * then long options are allowed to start with a single '-' instead of + * "--". If the first character of the option is a valid short option + * character, then the option is treated as if it were the short option. + * Otherwise it behaves as if the option is a long option. Note that + * the name given to this option - long_only - is very counter-intuitive. + * It does not cause only long options to be parsed but instead enables + * the behavior described above. + *

+ * Note that the functionality and variable names used are driven from + * the C lib version as this object is a port of the C code, not a + * new implementation. This should aid in porting existing C/C++ code, + * as well as helping programmers familiar with the glibc version to + * adapt to the Java version even if it seems very non-Java at times. + *

+ * In this release I made all instance variables protected due to + * overwhelming public demand. Any code which relied on optarg, + * opterr, optind, or optopt being public will need to be modified to + * use the appropriate access methods. + *

+ * Please send all bug reports, requests, and comments to + * arenn@urbanophile.com. + * + * @version 1.0.7 + * + * @author Roland McGrath (roland@gnu.ai.mit.edu) + * @author Ulrich Drepper (drepper@cygnus.com) + * @author Aaron M. Renn (arenn@urbanophile.com) + * + * @see LongOpt + */ +public class Getopt extends Object +{ + +/**************************************************************************/ + +/* + * Class Variables + */ + +/** + * Describe how to deal with options that follow non-option ARGV-elements. + * + * If the caller did not specify anything, + * the default is REQUIRE_ORDER if the property + * gnu.posixly_correct is defined, PERMUTE otherwise. + * + * The special argument `--' forces an end of option-scanning regardless + * of the value of `ordering'. In the case of RETURN_IN_ORDER, only + * `--' can cause `getopt' to return -1 with `optind' != ARGC. + * + * REQUIRE_ORDER means don't recognize them as options; + * stop option processing when the first non-option is seen. + * This is what Unix does. + * This mode of operation is selected by either setting the property + * gnu.posixly_correct, or using `+' as the first character + * of the list of option characters. + */ +protected static final int REQUIRE_ORDER = 1; + +/** + * PERMUTE is the default. We permute the contents of ARGV as we scan, + * so that eventually all the non-options are at the end. This allows options + * to be given in any order, even with programs that were not written to + * expect this. + */ +protected static final int PERMUTE = 2; + +/** + * RETURN_IN_ORDER is an option available to programs that were written + * to expect options and other ARGV-elements in any order and that care about + * the ordering of the two. We describe each non-option ARGV-element + * as if it were the argument of an option with character code 1. + * Using `-' as the first character of the list of option characters + * selects this mode of operation. + */ +protected static final int RETURN_IN_ORDER = 3; + +/**************************************************************************/ + +/* + * Instance Variables + */ + +/** + * For communication from `getopt' to the caller. + * When `getopt' finds an option that takes an argument, + * the argument value is returned here. + * Also, when `ordering' is RETURN_IN_ORDER, + * each non-option ARGV-element is returned here. + */ +protected String optarg; + +/** + * Index in ARGV of the next element to be scanned. + * This is used for communication to and from the caller + * and for communication between successive calls to `getopt'. + * + * On entry to `getopt', zero means this is the first call; initialize. + * + * When `getopt' returns -1, this is the index of the first of the + * non-option elements that the caller should itself scan. + * + * Otherwise, `optind' communicates from one call to the next + * how much of ARGV has been scanned so far. + */ +protected int optind = 0; + +/** + * Callers store false here to inhibit the error message + * for unrecognized options. + */ +protected boolean opterr = true; + +/** + * When an unrecognized option is encountered, getopt will return a '?' + * and store the value of the invalid option here. + */ +protected int optopt = '?'; + +/** + * The next char to be scanned in the option-element + * in which the last option character we returned was found. + * This allows us to pick up the scan where we left off. + * + * If this is zero, or a null string, it means resume the scan + * by advancing to the next ARGV-element. + */ +protected String nextchar; + +/** + * This is the string describing the valid short options. + */ +protected String optstring; + +/** + * This is an array of LongOpt objects which describ the valid long + * options. + */ +protected LongOpt[] long_options; + +/** + * This flag determines whether or not we are parsing only long args + */ +protected boolean long_only; + +/** + * Stores the index into the long_options array of the long option found + */ +protected int longind; + +/** + * The flag determines whether or not we operate in strict POSIX compliance + */ +protected boolean posixly_correct; + +/** + * A flag which communicates whether or not checkLongOption() did all + * necessary processing for the current option + */ +protected boolean longopt_handled; + +/** + * The index of the first non-option in argv[] + */ +protected int first_nonopt = 1; + +/** + * The index of the last non-option in argv[] + */ +protected int last_nonopt = 1; + +/** + * Flag to tell getopt to immediately return -1 the next time it is + * called. + */ +private boolean endparse = false; + +/** + * Saved argument list passed to the program + */ +protected String[] argv; + +/** + * Determines whether we permute arguments or not + */ +protected int ordering; + +/** + * Name to print as the program name in error messages. This is necessary + * since Java does not place the program name in argv[0] + */ +protected String progname; + +/** + * The localized strings are kept in a separate file + */ +private ResourceBundle _messages = ResourceBundle.getBundle( + "gnu/getopt/MessagesBundle", Locale.getDefault()); + +/**************************************************************************/ + +/* + * Constructors + */ + +/** + * Construct a basic Getopt instance with the given input data. Note that + * this handles "short" options only. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command line to the program. + * @param optstring A String containing a description of the valid args for this program + */ +public +Getopt(String progname, String[] argv, String optstring) +{ + this(progname, argv, optstring, null, false); +} + +/**************************************************************************/ + +/** + * Construct a Getopt instance with given input data that is capable of + * parsing long options as well as short. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command ilne to the program + * @param optstring A String containing a description of the valid short args for this program + * @param long_options An array of LongOpt objects that describes the valid long args for this program + */ +public +Getopt(String progname, String[] argv, String optstring, + LongOpt[] long_options) +{ + this(progname, argv, optstring, long_options, false); +} + +/**************************************************************************/ + +/** + * Construct a Getopt instance with given input data that is capable of + * parsing long options and short options. Contrary to what you might + * think, the flag 'long_only' does not determine whether or not we + * scan for only long arguments. Instead, a value of true here allows + * long arguments to start with a '-' instead of '--' unless there is a + * conflict with a short option name. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command ilne to the program + * @param optstring A String containing a description of the valid short args for this program + * @param long_options An array of LongOpt objects that describes the valid long args for this program + * @param long_only true if long options that do not conflict with short options can start with a '-' as well as '--' + */ +public +Getopt(String progname, String[] argv, String optstring, + LongOpt[] long_options, boolean long_only) +{ + if (optstring.length() == 0) + optstring = " "; + + // This function is essentially _getopt_initialize from GNU getopt + this.progname = progname; + this.argv = argv; + this.optstring = optstring; + this.long_options = long_options; + this.long_only = long_only; + + // Check for property "gnu.posixly_correct" to determine whether to + // strictly follow the POSIX standard. This replaces the "POSIXLY_CORRECT" + // environment variable in the C version + if (System.getProperty("gnu.posixly_correct", null) == null) + posixly_correct = false; + else + { + posixly_correct = true; + _messages = ResourceBundle.getBundle("gnu/getopt/MessagesBundle", + Locale.US); + } + + // Determine how to handle the ordering of options and non-options + if (optstring.charAt(0) == '-') + { + ordering = RETURN_IN_ORDER; + if (optstring.length() > 1) + this.optstring = optstring.substring(1); + } + else if (optstring.charAt(0) == '+') + { + ordering = REQUIRE_ORDER; + if (optstring.length() > 1) + this.optstring = optstring.substring(1); + } + else if (posixly_correct) + { + ordering = REQUIRE_ORDER; + } + else + { + ordering = PERMUTE; // The normal default case + } +} + +/**************************************************************************/ + +/* + * Instance Methods + */ + +/** + * In GNU getopt, it is possible to change the string containg valid options + * on the fly because it is passed as an argument to getopt() each time. In + * this version we do not pass the string on every call. In order to allow + * dynamic option string changing, this method is provided. + * + * @param optstring The new option string to use + */ +public void +setOptstring(String optstring) +{ + if (optstring.length() == 0) + optstring = " "; + + this.optstring = optstring; +} + +/**************************************************************************/ + +/** + * optind it the index in ARGV of the next element to be scanned. + * This is used for communication to and from the caller + * and for communication between successive calls to `getopt'. + * + * When `getopt' returns -1, this is the index of the first of the + * non-option elements that the caller should itself scan. + * + * Otherwise, `optind' communicates from one call to the next + * how much of ARGV has been scanned so far. + */ +public int +getOptind() +{ + return(optind); +} + +/**************************************************************************/ + +/** + * This method allows the optind index to be set manually. Normally this + * is not necessary (and incorrect usage of this method can lead to serious + * lossage), but optind is a public symbol in GNU getopt, so this method + * was added to allow it to be modified by the caller if desired. + * + * @param optind The new value of optind + */ +public void +setOptind(int optind) +{ + this.optind = optind; +} + +/**************************************************************************/ + +/** + * Since in GNU getopt() the argument vector is passed back in to the + * function every time, the caller can swap out argv on the fly. Since + * passing argv is not required in the Java version, this method allows + * the user to override argv. Note that incorrect use of this method can + * lead to serious lossage. + * + * @param argv New argument list + */ +public void +setArgv(String[] argv) +{ + this.argv = argv; +} + +/**************************************************************************/ + +/** + * For communication from `getopt' to the caller. + * When `getopt' finds an option that takes an argument, + * the argument value is returned here. + * Also, when `ordering' is RETURN_IN_ORDER, + * each non-option ARGV-element is returned here. + * No set method is provided because setting this variable has no effect. + */ +public String +getOptarg() +{ + return(optarg); +} + +/**************************************************************************/ + +/** + * Normally Getopt will print a message to the standard error when an + * invalid option is encountered. This can be suppressed (or re-enabled) + * by calling this method. There is no get method for this variable + * because if you can't remember the state you set this to, why should I? + */ +public void +setOpterr(boolean opterr) +{ + this.opterr = opterr; +} + +/**************************************************************************/ + +/** + * When getopt() encounters an invalid option, it stores the value of that + * option in optopt which can be retrieved with this method. There is + * no corresponding set method because setting this variable has no effect. + */ +public int +getOptopt() +{ + return(optopt); +} + +/**************************************************************************/ + +/** + * Returns the index into the array of long options (NOT argv) representing + * the long option that was found. + */ +public int +getLongind() +{ + return(longind); +} + +/**************************************************************************/ + +/** + * Exchange the shorter segment with the far end of the longer segment. + * That puts the shorter segment into the right place. + * It leaves the longer segment in the right place overall, + * but it consists of two parts that need to be swapped next. + * This method is used by getopt() for argument permutation. + */ +protected void +exchange(String[] argv) +{ + int bottom = first_nonopt; + int middle = last_nonopt; + int top = optind; + String tem; + + while (top > middle && middle > bottom) + { + if (top - middle > middle - bottom) + { + // Bottom segment is the short one. + int len = middle - bottom; + int i; + + // Swap it with the top part of the top segment. + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + } + // Exclude the moved bottom segment from further swapping. + top -= len; + } + else + { + // Top segment is the short one. + int len = top - middle; + int i; + + // Swap it with the bottom part of the bottom segment. + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + } + // Exclude the moved top segment from further swapping. + bottom += len; + } + } + + // Update records for the slots the non-options now occupy. + + first_nonopt += (optind - last_nonopt); + last_nonopt = optind; +} + +/**************************************************************************/ + +/** + * Check to see if an option is a valid long option. Called by getopt(). + * Put in a separate method because this needs to be done twice. (The + * C getopt authors just copy-pasted the code!). + * + * @param longind A buffer in which to store the 'val' field of found LongOpt + * + * @return Various things depending on circumstances + */ +protected int +checkLongOption() +{ + LongOpt pfound = null; + int nameend; + boolean ambig; + boolean exact; + + longopt_handled = true; + ambig = false; + exact = false; + longind = -1; + + nameend = nextchar.indexOf("="); + if (nameend == -1) + nameend = nextchar.length(); + + // Test all lnog options for either exact match or abbreviated matches + for (int i = 0; i < long_options.length; i++) + { + if (long_options[i].getName().startsWith(nextchar.substring(0, nameend))) + { + if (long_options[i].getName().equals(nextchar.substring(0, nameend))) + { + // Exact match found + pfound = long_options[i]; + longind = i; + exact = true; + break; + } + else if (pfound == null) + { + // First nonexact match found + pfound = long_options[i]; + longind = i; + } + else + { + // Second or later nonexact match found + ambig = true; + } + } + } // for + + // Print out an error if the option specified was ambiguous + if (ambig && !exact) + { + if (opterr) + { + Object[] msgArgs = { progname, argv[optind] }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.ambigious"), + msgArgs)); + } + + nextchar = ""; + optopt = 0; + ++optind; + + return('?'); + } + + if (pfound != null) + { + ++optind; + + if (nameend != nextchar.length()) + { + if (pfound.has_arg != LongOpt.NO_ARGUMENT) + { + if (nextchar.substring(nameend).length() > 1) + optarg = nextchar.substring(nameend+1); + else + optarg = ""; + } + else + { + if (opterr) + { + // -- option + if (argv[optind - 1].startsWith("--")) + { + Object[] msgArgs = { progname, pfound.name }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.arguments1"), + msgArgs)); + } + // +option or -option + else + { + Object[] msgArgs = { progname, new + Character(argv[optind-1].charAt(0)).toString(), + pfound.name }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.arguments2"), + msgArgs)); + } + } + + nextchar = ""; + optopt = pfound.val; + + return('?'); + } + } // if (nameend) + else if (pfound.has_arg == LongOpt.REQUIRED_ARGUMENT) + { + if (optind < argv.length) + { + optarg = argv[optind]; + ++optind; + } + else + { + if (opterr) + { + Object[] msgArgs = { progname, argv[optind-1] }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires"), + msgArgs)); + } + + nextchar = ""; + optopt = pfound.val; + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + } // else if (pfound) + + nextchar = ""; + + if (pfound.flag != null) + { + pfound.flag.setLength(0); + pfound.flag.append(pfound.val); + + return(0); + } + + return(pfound.val); + } // if (pfound != null) + + longopt_handled = false; + + return(0); +} + +/**************************************************************************/ + +/** + * This method returns a char that is the current option that has been + * parsed from the command line. If the option takes an argument, then + * the internal variable 'optarg' is set which is a String representing + * the the value of the argument. This value can be retrieved by the + * caller using the getOptarg() method. If an invalid option is found, + * an error message is printed and a '?' is returned. The name of the + * invalid option character can be retrieved by calling the getOptopt() + * method. When there are no more options to be scanned, this method + * returns -1. The index of first non-option element in argv can be + * retrieved with the getOptind() method. + * + * @return Various things as described above + */ +public int +getopt() +{ + optarg = null; + + if (endparse == true) + return(-1); + + if ((nextchar == null) || (nextchar.equals(""))) + { + // If we have just processed some options following some non-options, + // exchange them so that the options come first. + if (last_nonopt > optind) + last_nonopt = optind; + if (first_nonopt > optind) + first_nonopt = optind; + + if (ordering == PERMUTE) + { + // If we have just processed some options following some non-options, + // exchange them so that the options come first. + if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) + exchange(argv); + else if (last_nonopt != optind) + first_nonopt = optind; + + // Skip any additional non-options + // and extend the range of non-options previously skipped. + while ((optind < argv.length) && (argv[optind].equals("") || + (argv[optind].charAt(0) != '-') || argv[optind].equals("-"))) + { + optind++; + } + + last_nonopt = optind; + } + + // The special ARGV-element `--' means premature end of options. + // Skip it like a null option, + // then exchange with previous non-options as if it were an option, + // then skip everything else like a non-option. + if ((optind != argv.length) && argv[optind].equals("--")) + { + optind++; + + if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) + exchange (argv); + else if (first_nonopt == last_nonopt) + first_nonopt = optind; + + last_nonopt = argv.length; + + optind = argv.length; + } + + // If we have done all the ARGV-elements, stop the scan + // and back over any non-options that we skipped and permuted. + if (optind == argv.length) + { + // Set the next-arg-index to point at the non-options + // that we previously skipped, so the caller will digest them. + if (first_nonopt != last_nonopt) + optind = first_nonopt; + + return(-1); + } + + // If we have come to a non-option and did not permute it, + // either stop the scan or describe it to the caller and pass it by. + if (argv[optind].equals("") || (argv[optind].charAt(0) != '-') || + argv[optind].equals("-")) + { + if (ordering == REQUIRE_ORDER) + return(-1); + + optarg = argv[optind++]; + return(1); + } + + // We have found another option-ARGV-element. + // Skip the initial punctuation. + if (argv[optind].startsWith("--")) + nextchar = argv[optind].substring(2); + else + nextchar = argv[optind].substring(1); + } + + // Decode the current option-ARGV-element. + + /* Check whether the ARGV-element is a long option. + + If long_only and the ARGV-element has the form "-f", where f is + a valid short option, don't consider it an abbreviated form of + a long option that starts with f. Otherwise there would be no + way to give the -f short option. + + On the other hand, if there's a long option "fubar" and + the ARGV-element is "-fu", do consider that an abbreviation of + the long option, just like "--fu", and not "-f" with arg "u". + + This distinction seems to be the most useful approach. */ + if ((long_options != null) && (argv[optind].startsWith("--") + || (long_only && ((argv[optind].length() > 2) || + (optstring.indexOf(argv[optind].charAt(1)) == -1))))) + { + int c = checkLongOption(); + + if (longopt_handled) + return(c); + + // Can't find it as a long option. If this is not getopt_long_only, + // or the option starts with '--' or is not a valid short + // option, then it's an error. + // Otherwise interpret it as a short option. + if (!long_only || argv[optind].startsWith("--") + || (optstring.indexOf(nextchar.charAt(0)) == -1)) + { + if (opterr) + { + if (argv[optind].startsWith("--")) + { + Object[] msgArgs = { progname, nextchar }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.unrecognized"), + msgArgs)); + } + else + { + Object[] msgArgs = { progname, new + Character(argv[optind].charAt(0)).toString(), + nextchar }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.unrecognized2"), + msgArgs)); + } + } + + nextchar = ""; + ++optind; + optopt = 0; + + return('?'); + } + } // if (longopts) + + // Look at and handle the next short option-character */ + int c = nextchar.charAt(0); //**** Do we need to check for empty str? + if (nextchar.length() > 1) + nextchar = nextchar.substring(1); + else + nextchar = ""; + + String temp = null; + if (optstring.indexOf(c) != -1) + temp = optstring.substring(optstring.indexOf(c)); + + if (nextchar.equals("")) + ++optind; + + if ((temp == null) || (c == ':')) + { + if (opterr) + { + if (posixly_correct) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.illegal"), msgArgs)); + } + else + { + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.invalid"), msgArgs)); + } + } + + optopt = c; + + return('?'); + } + + // Convenience. Treat POSIX -W foo same as long option --foo + if ((temp.charAt(0) == 'W') && (temp.length() > 1) && (temp.charAt(1) == ';')) + { + if (!nextchar.equals("")) + { + optarg = nextchar; + } + // No further cars in this argv element and no more argv elements + else if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message. + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + else + { + // We already incremented `optind' once; + // increment it again when taking next ARGV-elt as argument. + nextchar = argv[optind]; + optarg = argv[optind]; + } + + c = checkLongOption(); + + if (longopt_handled) + return(c); + else + // Let the application handle it + { + nextchar = null; + ++optind; + return('W'); + } + } + + if ((temp.length() > 1) && (temp.charAt(1) == ':')) + { + if ((temp.length() > 2) && (temp.charAt(2) == ':')) + // This is an option that accepts and argument optionally + { + if (!nextchar.equals("")) + { + optarg = nextchar; + ++optind; + } + else + { + optarg = null; + } + + nextchar = null; + } + else + { + if (!nextchar.equals("")) + { + optarg = nextchar; + ++optind; + } + else if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + else + { + optarg = argv[optind]; + ++optind; + + // Ok, here's an obscure Posix case. If we have o:, and + // we get -o -- foo, then we're supposed to skip the --, + // end parsing of options, and make foo an operand to -o. + // Only do this in Posix mode. + if ((posixly_correct) && optarg.equals("--")) + { + // If end of argv, error out + if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + + // Set new optarg and set to end + // Don't permute as we do on -- up above since we + // know we aren't in permute mode because of Posix. + optarg = argv[optind]; + ++optind; + first_nonopt = optind; + last_nonopt = argv.length; + endparse = true; + } + } + + nextchar = null; + } + } + + return(c); +} + +} // Class Getopt + + diff --git a/lab2/gnu/getopt/GetoptDemo.class b/lab2/gnu/getopt/GetoptDemo.class new file mode 100755 index 0000000000000000000000000000000000000000..518218737ebab153a4d2c72c103e2e074bbef12d GIT binary patch literal 2868 zcmb_e+jA3T6#sp>?KTb2h88FV{R;GI)0B${DHJK?66^(OrG#>ElWdc1liir?w%`px zQ1FI2j!(`o;|mWy>1gWM5l0__i9X@DX3SJ#Gs8;8wwEv~VU7wz zRgiF5!WBxE!8>MH*_e7v6Nu}MtEQ1L2i3IEBOra)gC`mM3Ec`N?5*ICp(jQ&CWZZH z%mHg^O3f0jq?*bI&leeL49m<|W?Un^lvXZlX)Dc8UxrtV$RL|)&dg+u1Ve2g6pe*K z@lbN2PvE@d!^?QZhgWgchu3gT!gU{B#|?&!l^nEGT#(pu+%S2HxN^!zGju+unMppY zq%4)U`*0I)5RDb@ux_deHS5EhxF$m0^5M3Kb`x(g)U_AAm2ARFtGdZ4N8L)LsDwVe zjav+AnCDcLUokA6RAyD4RZT0ab4}+)mgvx?$rU}$&7?vLt{ZxwM2j$IxtdaK+&Lx3 zr>&gHrwog%ZOUd+U82pv+8J8Hd`36s2usU#^QdL=424t4KFs4Act_;(F0L{7%8NmziV*FRbtXkE#f{XmAH({x?GkBXv1uh^B`4xc8Cfn4p5dtz z>2$h>3peUT+ERF6qEtaqlbDgss)gJDY_5u;VNY@ zPL)|9w6>jVIjXEFs-?w6)7lN&(OEhT0u<+Y$A|ZYd(#LtMU_Jc(djZT&Be+nPzS7Z z%4l?&$WvLW3>`z`LZcDvsGQ|+g{nAeePJ=> zqg6braI3)Rt4dWM)=;~SW=u6JhPmUMP%6Q>e+luU-Ym?2Olp~?^gmObg@D4WJoO&hDZ5`CE}d`8SZb$iE=M}bKh zaT+Olt$Ha(ae$iOB+eVlgFCkpgkVB)1p_r3JAl_VqS z?wSYtoE9`bbobcGTKY8X!+u(mscR52B=Vo~d<)0O0-TX~xI(Uga{-Qs-|b{|$$5Cj z0xtVmay7Z?3|ry06|$ST#p42MB7Sd|zcw%rU&!6$cIL6B$(_gA$N|S)_OSUgBJmY* z@X{rI5xNA$Pv~;c^*vo7Qt2cQk-S54f@F+jl%$6wt=V>x@sdoEJS&2%8~y@y3#cdV ze*gMB8WzwPX>#SUVICXv*z{o@P5#ZK@BR@|_dU4%&GeARmOQrJD@>L-KSp{Rk);3e zGNZlAar~UT%3NB=Dj;^Z?aE`j@Y_MRYLOOyD|2flqh>*@L}T&i|Wua=tYO!iyxzv*6ZP>e?M!n0gquLg4l$9Y{oE} zF-A>%k+fe^li$ZS{EjyKiB7f^-Hap1+R)2-u#-jUpM;8i>?-!N>o~}6p`U$;!)zXd z>^mG~Ki~v=fRpSe46|P_%6`RZM?J1Xq&tEb!H5jXSM{1*G-XvLYWZhAt}@Fl)du%_W_+>sH#(U8Ik4JVP*@HXDj@Gg=h zn4T6o9Udst7ZJm;{X+aLe_Y;ZiA=vSPa}n9jmv?lRMmp0bJwCSyBzgEh@){YYJjwS z`utfk+z1d?k1G9)GaVHKM59cRv?sc_)7SOQyY(RoQQ62XRcErOj;fu{ygHwmG zdgtYGK&(4G0`-aCtM=fZnhf|hvr0^j(q#n1F@Z58>4G>$UI@p@AMf!e$e----$F!^ zPS}X#-CK!zZzc9=4M|r?`}gJi~=l z^ckiiuMk@czl5@u+ClsU2C7%0FQKmK&k;==c>!%Ax{JXb9Q{{6zl|Y1wT)qYY8xYZ zl7c1v^zxr0tJ9qcJfbS=7{+6&^?SO3f4~xcL=iusf}cswzu+!@MVgRfV6W*gsvx64 zX9~_U+I^p%2=$@TGlglgvX>LI%F`%SHS`C)FvyfKZ}SP+EIuH67&`p>A?R-e`jD#X ahmIVM`WJyd3XGaK9Q74JFH)uuK7Iq%AbJb{ literal 0 HcmV?d00001 diff --git a/lab2/gnu/getopt/LongOpt.java b/lab2/gnu/getopt/LongOpt.java new file mode 100755 index 0000000..6357085 --- /dev/null +++ b/lab2/gnu/getopt/LongOpt.java @@ -0,0 +1,195 @@ +/************************************************************************** +/* LongOpt.java -- Long option object for Getopt +/* +/* Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +package gnu.getopt; + +import java.util.Locale; +import java.util.ResourceBundle; +import java.text.MessageFormat; + +/**************************************************************************/ + +/** + * This object represents the definition of a long option in the Java port + * of GNU getopt. An array of LongOpt objects is passed to the Getopt + * object to define the list of valid long options for a given parsing + * session. Refer to the getopt documentation for details on the + * format of long options. + * + * @version 1.0.5 + * @author Aaron M. Renn (arenn@urbanophile.com) + * + * @see Getopt + */ +public class LongOpt extends Object +{ + +/**************************************************************************/ + +/* + * Class Variables + */ + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes no argument. + */ +public static final int NO_ARGUMENT = 0; + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes an argument that is required. + */ +public static final int REQUIRED_ARGUMENT = 1; + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes an argument that is optional. + */ +public static final int OPTIONAL_ARGUMENT = 2; + +/**************************************************************************/ + +/* + * Instance Variables + */ + +/** + * The name of the long option + */ +protected String name; + +/** + * Indicates whether the option has no argument, a required argument, or + * an optional argument. + */ +protected int has_arg; + +/** + * If this variable is not null, then the value stored in "val" is stored + * here when this long option is encountered. If this is null, the value + * stored in "val" is treated as the name of an equivalent short option. + */ +protected StringBuffer flag; + +/** + * The value to store in "flag" if flag is not null, otherwise the + * equivalent short option character for this long option. + */ +protected int val; + +/** + * Localized strings for error messages + */ +private ResourceBundle _messages = ResourceBundle.getBundle( + "gnu/getopt/MessagesBundle", Locale.getDefault()); + +/**************************************************************************/ + +/* + * Constructors + */ + +/** + * Create a new LongOpt object with the given parameter values. If the + * value passed as has_arg is not valid, then an exception is thrown. + * + * @param name The long option String. + * @param has_arg Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). + * @param flag If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. + * @param val The value to return for this long option, or the equivalent single letter option to emulate if flag is null. + * + * @exception IllegalArgumentException If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. + */ +public +LongOpt(String name, int has_arg, + StringBuffer flag, int val) throws IllegalArgumentException +{ + // Validate has_arg + if ((has_arg != NO_ARGUMENT) && (has_arg != REQUIRED_ARGUMENT) + && (has_arg != OPTIONAL_ARGUMENT)) + { + Object[] msgArgs = { new Integer(has_arg).toString() }; + throw new IllegalArgumentException(MessageFormat.format( + _messages.getString("getopt.invalidValue"), msgArgs)); + } + + // Store off values + this.name = name; + this.has_arg = has_arg; + this.flag = flag; + this.val = val; +} + +/**************************************************************************/ + +/** + * Returns the name of this LongOpt as a String + * + * @return Then name of the long option + */ +public String +getName() +{ + return(name); +} + +/**************************************************************************/ + +/** + * Returns the value set for the 'has_arg' field for this long option + * + * @return The value of 'has_arg' + */ +public int +getHasArg() +{ + return(has_arg); +} + +/**************************************************************************/ + +/** + * Returns the value of the 'flag' field for this long option + * + * @return The value of 'flag' + */ +public StringBuffer +getFlag() +{ + return(flag); +} + +/** + * Returns the value of the 'val' field for this long option + * + * @return The value of 'val' + */ +public int +getVal() +{ + return(val); +} + +/**************************************************************************/ + +} // Class LongOpt + diff --git a/lab2/gnu/getopt/Makefile b/lab2/gnu/getopt/Makefile new file mode 100755 index 0000000..6ff789c --- /dev/null +++ b/lab2/gnu/getopt/Makefile @@ -0,0 +1,7 @@ +# Makefile for Java port of GNU getopt + +all: + javac LongOpt.java Getopt.java GetoptDemo.java + +docs: + javadoc -author -version -public Getopt.java LongOpt.java diff --git a/lab2/gnu/getopt/MessagesBundle.properties b/lab2/gnu/getopt/MessagesBundle.properties new file mode 100755 index 0000000..9356ee1 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties -- English language error messages +/* +/* Copyright (c) 1998 by William King (wrking@eng.sun.com) and +/* Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: option ''{1}'' is ambiguous +getopt.arguments1={0}: option ''--{1}'' doesn't allow an argument +getopt.arguments2={0}: option ''{1}{2}'' doesn't allow an argument +getopt.requires={0}: option ''{1}'' requires an argument +getopt.unrecognized={0}: unrecognized option ''--{1}'' +getopt.unrecognized2={0}: unrecognized option ''{1}{2}'' +getopt.illegal={0}: illegal option -- {1} +getopt.invalid={0}: invalid option -- {1} +getopt.requires2={0}: option requires an argument -- {1} +getopt.invalidValue=Invalid value {0} for parameter 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_chs.properties b/lab2/gnu/getopt/MessagesBundle_chs.properties new file mode 100755 index 0000000..1090dc6 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_chs.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties šCSimple Chinese language error messages +/* +/* Copyright (c) 2012 by David Zhang (david290@qq.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: Ñ¡Ïî ''{1}'' ÓÐÆçÒå +getopt.arguments1={0}:Ñ¡Ïî''--{1}'' ²»ÄÜŽø²ÎÊý +getopt.arguments2={0}:Ñ¡Ïî''{1}{2}''²»ÄÜŽø²ÎÊý +getopt.requires={0}: Ñ¡Ïî ''{1}'' ÒªÇóŽøÓвÎÊý +getopt.unrecognized={0}: ÎÞ·šÊ¶±ðµÄÑ¡Ïî ''--{1}'' +getopt.unrecognized2={0}:ÎÞ·šÊ¶±ðµÄÑ¡Ïî''{1}{2}'' +getopt.illegal={0}: ·Ç·šÑ¡Ïî -- {1} +getopt.invalid={0}: ÎÞЧѡÏî -- {1} +getopt.requires2={0}:Ñ¡ÏîÐèÒªÓвÎÊý -- {1} +getopt.invalidValue=Ñ¡Ïî 'has_arg'µÄÖµ {0} ·Ç·š + + diff --git a/lab2/gnu/getopt/MessagesBundle_cht.properties b/lab2/gnu/getopt/MessagesBundle_cht.properties new file mode 100755 index 0000000..270e4f1 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_cht.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties - Triditional Chinese language error messages +/* +/* Copyright (c) 2012 by David Zhang (david290@qq.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: 遾項 ''{1}'' 有歧矩 +getopt.arguments1={0}:遾項''--{1}'' 䞍胜垶參敞 +getopt.arguments2={0}:遾項''{1}{2}''䞍胜垶參敞 +getopt.requires={0}: 遾項 ''{1}'' 芁求垶有參敞 +getopt.unrecognized={0}: 無法識別的遞項 ''--{1}'' +getopt.unrecognized2={0}:無法識別的遞項''{1}{2}'' +getopt.illegal={0}: 非法遞項 -- {1} +getopt.invalid={0}: 無效遞項 -- {1} +getopt.requires2={0}:遞項需芁有參敞 -- {1} +getopt.invalidValue=遾項 'has_arg'的倌 {0} 非法 + + diff --git a/lab2/gnu/getopt/MessagesBundle_cs.properties b/lab2/gnu/getopt/MessagesBundle_cs.properties new file mode 100755 index 0000000..3c14a03 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_cs.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle_cs.properties -- Czech language error messages +/* +/* Czech Messages Copyright (c) 1998 by Roman Szturc (Roman.Szturc@vsb.cz) +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: volba ''{1}'' je nejednoznaèná +getopt.arguments1={0}: volba ''--{1}'' nepøipou¹tí argument +getopt.arguments2={0}: volba ''{1}{2}'' nepøipou¹tí argument +getopt.requires={0}: volba ''{1}'' vyŸaduje argument +getopt.unrecognized={0}: nepøípustná volba ''--{1}'' +getopt.unrecognized2={0}: nepøípustná volba ''{1}{2}'' +getopt.illegal={0}: nepøípustná volba -- {1} +getopt.invalid={0}: neplatná volba -- {1} +getopt.requires2={0}: volba vyŸaduje argument -- {1} +getopt.invalidValue=Neplatná hodnota {0} parameteru 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_de.properties b/lab2/gnu/getopt/MessagesBundle_de.properties new file mode 100755 index 0000000..f741386 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_de.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties -- German language error messages +/* +/* German Messages Copyright (c) 1999 by Bernhard Bablok (bablokb@gmx.net) +/* These messages are encoded in ISO-8859-1 +//* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: Option ''{1}'' ist zweideutig +getopt.arguments1={0}: Option ''--{1}'' erlaubt kein Argument +getopt.arguments2={0}: Option ''{1}{2}'' erlaubt kein Argument +getopt.requires={0}: Option ''{1}'' benötigt ein Argument +getopt.unrecognized={0}: Unbekannte Option ''--{1}'' +getopt.unrecognized2={0}: Unbekannte Option ''{1}{2}'' +getopt.illegal={0}: Verbotene Option -- {1} +getopt.invalid={0}: Ungültige Option -- {1} +getopt.requires2={0}: Option benötigt ein Argument -- {1} +getopt.invalidValue=Ungültiger Wert {0} für Parameter 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_es.properties b/lab2/gnu/getopt/MessagesBundle_es.properties new file mode 100755 index 0000000..ef358f4 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_es.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle_es.properties -- Spanish language error messages +/* +/* Spanish Messages Copyright (c) 2004 by Daniel Pérez (dondani@gmail.com) +/* These messages are encoded in ISO-8859-1 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: la opción ''{1}'' es ambigua +getopt.arguments1={0}: la opción ''--{1}'' no permite un argumento +getopt.arguments2={0}: la opción ''{1}{2}'' no permite un argumento +getopt.requires={0}: la opción ''{1}'' requiere un argumento +getopt.unrecognized={0}: opción no reconocida ''--{1}'' +getopt.unrecognized2={0}: opción no reconocida ''{1}{2}'' +getopt.illegal={0}: opción ilegal -- {1} +getopt.invalid={0}: opción no válida -- {1} +getopt.requires2={0}: la opción requiere un argumento -- {1} +getopt.invalidValue=Valor no válido {0} para el parámetro 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_fr.properties b/lab2/gnu/getopt/MessagesBundle_fr.properties new file mode 100755 index 0000000..400447c --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_fr.properties @@ -0,0 +1,35 @@ +/************************************************************************** +/* MessagesBundle_fr.properties -- French language error messages +/* +/* Copyright (c) 1999 Free Software Foundation, Inc. +/* Michel Robitaille , 1996, +/* Edouard G. Parmelan , 1999. +/* These messages are encoded in ISO-8859-1 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: l'option ''{1}'' est ambiguë +getopt.arguments1={0}: l'option ''--{1}'' ne permet pas de paramètre +getopt.arguments2={0}: l'option ''{1}{2}'' ne permet pas de paramètre +getopt.requires={0}: l'option ''{1}'' requiert un paramètre +getopt.unrecognized={0}: option non reconnue ''--{1}'' +getopt.unrecognized2={0}: option non reconnue ''{1}{2}'' +getopt.illegal={0}: option illégale -- {1} +getopt.invalid={0}: option invalide -- {1} +getopt.requires2={0}: cette option requiert un paramètre -- {1} +getopt.invalidValue=Valeur invalide {0} pour le paramètre 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_hu.properties b/lab2/gnu/getopt/MessagesBundle_hu.properties new file mode 100755 index 0000000..f7af03b --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_hu.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Hungarian language error messages +/* +/* Copyright (c) 2001 by Gyula Csom (csom@informix.hu) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: opció ''{1}'' félreérthetõ +getopt.arguments1={0}: opció ''--{1}'' nem enged meg argumentumot +getopt.arguments2={0}: opció ''{1}{2}'' nem enged meg argumentumot +getopt.requires={0}: opció ''{1}'' argumentumot igényel +getopt.unrecognized={0}: ismeretlen opció ''--{1}'' +getopt.unrecognized2={0}: ismeretlen opció ''{1}{2}'' +getopt.illegal={0}: illegális opció -- {1} +getopt.invalid={0}: érvénytelen opció -- {1} +getopt.requires2={0}: az opció argumentumot igényel -- {1} +getopt.invalidValue=Érvénytelen érték {0} a következõ paraméterhez 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_it.properties b/lab2/gnu/getopt/MessagesBundle_it.properties new file mode 100755 index 0000000..c596c26 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_it.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Italian language error messages +/* +/* Copyright (c) 2005 by Sandro Tosi (matrixhasu@gmail.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: l'opzione ''{1}'' è ambigua +getopt.arguments1={0}: l'opzione ''--{1}'' non ammette un argomento +getopt.arguments2={0}: l'opzione ''{1}{2}'' non ammette un argomento +getopt.requires={0}: l'opzione ''{1}'' richiede un argomento +getopt.unrecognized={0}: opzione non riconosciuta ''--{1}'' +getopt.unrecognized2={0}: opzione non riconosciuta ''{1}{2}'' +getopt.illegal={0}: opzione illegale -- {1} +getopt.invalid={0}: opzione invalida -- {1} +getopt.requires2={0}: l'opzione richiede un argomento -- {1} +getopt.invalidValue=Valore non valido {0} per il parametro 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_ja.properties b/lab2/gnu/getopt/MessagesBundle_ja.properties new file mode 100755 index 0000000..5578972 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_ja.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Japanese language error messages +/* +/* Copyright (c) 2001 by Yasuoka Masahiko (yasuoka@yasuoka.net) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u66d6\u6627\u3067\u3059\u3002 +getopt.arguments1={0}: ''--{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 +getopt.arguments2={0}: ''{1}{2}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 +getopt.requires={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 +getopt.unrecognized={0}: ''--{1}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.unrecognized2={0}: ''{1}{2}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.illegal={0}: -- {1} \u306f\u4e0d\u6b63\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.invalid={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002 +getopt.requires2={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 +getopt.invalidValue={0} \u306f\u3001'has_arg' \u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u4e0d\u6b63\u306a\u5024\u3067\u3059\u3002 + diff --git a/lab2/gnu/getopt/MessagesBundle_nl.properties b/lab2/gnu/getopt/MessagesBundle_nl.properties new file mode 100755 index 0000000..c614922 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_nl.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle_nl.properties -- Dutch language error messages +/* +/* Copyright (c) 1999 by Ernst de Haan (ernst@jollem.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: optie ''{1}'' is ambigue +getopt.arguments1={0}: optie ''--{1}'' staat geen argumenten toe +getopt.arguments2={0}: optie ''{1}{2}'' staat geen argumenten toe +getopt.requires={0}: optie ''{1}'' heeft een argument nodig +getopt.unrecognized={0}: onbekende optie ''--{1}'' +getopt.unrecognized2={0}: onbekende optie ''{1}{2}'' +getopt.illegal={0}: niet-toegestane optie -- {1} +getopt.invalid={0}: onjuiste optie -- {1} +getopt.requires2={0}: optie heeft een argument nodig -- {1} +getopt.invalidValue=Ongeldige waarde {0} voor parameter 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_no.properties b/lab2/gnu/getopt/MessagesBundle_no.properties new file mode 100755 index 0000000..bcb8c50 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_no.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Norwegian language error messages +/* +/* Copyright (c) 1999 by Bjørn-Ove Heimsund (s811@ii.uib.no) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: flagget ''{1}'' er flertydig +getopt.arguments1={0}: flagget ''--{1}'' tillater ikke et argument +getopt.arguments2={0}: flagget ''{1}{2}'' tillater ikke et argument +getopt.requires={0}: flagget ''{1}'' krever et argument +getopt.unrecognized={0}: ukjent flagg ''--{1}'' +getopt.unrecognized2={0}: ukjent flagg ''{1}{2}'' +getopt.illegal={0}: ugyldig flagg -- {1} +getopt.invalid={0}: ugyldig flagg -- {1} +getopt.requires2={0}: flagget krever et argument -- {1} +getopt.invalidValue=Ugyldig verdi {0} for parameter 'has_arg' + diff --git a/lab2/gnu/getopt/MessagesBundle_pl.properties b/lab2/gnu/getopt/MessagesBundle_pl.properties new file mode 100755 index 0000000..9580853 --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_pl.properties @@ -0,0 +1,36 @@ +/************************************************************************** +/* MessagesBundle_pl.properties -- Polish language error messages +/* +/* Polish Messages Copyright (c) 2006 by Krzysztof Szyma?ski (sirch.s@gmail.com) +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + + +getopt.ambigious={0}: opcja ''{1}''jest wieloznaczna +getopt.arguments1={0}: opcja ''--{1}'' nie akceptuje argumentu +getopt.arguments2={0}: opcja ''{1}{2}'' nie akceptuje argumentu +getopt.requires={0}: opcja ''{1}'' wymaga argumentu +getopt.unrecognized={0}: nierozpoznana opcja ''--{1}'' +getopt.unrecognized2={0}: nierozpoznana opcja ''{1}{2}'' +getopt.illegal={0}: nie dopuszczalna opcja --{1} +getopt.invalid={0}: b??dna opcja --{1} +getopt.requires2={0}: opcja --{1} oczekuje argumentu +getopt.invalidValue=Nie poprawna warto?? {0} argument 'has_arg' + + + diff --git a/lab2/gnu/getopt/MessagesBundle_ro.properties b/lab2/gnu/getopt/MessagesBundle_ro.properties new file mode 100755 index 0000000..3c0b08b --- /dev/null +++ b/lab2/gnu/getopt/MessagesBundle_ro.properties @@ -0,0 +1,34 @@ +/************************************************************************** +/* MessagesBundle_fr.properties -- Romanian language error messages +/* +/* Copyright (c) 1999 Free Software Foundation, Inc. +/* Marian-Nicolae Ion , 2004, +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your optiunea) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: opÅ£iunea ''{1}'' este ambiguă +getopt.arguments1={0}: opÅ£iunea ''--{1}'' nu acceptă parametru +getopt.arguments2={0}: opÅ£iunea ''{1}{2}'' nu acceptă parametru +getopt.requires={0}: opÅ£iunea ''{1}'' cere un parametru +getopt.unrecognized={0}: opÅ£iune necunoscută ''--{1}'' +getopt.unrecognized2={0}: opÅ£iune necunoscută ''{1}{2}'' +getopt.illegal={0}: opÅ£iune ilegală -- {1} +getopt.invalid={0}: opÅ£iune invalidă -- {1} +getopt.requires2={0}: această opÅ£iune cere un parametru -- {1} +getopt.invalidValue=Valoare invalidă {0} pentru parametrul 'has_arg' + diff --git a/lab2/gnu/getopt/README b/lab2/gnu/getopt/README new file mode 100755 index 0000000..48451f7 --- /dev/null +++ b/lab2/gnu/getopt/README @@ -0,0 +1,57 @@ +This is a Java port of the GNU getopt functions based on the versions +contained in glibc 2.0.6. I have attempted to keep the functionality +and programmer's interface as faithful to the original as possible. +However, due to differences between Java and C, some minor changes +has to me made. (Given the obtuse interface in the clib version, +perhaps some major changes should have been made). This should not +affect the way options appear to be parsed to the end user of program +that uses this Java getopt. The use of these classes are completely +documented in the javadoc comments, so I will not repeat that info here. + +Note that since these objects are part of a package called "gnu.getopt", +they need to be in a subdirectory called gnu/getopt somewhere in your +CLASSPATH. This includes the "MessagesBundle" files. + +I am not aware of any bugs. If you find one though, please send email +to me at arenn@urbanophile.com. The more detailed a bug report the better. +Bug fixes are also welcome at the same address. Please reference +release number "1.0.13". If you use this code, it would be helpful +if you let me know so that I can let you know if anything changes or +if any major bugs have been found/fixed. + +I have included a Makefile for compiling the code. If you do not have +access to make, then you can simply do a "javac *.java" at the OS +command line (or follow your vendor's instructions for compiling a +Java class). To build the documentation, do a "make docs" +or "javadoc -public *.java". Note that the images needed by the html +generated by javadoc are not included. You will need to get those +from some other Java documentation package. + +Note that the Makefile is not compliant with the GNU makefile +standards as I anticipate that at some point a master makefile will +be created for various GNU Java packages. And it is serious overkill +to create a megabloat makefile (kinda like this megabloat README) for +such a simple package. + +There is sample code showing how to use getopt available in the +GetoptDemo.java file. + +NEW: A support file for the "ant" build process was contributed. Here are +some brief things you can do with it. Note that I have not ever used this +so it is doubly AS IS. + +Get ant from jakarta project (see jakarta.apache.org/ant), and run it with +one of these target (all is default target): +ant prepare: create the needed directories +ant classes: compile the java classes +ant jar: create the jar archive +ant javadoc: create the javadoc +ant all: create jar and javadoc +ant clean: clean everything + +Happy hacking, + +Aaron. +arenn@urbanophile.com +http://www.urbanophile.com/arenn/ + diff --git a/lab2/gnu/getopt/buildx.xml b/lab2/gnu/getopt/buildx.xml new file mode 100755 index 0000000..ad51e8f --- /dev/null +++ b/lab2/gnu/getopt/buildx.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lab2/gnu/getopt/gnu.getopt.Getopt.html b/lab2/gnu/getopt/gnu.getopt.Getopt.html new file mode 100755 index 0000000..425de42 --- /dev/null +++ b/lab2/gnu/getopt/gnu.getopt.Getopt.html @@ -0,0 +1,639 @@ + + + + + + + Class gnu.getopt.Getopt + + + + +

+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+
+

+ Class gnu.getopt.Getopt +

+
+java.lang.Object
+   |
+   +----gnu.getopt.Getopt
+
+
+
+
public class Getopt +
extends Object +
+This is a Java port of GNU getopt, a class for parsing command line + arguments passed to programs. It it based on the C getopt() functions + in glibc 2.0.6 and should parse options in a 100% compatible manner. + If it does not, that is a bug. The programmer's interface is also + very compatible. +

+ To use Getopt, create a Getopt object with a argv array passed to the + main method, then call the getopt() method in a loop. It will return an + int that contains the value of the option character parsed from the + command line. When there are no more options to be parsed, it + returns -1. +

+ A command line option can be defined to take an argument. If an + option has an argument, the value of that argument is stored in an + instance variable called optarg, which can be accessed using the + getOptarg() method. If an option that requires an argument is + found, but there is no argument present, then an error message is + printed. Normally getopt() returns a '?' in this situation, but + that can be changed as described below. +

+ If an invalid option is encountered, an error message is printed + to the standard error and getopt() returns a '?'. The value of the + invalid option encountered is stored in the instance variable optopt + which can be retrieved using the getOptopt() method. To suppress + the printing of error messages for this or any other error, set + the value of the opterr instance variable to false using the + setOpterr() method. +

+ Between calls to getopt(), the instance variable optind is used to + keep track of where the object is in the parsing process. After all + options have been returned, optind is the index in argv of the first + non-option argument. This variable can be accessed with the getOptind() + method. +

+ Note that this object expects command line options to be passed in the + traditional Unix manner. That is, proceeded by a '-' character. + Multiple options can follow the '-'. For example "-abc" is equivalent + to "-a -b -c". If an option takes a required argument, the value + of the argument can immediately follow the option character or be + present in the next argv element. For example, "-cfoo" and "-c foo" + both represent an option character of 'c' with an argument of "foo" + assuming c takes a required argument. If an option takes an argument + that is not required, then any argument must immediately follow the + option character in the same argv element. For example, if c takes + a non-required argument, then "-cfoo" represents option character 'c' + with an argument of "foo" while "-c foo" represents the option + character 'c' with no argument, and a first non-option argv element + of "foo". +

+ The user can stop getopt() from scanning any further into a command line + by using the special argument "--" by itself. For example: + "-a -- -d" would return an option character of 'a', then return -1 + The "--" is discarded and "-d" is pointed to by optind as the first + non-option argv element. +

+ Here is a basic example of using Getopt: +

+

+ Getopt g = new Getopt("testprog", argv, "ab:c::d");
+ //
+ int c;
+ String arg;
+ while ((c = g.getopt()) != -1)
+   {
+     switch(c)
+       {
+          case 'a':
+          case 'd':
+            System.out.print("You picked " + (char)c + "\n");
+            break;
+            //
+          case 'b':
+          case 'c':
+            arg = g.getOptarg();
+            System.out.print("You picked " + (char)c + 
+                             " with an argument of " +
+                             ((arg != null) ? arg : "null") + "\n");
+            break;
+            //
+          case '?':
+            break; // getopt() already printed an error
+            //
+          default:
+            System.out.print("getopt() returned " + c + "\n");
+       }
+   }
+ 
+

+ In this example, a new Getopt object is created with three params. + The first param is the program name. This is for printing error + messages in the form "program: error message". In the C version, this + value is taken from argv[0], but in Java the program name is not passed + in that element, thus the need for this parameter. The second param is + the argument list that was passed to the main() method. The third + param is the list of valid options. Each character represents a valid + option. If the character is followed by a single colon, then that + option has a required argument. If the character is followed by two + colons, then that option has an argument that is not required. +

+ Note in this example that the value returned from getopt() is cast to + a char prior to printing. This is required in order to make the value + display correctly as a character instead of an integer. +

+ If the first character in the option string is a colon, for example + ":abc::d", then getopt() will return a ':' instead of a '?' when it + encounters an option with a missing required argument. This allows the + caller to distinguish between invalid options and valid options that + are simply incomplete. +

+ In the traditional Unix getopt(), -1 is returned when the first non-option + charcter is encountered. In GNU getopt(), the default behavior is to + allow options to appear anywhere on the command line. The getopt() + method permutes the argument to make it appear to the caller that all + options were at the beginning of the command line, and all non-options + were at the end. For example, calling getopt() with command line args + of "-a foo bar -d" returns options 'a' and 'd', then sets optind to + point to "foo". The program would read the last two argv elements as + "foo" and "bar", just as if the user had typed "-a -d foo bar". +

+ The user can force getopt() to stop scanning the command line with + the special argument "--" by itself. Any elements occuring before the + "--" are scanned and permuted as normal. Any elements after the "--" + are returned as is as non-option argv elements. For example, + "foo -a -- bar -d" would return option 'a' then -1. optind would point + to "foo", "bar" and "-d" as the non-option argv elements. The "--" + is discarded by getopt(). +

+ There are two ways this default behavior can be modified. The first is + to specify traditional Unix getopt() behavior (which is also POSIX + behavior) in which scanning stops when the first non-option argument + encountered. (Thus "-a foo bar -d" would return 'a' as an option and + have "foo", "bar", and "-d" as non-option elements). The second is to + allow options anywhere, but to return all elements in the order they + occur on the command line. When a non-option element is ecountered, + an integer 1 is returned and the value of the non-option element is + stored in optarg is if it were the argument to that option. For + example, "-a foo -d", returns first 'a', then 1 (with optarg set to + "foo") then 'd' then -1. When this "return in order" functionality + is enabled, the only way to stop getopt() from scanning all command + line elements is to use the special "--" string by itself as described + above. An example is "-a foo -b -- bar", which would return 'a', then + integer 1 with optarg set to "foo", then 'b', then -1. optind would + then point to "bar" as the first non-option argv element. The "--" + is discarded. +

+ The POSIX/traditional behavior is enabled by either setting the + property "gnu.posixly_correct" or by putting a '+' sign as the first + character of the option string. The difference between the two + methods is that setting the gnu.posixly_correct property also forces + certain error messages to be displayed in POSIX format. To enable + the "return in order" functionality, put a '-' as the first character + of the option string. Note that after determining the proper + behavior, Getopt strips this leading '+' or '-', meaning that a ':' + placed as the second character after one of those two will still cause + getopt() to return a ':' instead of a '?' if a required option + argument is missing. +

+ In addition to traditional single character options, GNU Getopt also + supports long options. These are preceeded by a "--" sequence and + can be as long as desired. Long options provide a more user-friendly + way of entering command line options. For example, in addition to a + "-h" for help, a program could support also "--help". +

+ Like short options, long options can also take a required or non-required + argument. Required arguments can either be specified by placing an + equals sign after the option name, then the argument, or by putting the + argument in the next argv element. For example: "--outputdir=foo" and + "--outputdir foo" both represent an option of "outputdir" with an + argument of "foo", assuming that outputdir takes a required argument. + If a long option takes a non-required argument, then the equals sign + form must be used to specify the argument. In this case, + "--outputdir=foo" would represent option outputdir with an argument of + "foo" while "--outputdir foo" would represent the option outputdir + with no argument and a first non-option argv element of "foo". +

+ Long options can also be specified using a special POSIX argument + format (one that I highly discourage). This form of entry is + enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid + option string. This causes getopt to treat the name following the + "-W" as the name of the long option. For example, "-W outputdir=foo" + would be equivalent to "--outputdir=foo". The name can immediately + follow the "-W" like so: "-Woutputdir=foo". Option arguments are + handled identically to normal long options. If a string follows the + "-W" that does not represent a valid long option, then getopt() returns + 'W' and the caller must decide what to do. Otherwise getopt() returns + a long option value as described below. +

+ While long options offer convenience, they can also be tedious to type + in full. So it is permissible to abbreviate the option name to as + few characters as required to uniquely identify it. If the name can + represent multiple long options, then an error message is printed and + getopt() returns a '?'. +

+ If an invalid option is specified or a required option argument is + missing, getopt() prints an error and returns a '?' or ':' exactly + as for short options. Note that when an invalid long option is + encountered, the optopt variable is set to integer 0 and so cannot + be used to identify the incorrect option the user entered. +

+ Long options are defined by LongOpt objects. These objects are created + with a contructor that takes four params: a String representing the + object name, a integer specifying what arguments the option takes + (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, + or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described + below), and an integer value (described below). +

+ To enable long option parsing, create an array of LongOpt's representing + the legal options and pass it to the Getopt() constructor. WARNING: If + all elements of the array are not populated with LongOpt objects, the + getopt() method will throw a NullPointerException. +

+ When getopt() is called and a long option is encountered, one of two + things can be returned. If the flag field in the LongOpt object + representing the long option is non-null, then the integer value field + is stored there and an integer 0 is returned to the caller. The val + field can then be retrieved from the flag field. Note that since the + flag field is a StringBuffer, the appropriate String to integer converions + must be performed in order to get the actual int value stored there. + If the flag field in the LongOpt object is null, then the value field + of the LongOpt is returned. This can be the character of a short option. + This allows an app to have both a long and short option sequence + (say, "-h" and "--help") that do the exact same thing. +

+ With long options, there is an alternative method of determining + which option was selected. The method getLongind() will return the + the index in the long option array (NOT argv) of the long option found. + So if multiple long options are configured to return the same value, + the application can use getLongind() to distinguish between them. +

+ Here is an expanded Getopt example using long options and various + techniques described above: +

+

+ int c;
+ String arg;
+ LongOpt[] longopts = new LongOpt[3];
+ // 
+ StringBuffer sb = new StringBuffer();
+ longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
+ longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
+ longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
+ // 
+ Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
+ g.setOpterr(false); // We'll do our own error handling
+ //
+ while ((c = g.getopt()) != -1)
+   switch (c)
+     {
+        case 0:
+          arg = g.getOptarg();
+          System.out.println("Got long option with value '" +
+                             (char)(new Integer(sb.toString())).intValue()
+                             + "' with argument " +
+                             ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 1:
+          System.out.println("I see you have return in order set and that " +
+                             "a non-option argv element was just found " +
+                             "with the value '" + g.getOptarg() + "'");
+          break;
+          //
+        case 2:
+          arg = g.getOptarg();
+          System.out.println("I know this, but pretend I didn't");
+          System.out.println("We picked option " +
+                             longopts[g.getLongind()].getName() +
+                           " with value " + 
+                           ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 'b':
+          System.out.println("You picked plain old option " + (char)c);
+          break;
+          //
+        case 'c':
+        case 'd':
+          arg = g.getOptarg();
+          System.out.println("You picked option '" + (char)c + 
+                             "' with argument " +
+                             ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 'h':
+          System.out.println("I see you asked for help");
+          break;
+          //
+        case 'W':
+          System.out.println("Hmmm. You tried a -W with an incorrect long " +
+                             "option name");
+          break;
+          //
+        case ':':
+          System.out.println("Doh! You need an argument for option " +
+                             (char)g.getOptopt());
+          break;
+          //
+        case '?':
+          System.out.println("The option '" + (char)g.getOptopt() + 
+                           "' is not valid");
+          break;
+          //
+        default:
+          System.out.println("getopt() returned " + c);
+          break;
+     }
+ //
+ for (int i = g.getOptind(); i < argv.length ; i++)
+   System.out.println("Non option argv element: " + argv[i] + "\n");
+ 
+

+ There is an alternative form of the constructor used for long options + above. This takes a trailing boolean flag. If set to false, Getopt + performs identically to the example, but if the boolean flag is true + then long options are allowed to start with a single '-' instead of + "--". If the first character of the option is a valid short option + character, then the option is treated as if it were the short option. + Otherwise it behaves as if the option is a long option. Note that + the name given to this option - long_only - is very counter-intuitive. + It does not cause only long options to be parsed but instead enables + the behavior described above. +

+ Note that the functionality and variable names used are driven from + the C lib version as this object is a port of the C code, not a + new implementation. This should aid in porting existing C/C++ code, + as well as helping programmers familiar with the glibc version to + adapt to the Java version even if it seems very non-Java at times. +

+ In this release I made all instance variables protected due to + overwhelming public demand. Any code which relied on optarg, + opterr, optind, or optopt being public will need to be modified to + use the appropriate access methods. +

+ Please send all bug reports, requests, and comments to + arenn@urbanophile.com. +

+

+
Version: +
1.0.3 +
Author: +
Roland McGrath (roland@gnu.ai.mit.edu), Ulrich Drepper (drepper@cygnus.com), Aaron M. Renn (arenn@urbanophile.com) +
See Also: +
LongOpt +
+
+ +

+ Constructor Index +

+
+
 o + Getopt(String, String[], String) +
Construct a basic Getopt instance with the given input data. +
 o + Getopt(String, String[], String, LongOpt[]) +
Construct a Getopt instance with given input data that is capable of + parsing long options as well as short. +
 o + Getopt(String, String[], String, LongOpt[], boolean) +
Construct a Getopt instance with given input data that is capable of + parsing long options and short options. +
+

+ Method Index +

+
+
 o + getLongind() +
Returns the index into the array of long options (NOT argv) representing + the long option that was found. +
 o + getopt() +
This method returns a char that is the current option that has been + parsed from the command line. +
 o + getOptarg() +
+ For communication from `getopt' to the caller. +
 o + getOptind() +
optind it the index in ARGV of the next element to be scanned. +
 o + getOptopt() +
When getopt() encounters an invalid option, it stores the value of that + option in optopt which can be retrieved with this method. +
 o + setArgv(String[]) +
Since in GNU getopt() the argument vector is passed back in to the + function every time, the caller can swap out argv on the fly. +
 o + setOpterr(boolean) +
Normally Getopt will print a message to the standard error when an + invalid option is encountered. +
 o + setOptind(int) +
This method allows the optind index to be set manually. +
 o + setOptstring(String) +
In GNU getopt, it is possible to change the string containg valid options + on the fly because it is passed as an argument to getopt() each time. +
+ +

+ Constructors +

+ + o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring)
+
+
+
Construct a basic Getopt instance with the given input data. Note that + this handles "short" options only. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command line to the program. +
optstring - A String containing a description of the valid args for this program +
+
+ o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring,
+               LongOpt long_options[])
+
+
+
Construct a Getopt instance with given input data that is capable of + parsing long options as well as short. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command ilne to the program +
optstring - A String containing a description of the valid short args for this program +
long_options - An array of LongOpt objects that describes the valid long args for this program +
+
+ o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring,
+               LongOpt long_options[],
+               boolean long_only)
+
+
+
Construct a Getopt instance with given input data that is capable of + parsing long options and short options. Contrary to what you might + think, the flag 'long_only' does not determine whether or not we + scan for only long arguments. Instead, a value of true here allows + long arguments to start with a '-' instead of '--' unless there is a + conflict with a short option name. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command ilne to the program +
optstring - A String containing a description of the valid short args for this program +
long_options - An array of LongOpt objects that describes the valid long args for this program +
long_only - true if long options that do not conflict with short options can start with a '-' as well as '--' +
+
+ +

+ Methods +

+ o +setOptstring +
+ public void setOptstring(String optstring)
+
+
+
In GNU getopt, it is possible to change the string containg valid options + on the fly because it is passed as an argument to getopt() each time. In + this version we do not pass the string on every call. In order to allow + dynamic option string changing, this method is provided. +

+

+
Parameters: +
optstring - The new option string to use +
+
+ o +getOptind +
+ public int getOptind()
+
+
+
optind it the index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + When `getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. +

+

+ o +setOptind +
+ public void setOptind(int optind)
+
+
+
This method allows the optind index to be set manually. Normally this + is not necessary (and incorrect usage of this method can lead to serious + lossage), but optind is a public symbol in GNU getopt, so this method + was added to allow it to be modified by the caller if desired. +

+

+
Parameters: +
optind - The new value of optind +
+
+ o +setArgv +
+ public void setArgv(String argv[])
+
+
+
Since in GNU getopt() the argument vector is passed back in to the + function every time, the caller can swap out argv on the fly. Since + passing argv is not required in the Java version, this method allows + the user to override argv. Note that incorrect use of this method can + lead to serious lossage. +

+

+
Parameters: +
argv - New argument list +
+
+ o +getOptarg +
+ public String getOptarg()
+
+
+
For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. + No set method is provided because setting this variable has no effect. +

+

+ o +setOpterr +
+ public void setOpterr(boolean opterr)
+
+
+
Normally Getopt will print a message to the standard error when an + invalid option is encountered. This can be suppressed (or re-enabled) + by calling this method. There is no get method for this variable + because if you can't remember the state you set this to, why should I? +

+

+ o +getOptopt +
+ public int getOptopt()
+
+
+
When getopt() encounters an invalid option, it stores the value of that + option in optopt which can be retrieved with this method. There is + no corresponding set method because setting this variable has no effect. +

+

+ o +getLongind +
+ public int getLongind()
+
+
+
Returns the index into the array of long options (NOT argv) representing + the long option that was found. +

+

+ o +getopt +
+ public int getopt()
+
+
+
This method returns a char that is the current option that has been + parsed from the command line. If the option takes an argument, then + the internal variable 'optarg' is set which is a String representing + the the value of the argument. This value can be retrieved by the + caller using the getOptarg() method. If an invalid option is found, + an error message is printed and a '?' is returned. The name of the + invalid option character can be retrieved by calling the getOptopt() + method. When there are no more options to be scanned, this method + returns -1. The index of first non-option element in argv can be + retrieved with the getOptind() method. +

+

+
Returns: +
Various things as described above +
+
+
+
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+ + diff --git a/lab2/gnu/getopt/gnu.getopt.LongOpt.html b/lab2/gnu/getopt/gnu.getopt.LongOpt.html new file mode 100755 index 0000000..ddc1186 --- /dev/null +++ b/lab2/gnu/getopt/gnu.getopt.LongOpt.html @@ -0,0 +1,210 @@ + + + + + + + Class gnu.getopt.LongOpt + + + + +
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+
+

+ Class gnu.getopt.LongOpt +

+
+java.lang.Object
+   |
+   +----gnu.getopt.LongOpt
+
+
+
+
public class LongOpt +
extends Object +
+This object represents the definition of a long option in the Java port + of GNU getopt. An array of LongOpt objects is passed to the Getopt + object to define the list of valid long options for a given parsing + session. Refer to the getopt documentation for details on the + format of long options. +

+

+
Version: +
1.0.3 +
Author: +
Aaron M. Renn (arenn@urbanophile.com) +
See Also: +
Getopt +
+
+ +

+ Variable Index +

+
+
 o + NO_ARGUMENT +
Constant value used for the "has_arg" constructor argument. +
 o + OPTIONAL_ARGUMENT +
Constant value used for the "has_arg" constructor argument. +
 o + REQUIRED_ARGUMENT +
+ Constant value used for the "has_arg" constructor argument. +
+

+ Constructor Index +

+
+
 o + LongOpt(String, int, StringBuffer, int) +
Create a new LongOpt object with the given parameter values. +
+

+ Method Index +

+
+
 o + getFlag() +
Returns the value of the 'flag' field for this long option + + +
 o + getHasArg() +
Returns the value set for the 'has_arg' field for this long option + + +
 o + getName() +
Returns the name of this LongOpt as a String + + +
 o + getVal() +
Returns the value of the 'val' field for this long option + + +
+ +

+ Variables +

+ o +NO_ARGUMENT +
+ public static final int NO_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes no argument.

+

+ o +REQUIRED_ARGUMENT +
+ public static final int REQUIRED_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes an argument that is required.

+

+ o +OPTIONAL_ARGUMENT +
+ public static final int OPTIONAL_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes an argument that is optional.

+

+ +

+ Constructors +

+ + o +LongOpt +
+ public LongOpt(String name,
+                int has_arg,
+                StringBuffer flag,
+                int val) throws IllegalArgumentException
+
+
+
Create a new LongOpt object with the given parameter values. If the + value passed as has_arg is not valid, then an exception is thrown. +

+

+
Parameters: +
name - The long option String. +
has_arg - Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). +
flag - If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. +
val - The value to return for this long option, or the equivalent single letter option to emulate if flag is null. +
Throws: IllegalArgumentException +
If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. +
+
+ +

+ Methods +

+ o +getName +
+ public String getName()
+
+
+
Returns the name of this LongOpt as a String +

+

+
Returns: +
Then name of the long option +
+
+ o +getHasArg +
+ public int getHasArg()
+
+
+
Returns the value set for the 'has_arg' field for this long option +

+

+
Returns: +
The value of 'has_arg' +
+
+ o +getFlag +
+ public StringBuffer getFlag()
+
+
+
Returns the value of the 'flag' field for this long option +

+

+
Returns: +
The value of 'flag' +
+
+ o +getVal +
+ public int getVal()
+
+
+
Returns the value of the 'val' field for this long option +

+

+
Returns: +
The value of 'val' +
+
+
+
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+ + diff --git a/lab2/jax/MD5.class b/lab2/jax/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..551f55f27677a8c73e480ea6e6bbbaac7ddd3b57 GIT binary patch literal 487 zcmaJ;O;5r=5Pd^|BBFu_it%8KF?z8F%luxwNbR{QdlaBz4#@}`~>czWo#aisLHdGuQ%6t8AJ zk7E^TV`GER=uLF29{Elg)epF(br^eTm{3a%X3przIQQIdbNmnvn&RPxlgQ_56)>S7 z{g0F0g!=bDBX z{}}A2C1PXsx)+4<;vG8u5&JQrx{yA%x3NjsO#<`%evUPFC2aqlk|z){@*4nUr9HC3 ra>BBr=V1%V3o6KMVM)#mim6%=v@EnIB?3SC7FYiErQ5H)>} literal 0 HcmV?d00001 diff --git a/lab2/jax/MD5.java b/lab2/jax/MD5.java new file mode 100644 index 0000000..d9a0e59 --- /dev/null +++ b/lab2/jax/MD5.java @@ -0,0 +1,13 @@ +import javax.jws.WebMethod; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.jws.soap.SOAPBinding.Style; + +//Service Endpoint Interface +@WebService +@SOAPBinding(style = Style.RPC) +public interface MD5{ + + @WebMethod String MD5(String text) throws Exception; + +} \ No newline at end of file diff --git a/lab2/jax/MD5Client.class b/lab2/jax/MD5Client.class new file mode 100644 index 0000000000000000000000000000000000000000..8b8b907756fc153d4d60ebd8cc6a0baa6f0bd17b GIT binary patch literal 800 zcmaJhA>f?QmZS6kBefb_RY|MSFJFqeu5`HxQVv zeP|un$F}9!LC@;MksI{35@5a)+s_^K7~iI^>MSY*|7Zmrp3%Re&6e;=-73XiDj%vteRNEIve*7Ps5B%YXfiVcCOtNvb{II17JVPN7}QYHJZw!p2cw71;@<-|mextl=whSqqUo{InU zxf@0#sn+VP8xUL9DtAtgV&zl(a6oA3x3q3(?NZm6>MGkOAVo0*mTF^^|KIgjfa@#* zvY&8zoMCAk5l2`YWsK&y7uk-&9CCb7$)|x6MuBUQr&(G-JF$EYamEer#5Fx~>U>?d zG0A9l#m8~qW$`qs1&@SjqN!*brNuGtoU7cL_7}aq964M>7fB*mh literal 0 HcmV?d00001 diff --git a/lab2/jax/MD5Client.java b/lab2/jax/MD5Client.java new file mode 100644 index 0000000..4330699 --- /dev/null +++ b/lab2/jax/MD5Client.java @@ -0,0 +1,19 @@ +import localhost._8080.md5.MD5Impl; +import localhost._8080.md5.MD5ImplService; + +public class MD5Client{ + + public static void main(String[] args) { + + MD5ImplService md5Service = new MD5ImplService(); + MD5Impl md5 = md5Service.getMD5ImplPort(); + try{ + System.out.println(md5.md5("mkyong")); + } + catch(Exception e){ + e.printStackTrace(); + } + + } + +} \ No newline at end of file diff --git a/lab2/jax/MD5Impl.class b/lab2/jax/MD5Impl.class new file mode 100644 index 0000000000000000000000000000000000000000..1fef4a142af2d97ba3dd129a22110c50729388fc GIT binary patch literal 1116 zcmZ`&+foxj5IvL2P7)R&K+ph+7cLtJEQlZmLD5$JjOWl3^9~tgM<=aVGKq5<_!V8u?eNhV7+$e3Kkg9Ji@1 zhRD)hUf9yCSPsWD#o0=&nitEaOQjN3rfio+T`Gq7vzjH%vRF4AlS-MltcoeOg|qX`K+wVdNk5JOCByhkx?TUZ5#-O1-dlU ze7ZqC@^tEC+bOzCo{gIJ&*3 fhg5w>f&_xx7j z0te&RX}YG|Re@^nPRo=HUpaaqn2llNsHuHr%Zl<8`EF|M_#$}s80Ol7E#9&%URAor z#rrEiv8_$hr1>1TeASTjvFN3+nq=`h=|5d>J-d55rEP|pznwblh!!>(B;Nl(xZygD zL$@Z~B;x2wB8nJ8&T>p)ojab-&x(u1MQ+!Y`KPY*$6gMr7t-`GMH`IJMrk2|1feit zQlyxmTaGfL9G$%fyJ-^*im`Tal43WK6u(k$5xV|HohMQcdOOrJava class for Exception complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="Exception">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Exception", propOrder = { + "message" +}) +public class Exception { + + protected String message; + + /** + * Gets the value of the message property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMessage() { + return message; + } + + /** + * Sets the value of the message property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMessage(String value) { + this.message = value; + } + +} diff --git a/lab2/jax/localhost/_8080/md5/Exception_Exception.class b/lab2/jax/localhost/_8080/md5/Exception_Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..f99975ef6fbac2895af1fb1c57a9b1d56eb528cf GIT binary patch literal 810 zcmb7CT~8W86g|VIz_!>TRjeQNsj|=xiINa$OiZnb3H6~8`$z^{VVd1pvO6e0t4%Z} zKJ*9lM>XDAo5cr=>C45QS0Aej zpJB7(`UByP{7~~=tI=w3@4U&sOb5{Z0*iP>c9Ej5=~fD{gmQ>C_wqKy#Q*>R literal 0 HcmV?d00001 diff --git a/lab2/jax/localhost/_8080/md5/Exception_Exception.java b/lab2/jax/localhost/_8080/md5/Exception_Exception.java new file mode 100644 index 0000000..81ea9b1 --- /dev/null +++ b/lab2/jax/localhost/_8080/md5/Exception_Exception.java @@ -0,0 +1,54 @@ + +package localhost._8080.md5; + +import javax.xml.ws.WebFault; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebFault(name = "Exception", targetNamespace = "http://localhost:8080/MD5") +public class Exception_Exception + extends java.lang.Exception +{ + + /** + * Java type that goes as soapenv:Fault detail element. + * + */ + private localhost._8080.md5.Exception faultInfo; + + /** + * + * @param message + * @param faultInfo + */ + public Exception_Exception(String message, localhost._8080.md5.Exception faultInfo) { + super(message); + this.faultInfo = faultInfo; + } + + /** + * + * @param message + * @param faultInfo + * @param cause + */ + public Exception_Exception(String message, localhost._8080.md5.Exception faultInfo, Throwable cause) { + super(message, cause); + this.faultInfo = faultInfo; + } + + /** + * + * @return + * returns fault bean: localhost._8080.md5.Exception + */ + public localhost._8080.md5.Exception getFaultInfo() { + return faultInfo; + } + +} diff --git a/lab2/jax/localhost/_8080/md5/MD5.class b/lab2/jax/localhost/_8080/md5/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..be021c56be0e2843c2470528e1ebd3e6ebab54d1 GIT binary patch literal 637 zcmaixX-fk!5Qg9MT3f5F^}dS7m)fE!h~R}#JV2-xv=qS)l5Rsy+0B;St?0i}Py|2t z1N>3qbiMFE3Cv6;&%859o}M2b0W2e%Km-$UgfVGg%D^;3M7Yf&L#Esk7lK*h;1sZ{4IuXZlOl#w$qRdsj|}Yuw&PyTNQPSGDcJSr9fsVxA2>g;k^UHxu54< z?ZmOuaZS0Wx_UhaJ1a}wc^JlzI@(vZtSL`Xuaee|FMQ=_kD(AqUGhuY;&r7PTzs7J z6Wc18ru00=tzNYyT_$=VtPY944){;id(GbdZh41c{_jq2bVLiA8iZ+jhIrd`+7-7U z-6Rb3BoRf7VbpR=VVygk&(Btit3_@%R(QatKi|JnZ%Na~EPYdizKtHfTTD@yV$vcT zr`OqMi3}b}0qaMaEehTIx`U1}tiY@>E literal 0 HcmV?d00001 diff --git a/lab2/jax/localhost/_8080/md5/MD5.java b/lab2/jax/localhost/_8080/md5/MD5.java new file mode 100644 index 0000000..746c01e --- /dev/null +++ b/lab2/jax/localhost/_8080/md5/MD5.java @@ -0,0 +1,60 @@ + +package localhost._8080.md5; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for MD5 complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="MD5">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "MD5", propOrder = { + "arg0" +}) +public class MD5 { + + protected String arg0; + + /** + * Gets the value of the arg0 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArg0() { + return arg0; + } + + /** + * Sets the value of the arg0 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArg0(String value) { + this.arg0 = value; + } + +} diff --git a/lab2/jax/localhost/_8080/md5/MD5Client.java b/lab2/jax/localhost/_8080/md5/MD5Client.java new file mode 100644 index 0000000..1af5113 --- /dev/null +++ b/lab2/jax/localhost/_8080/md5/MD5Client.java @@ -0,0 +1,15 @@ +import localhost._8080.md5.MD5Impl; +import localhost._8080.md5.MD5ImplService; + +public class MD5Client{ + + public static void main(String[] args) { + + MD5ImplService md5Service = new MD5ImplService(); + MD5Impl md5 = md5Service.getMD5ImplPort(); + + System.out.println(md5.MD5("mkyong")); + + } + +} \ No newline at end of file diff --git a/lab2/jax/localhost/_8080/md5/MD5Impl.class b/lab2/jax/localhost/_8080/md5/MD5Impl.class new file mode 100644 index 0000000000000000000000000000000000000000..85bf6b15177fa9969c64d513c30ba996eaea8c45 GIT binary patch literal 1172 zcma)5YflqF6g^Y>usnn+4+~Nh6sSU{i6J5I#U|Rs1k|*Nm}o+#+mUXwFL!2Z{cC>k z2l%6mcW2AiVoCVWbmq>v=bn4^-rs+I{sQn42L(JY;041Sw|mI2vv=AT1Hm2PUGlaL zZSV4=`hSRF=FQNOfwp~56|m1xZbhE9UHQ>gcE^zo&-1k~&kW0kV95L56+f4qGpT!i z_k>~I4`gUS?}RH!!r5z*a1Gs(DsnWT7qkd3rH-L05EkLVurZ<@x(+Aymi!h;rO!hV z5H%$g9p4g8LSOD_9UOCRLOoyUdfotvUX%MnT?xYZO;yND4ra;9cbmFv}1K>f>c zxmkjdU=wB7yn$$pxaxHzzhT9Wk?fr91(9ahzfp25`>h)|@&Bl6hP)qXlXq~-yep-- zuYycwSetCH8Anr5)zh>eZj9k%3{U6aB0a?o41^QWCpx^95N-;MsTj5<$LWIz>9cDY zPR!NP16XyuG5yX;V7R{wx_!DzSEbMZVF5L;SWNsPqQ#Bwm9CsB#~ivT0-jd*z-K2 zZOG6{(^h0@m5`-hj&50s=TV^37rNi2TTx*KvvinKn8!WBEyNMJEuy4w9}kkyQW{#u z3WZh`9-^$UhV{>2ukeWKl`L$aqOgg_RG}1$ctYVVh3$ksgQxV6!80QvPT5J`cN6wK K%BT>Xh3a276-8|T literal 0 HcmV?d00001 diff --git a/lab2/jax/localhost/_8080/md5/MD5Impl.java b/lab2/jax/localhost/_8080/md5/MD5Impl.java new file mode 100644 index 0000000..d37401b --- /dev/null +++ b/lab2/jax/localhost/_8080/md5/MD5Impl.java @@ -0,0 +1,48 @@ + +package localhost._8080.md5; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.Action; +import javax.xml.ws.FaultAction; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebService(name = "MD5Impl", targetNamespace = "http://localhost:8080/MD5") +@XmlSeeAlso({ + ObjectFactory.class +}) +public interface MD5Impl { + + + /** + * + * @param arg0 + * @return + * returns java.lang.String + * @throws Exception_Exception + */ + @WebMethod(operationName = "MD5") + @WebResult(targetNamespace = "") + @RequestWrapper(localName = "MD5", targetNamespace = "http://localhost:8080/MD5", className = "localhost._8080.md5.MD5") + @ResponseWrapper(localName = "MD5Response", targetNamespace = "http://localhost:8080/MD5", className = "localhost._8080.md5.MD5Response") + @Action(input = "http://localhost:8080/MD5/MD5Impl/MD5Request", output = "http://localhost:8080/MD5/MD5Impl/MD5Response", fault = { + @FaultAction(className = Exception_Exception.class, value = "http://localhost:8080/MD5/MD5Impl/MD5/Fault/Exception") + }) + public String md5( + @WebParam(name = "arg0", targetNamespace = "") + String arg0) + throws Exception_Exception + ; + +} diff --git a/lab2/jax/localhost/_8080/md5/MD5ImplService.class b/lab2/jax/localhost/_8080/md5/MD5ImplService.class new file mode 100644 index 0000000000000000000000000000000000000000..e47e3b39fc41605f32255d42014f76165d8a0079 GIT binary patch literal 2282 zcmb7FTT|Os5dMyFkS&b41wtT!aE-AEBBTU@DVG@2P-JeV5GD^EVN_5m%N|PvUi%CB zGy2-VgF9uW=~Ey2quTDu8rL>%Lp|e_yl20?e7k%6$DhCa3g89yWpraPNa9NwJy>F~ zEMX;pR{_Li+{3Db*Q`yjSYyj1i}e8JBzzS>Tt*w-NZ63@wTv!oN>C-F1RkZc?rl_`%5P$;+%>aE!b~`1^JE-L2JBQlP&IYiT*%E@)X@+1;X70yQrhmf1qol*WbhR_piA ziunt^yy#-W5Z%~4bm2FlkK0CXecVI$Ni#xE8G<+;AUR0Co|2`YXG`>Fh%5L?X!=M$ zsdFS{_((?S8N>Gk8uCC9_}!C`2a1*8uSZRx1q#_e#;}JPqfqQG7>zX!G=l*BQE{LV z4>C@Hnm7>`GT9)^O9V0Jh8guRBZOd#6paz!Ry7M~M%)cD<^e`2h@Suf0z7LFVhIwK z$#$H`^0}l<(Z3~=))T$Ky`#?NPN{@I7lI|ozajV&os{`&cCFqZLYfwOpP+BlcF7#a zq~}Z_XH3h3I%h;`O9OBFx4p@H1(0j*Cv(A{@D)P8Ln8U<3ay-y&uwYg<>oDsa71l= zM=j!65i(IfT^WiWJlbcx^1@W!HGE=Is5fXk>TEBeWAjI}rf$%6L?qu=qt|GST_g07 z!gtb`4U#Mefeatures parameter will have their default values. + * @return + * returns MD5Impl + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5Impl getMD5ImplPort(WebServiceFeature... features) { + return super.getPort(new QName("http://localhost:8080/MD5", "MD5ImplPort"), MD5Impl.class, features); + } + + private static URL __getWsdlLocation() { + if (MD5IMPLSERVICE_EXCEPTION!= null) { + throw MD5IMPLSERVICE_EXCEPTION; + } + return MD5IMPLSERVICE_WSDL_LOCATION; + } + +} diff --git a/lab2/jax/localhost/_8080/md5/MD5Response.class b/lab2/jax/localhost/_8080/md5/MD5Response.class new file mode 100644 index 0000000000000000000000000000000000000000..13a887b80f714fda96d37efa59fcfadeb6d4017e GIT binary patch literal 735 zcmaJPDqbxgjX74%Yo;!EH|M>b1z;isRp@@f7Oklo(g$fo0D#uQT%vph{ z_K7-GGFG-P4}vqczbP=+$!su*J~G~PW4&!{8dNZ;^#ad^gfn@T#IkE_PpV&8`8J7n zW1VOlC{na4(E{bmO64tMO?V+N(ONoU`eoW<`c~Um{U%Gg+8rv^5~%id=#1RWw3hzm zuj zu=C&UFIbnHy;r;K9f7CUR~n(~zggrZ3|u(*s z$)vX~ukf1VY3_GVbQJKIb1(8g;Em@Zj1`{hjFWt;9yJ0)UWDrnrsf$1V`=#d#K$4? zCfA$^s&Qm!a=i-ugu;hEppu~5m>NN!pumSR%PXHz7|Yg%UpHxOi@Rwe3YZyMT;Oh& V>^mBFaSwAm((Qdbcn9H8`U$i}s(Ana literal 0 HcmV?d00001 diff --git a/lab2/jax/localhost/_8080/md5/MD5Response.java b/lab2/jax/localhost/_8080/md5/MD5Response.java new file mode 100644 index 0000000..a1ff2cd --- /dev/null +++ b/lab2/jax/localhost/_8080/md5/MD5Response.java @@ -0,0 +1,62 @@ + +package localhost._8080.md5; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for MD5Response complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="MD5Response">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "MD5Response", propOrder = { + "_return" +}) +public class MD5Response { + + @XmlElement(name = "return") + protected String _return; + + /** + * Gets the value of the return property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getReturn() { + return _return; + } + + /** + * Sets the value of the return property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setReturn(String value) { + this._return = value; + } + +} diff --git a/lab2/jax/localhost/_8080/md5/ObjectFactory.class b/lab2/jax/localhost/_8080/md5/ObjectFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..0d9e0bbf8c38ea2d5e9a8c424cedec2778ad8853 GIT binary patch literal 2032 zcmbtVT~pIQ6g>;2O+$fF5ClQ2sI;I2LMMJ5fI5++TVCUxLn`SH*h znehksqa5!|+Z0O*Gt!6My?4(&d-mS!?e9N7e*u_7Mn*qghp-@{jps!f0iNH;2=crX zMjui#BrNmlEe|UptV&2qn3B1U2nwCb+lvSAs{ia>iJxi1jdC?4wq zJzIvQ@01HUz4S@Vne5R@y6Wg&yg)pW+%k)rYMvBrM>$%YS)5S{$McE@Ar;|j6iFey zE%3BS$X*Xw7cDT}I-(Au$c2Qj45m$9Nm0(Qj+OUo2kRMAFX)!T>h_Ghr8?yj-7oup zEXys=UZDeqvSrIL3i`fb8Y}TfFyUIbqtf@@vn#oGN0u$+p2?0&o3~Yps?Er;+60M(1dL77^UT087}2V31e$F+ks3Bf$F-tF4BiX=(<3 zXa17~fhdzGrfTJt>W=&BS~92Hd{yxqrfS9j6W0-GEt6{#gJJYpkmOytWFLf`n;xr4IJ0>d--)JE)LL+x~V4QmU6Y`AWA&m@w zM1F=#muNezp#3YYs}VuhKSkphp{}6=gzjiY&k-(;$Jfz8LWi2sDVKYkuEt6d^nb$| zqnD5lza!j-fS9U4ZjMUR4M51Jc*bbrm>?@*BZ)~HtT&G5{+ykC2>Nnv*EnDJa!wQH zC=`FrNFUmKIrnRvGrpX&RJNC1(LPXJ_&0TluESV&tfzwL4}@!0uWNPIte9&>8l~+f ZVW1RtQ=vylXdC^jbAn#E2Xh(cfxn?!<<$TH literal 0 HcmV?d00001 diff --git a/lab2/jax/localhost/_8080/md5/ObjectFactory.java b/lab2/jax/localhost/_8080/md5/ObjectFactory.java new file mode 100644 index 0000000..36e539c --- /dev/null +++ b/lab2/jax/localhost/_8080/md5/ObjectFactory.java @@ -0,0 +1,89 @@ + +package localhost._8080.md5; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the localhost._8080.md5 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _MD5_QNAME = new QName("http://localhost:8080/MD5", "MD5"); + private final static QName _MD5Response_QNAME = new QName("http://localhost:8080/MD5", "MD5Response"); + private final static QName _Exception_QNAME = new QName("http://localhost:8080/MD5", "Exception"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: localhost._8080.md5 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Exception } + * + */ + public Exception createException() { + return new Exception(); + } + + /** + * Create an instance of {@link MD5 } + * + */ + public MD5 createMD5() { + return new MD5(); + } + + /** + * Create an instance of {@link MD5Response } + * + */ + public MD5Response createMD5Response() { + return new MD5Response(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link MD5 }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "MD5") + public JAXBElement createMD5(MD5 value) { + return new JAXBElement(_MD5_QNAME, MD5 .class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link MD5Response }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "MD5Response") + public JAXBElement createMD5Response(MD5Response value) { + return new JAXBElement(_MD5Response_QNAME, MD5Response.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "Exception") + public JAXBElement createException(Exception value) { + return new JAXBElement(_Exception_QNAME, Exception.class, null, value); + } + +} diff --git a/lab2/jax/localhost/_8080/md5/package-info.class b/lab2/jax/localhost/_8080/md5/package-info.class new file mode 100644 index 0000000000000000000000000000000000000000..9d01aa69e3943331a433b9415b37de7f3162079c GIT binary patch literal 250 zcmYjMJ!?Wi5S-KK^P`E4U}uvuSs@5ws(@H2LIg<{_MI2snfs93DgHJKe}F$qa?e7t zFuO3b?Ce~wr!#<8v@{$NrMm=ly?O(QhV1eGp-bHQIN(Y@A z_3oUH9JO~r;AvLw9O-Bc<=U-@?<##-vy_Fh{3g(JY*k3dlSi+JaW^J1Ua~2Ch~v>< zG@$upDA2!?^mSwHdPx6&5_l{f$*|kdBHt<*yMRC?g(|Cp>a9PZmS#IC^@J>-@dp<+ BM700_ literal 0 HcmV?d00001 diff --git a/lab2/jax/localhost/_8080/md5/package-info.java b/lab2/jax/localhost/_8080/md5/package-info.java new file mode 100644 index 0000000..933f36d --- /dev/null +++ b/lab2/jax/localhost/_8080/md5/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://localhost:8080/MD5") +package localhost._8080.md5; diff --git a/lab2/md5/endpoint/MD5Publisher.class b/lab2/md5/endpoint/MD5Publisher.class new file mode 100644 index 0000000000000000000000000000000000000000..e85075aecf69bfe9422f9ac38b6fb5d0c5726f31 GIT binary patch literal 682 zcmaJzD5)xFB5)I+gb~~X%_R;K4dHgK- zK#3;)0DhG5PFq9*aX!rB+;i@|b7pRS|M&&qHL3;-6vy!lRt_Zt&oP}tnd60lEQ$tZ zFv~H=@sc6?Mut+oWk^@ozA|LqM{U6{xhF&MxfirVeBicxLNb9XLxxiIXz#>5bsgUg zkDaE9Wq91sLZcb=Vo&TyO`iJnVROIN@@3Ky@hihIgYVscqugiHJ|7 zCu~>QB5Zdf8LGP7QL0;a96$10zY`^@UfZZ`IA@6yv^O~xOe|uFVfKGCh6y5T4OQ6< zx<1FUi509ely%^?m=6DKm?3|6#V@TB;i-F2^CD3qAjhH}1+1YTGII9G3`Ld*H)t>v z2RZJ;47{sJJ~?SsA2-s{x^w3|@O9fCM{a24&`^f$N0k5M8g|@R8$b^dHBiAg{SG}+ zVES2TeoCh~S{bcl>wU2Av?23o&JI9MqDkawuc=!|lNcynB2`FVAyXLpiR@t?{2IA$ VciIW!flB14h(${J8FWse@CSH5q-p>F literal 0 HcmV?d00001 diff --git a/lab2/md5/endpoint/MD5Publisher.java b/lab2/md5/endpoint/MD5Publisher.java new file mode 100644 index 0000000..8e75e7d --- /dev/null +++ b/lab2/md5/endpoint/MD5Publisher.java @@ -0,0 +1,15 @@ +package md5.endpoint; + +import javax.xml.ws.Endpoint; +import md5.ws.MD5Impl; + +//Endpoint publisher +public class MD5Publisher{ + + public static void main(String[] args) { + final String url = "http://localhost:8080/ws/md5"; + System.out.println("Publishing MD5 service at endpoint: " + url); + Endpoint.publish(url, new MD5Impl()); + } + +} \ No newline at end of file diff --git a/lab2/md5/ws/MD5.class b/lab2/md5/ws/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..ba845b73fe710d970b2e7a42958f27ee93d35ead GIT binary patch literal 503 zcmaJ;%TB^T6g`(mi--y$D8_{`hUmsF3@bJwYGNXR&_vgzOmIkO1t=LDV_Ij)JM8Z}RUhY0!W zg)gQ?hDzJ05NiFIGIApBrIv$0w3G^sm!t`mL}1~JpS1HJ1|4A@!(o#(+;A58;zkC7 zkmLDh@oYl%d%Y{7x%34$9DGUW(3?7Lx7E9pY8cxjWVLw?gpFN>ZVU;9Tct$Q4m_=e zCLH}EaGbQTOuFA|v$@Hz;jrOkEydMRx`VOs4WYaWeXhdB9^o)fEFb&R<8lOH|L+ou zKuGcL0F+@b$S}(?%W&L+&B$Vu<2#KtK2yji(GsI|<^|4f2$ZmmBGWw6O;oXUQTqU* CaDoT` literal 0 HcmV?d00001 diff --git a/lab2/md5/ws/MD5.java b/lab2/md5/ws/MD5.java new file mode 100644 index 0000000..66a0779 --- /dev/null +++ b/lab2/md5/ws/MD5.java @@ -0,0 +1,15 @@ +package md5.ws; + +import javax.jws.WebMethod; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.jws.soap.SOAPBinding.Style; + +//Service Endpoint Interface +@WebService +@SOAPBinding(style = Style.RPC) +public interface MD5{ + + @WebMethod String getMD5(String text) throws Exception; + +} \ No newline at end of file diff --git a/lab2/md5/ws/MD5Impl.class b/lab2/md5/ws/MD5Impl.class new file mode 100644 index 0000000000000000000000000000000000000000..8234097cf21b4f65d7419a34137518af49159d51 GIT binary patch literal 1132 zcmZ`(+foxj5Iqx?ovk4MuF8L76Y-1w-qKWs9|H zDJz`kX0}K(YC*`=g>i;KV`baiF_T5pE+jM3vFyTh?Efi-mW(uWuUE~AkKj{Ia@^s# zOQA7ni+edykyhDuIi|?Yl&eloELk3#PE_eqrI_%j7^2UrwzNuO-Eu98X3n> zY1@^i?PWZA{&CgErpg5gA+;}sOZ{NPJSMd$?1FsdcS)MeY9((VfAr$^htQN7nrqNE z-m2{V@wX@ew0t1wfKNV%CK`t+hzOc-iAJ61qNg9-bi;eFO!_JMXa(p+;F$gaoTHN? n%5j;a%YVBmtMBwL=piSC^0-3ay*@=Bl>-FKaE-p}F8Y50V$=dh literal 0 HcmV?d00001 diff --git a/lab2/md5/ws/MD5Impl.java b/lab2/md5/ws/MD5Impl.java new file mode 100644 index 0000000..4764206 --- /dev/null +++ b/lab2/md5/ws/MD5Impl.java @@ -0,0 +1,44 @@ +// Based on http://www.mkyong.com/java/java-md5-hashing-example/ +package md5.ws; + +import java.io.FileInputStream; +import java.security.MessageDigest; +import javax.jws.WebService; + +//Service Implementation +@WebService(endpointInterface = "md5.ws.MD5") +public class MD5Impl implements MD5 +{ + /** + * Performs the MD5 algorithm in order to produce a 128-bit hash value. + * @param text input text argument. + * @return The calculated MD5 hash value (in hex format). + */ + @Override + public String getMD5(String text) throws Exception + { + // Calculate MD5(text) + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] dataBytes = text.getBytes(); + md.update(dataBytes, 0, text.length()); + byte[] mdbytes = md.digest(); + + // Convert byte to hex format + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < mdbytes.length; i++) { + sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1)); + } + + return sb.toString(); + } + /* + public static void main(String[] args) throws Exception + { + // msg is the message + String msg = "hello world"; + + // Print result + System.out.println("MD5('"+ msg +"') = " + MD5(msg)); + } + */ +} diff --git a/lab2/md5_client/Exception.class b/lab2/md5_client/Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..26b029ef44963172f242f6b80cb446adb2973ecd GIT binary patch literal 655 zcmaix$w~u35QhJrWD+yREymr5%Oz2C4&uQDL0mwH1~df0gLEcM=rGeW%o5^TDJX&m zAHataYvR73G*nerfAv>2_4suE0ALj}29lV}Ac3hgrqd`eq#Y3iyeSxRN73`QD$2RLy zHBA2gYMwdvj%Cq&u3x?M1bs|zb339IFO&XL^;UCmxL@95SopisE1gu_p$3`vKTz!X zu2=CJ!p|a&o-A~v81hbI?ZUF9P@(w=9{gBGrQQ-&h&ftZk`_sOh$|^dP)tH(GjuDE zXXN$8JFx36Xpl{Hle1)dktO>Ty@7W14P7Rv5B;y`JTy8av$%8%?L*e+X4h$w4T=Vc d&@hN0@-r0WsCrl+j}eU0bu7R*CeFbE=+9~ll=J`q literal 0 HcmV?d00001 diff --git a/lab2/md5_client/Exception.java b/lab2/md5_client/Exception.java new file mode 100644 index 0000000..12a6fdc --- /dev/null +++ b/lab2/md5_client/Exception.java @@ -0,0 +1,60 @@ + +package md5_client; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for Exception complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="Exception">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Exception", propOrder = { + "message" +}) +public class Exception { + + protected String message; + + /** + * Gets the value of the message property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMessage() { + return message; + } + + /** + * Sets the value of the message property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMessage(String value) { + this.message = value; + } + +} diff --git a/lab2/md5_client/Exception_Exception.class b/lab2/md5_client/Exception_Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..9bbb796d140c6c2bb4ee68dc7d0db301445f8522 GIT binary patch literal 754 zcma)4T~8B16g|^V+OB{gP*jS((JinK#20Fa#zBdfI{V20#WDrU-432H0&9IvfYM%;}KE>xs zV4l)1=cbhlVB2s!BrZ3Q~iva)|8BlIJY*P#(k|! zsP2f3bR-At&R<$P+7AfbrNe=TIlT5zLDgj&0&|S2zvhEK zz#nBiyKQ=r;6u}IzVDp#UHA8&pT7XS#!dmx3V1G%Z)tb@ZdYJ^^XNi#lnj(<$%c!4 z)7sm*?h=@Kf9dJS`Ju4|ybvhW6XX20{^VP~8R)7pp;K8{pqL3<%8MUXe%8%n?asrq zy=(ruwn^aVpNLfKKB~56VX<~eYzElNb|5KJ^-^tO$9)qePGIHSx#*2#Y`cB7E7^?f z_Egv36K#pehl$Iem7Ae9Vn0kf{!OtIfpV|%Ue?3Z+fO~|1uNU{lOR=AEd+6mQDUgU@fDh<E(ETCwy zi2H=kr^*lLE?JaQVwtpu42)qZ)7{|vQ8&Jf6^jZUld-C?jty+mEK=FS7M_wc#rG4u I#M*x8FMNV3=l}o! literal 0 HcmV?d00001 diff --git a/lab2/md5_client/MD5.java b/lab2/md5_client/MD5.java new file mode 100644 index 0000000..9c738a6 --- /dev/null +++ b/lab2/md5_client/MD5.java @@ -0,0 +1,46 @@ + +package md5_client; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.Action; +import javax.xml.ws.FaultAction; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebService(name = "MD5", targetNamespace = "http://ws.md5/") +@SOAPBinding(style = SOAPBinding.Style.RPC) +@XmlSeeAlso({ + ObjectFactory.class +}) +public interface MD5 { + + + /** + * + * @param arg0 + * @return + * returns java.lang.String + * @throws Exception_Exception + */ + @WebMethod + @WebResult(partName = "return") + @Action(input = "http://ws.md5/MD5/getMD5Request", output = "http://ws.md5/MD5/getMD5Response", fault = { + @FaultAction(className = Exception_Exception.class, value = "http://ws.md5/MD5/getMD5/Fault/Exception") + }) + public String getMD5( + @WebParam(name = "arg0", partName = "arg0") + String arg0) + throws Exception_Exception + ; + +} diff --git a/lab2/md5_client/MD5ImplService.class b/lab2/md5_client/MD5ImplService.class new file mode 100644 index 0000000000000000000000000000000000000000..2c4f1585a4c0896364d7eeb9ca2a2879d97cc0f1 GIT binary patch literal 2226 zcmb7F+fv(B6kW#<`Tw`p42$VoD4WY&~6q%bTgvkRVj0#F^*<*>oYrmkM z(bonZ=#-hZPkrb|wOvQnxVG_3sb{<;pR?D#ti8_hpMU-GD}Wj7s_4ODh~^6wy?8Cn zl7cruyb2<&;vSY2d?{Cx(yU0&lr*bB%qjRPh=huEyj8HK;A<7#SXZDcNDDkpugtEc zxAaVEXKyW;I^55!=!g1da(Q=cb3-7ae=t58nr*t;H#>Slps&t9^)8v(D*Fz3z8Bg> zKBt{K+P-;|F-sqwj!*6dar&9uts<5_^H=Ux9HMQ*xz7o{3XxWzg zTA(R9z9-O}EF7Bx?Yd=~8)x|=v$Sg*<+w5ueP0!)riNA1aL-C+LgG84wOz@z>AJN$ z1)8V>RVA-)Lgq-{-ThAKBPXUS>C6{%TZNJ<&=nom^T)G?*_>tCuEsr*_i*RTcCEa* zXE_#GTDI+iYshIh0{vALm+4B`$HjtWy974N9t2uzQq0_e;@dTJ9v-sRedjo*7qVV* zfesd1C$6@PYh=Gm8%2Mf!9{i=Cr=GixRkGenkk%>vgWEK2j1=1<_m37#uFI0)s?@W z^mt)wky;$JTVp>%Tq1Cd zrceCIfzhf6(8lni#JX*jUfMU zWTIgoGR8zrvJek4(ICxBgfQo&8Syd0L`aMhixY6Gn+3EW;UyXM0V7P(OhAx;=M7T4 zhJq#fj*+Z@N7^L+^(1M%u^Zew=xXUwt`Y1;=o;$p2>ryJGJh?e*IPun(#rR7eq)YD z<`^dYU>bu-S{~E|BdM(oqV3*}rpm+4&~l!V3;Bs$BK!vw+TSkGCQAxq<*R*iXVL1r~URKZ0`yIu`cu*v>$YJT%&XSN3^AH(0xFX@9VKEw8gIw z{>1cMl-U4nIiXY!co9Vyy~A4{a7V|YP!Wij0d{LRgPf)@&=Ar#Dn b80vGcgITZn9wvFos!8P><{iAkf`i0AJJS3# literal 0 HcmV?d00001 diff --git a/lab2/md5_client/MD5ImplService.java b/lab2/md5_client/MD5ImplService.java new file mode 100644 index 0000000..8207f3b --- /dev/null +++ b/lab2/md5_client/MD5ImplService.java @@ -0,0 +1,94 @@ + +package md5_client; + +import java.net.MalformedURLException; +import java.net.URL; +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.md5/", wsdlLocation = "http://localhost:8080/ws/md5?wsdl") +public class MD5ImplService + extends Service +{ + + private final static URL MD5IMPLSERVICE_WSDL_LOCATION; + private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; + private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.md5/", "MD5ImplService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL("http://localhost:8080/ws/md5?wsdl"); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + MD5IMPLSERVICE_WSDL_LOCATION = url; + MD5IMPLSERVICE_EXCEPTION = e; + } + + public MD5ImplService() { + super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME); + } + + public MD5ImplService(WebServiceFeature... features) { + super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME, features); + } + + public MD5ImplService(URL wsdlLocation) { + super(wsdlLocation, MD5IMPLSERVICE_QNAME); + } + + public MD5ImplService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, MD5IMPLSERVICE_QNAME, features); + } + + public MD5ImplService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns MD5 + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5 getMD5ImplPort() { + return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns MD5 + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5 getMD5ImplPort(WebServiceFeature... features) { + return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class, features); + } + + private static URL __getWsdlLocation() { + if (MD5IMPLSERVICE_EXCEPTION!= null) { + throw MD5IMPLSERVICE_EXCEPTION; + } + return MD5IMPLSERVICE_WSDL_LOCATION; + } + +} diff --git a/lab2/md5_client/ObjectFactory.class b/lab2/md5_client/ObjectFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..0f9f67619b30d3d1e2476a771929a562ab04e3d5 GIT binary patch literal 1089 zcmbVLT~8B16g|_H?slz!1r?|$;750hvWXurmXILAgQ+!uA@D?|%cKt3-ICp@mVf2P zLlc|$1N>3OJG*454dKCk*qOQa+%xB%nfd+a=Pv*+@XSIPD+V4~$m#J>2{-WALIF<< z)J#-OELt#N8*mKN8K#f7`<^&cvKt=nwl?2yGgOSr?y zyNYX9x>+r*yz0^#7=(Yo=>mpNAbc%`oiQBjU#h8%Zj~Z}~iquMMP(4SgMJ zDQQ}{uOb0|*b zl%B!t1$>F(8g34eI~pMWHLEBlaVJ6FMm{08QA~KIhbSC<$HWYBY;}O*c-3>An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _Exception_QNAME = new QName("http://ws.md5/", "Exception"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5_client + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Exception } + * + */ + public Exception createException() { + return new Exception(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ws.md5/", name = "Exception") + public JAXBElement createException(Exception value) { + return new JAXBElement(_Exception_QNAME, Exception.class, null, value); + } + +} diff --git a/lab2/md5_client/package-info.class b/lab2/md5_client/package-info.class new file mode 100644 index 0000000000000000000000000000000000000000..c6084a3f2e5f81a03952f9ea5dc147a027590c22 GIT binary patch literal 230 zcmYjMu}(rk5S#<`2_yy@2_IkyTNoRyY^+R7ATe}g-?6~K-9F+S%C}kY0e%$W9tCle z*(qi+lleRT9soR|Q=nC#ZP1=nyDuwm&Wk~B%XY&{89H55qcwlC!C<`8 +#include +#include +#include +#include "msg_list.h" + + +/* Creates a new message struct and enqueues it to the end of the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->sender, sender); + temp->id = id; + temp->next = NULL; + + if (*head == NULL){ /* Queue is empty */ + temp->next = *head; + *head = temp; + } + else{ + /* If the queue is not empty, iterate to the end and append the message */ + struct msg *last = *head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + return 0; +} +/* Deletes the message at the head of the queue and returns the new + head of the list + Return a pointer to the next message in the queue + NULL if the list is left empty */ +struct msg * dequeueMsg(struct msg **head){ + struct msg* temp = *head; + /* Head pointing to the next element */ + *head = temp->next; + /* Free the resources of the first message */ + free(temp); + /* Return the new head of the queue */ + return *head; +} + +/* Deletes all the messages in the list from the head of the list +passed as paremeter */ +void deleteAllMsgs(struct msg ** head){ + struct msg **temp = head; + while(*temp != NULL){ + *temp = dequeueMsg(&(*temp)); + } + return; +} \ No newline at end of file diff --git a/lab2/msg_list.h b/lab2/msg_list.h new file mode 100644 index 0000000..bca5c01 --- /dev/null +++ b/lab2/msg_list.h @@ -0,0 +1,15 @@ +#define MAX_MSG 256 +#define MAX_MD5 33 + +struct msg{ + char body[MAX_MSG]; /* Content of the message */ + char sender[MAX_MSG]; /* Sender of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +/* ================FUNCTION HEADERS================ */ +int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender); +struct msg * dequeueMsg(struct msg **head); +void deleteAllMsgs(struct msg ** head); \ No newline at end of file diff --git a/lab2/msg_list.o b/lab2/msg_list.o new file mode 100644 index 0000000000000000000000000000000000000000..30072c7b01c0f98c7a69f52e4a278b03f0a43486 GIT binary patch literal 5040 zcmbVQZ-`Xa6~FJz&hFbCcU@hRD%y4o+NyMBcJ1!gYBd|zt#3iAG%Sfw&^I%8XNJt5 z?R#(RuGE^cB+an2>{8kikQ6^PUmE(+VoM}~u2B4BTcJ==+KOT+1`;A9!JKpNId9)w zCto};@1FBJfA61n?qe=Y9s90rS%S$Dhs2u1s1Sb`SmP%YJ0UiS4PwS^{nuUm--O#b zf6r|--*;OxcUs49A8SpmzB_CSaSv_X*3=_+@%$sv?7RFJ=>9DPmjGOv0gu1AtsB}7 zp`R}c@B{4~w{_iZ{k=^CrGaME&@9c|ZY}T7UXR=xukHdC2~6*~OTvBaYV)g_AB5qN z+ge5ojm&^J_}~DWwx%9FSP#NOcS(hT(t%wQA=JOLjE*YKWlVMR8m&ZHtpp{;d8=uz zC2Ua%(TuUe4&LDU;92F&i_>~fi#mXw)<2hTUh9FmbYTs`Q9HLz@v+BZY(s6Q2Q{|k zsKM4!7lGXxOyZE}N>=KjupK3lUzg*9%C@v&n<`lgN@CcyyKaMp)+dn_I(E0>EvHr- z6L!ykP+>cjB0LTQyMqep{SXA$oL)?WMtu?G4{aYvJtT-z-?_P1X|K<0& ze}8oM)HkoZ<2?7L=H4rdIp?K6Z?|p8Qf<^rY4yOjspAk}v&&KUnn1(-#4BaA5CXU z>C9{pdWBaqbABU~g|Ojgg3yN(6REsh$`hH8k@N9zUS~Akpz=Mm*8U98i5Nn977u zE!~8{UbX5Dc>62H1_{x}Y}=U7eYXumAt6+k>wrf+wM~~0{cSP|*#9=h)`9yybUNKM z(I`e=0bVuJ7>4Xl_+cFO=iWRFcqe;o#c1#11_5zLUh5Wx_={Wfs?|n8z3!85$XXmhx>O9L1==0>3+EA3t@tFGw8cpcciq zXk>hWWZqB4KPG(2u!oCD(J=$(bMc~qpP>3Z1OFw-bZ10$o+A6EVUO1l(vS5J*^?+1 z4g3VjzcTP&kbKF&@$(4jh908$d8+3V1K&$>lJq#l_hlR5yq+1d-(%ou!e2CSu7~q; zoLyu;NA@^i-c`bXYQ*6V@*4v`Lh>aValkmdkCzR5uK&7$b3K1G@L8(oAB5w8@wp%T z->~QSpBgyF=XVO%A>NI-_i%hlEBLN4@iZA=E%;-aAck>XhcgDw^^0t;id2 zw$P~6BwXv+I($iF;d2DOB;d<}0?G2}S>LNks{ZMRG`Qj#^7?b631ZC8N7_C%6I+49 zTXiBrH1h^FL!f0nz+Iv9I3&X-uA;BO6Jwe;_BAt+HdnU9ssTTHG3L|ykArWgRGdE* zKSUjDM*!)+zrj@_PXKIGMIHpfoYG|08|s@IApXOxu&7 z=v4naeQK~j){nKD^;ZBhV*(`ZQ~r4rVr1GDLDwn&+mxTr3FgNoHS^;=f-$*HU=?}P zL`p_N7I}OXtULLy(hD)B!$nW_=XsE3hOpKemZZ P`6sA +#include +#include +#include +#include "read_line.h" + +int send_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = send(socket, message, l, 0); + l = l -r; /* Pending data to send */ + message = message + r; /* */ + } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + +ssize_t readLine(int fd, void *buffer, size_t n) +{ + ssize_t numRead; /* num of bytes fetched by last read() */ + size_t totRead; /* total bytes read so far */ + char *buf; + char ch; + + + if (n <= 0 || buffer == NULL) { + errno = EINVAL; + return -1; + } + + buf = buffer; + totRead = 0; + + for (;;) { + numRead = read(fd, &ch, 1); /* read a byte */ + + if (numRead == -1) { + if (errno == EINTR) /* interrupted -> restart read() */ + continue; + else + return -1; /* some other error */ + } else if (numRead == 0) { /* EOF */ + if (totRead == 0) /* no byres read; return 0 */ + return 0; + else + break; + } else { /* numRead must be 1 if we get here*/ + if (ch == '\n') + break; + if (ch == '\0') + break; + if (totRead < n - 1) { /* discard > (n-1) bytes */ + totRead++; + *buf++ = ch; + } + } + } + + *buf = '\0'; + return totRead; +} diff --git a/lab2/read_line.h b/lab2/read_line.h new file mode 100644 index 0000000..e3d4c9e --- /dev/null +++ b/lab2/read_line.h @@ -0,0 +1,5 @@ +#include + +int send_msg(int socket, char *message, int length); +int recv_msg(int socket, char *message, int length); +ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab2/read_line.o b/lab2/read_line.o new file mode 100644 index 0000000000000000000000000000000000000000..209e48b0b1f82926e0153807cbfd05e5152f8834 GIT binary patch literal 4784 zcmbVPYiJx*6h3!$lWekWlD58LeJoP7h3;;m>1vy{#@4l?R;`t21aY0+oqgEd**cG! zRAR)`$GTLqB0j*!4?#pN_(zGN5GdFdiu9jFgyx4rO8P@VBw(PPbLZZ4a=ZQGft`EK zcb@lkW_B{Y_kN8rki=joT#_UT@b&6T{4i&S;VM`IBYOQ0ed>dvo=X`9^xa zo?dLE7xmm3z2VI@(igrXhx&7`9%v82DRv-I55#3H=ZJ~gofgRjD9Xa<# z@A((8vgz|4Jr}~$3v8Nfe&U7B>5YdM^ZK2u_$1vnUdpNCZ(^-ssvRPHk5+L$@Tdm1 zPGb?$Xj%s!!u}BP2iETE+Gq%c+sc*;T7*lQZxR;LSI?kDdt?%yn(yWNoU;(&Z20Uh zQi{mF8_&Wzo>he#E{C7r&m2TBvJs;qytph-^KD(VEZt(ha12N;DtE)N9zS-Rq*E?)BYk*xHWXYtdx`M58+q!nA_L)ZrdPaj~v} zQ1`azQ1pRyxT1s+(~)5J^!fPheGjaoNW<5?yQ`0(4%bq8Xx9OB4nip62OzQQ3Z4K_ z^a~iSLO+q1{9rRp4u4`7I7g4*=~)Jm>A+Rh;3MQ1`?q^FK6%4HlqEgKPL{1)#mk$? zvAa{5)L^_)w!E=;(ejenvg<(5#1|^%Y_gckU2eZch61onBcH)YW`ds^cl@B~Byjlw zJge-udE{{l$mGoe@*%3X)1MS_eUV#03v18OBXW$MMS3*x!P*P$rQ)Hd1|o?CF1qdB zu^*>ijlAvs*z~-yBS(IDD)fA$5Lz1xd87C2+~|?jL+!ugJz}hCI*w5^!6_d$GcLF_ zcRv;imRIGYBXFvIFBT7uY2`Cjr?_H1m6}zId6rWyT4p{*SI;TcYXh z65Bm65ZjU%O!UX@=pRV+r~0?X;#JqP%pFD3GVO8>MZ?aOcHln5Q-iU1F%~a4u8}(s zKWNunGw0UqxZ~QG9g?M5)l3#Wx14;TW*=}48aXq0A1JF1h8lK z?rpJ+BU#UKJ%0t_DUVA7FAby;{ey|YP0GsPyU8bZct5bQUbcQ!M`RjL&kYFEkBFbF zd%JsI({`_J*PcNOU$@;?1MenMA8KRVK!OO29BTPSC7d7I%UnXD$*YQx z-)~hIqwsdy0_T0N17AVat@Ub8)2w59g2fp@*(ObG#*aV05 zD3HChlbwCT73{ZM0pE57e8q)azNN%)4ZpmZjA`3eEmNuG47XgfxCZc`)1AuXN(V9p zqg=rRNO6DQeU(;giM~6K-U;9|Pl=xn;A;Z-Zvi}LU!((uL@jPD{$w2f9!HsWRPxAz z+)2Va@i#^w66GS2_*P$ptHmhslS1wjBc)$%ugGr_IN1kJS$_bhyw3^wE(NDIGto|e zSgz+EA*U5w%6k>u5bN@|f)5MaQ1DTKmlS-1z-tPAy}(~l@F9V}uHZKd`E3Q4YxIeN zheVvu6g)2QFBM#_?>7P`v*5nSb0zojF%joiC5{kbUcu!zK#%Z~ac&oOeFB$x<^9~I z*gq)bClnk%k~rlRTy_$9hAA)qx)kKa)b zUE3c^lC#Zrfd~zsN=km&D!Rn6>7satfINng+6Vh z3+91Du2!v@_+Cs{_^M9e`yOA_*k(i^vy>^=M%5J6|NkL|uC#`7on@q9!N~oWxY#Bs z0`+D33o^Wn_>4}M9ZB{X>QUq?&pmy265WPB!b2nk=$M*F=u~(!;uQ1$`lrxWjY+9w z{WJ|`hSYW=NhC-Z*s33^gE;J;V?6{zN? RYtkzJqA+}jf(1y;{~vLkVuAnw literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service (copy)/Makefile b/lab2/rpc_store_service (copy)/Makefile new file mode 100644 index 0000000..3f7252c --- /dev/null +++ b/lab2/rpc_store_service (copy)/Makefile @@ -0,0 +1,47 @@ + +# This is a template Makefile generated by rpcgen + +# Parameters + +CLIENT = store_service_client +SERVER = store_service_server + +SOURCES_CLNT.c = +SOURCES_CLNT.h = +SOURCES_SVC.c = +SOURCES_SVC.h = +SOURCES.x = store_service.x + +TARGETS_SVC.c = store_service_svc.c store_service_server.c store_service_xdr.c +TARGETS_CLNT.c = store_service_clnt.c store_service_client.c store_service_xdr.c +TARGETS = store_service.h store_service_xdr.c store_service_clnt.c store_service_svc.c store_service_client.c store_service_server.c + +OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) +OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) +# Compiler flags + +CPPFLAGS += -D_REENTRANT +CFLAGS += -g +LDLIBS += -lnsl -lpthread + RPCGENFLAGS = + +# Targets + +all : $(CLIENT) $(SERVER) + +$(TARGETS) : $(SOURCES.x) + rpcgen $(RPCGENFLAGS) $(SOURCES.x) + +$(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) + +$(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) + +$(CLIENT) : $(OBJECTS_CLNT) + $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) + +$(SERVER) : $(OBJECTS_SVC) + $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) + + clean: + $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) + diff --git a/lab2/rpc_store_service (copy)/store_service.h b/lab2/rpc_store_service (copy)/store_service.h new file mode 100644 index 0000000..215718c --- /dev/null +++ b/lab2/rpc_store_service (copy)/store_service.h @@ -0,0 +1,97 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#ifndef _STORE_SERVICE_H_RPCGEN +#define _STORE_SERVICE_H_RPCGEN + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_SIZE 256 +#define MAX_MD5 33 + +struct response { + char *msg; + char *md5; +}; +typedef struct response response; + + +struct store_1_argument { + char *sender; + char *receiver; + u_int msg_id; + char *msg; + char *md5; +}; +typedef struct store_1_argument store_1_argument; + +struct getmessage_1_argument { + char *user; + u_int msg_id; + response *res; +}; +typedef struct getmessage_1_argument getmessage_1_argument; + +#define STORE_SERVICE 666 +#define STORE_VERSION 1 + +#if defined(__STDC__) || defined(__cplusplus) +#define init 1 +extern enum clnt_stat init_1(void *, CLIENT *); +extern bool_t init_1_svc(void *, struct svc_req *); +#define store 2 +extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); +extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); +extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); +#define getMessage 4 +extern enum clnt_stat getmessage_1(char *, u_int , response *, int *, CLIENT *); +extern bool_t getmessage_1_svc(char *, u_int , response *, int *, struct svc_req *); +extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); + +#else /* K&R C */ +#define init 1 +extern enum clnt_stat init_1(); +extern bool_t init_1_svc(); +#define store 2 +extern enum clnt_stat store_1(); +extern bool_t store_1_svc(); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(); +extern bool_t getnummessages_1_svc(); +#define getMessage 4 +extern enum clnt_stat getmessage_1(); +extern bool_t getmessage_1_svc(); +extern int store_service_1_freeresult (); +#endif /* K&R C */ + +/* the xdr functions */ + +#if defined(__STDC__) || defined(__cplusplus) +extern bool_t xdr_response (XDR *, response*); +extern bool_t xdr_response (XDR *, response*); +extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); +extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); + +#else /* K&R C */ +extern bool_t xdr_response (); +extern bool_t xdr_response (); +extern bool_t xdr_store_1_argument (); +extern bool_t xdr_getmessage_1_argument (); + +#endif /* K&R C */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/lab2/rpc_store_service (copy)/store_service.x b/lab2/rpc_store_service (copy)/store_service.x new file mode 100644 index 0000000..ff6866a --- /dev/null +++ b/lab2/rpc_store_service (copy)/store_service.x @@ -0,0 +1,18 @@ +const MAX_SIZE = 256; +const MAX_MD5 = 33; + +struct response{ + string msg; + string md5; +}; +typedef struct response response; + +program STORE_SERVICE{ + version STORE_VERSION{ + void init() = 1; + int store(string sender, string receiver, + unsigned int msg_id, string msg, string md5) = 2; + int getNumMessages(string user) = 3; + int getMessage(string user, unsigned int msg_id, response *res) = 4; + } = 1; +} = 666; \ No newline at end of file diff --git a/lab2/rpc_store_service (copy)/store_service_client b/lab2/rpc_store_service (copy)/store_service_client new file mode 100755 index 0000000000000000000000000000000000000000..829c6fbea7a8b8113b0d51a93b0c9e5b3d5334fa GIT binary patch literal 24408 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 GNBl3E)|>+X literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service (copy)/store_service_client.c b/lab2/rpc_store_service (copy)/store_service_client.c new file mode 100644 index 0000000..6c60fc6 --- /dev/null +++ b/lab2/rpc_store_service (copy)/store_service_client.c @@ -0,0 +1,127 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + + +void +store_service_1(char *host) +{ + CLIENT *clnt; + /* + enum clnt_stat retval_1; + void *result_1; + enum clnt_stat retval_2; + int result_2; + char *store_1_sender; + char *store_1_receiver; + u_int store_1_msg_id; + char *store_1_msg; + char *store_1_md5; + enum clnt_stat retval_3; + int result_3; + char *getnummessages_1_user; + enum clnt_stat retval_4; + response result_4; + char *getmessage_1_user; + u_int getmessage_1_msg_id; + +#ifndef DEBUG + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } +#endif *//* DEBUG */ + /* + retval_1 = init_1(&result_1, clnt); + if (retval_1 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_2 = store_1(store_1_sender, store_1_receiver, store_1_msg_id, store_1_msg, store_1_md5, &result_2, clnt); + if (retval_2 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_3 = getnummessages_1(getnummessages_1_user, &result_3, clnt); + if (retval_3 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_4 = getmessage_1(getmessage_1_user, getmessage_1_msg_id, &result_4, clnt); + if (retval_4 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } +#ifndef DEBUG + clnt_destroy (clnt); +#endif *//* DEBUG */ + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } + int result; + init_1(&result, clnt); + printf("Result of init: %d\n",result); + store_1("sender1", "receiver1", 1, "blablabla", "blablamd5", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver2", 2, "blablabla2", "blablamd52", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 1, "blablabla11", "blablamd511", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 2, "blablabla22", "blablamd522", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 3, "blablabla22", "blablamd533", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 3, "blablabla3", "blablamd53", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 4, "blablabla4", "blablamd54", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 5, "blablabla5", "blablamd55", &result, clnt); + printf("Result of the send: %d\n", result); + + response res; + getmessage_1("sender1", 1, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender2", 2, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender1", 4, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender3", 1, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender1", 6, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + + + + + + clnt_destroy (clnt); +} + + +int +main (int argc, char *argv[]) +{ + char *host; + /* + if (argc < 2) { + printf ("usage: %s server_host\n", argv[0]); + exit (1); + } + */ + host = "127.0.0.1"; + store_service_1 (host); +exit (0); +} diff --git a/lab2/rpc_store_service (copy)/store_service_client.o b/lab2/rpc_store_service (copy)/store_service_client.o new file mode 100644 index 0000000000000000000000000000000000000000..0e815cb86607de320ee597ac2fd59410cf812326 GIT binary patch literal 14864 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 Dskt|8 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service (copy)/store_service_clnt.c b/lab2/rpc_store_service (copy)/store_service_clnt.c new file mode 100644 index 0000000..20c4bc7 --- /dev/null +++ b/lab2/rpc_store_service (copy)/store_service_clnt.c @@ -0,0 +1,54 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include /* for memset */ +#include "store_service.h" + +/* Default timeout can be changed using clnt_control() */ +static struct timeval TIMEOUT = { 25, 0 }; + +enum clnt_stat +init_1(void *clnt_res, CLIENT *clnt) +{ + return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, + (xdrproc_t) xdr_void, (caddr_t) clnt_res, + TIMEOUT)); + +} + +enum clnt_stat +store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) +{ + store_1_argument arg; + arg.sender = sender; + arg.receiver = receiver; + arg.msg_id = msg_id; + arg.msg = msg; + arg.md5 = md5; + return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) +{ + return (clnt_call(clnt, getNumMessages, + (xdrproc_t) xdr_wrapstring, (caddr_t) &user, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getmessage_1(char *user, u_int msg_id, response *res, int *clnt_res, CLIENT *clnt) +{ + getmessage_1_argument arg; + arg.user = user; + arg.msg_id = msg_id; + arg.res = res; + return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} diff --git a/lab2/rpc_store_service (copy)/store_service_clnt.o b/lab2/rpc_store_service (copy)/store_service_clnt.o new file mode 100644 index 0000000000000000000000000000000000000000..d7481f3537da16b13e5297a4f63214f87ef25725 GIT binary patch literal 12720 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 L{Xk4M?*D%Q^qmfD literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service (copy)/store_service_server b/lab2/rpc_store_service (copy)/store_service_server new file mode 100755 index 0000000000000000000000000000000000000000..d9ce0ed54c417b4158cdeb5c0b4574c898c382bc GIT binary patch literal 29184 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 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service (copy)/store_service_server.c b/lab2/rpc_store_service (copy)/store_service_server.c new file mode 100644 index 0000000..6bf8516 --- /dev/null +++ b/lab2/rpc_store_service (copy)/store_service_server.c @@ -0,0 +1,200 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + +/* Define the structure of the message list */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +struct user{ + char name[MAX_SIZE]; + unsigned long num_msgs; + struct user *next; + struct msg *sent_msgs_head; +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* Initialize the lists to NULL */ + usr_head = NULL; + //usr_head->next = NULL; + //usr_head->sent_msgs_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + // printf("sender: %s\n", sender); + // printf("receiver: %s\n", receiver); + // printf("msg_id: %d\n", msg_id); + // printf("msg: %s\n", msg); + // printf("md5: %s\n", md5); + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + printf("name: %s\n", temp->name); + if(strcmp(temp->name, sender) == 0){ //User found in the list + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + //if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + temp->next = NULL; + temp->sent_msgs_head = NULL; + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *res, int *result, struct svc_req *rqstp) +{ + //result = (response *) malloc(sizeof(response)); + bool_t retval = TRUE; + + struct user *temp = usr_head; + struct msg *msg_temp; + printf("he1\n"); + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + printf("he1\n"); + /* Search for the message with that ID */ + msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + printf("hey2\n"); + printf("Message id: %d\n", msg_temp->id); + if(msg_temp->id == msg_id){ //Message ID found + printf("hey3\n"); + strncpy(res->msg, msg_temp->body, strlen(msg_temp->body)+1); + strncpy(res->md5, msg_temp->md5, strlen(msg_temp->md5)+1); + //res->msg = msg_temp->body; + //res->md5 = malloc(sizeof(msg_temp->md5)); + //res->md5 = msg_temp->md5; + printf("MEssage body: %s\n", msg_temp->body); + printf("MEssage body check: %s\n", res->msg); + printf("MEssage md5: %s\n", msg_temp->md5); + printf("hey4\n"); + //strncpy(res->md5, msg_temp->md5, strlen(msg_temp->md5)+1); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + printf("hey\n"); + res = NULL; + printf("hey\n"); + return retval; + } + temp = temp->next; + } + res = NULL; //User was not found, thus message does not exist + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + /* + * Insert additional freeing code here, if needed + */ + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + // if (*msg_head == NULL){ /* Queue is empty */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + // else{ + // /* If the queue is not empty, append it to the beginning */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + + return 0; +} diff --git a/lab2/rpc_store_service (copy)/store_service_server.o b/lab2/rpc_store_service (copy)/store_service_server.o new file mode 100644 index 0000000000000000000000000000000000000000..be3eb2456ef94f90fdf3fd59c990f5341dc9b10b GIT binary patch literal 16696 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 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service (copy)/store_service_svc.c b/lab2/rpc_store_service (copy)/store_service_svc.c new file mode 100644 index 0000000..4d78591 --- /dev/null +++ b/lab2/rpc_store_service (copy)/store_service_svc.c @@ -0,0 +1,143 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" +#include +#include +#include +#include +#include +#include +#include + +#ifndef SIG_PF +#define SIG_PF void(*)(int) +#endif + +int +_init_1 (void *argp, void *result, struct svc_req *rqstp) +{ + return (init_1_svc(result, rqstp)); +} + +int +_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); +} + +int +_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) +{ + return (getnummessages_1_svc(*argp, result, rqstp)); +} + +int +_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (getmessage_1_svc(argp->user, argp->msg_id, argp->res, result, rqstp)); +} + +static void +store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) +{ + union { + store_1_argument store_1_arg; + char *getnummessages_1_arg; + getmessage_1_argument getmessage_1_arg; + } argument; + union { + int store_1_res; + int getnummessages_1_res; + int getmessage_1_res; + } result; + bool_t retval; + xdrproc_t _xdr_argument, _xdr_result; + bool_t (*local)(char *, void *, struct svc_req *); + + switch (rqstp->rq_proc) { + case NULLPROC: + (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); + return; + + case init: + _xdr_argument = (xdrproc_t) xdr_void; + _xdr_result = (xdrproc_t) xdr_void; + local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; + break; + + case store: + _xdr_argument = (xdrproc_t) xdr_store_1_argument; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; + break; + + case getNumMessages: + _xdr_argument = (xdrproc_t) xdr_wrapstring; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; + break; + + case getMessage: + _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; + break; + + default: + svcerr_noproc (transp); + return; + } + memset ((char *)&argument, 0, sizeof (argument)); + if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + svcerr_decode (transp); + return; + } + retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); + if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { + svcerr_systemerr (transp); + } + if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + fprintf (stderr, "%s", "unable to free arguments"); + exit (1); + } + if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) + fprintf (stderr, "%s", "unable to free results"); + + return; +} + +int +main (int argc, char **argv) +{ + register SVCXPRT *transp; + + pmap_unset (STORE_SERVICE, STORE_VERSION); + + transp = svcudp_create(RPC_ANYSOCK); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create udp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); + exit(1); + } + + transp = svctcp_create(RPC_ANYSOCK, 0, 0); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create tcp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); + exit(1); + } + + svc_run (); + fprintf (stderr, "%s", "svc_run returned"); + exit (1); + /* NOTREACHED */ +} diff --git a/lab2/rpc_store_service (copy)/store_service_svc.o b/lab2/rpc_store_service (copy)/store_service_svc.o new file mode 100644 index 0000000000000000000000000000000000000000..6bd1add8d44d4e8c962065a08e8f0cf5ea010a69 GIT binary patch literal 20616 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 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service (copy)/store_service_xdr.c b/lab2/rpc_store_service (copy)/store_service_xdr.c new file mode 100644 index 0000000..e75dc70 --- /dev/null +++ b/lab2/rpc_store_service (copy)/store_service_xdr.c @@ -0,0 +1,46 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" + +bool_t +xdr_response (XDR *xdrs, response *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + if (!xdr_pointer (xdrs, (char **)&objp->res, sizeof (response), (xdrproc_t) xdr_response)) + return FALSE; + return TRUE; +} diff --git a/lab2/rpc_store_service (copy)/store_service_xdr.o b/lab2/rpc_store_service (copy)/store_service_xdr.o new file mode 100644 index 0000000000000000000000000000000000000000..7a6c4daa514bc474501475f15e1689973635596d GIT binary patch literal 7440 zcmb_geQX>@6`#Gc@7BK9KF6`^C@DG8ICZ4@YzN292Tj~KPA(+`lQz(ZitBxB>?6Jp zcK4EVnxuu0Qq!VRs?s8*$sg?>5lR6eL`x*37LW=mqAEh6e}M!PN?VBp1PTx}yx+{5 z%X)lP#K%at^XB*7`^|fAW@mTr!HGRPLzX3Uv&2?$eWXz#;=R}9F)5CTWujB;PtCoR zI{98aHFx|FFp zB=@W6CnKL-Mwu#wH-e;I2@xPQLv;-#(u`8qik%j*SCSa9u>pvO#Ao(N;9j~)-y#W$_4A}& zs#Z51UG`PNyNceFh<0PslbqimqCJppMHTIZuiVT1(G`CnS*}oYrLBanrjxW6Y`Jt(Z0tg<5N4if#cPIRG8)IE==8ww(# zxKI|w(HG=6Rp)rW&e1oIqYnzj(NB`FI<3C;u2{HzMSG{UG#bB&v^^r+zB#rfw!4cC zyEP&f+Zqc~y_#5T7oxd?P+E0#u!?qB;r3VzP8JRAwmQQ`GHbbAz^HYt>|#yQc6XPy zUeZt2E6J{nCbsp&?L=u`r|jsqZe6~+3+(Y`$$yT*x`; zTHa0O5QslpalGU-9`#zJJhVvL#V-^c(vt)qX*iFHAlX_}`Xq;2tiRbWRPDE_2iE`9 ze&H+$_E`)yf?;TN7oE)^N_?hVno7tE9*?zjHsd*>nwEpSo1Sv~qT_j)DJMOg&bU+6 zq9e@+CzB7YmjNCvmmG2}S46g4o=N)+v#nC{f*wKX9TVdp+c6>1>0BmHGx)-Fa!%ne zYj^IOm=M>4s+PRMRLRLFbU-TmKrD5O+;qkjo>R&bQ;ia!MM6}b<5$X_Us9xXYw&r~ zW!F#4gBs`SA5G^yA8R2qnAj^bAhbvu!FRkPjz_i2yA`*btEV4`v4%RTD9Fl#DXLXV zSE@d86}$HCPmB)_CpIKUl0%90L&Kv(qeGh#14X}Da_*RNN{(B|(JpMBxVgsJ;THvi@pm zIV|$c&QdW|S?Z!&IGphvF*sc=I)hWhF?gix9`Y)goHMwiKp_>fv;_G9y3Ks2=nc+f zvg>i*zjV)#BEQB~kk;bknXR3_r9CE_b%a9}bPTMMC$Hh0=W(I5qjGsOw*^>+e%)As+*E z{Xe=MuPsmz5XNcJpoMXYG-zRdpEgxtA>VpUm{{avz5y;D&kgX_1sH(v z!gqIR7Z&uaYS6->qX7z@wgotz;Y$N`kZVKOYWm^(!fbdP!(Q9z$NF}{8`kLPC(VxaF3@0s(SUBY9Cny*Lj%s z-&({TUnOX;N1ZhP6@b)Co>g2g6F;yB{y+c^@;}Wuc2;oppAXnCC7q5(e$CMs_F5*f zz5{``(C=aP?}UAuf_FzUfMedhJl<~L@9=oH zfnVe}Ck^}+9)Hrnuku)*H9D_BVigCTK^t`id_l#lx z9>;UmzkRxc#&;RG-XC`xcqiwZHt^r^_>h60Vf!Nnj7a6}~;Q0DN zyK3MY6fA7k>wKqqoZ?5U#_wYPl7VagCl|rb82CNR^9=)ko#XkQfuCgjhX!tOoPRWM z&Honz@8EggH}Lv-fv-_&I$zDd&cHR#h=H%?c(yW*=@^o{`wjaF$CESgUF>w+z|Tt- zA--tvXBa(MKYi9Ga{MwJdu=W-pN+! ztDkd-4D9RZ#H(Jc|b+FJU7 zlW#LXvi;MXh;b9fA0XiTZ~aHf*W|=hdj96%W^7hA;>;({_?{jpBc^M>%PK#1Bd{ew>FUCp@>YVa!k(Ly;%j zM)TYB&mNlICzu~+gE@bdFmUQPNtErb7S;bbcnA=r=hyv1jG6wMmMDMy+*6~4{&VcF z^|~*yzaHye&#T90NC0MpDJtw=(}vvZ{5AY_5*pPn!SzeAA?k-)Qv2(=;(gz|ci=M3 q{^u|VG&BB2vBUgrj{hg@K!1G7?-g@?EK{TTzs)aRF31ASod4hAoVdyW literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service/Makefile b/lab2/rpc_store_service/Makefile new file mode 100644 index 0000000..3f7252c --- /dev/null +++ b/lab2/rpc_store_service/Makefile @@ -0,0 +1,47 @@ + +# This is a template Makefile generated by rpcgen + +# Parameters + +CLIENT = store_service_client +SERVER = store_service_server + +SOURCES_CLNT.c = +SOURCES_CLNT.h = +SOURCES_SVC.c = +SOURCES_SVC.h = +SOURCES.x = store_service.x + +TARGETS_SVC.c = store_service_svc.c store_service_server.c store_service_xdr.c +TARGETS_CLNT.c = store_service_clnt.c store_service_client.c store_service_xdr.c +TARGETS = store_service.h store_service_xdr.c store_service_clnt.c store_service_svc.c store_service_client.c store_service_server.c + +OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) +OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) +# Compiler flags + +CPPFLAGS += -D_REENTRANT +CFLAGS += -g +LDLIBS += -lnsl -lpthread + RPCGENFLAGS = + +# Targets + +all : $(CLIENT) $(SERVER) + +$(TARGETS) : $(SOURCES.x) + rpcgen $(RPCGENFLAGS) $(SOURCES.x) + +$(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) + +$(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) + +$(CLIENT) : $(OBJECTS_CLNT) + $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) + +$(SERVER) : $(OBJECTS_SVC) + $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) + + clean: + $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) + diff --git a/lab2/rpc_store_service/segurodevida.c b/lab2/rpc_store_service/segurodevida.c new file mode 100644 index 0000000..601ff5b --- /dev/null +++ b/lab2/rpc_store_service/segurodevida.c @@ -0,0 +1,182 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + +/* Define the structure of the message list */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +struct user{ + char name[MAX_SIZE]; + unsigned long num_msgs; + struct user *next; + struct msg *sent_msgs_head; +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct msg * msg_head; +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* Initialize the lists to NULL */ + usr_head = NULL; + usr_head->next = NULL; + usr_head->sent_msgs_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + printf("1\n"); + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + printf("2\n"); + if(strcmp(temp->name, sender) == 0){ //User found in the list + printf("3\n"); + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("4\n"); + if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + printf("5\n"); + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("6\n"); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + if(msg_temp->id == msg_id){ //Message ID found + strcpy(result->msg, msg_temp->body); + strcpy(result->md5, msg_temp->md5); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + result = NULL; + return retval; + } + temp = temp->next; + } + result = NULL; //User was not found, thus message does not exist + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + /* + * Insert additional freeing code here, if needed + */ + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + // if (*msg_head == NULL){ /* Queue is empty */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + // else{ + // /* If the queue is not empty, append it to the beginning */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + + return 0; +} diff --git a/lab2/rpc_store_service/store_service.h b/lab2/rpc_store_service/store_service.h new file mode 100644 index 0000000..25dff07 --- /dev/null +++ b/lab2/rpc_store_service/store_service.h @@ -0,0 +1,93 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#ifndef _STORE_SERVICE_H_RPCGEN +#define _STORE_SERVICE_H_RPCGEN + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_SIZE 256 +#define MAX_MD5 33 + +struct response { + char *msg; + char *md5; +}; +typedef struct response response; + +struct store_1_argument { + char *sender; + char *receiver; + u_int msg_id; + char *msg; + char *md5; +}; +typedef struct store_1_argument store_1_argument; + +struct getmessage_1_argument { + char *user; + u_int msg_id; +}; +typedef struct getmessage_1_argument getmessage_1_argument; + +#define STORE_SERVICE 666 +#define STORE_VERSION 1 + +#if defined(__STDC__) || defined(__cplusplus) +#define init 1 +extern enum clnt_stat init_1(void *, CLIENT *); +extern bool_t init_1_svc(void *, struct svc_req *); +#define store 2 +extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); +extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); +extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); +#define getMessage 4 +extern enum clnt_stat getmessage_1(char *, u_int , response *, CLIENT *); +extern bool_t getmessage_1_svc(char *, u_int , response *, struct svc_req *); +extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); + +#else /* K&R C */ +#define init 1 +extern enum clnt_stat init_1(); +extern bool_t init_1_svc(); +#define store 2 +extern enum clnt_stat store_1(); +extern bool_t store_1_svc(); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(); +extern bool_t getnummessages_1_svc(); +#define getMessage 4 +extern enum clnt_stat getmessage_1(); +extern bool_t getmessage_1_svc(); +extern int store_service_1_freeresult (); +#endif /* K&R C */ + +/* the xdr functions */ + +#if defined(__STDC__) || defined(__cplusplus) +extern bool_t xdr_response (XDR *, response*); +extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); +extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); + +#else /* K&R C */ +extern bool_t xdr_response (); +extern bool_t xdr_store_1_argument (); +extern bool_t xdr_getmessage_1_argument (); + +#endif /* K&R C */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/lab2/rpc_store_service/store_service.x b/lab2/rpc_store_service/store_service.x new file mode 100644 index 0000000..e5a8648 --- /dev/null +++ b/lab2/rpc_store_service/store_service.x @@ -0,0 +1,17 @@ +const MAX_SIZE = 256; +const MAX_MD5 = 33; + +struct response{ + string msg; + string md5; +}; + +program STORE_SERVICE{ + version STORE_VERSION{ + void init() = 1; + int store(string sender, string receiver, + unsigned int msg_id, string msg, string md5) = 2; + int getNumMessages(string user) = 3; + response getMessage(string user, unsigned int msg_id) = 4; + } = 1; +} = 666; \ No newline at end of file diff --git a/lab2/rpc_store_service/store_service_client b/lab2/rpc_store_service/store_service_client new file mode 100755 index 0000000000000000000000000000000000000000..7e1d6f5c53c0e080899bc94dafef5ce13f35b8cb GIT binary patch literal 24232 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 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service/store_service_client.c b/lab2/rpc_store_service/store_service_client.c new file mode 100644 index 0000000..e74c553 --- /dev/null +++ b/lab2/rpc_store_service/store_service_client.c @@ -0,0 +1,127 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + + +void +store_service_1(char *host) +{ + CLIENT *clnt; + /* + enum clnt_stat retval_1; + void *result_1; + enum clnt_stat retval_2; + int result_2; + char *store_1_sender; + char *store_1_receiver; + u_int store_1_msg_id; + char *store_1_msg; + char *store_1_md5; + enum clnt_stat retval_3; + int result_3; + char *getnummessages_1_user; + enum clnt_stat retval_4; + response result_4; + char *getmessage_1_user; + u_int getmessage_1_msg_id; + +#ifndef DEBUG + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } +#endif *//* DEBUG */ + /* + retval_1 = init_1(&result_1, clnt); + if (retval_1 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_2 = store_1(store_1_sender, store_1_receiver, store_1_msg_id, store_1_msg, store_1_md5, &result_2, clnt); + if (retval_2 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_3 = getnummessages_1(getnummessages_1_user, &result_3, clnt); + if (retval_3 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_4 = getmessage_1(getmessage_1_user, getmessage_1_msg_id, &result_4, clnt); + if (retval_4 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } +#ifndef DEBUG + clnt_destroy (clnt); +#endif *//* DEBUG */ + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } + int result; + init_1(&result, clnt); + printf("Result of init: %d\n",result); + store_1("sender1", "receiver1", 1, "blablabla", "blablamd5", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver2", 2, "blablabla2", "blablamd52", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 1, "blablabla11", "blablamd511", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 2, "blablabla22", "blablamd522", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 3, "blablabla22", "blablamd533", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 3, "blablabla3", "blablamd53", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 4, "blablabla4", "blablamd54", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 5, "blablabla5", "blablamd55", &result, clnt); + printf("Result of the send: %d\n", result); + + response res; + getmessage_1("sender1", 1, &res, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender2", 2, &res, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender1", 4, &res, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender3", 1, &res, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender1", 6, &res, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + + + + + + clnt_destroy (clnt); +} + + +int +main (int argc, char *argv[]) +{ + char *host; + /* + if (argc < 2) { + printf ("usage: %s server_host\n", argv[0]); + exit (1); + } + */ + host = "127.0.0.1"; + store_service_1 (host); +exit (0); +} diff --git a/lab2/rpc_store_service/store_service_client.o b/lab2/rpc_store_service/store_service_client.o new file mode 100644 index 0000000000000000000000000000000000000000..587d5789afe48fc8eb58fc6c7a3c9535a3a86fa3 GIT binary patch literal 14824 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 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service/store_service_clnt.c b/lab2/rpc_store_service/store_service_clnt.c new file mode 100644 index 0000000..91d8293 --- /dev/null +++ b/lab2/rpc_store_service/store_service_clnt.c @@ -0,0 +1,53 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include /* for memset */ +#include "store_service.h" + +/* Default timeout can be changed using clnt_control() */ +static struct timeval TIMEOUT = { 25, 0 }; + +enum clnt_stat +init_1(void *clnt_res, CLIENT *clnt) +{ + return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, + (xdrproc_t) xdr_void, (caddr_t) clnt_res, + TIMEOUT)); + +} + +enum clnt_stat +store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) +{ + store_1_argument arg; + arg.sender = sender; + arg.receiver = receiver; + arg.msg_id = msg_id; + arg.msg = msg; + arg.md5 = md5; + return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) +{ + return (clnt_call(clnt, getNumMessages, + (xdrproc_t) xdr_wrapstring, (caddr_t) &user, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getmessage_1(char *user, u_int msg_id, response *clnt_res, CLIENT *clnt) +{ + getmessage_1_argument arg; + arg.user = user; + arg.msg_id = msg_id; + return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_response, (caddr_t) clnt_res, + TIMEOUT)); +} diff --git a/lab2/rpc_store_service/store_service_clnt.o b/lab2/rpc_store_service/store_service_clnt.o new file mode 100644 index 0000000000000000000000000000000000000000..caf03e41c842e025264f766c9b5542e068e7223f GIT binary patch literal 12696 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 aF?_$qlHmUFHn))f9rR)KH1OSx`~P3cWCTe7 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service/store_service_server b/lab2/rpc_store_service/store_service_server new file mode 100755 index 0000000000000000000000000000000000000000..c7853427700be5b5601feeb13468c7381eb9fa4c GIT binary patch literal 28792 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 M`og2C6MX%@0EZABvj6}9 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service/store_service_server.c b/lab2/rpc_store_service/store_service_server.c new file mode 100644 index 0000000..7ea55fa --- /dev/null +++ b/lab2/rpc_store_service/store_service_server.c @@ -0,0 +1,198 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + +/* Define the structure of the message list */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +struct user{ + char name[MAX_SIZE]; + unsigned long num_msgs; + struct user *next; + struct msg *sent_msgs_head; +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* Initialize the lists to NULL */ + usr_head = NULL; + //usr_head->next = NULL; + //usr_head->sent_msgs_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + // printf("sender: %s\n", sender); + // printf("receiver: %s\n", receiver); + // printf("msg_id: %d\n", msg_id); + // printf("msg: %s\n", msg); + // printf("md5: %s\n", md5); + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + printf("name: %s\n", temp->name); + if(strcmp(temp->name, sender) == 0){ //User found in the list + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + //if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + temp->next = NULL; + temp->sent_msgs_head = NULL; + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) +{ + //result = (response *) malloc(sizeof(response)); + bool_t retval = TRUE; + + //struct user *temp = usr_head; + //struct msg *msg_temp; + + // while(temp != NULL){ + // if(strcmp(temp->name, user) == 0){ //Sender is found in the list + // printf("he1\n"); + // /* Search for the message with that ID */ + // msg_temp = temp->sent_msgs_head; + // /* Iterate through the list of sent messages */ + // while(msg_temp != NULL){ + // printf("hey2\n"); + // printf("Message id: %d\n", msg_temp->id); + // if(msg_temp->id == msg_id){ //Message ID found + // printf("hey3\n"); + // //strncpy(result->msg, msg_temp->body, strlen(msg_temp->body)+1); + // //result->msg = msg_temp->body; + // //result->md5 = malloc(sizeof(msg_temp->md5)); + // //result->md5 = msg_temp->md5; + // printf("MEssage body: %s\n", msg_temp->body); + // printf("MEssage body check: %s\n", result->msg); + // printf("MEssage md5: %s\n", msg_temp->md5); + // printf("hey4\n"); + // //strncpy(result->md5, msg_temp->md5, strlen(msg_temp->md5)+1); + // return retval; + // } + // msg_temp = msg_temp->next; + // } + // /* At this point, no message with such ID was found for that user. Stop iterating */ + // printf("hey\n"); + // result = NULL; + // printf("hey\n"); + // return retval; + // } + // temp = temp->next; + // } + // result = NULL; //User was not found, thus message does not exist + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + /* + * Insert additional freeing code here, if needed + */ + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + // if (*msg_head == NULL){ /* Queue is empty */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + // else{ + // /* If the queue is not empty, append it to the beginning */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + + return 0; +} diff --git a/lab2/rpc_store_service/store_service_server.o b/lab2/rpc_store_service/store_service_server.o new file mode 100644 index 0000000000000000000000000000000000000000..8e84faf278ab58d4e0e5d3031b41f5fc3d358457 GIT binary patch literal 15256 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 literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service/store_service_svc.c b/lab2/rpc_store_service/store_service_svc.c new file mode 100644 index 0000000..2bf4954 --- /dev/null +++ b/lab2/rpc_store_service/store_service_svc.c @@ -0,0 +1,143 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" +#include +#include +#include +#include +#include +#include +#include + +#ifndef SIG_PF +#define SIG_PF void(*)(int) +#endif + +int +_init_1 (void *argp, void *result, struct svc_req *rqstp) +{ + return (init_1_svc(result, rqstp)); +} + +int +_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); +} + +int +_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) +{ + return (getnummessages_1_svc(*argp, result, rqstp)); +} + +int +_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (getmessage_1_svc(argp->user, argp->msg_id, result, rqstp)); +} + +static void +store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) +{ + union { + store_1_argument store_1_arg; + char *getnummessages_1_arg; + getmessage_1_argument getmessage_1_arg; + } argument; + union { + int store_1_res; + int getnummessages_1_res; + response getmessage_1_res; + } result; + bool_t retval; + xdrproc_t _xdr_argument, _xdr_result; + bool_t (*local)(char *, void *, struct svc_req *); + + switch (rqstp->rq_proc) { + case NULLPROC: + (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); + return; + + case init: + _xdr_argument = (xdrproc_t) xdr_void; + _xdr_result = (xdrproc_t) xdr_void; + local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; + break; + + case store: + _xdr_argument = (xdrproc_t) xdr_store_1_argument; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; + break; + + case getNumMessages: + _xdr_argument = (xdrproc_t) xdr_wrapstring; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; + break; + + case getMessage: + _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; + _xdr_result = (xdrproc_t) xdr_response; + local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; + break; + + default: + svcerr_noproc (transp); + return; + } + memset ((char *)&argument, 0, sizeof (argument)); + if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + svcerr_decode (transp); + return; + } + retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); + if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { + svcerr_systemerr (transp); + } + if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + fprintf (stderr, "%s", "unable to free arguments"); + exit (1); + } + if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) + fprintf (stderr, "%s", "unable to free results"); + + return; +} + +int +main (int argc, char **argv) +{ + register SVCXPRT *transp; + + pmap_unset (STORE_SERVICE, STORE_VERSION); + + transp = svcudp_create(RPC_ANYSOCK); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create udp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); + exit(1); + } + + transp = svctcp_create(RPC_ANYSOCK, 0, 0); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create tcp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); + exit(1); + } + + svc_run (); + fprintf (stderr, "%s", "svc_run returned"); + exit (1); + /* NOTREACHED */ +} diff --git a/lab2/rpc_store_service/store_service_svc.o b/lab2/rpc_store_service/store_service_svc.o new file mode 100644 index 0000000000000000000000000000000000000000..fb15e5931869fe419846473e7b4f82823ee93674 GIT binary patch literal 20624 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 Ke3L0;Rq?<5ohJ+c literal 0 HcmV?d00001 diff --git a/lab2/rpc_store_service/store_service_xdr.c b/lab2/rpc_store_service/store_service_xdr.c new file mode 100644 index 0000000..ecef5da --- /dev/null +++ b/lab2/rpc_store_service/store_service_xdr.c @@ -0,0 +1,44 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" + +bool_t +xdr_response (XDR *xdrs, response *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + return TRUE; +} diff --git a/lab2/rpc_store_service/store_service_xdr.o b/lab2/rpc_store_service/store_service_xdr.o new file mode 100644 index 0000000000000000000000000000000000000000..ae406f5bd8a3ac8528cfb907288a241090bb42a0 GIT binary patch literal 7200 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 literal 0 HcmV?d00001 diff --git a/lab2/segurodevida.c b/lab2/segurodevida.c new file mode 100644 index 0000000..601ff5b --- /dev/null +++ b/lab2/segurodevida.c @@ -0,0 +1,182 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + +/* Define the structure of the message list */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +struct user{ + char name[MAX_SIZE]; + unsigned long num_msgs; + struct user *next; + struct msg *sent_msgs_head; +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct msg * msg_head; +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* Initialize the lists to NULL */ + usr_head = NULL; + usr_head->next = NULL; + usr_head->sent_msgs_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + printf("1\n"); + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + printf("2\n"); + if(strcmp(temp->name, sender) == 0){ //User found in the list + printf("3\n"); + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("4\n"); + if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + printf("5\n"); + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("6\n"); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + if(msg_temp->id == msg_id){ //Message ID found + strcpy(result->msg, msg_temp->body); + strcpy(result->md5, msg_temp->md5); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + result = NULL; + return retval; + } + temp = temp->next; + } + result = NULL; //User was not found, thus message does not exist + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + /* + * Insert additional freeing code here, if needed + */ + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + // if (*msg_head == NULL){ /* Queue is empty */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + // else{ + // /* If the queue is not empty, append it to the beginning */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + + return 0; +} diff --git a/lab2/server b/lab2/server new file mode 100755 index 0000000000000000000000000000000000000000..cd515d92dc490e3d5cc32d7af79c0a059b974e50 GIT binary patch literal 37168 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 Jb8gA{{~zJ3EYJV| literal 0 HcmV?d00001 diff --git a/lab2/server.c b/lab2/server.c new file mode 100644 index 0000000..00fc3fa --- /dev/null +++ b/lab2/server.c @@ -0,0 +1,629 @@ +#include /* For addresses in PF_INET */ +#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ +#include +#include /* To use ifreq */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" +#include "msg_list.h" +#include "server.h" + +/* Handler for interrupts */ +void interruptHandler(int sig){ + printf("[SERVER]: Handling interrupt. Closing server socket...\n"); + /* Close the server socket and exit with the resulting return value. 0 if OK, -1 if error */ + exit(close(s_server)); +} + +int main(int argc, char * argv[]){ + struct sockaddr_in server_addr, client_addr; + int sc; + int val; + int server_port; + + /* Check command */ + if(argc != 3 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p \n"); + exit(-1); + } + + /* Check if the port number passed as parameter is valid */ + server_port = atoi(argv[2]); + if ((server_port < 1024) || (server_port > 65535)) { + printf("Error: Port must be in the range 1024 <= port <= 65535\n"); + exit(-1); + } + + /* Initialize mutexes */ + if(pthread_mutex_init(&socket_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_mutex_init(&list_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + /* Initialize condition variable for copying the socket descriptor in the thread */ + if(pthread_cond_init(&free_socket, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + + /* Prepare thread conditions */ + thread = (pthread_t) malloc((sizeof(thread))); + pthread_attr_init(&thread_att); + pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); + + s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(s_server == -1){ + perror("Error when creating the socket"); + exit(-1); + } + + /* Obtain the IP address attached to interface eth0 */ + struct ifreq ifr; + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1); + ioctl(s_server, SIOCGIFADDR, &ifr); + + val = 1; + setsockopt(s_server, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + + /* Initialize the address that will be attached to the listening socket */ + bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ + server_addr.sin_family = AF_INET; + server_addr.sin_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; /* Listens to IP address in eth0 interface*/ + server_addr.sin_port = htons(server_port); /* Port number */ + + /* Bind the address to the listening socket */ + if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + perror("Error when binding the address to the socket"); + exit(-1); + } + + /* Set the socket to listen incoming requests */ + if(listen(s_server, 5) == -1){ + perror("Error when listening to the socket"); + exit(-1); + } /* Backlog is 5, maximum number of queued requests is 5 */ + + /* Once the server is listening, print inicial prompt */ + printf("s> init server %s:%d\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), + ntohs(server_addr.sin_port)); + + /* Define the variable for the client address size. It should be declared + as variable because the size depends on the incoming request and is an + output parameter of the 'accept' function */ + socklen_t cl_addr_size = sizeof(client_addr); + + /* Set the control variable to TRUE so that the listening thread waits + until the thread stores a local copy of the socket descriptor */ + busy_socket = TRUE; + + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ + fprintf(stderr, "%s", "s> "); /* Prompt */ + + /* Loop for accepting and creating threads for each incoming request */ + while(1){ + /* Accept client connections. If error, shut down the server */ + sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); + if(sc == -1){ + perror("Error when accepting the connection"); + /* Close listening server socket */ + close(s_server); + exit(-1); + } + /* Once accepted, create a thread to handle the request. If error, shut down the server */ + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { + perror("[SERVER]: Error when creating the thread"); + /* Close both listening socket and the one resulting from the accept operation */ + close(s_server); + close(sc); + exit(-1); + } + + /* Wait for the thread to copy the socket descriptor locally */ + pthread_mutex_lock(&socket_mtx); + while(busy_socket == TRUE) + pthread_cond_wait(&free_socket, &socket_mtx); + busy_socket = TRUE; + pthread_mutex_unlock(&socket_mtx); + + } + + exit(0); +} + +void * manageRequest(int *sd){ + int s_local; + char operation_buff[MAX_COMMAND]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; + char md5_buff[MAX_MD5]; + int n; + int m; + char out; + + /* Copy locally the socket descriptor */ + pthread_mutex_lock(&socket_mtx); + s_local = *sd; + busy_socket = FALSE; + pthread_cond_signal(&free_socket); + pthread_mutex_unlock(&socket_mtx); + + /* Read the operation. If error, close the socket and terminate the thread */ + n = readLine(s_local, operation_buff, MAX_COMMAND); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Read the username and convert to uppercase. If error, close the socket + and terminate the thread */ + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* For convention of the server, convert every username to uppercase */ + toUpperCase(user_buff); + + /* Check the operation */ + if (strcmp(operation_buff, "REGISTER") == 0){ + /* Register the user */ + pthread_mutex_lock(&list_mtx); + out = registerUser(user_buff); + pthread_mutex_unlock(&list_mtx); + + } + else if (strcmp(operation_buff, "UNREGISTER") == 0){ + /* Unregister the user */ + pthread_mutex_lock(&list_mtx); + out = unregisterUser(user_buff); + pthread_mutex_unlock(&list_mtx); + + } + else if(strcmp(operation_buff, "CONNECT") == 0){ + + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + uint16_t client_port; + + n = readLine(s_local, msg_buff, MAX_MSG); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Get the port number from the socket */ + client_port = (uint16_t) atoi(msg_buff); + /* Get the client IP address attached to the socket */ + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + perror("[SERVER_THREAD]: Error when getting client address"); + /* Send error 3 to client and close socket */ + out = 3; + goto respond_to_client; + } + /* Connect the user to the server */ + pthread_mutex_lock(&list_mtx); + out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); + pthread_mutex_unlock(&list_mtx); + + + /* If result is 0, then check for the pending messages and send them */ + if(out == 0){ + /* Send code 0 for the client to open the listening thread */ + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + /* Send Pending Messages */ + pthread_mutex_lock(&list_mtx); + struct msg **pend_msg = getPendMsgHead(user_buff); + while(*pend_msg != NULL){ + pthread_mutex_unlock(&list_mtx); + char sender[MAX_USERNAME]; + char msg_body[MAX_MSG]; + + /* Get the name of the sender, the id and the body associated to the message to be sent */ + pthread_mutex_lock(&list_mtx); + strcpy(sender, (*pend_msg)->sender); + int msg_id = (*pend_msg)->id; + strcpy(msg_body, (*pend_msg)->body); + pthread_mutex_unlock(&list_mtx); + + /* Try to send the message. The 'stored' flag is set to 1 because the message + is already stored in the server */ + int err = sendMessage(sender, user_buff, msg_body, md5_buff, msg_id, 1); + + /* If the message could not be delivered/stored, then exit the loop */ + if(err != 0) goto destroy_thread; + + /* Send acknowledge to the sender. No return value is checked */ + sendAck(sender, msg_id); + + /* Remove the message from the pending message queue and iterate with the next message */ + pthread_mutex_lock(&list_mtx); + *pend_msg = dequeueMsg(&(*pend_msg)); + } + pthread_mutex_unlock(&list_mtx); + } + goto destroy_thread; + } + else if(strcmp(operation_buff, "DISCONNECT") == 0){ + /* Get the IP from which the command is being executed */ + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + perror("Error when getting client address"); + /* Send error 3 to client and close socket */ + out = 3; + goto respond_to_client; + } + /* Try to disconnect the user passing the IP from which the request is being made + as parameter to the function */ + pthread_mutex_lock(&list_mtx); + out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); + pthread_mutex_unlock(&list_mtx); + + } + else if(strcmp(operation_buff, "SEND") == 0){ + /* Reserve a buffer for the username of the receiver */ + char dest_user_buff[MAX_USERNAME]; + + /* Read the destination user from the socket */ + m = readLine(s_local, dest_user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Convert username to uppercase by convention */ + toUpperCase(dest_user_buff); + + /* Read the message from the socket */ + n = readLine(s_local, msg_buff, MAX_MSG); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* Read the MD5 hash from the socket */ + m = readLine(s_local, md5_buff, MAX_MD5); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* Check if one of the two users is not registered */ + pthread_mutex_lock(&list_mtx); + if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ + pthread_mutex_unlock(&list_mtx); + /* Send code 1 to the client and close the socket */ + out = 1; + goto respond_to_client; + } + pthread_mutex_unlock(&list_mtx); + + /* Check the status of the destination user */ + pthread_mutex_lock(&list_mtx); + char status = isConnected(dest_user_buff); + unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message + pthread_mutex_unlock(&list_mtx); + + if(status == 0){ //Not connected + /* Store the message */ + if (storeMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id) != 0){ + /* Message could not be stored so send code 2 to the client and close the socket */ + out = 2; + goto respond_to_client; + } + /* Message was stored successfully, send code 0 and message ID to the client */ + out = 0; + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + }else if(status == 1){ //Connected + /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message + is being sent for the first time and was not previously stored int he server */ + int err = sendMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id, 0); + /* If while trying to store the message, the user unregisters, value 1 will be returned */ + if(err == 1){ + out = 1; + goto respond_to_client; + }else if(err == -1){ + /* If any server error occurred and the message was not stored or sent, then send code 2 + back to the client */ + out = 2; + goto respond_to_client; + } + + /* If no server error occured, then the message was either sent or stored, so we send back + the code 0 (OK) to the client */ + out = 0; + if ((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* At this point, the message is assumed to */ + sendAck(user_buff, last_id); + } + /* The response to the client is handled within this else-of statement, so the + 'respond_to_client' label is skipped and proceed to close the socket */ + goto destroy_thread; + } + + /* Default print template */ + switch(out){ + case 0: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + break; + default: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "FAIL"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + } + + /* Label to jump previous code to respond the client and skip the default print right above, + in case other commands (as SEND) do not use a template print */ + respond_to_client: + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + destroy_thread: + if(close(s_local) == -1){ + perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + pthread_exit(NULL); +} + +/* Capitalizes the input string. String is both an input and output parameter */ +void toUpperCase(char * string){ + /* Convert to uppercase */ + int i; + for(i = 0; string[i]; i++){ + string[i] = toupper(string[i]); + } +} + +/* Return 0: Message is stored OK + Return -1: Server error (Memory space error) */ +int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id){ + /* Store the message to the receiver pending list */ + pthread_mutex_lock(&list_mtx); + int err = storeMsg(receiver, msg, msg_id, md5, sender); + pthread_mutex_unlock(&list_mtx); + + /* Error when trying to store the message */ + if(err == -1) return -1; + + fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + /* Return store OK */ + return 0; +} + +/* Return 0: Message is sent OK + Return 1: User did not exist when trying to store/send the message. Message not stored + Return 2: Message is stored, or not stored if was already stored + Return -1: Server error */ +int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored){ + int s_receiver; //Socket for the receiver of the message + struct sockaddr_in recv_addr; //Receiver address + struct hostent *recv_hp; //Host entity structure for the receiver + + s_receiver = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_receiver == -1){ + return -1; //Send error message. -1 is internally encoded as server error + } + + bzero((char *) &recv_addr, sizeof(recv_addr)); //Reserve space for the address of the receiver + + pthread_mutex_lock(&list_mtx); + recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver + pthread_mutex_unlock(&list_mtx); + /* If error when getting the host, return -1 */ + if(recv_hp == NULL) return -1; + + memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format + recv_addr.sin_family = AF_INET; + pthread_mutex_lock(&list_mtx); + recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread + pthread_mutex_unlock(&list_mtx); + + /* Try to connect to the listening thread of the receiver to send the message */ + if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ + /* If the connection with the receiver fails, assume the client + to be disconnected, disconnect it and store the message */ + pthread_mutex_lock(&list_mtx); + /* As we are internally disconnecting the user from the server, we need to bypass the + IP check, so we pass the IP of the receiver as parameter to always fulfill the condition */ + char reg = disconnectUser(receiver, getUserIP(receiver)); // No need to check for output + pthread_mutex_unlock(&list_mtx); + /* If the disconnect method returns 1, it means that the user was not found so is not + registered (it unregister while trying to store the message, so we return 1 */ + if(reg == 1){ + return 1; + } + /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the + server so we need to push it to the end of the queue. If it was stored, then nothing is done */ + if(!stored){ + if(storeMessage(sender, receiver, msg, md5, msg_id) == -1) return -1; //Return -1 if store error + } + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + /* Return 2 to indicate the message is stored but not sent */ + return 2; + } + /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ + char op[13]; + strcpy(op, "SEND_MESSAGE"); + send_msg(s_receiver, op, strlen(op)+1); + /* Send the sender name */ + send_msg(s_receiver, sender, strlen(sender)+1); + /* Send the identifier of the message */ + char id_string[11]; + sprintf(id_string, "%d", msg_id); + send_msg(s_receiver, id_string, strlen(id_string)+1); + /* Send the MD5 of the message */ + send_msg(s_receiver, md5, strlen(md5)+1); + /* Send the message */ + send_msg(s_receiver, msg, strlen(msg)+1); + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + + fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + return 0; +} + +/* Tries to send acknowledge to the sender. No return value */ +void sendAck(char * sender, unsigned int msg_id){ + int s_sender; //Socket for the receiver of the message + struct sockaddr_in sender_addr; //Sender address + struct hostent *sender_hp; //Host entity structure for the sender + + s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_sender == -1){ + /* If error when allocating resources for the socket, then exit */ + return; + } + + char ack_op[14]; + strcpy(ack_op, "SEND_MESS_ACK"); + + bzero((char *) &sender_addr, sizeof(sender_addr)); + + pthread_mutex_lock(&list_mtx); + sender_hp = gethostbyname(getUserIP(sender)); + pthread_mutex_unlock(&list_mtx); + /* If any error when getting the hoset, exit the function */ + if(sender_hp == NULL) return; + + memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); + sender_addr.sin_family = AF_INET; + + pthread_mutex_lock(&list_mtx); + sender_addr.sin_port = htons(getUserPort(sender)); + pthread_mutex_unlock(&list_mtx); + + if((connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr))) == -1){ + /* If error when connecting, exit the function */ + return; + } + + + char id_string[11]; + sprintf(id_string, "%d", msg_id); + if((send_msg(s_sender, ack_op, strlen(ack_op)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + if((send_msg(s_sender, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + + if(close(s_sender) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; +} \ No newline at end of file diff --git a/lab2/server.h b/lab2/server.h new file mode 100644 index 0000000..5fd2c95 --- /dev/null +++ b/lab2/server.h @@ -0,0 +1,27 @@ +#define MAX_COMMAND 11 + +/* Mutex & Threads */ +pthread_mutex_t socket_mtx; +pthread_mutex_t list_mtx; +pthread_t thread; +pthread_attr_t thread_att; +/* Controls the access to the socket generated by the connection 'accept' */ +pthread_cond_t free_socket; +pthread_cond_t free_list; + +/* Variable that controls the state of the socket created by the connection 'accept' */ +int busy_socket; + +/* Declare the server socket as global variable */ +int s_server; + +/* Declare the list of users */ +struct user *users; + +/* ================FUNCTION HEADERS================ */ +void interruptHandler(int sig); +void * manageRequest(int *sd); +void toUpperCase(char * string); +int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored); +void sendAck(char * sender, unsigned int msg_id); +int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int mgs_id); \ No newline at end of file diff --git a/lab2/server.o b/lab2/server.o new file mode 100644 index 0000000000000000000000000000000000000000..6fd3590549a17304fe80c790feff6c340d759d38 GIT binary patch literal 34632 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 ZaVVPgWA_YJ|L#)AfWXhMbm~<5{U1dl=cxby literal 0 HcmV?d00001 diff --git a/lab2/servidor/Makefile b/lab2/servidor/Makefile new file mode 100644 index 0000000..3a28c57 --- /dev/null +++ b/lab2/servidor/Makefile @@ -0,0 +1,26 @@ +BIN_FILES = server + +CC = gcc + + +CCGLAGS = -Wall -g + +LDFLAGS = -L$(INSTALL_PATH)/lib/ +LDLIBS = -lpthread + + +all: CFLAGS=$(CCGLAGS) +all: $(BIN_FILES) +.PHONY : all + +server: server.o read_line.o user_list.o msg_list.o + $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ + +%.o: %.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c $< + +clean: + rm -f $(BIN_FILES) *.o + +.SUFFIXES: +.PHONY : clean diff --git a/lab2/servidor/msg_list.c b/lab2/servidor/msg_list.c new file mode 100644 index 0000000..4484c2f --- /dev/null +++ b/lab2/servidor/msg_list.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include "msg_list.h" + + +/* Returns 1 if already registered; 0 if registered correctly */ +void enqueueMsg(struct msg **head, char * message, unsigned int id){ + struct msg *temp; + //Allocate the space for the new message and + temp = (struct msg *) malloc(sizeof(struct msg)); + strcpy(temp->body, message); + temp->id = id; + + if (*head == NULL){ //If list is empty + temp->next = *head; + *head = temp; + } + else{ + struct msg *last = *head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + temp->next = NULL; + } +} + +/* Deletes the message at the head of the queue */ +void removeMsg(struct msg ** head){ + struct msg *temp = *head; + //Head pointing to the next element + *head = temp->next; + //Free the resources of the first message + free(temp); + return; +} + +void printMsgs(struct msg ** head){ + printf("INSIDE THE PRINT MSGS FUNCTION!\n"); + struct msg *temp = *head; + if(temp == NULL){ + return; + } + + while(temp != NULL){ + printf("Message ID: %u", temp->id); + printf("Message body: %s", temp->body); + printf("\n"); + temp = temp->next; + } + + return; +} diff --git a/lab2/servidor/msg_list.h b/lab2/servidor/msg_list.h new file mode 100644 index 0000000..1320b12 --- /dev/null +++ b/lab2/servidor/msg_list.h @@ -0,0 +1,13 @@ +#define MAX_MSG 256 + +struct msg{ + char body[MAX_MSG]; + unsigned int id; + struct msg *next; +}; + +unsigned int last_msg_id; + +void enqueueMsg(struct msg **head, char * msg, unsigned int id); +void removeMsg(struct msg ** head); +void printMsgs(struct msg ** head); diff --git a/lab2/servidor/read_line.c b/lab2/servidor/read_line.c new file mode 100644 index 0000000..967be93 --- /dev/null +++ b/lab2/servidor/read_line.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include "read_line.h" + +int send_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = send(socket, message, l, 0); + l = l -r; /* Pending data to send */ + message = message + r; /* */ + } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + +int recv_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = recv(socket, message, l, 0); + l = l -r ; /* Pending data to receive */ + message = message + r; + } while ((l>0) && (r>=0)); /* We check the return value in case all the data was not received */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + + + +ssize_t readLine(int fd, void *buffer, size_t n) +{ + ssize_t numRead; /* num of bytes fetched by last read() */ + size_t totRead; /* total bytes read so far */ + char *buf; + char ch; + + + if (n <= 0 || buffer == NULL) { + errno = EINVAL; + return -1; + } + + buf = buffer; + totRead = 0; + + for (;;) { + numRead = read(fd, &ch, 1); /* read a byte */ + + if (numRead == -1) { + if (errno == EINTR) /* interrupted -> restart read() */ + continue; + else + return -1; /* some other error */ + } else if (numRead == 0) { /* EOF */ + if (totRead == 0) /* no byres read; return 0 */ + return 0; + else + break; + } else { /* numRead must be 1 if we get here*/ + if (ch == '\n') + break; + if (ch == '\0') + break; + if (totRead < n - 1) { /* discard > (n-1) bytes */ + totRead++; + *buf++ = ch; + } + } + } + + *buf = '\0'; + return totRead; +} diff --git a/lab2/servidor/read_line.h b/lab2/servidor/read_line.h new file mode 100644 index 0000000..e3d4c9e --- /dev/null +++ b/lab2/servidor/read_line.h @@ -0,0 +1,5 @@ +#include + +int send_msg(int socket, char *message, int length); +int recv_msg(int socket, char *message, int length); +ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab2/servidor/server.c b/lab2/servidor/server.c new file mode 100644 index 0000000..469b0fa --- /dev/null +++ b/lab2/servidor/server.c @@ -0,0 +1,308 @@ +#include /* For addresses in PF_INET */ +#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" +#include "msg_list.h" +#include "server.h" + +/* Handler for interrupts */ +void interruptHandler(int sig){ + printf("[SERVER]: Handling interrupt. Closing server socket...\n"); + exit(0); +} + +int main(int argc, char * argv[]){ + struct sockaddr_in server_addr, client_addr; + int sd, sc; + int val; + int server_port; + struct hostent *hp; + + + /* Check command */ + if(argc != 3 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p \n"); + exit(-1); + } + + /* Check if the port number passed as parameter is valid */ + server_port = atoi(argv[2]); + if ((server_port < 1024) || (server_port > 65535)) { + printf("Error: Port must be in the range 1024 <= port <= 65535\n"); + exit(-1); + } + + //printf(); + + /* Initializing mutex */ + if(pthread_mutex_init(&socket_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_mutex_init(&list_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_cond_init(&free_socket, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_cond_init(&free_list, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + + /* Prepare thread conditions */ + pthread_attr_init(&thread_att); + pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); + + sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(sd == -1){ + perror("Error when creating the socket"); + exit(-1); + } + + val = 1; + setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + + bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ + server_addr.sin_family = AF_INET; + server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ + server_addr.sin_port = htons(server_port); /* Port number */ + + if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + perror("Error when binding the address to the socket"); + exit(-1); + } + struct in_addr in; + + hp = gethostbyaddr((char*) &server_addr, sizeof(server_addr), AF_INET); + + char **p; + + for (p = hp->h_addr_list; *p != 0; p++){ + memcpy(&in.s_addr, *p, sizeof(in.s_addr)); + printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); + } + + /* Initial prompt */ + //printf("s> init server %s:%d\n", inet_ntoa(in), ntohs(server_addr.sin_port)); + + if(listen(sd, 5) == -1){ + perror("Error when listening to the socket"); + exit(-1); + } /* Backlog is 5, maximum number of queued requests is 5 */ + + socklen_t size = sizeof(client_addr); + + busy_socket = TRUE; + busy_list = FALSE; + + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ + + while(1){ + fprintf(stderr, "%s", "s> "); /* Prompt */ + + sc = accept(sd, (struct sockaddr *) &client_addr, &size); + if(sc == -1){ + perror("Error when accepting the connection"); + exit(-1); + } + thread = (pthread_t) malloc((sizeof(thread))); + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { + perror("[SERVER]: Error when creating the thread"); + exit(-1); + } + + /* Wait for the thread to copy the socket descriptor locally */ + pthread_mutex_lock(&socket_mtx); + while(busy_socket == TRUE) + pthread_cond_wait(&free_socket, &socket_mtx); + busy_socket = TRUE; + pthread_mutex_unlock(&socket_mtx); + + /* Close the created socket */ + printf("\n"); + } + + close(sd); + exit(0); + +} + +void * manageRequest(int *sd){ + int s_local; + char operation_buff[MAX_OP]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; + int n; + int m; + char out; + + /* Copy locally the socket descriptor */ + pthread_mutex_lock(&socket_mtx); + s_local = *sd; + busy_socket = FALSE; + pthread_cond_signal(&free_socket); + pthread_mutex_unlock(&socket_mtx); + + /* Read the operation */ + n = readLine(s_local, operation_buff, MAX_OP); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + /* Send Fail code to client side */ + /* + out ='2'; + send_msg(s_local, &out, sizeof(out)); + */ + exit(-1); + } + /* Read the username and convert to uppercase */ + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + /* Send Fail code to client side */ + /* + out ='2'; + send_msg(s_local, &out, sizeof(out)); + */ + exit(-1); + } + toUpperCase(user_buff); + + /* Check the operation */ + if (strcmp(operation_buff, "REGISTER") == 0){ + /* Register the user */ + pthread_mutex_lock(&list_mtx); + ////////////////////////////////////////////////////// + /* DOUBT */ + ////////////////////////////////////////////////////// + /* Wait while the list of users is being accessed */ + /* + while(free_list == TRUE) + pthread_cond_wait(&free_list, &list_mtx); + free_list = TRUE; + */ + out = registerUser(user_buff); + pthread_mutex_unlock(&list_mtx); + /* + switch(result){ + case 0: + out = '0'; + break; + case 1: + out = '1'; + break; + default: + out = '2'; + }*/ + } + else if (strcmp(operation_buff, "UNREGISTER") == 0){ + /* Unregister the user */ + pthread_mutex_lock(&list_mtx); + ////////////////////////////////////////////////////// + /* DOUBT */ + ////////////////////////////////////////////////////// + /* Wait while the list of users is being accessed */ + /* + while(free_list == TRUE) + pthread_cond_wait(&free_list, &list_mtx); + free_list = TRUE; + */ + out = unregisterUser(user_buff); + pthread_mutex_unlock(&list_mtx); + /*switch(result){ + case 0: + out = '0'; + break; + case 1: + out = '1'; + break; + default: + out = '2'; + }*/ + } + else if(strcmp(operation_buff, "CONNECT") == 0){ + + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + struct hostent *hp; + uint16_t client_port; + char * client_ip; + + n = readLine(s_local, msg_buff, MAX_MSG); + + client_port = (uint16_t) atoi(msg_buff); + + //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); + + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1) perror("Error when getting address"); + struct in_addr in; + + hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); + + char **p; + + for (p = hp->h_addr_list; *p != 0; p++){ + memcpy(&in.s_addr, *p, sizeof(in.s_addr)); + printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); + } + + + //client_port = client_addr_local.sin_port; + + printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); + + pthread_mutex_lock(&list_mtx); + out = connectUser(user_buff, msg_buff, client_port); + pthread_mutex_unlock(&list_mtx); + + }/* + else if(strcmp(operation_buff, "DISCONNECT") == 0){ + pthread_mutex_lock(&list_mtx); + out = disconnectUser(user_buff); + pthread_mutex_unlock(&list_mtx); + }*/ + + + + write(1, user_buff, m); + + /* + + + struct sockaddr_in test_addr; + + getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); + //test_addr.sin_addr is of type struct in_addr + char * ip = inet_ntoa(test_addr.sin_addr); + printf("CLIENT ADDRESS: %s\n", ip); + printf("CLIENT PORT NUMBER: %d\n", client_port); + */ + + send_msg(s_local, &out, sizeof(out)); + + if(close(s_local) == -1){ + perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + pthread_exit(NULL); +} + +void toUpperCase(char * string){ + /* Convert to uppercase */ + for(int i = 0; string[i]; i++){ + string[i] = toupper(string[i]); + } +} \ No newline at end of file diff --git a/lab2/servidor/server.h b/lab2/servidor/server.h new file mode 100644 index 0000000..c39faea --- /dev/null +++ b/lab2/servidor/server.h @@ -0,0 +1,22 @@ +#define MAX_OP 11 + +/* Mutex & Threads */ +pthread_mutex_t socket_mtx; +pthread_mutex_t list_mtx; +pthread_t thread; +pthread_attr_t thread_att; +/* Controls the access to the socket generated by the connection 'accept' */ +pthread_cond_t free_socket; +pthread_cond_t free_list; + +/* Variable that controls the state of the socket created by the connection 'accept' */ +int busy_socket; +/* Variable that controls the if the list of users is being accessed */ +int busy_list; + +/* Initialize the list of users */ +struct user *users; + +void interruptHandler(int sig); +void * manageRequest(int *sd); +void toUpperCase(char * string); \ No newline at end of file diff --git a/lab2/servidor/user_list.c b/lab2/servidor/user_list.c new file mode 100644 index 0000000..befa904 --- /dev/null +++ b/lab2/servidor/user_list.c @@ -0,0 +1,200 @@ +#include +#include +#include +#include +#include "msg_list.h" +#include "user_list.h" + + +char isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Returns 1 if already registered; 0 if registered correctly */ +char registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + /* Prepare new user */ + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + /* Initialize user values */ + strcpy(temp->username, username); + temp->status = 0; + temp->port = 0; + temp->pend_msgs_head = NULL; + temp->next = NULL; + + if (user_head == NULL){ //If list is empty + /*Initialize the last assigned ID to a message if is the first user to register*/ + if(first_user){ + last_msg_id = 0; + first_user = FALSE; + } + temp->next = user_head; + user_head = temp; + } + else{ + struct user *last = user_head; + + /* Iterate over the list */ + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + + return 0; +} + +/* Return 0 if connect OK; 1 if user is not registered; 2 if registered but not connected */ +char connectUser(char * username, char * ip, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + //Set IP + temp->port = port; + return 0; + } + temp = temp->next; + } + + return 1; +} + +/* Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ +char disconnectUser(char * username, char * used_ip){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP + if (temp->status == 0) return 2; //User already disconnected + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + //Free IP + free(&(temp->port)); + return 0; + } + temp = temp->next; + } + + return 1; +} + + +/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ +char unregisterUser(char * username){ + /* Check if the user is not registered */ + //if(!isRegistered(username)) return 1; + + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + /* Free the memory resources of the user structure */ + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + + +void printUsers(){ + struct user *temp; + temp = user_head; + if(temp == NULL){ + return; + } + while(temp != NULL){ + printf("%s ", temp->username); + temp = temp->next; + printf("\n"); + } +} + +void appendMsg(char * username, char* msg){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Enqueue message + enqueueMsg(&(temp->pend_msgs_head), msg, updateLastID(temp)); + return; + } + temp = temp->next; + } + + return; +} + +unsigned int updateLastID(){ + //Increment the ID in 1 + last_msg_id = last_msg_id+1; + //If it results in 0, then the maximum representable number is overflown + if(last_msg_id == 0) last_msg_id = 1; + + return last_msg_id; +} + +void printPendMsgs(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + printMsgs(&(temp->pend_msgs_head)); + } + temp = temp->next; + } +} + +void removePendMsg(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + removeMsg(&(temp->pend_msgs_head)); + } + temp = temp->next; + } +} + diff --git a/lab2/servidor/user_list.h b/lab2/servidor/user_list.h new file mode 100644 index 0000000..b947099 --- /dev/null +++ b/lab2/servidor/user_list.h @@ -0,0 +1,31 @@ +#define MAX_USERNAME 256 +#define TRUE 1 +#define FALSE 0 + +/* +struct pend_msg{ + char pend_msg[MAX_MSG]; + struct pend_msg *next; +} *msg_head;*/ + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + uint16_t port; + struct msg *pend_msgs_head; + struct user *next; +} *user_head; + +int first_user; + + +char isRegistered(char * username); +char registerUser(char * username); +char unregisterUser(char * username); +char connectUser(char * username, char * ip, uint16_t port); +char disconnectUser(char * username, char * used_ip); +void appendMsg(char * username, char* msg); +unsigned int updateLastID(); +void printPendMsgs(char * username); +void printUsers(); +void removePendMsg(char * username); \ No newline at end of file diff --git a/lab2/test b/lab2/test new file mode 100755 index 0000000000000000000000000000000000000000..0e567722f17e1267f66c85ecd1e31e36265dd948 GIT binary patch literal 20400 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 literal 0 HcmV?d00001 diff --git a/lab2/test.c b/lab2/test.c new file mode 100644 index 0000000..f0a11fc --- /dev/null +++ b/lab2/test.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" +#include "msg_list.h" + + +int main(void){ + char line[MAX_MSG]; + + //struct user * user_head = (struct user *) malloc(sizeof(struct user)); + while(1){ + printf("USER LISTS. CHOOSE ACTION:\n"); + printf("\t1: Register\n"); + printf("\t2: Unegister\n"); + printf("\t3: Connect\n"); + printf("\t4: Disconnect\n"); + printf("\t5: Send message\n"); + printf("\t5: Delete message\n"); + readLine(0, line, MAX_MSG); + if(strcmp(line, "1") == 0){ + printf("Username: \n"); + readLine(0, line, MAX_MSG); + int res = registerUser(line); + if(!res){ + printf("USER ADDED\n"); + printUsers(); + } + else{ + printf("ERROR: ALREADY EXISTS!\n"); + printUsers(); + } + + } + else if(strcmp(line, "2") == 0){ + readLine(0, line, MAX_MSG); + int res = unregisterUser(line); + if(!res){ + printf("USER DELETED\n"); + printUsers(); + } + else{ + printf("ERROR: DOES NOT EXIST!\n"); + printUsers(); + } + } + else if(strcmp(line, "5") == 0){ + readLine(0, line, MAX_MSG); + char user[MAX_MSG]; + strcpy(user, line); + readLine(0, line, MAX_MSG); + char msg[MAX_MSG]; + strcpy(msg, line); + printf("Going to send to %s the msg %s", user, msg); + //appendMsg(user, msg); + printPendMsgs(user); + } + else if(strcmp(line, "6") == 0){ + readLine(0, line, MAX_MSG); + char user[MAX_MSG]; + strcpy(user, line); + removePendMsg(user); + printPendMsgs(user); + } + } + + return 0; +} \ No newline at end of file diff --git a/lab2/user_list.c b/lab2/user_list.c new file mode 100644 index 0000000..0280c16 --- /dev/null +++ b/lab2/user_list.c @@ -0,0 +1,246 @@ +#include +#include +#include +#include +#include "msg_list.h" +#include "user_list.h" + +/* Checks if the input user is already registered + Return 0 if is registered + 1 if is not registered */ +char isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Registers a user (if not previously registered) and appends it to the end of the s list + Returns 1 if already registered + 0 if registered correctly */ +char registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + /* Prepare new user */ + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + /* If memory is full and malloc is not possible, we return code 2 */ + if(temp == NULL) return 2; + /* Initialize user values */ + strcpy(temp->username, username); + temp->status = 0; + strcpy(temp->ip, "-1"); + temp->port = 0; + temp->pend_msgs_head = NULL; + temp->next = NULL; + temp->last_id = 0; + + if (user_head == NULL){ //If list is empty + temp->next = user_head; + user_head = temp; + } + else{ + struct user *last = user_head; + + /* Iterate over the list */ + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + + return 0; +} + +/* Changes the status of a user to 1 (ON) and links an IP and port number to it + Return 0 if connect OK + 1 if user is not registered + 2 if registered but not connected */ +char connectUser(char * username, char * ip, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + strcpy(temp->ip, ip); + temp->port = port; + return 0; + } + temp = temp->next; + } + /* No user was found, so send code 1 */ + return 1; +} + +/* Changes the status of a user to 0 (OFF) and cleans the IP and port number + Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ +char disconnectUser(char * username, char * used_ip){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 0) return 2; //User already disconnected + if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + strcpy(temp->ip, "-1"); + temp->port = 0; + return 0; + } + temp = temp->next; + } + + return 1; +} + + +/* Unregisters a user, deleting it and its pending messages (if any) from the list + Returns 1 if the user does not exist. + 0 if the user is deleted correctly */ +char unregisterUser(char * username){ + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + /* Free the memory resources of the user structure */ + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + +/* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ +int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Enqueue message + return enqueueMsg(&(temp->pend_msgs_head), msg, md5, msg_id, sender); + } + temp = temp->next; + } + + return -1; //User was not found +} + +/* Increments the last-sent-message ID associated to the input user + Return the value of the updated ID */ +unsigned int updateLastID(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Increment the ID in 1 + temp->last_id = temp->last_id+1; + //If it results in 0, then the maximum representable number is overflown + if(temp->last_id == 0) temp->last_id = 1; + + return temp->last_id; + } + temp = temp->next; + } + + return 0; +} + +/* Checks if the input user is connected + Return 0 if the user is disconnected + 1 if the user is connected + 2 if error (user was not found) */ +char isConnected(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->status; //Returns 0 if OFF, 1 if ON + } + temp = temp->next; + } + /* Return error 2 if we reach this point. No user was found */ + return 2; +} + +/* Retrieves the IP associated to a user in the list + Returns a char array with the IP of the user + NULL if the user was not found */ +char * getUserIP(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->ip; //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + +/* Retrieves the port number associated to a user in the list + Return the port number + 0 if the user was not found */ +uint16_t getUserPort(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->port; //Returns the IP of the user + } + temp = temp->next; + } + return 0; +} + +/* Retrieves a pointer to the head of the pending message list associated to a user + Return the pointer to the head of the message list + NULL if the user was not found */ +struct msg ** getPendMsgHead(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return &(temp->pend_msgs_head); //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + diff --git a/lab2/user_list.h b/lab2/user_list.h new file mode 100644 index 0000000..70dcc1e --- /dev/null +++ b/lab2/user_list.h @@ -0,0 +1,27 @@ +#define MAX_USERNAME 256 +#define MAX_IP 16 +#define TRUE 1 +#define FALSE 0 + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + char ip[MAX_IP]; /* IP of the user from which the connect operation was made */ + uint16_t port; /* Port number of the user from which the connect operation was made */ + unsigned int last_id; /* ID assigned to the last sent message */ + struct msg *pend_msgs_head; /* Pointer to the head of the pending messages queue */ + struct user *next; /* Pointer to the next user in the list */ +} *user_head; + +/* ================FUNCTION HEADERS================ */ +char isRegistered(char * username); +char registerUser(char * username); +char unregisterUser(char * username); +char connectUser(char * username, char * ip, uint16_t port); +char disconnectUser(char * username, char * used_ip); +int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender); +unsigned int updateLastID(char * username); +char isConnected(char * username); +char * getUserIP(char * username); +uint16_t getUserPort(char * username); +struct msg ** getPendMsgHead(char * username); \ No newline at end of file diff --git a/lab2/user_list.o b/lab2/user_list.o new file mode 100644 index 0000000000000000000000000000000000000000..605dc3111aa489600bde6d8fa46fcc4005558af7 GIT binary patch literal 10016 zcmbtZeQ;FO6~Av^J~rP8K?TveFtp-mHVKA^f*OVBMxmwFw8Y|sP4*?(y4j?=Zy_K; z#(=mJ>42@ac9@phj_?O+r!&>e5S5NfK8UD+ zVLCL*Ie>141XCX=x*e3Io$TB+$b6?$lj(PR(yb>mcF#|31jQVg|2D!^FUa99x8Ory zrl!7&sLF{Y^>*#Xq(FBvls*zl|3xJjRbOmB*^}Ol>5-x2`Gyb64`h5ph*OL3?2o~- zbT*?r`Vpoew_~-)AUEWXY{y}@c+AF;$npJ;UsnwPJ{Bg5KY%L2svTVyFJ8q`4Y?jJ!Gtf zJcc>s_X>o7f6)B+bwoKn^j24tp?v;gBz%@%zI=)*AW#bWd~#CR1%=VLD|~)QkzRp6 zA+?oY7E6j1G%f>vQGc>mH28c49|ECF7h+c^r$w@FmGnoJ2w(9zWcW&=5pZ=obQk)R zRLMmk7WqUedPJcz2Obv{jXX&QM1lWtAmpGIS$0tjav)vW#Tl2j3|m+w(LrICpopas zV3+O$cWX9L@Ol^pWol0tjG25Ys_zA{UD0clq&K_M{j*p%@m#a_>`t<pZFf><7>pT^@wNd2_7)ksznry_zA277;z0&DDzrW z3{ukGGqz2+eKLCp&!8r^$EaiNea&90;~P;G`BawnC#+rI$5}QD z)$B?HOCVF!tQza00MF9!eUWS1!!BX5QUe5m7B_z zNusFMvi)U+NLs)vuJCwE%U~taNLaZ_fb=WPr9hTiR$DDQokbo_up)LN;ZQ)nzcQS+GLYfEc+%u~`|hTjwGmu7f|A zM$qJfD0}$Omvaw<&K4n;3n@`W|vyy&)55VH%va*as9aP6<9@|7Cn7JcHE+U z{`zPA^~X-1K5@uD|IO#?KmON0I-2|)s30Xy6>WIdzvuJ@d*dm)-0fKM+4CJ9CnY8P zM^U8y*amyUDZAoeN7Fcp9P=;m&p))$f1iKBp`j5wcFLY}u%prcOEBE$yL$GATRIjW z!oI&x8aZBcVw_ww9eNI&zk$)p-uUEZ>b>Fh5cByUZ*gbH6?cBKJ+Pv&F|Z`q6l@4A zZfI<7Xl}SMP}lFK;?B*zPTWaEyMYWRy8CV(TH0LK+!Uzm4b=4{-Ej8 zcOrrAzHmY$op=Pq2jSHTUoY9&=Y%6723`W5Anx6+(?2MZeFF(M8&AazPb*Xq;HYaL zvWZmCf~*EN9Z-#5_j)c2;`X#K{4!~@B}aJN&x65>uoyHc(bsY`BxG4v$v1u`14}1K* z#Frbc$3O1z$B93JZ;!v#5uaX!5|oYKum!_rO$moSpK=#M-#dv)4fVJS zUMSCU{H?FeBfmHgzMSj~l51J(fZa&=9NL#;jRO`U`~$-IFo}o4Tyestm=pg2*^!qa z(3f)n-pM@jTSpOD=~skrCY_Um|!A<4{WNZu(C+4`$ZLt`v$Vt(Ya2(L1ZNQ2DFy*A= zj*zt|N0XV&B(tjOOEC2HRUU@qRVIEeti20(mjP`NGNB=k=WWLO5QK&}o-Y|6hCVjL zYv7M@t{24du*rB4)f3{nUv*un?C3aNj$$+A8}s1lJowWZu8->@4cFtm79HmBd#8r$ zb{@=wf1=^~xcs!VAzQaotKqu*wR!NHHT+Vr#d&Via9l$eAJTALe!GV2^2aq?kLR3* z>+#Q_`G(_~tNFc4!*x5|8m`+puHm};IStq48)$x_UtPXU!*zLelRdMpp3Woxv4-pR zFKD=KpD%!LC*eMHy&VMc68Ix^Id_oH_>ZVA{`v%V6C2HUt=a7L%!3Va731`22 zo_flVXTSRm+)woH4V?YHX5f?3s}OG!&VKp4cG{3X6+qY=_=R99Ra@7XT|G9WM z;p~^sca4TT`(16|J5do@)WG*iR0!VJI3A93ry>7yva^S9j)%{W2Ml?R=LG|2`>z}L zIf~~U!#_S1%aK40%MIx}qGybkO$aGs}!4V>rEq=9oi^M1>5avcUJPmFW@ zv=}&l_w@$O-%A9OoBG{w7rfnsdiQZJ;l#p07jO20aEBBY!LDRd1SJ}Ax>9h}6z>@T zp6rLay70P3XNMEvc(0SK5{t$iRslaE*geqS@4$UhFb=nWLAXMM+dsGsBtuSLXHNnz zy1r@)fB{Sa*ALrkp^kY)OzC1VF%NoJk}V#hIt_HdTTk;Je}kZ|pXBgb8rwJE4{;Jh zNVa}6Ai_=m*8z?;|6l!P&^2wMEB1ea<{M(zOxZ@ja*cmC4e)1hKaUN^kMq(T|LuU8 zHUSc?@IM8z8BBu|cuq1g)N3u5+TQtCQ8Q)N03%oYivrpD7(d2t#*h1cF8?X=f0w~D zND%@3T>jSvfB}u`1pVXMX8OnTGuq_e0nnB06 literal 0 HcmV?d00001 From 98871306464e6d4af6c7484f120e4221eb61837e Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Sat, 29 Apr 2017 01:02:36 +0200 Subject: [PATCH 12/17] CGP: First working version of lab 2 --- .../store_service_client.c | 2 + lab2/rpc_store_service/store_service_client | Bin 24232 -> 24328 bytes lab2/rpc_store_service/store_service_client.c | 18 +- lab2/rpc_store_service/store_service_client.o | Bin 14824 -> 15456 bytes lab2/rpc_store_service/store_service_server | Bin 28792 -> 28960 bytes lab2/rpc_store_service/store_service_server.c | 93 +- lab2/rpc_store_service/store_service_server.o | Bin 15256 -> 15752 bytes lab2_pruebas.zip | Bin 0 -> 245900 bytes lab2_pruebas/.DS_Store | Bin 0 -> 6148 bytes lab2_pruebas/Makefile | 54 + lab2_pruebas/ServerThread.class | Bin 0 -> 2670 bytes lab2_pruebas/authors.txt | 2 + lab2_pruebas/client$1.class | Bin 0 -> 521 bytes lab2_pruebas/client$RC.class | Bin 0 -> 884 bytes lab2_pruebas/client.class | Bin 0 -> 7989 bytes lab2_pruebas/client.java | 740 +++++++++ lab2_pruebas/gnu/getopt/COPYING.LIB | 482 ++++++ lab2_pruebas/gnu/getopt/ChangeLog | 114 ++ lab2_pruebas/gnu/getopt/Getopt.class | Bin 0 -> 7366 bytes lab2_pruebas/gnu/getopt/Getopt.java | 1337 +++++++++++++++++ lab2_pruebas/gnu/getopt/GetoptDemo.java | 97 ++ lab2_pruebas/gnu/getopt/LANGUAGES | 23 + lab2_pruebas/gnu/getopt/LongOpt.class | Bin 0 -> 1658 bytes lab2_pruebas/gnu/getopt/LongOpt.java | 195 +++ lab2_pruebas/gnu/getopt/Makefile | 7 + .../gnu/getopt/MessagesBundle.properties | 33 + .../gnu/getopt/MessagesBundle_chs.properties | 33 + .../gnu/getopt/MessagesBundle_cht.properties | 33 + .../gnu/getopt/MessagesBundle_cs.properties | 33 + .../gnu/getopt/MessagesBundle_de.properties | 33 + .../gnu/getopt/MessagesBundle_es.properties | 33 + .../gnu/getopt/MessagesBundle_fr.properties | 35 + .../gnu/getopt/MessagesBundle_hu.properties | 32 + .../gnu/getopt/MessagesBundle_it.properties | 32 + .../gnu/getopt/MessagesBundle_ja.properties | 32 + .../gnu/getopt/MessagesBundle_nl.properties | 32 + .../gnu/getopt/MessagesBundle_no.properties | 32 + .../gnu/getopt/MessagesBundle_pl.properties | 36 + .../gnu/getopt/MessagesBundle_ro.properties | 34 + lab2_pruebas/gnu/getopt/README | 57 + lab2_pruebas/gnu/getopt/buildx.xml | 68 + .../gnu/getopt/gnu.getopt.Getopt.html | 639 ++++++++ .../gnu/getopt/gnu.getopt.LongOpt.html | 210 +++ lab2_pruebas/jax/MD5.java | 13 + {lab2 => lab2_pruebas/jax}/MD5Client.java | 8 +- lab2_pruebas/jax/MD5Impl.java | 43 + lab2_pruebas/jax/MD5Publisher.java | 10 + .../jax/localhost/_8080/md5/Exception.class | Bin 0 -> 664 bytes .../jax/localhost/_8080/md5/Exception.java | 60 + .../_8080/md5/Exception_Exception.class | Bin 0 -> 810 bytes .../_8080/md5/Exception_Exception.java | 54 + .../jax/localhost/_8080/md5/MD5.class | Bin 0 -> 637 bytes lab2_pruebas/jax/localhost/_8080/md5/MD5.java | 60 + .../jax/localhost/_8080/md5/MD5Client.java | 15 + .../jax/localhost/_8080/md5/MD5Impl.class | Bin 0 -> 1172 bytes .../jax/localhost/_8080/md5/MD5Impl.java | 48 + .../localhost/_8080/md5/MD5ImplService.class | Bin 0 -> 2282 bytes .../localhost/_8080/md5/MD5ImplService.java | 94 ++ .../jax/localhost/_8080/md5/MD5Response.class | Bin 0 -> 735 bytes .../jax/localhost/_8080/md5/MD5Response.java | 62 + .../localhost/_8080/md5/ObjectFactory.class | Bin 0 -> 2032 bytes .../localhost/_8080/md5/ObjectFactory.java | 89 ++ .../localhost/_8080/md5/package-info.class | Bin 0 -> 250 bytes .../jax/localhost/_8080/md5/package-info.java | 2 + lab2_pruebas/lists/msg_list.c | 59 + lab2_pruebas/lists/msg_list.h | 15 + lab2_pruebas/lists/msg_list.o | Bin 0 -> 5064 bytes lab2_pruebas/lists/read_line.c | 68 + lab2_pruebas/lists/read_line.h | 5 + lab2_pruebas/lists/read_line.o | Bin 0 -> 4808 bytes lab2_pruebas/lists/user_list.c | 246 +++ lab2_pruebas/lists/user_list.h | 27 + lab2_pruebas/lists/user_list.o | Bin 0 -> 10040 bytes lab2_pruebas/md5/endpoint/MD5Publisher.class | Bin 0 -> 682 bytes lab2_pruebas/md5/endpoint/MD5Publisher.java | 15 + lab2_pruebas/md5/ws/MD5.class | Bin 0 -> 503 bytes lab2_pruebas/md5/ws/MD5.java | 15 + lab2_pruebas/md5/ws/MD5Impl.class | Bin 0 -> 1132 bytes lab2_pruebas/md5/ws/MD5Impl.java | 44 + lab2_pruebas/md5_client/Exception.class | Bin 0 -> 655 bytes lab2_pruebas/md5_client/Exception.java | 60 + .../md5_client/Exception_Exception.class | Bin 0 -> 754 bytes .../md5_client/Exception_Exception.java | 54 + lab2_pruebas/md5_client/MD5.class | Bin 0 -> 1080 bytes lab2_pruebas/md5_client/MD5.java | 46 + lab2_pruebas/md5_client/MD5ImplService.class | Bin 0 -> 2226 bytes lab2_pruebas/md5_client/MD5ImplService.java | 94 ++ lab2_pruebas/md5_client/ObjectFactory.class | Bin 0 -> 1089 bytes lab2_pruebas/md5_client/ObjectFactory.java | 53 + lab2_pruebas/md5_client/package-info.java | 2 + lab2_pruebas/monitor | Bin 0 -> 24504 bytes lab2_pruebas/monitor.c | 163 ++ lab2_pruebas/monitor.o | Bin 0 -> 12672 bytes .../rpc_store_service (copy)/Makefile | 47 + .../rpc_store_service (copy)/store_service.h | 97 ++ .../rpc_store_service (copy)/store_service.x | 18 + .../store_service_client | Bin 0 -> 24408 bytes .../store_service_client.c | 129 ++ .../store_service_clnt.c | 54 + .../store_service_server | Bin 0 -> 29184 bytes .../store_service_server.c | 200 +++ .../store_service_svc.c | 143 ++ .../store_service_xdr.c | 46 + lab2_pruebas/rpc_store_service/segurodevida.c | 182 +++ .../rpc_store_service/store_service.h | 93 ++ .../rpc_store_service/store_service.x | 17 + .../rpc_store_service/store_service_clnt.c | 53 + .../rpc_store_service/store_service_clnt.o | Bin 0 -> 12728 bytes .../rpc_store_service/store_service_svc.c | 143 ++ .../rpc_store_service/store_service_svc.o | Bin 0 -> 20648 bytes .../rpc_store_service/store_service_xdr.c | 44 + .../rpc_store_service/store_service_xdr.o | Bin 0 -> 7208 bytes lab2_pruebas/segurodevida.c | 182 +++ lab2_pruebas/server | Bin 0 -> 51088 bytes lab2_pruebas/server.c | 677 +++++++++ lab2_pruebas/server.h | 27 + lab2_pruebas/server.o | Bin 0 -> 42624 bytes lab2_pruebas/servidor/Makefile | 28 + lab2_pruebas/servidor/msg_list.c | 55 + lab2_pruebas/servidor/msg_list.h | 13 + lab2_pruebas/servidor/read_line.c | 88 ++ lab2_pruebas/servidor/read_line.h | 5 + lab2_pruebas/servidor/server.c | 308 ++++ lab2_pruebas/servidor/server.h | 22 + lab2_pruebas/servidor/user_list.c | 200 +++ lab2_pruebas/servidor/user_list.h | 31 + lab2_pruebas/store_service_server | Bin 0 -> 29016 bytes lab2_pruebas/store_service_server.c | 161 ++ lab2_pruebas/store_service_server.o | Bin 0 -> 15760 bytes ssdd_p1_100291121_100292107.zip | Bin 0 -> 690690 bytes ssdd_p1_100291121_100292107/authors.txt | 2 + ssdd_p1_100291121_100292107/client.java | 711 +++++++++ ssdd_p1_100291121_100292107/msg_list.c | 58 + ssdd_p1_100291121_100292107/msg_list.h | 13 + ssdd_p1_100291121_100292107/read_line.c | 68 + ssdd_p1_100291121_100292107/read_line.h | 5 + ssdd_p1_100291121_100292107/report.pdf | Bin 0 -> 703393 bytes ssdd_p1_100291121_100292107/server.c | 615 ++++++++ ssdd_p1_100291121_100292107/server.h | 27 + ssdd_p1_100291121_100292107/user_list.c | 246 +++ ssdd_p1_100291121_100292107/user_list.h | 27 + 141 files changed, 10886 insertions(+), 74 deletions(-) create mode 100644 lab2_pruebas.zip create mode 100644 lab2_pruebas/.DS_Store create mode 100644 lab2_pruebas/Makefile create mode 100644 lab2_pruebas/ServerThread.class create mode 100644 lab2_pruebas/authors.txt create mode 100644 lab2_pruebas/client$1.class create mode 100644 lab2_pruebas/client$RC.class create mode 100644 lab2_pruebas/client.class create mode 100644 lab2_pruebas/client.java create mode 100755 lab2_pruebas/gnu/getopt/COPYING.LIB create mode 100755 lab2_pruebas/gnu/getopt/ChangeLog create mode 100644 lab2_pruebas/gnu/getopt/Getopt.class create mode 100755 lab2_pruebas/gnu/getopt/Getopt.java create mode 100755 lab2_pruebas/gnu/getopt/GetoptDemo.java create mode 100755 lab2_pruebas/gnu/getopt/LANGUAGES create mode 100644 lab2_pruebas/gnu/getopt/LongOpt.class create mode 100755 lab2_pruebas/gnu/getopt/LongOpt.java create mode 100755 lab2_pruebas/gnu/getopt/Makefile create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_chs.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_cht.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_cs.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_de.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_es.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_fr.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_hu.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_it.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_ja.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_nl.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_no.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_pl.properties create mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_ro.properties create mode 100755 lab2_pruebas/gnu/getopt/README create mode 100755 lab2_pruebas/gnu/getopt/buildx.xml create mode 100755 lab2_pruebas/gnu/getopt/gnu.getopt.Getopt.html create mode 100755 lab2_pruebas/gnu/getopt/gnu.getopt.LongOpt.html create mode 100644 lab2_pruebas/jax/MD5.java rename {lab2 => lab2_pruebas/jax}/MD5Client.java (53%) create mode 100644 lab2_pruebas/jax/MD5Impl.java create mode 100644 lab2_pruebas/jax/MD5Publisher.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/Exception.class create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/Exception.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.class create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5.class create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Client.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.class create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.class create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Response.class create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Response.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.class create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.java create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/package-info.class create mode 100644 lab2_pruebas/jax/localhost/_8080/md5/package-info.java create mode 100644 lab2_pruebas/lists/msg_list.c create mode 100644 lab2_pruebas/lists/msg_list.h create mode 100644 lab2_pruebas/lists/msg_list.o create mode 100644 lab2_pruebas/lists/read_line.c create mode 100644 lab2_pruebas/lists/read_line.h create mode 100644 lab2_pruebas/lists/read_line.o create mode 100644 lab2_pruebas/lists/user_list.c create mode 100644 lab2_pruebas/lists/user_list.h create mode 100644 lab2_pruebas/lists/user_list.o create mode 100644 lab2_pruebas/md5/endpoint/MD5Publisher.class create mode 100644 lab2_pruebas/md5/endpoint/MD5Publisher.java create mode 100644 lab2_pruebas/md5/ws/MD5.class create mode 100644 lab2_pruebas/md5/ws/MD5.java create mode 100644 lab2_pruebas/md5/ws/MD5Impl.class create mode 100644 lab2_pruebas/md5/ws/MD5Impl.java create mode 100644 lab2_pruebas/md5_client/Exception.class create mode 100644 lab2_pruebas/md5_client/Exception.java create mode 100644 lab2_pruebas/md5_client/Exception_Exception.class create mode 100644 lab2_pruebas/md5_client/Exception_Exception.java create mode 100644 lab2_pruebas/md5_client/MD5.class create mode 100644 lab2_pruebas/md5_client/MD5.java create mode 100644 lab2_pruebas/md5_client/MD5ImplService.class create mode 100644 lab2_pruebas/md5_client/MD5ImplService.java create mode 100644 lab2_pruebas/md5_client/ObjectFactory.class create mode 100644 lab2_pruebas/md5_client/ObjectFactory.java create mode 100644 lab2_pruebas/md5_client/package-info.java create mode 100755 lab2_pruebas/monitor create mode 100644 lab2_pruebas/monitor.c create mode 100644 lab2_pruebas/monitor.o create mode 100644 lab2_pruebas/rpc_store_service (copy)/Makefile create mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service.h create mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service.x create mode 100755 lab2_pruebas/rpc_store_service (copy)/store_service_client create mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_client.c create mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_clnt.c create mode 100755 lab2_pruebas/rpc_store_service (copy)/store_service_server create mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_server.c create mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_svc.c create mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_xdr.c create mode 100644 lab2_pruebas/rpc_store_service/segurodevida.c create mode 100644 lab2_pruebas/rpc_store_service/store_service.h create mode 100644 lab2_pruebas/rpc_store_service/store_service.x create mode 100644 lab2_pruebas/rpc_store_service/store_service_clnt.c create mode 100644 lab2_pruebas/rpc_store_service/store_service_clnt.o create mode 100644 lab2_pruebas/rpc_store_service/store_service_svc.c create mode 100644 lab2_pruebas/rpc_store_service/store_service_svc.o create mode 100644 lab2_pruebas/rpc_store_service/store_service_xdr.c create mode 100644 lab2_pruebas/rpc_store_service/store_service_xdr.o create mode 100644 lab2_pruebas/segurodevida.c create mode 100755 lab2_pruebas/server create mode 100644 lab2_pruebas/server.c create mode 100644 lab2_pruebas/server.h create mode 100644 lab2_pruebas/server.o create mode 100644 lab2_pruebas/servidor/Makefile create mode 100644 lab2_pruebas/servidor/msg_list.c create mode 100644 lab2_pruebas/servidor/msg_list.h create mode 100644 lab2_pruebas/servidor/read_line.c create mode 100644 lab2_pruebas/servidor/read_line.h create mode 100644 lab2_pruebas/servidor/server.c create mode 100644 lab2_pruebas/servidor/server.h create mode 100644 lab2_pruebas/servidor/user_list.c create mode 100644 lab2_pruebas/servidor/user_list.h create mode 100755 lab2_pruebas/store_service_server create mode 100644 lab2_pruebas/store_service_server.c create mode 100644 lab2_pruebas/store_service_server.o create mode 100644 ssdd_p1_100291121_100292107.zip create mode 100644 ssdd_p1_100291121_100292107/authors.txt create mode 100644 ssdd_p1_100291121_100292107/client.java create mode 100644 ssdd_p1_100291121_100292107/msg_list.c create mode 100644 ssdd_p1_100291121_100292107/msg_list.h create mode 100644 ssdd_p1_100291121_100292107/read_line.c create mode 100644 ssdd_p1_100291121_100292107/read_line.h create mode 100644 ssdd_p1_100291121_100292107/report.pdf create mode 100644 ssdd_p1_100291121_100292107/server.c create mode 100644 ssdd_p1_100291121_100292107/server.h create mode 100644 ssdd_p1_100291121_100292107/user_list.c create mode 100644 ssdd_p1_100291121_100292107/user_list.h diff --git a/lab2/rpc_store_service (copy)/store_service_client.c b/lab2/rpc_store_service (copy)/store_service_client.c index 6c60fc6..a993fae 100644 --- a/lab2/rpc_store_service (copy)/store_service_client.c +++ b/lab2/rpc_store_service (copy)/store_service_client.c @@ -96,10 +96,12 @@ store_service_1(char *host) printf("MD5: %s\n", res.md5); getmessage_1("sender3", 1, &res, &result, clnt); printf("Result of the receive: %d\n", result); + printf("Length msg: %d\n", strleng(res.msg)); printf("Mess: %s\n", res.msg); printf("MD5: %s\n", res.md5); getmessage_1("sender1", 6, &res, &result, clnt); printf("Result of the receive: %d\n", result); + printf("Length msg: %d\n", strleng(res.msg)); printf("Mess: %s\n", res.msg); printf("MD5: %s\n", res.md5); diff --git a/lab2/rpc_store_service/store_service_client b/lab2/rpc_store_service/store_service_client index 7e1d6f5c53c0e080899bc94dafef5ce13f35b8cb..2e88530f16727f06213afba80c27833d3830590c 100755 GIT binary patch delta 4869 zcmaJ_4Nz3q6@K?E3;R}JcUfS881}6NRHA@ZWD}#jRf%sE;|2kL0*YxQ#;OxFn$*@T z;_n8{z#Kb6I@ZB7Ki2$MyJm`JDi9M5nK6TowItJaOx4cPq?yDRLjJlv=f1bgx^8-R z-aYsH-0z-q?%#WR^v`VH8P=YY(UhVHRJ2+UO!XbbFPrygaiOq3tK*{*sa@2#PO!1P z8M0mDWV_Z!w!<;@(PZ=D8yA{P*IxcxKzPO4h`#RoUD4QM$AABImdK2|{%CJ2f= z22O~jtQ9^M9iSL;U_>lqPY}o4R2vVXtqd2Loz3CWI&RrzkYUhZ9k&p*8HA?0j!j-x zVNLR~6u4=qOy2zDrgf_~Kv~kRJVC^tf!7oYarzG~B;8f`JCs@R*^>9TMB3M}O=ZN{ z#3{L+0%^v1u+Esu%An8afTxZ3=aM{9d~y?SreJM?3uy7ZF*U6zMk>J%Mu$Hw(gEoc zF;qq2A2^a3d+Tv8OMf@5v8oC(m{eb-}YKh2u4Ai&JPks}0aHGk^{XTWoa* z9om2+H=Z+Yg)1p_dAX5IEN}h>7C~3FVU+nc!**ZyEFk`aIpAqW07OW;deTSKL({3)u+m_I!!C>jDjr2<_a_AL3!y~`P}UO4Rzl&f@PIhV*A#t%fXoR%TB9I_XjVALA4fs_nA_2` zy!-8)xqXgMo+npEQFw0GkD}ZL(vkq=MFKfaAhbziCa7-0kD$y*fO48p-X#>;+A%2C zDEgSJz%!{XKiY*(BDyyB1ITJ~|L!+v+*Wm!7FYn=fvU@GRhKb@PogF-L`}~1d>57O z*Q6m8ZH;(~XmDG(lrLL^yr>4=K0|ZXOV_oES^qsVEd6L7D5Nm9EL0fEDJtN zFA_f+24-=KCx>B%WrFzZFs!!7;?u*h*HXwl@Vcc)%+oBcegzh*EPn76OtI!qX>Ru{ z@zi?)VNac>w)#Nf8>up01qUV*UF;1Edjo%|o=6Uv)V?1Kp}*b=`mO7jxq9`6$DUjx zuiyL_+^|)wYWgx9?nS4RTj6j!(&=A?!y%-*k(%%*n?4*4Pe9s+R7IMJzOO;rj0=1p zQb2kX=`E!1A$<>zyAaZ{|6+gK5M8i6;~w$omvAhj#MpT=93FtbXZ*zT01meZhY>vK z);;2!v}AF9Y6@P&V^Q=dK3h8;6%QYoq~(`l?Y*TI&E&FW=Jm%RPh;frN9+>)*4X=V+;ZzNIPB*YSh=k53cN3a52 zvs5~?9<{DqRv+Bp$~Lh>uzO-b>LJ`N=A2SAHnqZ=6V=pK61Y~9pcbU!g6vunj1Qt< z>`DY;X>S+>p&sTG&txybj^a*M4|(@2V6Q^+JsT&r4oln!v738_Z{*qXF`x1VJjmh{>VTbOnjB3S> zhP&_M+(aFSd$6565Ifcg!UgmoNpRt9sK>b$ttrmY#B)^PH$kan)o2}Ch?|WayK{n2Jur92#;PCvnSv#y+ z;FvO?Z|6v-5^RVDP_pSH@#pP8orJFDx?N zB$hs4bJG!yK1%6xAhs01#s?j_ZmvxiUeaUXCp4NVq-86)%~NP&C5Pf%*#$=)bW8!% z+QeL8U!1m!OqY;`5qh&?bQ&DF_}pQ6!S{e*(rq-y%o(bZ$rA_=@g=Mr!o_kyD;u zg{WE<=|AP?*rG(mkNlM0^HoVh4CuJKXuR2nBe=S@PS+0b0C9K3P3v*pKC)$NjKO2R z>&&kG8KEfis=c%4tejdhwWK_Fpypu%UQbEEP@T+}52Pifwwxr*iyVEvPQgRfc4$~K z)^_&{W^Zc4D*+jO8U~l72mq7!m4uvHVwxI{mV+tk^PPvPh39T z+=(x5R66a!*~|AZ_B8ZATq;G@bqlbD3Mn!@UEpb`#Is-r)|a8Lp;CI(#XAdYL29gE yAAqN^Qu=bHCOZOw#tP}6N8^q`KU(|=*osO?Q8igNcvn=IM|>LBV*qn~{{H|exm!d4 delta 4528 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 diff --git a/lab2/rpc_store_service/store_service_client.c b/lab2/rpc_store_service/store_service_client.c index e74c553..6d94e6b 100644 --- a/lab2/rpc_store_service/store_service_client.c +++ b/lab2/rpc_store_service/store_service_client.c @@ -1,8 +1,3 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ #include "store_service.h" @@ -82,24 +77,37 @@ store_service_1(char *host) printf("Result of the send: %d\n", result); response res; + int size; getmessage_1("sender1", 1, &res, clnt); printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); printf("Mess: %s\n", res.msg); printf("MD5: %s\n", res.md5); getmessage_1("sender2", 2, &res, clnt); printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); printf("Mess: %s\n", res.msg); printf("MD5: %s\n", res.md5); getmessage_1("sender1", 4, &res, clnt); printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); printf("Mess: %s\n", res.msg); printf("MD5: %s\n", res.md5); getmessage_1("sender3", 1, &res, clnt); printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); + printf("Mess: %s\n", res.msg); printf("MD5: %s\n", res.md5); getmessage_1("sender1", 6, &res, clnt); printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); + printf("Mess: %s\n", res.msg); printf("MD5: %s\n", res.md5); diff --git a/lab2/rpc_store_service/store_service_client.o b/lab2/rpc_store_service/store_service_client.o index 587d5789afe48fc8eb58fc6c7a3c9535a3a86fa3..84774fb114b93186200b3d4983b2f278b9522607 100644 GIT binary patch delta 2915 zcmaKuYitx%6vyYzw%eU8v|Xy5-qOOhtai7r>9*`{Tf??pB&`G~rJ6`2Zr7$jLn(bx z2^C9;Y1}}-&G7>eG|C4}j2fCX#L|$uhzOb}q+;ZQp+!kB*7%4JAN6tX%o$iOkK4@c z-1GaNbN_Sa&g@(tnA!QVTXqIwC4-q4nxkJeM?bkPv9@p31xSzw$OVXzoY>ctotQ%{ z>HK~O=16i{&K=_+`Tu-UA0Mr;*YwNwTC^)3A^K=%oBu+z^G3p{oruSlU&GJw0wDkZPK>lnr($`1N*zrY4Eln z81Gv2x@_s%)frEF@TvuV&UIz!SJ#-4H72iIXtg|^8h6nbiM&1)-p)HqcEEU^Y9C`( z7fFOI1ngS;e8IqAe|Kk(6b=szMmn~JJGN{MZ;EtvOWPt{JyJY9|4FNd-^Ltv%>Qe& zIUZom&JMnsD&ZqZx(P9-N@a^NGHEf=1wfXmG*_Trq(wTd6X*e>lvEEFi&XlUK1P7P3sYL;8$+1$ujJ zxt~J{Y5^*dnHt&&tY?AGXy zd_7ppMz?1DQ!vXk9q@;{iClz6k4oNz4IYg+Aj5uOEoeB z<4m(3??Xn?_TiehV3yH#q0&9`KZDbOza4L9-S5n5G}1Wg2OKiLx+#0jqr^ zDC@vmu943n!uooMvEBxW@+R^fC>0vrjp`}PHrMb5v{tC(CFrWq$XPhdl*e#AzZI10 zVYZ@)+K~Pw&>PUGsq{6Brs2*qXSoJ_j88H zeBR7!`U%FpDlNy^0s?&+W*Pkfb6W(O2aYP0Tmny(MnA<0mFy!RxqdVBF-tHL8u zyn9CkjU9cT5aI`MCx0x&|3*JwV4OdgTxx#tTov>QLl2v)9f}Kc|A9o63VW)1**8P{ z*XkU?KA^zv^V@Cu*Ni0fro(EVpG>h2n0nSHeD#XC>(+qc57^UjH5Mwc+V59(y7lXp z_CVAhkaM%(v_Gi4>o9_q&`Pr*Kj4yo_dzHSRK7tl1kpf1cKhKp3%2pME^7^-)C3fu z#>l7VZme<1=O{GN9B8L0aMT!{t_jKwevoT}N-zF!95>{(F2$K=6nF}vwE<;kzA@To ISn)0R4+}*B4gdfE delta 2250 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 ByO;m~ delta 5296 zcmZu#3sjR=62AA32?->S1VSJnNkl|#CBYX;MH9DZeAO2ys61Tpjf(P6`#8bXTC=V$ zak{o^-950|?Ycdlic4ExZH4NQwrh8_XSZdo?Xs=*1go~TirCs_XYT(;Dejz;JNKKJ zJ9qB<_s)O+G=9c=I(b8q*&X9yL~_g6rsct*FGY{D2_YM23tq_L9iZdCHeXDXWfv1= z+lz_tGQW`hiFM7T6~hkN3Tk`yd_U~tc}?5T?opwo6@MIm8vGf#gAHb$0VK1*Yto24 zsw6%KxXQ}^AzClCF1|_hqacX#U84VjXm3ypAt?zQ{gTwl=+yz|c|3nfXq!d5ShRl8 zo`J*tT>KN!zXZ;HNz|LN4ktI`uT$s2_C6iKF3B6CJ@%kw%Tl>gQ!g}=#IHMle zziPwEwKdCFb={KMimI|D8|X8+P=P z#=-kq7f*s8v{tyQ)$;?uu{TDiPo_0Q=xDDI@lc|h>-TNFs`c$uKb7cUzNcGj)S(wJ zEZ^4C+EenF@Td)_3TM<{8)x@mkMIgoc6El4GFB0$wRD{m_~(Qr!mR=?Agm(XEbtt{ z{RlUP!+vxyl>}-MGzf!V92|S#zmT=D>T zIEJuWU^8JoVF%40&WI*~fdocjAQ6rw%mn_`JydgDmh7-a3@-C6BCr2q9?yBD}vu5eW7p5^$_IhGX~4naduX6N}ixT z&xrxET2mo<4z0zMm7Gz>THqP|$5N6SKGvr~y&(~g_;ZF_e+YvNcOIvS-lC)F3;ZW^ z6r&9-zZ(vpBp8~3 zJ>RavX5Y^IMql6zc`@SFe!8{Rj)!WdGMt{IJp8-`X2%sJd~TBcQk9hz#zc5CE-71Y z@UY|L`K^6;g2>&Uz7L1d-C%ULPZ^bSZ>x*9d>3(a7JH%R?%<+#symJHB8+sj^Lx5> zq8<~}g9$o$9{q`(7V-!$DBW2Y@&!Kh1=>STp$OMH6TBv;z6a9~cpJyH28^)9G$v*h z?xT}QC=E@5)22*59N>!VX_x#<}+VyOi#o`FBg;Q@s_=>J8Gjx8WBFL#2(k;gy8+)D7LVT8wj7 z1HI3%iv#gVe-tX}hHD8)()ezOvdouiyP@2YAwAX&3lqmk3Ej|U87y771z%bmlC~QR zi5a{J$}AS}C7PtiZwV{UE%;5MV|M8+vF<35m@m~wDWZ2z-9K;38ocwp^Sptux6oTK zeOJccwGKRfyM_^;J0;LPCGfB5LoSO--u8nk6n7KCiGcx=aW4^-Dtwc|_bB|J0baJY z``0dBvozO{QH=$Yr>Guj#1T}gUi~HHaK?ZwSW6ys^gZ($5T<3Vjs48&dIC zfxjHo7bCx?mkNXd>8ZL^q2AqFzxw|87g1i1`jNf$>ty{vl$~Zw#h$$hX4@bszZ-IG zY0{S4u)vl!VB76*_?Niqd$X#Z<}{9GosRPBJ+RM~=G=(MvG;bq;Qr*lLbE#fx6RJC z!5wVlAvwj)3t%j^S}4YL7Hm$L%r~{PrOcFCI#Yhjby&)XI%B|=HppCs)s%?dY(y_w zU`|>oFM`8qc04`j(&n9=mnaq2&;Lt>C>7v_CWA zC1sM=6@EtHA1eF{g?B4l6YYU`$1Vst3iu$%bGo9vMvw42M}?QVMDxQ4Bz7f*F?x)6 zcZ!GKJ9GG;mJgj9^*H3QtZ95E?8}-h9nizItf^9m9>%(+bA8KpS2UL{$HE@>RDK3N zaVPb1-4b?>(oKtgS%+?4RpDY{UL*G@Ybr)Dt|u|$sgGjJ$sS{fb zG2ed+b!lQ9uJej7u@D8#N_zq?THMtwbkm({s+S{@Ej`XckqrS=!K41P<&-Gbr)aAR zHv8qETyjuM4k}v?s=_{qVj4qBm4Yjn;~b@-n3UH|@aZEqf3ZA=Pxe_%KBb^Xc3Dg= zX+qiOLfPjc*=LFDvwT2~*@J@^dqlL1*$2>+ODLf6*r%``4A}vXsd9 z{xNvFOxsPFZkmg`NecQ`q%EOjHcjkDuw0(5NsoIBA2)NHCTEAp*(JrYO2R|;o_B_H6N}EoiPAd>EhQ5tXz=j;&bKk@1O?5qz&Uv+?46tprBiMU zjGSRrIzLg@oHtzi(G#x}Ym2ojq+u3qaGR>`k}4K9Pt8ept1@d)ou?gHJVM*l!K8j% zQ=_TXy0k%U@LjD_6>|`-PrZNvw7fU%PBfgJ_aqi9?|dt#aucssVO2P%^e_pqe!fK& z&D_v5-4U$_@At$%`ziSRBoZtW#dZn_XX0;Rjpu|CO6qc#BLeFaBR zWPMk4TbZlxQ8vT+Qfu-cJh~Kj-@1}RTJV%=psv)cUV~O5cZ;9Io=Hk(oqg6HQ2g{g z;|+?OzEX(XqGjw49 z72Dfn>o=ogGfL#AEHEyaDNcZ7IFqT zWhQkc_T`;dFH0Zz-(^2!ms$B=MSGgsQ5|SWdG5Q6h( zrvH%oe<1P{!}=BvXT*Y!Yw<2V&cV0@;K-6(jr^w%e7>ZnWp%|ZRZH0lC+9n0%SxB2 zNbM2x6yaE+@z93Sy&8`|d+GZNX*BRvuIR|^>YN60SB=)OD34Gw*t{y|-i6Gq+{ir8 zw#uc8gjfZ4&?ZvV8g%l&2Jo(S=^RQ$alq!)IrskDbK`4`XhSr-y*ev8a?_o&u;M&kIXb%D>JiF%Ys>M4n4qpz(P diff --git a/lab2/rpc_store_service/store_service_server.c b/lab2/rpc_store_service/store_service_server.c index 7ea55fa..fd2b220 100644 --- a/lab2/rpc_store_service/store_service_server.c +++ b/lab2/rpc_store_service/store_service_server.c @@ -1,8 +1,3 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ #include "store_service.h" @@ -37,8 +32,6 @@ init_1_svc(void *result, struct svc_req *rqstp) bool_t retval = TRUE; /* Initialize the lists to NULL */ usr_head = NULL; - //usr_head->next = NULL; - //usr_head->sent_msgs_head = NULL; return retval; } @@ -47,20 +40,14 @@ bool_t store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) { bool_t retval = TRUE; - // printf("sender: %s\n", sender); - // printf("receiver: %s\n", receiver); - // printf("msg_id: %d\n", msg_id); - // printf("msg: %s\n", msg); - // printf("md5: %s\n", md5); struct user *temp = usr_head; /* Iterate through the list of users that sent at least one message */ while(temp != NULL){ - printf("name: %s\n", temp->name); if(strcmp(temp->name, sender) == 0){ //User found in the list /* Append the message to the list of sent messages by that user */ *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - //if(*result == -1) return retval; + if(*result == -1) return retval; /* Update the message counter */ temp->num_msgs = temp->num_msgs + 1; return retval; @@ -114,45 +101,34 @@ getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) bool_t getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) { - //result = (response *) malloc(sizeof(response)); bool_t retval = TRUE; - - //struct user *temp = usr_head; - //struct msg *msg_temp; - - // while(temp != NULL){ - // if(strcmp(temp->name, user) == 0){ //Sender is found in the list - // printf("he1\n"); - // /* Search for the message with that ID */ - // msg_temp = temp->sent_msgs_head; - // /* Iterate through the list of sent messages */ - // while(msg_temp != NULL){ - // printf("hey2\n"); - // printf("Message id: %d\n", msg_temp->id); - // if(msg_temp->id == msg_id){ //Message ID found - // printf("hey3\n"); - // //strncpy(result->msg, msg_temp->body, strlen(msg_temp->body)+1); - // //result->msg = msg_temp->body; - // //result->md5 = malloc(sizeof(msg_temp->md5)); - // //result->md5 = msg_temp->md5; - // printf("MEssage body: %s\n", msg_temp->body); - // printf("MEssage body check: %s\n", result->msg); - // printf("MEssage md5: %s\n", msg_temp->md5); - // printf("hey4\n"); - // //strncpy(result->md5, msg_temp->md5, strlen(msg_temp->md5)+1); - // return retval; - // } - // msg_temp = msg_temp->next; - // } - // /* At this point, no message with such ID was found for that user. Stop iterating */ - // printf("hey\n"); - // result = NULL; - // printf("hey\n"); - // return retval; - // } - // temp = temp->next; - // } - // result = NULL; //User was not found, thus message does not exist + + /* Initialize the strings of */ + result->msg = calloc(MAX_SIZE, sizeof(char)); + result->md5 = calloc(MAX_MD5, sizeof(char)); + + struct user *temp = usr_head; + struct msg *msg_temp; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + if(msg_temp->id == msg_id){ //Message ID found + strncpy(result->msg, msg_temp->body, strlen(msg_temp->body)+1); + strncpy(result->md5, msg_temp->md5, strlen(msg_temp->md5)+1); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + return retval; + } + temp = temp->next; + } + /* User was not found, thus message does not exist */ return retval; } @@ -162,10 +138,6 @@ store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t resul { xdr_free (xdr_result, result); - /* - * Insert additional freeing code here, if needed - */ - return 1; } @@ -184,15 +156,6 @@ int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char temp->id = id; temp->next = *head; //If msg_head is null, then the list is empty *head = temp; - // if (*msg_head == NULL){ /* Queue is empty */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - // else{ - // /* If the queue is not empty, append it to the beginning */ - // temp->next = *msg_head; - // *msg_head = temp; - // } return 0; } diff --git a/lab2/rpc_store_service/store_service_server.o b/lab2/rpc_store_service/store_service_server.o index 8e84faf278ab58d4e0e5d3031b41f5fc3d358457..af6dd76829f69736095985b5aa02a4a6d9ab4724 100644 GIT binary patch literal 15752 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 delta 5495 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 B5p@6n literal 0 HcmV?d00001 diff --git a/lab2_pruebas/Makefile b/lab2_pruebas/Makefile new file mode 100644 index 0000000..1fd4c01 --- /dev/null +++ b/lab2_pruebas/Makefile @@ -0,0 +1,54 @@ + +# Parameters +RPC_PATH = ./rpc_store_service +LISTS_PATH = ./lists + +SERVER = server +CLIENT = client +MD5_WS = ./md5/endpoint/MD5Publisher +MONITOR = monitor +RPC_SERVER = store_service_server + +SOURCES_CLNT.c = +SOURCES_CLNT.h = +SOURCES_SVC.c = +SOURCES_SVC.h = +SOURCES.x = $(RPC_PATH)/store_service.x + +TARGETS_SERVER.c = $(LISTS_PATH)/user_list.c $(LISTS_PATH)/msg_list.c $(LISTS_PATH)/read_line.c +TARGETS_SVC.c = $(RPC_PATH)/store_service_svc.c $(RPC_PATH)/store_service_xdr.c +TARGETS_CLNT.c = $(RPC_PATH)/store_service_clnt.c $(RPC_PATH)/store_service_xdr.c + +OBJECTS_SERVER = $(TARGETS_SERVER.c:%.c=%.o) +OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) +OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) +# Compiler flags + +CPPFLAGS += -D_REENTRANT +CFLAGS += -g -Wall +LDLIBS += -lnsl -lpthread +LDFLAGS = -L$(INSTALL_PATH)/lib/ + RPCGENFLAGS = + +# Targets + +all : $(MONITOR) $(RPC_SERVER) $(SERVER) $(CLIENT) $(MD5_WS) + +$(MONITOR) : $(MONITOR).o $(OBJECTS_CLNT) + $(LINK.c) -o $(MONITOR) $(MONITOR).o $(OBJECTS_CLNT) $(LDLIBS) + +$(RPC_SERVER) : $(RPC_SERVER).o $(OBJECTS_SVC) + $(LINK.c) -o $(RPC_SERVER) $(RPC_SERVER).o $(OBJECTS_SVC) $(LDLIBS) + +$(SERVER) : $(SERVER).o $(OBJECTS_SERVER) $(OBJECTS_CLNT) + $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ + +$(CLIENT) : + javac $(CLIENT).java + +$(MD5_WS) : + javac -cp . $(MD5_WS).java + + clean: + $(RM) core $(SERVER) $(MONITOR) $(RPC_SERVER) *.o ./*/*.o *.class ./*/*.class ./*/*/*.class + diff --git a/lab2_pruebas/ServerThread.class b/lab2_pruebas/ServerThread.class new file mode 100644 index 0000000000000000000000000000000000000000..4a4afe18a937389d3fb87ee17d9fe521cad598bf GIT binary patch literal 2670 zcmaJ>X>3$g7(Mr!>AW}7*KMH7)FM+C>_RD6s8SZC3#HNp7_1Z*e4Reqp~Fm>c>|Qi z4cQbGj3J`N5Tn*;)Kp<0G%BE&h(;0Xm&VL+{~j3ik-)rC2BJZ1a5qpSe)LQdZt6U~LHY7y>!1zJSplS=ViZ zR_fh;{*nmxpYkBnO87`o1_VFNbGVUvbIY*w&E z!&Yq5@Gu@x@Ti8z@OYAoPioXny(KUZF`3fP*J;>}C#2FHX&%JS)36h}B=v3$d+?-y z=4ongT+`O%@hoa?((n}a%J?O}ty$EtR6tE^y9I3S#Vb16cp>Wev2$MRZH;qyZMCxv z$Jx7(U?mo|N1zzA?{R;8X6kJY^L zluAxZ7aOMGJG$2zUh|rG)eOcd1SXeVP0WmAm6M{7`)WYy^#|C6i4<})vb>Q{h$}Z4 zw{-fk4$L19T1wl<2zX_g^7%rS|FJzW7zZ_!d@atdHpa@D))=#(gzcKrBvh^L<5p$69#g z=HykqY*(I1_9@R+ez?0KFq>CXcosZoR2+pE=7qo<9&Pd?`FX6xZ9Gco0ydS@u8I** z7vn8QV68X|Ym}`kkH9u=?v$s{AT-*HNwft;w3SJ?$P-lIm_A?@n=7BeA*U$RAxvp~ zAC3`Zb{&Q0%!(qrGK!oia-+zr5PaM)69C!BgPpZVrNyijv>n;B3wg8yPTGk|+KrjC z2XlE}g(bUQL7j^&=OqPL&ar?@w%dPX%!32w>}p|F-vXFx4wA!hXlATqpHqEwTg==uX~&2@K36u zlf@SXd7iH4{xy^55|_tpXWYps&6u&Fp8?f8*D7e5>cu_Sqp zI$LXXvMW@7h`b7LnpNikj`uF literal 0 HcmV?d00001 diff --git a/lab2_pruebas/authors.txt b/lab2_pruebas/authors.txt new file mode 100644 index 0000000..f5b361b --- /dev/null +++ b/lab2_pruebas/authors.txt @@ -0,0 +1,2 @@ +GUTIÉRREZ PARADELA, CARLOS 100291121 GROUP 89 +LÓPEZ LOZOYA, RUBÉN 100292107 GROUP 89 \ No newline at end of file diff --git a/lab2_pruebas/client$1.class b/lab2_pruebas/client$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d51ca23af6612a14ebeeaa6cf20d3e31a61254a7 GIT binary patch literal 521 zcmZXRPfx-?5XIlNK(VxdNKjGy7Y^V-FdjT$j7g)333vda2V-<88>p78X^Y>>lf;8Z z4}K`)6bK$@(wW)m@9nK$+F+v3WJkd*B@LWW1r{EgEVm(q5< zz>$NN2!~!@!-j!P6b&Sx8Q8+MffDu@k~3NPm;nsNwUolQTpk1>V8}+B)m$zIweHXt zyibm2Jb4{)hddQ3_sxH*6Z&*yBbr6$wk?97T(8#|@|Ef`MNHobY>$q#Lk;^3O50-C ztt_L}=GQp)dTBNqB1u(=GEIc|;Ro0|6{MO1)Kng5r7zIaIhvk8 z`G!t$0`)G^C{s-uDwU5&C{Hkz9#Zs01v4oaQ^-V`a*XaZivm?S62>Tloa|6{_oDa* D_MBwI literal 0 HcmV?d00001 diff --git a/lab2_pruebas/client$RC.class b/lab2_pruebas/client$RC.class new file mode 100644 index 0000000000000000000000000000000000000000..6ef25cd5d9fff5850d0a1d3632d6f6a682dd66f4 GIT binary patch literal 884 zcmZuv?{Csj6g`g?T1xpbKy+*q-O#m6$8_!!WMLtgEF+S%ZVB;&DOgFDt|UCWesUSoZ7*=&O)h%w=)KePX-5%PI-eOz zM*G~kbgI4+461fG@`6FlT&AykffpV!6#fG}HqRL1wl@fza55rh$>2L`oyM8n+F0Ok z1(S>V0{J1$s@cQIsPDe@xUR&^g7Bd%kVM30%nS#MGm5`cTfpD?vrJ!W?9m@i(escS zs~{-=Wl|$D2?8=jJ`G18j)!;zhE=LIDf6XG!M-7K1L+G@3`L4Dah4(c8rJ9dEkwj_ zA_uwh9nl-e_b)`aF9hTbN|5LSl*-QfHDX`yv6pBkf+tY%l;TX4ODg#~`U$z4RitaE zSBQ&3lSPpbg&q|}GWLsb(v;poSDqqaccW7z?JKamc3DBWf+U$yBx|;jAzicPo7fT} P%2=VSkq8+EGL7OtEBK-v literal 0 HcmV?d00001 diff --git a/lab2_pruebas/client.class b/lab2_pruebas/client.class new file mode 100644 index 0000000000000000000000000000000000000000..f90e08494090da6ae0123803bec952f70b8171cb GIT binary patch literal 7989 zcmbVR34B!Lwf~=+N$$<$Ccr>|uwGdMNmvCm2}sByfh?G?1w|Z^A&exGI5R7upI z?a@B1Rj75>*vj*>zn-Ux7_c1 z=R4o|pYNRW-MsM8@e=?R%Z_whiATJ+3I|R6yLKMc;y=7d!66fewLap7iK8YS)6Ow3 zyy!B~ZK21DOngHJk89DZBabW16WV3r#S`f`f&aAdq!&-&>2zF;XDmFc^*1d%r}gtD z{>#L-yqJoE7GBW$+giM+#eZ9PNf&upWqQSnz4(rW|FQ6@h3{H;&BE&@-tb}`zNf|a zmGlQnb<)C{7Jg{qM;3l;;U^Z}vhY(2KQr;R7ezRz#XA}JIo>t#o`qjn_@#ySyCZShAUfrtPCb6X@3-W>=Fd{vkFcl+nJ_(RR}>!aadsJTdxx~;t}92H2V zAgi&Bvm2vPpEpvp(u?+*R#wcPG<2 zY0R`<+APhBdhZAga5Li~({wn}6pY0ClqC`fQRIcgEccHEpb-f&sGrvAKqTUCruegl zVKQeZ7iu%IGtknawk6Zq>xfOyYWIgDfs$}@M=Li;SjOgFICS=$Ei@F$-Rcj9&O|~T zd;N`#lxxO<1q%dYa)%YeDyBYTzL>CilD-f5mWO#wF4X1;Tjv);|2oe8b&A( zonPP9xGNB~@mU?a7M~-5%n*!s34(3&%luJ)ZAY}dBT5Sj_*-q6DYKMlwqRT`QDrEJ zCRgSt&0N7qmnO*sX&ZIr=U3LRFRxRQJX`X$D3E!!%$EhWEW{0_EV5;>oUInR!by-j zwQEgTV#`vcUnb|!z&X01zPzrcq`KUxtkJeD=jzDFif|Nkt=J<_cR9D zqro=nKDLo0Ay;(-Tbk5(Gy16t9b1Z|Sc~PhtUxD`*-(>^&6e|IrH#+yUu-E+4XXeH z!xWte$E9`3YRl`Ln%ebF`DW@NzKwoXj*3f&NL^Z6Q&V2LKK{mxcLmw*E?oHB_2_55LUpGn1-<;;ZPQignUDF(u`+HZ9o}v+?=WWlJhs+gsFO1sel4 z{o5K-*4k2qI}^CO2=^l@m`eUaSG^QEjcu*1{!o)c?`F?-LTyoJ zx4$LWG>>b>Ri*ej>XLtPC>g7TOXI?> z<3dhrM-Y)6Wtkb!VLBSXW@cHXFJ8q9Ti3ErAwA9USi{3+-Kt+^{;+gwo4;@ zaZI2Y3vFqVfQ_%ZzAG;; =asjOdJUgoevWhCbTgS>j}_Dh*T2-4%6G$|Q9OtjMo zH#7!TY8EkqyG@QU3_po5#|V@>!ek*Q&gJwGWt2rmNr!}hC-F%dAe-?6Y?23*OZG5w z>U;0y;b1hdYHw5%tyH%|%gS}Pz$JFVyiW7Cx4Q{Z!EoCdf^((@v3TT^tY%b zyP9KCYVyQ&1ZsCEm&&0FQ^M3p)UWgt;yXJ%5EdnDAs!N9+n+UYT?}15Y=)SLo>Vq#FH(Kh!2=z%&oifr@Dx{ znY6!2^K0FAdrOe}o;@6*!yY*^7-|aaQC+H?Qn`i0OdV$C&^@S1RX6lz+%p@s?F6Bj zZqAKPZe*C&q+{DrggJn9|jfABkH%2a3^GzB@p6W$P!x4CnAhjE5 zRlP79^15JkBfYv8UTtS|!>;K?W`i%Q8zTxm`8l30jLc8z!l?YYiB>@ud`nYFJvzS& zW7x~iPW?LBV}%y{sT33V%;K}?2*&!xbz%Gw}UgC9=wD(OehhvA)Gg_@14F?~YKC$-U8Ml6xI@kUyIO*1J;$63nVZRU4IpZ<WTR(`@3)!V^7iIOE{` zA#NOLu_G-bK7lDLJ+mpC(YuDJH~lHlQ}~?CXC_(lJYHEF?I~Bn!nd3MJx0 zg=BN17yEF6$r+$VGJkj%$He#+^RMK~^t z@uV!}r@Uo&QC8q(DZ(pKj9*A8K9F+!MJn(&eym85HIgA~U9%`adLQ--=i{?8GICDy z^6KV!FO1v7Yuvn-oBBd8iWt(0Yl!OdLQjq-?;BWQpt=)tYSfFYbk#j5@R71V@J(iv zl;`0(oRT;)gRG3P+HBwqjp2nJ4dU!*5HC!1qxdSdv$PyfP8uCajz{Bo4#U4B^)##} zM)G=4n$+bXPYltK_?DW=vm0fFR0L}@%Ih8BCc8OIN4PY znwkj*WUC&T+AgdkxEECA`Rck*U!8yAE}52}vdEX^CN)#?Po&<1%zV$H9<1NgDW=ZZ zK%42rDW#e@glglaPQ0a5n_Q~bm5K{6K}zPenN+<>)!1$*WJ3E~pJzL0Q-%oUw9xa~8xTER(=)uE;U_8G7 z*7HQfEdM^_5{j2#$agSCUghX(aO8E&lsAws-=~K@N$YD#$)m!PSDD}C4KlV&;Ab#1Me9r_|Wi(7^&hh z(qx2@ArlN+93xX^8Y5(ZkuB?tiBfNjmkmaaw6PsFCcB2T93%TMhV}*i%kVD#H;WmN zN7HW;ce^jV6WqT-Z?<=8A2*kvB+ac;Xn*_`6*uXbu0it#rK)YBYEQdb88cuRGdYFd zuwqlBfCj5^?(tp(8hktE`kK43vx<3Iuwl7zH?E!Z2nYGQn2!eT^Y|?1)6R#Ug$XY( zgXEVUg{QOc1#Q(7^kCOfq;~eHy(MsMA!NJ-wfaH{RM&O(9r!qcy}a!`kJOZdyz-6m zQ0@#id~FXPQ@7a8Ev6jw9Ha~}%qy76!N^CZu@K{oMJP6wq0~4B6-FV}8bzoxim}01 zfrxP)b{i$Q-6+RbjSAdtti~au5+j-? BdWHZ1 literal 0 HcmV?d00001 diff --git a/lab2_pruebas/client.java b/lab2_pruebas/client.java new file mode 100644 index 0000000..7412696 --- /dev/null +++ b/lab2_pruebas/client.java @@ -0,0 +1,740 @@ +import java.io.*; +import gnu.getopt.Getopt; +import java.net.Socket; +import java.net.ServerSocket; +import md5_client.MD5; +import md5_client.MD5ImplService; + + +class client { + + /********************* TYPES **********************/ + + /** + * @brief Return codes for the protocol methods + */ + private static enum RC { + OK, + ERROR, + USER_ERROR + }; + + /******************* ATTRIBUTES *******************/ + + private static String _server = null; + private static int _port = -1; + /* Controls the user bound to the client when executing a CONNECT command */ + private static String connected_user = null; + /* Instantiate and prepare an empty ServerThread for further connection */ + private static ServerThread server_thread = new ServerThread(); + + + /********************* METHODS ********************/ + + /** + * @param user - User name to register in the system + * + * @return OK if successful + * @return USER_ERROR if the user is already registered + * @return ERROR if another error occurred + */ + static RC register(String user) + { + // Write your code here + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "REGISTER" is sent indicating the operation + String operation = new String("REGISTER"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be registered + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> REGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USERNAME IN USE"); + return RC.USER_ERROR; + case 2: + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to unregister from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist + * @return ERROR if another error occurred + */ + static RC unregister(String user) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "UNREGISTER" is sent indicating the operation + String operation = new String("UNREGISTER"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be unregistered + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* If we try to unregister the user that is currently bound and connected + to the client, it is unbound from the client */ + if(connected_user != null){ + /* This protects against null pointer exception when a CONNECT command is executed and + the server marks the user as connected, but then the client is terminated without + executing DISCONNECT from the server */ + if(connected_user.equals(user)){ + connected_user = null; + /* If the unregister also disconnect a user linked to the client (connected and with a + server thread running, kill also the running thread*/ + server_thread.kill(); + } + } + + System.out.println("c> UNREGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to connect to the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already connected + * @return ERROR if another error occurred + */ + static RC connect(String user) + { + + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + /* Before trying to connect, if a user is already connected, quit the function with RC.ERROR */ + if(connected_user != null){ + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "CONNECT" is sent indicating the operation + String operation = new String("CONNECT"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be connected + out.writeBytes(user); + out.write(0); + + /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum + number of queued requests */ + ServerSocket sock = new ServerSocket(0, 10); + /* Get the port at which the socket is listening */ + int port = sock.getLocalPort(); + + //4. A string is sent with the port number listening in the client + out.writeBytes(String.valueOf(port)); + out.write(0); + + //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //6. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* Start a new thread where */ + server_thread.start(sock); + /* Bind the user to the client */ + connected_user = user; + System.out.println("c> CONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> USER ALREADY CONNECTED"); + return RC.USER_ERROR; + case 3: + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to disconnect from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already disconnected + * @return ERROR if another error occurred + */ + static RC disconnect(String user) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "DISCONNECT" is sent indicating the operation + String operation = new String("DISCONNECT"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be disconnected + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* Unbind the user from the client */ + connected_user = null; + server_thread.kill(); + System.out.println("c> DISCONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); + return RC.USER_ERROR; + case 3: + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } + } + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } + } + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + + /** + * @param user - Receiver user name + * @param message - Message to be sent + * + * @return OK if the server had successfully delivered the message + * @return USER_ERROR if the user is not connected (the message is queued for delivery) + * @return ERROR the user does not exist or another error occurred + */ + static RC send(String user, String message) + { + String md5; + /* Calculate the MD5 of the message */ + try{ + /* Define the MD5 Web service variables */ + MD5ImplService md5Service = new MD5ImplService(); + MD5 md5_ws = md5Service.getMD5ImplPort(); + md5 = md5_ws.getMD5(message); + } + catch(Exception e){ + /* If exception occurs, nothing is sent to the server */ + System.out.println("c> ERROR , SEND FAIL / ERROR IN MD5"); + System.out.println("Exception: " + e); + return RC.ERROR; + } + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + /* If there is not a user connected in the client, return error RC.ERROR */ + if(connected_user == null){ + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + + //2. The string "SEND" is sent indicating the operation + String operation = new String("SEND"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user that sends the message + out.writeBytes(connected_user); + out.write(0); + + //4. A string of characters is sent with the user that receives the message + out.writeBytes(user); + out.write(0); + + //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent + out.writeBytes(trimMessage(message)); //Sends a string of 255 characters + out.write(0); + + //6. A string of characters is sent with the MD5 hash of the message to be sent + out.writeBytes(md5); //Sends a string of 255 characters + out.write(0); + + //7. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + String msg_id = new String(); + /* If response is 0 (OK), prepare to read the ID of the message */ + if(response == 0){ + + /* Create BufferedReader for easy reading a string */ + /* + BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); + msg_id = inString.readLine();*/ + byte ch; + do{ + ch = in.readByte(); + if (ch != 0) msg_id = msg_id + ((char) ch); + } while(ch != 0); + } + + //8. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> SEND OK - MESSAGE " + msg_id); + return RC.OK; + case 1: + System.out.println("c> SEND FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + /** + * @brief Trims the input message to 255 characters + * + * @param message - String to be trimmed + * + * @return message - Result String + */ + static String trimMessage(String message){ + /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ + int maxLength = 255; + + if(message.length() > maxLength){ + message = message.substring(0, maxLength); + } + + return message; + } + + /** + * @brief Command interpreter for the client. It calls the protocol functions. + */ + static void shell() + { + boolean exit = false; + String input; + String [] line; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!exit) { + try { + System.out.print("c> "); + input = in.readLine(); + line = input.split("\\s"); + + if (line.length > 0) { + /*********** REGISTER *************/ + if (line[0].equals("REGISTER")) { + if (line.length == 2) { + register(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: REGISTER "); + } + } + + /********** UNREGISTER ************/ + else if (line[0].equals("UNREGISTER")) { + if (line.length == 2) { + unregister(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: UNREGISTER "); + } + } + + /************ CONNECT *************/ + else if (line[0].equals("CONNECT")) { + if (line.length == 2) { + connect(line[1]); // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR + } else { + System.out.println("Syntax error. Usage: CONNECT "); + } + } + + /********** DISCONNECT ************/ + else if (line[0].equals("DISCONNECT")) { + if (line.length == 2) { + disconnect(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: DISCONNECT "); + } + } + + /************** SEND **************/ + else if (line[0].equals("SEND")) { + if (line.length >= 3) { + // Remove first two words + String message = input.substring(input.indexOf(' ')+1); + message = message.substring(message.indexOf(' ')+1); + send(line[1], message); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: SEND "); + } + } + + /************** QUIT **************/ + else if (line[0].equals("QUIT")){ + if (line.length == 1) { + exit = true; + } else { + System.out.println("Syntax error. Use: QUIT"); + } + } + + /************* UNKNOWN ************/ + else { + System.out.println("Error: command '" + line[0] + "' not valid."); + } + } + } catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + } + } + + /** + * @brief Prints program usage + */ + static void usage() + { + System.out.println("Usage: java -cp . client -s -p "); + } + + /** + * @brief Parses program execution arguments + */ + static boolean parseArguments(String [] argv) + { + Getopt g = new Getopt("client", argv, "ds:p:"); + + int c; + String arg; + + while ((c = g.getopt()) != -1) { + switch(c) { + //case 'd': + // _debug = true; + // break; + case 's': + _server = g.getOptarg(); + break; + case 'p': + arg = g.getOptarg(); + _port = Integer.parseInt(arg); + break; + case '?': + System.out.print("getopt() returned " + c + "\n"); + break; // getopt() already printed an error + default: + System.out.print("getopt() returned " + c + "\n"); + } + } + + if (_server == null) + return false; + + if ((_port < 1024) || (_port > 65535)) { + System.out.println("Error: Port must be in the range 1024 <= port <= 65535"); + return false; + } + + return true; + } + + + + /********************* MAIN **********************/ + + public static void main(String[] argv) + { + if(!parseArguments(argv)) { + usage(); + return; + } + + /* Creates a thread that catches Ctrl+C kill command from the CLI and disconnects from the server the + connected user of the client (bound to the client) */ + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() { + if(connected_user != null){ + disconnect(connected_user); + } + } + }); + + shell(); + System.out.println("+++ FINISHED +++"); + } +} + +/********************* SERVERTHREAD **********************/ + +class ServerThread extends Thread{ + + private ServerSocket sc; //ServerSocket of the listening thread + private volatile Thread blinker; //Thread of type volatile that will be attached to the ServerThread + private Socket sd; + + /** + * @brief Constructor. Starts the server thread and initializes the ServerSocket property + * + * @param sc - Initialized ServerSocket + * + */ + public void start(ServerSocket sc){ + blinker = new Thread(this); + blinker.start(); + this.sc = sc; + } + + /** + * @brief Destroys the server thread + */ + public void kill(){ + try{ + if(sd != null) this.sd.close(); + } + catch(IOException e){ + System.out.println("Exception: " + e); + } + blinker = null; + } + + /** + * @brief Main execution code sequence of the server thread. Listens to incoming connections + */ + public void run(){ + Thread thisThread = Thread.currentThread(); + sd = null; + while(blinker == thisThread){ + try{ + /* Waiting for connection */ + sd = this.sc.accept(); + + DataInputStream msg_in = new DataInputStream(sd.getInputStream()); + /* Receive the string encoding the operation */ + String operation = new String(); + byte ch; + do{ + ch = msg_in.readByte(); + if (ch != 0) operation = operation + ((char) ch); + + } while(ch != 0); + /* Prepare the string for the ID of the message sent/received */ + String id = new String(); + + switch(operation){ + case "SEND_MESSAGE": + /* Read the sender username from the socket */ + String sender = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) sender = sender + ((char) ch); + + } while(ch != 0); + /* Read the ID of the received message */ + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + /* Read the string containing the MD5 of the message */ + String md5 = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) md5 = md5 + ((char) ch); + + } while(ch != 0); + /* Read the string containing the body of the message */ + String msg = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) msg = msg + ((char) ch); + + } while(ch != 0); + /* Prompt */ + System.out.println("MESSAGE " + id + " FROM " + sender + ":"); + System.out.println("\t" + msg); + System.out.println("\tMD5:"); + System.out.println("\t" + md5); + System.out.println("\tEND"); + System.out.print("c> "); + break; + + case "SEND_MESS_ACK": + /* Read the id of the message being acknowledged */ + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + + System.out.println("SEND MESSAGE " + id + " OK"); + System.out.print("c> "); + break; + } + sd.close(); + + } + catch(Exception e){ + System.out.println("Exception: " + e); + //e.printStackTrace(); + this.kill(); + } + } + /* If the thread exits the loop for any reason, try to close the socket */ + try{ + sd.close(); + } + catch(Exception e){ + System.out.println("Exception: " + e); + this.kill(); + } + } +} diff --git a/lab2_pruebas/gnu/getopt/COPYING.LIB b/lab2_pruebas/gnu/getopt/COPYING.LIB new file mode 100755 index 0000000..161a3d1 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/COPYING.LIB @@ -0,0 +1,482 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/lab2_pruebas/gnu/getopt/ChangeLog b/lab2_pruebas/gnu/getopt/ChangeLog new file mode 100755 index 0000000..7fed6d2 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/ChangeLog @@ -0,0 +1,114 @@ +For release 1.0.14 (2012/02/08) + +David Zhang (david290@qq.com) provided Chinese language messages. +Daniel Thomas (drt24@srcf.ucam.org) contributed a patch to fix a static +access warning message. + +For release 1.0.13 (2006/08/29) + +Krzysztof Szymanski (sirch.s@gmail.com) provided Polish language messages. + +For release 1.0.12 (2005/11/12) + +Sandro Tossi (matrixhasu@gmail.com) provided Italian language messages. + +For release 1.0.11 (2005/02/19) + +Daniel Perez Alvarez (dondani@gmail.com) provided Spanish language +messages. + +For release 1.0.10 (2004/09/12) + +Marian-Nicolae V. Ion (mion@neocom.fr) provided Romanian language messages. + +For release 1.0.9 (2002/01/16) + +Yasuoka Masahiko provided Japanese langauge messages. + +Csom Gyula provided Hungarian language messages. + +Guillaume Rousse supplied the ant build file +and documentation. + +For release 1.0.8 (2000/09/11) + +Ernst de Haan provided Dutch language messages. + +For release 1.0.7 (2000/02/02) + +Fixed an obscure POSIX compatibility issue. When an optstring is "o:", +then "-o -- foo" should result in -o having an optarg of "foo", not "--" +as was previously returned. This new parsing behavior is only enabled +in POSIX compatibility mode. Thank to Don Suit (dsuit@fc.hp.com) for +reporting this and help in communicating proper POSIX behavior. + +For release 1.0.6 (1999/06/27) + +Added French language messages. Thanks to Edouard G. Parmelan +(Edouard.Parmelan@quadratec.fr) for this contribution. + +For release 1.0.5 (1999/03/23) + +Fixed bug that caused getopt to throw a StringIndexOutOfBoundsException +when an empty string ("") argument was encountered. Thanks to +Steffen Siebert (siebert@logware.de) for this bug report and a patch. + +For release 1.0.4 + +Added Norwegian language messages. Thanks to Bjørn-Ove Heimsund +(s811@drone.ii.uib.no) for this contribution. + +For release 1.0.3 + +Added German language messages. Thanks to Bernhard Bablok +(bablokb@gmx.net) for this contribution. + +For release 1.0.2 + +Prevent ArrayIndexOutOfBounds exception if "optstring" is null. David Karr +(dkarr@nmo.gtegsc.com) had a problem with this when commenting out options +during debugging, so I have fixed it. + +For release 1.0.1 + +Added Czech language messages. Thanks to Roman Szturc (Roman.Szturc@vsb.cz) +for this contribution. + +For release 1.0 + +No changes. Just increment release number to 1.0 + +For release 0.9.2 + +The sample code has been moved into a separate file called "GetoptDemo.java". +This is so that it can be legally placed into the public domain and not +subsumed into the LGPL as would be the case if it were in Getopt.java. +While I do not encourage anyone to write proprietary software, I feel that +there is no good purpose served in restricting what someone can do with +a short example program. + +Modified the Makefile and various other files to support the change +above. + +For release 0.9.1 + +This release contains only minor fixes. It's always possible it introduces +some bugs though so unless you are keen on internationalization or are +having a line separator problem, there is no need to upgrade from 0.9. + +-- Messages are now internationalized. Thanks to Bill King + (wrking@eng.sun.com) for this. + +-- Changes all print's to println's to avoid system dependent line + separators. + +-- All internal variables are now protected. Several people suggested + doing this in response to my request for comments in the help file. + No one suggested keeping any variables public. + +-- Fixed parts of licensing that mentioned the regular GPL. Getopt is + and always has been licensed under the LPGL. Thanks to Arieh Markel + (arieh.markel@sun.com) for pointing this out. + + + diff --git a/lab2_pruebas/gnu/getopt/Getopt.class b/lab2_pruebas/gnu/getopt/Getopt.class new file mode 100644 index 0000000000000000000000000000000000000000..d3c9ed475743f58df3f0aa073afb31edc0418c30 GIT binary patch literal 7366 zcmcgw3s{urm43g=KQ~8#5mdrOgBo!FF^D!n@rIYUi()`y#Tp!7z%j!N4ud6Et!plB z?rv%WF)LMDlEySQK~o!TZe|;kji#F>P21Eq*>1MoHfy%c+K}p=^Zzq2;G|D?pLQP} zzRUT~{X6IVK6v%~ca8y=fqoYj;wvsp#&##I{*H$oJlx8|Z9Lr0!yOLnbm8xDrwe!C zZl>Jh!o9f9f%|#0i-&*U;Q=1L%EN94zUIP%=;Te8lY}2)kv+V9m{Z z_BpVhza4Pl8~7%#dU$w*hez%BmXj1d=DGksw37s$ao`Zoy$@Q@123?F7kTrN11~#p!hu&D_$LRxZ^x?w zBdZr*y?R;o;<~EpMT@Hi#4@5)ghOpnUnqKwFWBx^lujXFU%9w?`RY}Rc`F4{su!}i*$PXN$x6T$ZjJgP%>tgvO};I@;-D|oTwD{41VYWTt*?PlqqXoyB4n=C+K`xl zBjoRhHf;0}-ARNtQ%t}e42PQQh!7yR1TxlDHiz1aoBdHD6<5-?s@5necUo+r;PvDz zuT4uSt>LynNAUW(hHxa}Zy+lv{EbBGHu^%1K|gupZVE)&qIIEgh{ysXg1&^E!yjsF z^+nqJ0-7S*A~1Sgve+EqNTZ+Qq&Qk5;pUL9g+!cnE&jGPU$dVazr+%2j|PIp)&90{ zd!)g?u$_J2)XWKl0@1kwW%(CtPh#+5rm5GEhZW&QvYJvE2>DmEx77P1t9V4G$}fN88g|5w7@*dG5JYSo1n)m<@Efi7iW7wv027C-wYsT-K-)PdBVkM z8g}?QsIEiJd^Qam{SDXg7xpt8vg0*6eXE)UTs3A{ED7+TjaX{d_%!Y$H|o*M!|QG= z$09dYpvsMvyjsgcEf4EZC6JlW9m`|IXO)>9|Ln#aIAzCaH{Qe#+}Hpg<=BmXK`Zs* z1UKqX>Bg6^-i>Nr)nJtyt6A%4(mHKeFWK>y8$ZO`ZmeNv-ocODco#o*<63s+C-|uw zf6H2~;q4chZDi7AWtH@62Oe)8gX_`MyUxbfd04d?I& zH*N&sh#>Rt;Zrwm;_Qx&iM59ah6o-4H!$?1C!v-IjEa#1!Jxm{7fc|8w)lbp5{xG! z?ga^@B^>-xvvP*y(n4WE<^;A_846IZP-9q`Hvy_L+~DIHmuB;4wc zMCk^&;&Y89UP(zCTduAdxW9%5YU9gk0VRTgq=F%!y?zjpmL=6@CjjtwR5j7XmBb}R zC_6d6!n`fUSo7$kbZ-~Oux3d((&D2O*_vXDE0gF-MBTW9 z$uQPx(xI+W!dlt!Aho)Eqpz*b1Zi#Ew>rOq3)vA3$3s!nFmzx|K_A`B<1R9?u)V3t zAEEHa4B~+$YJIVAzA{#JHeYKiy$1xcr~p1+7njE}TuN`Q$@DDBKsG9{2m*`w?Sv(? zUz)JLiuTJA_J0G-xJkU4q28Pc?ai40-<%0Z&6!ZzoC&DSnXuZN33APufZ3c0ea)Hf z3Uj9Gf@aA#hPfxmH)ld_bEbR1{7x4H&7;WodNk13NW05mBhLVrx1g{{sKXFX(N4h6 zG|~xK0;il|$~47frjU$5-$$@arcNfb2rjwU6l%7F#BER{2AuXDhV-glD6j5?_NLD3 zg~3Z34|e|I@Oqp_;5vd4y>J)xVPqF42j1-(e|7WN|5Thxm*Zzl13yctF>Mtjo5 z5oEkV9+CK%9;CCbF{I{cjE$*LeHfQo)QxPftrwZBRUg0-Z;|f9C8VtfWkn`S0ke>F zoMmDH%UJIrjOipR{Jn?#B-@#sFKOoM7L2E5Ewp$MPVs$=5^o?~oJXcq$dyh^l({ID z>o7}x30KNG%#|BZA$_B>tz6b8N?>pf-N$FZ8C~mWjpScThJ*xuwUMQ zN92uoQr?8`%3JWF+=i2K2TsY`u#r3&5BmjN37Z`OJ2u&IojFp|pdd9bZr0tl7g@m7UT`&kD;6v6>pgL4F>m z+}X-$u+QZz&e9n==K$`{$v%L)XxW&P-FN_3(KySdX4y0B8Mb{WF38TXZzw4<%(;Nr zvKt$jQZu;DG-`I(MbCv(89Kw(I7|0jc$C#8Xqh}zOOB<0r?~99*%`JC z)|Q-u^E_ozi2QTl6w_PHO0hakWI`XgLsW9}=BT-pUa#z>UO$9f&-gw}D9@JN)Y`PA zW++#)j0~=2&#`@I;yJ@8>BFV`S!MSjuMZPDu{7z2Nu6MzV2Mf-p0YLN91{v&AzT_l z?}4G`?l9;cJOgEmxB{gNn)3}V5ZqJlH_<58N9MWxO=Sa3qzJ4i4?rP%i3^@2kv>_j0c%B5f~vA{5$4>C7f zZ!i%tt49==dTEhIAIPa&X)^uLjU^sJP|CoxA%2qDX$dYCC%D*yrMAS7j$-=S1a%C( zhjDoyN@~^`!_>@3P!o%kI7%s44v`|!-PlIDI9sW7Tsa(vm9Ji84aVPtTKYh7lnik? z&P+ii_&)PT9A%b&6T)VNtHS#Y(kLG^+igLw!@+sJKXB}IwW3Ked3gQ zR=lH*iVxIt;;cF*&Z`%sp`)XTC|y(-JpNx4wHCacuzvRb_%SF0b$b?PlyuiloM z)H`yEdRKO+pURun8M$5k!tCW@jJ|+;80N)wGxap^8U1gnA64n%Qy6o`&U5r*Q9mkD zi)QA?Jif?oiMO|7m)Y*H6?+9A`5`!{CJcFyR=FqW(Lj@j?zl;v;!RrH=~o?~Ugw$L z95F;2Br(8c8r`@n_Q}2%nY1(o_hOV;V12l5--b1j6lKOvh3%L=*P2LGLT9G=tYSJXXc=p|LsV5_ zn240i@45jl>)n=1d(R1xF+etPsS71U7~P3K4$ukWjQwV5qz%wW#kfAqCfI+=+lM)G z=mWv9k;Sf%@RR|@m{LA$md@p~vjq3hmJsFUp{xY0!yzWOW_cXB%L!TvE#U4!#pj}8 z30oP!L^eC9V(y@d7$OeTjCl(%CdK^ZsQ5;s*RF@Nmm5o551f{$SWeWmERJU{M)Nwp zr>yh0SnFWqV3`%3fHNzV0I-9;Q~Uv%=wVzsBx;8EtX;7PR>Y&9N3Iveqrd#m5STwG zzz;?S{X(;O)^y`|p%vNTLO#pX+1+@2z~L^dPjjibda#Aa@seI?`TXbDUNFoyNnV8g zM6>Faui%7D*07o)WXc`PVCtHKmha*w%lEQw5n+mP0J96J;Ky-#FDHFg`n#wTc{A)r zb69}Kx_bl{{h#6%ZesZBXCdLrC3{pBU!^IFdx)@V=l{D4Y;Xw5(fiL#TW%IV%dMOE zQ@Tu`&e4nYQ;byoNKt=8o)#$55;L{Je64Ynwqd1qp-GRxW=;PI)FZJ&r{N`?j?;Q9 zex!5piJn0JpU4wq^h9x~o+JwOWKpW8h;ltuEYZ_MwJs6s^$g+HGexs56A$Tfv0u*> z-_Y~LvwDFzs+Wk@^ipv~FB4~Vt-L~CE6eo;xk&ru65T8}>rJvl2jxy3l6!PmKA|J> zY27Y=raR=v`WAUkZ&gxnQ+B;wx%BO7w7x^->Yb`c->GKkyVXp6k6NJbRafi#)q1^4 zHR}h|X1!Z==m*tS{gCR?539%ZUiGBjr%vhv>OK9adS5@LeyN|(Qa`0f>1TAN?$eX? z5nZT{>ZSTQU8|qhb@~Mz)Gz9=epyHKNxfCSrti{k===3){h)qRcj+JMz4~qasD4Ku z)IZV3^n3c0{yDAQ*B{W&S^c5@ME_c!*B==!eb(^kkB#yAcSeE!#3<2!FqZ3nV}rh6 z_zhu13~96*+UPJG#;u0axYtNA_8A`I+eW(4Ym7Bc8JWiWMvn2JG2ZySF~K-z + * To use Getopt, create a Getopt object with a argv array passed to the + * main method, then call the getopt() method in a loop. It will return an + * int that contains the value of the option character parsed from the + * command line. When there are no more options to be parsed, it + * returns -1. + *

+ * A command line option can be defined to take an argument. If an + * option has an argument, the value of that argument is stored in an + * instance variable called optarg, which can be accessed using the + * getOptarg() method. If an option that requires an argument is + * found, but there is no argument present, then an error message is + * printed. Normally getopt() returns a '?' in this situation, but + * that can be changed as described below. + *

+ * If an invalid option is encountered, an error message is printed + * to the standard error and getopt() returns a '?'. The value of the + * invalid option encountered is stored in the instance variable optopt + * which can be retrieved using the getOptopt() method. To suppress + * the printing of error messages for this or any other error, set + * the value of the opterr instance variable to false using the + * setOpterr() method. + *

+ * Between calls to getopt(), the instance variable optind is used to + * keep track of where the object is in the parsing process. After all + * options have been returned, optind is the index in argv of the first + * non-option argument. This variable can be accessed with the getOptind() + * method. + *

+ * Note that this object expects command line options to be passed in the + * traditional Unix manner. That is, proceeded by a '-' character. + * Multiple options can follow the '-'. For example "-abc" is equivalent + * to "-a -b -c". If an option takes a required argument, the value + * of the argument can immediately follow the option character or be + * present in the next argv element. For example, "-cfoo" and "-c foo" + * both represent an option character of 'c' with an argument of "foo" + * assuming c takes a required argument. If an option takes an argument + * that is not required, then any argument must immediately follow the + * option character in the same argv element. For example, if c takes + * a non-required argument, then "-cfoo" represents option character 'c' + * with an argument of "foo" while "-c foo" represents the option + * character 'c' with no argument, and a first non-option argv element + * of "foo". + *

+ * The user can stop getopt() from scanning any further into a command line + * by using the special argument "--" by itself. For example: + * "-a -- -d" would return an option character of 'a', then return -1 + * The "--" is discarded and "-d" is pointed to by optind as the first + * non-option argv element. + *

+ * Here is a basic example of using Getopt: + *

+ *

+  * Getopt g = new Getopt("testprog", argv, "ab:c::d");
+  * //
+  * int c;
+  * String arg;
+  * while ((c = g.getopt()) != -1)
+  *   {
+  *     switch(c)
+  *       {
+  *          case 'a':
+  *          case 'd':
+  *            System.out.print("You picked " + (char)c + "\n");
+  *            break;
+  *            //
+  *          case 'b':
+  *          case 'c':
+  *            arg = g.getOptarg();
+  *            System.out.print("You picked " + (char)c + 
+  *                             " with an argument of " +
+  *                             ((arg != null) ? arg : "null") + "\n");
+  *            break;
+  *            //
+  *          case '?':
+  *            break; // getopt() already printed an error
+  *            //
+  *          default:
+  *            System.out.print("getopt() returned " + c + "\n");
+  *       }
+  *   }
+  * 
+ *

+ * In this example, a new Getopt object is created with three params. + * The first param is the program name. This is for printing error + * messages in the form "program: error message". In the C version, this + * value is taken from argv[0], but in Java the program name is not passed + * in that element, thus the need for this parameter. The second param is + * the argument list that was passed to the main() method. The third + * param is the list of valid options. Each character represents a valid + * option. If the character is followed by a single colon, then that + * option has a required argument. If the character is followed by two + * colons, then that option has an argument that is not required. + *

+ * Note in this example that the value returned from getopt() is cast to + * a char prior to printing. This is required in order to make the value + * display correctly as a character instead of an integer. + *

+ * If the first character in the option string is a colon, for example + * ":abc::d", then getopt() will return a ':' instead of a '?' when it + * encounters an option with a missing required argument. This allows the + * caller to distinguish between invalid options and valid options that + * are simply incomplete. + *

+ * In the traditional Unix getopt(), -1 is returned when the first non-option + * charcter is encountered. In GNU getopt(), the default behavior is to + * allow options to appear anywhere on the command line. The getopt() + * method permutes the argument to make it appear to the caller that all + * options were at the beginning of the command line, and all non-options + * were at the end. For example, calling getopt() with command line args + * of "-a foo bar -d" returns options 'a' and 'd', then sets optind to + * point to "foo". The program would read the last two argv elements as + * "foo" and "bar", just as if the user had typed "-a -d foo bar". + *

+ * The user can force getopt() to stop scanning the command line with + * the special argument "--" by itself. Any elements occuring before the + * "--" are scanned and permuted as normal. Any elements after the "--" + * are returned as is as non-option argv elements. For example, + * "foo -a -- bar -d" would return option 'a' then -1. optind would point + * to "foo", "bar" and "-d" as the non-option argv elements. The "--" + * is discarded by getopt(). + *

+ * There are two ways this default behavior can be modified. The first is + * to specify traditional Unix getopt() behavior (which is also POSIX + * behavior) in which scanning stops when the first non-option argument + * encountered. (Thus "-a foo bar -d" would return 'a' as an option and + * have "foo", "bar", and "-d" as non-option elements). The second is to + * allow options anywhere, but to return all elements in the order they + * occur on the command line. When a non-option element is ecountered, + * an integer 1 is returned and the value of the non-option element is + * stored in optarg is if it were the argument to that option. For + * example, "-a foo -d", returns first 'a', then 1 (with optarg set to + * "foo") then 'd' then -1. When this "return in order" functionality + * is enabled, the only way to stop getopt() from scanning all command + * line elements is to use the special "--" string by itself as described + * above. An example is "-a foo -b -- bar", which would return 'a', then + * integer 1 with optarg set to "foo", then 'b', then -1. optind would + * then point to "bar" as the first non-option argv element. The "--" + * is discarded. + *

+ * The POSIX/traditional behavior is enabled by either setting the + * property "gnu.posixly_correct" or by putting a '+' sign as the first + * character of the option string. The difference between the two + * methods is that setting the gnu.posixly_correct property also forces + * certain error messages to be displayed in POSIX format. To enable + * the "return in order" functionality, put a '-' as the first character + * of the option string. Note that after determining the proper + * behavior, Getopt strips this leading '+' or '-', meaning that a ':' + * placed as the second character after one of those two will still cause + * getopt() to return a ':' instead of a '?' if a required option + * argument is missing. + *

+ * In addition to traditional single character options, GNU Getopt also + * supports long options. These are preceeded by a "--" sequence and + * can be as long as desired. Long options provide a more user-friendly + * way of entering command line options. For example, in addition to a + * "-h" for help, a program could support also "--help". + *

+ * Like short options, long options can also take a required or non-required + * argument. Required arguments can either be specified by placing an + * equals sign after the option name, then the argument, or by putting the + * argument in the next argv element. For example: "--outputdir=foo" and + * "--outputdir foo" both represent an option of "outputdir" with an + * argument of "foo", assuming that outputdir takes a required argument. + * If a long option takes a non-required argument, then the equals sign + * form must be used to specify the argument. In this case, + * "--outputdir=foo" would represent option outputdir with an argument of + * "foo" while "--outputdir foo" would represent the option outputdir + * with no argument and a first non-option argv element of "foo". + *

+ * Long options can also be specified using a special POSIX argument + * format (one that I highly discourage). This form of entry is + * enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid + * option string. This causes getopt to treat the name following the + * "-W" as the name of the long option. For example, "-W outputdir=foo" + * would be equivalent to "--outputdir=foo". The name can immediately + * follow the "-W" like so: "-Woutputdir=foo". Option arguments are + * handled identically to normal long options. If a string follows the + * "-W" that does not represent a valid long option, then getopt() returns + * 'W' and the caller must decide what to do. Otherwise getopt() returns + * a long option value as described below. + *

+ * While long options offer convenience, they can also be tedious to type + * in full. So it is permissible to abbreviate the option name to as + * few characters as required to uniquely identify it. If the name can + * represent multiple long options, then an error message is printed and + * getopt() returns a '?'. + *

+ * If an invalid option is specified or a required option argument is + * missing, getopt() prints an error and returns a '?' or ':' exactly + * as for short options. Note that when an invalid long option is + * encountered, the optopt variable is set to integer 0 and so cannot + * be used to identify the incorrect option the user entered. + *

+ * Long options are defined by LongOpt objects. These objects are created + * with a contructor that takes four params: a String representing the + * object name, a integer specifying what arguments the option takes + * (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, + * or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described + * below), and an integer value (described below). + *

+ * To enable long option parsing, create an array of LongOpt's representing + * the legal options and pass it to the Getopt() constructor. WARNING: If + * all elements of the array are not populated with LongOpt objects, the + * getopt() method will throw a NullPointerException. + *

+ * When getopt() is called and a long option is encountered, one of two + * things can be returned. If the flag field in the LongOpt object + * representing the long option is non-null, then the integer value field + * is stored there and an integer 0 is returned to the caller. The val + * field can then be retrieved from the flag field. Note that since the + * flag field is a StringBuffer, the appropriate String to integer converions + * must be performed in order to get the actual int value stored there. + * If the flag field in the LongOpt object is null, then the value field + * of the LongOpt is returned. This can be the character of a short option. + * This allows an app to have both a long and short option sequence + * (say, "-h" and "--help") that do the exact same thing. + *

+ * With long options, there is an alternative method of determining + * which option was selected. The method getLongind() will return the + * the index in the long option array (NOT argv) of the long option found. + * So if multiple long options are configured to return the same value, + * the application can use getLongind() to distinguish between them. + *

+ * Here is an expanded Getopt example using long options and various + * techniques described above: + *

+ *

+  * int c;
+  * String arg;
+  * LongOpt[] longopts = new LongOpt[3];
+  * // 
+  * StringBuffer sb = new StringBuffer();
+  * longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
+  * longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
+  * longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
+  * // 
+  * Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
+  * g.setOpterr(false); // We'll do our own error handling
+  * //
+  * while ((c = g.getopt()) != -1)
+  *   switch (c)
+  *     {
+  *        case 0:
+  *          arg = g.getOptarg();
+  *          System.out.println("Got long option with value '" +
+  *                             (char)(new Integer(sb.toString())).intValue()
+  *                             + "' with argument " +
+  *                             ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 1:
+  *          System.out.println("I see you have return in order set and that " +
+  *                             "a non-option argv element was just found " +
+  *                             "with the value '" + g.getOptarg() + "'");
+  *          break;
+  *          //
+  *        case 2:
+  *          arg = g.getOptarg();
+  *          System.out.println("I know this, but pretend I didn't");
+  *          System.out.println("We picked option " +
+  *                             longopts[g.getLongind()].getName() +
+  *                           " with value " + 
+  *                           ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 'b':
+  *          System.out.println("You picked plain old option " + (char)c);
+  *          break;
+  *          //
+  *        case 'c':
+  *        case 'd':
+  *          arg = g.getOptarg();
+  *          System.out.println("You picked option '" + (char)c + 
+  *                             "' with argument " +
+  *                             ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 'h':
+  *          System.out.println("I see you asked for help");
+  *          break;
+  *          //
+  *        case 'W':
+  *          System.out.println("Hmmm. You tried a -W with an incorrect long " +
+  *                             "option name");
+  *          break;
+  *          //
+  *        case ':':
+  *          System.out.println("Doh! You need an argument for option " +
+  *                             (char)g.getOptopt());
+  *          break;
+  *          //
+  *        case '?':
+  *          System.out.println("The option '" + (char)g.getOptopt() + 
+  *                           "' is not valid");
+  *          break;
+  *          //
+  *        default:
+  *          System.out.println("getopt() returned " + c);
+  *          break;
+  *     }
+  * //
+  * for (int i = g.getOptind(); i < argv.length ; i++)
+  *   System.out.println("Non option argv element: " + argv[i] + "\n");
+  * 
+ *

+ * There is an alternative form of the constructor used for long options + * above. This takes a trailing boolean flag. If set to false, Getopt + * performs identically to the example, but if the boolean flag is true + * then long options are allowed to start with a single '-' instead of + * "--". If the first character of the option is a valid short option + * character, then the option is treated as if it were the short option. + * Otherwise it behaves as if the option is a long option. Note that + * the name given to this option - long_only - is very counter-intuitive. + * It does not cause only long options to be parsed but instead enables + * the behavior described above. + *

+ * Note that the functionality and variable names used are driven from + * the C lib version as this object is a port of the C code, not a + * new implementation. This should aid in porting existing C/C++ code, + * as well as helping programmers familiar with the glibc version to + * adapt to the Java version even if it seems very non-Java at times. + *

+ * In this release I made all instance variables protected due to + * overwhelming public demand. Any code which relied on optarg, + * opterr, optind, or optopt being public will need to be modified to + * use the appropriate access methods. + *

+ * Please send all bug reports, requests, and comments to + * arenn@urbanophile.com. + * + * @version 1.0.7 + * + * @author Roland McGrath (roland@gnu.ai.mit.edu) + * @author Ulrich Drepper (drepper@cygnus.com) + * @author Aaron M. Renn (arenn@urbanophile.com) + * + * @see LongOpt + */ +public class Getopt extends Object +{ + +/**************************************************************************/ + +/* + * Class Variables + */ + +/** + * Describe how to deal with options that follow non-option ARGV-elements. + * + * If the caller did not specify anything, + * the default is REQUIRE_ORDER if the property + * gnu.posixly_correct is defined, PERMUTE otherwise. + * + * The special argument `--' forces an end of option-scanning regardless + * of the value of `ordering'. In the case of RETURN_IN_ORDER, only + * `--' can cause `getopt' to return -1 with `optind' != ARGC. + * + * REQUIRE_ORDER means don't recognize them as options; + * stop option processing when the first non-option is seen. + * This is what Unix does. + * This mode of operation is selected by either setting the property + * gnu.posixly_correct, or using `+' as the first character + * of the list of option characters. + */ +protected static final int REQUIRE_ORDER = 1; + +/** + * PERMUTE is the default. We permute the contents of ARGV as we scan, + * so that eventually all the non-options are at the end. This allows options + * to be given in any order, even with programs that were not written to + * expect this. + */ +protected static final int PERMUTE = 2; + +/** + * RETURN_IN_ORDER is an option available to programs that were written + * to expect options and other ARGV-elements in any order and that care about + * the ordering of the two. We describe each non-option ARGV-element + * as if it were the argument of an option with character code 1. + * Using `-' as the first character of the list of option characters + * selects this mode of operation. + */ +protected static final int RETURN_IN_ORDER = 3; + +/**************************************************************************/ + +/* + * Instance Variables + */ + +/** + * For communication from `getopt' to the caller. + * When `getopt' finds an option that takes an argument, + * the argument value is returned here. + * Also, when `ordering' is RETURN_IN_ORDER, + * each non-option ARGV-element is returned here. + */ +protected String optarg; + +/** + * Index in ARGV of the next element to be scanned. + * This is used for communication to and from the caller + * and for communication between successive calls to `getopt'. + * + * On entry to `getopt', zero means this is the first call; initialize. + * + * When `getopt' returns -1, this is the index of the first of the + * non-option elements that the caller should itself scan. + * + * Otherwise, `optind' communicates from one call to the next + * how much of ARGV has been scanned so far. + */ +protected int optind = 0; + +/** + * Callers store false here to inhibit the error message + * for unrecognized options. + */ +protected boolean opterr = true; + +/** + * When an unrecognized option is encountered, getopt will return a '?' + * and store the value of the invalid option here. + */ +protected int optopt = '?'; + +/** + * The next char to be scanned in the option-element + * in which the last option character we returned was found. + * This allows us to pick up the scan where we left off. + * + * If this is zero, or a null string, it means resume the scan + * by advancing to the next ARGV-element. + */ +protected String nextchar; + +/** + * This is the string describing the valid short options. + */ +protected String optstring; + +/** + * This is an array of LongOpt objects which describ the valid long + * options. + */ +protected LongOpt[] long_options; + +/** + * This flag determines whether or not we are parsing only long args + */ +protected boolean long_only; + +/** + * Stores the index into the long_options array of the long option found + */ +protected int longind; + +/** + * The flag determines whether or not we operate in strict POSIX compliance + */ +protected boolean posixly_correct; + +/** + * A flag which communicates whether or not checkLongOption() did all + * necessary processing for the current option + */ +protected boolean longopt_handled; + +/** + * The index of the first non-option in argv[] + */ +protected int first_nonopt = 1; + +/** + * The index of the last non-option in argv[] + */ +protected int last_nonopt = 1; + +/** + * Flag to tell getopt to immediately return -1 the next time it is + * called. + */ +private boolean endparse = false; + +/** + * Saved argument list passed to the program + */ +protected String[] argv; + +/** + * Determines whether we permute arguments or not + */ +protected int ordering; + +/** + * Name to print as the program name in error messages. This is necessary + * since Java does not place the program name in argv[0] + */ +protected String progname; + +/** + * The localized strings are kept in a separate file + */ +private ResourceBundle _messages = ResourceBundle.getBundle( + "gnu/getopt/MessagesBundle", Locale.getDefault()); + +/**************************************************************************/ + +/* + * Constructors + */ + +/** + * Construct a basic Getopt instance with the given input data. Note that + * this handles "short" options only. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command line to the program. + * @param optstring A String containing a description of the valid args for this program + */ +public +Getopt(String progname, String[] argv, String optstring) +{ + this(progname, argv, optstring, null, false); +} + +/**************************************************************************/ + +/** + * Construct a Getopt instance with given input data that is capable of + * parsing long options as well as short. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command ilne to the program + * @param optstring A String containing a description of the valid short args for this program + * @param long_options An array of LongOpt objects that describes the valid long args for this program + */ +public +Getopt(String progname, String[] argv, String optstring, + LongOpt[] long_options) +{ + this(progname, argv, optstring, long_options, false); +} + +/**************************************************************************/ + +/** + * Construct a Getopt instance with given input data that is capable of + * parsing long options and short options. Contrary to what you might + * think, the flag 'long_only' does not determine whether or not we + * scan for only long arguments. Instead, a value of true here allows + * long arguments to start with a '-' instead of '--' unless there is a + * conflict with a short option name. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command ilne to the program + * @param optstring A String containing a description of the valid short args for this program + * @param long_options An array of LongOpt objects that describes the valid long args for this program + * @param long_only true if long options that do not conflict with short options can start with a '-' as well as '--' + */ +public +Getopt(String progname, String[] argv, String optstring, + LongOpt[] long_options, boolean long_only) +{ + if (optstring.length() == 0) + optstring = " "; + + // This function is essentially _getopt_initialize from GNU getopt + this.progname = progname; + this.argv = argv; + this.optstring = optstring; + this.long_options = long_options; + this.long_only = long_only; + + // Check for property "gnu.posixly_correct" to determine whether to + // strictly follow the POSIX standard. This replaces the "POSIXLY_CORRECT" + // environment variable in the C version + if (System.getProperty("gnu.posixly_correct", null) == null) + posixly_correct = false; + else + { + posixly_correct = true; + _messages = ResourceBundle.getBundle("gnu/getopt/MessagesBundle", + Locale.US); + } + + // Determine how to handle the ordering of options and non-options + if (optstring.charAt(0) == '-') + { + ordering = RETURN_IN_ORDER; + if (optstring.length() > 1) + this.optstring = optstring.substring(1); + } + else if (optstring.charAt(0) == '+') + { + ordering = REQUIRE_ORDER; + if (optstring.length() > 1) + this.optstring = optstring.substring(1); + } + else if (posixly_correct) + { + ordering = REQUIRE_ORDER; + } + else + { + ordering = PERMUTE; // The normal default case + } +} + +/**************************************************************************/ + +/* + * Instance Methods + */ + +/** + * In GNU getopt, it is possible to change the string containg valid options + * on the fly because it is passed as an argument to getopt() each time. In + * this version we do not pass the string on every call. In order to allow + * dynamic option string changing, this method is provided. + * + * @param optstring The new option string to use + */ +public void +setOptstring(String optstring) +{ + if (optstring.length() == 0) + optstring = " "; + + this.optstring = optstring; +} + +/**************************************************************************/ + +/** + * optind it the index in ARGV of the next element to be scanned. + * This is used for communication to and from the caller + * and for communication between successive calls to `getopt'. + * + * When `getopt' returns -1, this is the index of the first of the + * non-option elements that the caller should itself scan. + * + * Otherwise, `optind' communicates from one call to the next + * how much of ARGV has been scanned so far. + */ +public int +getOptind() +{ + return(optind); +} + +/**************************************************************************/ + +/** + * This method allows the optind index to be set manually. Normally this + * is not necessary (and incorrect usage of this method can lead to serious + * lossage), but optind is a public symbol in GNU getopt, so this method + * was added to allow it to be modified by the caller if desired. + * + * @param optind The new value of optind + */ +public void +setOptind(int optind) +{ + this.optind = optind; +} + +/**************************************************************************/ + +/** + * Since in GNU getopt() the argument vector is passed back in to the + * function every time, the caller can swap out argv on the fly. Since + * passing argv is not required in the Java version, this method allows + * the user to override argv. Note that incorrect use of this method can + * lead to serious lossage. + * + * @param argv New argument list + */ +public void +setArgv(String[] argv) +{ + this.argv = argv; +} + +/**************************************************************************/ + +/** + * For communication from `getopt' to the caller. + * When `getopt' finds an option that takes an argument, + * the argument value is returned here. + * Also, when `ordering' is RETURN_IN_ORDER, + * each non-option ARGV-element is returned here. + * No set method is provided because setting this variable has no effect. + */ +public String +getOptarg() +{ + return(optarg); +} + +/**************************************************************************/ + +/** + * Normally Getopt will print a message to the standard error when an + * invalid option is encountered. This can be suppressed (or re-enabled) + * by calling this method. There is no get method for this variable + * because if you can't remember the state you set this to, why should I? + */ +public void +setOpterr(boolean opterr) +{ + this.opterr = opterr; +} + +/**************************************************************************/ + +/** + * When getopt() encounters an invalid option, it stores the value of that + * option in optopt which can be retrieved with this method. There is + * no corresponding set method because setting this variable has no effect. + */ +public int +getOptopt() +{ + return(optopt); +} + +/**************************************************************************/ + +/** + * Returns the index into the array of long options (NOT argv) representing + * the long option that was found. + */ +public int +getLongind() +{ + return(longind); +} + +/**************************************************************************/ + +/** + * Exchange the shorter segment with the far end of the longer segment. + * That puts the shorter segment into the right place. + * It leaves the longer segment in the right place overall, + * but it consists of two parts that need to be swapped next. + * This method is used by getopt() for argument permutation. + */ +protected void +exchange(String[] argv) +{ + int bottom = first_nonopt; + int middle = last_nonopt; + int top = optind; + String tem; + + while (top > middle && middle > bottom) + { + if (top - middle > middle - bottom) + { + // Bottom segment is the short one. + int len = middle - bottom; + int i; + + // Swap it with the top part of the top segment. + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + } + // Exclude the moved bottom segment from further swapping. + top -= len; + } + else + { + // Top segment is the short one. + int len = top - middle; + int i; + + // Swap it with the bottom part of the bottom segment. + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + } + // Exclude the moved top segment from further swapping. + bottom += len; + } + } + + // Update records for the slots the non-options now occupy. + + first_nonopt += (optind - last_nonopt); + last_nonopt = optind; +} + +/**************************************************************************/ + +/** + * Check to see if an option is a valid long option. Called by getopt(). + * Put in a separate method because this needs to be done twice. (The + * C getopt authors just copy-pasted the code!). + * + * @param longind A buffer in which to store the 'val' field of found LongOpt + * + * @return Various things depending on circumstances + */ +protected int +checkLongOption() +{ + LongOpt pfound = null; + int nameend; + boolean ambig; + boolean exact; + + longopt_handled = true; + ambig = false; + exact = false; + longind = -1; + + nameend = nextchar.indexOf("="); + if (nameend == -1) + nameend = nextchar.length(); + + // Test all lnog options for either exact match or abbreviated matches + for (int i = 0; i < long_options.length; i++) + { + if (long_options[i].getName().startsWith(nextchar.substring(0, nameend))) + { + if (long_options[i].getName().equals(nextchar.substring(0, nameend))) + { + // Exact match found + pfound = long_options[i]; + longind = i; + exact = true; + break; + } + else if (pfound == null) + { + // First nonexact match found + pfound = long_options[i]; + longind = i; + } + else + { + // Second or later nonexact match found + ambig = true; + } + } + } // for + + // Print out an error if the option specified was ambiguous + if (ambig && !exact) + { + if (opterr) + { + Object[] msgArgs = { progname, argv[optind] }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.ambigious"), + msgArgs)); + } + + nextchar = ""; + optopt = 0; + ++optind; + + return('?'); + } + + if (pfound != null) + { + ++optind; + + if (nameend != nextchar.length()) + { + if (pfound.has_arg != LongOpt.NO_ARGUMENT) + { + if (nextchar.substring(nameend).length() > 1) + optarg = nextchar.substring(nameend+1); + else + optarg = ""; + } + else + { + if (opterr) + { + // -- option + if (argv[optind - 1].startsWith("--")) + { + Object[] msgArgs = { progname, pfound.name }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.arguments1"), + msgArgs)); + } + // +option or -option + else + { + Object[] msgArgs = { progname, new + Character(argv[optind-1].charAt(0)).toString(), + pfound.name }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.arguments2"), + msgArgs)); + } + } + + nextchar = ""; + optopt = pfound.val; + + return('?'); + } + } // if (nameend) + else if (pfound.has_arg == LongOpt.REQUIRED_ARGUMENT) + { + if (optind < argv.length) + { + optarg = argv[optind]; + ++optind; + } + else + { + if (opterr) + { + Object[] msgArgs = { progname, argv[optind-1] }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires"), + msgArgs)); + } + + nextchar = ""; + optopt = pfound.val; + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + } // else if (pfound) + + nextchar = ""; + + if (pfound.flag != null) + { + pfound.flag.setLength(0); + pfound.flag.append(pfound.val); + + return(0); + } + + return(pfound.val); + } // if (pfound != null) + + longopt_handled = false; + + return(0); +} + +/**************************************************************************/ + +/** + * This method returns a char that is the current option that has been + * parsed from the command line. If the option takes an argument, then + * the internal variable 'optarg' is set which is a String representing + * the the value of the argument. This value can be retrieved by the + * caller using the getOptarg() method. If an invalid option is found, + * an error message is printed and a '?' is returned. The name of the + * invalid option character can be retrieved by calling the getOptopt() + * method. When there are no more options to be scanned, this method + * returns -1. The index of first non-option element in argv can be + * retrieved with the getOptind() method. + * + * @return Various things as described above + */ +public int +getopt() +{ + optarg = null; + + if (endparse == true) + return(-1); + + if ((nextchar == null) || (nextchar.equals(""))) + { + // If we have just processed some options following some non-options, + // exchange them so that the options come first. + if (last_nonopt > optind) + last_nonopt = optind; + if (first_nonopt > optind) + first_nonopt = optind; + + if (ordering == PERMUTE) + { + // If we have just processed some options following some non-options, + // exchange them so that the options come first. + if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) + exchange(argv); + else if (last_nonopt != optind) + first_nonopt = optind; + + // Skip any additional non-options + // and extend the range of non-options previously skipped. + while ((optind < argv.length) && (argv[optind].equals("") || + (argv[optind].charAt(0) != '-') || argv[optind].equals("-"))) + { + optind++; + } + + last_nonopt = optind; + } + + // The special ARGV-element `--' means premature end of options. + // Skip it like a null option, + // then exchange with previous non-options as if it were an option, + // then skip everything else like a non-option. + if ((optind != argv.length) && argv[optind].equals("--")) + { + optind++; + + if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) + exchange (argv); + else if (first_nonopt == last_nonopt) + first_nonopt = optind; + + last_nonopt = argv.length; + + optind = argv.length; + } + + // If we have done all the ARGV-elements, stop the scan + // and back over any non-options that we skipped and permuted. + if (optind == argv.length) + { + // Set the next-arg-index to point at the non-options + // that we previously skipped, so the caller will digest them. + if (first_nonopt != last_nonopt) + optind = first_nonopt; + + return(-1); + } + + // If we have come to a non-option and did not permute it, + // either stop the scan or describe it to the caller and pass it by. + if (argv[optind].equals("") || (argv[optind].charAt(0) != '-') || + argv[optind].equals("-")) + { + if (ordering == REQUIRE_ORDER) + return(-1); + + optarg = argv[optind++]; + return(1); + } + + // We have found another option-ARGV-element. + // Skip the initial punctuation. + if (argv[optind].startsWith("--")) + nextchar = argv[optind].substring(2); + else + nextchar = argv[optind].substring(1); + } + + // Decode the current option-ARGV-element. + + /* Check whether the ARGV-element is a long option. + + If long_only and the ARGV-element has the form "-f", where f is + a valid short option, don't consider it an abbreviated form of + a long option that starts with f. Otherwise there would be no + way to give the -f short option. + + On the other hand, if there's a long option "fubar" and + the ARGV-element is "-fu", do consider that an abbreviation of + the long option, just like "--fu", and not "-f" with arg "u". + + This distinction seems to be the most useful approach. */ + if ((long_options != null) && (argv[optind].startsWith("--") + || (long_only && ((argv[optind].length() > 2) || + (optstring.indexOf(argv[optind].charAt(1)) == -1))))) + { + int c = checkLongOption(); + + if (longopt_handled) + return(c); + + // Can't find it as a long option. If this is not getopt_long_only, + // or the option starts with '--' or is not a valid short + // option, then it's an error. + // Otherwise interpret it as a short option. + if (!long_only || argv[optind].startsWith("--") + || (optstring.indexOf(nextchar.charAt(0)) == -1)) + { + if (opterr) + { + if (argv[optind].startsWith("--")) + { + Object[] msgArgs = { progname, nextchar }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.unrecognized"), + msgArgs)); + } + else + { + Object[] msgArgs = { progname, new + Character(argv[optind].charAt(0)).toString(), + nextchar }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.unrecognized2"), + msgArgs)); + } + } + + nextchar = ""; + ++optind; + optopt = 0; + + return('?'); + } + } // if (longopts) + + // Look at and handle the next short option-character */ + int c = nextchar.charAt(0); //**** Do we need to check for empty str? + if (nextchar.length() > 1) + nextchar = nextchar.substring(1); + else + nextchar = ""; + + String temp = null; + if (optstring.indexOf(c) != -1) + temp = optstring.substring(optstring.indexOf(c)); + + if (nextchar.equals("")) + ++optind; + + if ((temp == null) || (c == ':')) + { + if (opterr) + { + if (posixly_correct) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.illegal"), msgArgs)); + } + else + { + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.invalid"), msgArgs)); + } + } + + optopt = c; + + return('?'); + } + + // Convenience. Treat POSIX -W foo same as long option --foo + if ((temp.charAt(0) == 'W') && (temp.length() > 1) && (temp.charAt(1) == ';')) + { + if (!nextchar.equals("")) + { + optarg = nextchar; + } + // No further cars in this argv element and no more argv elements + else if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message. + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + else + { + // We already incremented `optind' once; + // increment it again when taking next ARGV-elt as argument. + nextchar = argv[optind]; + optarg = argv[optind]; + } + + c = checkLongOption(); + + if (longopt_handled) + return(c); + else + // Let the application handle it + { + nextchar = null; + ++optind; + return('W'); + } + } + + if ((temp.length() > 1) && (temp.charAt(1) == ':')) + { + if ((temp.length() > 2) && (temp.charAt(2) == ':')) + // This is an option that accepts and argument optionally + { + if (!nextchar.equals("")) + { + optarg = nextchar; + ++optind; + } + else + { + optarg = null; + } + + nextchar = null; + } + else + { + if (!nextchar.equals("")) + { + optarg = nextchar; + ++optind; + } + else if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + else + { + optarg = argv[optind]; + ++optind; + + // Ok, here's an obscure Posix case. If we have o:, and + // we get -o -- foo, then we're supposed to skip the --, + // end parsing of options, and make foo an operand to -o. + // Only do this in Posix mode. + if ((posixly_correct) && optarg.equals("--")) + { + // If end of argv, error out + if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + + // Set new optarg and set to end + // Don't permute as we do on -- up above since we + // know we aren't in permute mode because of Posix. + optarg = argv[optind]; + ++optind; + first_nonopt = optind; + last_nonopt = argv.length; + endparse = true; + } + } + + nextchar = null; + } + } + + return(c); +} + +} // Class Getopt + + diff --git a/lab2_pruebas/gnu/getopt/GetoptDemo.java b/lab2_pruebas/gnu/getopt/GetoptDemo.java new file mode 100755 index 0000000..b57c5a8 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/GetoptDemo.java @@ -0,0 +1,97 @@ +import gnu.getopt.LongOpt; +import gnu.getopt.Getopt; + +/* + * This sample code was written by Aaron M. Renn and is a demonstration + * of how to utilize some of the features of the GNU getopt package. This + * sample code is hereby placed into the public domain by the author and + * may be used without restriction. + */ + +public class GetoptDemo +{ + +public static void +main(String[] argv) +{ + int c; + String arg; + LongOpt[] longopts = new LongOpt[3]; + // + StringBuffer sb = new StringBuffer(); + longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'); + longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); + longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2); + // + Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts); + g.setOpterr(false); // We'll do our own error handling + // + while ((c = g.getopt()) != -1) + switch (c) + { + case 0: + arg = g.getOptarg(); + System.out.println("Got long option with value '" + + (char)(new Integer(sb.toString())).intValue() + + "' with argument " + + ((arg != null) ? arg : "null")); + break; + // + case 1: + System.out.println("I see you have return in order set and that " + + "a non-option argv element was just found " + + "with the value '" + g.getOptarg() + "'"); + break; + // + case 2: + arg = g.getOptarg(); + System.out.println("I know this, but pretend I didn't"); + System.out.println("We picked option " + + longopts[g.getLongind()].getName() + + " with value " + + ((arg != null) ? arg : "null")); + break; + // + case 'b': + System.out.println("You picked plain old option " + (char)c); + break; + // + case 'c': + case 'd': + arg = g.getOptarg(); + System.out.println("You picked option '" + (char)c + + "' with argument " + + ((arg != null) ? arg : "null")); + break; + // + case 'h': + System.out.println("I see you asked for help"); + break; + // + case 'W': + System.out.println("Hmmm. You tried a -W with an incorrect long " + + "option name"); + break; + // + case ':': + System.out.println("Doh! You need an argument for option " + + (char)g.getOptopt()); + break; + // + case '?': + System.out.println("The option '" + (char)g.getOptopt() + + "' is not valid"); + break; + // + default: + System.out.println("getopt() returned " + c); + break; + } + // + for (int i = g.getOptind(); i < argv.length ; i++) + System.out.println("Non option argv element: " + argv[i] + "\n"); +} + +} // Class GetoptDemo + + diff --git a/lab2_pruebas/gnu/getopt/LANGUAGES b/lab2_pruebas/gnu/getopt/LANGUAGES new file mode 100755 index 0000000..d8e1399 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/LANGUAGES @@ -0,0 +1,23 @@ +Getopt supports error messages in the following languages: + +English (default) +Chinese (simplified and traditional) +Czech +Dutch +French +German +Hungarian +Italian +Japanese +Norwegian +Polish +Romanian +Spanish + +Anyone can create a translation without knowing how to program Java. +Simply supply me with a MessagesBundle file for your locale and I'm happy +to include it. See MessagesBundle.properties as an example with reference +English messages. + +Aaron (arenn@urbanophile.com) + diff --git a/lab2_pruebas/gnu/getopt/LongOpt.class b/lab2_pruebas/gnu/getopt/LongOpt.class new file mode 100644 index 0000000000000000000000000000000000000000..ee726d89099c76592745176857f45f472d8b654d GIT binary patch literal 1658 zcmZuxTXz#x6#h{tySd_?{(kw}nm*#T?w-}C;%ImY0 zn=8d!X_YvbgnUE(|tK-@_kpGGWpCZ^)lbwq>hIQrY%Zt zV?(r-`G!R|gH?yuzAf@C&!@F1C@3g0sJTZqvE`VwFdE7bPRW~jES>2qM6C@FV2QV9 z<=o+PhE^?KS@ae#8SqMX1u=pV8C0+84ZCQ{uCzkaHp*Mhv|O-;(avbud{4dpfD8B$OZW*z{EP~IAvynw`}hrMLXLsGpZ%_) YayaWh1iBcQHE}rWOM-qxl|uOVf83LL4FCWD literal 0 HcmV?d00001 diff --git a/lab2_pruebas/gnu/getopt/LongOpt.java b/lab2_pruebas/gnu/getopt/LongOpt.java new file mode 100755 index 0000000..6357085 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/LongOpt.java @@ -0,0 +1,195 @@ +/************************************************************************** +/* LongOpt.java -- Long option object for Getopt +/* +/* Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +package gnu.getopt; + +import java.util.Locale; +import java.util.ResourceBundle; +import java.text.MessageFormat; + +/**************************************************************************/ + +/** + * This object represents the definition of a long option in the Java port + * of GNU getopt. An array of LongOpt objects is passed to the Getopt + * object to define the list of valid long options for a given parsing + * session. Refer to the getopt documentation for details on the + * format of long options. + * + * @version 1.0.5 + * @author Aaron M. Renn (arenn@urbanophile.com) + * + * @see Getopt + */ +public class LongOpt extends Object +{ + +/**************************************************************************/ + +/* + * Class Variables + */ + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes no argument. + */ +public static final int NO_ARGUMENT = 0; + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes an argument that is required. + */ +public static final int REQUIRED_ARGUMENT = 1; + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes an argument that is optional. + */ +public static final int OPTIONAL_ARGUMENT = 2; + +/**************************************************************************/ + +/* + * Instance Variables + */ + +/** + * The name of the long option + */ +protected String name; + +/** + * Indicates whether the option has no argument, a required argument, or + * an optional argument. + */ +protected int has_arg; + +/** + * If this variable is not null, then the value stored in "val" is stored + * here when this long option is encountered. If this is null, the value + * stored in "val" is treated as the name of an equivalent short option. + */ +protected StringBuffer flag; + +/** + * The value to store in "flag" if flag is not null, otherwise the + * equivalent short option character for this long option. + */ +protected int val; + +/** + * Localized strings for error messages + */ +private ResourceBundle _messages = ResourceBundle.getBundle( + "gnu/getopt/MessagesBundle", Locale.getDefault()); + +/**************************************************************************/ + +/* + * Constructors + */ + +/** + * Create a new LongOpt object with the given parameter values. If the + * value passed as has_arg is not valid, then an exception is thrown. + * + * @param name The long option String. + * @param has_arg Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). + * @param flag If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. + * @param val The value to return for this long option, or the equivalent single letter option to emulate if flag is null. + * + * @exception IllegalArgumentException If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. + */ +public +LongOpt(String name, int has_arg, + StringBuffer flag, int val) throws IllegalArgumentException +{ + // Validate has_arg + if ((has_arg != NO_ARGUMENT) && (has_arg != REQUIRED_ARGUMENT) + && (has_arg != OPTIONAL_ARGUMENT)) + { + Object[] msgArgs = { new Integer(has_arg).toString() }; + throw new IllegalArgumentException(MessageFormat.format( + _messages.getString("getopt.invalidValue"), msgArgs)); + } + + // Store off values + this.name = name; + this.has_arg = has_arg; + this.flag = flag; + this.val = val; +} + +/**************************************************************************/ + +/** + * Returns the name of this LongOpt as a String + * + * @return Then name of the long option + */ +public String +getName() +{ + return(name); +} + +/**************************************************************************/ + +/** + * Returns the value set for the 'has_arg' field for this long option + * + * @return The value of 'has_arg' + */ +public int +getHasArg() +{ + return(has_arg); +} + +/**************************************************************************/ + +/** + * Returns the value of the 'flag' field for this long option + * + * @return The value of 'flag' + */ +public StringBuffer +getFlag() +{ + return(flag); +} + +/** + * Returns the value of the 'val' field for this long option + * + * @return The value of 'val' + */ +public int +getVal() +{ + return(val); +} + +/**************************************************************************/ + +} // Class LongOpt + diff --git a/lab2_pruebas/gnu/getopt/Makefile b/lab2_pruebas/gnu/getopt/Makefile new file mode 100755 index 0000000..6ff789c --- /dev/null +++ b/lab2_pruebas/gnu/getopt/Makefile @@ -0,0 +1,7 @@ +# Makefile for Java port of GNU getopt + +all: + javac LongOpt.java Getopt.java GetoptDemo.java + +docs: + javadoc -author -version -public Getopt.java LongOpt.java diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle.properties b/lab2_pruebas/gnu/getopt/MessagesBundle.properties new file mode 100755 index 0000000..9356ee1 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties -- English language error messages +/* +/* Copyright (c) 1998 by William King (wrking@eng.sun.com) and +/* Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: option ''{1}'' is ambiguous +getopt.arguments1={0}: option ''--{1}'' doesn't allow an argument +getopt.arguments2={0}: option ''{1}{2}'' doesn't allow an argument +getopt.requires={0}: option ''{1}'' requires an argument +getopt.unrecognized={0}: unrecognized option ''--{1}'' +getopt.unrecognized2={0}: unrecognized option ''{1}{2}'' +getopt.illegal={0}: illegal option -- {1} +getopt.invalid={0}: invalid option -- {1} +getopt.requires2={0}: option requires an argument -- {1} +getopt.invalidValue=Invalid value {0} for parameter 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_chs.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_chs.properties new file mode 100755 index 0000000..1090dc6 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_chs.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties šCSimple Chinese language error messages +/* +/* Copyright (c) 2012 by David Zhang (david290@qq.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: Ñ¡Ïî ''{1}'' ÓÐÆçÒå +getopt.arguments1={0}:Ñ¡Ïî''--{1}'' ²»ÄÜŽø²ÎÊý +getopt.arguments2={0}:Ñ¡Ïî''{1}{2}''²»ÄÜŽø²ÎÊý +getopt.requires={0}: Ñ¡Ïî ''{1}'' ÒªÇóŽøÓвÎÊý +getopt.unrecognized={0}: ÎÞ·šÊ¶±ðµÄÑ¡Ïî ''--{1}'' +getopt.unrecognized2={0}:ÎÞ·šÊ¶±ðµÄÑ¡Ïî''{1}{2}'' +getopt.illegal={0}: ·Ç·šÑ¡Ïî -- {1} +getopt.invalid={0}: ÎÞЧѡÏî -- {1} +getopt.requires2={0}:Ñ¡ÏîÐèÒªÓвÎÊý -- {1} +getopt.invalidValue=Ñ¡Ïî 'has_arg'µÄÖµ {0} ·Ç·š + + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_cht.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_cht.properties new file mode 100755 index 0000000..270e4f1 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_cht.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties - Triditional Chinese language error messages +/* +/* Copyright (c) 2012 by David Zhang (david290@qq.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: 遾項 ''{1}'' 有歧矩 +getopt.arguments1={0}:遾項''--{1}'' 䞍胜垶參敞 +getopt.arguments2={0}:遾項''{1}{2}''䞍胜垶參敞 +getopt.requires={0}: 遾項 ''{1}'' 芁求垶有參敞 +getopt.unrecognized={0}: 無法識別的遞項 ''--{1}'' +getopt.unrecognized2={0}:無法識別的遞項''{1}{2}'' +getopt.illegal={0}: 非法遞項 -- {1} +getopt.invalid={0}: 無效遞項 -- {1} +getopt.requires2={0}:遞項需芁有參敞 -- {1} +getopt.invalidValue=遾項 'has_arg'的倌 {0} 非法 + + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_cs.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_cs.properties new file mode 100755 index 0000000..3c14a03 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_cs.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle_cs.properties -- Czech language error messages +/* +/* Czech Messages Copyright (c) 1998 by Roman Szturc (Roman.Szturc@vsb.cz) +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: volba ''{1}'' je nejednoznaèná +getopt.arguments1={0}: volba ''--{1}'' nepøipou¹tí argument +getopt.arguments2={0}: volba ''{1}{2}'' nepøipou¹tí argument +getopt.requires={0}: volba ''{1}'' vyŸaduje argument +getopt.unrecognized={0}: nepøípustná volba ''--{1}'' +getopt.unrecognized2={0}: nepøípustná volba ''{1}{2}'' +getopt.illegal={0}: nepøípustná volba -- {1} +getopt.invalid={0}: neplatná volba -- {1} +getopt.requires2={0}: volba vyŸaduje argument -- {1} +getopt.invalidValue=Neplatná hodnota {0} parameteru 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_de.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_de.properties new file mode 100755 index 0000000..f741386 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_de.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties -- German language error messages +/* +/* German Messages Copyright (c) 1999 by Bernhard Bablok (bablokb@gmx.net) +/* These messages are encoded in ISO-8859-1 +//* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: Option ''{1}'' ist zweideutig +getopt.arguments1={0}: Option ''--{1}'' erlaubt kein Argument +getopt.arguments2={0}: Option ''{1}{2}'' erlaubt kein Argument +getopt.requires={0}: Option ''{1}'' benötigt ein Argument +getopt.unrecognized={0}: Unbekannte Option ''--{1}'' +getopt.unrecognized2={0}: Unbekannte Option ''{1}{2}'' +getopt.illegal={0}: Verbotene Option -- {1} +getopt.invalid={0}: Ungültige Option -- {1} +getopt.requires2={0}: Option benötigt ein Argument -- {1} +getopt.invalidValue=Ungültiger Wert {0} für Parameter 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_es.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_es.properties new file mode 100755 index 0000000..ef358f4 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_es.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle_es.properties -- Spanish language error messages +/* +/* Spanish Messages Copyright (c) 2004 by Daniel Pérez (dondani@gmail.com) +/* These messages are encoded in ISO-8859-1 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: la opción ''{1}'' es ambigua +getopt.arguments1={0}: la opción ''--{1}'' no permite un argumento +getopt.arguments2={0}: la opción ''{1}{2}'' no permite un argumento +getopt.requires={0}: la opción ''{1}'' requiere un argumento +getopt.unrecognized={0}: opción no reconocida ''--{1}'' +getopt.unrecognized2={0}: opción no reconocida ''{1}{2}'' +getopt.illegal={0}: opción ilegal -- {1} +getopt.invalid={0}: opción no válida -- {1} +getopt.requires2={0}: la opción requiere un argumento -- {1} +getopt.invalidValue=Valor no válido {0} para el parámetro 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_fr.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_fr.properties new file mode 100755 index 0000000..400447c --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_fr.properties @@ -0,0 +1,35 @@ +/************************************************************************** +/* MessagesBundle_fr.properties -- French language error messages +/* +/* Copyright (c) 1999 Free Software Foundation, Inc. +/* Michel Robitaille , 1996, +/* Edouard G. Parmelan , 1999. +/* These messages are encoded in ISO-8859-1 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: l'option ''{1}'' est ambiguë +getopt.arguments1={0}: l'option ''--{1}'' ne permet pas de paramètre +getopt.arguments2={0}: l'option ''{1}{2}'' ne permet pas de paramètre +getopt.requires={0}: l'option ''{1}'' requiert un paramètre +getopt.unrecognized={0}: option non reconnue ''--{1}'' +getopt.unrecognized2={0}: option non reconnue ''{1}{2}'' +getopt.illegal={0}: option illégale -- {1} +getopt.invalid={0}: option invalide -- {1} +getopt.requires2={0}: cette option requiert un paramètre -- {1} +getopt.invalidValue=Valeur invalide {0} pour le paramètre 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_hu.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_hu.properties new file mode 100755 index 0000000..f7af03b --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_hu.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Hungarian language error messages +/* +/* Copyright (c) 2001 by Gyula Csom (csom@informix.hu) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: opció ''{1}'' félreérthetõ +getopt.arguments1={0}: opció ''--{1}'' nem enged meg argumentumot +getopt.arguments2={0}: opció ''{1}{2}'' nem enged meg argumentumot +getopt.requires={0}: opció ''{1}'' argumentumot igényel +getopt.unrecognized={0}: ismeretlen opció ''--{1}'' +getopt.unrecognized2={0}: ismeretlen opció ''{1}{2}'' +getopt.illegal={0}: illegális opció -- {1} +getopt.invalid={0}: érvénytelen opció -- {1} +getopt.requires2={0}: az opció argumentumot igényel -- {1} +getopt.invalidValue=Érvénytelen érték {0} a következõ paraméterhez 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_it.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_it.properties new file mode 100755 index 0000000..c596c26 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_it.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Italian language error messages +/* +/* Copyright (c) 2005 by Sandro Tosi (matrixhasu@gmail.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: l'opzione ''{1}'' è ambigua +getopt.arguments1={0}: l'opzione ''--{1}'' non ammette un argomento +getopt.arguments2={0}: l'opzione ''{1}{2}'' non ammette un argomento +getopt.requires={0}: l'opzione ''{1}'' richiede un argomento +getopt.unrecognized={0}: opzione non riconosciuta ''--{1}'' +getopt.unrecognized2={0}: opzione non riconosciuta ''{1}{2}'' +getopt.illegal={0}: opzione illegale -- {1} +getopt.invalid={0}: opzione invalida -- {1} +getopt.requires2={0}: l'opzione richiede un argomento -- {1} +getopt.invalidValue=Valore non valido {0} per il parametro 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_ja.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_ja.properties new file mode 100755 index 0000000..5578972 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_ja.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Japanese language error messages +/* +/* Copyright (c) 2001 by Yasuoka Masahiko (yasuoka@yasuoka.net) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u66d6\u6627\u3067\u3059\u3002 +getopt.arguments1={0}: ''--{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 +getopt.arguments2={0}: ''{1}{2}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 +getopt.requires={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 +getopt.unrecognized={0}: ''--{1}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.unrecognized2={0}: ''{1}{2}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.illegal={0}: -- {1} \u306f\u4e0d\u6b63\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.invalid={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002 +getopt.requires2={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 +getopt.invalidValue={0} \u306f\u3001'has_arg' \u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u4e0d\u6b63\u306a\u5024\u3067\u3059\u3002 + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_nl.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_nl.properties new file mode 100755 index 0000000..c614922 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_nl.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle_nl.properties -- Dutch language error messages +/* +/* Copyright (c) 1999 by Ernst de Haan (ernst@jollem.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: optie ''{1}'' is ambigue +getopt.arguments1={0}: optie ''--{1}'' staat geen argumenten toe +getopt.arguments2={0}: optie ''{1}{2}'' staat geen argumenten toe +getopt.requires={0}: optie ''{1}'' heeft een argument nodig +getopt.unrecognized={0}: onbekende optie ''--{1}'' +getopt.unrecognized2={0}: onbekende optie ''{1}{2}'' +getopt.illegal={0}: niet-toegestane optie -- {1} +getopt.invalid={0}: onjuiste optie -- {1} +getopt.requires2={0}: optie heeft een argument nodig -- {1} +getopt.invalidValue=Ongeldige waarde {0} voor parameter 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_no.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_no.properties new file mode 100755 index 0000000..bcb8c50 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_no.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Norwegian language error messages +/* +/* Copyright (c) 1999 by Bjørn-Ove Heimsund (s811@ii.uib.no) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: flagget ''{1}'' er flertydig +getopt.arguments1={0}: flagget ''--{1}'' tillater ikke et argument +getopt.arguments2={0}: flagget ''{1}{2}'' tillater ikke et argument +getopt.requires={0}: flagget ''{1}'' krever et argument +getopt.unrecognized={0}: ukjent flagg ''--{1}'' +getopt.unrecognized2={0}: ukjent flagg ''{1}{2}'' +getopt.illegal={0}: ugyldig flagg -- {1} +getopt.invalid={0}: ugyldig flagg -- {1} +getopt.requires2={0}: flagget krever et argument -- {1} +getopt.invalidValue=Ugyldig verdi {0} for parameter 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_pl.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_pl.properties new file mode 100755 index 0000000..9580853 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_pl.properties @@ -0,0 +1,36 @@ +/************************************************************************** +/* MessagesBundle_pl.properties -- Polish language error messages +/* +/* Polish Messages Copyright (c) 2006 by Krzysztof Szyma?ski (sirch.s@gmail.com) +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + + +getopt.ambigious={0}: opcja ''{1}''jest wieloznaczna +getopt.arguments1={0}: opcja ''--{1}'' nie akceptuje argumentu +getopt.arguments2={0}: opcja ''{1}{2}'' nie akceptuje argumentu +getopt.requires={0}: opcja ''{1}'' wymaga argumentu +getopt.unrecognized={0}: nierozpoznana opcja ''--{1}'' +getopt.unrecognized2={0}: nierozpoznana opcja ''{1}{2}'' +getopt.illegal={0}: nie dopuszczalna opcja --{1} +getopt.invalid={0}: b??dna opcja --{1} +getopt.requires2={0}: opcja --{1} oczekuje argumentu +getopt.invalidValue=Nie poprawna warto?? {0} argument 'has_arg' + + + diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_ro.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_ro.properties new file mode 100755 index 0000000..3c0b08b --- /dev/null +++ b/lab2_pruebas/gnu/getopt/MessagesBundle_ro.properties @@ -0,0 +1,34 @@ +/************************************************************************** +/* MessagesBundle_fr.properties -- Romanian language error messages +/* +/* Copyright (c) 1999 Free Software Foundation, Inc. +/* Marian-Nicolae Ion , 2004, +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your optiunea) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: opÅ£iunea ''{1}'' este ambiguă +getopt.arguments1={0}: opÅ£iunea ''--{1}'' nu acceptă parametru +getopt.arguments2={0}: opÅ£iunea ''{1}{2}'' nu acceptă parametru +getopt.requires={0}: opÅ£iunea ''{1}'' cere un parametru +getopt.unrecognized={0}: opÅ£iune necunoscută ''--{1}'' +getopt.unrecognized2={0}: opÅ£iune necunoscută ''{1}{2}'' +getopt.illegal={0}: opÅ£iune ilegală -- {1} +getopt.invalid={0}: opÅ£iune invalidă -- {1} +getopt.requires2={0}: această opÅ£iune cere un parametru -- {1} +getopt.invalidValue=Valoare invalidă {0} pentru parametrul 'has_arg' + diff --git a/lab2_pruebas/gnu/getopt/README b/lab2_pruebas/gnu/getopt/README new file mode 100755 index 0000000..48451f7 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/README @@ -0,0 +1,57 @@ +This is a Java port of the GNU getopt functions based on the versions +contained in glibc 2.0.6. I have attempted to keep the functionality +and programmer's interface as faithful to the original as possible. +However, due to differences between Java and C, some minor changes +has to me made. (Given the obtuse interface in the clib version, +perhaps some major changes should have been made). This should not +affect the way options appear to be parsed to the end user of program +that uses this Java getopt. The use of these classes are completely +documented in the javadoc comments, so I will not repeat that info here. + +Note that since these objects are part of a package called "gnu.getopt", +they need to be in a subdirectory called gnu/getopt somewhere in your +CLASSPATH. This includes the "MessagesBundle" files. + +I am not aware of any bugs. If you find one though, please send email +to me at arenn@urbanophile.com. The more detailed a bug report the better. +Bug fixes are also welcome at the same address. Please reference +release number "1.0.13". If you use this code, it would be helpful +if you let me know so that I can let you know if anything changes or +if any major bugs have been found/fixed. + +I have included a Makefile for compiling the code. If you do not have +access to make, then you can simply do a "javac *.java" at the OS +command line (or follow your vendor's instructions for compiling a +Java class). To build the documentation, do a "make docs" +or "javadoc -public *.java". Note that the images needed by the html +generated by javadoc are not included. You will need to get those +from some other Java documentation package. + +Note that the Makefile is not compliant with the GNU makefile +standards as I anticipate that at some point a master makefile will +be created for various GNU Java packages. And it is serious overkill +to create a megabloat makefile (kinda like this megabloat README) for +such a simple package. + +There is sample code showing how to use getopt available in the +GetoptDemo.java file. + +NEW: A support file for the "ant" build process was contributed. Here are +some brief things you can do with it. Note that I have not ever used this +so it is doubly AS IS. + +Get ant from jakarta project (see jakarta.apache.org/ant), and run it with +one of these target (all is default target): +ant prepare: create the needed directories +ant classes: compile the java classes +ant jar: create the jar archive +ant javadoc: create the javadoc +ant all: create jar and javadoc +ant clean: clean everything + +Happy hacking, + +Aaron. +arenn@urbanophile.com +http://www.urbanophile.com/arenn/ + diff --git a/lab2_pruebas/gnu/getopt/buildx.xml b/lab2_pruebas/gnu/getopt/buildx.xml new file mode 100755 index 0000000..ad51e8f --- /dev/null +++ b/lab2_pruebas/gnu/getopt/buildx.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lab2_pruebas/gnu/getopt/gnu.getopt.Getopt.html b/lab2_pruebas/gnu/getopt/gnu.getopt.Getopt.html new file mode 100755 index 0000000..425de42 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/gnu.getopt.Getopt.html @@ -0,0 +1,639 @@ + + + + + + + Class gnu.getopt.Getopt + + + + +

+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+
+

+ Class gnu.getopt.Getopt +

+
+java.lang.Object
+   |
+   +----gnu.getopt.Getopt
+
+
+
+
public class Getopt +
extends Object +
+This is a Java port of GNU getopt, a class for parsing command line + arguments passed to programs. It it based on the C getopt() functions + in glibc 2.0.6 and should parse options in a 100% compatible manner. + If it does not, that is a bug. The programmer's interface is also + very compatible. +

+ To use Getopt, create a Getopt object with a argv array passed to the + main method, then call the getopt() method in a loop. It will return an + int that contains the value of the option character parsed from the + command line. When there are no more options to be parsed, it + returns -1. +

+ A command line option can be defined to take an argument. If an + option has an argument, the value of that argument is stored in an + instance variable called optarg, which can be accessed using the + getOptarg() method. If an option that requires an argument is + found, but there is no argument present, then an error message is + printed. Normally getopt() returns a '?' in this situation, but + that can be changed as described below. +

+ If an invalid option is encountered, an error message is printed + to the standard error and getopt() returns a '?'. The value of the + invalid option encountered is stored in the instance variable optopt + which can be retrieved using the getOptopt() method. To suppress + the printing of error messages for this or any other error, set + the value of the opterr instance variable to false using the + setOpterr() method. +

+ Between calls to getopt(), the instance variable optind is used to + keep track of where the object is in the parsing process. After all + options have been returned, optind is the index in argv of the first + non-option argument. This variable can be accessed with the getOptind() + method. +

+ Note that this object expects command line options to be passed in the + traditional Unix manner. That is, proceeded by a '-' character. + Multiple options can follow the '-'. For example "-abc" is equivalent + to "-a -b -c". If an option takes a required argument, the value + of the argument can immediately follow the option character or be + present in the next argv element. For example, "-cfoo" and "-c foo" + both represent an option character of 'c' with an argument of "foo" + assuming c takes a required argument. If an option takes an argument + that is not required, then any argument must immediately follow the + option character in the same argv element. For example, if c takes + a non-required argument, then "-cfoo" represents option character 'c' + with an argument of "foo" while "-c foo" represents the option + character 'c' with no argument, and a first non-option argv element + of "foo". +

+ The user can stop getopt() from scanning any further into a command line + by using the special argument "--" by itself. For example: + "-a -- -d" would return an option character of 'a', then return -1 + The "--" is discarded and "-d" is pointed to by optind as the first + non-option argv element. +

+ Here is a basic example of using Getopt: +

+

+ Getopt g = new Getopt("testprog", argv, "ab:c::d");
+ //
+ int c;
+ String arg;
+ while ((c = g.getopt()) != -1)
+   {
+     switch(c)
+       {
+          case 'a':
+          case 'd':
+            System.out.print("You picked " + (char)c + "\n");
+            break;
+            //
+          case 'b':
+          case 'c':
+            arg = g.getOptarg();
+            System.out.print("You picked " + (char)c + 
+                             " with an argument of " +
+                             ((arg != null) ? arg : "null") + "\n");
+            break;
+            //
+          case '?':
+            break; // getopt() already printed an error
+            //
+          default:
+            System.out.print("getopt() returned " + c + "\n");
+       }
+   }
+ 
+

+ In this example, a new Getopt object is created with three params. + The first param is the program name. This is for printing error + messages in the form "program: error message". In the C version, this + value is taken from argv[0], but in Java the program name is not passed + in that element, thus the need for this parameter. The second param is + the argument list that was passed to the main() method. The third + param is the list of valid options. Each character represents a valid + option. If the character is followed by a single colon, then that + option has a required argument. If the character is followed by two + colons, then that option has an argument that is not required. +

+ Note in this example that the value returned from getopt() is cast to + a char prior to printing. This is required in order to make the value + display correctly as a character instead of an integer. +

+ If the first character in the option string is a colon, for example + ":abc::d", then getopt() will return a ':' instead of a '?' when it + encounters an option with a missing required argument. This allows the + caller to distinguish between invalid options and valid options that + are simply incomplete. +

+ In the traditional Unix getopt(), -1 is returned when the first non-option + charcter is encountered. In GNU getopt(), the default behavior is to + allow options to appear anywhere on the command line. The getopt() + method permutes the argument to make it appear to the caller that all + options were at the beginning of the command line, and all non-options + were at the end. For example, calling getopt() with command line args + of "-a foo bar -d" returns options 'a' and 'd', then sets optind to + point to "foo". The program would read the last two argv elements as + "foo" and "bar", just as if the user had typed "-a -d foo bar". +

+ The user can force getopt() to stop scanning the command line with + the special argument "--" by itself. Any elements occuring before the + "--" are scanned and permuted as normal. Any elements after the "--" + are returned as is as non-option argv elements. For example, + "foo -a -- bar -d" would return option 'a' then -1. optind would point + to "foo", "bar" and "-d" as the non-option argv elements. The "--" + is discarded by getopt(). +

+ There are two ways this default behavior can be modified. The first is + to specify traditional Unix getopt() behavior (which is also POSIX + behavior) in which scanning stops when the first non-option argument + encountered. (Thus "-a foo bar -d" would return 'a' as an option and + have "foo", "bar", and "-d" as non-option elements). The second is to + allow options anywhere, but to return all elements in the order they + occur on the command line. When a non-option element is ecountered, + an integer 1 is returned and the value of the non-option element is + stored in optarg is if it were the argument to that option. For + example, "-a foo -d", returns first 'a', then 1 (with optarg set to + "foo") then 'd' then -1. When this "return in order" functionality + is enabled, the only way to stop getopt() from scanning all command + line elements is to use the special "--" string by itself as described + above. An example is "-a foo -b -- bar", which would return 'a', then + integer 1 with optarg set to "foo", then 'b', then -1. optind would + then point to "bar" as the first non-option argv element. The "--" + is discarded. +

+ The POSIX/traditional behavior is enabled by either setting the + property "gnu.posixly_correct" or by putting a '+' sign as the first + character of the option string. The difference between the two + methods is that setting the gnu.posixly_correct property also forces + certain error messages to be displayed in POSIX format. To enable + the "return in order" functionality, put a '-' as the first character + of the option string. Note that after determining the proper + behavior, Getopt strips this leading '+' or '-', meaning that a ':' + placed as the second character after one of those two will still cause + getopt() to return a ':' instead of a '?' if a required option + argument is missing. +

+ In addition to traditional single character options, GNU Getopt also + supports long options. These are preceeded by a "--" sequence and + can be as long as desired. Long options provide a more user-friendly + way of entering command line options. For example, in addition to a + "-h" for help, a program could support also "--help". +

+ Like short options, long options can also take a required or non-required + argument. Required arguments can either be specified by placing an + equals sign after the option name, then the argument, or by putting the + argument in the next argv element. For example: "--outputdir=foo" and + "--outputdir foo" both represent an option of "outputdir" with an + argument of "foo", assuming that outputdir takes a required argument. + If a long option takes a non-required argument, then the equals sign + form must be used to specify the argument. In this case, + "--outputdir=foo" would represent option outputdir with an argument of + "foo" while "--outputdir foo" would represent the option outputdir + with no argument and a first non-option argv element of "foo". +

+ Long options can also be specified using a special POSIX argument + format (one that I highly discourage). This form of entry is + enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid + option string. This causes getopt to treat the name following the + "-W" as the name of the long option. For example, "-W outputdir=foo" + would be equivalent to "--outputdir=foo". The name can immediately + follow the "-W" like so: "-Woutputdir=foo". Option arguments are + handled identically to normal long options. If a string follows the + "-W" that does not represent a valid long option, then getopt() returns + 'W' and the caller must decide what to do. Otherwise getopt() returns + a long option value as described below. +

+ While long options offer convenience, they can also be tedious to type + in full. So it is permissible to abbreviate the option name to as + few characters as required to uniquely identify it. If the name can + represent multiple long options, then an error message is printed and + getopt() returns a '?'. +

+ If an invalid option is specified or a required option argument is + missing, getopt() prints an error and returns a '?' or ':' exactly + as for short options. Note that when an invalid long option is + encountered, the optopt variable is set to integer 0 and so cannot + be used to identify the incorrect option the user entered. +

+ Long options are defined by LongOpt objects. These objects are created + with a contructor that takes four params: a String representing the + object name, a integer specifying what arguments the option takes + (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, + or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described + below), and an integer value (described below). +

+ To enable long option parsing, create an array of LongOpt's representing + the legal options and pass it to the Getopt() constructor. WARNING: If + all elements of the array are not populated with LongOpt objects, the + getopt() method will throw a NullPointerException. +

+ When getopt() is called and a long option is encountered, one of two + things can be returned. If the flag field in the LongOpt object + representing the long option is non-null, then the integer value field + is stored there and an integer 0 is returned to the caller. The val + field can then be retrieved from the flag field. Note that since the + flag field is a StringBuffer, the appropriate String to integer converions + must be performed in order to get the actual int value stored there. + If the flag field in the LongOpt object is null, then the value field + of the LongOpt is returned. This can be the character of a short option. + This allows an app to have both a long and short option sequence + (say, "-h" and "--help") that do the exact same thing. +

+ With long options, there is an alternative method of determining + which option was selected. The method getLongind() will return the + the index in the long option array (NOT argv) of the long option found. + So if multiple long options are configured to return the same value, + the application can use getLongind() to distinguish between them. +

+ Here is an expanded Getopt example using long options and various + techniques described above: +

+

+ int c;
+ String arg;
+ LongOpt[] longopts = new LongOpt[3];
+ // 
+ StringBuffer sb = new StringBuffer();
+ longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
+ longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
+ longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
+ // 
+ Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
+ g.setOpterr(false); // We'll do our own error handling
+ //
+ while ((c = g.getopt()) != -1)
+   switch (c)
+     {
+        case 0:
+          arg = g.getOptarg();
+          System.out.println("Got long option with value '" +
+                             (char)(new Integer(sb.toString())).intValue()
+                             + "' with argument " +
+                             ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 1:
+          System.out.println("I see you have return in order set and that " +
+                             "a non-option argv element was just found " +
+                             "with the value '" + g.getOptarg() + "'");
+          break;
+          //
+        case 2:
+          arg = g.getOptarg();
+          System.out.println("I know this, but pretend I didn't");
+          System.out.println("We picked option " +
+                             longopts[g.getLongind()].getName() +
+                           " with value " + 
+                           ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 'b':
+          System.out.println("You picked plain old option " + (char)c);
+          break;
+          //
+        case 'c':
+        case 'd':
+          arg = g.getOptarg();
+          System.out.println("You picked option '" + (char)c + 
+                             "' with argument " +
+                             ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 'h':
+          System.out.println("I see you asked for help");
+          break;
+          //
+        case 'W':
+          System.out.println("Hmmm. You tried a -W with an incorrect long " +
+                             "option name");
+          break;
+          //
+        case ':':
+          System.out.println("Doh! You need an argument for option " +
+                             (char)g.getOptopt());
+          break;
+          //
+        case '?':
+          System.out.println("The option '" + (char)g.getOptopt() + 
+                           "' is not valid");
+          break;
+          //
+        default:
+          System.out.println("getopt() returned " + c);
+          break;
+     }
+ //
+ for (int i = g.getOptind(); i < argv.length ; i++)
+   System.out.println("Non option argv element: " + argv[i] + "\n");
+ 
+

+ There is an alternative form of the constructor used for long options + above. This takes a trailing boolean flag. If set to false, Getopt + performs identically to the example, but if the boolean flag is true + then long options are allowed to start with a single '-' instead of + "--". If the first character of the option is a valid short option + character, then the option is treated as if it were the short option. + Otherwise it behaves as if the option is a long option. Note that + the name given to this option - long_only - is very counter-intuitive. + It does not cause only long options to be parsed but instead enables + the behavior described above. +

+ Note that the functionality and variable names used are driven from + the C lib version as this object is a port of the C code, not a + new implementation. This should aid in porting existing C/C++ code, + as well as helping programmers familiar with the glibc version to + adapt to the Java version even if it seems very non-Java at times. +

+ In this release I made all instance variables protected due to + overwhelming public demand. Any code which relied on optarg, + opterr, optind, or optopt being public will need to be modified to + use the appropriate access methods. +

+ Please send all bug reports, requests, and comments to + arenn@urbanophile.com. +

+

+
Version: +
1.0.3 +
Author: +
Roland McGrath (roland@gnu.ai.mit.edu), Ulrich Drepper (drepper@cygnus.com), Aaron M. Renn (arenn@urbanophile.com) +
See Also: +
LongOpt +
+
+ +

+ Constructor Index +

+
+
 o + Getopt(String, String[], String) +
Construct a basic Getopt instance with the given input data. +
 o + Getopt(String, String[], String, LongOpt[]) +
Construct a Getopt instance with given input data that is capable of + parsing long options as well as short. +
 o + Getopt(String, String[], String, LongOpt[], boolean) +
Construct a Getopt instance with given input data that is capable of + parsing long options and short options. +
+

+ Method Index +

+
+
 o + getLongind() +
Returns the index into the array of long options (NOT argv) representing + the long option that was found. +
 o + getopt() +
This method returns a char that is the current option that has been + parsed from the command line. +
 o + getOptarg() +
+ For communication from `getopt' to the caller. +
 o + getOptind() +
optind it the index in ARGV of the next element to be scanned. +
 o + getOptopt() +
When getopt() encounters an invalid option, it stores the value of that + option in optopt which can be retrieved with this method. +
 o + setArgv(String[]) +
Since in GNU getopt() the argument vector is passed back in to the + function every time, the caller can swap out argv on the fly. +
 o + setOpterr(boolean) +
Normally Getopt will print a message to the standard error when an + invalid option is encountered. +
 o + setOptind(int) +
This method allows the optind index to be set manually. +
 o + setOptstring(String) +
In GNU getopt, it is possible to change the string containg valid options + on the fly because it is passed as an argument to getopt() each time. +
+ +

+ Constructors +

+ + o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring)
+
+
+
Construct a basic Getopt instance with the given input data. Note that + this handles "short" options only. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command line to the program. +
optstring - A String containing a description of the valid args for this program +
+
+ o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring,
+               LongOpt long_options[])
+
+
+
Construct a Getopt instance with given input data that is capable of + parsing long options as well as short. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command ilne to the program +
optstring - A String containing a description of the valid short args for this program +
long_options - An array of LongOpt objects that describes the valid long args for this program +
+
+ o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring,
+               LongOpt long_options[],
+               boolean long_only)
+
+
+
Construct a Getopt instance with given input data that is capable of + parsing long options and short options. Contrary to what you might + think, the flag 'long_only' does not determine whether or not we + scan for only long arguments. Instead, a value of true here allows + long arguments to start with a '-' instead of '--' unless there is a + conflict with a short option name. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command ilne to the program +
optstring - A String containing a description of the valid short args for this program +
long_options - An array of LongOpt objects that describes the valid long args for this program +
long_only - true if long options that do not conflict with short options can start with a '-' as well as '--' +
+
+ +

+ Methods +

+ o +setOptstring +
+ public void setOptstring(String optstring)
+
+
+
In GNU getopt, it is possible to change the string containg valid options + on the fly because it is passed as an argument to getopt() each time. In + this version we do not pass the string on every call. In order to allow + dynamic option string changing, this method is provided. +

+

+
Parameters: +
optstring - The new option string to use +
+
+ o +getOptind +
+ public int getOptind()
+
+
+
optind it the index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + When `getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. +

+

+ o +setOptind +
+ public void setOptind(int optind)
+
+
+
This method allows the optind index to be set manually. Normally this + is not necessary (and incorrect usage of this method can lead to serious + lossage), but optind is a public symbol in GNU getopt, so this method + was added to allow it to be modified by the caller if desired. +

+

+
Parameters: +
optind - The new value of optind +
+
+ o +setArgv +
+ public void setArgv(String argv[])
+
+
+
Since in GNU getopt() the argument vector is passed back in to the + function every time, the caller can swap out argv on the fly. Since + passing argv is not required in the Java version, this method allows + the user to override argv. Note that incorrect use of this method can + lead to serious lossage. +

+

+
Parameters: +
argv - New argument list +
+
+ o +getOptarg +
+ public String getOptarg()
+
+
+
For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. + No set method is provided because setting this variable has no effect. +

+

+ o +setOpterr +
+ public void setOpterr(boolean opterr)
+
+
+
Normally Getopt will print a message to the standard error when an + invalid option is encountered. This can be suppressed (or re-enabled) + by calling this method. There is no get method for this variable + because if you can't remember the state you set this to, why should I? +

+

+ o +getOptopt +
+ public int getOptopt()
+
+
+
When getopt() encounters an invalid option, it stores the value of that + option in optopt which can be retrieved with this method. There is + no corresponding set method because setting this variable has no effect. +

+

+ o +getLongind +
+ public int getLongind()
+
+
+
Returns the index into the array of long options (NOT argv) representing + the long option that was found. +

+

+ o +getopt +
+ public int getopt()
+
+
+
This method returns a char that is the current option that has been + parsed from the command line. If the option takes an argument, then + the internal variable 'optarg' is set which is a String representing + the the value of the argument. This value can be retrieved by the + caller using the getOptarg() method. If an invalid option is found, + an error message is printed and a '?' is returned. The name of the + invalid option character can be retrieved by calling the getOptopt() + method. When there are no more options to be scanned, this method + returns -1. The index of first non-option element in argv can be + retrieved with the getOptind() method. +

+

+
Returns: +
Various things as described above +
+
+
+
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+ + diff --git a/lab2_pruebas/gnu/getopt/gnu.getopt.LongOpt.html b/lab2_pruebas/gnu/getopt/gnu.getopt.LongOpt.html new file mode 100755 index 0000000..ddc1186 --- /dev/null +++ b/lab2_pruebas/gnu/getopt/gnu.getopt.LongOpt.html @@ -0,0 +1,210 @@ + + + + + + + Class gnu.getopt.LongOpt + + + + +
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+
+

+ Class gnu.getopt.LongOpt +

+
+java.lang.Object
+   |
+   +----gnu.getopt.LongOpt
+
+
+
+
public class LongOpt +
extends Object +
+This object represents the definition of a long option in the Java port + of GNU getopt. An array of LongOpt objects is passed to the Getopt + object to define the list of valid long options for a given parsing + session. Refer to the getopt documentation for details on the + format of long options. +

+

+
Version: +
1.0.3 +
Author: +
Aaron M. Renn (arenn@urbanophile.com) +
See Also: +
Getopt +
+
+ +

+ Variable Index +

+
+
 o + NO_ARGUMENT +
Constant value used for the "has_arg" constructor argument. +
 o + OPTIONAL_ARGUMENT +
Constant value used for the "has_arg" constructor argument. +
 o + REQUIRED_ARGUMENT +
+ Constant value used for the "has_arg" constructor argument. +
+

+ Constructor Index +

+
+
 o + LongOpt(String, int, StringBuffer, int) +
Create a new LongOpt object with the given parameter values. +
+

+ Method Index +

+
+
 o + getFlag() +
Returns the value of the 'flag' field for this long option + + +
 o + getHasArg() +
Returns the value set for the 'has_arg' field for this long option + + +
 o + getName() +
Returns the name of this LongOpt as a String + + +
 o + getVal() +
Returns the value of the 'val' field for this long option + + +
+ +

+ Variables +

+ o +NO_ARGUMENT +
+ public static final int NO_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes no argument.

+

+ o +REQUIRED_ARGUMENT +
+ public static final int REQUIRED_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes an argument that is required.

+

+ o +OPTIONAL_ARGUMENT +
+ public static final int OPTIONAL_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes an argument that is optional.

+

+ +

+ Constructors +

+ + o +LongOpt +
+ public LongOpt(String name,
+                int has_arg,
+                StringBuffer flag,
+                int val) throws IllegalArgumentException
+
+
+
Create a new LongOpt object with the given parameter values. If the + value passed as has_arg is not valid, then an exception is thrown. +

+

+
Parameters: +
name - The long option String. +
has_arg - Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). +
flag - If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. +
val - The value to return for this long option, or the equivalent single letter option to emulate if flag is null. +
Throws: IllegalArgumentException +
If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. +
+
+ +

+ Methods +

+ o +getName +
+ public String getName()
+
+
+
Returns the name of this LongOpt as a String +

+

+
Returns: +
Then name of the long option +
+
+ o +getHasArg +
+ public int getHasArg()
+
+
+
Returns the value set for the 'has_arg' field for this long option +

+

+
Returns: +
The value of 'has_arg' +
+
+ o +getFlag +
+ public StringBuffer getFlag()
+
+
+
Returns the value of the 'flag' field for this long option +

+

+
Returns: +
The value of 'flag' +
+
+ o +getVal +
+ public int getVal()
+
+
+
Returns the value of the 'val' field for this long option +

+

+
Returns: +
The value of 'val' +
+
+
+
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+ + diff --git a/lab2_pruebas/jax/MD5.java b/lab2_pruebas/jax/MD5.java new file mode 100644 index 0000000..d9a0e59 --- /dev/null +++ b/lab2_pruebas/jax/MD5.java @@ -0,0 +1,13 @@ +import javax.jws.WebMethod; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.jws.soap.SOAPBinding.Style; + +//Service Endpoint Interface +@WebService +@SOAPBinding(style = Style.RPC) +public interface MD5{ + + @WebMethod String MD5(String text) throws Exception; + +} \ No newline at end of file diff --git a/lab2/MD5Client.java b/lab2_pruebas/jax/MD5Client.java similarity index 53% rename from lab2/MD5Client.java rename to lab2_pruebas/jax/MD5Client.java index c8984d7..4330699 100644 --- a/lab2/MD5Client.java +++ b/lab2_pruebas/jax/MD5Client.java @@ -1,14 +1,14 @@ -import md5.ws.MD5; -import md5.ws.MD5ImplService; +import localhost._8080.md5.MD5Impl; +import localhost._8080.md5.MD5ImplService; public class MD5Client{ public static void main(String[] args) { MD5ImplService md5Service = new MD5ImplService(); - MD5 md5 = md5Service.getMD5ImplPort(); + MD5Impl md5 = md5Service.getMD5ImplPort(); try{ - System.out.println(md5.getMD5("mkyong")); + System.out.println(md5.md5("mkyong")); } catch(Exception e){ e.printStackTrace(); diff --git a/lab2_pruebas/jax/MD5Impl.java b/lab2_pruebas/jax/MD5Impl.java new file mode 100644 index 0000000..08a25c1 --- /dev/null +++ b/lab2_pruebas/jax/MD5Impl.java @@ -0,0 +1,43 @@ +// Based on http://www.mkyong.com/java/java-md5-hashing-example/ + +import java.io.FileInputStream; +import java.security.MessageDigest; +import javax.jws.WebService; + +//Service Implementation +@WebService(targetNamespace = "http://localhost:8080/MD5") +public class MD5Impl implements MD5 +{ + /** + * Performs the MD5 algorithm in order to produce a 128-bit hash value. + * @param text input text argument. + * @return The calculated MD5 hash value (in hex format). + */ + @Override + public String MD5(String text) throws Exception + { + // Calculate MD5(text) + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] dataBytes = text.getBytes(); + md.update(dataBytes, 0, text.length()); + byte[] mdbytes = md.digest(); + + // Convert byte to hex format + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < mdbytes.length; i++) { + sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1)); + } + + return sb.toString(); + } + /* + public static void main(String[] args) throws Exception + { + // msg is the message + String msg = "hello world"; + + // Print result + System.out.println("MD5('"+ msg +"') = " + MD5(msg)); + } + */ +} diff --git a/lab2_pruebas/jax/MD5Publisher.java b/lab2_pruebas/jax/MD5Publisher.java new file mode 100644 index 0000000..66e28f8 --- /dev/null +++ b/lab2_pruebas/jax/MD5Publisher.java @@ -0,0 +1,10 @@ +import javax.xml.ws.Endpoint; + +//Endpoint publisher +public class MD5Publisher{ + + public static void main(String[] args) { + Endpoint.publish("http://localhost:8080/MD5", new MD5Impl()); + } + +} \ No newline at end of file diff --git a/lab2_pruebas/jax/localhost/_8080/md5/Exception.class b/lab2_pruebas/jax/localhost/_8080/md5/Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..fb001ccec92d990563308b6fc17ad808f716ed18 GIT binary patch literal 664 zcmah`*-8UJ5Uj~*)@Y(8-Vu+NM9~pMhzEjrfDjcl1i=THY=$_pI~#U468}m;5q$6i z{3x+E##@wu?wX$Jsvi33`QZ`35+)2pFq%LZV{wefkzx7j z0te&RX}YG|Re@^nPRo=HUpaaqn2llNsHuHr%Zl<8`EF|M_#$}s80Ol7E#9&%URAor z#rrEiv8_$hr1>1TeASTjvFN3+nq=`h=|5d>J-d55rEP|pznwblh!!>(B;Nl(xZygD zL$@Z~B;x2wB8nJ8&T>p)ojab-&x(u1MQ+!Y`KPY*$6gMr7t-`GMH`IJMrk2|1feit zQlyxmTaGfL9G$%fyJ-^*im`Tal43WK6u(k$5xV|HohMQcdOOrJava class for Exception complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="Exception">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Exception", propOrder = { + "message" +}) +public class Exception { + + protected String message; + + /** + * Gets the value of the message property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMessage() { + return message; + } + + /** + * Sets the value of the message property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMessage(String value) { + this.message = value; + } + +} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.class b/lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..f99975ef6fbac2895af1fb1c57a9b1d56eb528cf GIT binary patch literal 810 zcmb7CT~8W86g|VIz_!>TRjeQNsj|=xiINa$OiZnb3H6~8`$z^{VVd1pvO6e0t4%Z} zKJ*9lM>XDAo5cr=>C45QS0Aej zpJB7(`UByP{7~~=tI=w3@4U&sOb5{Z0*iP>c9Ej5=~fD{gmQ>C_wqKy#Q*>R literal 0 HcmV?d00001 diff --git a/lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.java b/lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.java new file mode 100644 index 0000000..81ea9b1 --- /dev/null +++ b/lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.java @@ -0,0 +1,54 @@ + +package localhost._8080.md5; + +import javax.xml.ws.WebFault; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebFault(name = "Exception", targetNamespace = "http://localhost:8080/MD5") +public class Exception_Exception + extends java.lang.Exception +{ + + /** + * Java type that goes as soapenv:Fault detail element. + * + */ + private localhost._8080.md5.Exception faultInfo; + + /** + * + * @param message + * @param faultInfo + */ + public Exception_Exception(String message, localhost._8080.md5.Exception faultInfo) { + super(message); + this.faultInfo = faultInfo; + } + + /** + * + * @param message + * @param faultInfo + * @param cause + */ + public Exception_Exception(String message, localhost._8080.md5.Exception faultInfo, Throwable cause) { + super(message, cause); + this.faultInfo = faultInfo; + } + + /** + * + * @return + * returns fault bean: localhost._8080.md5.Exception + */ + public localhost._8080.md5.Exception getFaultInfo() { + return faultInfo; + } + +} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5.class b/lab2_pruebas/jax/localhost/_8080/md5/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..be021c56be0e2843c2470528e1ebd3e6ebab54d1 GIT binary patch literal 637 zcmaixX-fk!5Qg9MT3f5F^}dS7m)fE!h~R}#JV2-xv=qS)l5Rsy+0B;St?0i}Py|2t z1N>3qbiMFE3Cv6;&%859o}M2b0W2e%Km-$UgfVGg%D^;3M7Yf&L#Esk7lK*h;1sZ{4IuXZlOl#w$qRdsj|}Yuw&PyTNQPSGDcJSr9fsVxA2>g;k^UHxu54< z?ZmOuaZS0Wx_UhaJ1a}wc^JlzI@(vZtSL`Xuaee|FMQ=_kD(AqUGhuY;&r7PTzs7J z6Wc18ru00=tzNYyT_$=VtPY944){;id(GbdZh41c{_jq2bVLiA8iZ+jhIrd`+7-7U z-6Rb3BoRf7VbpR=VVygk&(Btit3_@%R(QatKi|JnZ%Na~EPYdizKtHfTTD@yV$vcT zr`OqMi3}b}0qaMaEehTIx`U1}tiY@>E literal 0 HcmV?d00001 diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5.java b/lab2_pruebas/jax/localhost/_8080/md5/MD5.java new file mode 100644 index 0000000..746c01e --- /dev/null +++ b/lab2_pruebas/jax/localhost/_8080/md5/MD5.java @@ -0,0 +1,60 @@ + +package localhost._8080.md5; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for MD5 complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="MD5">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "MD5", propOrder = { + "arg0" +}) +public class MD5 { + + protected String arg0; + + /** + * Gets the value of the arg0 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArg0() { + return arg0; + } + + /** + * Sets the value of the arg0 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArg0(String value) { + this.arg0 = value; + } + +} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Client.java b/lab2_pruebas/jax/localhost/_8080/md5/MD5Client.java new file mode 100644 index 0000000..1af5113 --- /dev/null +++ b/lab2_pruebas/jax/localhost/_8080/md5/MD5Client.java @@ -0,0 +1,15 @@ +import localhost._8080.md5.MD5Impl; +import localhost._8080.md5.MD5ImplService; + +public class MD5Client{ + + public static void main(String[] args) { + + MD5ImplService md5Service = new MD5ImplService(); + MD5Impl md5 = md5Service.getMD5ImplPort(); + + System.out.println(md5.MD5("mkyong")); + + } + +} \ No newline at end of file diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.class b/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.class new file mode 100644 index 0000000000000000000000000000000000000000..85bf6b15177fa9969c64d513c30ba996eaea8c45 GIT binary patch literal 1172 zcma)5YflqF6g^Y>usnn+4+~Nh6sSU{i6J5I#U|Rs1k|*Nm}o+#+mUXwFL!2Z{cC>k z2l%6mcW2AiVoCVWbmq>v=bn4^-rs+I{sQn42L(JY;041Sw|mI2vv=AT1Hm2PUGlaL zZSV4=`hSRF=FQNOfwp~56|m1xZbhE9UHQ>gcE^zo&-1k~&kW0kV95L56+f4qGpT!i z_k>~I4`gUS?}RH!!r5z*a1Gs(DsnWT7qkd3rH-L05EkLVurZ<@x(+Aymi!h;rO!hV z5H%$g9p4g8LSOD_9UOCRLOoyUdfotvUX%MnT?xYZO;yND4ra;9cbmFv}1K>f>c zxmkjdU=wB7yn$$pxaxHzzhT9Wk?fr91(9ahzfp25`>h)|@&Bl6hP)qXlXq~-yep-- zuYycwSetCH8Anr5)zh>eZj9k%3{U6aB0a?o41^QWCpx^95N-;MsTj5<$LWIz>9cDY zPR!NP16XyuG5yX;V7R{wx_!DzSEbMZVF5L;SWNsPqQ#Bwm9CsB#~ivT0-jd*z-K2 zZOG6{(^h0@m5`-hj&50s=TV^37rNi2TTx*KvvinKn8!WBEyNMJEuy4w9}kkyQW{#u z3WZh`9-^$UhV{>2ukeWKl`L$aqOgg_RG}1$ctYVVh3$ksgQxV6!80QvPT5J`cN6wK K%BT>Xh3a276-8|T literal 0 HcmV?d00001 diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.java b/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.java new file mode 100644 index 0000000..d37401b --- /dev/null +++ b/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.java @@ -0,0 +1,48 @@ + +package localhost._8080.md5; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.Action; +import javax.xml.ws.FaultAction; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebService(name = "MD5Impl", targetNamespace = "http://localhost:8080/MD5") +@XmlSeeAlso({ + ObjectFactory.class +}) +public interface MD5Impl { + + + /** + * + * @param arg0 + * @return + * returns java.lang.String + * @throws Exception_Exception + */ + @WebMethod(operationName = "MD5") + @WebResult(targetNamespace = "") + @RequestWrapper(localName = "MD5", targetNamespace = "http://localhost:8080/MD5", className = "localhost._8080.md5.MD5") + @ResponseWrapper(localName = "MD5Response", targetNamespace = "http://localhost:8080/MD5", className = "localhost._8080.md5.MD5Response") + @Action(input = "http://localhost:8080/MD5/MD5Impl/MD5Request", output = "http://localhost:8080/MD5/MD5Impl/MD5Response", fault = { + @FaultAction(className = Exception_Exception.class, value = "http://localhost:8080/MD5/MD5Impl/MD5/Fault/Exception") + }) + public String md5( + @WebParam(name = "arg0", targetNamespace = "") + String arg0) + throws Exception_Exception + ; + +} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.class b/lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.class new file mode 100644 index 0000000000000000000000000000000000000000..e47e3b39fc41605f32255d42014f76165d8a0079 GIT binary patch literal 2282 zcmb7FTT|Os5dMyFkS&b41wtT!aE-AEBBTU@DVG@2P-JeV5GD^EVN_5m%N|PvUi%CB zGy2-VgF9uW=~Ey2quTDu8rL>%Lp|e_yl20?e7k%6$DhCa3g89yWpraPNa9NwJy>F~ zEMX;pR{_Li+{3Db*Q`yjSYyj1i}e8JBzzS>Tt*w-NZ63@wTv!oN>C-F1RkZc?rl_`%5P$;+%>aE!b~`1^JE-L2JBQlP&IYiT*%E@)X@+1;X70yQrhmf1qol*WbhR_piA ziunt^yy#-W5Z%~4bm2FlkK0CXecVI$Ni#xE8G<+;AUR0Co|2`YXG`>Fh%5L?X!=M$ zsdFS{_((?S8N>Gk8uCC9_}!C`2a1*8uSZRx1q#_e#;}JPqfqQG7>zX!G=l*BQE{LV z4>C@Hnm7>`GT9)^O9V0Jh8guRBZOd#6paz!Ry7M~M%)cD<^e`2h@Suf0z7LFVhIwK z$#$H`^0}l<(Z3~=))T$Ky`#?NPN{@I7lI|ozajV&os{`&cCFqZLYfwOpP+BlcF7#a zq~}Z_XH3h3I%h;`O9OBFx4p@H1(0j*Cv(A{@D)P8Ln8U<3ay-y&uwYg<>oDsa71l= zM=j!65i(IfT^WiWJlbcx^1@W!HGE=Is5fXk>TEBeWAjI}rf$%6L?qu=qt|GST_g07 z!gtb`4U#Mefeatures parameter will have their default values. + * @return + * returns MD5Impl + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5Impl getMD5ImplPort(WebServiceFeature... features) { + return super.getPort(new QName("http://localhost:8080/MD5", "MD5ImplPort"), MD5Impl.class, features); + } + + private static URL __getWsdlLocation() { + if (MD5IMPLSERVICE_EXCEPTION!= null) { + throw MD5IMPLSERVICE_EXCEPTION; + } + return MD5IMPLSERVICE_WSDL_LOCATION; + } + +} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Response.class b/lab2_pruebas/jax/localhost/_8080/md5/MD5Response.class new file mode 100644 index 0000000000000000000000000000000000000000..13a887b80f714fda96d37efa59fcfadeb6d4017e GIT binary patch literal 735 zcmaJPDqbxgjX74%Yo;!EH|M>b1z;isRp@@f7Oklo(g$fo0D#uQT%vph{ z_K7-GGFG-P4}vqczbP=+$!su*J~G~PW4&!{8dNZ;^#ad^gfn@T#IkE_PpV&8`8J7n zW1VOlC{na4(E{bmO64tMO?V+N(ONoU`eoW<`c~Um{U%Gg+8rv^5~%id=#1RWw3hzm zuj zu=C&UFIbnHy;r;K9f7CUR~n(~zggrZ3|u(*s z$)vX~ukf1VY3_GVbQJKIb1(8g;Em@Zj1`{hjFWt;9yJ0)UWDrnrsf$1V`=#d#K$4? zCfA$^s&Qm!a=i-ugu;hEppu~5m>NN!pumSR%PXHz7|Yg%UpHxOi@Rwe3YZyMT;Oh& V>^mBFaSwAm((Qdbcn9H8`U$i}s(Ana literal 0 HcmV?d00001 diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Response.java b/lab2_pruebas/jax/localhost/_8080/md5/MD5Response.java new file mode 100644 index 0000000..a1ff2cd --- /dev/null +++ b/lab2_pruebas/jax/localhost/_8080/md5/MD5Response.java @@ -0,0 +1,62 @@ + +package localhost._8080.md5; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for MD5Response complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="MD5Response">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "MD5Response", propOrder = { + "_return" +}) +public class MD5Response { + + @XmlElement(name = "return") + protected String _return; + + /** + * Gets the value of the return property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getReturn() { + return _return; + } + + /** + * Sets the value of the return property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setReturn(String value) { + this._return = value; + } + +} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.class b/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..0d9e0bbf8c38ea2d5e9a8c424cedec2778ad8853 GIT binary patch literal 2032 zcmbtVT~pIQ6g>;2O+$fF5ClQ2sI;I2LMMJ5fI5++TVCUxLn`SH*h znehksqa5!|+Z0O*Gt!6My?4(&d-mS!?e9N7e*u_7Mn*qghp-@{jps!f0iNH;2=crX zMjui#BrNmlEe|UptV&2qn3B1U2nwCb+lvSAs{ia>iJxi1jdC?4wq zJzIvQ@01HUz4S@Vne5R@y6Wg&yg)pW+%k)rYMvBrM>$%YS)5S{$McE@Ar;|j6iFey zE%3BS$X*Xw7cDT}I-(Au$c2Qj45m$9Nm0(Qj+OUo2kRMAFX)!T>h_Ghr8?yj-7oup zEXys=UZDeqvSrIL3i`fb8Y}TfFyUIbqtf@@vn#oGN0u$+p2?0&o3~Yps?Er;+60M(1dL77^UT087}2V31e$F+ks3Bf$F-tF4BiX=(<3 zXa17~fhdzGrfTJt>W=&BS~92Hd{yxqrfS9j6W0-GEt6{#gJJYpkmOytWFLf`n;xr4IJ0>d--)JE)LL+x~V4QmU6Y`AWA&m@w zM1F=#muNezp#3YYs}VuhKSkphp{}6=gzjiY&k-(;$Jfz8LWi2sDVKYkuEt6d^nb$| zqnD5lza!j-fS9U4ZjMUR4M51Jc*bbrm>?@*BZ)~HtT&G5{+ykC2>Nnv*EnDJa!wQH zC=`FrNFUmKIrnRvGrpX&RJNC1(LPXJ_&0TluESV&tfzwL4}@!0uWNPIte9&>8l~+f ZVW1RtQ=vylXdC^jbAn#E2Xh(cfxn?!<<$TH literal 0 HcmV?d00001 diff --git a/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.java b/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.java new file mode 100644 index 0000000..36e539c --- /dev/null +++ b/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.java @@ -0,0 +1,89 @@ + +package localhost._8080.md5; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the localhost._8080.md5 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _MD5_QNAME = new QName("http://localhost:8080/MD5", "MD5"); + private final static QName _MD5Response_QNAME = new QName("http://localhost:8080/MD5", "MD5Response"); + private final static QName _Exception_QNAME = new QName("http://localhost:8080/MD5", "Exception"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: localhost._8080.md5 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Exception } + * + */ + public Exception createException() { + return new Exception(); + } + + /** + * Create an instance of {@link MD5 } + * + */ + public MD5 createMD5() { + return new MD5(); + } + + /** + * Create an instance of {@link MD5Response } + * + */ + public MD5Response createMD5Response() { + return new MD5Response(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link MD5 }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "MD5") + public JAXBElement createMD5(MD5 value) { + return new JAXBElement(_MD5_QNAME, MD5 .class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link MD5Response }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "MD5Response") + public JAXBElement createMD5Response(MD5Response value) { + return new JAXBElement(_MD5Response_QNAME, MD5Response.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "Exception") + public JAXBElement createException(Exception value) { + return new JAXBElement(_Exception_QNAME, Exception.class, null, value); + } + +} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/package-info.class b/lab2_pruebas/jax/localhost/_8080/md5/package-info.class new file mode 100644 index 0000000000000000000000000000000000000000..9d01aa69e3943331a433b9415b37de7f3162079c GIT binary patch literal 250 zcmYjMJ!?Wi5S-KK^P`E4U}uvuSs@5ws(@H2LIg<{_MI2snfs93DgHJKe}F$qa?e7t zFuO3b?Ce~wr!#<8v@{$NrMm=ly?O(QhV1eGp-bHQIN(Y@A z_3oUH9JO~r;AvLw9O-Bc<=U-@?<##-vy_Fh{3g(JY*k3dlSi+JaW^J1Ua~2Ch~v>< zG@$upDA2!?^mSwHdPx6&5_l{f$*|kdBHt<*yMRC?g(|Cp>a9PZmS#IC^@J>-@dp<+ BM700_ literal 0 HcmV?d00001 diff --git a/lab2_pruebas/jax/localhost/_8080/md5/package-info.java b/lab2_pruebas/jax/localhost/_8080/md5/package-info.java new file mode 100644 index 0000000..933f36d --- /dev/null +++ b/lab2_pruebas/jax/localhost/_8080/md5/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://localhost:8080/MD5") +package localhost._8080.md5; diff --git a/lab2_pruebas/lists/msg_list.c b/lab2_pruebas/lists/msg_list.c new file mode 100644 index 0000000..6112ae3 --- /dev/null +++ b/lab2_pruebas/lists/msg_list.c @@ -0,0 +1,59 @@ +#include +#include +#include +#include +#include "msg_list.h" + + +/* Creates a new message struct and enqueues it to the end of the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->sender, sender); + temp->id = id; + temp->next = NULL; + + if (*head == NULL){ /* Queue is empty */ + temp->next = *head; + *head = temp; + } + else{ + /* If the queue is not empty, iterate to the end and append the message */ + struct msg *last = *head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + return 0; +} +/* Deletes the message at the head of the queue and returns the new + head of the list + Return a pointer to the next message in the queue + NULL if the list is left empty */ +struct msg * dequeueMsg(struct msg **head){ + struct msg* temp = *head; + /* Head pointing to the next element */ + *head = temp->next; + /* Free the resources of the first message */ + free(temp); + /* Return the new head of the queue */ + return *head; +} + +/* Deletes all the messages in the list from the head of the list +passed as paremeter */ +void deleteAllMsgs(struct msg ** head){ + struct msg **temp = head; + while(*temp != NULL){ + *temp = dequeueMsg(&(*temp)); + } + return; +} \ No newline at end of file diff --git a/lab2_pruebas/lists/msg_list.h b/lab2_pruebas/lists/msg_list.h new file mode 100644 index 0000000..bca5c01 --- /dev/null +++ b/lab2_pruebas/lists/msg_list.h @@ -0,0 +1,15 @@ +#define MAX_MSG 256 +#define MAX_MD5 33 + +struct msg{ + char body[MAX_MSG]; /* Content of the message */ + char sender[MAX_MSG]; /* Sender of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +/* ================FUNCTION HEADERS================ */ +int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender); +struct msg * dequeueMsg(struct msg **head); +void deleteAllMsgs(struct msg ** head); \ No newline at end of file diff --git a/lab2_pruebas/lists/msg_list.o b/lab2_pruebas/lists/msg_list.o new file mode 100644 index 0000000000000000000000000000000000000000..8e6708f4929b17bdd6e044e9529ee008451d4f58 GIT binary patch literal 5064 zcmbVPYitx%6uvXtZKqvYT8at*WihBg?CuuY%0sYF3eyCQfiz&Ef!W>L-3|Mw^FT`E zVd^8B#-#lr#)PQ+^AG;Uppi%-B{BR0C2EWYB@m3kL=zH7@SJQuaje^JbcJ+d^L+Jf!27aKuYFEFt zt3T9fpfu3TYMQCh%hl->((8_W;rL2mk-+qZJ;m&I&IQXP-wDGVyE=^)5*Y=t^VUXX zS{=T9Yd#3K?I{rkN(XjMgiyap868EOGnne)d0L6MSP4pu^A^*bOIW26YBRy7Sx!AB?ePUO$0VeFp5K@ zDOxD|%(R3=eodAOD$|gLb*gB|%dwPcHeCh_sgEMdWb9_a8&)aX&&-zJQDItzEIhUX zyMhX7{RaftoK{SOMr|A(_oa+FA;(#h^&SW@_%S242M3}ynyYbg8aS~OMhsbVW-m!a zFg0ghZpTWDn3U{xD8-0jDdxgbL|I+k>F84FrE zAA^cluvly}K(M34!qzv<2Xv&Hv1qpuv0~8;v5heU#O8Ju=|EwmdmYT6B_zTzut2m( z3u3EbjC7+{+j2J2odo+>!gyh^4Dih2k#4MEaM6jai_vIav=-W2#8^9s6br?UzB=vv z7))gWoSe>Z#9BO9muKMz2OmhBWWnJheAsIsFo)r1GF(x^xZBYVPto;YBaC9f^F7Ak z{O&_Gk--jFlk&13w#sDSA89kJQ&*YUWHkHDpIAw2#+tc!{j9b8yVJ>Q|6YG(?b*+* zC%+8VoSjTsd%jw3nvknlDd*zif$x+^n5<>Uu%hGnEGT=0T$yL%Xj0;y=j1r^d1;*G zxszqde5J&bxxgA3;ym2SPliQ$Pw~!8ep6&4_Jh1kXMJK&x-?$s_wBs>eem&p; ze-YkIk-jd;Tvc^&mKV9tw-k%u<*`iOap!6ilE=$g?y__xJ0YWD#XDXajSuzq#`_a} ziBx<|s&^nYkXj$_DfvN}Z_4p9cMBO19XFHTbZFf`&p=rtgB}r z5K`~a-ho7_FVVM3s~7fH&_WuG!@HPqsMA<7uf@XGY$@RQLlV7aOGoFs=1_ZcBx-<( z&^<5J@FfLO`U%uZ-&aX5-fE>kDD|XzV1U%n!!I`Ckw)f#%Fl(aj4;va zbr|eL3vYnezk13b!rByDH%4SXuES7>Fwy-Q;I&>`r;D)mIvEA*iwi>QpuPjp0cA5q zqYym-ylAo^4B4mPhjEm@>e(s48`)z+L3k^tFx){3^mRPWaT}z96aiZ%dIqN29{e zk*xMp;cIE0!_JM|baufrz!7GgyVqmRX_Mkvsdx&X}F57-YHzq za5q-HN5!YKY%4K39w!`Y!Jnc*Vic~{VZVl}`dPx8DEUqrM&FfVUU4ojItd@Yw27?a zJ1mj*JeCk>mZyW9ora)~OxWDd%{-OR-Sq$_4VUM5a*1%ymkfs(<()4z9R{YW-EDL1Of4C2gNFV@rU;uj*h8k<6#q41uQQ z0N)CkNA)nc`U-lQ@CeCjIIkxng%0C&7-K%H{{Z;vF)@|O9}6F%2DbQqH=2J64>Hhx zDh%h3=USitR=^tNzeIkwKp!UEb`+F4hW1}zQ9$ZDA*BaxUj{{^`lsotq5QFatX;3a z09d2^H!1&7(1%I4&4RK~{&SRHofFKDORDF`?+C_Jbpk6WM@=Nq5-L%R$HBUh|IhS7 z^viIyr}9%{mHcZ4#B?>jIzF&gACtd!%-ACGKcod#^H=akz%*LFtF(SL8RGikeM$MN zb;Wy%{_dbloGvV%p%5Z9Zv~;O*N(brs(+Ro;E%Alz3Ta~O*G2Cm-@#L1`Cm%|3B{B BURnSE literal 0 HcmV?d00001 diff --git a/lab2_pruebas/lists/read_line.c b/lab2_pruebas/lists/read_line.c new file mode 100644 index 0000000..c2038c3 --- /dev/null +++ b/lab2_pruebas/lists/read_line.c @@ -0,0 +1,68 @@ +#include +#include +#include +#include +#include "read_line.h" + +int send_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = send(socket, message, l, 0); + l = l -r; /* Pending data to send */ + message = message + r; /* */ + } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + +ssize_t readLine(int fd, void *buffer, size_t n) +{ + ssize_t numRead; /* num of bytes fetched by last read() */ + size_t totRead; /* total bytes read so far */ + char *buf; + char ch; + + + if (n <= 0 || buffer == NULL) { + errno = EINVAL; + return -1; + } + + buf = buffer; + totRead = 0; + + for (;;) { + numRead = read(fd, &ch, 1); /* read a byte */ + + if (numRead == -1) { + if (errno == EINTR) /* interrupted -> restart read() */ + continue; + else + return -1; /* some other error */ + } else if (numRead == 0) { /* EOF */ + if (totRead == 0) /* no byres read; return 0 */ + return 0; + else + break; + } else { /* numRead must be 1 if we get here*/ + if (ch == '\n') + break; + if (ch == '\0') + break; + if (totRead < n - 1) { /* discard > (n-1) bytes */ + totRead++; + *buf++ = ch; + } + } + } + + *buf = '\0'; + return totRead; +} diff --git a/lab2_pruebas/lists/read_line.h b/lab2_pruebas/lists/read_line.h new file mode 100644 index 0000000..e3d4c9e --- /dev/null +++ b/lab2_pruebas/lists/read_line.h @@ -0,0 +1,5 @@ +#include + +int send_msg(int socket, char *message, int length); +int recv_msg(int socket, char *message, int length); +ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab2_pruebas/lists/read_line.o b/lab2_pruebas/lists/read_line.o new file mode 100644 index 0000000000000000000000000000000000000000..d2e48826b2bbebf7b138ffa47e9f8c0d43cadda2 GIT binary patch literal 4808 zcmbVPYiJx*6uvXNNj8t>(P}lc>LOKJaCZ|;R{M^v+m6_3sYX*!*V){b#%U# zny;o7YpF%e_*JWUjaur;x9CtkH_wOEQZ2Q#2`!ei4>Tp!n4Vl@Ct9Z`m)OL4{%o7Q z2DH#Ji}vS#q!b6LlNTVxoK_v3&1$vqJsUx*L8`$yZF+K+xot4aG4D2><{Vp#>T`1# z>hf9SYbo$e&1>gU4G@`jdjF+b>cV$8Tdn#Fl?N7AA{>7~JU>BdH+rmpZ|KnRwYZz;15&n+4I3IYF z1Fue1BB)W-Ha>*?A>t28tFLRpArx*YS}s!~TvC0LFiBs$02Zy0DR`>Bm+y1Q0)(^S zi@Q)sk$pFwMQM8$6oL$5l#jZhN?x09pw^!wX#z~t`hgX?v38p&?HEX{m)c8A>G1gi z>%f3Y|LZsqb$PDR=Ufs6Pp*`;>dS*K~%u*LC+PtJ`{S1D6e~vvUVPkd|0T9qs`X z7HcgFb#Lk1+WFWTSW(1~X^Sg6`+fYr{>Ro}q>H`))2P>k88o=rm}Gj3p4 zawm?MPP~A{dlqEQ0v}=wn5>xto}Z0&e`-)|f8=hahSitw5jl&`JU;61P+D`Xh5XS& zgOT_G7u{Cx><`ngMc(m#sC(Y{sZ+ll3cVc3g;qyH-q_9^8$Gmoy!B5wO^Q-B9Y@cb z%qbo-(=Kx>?m;M&Szeis4&hk+J}90!rj<>Xojg?S6!VsujT!~rW~GXik1j)a1f4>~ zc2`1spBRnq9vqAg$A{tr(FXzL$r2Q$P2xlv2+RUjKhfOMluR(By zaC;?!yP#xRdAGpW-rc*mL^qCRJj?a`wTUG?E)AX-OvVR>;zOIHHRD_Q7XE~td+Z=n z#(R}@U2TyW*jnoW#~%{!RF8D`zOL?G)vCS#7QSwquV%c<2z{tU;Rd9W2M7(@^6zUh zj&i8!mlko@)J-Tv&0ki9{5~wh5QVqlCOGehO>o{)o8Y`FHo>9KHK7peX@cUs0+$G~ zKxB1b9r)S2Qz`vUkM0X%4*#|;LA zO>Z^)L>&Ho2N~a};DKf0O(Nb7KPnS$ay|*XNO5nK@CM2KG@{vZ!v%g5;TR{l%LW2C z=G{#4LlS<7O!iKO^CAdE%6naM4M`9>%=<)=Bnw7Ld>_INvWhdLtes9BqU4 zBN8s^XK`nu?CKd9UE3cEg0sz%9(T=gm&LQXtFw5 +#include +#include +#include +#include "msg_list.h" +#include "user_list.h" + +/* Checks if the input user is already registered + Return 0 if is registered + 1 if is not registered */ +char isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Registers a user (if not previously registered) and appends it to the end of the s list + Returns 1 if already registered + 0 if registered correctly */ +char registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + /* Prepare new user */ + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + /* If memory is full and malloc is not possible, we return code 2 */ + if(temp == NULL) return 2; + /* Initialize user values */ + strcpy(temp->username, username); + temp->status = 0; + strcpy(temp->ip, "-1"); + temp->port = 0; + temp->pend_msgs_head = NULL; + temp->next = NULL; + temp->last_id = 0; + + if (user_head == NULL){ //If list is empty + temp->next = user_head; + user_head = temp; + } + else{ + struct user *last = user_head; + + /* Iterate over the list */ + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + + return 0; +} + +/* Changes the status of a user to 1 (ON) and links an IP and port number to it + Return 0 if connect OK + 1 if user is not registered + 2 if registered but not connected */ +char connectUser(char * username, char * ip, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + strcpy(temp->ip, ip); + temp->port = port; + return 0; + } + temp = temp->next; + } + /* No user was found, so send code 1 */ + return 1; +} + +/* Changes the status of a user to 0 (OFF) and cleans the IP and port number + Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ +char disconnectUser(char * username, char * used_ip){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 0) return 2; //User already disconnected + if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + strcpy(temp->ip, "-1"); + temp->port = 0; + return 0; + } + temp = temp->next; + } + + return 1; +} + + +/* Unregisters a user, deleting it and its pending messages (if any) from the list + Returns 1 if the user does not exist. + 0 if the user is deleted correctly */ +char unregisterUser(char * username){ + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + /* Free the memory resources of the user structure */ + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + +/* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ +int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Enqueue message + return enqueueMsg(&(temp->pend_msgs_head), msg, md5, msg_id, sender); + } + temp = temp->next; + } + + return -1; //User was not found +} + +/* Increments the last-sent-message ID associated to the input user + Return the value of the updated ID */ +unsigned int updateLastID(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Increment the ID in 1 + temp->last_id = temp->last_id+1; + //If it results in 0, then the maximum representable number is overflown + if(temp->last_id == 0) temp->last_id = 1; + + return temp->last_id; + } + temp = temp->next; + } + + return 0; +} + +/* Checks if the input user is connected + Return 0 if the user is disconnected + 1 if the user is connected + 2 if error (user was not found) */ +char isConnected(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->status; //Returns 0 if OFF, 1 if ON + } + temp = temp->next; + } + /* Return error 2 if we reach this point. No user was found */ + return 2; +} + +/* Retrieves the IP associated to a user in the list + Returns a char array with the IP of the user + NULL if the user was not found */ +char * getUserIP(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->ip; //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + +/* Retrieves the port number associated to a user in the list + Return the port number + 0 if the user was not found */ +uint16_t getUserPort(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->port; //Returns the IP of the user + } + temp = temp->next; + } + return 0; +} + +/* Retrieves a pointer to the head of the pending message list associated to a user + Return the pointer to the head of the message list + NULL if the user was not found */ +struct msg ** getPendMsgHead(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return &(temp->pend_msgs_head); //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + diff --git a/lab2_pruebas/lists/user_list.h b/lab2_pruebas/lists/user_list.h new file mode 100644 index 0000000..70dcc1e --- /dev/null +++ b/lab2_pruebas/lists/user_list.h @@ -0,0 +1,27 @@ +#define MAX_USERNAME 256 +#define MAX_IP 16 +#define TRUE 1 +#define FALSE 0 + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + char ip[MAX_IP]; /* IP of the user from which the connect operation was made */ + uint16_t port; /* Port number of the user from which the connect operation was made */ + unsigned int last_id; /* ID assigned to the last sent message */ + struct msg *pend_msgs_head; /* Pointer to the head of the pending messages queue */ + struct user *next; /* Pointer to the next user in the list */ +} *user_head; + +/* ================FUNCTION HEADERS================ */ +char isRegistered(char * username); +char registerUser(char * username); +char unregisterUser(char * username); +char connectUser(char * username, char * ip, uint16_t port); +char disconnectUser(char * username, char * used_ip); +int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender); +unsigned int updateLastID(char * username); +char isConnected(char * username); +char * getUserIP(char * username); +uint16_t getUserPort(char * username); +struct msg ** getPendMsgHead(char * username); \ No newline at end of file diff --git a/lab2_pruebas/lists/user_list.o b/lab2_pruebas/lists/user_list.o new file mode 100644 index 0000000000000000000000000000000000000000..29237a607b9388453c8ee98f7fc734e88c9f955d GIT binary patch literal 10040 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 VciIW!flB14h(${J8FWse@CSH5q-p>F literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5/endpoint/MD5Publisher.java b/lab2_pruebas/md5/endpoint/MD5Publisher.java new file mode 100644 index 0000000..8e75e7d --- /dev/null +++ b/lab2_pruebas/md5/endpoint/MD5Publisher.java @@ -0,0 +1,15 @@ +package md5.endpoint; + +import javax.xml.ws.Endpoint; +import md5.ws.MD5Impl; + +//Endpoint publisher +public class MD5Publisher{ + + public static void main(String[] args) { + final String url = "http://localhost:8080/ws/md5"; + System.out.println("Publishing MD5 service at endpoint: " + url); + Endpoint.publish(url, new MD5Impl()); + } + +} \ No newline at end of file diff --git a/lab2_pruebas/md5/ws/MD5.class b/lab2_pruebas/md5/ws/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..ba845b73fe710d970b2e7a42958f27ee93d35ead GIT binary patch literal 503 zcmaJ;%TB^T6g`(mi--y$D8_{`hUmsF3@bJwYGNXR&_vgzOmIkO1t=LDV_Ij)JM8Z}RUhY0!W zg)gQ?hDzJ05NiFIGIApBrIv$0w3G^sm!t`mL}1~JpS1HJ1|4A@!(o#(+;A58;zkC7 zkmLDh@oYl%d%Y{7x%34$9DGUW(3?7Lx7E9pY8cxjWVLw?gpFN>ZVU;9Tct$Q4m_=e zCLH}EaGbQTOuFA|v$@Hz;jrOkEydMRx`VOs4WYaWeXhdB9^o)fEFb&R<8lOH|L+ou zKuGcL0F+@b$S}(?%W&L+&B$Vu<2#KtK2yji(GsI|<^|4f2$ZmmBGWw6O;oXUQTqU* CaDoT` literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5/ws/MD5.java b/lab2_pruebas/md5/ws/MD5.java new file mode 100644 index 0000000..66a0779 --- /dev/null +++ b/lab2_pruebas/md5/ws/MD5.java @@ -0,0 +1,15 @@ +package md5.ws; + +import javax.jws.WebMethod; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.jws.soap.SOAPBinding.Style; + +//Service Endpoint Interface +@WebService +@SOAPBinding(style = Style.RPC) +public interface MD5{ + + @WebMethod String getMD5(String text) throws Exception; + +} \ No newline at end of file diff --git a/lab2_pruebas/md5/ws/MD5Impl.class b/lab2_pruebas/md5/ws/MD5Impl.class new file mode 100644 index 0000000000000000000000000000000000000000..8234097cf21b4f65d7419a34137518af49159d51 GIT binary patch literal 1132 zcmZ`(+foxj5Iqx?ovk4MuF8L76Y-1w-qKWs9|H zDJz`kX0}K(YC*`=g>i;KV`baiF_T5pE+jM3vFyTh?Efi-mW(uWuUE~AkKj{Ia@^s# zOQA7ni+edykyhDuIi|?Yl&eloELk3#PE_eqrI_%j7^2UrwzNuO-Eu98X3n> zY1@^i?PWZA{&CgErpg5gA+;}sOZ{NPJSMd$?1FsdcS)MeY9((VfAr$^htQN7nrqNE z-m2{V@wX@ew0t1wfKNV%CK`t+hzOc-iAJ61qNg9-bi;eFO!_JMXa(p+;F$gaoTHN? n%5j;a%YVBmtMBwL=piSC^0-3ay*@=Bl>-FKaE-p}F8Y50V$=dh literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5/ws/MD5Impl.java b/lab2_pruebas/md5/ws/MD5Impl.java new file mode 100644 index 0000000..4764206 --- /dev/null +++ b/lab2_pruebas/md5/ws/MD5Impl.java @@ -0,0 +1,44 @@ +// Based on http://www.mkyong.com/java/java-md5-hashing-example/ +package md5.ws; + +import java.io.FileInputStream; +import java.security.MessageDigest; +import javax.jws.WebService; + +//Service Implementation +@WebService(endpointInterface = "md5.ws.MD5") +public class MD5Impl implements MD5 +{ + /** + * Performs the MD5 algorithm in order to produce a 128-bit hash value. + * @param text input text argument. + * @return The calculated MD5 hash value (in hex format). + */ + @Override + public String getMD5(String text) throws Exception + { + // Calculate MD5(text) + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] dataBytes = text.getBytes(); + md.update(dataBytes, 0, text.length()); + byte[] mdbytes = md.digest(); + + // Convert byte to hex format + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < mdbytes.length; i++) { + sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1)); + } + + return sb.toString(); + } + /* + public static void main(String[] args) throws Exception + { + // msg is the message + String msg = "hello world"; + + // Print result + System.out.println("MD5('"+ msg +"') = " + MD5(msg)); + } + */ +} diff --git a/lab2_pruebas/md5_client/Exception.class b/lab2_pruebas/md5_client/Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..26b029ef44963172f242f6b80cb446adb2973ecd GIT binary patch literal 655 zcmaix$w~u35QhJrWD+yREymr5%Oz2C4&uQDL0mwH1~df0gLEcM=rGeW%o5^TDJX&m zAHataYvR73G*nerfAv>2_4suE0ALj}29lV}Ac3hgrqd`eq#Y3iyeSxRN73`QD$2RLy zHBA2gYMwdvj%Cq&u3x?M1bs|zb339IFO&XL^;UCmxL@95SopisE1gu_p$3`vKTz!X zu2=CJ!p|a&o-A~v81hbI?ZUF9P@(w=9{gBGrQQ-&h&ftZk`_sOh$|^dP)tH(GjuDE zXXN$8JFx36Xpl{Hle1)dktO>Ty@7W14P7Rv5B;y`JTy8av$%8%?L*e+X4h$w4T=Vc d&@hN0@-r0WsCrl+j}eU0bu7R*CeFbE=+9~ll=J`q literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5_client/Exception.java b/lab2_pruebas/md5_client/Exception.java new file mode 100644 index 0000000..12a6fdc --- /dev/null +++ b/lab2_pruebas/md5_client/Exception.java @@ -0,0 +1,60 @@ + +package md5_client; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for Exception complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="Exception">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Exception", propOrder = { + "message" +}) +public class Exception { + + protected String message; + + /** + * Gets the value of the message property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMessage() { + return message; + } + + /** + * Sets the value of the message property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMessage(String value) { + this.message = value; + } + +} diff --git a/lab2_pruebas/md5_client/Exception_Exception.class b/lab2_pruebas/md5_client/Exception_Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..9bbb796d140c6c2bb4ee68dc7d0db301445f8522 GIT binary patch literal 754 zcma)4T~8B16g|^V+OB{gP*jS((JinK#20Fa#zBdfI{V20#WDrU-432H0&9IvfYM%;}KE>xs zV4l)1=cbhlVB2s!BrZ3Q~iva)|8BlIJY*P#(k|! zsP2f3bR-At&R<$P+7AfbrNe=TIlT5zLDgj&0&|S2zvhEK zz#nBiyKQ=r;6u}IzVDp#UHA8&pT7XS#!dmx3V1G%Z)tb@ZdYJ^^XNi#lnj(<$%c!4 z)7sm*?h=@Kf9dJS`Ju4|ybvhW6XX20{^VP~8R)7pp;K8{pqL3<%8MUXe%8%n?asrq zy=(ruwn^aVpNLfKKB~56VX<~eYzElNb|5KJ^-^tO$9)qePGIHSx#*2#Y`cB7E7^?f z_Egv36K#pehl$Iem7Ae9Vn0kf{!OtIfpV|%Ue?3Z+fO~|1uNU{lOR=AEd+6mQDUgU@fDh<E(ETCwy zi2H=kr^*lLE?JaQVwtpu42)qZ)7{|vQ8&Jf6^jZUld-C?jty+mEK=FS7M_wc#rG4u I#M*x8FMNV3=l}o! literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5_client/MD5.java b/lab2_pruebas/md5_client/MD5.java new file mode 100644 index 0000000..9c738a6 --- /dev/null +++ b/lab2_pruebas/md5_client/MD5.java @@ -0,0 +1,46 @@ + +package md5_client; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.Action; +import javax.xml.ws.FaultAction; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebService(name = "MD5", targetNamespace = "http://ws.md5/") +@SOAPBinding(style = SOAPBinding.Style.RPC) +@XmlSeeAlso({ + ObjectFactory.class +}) +public interface MD5 { + + + /** + * + * @param arg0 + * @return + * returns java.lang.String + * @throws Exception_Exception + */ + @WebMethod + @WebResult(partName = "return") + @Action(input = "http://ws.md5/MD5/getMD5Request", output = "http://ws.md5/MD5/getMD5Response", fault = { + @FaultAction(className = Exception_Exception.class, value = "http://ws.md5/MD5/getMD5/Fault/Exception") + }) + public String getMD5( + @WebParam(name = "arg0", partName = "arg0") + String arg0) + throws Exception_Exception + ; + +} diff --git a/lab2_pruebas/md5_client/MD5ImplService.class b/lab2_pruebas/md5_client/MD5ImplService.class new file mode 100644 index 0000000000000000000000000000000000000000..2c4f1585a4c0896364d7eeb9ca2a2879d97cc0f1 GIT binary patch literal 2226 zcmb7F+fv(B6kW#<`Tw`p42$VoD4WY&~6q%bTgvkRVj0#F^*<*>oYrmkM z(bonZ=#-hZPkrb|wOvQnxVG_3sb{<;pR?D#ti8_hpMU-GD}Wj7s_4ODh~^6wy?8Cn zl7cruyb2<&;vSY2d?{Cx(yU0&lr*bB%qjRPh=huEyj8HK;A<7#SXZDcNDDkpugtEc zxAaVEXKyW;I^55!=!g1da(Q=cb3-7ae=t58nr*t;H#>Slps&t9^)8v(D*Fz3z8Bg> zKBt{K+P-;|F-sqwj!*6dar&9uts<5_^H=Ux9HMQ*xz7o{3XxWzg zTA(R9z9-O}EF7Bx?Yd=~8)x|=v$Sg*<+w5ueP0!)riNA1aL-C+LgG84wOz@z>AJN$ z1)8V>RVA-)Lgq-{-ThAKBPXUS>C6{%TZNJ<&=nom^T)G?*_>tCuEsr*_i*RTcCEa* zXE_#GTDI+iYshIh0{vALm+4B`$HjtWy974N9t2uzQq0_e;@dTJ9v-sRedjo*7qVV* zfesd1C$6@PYh=Gm8%2Mf!9{i=Cr=GixRkGenkk%>vgWEK2j1=1<_m37#uFI0)s?@W z^mt)wky;$JTVp>%Tq1Cd zrceCIfzhf6(8lni#JX*jUfMU zWTIgoGR8zrvJek4(ICxBgfQo&8Syd0L`aMhixY6Gn+3EW;UyXM0V7P(OhAx;=M7T4 zhJq#fj*+Z@N7^L+^(1M%u^Zew=xXUwt`Y1;=o;$p2>ryJGJh?e*IPun(#rR7eq)YD z<`^dYU>bu-S{~E|BdM(oqV3*}rpm+4&~l!V3;Bs$BK!vw+TSkGCQAxq<*R*iXVL1r~URKZ0`yIu`cu*v>$YJT%&XSN3^AH(0xFX@9VKEw8gIw z{>1cMl-U4nIiXY!co9Vyy~A4{a7V|YP!Wij0d{LRgPf)@&=Ar#Dn b80vGcgITZn9wvFos!8P><{iAkf`i0AJJS3# literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5_client/MD5ImplService.java b/lab2_pruebas/md5_client/MD5ImplService.java new file mode 100644 index 0000000..8207f3b --- /dev/null +++ b/lab2_pruebas/md5_client/MD5ImplService.java @@ -0,0 +1,94 @@ + +package md5_client; + +import java.net.MalformedURLException; +import java.net.URL; +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.md5/", wsdlLocation = "http://localhost:8080/ws/md5?wsdl") +public class MD5ImplService + extends Service +{ + + private final static URL MD5IMPLSERVICE_WSDL_LOCATION; + private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; + private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.md5/", "MD5ImplService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL("http://localhost:8080/ws/md5?wsdl"); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + MD5IMPLSERVICE_WSDL_LOCATION = url; + MD5IMPLSERVICE_EXCEPTION = e; + } + + public MD5ImplService() { + super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME); + } + + public MD5ImplService(WebServiceFeature... features) { + super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME, features); + } + + public MD5ImplService(URL wsdlLocation) { + super(wsdlLocation, MD5IMPLSERVICE_QNAME); + } + + public MD5ImplService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, MD5IMPLSERVICE_QNAME, features); + } + + public MD5ImplService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns MD5 + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5 getMD5ImplPort() { + return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns MD5 + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5 getMD5ImplPort(WebServiceFeature... features) { + return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class, features); + } + + private static URL __getWsdlLocation() { + if (MD5IMPLSERVICE_EXCEPTION!= null) { + throw MD5IMPLSERVICE_EXCEPTION; + } + return MD5IMPLSERVICE_WSDL_LOCATION; + } + +} diff --git a/lab2_pruebas/md5_client/ObjectFactory.class b/lab2_pruebas/md5_client/ObjectFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..0f9f67619b30d3d1e2476a771929a562ab04e3d5 GIT binary patch literal 1089 zcmbVLT~8B16g|_H?slz!1r?|$;750hvWXurmXILAgQ+!uA@D?|%cKt3-ICp@mVf2P zLlc|$1N>3OJG*454dKCk*qOQa+%xB%nfd+a=Pv*+@XSIPD+V4~$m#J>2{-WALIF<< z)J#-OELt#N8*mKN8K#f7`<^&cvKt=nwl?2yGgOSr?y zyNYX9x>+r*yz0^#7=(Yo=>mpNAbc%`oiQBjU#h8%Zj~Z}~iquMMP(4SgMJ zDQQ}{uOb0|*b zl%B!t1$>F(8g34eI~pMWHLEBlaVJ6FMm{08QA~KIhbSC<$HWYBY;}O*c-3>An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _Exception_QNAME = new QName("http://ws.md5/", "Exception"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5_client + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Exception } + * + */ + public Exception createException() { + return new Exception(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ws.md5/", name = "Exception") + public JAXBElement createException(Exception value) { + return new JAXBElement(_Exception_QNAME, Exception.class, null, value); + } + +} diff --git a/lab2_pruebas/md5_client/package-info.java b/lab2_pruebas/md5_client/package-info.java new file mode 100644 index 0000000..b7be753 --- /dev/null +++ b/lab2_pruebas/md5_client/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.md5/") +package md5_client; diff --git a/lab2_pruebas/monitor b/lab2_pruebas/monitor new file mode 100755 index 0000000000000000000000000000000000000000..bdc1e5589e78480296a13046c36b71f04a9f7901 GIT binary patch literal 24504 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 Nl}i5oJYv56{|ioyaen{+ literal 0 HcmV?d00001 diff --git a/lab2_pruebas/monitor.c b/lab2_pruebas/monitor.c new file mode 100644 index 0000000..3f420d7 --- /dev/null +++ b/lab2_pruebas/monitor.c @@ -0,0 +1,163 @@ + +#include "rpc_store_service/store_service.h" + +void +store_service_1(char *host) +{ + CLIENT *clnt; + /* + enum clnt_stat retval_1; + void *result_1; + enum clnt_stat retval_2; + int result_2; + char *store_1_sender; + char *store_1_receiver; + u_int store_1_msg_id; + char *store_1_msg; + char *store_1_md5; + enum clnt_stat retval_3; + int result_3; + char *getnummessages_1_user; + enum clnt_stat retval_4; + response result_4; + char *getmessage_1_user; + u_int getmessage_1_msg_id; + +#ifndef DEBUG + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } +#endif *//* DEBUG */ + /* + retval_1 = init_1(&result_1, clnt); + if (retval_1 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_2 = store_1(store_1_sender, store_1_receiver, store_1_msg_id, store_1_msg, store_1_md5, &result_2, clnt); + if (retval_2 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_3 = getnummessages_1(getnummessages_1_user, &result_3, clnt); + if (retval_3 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_4 = getmessage_1(getmessage_1_user, getmessage_1_msg_id, &result_4, clnt); + if (retval_4 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } +#ifndef DEBUG + clnt_destroy (clnt); +#endif *//* DEBUG */ + + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } + + int result; + // init_1(&result, clnt); + //printf("Result of init: %d\n",result); + store_1("sender1", "receiver1", 1, "blablabla", "blablamd5", &result, clnt); + // printf("Result of the send: %d\n", result); + // store_1("sender1", "receiver2", 2, "blablabla2", "blablamd52", &result, clnt); + // printf("Result of the send: %d\n", result); + // store_1("sender2", "receiver1", 1, "blablabla11", "blablamd511", &result, clnt); + // printf("Result of the send: %d\n", result); + // store_1("sender2", "receiver1", 2, "blablabla22", "blablamd522", &result, clnt); + // printf("Result of the send: %d\n", result); + // store_1("sender2", "receiver1", 3, "blablabla22", "blablamd533", &result, clnt); + // printf("Result of the send: %d\n", result); + // store_1("sender1", "receiver1", 3, "blablabla3", "blablamd53", &result, clnt); + // printf("Result of the send: %d\n", result); + // store_1("sender1", "receiver1", 4, "blablabla4", "blablamd54", &result, clnt); + // printf("Result of the send: %d\n", result); + // store_1("sender1", "receiver1", 5, "blablabla5", "blablamd55", &result, clnt); + // printf("Result of the send: %d\n", result); + + response *res = malloc(sizeof(response)); + /*int size; + getmessage_1("sender1", 1, &res, clnt); + printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender2", 2, &res, clnt); + printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender1", 4, &res, clnt); + printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender3", 1, &res, clnt); + printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); + + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender1", 6, &res, clnt); + printf("Result of the receive: %d\n", result); + size = strlen(res.msg); + printf("Length msg: %d\n", size); + + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + */ + getmessage_1("hello", 7, res, clnt);//) printf("ERROR , SERVICE NOT AVAILABLE\n"); + printf("After\n"); + if(strlen(res->msg) == 0) printf ("ERROR , MESSAGE DOES NOT EXIST\n"); + printf("MESS: %s\n", res->msg); + printf("MD5: %s\n", res->md5); + + + + clnt_destroy (clnt); +} + + +int +main (int argc, char *argv[]) +{ + char *host; + + if (argc < 3) { + printf ("usage: %s server_host\n", argv[0]); + exit (1); + } + + host = "127.0.0.1"; + char *stopstring; + unsigned int id = strtoul(argv[2], &stopstring, 10); + + CLIENT *clnt; + + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } + /* Allocate resources for the response */ + response *res = malloc(sizeof(response)); + res->msg = calloc(MAX_SIZE, sizeof(char)); + res->md5 = calloc(MAX_MD5, sizeof(char)); + getmessage_1(argv[1], id, res, clnt);//) printf("ERROR , SERVICE NOT AVAILABLE\n"); + + if(strlen(res->msg) == 0) printf ("ERROR , MESSAGE DOES NOT EXIST\n"); + else{ + printf("MESS: %s\n", res->msg); + printf("MD5: %s\n", res->md5); + } + + + clnt_destroy (clnt); +exit (0); +} diff --git a/lab2_pruebas/monitor.o b/lab2_pruebas/monitor.o new file mode 100644 index 0000000000000000000000000000000000000000..e357f406e96459cb160fdcdd3399e3dbbd2e83d3 GIT binary patch literal 12672 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 literal 0 HcmV?d00001 diff --git a/lab2_pruebas/rpc_store_service (copy)/Makefile b/lab2_pruebas/rpc_store_service (copy)/Makefile new file mode 100644 index 0000000..3f7252c --- /dev/null +++ b/lab2_pruebas/rpc_store_service (copy)/Makefile @@ -0,0 +1,47 @@ + +# This is a template Makefile generated by rpcgen + +# Parameters + +CLIENT = store_service_client +SERVER = store_service_server + +SOURCES_CLNT.c = +SOURCES_CLNT.h = +SOURCES_SVC.c = +SOURCES_SVC.h = +SOURCES.x = store_service.x + +TARGETS_SVC.c = store_service_svc.c store_service_server.c store_service_xdr.c +TARGETS_CLNT.c = store_service_clnt.c store_service_client.c store_service_xdr.c +TARGETS = store_service.h store_service_xdr.c store_service_clnt.c store_service_svc.c store_service_client.c store_service_server.c + +OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) +OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) +# Compiler flags + +CPPFLAGS += -D_REENTRANT +CFLAGS += -g +LDLIBS += -lnsl -lpthread + RPCGENFLAGS = + +# Targets + +all : $(CLIENT) $(SERVER) + +$(TARGETS) : $(SOURCES.x) + rpcgen $(RPCGENFLAGS) $(SOURCES.x) + +$(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) + +$(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) + +$(CLIENT) : $(OBJECTS_CLNT) + $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) + +$(SERVER) : $(OBJECTS_SVC) + $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) + + clean: + $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) + diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service.h b/lab2_pruebas/rpc_store_service (copy)/store_service.h new file mode 100644 index 0000000..215718c --- /dev/null +++ b/lab2_pruebas/rpc_store_service (copy)/store_service.h @@ -0,0 +1,97 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#ifndef _STORE_SERVICE_H_RPCGEN +#define _STORE_SERVICE_H_RPCGEN + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_SIZE 256 +#define MAX_MD5 33 + +struct response { + char *msg; + char *md5; +}; +typedef struct response response; + + +struct store_1_argument { + char *sender; + char *receiver; + u_int msg_id; + char *msg; + char *md5; +}; +typedef struct store_1_argument store_1_argument; + +struct getmessage_1_argument { + char *user; + u_int msg_id; + response *res; +}; +typedef struct getmessage_1_argument getmessage_1_argument; + +#define STORE_SERVICE 666 +#define STORE_VERSION 1 + +#if defined(__STDC__) || defined(__cplusplus) +#define init 1 +extern enum clnt_stat init_1(void *, CLIENT *); +extern bool_t init_1_svc(void *, struct svc_req *); +#define store 2 +extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); +extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); +extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); +#define getMessage 4 +extern enum clnt_stat getmessage_1(char *, u_int , response *, int *, CLIENT *); +extern bool_t getmessage_1_svc(char *, u_int , response *, int *, struct svc_req *); +extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); + +#else /* K&R C */ +#define init 1 +extern enum clnt_stat init_1(); +extern bool_t init_1_svc(); +#define store 2 +extern enum clnt_stat store_1(); +extern bool_t store_1_svc(); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(); +extern bool_t getnummessages_1_svc(); +#define getMessage 4 +extern enum clnt_stat getmessage_1(); +extern bool_t getmessage_1_svc(); +extern int store_service_1_freeresult (); +#endif /* K&R C */ + +/* the xdr functions */ + +#if defined(__STDC__) || defined(__cplusplus) +extern bool_t xdr_response (XDR *, response*); +extern bool_t xdr_response (XDR *, response*); +extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); +extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); + +#else /* K&R C */ +extern bool_t xdr_response (); +extern bool_t xdr_response (); +extern bool_t xdr_store_1_argument (); +extern bool_t xdr_getmessage_1_argument (); + +#endif /* K&R C */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service.x b/lab2_pruebas/rpc_store_service (copy)/store_service.x new file mode 100644 index 0000000..ff6866a --- /dev/null +++ b/lab2_pruebas/rpc_store_service (copy)/store_service.x @@ -0,0 +1,18 @@ +const MAX_SIZE = 256; +const MAX_MD5 = 33; + +struct response{ + string msg; + string md5; +}; +typedef struct response response; + +program STORE_SERVICE{ + version STORE_VERSION{ + void init() = 1; + int store(string sender, string receiver, + unsigned int msg_id, string msg, string md5) = 2; + int getNumMessages(string user) = 3; + int getMessage(string user, unsigned int msg_id, response *res) = 4; + } = 1; +} = 666; \ No newline at end of file diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_client b/lab2_pruebas/rpc_store_service (copy)/store_service_client new file mode 100755 index 0000000000000000000000000000000000000000..829c6fbea7a8b8113b0d51a93b0c9e5b3d5334fa GIT binary patch literal 24408 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 GNBl3E)|>+X literal 0 HcmV?d00001 diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_client.c b/lab2_pruebas/rpc_store_service (copy)/store_service_client.c new file mode 100644 index 0000000..a993fae --- /dev/null +++ b/lab2_pruebas/rpc_store_service (copy)/store_service_client.c @@ -0,0 +1,129 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + + +void +store_service_1(char *host) +{ + CLIENT *clnt; + /* + enum clnt_stat retval_1; + void *result_1; + enum clnt_stat retval_2; + int result_2; + char *store_1_sender; + char *store_1_receiver; + u_int store_1_msg_id; + char *store_1_msg; + char *store_1_md5; + enum clnt_stat retval_3; + int result_3; + char *getnummessages_1_user; + enum clnt_stat retval_4; + response result_4; + char *getmessage_1_user; + u_int getmessage_1_msg_id; + +#ifndef DEBUG + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } +#endif *//* DEBUG */ + /* + retval_1 = init_1(&result_1, clnt); + if (retval_1 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_2 = store_1(store_1_sender, store_1_receiver, store_1_msg_id, store_1_msg, store_1_md5, &result_2, clnt); + if (retval_2 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_3 = getnummessages_1(getnummessages_1_user, &result_3, clnt); + if (retval_3 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } + retval_4 = getmessage_1(getmessage_1_user, getmessage_1_msg_id, &result_4, clnt); + if (retval_4 != RPC_SUCCESS) { + clnt_perror (clnt, "call failed"); + } +#ifndef DEBUG + clnt_destroy (clnt); +#endif *//* DEBUG */ + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror (host); + exit (1); + } + int result; + init_1(&result, clnt); + printf("Result of init: %d\n",result); + store_1("sender1", "receiver1", 1, "blablabla", "blablamd5", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver2", 2, "blablabla2", "blablamd52", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 1, "blablabla11", "blablamd511", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 2, "blablabla22", "blablamd522", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender2", "receiver1", 3, "blablabla22", "blablamd533", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 3, "blablabla3", "blablamd53", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 4, "blablabla4", "blablamd54", &result, clnt); + printf("Result of the send: %d\n", result); + store_1("sender1", "receiver1", 5, "blablabla5", "blablamd55", &result, clnt); + printf("Result of the send: %d\n", result); + + response res; + getmessage_1("sender1", 1, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender2", 2, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender1", 4, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender3", 1, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Length msg: %d\n", strleng(res.msg)); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + getmessage_1("sender1", 6, &res, &result, clnt); + printf("Result of the receive: %d\n", result); + printf("Length msg: %d\n", strleng(res.msg)); + printf("Mess: %s\n", res.msg); + printf("MD5: %s\n", res.md5); + + + + + + clnt_destroy (clnt); +} + + +int +main (int argc, char *argv[]) +{ + char *host; + /* + if (argc < 2) { + printf ("usage: %s server_host\n", argv[0]); + exit (1); + } + */ + host = "127.0.0.1"; + store_service_1 (host); +exit (0); +} diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_clnt.c b/lab2_pruebas/rpc_store_service (copy)/store_service_clnt.c new file mode 100644 index 0000000..20c4bc7 --- /dev/null +++ b/lab2_pruebas/rpc_store_service (copy)/store_service_clnt.c @@ -0,0 +1,54 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include /* for memset */ +#include "store_service.h" + +/* Default timeout can be changed using clnt_control() */ +static struct timeval TIMEOUT = { 25, 0 }; + +enum clnt_stat +init_1(void *clnt_res, CLIENT *clnt) +{ + return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, + (xdrproc_t) xdr_void, (caddr_t) clnt_res, + TIMEOUT)); + +} + +enum clnt_stat +store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) +{ + store_1_argument arg; + arg.sender = sender; + arg.receiver = receiver; + arg.msg_id = msg_id; + arg.msg = msg; + arg.md5 = md5; + return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) +{ + return (clnt_call(clnt, getNumMessages, + (xdrproc_t) xdr_wrapstring, (caddr_t) &user, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getmessage_1(char *user, u_int msg_id, response *res, int *clnt_res, CLIENT *clnt) +{ + getmessage_1_argument arg; + arg.user = user; + arg.msg_id = msg_id; + arg.res = res; + return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_server b/lab2_pruebas/rpc_store_service (copy)/store_service_server new file mode 100755 index 0000000000000000000000000000000000000000..d9ce0ed54c417b4158cdeb5c0b4574c898c382bc GIT binary patch literal 29184 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 literal 0 HcmV?d00001 diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_server.c b/lab2_pruebas/rpc_store_service (copy)/store_service_server.c new file mode 100644 index 0000000..6bf8516 --- /dev/null +++ b/lab2_pruebas/rpc_store_service (copy)/store_service_server.c @@ -0,0 +1,200 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + +/* Define the structure of the message list */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +struct user{ + char name[MAX_SIZE]; + unsigned long num_msgs; + struct user *next; + struct msg *sent_msgs_head; +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* Initialize the lists to NULL */ + usr_head = NULL; + //usr_head->next = NULL; + //usr_head->sent_msgs_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + // printf("sender: %s\n", sender); + // printf("receiver: %s\n", receiver); + // printf("msg_id: %d\n", msg_id); + // printf("msg: %s\n", msg); + // printf("md5: %s\n", md5); + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + printf("name: %s\n", temp->name); + if(strcmp(temp->name, sender) == 0){ //User found in the list + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + //if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + temp->next = NULL; + temp->sent_msgs_head = NULL; + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *res, int *result, struct svc_req *rqstp) +{ + //result = (response *) malloc(sizeof(response)); + bool_t retval = TRUE; + + struct user *temp = usr_head; + struct msg *msg_temp; + printf("he1\n"); + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + printf("he1\n"); + /* Search for the message with that ID */ + msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + printf("hey2\n"); + printf("Message id: %d\n", msg_temp->id); + if(msg_temp->id == msg_id){ //Message ID found + printf("hey3\n"); + strncpy(res->msg, msg_temp->body, strlen(msg_temp->body)+1); + strncpy(res->md5, msg_temp->md5, strlen(msg_temp->md5)+1); + //res->msg = msg_temp->body; + //res->md5 = malloc(sizeof(msg_temp->md5)); + //res->md5 = msg_temp->md5; + printf("MEssage body: %s\n", msg_temp->body); + printf("MEssage body check: %s\n", res->msg); + printf("MEssage md5: %s\n", msg_temp->md5); + printf("hey4\n"); + //strncpy(res->md5, msg_temp->md5, strlen(msg_temp->md5)+1); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + printf("hey\n"); + res = NULL; + printf("hey\n"); + return retval; + } + temp = temp->next; + } + res = NULL; //User was not found, thus message does not exist + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + /* + * Insert additional freeing code here, if needed + */ + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + // if (*msg_head == NULL){ /* Queue is empty */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + // else{ + // /* If the queue is not empty, append it to the beginning */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + + return 0; +} diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_svc.c b/lab2_pruebas/rpc_store_service (copy)/store_service_svc.c new file mode 100644 index 0000000..4d78591 --- /dev/null +++ b/lab2_pruebas/rpc_store_service (copy)/store_service_svc.c @@ -0,0 +1,143 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" +#include +#include +#include +#include +#include +#include +#include + +#ifndef SIG_PF +#define SIG_PF void(*)(int) +#endif + +int +_init_1 (void *argp, void *result, struct svc_req *rqstp) +{ + return (init_1_svc(result, rqstp)); +} + +int +_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); +} + +int +_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) +{ + return (getnummessages_1_svc(*argp, result, rqstp)); +} + +int +_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (getmessage_1_svc(argp->user, argp->msg_id, argp->res, result, rqstp)); +} + +static void +store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) +{ + union { + store_1_argument store_1_arg; + char *getnummessages_1_arg; + getmessage_1_argument getmessage_1_arg; + } argument; + union { + int store_1_res; + int getnummessages_1_res; + int getmessage_1_res; + } result; + bool_t retval; + xdrproc_t _xdr_argument, _xdr_result; + bool_t (*local)(char *, void *, struct svc_req *); + + switch (rqstp->rq_proc) { + case NULLPROC: + (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); + return; + + case init: + _xdr_argument = (xdrproc_t) xdr_void; + _xdr_result = (xdrproc_t) xdr_void; + local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; + break; + + case store: + _xdr_argument = (xdrproc_t) xdr_store_1_argument; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; + break; + + case getNumMessages: + _xdr_argument = (xdrproc_t) xdr_wrapstring; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; + break; + + case getMessage: + _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; + break; + + default: + svcerr_noproc (transp); + return; + } + memset ((char *)&argument, 0, sizeof (argument)); + if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + svcerr_decode (transp); + return; + } + retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); + if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { + svcerr_systemerr (transp); + } + if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + fprintf (stderr, "%s", "unable to free arguments"); + exit (1); + } + if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) + fprintf (stderr, "%s", "unable to free results"); + + return; +} + +int +main (int argc, char **argv) +{ + register SVCXPRT *transp; + + pmap_unset (STORE_SERVICE, STORE_VERSION); + + transp = svcudp_create(RPC_ANYSOCK); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create udp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); + exit(1); + } + + transp = svctcp_create(RPC_ANYSOCK, 0, 0); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create tcp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); + exit(1); + } + + svc_run (); + fprintf (stderr, "%s", "svc_run returned"); + exit (1); + /* NOTREACHED */ +} diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_xdr.c b/lab2_pruebas/rpc_store_service (copy)/store_service_xdr.c new file mode 100644 index 0000000..e75dc70 --- /dev/null +++ b/lab2_pruebas/rpc_store_service (copy)/store_service_xdr.c @@ -0,0 +1,46 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" + +bool_t +xdr_response (XDR *xdrs, response *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + if (!xdr_pointer (xdrs, (char **)&objp->res, sizeof (response), (xdrproc_t) xdr_response)) + return FALSE; + return TRUE; +} diff --git a/lab2_pruebas/rpc_store_service/segurodevida.c b/lab2_pruebas/rpc_store_service/segurodevida.c new file mode 100644 index 0000000..601ff5b --- /dev/null +++ b/lab2_pruebas/rpc_store_service/segurodevida.c @@ -0,0 +1,182 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + +/* Define the structure of the message list */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +struct user{ + char name[MAX_SIZE]; + unsigned long num_msgs; + struct user *next; + struct msg *sent_msgs_head; +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct msg * msg_head; +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* Initialize the lists to NULL */ + usr_head = NULL; + usr_head->next = NULL; + usr_head->sent_msgs_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + printf("1\n"); + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + printf("2\n"); + if(strcmp(temp->name, sender) == 0){ //User found in the list + printf("3\n"); + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("4\n"); + if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + printf("5\n"); + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("6\n"); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + if(msg_temp->id == msg_id){ //Message ID found + strcpy(result->msg, msg_temp->body); + strcpy(result->md5, msg_temp->md5); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + result = NULL; + return retval; + } + temp = temp->next; + } + result = NULL; //User was not found, thus message does not exist + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + /* + * Insert additional freeing code here, if needed + */ + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + // if (*msg_head == NULL){ /* Queue is empty */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + // else{ + // /* If the queue is not empty, append it to the beginning */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + + return 0; +} diff --git a/lab2_pruebas/rpc_store_service/store_service.h b/lab2_pruebas/rpc_store_service/store_service.h new file mode 100644 index 0000000..25dff07 --- /dev/null +++ b/lab2_pruebas/rpc_store_service/store_service.h @@ -0,0 +1,93 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#ifndef _STORE_SERVICE_H_RPCGEN +#define _STORE_SERVICE_H_RPCGEN + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_SIZE 256 +#define MAX_MD5 33 + +struct response { + char *msg; + char *md5; +}; +typedef struct response response; + +struct store_1_argument { + char *sender; + char *receiver; + u_int msg_id; + char *msg; + char *md5; +}; +typedef struct store_1_argument store_1_argument; + +struct getmessage_1_argument { + char *user; + u_int msg_id; +}; +typedef struct getmessage_1_argument getmessage_1_argument; + +#define STORE_SERVICE 666 +#define STORE_VERSION 1 + +#if defined(__STDC__) || defined(__cplusplus) +#define init 1 +extern enum clnt_stat init_1(void *, CLIENT *); +extern bool_t init_1_svc(void *, struct svc_req *); +#define store 2 +extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); +extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); +extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); +#define getMessage 4 +extern enum clnt_stat getmessage_1(char *, u_int , response *, CLIENT *); +extern bool_t getmessage_1_svc(char *, u_int , response *, struct svc_req *); +extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); + +#else /* K&R C */ +#define init 1 +extern enum clnt_stat init_1(); +extern bool_t init_1_svc(); +#define store 2 +extern enum clnt_stat store_1(); +extern bool_t store_1_svc(); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(); +extern bool_t getnummessages_1_svc(); +#define getMessage 4 +extern enum clnt_stat getmessage_1(); +extern bool_t getmessage_1_svc(); +extern int store_service_1_freeresult (); +#endif /* K&R C */ + +/* the xdr functions */ + +#if defined(__STDC__) || defined(__cplusplus) +extern bool_t xdr_response (XDR *, response*); +extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); +extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); + +#else /* K&R C */ +extern bool_t xdr_response (); +extern bool_t xdr_store_1_argument (); +extern bool_t xdr_getmessage_1_argument (); + +#endif /* K&R C */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/lab2_pruebas/rpc_store_service/store_service.x b/lab2_pruebas/rpc_store_service/store_service.x new file mode 100644 index 0000000..e5a8648 --- /dev/null +++ b/lab2_pruebas/rpc_store_service/store_service.x @@ -0,0 +1,17 @@ +const MAX_SIZE = 256; +const MAX_MD5 = 33; + +struct response{ + string msg; + string md5; +}; + +program STORE_SERVICE{ + version STORE_VERSION{ + void init() = 1; + int store(string sender, string receiver, + unsigned int msg_id, string msg, string md5) = 2; + int getNumMessages(string user) = 3; + response getMessage(string user, unsigned int msg_id) = 4; + } = 1; +} = 666; \ No newline at end of file diff --git a/lab2_pruebas/rpc_store_service/store_service_clnt.c b/lab2_pruebas/rpc_store_service/store_service_clnt.c new file mode 100644 index 0000000..91d8293 --- /dev/null +++ b/lab2_pruebas/rpc_store_service/store_service_clnt.c @@ -0,0 +1,53 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include /* for memset */ +#include "store_service.h" + +/* Default timeout can be changed using clnt_control() */ +static struct timeval TIMEOUT = { 25, 0 }; + +enum clnt_stat +init_1(void *clnt_res, CLIENT *clnt) +{ + return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, + (xdrproc_t) xdr_void, (caddr_t) clnt_res, + TIMEOUT)); + +} + +enum clnt_stat +store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) +{ + store_1_argument arg; + arg.sender = sender; + arg.receiver = receiver; + arg.msg_id = msg_id; + arg.msg = msg; + arg.md5 = md5; + return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) +{ + return (clnt_call(clnt, getNumMessages, + (xdrproc_t) xdr_wrapstring, (caddr_t) &user, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getmessage_1(char *user, u_int msg_id, response *clnt_res, CLIENT *clnt) +{ + getmessage_1_argument arg; + arg.user = user; + arg.msg_id = msg_id; + return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_response, (caddr_t) clnt_res, + TIMEOUT)); +} diff --git a/lab2_pruebas/rpc_store_service/store_service_clnt.o b/lab2_pruebas/rpc_store_service/store_service_clnt.o new file mode 100644 index 0000000000000000000000000000000000000000..d9d10e2f807d180b32310a589435b2facf15949d GIT binary patch literal 12728 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 Ef7m|@HUIzs literal 0 HcmV?d00001 diff --git a/lab2_pruebas/rpc_store_service/store_service_svc.c b/lab2_pruebas/rpc_store_service/store_service_svc.c new file mode 100644 index 0000000..2bf4954 --- /dev/null +++ b/lab2_pruebas/rpc_store_service/store_service_svc.c @@ -0,0 +1,143 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" +#include +#include +#include +#include +#include +#include +#include + +#ifndef SIG_PF +#define SIG_PF void(*)(int) +#endif + +int +_init_1 (void *argp, void *result, struct svc_req *rqstp) +{ + return (init_1_svc(result, rqstp)); +} + +int +_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); +} + +int +_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) +{ + return (getnummessages_1_svc(*argp, result, rqstp)); +} + +int +_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (getmessage_1_svc(argp->user, argp->msg_id, result, rqstp)); +} + +static void +store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) +{ + union { + store_1_argument store_1_arg; + char *getnummessages_1_arg; + getmessage_1_argument getmessage_1_arg; + } argument; + union { + int store_1_res; + int getnummessages_1_res; + response getmessage_1_res; + } result; + bool_t retval; + xdrproc_t _xdr_argument, _xdr_result; + bool_t (*local)(char *, void *, struct svc_req *); + + switch (rqstp->rq_proc) { + case NULLPROC: + (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); + return; + + case init: + _xdr_argument = (xdrproc_t) xdr_void; + _xdr_result = (xdrproc_t) xdr_void; + local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; + break; + + case store: + _xdr_argument = (xdrproc_t) xdr_store_1_argument; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; + break; + + case getNumMessages: + _xdr_argument = (xdrproc_t) xdr_wrapstring; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; + break; + + case getMessage: + _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; + _xdr_result = (xdrproc_t) xdr_response; + local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; + break; + + default: + svcerr_noproc (transp); + return; + } + memset ((char *)&argument, 0, sizeof (argument)); + if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + svcerr_decode (transp); + return; + } + retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); + if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { + svcerr_systemerr (transp); + } + if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + fprintf (stderr, "%s", "unable to free arguments"); + exit (1); + } + if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) + fprintf (stderr, "%s", "unable to free results"); + + return; +} + +int +main (int argc, char **argv) +{ + register SVCXPRT *transp; + + pmap_unset (STORE_SERVICE, STORE_VERSION); + + transp = svcudp_create(RPC_ANYSOCK); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create udp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); + exit(1); + } + + transp = svctcp_create(RPC_ANYSOCK, 0, 0); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create tcp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); + exit(1); + } + + svc_run (); + fprintf (stderr, "%s", "svc_run returned"); + exit (1); + /* NOTREACHED */ +} diff --git a/lab2_pruebas/rpc_store_service/store_service_svc.o b/lab2_pruebas/rpc_store_service/store_service_svc.o new file mode 100644 index 0000000000000000000000000000000000000000..ad274a182a54d04a09bd8d4b8a9fc0415ee8fe6d GIT binary patch literal 20648 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, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + return TRUE; +} diff --git a/lab2_pruebas/rpc_store_service/store_service_xdr.o b/lab2_pruebas/rpc_store_service/store_service_xdr.o new file mode 100644 index 0000000000000000000000000000000000000000..eba2fd4b086b9955d84163d5ab062e6f79f2db8c GIT binary patch literal 7208 zcmb_g3v3)m8J@j|Z=LhwY{$W=1HH6y;)vYYPHo2tZR*Ccdl4bHsiF|tYO{B@IbY*@ zun*^)&_@yl)wGEkA=*+3!5QKbaB>R$ zT9a@@d8Jbopgn&YJW>5~0kU9mmB`KafJ2z>3E%uFW}{M6VJ-utBPXgyVSLRPb_M*i2xi-KR|>#5w#8NBc8IlnV&`7gR2lJc2Z$vvunrl6&nTXx|wy(J^pxK8yGKUQpfzt^9 z)0$IQQ8B63p4kGAgf47p&A16dXJ@E|j?meIFm4>H(C7|o{MOev=4*7_AQXyEvT zMqg0lUSH!yU!$*1qYoWI1INp>4y~`PD;{p^ZR^lFV+lBYLaSJ~ZCm^!@m-L5cpZz! zx5vZqc#4qO28-7YD7u@vv~XKIj%*E@u~xt97~J{#7KWte^}JdU;oMzak{#~{_8Q=| zKtx?eYz0YuQL?RD+pv097pk{MxlRHRYW0xe)7tH;MdsK8hcn*u#12mFiu#F# zdSKX_;2)L;3V-f$3opTEwhw~Qts(ypU}@UBZLM(SM>(LHUCkMeTd^&}vFy2G&SC?e zV-FO|xmho74S>5IsEv&pqr<7$V%e*u3T1B~TXdcGp*ZsnV|77{THa3Q7$o4%S1l(! zgTs*~EUYwPwcTRL0zX*ThZF0h00J3UCNUvkg`2g1=;u8Bb??CDzv<_m1w(%pn-an1 zflvshVYX5(B>4powVIJN9gBGeZ{%&GV7VpBam<2c3>l_f@Jbe^0S=T~HuL0;R>~H1 ztyEdIQkgYe=D|!dI3|pplM^4`ImrwoXXZi8Www>GigVkiF4@xyi78V0Da4ff4aon;H_1UQB%v5YQSqC*9n|svAJ1)*SAHn1v zJ_0~Xu;8xc9I+gnr>f^>=b=ff8c4E+lP1!D^>PFkN6GHovoAR@G?W}k52pu{n+JzR z2S*3DCQ~KXD_ge}tg>YnbI>&H+{|sT%~GSo$y6bkI^?)!?r^GVS6nLxJ2mCFHtN-l z22;w;7ITcxP0g4w%lUaWFjFa60|n154jif2hn=dKvj%n+L7k{d>>8{ZK)=R60oynI!~hM^%tU$G{b4(vvl61zBOx)x)1 zPE2e|_V3GjW!Dq)pBnXeYv{qD(e&VOdU&IiRq8S{k8^h z{KsPA<&L(*XF?OLO`&^%A$+$Y4uu~LzW=iCmydg1`~LmhFM2M$;;kNGf5BIVB_%8# z1PyRJDwdWoy#TA8FypVODh%%i{A_N3*FS|NAuL`kWz(<2OJBCRFU;UADH+4|ReqI`52{M0h|cb36l4&XRnQvX^255~Qb<^d0% zAbwyO{8#`F>hm{4(7=xoX=BJ1yg)&`8UAOfe+Pn4B%Y(w57!@y#Q#YA)dJ=_gQy(Y zNI3F?yEq-dG438}fBAq78U*l!mA4Y z6~d1wIDQ^sc~De-{(CmlT|u>}v`x*F%n5j_WCkdtTvxnDCz| z_;G6gTEWMu{i=d*pgiTg%D5eb$ElV$ej{P&Rq!>`UaR1r6m%xzNSzwtlL}w%kGmAS zkK*2^;1{V~RPa}c?k2+X{3i0tb>Uyq;G3eOP~vNdcX%0mPQmY>cqbJ6 z1&Vt{!7GG6t>E1h_eBMl`j-^^UDCOt;QI)FO~Ix9I|?p!t}FNyFum-BE?!Dap|?aY^4GYhqAi+V;{wl!;}U90A@ zbl!ALmd-j3OLH`DWj%PAFCVIakK1N8Yg==5Zqqi)1^AW;cHy5?)CJZm{4!z$G0If?z*F56IsW zj=#QOUwP*D5Wb#px;+SG>}53&c~lsGnLy3|w*M&fRW&h`jQ?}muZUq$xkG?88vj9h zg?^kS7RQhKS{?t62ATk|C#l~*u@NY0e0(0M7}C$sr^8^NFPbWM8n8zBU!@lb*&p-A z+|~T?JxSFBh+Uxgs}-lxWO?8=il1DCD)2L;sQ9mU_-s()dw`*)%#-Ns6(YV7dnext = NULL; + usr_head->sent_msgs_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + printf("1\n"); + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + printf("2\n"); + if(strcmp(temp->name, sender) == 0){ //User found in the list + printf("3\n"); + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("4\n"); + if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + printf("5\n"); + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("6\n"); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + if(msg_temp->id == msg_id){ //Message ID found + strcpy(result->msg, msg_temp->body); + strcpy(result->md5, msg_temp->md5); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + result = NULL; + return retval; + } + temp = temp->next; + } + result = NULL; //User was not found, thus message does not exist + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + /* + * Insert additional freeing code here, if needed + */ + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + // if (*msg_head == NULL){ /* Queue is empty */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + // else{ + // /* If the queue is not empty, append it to the beginning */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + + return 0; +} diff --git a/lab2_pruebas/server b/lab2_pruebas/server new file mode 100755 index 0000000000000000000000000000000000000000..31862fba19fc3cf04a46487bb03b94c276d3c448 GIT binary patch literal 51088 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 St^K0MB>j&K0$Dss*Z&XleT(t{ literal 0 HcmV?d00001 diff --git a/lab2_pruebas/server.c b/lab2_pruebas/server.c new file mode 100644 index 0000000..b725467 --- /dev/null +++ b/lab2_pruebas/server.c @@ -0,0 +1,677 @@ +#include /* For addresses in PF_INET */ +#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ +#include +#include /* To use ifreq */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "lists/read_line.h" +#include "lists/user_list.h" +#include "lists/msg_list.h" +#include "server.h" +#include "rpc_store_service/store_service.h" + +/* Handler for interrupts */ +void interruptHandler(int sig){ + printf("[SERVER]: Handling interrupt. Closing server socket...\n"); + /* Close the server socket and exit with the resulting return value. 0 if OK, -1 if error */ + exit(close(s_server)); +} + +int main(int argc, char * argv[]){ + struct sockaddr_in server_addr, client_addr; + int sc; + int val; + int server_port; + + /* Check command */ + if(argc != 3 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p \n"); + exit(-1); + } + + /* Check if the port number passed as parameter is valid */ + server_port = atoi(argv[2]); + if ((server_port < 1024) || (server_port > 65535)) { + printf("Error: Port must be in the range 1024 <= port <= 65535\n"); + exit(-1); + } + + /* Initialize mutexes */ + if(pthread_mutex_init(&socket_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_mutex_init(&list_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + /* Initialize condition variable for copying the socket descriptor in the thread */ + if(pthread_cond_init(&free_socket, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + + /* Prepare thread conditions */ + thread = (pthread_t) malloc((sizeof(thread))); + pthread_attr_init(&thread_att); + pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); + + s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(s_server == -1){ + perror("Error when creating the socket"); + exit(-1); + } + + /* Obtain the IP address attached to interface eth0 */ + struct ifreq ifr; + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1); + ioctl(s_server, SIOCGIFADDR, &ifr); + + val = 1; + setsockopt(s_server, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + + /* Initialize the address that will be attached to the listening socket */ + bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ + server_addr.sin_family = AF_INET; + server_addr.sin_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; /* Listens to IP address in eth0 interface*/ + server_addr.sin_port = htons(server_port); /* Port number */ + + /* Bind the address to the listening socket */ + if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + perror("Error when binding the address to the socket"); + exit(-1); + } + + /* Set the socket to listen incoming requests */ + if(listen(s_server, 5) == -1){ + perror("Error when listening to the socket"); + exit(-1); + } /* Backlog is 5, maximum number of queued requests is 5 */ + + /* Once the server is listening, print inicial prompt */ + printf("s> init server %s:%d\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), + ntohs(server_addr.sin_port)); + + /* Define the variable for the client address size. It should be declared + as variable because the size depends on the incoming request and is an + output parameter of the 'accept' function */ + socklen_t cl_addr_size = sizeof(client_addr); + + /* Set the control variable to TRUE so that the listening thread waits + until the thread stores a local copy of the socket descriptor */ + busy_socket = TRUE; + + CLIENT *clnt; + + clnt = clnt_create ("127.0.0.1", STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror ("127.0.0.1"); + exit (1); + } + int result; + init_1(&result, clnt); + if(result == -1) printf("[SERVER_THREAD]: Error in the storage service\n"); + else printf("Storage service init OK\n"); + + clnt_destroy (clnt); + + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ + fprintf(stderr, "%s", "s> "); /* Prompt */ + + + /* Loop for accepting and creating threads for each incoming request */ + while(1){ + /* Accept client connections. If error, shut down the server */ + sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); + if(sc == -1){ + perror("Error when accepting the connection"); + /* Close listening server socket */ + close(s_server); + exit(-1); + } + /* Once accepted, create a thread to handle the request. If error, shut down the server */ + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { + perror("[SERVER]: Error when creating the thread"); + /* Close both listening socket and the one resulting from the accept operation */ + close(s_server); + close(sc); + exit(-1); + } + + /* Wait for the thread to copy the socket descriptor locally */ + pthread_mutex_lock(&socket_mtx); + while(busy_socket == TRUE) + pthread_cond_wait(&free_socket, &socket_mtx); + busy_socket = TRUE; + pthread_mutex_unlock(&socket_mtx); + + } + + exit(0); +} + +void * manageRequest(int *sd){ + int s_local; + char operation_buff[MAX_COMMAND]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; + char md5_buff[MAX_MD5]; + int n; + int m; + char out; + + /* Copy locally the socket descriptor */ + pthread_mutex_lock(&socket_mtx); + s_local = *sd; + busy_socket = FALSE; + pthread_cond_signal(&free_socket); + pthread_mutex_unlock(&socket_mtx); + + /* Read the operation. If error, close the socket and terminate the thread */ + n = readLine(s_local, operation_buff, MAX_COMMAND); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Read the username and convert to uppercase. If error, close the socket + and terminate the thread */ + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* For convention of the server, convert every username to uppercase */ + toUpperCase(user_buff); + + /* Check the operation */ + if (strcmp(operation_buff, "REGISTER") == 0){ + /* Register the user */ + pthread_mutex_lock(&list_mtx); + out = registerUser(user_buff); + pthread_mutex_unlock(&list_mtx); + + } + else if (strcmp(operation_buff, "UNREGISTER") == 0){ + /* Unregister the user */ + pthread_mutex_lock(&list_mtx); + out = unregisterUser(user_buff); + pthread_mutex_unlock(&list_mtx); + + } + else if(strcmp(operation_buff, "CONNECT") == 0){ + + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + uint16_t client_port; + + n = readLine(s_local, msg_buff, MAX_MSG); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Get the port number from the socket */ + client_port = (uint16_t) atoi(msg_buff); + /* Get the client IP address attached to the socket */ + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + perror("[SERVER_THREAD]: Error when getting client address"); + /* Send error 3 to client and close socket */ + out = 3; + goto respond_to_client; + } + /* Connect the user to the server */ + pthread_mutex_lock(&list_mtx); + out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); + pthread_mutex_unlock(&list_mtx); + + + /* If result is 0, then check for the pending messages and send them */ + if(out == 0){ + /* Send code 0 for the client to open the listening thread */ + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + /* Send Pending Messages */ + pthread_mutex_lock(&list_mtx); + struct msg **pend_msg = getPendMsgHead(user_buff); + while(*pend_msg != NULL){ + pthread_mutex_unlock(&list_mtx); + char sender[MAX_USERNAME]; + char msg_body[MAX_MSG]; + + /* Get the name of the sender, the id and the body associated to the message to be sent */ + pthread_mutex_lock(&list_mtx); + strcpy(sender, (*pend_msg)->sender); + int msg_id = (*pend_msg)->id; + strcpy(msg_body, (*pend_msg)->body); + pthread_mutex_unlock(&list_mtx); + + /* Try to send the message. The 'stored' flag is set to 1 because the message + is already stored in the server */ + int err = sendMessage(sender, user_buff, msg_body, md5_buff, msg_id, 1); + + /* If the message could not be delivered/stored, then exit the loop */ + if(err != 0) goto destroy_thread; + + /* Send acknowledge to the sender. No return value is checked */ + sendAck(sender, msg_id); + + /* Remove the message from the pending message queue and iterate with the next message */ + pthread_mutex_lock(&list_mtx); + *pend_msg = dequeueMsg(&(*pend_msg)); + } + pthread_mutex_unlock(&list_mtx); + } + goto destroy_thread; + } + else if(strcmp(operation_buff, "DISCONNECT") == 0){ + /* Get the IP from which the command is being executed */ + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + perror("Error when getting client address"); + /* Send error 3 to client and close socket */ + out = 3; + goto respond_to_client; + } + /* Try to disconnect the user passing the IP from which the request is being made + as parameter to the function */ + pthread_mutex_lock(&list_mtx); + out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); + pthread_mutex_unlock(&list_mtx); + + } + else if(strcmp(operation_buff, "SEND") == 0){ + /* Reserve a buffer for the username of the receiver */ + char dest_user_buff[MAX_USERNAME]; + + /* Read the destination user from the socket */ + m = readLine(s_local, dest_user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Convert username to uppercase by convention */ + toUpperCase(dest_user_buff); + + /* Read the message from the socket */ + n = readLine(s_local, msg_buff, MAX_MSG); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* Read the MD5 hash from the socket */ + m = readLine(s_local, md5_buff, MAX_MD5); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* Check if one of the two users is not registered */ + pthread_mutex_lock(&list_mtx); + if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ + pthread_mutex_unlock(&list_mtx); + /* Send code 1 to the client and close the socket */ + out = 1; + goto respond_to_client; + } + pthread_mutex_unlock(&list_mtx); + + /* Check the status of the destination user */ + pthread_mutex_lock(&list_mtx); + char status = isConnected(dest_user_buff); + unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message + pthread_mutex_unlock(&list_mtx); + + if(status == 0){ //Not connected + /* Store the message */ + if (storeMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id) != 0){ + /* Message could not be stored so send code 2 to the client and close the socket */ + out = 2; + goto respond_to_client; + } + /* Message was stored successfully, send code 0 and message ID to the client */ + out = 0; + ///////////////////////////////////////////// + /* Store the message in the storage server */ + CLIENT *clnt; + + clnt = clnt_create ("127.0.0.1", STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror ("127.0.0.1"); + exit (1); + } + int result; + store_1(user_buff, dest_user_buff, last_id, msg_buff, md5_buff, &result, clnt); + if(result == -1) printf("[SERVER_THREAD]: Error in the storage service\n"); + else printf("Message stores OK in storage service\n"); + + clnt_destroy (clnt); + + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + }else if(status == 1){ //Connected + /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message + is being sent for the first time and was not previously stored int he server */ + int err = sendMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id, 0); + /* If while trying to store the message, the user unregisters, value 1 will be returned */ + if(err == 1){ + out = 1; + goto respond_to_client; + }else if(err == -1){ + /* If any server error occurred and the message was not stored or sent, then send code 2 + back to the client */ + out = 2; + goto respond_to_client; + } + + /* If no server error occured, then the message was either sent or stored, so we send back + the code 0 (OK) to the client */ + out = 0; + ///////////////////////////////////////////// + /* Store the message in the storage server */ + CLIENT *clnt; + + clnt = clnt_create ("127.0.0.1", STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + clnt_pcreateerror ("127.0.0.1"); + exit (1); + } + int result; + store_1(user_buff, dest_user_buff, last_id, msg_buff, md5_buff, &result, clnt); + if(result == -1) printf("[SERVER_THREAD]: Error in the storage service\n"); + else printf("Message stores OK in storage service\n"); + + clnt_destroy (clnt); + if ((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* At this point, the message is assumed to */ + sendAck(user_buff, last_id); + } + /* The response to the client is handled within this else-of statement, so the + 'respond_to_client' label is skipped and proceed to close the socket */ + goto destroy_thread; + } + + /* Default print template */ + switch(out){ + case 0: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + break; + default: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "FAIL"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + } + + /* Label to jump previous code to respond the client and skip the default print right above, + in case other commands (as SEND) do not use a template print */ + respond_to_client: + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + destroy_thread: + if(close(s_local) == -1){ + perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + pthread_exit(NULL); +} + +/* Capitalizes the input string. String is both an input and output parameter */ +void toUpperCase(char * string){ + /* Convert to uppercase */ + int i; + for(i = 0; string[i]; i++){ + string[i] = toupper(string[i]); + } +} + +/* Return 0: Message is stored OK + Return -1: Server error (Memory space error) */ +int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id){ + /* Store the message to the receiver pending list */ + pthread_mutex_lock(&list_mtx); + int err = storeMsg(receiver, msg, msg_id, md5, sender); + pthread_mutex_unlock(&list_mtx); + + /* Error when trying to store the message */ + if(err == -1) return -1; + + fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + /* Return store OK */ + return 0; +} + +/* Return 0: Message is sent OK + Return 1: User did not exist when trying to store/send the message. Message not stored + Return 2: Message is stored, or not stored if was already stored + Return -1: Server error */ +int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored){ + int s_receiver; //Socket for the receiver of the message + struct sockaddr_in recv_addr; //Receiver address + struct hostent *recv_hp; //Host entity structure for the receiver + + s_receiver = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_receiver == -1){ + return -1; //Send error message. -1 is internally encoded as server error + } + + bzero((char *) &recv_addr, sizeof(recv_addr)); //Reserve space for the address of the receiver + + pthread_mutex_lock(&list_mtx); + recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver + pthread_mutex_unlock(&list_mtx); + /* If error when getting the host, return -1 */ + if(recv_hp == NULL) return -1; + + memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format + recv_addr.sin_family = AF_INET; + pthread_mutex_lock(&list_mtx); + recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread + pthread_mutex_unlock(&list_mtx); + + /* Try to connect to the listening thread of the receiver to send the message */ + if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ + /* If the connection with the receiver fails, assume the client + to be disconnected, disconnect it and store the message */ + pthread_mutex_lock(&list_mtx); + /* As we are internally disconnecting the user from the server, we need to bypass the + IP check, so we pass the IP of the receiver as parameter to always fulfill the condition */ + char reg = disconnectUser(receiver, getUserIP(receiver)); // No need to check for output + pthread_mutex_unlock(&list_mtx); + /* If the disconnect method returns 1, it means that the user was not found so is not + registered (it unregister while trying to store the message, so we return 1 */ + if(reg == 1){ + return 1; + } + /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the + server so we need to push it to the end of the queue. If it was stored, then nothing is done */ + if(!stored){ + if(storeMessage(sender, receiver, msg, md5, msg_id) == -1) return -1; //Return -1 if store error + } + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + /* Return 2 to indicate the message is stored but not sent */ + return 2; + } + /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ + char op[13]; + strcpy(op, "SEND_MESSAGE"); + send_msg(s_receiver, op, strlen(op)+1); + /* Send the sender name */ + send_msg(s_receiver, sender, strlen(sender)+1); + /* Send the identifier of the message */ + char id_string[11]; + sprintf(id_string, "%d", msg_id); + send_msg(s_receiver, id_string, strlen(id_string)+1); + /* Send the MD5 of the message */ + send_msg(s_receiver, md5, strlen(md5)+1); + /* Send the message */ + send_msg(s_receiver, msg, strlen(msg)+1); + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + + fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + return 0; +} + +/* Tries to send acknowledge to the sender. No return value */ +void sendAck(char * sender, unsigned int msg_id){ + int s_sender; //Socket for the receiver of the message + struct sockaddr_in sender_addr; //Sender address + struct hostent *sender_hp; //Host entity structure for the sender + + s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_sender == -1){ + /* If error when allocating resources for the socket, then exit */ + return; + } + + char ack_op[14]; + strcpy(ack_op, "SEND_MESS_ACK"); + + bzero((char *) &sender_addr, sizeof(sender_addr)); + + pthread_mutex_lock(&list_mtx); + sender_hp = gethostbyname(getUserIP(sender)); + pthread_mutex_unlock(&list_mtx); + /* If any error when getting the hoset, exit the function */ + if(sender_hp == NULL) return; + + memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); + sender_addr.sin_family = AF_INET; + + pthread_mutex_lock(&list_mtx); + sender_addr.sin_port = htons(getUserPort(sender)); + pthread_mutex_unlock(&list_mtx); + + if((connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr))) == -1){ + /* If error when connecting, exit the function */ + return; + } + + + char id_string[11]; + sprintf(id_string, "%d", msg_id); + if((send_msg(s_sender, ack_op, strlen(ack_op)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + if((send_msg(s_sender, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + + if(close(s_sender) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; +} \ No newline at end of file diff --git a/lab2_pruebas/server.h b/lab2_pruebas/server.h new file mode 100644 index 0000000..5fd2c95 --- /dev/null +++ b/lab2_pruebas/server.h @@ -0,0 +1,27 @@ +#define MAX_COMMAND 11 + +/* Mutex & Threads */ +pthread_mutex_t socket_mtx; +pthread_mutex_t list_mtx; +pthread_t thread; +pthread_attr_t thread_att; +/* Controls the access to the socket generated by the connection 'accept' */ +pthread_cond_t free_socket; +pthread_cond_t free_list; + +/* Variable that controls the state of the socket created by the connection 'accept' */ +int busy_socket; + +/* Declare the server socket as global variable */ +int s_server; + +/* Declare the list of users */ +struct user *users; + +/* ================FUNCTION HEADERS================ */ +void interruptHandler(int sig); +void * manageRequest(int *sd); +void toUpperCase(char * string); +int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored); +void sendAck(char * sender, unsigned int msg_id); +int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int mgs_id); \ No newline at end of file diff --git a/lab2_pruebas/server.o b/lab2_pruebas/server.o new file mode 100644 index 0000000000000000000000000000000000000000..ce27ef0003019aade28bfa57e4b9b56481ba6841 GIT binary patch literal 42624 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 literal 0 HcmV?d00001 diff --git a/lab2_pruebas/servidor/Makefile b/lab2_pruebas/servidor/Makefile new file mode 100644 index 0000000..2e6a4cf --- /dev/null +++ b/lab2_pruebas/servidor/Makefile @@ -0,0 +1,28 @@ +RPC_PATH = ./rpc_store_service + +SERVER = server + +CC = gcc + + +CCGLAGS = -Wall -g + +LDFLAGS = -L$(INSTALL_PATH)/lib/ +LDLIBS = -lpthread + + +all: CFLAGS=$(CCGLAGS) +all: $(SERVER) +.PHONY : all + +server: server.o read_line.o user_list.o msg_list.o + $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ + +%.o: %.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c $< + +clean: + rm -f $(SERVER) *.o + +.SUFFIXES: +.PHONY : clean diff --git a/lab2_pruebas/servidor/msg_list.c b/lab2_pruebas/servidor/msg_list.c new file mode 100644 index 0000000..4484c2f --- /dev/null +++ b/lab2_pruebas/servidor/msg_list.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include "msg_list.h" + + +/* Returns 1 if already registered; 0 if registered correctly */ +void enqueueMsg(struct msg **head, char * message, unsigned int id){ + struct msg *temp; + //Allocate the space for the new message and + temp = (struct msg *) malloc(sizeof(struct msg)); + strcpy(temp->body, message); + temp->id = id; + + if (*head == NULL){ //If list is empty + temp->next = *head; + *head = temp; + } + else{ + struct msg *last = *head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + temp->next = NULL; + } +} + +/* Deletes the message at the head of the queue */ +void removeMsg(struct msg ** head){ + struct msg *temp = *head; + //Head pointing to the next element + *head = temp->next; + //Free the resources of the first message + free(temp); + return; +} + +void printMsgs(struct msg ** head){ + printf("INSIDE THE PRINT MSGS FUNCTION!\n"); + struct msg *temp = *head; + if(temp == NULL){ + return; + } + + while(temp != NULL){ + printf("Message ID: %u", temp->id); + printf("Message body: %s", temp->body); + printf("\n"); + temp = temp->next; + } + + return; +} diff --git a/lab2_pruebas/servidor/msg_list.h b/lab2_pruebas/servidor/msg_list.h new file mode 100644 index 0000000..1320b12 --- /dev/null +++ b/lab2_pruebas/servidor/msg_list.h @@ -0,0 +1,13 @@ +#define MAX_MSG 256 + +struct msg{ + char body[MAX_MSG]; + unsigned int id; + struct msg *next; +}; + +unsigned int last_msg_id; + +void enqueueMsg(struct msg **head, char * msg, unsigned int id); +void removeMsg(struct msg ** head); +void printMsgs(struct msg ** head); diff --git a/lab2_pruebas/servidor/read_line.c b/lab2_pruebas/servidor/read_line.c new file mode 100644 index 0000000..967be93 --- /dev/null +++ b/lab2_pruebas/servidor/read_line.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include "read_line.h" + +int send_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = send(socket, message, l, 0); + l = l -r; /* Pending data to send */ + message = message + r; /* */ + } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + +int recv_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = recv(socket, message, l, 0); + l = l -r ; /* Pending data to receive */ + message = message + r; + } while ((l>0) && (r>=0)); /* We check the return value in case all the data was not received */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + + + +ssize_t readLine(int fd, void *buffer, size_t n) +{ + ssize_t numRead; /* num of bytes fetched by last read() */ + size_t totRead; /* total bytes read so far */ + char *buf; + char ch; + + + if (n <= 0 || buffer == NULL) { + errno = EINVAL; + return -1; + } + + buf = buffer; + totRead = 0; + + for (;;) { + numRead = read(fd, &ch, 1); /* read a byte */ + + if (numRead == -1) { + if (errno == EINTR) /* interrupted -> restart read() */ + continue; + else + return -1; /* some other error */ + } else if (numRead == 0) { /* EOF */ + if (totRead == 0) /* no byres read; return 0 */ + return 0; + else + break; + } else { /* numRead must be 1 if we get here*/ + if (ch == '\n') + break; + if (ch == '\0') + break; + if (totRead < n - 1) { /* discard > (n-1) bytes */ + totRead++; + *buf++ = ch; + } + } + } + + *buf = '\0'; + return totRead; +} diff --git a/lab2_pruebas/servidor/read_line.h b/lab2_pruebas/servidor/read_line.h new file mode 100644 index 0000000..e3d4c9e --- /dev/null +++ b/lab2_pruebas/servidor/read_line.h @@ -0,0 +1,5 @@ +#include + +int send_msg(int socket, char *message, int length); +int recv_msg(int socket, char *message, int length); +ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab2_pruebas/servidor/server.c b/lab2_pruebas/servidor/server.c new file mode 100644 index 0000000..469b0fa --- /dev/null +++ b/lab2_pruebas/servidor/server.c @@ -0,0 +1,308 @@ +#include /* For addresses in PF_INET */ +#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" +#include "msg_list.h" +#include "server.h" + +/* Handler for interrupts */ +void interruptHandler(int sig){ + printf("[SERVER]: Handling interrupt. Closing server socket...\n"); + exit(0); +} + +int main(int argc, char * argv[]){ + struct sockaddr_in server_addr, client_addr; + int sd, sc; + int val; + int server_port; + struct hostent *hp; + + + /* Check command */ + if(argc != 3 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p \n"); + exit(-1); + } + + /* Check if the port number passed as parameter is valid */ + server_port = atoi(argv[2]); + if ((server_port < 1024) || (server_port > 65535)) { + printf("Error: Port must be in the range 1024 <= port <= 65535\n"); + exit(-1); + } + + //printf(); + + /* Initializing mutex */ + if(pthread_mutex_init(&socket_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_mutex_init(&list_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_cond_init(&free_socket, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_cond_init(&free_list, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + + /* Prepare thread conditions */ + pthread_attr_init(&thread_att); + pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); + + sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(sd == -1){ + perror("Error when creating the socket"); + exit(-1); + } + + val = 1; + setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + + bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ + server_addr.sin_family = AF_INET; + server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ + server_addr.sin_port = htons(server_port); /* Port number */ + + if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + perror("Error when binding the address to the socket"); + exit(-1); + } + struct in_addr in; + + hp = gethostbyaddr((char*) &server_addr, sizeof(server_addr), AF_INET); + + char **p; + + for (p = hp->h_addr_list; *p != 0; p++){ + memcpy(&in.s_addr, *p, sizeof(in.s_addr)); + printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); + } + + /* Initial prompt */ + //printf("s> init server %s:%d\n", inet_ntoa(in), ntohs(server_addr.sin_port)); + + if(listen(sd, 5) == -1){ + perror("Error when listening to the socket"); + exit(-1); + } /* Backlog is 5, maximum number of queued requests is 5 */ + + socklen_t size = sizeof(client_addr); + + busy_socket = TRUE; + busy_list = FALSE; + + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ + + while(1){ + fprintf(stderr, "%s", "s> "); /* Prompt */ + + sc = accept(sd, (struct sockaddr *) &client_addr, &size); + if(sc == -1){ + perror("Error when accepting the connection"); + exit(-1); + } + thread = (pthread_t) malloc((sizeof(thread))); + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { + perror("[SERVER]: Error when creating the thread"); + exit(-1); + } + + /* Wait for the thread to copy the socket descriptor locally */ + pthread_mutex_lock(&socket_mtx); + while(busy_socket == TRUE) + pthread_cond_wait(&free_socket, &socket_mtx); + busy_socket = TRUE; + pthread_mutex_unlock(&socket_mtx); + + /* Close the created socket */ + printf("\n"); + } + + close(sd); + exit(0); + +} + +void * manageRequest(int *sd){ + int s_local; + char operation_buff[MAX_OP]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; + int n; + int m; + char out; + + /* Copy locally the socket descriptor */ + pthread_mutex_lock(&socket_mtx); + s_local = *sd; + busy_socket = FALSE; + pthread_cond_signal(&free_socket); + pthread_mutex_unlock(&socket_mtx); + + /* Read the operation */ + n = readLine(s_local, operation_buff, MAX_OP); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + /* Send Fail code to client side */ + /* + out ='2'; + send_msg(s_local, &out, sizeof(out)); + */ + exit(-1); + } + /* Read the username and convert to uppercase */ + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + /* Send Fail code to client side */ + /* + out ='2'; + send_msg(s_local, &out, sizeof(out)); + */ + exit(-1); + } + toUpperCase(user_buff); + + /* Check the operation */ + if (strcmp(operation_buff, "REGISTER") == 0){ + /* Register the user */ + pthread_mutex_lock(&list_mtx); + ////////////////////////////////////////////////////// + /* DOUBT */ + ////////////////////////////////////////////////////// + /* Wait while the list of users is being accessed */ + /* + while(free_list == TRUE) + pthread_cond_wait(&free_list, &list_mtx); + free_list = TRUE; + */ + out = registerUser(user_buff); + pthread_mutex_unlock(&list_mtx); + /* + switch(result){ + case 0: + out = '0'; + break; + case 1: + out = '1'; + break; + default: + out = '2'; + }*/ + } + else if (strcmp(operation_buff, "UNREGISTER") == 0){ + /* Unregister the user */ + pthread_mutex_lock(&list_mtx); + ////////////////////////////////////////////////////// + /* DOUBT */ + ////////////////////////////////////////////////////// + /* Wait while the list of users is being accessed */ + /* + while(free_list == TRUE) + pthread_cond_wait(&free_list, &list_mtx); + free_list = TRUE; + */ + out = unregisterUser(user_buff); + pthread_mutex_unlock(&list_mtx); + /*switch(result){ + case 0: + out = '0'; + break; + case 1: + out = '1'; + break; + default: + out = '2'; + }*/ + } + else if(strcmp(operation_buff, "CONNECT") == 0){ + + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + struct hostent *hp; + uint16_t client_port; + char * client_ip; + + n = readLine(s_local, msg_buff, MAX_MSG); + + client_port = (uint16_t) atoi(msg_buff); + + //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); + + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1) perror("Error when getting address"); + struct in_addr in; + + hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); + + char **p; + + for (p = hp->h_addr_list; *p != 0; p++){ + memcpy(&in.s_addr, *p, sizeof(in.s_addr)); + printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); + } + + + //client_port = client_addr_local.sin_port; + + printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); + + pthread_mutex_lock(&list_mtx); + out = connectUser(user_buff, msg_buff, client_port); + pthread_mutex_unlock(&list_mtx); + + }/* + else if(strcmp(operation_buff, "DISCONNECT") == 0){ + pthread_mutex_lock(&list_mtx); + out = disconnectUser(user_buff); + pthread_mutex_unlock(&list_mtx); + }*/ + + + + write(1, user_buff, m); + + /* + + + struct sockaddr_in test_addr; + + getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); + //test_addr.sin_addr is of type struct in_addr + char * ip = inet_ntoa(test_addr.sin_addr); + printf("CLIENT ADDRESS: %s\n", ip); + printf("CLIENT PORT NUMBER: %d\n", client_port); + */ + + send_msg(s_local, &out, sizeof(out)); + + if(close(s_local) == -1){ + perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + pthread_exit(NULL); +} + +void toUpperCase(char * string){ + /* Convert to uppercase */ + for(int i = 0; string[i]; i++){ + string[i] = toupper(string[i]); + } +} \ No newline at end of file diff --git a/lab2_pruebas/servidor/server.h b/lab2_pruebas/servidor/server.h new file mode 100644 index 0000000..c39faea --- /dev/null +++ b/lab2_pruebas/servidor/server.h @@ -0,0 +1,22 @@ +#define MAX_OP 11 + +/* Mutex & Threads */ +pthread_mutex_t socket_mtx; +pthread_mutex_t list_mtx; +pthread_t thread; +pthread_attr_t thread_att; +/* Controls the access to the socket generated by the connection 'accept' */ +pthread_cond_t free_socket; +pthread_cond_t free_list; + +/* Variable that controls the state of the socket created by the connection 'accept' */ +int busy_socket; +/* Variable that controls the if the list of users is being accessed */ +int busy_list; + +/* Initialize the list of users */ +struct user *users; + +void interruptHandler(int sig); +void * manageRequest(int *sd); +void toUpperCase(char * string); \ No newline at end of file diff --git a/lab2_pruebas/servidor/user_list.c b/lab2_pruebas/servidor/user_list.c new file mode 100644 index 0000000..befa904 --- /dev/null +++ b/lab2_pruebas/servidor/user_list.c @@ -0,0 +1,200 @@ +#include +#include +#include +#include +#include "msg_list.h" +#include "user_list.h" + + +char isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Returns 1 if already registered; 0 if registered correctly */ +char registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + /* Prepare new user */ + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + /* Initialize user values */ + strcpy(temp->username, username); + temp->status = 0; + temp->port = 0; + temp->pend_msgs_head = NULL; + temp->next = NULL; + + if (user_head == NULL){ //If list is empty + /*Initialize the last assigned ID to a message if is the first user to register*/ + if(first_user){ + last_msg_id = 0; + first_user = FALSE; + } + temp->next = user_head; + user_head = temp; + } + else{ + struct user *last = user_head; + + /* Iterate over the list */ + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + + return 0; +} + +/* Return 0 if connect OK; 1 if user is not registered; 2 if registered but not connected */ +char connectUser(char * username, char * ip, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + //Set IP + temp->port = port; + return 0; + } + temp = temp->next; + } + + return 1; +} + +/* Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ +char disconnectUser(char * username, char * used_ip){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP + if (temp->status == 0) return 2; //User already disconnected + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + //Free IP + free(&(temp->port)); + return 0; + } + temp = temp->next; + } + + return 1; +} + + +/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ +char unregisterUser(char * username){ + /* Check if the user is not registered */ + //if(!isRegistered(username)) return 1; + + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + /* Free the memory resources of the user structure */ + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + + +void printUsers(){ + struct user *temp; + temp = user_head; + if(temp == NULL){ + return; + } + while(temp != NULL){ + printf("%s ", temp->username); + temp = temp->next; + printf("\n"); + } +} + +void appendMsg(char * username, char* msg){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Enqueue message + enqueueMsg(&(temp->pend_msgs_head), msg, updateLastID(temp)); + return; + } + temp = temp->next; + } + + return; +} + +unsigned int updateLastID(){ + //Increment the ID in 1 + last_msg_id = last_msg_id+1; + //If it results in 0, then the maximum representable number is overflown + if(last_msg_id == 0) last_msg_id = 1; + + return last_msg_id; +} + +void printPendMsgs(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + printMsgs(&(temp->pend_msgs_head)); + } + temp = temp->next; + } +} + +void removePendMsg(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + removeMsg(&(temp->pend_msgs_head)); + } + temp = temp->next; + } +} + diff --git a/lab2_pruebas/servidor/user_list.h b/lab2_pruebas/servidor/user_list.h new file mode 100644 index 0000000..b947099 --- /dev/null +++ b/lab2_pruebas/servidor/user_list.h @@ -0,0 +1,31 @@ +#define MAX_USERNAME 256 +#define TRUE 1 +#define FALSE 0 + +/* +struct pend_msg{ + char pend_msg[MAX_MSG]; + struct pend_msg *next; +} *msg_head;*/ + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + uint16_t port; + struct msg *pend_msgs_head; + struct user *next; +} *user_head; + +int first_user; + + +char isRegistered(char * username); +char registerUser(char * username); +char unregisterUser(char * username); +char connectUser(char * username, char * ip, uint16_t port); +char disconnectUser(char * username, char * used_ip); +void appendMsg(char * username, char* msg); +unsigned int updateLastID(); +void printPendMsgs(char * username); +void printUsers(); +void removePendMsg(char * username); \ No newline at end of file diff --git a/lab2_pruebas/store_service_server b/lab2_pruebas/store_service_server new file mode 100755 index 0000000000000000000000000000000000000000..672c267ab1d7ad658c01508bb58731a6c60801a7 GIT binary patch literal 29016 zcmeHwdwd+lm2S;QnrW#uGkV#UA6O%dL1wWe8{3$-WNGk-NVbqHEQE;-gmr?Gm_QQXLh$b1Y*>V zckk}r``5OA>N<5^b?Vfq>OR#y?dt=L7dagcp%16HK(KbitdS^n7UHsAS+#J>MXsn3 zr-*Xl0wxE4HIl+oLApF)sn(@o@nxaR#@}+MLM(UINI;i!6k6y~TgZ~_jUP1@sLJPO ztEw)A@Jj^cXlub-Sw*=~0=gWr>@aAUJpA%ZH03HRxe7~8m&Yx`bgBEtzVWZk(%a^& zL5=kq7NTCB$4m0^Xnr-(ML1C^t0-$Epv!v|TIf>CT>?4U`R_dnEXEeAy{Y{2meoI9 zT2)ci-`BBhNmYN>!v4O&YRR6D=U;pm&{l&k3{o0?Gm{&wen~6W_kmKg?iwaS5GI2U4>Oa3^!>7N0N8UZ> zzjVsk?+j}+I3^y;fGV1Z7UmTA%csEqY6|?0Dew(b;6F13emXilnVkox;D2BW{I)6Z zbm(OIFPMUV#uWGp=<$P=d3+Oy$@D)y1-@en{H;^qe=-H0ZBEwin^WN5odRDm1wLxw zqj@!e#*e1}vfXNHz0?%9<>%%M{13rUC}s&!zEQI3^+I4ib#nSF6Y)f>GrCQLxArAO zd~;_w77N9<#S`HHKtzP%;lZw0INHCBtb^o@4zx!@$-#IyAwr>eqP_F#P-pMeq3-s+ zekl=44zf&kMMIsjaC;&wwsyrrnfv2afxx`uwC z(*sc{u_e|XwHgS8=oa=UmIw{B_YIny(#!S8!JRK1I~J<kQG+BeMQF>shQHmi6DV&X62EB8(C+_jJ_=E+gWF*j2@Tu80!p?(Ic{c z73&Ov(ZjOd!Fmbnhh+V7);YAJ`((X^bq?w14q3mL^%<;3Wqk$f9Kz9!vVIQhoSLJ} zieBOu-TP3N$D%(p4E^ZJ;LvY_J70OLxvk;Yk(wDbB6#eHCtkXw6H(p{C=FLxHCohnkKY3%n<#hI8^D6&wnj7~KQW;BeqXaCi+A zzYrWcHu8W}T9E*@5u#@p3T>dQJz?umWLfu(O$S-NOB)dh#A{cDk5 zwJ@|#8ZWz+^G#qO@J#A3yok{{9voWp^s&I3N;v0M3J(R|g4*N9q;+q!14exfxaAQ1 z9Xf;|I9H)}$RU7(-k3|7VWGTvTzVZNx1$0BG47{d31^G z2>?^Np+m{%X(!?ZaUyMfj0Qi>K9Ah|5l4b!4Tb_mCvs(YhPOJAk+ zs}Z^T`ma497431x?EyH=(a+e;9rJAt?b;$dyAI ziHY01!0z26(Nd(wuw)9sLI0d51v6ad+r1SLM)FA@V?bm$$+4pQe7hGavh6rOCK`-P zVmcrgIfW>u#_&V5^awp@bJyr;3GNq%nx5yhe7qX{9l3^f>lu)A%Rql)vodkb%a+3K zKU>}1D<=`C2$!dVLq8p99H*2cjzPgFNy=i2GQ8&bp?!2MXfTq~6?X5Ffg>?%P%V(_ zj&1HIbuNm5oQe^ehqwA=3&X)umcz}e!QrT((4vuk!c}@KInp%rM8gnTKQ?j!V`=A; z1)roC9iW$+;AI&D`!Q3d<{xhmA`n{xv121HEGtT;6*g?esO$+2z1tNW&YoYvz#IyU zEII;1_XLM)3UIy1_I+kZ25k2C_sqcE!po1MCLUu}6dd~X$SU}Fw4V`pEO0;~j|C1{ z<$Yy^HR6pcNV#ho*g;{^gz~;1DYc|9T}q|gP0DGcMCA1>aOfN*d*6>p@vzaKeTYUs zq*Z$ZM;@iwkI^W0?@J&BhwI>KSig4-deU@2dh6F?$FZnL@pCB7;f7E41otKn2lqCy z%l8F`o*O$p6u4vOwRec?${>Ci*h4a!em&B4LM}^~OTQkuZ@d-%B&}3nCHS1j4}+d~ zw3OCyCOm!_+&A(uBp+vWYjTr9m zhCYz7v-Jvf5#+#@4qf{uua!#n3z!%qzXR9fn8RZuGuiae(ctc1Bx&mF`N~w@?JEAm zY^&8a^=v@3kMNG@Uvi3S#G|zTG3ul*&I1virJ}nnMQ7QHj#E*dt>`V7pyCG{LK*WQ zjUP8=!vtfDQs{V!#!J7EzxEN{PEKOX!ysD5luR(Df{L!S6?Fm{nfpFkAI|x`sa(Lj zK;?psWNx;ZmjSYFFbeE-k24W7{86<6%PF}E`e1-tt|o7s0rFeHy+MQ{*vg^Ynz^T? zvE`&Mm7mzaAKsG<`-`_S4z1}$VK|M5#mAn+(dDIa+`;Fx5 zOqj0NP`kc%L+zEdp`-i8?}y(#3YRm-vQjGUAMi*Hws-W0{fUU58zBDnSWj{wJeY`Q z5@O+avLEOg%p@L{TID9I9Jb1@T4iVZ;9w--SGzcVZ0Pvo;n?QB&Typ^Pf@S8R{RyM zZL3=Xq1Hgl+J?Ho8Gcn=8)#{5SiR~D>R3>TZJ<=W*!=lV>xB;Jm76@tL4PcqNX7=k zU9{3MJL}v-D2wrT%iCjPZ=!5`cWmrCC|6);OE9y;D3_po6H}uN<>xTt5-5L&)#DD7 ze?|E}QT`9C!_T999_4!|7vc(3f+5&|atX@)D7goJ6)vcsM)?#L)q^Nc!-elVC_h5^ z63X>Rk^YMES(Np-IVgcGJRI9wgkx)gV|KpV*ynH;5YPRbJqVrC$zUCm^9wv9QTzwq z8XG$d`-HdPB5&!%K68t)LtHrP+|$oIY5w+feo1AqX*Oh1(RnqCa z1)zV1dNe)jMh7`a--W+@@Z0?;ZMySbsetr*@i!CxJUdN(i7o#m=!@ZJ8A@7z-+244 zfL;Uo!zjn~KVa+6hTi8uUyw@g8kau>^cO*2mr8fG+4A+E7h+tiQ|VWa%XfiZ4*HT* zdPLDr0d5!QOF{n`O547`&aABGWEUwV{q!K{uOVL6XYgtIv%sH>+t79*v>%-7Z9AC} zbb|hT8vQw&o{u=1fp}Y=M!!_j>w!B1^vggGlfJ@R@LA^yZ|SXB0k3~=_6l#sEjdAN z^-Zpzcll0tleZ@3U0&<0uJu-|@cO|A{uN$B#%BV0c0dn`|33cP1OFu+*q2`;^+c^w zE9F$-q04+#6))%3NXTQ=>v4<6L+>T)=c{@zlxrD}S*j4F*zV!M^@)e3zyI-Ag!Kc? z8W#35-#t01&O1IH$DK7Sgx*_jvJBLF%Dmy`F-;Zr8B4r6{2OJd=TOuF^m?xMzGqnM zQFo1mG`_~FYrEyz1&&;cU$>9TitJB;#g7|rS=au=yb?t9;EWKd?%dsoI@xm8V+eGON7E zD%VC4X4uIh?^1XD%vGXdr?`xE&MOa;ZyRF}to z9VD_getHF(l`6xr4?OwYDQwCSVlu;=cR|oOe>u)s**Sbj=Uj}=I8P9)y z8}18rCG9>37?&{vo^kWO$;dgYjm6z)A?IxJ2%{8Qa?X+b zV66f`JeBXj8ItQ@ zm$4;8p7$YHVEl=<55^Lr-%gUpC9R{3jyiCRqB)iDl22O5to8JZC zhMi7u=F?xEqc~;Lw%kij2hzI}{SjUdm>u5F0^t1S zD2zYBqTD^_!7qmKDwPf8Lqmb_Z-j3qTxzU?=GD$Ti@d?<{= z6o^*=6vhd{$u^>m(+F>g11>O5LNmGBZUbCud<*B?YyJ^uztIZSxz|1mxWc#xX60W0 z8sKWVD)u;y!UwOU@`!784LjD?*Qf= zXp)FloTXMiy;EABglLKI{0ImcV0laK2k5P1W8QB;fx~+qLc;025pb6GcL?Nc?-HDI zyg$I%**zAL<5{ zV_|M&Z-lXwaQh1AHN=bp^YUY0DE$Mf=9O%r)Cn%LgL;MgR-CKNOFu+m+yQgV%jjic zT#X)?>)6H8>9M3RyV#1K?M1j`DTAUZ25nLXp}oPg=<(07y%_bD#;GeVpUb-Q0GFEm zSAfO%9{Okw&{IOTk)URnTy0*rohoj{$-G`#e*snOpkm?P2za^q=`WFa7hAcO!=zN) zAQcO@A3V+G(7WVuP|eNC)HB%Rur$^90pVK+7Z{77z}!o?)c76@GH<0D{KmuN`7Gh( zVn(xhpa}O~rJY26p6!>;Bkvbzt#E$|(i_dstpJO0C1CST)#fhh{(BjJvYU6&D#Y0_ zXq5w>e@PfJ-o@17P&*oj{GZLr}|%^d-?0t733FClfU5& z2xJ>YIOq32fJ?YxaM8{mAWwmD3wZ_~hEXNP5}flR>{5l%MEy}lO^wk?coX5E@sH?M ze(amj(=6OnTAhF8h1B{B5<(%~BN(Gp)Si%y{TmJHyd7|X@hBS(lc&_EV8cDc`;9R9 zueuj-g_`TF0E^^l9Uv?Vbc4&Fk6i|vE2J;kfaD?rkz9PJQHe6li)7rpjP1Y{vjNTj zdB85?FwXh(TOKc2-$zYe$i{@5>tap*y|Z%Boqg>8S1$&KFn)%mIdUGLE%Twz;iCV=YzjEsL<`59Jow*XkWlWJ^F>y2WyLuguTwel zxQv{VH75*ahxsVZc(NorO;~o?5Br)?nfX4tTk3Fl9WcQ-o9+2zdvo4Kj~oTOcS3to zQ=#N>%$bJ(brew*o`kxLBLGfXMciBtiN5ihM@bxxgRM|K_c!pnWA2kcIQL&Rm+QP^ zF8%G?-&}ScoAOiGxxZidYuTR)R)1#Q-OAl2)Ex)kr!Lw13i^(^WcRIF^V}!dg$gd= z&i#$$^rpk2)s#yY%39X`N3K^URs0I9S^E!PuWYJNHVI|Z>B^?Avbi+r4EEo-zgPHQ zV?GXN}*iJWvbA2_ENp7qGavaRYwLlrttqqaR=~m9ES7vpSO}ayl zNw>1=uw_?onq7mIUCNAzHp68wy8TX$=@1v16$Q$cN@)>oSxZ~)qp?Gr9WZ|GFBuR+ zoJr388yR>3Z1K^(=L*Vq>=xWC$Fh=G#>-o7FH|wO~0X#O<6A z&i(Z&RwPOKUJmOWPk|Q0IVuHmofQErQy^DL z3gog=po>AyC67#j+>6*KB1WXzG+OF+t6V3vUZkVj)ZsFaZO4f4!^basvCTqEGGsRZPTJAgSi%QmV-~Af! zDp||@K(Y(ZE^s~p7BANw-2dJN{V(RdeF37|;Ja>l@2LBRdtqDNha7RkC?oy^VcaXg zw!A+RE;TNMfAao9*l#$YC+{P|6~=Sq`77aS<4x-M8{y?fgnB+ET;rQfe&Jvx=*y-e zhpaUFzCdZGtX$?hO15mrW|+6p_Yc(Na`4u?*B78N!yy*~Up?9KWhLSJ7As!I(@?$D zcMaK!9E^w^z7n=m?D!{CZuIfdY+i}uMrhmVTR@po$8D(W@qL?>atG7PeZGI9ISU-G zqH@5;l_2kQSvlmJ$I9Qy%6+~kSUE#h4*Q;FrP2|D%p<-=YO9jA9r68=ltqpMXy-{$ za20EJx_<;4OY;u0lSUU&UnD4u0!n^~-8GEqgulYx7GMqrfO8ofN6!hMXto?sVmXu& zd!NP@1N#kB3dvh^6ek(?<|QuxY08}3lsUPna`Iv(;^x3_KrN9uxjDFu^NRZqX7rzc zRyn!3X9PY}Ik`D>8mKBKH*Y4aa&mK+u*%8JTM7Z|oZQ^>Z7O9>ZpL}%sB&^M$zN5d zoZQ?}23Y0f=C%s}tDM}t=1RaSCpWL%3Rvaj=JmG$RynzO!##jiPHyh}E?||Do4bDt zI4Gv^8ulEToi0y5p#d&~9)V*eO!FiccSjT#A<#cUQK*=HqnT)_Vq%AaT?`1AZD=d5(|9?$Vw%2 zf?}m0DEDj1Pi+bzP=1M`kn6I`I112ZFaTsuZXV#`01y=m(IKA?;aq4_lNuxv6sUBAJuZ9M8E&NR&CbsdDlnKbBP`S@S-LGAB1>PHxJa z-0X*BmML>`vmJ1bD3Uq3)YwpjX=%!w+*CRF%mU99X978kIk{*392kh5Jvh&^fv_RK z5NZR1%*j0)*&CIUd)og9ml|Srf#>o#80Ii1_gu*q<}fGsbWpFAlY1_`hdP*(doH7w zRZi|%$1ax6LQd}KVk>^O7kLtpGANp2&?aRN+8g{G80Ii1_r$1o4s&u(oFgk#PVVV< zV_}jxxo3c$60(g1HN)g;&vmDQK8HEE=Xz;9b8^oPDz}Jn_$7mOG za?j`4{v77yo-fc^D<}7S?vHGfIl1Rf)#fe`J%2CbPj>SzT7@{1IXMU3dr2WKC8o^D zO_`IMDLJ|K@;RWMq;hia6?dW{b8>G=PVU{{LW3$N_x7(v=&PLEo05}z2l*UT<>cN7 zyQFe*ZWuxI)eKF=(7FPdPwh6`&hj27T-@*xWSwk_|{MG60s#1T`vAhWT_E z_b%g9V6k&D&L05mGS=f3O*;4R2N?rv5IaZlWx~JW>FX4edMuDo~diDN9&qJ(AG6eX|{CD(z;v*y)yS4goMLSjeKX4hkg|4 zI2g4x`k$2+Sl0Q|H2Ss1xm#(Sd@#hfEP2RRE>JoSe#h2zDnZ-2Q`2;vs&%;x`q%$I z5gLv&__`nu`GN*Y$H51@=&SV28I;J{f8x3_nW~<_pmDU$u5eV&2hW_lXi^n>I;WMo zsySA3xWG9Uu?10n6$KW51e>^{FuTBU=9Lt@jDA@{zs#wkj-?Xh&X{8v!%vjUfjVmm zn6vgDy1x8847_9cLQt~y@4CKxgiV~y*_5?^&-LXmrBwG_U*5#(IY*`Jf$P;AWKD+f zbh>0Z`-QM)Pv@RP8#mDc{w{;ZdbGyFaj*ngZrMDW!MT5Z*=w|YlNz$-a_N`2@{2f` z8)^j)@U~Ta52tK#147u!kG}vd%#Sl4Abt#%iTSbh#4kJT*O3u7TyCdgN`lYj7`MH*dRL(L9`m z`%mzbYY*>l3^&KnHS{3P1@3<%d^6!vH}4-^!-V~AKGbpDayQ@#;gXNST$_rp8o7Df z?TYg`t8kwnoRrV^+@}%VvKjaSHy?$$wtWt8shf|&T-SUPu;0x`VXkYR16<+eqcGR? zqc~T)`6$eF!(RX|ck@x0Yi9|hYTSGj=GuKW&Oza2_?`-)PoDU~5!^(N%%5 zXmb$)y#+DdbO+Ox6cT<_R)~QRFH^?joIrvX4sK zQv7XFo&kkDPNVz;hywOqVxjL(WTg^1L9tR06aj>!RN53mpe#X=%Sg*HW&zAG7yvH0 zS?n(1u3jOxF5S}@&VX@Aa!)60U6S0T0r0rwCCNSOF~DwKlH9W;znhmN_Z-RZ=B31a z5_?skbj~HdROu`u>{pj0cX^UJ0AQ$cBa*?|b zcs2-Cd4%)+{tZGl))b9}(Ub1cZ^E_P&jO_M?nR1J@sV&P zf#U;a>H*7_0DR%mgYDIW?X#Sf(@@MID9}-c$*#hnC^HO-Q%Aofee|b|kN$Ku`ZM(C zm(mv)$MMmhl`?E-dUopQr;H&+Fn#pre!{Snr4J}ZP>;MCcRhOJqa;Ufyn5lx^O%MI zCng{#l}lP|&pdZZM53pLnt8d(!Pso%ES+rFQa$ZS_q2E1(>~?t0`2L-biWpTg1d^- z-6j6$z(ONxaCSI8@_KNVkBnKbO2%VVeS@9-$*yo!EZQm35cuRtXxS3$`zJkv$*PV% zyvYB_EclQ^8b?~CYA~GW!=FG?_`*RX7RIL@AbqVt1E^Y*!u=iVzS_i4FI63J(=iL5RJk0 zP*w0czXhb)0~GFtu)I3;1IVnoj&E=N#`%klpKkufI-}RQuvj>81Noq9m$83W)|OYY zJP*DoF$vd~jjC5)9cNhgno&-{^EW?qsLJSlt?Jd^ZoND!35moZpnJ9$JB`~OUS}Kv z#d&J6b4l^#S=(R9%6;(itmrFQB@a^6s9txbakp+DX;c~ejs4F+?>f9R)803K2kdh+sfdLImtGM6lYU>wOV5;woC;O)FXejYkVADq09+Li%yWCi3Jhbz2BPrvl+hz3ZG9EIX zIb`%0Kd3Uk^8RbjtYht6VUV||I-Rk;4#$a)MmJ9J#wuF{Z z>lXO2)8_VmAziroQ+iH7HNLGAjl>hOXIt@b90FZoeCsB%jos_+Z{Hk=iI(QNasP5= zZjTIx`JpU--J(Sq?U9iL4iObyV}J`hG9LS6W%Pj4ia@TWxqo8|CAD?VVP6twe$La?Ca;?S1f zZ5$jKN78*OYU}Y!wTlEt;G&iQ#|Hri)6QHBux}7w9}A17)|D8ZRSgJLEmYTn3P&DZ zhQh7U7(ygUS^N|a1CLJQ0w_?2)dS&pyuBwJ4=oCzGg4h`U0tBL4LW3GG~owyErCl~ zIg|_>bhEv)GaOAQ!&T%fpLVwo^x?})b+wI+@bUJrio9qjx`>TN7jqs&;TEW9X$o}? zbkGLN0IPj8LI;3@@o9Bdc?HoO>TMr{*DVo|h_w&Kqnvy)^rU;N7`w{0jyB`dNuAaN zY+YN&ZYgJB0TF&hx;#q!!iIudq1g7zajA}wCyVR^lr$~@qwMV+Mw;dzAi65Kl zg3?&1H{8x~h$o^}I4RRqfN=V*tZi9QyD|`}ZCTmMxzN!b$27G<6K%v~&>%wC6)XpF zk=Py@z^CW1@@&BrQp=LPhS<}J1FzcRHA+Do2aEtaYWW#c-PTL9`v()!^xnRnUct|8 z!7YqjDJIvGFg{j=@rz;n)No;qQT}XOz53EX?WZjFsfeoTjSPgVdN7t%TOzTmBEBNS{_=C%Yb4%8vgckE=zO_zRHCqLk+K-DfRXw)QaUy>>KP$Skb*zjcq8D49R7dfQ$nKsQQ># z>l#eH)>b*^1FPh!i}eH%g@pp0?gnF|yBj?WHLONY+Pgy0L`>j|XYvDKQddW^Th2Z( zH8kV$(zZI()Yfdn%?(X93^esXLK&v{(Q@s$M8nFa@k(uQylDi7t*WJU?Ksn#dMNJh z!!;{{OBI&OiHi*;4Osfyu^?#^s4mo*jD34{CTo1!7!nK{8F28Z=62G3{bYl+c$@;fkfvfSxB)` zSbbY8LIeEln|5qN^V((Uwo6_WB7#e_y&T#yO|_RvdoIHLh&{8U`&6G70VzK@7mDwwC5K<34PyONob;+DmPw28g9+*vb$BMTWp+obp`k(d;pZU0U&Raq7?>f@90yM+E7V>-WEyx^)yMM*dd zyT1B&gQ>(U{K~M#JsE$Vh)#+(?cZyr>&eHS=wy04;;=ax-fMp!I9-oV=-+>);|oOd zjLGyA+TXWL=PweaGbiIOw!hn(&R=5xjx-%VP4IJKnManGj_>(ShMyty_Z(AYvhco* z@K44+Q;bZC$FEz|ejyC<$bVlhP4ZElbRu0$(---ai44v=_TTZ}WLg z+JQ*GteEIG`I?UKinlW2fjx2pU!7l*rl-=vXa0`39(V_S{cBkMp&dM0@#nyAjr8w< zB@(CY_@jRPyJU^O34jA%kkG#`*7&ain5E#v&riYs&=mM*r@;Sy3Oqk5QKUPWQWj%e=(o&ukFWUAZ<#+oI9K9R6j&gCa7q5m zpH6I?f`982_&b63PgF0y3Vfk+rg+Q0F^$TfnX=tzL5;-gpEmr9g}=K{;j1mFf2AJu zSYN-e*(Q&lOMa`8QoL>HIc_}%4O=t^1Sj+7G>P|4_~p(l#8m;-$?a7=kNsB-8eU|MKpJuwO@byRk zM6}@Vx#*wf3_HI+g&zLmZZd!JbaKN%A;)4@L6WyjjLg^{9)CltaSX()hQYpE?*-y%XQ8&|KWZ49lx=%Us@Td1ve zMPq<1$ghfb#*@+upOBGEx;=>U4!e>xX^ioL&dqz)MNJuQn4g*xJK%c(MB2gmp~|I?L( zF5Vn!u~whD{`PnrOAnQef2lv6pEPa?r(^ja8l+>?e*}<@3xzOStm$v>9LxDM`D{x0 zPXy8xp+DpQQ$hww?iHouL}h&20Jb+!CSt1W)eyWIjzvW!zPuN%tXO84S%id|EpYPnVt8osI%Y-k4i#htJrlAwBExVBUx7(^v5 z9Q;TjaN&+*59Hbh@l-@t`v$us8gB3Ch=n)nntTXj3BhO9CGq*AZb@u; zz2CIQYOpE8VHs6%C1m-HDs8{smwG|I=z;eQWh;39&MGyZF0Tfj-@MXwy?<3er{d7} z*O~S!s>=K6Q!TIexoR@xb^Dq9-vwF9udo#A{jjJdufOv}dHO6<{#M}V6RW%SzS+yU zK;pm-Pujt@QjZ~2QswRaHM}Xw<8X$<3ltjn*y^|gMXJ2shda!mz@hC`wTbmFf{-e& z^Mxap{Eb$r<#oHdeouzH-q)+gYnePOH>e8Enf<>XIJU3HPv=j~mV9|e|1wQfBzf=A-$TD`dyx#BB|Bu;m%l|sQb^AIF4rH{i z_eD=wTa20?Z1T``UH%E!RQv7yQ@`RLQH6cha=JVLN~*lxZy50_5pAbdpyhP^V*teI z{_8yJgkN#!byC%Yu+X|Hvd}o&ueLD?(DHiy)@1VX&?Ub~qG3f*=QGMxxi1w7IFonw z6!PD(s-(O|oC~>p3Aa2c=Fqyndr;vB9RPD~t3$JBHrhKg>pXtAujY{DA z);eg3+qP;wg&^2trq O-`5TTj&1*k{{L^4WcJJe literal 0 HcmV?d00001 diff --git a/lab2_pruebas/store_service_server.c b/lab2_pruebas/store_service_server.c new file mode 100644 index 0000000..5cd88de --- /dev/null +++ b/lab2_pruebas/store_service_server.c @@ -0,0 +1,161 @@ + +#include "rpc_store_service/store_service.h" + +/* Define the structure of the message list */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +struct user{ + char name[MAX_SIZE]; + unsigned long num_msgs; + struct user *next; + struct msg *sent_msgs_head; +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* Initialize the lists to NULL */ + usr_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + if(strcmp(temp->name, sender) == 0){ //User found in the list + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + temp->next = NULL; + temp->sent_msgs_head = NULL; + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + /* Initialize the strings of */ + result->msg = calloc(MAX_SIZE, sizeof(char)); + result->md5 = calloc(MAX_MD5, sizeof(char)); + + struct user *temp = usr_head; + struct msg *msg_temp; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + if(msg_temp->id == msg_id){ //Message ID found + strncpy(result->msg, msg_temp->body, strlen(msg_temp->body)+1); + strncpy(result->md5, msg_temp->md5, strlen(msg_temp->md5)+1); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + return retval; + } + temp = temp->next; + } + /* User was not found, thus message does not exist */ + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + + return 0; +} diff --git a/lab2_pruebas/store_service_server.o b/lab2_pruebas/store_service_server.o new file mode 100644 index 0000000000000000000000000000000000000000..9fdcf453a5c9cc2f49fd8f6e72f9daa59d397913 GIT binary patch literal 15760 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 AcK`qY literal 0 HcmV?d00001 diff --git a/ssdd_p1_100291121_100292107.zip b/ssdd_p1_100291121_100292107.zip new file mode 100644 index 0000000000000000000000000000000000000000..396ca084761a28db68ae7cda4b83fbc3cc66ce60 GIT binary patch literal 690690 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

iS3x0#j=F`lJ$d$%P7H3!Hys34u8Vf!?z9 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 z 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νq4X3~Szz4VkP`Q}r2zYTh`; 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%0Aaz@a{(rol>_3Y*B=IrO};H;rJY18r;TLtz~ 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

S)w+p`560s8+I~iBbo4gezTR zwzC{{L#=2=Hala}_-S{9rf6?reN(1JKE>pZJdH}St_p;$ouc_IyOCmK4!o^fLKVfa z3c(3O2``Kza}*b6aQKEC^UH>W+yD!wX2F|<$A{Y zhe}1HQ-ZzUwZk>W*_F=zZ`#Kwma#Xd{#ms1ZiI8MO6fv_?L>0e7~5oWhuQ>|;^pvQ zGSiAw>GVw~7OInWVJ}?Ev!&68C~pq&tRrTcH;|*VDZJ7)z}vm3?T_e9Y1Aexy0()l z(}@<=MYdD&>Byl;?^Mpm{69;dX_-{3L}t{@c;;2gvt-I0CUcm}t^H&UViRA=vw{hq zsGPuw_Shxz45#G@`BQ7|0+SdnZnTEM!rf)*oJ2=>?x3SlIR)vwqxOa;(a;98OjL7Y za$|HOaZ8;FIWHUiYl4PaIWrseXz|vI^@h)NI6POmc8NIKlJ>y}v<@TJVU@`i*4EoX zH_+w}Ip^v`@oHozxG^*&Xzq@N%XJ(hMREjfoUGV|+?(n+Su(fb2Tp3^qj1&{H%`?C z#bLP7%N)@LC8IA%ZwfXHW>P7_Pef?WjfQWHIg`l(4K}6OI88?U2AeX5RZ6j^p$XUQ z^@eom+1tSb(5m0Dxs15yXw*UHzB50^l(v;Dgq)k2SN#x6|Lhd%fA@0ID_idB%f^4( zX_1z4`sM-7#F}eL=EcmJUwCfq*)$E$%!$8B8#a$m6ZA5V(tY%jUT&(Aec9iY#rkQ_ ztjFwb@7s@@y}w9#RQi=V+=(X=zNJ3IA3YOuz_>oji}YODM>e$e=xd-P5d|Xt@>kbvZ*@NMO`m*~28gjYpm$GuBD%H~bx?TBdYr`bDj+`aF(7A^EveVaPu z=r_T;=lsHNN0->EYtQWt!FT(veGk=l$KUNwROjk<_=labUx`*%$G$|<@=)x`?8?kB z$+gY34Z|j;;TDly8&xf|eZ*_pO9rMTw>1~7O>0hbF2Zot%DSa}#%sq*H(A48%RaJB ztFPIQQmUq{`sUE>ihWhiG0e69lmAezYQqZ6U6XcotZnGHM~W zoSbUZy%A1Fn$34=U7nyet$(R>4S9~})SDZI4G9p(qmwcFHj%Ut?apQ?sJ|+FI z;$bJe6|$FVgWz&l zZGpfo>gTYYgG?@b=`h;~O^s%x>_3w^r|?bon^+cL%%Hi3N%{I7&!{^U3 zXzuX-trX(!_zo0!4`kXa;5(rKtOKqyLSdb$52_QSg9b#Yc6;EnIdhsfofoL3{++~G zDJ?C>)-9_e%H~scZgkfw57kSJspbtWY(ioDp}zRxdd%)`srMmt(3)UR&=fwZzsE?%%%SRONM*E4%*~QKCXhI&SXh(VX`a0?Qaq@}msEH`fi|@}`8Y%|=TTQ7(iTz$5QbjD1J9IqfCqwTC=f~Xh20FCp>QJXMc2-xY z_tJTYx})m1WQ||gowHkTH{}zrvWMc1gh^DNQAs77ltl?kwCPZ39O%Sm%95aux{MHO zZX>CQ|4d;P(P+$B%jsMzqVEJJ5|0p*ld@#)iSt3HapJj#u#9w5z;WUv`{4a~!ZB7q zx-0dtmUKH_Ijt#!kCT7%PdV1x$xSqGW&_zb)xlBDbe8E;CqtM}vMXcI_B2tHobdSf zyf|4pg;PuDBNd_XSMPIsZZE$?r%-P8zx|5=XIr-5b4NyBLaJ1PGWw0o9yhX5@4L>Z zgx0LT>9Nb~=D4L06*HeXbmdyX&CSiw?e6;U z{`@*{BiN9WOo<-idGH2Bs=*z4WZmpKWCerx7Kw=KS^DV`9ZFp)S4_x-<)c9;Ds`yr z`IGb@#zvZAVIuE4{y0eaY~A?MY*rn&D*{Hx=l*}tmj zM=NSmaz;I@^5oLTHASnAtpc4zn|gJ!*>Y2wXjAhNqZBWq_`ePYZhoWe2L4SA;w6eEK~5JZN6Rtyp)mU_d?00)Bi?*jJg3 z3zm{m8{tw~YnGMyB=Lhm8-Fs{G5AcGP74PYBL{$u#v`{m+4^2#(oqT}b0cz}P_t;i zH91NrJko-&$wJHl+p4&GKI3q1ZLjzF39mOSBU`xueLy4&xCN2!R zR>0&+bd5ZVD7Y|c$Q**3gXIv{aM!V~X3;J}7G{C{c8g}>v0zrfEek@U4$vpqKvCdU zp;(-ltiaO1(nV~>9`Y1gR_u8jY#3WFAj&@vFyM;(cwflW~g zqjgOriz6q6X}Z}I#5POEj|CV*>CMn9!l%P&4AK196l69>$9Ds8IT7kNM8%Y>Ss9__ zq2}ed8i^Yh{0SG&`}*k?*_H4r%+cr!xluMSHV*BjI_l|h$Y`0zQP@sN13kpmh$8`mHf-x&?CeiiFpS;Ke-`S z))p6B`PY9Ois{z{@HI{La${@1R&Te4Tnz~EZ%Tb#adqENchtkE2SVy%n^SOgE$rV` z8B7X_dZnt1x}j0(Z|)Xfg2yLkCQtf|($sRBGu+34I&Yt5Db5x#sc~6HYbGMb4Xf zXL8ZF(5+77FC><5xGdvR>0H=Gt{0eCz2jYyFY}X$X9ngCxwSjz8&H}o=dd@ixeVMB z>6X)t*kXPZge}tEnq3MyQJxle>6`gfu6PM_%eh9n!6lk_nkTztJLmtaO1yzr{g?Yv zn@ZPAGt%vHgQ|s~b*xLFOTqmgTEWdkfm5`dc5B-JrTlIsGCnZ!XzGVrd?0iq|s@>F~T(Q z3U18|Oo_g|JS*8mr7YXA|L7){Ig)#t3_WXmCiHR*Is1H_K*v#*lVqmc1)bXJyhvm3 zKEQXA{Yd$W|A_xE{W1*;_uO`0=2ATIh7b4pEORdd@%oZ?Dt}>NzkSSqNtrUcmu-aC ziS&S9#_}m~#-C)A%U8@PXt}=l0biOvmRh0dc=0_$X*M!}X7_;K7Atv{mu0ldxLExH z--=c8Brm~OmB1qX!(GjF@f|~HmT&_<{c7J-S@N`2lCCP7DcRe!YGd8nm-UzRD~mp1I_g_7(n@{T2QdZV&k%iJX_#j(5-OUGAOkpQZoP z;HUTI7VE-iNNHMEIP>N=zDtQ~?;6Eaz_2)OT?Qf)NkD{U5MX^U#K9j$#Mtvo84}RqlfL| zO_jxnWzT7kYL80?_7}+2Yr-$$u-B?jDzW8Nt2V)_?$m*Xbau|u97g)n=5Z(~FKsG~ zlz+@6KIW>QTxYbqG(K;K#P_wujo-14x4&18 zN8qajdpP*j;LD70p?3t2s@HPQ%wL!1x#CIlSG7Xuugzd|CDMm*QC<(vA9SXV`k(&m z^J5QtBK9TiOKkDn!tt2bR8LY5>MrK)#_q?l`BJWRMB8N7c2}fBP8*nCk$Y6zZdWkh z25aJ;GYHX7I>*-y+|n@O9y9!oo1$ zDqb0rE#qr%5xUQWo6Z2;In>Bf>u>9Kn3g0Dsqkh(NqjQ>#P4n$Kaodg74VH7-1qmX zZ2d`jBL0@4w+mc8bKOJb7rKl8Oor|JoV#`4&|ka9T>E7e&M9V9?+T!U?5cc4rjhKC zyryXtH157VoYj-5+AMB@E6z6OC4^@qS7`C|6~!CO3k(_i6!Vs{hyj>#RdX&qxya>` z_lO4>qRgYz)6DBsQbBcMdBj0M0@ZWHXFEZxtpt$9kiAuxV)wxz$e&q z*;txlXV1`{uxEGA?1F5|`kD?thR+(4@C)kABXghUF>mcueZ07xwVS$e4%_KC#&J&S zitAX}i94q15IhyU+`3IOe8Dt=D^cvXR#2}NBwHn5UnPKFC7@p=z_wOETP46>%?DV` zCs@r#Sk1rH2p-f3F4PG2GJu^N#Y&E1rGU3q82H<4Y5KWA{jNUJuw^c?AkwLPNNSMI zh+6ihyZ;CMp%(S`@kP@NS!*;X7I?O#^Ub1|oo9(|-;O2G8_?1Tz1arqx5*Y;_Uz0V zy_>YxBHKU_&4uUhO?=5UV*eQGgCC}j-oR5cKzdL2j?nkFgE4tGeL~H9)6*| zD6>c{`iM(SH$*{-Gj-5%W9h7HKT*K&tukRe{X!i>6FXIr@NHS(;+6fkD_I85;jWG; zy?872jUIMjKJ@&CtlRNDy`ph=_MHav-UCzHbO=1i^Ako=amKJYR;&H4dlr$Koi;mX z%}agMstbCoE6coTg1ifsI9pRdyH6h44C$d~fxnx=5PBu|=rw-TG5y`D@T11V=$GQg zo{N9fN5+(t7tg-?&nKW0>@k7njJ!wk7sN_MV7-5?Ryl?v2ONtVy57~fy96i0r#x2h+kOz8u2pUQ7gO@C&Nkt&IW{}_|xqLNqYpibs~X~g>DLga+6;_c2VD%a{$Rs+q4GlA5Yj;YTk`YPl5-u586AjgeSccpCoU} z>|AHDZjuJrE^fBf|Oq{*yZ0o-Z7gZ zSCv1>FC)Kg?afI8)oVqcSf2uv7w#|FSk?Xp&+m(kAD=S+_*~Kz?YlNHI3eb!JT5lq z13cuH<@D#-gP%}Wvzzee<(Hd(^-tmI=ho#;c^!Iel z?&Oh(e|%n@Tvp)jM}T=CTkswj(JJM4vOTNw3yL-ZU z{oDCn@S5YT7@G6tPZea}sJ#1?^LvJ54}jt6{>SCQ_bZ?+ppxG3k?d1&nge#F^)qLP zEyWzitRikq8Q0J^PL5ORRt(8^TI6SwNX&z?&Lt5#f1AHj=|oN0Z*1NVnMp6$oy4gI)5>_biYtvxmPQl!|v<%APP|!rpitzUa1g z`^zwA^EB(W(ILg6{+ugH%072TtP$LMQ~448e+6KYt#-Fdl;x}9YS1*zC+82ysfFL~ z;XA0~#VBdIR|fZf(THPx8>F?vI(LIr3Uf`mKdm^e(7vHS zb|T70*-+W~8`3h!+DRze2kx_NzLT$yS6zP}|GhMI z`MEF7xv%Imo~!Mz&ba||g8x=qadtz6j30vZ>5y=8%$Cxk20J1s*IioT<_=H_bVUH6R}K``^s7u!XY7DJA~NQxM8_e=jJBQqiSxA) z8P25rAN*%U<8wUh&?C*`bgF#5%uAusC_t;hl9GesEB&K z3D0ucY3-T&wRA`D1?6}&+z>B5_8>pmoItG{g=Q=EPL9G49U%|I z%sA9cdC+WlPkG|*via|T!w?-KvpJW6m4-klZ_RBHF zV!R>#fuHhpvBMC@q-#)nZ9?`Tz6rf{&S88Aj=BMTZsafmcsNyJQg1-Y!- zhCN^&2i-1%zW_L!n8E;O0bU&88oTlqych^3ib*mIR*J5ITm`9c0lws>^HvPNdh+WgA=$!+Gg~Cx*(2Zo(lBUcpz`VKw={6 zM3JT&Q6A>-GOQUN(rrf}UK`RXp^SL`!fBC!dbo)|_zA$4#LfBa9l}^Ab-;D_{Xkc- zQNQbJG7@%5lql($usy5!8rqS$-?l(fBc}Pq9K^G&=Lc8{!3t@^UtY}2l{Z2Ty z&vWJ>qZ046DbCjl&h0Pf%>%03o7O8c~)BrA>-s)fwSgc0zPO!!iX4A5(! zPR#9vP{~ye1*#_foB^uYp*0SJUxUt^Yz!5d`tjV2&*1RmHA=KV*=n6o=( zhY-7D(~L{2qGvNG0+Y{ z-7dEfd;p^g8q5&$hN1wuoX3U+sGKES z3yOarY9fL^$j^v=IBG*7H2_Rsh{7JQgY3i>Vf#+YWhBW+jV?GmI{;qjo7~IT%lP-T zj8?LO$qFIFwt;NW1e@sRPk^ybVC8K9x1sSOg7N4N1ds^xXYkV>0#U&8ps_*zQKLq+ zgCGM?Aa#WAXgw(*ugM*H_{Em+^V$+{A!8Ogf*`DjE<#G8nGubwIL{3npy{}QJ;Eq1 zUs!Nvn)#?!jX;Ie-}%Ja@3CHDd2IWqYy=YG*|p_)Xd;p#^C&$l!48Q3F_;fgSmf1l z4*wg69QMWml^=~u?gwNXj;_3pqD-sA?|7gI5eoAlBd{qBK*}{hzv<&f^#Zs zs9v})>G2N^P@c+V6o>J|6Q#i@f`l=Ce1P9O8{Xjov0WjXKNjv6bAVsQO3$1mQ0iMZ zamVksh-qeGhmH>Iwb-u~I~2x{KU&ag6l1tihzL-gK*5l7B@*$7`D}^4(xnJe-9U%m zJc>Nnb0psqNj-r=Wsu4o3-u@%zFNhN{Z3YJ;2`ih+yRSz6gGlJ1&!RluRh#?KNExu zjPiOJv~{3Y5iyGh=seL3Q858garfEa{vS#!L@RQ|VBe;0(9pMP_QkGYLL!{m6ayq7 zT_#&;sO7wi1=gjOb$=0D>DLpYbnQ>wbTsr)zzvQ{VogslvMgSbF`raO7N|Jbhqxr2 zyB=Z3;D+3uihF2ABv`AAvS?Uog=Er@Njf#s*G**hPZ1mV*QYT|_p=Y=(F6w(@LVvk ziyIJd+*pg1WiC=w1?K_l0rpkNd+NDDR-3QKWeOwOZ#(H{tbV@iPjDBSKAS&>K7YhX zX5ZE;+n(K>NTpg7=&NCxz*ntmUD|Hr;mYjVUJ@M&KKfRG&H2 z>ov5w`(0xnh2qV)@2Wff*-=SZCH?*9-TWHKwq*FPK0yURzNJT<@P7^?4+RdDx&in_pHL+CfR^*CNwwux&z6-Afj#N z7YUtzB+-y$kmDA9x2{ZaCitu$tsmMoN~%q2wD6}um}m($jMmeQ4yFf@Doq4jyh{4A zGwf6`H7b#ENx zZF168x9i2@YMUjOTimCj-qh_F`&(+|r*;e~_I`IQrWVX5NN3`r}R9>ugL8cM}8wd}OQa&2oYrTw$txXQ}X^fRuC7ADB%NTZlt?9x$NJNf$f zG4xA2>b?z`w3VVhhZl3d;a0!QL(3xV02zTx*nn>jAEdm?T?OT z*hTMXGe{tN(l_*Z(aRsBt#825$W3LdybjT$kOcMQ(+-FH{u_UFuCky?M_P(C_1|bv z76EZUGPnx@4)X1}_)VNDybwfG9C+q9FJZuyL2f5?rG=G&_n>se@>=fSKl+>X{iPOH zRzT6(`5QhAI7~%Y2?d4?rq_DHF~ynPzC~_LI>GGH_F6lI!A&~$9&_3w^$s*mEx!ni z)Pc8oFxDAY5E_!ef}SI{Q@Rz=IxB>O-M|$mF9RM)Hb>gMM)Cg|z13Jy#XNiE)mPs( zywcL&P&JjJ`gI~=VZJXIRCYeAT&`7zI<0&>sd%l*=Fmq<>9ZXl?;muRsTqy+ll6&L z<|au=dhf{M8u1$7oW8h@j0S?vUYP{o`yd4*ch=i2BGE?mm!v$=rtBZ3kigVM<&NSf zx$XZ1k40z3@41&5{dS6qlol)zxn|OmIXmzRzR3{X4RJoySz*qDTidsn*6y12C1lr6 zI(}bTNCu2ZHsYDTFZcMyiHJrV@PFc&v&V&wMm*#pL7MMViB21QC03yC7lwk9o;CF< zJ%*w2lurb3=Ny_ER^>ZO!EqIH4A|lHewjKF?H%j+ySkj%kKrcPFj3WT8Z}G$Vu4m& z!FM+36p^+eZ7rOycF?SR=(|JmXA=)ZET9*@oj1+pZtkCMIC+&rvOy}(}k=cqJgr!Tp#UbZ=;-_1Q;HXAcC&Zh;U{4ufRm@?$LYq@V?7MO&*ou@&;4dFG zDYD$>vRKWw1d~$8Vb>eOlKmB&v*{nR<9#5-K;ZLdS|`p~j-=ZR4KkGGcUzn*5!(_f84ECgaAvyFWvrsO6XRz^im;LRTW8FP1}P(tN5)S&Z@aN^HXy5 zez2wM1Pgjhd9wtsJE`8Do5k$o8+n(XD8~3|Wa^|a zLz)X5{9mwMfpV(Km<3Dny43=MtF9{o8B0q>1ntckaccL^A92IafZR9u^&gX;NhP1( z^Cm@`dh*!Z(ra;7O~63edvZpJ56jO(v$Y!4loZYC%fne*8YqRu?p|d()xfCRn#s~v zrnemQ;@n!}Y6-W)v+Y-FV9mWHLB)x$zi)GW@kENo3C~(@1AL{gSgHOh%^=l1P*)|! z84fh~(6>21WYgWipv{Z4c3HFPC{GGB{C?$#4H!4y%*3RvcY9q0J^8m=%=`zo(Ui35 z7IKn)U#Tw2wXV4fyT$b+ZB(twNo3i!l6saKYg~j`ZK+?kT|5eD_tJ;9Cb5|c#?pRs z6XWlKg6e4o(ZUXI1i1&UM;**I%F|b;@Qe1;B)~vvGRTe8oU}g;Jn4NoPu(FJEnDIj zv!4wxlB9uIp%Vl0&qYl*f1EvA^}FZ8@Qy37W#K{NXxNQlj(y@Ze}}4@v~g^GMjVLK z#8H3XuWKC(1C|eoGAgUZX6B_-rq^$0FBTvc)g_je7gZ(~;3m~B7T+(`W^ZS2CYKhA zzAXMtpJXiU;Ex_>{2ikl^u@VE9yIp`p6vMV*u;ZQnRU+b3v;sFGsT9j zefSM$aalYTkmNeorOO<=MSHD;G3&2mo6)J*nb-*%{ta)jK-cb zFU##|UQWfQ*O`!I{Rn-G_tj@DeM9O!^_3?MQHoYsUp6j&IUUu3e5le8u$Bx;cCR?cYIO{p~Mk}k-T*mlcG-4M)#u2XJe$q;l zaqevvJZqil_vWs6ZvuiZ zlU;PB)yea(G^f<1pEA4=8T%xgEdv}t!Am0IdiWrbLNoem*EHOWU|PO|`C zq6rXIC6a3fH{rp8bt^}yiX6iQBtqMTt_yr>v4=Dk=4@IJ`vjlqy(aQrB3O!22$NRa zD?BAH!nVH1vBlRzOZMA_INS+(aA(OHo#1b0_BULu`cxKWn}olUo))#OpW`$_Z`trTAnUn8i#FKd5&u3g#vQGsL{#{~9 zcWl+if|H|t0oO6~xiz~fyHC1e9X0cP%{zVt6F=Rx`N> zzMS~0?>G)Jm%0Cti1;vIHuwr|+EaCJ<4)es1j}d0H+Almu(p2eP2VKhIQJo1UoWEBgOV~RiZS~N@_wuvvPjs3! zek@$pt-c=i0y09?=CyLKx6T5VFO-A{qLvkUW*8MJmThf%jG4;4DpD-9H5I&h*=xSc z;_rc3*S_RbohH5ZJ+?DxagSM=WXX&4UJ;p{rwQl6sR~E;)!0um%FgVv`oRx5Pf*03wP5+mIl^o25^4G7W!t|X1SK{I6hz?H|T0K zjH@|`;|NQS%BmuRHb1?3=Rq8XF3*A4=RNMv@1)-g4JW|tZW2mPaOv5>#J4|`L@LDM zi1dfNA;kM2tUs#OPtkWfAZlp1r`X7+nC)UL5%?h)KR1DX7Sd(X5l1!-e;tBZZ1l*d zVbMbPj9|y!c8>dINO5qN_dsWicXT)gRmq1v(Y^kO<;3kXI!B_)H@pSl5_o5vW9)n0 zcyliYYj+&;QB{9=Rnwxm8AbP@);T>!JR^H{3mwnPb(MSMJu%Cg#BA4JN=)sg8C*5q zL!SB)?O`n&s|w3bW%ZS}cyuwEN@=)0HWb=+@ z*bxxt5$i4wdVGG-Qyw0yXI2T;E``^YXPc|!8F)U9~qMAn;uLNnKcfe5vfE$gQ_t;+^|^FFs9nUSi@U2&zvNAtETokH#w`nql&qtAkna6aJ!UamzbI--B%;psRUfHWQ<8& zDc5JBK{#t~NWEQ}#PlxlHO)rSkORfF{v@sGu@1erd=6(~?MMKrpaax&-;&z%&r( z>dhRIulQQ6(mEz02FdOw3fY_bM$8d`W0K}1+k2(f)D5x6-cHtT_f54qK5v6Ka%31= zn;tW8I&Svxor3Sz+n#+&uO~Dot0WB-Hma?pXIOTNrrs-c;xqWGuFjX8uBv<;7zfTq zG3xa4i?+7r-1daqXuD?%M$p(%QdZv2p>6ap83%f{=WNycy;_9dCSIFkQ%Jhj$9?1y z7ra{-@qGqY=Zas)O@N7ur#(BVP#?r}8}UGM}_R-)1V;IM{cy?q3(LIHvLynsE)Vuhi-}MR)49JT}e__Ai?Y zgdYUv#&mlA{`#~T4T;R|cji(dd+9im{Jryv-tvgS`2dT^8~WZN1&k2T01@yNr@Ma} zVNHF1hqk$LwL>9iRU~6|^au|I_j$A?Sn!{TGVm0gt^e@8)voKXKEj<}TOP+gqZ8q> z&d2mMlOL7j+`dnYS<0z9bC09XdThpaC*}5d78#9nHM%t=!oEUR99NXhwqSLLkT{!m zJyTyu&h$OTzc_Wu*;|vXBH3v*TZoH8^m+7oy%v=ldT47|!@d-F8~jCtaf_=?TRx7^EO z&28(!qW*Ml+co|O83CEVYdB0i8bzW^qb9ss4xKcVAV_8kv z(M+ek6m;VqJ|=5ganWL+BssSK04J89r(vN??M$3qoJvwWCaVw%)~^%K=8js zZ2~4H27>?p2NN^X|K_ZmO#eSGhX0fPzYjK6MgmrLW&(Bw*8dB$u>F@Zv;MzYF|z#M zC1%e5zjI(^{vR1EY@Gj%#r_{+{68~dCt&_R{h1j!2sk+ZlfuA4!1{mM{Z9`@0v1+I z0%kVW|GA?}@c(3h`Tu5shlgIw(#FNqiC)ac(8W~5)Y#s{lwQWv&fLX)4wP0dch4`_ub->)W2--0L~p^}g*m%l$9eg8={qP!pkf{&&_o>+x%_BHUli0BnL| z4;9+QMzw?unClE^k!uSzW3`>u_i7h#`m#@Wc?718L%IUn9`x?w0 z*m>=lk6VE0+$BuSESC-V4hmmiYc#tpV0ng2p8}v@zhB<-qyAdcaZ=~50_Z^uAmjE| z3S0Z}vNH!PY&lnCe0`u#?5z*XQ4S{Y_mkqAwT6+q$kA}Cd41REWFWk^?XTMfzK@c?-&lD! z8Cd6DJOl1wz#q`zI&=AgJ!%)mt=O9;@x^)tw#uVQodKs1>zv3Hc&_#No8*pjok+8~ z(hE2D&#xq&%g@c~JEPw?yI1iou^VNJDj-Z`$iH#(U>RVs z8_VjP&_XulqAFi36}09$3PK-ki~JKWQ0=s9Ua$`qulV8bCh5H|oox2aU)xB0bhd&2 zA4F9EUIa+q2Lj>+yKx5+(eoOTX=3`Gpa|6b%rDfzngz7JRI4ux(KKav?QV1Ngx&O%J|WJeN=G-aNyfYDf#jTKLWD(0IuvqjLd-@q<(= zBo;#{m2sCLBy~Sk!;UfftxkF$v?1vr+<##FuR*@m*sY%}Bou-gArsM!fJSQ7*R1*} z?(!>6;&16VM@sqPPIj7KIK84D<2McguWTnP{K@j^KlabPNB6E6*yU@D?LhwgTdI{U z|F3zLE~;co{eOcC{*?3My5#BpcpO_W%SUk8y!RiZ4_~FnHM!|C2ia$na`yB{dCU9G zbpzg}z>RSmqgo?2#H#4bisg>2^^^4- zea^gOU1@(&`^n*w)S~D2CusFp7zE{gDoVJmo!w~KG;3|0wt!>*SNa6|;@YxgRar$v zJvkLrLOK#yDAZR+z)!z+HF40mQ(HX^Q%1}?W7niLO;#jWw`8?URU$-}B&G4Mv|oM$ z)Z4h&GBkd5ow~e(q0Alfa%y%K4#L2toimskBOHxP8xkoGppMlg`d5 zqu=BCuCw9ECag-*fcJfD<~j<}GY65qjQ<3qF3t#_u!r%`jT>Y$*uO?2)SvlFhf#1Z z)}@VD&=NJDS7`ry-M%UwLiLv7a5g+XgG#I@4e3!apureD!V{CVn!ixa8V1^c59o3a z%7AcYRxJ>qMJN{@bir8e7z{9wsgGKLEU!f=j#nW$W;JcB~GOxbc7)UwkRf$ggR58z48IR zwZy;1Ltk;1hLUyixJO35&_qB>VX(0PN0wOENZGbGPYEHygwJrD<4$3sB4~3fEazCG zOqN?w>Cj1{c_MMJaL-801zsHttCU#8-rHk1L5O*>K?CF#^%rVMT;ZrKp6BB!Lg6$TbbDWOQ(Sb#tWGI*mkz-o9VTuXlK> z(3kMr?Og4A>&n;ZDyG%$popHL_!(wPP;2+SfR2@4BNYWbotbJOknyn=Kl3p?XX2S) z9i`B~hr^6R9(1=?ZqSx|i;f=c5#j6T!WYOy#v`B~6S)rW6v<_Z`(4A}E)muN#E-rQ z7KzC=40$fZtUU)7%Q+hEHdNz0-Xx;g*69w(o*+%~cYLv~V^BY~ISHlp!r46n>|&R@ z4cxl}KH6U#8I8tS2mRc!A+ejMPPVv^)EF`ayS2k$rDN)NS!7#LI`W&igG>>Ki5 zv5)m2(1WwF5{1`6q_N8K#L?uB8x8$Ba*9dZ>&Q7=r7N^7Z&Ju z@pEYe>%0SH2Ug*Pp}I?}lT?&Yi93lWG-yqzkgdg8Gp>N4|$(B;Y9*|MHJV`0D)A&Qh-E6*)9RNNpbv2K#RV`jdud*7THoQ zfiU$WPKjXoh!PX@TjUZ{D!*V++yIG1zlfwLn&gY1ig4htU<|Z}*Fna`v5ieS31&SA zu+Z4yg9EpTX zb}HnpBR)1dADk;PcZF7*3kq>=fZAIQUE@L4nkATzKEWK4^W!T5XH*LFa8mQ5D9AU9 zkkt$Yb(}BZ)Q>h}gzp4pQ0B+7$|pBXgvmZOTaNIOAV@p~37iIfRDf117Vm}3L#oH5 zK)_{lEH!c@a*3Fn%X?fPun|s-LJ3E6Xs{5HXkwMzoi|kZtA}ot75dv@5nY}3O^FLR z36OhP?JfXPLaYfHfm^&t0V;~fS!H6Rry2tDAdeP97J@GAoe1k-(~~b0(T%K$c8IkkhB%;9S=e4lxWzJ|IqweFeLe`P8eDxBqZWJ^h9INcds7jm|7Iu;;?JjXHU5n|D zR9I!nxk=T2FC)k*)l=j9RT*s>8W$8b`Q1AxH{*g^!lZ<0PGu}@T3r#%n8H}h)Tttt zG)bY1DN02wZ(3XtO_E~x!9KDrPQ*uk$RGahir7bX$V}v?I!qt&4vLtE@&Jj*Pkv}F z`rRBJ7xg|y#7A~GCgLM93?J^%7ycIEp)u?&>eCbM9_1l1+$G|Z6JCeO=7C(@3602o4!pwb?X)0go%V_7xxaX5!)+cSE(?j^e^@Bi;ZR-LfZ3AQk$3Q@OV z^0M7%CD!!7a+Ku_4P=A4)%@JwKlstsBfODU z?j-lp*JtL48{gc%E9dp0O*sl)i5)-R7X$eIvkeDxCDPCPkNGFMO24RzOyn<`M!w~@ zH}Gb~J;p)vwax>&vX4pVLrbh&8-9WBrvR+?^F%mV$^k+ch*?*7f&wzLDK3#L&*qWx zKs#)p4c?G`@ZPTCZWA}ze#J0go_XKEQ!}5IH&PP3orww8gV!cQbqQT1(y5tfpvH&$@zj_0kHpWl^gX z&1x%HH`%}@xV1LkpzxlPodm?!Rvc5kOySZR8RdpIff(iGghC1Q6O0F~3*;4y2eRva zkhPE8DOrkmrE8%|0R_Ugr>hU;<%1~%19HgCOe9n(v4fI0642Q)Y=2*|m($#CI^v!}trJP8gr<1q$Ec;3Z-+h-_eQnf#b=VJeiIv6$`$ zFHB3`DM;6%|3i;v4iPlN!`nQ3n`JWuV;33chPOwE3w7lZ%bYMs762!j-- z5HgAA@)B}JuAr$<^rV0T(K-WJ+bc*~fUF>Ql9#b;FU`QC~&6O0ysB>VXQxsic%(jE7Nbj4D{_xeUd9a8o< z@Gv*>$An}j?6b_yx+a!)%uX;ZjQ;UR8V@85rA@He1AZnrd57%``q+`*hp?{*D)XBil5p3I#mp+;T5eM2q!Z-B8* z{0e_;m}0E={Re4?`0ymDMz3BmB*M@F;BBxggY%=o;+UYEeg8`b+S&LSqzV)ldOrE2<|gyN+30ga7NhkisK%HPYn zW-F@hM|m~uI1^v&xtApRaUgzV0nFt`v`&DJ|G&!S`8p~Zm5+=_fecA&_~gL8{CX6i zKE9W$GEoswIV{_iKmh^&M4zC*q!CgTPfcE3&AH?>&kh?}+M`Kos-TjL=86eVlH*qN(&**bUBvtmjw>o+#Gw>558&KAG4H6rF+5nms@$!A|3(VwoB zOG=74S!j@|j#fEmIm=Vm3{lL1Qy+U@UFU+WysWe2+RnG#_p9q0d|J~#r`s+L@_*lp zIliFokjz66B9v7rgR_T8e>EVzg5*VAcvWs0%n_Jgt8QN4w(o zJp6|bn#D*_bJBb5W}}6rpQrB|@6HXbOYgD?r}NDlQEmU6wTx`P&hy^I*+=a(ui+_e zKVV0u3jy-dN?|Ho@ZMH*`*g3WI*b;!dx0c*&c4ye>K!eo8vnuYK&2I+%BH~xkbN^0 zC_l*3>ese3@Bdnsd0UDN%*&O9B;f4lR13zTg5|_6GI2Fw#_a=}AowPJuEp~e1Zc@dAN&m(-Y_ictcKvq)e+ixmz`<_l7t zG&-L@G8xO&FHg$#4e+hIuC3X1G`I?uc-~ctr}E(cU9|?QoH7IN#j6bK>w1fRmpv#y zv>n!^&_s;-XWI3pKy^PbvHti`f84^@$}2^+o`ndlCpPo6HN{i%>>uaE4jGacO&Ku3 zoqOc`I%tsZq-J4{uiHsd9Zi#7M`5UKmNB&_(BS(4us=DZ(76oVySuyx%ytlOOhfE4vkR9!qtVqO65j&*X# zO9zyDU)L&f$fgkzq`hXd)>O+@#Qo z%A1jF)pYYT5YlRG8pWSTaiU{PMh|Z^Xuocj(%RhMN62g;#kf$?Zt!7AIkT{b)^+m! zN_|f+hUs_RswW=4U+MCOY9IQ4OaMPL(9`SR<*@FUu7(J4*$cb+$eT%1ugK2$hcNlu z!+ngR*hcg!HJ8*DM1%UW$~IVO>y3W=VZ4!Ke(N-S6W6Y0*(HW1O82$5^X=8bgsNC_vZ{)# zhI;soD6CSw%PFlkLV?#Yv~l2=dLmR$H#3-;4h$VIi50vueN=XLe-9n-hoZE@|W5Zxo!44Q0DS>GV*=WxruwXbg@;Uz7M#muHypnbbS2Dq!QM+o# zqN3v5W=0YBbmqJ|rm90{6;ZUatlq9t_O6_Z`)HDdqBK_I=6QGvdB0nd5i4oUr}66< zGf%PTR$b1cggzrQSa6kkjR*A#c&d8g&4%+Z3q-P}bYJ^NVWE9=DwDY_l z)D%^g%Bs8nz8jORy!al=lJl>s^V73Yc73VzoY{3QkZM!K%e>aW`#rcl0>0k7v`&S$ zqb-U^F}xoAg>p@R9g>vwh{+c{t6O=vV9JS3z}jdO2<3Woaj&{MT5Qm?2`g-XqQqVc+(L2C5S;T-b^;%@%TQ+(mRf&e)n zfKMPx6KyC?Ta#L$l4q3_1txWBrhBAMTkaYdw<<6_oR;EKJsV|%8gQ>z83mh0C#yNF zvriuc&s3uRr`xbFSI0<9&)!ormfTRRosm<86>q`BJhC?`L5lWN1V_YQdCha|ePM{v5#wcP?Kd6;RUJ7sou{^(i~AscWzztw5lC0qn@qv%{Pt4(+pHz*Tt-0A)5fJ*{AUfbVkMwr^KcZZ*pp!GI&=aT6f;I zztinJ)YHpu ztNmejN;*PZunQ|S+Q0`VAWUh&(QMR$16e1TGi(C$V8*K=J7JGJMM`W)sX_?Tzy}Ne zh8PFNWSmIM{;qL*E0S-k+_Gg47EaQayuP zk~N}f1G#uo#8?s&>?#@K3Fx6o8>KU~OB>(QV`ZxCqszLO%%0M81MN@N+}*d?K`*YZ z>)&L?iq5_Q8-z~c`rMA)ibZU2=K+E*o|kqm-4grRo-USVf%lvu>WCPdw`Fjk4tBF5;X2K+-bD{Qpz#l;5Q zQasB^>EE{trOY~PA(n`JRA}hL4*ENGSVnUn-2mfdM!5)ehvoWqp{**@VQms)pXTSa zt9@_F$x1M8EJLu#U1`ad$3S9Q}e-{AeUg>O6*#0@&q8 zF7}q1ZLP^NS{?B%gaekWnq;oK9VxLYW>b!%wOOm=6q8g_8-Q)3=KR7sVHOV-qfsyS(6stJNN);7-p`vB^BYz#m!v%^( zpN(WoZ6#N?iOaV={&A-nz{S)-Is+gx;~#>i+86S+MeQSRVM26)m1iYmTfbP z$>guFN~WqxChx*|mgU^Yz$#$CpA02mC$R~L)N=1_UNTv27ij;Za!FAiGIbvBL^;9_ zt~2B>(f<$O?Es`(&}|9cvTfV8ty{Kj+qP|2-Lh@lwr$&*`d>%Pyw}ka9hrM&u8ll< z=lLSPlM{%T-u}a+FLDYsXiP)FYG(e%8>#3m)h@KP;^qK|Jux<-q!L*4| z`6t|WS%fk)@|xJVB_#z4$%^Q%Xr9c7iZ%?!o72K+*Cw_XjUo+@ghEiX>-y(!mhL6n z+1hffG~cp&sJ@_WxyX&r3g>dN$^z}prA+WU&81T%kio)^9frryxkBMDg!U+FLah-? zcI0glyja>(g(XF?A!W>x*WS3Y(`Ks$6HI1M4BXsPER))FOjLF%+NN(-UyCt-MiLj1}U?;pu6XO|T?n$-ls_46ZKQaeP zF1FgFuEB4bO)e?P!8Iy5&_T*Zv#g5HrYP%z!WCa!k)F-A(Qx$hL20L`DbtMrrTT#f zw=z0?F$QnR%1EJ{1#@*#S3tQvM2)AP6jG`76bVw&246u_Jd~Rg< zIL@*pwonpQXoTdHjOKP&Cl3eC6{r()rc>OQN{wmH`h4=uyS#n04+cWU2`%08#LH>O zqccfgi(yT+sii-!GCah@Yb&Y03x*oJA|kb6EUJJEN8U=C{&dE9M2<&y-2nx6i;UTm zUZ1XFd5P!uu1a-6(18(=@&MD9LcO~44bT($RBV|{Os!Wfpd4MNNJ#pT-AK>NA~F%{ zmBJEVOAesZ{_k(-pH;Unbt;UREjq|9HTOz(b5>$iCj}R54Hdv zg7nc{2Bx-59do8AJvSjkf1hS7e^rE9CFkYO8c(MfN3t%hRDVj$u>AzjKR*VQoU9~$ zT(VR>P@TZBR7~04PsOZ5+KSAkZghE=j0~&i^ybPn;4V^6eIsVsNzUVbkq()unarP& zvlK8*?LKjm)hxHLXS;y%5p%O*_EoZ39vurKe>=^>FXGj}7WUtk03ANr_sa;|9(`-Y z900tCcq{rh`)e6c1){bLS^w4Ar=Kq-Vr#Sa!MdOjsQlsz3vlwlKN^g8y8l|m$))WwO$w_pO^^@ygx+sCOS(0)_jZ- zTc?$?UNud7=fPP~6q4n2{=SGK-F4eLiNaM*&&k}DJ$d%PccZ-)C(q2ruf4)aG?NFL z4Oc>IKG}Jjwb3kBQEssX8-;@O9ae3)-TQZLMw8{GOlf?sRw8r`FDk@(ogjroV81X` z{}fgtf{G8L!o`Od>XW;8dSYGtyN67WDPrietpVCOAWJ!y0>}T?@C#pJ{ay za+s&z5*Y(hqmL39G&5n|m_d{tJ*q%|Am}BFoX}o2JQK4GBzZpsHX$|doo6Hlf!sbd z@@Cn=aciH4ZLf^73}2+MWD~lphFP~_dH5y$iKP2A<#T=>+hQ88j5&EM<44B3>92`;4r?9!st3>8*_Pu9WwOHb`R%z=RZ>Kw~UEAT? z|Fa{1t7&}|%5<`Wm({?$`e}|ky-&(@G;8W?bqnck438if{YS+CQw|d7*`)Y95~5B; za}@^8rLeV#7K;1emFmG9F82txhETemKxt1`fs=_Iw+FVjhW;Cls*dfS=a!ipruf&8%Jr{S z3)sFF8tdac)Ib1xo+9TJjm2?;sNWvS16b!o56_dnr15e{hmvoFpTcJ7?{DxKM+sJV=S-AtJBZcUc5ycYB0@3Gv>@1D?o_& z!QsJy!Qt_Z_yP4%8!#Hump}vkR~dAIqpkO0ZdhY<4Nh>dK4kIjzh61*@3BW>tdj-@ zp;1giw~ z`9Znk|K`d4g>RTGT|%~TWRIBCB=IVZYWTKrq^%s1roeW3Txd&Hw%$%4-1$lnkI_cl z6V$D;#BM7ryV=T-K8dAe-?R@bX?QxGdg!1MJB0I;G`AU`KOw|0?nhlr|0Qio&d)6CUc<(^3#vF@R^GVG0^q#YG)3j*!a zsH}+!aeiQGK}^+6ylTv?3$|;M3(o$Txy0>?5*<+eGR z+Gvt8CwiMn)IfZM+)=N!K$+58ypu%!Vvu}1Cn5!BLJT`3CDj+IUghm;(MHs;#gC*M zw1oR%W-s~S4JhnhoNz-I@zGFDI-0lSqHO3lQqJgD=7RrUgi81GIxs?GiHxKt<0psv zD}odb5+g2&y$H{mjns5#JROgh`3*+Cu1+`@?tuxR+R$vE5u;0{Quda-UWL0#d?-|E5v_>Hc&}#xqtyXsWOgbL;R5>k-m3Ki4_Q zaW}ZfII-Ji?oJ>o0CI8Y%WZjc#bS2=63to5+F&o^(D@A4pj!1kV5-xE(UUUNNkplQ zzyI{6X_Jo9B0|#ufQLpAi2hO9M*NfBQaUY^YqjlkoR`Y0-T6>48FRG4pokPQ?p~lm zD^JJwaqg&VyMCVMG7MV^- z_V-V~>}Z`C8b1j5pMphnvAaMczWMk@dBl_mV+AXgA{nsCO_PQ`yHWyxmNEv<^A(8g zL5b4I3xPMQ``x5Tu-Q0m8azSEAaB&lbg9d6e92T zP3O#lsXS3heDqQ7tiLSkJk0_878+ZN<$x-fw<9kq%bu5_$$G8$7Oaod-0;cgBT?<$ zt%I}}3?6edMfL@0h(^bm<>@mi3Y25~@b{U88eoN&GX(QdSO}d z=T6tgaOD+ZRU=StUh0-lvTq_HFTh^~tmHBko9VHxtC7=e|MB>nIYE}p`P*Ux6l9@F zg^Sc#It1e9ym?y*$}!PXm2l>*>$xhg$irFmBN4R@HC<-$d)P!UfSa*7fM?5Ch@bVU_-9ub@YjQO_H`xH5y2JV$YKqCj zfKig%QM9L)36uJ7`y6h0VX2*!l}!yJqlJ|A5T~#FU8TLL#g~RX&11p2g>J8gQJ+U{ zfJ7--EjDDW@BaMgkw@VS{k@}_59VO-AcHR^OOVV08@BGv;SJIxpyp(td0GoI^ZY0! za8sqrqx6BNjrFCMozK|&{04FGce{pT=_Ut8Hm+i7M!oHHKG$%$GMp0Wa%E+1)+`c? zv=E6|*6B!ZI16)lIO;0c0?2gDqp*C`ca|J|T5+&$B#9czJv}7c=*)rv5@020w>(Vn zK!e=VQ{L{=1;;-LxS{H`U~42(cZOohi3i}s#eb`~KGwxb3QL;xKAslO@56dc$|g`f zYj-jt9EsJH4XU8CE6D&%+Eg~7MRPJ`o*D|gU!1C`y4iNT2)3n zwMu(Ols?=5ncTMvZdEr?5TH$y`WkuNYN-D5QPkY&=eib3A8vkLY&@kcZ{*e?5*8CH zA;nEwdHWg@!_{RU(S3cONGxfI;{aUBH>r$goE;33kOW;Q3a`QLji862Kg|-1_Rk!@ zfrBpo(v_q=eL6Cph6-+5wTA^gMqN}K2^YSp)f@*xjAV1nT_Hsvr|D)hf$A_6FfDJ&=fhx*w6qjCmb(wn&?p(#vihRL z=(i{@vPbx=rPY_8R}+vm`2DMHx;3AJ`UAjJs&^S?uqaVvKwrgeiJWF{%j65gl5`xP zX4O=y$O3V+3`e8aW%KnV?gHZ<+ve~U7CYYe#%KAwO3dha`)ZXpZZf_}=CL;?M%OKx z87O}0;_mE}&90bfhlSFw(JPLL+n2B$2yZxR0lJ{^rAlnZkcR3FLpy4OjtvLF(jx?i zgqp>sMR|IO;x?i?kOjp%z*CP=X@F_JlwrT~Cgyn?c(n?>OO~`Pc33@kMF~8HEOQgo zM!CV3<-^DLphg9W#aBHyePtoIYfi1YFmTusC>0QCW%F}=Kch^DSwvh^bhs2kF!!hc zSDc|=-b`P8{h(g^Wu+*daB#a_s~tVgw}yS66>Z7C7eVHZ8Ae+_=tLw`IFnd7%I__C z!9f6&v^uk^(p{90@YVBa?%p~&uQHxp2A>P^wj_C*V?oNv0?3cqL0i2NiaU;dHltp5 zj+`vW#hrf>U!ZB3x@-T?$0Nh~#9;Xpc~6GzS9Z48pZxijW2{QcYw*;AC2-qa$3vEH z4>e8cx(%_j8hsw_moiytjjvdhgU9W#KG8K=n2JCR0f#CXkg@bCPaZW~O0$l{B1{{= zutK6vy!yuS^9#4(dzS@Rkx36*T#ll5x#M+t)7WutX+cu%Z)>-?(+4s+PMaixC`+!U zFtR>tc63+`tqoiA{*@<`)l}1z-YWj6pUxj3kTbk$#X%xC5It%8!HS-C-8qV-A4YnR2 z`l%`4$sO=+lVRLjr69t6f>48?K5$U=pO=Szollz~?Cl@e#+hdx#A^?k?CPFjwV|ji zHEv^5%dvj(2WOPBgtW4Hhq1>%&+47P=|Y7mlh_F>3h9yalF-3%p&}BU%(XK{7`%a3C5y}2a`WtrC}2_V6evOc$SKjLB#*l90P^QPdu!vYNOOCr ztWV&-DngZ&Dj_39h@iH#v?5DUT5@fLo*MK9Jd_DX&!(8fGVv z=%cdgg3MCRPV#9s zU9)?ztm$=iMU(k0wIeA8qqqfA0hJ(WK-M^9$4X8=X~ZRPn`A94@AP#yq@m`f^IA-) z@uEpY{%!@bI?(BwCS569!^edmYB z$lX_9V7fzJdmqDVCiCZ0FOOdmac~bdcJvPazz+1Lbc|1Y4xy@DuWzr+kv!YRFBYe{wvL@SJS8A3Q`ZvA2LX_8@4?%E3vk>@@BO z;`FBg6!l~lLbLXzfUA~UsyB?!4CrTiLx13<=VTPJP>U)8^6a0XZ6di%kA%-|6!*xu zPIIw|Z+hpiARvOhz9^8K0AhkGSO7ob)tlx(#^K_YH0dY>reUK5wZcXvLT_RkhQKWg z7LEZw&)&OAFbNsGU04ZHVWbW+h7R$_p*Vpwc#KjNhAWrX1t6$$EHBRZ0RxF*s=YZH z!cvU0TDKxddrd4xakjmogA>LNho*769 zjOgW{60|yTND_lFBJ(-~?7)80WQmUGKnM5F`^#gTG4y>DapdcDjI+oZnhXRcPU`8L zy5w8O$+EKYVcR$bCR50!>-D+Yvf3KjH5e*}+*X_khTPm*`Jl5XKJwHH;(ftn2-zdj z4xAY@?)RaT?T!(bzxSB`Rnr5#ojhx}5{pP<-O=6Svyyt!dPCDJicF z7rk!fqc&p%o{jE_6~v%({9RRM5o$$}i)c5n*jMSibewJOf}u}iN181$8@G$p$voV} z71z_@c(cX%ddH_>!?`Za)n`@doR(+n-)d^Q_STO7@)%i648}6T75bMvDx>-Is|odh z6v6UW-YwdKhnX`UMyyxQAo?g!3d4|1sv0D-1q_K0W`_=S>gv#{YpvxK zE*B%zL|#xAhBpQojF#(iepzwO*p@1mDWLA;#B;U6xY3`yEjH z@?nM4<+aF)7I*nAT9508*>DxQfH>dQ3Y#73#gpD~A%BdR`X6iqWJq=YN;T2dID(_P zKGoc&j^VhUbi^w2C@KR1z zDwzZUFZ3pyl*(Xo|75NGXQ_5@!jr%|JDxhxD#tW_-U(c@g#f6<6pJx$+w`eJsx56WV&l1cOaGPgA3a}?*& zBD9|erTh0lB!s_>EL;DaIbY0hZ^NxTRe+h4T4}V2S67#Mp9P;DDi^$LgSG$)xR4Gt z=ff-cTg(nA>7SM%Bz0&Vm3GG3rw>+lCmD$h~xoU!R9NcNR z_t|J0wPbCX_lgSf^|I5%e&pFp?P4(>HE78!Q@A0AN`_vs2zwmN#*>m12^p3euT;Gq z^lAEbwKrQLKTX5j+;Bgw&HKL`PfA6@QkpioP9`}|S6Ne0rmLh|MV#vt_>__R7(JDn za&F*huDKj2r5a4*wd19|P41Dr2+cKX&lNxCKWVPOfInZ?bmUceUySzGJ(O-y?+-k* z`d@)4M=4s*CX)20!BWJ_h+&yI{Jn^0t^(^gbnx-V--$4IGJ%ppZ&##2o8d{TeX>sMPF#^Kw$a|a@bNKjiU~BTt%zGl=bZ!{Y z?esm%Y8^9gn7phmD$ESet9r&V8l1J@b}lH@4fdX!i&PVW5}>nbfN0?Wx7pjk9!83Z zK&2NvnW9u?|636yLsTRvnkgOG=p7Y}3VenSxji&1)B$@xNp(0y=Sq7)>`8l->jkoA zJuEA+W02WqZ~d>^O7HXjLJG|j>O(iO`AHU z&2n%P&eh7}wl~O)OXLAo^*%xBHUU9 zfUKAL&tNSn=G?@jobhmCllsi*)#!FfiyqX~6QGAGf7irbSbBtiFhd;|R?h&h>)}yo zrWsb^=LuHdDb2tE=g#-{vp%|?u=72GA1NN-E*32G=Vu5Wjnodk?Ru5<1fRRzn=KiS zYOUG%Mhl)5$NOefSy3XE65!j}_TzF)GuDYHNqO1Faiy1!{;IG3kRUlB`|dN3WU3gd zta1DwwsAG$TT;3k%$CTMFn>$~wyo*{b1sjqZ@lN&D{!>2c+3NUjAn6RU^woq<}!?E zsen2^pBA~(hQtR84rcmBfYhiIfcZ>LcD|@d5^T&`gx5P+FPqgro%d85UvA_&5%jAZ zRFU+&w<1yb{yrAdVAJz*{`q3Oa{0mX70K5lVmXJY2t@KPGhMzpL~h5~2@; z=+9Pf7<17i$u`+O+Cz(}KNg5wdwSlTTTc%rhvv(Oq~<|*SQ7V#Ij9BO?L_5p$-vJ{ zsg`};26Ok?W$6Ve$(>bLy4<4v6=?Q|`78uAB%xyk*P{4vd(uV)^BU8tVo+lBivfcg zcoEYIig-(*;<__%uPZAki0{g~rDpNGaY5rBso}!LSw-F8y@$PR=*)h<5U9MNz^D8T zN>QX*vEtrx9Ra(zKx37^v3`H(X40j@b2HahH9h&{(0(}L*@9t`JZQMcGz|uC^>BJR zFLAd!QknGj?b}nI!M^tX6VZIV?eXxW;k zz%-060F_%jL;%EIrnFwkowDyubTKB`>F8qg3K5cl-z16^33{D1>b9ga6=pBrTCNzz z>)P?iNPx|UE6$?B=hc5gZu9YyVSH&z@=xO&>(iJoZ9Hi(=t)ol+)v!vAw3Q{-6{&E zrW~ z4+SlQgsBOr0((L;Lqm{=a$L;Prd?lFaVDl*?FI73$VtMc<%dP5uEqGWvw6RL_;GbW z-_k(C`0X(V7VHBGB~p&T8P`z(oRzV_NFjCOO0e2zIJ)uLXM2@W-7vCFf)5g~U_A^f zN<-9AWZB1BjkIXXhCla_LU#R1Bt%e;(W`~&+q&6p6j}E=8qRT8Uxwpv=c!av>rFaG)T%X~#01UWmP@ zsM*IVV^XugZl?_O%4p_?R!;%MC0?y40JG4+LPTMm!h!IFLX^ZIqSlobQGHMVsrzZ6 zk)$vs;)=Gg10UWkD?e+_n`Q=R=Bm1F5Ga)R*?|O3E3}G;kyuZ)mvjm{$d#MWe#0q& zqF(Gs#rK%M;jhO&O`}YuYe*(FJp>9-(<#9&h-VsU z+ajgNyy7Img`$dtv9ksRM7_oqr>HG%fg)ve=@58yE;*2!hM!vI>VOMW+`k>1<+CT) z1w0hUU3T$>?>(Pp8-oYM@@0<vqMAwQ9btKFk8}5nnJkvv3Whwlf0LP_q_-mH4_8 zwyjGY9*@b%GMGfsey}RhWTSFUCXRI#2Jewo)f^m8xQvI>lwxrtjV9jL(!WKXCt{5D zM@>_iuB&0VriR^-c0VizkGwe$YapcSK~g33ZVcs7tCU&&3jvUt!9L39e@ZS3ckocz z>CEUJ%IWOO*Rti^;$WB%FBe0(-LIMVB0cV!RX58>&cvxKNqHNe;|)8&;CkT6>5<2W z9!rPk3NC~jCg%JzwLzXLhNah--^+wP-d`k`5{U^LvRqJUblAOBpx%Zm&eCG>j{`4X zXo0Sz0QrLz;9WTn$hT+MVH%O(!~*f&J}`vhV*dT*!+FkX#QzYFhR%)}8W$on&MIEC zP4pGA(%z@Rx;MF3V)WI_8TB1X&$61`u=o9lH;(*Rhi!_^dfCl_agD~#J(FfzWFWG@ z5}l7e6Rs*NSW|2b%_RZGgMRfoYnZEamZ_n{Bzpkd?w5qt2&Vz%0HNUblK+DzW6t4)x|-!y+L+* z*jeOKv*j>H3B@!wE5WZ~l69u>VTiH^tF2-yobl!8{+mkF={>hT=Ry$!&JidQVT(P`7_@8gBJv5SYAS=Bc9NGu zhL=MpEi5C;mbxZtI?#**kk~-xoYd4v)>`>>&|Yp+c6se9c2Jh6s#-fE@d1c+Y|V_I zu|mc;|Eg~}A<^xKle+hXk~==YKv@+*A1g8gytp&6n^5ajMe@}dAtU__tf<7DS;9<> z&Wu)scpO?U-o1A%PH?25JQ~oW#-IQ>;LthTYG5k;%#^e>a$a$Vk zgCwes;z8CkhSOxosp6Zm@N10O>dxzydNdj-9K{-3-Yn9e)9;Q;)%lozHi_;jH(t-G zZq>9&5s?4NxU+~18f8v{+}IPfw9k)|0pYw>$H`@~)`}J*%YY@oZgKlz9~Fnwjx17z z9p<@k*N~Utj3TM*O)4jk9yWMlphR7mR}m$|Gjuix?=FRT{h;`JP)vqcQm03R+59pX zTKDJdAEIPBcHkkaJH}dK9QjYB$hB#UTrHV-IPyq#rYmz0v*Wc64<+~T5hl)MG8*vy zb?^ge6jbWGMhS+EE9W3GraAP)qC#Kc*aIp_ODD%v1TbLm;ZXo$&Gp_$t`~Lk?S>$0 zG<`aZ_ zLjrt{vY$$e)yBlWN*6@`SWGQfBrTG5G8jr2orpV6u9Zh6b>iQ68sNSPC$SaET@@aC zP8f_d&sz!AsJ!K6N-NBv6^b$$oI8{D5CB2t-CHFl#koM4$lu~71C;rQ; zF=>Tdr-sSMvyuCudpMNHpUkt-o`fXOqrmYQb9vrQkTq2uw zH)=X`Udp=VeGhw*eI9EFgn){>LTsZJ)HrPt8kpxF>)bQmWFjFK5GOpB4K8wg33$xC z2i{Yjwy0)xIqJ=8=9S;^B*uP-*3CBbH!MH8uXr~G(qif#i@FBBHv)*t6#P*xXouea$LJK)jWny9&qj>zcxO!ZFZG*t#+;C9(|)91!QZ9)$p+KvVzNAD8KmfzU8xUh>x%=Stk zQ)JcdeJh!Dt+$YE)t)PT)9X6_`rYyeh7a?TaNR zUQ71i87%A8Sne* z^Oro}!bMcCoqy7b*zVj3rt$V42($QxPt0pI-cfVW0tE|?9uVmzSR-a6&CRbh8R?Z> zpmI|K<1U4GbFG=in=tON2agnZ;Q(lA_8ySoOSg|7z|)lY_8tK7RkL>=1hal%a?$oa z#k_Jrm&#|}I?>S&F?s0#bew}`BsD*6pMVy7G9{H&OT=9Q<{Yn0Z^|;#! zMcwPF6%oTOnL{wc8o){q%X~XiJzAk2Qj@Yzrs7Zg z9L@7OMOz#4rGh3?^QnEEvAF@_ao4bNtNTUw+|Aux#(43=J<-M1)<$DYr-AwS2nD`7(r8I`IG%V_XoDwpBzq_HdKn7TtUzlHBc(ELuol+4) z_Y559#(lcWd|{k@^8W4X+x?;OWZU$IcgHcuF(=bWTn~zFyX>8Od6nu`zXQ><`X5uk z4h9uJBb=m0jpkD5X*Jw4CrS-KC6!IanObQ-AJ*F|hXrm|kSOIqJ^Jy%Dxs(qv0Qmw zY?q7YbM66V%CMhCcvlMW6dH;3tC^Q)6^WXHG*ztL8=pqmR6`9&3BbJNVEl9W<%h(i zh`0xYHA)rfEOU$nMn7s#WuAipEu>H$U$KRR`(SCV6?x1~(W1grWiKm)R=kEjMioN@ z(PZ!ZBIUkY&1{l^Hpz62$NQ*_#jbspFaF`cAM^lMv`;Hox~RP5;#Wy?(X}~pY%1Y) zsQt+!W<`m_hMF9~g_Q0&d8|o1{HR`M5_x@>T22Xt@Ieb)vGSl)*%+MqN`HwJ%vynNy}r zA?7h?;B05J%~-nYIudd_wF^`%ii2yKE*+5l==sX)lQI_TeH1)YUBcPU>ntcnTNX+5 zS2~`d@3WYSRsFM<6#=k#<;tC72?o;kgu7~5EXnWYT>$F~M}z6Ho$2M4V+JJCB?bcR zVv!5Hutjf?2JJ6JRUCgWk-4@Rj~sy(EBf#7?G4J4W+|sqc3~kCw#PHl+AGb)8n?4q zC0(eccEWw`sn2panp_n=M5Z*3PG#Sa>C}6yaoWtiSTv=ea4j%!>Gh_&qg!X>b(=MfHG-FXUBoou!Hj0p3)_>i2oI3x8&p{cx-SnUkju0 zrLbNYnXOwviec>C%Kuo*S9YZszK#6xI8R|xO*Bs7svE;CncO4cFIYvD+q*1xs>ySM zncc44n8E)Nvr9_J%DQ;nG&k=W(X-?VS@+z3?Q|~++-xp@zv^A&4dbjM{Oe7~91y*A za!P1Swb%G+_)!XcwHZ;28&OhvAao$@Gaa)lFfY;&Dsg8dR)~MbzMsW+IfwFoj*2@f z)83)J69Nq*t&R!MWGV13vQZkwbrex_+fZs zgtr$iKL{PiGx)cF)v%1my>e7n^i6`ZX0__-K{ROFSkO*ZA|!Jeta4oLR8R0 zXMrGrEw!3TPMD{mzZ<>^3i%k;K?QjXi1)UG?xrR-cu*IKzgsOeHu+tOsKNH%R^3fJ z#i2UC8e(+XhxdMxZQ((z2;pM)3Bq_pTW5}CQNunvz>inNZMR^!l5j9n(0%vqI|$5H zO8Cq@7$yAyx5X1#7^G+s_{@M1ni<&laYB9FFpFAm!qX9{Hac`DkO6;o6rw{titS-Q zaI&Dta>yVPw}WssVy%=&{(wBc7H&kS>8K#2RgS7Q7>VdSyLCx$C1C`t{X&FdkWRIj z**GlSd~Wy$(sA!FwmeP|N~AOxr9q%P%BD*3qdxYkHN2?(thBPQL8NUvV0kdFp>py{ zPPf1?qSIKa1o&V|2$6Cih8{ZH+xH1?hFm^`Fb;UCNJ&Z{NPHPipius>A%G!r7pUP| zTvL8ppgevN{3yz(B##QBx&)s-NZoWm=X3>OiEQvP#%uDqn@Gg5LYyKrTVM!L$vaV^ zzhbm|ga!s*8T>5flsdR&(8=WFcX9PNM%<|6Wsh8eNYstR<8lFE5bU5q;Qd`l+hxgW z){Z&nau}+R(Vmio-x3;Qa_6W}Ny;H!47SevQ}b4_{+K0>&h+xvPwsWn7zPl;$N(t3 z%EeLxc+f##YP<#c?1&C=S&=DR(d8qPVIV@K;f87MB(O2q!G!ijf#lZ_df00U1qI*X z$@Euvjiti9s(F-vEUUB#s;p>t?*S+PjO4)(Yzp)_{8&oMSg=YPpofw1I#h9m|JLRD z$Ss^jnTM2h7JP8l3w!6{<;IH4upr0dI+;S*kG_=LGZMVFg(p=JOK*pYDfA=~r!sq} zQOlyr4SWj;&!NEPBxu9_#h0g#6f708?icD&?`H=UnaM8fAB77$nf-h(EiJjDl;z#q z1%0p5DWE=xOqf2tkV)9b7O@p|TCkERgj=NNO~UQr3o92uqfu0VlP0B-=Lqo6v>El2 zGeRT_nEHtpS&3L1`MPW9cJ9kSDW|M5rve|$!OQ4%z$?Mi%3`Py&SYkAA&OF6A#tO; zxYeC6ax1Yfy{3hga)?EL6J;V~YNH2ewZEZbx*gH#16e@3(BuTb>c3^-~UJjmhd*ycJFp;Bz?lg?vB}p ziQHAA3!&N63jm8M5EJ;yN&bSxs^xX_p7e=*MbpVpvrvcLsHGX%;3X1jI$;^v=$6J> z(s7Gz@m4`?()I1U+Gtk3GJbU1Xt9mGVtLYx*aZ~7TH>lB3j~d5gMM;FjGx=q>(d(z zke|h!;mKy8{Q*6AmbRmr?0eLFf@Po%(cCjngYymA&gjp)w5}h zboT2|hilF}s`s{vL+=-jV8gPYY+E5z6rGM-fhMz@K!5J;)EXA=-CGv$qiZ zr#iN44&JRzDc zK{z2De1q8>WS`VmztvpEv(f*}oC?7d-F}&1nk38-Wq&h@y+`Ob3)<_D4tKQX%##N1 zPJZY;vs|x)zxXKdcNu#s6~&&Z$fNzc zoXczc3sRQLQOj@UJnNS#Y$3ZNP+T^7$Vx0fqrNms%Cx;j-grBUUQLhgw zov4q+KH5^{O&2Q8-{mtdt#N)qUW zbc`-8Mo-7)sMi@lv3#0w7h_#@eG_?miXcFfuVVfyypAc1(yqPhf=ByQfwqh>d6nNT z%N7iY;;A7N!P5e^ne+aBHg+~P!64ns%=qTMzPkt>DoLSWo^Uoi!%{{%R#&MZ+)Y(! zSsq;_zJ$?)Qr^D@`<+ipGh1bwxFk}P1S{%{c3N#)rrS;$tz>>hXQ5y@Ux;bK*9@1t zXEr~TzOh_bAfZ^MV1GIu%WHa(;84n|nJ&#SPkMxHZGxt7ZO6D~#H)7%d+Jm;x^$p&rG zYH>`lHO3N?+BZHr=KluycQsXDVjv$`^; zA%@x5-f>bsjo$L;@K~nxs?^xIV4XABE^F=x+-6JDhZE~_QR`jCaNim`rSv&0PGCyAAY3hM8C)S+sIw_o- zt5iGEZ+Y2GYtk@3oOvybkwoh({_tEQ7K^*sn&@Xxf*X;0N+lp;=s@TA+srGEZ$k!5 zSDBKj8rDXK8L2BcJ*{dg$lhIwiNR-1s{SD|_7lq_;URVsm}ALq<2vR~nQ_pL7}V{Xn48pbT`h$Q8i^uA=CZzG z<$aVKinBOlHp>{>Xu0U3d(wf0nM&k{K@Rgq8~2olSwHDTU-4_)F-OK`QWo2Mz~dqe z5WZuZC98TcK_f}BJxU5?+E8!`7WG1}DR*)bO^toRJhU?vwaA1-6L*R^MF+m61!HwS zsANF0iME^F7_e%l(}M!2=t=fhRft1d+5|PVc3_PHOW9Vw`_7aDKJ)5H)tB-#FlRNS z>t7)PP-sOUCSyl4C+3;$M)mp0>47#e+2&fV$jj*h$JjL^*SAm}(0T0+_ZV7j_3b&a z82GQI3m>A{$3ffWCCUZ*B}GLtsjk~c?viV>Y?%|EiQSa3WE@rvv#`u88Z9}cMoT!F z#CwaWqGo=@NhzkGN#@@n-5_L)v9bWZMlsLSgHeZ#>*|}_s8v0r#B=Mh-AtROu!KCt zITRXhVzkziYQsWC#b4%XSbB|6= z`^1Hz#nbI6_31T(S4(=2;T*UK!TGM8E>ppItG3W03i)QsGYRt`CQ+<8(y^>yiIfo&3i8g~0)h9VMM~_V)C0A?XSi7X>mQ1d5HE6G z*-xbgPd3Im+~G=9*+%5XvI@LS=yaOLKwFv**S*>NpXBvL<97Ap&^{}vXVBbW7%OYe zudPKsFvzf^FFSY*`qJ{uaAlFRms7lY1+uw;q`c6GgaK&`&XD4+o`UV2eUd!8bjMtr zmK(A153QTDzs&I!+jOu;IahV&Qsn`>H%d4BYgcnf3%d7Lf4=nS6F2~e2a4=Sc>8pKhvZ~(k*0+4NQZTu z=GfUi_iJcx`;!w%b8dp&nFYa=^01cd5S~OV0X7&J=JQ!Zj7CIzaQ#3mA zsCesK1HS2zMf=`HjcAfx2gzKJgcc~wpx^8`p#$gaV5R)V>{twVP)G$Kq(oR$`<$mM zt@{Eqd(bd9|1{1roa)p0QP{zlo&TsTm^LrSA2jGS`|54Zz)?{Ui$@xPC2$bSK7R;8 z#7jDWkHr(u5OIVbE}ajc$;&WGF$y@4j&UY9ett)krinQ~j2#iLByNh-3y4!l_Qyl6 zg&V<+_9O#@|QP}AN28vSeGE3 zxGm<8G-2cKwHz+gi&(1f9_6g#<6zh4%_c+bcbU@7rupgAZRN37%62{g~n zop?AdE!3BE$Im{G7@gZVofgJ>-$8QLyZwo2hq~gV0XkHSstc#h*;o3d+h+ZW{pjUQYXEzrdnX#JcOA(aV(3s6TOjWJ#Ak`>lR0M2e!%K^_DKW~QY;Sl$*?XK%>(Wmma zX*|t)7$Ad;6zWmF=p+i%kl{W_oz5lvhj4+@nAMsX>ZrW~<24~m%S1EFo%KX#kjh(k z)jiO{{i@n=V4s3J4u6GpI-8ETWvu&4NmA;g(GrYxh{VRHk#0kw^`y*CYaq~FeO1*Clp62mK6K2oOyUJTM&4c^%JNx^l3oDR&$ED>@g5ep% z&K|{%d3NrB)(3XO6Yq&fZyRoN4UiU%DvzFhN+R=_}vhC3Mzu}ZOf|I84)W*g6I1ZW%Z%fT1)s}JJS;`%YuI_A_5ju0@BmcxY zW~6lLKySBIkkzv3W?_sY4R72d9(@TtJXxJxgPgwN# zJT$+CBP$MGPhMI)FpAtHS%b>rIg#p9vU_3QNrq?E4JnsE@K=H0fSRFs?n&4FlR$Ld z*y=!!*KlWkV%p2CzAt*a7w>B^Ia&ugA$PuN0w`IQb2fteyY#YIH&EaWztNnc3%~=8 z&hEgsle6|-HE3){NjX}2Tw!;xYPGd1h}i`-P(W4Y9k--vsHl-!PPm8I1!n<`39_sd zSx%Z<2Myk<}d{B*F458RioRJ1n*u`-={>W255~)xe>B? zU8QJGvjScO-F`6!EvqougSd5IoD(01-f=WHsV_okZECb3NQZ&<0_^g<#CQSNZ(&}* z?FmQDL=zXZxv4XOsy3+`d7+kxAPj?6ghikGD?K!sRpj)V0z zWUI)KEyyg%2Glj^s?eZUWR_%t5!TJu&FK{`N}dAcHGHf1qLx9;fb^nR|6&1~T9#Or z3~*@ptNbw(KRHR59?5f_3cWMahT7#mfNdOni01o8qNBGNo#K{f52vwP6ZJ6*NXK|B z2GzN$X2lJS6m8t9NUDid2_t9FW!(h>aDj7yL*BIAv>nW7SGAqQaxd34# z{WV%MxiIpbJN5b7g)#{u;|XeWbr*jUyfL~aVcdL)iq{?;<(%o!7M|>&CPy+%ch%n^ z(pUCO?iE^kJ)~OtxzdjNI%+{|0&DhW&Pz&?9mCA0AlU(!6_l{lr#fnvqiOuyw#= z@AtfbD^Chu$yY~5ZW(S_`9foZrM%VMQg0>opn9ToK{em5yjZLbEZ;PW zAK>0XCwF!4YSJQoXL?L+zJY%H(?9X~M!5|lSNo~&@?PVN!(s=;s1?1ac}=Vb$@Y;_ zNO+NQ>zel+?>H>Ux{-D3pZBTmP%iMFBf2UJUNu|{vgv8bR@WRtI#aTVE{t%n$k4__ ztUA5;d3&c5B@Yo@y0s`%>mly--{?E|X%i<_gYOyM&_9yB1bO>t6J*CqR)_9E-T*Vn zS0IGP94cz&0^?cUIvDCvq#lHsu@58wJ zC0L3XREi;_YaOIloKP3FG9smyxHCef7Z@9%QRmmqtkr^-RV*j^H9V_$BF%7`VyMfV zmpL2GG|;M`BF)Jx$m&~{l`qB-HC(H>Di%G=c+`?z5?l}~mSyH-^jS1)tJpI0o|fM0 z(>1D7CaRb28@W{~jx66UIj#S(#!bzGS_ZCJS%950Gf?kPTiRqNG zSoj{8nuj(Kc?C^74U1hUq9G<8e)CdtmXoNK-ny?efUelmJ@bZ5&hznp!%B7b3hVfnNn zu=amK5?KtsCW{uy57o%urGG?OMq9eq*>~9kymKCnDEGt5Y3SPpqP#|T*B^t1MsSnKA9AD<&QKt`d&nQ2NynGKiR36!+&>nLI%10CXhm>;k>4NwT4dwN zatUYtL~sL9+(YM&GNlpDoFTi1$Q^S0t^**F!}O~z8fA(ilqC?!X&}FcE*WJCAe{Ld z!CgRpA5}cc6hb(&hRiUX7sil6INXNJFf2caE{kx$9f5vu`{7Jx@aQ^?BfIw!SBwZs zb@#EYVtu^-G9UvH`s|WL5X+m%{fKxZu;+dMFN?dhSNof1VM)iRrmSmJN7Xa_OZ-YC zMaeV1%m3pNrdi{PxH;Kn9=Iv-6=q!Kjng>r6UR8vEA^cU6!Ysef0)HZ2{J5zgZN=X}2Q5Nbn?l98 zMD3_ZZ7I-TNgTOCrdZ7xa;RK~QbNEMrRZO5go0gpgu<+<2nD;e2*s$fJmd@=y7sIC ztQp_Gqknk9mI8cX%K<*{GO9lCkV$w!Ov!jbdE;>X>c3)l1g2kjA4o6pCV*b`i615J z13&#M!&H1>C$NuB^aAdj+^+vh1{y*<5YtP!aXvNNIn#_PSycv##uxgGf5qtNOfTZz z$*%2Jg6}Quihd>eSDJn$`rdL^(Ff*pyhfnx-cqjk6Elgb2UIaxH!$v(=6zxc|4z?- ztx|6+X}?sf;uCX`q6c*4*Nct(SAOS?NxFfVziyhp;yzx}XFXmMpL6x_pfzIi@YADS zM!J(=3or`f0F*Pmoni}=dh^#SBI#z_Re&}3NhB!_wwJeM!ISw<$^O`mbdP&V_z}n~ zXh^@^DKycZ)@UD2)H5iWfkG~lPWa53sv#z{2)y6IS<6Ytob517s08;{Hq^@i5j_I# zz?U}&H&{jO*2FDl(m?L6bg3UqEdpXKgd&R7uo8^so_DD~+%8gS@C^MHcO8~x%coEPNFKx}8q z&M3O>DB3>9jruqB!|jn5NW&{-cZBhM>Kj!hjBj?&^!mND7n0>j&!JoM!N==LCD2cZ z?*QlB&8yFHI^Hgr8d@K)A=&It9Jjm^%9dKpEhOCqsYgVjn(LG8jT&4dLiAHo$fO>T z5f(>SbaKgrzEuXdGyK&qWP01L#C;x*bid8!5T>hmyP4UoLq(-vJkct^o6Ngn1 zt7_)Nve`qUyHypdZbx8O8O@xI5mpn*y3TW1PM+(o^^=ST>rH;{zuZyB$7&DPZRwl5 zlRI3G?wpyAi@>KoZe6^5xFev)@ONQe;oL&q@tIk&3m;x3xYHu9N}cMRAk%`Kb4mBI zZ-1Q`+u5Gkp2L08rPzBCP$uT@e{*Z66R8+& z!|dM?_Bneec$jQhY!5flsnM#h00)W(Oy7ZZE9`^5%-`4NwA|IW)nkM+&TSX0^5^Ya zOZeB$ICiecp~RAFkKI_p~pdFQ9LJo{^pvT9-aE zUpZd0U0YvyTIb)RUv*xCU*R86Z)v}GrWUW^Mkz^NOBZ^s@sr7E6VtbVwIOc#ZZj8_ zj)`OwxQ0}(wM)b2cwa_3R=N~%$9fKtZhakn9fFlK)%2CorsA2$iIzz}4rLo=A(Ov0 zeOpTiGqf`cYsMfs8an-^XyK-*E4PIK9hfuZw)+i{zcgBJZ_Sv=Xn)NZYdG-g^>Q9| zhL(!~_tK!_AJRvXH)!@5M>`acST6rfPd52B(#LJ1eeNeH=-5qTo*fY{ME9Q!ddeQS zPVq2A;nkNZA@%B(0Zck-y=Ep7zbP=ho`hO}^>bJSL#f@=jgKpj6-J(lZf>sqAl z-chGNJ_ddSefOQf{SW!3Z70U<)wi93E6F*0^Uld9ES@H(We zozXwk4UE!;#>--h@;aiIxuU;q>K{Ud#?#@5b~~W29njaW=o{q@jIO{E?XX9AUC`fW z4~+VR#`myCb;e%&E=R#opNanV;5$0{0!svjE&6>B)S>2MF7dy0v=LgkPZ?K29FF2i#Q`B-6tfV z6iF^cWibdzqo`i8sKmr>q1hOC)?J7{C}w8dR-vG&M>r9qZWVsu5qK!G#SOguBU6qriPtPSM3Ca`K$8 zmz?-3wZLxt@lILX%r9Bk_g(uyy`?O-np#(OF1J`Id+_POD~rQPF3l6oyPeJ1cHA`MHtRI=HalqYZTvYNqi{}bZ;LO^W&W&IVLG}g?8m6zmBYl;iTC`(l6Srk9-tx&`)fl0GP7afoL z+MGQhdOF7aVvPF{Xbo2eX1F1FKD7Fr;=$DHUC0|{9jw&1`keaC)ErnS5OoD_4sOVm zawQC7d1}IR^J}SpGO+qseW!0eYIYcI&aJ{T^SUhS_JYY$NB7xMMSm<6n1vw7(5LIE+qAcc+s}QLz z+Q|fE>8dj4T<{uysF12HaZ{u{{-$pI+-5%e5uZn#PDTHT)VL7tOmbWtAuSL;RX3*$5d!`kKse6v&9$Jx*C4t`753UqKp|;9#tvFl5P~ z>Cj$bq`VH|@WY7EJz+5sFHZcBf-!x`L~)eKh|)bpifAVO?9iPtu#?{;LEVV;4Wmt% zmq>LKZ_wfn!M^jgRE>z2bU7k6(s>_gANcNLU-(YEPUq8~UEE6|i<*~41|b)rBx0t1 z{F=kQ{k4-_$V(uLVj9sj@?ofAKX=e_KX>S2A8jAzPBKLbUOb6dJcT-euq=U8UOcrj zfnbfe<1j8OLDE4IcZ}+dxCdD;S^F=fBm%{F1s6qMc?WXMRbf;Tow2(2ia@&vWs*(u z$Ef#_L!00=*-I+eDA19>y`Fm*w^FwlE-759*yzhR(b31DgnJUVMz=055g&eRGG5Zi z7~Gh0C17O=Ui`>J>^RH4p#x0?$i*SqA;kU5QTTnLLl?JtPH|`PXFSw| zeMr6X8<}zDeer$Dy`yo*eRI9go2hY0z2sU|XThcXGv!Cp*EqnDc9Ha3u!EetEJxud z+7bN+N54-@eXh%q_fgutzk}AB97mp4VU`lFiVQ{1ep8M^$co2!$>j;#xcjrC|B@$K z@(x96(oE9C_)Rj^I9}3BG9RUCG9Sf?8j73tn_yd>R~cj_B(k!2vT|g3X?b~>(vot8 zMJel2HK$U^xx!YZD0DdiOQq;yDW>9qg`jjf1xwX&83v2)R5^$R*b{1#Tvzf^{Ej?V zSxZ^=(oK0wg@^^(6Ks>(Rrz+=c9Dx>Pf1FtYsJI8pmE1?& zxuYMa98MvuN@%IjlINoSxt(*6M-8V!mu!`iSXsf+#}dOi(79TZhPN3{3 z`GH0Dd(gRjSGnv{1zh>TV(22}lm1iMyT6ClmmE)?&)|jHQ_?%tQ{%hkQ`CF7hsuW> zSDtra_9E}HjCs$zjAhUAw3%s>Y?I@przCV4JrIWlK?wkJ8dr#WEhd1UDY?u@)QW=W{Csz+F1;X{_?mR?B{#@%zK&SkiVX(zQr#w#RI5J|h zo@akO@Tv+69u2xGd`f&$x21n_bn7CuhBpB%abZ%STPz)pdl z1m5+$!+4XHCI=q(-od|gybFEsYO2QZz9?TGrf@O$E#zn5vXcYaurAvK-g0v?Py4lAZXOwG7_lez8(CD|rxcXAg&5Kiu88Df0pk|;c zR#!-|>}u{OF-L z5BGiF!Foy3rToeNtZpZ|n%>ynxzrwFFxZ zCWon%^@yh#%5wGEGvKB*vrabaKGi;!SE}NS$cfuKX?b?UjK({QSA=Y#;8|H5Qm5a~>;ELZ?VDs{|D!zd#GTU{|=Fzk9 zkj}vD=EnvZ=lup*?1wP|_Uk3AU|hxd^M^g9o~gBiUeZi&=?PFj_a6jU5NlqGog6#m zBg%TPV?X>}%OIf=!89+~HjN8faU{%Z5yS_LmP zFEzDbQ+Pha9fTk9$`l}n^xK+y#d}5J`lzNTl6vDTW9&M$a%yGaI&Ne4h|*68kU8p9 zn%ss{uO)}%RhkuQUHH%=NfBaP5fvpwxzc?SgrS;2asLD*&cx~QD+#uFNqxS;9);pZ z5}+i=B0h{s!VjTC+#~%XhWoI4_Q)IOabJbyM3!+-V+&@>+0asC1D+< z9+JApcdGfQ+oYt9N*ARxj%zc*b&qF`dou!1|BE>$Sr|@D7&$gkm`+U~ zDGsGBnv#fOL}E@-6Q?{MsSwC4?IDvv%R@I6rxRx)(NMTH5BDS8&M~iLj+@gr`uY*8 zE?5CSypTj&`RuJi{yV92%V3OIb4Kd_q1t?7B78;tKL1#!{ru3Vi*y5sRZ-H=}l#K_zcJ+cg1VV{3J1={Pp3+|1Ao^D{-{UeIV;mL0VKY9xrl zGTnf%>Vaw=((@$aVxkd*;9`Ku150}WcyMqje?kJSWwI`%N1wDs%4O}5#U1_T0y!Q^ zn;{rF4y)%t44Z6}j6W*(>)oFceVbCIj6kt86KIVyIFb$r1a~BxOt~HoueUg5X z?wdX@PYeh=+D`>3@eui9()5PPv=)W3fM8A3T!rqid@)PzC!!AUqU7!~7$VUxcZr^| zAm#e;?niVv-y!MjzaEj($KuKqg9ugg^3XCfWjN#5BaRfJgD{<{Yzz8fV8G%UqWY7U zr0U$y^NHoI-}+3T9rA|wNd?WOS^(*I9E9iYPOPQSVrxeIOhAi#(Eze6A z8Pwn!3K#ft*2q{>Q%xMadI^A`)5oVlTWCJK!guP7abz{d?u-*DcXa*k!L@NlEPuu7 zGt?(ZKRK*{S`d#Db8p#v#`x&9Mm@o!*>#WWqCPHK0!ISYvZZWyanJSR5F3|R)blkd>q1}J#rf;0=#K>9QmLIdIWhF)c^Ml z_YSI0zs-PA{*%}(-72$ zb~J!fhIy+2lk9_|a=jH?KUs}vtMoXz7BOAGo9Ac@r_GN%n`lg@ z&66~T`XCOwlrmt5yV5`fTB|l@h|3l~Sv95Wzo*5kP`%O5ZM><~y0yjhnsCu8=c}hi`44v1e z_!;)Rt?K`C&*>i6DZWkGF~&PD3L8&Un2nuklenGA8^@c(o4}jmL-M8ZF8r=!ldL*c zal~@3;hx>8vyE??#5Qqt&+yjjCCE#Wo4^;(m+VWVn?yI3dQ@@G@)j~=QKycLnmS~7 zrw*7BM`94Jj+l}}GLv9SQH!j>sllnvscF;VREMm2&A1*FI81O*Yd^^T{<9PF>AQdR z_fr~$YnwRIVD5W(BgBet0_>3W?VlI8ZQ5s*YxmzilDAYR9`9(IJlnZ!Cp@0Nv9pGc z$UKsCvlEY$U3nAj)m+X!xJwHjU|osZ!OA2&>L849OIXR3^`$1tgTg8dQVXW%509c< z>biY0567blOA?tCJsG5?M zMaz&EdKcgqW*6)iZkE|i+nht3Tbvu~de-%{P0boBYAc$$4K{V%##`oFraVSG7CbgQ z#ypl?dR;lkIe6wK+*c5MGVWOtQOJX!$yV~3=3(d z%$QTdkcLfl)2n7ytj!o)Q9PFmj;m&DGUz4h!`|^n8!Kv61*_1R8>o##))<<3RSi{X z#=Aw$kQ;g%;2UNe>>F;H*;U)DL#$h@8_Rl@^)yXQ>&vUGtE_9y>&+W38?dXeYccCF z8!~It>$I!18`bMJtHvERuIpdVr99R*dN)Ql1~(=*<~NpjW_Ttwjj>It8?3Ys*#+ASLkwFC8*{s64%E(#oXhOXTsn?c_MJzo zXR9adr|kRe$Lwe92kbYkhp(IVTNIouC0l3CA=%=l%WHG)9S<_5uBPb?J&vW0g^p1T z=UIDM2U@#Yms-bKM_MPFr<<3X$D4bbC)}sp``pLeXWR$eH=T!_=bd{A z+U*l(_Z|7wjTM0v4Hc`(`;^Ygt)LyEt)d;nZNnYsT2Iv!)o0af)u5`0mSq)7O~Xyw zPZ^dKmK~NY7k(FU6;TzY_?E}|^To>1;-CN!z9VHz#p8q`4 zI_7znwXdq3Wu0VQWF2RmW*phtGqa|Ha597KQ_U(#5PAZ$+k?l&^A-I zRJYi;>&0H!c?4uP6Yr2cI6WhHNOBZpgH20K3r(X+#uX3Jche8k&(rtP57c+nFV&CL zkJK;LcGnKq&eyKjuFM~>@33F8p0i%Gp0%DfZ^w1EE*{^z%Fx~8^KwwJb@x1+bGwyn2uwt2Q$Z}e{%ZYXZlZ$NI0 zZVS9aJI+2+}XRgWs}q;I9~rJtrASzb{;R9;m+ zmfu+4SwFV#uO6=+a2|1F!eBsXhb0 zh&~Ix4n7aQoWDJOlzyaq1AXg!gMFiYyM9=HP=7SPv%kH+1HXyB4Zjn=nZ6&sCBJ9B zR)7rnp;m#m`Pt*3jexQNhx`-x)&KeGnduqnN&TagLrQ~BLr%j?!!QG921xc-5+V{b6kN({pDmnSoQ;~znhluUpRJ!QpIx5~ znJu1Oo_(IZp7o#2o1L4zn=PANn+={lnr*5@U+$l-<->+48Nlh!?$_?$>gO5o9sn8` z=r0&h-pjZRx-Gn2yp6iex(&G9zpcM5ziq!AzCFHezKyxzpc9+yG_4+yDhps z*}FjCFc9vHHzUS5gFiz)L!<~#5~U;zBqAa*BwC7J9~~S$9Bmw(9PRw8XrykWY-DXD zWTa?hY2<0-ddPn$cW8F#cBph{btrh~aAE!yz|0wrp_UQJg^l0@c_~`Ix z@hB=4bH-pgi5EFMUk6(!Q%758Q!b-$S){NiG-b~$0+05EZ z&`iO$bc;lkoVL_6}-%5)toc5vnv>Q>^G>ek{m}A!-se_e^o{OD}nv0Q(W*fyeqB^KLvNFOp)H38c3^xcj5<4V2G&4*$NHM zm@@c0cs=Mpm^U~#csE!!xHcF(cr>^)7+sjPm^fX?hap{@h?9_=pq;Rlz?0~m2$VRG zkUUm5c5Y{uOwd1tQ?P-g&B{TjhTv>TQ0d&Qe0SEVp4*sAYE2e zw!E0J_`YaaMpJfG##0tpR#1ji##9DXMpbrU&S71+b*9IeGhGO^ki9T;mf&RGPRPT~ zL&(F)L#v&bla`Z^6Q7f6BS9xwBU2-3D`hKVD|z$xM!cm6u4H3@Y`$dSWFBonb$;bO zh?`_))bRx5VgL8K)ZaPnKIBf~UgVDAF7!b8FnqLhC_R~(z(!=NqhqM!xE;~C~!;#F9 z*%sH9(3V4Yg7vojY34)PWB7gb=6dWpLpO1g%g5|%^quxu{<;47{#o|M^ni7bc2YB{ zo7ltq)AUL6W_xrqxs&Qk|MT~|?o;vYi`W*vipG#KqY~+r`ku(M8im%tf}D#*=*`hbNvVn8JZSdp1xgAtM4_SJ>Wfn0%QTo1dSP)8HJk0 zj7CkdwtKfJ08v1$zkmkB7Uhz9Rn@L`_itZaKq81K#|-!pD5GQho5z?5dXGhXf$lJjRmiXS@5H=z^`x$=+bgKV?QI%{WJccM8{YS_GRrF{1(}G#C zyjVfJK++IEM;NR!%h4 zll^low``~y$317-OWmNU$l1=ch0#xQIiS{?(3Y>;X1tV-K6}2-t6$PtGmoQ+W*~ya zup&AteYyb*`ycosbkhl{h@5prsHP1#5xMOIuSBimR7RHRuU{Ly;=eY9V3yp~hj^6y zrweJ-M@~~~?k^1`YW_PzF9IoOtYtYK9npx_L1_o^26ah?vuS z!$b_$WZVSY1lU?yC?*f+r<<=R3)KmK{h(W zzV+S(>xJ{j1K<-y_FQOuN4Z_;mG#Tre<#pdkvi;V&YH#Kwzw_rD*%nnIGgjU0$8)& z|LBGD!vo|4y!W}*;=_nf+PlDZha%StP@kPl zSoa_C3j>*l*cH!u*pRAF>|N+(>TPKK#;u-VslzdSqa7Xb8}TRe+dR-(IPh7W4(%Kr zblGLtwcmxnziA;~k-hG}As>+buLlK8dN-zxK9ST?`x}Rst%0O(R5I7$kdaLbRqL<9 za)WZiaszOOH`r&IJ43o*x`Dc(uGHZQv(@2rIG`OG_8#;i@n6fc@vQ4ddWv+CHUq^1 z!~)6wap$XP!&Oc*Mln$jR#(waQNBfBjlZzeSBIL=P;7u=Yzfa?jcEwp5x{u!2XF!k zgeJ*}tmP(N>DF&%d#X8LO6Z_XJQ!8w{NwCa>)6OW#*#8Odup;AY^A6Jq&33F6UQypJ5;L^+et% z0rZVW!eB`ysb#GLr{fp&iOH<8Z!ZRw(Tr4OLW-cI-XJ^mn?Gic(>kP&agp3@bzvDO zh3sDXQt?zjTlDmphC5Fyh3g0D%%NSy3|HxaG>Ff^bL@@ z6me4Pzo{PQ%U>K2%wU* z3qCqj6MM$mv$vzDrWqQQ)bB#Z)~uD)q+dX_GiPXP)T;^WXUvM5n04gnqz>%_yoY2G zI&q+Kcu>)@9zus{i`Q$wPXCtJrGATro_SbGHH8<(J#=>YhlW1vYQDF5y}L%Di}C5B z*aIO??y5a@g_bhb6Dj4%Rd3uKIb#=nkINjAPE#PU`w>s@)2$O)Db)Pio&}!;VflZX z5UfyhUqioYrs;~_!PJ%U@^K@F&7Ia)-wUIB{L(=o3A?$tsa-)^1dsGH?c-#tr4UhY6mMcyu3KRdPA8lGe#qyR) zKnvp7g?XiqFvv153;F_{J>)IM{%j4lD(xs99Uffn5W=2AS!+ke`J#K5NHvj z^ZW0v1)$-o15qDogas+AQf8?+lrUSJYt;ns=t?;dYtB{9Q z33|D}AH=IgnGOIg57ipz{zDO*FZlMq zKn@)47s9%OPd5-$ZJF#rYEfDtUlHvPo|UlTVikhqBj_a%L@59_2wy1za{n7t+Qzqa ziyXhBreA0pRsRoiLtgoR>h!Ie)_=O8wE(REX#dcHRRebeS^={HpgA6zf(^X<+jDHi z`Z))*)n(lvG1)L^hMII~TdQW?P@Qa^v&x)wVXzdbL)Mb)Yx)n=BUAqeJ|+5Upr4Iv z=>okmj#WZ*j8Bz+Ax#tGJtf_HZL?AI+JA4Nm!ubU7jV~MS7Mi{S5yxvu11D~JtW{1dqA3;ziha3XNa4W0wmH-PVk4){S(ivjD-{thd) zv$xB-+1ZZWiuek7E7rTztLh)!ONxKOioF>Us7dmv+VA_nL#J}T<}d7jt7d$Z&2P#k zAN!OuzbF>9XX9*f(G{~wra#%!nxxv@yJY#M7?Kh&^xsA6qX z$<(Tlu3p-uw8+&T@eaXx!Eo6$UA6yjWLGJWV^I&5B~1usb;Zy7Ki~@Ew$k5?`rK4o zGn8dHSAp7P@eALUb1lo49q6NP%NY-qEGO!g(+$g6rd1p>8jd+l$J~~V4~0I{f&YDn z@lWKzww-si{|6L*#rjpOr8yhXrLE}GI;Tl$%LIO?hJL8VBAhb_@`#p(-gvxL|AJd- zXsCE?E^uZE0bg{tY{AWf-pkG^*TXGk#HX%ncG1k(SO8Q=ZI~Z8fWLrUl7N;e@L(7~ zU$963zF>o)8W2Godb~F*0--1?%Ra-w;R#~)DER?)6254P9|Cv?xiA4JxSN{rMYnPZ z5ODg(w=En&4Q>XTl_R`XlvUaYmvrM^VInGDGc6VtD-Px5vmv(teIkBR%c=35c z;pwJ=lMMxD3v#w*#59e_NlLz>V+}TD49xXpxWD68#?p$O#K()|#2W zW$w@aAlfnO46}e6Gxc9b&AHYekygG%S0}6Al-^4W;{kP3^BYGVnN=;3k1j>q$EVhA zQHZ#y)U{vK8@e_hYt22Q&#LP_F;}5A8Rh?{ZlQTy+oYrSq2AoH`P^Xb8-G>P_=UXz zr|VqSeXiiWRP^{uGu^nfYo>nQ4-e(d`LlXZ(`{`iylKwO-i zdxOO5kV*9Q$&DFWN?(p6jXi};^LH-AFdJt8hX^OdFv<||=9(hsg~!<9`}rvAL|9vl z)>%7Jm&-P=U1kcbr_$0h+_JYK|_o_488Rz95F6*VEJ;t;8qH>}w?6f^bqx@pN zv7?sn3^6q-^BqoW{76eUS8}sfa`RAfv%xw0?&si=RR59<6KgBVGb%?7ph4a^r1h?K==dNjjSRg!T7a zh$8E;uu-BsMl`0inAq2NxWf~+Ys6Pdn(sA3FKt2!|{3g<&o*$Huq zXc^oHT0$et&gbteF}42;w#$3wB6P_XKhFJ$KwGd|;l#mltc9Z`qA{6@1I}&8-R4;!$XwQ(1^P_Hk}NLQlN5au=P{b7Jo58a-se~j>9^}uv*dN(Tvs2|wwroV-+1+(hJJ3dQ1f~| zZf2P@gTCK;26PxissMIp8?=ISAn-dqB4#fD*dL?N@>D_WPTlDQYhZqDxvK^hQ#wHcB`iynW1mZC88R6y`6kC(ukSpV$ZD8XECunJaz>9IdbVf`=5#(ymO zEEl4sD1hJjeI1S*X;_%VN|k}x z@0%k{C!4lJD$d$C1*@=o?O6=PN}qthE8MvRs|bHXwh=670QxOpW96tI;Z>O2gEUnA zZUI)<4vS5mz?+8uh%Ij7=BZ%fSDL(nH*Npf8+Z>_Xz&iw@bn|HnEnld{|)jD(g^jt zg-{JkvOtZKvqZELo&rI%Fb3@BYnw)>I0k`elJMV~Z3qm~Nc=6EhYR@D}X+W<=@gK$lv0G1gq43)51rz*aGagz>SxyK>OXX@F0zW-%v&3MG4TLrAflP zWhOb@8wWO`&CRW>+6-gj#r0pk7EzuG`){V$5KYqndv31W-V#&1h!#^oF{K=T1*^P% z*A+&z_yX#;;7yRL!2ex0AxHztzcwS2crgMzXbGAmZ&?K2tKvh&L8T!%NQ20qNL%@5 zi7EoTD?e=Z|32Jy79sP`1R|ba{DcV2gdkeL{OPxlNs^-i_}!#}APuL6=C)$i~;FM`xYKl{$;>Qh`dyqJEQvO4q~1S^1h0!g~eR z-jjpo>5~K3uXLQcA8sl7PL z-C&({#LDi`@MMbM3g_s#KUzAkF3kr0S;naQxug0#nRu)zc0Es4$NItx#(XH|4U=D$ z+KzQ}+t}_6v&6HVI1x@VBV51Z&B6x_XD}#MBX>X-vx3*G(^gKJs`$4|$IH>a&^BwOdvas4?SaDM4XTHLxx(RS@QiHUsP3ORLE-Fo#Ia()4usm$EA z&}8#@9B#iG`#K+%eO`|C9g%1I&USV_;2W*N>LIAJ`6SamA4c<5VDs5{Z@=5%T8{p) zP~LjwxjG-l+q4j7r>!(1hqdQJt4g7Wk<&R5`C##esWWL%AZsvJdMRxzoh-d9RhGXI z#);v?`EpZod1M}q+J^5UdDoJ`%lR`g1J z)d><4wD6+uX76VHw)<>jHOU-Y4)wWWF9A7OZfDP)D5_4pQkw2^y6$nIY1Jt2HmIUf zsh&E}(&mzYcL^UK8fmgFvCJ!PCZ$`{wi5s7z5?5O-_JSqs+J6;)o$OMW0A~@aprOw z3F+wAX((RqX;F@S*i?1f>DKUYK7Ep?i3lpysUhagN=s@bx>KuBeXo+*obz@2nfz7< zdWOqlBX|BQiNeK9YCq!l^{cpIdkoJr3@L`yW~#iY6$_Qc)M4y231T2L5&lA;$vJ1Q zzZs1uGL2fNKR?L(3VFg&W-K=f>SNd}jTO7Xa9&^MvzSSXHynYM5xaXkeayD#VduPeS#xx5u`xNRl|2vUNYb>xy=DoP1f@ z*!iee{3e=-n-uHOTe=ed+~0X($GPWG-LkUixwNVZReKR$NMlT~NT?S((GxM5P=-?3Ft_%?x#VIC}; z)o^9o=Sh)EDm8vjC~e{@rb?bJZs4(LWTa-KuGJ_W%}qr2KUcVa4TU>c>9-gr_T_;b z#Hr$r*Y1yl37inFLcT!r-tT~jWYVu()akb#BSF8oSKdSXc zVayYcN*bP2H|92{y}g}2%-_*$$U~d%HuI{l@w$r`T9r0aNfoVhY@B~RW|mU-QMkJg znh(~*insYiriFd2NP66jl3f<<+8AD%f2xbtM5Z}){tXIEgP82*dbpfatYH4#TJt%3 zNUoIRQ(mgE(5jh0Df7(9-J&y)_p%Zhex*}>=CPmGF<2XpL_e-C{$`xFmZ}?xTjPC; z+}Lol=i$JFuC#EABm3q(mwS=SQo)booQlkT*7nukPt>~OloY@m;JI!W zbXjWW-jH4_7vHpuNS!q2ivqJQb6Jz|-axddq@X^hf6Sk1npzfo@^IV-8(yBlW!Mlr6|n=C9h~S)jGDl`Ac6@v``kxVloM>ZYmVVp=o0`vv4OgJb@=sZ{+<=dD#5 zr8bk(DAf>Lomh*3$giZ~KqC7=d{r_s!!CM+w-JwR%=~m~$__(^aBMw?J-_%Z*Q+!7+w~w;*e_h4DykJX z7(WJtUzddglJKA_{5rzo1uV)T&yr<4z)jh>EsY~5y*#1tH zUIJE$Pmk@Z%ihygsWF>$rw2+OaQ5LchlIs)p5Xqslvg|O3S!~)Y^TH`n}TG^6piOp z$>&FQn`oEkM=Q^n)2pu;o}k9nCH9i0n2B@-Aiw03u((>F&iE@T zXfb7$ZSA^eW11{LBoCzWDQ%hg*iGPYa>zHpHg}v(;NbcRZ%F=g{%%-)`RZyI|1)Jf zr0AoL!oHyStzYQq(EB%8AM&yE#HgPmrQL0EN&N_GW$U=J^m0P`1B7`S5rF z;R>9T0a-VQbZ5Wt$&>+VXK`lsfGoU0dA;!MtbrTT;eNhnOy~!EQMzK-q%&~})Y=I) zj3FYQIQDI#Q{Jr}^40|NOuWgg2=NGMIyGxK;Omdfa_fOcfQOWY2Y%dvYC)_D`nd$m z5x%S=cxiil>3gdD+KHXeDW1k8oZv5`3hq3e< zc3$Ha3@_;Bp2`_eFL39cOdGTfnCG6Ksj#7T2*#a3y7GU=2gLQ+ih=OVq2>Vj{0$k@ zheY!$s6U|U2ylbA7gSh22&vJ6d(JcW))`my zC?1p#fJGbRs9xI=UnCnuuLQ*@_zb^!8?dQ9X&YFtAZ-JbPI`gsU$gA|4^!~}g{E(% zN?uPmZIW+0I{y3Wv~0Nl^Z?Ib;RXnZBn4KTYUqO%jF34qx8PjSoz161Z#I;-qs=r~ ztu0Bq&(%Ypt_D6_z;m*%f2M5g;7;5Q>q5*7S*@)|Vzmd423oD9WZ~r<2cNv+yLp9V z;n_w1wfYs2nB)#*8mCJq5opSjxF`R>p|19>T{ih?Xg)v|mQ45^9zdQ!Iy4TGG2j~Xupf`I*@`e5bt^?G% zpZ$gkxySv6>jM;O7kCB0I}mP{a0SBKKYI5XK0vYtl*_;Jh84LVtp=v4A9e+jsK*54 zkxZZyO17GBfjq!1P^KFG427?guS6ODOfkgmlCRULmE0ic9qT2@om+$x$4`uf&r7jq zq(_sIIYndqfbEECg>swmxqn%P3Tfh+MaZo_?KA)PVLR?yEHNf#4^8P2zR`FzI`!d+ z3}mhWpP9vRpHLa?Au4AP1$`Hd2ip_)N7WFOe#XlbL0Ie0IX< zdLzHu83_h9SGkCE^g!fyRP;;_=*X)sL7&0fN}uFi6qn7FU1;=iPwSW?OPA=+=hbg4 zQ|=&X(Rx*{Q+9(tZ&B#|o{AB_@=AmIujYqro-u}4>vf`NC+U|{j@(0$%XMH_D*~G% z4r4tdO^=8741<)TN1RV<7hoB`{#X*2A}ul-IkvILDbVYc=nlwChU5kz@WT)WVG8|X zj6f}`-C0zrHKR~rM6JMtR*D2I@AX^M=`E|(VN|I$v%{5|>K}DwNvgmUSMnz+XCi2Q zqEag$rJP%!7e;kIvP-7!C1V5&YOG_aqyAN!?Ym$02$PJ-Zm-30JovsOt2Eyg4s}K^ z;t5t-{riz|`sM_Ig|>m`M!8n19jt3+-@dm=Ec)n}wvWoNp;YM1+Ma?tK`teUwte4KM}sQG_XVc zASn>>I$*~IJrXIPtl0ULl55KoL?3Atw-NEgo(LS9nTMkzxHjCoATBDnD4VW!u$a>~ zzl{6pX`;PCDtArG7*Koo`oeF}`Vse%`tU@Lk5jdSvIoEHc$gpDFQM&xYvsInzcZ{3 zMmmSi3r799d(&@>U+`Suw!keyd|`G^%MMP<7?}EqZ%AFOhPHvS5w^m-t~TTcanIRQ8lU6$Uc%mRfw8ZQXP}CXpYh_)pTV4 zA;bUgbJUj++xMFO_pb;mUw;V-pw2LsaCXZ;tgR9>aiF2 z!%OhbU4$rZsOVk*bO=$Jgoggndr@>i>0S|ZP*hv}o8dkdbT}j(0tvt3P-(EU`3xX= zT}+8!jDt)ddR^3lJ0nJ{5_@~tf_{4%yq`O+B7j2?L{x+P1>tq2k6|zhy3zuAWcM1_ z3Um^F1if)D=7L~HGA({k8^%yxN}MGcZ#;LPDnLpm8zyGYd8&2X!J!&thW#KBGt7yk zizpF98UvL8Em-;>>xF0dY&*e>Mh8H7TWSk>_>han_0V^GjIOpj?q_kKTeWfS4s*Ba zjRv(tEdznq12*+a?g4?)L@v**xBRzb>k`5aJ|A0Y( zPVV8~e9-V&zd@5;y#^gxwVD}cBv0nZZktKI7oQHM9$_JQhOU_xtgqo4XNbPPF9G}6 zc2`Cp1W(+A9XL)sQY5~c2aiOrNqgS^@$f`l2Uq7}!^U*^b#(Q9C%LhXpr64jAb!Di z6-&YOBb=2(dHI+LT?mVM|N3TG=z(N`QQ}x>}%?28$ta;D>Xid`$rd! zLWmD?#oyzCm+R>_o_kC*=g2Vbfj-<_E%@tym5(z!!b^5Mu6&*EsXEe~XT3##?PmMU z2Ta>U+P`p*{|V-IvTf-}&_tJQG!QVP&8tI~RgEa25K=%TBnwAK91I!L`%ifVHC{Gx zuw+b6!H~AB4qZ_-qKraFG3i`L$n?^s*h;z$mJV_~KHyTc@9B@Odt42t=n5{R^J_}mh*K53&}k`pp&+i5!Gp^Zz^R4 zottT>Z|IM%zQjfNpvfeieninq>Ys~v0;0w_$CNj_s}^KGgJ* zB`)L;ok$_u69P2F=A1&`hyK3SivDF99r&Ai#90UYkICSlT5*Aza^BjwQzo@UgaXk2 zp@nMF)r$Yk7YdinA1s;GTQJcrmbg&pVvXn!vZY2H7LxBOzK#Ehz;^8z#U0HZtPxK~XPeqp`R=c4cltO;=l2bAoiBGONes})Ce8ttP} zT_O7EQ8$_5pHYbYm~@llYDB#(;tDP2Ft1X(d^N|6LDmu14~G8|>Bdu7#07HF)e8T8 z8X3S%T_HqrH_(fwu!s$%q^lMD+cYwOnz}-Oq;8-a{v!rb*46wsaXgujT_-xOMp*Pe zT1i~QhW>}EXwEzR=#Ldb?k5tw|1bq|*3}53K9NAW|M;31SvLT`h{bb182)jU=ke1Y zOkE8xD$__GnCi-JXed!Eph)7SyDEIFxW&orAng;OuY)VNfpL`zlnLGg$HVqRf`#_ zmM(&vTi=MkKgh-EKFy_S>1B`D-bXaHY$&(1aNd}iwn8CQ>*5p=2Yw|f9_x!ajzxBu z!X;^!I`6MFTW%Gf+x`IrJKtV;EAue(ex~0T2pW*A3qr=91z)JfQVtVlxkLZu<4Xep z2At34*cI-H_FnZ9z5nTz*}<6{WKR?Sq{AK-u z7gjiHUbq$=QcTGAu|t-L0veO$VTB5z{LR$-1WPIoXh@nv0h&^*1T-ecqY6bL z?z?+XVSS-}MHVsDmw*>?-jZ$fGMNji0Y|y}-@=}X#YmcT`?-=^))(-R%b&mrpGB~9 zgPhyue?FeP`nD!M&uqTD@0yb&w;C~i$-V@#kaFM1C`mIg0Gw^|ce+`Fku=0_l;f>DkR^9r z5W{VZ6aJs*n1Y#MSxf3iTc4#3^9Qb5@8=D`Ll8JV!doBz4GjlifA3x@x}@t+56c(> z#?SeDjPai*Oay;ZVvGfv8^whtuxD&I} z({-VDr)${NUA5WWIE3McN->&Etz0y!vMvmjnsr6sb0pPn@aYrz8cA?~?OO+h4g)J&i{ENcz@2PSh+Y2!T%0fdD7kgTTsLSj++H6&Ag*}vjNNjm&M)FIfH{pviQ8#sJWo&`t~^N#U{`~(!`!4GO0{!W}AI=8^puSIv`Tpk+> zGT(>m8l#+Hq;>-R)J4@x7ed%NKXQao!!8{m{4b+U!#aGW<)3EE$V0^ZPzjo( z+htyQ6IjX}Hxo!^9&!_y+lajN9-2E$Sm{0p7bu~)XObEnx>xCcy%Fs*F=Bw|eT&z2 zN|}uM#j-SzF!}T?_>r=1%rRJ*4YN`6gTYR7dEHE6a4`%1XNu3+AoJZkV1f=TKWhF@ zycE+{n@R&Mr`z<2hiPw+m>;@v)dHI~PK{l8!#?s9m41L|R#Tl{J-bS)VP(ewy3nAH z{e_%DWsgmNn;hdsd8&>7xqk7TXhZsC+B$mbZ<4xi5%}G?am4XUIOm@&ngwcj=U@9X zX>;q@ILI<1JoNKidpkee3FI>`bqgNi4&Vt493R0yUyek-gEoD&upOQgTCcq7{M)%X z$dERoNA;d*S|>R%hk8_0Po#RYA)!OmL#~N8={^oK>Jhye-_38DW4E1F0NHavoMMgs z`CwC%eeMZ!XjlFYpfEyoWxb<*$0G8z!skq+Fs>&A&HIxQ3XugN^GJ9X{)D8FfI{Y> z@-7gBs3GUU^CA<35GdqA@Gkrg!32@@|7`{@0O?1<8?%L0@CA390HWcb8mzsEk{SJ{TyOO0n{(HC%%ySsSxaSNwqi{3-O zilv@28ssXE5LEMXojQ(jX`ywgSKXuyxb~38cOuy3EEBuC5VGPD#dplU&<-pDZ@F}I z+`3c~OfD9bQe(MR<8viB*xJQ5=T6)*`3(&)<8L<7^{y*yU3Eq|Oo}f1aa4hCxpgqZ zZ-+TljuL0RFb&W%-Ow@JG!bSs<6497dGmYx9M%Z3nz^s7TZ7d_?8zNs%{#jZC6(tk zhHkAAcAci${Xf}Rz0kfkyFKGu*BTEvcinrQ1N}IC(s*_wW)< zx42$BTcd+>@J`?2uXN`)`#L$q+5iXO{zUWAq`VA=;_-PPzWyTes@^!*1UIa~>k6`C z0YJHd@qh;3g;(fv{*MC{H_y+>Ro@2NYzHJG01qFe7=ZF7D>j`VX!H_6dTb*E;UmyX?Tv5357gBd4l;jnmnk|Xdl^Ytr&_*A%GI8k0O*# zBGCU##fHd;&c9#LMYZyK{6-IGL2H0ia-k|>@W>B_p`6{fuP}g zfIw;hz-s^iDR`)Ujz*inCGJ#bR=F3gB`yFca5;N`3LHLR;4-%WWVk$o!2hH8E^Et8 zb|oBYfBDT$A{c5fyQh(`5{;;wGXR*t;)4h-vuE%hIn+P-yX+o-SVs6yS&v%`o5#^! zc2h%v8EtX0^Mu=tOlA{GVVTd7QeipzOev=grNj!fOkKBJ4WmrSs9X)d>_~WVPPWmv zsjO0P5vW8BKoNSSOew4^G0)68$1Jc!jjb#xq6|i05vZvwG1ttnsSG90%u9h1M-eNe z3{Pu(f)-!Cm^Y}@<9NcgETIcLAa zP)h`f5`J4+2^K0sK>(J`sg)OnK*0FsDCPdnZQ$95XvZ|hTBvBXt)AW3Aa~Tiu)4~O z?5--JXiF19ogAfrHN;%YbwC&E0Z_BQvM&NwT3YnH*uT2^+&^?a%1C{fIKKbt;=ZOQ zWgK6u)3C%+KHoFL(XfmwceHPms#@w@Y->>yzO;*Ssd~;DMv%0uN;))Ctylpa&Dw~YUBPOWGWXa1)tR*N{H^Xlk7F5Oew z9c+Kv()DP9wTNRmw+6Rw^lPsDLos43mq8wD`Dz53C_k^!^o&Q0orT5qbQzGx_jMdx zA2Uo&M#TN7mk#{v&2V9omM{9hbWA0C-&*tq&pi6}fqP3CrQN^Cqm6GWhNo4%Ek9u% zzn0j}U6CoOE1{B>hAI|&Rgp8QISEWkIOpy$7uZmnmsF$sGIkc$@-w-IYV~jBhP8}5 zTN!sdhgG$A8LJ=Clv%xiwDwmx&O?{t9bCHXs~g)0kPkP`55t)GMqTvmy(psO!66terow&+V=`m))}L(Oj+rqnLN~ zhN)_+YP#mlw+ua-mn$C96r;MquN^HSA3c|z+nEfm)1}-1T$A(gfrh$j?Zr)hpU>mbT)T9nO!f5IlD2MS(;|u${pjMH;*X77p-a7ybxRvPj4l|I>k4 zPKjuknoUX`CanCz!T*~>?Sc}pFf}n*7-Ys*YO=GTl@Fa%0a}NZ&VC=#b;YbYaEV#t z4Py>8$MigBS+RHBXCUArBV|Lgq$0y)Q&t@{r_?0Z`MS*p3dvD?`MU80Y#O5WlDyf3 ziS)S3q66TfeV$k>qFSryp;Kb5p%d<_zRJTG?W`i}yR43pfO=Z`$#=D*1|aG$`Eqe*EXitciAvwGg)^qc zt1^koxdu$S$~MVz!1*%r7c*A!EQHD!Bw;;fK~~qZ;X8$3j>W3^O*YP)d2)xhUzu8e zr8#rfGwBw9=@f#0HEJEV8IQHqD~mocu%sgaaL=3$bav4pXSIl1vToyBFYm71qtF!1S`lUiT|Hp;9-9~M!ymio^%$*w^Z zRu(oGCNu@jtsN9G+RbBzu_y0Q6}05@kfPS^!CB#B zerj7#)%&maXX}0T?b>u+yc{1~S+3}}@6#-Bly z5=v=HoWtv%NJT#@@gdv(V;L9kE=e?uOh!H{jg5pvnv;kcqbNz#Y*bz>E7(D1l*Z72 zlu#T4bSw4{=W>BY6vkC-yE@K>Z(>KH za>CcUE$inOR11eIrSrel>wAniQ^dEX)vpoz*@DH(9#d&|Y18hLXc^a0cf8t$(b45M zmQT+GpP!!Z?kbJo3hwEjoxFqU3LhHp?CPuA@lVe+pPF`0fH*5fz*r7Cm9QD+-qLH^ z+s)mzO{?2j4h4e3Q;pr=7uUK!KAhJsubFVv%)Q}GOboDv$bgnumAYb)GRNzzq|%~ zcVGF!UD|zQ+pzL(KD|@Z%=*W_gZQC(w(fiT!lTrW@8e~qu1D4C_sh2Kr7x>|pT?)> zhEGnLm1eH~CudOvP2^cqZ|j_}Mg>`GZ|`inCFQQiRU>cf{5UGI)0{XaGFA0dA+$>6z)>9m}w?xZ*LPF{w^TX6ff@d%kd+x`RtAGRKzIw=ENzlID(-x*Y%2 zcNinhq1q|m3agBV%T{DsA3xu zq2?sFd}16?Ke}xIqA-aqFp*W!k3~Z?v{*(D?;n>CL{>QilL;$)q2#2u$YK}y159EY zy#KhCYn8YDr?-}TyW*}?L}fWWXriiufnn0xXvAd2tA!tT1$M<-!l9H2Epdp+vU{*% z7X<^?@_X<^us`OXp#&mQ7YrCCvOgk-VV7={KFj{wgP{V8Kp_9&^>HMK`(ZsK;+ce{G)28q~CixZ2G0dV0oPQG8JR(PVIcg$DrMZhgM3zMbI0+5uaZd7b%tVfIa%lf3LSktJIb2X@MLAkf zXB7o&qGPA|8CGMbg&9*~WtjyTlZguK611Jj^P;q>VW;^iR$-?FDOzEt44qQBDWYMk zJhbr%bIP(})P)X833Q^Q>7<6lg%?E$n?LGnQCqkilX6#SRzXZx7@r$yL48GxW07q5 zA9qHz*Ez<&^Nk5JMeW_`PVD5{n-6kg#Dxv=W3XbYlBDgVh3Rr^q=i52<;O^W9OHW; z&q?BUBG0LccCwQiFb7@~#c)BL=EqP$t!lgqxx~>mDRz~g7Di0XZJ$D*Dpx|F4$t+j z)_(Tpso=A;yLr`=97XM9wN-ezOm z;0d!g?a;q?)Uc$Wxl1bG*v3*4T-$vz=!6Va05^D=%%Z@FWb@wzs?Nb?z&+mP)^s8mn3 zf!wJ{aVfMi{Ap0_mUiQy*aNY7M`^lQg*~svXaGlO=?&g#chn?$x^?(?W8eO&l#_dG zu?rYZ=-tdalmfSpiX#HsNgpa&2kwa=TDTT2T9+Hj1zV8A7ue-rgWXq7>7{o;ofdrG zvkvWhQMYAE(!AzRDmb}!RXN(?_M!|lbrfIBPCf>2WA48)ku z?yaBIS+tMBYxrU+iN?XJklPG6`>Wtg(exWrVOQXS;T)sPsi=#=ts_G1IkykFAs$q_fe`E1a+ z4)}r>GG4!%2X=PPV+$ab4WU&Zu`T_YEi{wR=$d*hWV$Vu74xTt`z5N3@nvz$K(Q_H zRbTe*^eu)5YUT^J+zYgYAllW?@hzwa!sd&(2P7xgzBf$L;u9F!g4gPs@{6^{9(ixu z8dr3;*(c^3=hw9syUr(G*0=Qea_3dnN!^;|3)mN?|I6Q?8%m4gesAE$YMh|AV0xAe6T;jW(} zm3p|syP>axJW;hn6}) zL9mdU$-m%$TlFjc@V~;R_YOP$Hsq_+h%;Xo(p_fEb$|!)!T*NT*sZj`z4HJ&K*Yb> zD_m8eH_yd~Y(OS5c?SYJ6mx+fiVZuEl?8KnM`dDA{Fbf*8xlKMdB>##vAPe^g;C4j zl?8!#*I*?6c3BTls`vcHtpl()54TtsUrHF*B;4EZRXORu0+UzLatEu*pVp(i42HOP zAv;77DWFkNEDTdZLPLX#%i_bPj*X<`^}9N?t%RwRIShF=eKBK$+761Om=xjq}&4Prl(aj;@uq zzVj`N%9wRG*m28bMGgwpQA<)TCY4bu$+~r+)ynK_BDirY@)y;(Y@%1yI~k|=do>R* zRx+o^Mwn&6&f1^l3WY(|wDo4&@*TFRv+0wb7iwqMz53XYJn!yl5x@VlYQ5ZpmzCx` zSg$h?BJbPYT{b;CtU#;Pd(YimHL0u5KRX+~YnIQ1C$%^*CiClD6_}#Oj&6JZa;*%2 zr@!bR;aTkYOM29V!ZH0Hi5NEdzglF$Hb{W25&)UUeAo?oBI$O7Flw~HE|LM?4ST%) zZ>XzHT^t}9-k8r-xi>d3)BVno7?{MD@2?g=@ammja+ez@+zvnR=er#g4wpe)44TpK z_zsr;pYYv5%fv2V~czX0^74mM_hXR=P{!o zD}KQ~&P_^gTJ(%n)U&cvlRSK3jG(bQ@KcjKdH`4fKgg^DM0iJJAqUlVVV7j0ca{Zg zSdU68EP3}(WQU~#Xm~%-1x2c-{1$VfKa>TMSf5KP9FzsLu;b0`{64jDYk$55zVKsB zr}28iSIa(U8T*70+->r|(|u#t$@E+6_WaCY*JIFPMHH5~d*{6IaVe#?^No?-v@zHx zs`Ek(J)&Wi!&@`wYDAjlwzPB)|M-Q~K}{#C^vrdma%0T z&&Fe6&cvsWqW?G2W3jgPn}4?RZ;ol9*ziMj?;^Omh!p~vF(pWdj(mAiDQvm_6ugs*m|Z=v ztcG#^4q@>2If$lHna&e2X!89V1_f-rpxpgIf+=lQKyZjyEcnJGXXO2|5V4tfr6JwK ze$;=NG>J~gc$FbxvFui2`h&2U4r=f#1OJs7;~ZAxXE-L*N7*gOPO*)t3bUS*{IA54 zKWQ-nNO2~7h>{|CkfIFup@09(2K+xRUKIbQ*taG2BfgXCdK3L;%_p^g*Mvp3%ZULF z#3ni5!3T$8l^OBn`&VN>b+2pnX+yfnyE|tk&W!wE`v?2Tf{6GyTe*Y zF;zj>TpwJh6W813{5pOyCy`ND(p7vS_5y=o=vfW}x8&7=y_aLZ0}|0~c+%O9DJaY&{Xlio8JW))4$C%C53{qKnj z-bWmTF@?dc*L%m^xv*Ml_Yq{EDdEcd$Qe=LHJEt6mIl>tZ5#BVx%?GgvF;piyMLjI z-;d{Gw2=%bC4al;D1Hc3!D;QekdS}NY`x}o-19qw37UGgeZcgls3I$Au`5aXFEXHe z1Z;tkt9EcZg}y&J&n@M?2PY^~?;BNqW$;Ehp}{=O?Cj`PCGDA2YE&kcH_jQt;S`yP zdA84Wo-3;S53%wMg2(?9D)&O3TE$#}eJ@5mO>a^NCX=>F%o>JK$vdRxjU#IowWyLa zn;#lgZd4?uH`>)JSuKrCsQaW%e#tU^ z)ZM;J_&cpw#B0d+5$sWXS6npMz3+_KOJ3?yW0#EHb)%k6exs|Qnx&X~71V}xW>wPu z|B;|Cj0ofxdMcGVo8kpgU$ovk7)S`uB}OG&^$nA4qQ3)gqR&Ut{$Inp^raA^HR*{^ zD^i2Il#DhPlM*Y_6JMtg`6Fie0=cJ3=iGPpB6+2j>7!V=vRdcdS)x*PgInSMhU74# z@U(yE@f3HLMfEv#CVq%5Q>J|Sp244pp^(}uW(cNebi+Mhecj9C0qh;g>w(1og4!gk zT?gLvaIKb0I2P7+66ngLlmwpO=-3vtVofeGS3u6viyHjYID+W=zdbN z=rh^~TDJvn+QD6}h1u@W)`#C7fbR;#nGFz=E_wJr2LaPL0e`ah_KTRRi@k6^Mc&Bw zlH0P+!)?!r7U9-ePBE3&$`_s+)Yk@*Y}CW~yn5;33%ch>`NVBEG<|iB>yRO{e|Gtc z4)FZE38jS9FgkTvBl0l|!PH8UdKAN^|9cVLTbu#an|x|W&Zh8X{l=+;$Afih(3J)6 zdPnmo0M6HZb4D+^`LJ&Kezk7wAN%>Cd6j>9xN$$M@6XzWb#J+yG!LJy2$@zqT<+mS zd6Jz`d#AHtM7A|!Ia)KnWv5wfqer$?V>oKlpLH26cutnQr^!Au=3ki$?W484cfm`x zK%ng-R`jsnQgvV@_iajgpltasx==6ec)D(%=m$9n}Z%6V*EQHJbP=O@XOAZTpB_eNkwXU8Ab${F*Rn)?VHbZ1wmOWuk0& zeIYljdDbEhnx>ee`u`L>+9cy%&Gl=#wTQzxpYBp|ZWIQ$k2Rh`ZWS@*rUjTGmhqRs z=1#L7*+;!b=r6R?-#v$jRk5AbM}0y^u^rV%y;kURovT=$uJn)SG8f%IJn2y1xgfva zpg-mN49gB6vG@?vMi$>Ncm-l`_#5A12Y)oPoRPz>t9G(+7R>YiK>NC*llve(xT8~h zmDTd%Wm}u3VRQL~Q{rY--MXSv`LpowCr35xCuMcD;C9rfWCL|l6zl+Qh|!pL z`1!y}a%;ab&Cc|u)n_11S|i~x2y}ULV}Dmaj8Oj83+#o!D63Z}g_FBh18xMJBP}*$ zd;QhVipFdZOl57)FJ+Z?0dbExrm7At%;T)>GGSYiZU$!fbd2r}yw>Z3%^Iqo?Q&sD zi}Hr!&Pl{m6VA6)roS>9+UE{`8n_;|ihgFx9!8pV*z_xrafZ?geinW|2I2*<@xfL}b^~b+EnAMOnk~ERYkc3))V8h2?tQy3Oc ze0*6kaegcxU&Q(DoWB44bG2gGrRb5%ivr2Zi+hDCJFlcJI9k`QuZL#WN|&2uo$Xg- z)62Pq8n2s<%!%dPRd4%c{{}Ayc*CeFzbYKfNWzyBERV1}Y1xIuI9#U_5g}nZE=gJC zqO$Wb<*ZUK3@M(|X9UyF?H7ZS)!lhy&$K*g`3F;{7Y4!2)H3$r zMa>-~jgRR@xo1&jlKYmuJaVeGf5H2Q+5_byH&;_X%I0wxpK>dAOUuLdVA6YSVqN%K zBYjIA8FPBI8;HA1nj-y@@lE@xgY~O*I=1SUv((h{RbVaki>tOk^ptlhShrvGTm9Q* z@+GeK`t7xAmG;+1U@hKlX6Dj+CAaX2@hu|M8rnV)trns?0b5p3_3XRf7TQAx{5MwO z+q&JNSQ;1nckM8DD&^eWYlDZEN1uH*rIk|oP6L!w`HsT}{Y z58w>`p4|1ef7!fcJ@y{2no4G;*8zuR zX+NH!Qs@WIyH<4C&2-xJVC;~!K3}x%(rjsbW1JOvNDfk^|ENDI;?yrJ%k*FWAUpo8==BvBo-K(;zl~okQsGy7_3Fg{J?dn8x*p=`d zoK7?<=-Wse^2&G~wO9GQX#Uj0a`mZplyIe9jEmJzq4Zp~qmxn8?manE*mu5*T#iK@ zNL}WiS<4Y_9@Y!!@9rDS?8xu2Y2O3;*?Pa&jfM60m$G-gj=yH#e7LWValiYraooQD z&_#XEUlgtQFKH8;Z}2Z^y0C-|+AVE*eI-01Ts(etEOVTtJ^7*y<2rYQ5PzhC8`;+u zb8xY+D{6A4*8*c*_6XrN6~2);o7?BHas4otW9gc%wN`l}@vNT`%&ZU&dF#EI=6Hf< zWe2}8{q6g0&VIK5YP-X^?tzU7an(|xgemh-asJTDudM!R+ZlIn^Grcx#wE~t_46|L z^vMMr-Dh0W%G6B-6HE0uGNj)mI&{6)um4lV>@SC6{qsp0cXcYpojJg&1! z_Q`3rkoipWo>Z?Xf@4(ojgx7Wy;s&*)b{RJIP2Yh^|P)07sae=8W6-U3yS^LeVYTTyc>(!4X_DMM+Q&%f9a%1Tk?1F@*W=1eDqqQ&@ z!M+D^$uBE`3Mq3NGK(h7#MDI$p~>INcyz@{EQ$r}Op=m}Of(nD-9hC`l%InftVD+0 z94m74#U0E;ttc4+mD2gjFKhio70%|QG}lVS*(LK9pX7LxlUBq*M-4UXFupri*Fx;` z@E1=NGx6oimJ`kx3*8ipa_B%4NmEn`y`Kx0Hz$)XgR2vsMUGy7Dc=3YBs(SIr^av_ zoe@47bQR^KKTDOJj&L(tphv1`%(qvZ26I#d_h;)$kT2(e8!J~7vb?LE-AP%Aw&C`Q zf`qiKew4lF_fl4T!x^z((%xr&seCU7Pz>26VgX_-8Kg}KPu@G+*<7sdA-^Td2#N1e zEknzBVDEKEP=4mH9xrzn+N3wj+O=feN|L{xs~Eel=}0?1_uENnBg2l4x1l@I=S42_ zF8R{kJk4U(q1{6MbG8-H{Ldd>4q4EScQad%%WE*N2i5-he$M6r!VDJ5Dh)O~kvb&r zf=S;?EBv0?yGX`S84SuvaiZJnkWIU4Eb)}epV-J1=J~R$^f+Sj7C1JI#|PaV@l1$FFJh(B%9m$(kuhDW1Q0|;`?vS<@uPyWvT|pc+x5Ga;ZJLJ z`E^i%nmJ!7d54^G@B9m@@zA_(1yB}~P@v+jbMR9fchsGB*q7q{7}v>k*HxaIC4!Y; z=M#4DKJM>DDtYe1S6CK^<-)5EvZ;1?d>mjrDo8F3M30s~FE*k#yKynizZj$az@`H; z9(+-!15u|JujfepIeoc7C8vV_9tRt{y>-ji4CELLtOLxm`$Y}e63a--P|H|nh!0xh zHN*WuUxIA_R)AT9Y;IpPcW$+6KBO8Xq4-xS zVUA49|2%B_eKYcHn(wtnX2ktWo*0V z3cA(+&2CkzmWF2Z4$rpdopWkMiFq>1XEkyiZd;65GIOUfGDFixrUEo1;DUS*ZpQ5T zw3;xXQA$BlM)b#175OzR{@8^b2mFZ-{N zv%h&6#aAlYvxBWuJ-5%b!;JS*=D;#~!k>)kc`CP~0V^f}6m&BhI>@LC6m+1A^iMVXKzqk2}Q+cbpS!pWq~KHv!c{#`wNm|Ga|1 zZgdW5e1tk=41BiXn3d%Uk>bL@&=xipAb>rI)}hYTa|5Eit|c})lrqgzc_UzdKi&(4T)O~S<+6rf>-SJ z!JPBC)GQ40EFKy8g7Pa3Fn(rosPSYO@=AEf@k(spZGgDdyB9?}Z$nh1wO2E0ty-{K zk_U^p)tTTBI)MrIL&CvYAoO*F72%`I4h5V{Gtp1A<`(@dK-q+YcT?urgIWDrSyr4i zA!$T6;cs?@oPKw}cJeLO*WXpUPf9v@Z*Rx^uQW4KG3YYt`rfN8 zNt}*q%foYK+u-e#$rwVI6-{2)bs>DEz-=64Kh%I6Q2c|9AdFjBF`}#MV^6@QS1s>X zC(VgvYnaC%?**#Q&tBg$=0vF+Rt28c65?oVH_+R`9A(~WSwLdD0jeZ?FR)L(s0NZh z>$1KUaA!P$b%asu_+CJJz_;l_t9RHlECa=a-@j(aEjm2nVQST6njG23YmDkhm6%Sb z9yTb(nvQ*og;j$-(Mx1{4|yJXOE#K+iq3-TsUron_C6j0%Y{$zeYzL1ENtXU)6j z36I1_ai}hY;`Tna^LG20@lt_K^5)R<8q3NoLQ4V5$;do`!vG%oUV%>nbHeh8&xWym z;W`lKRR8@a2?92d_^i##y0e){H#5u1*xUGiEouF2NkK{+f-j&2G5y7h$saRBVFM2Y z4yuN^&il6J&(^|@ABZoaNkZVblLLT_?CVc(PW7^&HbxS##$VD2(TJA&lviUQi~oll zI@2FlzoXTuO5T>=3D1QJbK?R=D7M}xH(TqER4gQif)9#aZ zlS`4`sS`6{$e4GoF6UM?ritQnvOjrtiGEcyrk5+HD~H=h2A3U_A;fG&HK(4}G{>Ij z*bmG<$ae^UbjY_#Xv>@j3BDVb0g?g30oVlUL}*4~rZQ)pcb?Z-#>W!u>jPko535%b zrlnjrQDLM>9(SPZZkwgrY18T2P}?6HK<2uu&4%Y0*p z(oAt6uF2=k`j>wQ*m!>8IG zPvzM}&anhA!2(zV^JxP7p(0oSb6`FVq&%wtGmM}oX+RE=fNezpn!vbiU^&-Vxv8o@ z#HR`{#~fe;6QB;vrvmWzzi3$zfFdx@B7h7dfC9{ar;>naU_M2FIi>(6m;gVNu(St( zQJdt}MgX5D^zDlQo&f*^27nisX9fVCAuuk_1&D%|+8`gTZWbC!9yy5x#-^aY*c$XU zZZ<@M?2~LpPL}yREP48l)1@ReCX8U3ellvREb8InNGrdpF1se$)J@ltA+eCJl+vP1pUi{OVG${m3FMy1bjh!`~c zN#BPR^h0`tN8tzz3L-A74UwnU*6FtNEex0!t{SiotG-n1Glt-87d+ZHC*{DNjycs) zO*`2;%zA_UTXLS_THC;OIq^|VSGsT`zEW&6yu$12fT5ILoYKR9nxK6XAZ;f+XgDXi zz?=>_!LScAzPM~N{NQdUJm5GdIlwp$9MMCo%5Vfj^|m?5y3u~8k16Ie%Dj>8j$5W2 zU!a`U3=qG50Rj8>^!%owLEn!AL(;{6V{Ff29xGvdV_6Ad#uR*asRUvI)90A`JwzCC z3n4@!XO7*U5@1VLVq2H5bqxVT?%y-^yM_)uII%X%1b!cB-~|Lp&u|4A<_eJ7pH|C+ z!U~LYO=>Ve_8z3&j#PQf~A%RNeO)=s#Msg80 zAwrn^*d(3HG7>gn7v5>4unt+Vev(30b5-p%tj6XG7jrexkyj9d4e;{)9P0YnXxO*e z-c+CrQXV|ioa?%N^Q2hEssVEiT64P3zH^NhvX-m^$6S7tTJPur=F&TkJjV;4all?D2!tJ+!&X?A-nb3p{paKA)#C zS(tF&I6K{Gor@!$3Z>oZ7Ay}aREcW}bq5do9{Nkc0^T`@gkom$0}DRnBgNo1P#nAU{^ zsALn0bS+|0yJX_(Wy1}PXTPG@%%ie~tLqd9RqZkY&q^s5cpj{o-k7mcP64QKb_#(z z9DI^tZ{`4{%2r*?K;Rb3>?p1VC;M=$2lz3!DQq$$zAWG(FG0?NT%aIceJo+sQeh&U za%Ro8n#J|kSvtGU0n#%dm`+~>S5S@f16O4sVfN)hv(Wg|I6cV1_T;%c%P{%M>3t=m znul^bjwQ}OA;*W%L4L~uM(_h5qWB1a&hQ;lTM9rk=LKTXasi5{03f3BoGax!mg5_) zqL=$v1Z{u4-~gpXz5J5F-Fx;w^2G(`gc0b>RO0_4$Nx@@!7Vf|pN(5I5rt8c1HLk+ zkpkRVL==fkdsfiv0NUw*&>-K=1=B#&{dMOP73%pLi7N&YZ=~WHSQdt*3UC;oQd5jt z?=$CABpXod08Y|=T#rane3j$3xXPT@?ML1et(UC&G_@NVmn@SSVpwcP^-LV%H1k`= zn+qkR8ztmYV}RMrGvmoSruAoA7V~lAAN1o{P<=JT_M*(H<%Z(cLUe!36Db-g=Y-^B zjQO&V=4I4Mv2asG8FzQ%-mC!iMTu(H;d6PkhBBUJk~z%0#YeS;8b;8ql!DVFiQ(H{ zGy7Re)AJ!1)2a>Ky^HHw+Gr773d7S1SUHY|7Px9!IN{JQ2pRMaG6_R#Tx_0W3c$^5tEMu$T1@oXY$*$-SpTU(Tg=}cM5%lXmNdv~hD@$PJ2ep$iqJ4s@ujdX{Yq8# zwVo)Q;#pKDTz0%tUM4@BJ}SNC{SCZTi6#F@y?RycCl>dhNB#4azfMf=xVq@%!Yt8> zHI^+^VV6CL?5X2Ic2ks2q|f%;?QzV)h9q0WcHb)y`C#WkcKEMC~{vCjvk7G&J1&$`WbULFALnb~9Db*Uc? zUSR2i(+9?N+_&~GI!?rRW5M;T9w2ywSBLqpL=@55W7UTEUO3%RlgG>V5>L)tsnSN$ zx1=6W>LbN>>8tY}OkV8nNz(`QEA}5;xO##g_+Rkuk=$c=hSm4OuiLALT`|-K;;-B< z+^g*$s$T@;yVUo|tHU0&+7n#6)%Qdf@?T8e>7G;JukIG0-r3#LVy|>v5tVz{chalM zANF6Y?`hQsa`cRyIn8BK&nYLiB{GiddBqN*8GRH2XG9>n7&dqh^s(Lc~_+!|1~{^DIjzLxHoy zC*zd*3APx|82gb}FS$b=`dr*&Dn=ChI1$m2(k{aL?)uEv1}#O|&$RKA;jh2#BV1v+ zhck4x2Jo1SQ|Mph^?cBK(87H8etk8th-Zv{lLm$5ez@9pv1E7u_R|BQMnnsNe(fF{ z+(Y~dYmqRxQ65yGP3oqqLf(Htv`uUY>n5#2l7CUxD{BeurnW+ve-+j%N}1$FU?m8y zhWAFje-XQ_aS5nKiw+a?$ahht*k#<)lr^Kdja<=dKvf@P%C9d$R1{K{rSxKoLTMkg z$}hGdqIb)6Ps8Xeq;$vfJQTe%*r!`neqyFdE*_nS5r&O3##A1+Ka|n$z$T?;{yRo~ zfHXvD*G0jgmH3_TO}CXaJxY+T()CB1QS1P*bwK6scAPcF_#yip&c6O@76mO=EZ$gj z#Pk92oxFbF2cMU&2fnyr>22YMkQI&C;osNJS|z2C%OU4FwJ!sUIL5l66$09&1}g^X#v)bbRAaSf)%nT#%2cH$*Q!MQN!nl)!6m(Wj&sR#N&AGy+{awk z+{Ottqo^h&74nJj3c2!yj+M8ux3P`^HA_$PBK7n%qEw8@D61sBDXXR8)zu@;Nh(vP z@K=@k;B>__Yo_vB+SwszziW%xS>`F{%#(BXq2~ye$!F^A?t#;;V~^=jdJpOsEqH$q z>NnJIde7?jq>$dOW{*L=lInryF7&JSnddtd?VTyQ&JFEh7VYVq{1dg(HPZ0UYo3=~ zdtB|=o?$QHoISXI?k?&t8E$JhS8)H{UFLA|A+MmVlv_pOqe@!&YOTxU4f zRsd6{IQLXw=IUZ^X4Uh22rLb@G=It-j506M=J$oSzA@M4`RB+=IOWVMBqgsMxs|>1 zULVfp(=}%pv49%9GHmjg3P3u1L-)<3{K(!so=90(-%yv0CH)<^1n6P2OY@LQ=tZ~s zzIx{U@_kIRuWn3nrZ#eyZu9YXM9ur9HHEFa=N0DNsS*y!6;?U7?5U&O=1JnABay(k zNu?u?ctm??sChYJA(2$&G-aPrGX+8XRTQV~Dhc>H%D3+3gHQv9TU7_|)tx{oxY>N+ zcTtjn5NR)Zzh zSI2?1?j+Kyp^a=zIOxy5L)9G3@$SwH!w;VaFPzV&&!*H`hksk0+x<6yn0qH=M`a|Y zaj$1{XtFW4zk_Q?w(R|ul`gtA6TUyPSM-i!-dZ5x8hs@wowK*&gBBX4PgCEAdd;i_ zFgKRdClqmSA2=>HKnh$9@XTD5uaSPwd|6n<9wU%8sBAl6ow=>^XYFtD_qoNQhd)R( z2|nB{A)ABB!74y^RAwr-;SAdcH*#x@5Z)y=SkbJymI9ICFG0l`T0ApT8uvd9p0Ius=|Ud{T+qSfz>$V%u4MDqKIi zKfi-1XJ9yMs9u+_ER~m7=6P;GSVVI=Ikzm{0Cr$hs3R8n*PpJgg@K$#PGn+L^##b% z`6Zt8OI{hX6&1W>-emN7DvVpURFXY8`o(oiWnk`t^G@GxM((m!B)`EeJpb`HRL0b3 zC7~OxP)A!VFb=;0d&X*%-Vmz}h@4$9itGkA?G${T<*Fuc(NA#Rjhel+K7Wc;G0?nu z-e_=Gybn9e^i*`8sJ@a9?Ix5Wx*_8NJDZkmvcVf?&C%cILU-vwVp@5OW-J2%s~R)Qw+uD?}T% zJJ)1~Sa#^GuBzV(Q{MPR)%W^b8`0XHKDcP=+>>WowyF_PMcA`)ROt<~M(jzNCuK2Bkk>sJo*cgUW0t*KIq*fGLrD7hR}@yq z#y|fZuaoV%vNqCodR%bbyd?g~@uX6no^+k*{J7ozH<-yI=ZfRgyM-0^^1CTp1sTVG z8#J5&{M{T*sf`?Q^5WS>(bXYKqrzz9y`5-opvG%xdo`M?Q#N@^Ex2?0356H-nQ*giAF6@6@(Zc~^JMwm!U&T{E4B zH1X9&I~j@{s;Vzc^{^Z3{&K@}UX`0yEW3z(_cl4_mGYJH+OU)j_>^Xq@^-%dPUWSL z(l+x&@qvbij@pa?4rC$wY`nR<>Xufu!h*LL%xAkM=X2iD1U&g%Ijif{KpXq(l}drN zgv`{CkX*i{&#$Tg<%fp%g7<>tyH55Y&%VxC&wkIG-o&%gqHDb?fGALy!jpTmtD=|o zRyT72`Ml|X#+xg+CXtv@!HrISv5fgmY)?5GO%?UL&Sjg$5vv$P(n9x3D`mIx>({ra zfUR;y(SfbUtkX4xZiNYpA-CyOA~nYeeiHlQv&D#;wIa7F7U~YBfQOs4Lpv8Ex9EIA zq{uYoHM?gQ4NeJ8;F4(dp$zp3qFiRzX&-mzp)(=zN;1#+fbZvQwO7h0%}qbS^PSDx zU(Zvejf#zmTj(6c?}tRsjL(dmV9%#rtrX^pNr4rn^acp&rCSpqMVMt@3VBRAZhc{#;)7oX#9qZ9L{d03*RNo$By(J+m4|f1)Zx6m)Kx9GHy3HOU#pSUfbq(Z6g(= z9^9p(nW0)pQ|luYp4-_lH&x_CC!L&}{F%5%$2upxeQ)bJ&h1e|I6HatdSC?fp;xDumq&jWtDvIs;Te15o!vXScsC>Ok=&)V@uI6XD?18r>ixbs z)%QOJw%-TPEvhsDDdQRw-(|Js1iXBpF(i*A8yG9vZM_g9dXK&@X-n44yoZgekvO|k zQt$##z>WOBtFt^x<-XOdY_9k}wT~npkI!Q>wm$MKu9sySyJu4hj~F5);7LUs305%&5AIc_1cNpO+YUko0bAikPP zP!~UNYUMBX2G24PJ~$tzAhZZzOmENwedpG4cqc5+ zeok(*RB_c~%8?E~gQ2~Xd`+?~^{N&K@~R#ll`(%Td0Cty`gB z9YwRGlDhOqztS<^F<;h5vc3poyYyKY{k)QO30ptjv(z)SR<#qa_l5TdNR+RIX`0HO z3DHrWI-fj;oZh|I4K8YqSK%s z!tTNn6$P$LEMuKuOOWZ8@I^8x4ScGxz@8H1lbj1dnH%0O(>*uDpA(rc^Bs6Y3R^sm zK!GW)oEK#40KQ`f=nn5T*9p;i!u19{H3iD{0LI3_<9Wgh z^7t7G|LOY`HWPk?|BxRHFO?gNAT&b=@kxT0%greUEz>980RPA(`3*w+&37U+P4JK> z$diHmd&+$0z){UF!+OSDggW=RcNF{qpXC)I7mbqt1k6A!>ZP~=k+mD(?_*IT1ZhK5 z7qIoYuc{}bQDzS9Ih+D7H~u%(8)(Pn-{d#IYL-XvFvzpXKk)6 z`b_nrblmsy^hqEc^}f!OC9LM7zd0*VYN}Cc;O_d=>X$~Mc`jFWf7$h~)i61Ln2)c` z$yVT)3*)G`FJ-aS5w0LG#NdoZ70j>7UXWl8u+_jWggP4FoT581oWn{*>2u0hOD|z% zWQ;5*3rpz%#~|ty`v&J)pu4a{XM*ES86W$D>rg$R)y(c35HO*>R_iGL{!W|#gj23H z@9hU+Lf|l{OYiB&Tcs@dRARz;oYJ9}wPqS0YOG(O(0FGd=gH>i&C0pDu)YvI8#}7+ zmZxs=;S}Ut;d^3uGzh%FD5%gsHz6U{-=0;q;9U1{0WHtbwZK{zI<6N}5mQIcqP`^CwF%>oQ4|gJUq~z`P#hyIQ!ReW ziQA*bh1m=pDL#)n)w^v&jQktEbjD#82iZhM^Rau2c%GBY5Ca2|k zkY=v@9f1kWgK`a5nzvk4Z#*6$USA>}5qI1O0 zrXkwFHCeRamlYl8p+oX8zA@Zt{M(4uol8MaGGA8wfoRK_fh*mf=OO9Hy!KPE*H|^5 zM-6tw2mb+lK|}&!>@kol{+#gmtV2bINE9z?^4Pd6bO+TLY_&PIneuhq6s>q)%(fyTjT{BwR4_<_Ge*ssy*(sTmNhN+DOUGvPGaWY0X$THH28b~d;=K|{fHjB#lq*<*B9$xR3tP~-zmdb7W0AilGFHM?TDVK6kzjcOc2VIA#|qQD zTVxbunvziJ#7?L?fML6^6vDiRAFuN#2KHbrVlLuH$Uec+uz}C33~Ede{+Oy za#aXi|UP}VGg_YNvQLk$Z>2;~gh;#c7>{S?{o zrOu#0Crd&e;D{WAJUT)Pfs&07OxXr3dLdc&oP*hzkJwv6jY|5n81F_~#w+89Tm1&Q zCG_yLYT7E^$z{ytyvN%imxQ*d7T8N5Mfoni#Sq`JQuva#tTv2htY&#({We;hSDuvx zNqh@4$N*2QxyQP!JCrG*Um1}Z?1z~Pic_)nCHWtLAE0wR8zJ7L*TECOcf2D2uJYD_ z9i<}p)?^AJ>0u~$LQ~^+h6CpZYzF||Kk)(c7?3w1*jJIq&b3y;Iq6ML9$?^e(Nq?J zG~U_C>G^4RhF6x}+2!f=skC4gqBP{=ZGxLvsS3X1$gihgK@yF{X>G1SE)-wv+7^vb99aizlG0P)43Tw2$v;bq zC^JV_Y&KHJoDyO4k99z`dB{wdJZZ(sKfa2{f=1^&rgu|fADR}7>YEJgnSAE;!sWwz zBjRJyKj9mi8H~skN9RwbbHg1uab?IqrW2YzuNFq8j)J}2%|K<`t4Cu})> z;>9R4CsnBgBk#|bKOl~On%+i4wDP7;=vyCoDQ+t z;O~V032WoZWb*(@K()W>-qMDa3xDE)m*vKd10c)>QJ^Jp4P5G+?+s9z3{Z*($oz)J zN9rkpN9YN((wR{E&ZF}@ufv{=pCAit^MR7KR#vEi#B+a`#&0i!um4tYPtzGp>q$Vv zsq%aOMSxOEoQDl^WwU>UGq$!pxYnIO-x*H-*(hRDoyJMp=z=Sy_8orciXWrBn9fNW z*l8L_YkH|}){31H?R4sRrUM{tntyV$;mW{-)8_)IQH$s4Z;U74ieRo%2&%jJXABkC z(lfw$GSE33z@GHNSOZL$6G)tb_z zJHL=_FPKf@W4kau@Kay=;ctT1OCpu37xTfbz>`gYscgaDc8hh8O(#e=CP*YKlbE1S zv(2GP_&zZmf>;GoSR)LM;B}AS4UcSy=!4PegJmbM^CqyXepLMm<3H*@> z{GJK?fr(zDBlsVa&Jn!c(T?$v4z2wSy?spz>q{!D3W3ystaj{g#FA_gL{SlDw8>a0 z)KQV*5aa^&P^AT>f^dg9LG@Ww+o%!V4gQB5rM&KwXqG>G$f(NUlNgN^e$dw;|?Voy++^^N^aUR}5|KZ^{T9-AIv+HNE8MRmA71jW1z zgxw5~E8j)d{3cH+VOIi_ee6ep&?tb&;0Do0rTNaB;f2(4RUC$<-<(UDj7k%R$CF9RyJ^OJua*~f-7I&=!k z)D3eM%0M^}$dnax80u;K)3UTE5^WnL_=b5?C2&(^n{d&AdO;3)an4pi%tB1y37n!r zm$LGQrZd|ox>1))Y0#r0;8g|MxYM5POu2$0TUC{LnP-_N$7ZlMF2$3m1*{#6u#!cE zk-iFqrb_LABuViQs?Bd<4#h687UZ9Kx=I}+EJM1Dh_j>q&uOmMsF=@Y!nA8WrzLiSbupq zVKSp2gjKZZJmDM}rG?AUQ_M3Z6}bgdGg6@>g4>XudsNR$F0b7IEs<87)Ho>)CTTAh zh!a+$Fs4=PuYF?Hgko5aVqA%WHP{dxfCdqYvif1ae@2!^<{5e0BcE%FKHV-`udi#Y3j(yz|uDA~!2!jRQ* z6gTfq?myxWhzlBJ$$Oz-XUaT98r0z6B{SqQPBB~%tcz}pdV}^*smBSl)1x|B@q--1 z(XLWV_Zb|X4P2O}gHCO<>!-aI#Q+w^YBr&_Z!Qb=I4RQ7G}&0O)hyEZEYp`Q&8IqC zo;@C3VHv4!5+fhKC`#ZdPL5m3SKl%hw6lSQ6ec1{Kq5|XAI>^=1c6h2rhyuBq{D>a zK9BB5@Ngm=>PMpaM>>Hz62#aM47X_xLohsvK8-G=*X;>`N>cVz&+crkHQ)B#ku64^0N5@8RY=~ z$Y5Il_W&28Br$3qMd}IB=onvXZn%|{-_C~72WJCPRmDE%lM%T<{j6rm?+YOI2U zA%J@%71t_%=DI-|t12IUpAt7LLKhcPog#PUDlytGAxbBI=R?{EENlkXbwJC8i4&_- zF=`*gc!-%9d!^@)%aUI{3v-Gq1Xpn1o5L}Y^9Nl4WiE`JQU7YeuT`GTzPNWHGl<3+ zb8Le&u~k0JHqjPEj1+9q4`Tt|NT$>neSvXD9QR1vbm(#DQAC>IuUr!CXbS?xxsg7U z-e7E9Dj^D{c?9Fa7>k()$ddCKi)35-91Pcv*J5XU-&ONwcFcIkT1T3Ly&o&!t(iUJ zVH$M`^>43LkJOGMHhY{#X67`k()`xJ5AsMFxD@bM?-h=S4DZx$zXREO5*5@QM8{aF zQ-W-ULQ&AVL<_-8L-kcu+oXx1MXEaTs-saWk>|Kh_~cPKGh%W>qQem~Rl&>yc-8bjTjbAqQ~r0q6G!>);9(N3$Dd0xQgun``zfSzi(~3i z!BOeqD0IP8`hL-bW9Tr^_gH0NO2f?Y_X0qt0HV?XU+mwyb%?xkdXeelvZT4{v=Z+? z$^;RgK;|zbW|5Z`8#fp;B$jZ%vTPU<%5e-lxC6rsf}FUS(&OcZgkwwhfP@?tzSmT=b(>;YN*-)6S_}) zire&FDUsldS%zrZ{fFLM-edJz>ydDuF_)hA#kWRpcx#l$gN|FXSZW?ROhf=59UjR%5nH zlDBtrq;;8}YkTx>AHR2nG%;seuhJwv!)29# z?Z0ezm~hO!+@Ki`uV%e?QGA15b_*U~Lpa^+xg~G+ty#Bt0Xn^4wo;lkZnt)Sjomh1 zWX=chVJ>@ZwuL~~_BSs$Ll(O;2z8ZJPOrZ%E&g4?U|l@dOr&nS%i~_(kCfh94_kKM z0`Gi!L)&JlFc?ZrP>a5E(`OzU5vziHC)WJ1_qfhZ?~(+de+!-?M(eca?

w3lV{ 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

(R=C<08rey{ZA)(RR`j}? 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�VtbqxsYSgz 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%0Ae)Dvrj$f{cA5rsM`;7 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�Ui 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∈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 z�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 z z{!99+@C6-%`d@U^qJOP_jg<9zJ^ZAeq#Wa1<6O#P8LAt7jlO{NGy1{rZ}f*hz(C&^ zWd{1jC^yRCR~nV@V@3@AU}G@J#t`Fbgs(NOCzWNr&$tD$UN&wupxYahj7f-{YD|a! z1f+kivEF!!0>%bo3l$hI8m~~X@v8AU;5&_9BmAcE9vQ~_#+Q_9_AxJ`9CLsP9LzEk zIG9m03ct#%f`-qqLRF#B@b3)G zf&W-&1u3Cbp{FS~^rz6DC_nV~(C6T!t=7w=f~#JK|AzGj{N2`W_-|To!ryD{rF?6j zwGZKUt#{$SZ@mxy1M36$V(!tbKUjYt(>iD!q&(}8bqMgkT7QNAH|uYth67<$Xcv+t z<|ipCZ6n|5zi(WeVdnF9kZb&VljFpDBvbOhIZxF%EtSJT+u$>GB0L68e2cU-aFCfo zuB6inxKn0E+IQfh$tcTI5f*Y()FI9^rf_i1aB@6k3Cr+QzPd!6yKI4{kTtAh5bGE@ z7*(aDF>hV~jbboljo_~ytV>+P+$3}cmB+7w@jDh{cAPpMBYFalSUyu zqE110syYqu+f-g_5lb@fivCv$xsuFuQ$NnD@I^+{ZxkTT|XkTSU}HDs0o3XgLy z*O$Yi$iwyJG1q#TYyHf%e&$*~bEk*-%tx|(06ZkipDF|J>l@Dvp4pFmYBc!=@uq#p z-^p)gw*4ph4Z5}bPEMY~#q8z87TcU^>mZJA=lVhN2QJ>D%m`z{ZPqq~U&eTmtyip95c{h2D#p%sYdgZPp+qr~SAK_)tg?3CR~M)YC?7h)LdcSb z)rS#Yq%J~uF|-Dcxf`F;2(MAsAS`5uk2MY<8_$AfCiDwG>lc33FZ?W7@>sv{vwSIFJ;Kkr zgCAPMBG^rf^~KPymOyv#=#S`+P`BsbA2!E{~ z2mGIU9n#e63CcIfAo!9Yp$}w3LD*w>5%w9F)r=e?7vT$y9*#^6uzulZ{ld@sg`f2c zKkFBM)-U|5U-((S@Eg}drzmEbsIdm&H|{a+LCLlr@s$CrjIWKa!4t=gI)v+udV~{( zz%6McVHJuC5gt=AWy&`d6S$c^6S$ccqd zQ$<)aHH39DgzzP1Z-o1peMvDdH7`ZDpV<%L%b=}z&HiS8KrV;QqL^2hS0F4j7sb5N zEJt{tIS}CrvjX8k<{*SC%}V5om=QpPcH=c;W(?uDIT+y~<`AU03Yw1B9BK{){A%-R zglo(iz^{Ss<28qw!vG&{UW@Pub0px`nb!j{${Yp%M)O9%N1HbxJjR5cYmPO?B0SEl zMfg?oRiuC2d>#H9<{R*LnY#f0wfPqOx6QZV|Hk|c{JrLH5&NzQo!tDL`2qY7%|E~w zb5$YFRY9Jsf;?9RS%)fS9jcghsAATkidl!sVI8WNb*N(2p^90DD(1PZfOV)K>rln4 zLlv_QRm?h6F|QGb^|932DAAqx?cj;tx{e##iY!3O#afJWLh~-M9)ocR7SlRvoiM8lo5uqirks2jIj~G% zz5EXI_6}GnVwX`?JF6EXR|FDd0&x9-dN=Hj1&|#=FZd0{`5)Ck!8#CS2Dvm1BYYSc z+Gy=23Spejp|JKNZ63A6XkS6CwN=_`YKt+yf!brtZ>F&tRL0?M!ndk=*<$L50CRpS(oX@<8}bs0#{)4PNgzv z_3zV_#(x<9LFE{|U(rB}w*sm#dt)pOVy!;PntY5oI1U|t1y!5BG=E8h&6mxWX^6Sc z+(%cLNi#`9!EeiaQ1{XFz@8Xnpn+D_Moc87M;2-fgN^2~4@ z^X2u-mp52%gBM0IN8ZR>IGVZeChJ4%LmC5K`~%%=9k342IOfIi%!?D43v0PIb#=Jl zB~@oX%pBE$*H7p06lZg4f12)a(hrzpzR8+iLj%~39^>f4W5Fro9ouvY_+=XOR=;`& zG}c1q?Eok}kyOxNCG%*=IM0AqVO(I8k{ntbf@HV;)A~vQnrKdgVi zmify13ghi->uV~s{%QS_imZAoLB(MyEK@M-4SPuo=Y(@f5BtOUWQGgFg=B?`!y1Ld zM%bV>;ZWG3w&9lHR@6S+Hr$rZ3bzk;ppM~=;ZD?<#G7g%fu%d71hiD+o3sk|r(UT) zmY9*4QXj7`OB{yAGCg^;KAxBXo$114ZQ{vf7uXEFk~2?~Ke4}Q%KEbUb%}NfGa=V+ zLrF7XvCKs2yb6P`uu-BXP5Cab6{S+va>|MIdlMrQLlR?w@AJH(wW5AvVwtdTk^|T# zdrQ^I{J3VlMNdpLsElc~NFwl)#Ji_AaV@M`b2!3SvcoY@45F1rJ*aUbYc@Y#rnX`ELCuDAS-T z*f(hGKDdwDD(nEURx#OGK@c3TFu#(+uY&Uwc3r8I_kdD7Hp|)N6Z7R;ALv}jO38&M$!Wrf6g*##UU2tbF zipw75a;b8A*^a}j;N0b$pvw;ETZ*Ne*reZbiD6f{>}fZNY8i4Za+FnS8-lg0E0c@YUd}lpEZRQu0vB4&-`0 z_&Rd!4DLj(H-c{<*RJ3$@&|tv{1xQ~cL#SPOW>WF!(m=7AK0#Z&~+i z!Pij7$uP)g3!@4z=pHiI!ZY~s0Lcy zLWSO`c2~P&t{kXVkVm~n9gVgZSw*B;K`Tg_Wm+cbRyV5~8CE~*GBT~WHJoQ0%S{b+ z25e=&`l7lO)DV;@V#)-VGAdI>XUdpNnGjRPV#GA)=gEtxW{m@=)IGHsYLZJ9Fd zm@@5|G98#Q9hownnKE6PQ0Ck8vin{|4byE7x$jj}IBOac*4b;j?nriK4kSpMfT&t}{h* z8<)bCk&kVTBBxbl+^YA$WujGQo#9ro1d!Tcg!FW9d;pMcymL&vbL{1HU!T2m%(huB z?-u9tZgGM3p7uU?`QNpF2ZF!XeovZqO#3HBc1yiAxVWv}7M$B&Zx7BrOYaQM?V_Ix zJ}uEps1wt$Gt;oEez$%Pb<=0+GpU5van9El>5Hj5?+};resB+7uepTxfP3>Ea39`h z?aTYDm-A}n0A7i_f>&h9%)#amx{~)<2lDF7Al_%KJWwmzh&Wj>J!ICvHRpfF-pW)q3;cwjy&#dY<|R6&7JxTjA5}3C2R+; zI!+x245q46VSfu8WyVow96L1&j>1+--Hw{a*3tp>W`dI+QLh6rKJ8iU zIq>oe+Kc?|fbWNQmYi2+eKDS z%Cj!9E}?v@uho|dtp3*JRA`l1WhiZ+RY3vkT5ANiRpMP*%7WL!-!ERgGfa-u6erhr zI6b?_k(wJx+j_!Od;OqCUuGW2%usoTj4!ykGeu#g}!@SeFEC~FVywu zqYdf?^wCCjGy3Rx^#$nS59<#@3tyryg%-YCUk<7CQ+*XQZ?Ui3UO%qaLEBE~3F>5! zkq2!%-zcQ+MzK*$7aBn$Og)SXjh=L=@s-(&E^n4u#Z8~ZS?RM_&_|!3PyYXoJ~m&A z6WPa^5=+=}wcEd3eGD~6^&-ux-^)%Ss&uqN&Ml}j^r2*#uCTIfUy?<#uKY3el8G(Eky zn19Cc&CRkakZ^VdB=YdCfS31re7x6_Yu`DBSlofX-?K_pCm5&OTd;m`c zNlI=SCd)m{;d6(E`&CBoO)>WT9Pj2-TL0F$Mwkwb-kNe z*Bi&W-gtAOIfW*ex0$!mB=cVLUYcyqGH1~gbGA8~rkW3!57IPqo;i=En+wbZbUW|m z-@%&TouR@|A>AF)LK@u@Y8h%n_lDYs+SC2K(?2_OeyEgw7`iBQ5j_y<6Y4_`hOP*e z(~m-fLWAhXd=6ki=$g>A^ib%!&~>ypbW`XiS`xY?G>IMwO$|+@pPcsY`3p@s6&-JGvg;%k}d9Z7%QM=ACfgtv+*v z37N&aykuN$Ttl)k9M+MSts~#J9Hkz98*vA!WLr|a`OSVyo4D621*ftmDOSu#9WG8# zs3X)7C{?VLDOR;rO&)8AH3XPRe6L4KpPa$BK0)k0lla$NiBhXAKXGPlv98uJ4HFu) zIH5w;KI=U(Tcf7Vyl>Z}ZV}6=C|!1HwQ0F?`)!D;zU9JJx63x#8ts7l+tzP^_50TE zp^qJ~{zApyP@BRzh;w*3M}B&b(Q;~eOq8J?c1mg-%QvEomg!jWpTrimVa=u5N%PY* zy|ZKCVW~wduVg+~f&; z;=EE3q~ThOJ|PWNmWDc{;qM?x|ET?m!Ylz>u>@?(60ieHy|ehdQb)+R39w{^bnDF0 z?QE8AUG$$ouARf@mAdNB>d(@-`g8houyBQ3JC9E%m9Sjv4!KrL7w}o63;8Tk4?c@@ z5uZisX~T+(IcE#@THze28E$+D~*vg{$)yyCpl zAU>~DY3?`o!{+_m{G6gJ<6HEg#H@(D-8>M9Xd|KtsATxXoRbWY`#dH4p;^H=kr;3;&pO~*U1$=P3GmZX*s;I zoyRNN`Fvul5OQxe6&Z_-C9oL8X*D&?SHcbyyYW+;@>id**Z-BZX7c*u%y0LLQ5yV9 zFzK?cT2Sg9^_nbc1nzA(rCrVwu2?&@dySpn7>}5>SxYim`!}73=x15VQuqzrb~?Mp zC$rY*ZrjfpejTTKCwRzdn>)oiPBH2vDSp8zZfukylRoRS){~j$sjM|+rrD6CuEuo! zH&?7(Ytu9v8>JbQCC$@~(%hJ}zcyuUS>sf{%-Xibsh-K&y2gF~Y}WQQPPI8}3md0; zE=wDm^3n5IYHXV7g)B8TO|>N}RmFSq+91@1ok;g$R=PG#w>2weo2GjyD{U=)PZRI= zaUP;=S*hDJ-OE|&+ce!PSt)F#Q%X*{SF_T%X}axMsoXT(Ygy{GXVX+lyFYehsW)4? z*R#}{E#1y0^~!P`w5gX9Gi=BAytaOWJC!uTz4JY}+W&FvPNg3j_u2Q2bISdz`+r4K zM`!Bo1u|r+cyB=kG$Wz?xIf3?PW47YDxKuqRH2Ky;n5~l*eCr{^)``Wp9$K;$(TY!g$ZSO@ zeCr{PZ$0?=6i6Q5dhqkfk0Q1riuvS6kgW)nZ#`&iMd*AA#BlCYi(3z^*@|e*XF>A$ z)@c_6tn#hV9O!Ew;sG~IpnbAki)kga`@Im4qFa| zd}^~D-+E}lw;n9!qV|02p^$GqwBlP23g3EY&o^+2`36pa?>@BWyAL|weQ3>hAKIfw zw=)NRA>J0A{r_=J{Ha&!cP08IE)s7ZNIak1l#C{~)+>pML|syL-UhKK*%9AIiRxC> zkFNi){AS__5uSiLB(6h@l-A$F zd3kXs-8kJ-^Wje6PGpGnSmuP8kPsfqZQ9!`g?EDLVum{EoYfrV+*F^RiszK?aL=6H z8Fv4v^abT#9{PK;m_A5exq3e|WIZ^kXdZ|L%;T2;3Mt!3lOJ)$d@3J`MlmsmAc# z<`b1=zkf+sgqbG@84fyRgGNUUOzwr-4_ZUvt!w^fgN@ZJVW*A2&lS zQnS<|*MHb7JhtY)Pc6w2XS^1S{^XC7?=(j}bX!uaO`XY8DRwD`snx%K1 zYlhxwE=eO}c5IH(dFFejdFC0>|7{cfsA0cSv`)McTkLAs+&(7hbN`mEum3#b_b=*S zbN_~R{6klH0y3g81Qt)3J5QtE-mf36U!JiKfjK1cb_N8gj=%Yhsj}w#XMLl5qQ-;u z3o}+B0sCrJ7T7b5V4{ZIrwtKUv}#)Vu`O9(N1DRwhGv2JPYssXodq`I6k)sNDNX7a zl?Aq_5$xMhsW~Cvp-1FaviLuQ0_rW^j28WXWY;5pON}1c`L2#`iasCR7Tpou9epSI zZuGmBPKD@RN;HY7I8fnOgR6RV9) ziQN&qCpJ6wU~EBbNo;v+b?nL5hS)Q)EwNW(J7aIg_Qu|ieH8mRb~yG)?2Fj(IK_SO zg18#D;%(v`<6Yz3<2~bj;{)OqaeQJ+P{-c*(D=3SQSq_yiScRiyW%tBbDH{2Y4hR> z<4fZ!;%fj~7vC7)9N!w>9^Vz;gBte5KZx&-AB-P~ZbIy*@h{_bRdQ8sRgu$PcdK1( zxBV);szp^hn+{c-tGZQ{+N}m&ZK`@z^{XnYs&wEs9oVm`uBxdT>CnVQnX1vTVMuHH zcFAta%tndht0q-VubSadrU^}|W>w9tn(t7CeH-HVi>j7Yt+XkI5}&CO|B#mbe+!%A zJlN!4D~naes$(^=k+IRS@v%vSY?L1D8SNQ6DoT$8;-1(tQFh!P51{l-aX}t4_IzCIX{P>Zu{mh8 znfC$C(7nP&AaKbO*Z#~)q-|g^pj&_Td zMtep3Ma!a<99JE!;nc#FMn`fkJG~sO5#>ckqr~y}H3_ik(HYTM(YYvh1|Tw*Js+tT z!L{SkMcK>JWmiX6@>2uXqFJfajqmI@)G7a%3LjM>?27D(?2CL5*&jLB(9fI>`M9UiYy8{&Adl#mbY1T9MLv-yg4-H%9)8y|00aBfHLgRkWHO%=9pfh9L~bn86qmf@K9`!Y~Z#uIj4(tN#CQnx<)* zZo-jej0sj`A`^v`Wmbn#h^%O38OvH$M<`sbmZq zBgXgk7vONMdi7=-Y4=fN8Vm-tPGe9*vO?Z%2pS>)>y~T#wfowWR!^Hjtm1;WBt90` z^$LB4kgd<+FLD#G&EdNBtNJ2+Dda2olln@1jlN#5P#TolA}W1ce@TBO zC3_=X*Wc97kks#Yz2{bM*8<5DABoH2DqvYp#7BCiK2x6!ARAZp>pzJoUD=jN4CFaD z*ZyA{nPR87SKJTSt5HL~PwW?ui2WM;EaiXnH)4MMyL+Pd*Po)W3XgiKkV%e@4afetX)`}WUk0^?g=Aq~m{o2c7Sd5A7Vn;HGVz<~M9?%ddJtPi@ zN5vDuDwT*bmEtKebJviVEgTomz_u9Dh**Zw>!<6dVJ}MW5XV5eEPDdv#DFJ+EI7*~ z+5GL7_uN9h-a}#Cl`WhS&IlvIm@uK!36sKA;f7AfcM7+J+q;~?T_IPvFFX_$U!UCt zwoF(N)&Z6idW%ai>@<)`=X*Ly0JJOf(1+^<6rhXcgV{U3@3s z`T88l2I*oDk^!aHXNeJzF3XOCbQN%1+%2kw?EjN(ROhF#3TnZ+Yg%x>zAOZFV?soT zYw~qtoK@H@bne5snEb1w%6R38#g#!l-aTxVURx zxGY=~rglxEM3f0qr-h&}s~da0Mz<);a#qe-cM)WRbYTwCG)k{q5avO;EPDZ@9|K+x zmV}dS9b7}{9gYG)#)ZNt0aAAIy=X7^o zp9j5qpnIfS)~yOeQ1X%2Ss_!%mXq!QXk>vfS0D5H_+I{?W}H9F4{CB?TLI}f$R6S=`C)#T+l|ue zCpG!}xeeLL^y(6Sp06bTkzYJ|&&R;kYsAXM{_jpi{uQP7q;+0i%Exa7%uG8(z7Mgo z69E248wSJx?SPJrEu-y*E%kw ztoA+y(LSVLwTpli$gjZ&3P(~ZfEutJkOwFPlmN;BJLPNOs(-<@E-4H1T=EzLz)JTK z&J764*GrE%CEp_#0mK2jx zHNd!6)Jj?>_=d1H1}x`gZr65byR|*q1C$Q|577Jo%^%gC06wKX13aP~1D?=M0^?Cv zfp0+mmiD&xuJ*q6A@HJh1$d2PfuWpJacXWmm&X-yCBWs}POh4(<2cR$(Wjeoka7e# z&g};72pzrtVVZ}Kzz9sVBwfPcg<1EaK6xkN{F$`oS>#PZp?TwQ^# zSXV}Q$3`B@t8}$GjZV}_IwvsZ{lH2B-pLcIS_x2Rjut)*CCb!&nO#v|JypC=RwB|^Ed6R$z2rd*fG z3!Gp8w!#=Ah$EH_#!*F3*emRZQ3;MEkdIM5nH;C|(UD4@a1ll-eK=MDo)%_-@u)dr zo{l>n3+tjn%n-B095G)k0xlIRC}X}-tO3To^`cHRar2^G^a6)OlNe2Mo47~p68DL{ zln(+QruoA(KPVmt9ukLv&xz-O$Hhy)c+?f(>yW=G&WLx!d*TCNd~lhTD?Xu>LtCCvY&DoIHqq0?$CDw_vjA*AJPv1AJv}##-mQ@&*(?= zWBLjGr2eY@hW-}tZT(&Seaa8@i~1G)nt?T_fYpZW`ZX*uKG; zr6q=G!>nP>FmG5eEKzBXlO^j$g<;N^fs7@_EMtx_-&kZUHC9lr+{j~jjj`USGn$Nc zqZb(SA!F3oX53@!GVU|>8V`yOkd22o@`J|Xz(dAi;B&_Fz~jbCz*mgdfo~dTfbrNn z#(TyG#z)3wFfvMP3X4+w@GS!+il*Ns_WO4%gO<_~a)Nbn7 z;BHe7@Bz~y(}3xy=>+9dz-MTF#54vxVVVTKYPtb@%XAy~uIWB79`(?)Xj(C?nOU>S ztTt~q=a~!5CFXMAos_F7KvzjB6F^@BW$yq?00i=BFsXWdH_R$%^J~}7Z zM`r{3=utQ)I7{aP7tBlY{GX(dGJtVzZ%N9RihxU{3UjAaNx4R56n+x+%>_cYyCn4}c#@%cf#v zY1Kk3N=v3C+mb7JEd`ch;A~47hfSuXPqOO>V8qOpkPPK#u50{bb4Eiqsyx3pV2 zEZv&HWWL98z;ehkU^z%BS+uNJ)+`z; zYgI|5R<%_H`R!JfHP2cod95YZa^Rhmv1G_vZLPC%R)f|06l1yD8ni|%hpchyZfmD? zuXVq*&)RQ20*v`%z$YPp+Ikl6%Q{N=g7u=Dw_dhh1D>)@1J7FLfak3Xz)RN0!0R>z zFdS=Xw`JI}Y&o`kTam5QR$;4rife53z&e}BX1955AzReeW;%sz+q1!4wtc|8wu83A zwn5u*;33MxwsXMeZR55}7?aqp*sj|kR>9c7HeLnE{TA?T z`(0ZUJ&ygp{h@tP=tIkIU$L(_Sh35Ya;Sl~JMv`v>?lMl=O}TMJ9dI4bUUgI5wtUo zItS-4pv`eujlF0|9BxO@5iwOc;*Q;>DysQIj!ws3$9_kjqu+7Fam;bjaoTa#G3vPB zxahd7Ep}XUOlkd&X~(Q%4(iN9odw5|dEvz$53d}oof)LG%Ibk=C^>TWsf zb$6XQr^#t|dYvI>RLFC-2_?=w&MxOZzS7z2JjjQf5UV%`oySdU&LQWp^PKa%bKH4J zjyIfFoY$Q1K5{NQS6u|3f=ik5?5<2#HsxI40>`|o*j47*;i_`g zx->4)CApj~zbovDx!PSFu5MS4>wxQ!Ye0@^Ijid^XOQD4IZAPzaGiqKmBx*(Gp-Tf zG1mk)kGkQSG&Al( z&7ix)T@JcOV^sG}ceS>g>vz|21~=yh$H$*@TlqG(+Z_asxa0f-_ilG5#9$-ty}Azf zes>>mzx#+YpDT191NkT2r`>1WqwWi?Vr&8TMfYX*HCeay58YGlX^=DPp3{l$dG~^Q z$^F>9?or4QrYFOb<;n5ndx|`z*e^U4o=Q&*MClN#d+KHO=sYGl0{7Uru$OWO&*F(v zZu9K%bZNUi`#incyPkud!w^M7MC}>$9QO<*^TU+SVgK@+ms=9!Vb3__OL$eDE1v6~ zo1QCjp7M<6j^`d<;d$VB1o1FL#hzu)s+Y(yuvfW-Gj&9$;~#jly}7^z$QZSHi)Hqf zd3VT>s<+Bp>(%HAyrNeEhH@xzdi`?LYOmd7Zy0;MH%7T#W^aeL8)8w2NWDGY1KvXr zi$YxL9q=CYo)AjBr@Uu?o!$}9$%uChVoP`~-U*q#lisV|8|Jw87I-MI%;rw-ZSP(1 zn{n@b$UpQhdRL@U?;3gpAL~>3)V}SOOkbX_&{yIs_wDpm`|5n0&)~EA+`gb}+mqIN zuP@?@`*!;}t$jAHZ?A8^YzcjRzJA{k-!b1w-)Y}jY1}vJyWqR%yDY~5Qpk4=d=vFD zzA5X4l#ljJ`(}M}zIoq*Z^=i!t#940FcqWK@@H5k{8|1Ce~$TxKVQ1%FOqKhOZ^qT z)3RT-Nd8K5r@zKukFkVbXBzOE{C4!|ey_RDAM%4Q_P6=L3tMjayU>66_gN14d;JHY z{IGuzywbY=c*;}why26-bN=)Gakw^!CER)bOa3daV!S*5b^lHOjBIJmQ~o>tdm!h5 z|B)?|vsKs^*Xi!c-3`hZIz#j+)V!BMU z;eqyKv;%A(OL8izaR)k(<&r=*+$nqcV0ExAh=W{15d1!t zLy0>Wl)Zc~vW4U5r-HkY13fg~8QdG(555~bc(5`$8NEyluWruP@1qOGh z*boVog?5ChLbV}HNDN6KXULx%9n^=yMpGyjY7cdUx{Yn2p3s5Nq0m6+Xy}9(HI;=< zrQ-0=nb1gREHn|Cg#6XejnJ*o?a@BabN>4UN`Dw>-*g3>psuM;hb$`{?T%cN>m0b~f%dwKwi<+~3&O z*xz`h@mS-@(295uYw9x_PwR6V&o+)WCdXMqf8)i}cvc=`HeSYYrCu@~#1UWPwba=S zCmW}L=~$_8x)H`r$uZ8jxC~b{7aH-D>I)j@LH#y9h4+NJFwP0@3-^W(iV7TAhYwR8 z3?B~Fy@8vZ+IqrCwwoN ze?a*W#!KO4xg~M*8eUB@TvZckQZ{8a5jjseyD7J+z);>)+*AgmR~W-K?P#iMs+C8q zO`0t%8rGX6!(5ZI$qyVx#xbV-gv?E`rgnK;+0@b0-PB_&YC6z#2pGztWT5G&JjQG~ zv4u}z6xVcy@`%h$V@(qEgWpBdR6o{8i|3XP^nNu=CFB0D41rm9F?gcJHAhKM!d#<7F!kI;63RqTue zBauivvOCfl*=x2&_Pg^UeUX0j9g!oEW08}{kUt$c8ySsUh+G7|yusHZQ<3S&Y-BDn zA6bB-mgF&AWGV7Evfiv{&S=hR&S}nXE^01qu4t}|^r8JkwzN0bG}rq|&{{U@D4V3= zW*FZ!dz(Ye(dM@1JL<>u8Wi7KO+(QM${XhF0XZDzEL@{VX#v^J^%7R_@} zDe4T}iu$AB&@I`gL}StRXh*a=+7mqxJro^?9*v%eo{FA{jzq^irD#Qc@#sW!Qp|~7 zjoygfir$Xijoyzwj4no3Z28eOTWJg1qO#?*s9Uxhi)0Ul+>&SO^$%mdr7$4Mk((#K zrKF|2WoJuuOPzUp3)f<3v9`Edf-RAjc*GsK*0MV?-O|~zH?rQczooCGzvW2Fv6ho9 zr(4dpjJ8~8xu{=jxg6oG+vBbF7*iRH(NVx_T) zSY@mxRu5s3DQ1s(W1(0y))w0n>uRWs?ThsSAB-Jtxt8R?*m2W9Y$!GyI~O}28*iS8 zU5Z_aU60+2&BX4+?!_L&9>tbptF5F}*_zp!-J084&{~Yox3#Qwht1ns)mq!CX%$;8 zv`YH5R%fffH7q~7)>vzMYe#E$YmYO(^+4;P)`8ZettWs_wVr7mX&q~wXq{}m+Iqux z#M0Ax%W|mocI#c>`>hXK7h6|a*Wzqk6;}gqk2>Rd@xpkC_eQ)tzLT4eSI6t(T-*@1 z#@+E?JR)|*BEPm2j=P8Y!j-PEVijT%G#4ke4%TV)Ld@4RI zpCvvUpNr4O7vf8<;`rnEdO~5gwoI9WiHt;6BFC~Lk#DI@6eUU%6^Y73O`<-bOPCV& zgg16RVYgN%LRKyjO|&KU*m@IPw!?{iiQdG)#NotX;&@^xF`PJ;IG-3#T#C#luJ}rj z6W8TYf8u6hCUGZmFYzGp2&0$8GDazhReX!mM&urcF$SNXd{gm6??4HgZwA_wZJBM^ zk$Lp*ZMirGZ!17;Y%7-E4xxRpw6~Q-`awR8#M*YWRhg$Eqiwb3DY-;`uhOP5=e3C~ zJKLl-r#$L!^S6cDV)(4>_Yz}#j&0}9C&$C7BE93>Xl>G>Kk^M6JW%5#*n5HMW+jQFmlDDm6+owtX zwr_9yHYrd;A|Fr}s?DTOZB++}q;6FI2??m*P=AZ`s;{XR$X}=*saMDhT#bz=a771E zljq1YwQ^p)*1{sk##(bG^F@MQ?hY6&8J?-mEm!ebg8RicZ z`xU*+XB7t(Uu53>{onA@#oCv6<<+&jX9tgQH(NQP+U;_71OWymf~B?fZ}fz zf5*I``0tAEFoTL)itjRCQruO{F@LU@SNt1uLh(bz51Apwj}<>*zN+|{;w|R%wimX& z!2Gvu-`%#(oKbF57Bkbz4=X>+EGs{vtYChu{DiWG`Khv2SEd9^YGSk15ej@GJ^f%K-(q2d( zO&?2pDg7Ji<7xTn6Y1YhD@gyF^qXlV>EBDgomQDXn?9dbo&Im>KS|?NC93mjPSuZ| z`C!@))IU}KRFOp((oKfxJbW2RC*(tylVFo5-^iC(BGvaS@!t-<+EwP1Kh04+grCnS z-=pc4Kcn$cljWr4wB@X2)N;XcQK%ONEtka+%eBhRDq@+kOj~9xbC!8wu(BH0aDcuq zQhon1VL;zkLF?aQ-XdwB<5@(Z{yp{Yk!|YN)UVO+9(_N1nmtVj`zHG)Vc4&;UneX( z%Kin^{wDiPvW>mM{w?&B@37w?D)t}Qe}w+>U3Qveu(#RUB$NF<`+ev&KVW}A)a-rs zU!d>&ko_U_ofY;cBs+~sW61V2_#-c-0Ifh$zimrXlAN^6v`mtlmXnr4ek(0EEtlk_ zy_}X$UQR1bD<$tw`&imeQjk`gR!a)g>eA}S2h-})c99}{@}xNPtC?RVAA&o|WU@Ec zH%RBnzPG(o#W$*tfK%^MH{Yk;!S|__vd#CV_}0|o$M>c3o6?Opr1D$R6ZFj}z8A%} zqF0|tH|X0@d^eg(sduCsiP}6hSh5wcd|OkYHP5n$?@X;b;h1Dfj=8I8GFYva`&Kv9 zg~5|Gl6q4LGV@YzOL5)AGwn&6q5zxneDWI$@!Jsa+x8TsgnXE6Bju3N$wwinNDZWC z==UgOkUB{3BOKwOHSt>-)WienIpQOJl0{(X0`eeWAuo_Pr0wL>q?5czK1=qJm&hMM z`YrOukn+G9!Zjc1k-`@utQA*lXWvVjrNmYfa zg6vU!Otq7IN>!<3s!ml$KBL;D+C{olCY71|fhw$OBA-R3~wgL9$A2DJVsxxU^g9l=e#dr9P=&Is)mKbW%Dk zos~wV3(`gDvUE+FlBT8E?JLrpG%qbkOVVS=uUizB3`^Gb6-$mK-%?~LwNzLtA=Oyw zEjo({lHKBky&+4~(q`FX>4LP+(wjqn32a+rTLN5VgE~Y%DXssF>A4xwb5z^2sJ1^( zwfzOE?c1rgzeu$`hiZE+)%HB9?JrYp&!^g6K(+k?RND)wwii)te}!s$G1c}DQEe}w z+Wujx?H?gGAeB*_|81)CiiC>^BJUJu&dKz1>WOe4`yJ=an_=cu0ZRL^yw=bs}Y^GD1d z5k2z-&~pRTb0gJrGxMj+pF+PtZMT57|0VQ`Z!q5=HmdD*s_jnZ2I#q)nPR4hN99tv zh*#xT`H4@JP$lqtsk8QH9ipEG!q1yBrd7~Oc#LKx0Ae9?cCsuNPyi?flwq0T`Q#h3 zUkTWVO#TcZN8h(?ev$2rDhfX&Yv{&HZQiyNOroTBrN zn{$r~^erdkasCl!A93yx-(ums;|B2m%^ApF4tajEP1+-MQQ)j3&Pfg?0eQSP>G&q- z|MEQLFx?_#-}=tLdYc~jNuWPY$=wP%+qsDiU;R#?zC7v4e;&}gr#yVh%fB0>B7vuY zk-^sJ;N2hUUnqN+#(pIwp++PpCS!T>{%rx8f&~rTnoNuOEoM(9_$TQMI zPaKc)(p!Nu)K3GCy(G_A)46Kg-m^XUdDrucV0(n~+II3Zitp)Ik;z@9+gx3|kS zz}_MEU+h=*ZmSyo2I{-L2XMfCD5cN#0qYSw5AL@gmFL{;BRJD;>7nyDllH4vj`xOh z?Ksnp_7&&Z(N5YIO0Q3r|h$%P@Zqc`*u`2>aZ>KNx^F$*uTu79 zqi=x>w42W3&LMo}xY{ChJUs{WH+l7iliHos+6%Pdct7+Wk}ELiaqnbvt@{P`)J2k8CD_mFn|Pa@++r)KeN5TNE%p%WQaM-$ zZ4!P6}XBK7~A0U#+Zh#K*2JwS*evMsrV(eB8A2w5O?6p6pSa(rlnS> zq+$YGsX}cU`hScYz}C5rx=x^vcAdiYDY&M>HR-zg^VX!eRWu$;+Dp2o3uCiX+yv)N z#VAx(QU>nBH7sZ^X`GXa>r!#pflV7sk&0oGu?Nb+c+8#WF2r~TSHGl=r}g1}=>HfC zLO;QK!&Nb~4CBTWQgPx|JRJ+BV!y3Ow(HyCx)d;;OW~=QZX-tfIkB0$PR2XNW*B>I zjlVGFO2u7UV=TB@a(d}dRda4g%pYSN;)kvxShy4m?q_DqvO68SFxEhJBGfM*R7spuGPI%8A zlgIAydO}n-*bh(CLv3)XKCV#0^+~uo3D+f|E%FR`hCSyz=RM<|OStw3{U3tbNr(wN zH|6z5XpeCP66z`XLU|36SLx04W@CGKbG-$)!U)F+xS9yt3D+25eOzUPtBbs0ZwzBV zwErpFEUzZ=_E3O4^fRd2xULA>U0zk>J%xJaJ>wn0cEsoC9rI4meYln)1hK$;&i< zh;luZnNG{QXvreY|2yR{Et#d##*x?0A^+?vwEPE@t@Mo7Y5g_Izfa5mh31b@rt+E3 z)BH2E{?DjP`CJz$e~8whl8Hq3(%%MOm#?{v?)@jq4tmYB1=50)U!!&CwXr3%% zzu7zYc%Q56|G(e+eK~SVI=P%q=1@s)xg~T)D!C^P=X0+lj3}9sBwtBtWJ->qjNHZ; zNf-%H=SW6KLdLaZd}U4#7zsLKrU#(g1wbx#I?X}mw ze9Zd{NB#u#Z=p|vLy)--{#LLPoUfqQK{MjU)*S>M0K22%BV^h`?}wfamPh6}MZYPW zKY*3s<8yNmq!;eT(BFYXg}Vc~yUk3S$ci!hXjl3w}$G z2=VawIbzIt1H@y_>maknc@QKv9A>dIpIX-Q%nJwKIwQcPAaUg|M;vCB^AI=-{1aFN zUWYa!!MPW-BbyJ6oz7d}O-Ndr+;WatpZ@#b%rfT|5RW+zgU_aWR{|E(#}crZo|b^c z^tS{orq?B4F?}xqmHrj<`)Mr38zo>dJ}Ci<@k|L=jDJeNV!TuW7UQcDuo#b(fW`Q& z1T4mTC15c=ECGx0WC>V|KTE)3yjlV(y;*7TWHCN00gLfr2`IE7TN?hVyGvxcM4(F^ zF!iA8fMgrj&ff^gY;x;ESB3r_B!9Z|K*pWFgzFlcC(&bUW@`l=1MNz2C~e6$EZK%7 zf~IlW9_28yE|yEq)VI}n%UpARNZX+NsAF@2);a~B_;mTp*={rVyP%11_ltD2YhC_Y zl}o(2Ekhv+-sQK z=0lLbD(=#*nTQO31J5wyyc?id*Nn}OKw^aa97Yg+sh~ zcY@?wk8$_NPQIn-mzN8Y$2{WDe*&7U?pbf#h2~Mv#JnLMJjU9yxfD-&c3rl089}oe znsv})P4QTxy=}ZDqC8skiGME-x&|~6;v?^~JM#O%XT-geaC(8G;oxV_?r^?@CR#jp z2!2iI;~+aI?|*?Eo+1+C35hCSwbtfBFRc^>^ef+ zdhGE$GPYM2wDu6g-akN_6WGa^VQ^~E7UO7GvcZaQ$a2PxAS*!BTb(rAhyG!9?(=U^(cr z(2b!REA5PtRoyLZ>UR)q77XESZ{EHF{eobV;7#Zb&{jiZ=x)@#L9ikGX8s`bXx%2X zl9IifV31VFbNZJ%onW}2ckV+t3k5SJmIZ^y1eZ{2rdo0q`fL$ajfOuEx+!#1=w`Ir zG>yZ-Un3(r&;GYxPjJ6|tF*jLVkaJ;^{zoV#qege`P^&puLs8pHbSPcS}r&nn}ya=W*VCj-Jo4|5Exc zZ_jQ~pP$_l%zzV6w>fqDsr}H6pqu!u;17Uqj%N5^Q{Fb=?M=RV84%@ zGIkVRKwBZU(JvyTX)qIc#T)#2NY2AE^v-Vq<{{aKwwBY@qk1AxOT1SVO?TOY3x-F9 z^BYCK9`qhX;V*}?9C|+VeCV;zW1)+ob!XB&qng%LG~G*Y)r=kVlHKwVMXwocHGtlz zXd1wIHW;kCTt)M& ztSGehYp|lw+OJ0xg;uNDDGL3D?vy}-Z5^?#Hm!H0t;x_e6`d1s@T7ScB)0uuAk&1t zG(nF;q;-bxz<2OJcFNn|>uREC9K703y&4W=?D`=;Ik;amzprQ}TMk}&H;wd^w&rSV z`|FADxk%1M=CERLEiJwS&edANSq?oPdOq}6=&{hn(8bVgg}z?V%q`s@wyh3CCVUS& zSJT#I(EEvs%hDXlNZ$IO3ih;64)&D8hRf7ucb8i0*aW$farY! z4;1K(_MZTY;CzhF@1U(e(bgT>miLm<8CM3-mZL3ZTovkAPr>FXY5sipF{zu0o+{|c zw7ny8&VcK&+_yc&TAz5v+uj0vvY%S}(fJL*|-#RB5yRnMSNz1{0`eHhQ*C;wC zb?nS@ib6}jObe3cxfJ%f2HWoL&H2ITVgq}?M^^) zA#Dwyt%XP~M6xw93z1pi%UbL`spu}C_4au0dd8x?<=~lm=x>i_>fxF8c%~knX^&^> z;hFZ#gQ9oT8_3Gwhid&bHOMc3v&M4h>7(Fc`n!giyO^1~49|4HGs}=)hGcIfmoa}kFn^Ew4{N?sbdMr= zG}xpZaD<|J0z4W_hcg{|F!W&Pd!g@z{s8&|=ws+PrZn+fRa*(m(qdIS-zE5q&@=Vy zV7k!yDcx6l?G)WpmV+gCW5a&%NE)A3$>0X%6Zv8Ao^ZZUG@;fFt_{`;ofWJR{@20# zN~5zB8^+S>Qp=&0--A2RUrHZ$(#KNzxRXAX(#M_ju@oD2VnZn--aFVRt*ljatEJ;# zP8r@hMfX5yT}4`1M=J-=whnCv(6$b32ZDEW9x00b>ZMugB{^~*W#6?{IDclJS(EH{ zRO`Cq6`iALj_Us}MNPg z{n{7jJLuW8`<>;ax!dT|I}eWH@yTPo>(lD1i7+-DV?qZzHG?i1ir z9Y?Q;j#p63*x6lW7W67b@sfJ=b6RYb#_4dT>sumZy^f3D8ToALZnrerveB?l(Z3Q6 z*;-fV>Cl6r2SeWreJ}I}(5$~YUjB8ATDHGH_rQvxU(TN1aN_?p+8xf^-(f9Rzj-^< zGu|FzvM>CDmd28U_;3PPz}wBdWk=^0V0k&-j-aR6!AHc5#^IyHeR_t6!-N}ARw4GFRC#TOfDw&Do%rri&GCC{GM)jfhX`s8!CZ$~+J=IQC%%JZX zH5@$;DyIURm2fKPzFJO>oWGRs9s&)Lb1f>zKaBj`;9com5u;YX+XCJ$*SEpfjOlUZ z%kFnMyI<9O92s9_B;V@Wqv0=^abyfQrEqpCM{?J6XtIIw-7Sg^bxpQK8p<3e+l~R#xe4j@}z+yW_N7|8>s(WrJS{eg)kVJ(qKC zDhKCs<@hZ)H;qvYr&=2RyY?Kdnq{rj)~hnJRx^ti(XVy%WfAt&r|t^$*DuvIYX=ri z#KIl+?uc3sQL7a;&%-D6;LNipP`#t`mxH~q6Tf+b!9pZ6EUJ9S39d|$V#xU={H@N- zGLB;SIBPw33&AUl-Aa1bOJ}Zc*XXmF2SO~*;Qk?e2tD=nZTOL5uu)~qSk8=xIr|^s z_4kCe%MWq3i0Ov z?knErz9Lk=`Swnxd$^ql*RvrgnMCQn>AM=GA4TSH`gX$7%D;>=dpY>m!Y>Cdx2O0t zy`9*z{(nn2FVee-*s}tACNhp0=`;9Bk^i1GqC02mSGmRFzQ|wC`T98b2EM%y3=R`% zhn3cwTk|ZOKf-xdIdZyJ&JacSI2@a4S-IQ^Hm=U9Sb@3))Ln~(%dl`H8fKzlBpOC?tMDRsAS3PVoNADat$Nxa(*$%Za!)uG zZH~%#{TSK)+;a3&{oz2>?+r$NGA+JOi<2z}&6nZN{qV0<+H@tG?Sh|=Z+F2tm(fAj z_wc0V`HTfhXC&~vYOZ8Q0i6YSg_dIu~9`7ZU&$trXUc!=0G*rQcO#IN4 z8__e!Od`ThAbF$i)BLiE=0;{*W!-7Z9$s_u4M7%bgm6qX_FaY*ja_kYjO zF87o4{!n*-Iq1w{uSf=#72!%f0R6@B0@)z#l?&mLeYwr$g_lF@AA&mMiXG&Z?PQFb*%6gt=TKGm zJYm_Of^f)GCX@aDDMgdXZe)`^Uu3jkhtPu6_Ey%}ds(?Qv5IMr+FBblZ)9}9&RM$u zk+ao1oUJU{lgK-qUo5hFXBXN@(cxTX>ai2shs-`|^+o1u_F#RHIhfw9DQ68Wrtr*~ z(l$CG*!(#*XK>p3UeTS4Cpm-22mJgxc_Rz|tWu85noYFwG^YSP{msFL2cdt`;feko@S8;LM-3HZfym-wJq4Q7YpBKm%EKxh1fHa77N)k zk7dui75+*jcM+?vBTpW4dxrId{~owk_xYl8Dz%PLi+w4%eFV9^d8m82QQ=eKy>FN= zE%esHucS9NrUi5Vdu}s!bBFVNnxh(C_4R8AMZS9b9)GmR=i$#`*mg5|Dx&9UU)R9_ zmL|HMN84&NXInab6RWppt^F~=`M}?)8QXtGX?qied;^ttN{Qrtw8%*LSLqF*!>yqE zmC~-gZTJ@YAa^($EsYJ;l@n}Mj#r)5JJ_2&ZW@c&13aykm=Cp&K|}iZA(GYU-4*nR zy6#DA>quWt>fX$21-%pg97`j)fP0|@*dIgBSoFlu+zuP+Vb#}Iy8;b$sKrjk{SwX- za5njxw;%E~S8rmUQ%i4|GS+jiRSV91rOR}MGoO`W0Ii$?E5X^U`-)&7dG#6cFrEw_ z!b|)P7(Non%9RnaXRCp=_i?Y4(tEk!I&SCe>M+>e#PW8dz4K(Z)|NZ%zV;sM+%(Zc zgk-GOzJwL6wYnE7(^dCrK`HlyjfskuM8&z%--?F*={s}118l)fXkq!kld`de;#)@?q=5U!}>2_B=huEI-To!lmB}wjZ6;v ziVf-8&Ur$&LEDq)d6e}!o1NsN@TbCQ0B0(k-@}=~F0@*pw=Of-hcs3VVHs|aIO%(h z;oIM@v)Bb)&)e_WLtc+ej%L5$&x)SCG5C|2$0cG?{d*dFiAQ*`)sz}%#?d^=7xW36IUhhn?7U_u=+$En_hV z&Trs+$sO-v*5d6T|DM4;!W!+v@zeX~vQq0sFi&lhHR3+jS!vNva+7v5_SD5c-|)6> zdX$x8M`ts+eT=>9(|^+qbi)0 zTGQ*)T*hFidG=+7V+(W+=b;nqoLT8JA+aYvOK%dlI30k)wLi z3vDq_Z7$yM9@SZC3bk(FqJf)LuNiytO3d_27@d{8y(B&ED)T2rQx8rpWIjcvmc2pp zlg#d<(pa?~na0HJdN^d;JFNe1mA&fNhsDBAn&|PIHFS zoN47hsK3hj)s?pQY}h$Nqr&vmf3fC|^1fCY`JUca!gD@Sbw>`agO5tJUe3|B0pKD)c!ndc_8<}Ml zh|eazPcH<`7mC43OJh|N-4z6JMafjs7nl6${S(Yk469h07GJ}LPPFwJoJa830XUD? zxkjEp?CY&yFGY6|wXQ&h`#^6MIk^t}6KJS|<*#7*Kd}52I9-uhg3M!_^uHzJJ!V%c z=5-G9dI)>4I(YInR+iS5M$Z5^_re*#Dep^S{z0sL0&RQYG>7v5zhZ3W9^m!#u3POt zpi$v%Qgjb!R(D71zl$?}Rdh$Ef4RFvWPW4iSp{*{sN#{oX`o zA^H3qwcf?s*;xKAZ@V$;PjI7^&3$8b_?F0&Pu~n{&TPRg?rQdI{6cNohULiKdZO8^ zw0R%8#NUl4b$@k^Q@~knjIY;!mnd0XXX1Q3^8q8pos7)8U+Mp|!^nQs#B?3;>iQ38 z>;4}FS1WCb{cj!pH#34>i9grTI|Pw*_A0vlsntO-n6K!EU_*ZdbMpaK#t-#GfQB>r zHtb2QJg^z-*D0`!udBeP-jh1Ap8lemr?eTR|L-~TprSX}+lMxhbT%luwQMao+Z6p{ ziqZ?k+1`uV3-q)lZ>+O=cpFm;Mx)^rxDOl$F7fp4y^f++SJ4!DDdvSn<|#Opg9O&< zjbC}?INOwV_9}|J(i>Dh$VE>MI#*G*k*D{5wY@1C3Eph%T%b4S)LjC$0uQEbP&!84 z8QyS>Vfd}nxIp&?X$`a0OIWpBX?H)Cc*a!>P6!%kV~ld#RlL=Id)(ALz`sh>-vqmv zak@{_%xMbEOPY1fZ`4}zC&8Uco9B$)-;Ol;JCRX&w*bsj^adg`+3;`n%ml$3yypeq zgs$(shMoz!2Sbv&<__w<1bsQ$j%$>e#$_k`vd(@1cQ8O7~Hrmm;%ezi)`z137vj#;5= zhx>Qk4}jTVLq*Xk=zIY^0j%uqLvo*H2I#%+aLqR8+~Up=oaBC{J51_+r#3i_p12*y z|3)#)g#K^n3j7=Oa?m%y|1%uX;Qt|N_%TacUxA0P?GSbzLNgiytDzP>9Y@`9 z%E_pqbVdzJ^Y%L4UWbPF(Dt6C(SHKY3AClqoWcgY?c;6lBV;~;-xq#g=*OWSM`jc< zqoBJ%cSB}0GNYk~K@WqT4n19Imnd>=6cKwqv1eK{rmfNWAv!;VzaRd7X#8XFkNF1r z8{~H&zXSh=_&-E{0s0G|`$6}Eo)0}A`W@(Z(DMO$K7juw{5Ro$1^+8(#@b`7y*P9n zd1BHhCcU%p&teb#3T?kO!QTY^4D>V54?sVF{0+$8fX-&_l=klB?k#fqw-4AL0Me%Bu$1?Wq22IJE29 zcImaTz3xLV`q1udTAU5t0=flsE_5#PcqYU%W+Qqw(t1r=uSr|q($=@gEJ9`xG<`Jm z(G)@#QkSUnh`L|}(Y^vck?h$>o(Vk@`g-W=p~+4j*(sPr-AT~vpx0slEbN~Jy$yOB zbx$zYMk%^BPtFI)RKXQ!xWdK&{5z?8Cwj<%J~`00BW^Rsbn1?z?no@T7W!KB;4u%6 z1r?F3h&PyM^AffcpDquhR%e}ME**f&+*|#bWTRwWF*P+8RU6?JFRa= z^EGI`hF*|?JuBRv(Ym z$2$&v9Q{pbw+Z$@htL7G1=!{{MNd=eCaIf*CK5a%!J7a*0h&H~^wFCFJq1s0#*>?g zw0vSCpSIY&1ngb{{2AcSa0~Wqp)Mnm!H9&^4XNwXmT%i4$9m*guO)O#oB8qKt8iYW z71po7?wxK#!;R24L*ESD9lARjwo-R19{UoHeF^;o^bg2Chx~I`cs~~255EWe9<)oW z2E=O69J)Dr#-nFEH1pIjPYt7H7&U(=dWJ&d0Ur-|*y&k28GVn@_sFQ8&8Y7}zf0YL z)Ex-Ty!M&bUUg)uWBDnqkI`>fF(In5)ddD!M*n_<^v?5>GDgU6mBpsj$m{2}NW z0{uGl>(KL{=OIsa3hXWvz6akU0zD!ySdYwl`1|1Rqrc?RkX-7q2k_Vfm=bI&p)K;T zPaY1C3G6%xszB1NV%rc)@=6?qL88j=kZ+9c)K%X4wvX^t&%Y{#&^C{YTlD3{i|7rA} zhR@EyW9Q(HK+g#1-O#&{C)*gCZHRe~n0HE?Q_lG>{ztnw5C8a8F8vzUPrkr4!hVA* z{p3;Xx47(c{)=2cet}EBzV*|uZl%At#S`60v46+UKDn{me)`?5^mn#;*}vEqn;;b5 z)zWWjoqziARW1HPU;5d`_q3+P4q~O)g`B?8cBLKZrCVXXW1KGkSH5?Cr&H0nOPP zF}`{pcbBL#)$`u|IRCfK{r)Td6sNDh!e8n9%KyM$=RDva z_W$7w^uO~@IuAMe*FZ-8D~2QWohFg``c1+}>quMu{+@ns@5k@#MTYPU*Ke}%{XD*) zcmC^n`qw!1*`R-kQ~wSp&mmC%8s~od_c-;@NHX;#k{YBVsWRg`<>m;5udVCp? zCK68?Jt5JPA+d9ZM3sIm{}PFpghZ7_OgSQ^JYUGKAW<_=VoT$rl0-*=M3_cKWr>Tq z5@8w>na-Q?TtQ4!AttIyM68ua)-T~#mnhgHF{g2GC2^3=*YB^ASUBR;VAONmN;2Lx z8R=S#?$wOzH8QTfoNF1;>tsX+J9XTlGNN_)nteU@1sTQqjA8>uu_52CzrlUmUEws6 z{YUdMx&IoE{89d8`J?{hc`pBj{E7Kf&ObBq=cJ$c|M4u&U!Gr>e%9n~kY}@Se*SFF z|1^KUJcr~t#!~{G$}j!#iTIJS7kDaZefe*d^pl-_YDMbE(@;vY3p}kNZ6fW?KV6Wu zPhR?o{l{}pq)%i(WbpZCXkjte4$-bWJ>^NH`Msk31Rp#fD}|9N z(MO`gF7S+uj){(oPKdtDGc7th{mhFllK;I_o_C^4|E1?&Pjq!;XLQ~9XHj(1k5AhB zOCqy0zN6cS+~v{T(R~_Y(Svy6h{i|s8=+3p+uZ1xm{E&j2JKdpL`tj-V>CWiF_x)R zEK9u~%fZvP#cIpknHarB=FOZ~{YYM{iD+LHYmr|VYaMGV(R?V@Nus@MtXt%CEFzKI ztmnR1D%vyBEY?=yBwJ*A$NI+xMNY(q#D>RoK5G0oi#xkTx{9}=XMm#(a$(iXD@uBz7v_J~CHhrE#Cuq@{S-NOruE&dGQc(R?hP9j_Iy6K@!A z7HJc2m7ae(1M}i-;?g^PB+hEc+jcV2J>y-XHR5^kSp1&o?06p;T^X%d+xUR^;P_A( zi`?iiiIq0d^6?Sz(IP!op7GJH@c|lv^wN%1F0msKqh5+nk}_3#E*j#qguf|1H@+Y~ zKE5QrB3e1VD!w+pF}^jvQ+#dWdo|wU2jYk0#qksI)5Lh89rJ`EvGz{1XCjPeC(6rH zIZ-Y8pg!`hMtpDL8tK89=*#k^Zgh5{k;bXu(nRw_ZsN8?huHQ+*T~L9&*-{DLgI0e z_ASvX(NEf3DiOL#`Fo7#(ky zcsVgGzkXzJ{-F5j#O%a8o!1gG;;qD@#L~n&@mOMYVx2^&WDbeQK6ocja@ANXAsRO& zwuvsyc0@3eWEmp3ZDeXWGN)C^Y zPmYRCkXD|PxXP7$keiU4kzbO0A^Ko)VseVSnUS0$k+C*8KiMgNQ2wCg;^>(ClIY8l zQ_CioM^+>YlWP(ulN+K-t=p5I#wR8B$L5Qr!;*)hi=_P}`BS3J zlN(|wv1~$gX{1i_Sh6H}Dq161n(|X+Q{PAD)Kr~R!<1x$R4Z9&R;Ajc z+C>(K<|TYh}e)Bv$@yy$ksu2reQsiCP6kvb_Et<+eV$A!_{ z)OhJfuEa{u)TC&Q#LFoi*A)^YFUQ&@M@5#zN2g|`=BB2`yF^Z>7NnM>R>Vi7R;AXa zHm0_wcBb~GRz=6ie-FfGr4FZxMfyalY;sWQ^xaN$)7|0ST2c2f=h z|2JgA|98G2+us??-!0N_2s?SDj@!d`GJ81kgz}V^r?NcNdQ`i!{GH`{)aX&8TcTT{ z$2IcQ?NJwABYB$3qr6;sZj(pqbvB(%j}G#5?a@_#7p~Z~;$6~4B~CXEryIkG#$(Ux zbD{}2#f0p6GdRVR;S_TTCzo=ZT*|ZOt;nADQue%+II~>FY2|Xqt<`h1t}9RP^P5I3@LLivdovVI9-;f zOJTaKN&k0)l+9AMOZoHyWxtd|7g3I-b(EybDJiA@UV8c$C}n?ED*Z1?6)D*lD7B>2 zxjP@qgGmAE2tTJI`Mpe_N!mUdlY3~^Z6IIKgAF|OmfmdhB&a$L)H zD9Sa&WsJjGu4CK87>9Bl)?zJ-F^qAIMX?OA2*nV}Vi5OxzUMr7AWrv8YG)?3+tla$ ze&=`2J@?#m&pr1%9_<(OfSbzReno#?ML!r=ga_d9B8)6xEN<L@xZzEi&Qcx{(dtRs#Ki?Hy$+_wn#NAB8X}k*kvw(WN3A~#*YU;b#QMD0dK{xIj#r)Q zqt?@&1uR@A^>C7!>?wU?i($c?!@Rs{Rh$Q`*B#p*@w$$1?al=JDu zI?yMdD>46Qv4@QeDX-L1pf*jy`PizSJ*-=`4rR0E zo$SV+V?fh zjDR|@6>JAhU{{=N1^d83a0DC!C&3wT7Muqc!DVm_+yJ-09dHi}f=7yB@B~bNr(jmo ztR#>I93Tti%5z%zudvINb*lO$z$N3BADFUltbaycgS7!vgQ$$Zu=Sup_SI^fyJo8y zw17QeziRK0I$s+&4o<0fJ2(frRJ+~a3g`hh!EMkF2EYUGSlN*{8>>GCCY2pf$4$nS zPitBjk7zgr;8_i4fb2Od#wENA6nuOe8;kG?P$b9l?`5;*TQN_?PjK#W9FHK<|?xoKV_!R)Xhq>%8ZzG=2mmN*<|iATgg82AoEA?bId#m&X{M- z^X5hKvN3L6Lu)t8Tjm{d&m1%#nZxE2bHaRT&RR)Un&mKutt>0o%D0wVPOHRnS$@m3 zHdxhG)T*}{tVXNZYO(fM`>jJ(n|0heWwl%9tS*+fSl!kYtH-)&-M0Fz0qcSFn2cCs z*5sm0hcOq7zHqww$-vKIel~uVg$u$f;1{W%(y)gF@gx4*7~T}#9NrS%Ms|dE;+^nj z!njb_N%%#=lx9nqPWW3bDdD+I(^727wiGSZ_DNg1mS%I<-oR?I)Rv{$Z8^5jXbxMx z?KiXx+j84mTBhxN+xuEpVmR^h+NYCuCVyRf)1GHvt9{14&aP{#?f=@oU8}I~u)n7n z_FeYh)4pKeYyXz^Mf(B!?`vPOf5-lTR%8Fr-lOfa-?INq+ixGUPig1=8TU;5A4kpn zdzGu&N=-BFD;|O&#i(LD&KFF98Res%X_LO0s<10EK@P|Rg?fx0xR(>%{@)xS?cA_-FeTH{J9W&wu~XuZj8di6K3?PXG}b0WyXCxWyLt3 zO?y4rOtv&F`G?6r)NJ-;_GMb4z1Uu?CD{$TsU_P#Z~rZAiM`5Rr={E9wQt3J_^SPD z+Gp)M?O)gO?5*~1YWep4_J5}p+OOHKY0K?Du>U}N%l^dvL|gHHx%C9CSSy?R>!UTt zwbzXTV}(()rp+idJRoR<*ESg&-@dW-va!k7EWUYkRHIi*l0T9B2~Bf+)$vtC-gCUC z*&M&?_+2g0vD>j*OLBbE@l7q+(dIaziT^9_mhB;TUnX{6+8U>3i$mlS79iq@afn!z zeo61u`}Di|ef^<6q>t+3`jkFn*o;)eZe$ucMxIeN6Jx@7YRsBR zX4={o(_v}*nhC=bIhDX$+V?eDX+4z^H}LthLvqC zvkI&gR*_X|dDcu>L1ViWwl)^;wKj=%tFOB2E@l@8jWL-7RTi0XbYxP=v&PnTTY#goo)z+7D)<29A(cXQu_z>|S#MB-G?T#ZN zeomVro$y?%LheV{3DUcaW>^c(sua0lK!Jyjpn zAAw;=jg3Q ziQzK*hHK>|)HL-Rf4Z>&REwH=-s%=33hMPdqhbDWsNHBZ8;$-T&rlc`G+F|Kp&fdm zvB%h7eAYN*wCPWb-oZ_?kE>km8K)S96?0Th{;XGkxnAv*e z8oOTQ>@=4-J6G+~s{*(59A~dt09Nq&GR-2R*(_4m5HU+l4+z2w`}_Rq=0>o|-xuuC zbIi@=7IQQ1hB)ry=jQcVuQRuqJHSqOyK(lt<^gl>syum*%){nUaDvAbny1YU&?x}I zKs~?5b7j!HV6>T+M_6Ba4ec-NWC6Hs@U)^usHy^Uswv`3u5Ey-V zzL?|YlsRKg>BE+7W%m5pW2IVlE7P(Ed#s#Q6Z7Yif85Hm3avb6ueD0_+A1!#Tg6rx z?`^N;vvg2tRfTp~5xv!_(^~_DdTTJr+GU9`>zZ(5fzv*yi6>zZ|A^(pI?ztp;8 z-J72aU0+#X4T49UpMS@U3_h@ittVhY&O!Z}^%TsCIT%g~r-dEiG&4P%70!Km4uhxz@XL*DLC zTj;pA-gPB(%D*Ah9y;d^hq^-Dp(}yIp`Osq(CtuvXdv_;^!PV#RU8XG361yF6d8g7}vG)}J zH&5H#-_ZT~J(8fv3S0_Y4O|cOl1qWUz}>+8z{9{$U=(&dFy(q2m=W=yEtvYTum|o7 zt9lbcZ!AX`S5WDw)DpQ`#b1~6#SBbT*CnnXjrZ|Wysk`M$5LEJR6EEy;uF84|8?NM zBN6`FM>H)^FY|#0&?w`9X3(Og2Py+q_^Av;0(G!kkyZw_2gF|&F8PQai7`%NUq1Qw ztSywMFSE}P?8>#gDEc=sXG`x&zjPe^zl_*ZnP)kC|E%=Oa4iAcyYeltXzR zbJu_0|Ik0=AN7y>r{InIX9BiBs{eGr9?0ZK7pnKdO7w1xV+}rSuf^LTg>Q#6z8%sX zLA)L8d@sDt_re>$#E}VFj+W2s<=>$G+IEuQZ{)LB>xhaSKh}~2+e6zlW<$DdK(%e0_uPu#Kl7aV_R(Y}0~etuNFSM^=< zw}Inv`BQPWeF37abD&F&YyCgdF^)fW;TU)S%8YS>cg#EKoyN>h%1FUOs%2Oi4VpXK zmhI7gJKLB2j&?jY|LvN+1ohHwXEeOWywwVv!&|THd=k8kAL+-(7K_iX-yG-fiL0}J zLA^tZp7Z1M=cDSqs*jo%I}+ZQ0(ItRMc*u}>0pJE*2SvZc}zbfNsyYDW0 z^Mc#w*4>rvDtE+P=ichx4(i-ZU>EbP?tQQa!4YuGebRjfoOPcEC*2ppW#+G;-bwcj za0}dV-*XSTAGwFY9qBJFPLIod z&*S%)o(-OAPZan;J!qich1=ctHO#;v=3h`jeh%VZ9niLEW3M>7Lu(bZ>??8~!qH0n1l-i##{IrCyIW z=nZ=}f>N*vY^J{j@onB6!uRBQcQUpc>_uG<>;aS?@E-Oag@3|(n&l_F9VqMcULcpi zRd8M91-)_pC2ybiZd_h)Us(}<=p6#1-f=JmX23(A4W#<)^fN(@ciflh%VWL}tOCWp zGUk1V5BYRorBC;c`l>(#)B)YM6>Rr4(ccAD`Kn-BncoKvf+N0T%%AkNqKz}Yv*bLu z2rjF<;98u2-gm=yD=sg%qpXPE^9}kQfnjjZ_XJG9pYT0pezqdXH&~Gd93V^7tH|}; ztH=k-E1VT26)xZh&I%K3fWM)ln)zr&J!}JL1kIqOVh`f`!J&$_isKchKsz`G+A6w0 zH@HIEgV;@Q`$hTjiheKv9x(s7Vgz=qVzOeoV$!dH6!>HQbdUkEh4n8(ya23-mBSW+ zQs80zpg#1m)XM`WH`G>IMMLb}a@j#~VRs0q01abm-fkLoK z+2TN1zz1|?i}BgO2Xxx9m+DvXQ$z%xBBb38n!qj~%35*UK5&rsNZ=UkNpJ?V2F?b~ z2QCIKgKM-m0=HoAfP3J4U@-6~FdTRSCX{^&W&^{)Bv_OM)3EiHWPx1e=PSD$I6+C! z74!#9vH|{vU^V?{u%5O7G$OV^oIBVo2(|?71Y3f8=L{zfn4S1 zE4v&xK}qmjuq)UNu7DnJE_gF|TlJ+M41n9{&jWSd$6y3Jz&XZ(lfmiWWJm)k@W(>w zp^Q*=Xc;H~8KD*QGeSk7(vSxPm5nF7NNgk6M1OP8AKC)8fz6>Ep`En5mEFPe`E~X( ze?W0q*w9gMB6J#lN1!sa1#ANyq0Z1w+6&5dvV4A>OUxfo92Pco6`K=`Zl;sunw@O`?jSAr@K0Y1Hs zF~L@_9W;Sm%(pTo*ry*{z>ydJG5w@|1_*l=oYybvmx1_3SQ+~V)I@94w& z6MX^*`xNlE*G8J*Fp`Wc`ng6v?Q+A3Sc#E@_jolhY3u1X^SzJvyW#Rw8`v9oGssP0 z#XB8#M7+nv``R#32m1)4+K7UBqXD*&ezVa+yT{lMdkD0N-@Jl$eiL%s=nh;ot^_W6 z{6>#)6aHYR*`x9>3+o-l`h=taj|X+OY>~=YGxa zX}5G~Stj;vxNlY^;#DGVMQ~g@_h~&=9rjYy-U95eZi9ZY&*B~{+uABE%fvnn_tn~t zc$3ImySzmx!+o||)i)Q%z)5fhv=Z@sgY=KlUIdq|Yw&L{e+$Q*weDDF#r0bE5F4}} zS;OFoHDNuqX2VI=Ba-H64?94XH#?jQ@=+#OF24)FC%;sDLQKOa#Pp0pEjeQ~J}u_) z(_#reEv9JI*{Rw2T5a}Q_~f{gpBxX0PnB;pz0ss;Z@l-$ds;%qmzS1nHu29a+5S>X zNI#N(eeUz*8k-^&*p;16!kV0q^y6cT#pl=0i}P2-)hS+3uWZqCew_Y%RJ~XAQCs5! zdR)FT&Q>izv=sq$YV2a;_fIj7@hlw2t-mVcX!}O_`0DiXsq&fCMddRt8%TB8U6~-& zmE+2TEp)AN6@x-o8S<+T_qlXerK<`=Ty?Ik>$bSIgC^H5S1Z`(I_NqAj)9Y4pX&@b z3(kX!uFHsB12Eax&5#v@*6<)`ZRZReVVgMT6g{W5_bb=bT_+Oz#e7yyAQeBz;X8} zchr5#StYHze)Udw188)&qh7oFoU;4fUG8phW%anb2i#me-{2FpN!GnMfbh_7%~dWzte0*`aMCk1%{>#MS$vkrE~Q-tG0J`9Q&6K$hj*|evq zTw{JC+9(pom0tzd;Wv3Ufz8fV&lcEiUHtLmUd-j$uWBxSS*ei}J?*)CHy`GM@n>-z>r#zibo96=P0GGg3 z`ZYO^uL_fr_+mUZ#ewXtIe6;l<*5U2}H_Q9nw_*Fi z0C?cJ!1!ZNC+KyLz#sE;cw0Svi1!j%UzSbc_z~0{!Equ_7(?5lo_8PoQIYp(9uXJE z4ZVn^fOO1_4A^Y23>0`SFuuam33@$6@JoTm(}#F3k@aO+5XTpxZV`?X`7kJA3~jUC z5d2Z*H+n=|92bj?dp3d1o*B;;*ll13*opfk;=2*wjr+0}{sC|p_i7XJ0@hb$N4-_B zGnnVsnLh#cGA7y<^|mA5#QbTru~!@yi@BTEPkIl6BjA|#r1#AFNq4jNtg+9&xv?pY&}2)fk6%?@3>j_N=leMfvyzm3 zS>F!MDH~7MBC&38Mfl~1%a4|y0GAY}%R7Ag!6DFA-myBvcO0Bry$N;`?6|KToLfEP z>w@ieR{E|0ydQmdxB2iMq~F6jC@-7#^^|MO_m^LVf8E#PZ1S~(bIw-Z0BpDO2J8*S zZ-XAiIZ;-gjboNE-(TJfzt4v?$JY+dc{+VpV7ooNu)U099r0n!q2I$gqI?McDD(X< zd|U@O=b7;hz;=6mz5yWOw?U8M9Lu)*db~}{_s9G-ZN3NKF&F`3U=mEPX{*rIOje|< znMC;{$|q4iiSkL5PojKMmKPnUNH023kpZ%c9#$+X8m}k-D~fX~ii+ziiq=h4l$PXG zcq)Pw;eX&~o8+ZmS=y*+OW#}iJuPYJpDpdtyi0F>dRhx*znlH8tyN3V{>t`aO(;qV zHJ~%e$(qpG$rS%)H(jB2#!*-e( zFQD?!i11T(vd%W9VYWZU)+VU{6jf?K1)5Oz5vnR@82Npr806HH&XD#CY7te=DG6!Q z)E3I5&QKTAZ9;!2;jC!Q)-TnGWSlim(6_OLF{Uj{I}_W)-}>S|(Fgdpebn{YB$S72 zz0?FMp>DGGXN5w~D%Qzh3q?$~vUEVE zEX@)AZ1wXg%#%V9Nh+LuALCHL(r!(t)(z6%H~WDY84*c*op&cN`&}{e^nFZcwGCnh zvK@y=6V{44wsGNW)2wrnt^F^So)!H}zRUUvEbS0yNwf(+<+F@*v3@G+e<(^5Cg~rY zrGgaeRL}mYxJKb8%bC;0bOqA`G9r4Cw3n^5@VbuEck#NmGSbP&HD1@xc+?;AiduQb zd|t~LUdt`k+`;&E_T(_no+jt5XfwH(r8k(KV$aXguVno}_NS4NEAqTNHjD9_jPQ;m z3~)@s>Wpu)eW4>|m)Fkz46|l7d-w;lcyhHKktXJ`&S#!aBeGwdSNjF~*~Hcc)wPRA zGuwHRDO^wEF7cspm*1)gOu&oU(M0@G5~Zx!*x8Adko8jEIUs0lYC#*OJ=ktU2X zeZ)vE>kQM+VEhUrKVxJgQy1emM4A}l2$b-C^|EifdG>8Q?<3BfBwo>SIe(tlh?&g( zWQa&=mPnUGORH`8TlKQeut4kw)P!H zDp>R9BE^cvnZRogv*#Ol6+dMk9*H}i!g**rF0MD}iAXU%AMjc};FJDc_E6NHWeZMq zH$Pwt9aN(cPi`jf#phY-Vmib*bC+%Qs}YmqAo{HHDjso^vKW7jX_Pg0s58!R9?oz+ zPjGI?nqtJ32_Ngm1Xlo2r=ICiMrv6zhv&*+%{x4*mvv65*(FM!a{lZSX~L{p<=$kR zPb=@fM?T$hed8<|(_ZIuigZaXXAxJ7#1YnSV9Hf4=_1E`T%0ShbM_~k`4gP^V*YGW zE6)UHwH#Z~+kW<6&a}fEjZxP5KI1#s^DzA{Fn*R-G(f+LadY+_?`#MCW{&oR&|u&h zH>!1}SnMTur!Mi1{}0A_MYbRC*lWDMP4X^_I(Sm3vB#^E@1`^IzKe0wPKY{Kb3S03 zqGpy{fz>MgCa?4ZUa4sF62~f2_$m1u)fS%RH2Zd%EmW%~U9?ljSy#Yx3;Xayt=J-s zvi&}}63(9F-7MzHe}X+JW_^wC2+`&N>eY>D4SYHp#2tM8Mfefk@ln=kmMb~?c|?w$ z?JxNJe!!V2uIsvdGqUEl7~jNeJkAxnnvs0I3*RIl8cx7WW=91(sa+@a>ZC@U zRHu`QbW)2>>dz_VIqEh^ojIv6C$;62s+?4klNxf=5|fH?QY%iX#7TWPsRkz%;H2uC z)O(W}Z%W;bif&TNO{%y_{WhiCCY7$FTAS1kkqT{6n~nNdQjbk4u}KX!slKLk*QDYa z^*N-VEmDw#Olp!TH8QC~Mja8UJtkGhq~4fR z8dDl$Qe8}{;BdsGmY7lzlloy&IZVzFsTM|^Fr^SiZ7`|(rL?}J%9m6Gl$u^t^O8DV z$y9<-+Fexbl6qZIsY_~fNp&u%%cT^#cvLD&rT&&w-jbSIN^OfeTT)L;Drrd#EvcTR zbhD&l78Qo14wh8FlG;~N^-AhpNu?{PaV6EQq^_0JvXUxRQol+nS1HXZ`P6U(q(YU{ zppxoSN_UEiQ%Y-!`am|NDaG?jB}nSKC><%OASJbPDKkk;CaK^k zb(nZ|rM)Com*h;7iat_fiFZ)yDk()J-ZiPBB=wV|a+1_cQff(3Q;<)G)J9UONK&&< zDj~5oseUANkEG&}(mIkVN7ONr%0^1lh@&TUjHH5*)Gm^$MN+RwDiukMBBf45T_UMS zB(;c?3K8{(l=6_&9Fl57T+O7ykkl4ZszOpvNUi{!Z&E!->IO;0AgL83Rf3d05S4+X zCXiGEntdlJgmkk|Yo7fi{WSV(>93`~E-8$(BzYI(TN(c&`bUr!C;ut^FnxLKTKZKy zb`4S|<0V2{8tsT_hfpKjUAc zzmEPo`X#crDs5%@9_ygZXFp9^iS&`WqLnOthrQyJCYAHLzRI3&7k=V>`l&3{c+~e8 z`5hkn1x8+{U%_MlEn9n?J*i-t%sQp4vkhqx{UZ9sNiN14>6fwv#+j~TX)#ORPI8Mh z`D^Tni#3J6PW(0ob>ui4VQbgeTA2PHv!+PbBz3ZmOv{*7vrYrszs&Z<$h?!>C+0)S z&%}J7pGJQz{k8PhCBHAOF6A=g&5WO?|E@TD$|3rHPJfL46X7q(=CN1Bd|cXUzc)E%!ei7Dl${NB3&ZR(w(wH%!ei47V|;)&ps6X?EaKL5c6TlxM)9R zNTf@CPXDh&`%6aX|1Eu4=Zj3&vF5*G+8}0#=-abLvd<}h#QGidh(OtbVI)<4WM-sUJxGyN9N9$-z* z;U%JG5&a_i#VNNKe@cHP+mZ1?_9R08E&9LBcK%YNsY~c{&Znlb^c_b216%tuF+v$dXZ5om zGxERL4rZh6%i@#N|KaXiz@w_pwb#B)B1SHI_GEVE#>|lW>;OfKfQX8Sm_|fQk)lP! z2oxzsiin5^h>A!lrZG}PN&zXwG^Ugyr8Lq=Ih=?{Ih3E$ND+~yGy+A+p){HKzwcc$ zB=WTCbAEjKoS(&d=bi6c_sh4|UVHYAIs#V>xK>iHVTtG=ua7u)1*dr`&h8X>I@b&Q zWgt!k#Y^BgSyGUWcn^r{Vr2sm=c3|OAg*qd2>2^Ni!t$i;--ecnbI+;^KTM zem_Fq1v##=1NSp_}?M_74TYU<@v@nK%6Qh z1|uXSZ8!~99)T98A_=s=D%JbJfp9-$Bae%7`oTe(c`WDXsak8r7G)6fJ zya)0l7-RD69jPfl2jc8hm1#Z&L>ZI^5KH#UP2d|5Ql5#0Aje6FhB9av6$*M^mE#a2 zPzeKZO01yA#bF@QSL7+^3`lVHqFe=zwoRZ$%2y%z4G^g%Ffx@7AlVQ6IuN}t(EACT z7{|Yjkhu02{{buk;^aJWCA3Ic!AZWrXc5<=7PmtFYas4Qh_@ie7*M_k$%{aonTXec zvZsCw{3Q^l-{NB+QWKcDiKoGT1e^`TX^)Wgl5O%W;3^=-mB>R}IY;gTzK!z8nS~mO zp8+uf6W|G1a%}oRe6py7aSu~*#ksPwQoX>^Iqi_z}tW`fjDQ@ zkiLQ%sWC`kXVhxQF<-<)a7Y9!fPzzK6&64#Ksm2~1bwYz?yEnA_P0Qsu&Eet8tyJB zThZf4UxTGmG3yh!3nP9A$!6eBUp~n^6rx1@qBJC>Xql((m&YL-Ay#|Y+;J$6%tr2Rn`&KMtKu*nZhT~eiw4|uZj~n9V1zjqp=PW*a{W%MUi)xFoxAe zXi+;2mS2%4lk(INqg};FGcda~+*?s$b9D5nhFPYgcIrn!jA0EHL%{y%7-=d-mx}u) zy1Z+H(WqiPBz~A28?;Z*D^90{Dhv~?e#?wIKsY?O}hF3dF* z<42ck+$z-W4@pk>y80sw)?Xd-RKaL;JROF(`HA~JB+_luZL4p~i<9?-f1c=$KW2MvN z{ZrU^9Xk{CYRJ)R8s@$tEfw}2Dy)$99msD6{{}clriT7fu~X8pMyr@p8s?OSxv%3M zsERdIlOqQ^pE$;I0`@9_85hSmiQ^t+96J+Dwg&b#s=QZ%wu+;z+OVd?(aUYKvCVgWksoK3ue^o6(ptOo94{QGwBH-P1k+zU=uJ+v=JNaYTcmU!Z?9Fnja z`)8KC5ByUy&G~HG`FA7g#CQf{g05S|-?Rn1=1QbKRFo3ecL>MQZbA`FY5a>6x8!_! zAQJJ%ne$aPA%}Oz{|Npo;5UJjfo~#iAEc9w6y8Pn1I4;gfb6?~3+J z{6TQK2GoWpUSV!L4*U*q9Kx8;c7bFnB%Q(U1c#*UJR}Arj}kr-9|DO63~;{sSjPBJ zlyfa(;yWnMRgj>BMjOJopzQ{&3Q0P&AAx58xxbp)&Owfv#zz6iLvkPZQ{Z)sG~-!< z*3*wb{xWbn@HuF+kZ%x@#gO>H9|rFZlp(J`I)4R6f5o4H%hh&6!gPOCb%$z5pY z573g&piR*7#$e#r(1zz&OZya-i~(K`c`H)57yLNVIRnW9Xy<;A{1)Mz|?4-$sp|1)f2DZvfg<>$6GiqrktBq_4i4aCKq>bK?_67mXj~_wg3s9grX8F!5WU zeF^via2{VBbL%Oq+y0I)cXF&YN?Gkwbhs&$@UN-JsnGNesQV2>5s4Ye;`Lv~Hwd3OSFobe`#|$@YYD%m6E}V0XwJ;1J+mU>G6SF>3#X6rObDYBBqo5fRji2riaEC!@t*)kLVE^sz6YJ9 zlZDZ)Pt0b{C*gz_xIFqcu5YqlJSMALWZ9HcEK&01>}%t8&gXMH!Yx1*SPSHlS)#wf z$UQ}Cho4i3FNUNRl5W7OApZ*CJZ=qT3v!u(OcEaj?1CIaD9PK5d`?UCvLX2p{7Ik-A!`w493)QzGa=axtq)_s z20jVIctglj9FkUw_ZSoRa=Wo*Q-AE@U!{6^g(X~$G7mzTzm5{7qs-^PZwK<5nG5-s zpL#uydBv^s9j+hA{?+*x7x(FDY>ngRV3QYO9ZzFza>XA5ybJr2AoeFWV8#3d@_T?~ z(4u8{#wqvlN=j+o$=J#*vqtAN^eNukC~FMvoi&&X<2ak9GBejAR1pV-rQ*0|sK_srro{>_+jifukg9>XmAHrovimW0=9(!v(;?ntTT*3(|s`By-% zb4cwdw}AMo!E?4Ev6Q*1h>`DwDb+4Fa4gDs1IpQeG;1+R7a-rkkUS6E1N;UfX5uMc zn+PWX9|s-;{vN&0zlhW06CuGG7dMcm3dwC)SzZ7S0CxjlLzvUxqkuB}%fRIrt1411 z<1}@Q!}zzbm-_^>W;eH<{u4&N$10{`ES2a>5q<{34?+t+hA=^32oiqJ+lx9zbzJW7 zUj!Zk{sBAKNze|2q#qDFTizd%7Bx~o1|Nyk*kYV&<2~(bT0O85C7i-#YvUE9ME!4s z=hR+nn+|P%-~dS8M65MP`4mRZw_xk;W3F?L+^1HfO;}Q(y@NR-wewK64}r&kQ-G9$ z^0-FxUAaf&{ZeJ(KQOu$V01NO5rP z+~IrxZ9e#P@P5$p$owtF*dKU@KK z=@yLAErtyLGLT2#T2*tG`Z{0sbtu=DJTo##WmGo=2dv8uTF&J>NnE5LcL z>o!hdgz#8>vF(Qlc{L;71|Q9`Jd_cmUy7qTh$Hr1eG2rlCL=(n$kP2W9}vQRZ{tqk!XqPXVt74nvqp z;NJvhAvKwfAJ`rE9PkR@)&fJKlL zgZBiN7C_F>p8_{RatHciFUmOzJ^L=#H_bvAwgztAKZvP(Uz_-o2#MBC`wG&>3eI~8 zlB~gK`55W^CnQ}k-)%_V27eNWD|**l$mc@x9U$*sN|L(*)KQkih1N*JwR{?%k(L;L z;=DK)+U;}!uK?eN(sIjR>-q@zeT?3>k=H6{KLX0VjREY8HRT{w57N{eH6%7`c<3);fKIKLC(LA&EZ%i`J>=x zQrH^&o?|JiIXqn_@=QF4bh;pgcc7gI+yXqyS1Za7cx4xT#Rz`agD4bfLi9Rx(JQ@< zeCoT}Ygey5z4kK`x_On^RR}Z7%p!iZd9^TXkL}^Vydl(X-|a>#TzXylu@3K$SeNwk z$=4)5Kkb!X3qO~4l>IaLr^9dTz_)Y=Q-4Xg9se}XFH)Y*3-_oe<$+k zY*e->JC(i4A?28IQaP`xYKEGrhSfr~uR2H_rjAtaRVSzw>MV7ExLhqzodPvXL`{)Dpq524Yj9#u!)o1GS^~HL%zDnPqZ_?}aUHU$~Nk6Wi)-M=j zjSSm}8jewH+-Q^-WyV-zk}=JgZ9Ho%HI^G|jap-i(O~R04j4y_6UJF1PFK{bQ|?T5 zDx4X_#yI1gY0ea4Q=RF~ENAXT?QCKLote%YX92N3q@U}|A~w{S?aX&ZLpzQ2Lg#qS zv(93t(pl!Lbk+(@emWbRI%hNKIhP5}6sIY+30L>>YW`< zBT4Y->~#(}P0mrLS*Wo+vHh__P7|>mu?voH_7U3}+aBBL>>*YcJ05Fsb`V<^tBGxl z)f1cJY<9Le4OG(l*s|El*al)-DcAK*Eo)<&I6kpau}aRJw6(ES9G}<*icNJOmMj^u zO%!{(vy)hZvy0Ov#-)^TSx0FT+Xg+AirQ%**Mitmr`p-gWkwq{AnrnE3Dr0icc-(P z7{zn;J7iSw+60u(O(2peV}yPb^fFT~r8dZc%6MH)2tWoeynx zk*g@=R3POrr9BLBGmAPogNWHqGxga>PT4t3H5!)8cN?^3Q3kbS-(;!QJB3mkYjspv zs@R#>`BbTja*=O->~QQD=j&YH{+Id28e@AoU+0W--idR*RHo6fZON2}$2Q88xmL*< zQR>9Plrq&yrp)by8WnO|qP`Bb^l4)GMLnG(&T$!+djfHDWe-x^0Qc}kZT&^6~(u=EdSIk z=b_1bi=BbVxQ^2&nR3+0Pv&bop=6CZI~K9RqTbX?osw}6JA&iJPEbpqKCPI_!#>>#nOPG)RZj7PTV*s=Q94jy$*xJZv}rMSY07P(?|#8k?) zHMZ`eb_KNgPIIi1N30Wa4#yS}3p=^7>ew7&Q6~^v9Gi~Op6#rUO(u54@i{AFYYWgQeyi_dnh&-GbKtP`Vk8`*|Gds&t%G>ST<75k6AGvv23R>)+t8w z!^w4=*s+*P&hEnD1*`tY&zX<(j1|Ijzvq5&mABQK5S{I<_Fsf)f1H&ohVV{H)!TPh z)MNkLmx^glUuS@GBU#r{XQVTl`yO_#v zSKKRvU6fdF zT5pQ4TEDb@DN3!ktnK1<>o?X;affxl`aj}MtJ!K6cUdjg$D+(SWt|eEJbsT~-0kV^ z35(I5s3$7Mc=~(#i+emHJa>wFJrh0O5@S6To=3!ko<}{8iiw_Co+rd4&pgk3G1>Dy zPnDSBsqxf^soqz-uZV}euXjhvuMBgtg=|CRF)|#m9@$SrB2yQd&dT4m$FCMPy5Fs%5kMdIis9c;%o;B$_vP@ z6^sQ=E~vODDJ`HivtVce+53W#1*4M^yyI?p; zC`69{Qn3rj(ifNow9*x16qrKIKU+Z7y+9O@rOR*5Kg*JQTIuqes5Mw}l5lT+6JpV7 zTu@lhn=l(ZqkybufeUGdz_UAq=?&f+@argp(@B(GNKz+$r16&7O#VBiLu4pp`B&2Ub>ugHX9?Cg{5^2+lj*8Fx zj?P^|zUp(sE4i!wrPn`0cR9R4-j(_us=X-hBr-)`F;Y~BB{WhRMYG~k$O7eT%V{9L zE2kkE&)Ji+Kj%=+5n{)4T5{-GiNEC>iXI^uIVq*j^EvTcvdQ$VA*UtUKyk_CoZT%u0S+9+*cIk%ia^tqY8k(Nr4Qy1+_-#Zgh zzW7|mNLtQ+W#n|u+Q?}_Dl7Cm--XaDN>`-=g zc42n!?Bej~?19;XVL2vJF9`I)?G#F}cMHYXX6%I37$fcyB0BU-^XeB0S4y5nLUc6w zu|kWM!>9E6CE<;1ODNIFpW!P$M}Il|4B?_r_KI)jMR^Y~OiU09#A>mf_Is_gzw1Z) zx#_fjtE2r|i`q%eSBI+Q>U?#TTCX;#7c^Td*2=VL+ET4n+pV3@)Ad|^2({aS=%VP- z&=Pjh>gbB->gam#+7RtLq$E_qF1kKi8{HJ$3cfu=JCEqh=$z<+&`5TqUCN=sSBGd1 z$lpVKQ!Y9UDKT3R>PuSAH8bUs`7m1_%9L?~=Tk0P932>)05&Xmp0t!}@KDNeN)(#e zir^txqu{obi(H6`Xd$y`MsOQxr$uK5SEgKac(g1!25ek#C27Y|K66tpIt8JLMfL{g zLOU!tKINh&;xd~M98X$GD>x+OBJ(2)Nz1G%$n89s;^w9t#kHfu!3u-9q@@}L(^HPa zl9pIxbTD0N11C~0vOLlh9Sl|zI6>ONs0i#1?2h(kjC4Y1W`V$N(q>1F25JMf(L%;> z3*{REiwA0j8aWv?14{!-qc&rBPc%en5sOp>=*lkA961}97MK=wF^21+g3=-unGu-A zaU%-@WfY=}U1Uk5ipoPQyf#oq+NQ|lKrw|cW*4c5%!n*u7JfEROxniC-hdrB5U|-r zMpA1vF$+%$&`vtCBeKzdA=2o-z%J4^QXZ*i7A|2s6xkTr;%`d1urC}YEi=bYyZ^|# zNR7Wfy$jZ&i<-cN=R-QIXxKdXUfr>B9t6wPG4Dz(k z3(%f0uuy1$CGaV|eo1&GQ1uyp`RC{_ho?OueX>`q)$Q`|3Vgqoc7%)QioRYP6latS zx@x~s8AFzRiL#!q#+#ILYFD*T9iom^XR4KIjk;4kLe|~VdTPV8@!D*yTC393j5MLp1_Mu`$A!Y%DNV8e5Eg292Q5kK>V0V%()Ro#PNV7b&%DYXv(7F`! zlI;&whMx7VmM*j`#k_Rw6Bk5^SAH+;L(%8Y1 znJt+up%D3OX3~+SYbcPpFLPfglYA#;(vc=TXl8B+bQ%$+x@^(&|#h&Jr3(jrlLiOwk&h+e&E;y&1 zlV(%93zoKX(kyRx!9MMr@+tNo@*nZc^~?F52l#MmZ@2B>HN(pX2r=CZt)+t zj!EaAn_|{6(ya9lwi>1LPe?JVku*#FJFGhC{EaDQk?jx6_HVPQrSsRNm{m=hNxrkz zY-_f^mi#7W(vhajcgPxVjrXr3znqzLRO;#e5^I<>%s-3#TxQadW{SVJ)zj+fpGJNH zGwCR`4Bu4C3YZrC^EFr(|52Q{ugrZRpt~=)FZk9oN=KU0ewX`*|D5}X`-pD|qjaP> z>T7ZD^f$YAx_A1fGfGFA{l4w)8tHt)Qp{aLn(h9OyHYye>=bj;+UM`&o|$s~uI-%G z%vSfQ(=Nz=96QB5!MPhH#oLO5CZSp{?r z%WLwfEIcPDO2kb5JFz$^R;-qbUaH3kb(})|s7PH2z@tpylXQa=#UpH%LkHI;m z*^}+bl+$#3I;H=Z{TQwH^Xz$4f~W1Lg>FA%KO+qLyY_c!%~$FBM0+BIe%OAPLO)_Z zLZP3tY26k4H*Ui?y*ByxRWxEW-*Vq7-#T0k{sMJ+$$p9AzG}ZplC}0)u914L=5Q<} z&d+&g3`_cK^23v#m&=zWKgV>CjqAWCT*kbnke}A!`^*lXb1w0zx(@Hazl?f!^d0NH z^xszRp7tVpDYMCfrAO&^~M*vrpKk$(^%XiILAzv(mFV zXIWW3`b^IXlT#s6;pnKXJc3z`jmAK>MW|#Dn%=`(`oGzQrCYzG>fPe_cHEsqRjES%w_wKA zihLo`PhK8>1VgOBE!7RETNHbyLr3lVvaEH6kW{+%yMDc z8Fq%S>@Ic};jvBI6q&ZywuRRY*&&f-N9>63**)!^!f*Gn`-p&jja@8)c7MCS=xz_R z2a2$LqkWTz*hB0gqKAE}JxpZVW9)lGF8Yz}x`18J6^f>7{A>6OwUc;Ch_oR|A0}Ut z{JdO#MDlY~2id(H`1s45U&>D+Kefa6=^Z|2UE)*qF6qF(j5g@#JGQ~%e_Oq0TlLls za*ftr>j1eX>!{UCvL^B;t+UnzkMOvNHF+|uW{=4_k8Pdxggn`vLelp36nh4G1``|R z8SW{gFas&pSg+GUA0Xd!+0)B6HZ#Q?Ey9u|O`^(I=$)Pa(RLNt^^(&1mj?1Z$ z{ArNv97ucUKup((X$97l+|z!}RwPUAg?s)mY-^{Fe;)y$r6i;se4w{f8u} z=P=sGu3PwB=ZT)2m(I^?JuBn3T?OP_O*7hL6W#`r&aI&>;3tK&33y&;AKsNPh3ii8 zddTa!%>1@c{Z>3NewB7No*(1CCNh(skT>3je1N(J@{ug(C%sAj1Zq@3*mS*PkSNiz zHQ0UHwr$(C?bEhx+qP}nwr$()K5b9m`@M;n7c&zTRh1b#bJvdiQBlaXR^M!mQZ#!u z7y@sK^r`z$@~kHup--U4{kkm?p07d)w%k-tWp_}i;v2>urO$w>?({4JWg;`*5eD&j z1&`!@t@PdEu;tsi@DryGP#7=Hzfg6X$D>jhZMRkQVMPLrencBh<7(6p?$FJY+-s-q zcsD37)K?^NcREF037+Jc*^VOZ#J`|BI9V1K?_s(1t~AHY;cEU$G>_NsA6XiVbSTCj zX}hO0w|PsV7e9NrN305*mA=H^41Cr#*T?mg&*i19w3QS13M{Y*`$ikTn5*UlX5@ zX0($UR6WByReKYT-(OzoUe0a4_ z6?KLVWgY@k?XW5=A31`o$!FPT6mX(TIR`(nvmH`4qlrILBi1T74Bu z#;Z%eV{*Spje0X*O|fhl9FQ;Q&N?F}?{T%q7{I1!w(wcu5kO_zx>-H;YYewh^q&+ zu6irvrs}jm8nGI|y@UR2gcSc|f@SKiWx_Ur-PH^5?6B>?a;gk@wFn2sTGjWnZGKwY zPGd^nJ%4OGbqJ`K73+4{%C;LJt+wng=t|6aWOD*^yb&E;B?NvHW@o zNtr4W><8`BTetVd&sK+}ITH82@TNS|`XmWt#fS=a{24-N6C5Su<$3K1Ew^}uzZA%9D;0t;EnFUcOmiVB3KrM z)rJxy_h6Cl_iJAw!|Qa$-OFgEG^g)Y)9k_KmEurwf;@QH0(@k${WY@Xn=A+iIMF`O zXqz0u4&{yE`^*EWVgDHsvIE_+5}EsL0m^X(++DjNx~ZkNp_;Gi6t&jvNUma6F&@II z1>xlarHJ@QG6%wgRsO*twi5WPI|yXlG9FmVB7oiLBJ_WiLFmOki2Bn2NjN}m2Oa}; zCmz%bRv4Mb!CvsDCFq8b5sQ)`2a*Nn4iL?CXQ)LbtOjhkA4C+OdO}VbHUs7XD`be0 zS3fZK7vyZFE)W=Ps1V{7kw4xEDd38}6Q6Ey&;wf++>o5>AHNF>v)v8#)Lhsb`GAek zOM^6_R}ws=8!-4C+r_9t5$+&g|5sU>=s}Qu;uVOkCIQAI#}FPkdu_ii7g8ub z9IOfvi6wS_j{Vour375#f1I{z2&t3uF&UuzA3CNR8u3cwNAt%IOU zAp0@oJ<%{J88a(`7zK@QrWq_6zTm@$0@($;+)t=yj@K!-`;ZfoI&guo7%RS<(R z>OEV5Ps2K}1Nw;7W%>m`*}p<$Kn{pMej8GdevUxhfRlvHKYRN^PJW3;ddIK{G)-uJ zwE^r&+~sI1aeq7o{D}xH6NDSDMYx&5N-?LsNVe<+d8|k(1=HjB3Z{hp>R`wH;l=@* z6E^0uwh3Y!)BxAu_WYeiM|`fXNQvdpRYK=9#qxOmfD;mh`?-C_b+Z+M>u_lT?12Q8 z9>VZjqTsGvDi97}$D*_#ejwmRgl1U95MxVD31fg%Nu0vH3C!x5N)&`Ggz$kFiv(fJ zK#BL?lGzb(@PBCmP#Dpz0kuOP5Hk_$!#&=xJ=S1s+}q-R1DGf3d4qW~&w?H~7VLc^ z;^Kb`vvcO7ZU?f*xJl<7g}>Xm_HF4+$Cn;8+R@k{&%t%|lVdIGS@^NavV*z?&G}nh z0D7c?%!eu*v!D`I^*LbQK*givRD|V=lPcat0T?9%9{Vx-1Gs`2DS4T7EAG*_6EEA7 zs}wLL5ro4@Fycuj&_k_)I54#pKqgh%<*OL=armiZ1y|eU2vacU-kR}Rh%*h(ad#7B zmxZ3$nB_E@<>cGt^rfWLp=V!-B2p&3LTbQAh3Hj4N3ssTdnltgSekvwhSf! zT}_DB?*TkIr-7UI28PcKIj`^otST(W8M8#HRBB>>EV;3TLh zk`dm(g8f*}4w8oB-z|jf^nnR$qMnCh(eS5$>NAf>^EJjpG?#VngcV<0EUTt07gbn7 zcn-OHInWN_w}N@#1%)2%XK>%KNTDz6ka96|PW?1bNm^<^QNrsZHH!I9Q%p-A$xL#zWim zlb8U5tm~G&cKfG8a{N9V#Bv2?>U!JIORjJ|=Dp%dcY0V{T0wXBeml2{Hv+m5{nwRl z+o5Bl?tJ)!K3083WA!hYZFT%eN@IqBLuZJU`t8L(tz1=~$7ssW;}tO1`0`r+Kz*ne zm$g_P7}oJCTxA8PrK7j5uZT*W(_%6(-Ei2~M|p>1=C)k+O!j@QoQp81=IY#GKCLXu zWBh+s5`NELGp>TonKqq^yFF=B3~&r+R5+{n@cuYBhI{LN!eeRd@a61m5^==%C0NVd zCw;}n=BX*(@-GjZQz=Ks0Z!stA;eJ-q!43fJ~z&cu|{|-Z!K?{)ru;Osx)vXe=tzv ztr#q)8tjbsBa|EQIe8RyWv1CEm07N4y%nFL!IdJRAwra!$I8Ha&2-;Mn{zk8T@kDa z=Ok770@{`S`s*i*Q}4l>1*+?#`tlkEEfw>DhJ}Z}Z3BEO{1lmTiUvO<6WJSF`MO9L zeMJf&=BMnTs&=-tZ)soK$ysHmschAW#nv=QEH%4MM!u-oF!VLo$W3nRmG6G=5`4z7`{^iUd0O~*M!fW1T%@x>6?GYZ ze3st58J}lj+j~l1w_9gbVAiC;r;-0fSS9iJB`huEJ1Trfr;>jFIs3TaJ~_393Jf9& zpfxTj^AQIv_Bh4!>lKfeUYhG!L4w*ldWE^Xv}6#ie9R zCPweL`saLr8b5-LjJh{6l5P{Vtw}GAp>@Xgu1p4OD#K@rTjcdhfEyMokuei z^c^zx>{w|=nTEI+W9++L|4RpBhp2ZO02JWeeg2&=S#U0ZpwR!wepXD6BaPJdD@+6< z4d+JTjOnq|w|Dq6iFOXBHooKkk~AE5>>FUIpXynMYS`OaD?scU{F;lJeVukeTT&e?ZCcv|_174f3So-*NeKWfr?G zVsfwb*jV3yt9129jE{_0oDvsta^h=yCg-q6KgZPhRYcSusI27)0NyteKr%<2okC(w z6kiF7V@-;_5pr=1Z4|CZKH{6ccd!^VCcN%D>5)%|$OtKcV&N-B4e8T;pTO&Mk)0sN z1FdDIT-en;TPe-X-w&K@x`{`xi}Oi<;YkMEb9ZHKpV;A12>ref+_SbgP*Dg6+{B1; zy~U9W9S&_69%vIT`SKRmBBKoq5`6J}h3Ej*Y=WsRk zP1PSiY~|nh9>DH%PNj8!XV$=vWw4p5HG&*_s%IFDUMvSB!NYMuLtTk&J(YWQ%tFm_uG0r0W98RK!io#00H zL!5$mKO2MT^sG1T`z$Q4swW~h^Mwt5pcoeu^?GNyV`P?2JcS$6H|VV0obA9rmtA!b zb`$wiR>y4FdUHpCI4+VzgQ*KI^*Sw7u`WU<7qHv(L^Ef71ZHpeMsIuG4h?eVySkij zYBVRU;8}X9^(GH8=Z|toT0mR&Vqf0YqtXr0_HBRt#eW%Ghy=W8rnIo_`HbHgSiq>ITdvRqzo zwn^I8?MgQ+U%ZL7oSFu{u(YhS0xLm6~$Fh^30z!)-lZ zzV#r^Gj38}5L|Vd(OPpzmUE0_y&7vKo>HpxI>IW&f@`9c?8>3r-A`X_*7&l1M|crF zvPebtO4M_!2v?nc?b_9@SwfSyU-k;?!xxY*d3@pROjoRvU1{;cgLNr*qh4|$pQECJ zsHv*yMz2xy(g$nN)Rgfqv2r)i++6T8{;Oa16YT1T(Z{HQ*XMDAyj3k}bawH%sI%Iyzw|XJz1WNS>%PfSm2y&&dgbZ< zG&U84+-zsJqK&eD#AVfJ@gu`i7HVO3wPB^0%kI(oqs71a&K$q|*xT2;sjg@|`R_6J zYEL~}g|}#l?h5q)<=vmo3iMNKD6qj#Q$C2s+x`KoCn?R+CY2HHWGJ}3ieW2IF5cM*`oTh^*q_xqu3XCm{0{f3dy zYk_Rrgeksu6&ESPn7Z^>V2AO;KL2m$T4s7oFJdJW7PF0v3&{+R?~Wc!KupRDObrjp z3{Joe${kGJZ_16Hj-Cuo4Q5>#yz5?x7@C1E9getL23e@{Gx1y~u610QvG39Gd)sVh z;UiLHXulSKW>86(M~sR_GGNNI7|4>y0{@pTvpPti(>3>bz2RQ$y;;9IxsW`=EWSV% zz`?KK4h88ojV^CQ!^6uyj-KQSrTT?t73J=fILD?55u(Z12y6CSfj~crARJ&@+jekJ1 zre8=CFH$C8JeQ@bI$o70BdY$>ai2Ft*auQ$|<{auHsW2Mj+F~}`y%}lqsAnsMi$I~CE1^lYdr30Z^vIevjRzeK zywzUEc}~T()S7y2>WuTm$Nw24<>Hb$9GFFs_=?^|Xdr*h!d|jGTYnyrz-fL>Nk*tRhhP(vas0HT|SJ8u@wKrmP;rYOv?WR5!XPgeqQKDKa@Y9j)1xKSU zg;~ie{^z*6S#|U4D3!odrmdy%a09VbtBxJ#`DElglXLP5l3^Yc`V`^sQQnZoQYqK; z@n;gkaU9S4BMuAcyF5GJ4iSYbmdd~Uat{zUjT@RVjvFxNywZ{q-HW%BYP;=6^#rDH**Wy$E5@4#Q zTDcjqn|eBb>KtJ@9UP5sDT*W9S|&ol)LK2m<3fR0;mWyaPSiY=MlS41UEYG7V>Oh+ z=ZyuFaP*blaYX_aPf~L(-;+Z>%!hNxe}T&FrU`Fv!%V0(AGr1;DN;Lj+7v}2TH}n^ zKhJ{ZFt>!7YQYDuWv8F-Xw<8Gm^dt(z1?j2qy#EWt7RT99r?^3$noQZ&C7I5(8`p| zTbgv}(-pgwB$%qJ%D8hfSG*ZTpZzn=y-6urjXG_+tfx|9ZZp(L66a|>!qVFhqmL65 zD+a(F^nLe3+}$^>hF6BH?^g0{K$QS?V{MUsEtB6`J}& z{$Nv`*GOxhCVP*K=@1>;FU#hezPT)dRbEU(2|0G=@~yRhoVr^e4-M|`Vu$;H^zDKc z2J`8{Z4QVIDk#x>E1u{xXbnanfQJF z*8woAiEYAigDrWw1Vqk%d8Fqu7NF^nU?#- zn(`geuBdr+LYDJ41%~G0G>$6I0e4-o=8%S!MY(y0lG^f19GWO~g%oTrD>BVF2N`Z+ zF&q2UYReWqtBy%T$CEIq_eaio%rLOyuw|zk9Uh;^2{$+9Ba1jor~Le1hN0~RR|HMF z*Nm+|x>h;1>r6&94_3puEX(Z9Wp2v&KkQ_m0fbWhH4Lu?*}Gh@A18@jAe6yeS~7PvuRSJ z35c$O0EEFb3#`6*Wy=qJyv+!}8h00Flrm zFq`Bfr|9Yj?Pmj;$#@*mB=iYwN#{pGf2y6GQ_>tAG!pG|U6(*j{j2oe4e^;#!q~uA zJGh7`ELFMVq&juYyAu+civb$*YF;gaE<#bkOAl9jdjYSmN43Z+5#wFe31aWDpDlEU zeooUnZKtZSG0p5QcKyqCux3Vq`C6*pnWEl9aStpjd5*y71gq!g7qQT{8@4XbrRA9( zhH;q=@)S93N*^x_&*uBq#O%>kZJG`DHS5C4?BNK~#g@U$)dn*4Ag@@ewhegHmi%dR zq-3g{ebi`yiUIT@hd;QnB&I*LK&!X0LA^ax6w)^SGpC`5jR@vh54~Z4jjvBb0*50f zt+ahcKHcI4fU7IGZ99iyF^|Wq5-+*Aylr_dovk*|Cv3MUvKdq-ie+gdyl2tEQ46?s932FyY=4q~XXr zT0(F?Rj+C>-@+W9oBxfzMK5v1HnJ30u4*ZWBS zDVU;_=fhb@91Mq=P(D42b`{TnyoI^wLF6Y>BRX?{S>5r_&CM5RuYWvU-tn(0Id!Qm z)@IDJ!FT8(vD2P;G!CnB_dXy9U*I|~atXhbDQT$NxmKGBs~|^(*CAcqtSz1!T|;3# zThF6ZrYBFG-;g^_k+;Z{Y}2(g#?-nFH1bF5rtR+!0Rtc-ST(zmTZ3?C8>;b?hrD*2-P=TU3l3^Dqy+oc58(JB)D#S)v5k?V zlY_Co^?yxU0}B{PCPqeldi?*In)r;2^uNyk-^R%FpHO;y77oV$&;9?5{J*nVSs3tH z*qHFy=vn@o&&tgDduC$!-;t~g%>Nyw$7f~Y_#f+kNBsBNO#hjKnU&*r1#I{%Obq{x z{EyA_Klx1b?D*^)zq8OY4>pOzh0OyfBdecS+r{uDl@h zl9rqA-cr_Iyc5!incf%^jY-pq6SJxD5+%gJ#Ssy+2&f^_`T32&1dJ2{#Pd`Hth6o` zf}2{F;i^%0f7R)2YVUHYQ!FfLls8LNG%u7a6-a;Dcc+4Y?ag<8bbelXx5hbkyH9sK zZ`x0Deh<6Q03ZOW!qkr;r!6yX-+IeJeO2^8M%cEH!JVv>i&%g;j(}!4){xT{TdBRz zHhzZ=0O8)EZRP4eC5O0q8f=E{J5kRZj=MR}fn5F_SMGT@`52C!LR3t$S%9w~aCJ2X zGh6)Tr$}_k0P?nbW!+zD&(-b6wXVv5ZbSgmE(Aa&6cm}>-4au4*xK}=1sCl^gmv8<4J!@R2i)#2k$$xbj!hnb2 zl+_I0u>Q_qbU6&3z`dM2;oqWCU(}-iZKeE)U9SY_dBJVLP;c+(y}e=b)CFQM0~P=I zO7_lNMbBAaufI{hy6te#6WZPK)$Rn_LyqTbsJNZ*uXQb&26NNn^J{mWzIehKu?gi; z=t&j-V7UZc;Z~tahn0_UOyKlC(|G?*bj7|(pk7(-fumF=DiQPLQxwbL<6`li)@_*C zE&mkXiL^%H7b4W>Tfe@y07yo>grnp`AaN)+X zOxBt0F#@u*T@=GXb56mqiCX;+#nJ1b8QhgN(u8X=! z_Dj00deS*3&GZvqfT37kF6R+yZuly2 z5`)hvdKE?p=Lv91Jh|L8PgW6_DNPgpefT-NXSN^uogz(!jUQp5LWB-8`QlDI6@s&a_vigq(q;( z8&5Tk(<^3oj{Zj_s2O}U?D~0dtayXLF(2IUUa|!OlfHz~uu~s`s*kdM+Ys$WE3Fqw zpJV{`*BSe%muoR}>0=EF2B(70KybmQmR#{Rsd|XL_=pw%Sv<;?R64(vnc@>lEAK=9 zj)li9-OdbqFn{>1{+Z{*zw21j<7xC?AG0#3F<>=3zmQ^1@F+ zJpn26^HDIIWYTBU(<0f~p<(OD;eBqleNTyxjQ7Z6#s$lA+mq^7Hm8IJ9iK0Li`)DF z2+u=d{7ucwdgF#kOUslQEL%v)1I&|i^P)vXB_-9wWI!>=uz!JIZ!JC_-RkA|e#3T6 z)f99o5zn+uqsA0zp+N1T#S&$)AZ?=L-;k0%xpfdv!y@zGxRo`kvUd7XSBQ(rnHgAc zJ*PH~Kq~YwR8ma{#9V+9*8VMAjz3;1%5m?sHV)~1ZjZMe^$%8|l@fY9ucOmfkr3|L z2yCT%$LO`O26zPB3_6KMd%z*=$Hu?C3WN=GBtISpMb+Sz*NkN4_On|3GTf-8H7L;?$nJq z<)56b)qf#X0(2HTlnB!j1mRmF8$l3gO@j2u`FYn6eH#vb#9ru2)XL!;8hAqy{#gu# zi2*n?$Gk$!vc7(Z4-z7HgzXq}2o(`Von2-=!yI8W-;7LyN)*Wzj{WVDMr6wOX#WKS zViI|7jbaBNLF$}uV-dwssne#5#yS0Uf zt)U5>BM}-7gS?IB*u9b`l`8CY4uLs^Tlx|G^WHa0NV1~Obs}Qv-Zxvy{_AQ*ImYct zERtoJW|!m++$eX;8{<3*`DL9QUs5NO)y>Z)da+Z_wbSpV`N5vvV3@hz#}yM4vvJ~J zjRQf2E}g$qGXz>Ps)n0Mx*4e@w}C^3^ac`dQq%70)|T$b0`~&@f`hZ!9^`o5zE5QF zbeB=0liK!0QS`IO8#>p;M|tK6R*q>O49zGrn&@T603~0UnxHOQ?woauKtabB1=UCfufWLg)y# z&LX|E*yLrSsBV@naY(>hMtx&{>lm;@CXPuoiruV`y5m<9Gr&s2+YmTc$UDm;hQJ4D z(#^jNnUp*S_*HSXgYk=PjKNB%G;d=wH%BT>=7u&1OwGY+nRjI85i98KAB)Gxf#23# zu=LCr?{R2DqA?K#p}C(9c(z8!?}`}-gW^HB*@9&_v~Yk)7)I6V)}JR4#z7hv8Tb1lf%?d0S98>sdAC(FMQI~2uLN{zU@m{QC^EWTc2 zT$yw=){7)N6hUar2T;?_F|k5|15%AT*=AMmfV9F?2<6HgB~2Q zoH-wnkfKc-aD)8l8J`AilMDA4&?Ta|N*sRjON;{E{2y|3z;~fjK#APESy4R%Cfx#} zf=Hq_ybAoj-MrzSUEFq3PWCMPc5<0k-5Me;n_>nq8t$LGd+}^GN@`d z(w0ntJhXA9pzJSiVOWC_==I1#` zpadg}q^{h-ifi_GBfcC)Ce)K3Z=hzWq4iz-)s;9??mh;W>u1#%D(1dd80109th z=zBTTXwo1wDbEBLJFD(I!SF65<@77Rjs6N%La6U+0R@RgJOox8vHZl%D9<=>8ixe^ z=Dho+=lns5M>T@rN=au?9fx>fH*7h1W1|xbhP-P|PSy!)dpYr7A6U6la0Y2RJ?L>E zr&oi3xxg4D9|jeogwW9A3@KOfGpQO3U&Mk+bB+zlwmWG77Rl~v?~jTocb8g1TBMe!P^M8VeJD3k-;ms#bNiRzfYT2PQM+@ zB3O5iT&#J>Y{>bByve8$bU45iBv&G6*H2uu87#**pJTCR(99T9!P98RnCZ=3p`&kg zv+`JXKV6J4zn}uIGqsqW`T7R_vvvz>;E_Gfx$yRyKIFnPwe8G)zHe2Egi~b0%kxGD zx_fWM##oN<@%&->imKEttRxlwiK3Qk{_gR=UUrSPQ-7{?gR1Cd6nxVVEz^XX=l#kD z?Rh^IN|Lk#7y84bEi_IJkgyk78dlw7(TjpKjpJru=pTC&_lxCEWHy-em=* zlVTS)D1RGqmljy8cvwfjK1nmm7*%_&fVP=jl6t`a3aO4i{+Rsuz?F5Sv%7txODns^ zZ{ovl>SbTo8Shi%W9MVz04{>BXx2v@<+aHtmo{_p#I9qCx|&L=bP;O_vRINPd3+g~ zN&!fuvRIm0s@QUIo-z$o-=y3Cs8Q@5hrQ}GSvLO3#wJGKF&q|6t|uV#>6 z!jGMetc@!THEWaV!WA9Ma+Z|~3zX&sjS^Ig%|PuWJ*&W$nmE0JI}SEtU~g+N47F1E z3ri&AYo2%_`AT_YaO>{QUgW1Y#vpWv zK^GI@V8w)X3Ze)=NAu9VJ;9#H#dnzT(Gdyd{ch6z!IER|flxQY4}e-BJk}>jJiGm; z@Qnb{{@o?ABZB$KU^0dx+59G z1p@Pg(hmBVk6LM`~iPV_=3|hHE0Vu{JR_5q_CAP%p!pM>Py->gCAaBa6;GuS1Iwb*i zLy*;jB3j{ti_~M%0&P9`Tia(_UxW7TXQ&mo%oh`?5aW6GMiL}8G(qyWN2dq^esCV} zCeWGQ@t@wpsDP|(-%~s4>M?Vc;DYFx?58JXyeo`~-}4X6(#IwFdNngtt^Da8dW?O_ z0^u=2*1h?KO4_Wr!i45NwUuDIZg?;9&(oTE3yStzSryC}BX7)^hXmS@KVC#W^u=40 zmYL9Ee>NlEbzHxMN5I0>B~8pT33|QA_@=7 z7gpAnRW4_aW}nnmLZ%&IZ!evRM{g~Wug>KQ3i4SQDB#NW7FkDG^AqQE5sdy5FI#VI z$NbIQ%+sWrj+dR+%d2ZV8si^_n@)DJkk5r|ZxGiAC{s0<7sICAHJts)uVv{cz#Uta zS2$!e&4=_)Ak`fU4(t}j2mmDZygihOLH%GTNTycLwCnyoX5W1m9AmgF3KmtcnJ%{x zd2JX#yrRvg+t?OZlJB@ z6eC+sg9O(Snz&mV<0!cIju60yY zQ@VC=nVuJ}u5b}=8(ZG6yI*JHiJnk5qmyY)i*ZCv>dZA+JiOrkoKbR`lie0%zwU<@ zfhL`^c3#`9*_`?T7xs)-oleoiff>UQ3!B^%skhM78F~9be<9BJ z)N1@Bs#(djNeE7m>TPS|-K~KRRyOBgQ4wAVcJmpQU!i=JRa|L+1goWQWydylhp(Dy zqBl0~AKYgY&3|TmtLWDMz*1l1I@ z(wu{5Mz?R^wGY`sLnq|8lyV4DG{Tuyy==pzq~zFQLKbs(L6+p1$GJ9eT|e*yTo|%TzxU;ga8YxQI;eQCH!3pBv@VpGd?F?uKH? zgaENKRBUaRMLQJyIc1)l0+H?qWb)`9)Mp}!pF9d3Wc+x}!uCbAT8+xpIc$lyLjWaG zj>XeV&z-&sSobQRV<7NofJi=I5ZN-falac-7g3VTtiAiZ9hIp#{~XPf^{uS+(Xmo; zeyVVv-f_&AY*oR{xcZCxy?=8EbhU9|nF41+Qy8ACe>L(A=^PI;C?Vq(ohNcyyL^An zm>m_5^GidT`RBq8Jqk25WRynubj`Bu^2iFh}T|`%ziT!QKiV2v(=tO zYl|u)&4=)=|22dv!7fW+OLJ)@0I{>FFa^%2^0}e)nnfKaeZBt^wR|UKHrS{o;Cy)M zHmeyZcR_y=h7BrGHu&4f(rT7VacM?=PpIv3T8AmwrKxmVu~_t-E>*nZ9Tn z1BWsT?!1v{L{DVAB+ZF1wy>|#s{82igNyX2Wk4&wvhvd3e0QtU=yT zOc6A+XV=tED%)Vw>uB2{(><1DlfxOJ?(T9Cnm=z0(ZotwCAkzEeG70t{YQ7^^PZNZ9fLpIB#Hhsw=Di zF@rLFNo`oB=aw%zYcN`;FFbYiAN>3L!Mg(}Y5n~a#T zBWWdZgpOnEPkWSS#qW|OONtIEmJ4F&d12xmat&ElIRr=h=kwYM$=gd1)8zE>AC^b`LfoMlX&1jsHJmBu!J|RBNa^u8%kh+UM8VG{JC$`MD9rG z)WmalTb^uv>$EH)wWTm#NBxm8b@gtt(}}I^44Ft@*4mS2rL-x~IL-Pv>tSQ7eB@CR z20EV*y>@T&PQM!i>S3S(ZbVQnMjkC z6b--M0IyvV!YnpeKp&a-3wIyI0uv>4e!fn-7{`2E^7H9LA-x7ufGKPn85}&mjrNKa zn%>k)+s|;3UM5V{ZoalvV6DP>%Whps6hRmc8#y|Voam6rJ)Gd4 zZn-72}LNLRU%URJIi} zo|dWjnDsu&Lr1K5lN!!^mQQ5nLsi&0Vc9L#x$h;Bv(m&Y_zP>Q z4l?hFx!Tlh(3>;cg}G|6xE|Jp`6@4}$zGgx){Yde=kWayO%Py9!RQN(Myr$7TzS}+ z>IXuge|W0^*&bm^zGB6skeMlM=EeO>7XgPN7PgQs@Ox2va8GtALz+-`NR`ty!*2R4gIt zmbQw;S@0U71XWod0WHaa&gR~nw_Qh=Q;X)@{1I5;Rb7!&C#O&l%{A=Rg>veSdiL&Y z=V|_fw%2RN?A0Ngrn{(0g^?<4Wrfv}dCLTSBIzTvg0ZrK(X(KVc_}BtzY+-WD_zms zL3A8ErOb1Shg3$>3Cj1dOhUwqRE^s+L6+c+^AzbrWD*h6+kb@gMP9KMEz0j5&3V>e zohdbl1}KzsBQ>-U(UYQ)UbAop)@|`Cm^M+m;FSA5i%^zEK@%Idw6st$Sqa@0&662X z$%esrYeqQj#>DorNu&{yPzZ{4L;vE<(!F#iTU(x$=38zb)fcoq7rE*ASBFGSMWCal zj0t|XrEIzsGFaHL)9?g3S1A02&>m%7s4ZgIj=VjB7fXA(sI)jXq?}pm#v4~|#%!%{ zlF1B;ftz~>?IKV}@w{oOOKVY{RGt1_RX}UGtyO~jDWKND8+SCk#=_yW?8EVis&RP{ zZ6%Bc*%kTNtOzrcY4rTMO40MreH4_%Qu!qsP34W&dKy8Ep!l(+wsg74#5I+k|MQWnn87-$uw(+E+QVC{}^Yv*I< z+I=eacq8{O*$P@K9^VzxjW8jozmdzqasc5dr!2Sq*y1AWx7Wi|KAzV74Vc;w>-X1i z_c4>#$S~Akw$4|>DsJ2N>r6*I+>Ng#PPONKa6~bisPFxQ`!0#Y>Im1mF*zF;$(`Lr zkE9kb5!P`r?4&noVmw34KT_@bYWnWqhs>eU%k6gQ8}Qo}lPgMcaE&Ssbdd6~EURL) zY0CPbaHSVlq-V1oG#vc`P}*r~%5?i{(kQU1m%Q4#D! zx858aTW0KHrZSDC(IM9kI;4{i2G~gqKDTmw9Oqe*+b9XEG(z&qM)SL@Q%8driqwfY zGbwINWyZAU{XPZe-QGUhhl3##gqH645*0M$(V3*LC9ozt)H0vf86IL1byd{gg~N?r z5s}(37S%w8qiF#f0#jS3PdHPQpPP}Pzt1vOzA8hl zlJg7ZjAv4eBUzVMYd$4s*?xi-o*#osPgj#Zu2`xcs7~QnDyMD#O~-6N+KSAjZgzW^ zjE<=1^ySJo;x187evHCZ?(XDMWw-h1LCt6gbj&vpUjBj#qs?5|?8 zJU$Ud{&t#!U&5<}EgHBh1v+}NACMKcJ^t2;IRtzW@mBJ0@z*k-3Pf!kwieeqpkF8< zVr$0ZY^#Q)LrCCLz_?$fF2*hG9jb4yzS*f=^d~jeIh=@b+&pl$R0B;ucQFv-ZXaeS z&4+(3-hsq`j0OlU)SqMc=l9U#q#{a6$HSz)ma8-;@O9adww z(Eg>M3*)U3CK;POc&5*$ z8R;qj3;O!cieuElCOAWB(;9oULkqXrpJ{Cia)f8V5*Y(hqn{EPG&5nrm_d{tJ*rTD zFz6+VoX}n_JQK4WB>5l&HX$|too6%#f!sbd@^;0+ar=OWZNHqd9ABiUbPKw>mRYxQ zW#lFOiKOQ><#S;H+hPXq_t*1y#!Z9IC#s5D?ZH#UfkOMi?C~o&V&iF6HIK|wr$(CZ95a&PQKWg*tTuk zwz>14ecGpe>Ql|Ce&{}3ed|^U!>D@cT9BuwAQ?yhNjaf?QLBb594%{&T1@B?6ov7) z*dK5xSn?@7GdwCMxTQsz8EWiAzq*^bQNUm6$ROnHwp6qFf4QDCN7W5H0weKb8Kc91 zCWCAGiGJ%9id@kaZdq4fXQ*cC@$q-Msb;d$)1$!5Z1-@jcjl4#zGY6_+n8phrJAYf zvT+wpQrOt!Pe&4Vk6%MJzh;4DW=oyK2AmxQ*i0L$QDu-HysQT0*H3fa8GKT$qubJC zYg);6V|oR{8a^rym~)cC%qAz~lM;6-TdFZ~ErqW|wou-OtW*!?aC=6293Mn9WN(hn zF)Bp3bCsi`onk53cZ=MN@pLY2ZMC0OuwDc*Pb@S)`};m^^>p56HiXgl1j%~43!Y5$ zcs#JbHT2(bR&{LuJh#l;Feki*R<3`wTEUHmcx_)1T;tFSAHoL2x*I^8E1W)hWG7vZ zPfyQa)a$%HTl(-S?U0goOG#1r_WyN=AUry4vsw2)Vb<3R20tr!<4%hm92jHG3*B1V z`LbKNngF&bukn6hujzEXLY2*TnIK82`F{1DEKhspuShN|1$RGxAm&_Ue1)i6%Gop01pfiIcl{_yA#(AAeSO15NX5 ze36NUWx!!<+^9lH}xPC)fRZpbb#aUXj-R zqPFy9w^f0tjB|@bQ+Utmi*fbpBUB}1C;-NjAd#;ifzU8pwuEBm%n>=MP3lt?-SBPY zOjkK1ONrz1xX_lOYP+3CwDXlH8LNx5C!}9xjnh_CezTP$dlE;-vFR98+VFHd_0T~r zei|8g`$ZHdWG3wiv%%;8N&(v8QbNDJ;rH^5@5fK4n@IJ7bc&3*(PyoC%eQO=n?5~A zOjX1+D#9}iv7AevBVrea-4@3H87CrekuYW_$}^KRV%tMwW851{MK>ze77W&>Rap}q>iWRkf|RD8bk&$!7vj*S5R&~fbBWg# zEjFP3%kM+`no2+4X9?bqp_%Ns7a?;Q!*;qtE7seJh8qnUGf1jB9$%80gbhk*6_LfZ z(6U}k+0*iInz!>w2rgbp7E`r3L*IdRU`=|x&zGZ+ENzYP3G}-ggoOcb90=O%1@HOF>3J6}Zc&vstdzc8lk zK#yiokcOr^Oqt`g&*Q}BCLn@OAUl0hjnQOPE{ry_=z)Ytg`-|u!E%+i1Q)4-#bCt* zE+k5>#8?g}D(WvZgUZ|2;*IEGs~>3v7%9)gtX_)48!))Nc#(!KlB1!V40K=VMftFA z3?-gCook(YOAr6@aXZ07!WbAJlDA>@HBYFx^UQM?M@&m0dsR2Ds1_3$KiAU6VKVo z+uynMqA;HiBL4-vUiv3dAM*5Y}QZ_A| zYqRZgoS(+0+xhT!GWKYNQ5iXO+_O-PPLZDfv!pIk|PTzFlO0mJ2ZIIonrz2Nj`Jx`Zof{d?o{+bGRvV<)b(pQ9&W z1i4dYR7e)C)T2!IrIW4HX$#(q`vN6kaJF@u^(r$~$X?c3QVOAFYn9n>fmP7O;dwRO zr!_py^q6cT%Sx+&)B6W`QkrtuA}WK5T;f;Y>}Z_@y1;LUUxkYp;&(wN{PPKoib$!E zrb;%f#d6@4n`RAt4rPQuE#-{f=PQuggHmOa7lLm#_q)lH;Ir|%wD>~S!Mj^adnuy>M&XE27FLlfRGO|TRT|m4F+9+fx zH#1;gSEHoc=kW$uxImT81=!;N6#~#?B1G$~oq`B*-h6F@6qp&POS$sb4ct{%6ydG< zk%?P}nl1qXUUrd;5EkrC5ZQ7z1pp*pMylagO;;GHTzXpBV9$l*Y|Pg++?PHdV#!0S zVmekprO+$|Qzzc8S@pdrd}Zt2ooED)^m*nyPxnw5%fQrWDs~TlOIgvw^2P4<9_rZ` zFKc;7mw`ik!)?EM`7cg#c+uOHIZ1($Q33~)@EE_-_}>B~ki?gEv0TY{(~$l!JRW{K zlQQw13G5&yRvFTvBqWK|&gT@=^Ndyl7}*hwhPBCtGABIMeT^s9zoHa15X7n-B-5eb zA*QWexftU;J56e9$h4%>6+DP}JtCTR+1v7TCHEE~U zV7Uc$9Q~Wa8{|n~?a3g^^cEJD`B5s+rb@R**#mDo+e;q@zp?lE4U&-Wb}i?!O-{^g zJms{^di&`D?%@hmconkc%F0~8EHbRDFsTLLbfh zBt$=oR0H*%0SbO}X2A#e5jJF?LE-5sfA{HvGfxVBsCq5L7TMgBv4m>k0W@hb zZxzqawnRl~NxR<9+v@p!*q}+(47z9SPEM3Fsk*X39c*?b1&CRf+Agekj`*e7-sVp7 z?7jpks7x*qlBFn(PR}`;^SIv!F(S7giTxLM`Vfh##=peI#ZDDQR3w5_DKKL+qltzl zCw~NO^A<<{#G_e)&wA#44qLdas-mCTq`xD{9&Y@e+;<3R)ihHQq)V6i8hPDnsQ&U( z*52voz820HZhl^DJf*8>hGvQX4KP|8(?47i?HeFdQ}(F4~F6u7$?b-nVB z6Z0&;Zf}n-(n8sheefCJZh$w%3VYO3QJJ$1^aZn}>C5zL|G30}XOl&&-!PGbG)|>; zP`yOaPEQKkWr^5C;pCF0Elfs^?*-EP`;)snrw#4POGI z1|h3#ey;Clk_)wnjQ@uNl|c;Q85QJ?H~y19(^p?VXwZIHDTXf+((cgez<~R$<=AIK zSDN=C#L_XtWd8>y2^kIEEDoOPdrMJh5C}EB&f=SK1$-k_B7j&q;gq}P)(2LQFWlQ;1NmY$`*mWMGO72YQf$FIzHGVHjr zv&Hcgz`q=8Q&v%fuNfkR*X}+Zx_o=6ZBE~9j00%&d$?c9Vxu#?Vp9zncfkI{&}v~W z1~Ud8s$@jLHmE##)N(5W9EnGoH-KY@MxXffjTICWZ6ow93$me*9k#d~#q9DV=<}s> z;NH^xPQAaa-R8*{$l^S0k_x6Oy_&)VeAevfu^HPMx8~b?F1nXza~u%fe@O4sJkV9Gl4bvy2ImO98JLJP-z&(Kl>N-GbJ_3xmcGA{4Sk z4N(@2p^U+bHE+vuBA|ggJWPvY0E}^J4t#P4y4z$N|5ho4c%LZTAY=#{T>b0ip8lb^rYHmH&FZtk#TAr9*Uhg#a801~O6Et0yF zWEeFi)|Bj3_Z>*_+~;U(3W&0Fga&+qN~j4}R;q=L6eEGz)6t18Me8WE6?tnhn5aSL zcpm&aXiJAT55pemhSpX1ra_L30)OH1RNM( zr?sZckQq&xvT*0*u;xIfAK3oFWhFDX_A#Txa`A#{I-ZP)rQ8QfeIkXBK^J!F9IWkw zS)`p_!7*)Vd~(=R`xuw#Xziq&X45x&hRB;=SO0CYyrpp_!(@`QVlJc>A`1kJLv^g= z^pizig0@N5!tqUCcS9L#Z@R9TB;~e9dC{eCp->lS~rQgM$;ZBQUT7 zvndr*U&bx!lqZ^XE&;6RD7qU_{2AZ>sK%c;a*?#@0>sq!YeqSKP0O+%|T4V zB`xW)(Mrt2CW#tFjVeUGB(#h{TUM-`1An}G?<&Eii%hK{kH9s(%E?;YtswnU2b*Y ztL_P{$_=WCTD$mNS#mwZ*NWCN10{tSvm9KCUMC4fYBWY{S%-)d)Nh_5)e#fqABJF}?Unm7q{)nstcLv=zTK69!v%kM%NGwT`7ATAPAuSdnG-58;Fqi51z60kXet}2U2jbiCV^cy&w zs|-GRt~O7hu&1#j?UvY$+eMlbUY?S_*V7UBvn2%v$EV@Lxo*wXXH^+o)@SSA8XEeJ zw$6F^Osr-`W0?_3{YzezG5m(rL$4EpdWMz4a9v zGO4cbE+cs-zuTgpJ$`*Lp#=U?5ZsG`6R$&jFp19g$=U$^Vao^`?N|SH$=!+M#RXTQ;5;mVI0=hHKYF$$8( zIAoWm0mWhkODc@jp+}RpI<)FuYkh^s%>;etW5OnHf@x2#a{ZxfvEXBL51BwZ303qnZ65R(8%7ww=0)g+=y_|G{Kt+&3aCYSNHhSfR8*D2Y>te*TO|%%eddtW$99X!y>y7eg@JwD?2lXmV z%X51Y{{)^?;|?Rdb|X|uTERR!w+=) z3kE&47$SWzWYvFu*J2o9(>Ed@$hg?3Wf2CxFqm;sse&uy$=e3ZQt#kKBtvv|JawX1 zj%oe86S`*$1JQ`j5&(Z**V$Z1y3D2t9nSv#n2FbR7C-H!X97VSTm5oQ+hlgU`v|l5 zHh=5si{0@(D38TXApd+_T z>46d^9d^Yk;&m{aKt@_DY+Po#QuTJwr|sX>-fWHXG!1)m!}GK@AMkQKDH8)nW!~gI znd~}UWlK$!p_XA2d9GLJS5Dz)@>F5YwSlj_=60ZxW;Bi8j-UQExkvgUJlCu{SMpr& zq`d+Q@qAs=kzeI|G1_1EP_{+0Kk(2RaP?a?TG@6siL^f*jxs?`9NWT4;v#{i3cTac z$uEFlC(`K240d9cZi|PQOBvk&3(QO&-_m^@=B{1q_0r5p-~zxUsh!o&>BRG7w`vac zEWq-jXmg>|N{heW96mdqi@2fA|H|nV)}{AEWzAi8wLt<1vE8#;W}6;(LJx7@eP^vn zy0ESbJ*j`GIkLIfH4j{?ywVw2pZ>UgNNL@MGJEjOlvxdA8VsH^8*I%^qyJ)QsjyS;EH)u4j&IS; zOfpkNiGJN1& zY&e+D&rp0?nH>iE^(xy5eou!tdvad&T8s0I7JM7d_s!_?;v{Sp;J35w$K}{&>=QB4 zit>-+N*_PNRe!@FAqpan-Dh6uG;uU}(}Z8_;~FHlWb`*!Em5iA0a!-tTh)b@++JJX z_|I`y5a?qGSO-9v&5|OZ@H~L#a?BW+z`8$vEefX%Ne@<>EDVi6Y0;@b^I2RR{Lz!7 zI9RoauXpl3cB{WS@2NMwJSg-c8CE%|qZs&ZMWYJ>{H&(Ir{@&{3dH#+Skc>=Zs{E= zR5CqXf)`OLqqe4jVDulmHj@hE;k&9!*7N$3nm;w zLx4dI!|O)OU9S2mKnybON0wO!5<=hchcKIOEDSz#Z3qrJlv=v)-8YnfFnZfwJSUnK zQeAFVRoXi(z?Sx3Fi=;{!LKXU7@WT*pjUq09A@k5JIgUDl`oeqLv~#&BO2%wAr?MHB zj^p7F%YN{^+`pecCiLdNs|+9$V-AEF&Q@=ja?z#9H`zbh!%ApA7Kq(@dfr`IPY))C z=F5p?=700DChZS%(g?LXh$-NaL!6mYFZ;g@=I*u2GYC;pxT>*sc|_+GYWIlyEd)0t zV_=8WqWbZ8(?y5ynbN6aQepRtgMu0PkkAQ<`pTf;c{1{>t12l;?kaku0eIiIVF->i z@ZjQYqHplu!{0XaX1`wu)!tAMQYC^@m8n;3c(&X}z%MS)*%WVV-ygb}_380FEDhDo zPd+(yAC7ppV40;48ZNTTLm*ncT%OKLJspnJCVl<;_B3a3u6=(+HeYXheZ5y%gO_Q) zELG-meGMxXt{_#`0WA^5Sisl*At+p69wrck&Mg@t1mP%GS+C?t-S;KF7?bXFb~AZ} z49z5H62p!Hy9SJUEa^>!J1VwTD2Ma8cRVr?;_%~1vg+~s^q)}JeY|9vUfPr9X`N$# zn)0WQCl3Zc2}wcxk+gNnh=<9riH7Ys`HH5c05Yn4lOH6^AN3Tff-@4wHRy?94%K(K zo3-iXYk}S4=zI7?@hZQ=KW|)p9Z0}OMb9KGohWSB}7a$E^cktZYZxj6I-G2 z0`+6!B4yX|!>U);VtU!xyx%_jxH@2HZKP%T_Lu_){sD~|rNHQl=d1+5##Cscl(umt zRP8q$(|GN-y-KBN991X94+UJf9u6I?C1x$U>}RV%R=i~=ko!m}zkVeeDrCUq)5831 z+w3ulqJJF&?>sE}xQ@R)U*F(5zB&Cn39iQKN_yMGqGGed!0@U)W=U05R%$O{fH+7w zefUkV+|N;ZAu<$rpfILs$2x;Sn4`G3+0Q0(QoGP$ryT9dWafv?Kz19|&m_1&hGF433 z5JXHa1&D{%AC0Wl0XOLQydB)-vnRL(d{n4i4#|b@J-=o9pYW}T0 ztU`zpe{gt<2rcBcGeYw)ix$F_gt}DrtxG*#ugS@B*d(!j@G7wslL{_o&UH0L-;q`I z99(bs%!kv|5=msOCcf7)iDK^)aVE#3rl~CV)o?s>5-GNlY2 zj1|$VRDk}4Kq&1HKUIuhrI$rJ_-GvT7W5Al^o|v4*@_8HrWnA>E&$d&1}FDSmVJ?t*a};0KITlMs=S;p8_kE5j-SCz)7I2}Vaj!X_Azug z?`5$n)yBKBM2T5D0buNAaD6K)#lTB5DbSZJT{ z>qRc{^96dxuP+z`^niDgJ4}(~HI-pDl{dX{+;@a9ix^ zBp&F1f6l38yMOJA649$}PV(&y^3%hvqLmZvewq~_woZmoGY7I}= z6d>~uC(fP!bltWoYUuojlf!PdGj5(vttG@|0J)B%of$k<#1tP;^{pT*wjFs=_r6ei#}6DNuO{SYLvDm0 ze@1>2X1l6Pu{tAcVz_}FowPGcl%>^~*@~EeOXuVNGJ970k9RnM7zW>24!~2#$KWgz zPuUzi&rH@>e90_4l@M6B4T+Q$2N~0%y@*V{L2RXxg#tb<%+@-DMN3_jlst)1DKFDH zOqtjwB_@J&FtO!iRWZEAJ8hq0wjJsa)^Aklw5Xn>Pw~634wo-##Q)bTM#$k=U?9PD z)mQf)HAk4tT(&TQuU^N`IGRj^?!17@lLw1OGUAq$jozCqV*Y~>JBwHCn#s#puG|=r zbsooD(RuCFMNZr6fN3RVN#z3LkyF`%p_+B+uh7YdnU*F^A;*iqOicx5XTI4@EB~S@ zB`R(=rCjbXmP2rjKa_^C_yjLHjTO2X?#6|2Jy^ImvrDavt0lUDX7S5U+Z8$B^np)Jg-i4ox& zyBbAwm%+Y%P)Zz>kRz4W84zPNzYK=e{W{A-lFq;hI%M<2TuX|l_^A}VHg8d=CAW+~ z8OhFaX9;F;zSiTV;u$`|!o5sE2i?C8c_531PMg;%#k6zh8braegqc`W>MI(1KqGDG ztkwbV9#cYrUl=PAFn00)d7oTY zd}4FrvIng|ecVT5F_6|K;oGxtD3B_2G^wrc+ZT;qz^t-11tzVkQ*g9q3En{Kw}n=$ zB8ay}Ck%v?^+^5>p780tIz~UVUzfk{*%y6&NP_(`36p;|uTT;`L2_Lr&=JavbGYD4 ztwl)@JecxktN7vy_@&smll?Y&u1EkSMDonN*Aym#tucI#i=!_YdqyACZbjs*oFQ&t zZK$rgx49^)Z`t^3CDP?LSO`F3NF9qBft1?bxd?v=^5Cn5wemBhp;~0*oCJn#Q$)hZ2kuGHMzi$lSkkoS!LQInM%b9b%>XH8 zGi}zwDJ7kg74N0A3VAbkkqn7}Ppu9qh&`%)Y8^H^Gsi0Z--gHH8o8qBQFN0b&>|Sb zJoyT(ylQC^dE@E8`)XVyHmG-1_#8Rmu(G^wrPQN})|aWRu!lCNs^svV%(_EBgq3%1 zl~|PLg5{zTB~3+=hyeQzzJz1g@dkvuYtFL{VtqL7+rp0fIsvn%dOq6%C60>jl!dU%%h-u zEr|v`4n82H{Dta^KmS{Sr!lGcA^%~IDo2k{<#ez7gG#sfuS-hxylT6Y`q}>#zT`=- z<$vw_w{A^|V#qLZ+{63P|ZwENyl1Fj7gvTfRPWp8@j=U=~De!=o%eRAe0 za(3%SO6!3svDFORydjk;v28`(%L(DJKepYTH^)}&TNmsfM zmz7;jz_sbZR}m<`Do}Ua%_l@D_o@qd)-^fhCj`f?_-i(Got}{j>W?@U>SEs}zKcqr z-ZNC4`U(M1ZkRws`y0>i!TC#G2$5py*Un$*#q4*Ugwy!@4@3a|;SD!ke+MsjP%^|W{U|yK~C?tL>gtOD}JpjqOP)zQQ?m!K~EuzP#+#r*Qbg(q)bCN#_vGum!R) zz_HxURFD4E46RAsCszxgdye6KouaD^{Zd1htNGNu&fMJi?RD3%a;yJE|J=>fUCwmz z!!yyv-quEIO0Pwb2W&)Xib$=ZCaU0)Eckn+#Bv>Mo`mEKSgkCUsVqGDfPxCDV86Se ztWXYAL_kD9QDm_Kf`dvKQ~wMCNl%W`3yWAgs(>)Z38@nqZlhi}I@$2ljKt0Cs!77oM4T(ZUU0j!&_jB$6R_gE{t%$Bv&?$6M+gA%8?R+#;0J(c-RMs!fZ`TQkTQl5ilxi%EB zJH?AiPnErFkU9xkhL}~1k;Id|^NUpb9yPPcM!KZaHD2$dc2>KN0DpqRfnOMb?&zO3 zaP-mnDJ8GcmSSsj6gbo(?a=#^M=Z)xNs$Ru^Xho9yTmbn-S~|9no&$afaXmhpA-v& zadFew?yy7sG)_t#ua?iJ)6BRjvo~V0AUNz~O(yDy{Ol3`(GlyEnqC>Es%{F7}uj@%E?9?t$vnmg+X}fhm^>^797{BkbtKx=&|yt^x9kF1 zUpN}fi0jO#upToaoh~&JY!{DO;DalEi!y3|DX!v_xJ2RJW;${PS^V37N8o5wkvvN^ zmAVTDmAE~gnciM$Dc-o9%_i+eBeN6XcTaPc!`bAn^dUN>b#yBKhC;8|V~g8n>BFim z1C#ItD9^nq=U6Md*Cmy$9F(MP-l?x&q0fC7T@wS;Gm=XMf6& z(jmz!&Th%cPxRX0X1NwY=TBw3FtJ#-ffC2uyH)(Lny>6iHGUiU<#nFQte#|=%3U{x zSNhN8DNwkIrm%Ne;Zl?D0Xw^0yD>xXCGL=%3IJTZZdzJ)jTl&Shpv0?zjk^S2W>VN zB3$(@@`ZEN5lQ$Gu>{6!otzSxQtvgs8h@05UTsE};6;{}9S9%D`c22~3eJl*gh}0* zh!+u@aqI*5FXvF-&(ZKk#XBgQ^r>;Aq1Z&r2(A!nkmIyBRJR%TFJ_G|d*_OxkXje- zuqo9-cOlFRY}UHxKu^{gD#7kiW9s#&eNdJs!qh2ZKw z1QtS<)PC?7S!s+7Pa5?WJ)O3*{wTFw5QQf%L(^34)7pQL!}tQKKM%!``dThNql28ZG9)uqcBDv&=LAs#lD#YEvY2t71MtTy z(zZtkd}#!@IoQ7E_8lZvD-}Z49;}MtfXCvAJS=jIC_+|XDD4c~`#6!Iez;YwFVX3U zOdCB0^zVTH4pibp1Iq1TUw*!x9@CBHj0VrS#A^$U0q9>~Uh!`bt>M5&O|VO0h}@~N6CC6D?zs@CwM z_W|kU;e*KA4xozQK0_50m0TV{;l!tL)QJcoRFI+-AdEfqc(?BpzKps2h~b6OqPL?_H2U&y5#}n%icVZCI#w8^#j*^$zNo z3fhk3Qg30zJX`U1AU~YmS84FlnTNzn<&)?okdHLdu9!q2gipAM5v3D<|a(4!f4m!*|jz?iF1xQ^QIV zW}}vNWP^`bxaov-WTRUadr8kDuEkdktx4a%^J=46^~&_oW241B?uzwEJ8~CT@@k2@ zjywn~vJK|R9VuaM+n~>2G*EFCZ-zIUk?sfV;91szcCznL`w5PbCRBURG9BJOc*78c z=1=x5_bb%(AFxVZV1EO<)+pCM9h&gXSx5E0Ht`t!Vv!u!E+a?fU1(=vk@K^z}M)4+qAXpVXz9HoTQnBfm%BA(p) zo%oJ?p&aT&(@h%nu#SEa952MvJ$>1e0)Q(7bM?VBbjO@n4rs&^&v0j=eHtNv;h<&| zhrJ-+Ulr3}8;;{Qq@$gP&W83r%1gu()}Uq~AGiR(op8E1`~h>a zE0lwsV45D`qZLkg7@mp1Aq%D1jdC(>&hRs_^8nABt12(;acp^6VhPwX=8{#=tOe-`_V+x z8we*|;SY*~ZAgyYF&r&~|5?W#{t#bwh^IItkFw+wUbc4$ai4^;o{7Qd#_&nj$8k%eA5=pfGj00ZDtXtKCW#wYliX@>2+rW3}&?LL^I6n28c?Vxn(HIS#9QgsCzg#dUIIR+7 zx`4K#eG162B815*TFv_4vI+Z9b^5H4VNW$Tzq$1inE=x%>mnJqzQZwScysi2mQdC) z6JfXKey|Ek3Mn?Kp|AXJcn$6O6LGEKF~n>${5(VbYXJ zmWgM>GpyxgV|A5UBHh%L))g^Tl1rFPs1^NtaNh-Fw6j(ANlT)|$#7z>=%>~8<@)Vp zF)Ef<^j1pN^F>%@{LS#WdlvIk85_$*g;L7pN{*-FaeU?%iB4sF+8MH(^JGUjwr1!` z*A7f;7OYF0?Cuyy>0n6ieTpN}@835f|5Kira}x`ea^i z=a-;P&*%3_vNCdr&%ff@j}J#yE2t(BHSWN619z+1S!=OJq*c#UqC31|8gKpsj>&Q&@eDz$@;?tJOCT&?H|R6g6Ce9>7rY8rnKZJ zx}m;PD3ns6VlYvDSv`1$!iJ_;)9BXm;t ztNh=qzIU<9LBj@^u@M#?8?_7*+|_g4Q?X{|?4K{P!5Lne5gL<|m2qMhg-^GlvfJj=wE@^7%L9!1YzBSpC;zCjAY_&b!@geP!Y7^jMI)LNd~;rh*+kWtbWL z=49$0qT)WW%@QBtCP6u;9r~vY8y{dAlWa^W%0DQ?(BiT@Gj00d8#1qBf0dgC?}$U+ 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%0AdIV)L_3= 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¬>jHrnG4&PBIjnIp9TngjmZ7zB$ zCJy-W!9Lps%?`~c7~G^_gFW7*_6Xh6(A6@8PRt-Z+K*4Hhd?bV2)*d%aVo%j|CPW! zI*Mm#5P#PI;kp{~>7VI?^tP~~O^Kr_S8BFgdC*_DAiOf}EbA`XgstbaR0H4D1aK+ky6A|@Z}K+gcNp23gPuzu4q zMuYHz#bn~s@PKsjfpKC3lbC9z;qYy0QCsv}cG%RJX$#>N(lmD(O)}VOj)J8$gIUmA zuCS@}{=;#72b1LTVK)3_#0~T!$XdKQvJH3}lmokq@K<&H#2=^f$W9c{t#STZ64Op0 zF9W1c)#9YA!+oU5`#d$Ef1(Wkq>2g9k_YJEkDFGL5DCNngA37Otd=Cr6%CWi?Jt_r zpEcDh{Bf$-!4cjjYDXB{4{hsg^`{8t$Q0TO?jR|NUM#gmOaKpKwHWFBP#=EsA`yzap?(y##jg+= z#%dALhM_+6b3B0l;A*M_&{>CiAk-GW!r~a} z`Nd%VYV3ngUL-`}G8BbpP0J=FJl_A;`rAVCwQn|cvDe4sEUY!I7(4<10f)SZ@LULB@!$Xs6`6i)a)n~J3 zzAou^C`ZAm7z!WHs9bJbhOJ+wKBmgzPa2;ip1-RO?6^)-vvd*RS^q%(`bs5H^Y&A^ znn`Y-^JPeL-G*je8}FHobv*=HttLh>zVAzd(t&}5<48oC8A5_ivGdMyqvd+xi7hb* z#L33ubBTvJ;DKqiFR)LlCJ>cy3Uam*MI@_Wdm-5F?5#YVf#x?;2FugwG@L{Aw`dl0I9zW!9%U=ak{&J#hrV zCrz2gk7L>3ng}#o|5@xQn~R`NwVy7!;&_A{Is+D*2-!v2SE=}H{5P`i7PGjK#Un&al+)?pNUHIi>#kiQV&7;L~b zp;fx)Y~Yx^1F!9;g72-U*+NKbgf*#j(4>qA>*WQ?cjc&DXC?6KW5oW&98okkDrri7 zZRxSJVSB}Q>wdfZbQ=gsi1geebV<(*(%ZeAj497`mblSkW0E8IUWDh13RiA4*L~ZbLUCt^aisSEkNn>^m^C9i z2?5+Rt{G5I95O#Lg6P@Rcc5-~kIcZNHq}jG+7#SUy6+~D)dhg{Q=DwPx}d*{ zto*6&|5=CThQ!YRm0{adyIck3M#$jnYM;bICg1qGiivfd#gox-iFoVxZWnu?=OUco zf*&xrTbcnvAN_(wOmzs3cIyi>fp{(XEh;6&FQWzI#fm@&p#RT%#Hr@R#1Q=Lo?E3en^Mu2T^ z7@r%mdfo(|GD?SAe#td-ADOy~Y+hBFTRFAFplM~t4L)0EfcuV`L~D=Bbd?zGMRTM> z__lKT5pP5BZq__}|J*QN#KV^vz>D*aKav zYKPL@nb5Go8o?K2YmBdZX|>1zmY1KGjlVXW7D2eO!JK{>|7ozP$~^Ie+p{Zu`J^~R za&En;an1hyeNoVvL~&GK6jlHj;_^{NpmWFtW{HDS$ibm=&;@3{1*@axAPS&<3;w2< z4J9!9H5eOA&hM)^qA;{Cxj^(fM&1MXk*9#0PIQK{gbY=Fq0;0G<)InJZ5^(gI*=2Q zDa|P?)<(}uRGJ+1y{-AmQ#ztRLB+E%>@o4cxL}{O?ktS%TCy9PL10KA1H30}M-4mk z4DLC}z@>S|;=cU4C9JRwwU-`E&tS^qp>lWe>fsYh$rQhVeUeB%VKK~B8TwW!#Czm8 z!mEwZp;2*}(&ySm72A$vm$g9V?n1vj7Qc!Ce}+v z*2@N>j7EHG$Zdd-2e7jCEu)d|!n!#~^z1okUV9)2jnlR&iTSfg_LlL!l3?4 zG=RvbtSlNH`-HS3&Ln^?_9G4rDfatK-H*`k2{+#ghR~1{jHLURH)&|~A+pMmnD)+) zY7GthESg!rMc5y7X>Pmtg$+f65@r12`NkNMNd`-lv9tPA<=uup!uAavsWa&&v5O$& z!Ty|a=-a#NwTAR7%s4=&A?gwFoitI{BDZX13vo+=opR-6)h@P@W)*5}i#K`49rc3& zQ_O|?M|`Ra6;voWwZf;;xSt;w3gF7aJ(N$?5@@RVpOh)Qm0)z^KmV&KF+fRj^6`Wz zuASTEJG{#PUiDcu8>TFpfNFOT=BZlHt4tPLx#%;MV)nbvXIR9p&tO%bAgexsQ1jCQ zt43>}Meel6R@tY`MJ}Jv5VE#G6uG@aA!V;VQR4IWgZ@|YMb4Iw@?0#${_KN`TqML^ zZd)^MF$!5Fs}CfO-5VKFcH8hDOPD{)7rE_E5@}&TUY}0_m*3G|ZcS5>4P$Ps{gBU% zQg#hSaY4|LMsXqPSUIZ&t;hP(ThY#;=Wp1iR3H6 zK!KD@tCto8L&5oEDQADpuH)ZoTIHmoNgYGwguEHsq?xRPcEm1G{G4%E%gH7Y zvPlxsd8tclxp|alm1I<_<`4YMV>lme(w;PrLOCbz(#Edl$F@4yB*LH9__U^V{YgUY zJZzU}bw1s#)$&KA_<)wHX_VMGxvWW&?a!t-O_D^;OT&L8fggW5*aEj@?9zg0lEiUt z4r*QP)mr{zVntgnfZbIKRtY!Iyj@`En+%yai%IJ1F{6&|=sLLGrI{WMN&3>w@A}o6 z7-VG`yC z%I3P&P}3@TzL^&BOy6M7a-uiRt3~ysZO$&|rt=L{8(hf`Y8!htvuw2ws_AU8RNkhj zaCm*z-dW^637L;|aOtqGyz>CjK3F^{x30=Ke!Ck_-+vNhW_Jp_iX`YtZsggx zPwGFSPgO?1x-bu3IH2LXcU5XDHHp|czl@$H zlD_mPmj04-aB>AbSkbtyySC}c=6XiP(}~r{-Z14>>KOa5w!eCovEc(h$ZI5}&UfbN z%<*87@xj4+qFQ)oKOgsC=~yv((|QFy*kO7GKMupIqdZ&WKp>i0WR9Xl^8^~oc|tED zB|j@4s(uNHS|68#O>TZI@;CbqEkg516q-^-Zr&Y+I>#?3Nm1gHL;4Z?_m2v=2^nhr zCIY#6O->OwKv*soO@zkf*B=QA5f<6mT>`mTVi6klA996%9GGVniHEA&B;{bkE6ncx z-vo8?iXcMOCFI~xS)S-9j|UcCb(4h|92VPqy(w0dGHM`yOqr~jaAP>8<~Ykqyy!iA z1}!jFF)~jmFiJGz&{cOzPH>&6S*xR#8YWbz8I8lGCuuFpnTi8`Qg>Fc3tF(_edLmO zv}nn>u9O^^U(9Yu>69D_TA+`?!kiMCZ^mwj?UWn{TA+tP!kiN5I#adAOfA(-t6Qv1kP2l3iE!9alQ#pEzL;u!7IYVdtT%YQNkmLp$ zU%X&>yrz`wmT$&pxa^qh1X=(bMRK`*d1WC5-}3s>(e6}i?{LFt4`ilHGLh>?E#!}C z5QS4(g|ZdYR>`0fsp{!lY{vGMAC(|8rIOA#Qk9TD%6&#=k6G)_OMaA3*I_f3w@8(O z%#=_)nsZQPAeBd>i0QM5aJU{1UMmK1&sEH^Hu8**=L-_Rw#U zIl-)TCcZdO$MF3tg$1W!bK?Rv)TsW>12RKtU zdnl)blN-O&aZLJh@z2y#W z%M&@V@_ZP0Vm^a%x|yqW+E(V-eQNA;jBAfyN#1^P7X|aU68Z;nRKsWR^EJ8asm=4fxp_mNsx4 z@pLM&FZ6&K&dX;Pta$1_0SJfkVQ)OT0ECr|{K)c!YNwZ0sfGFDWz83N{sZ;X z3#*quzN9b~PPW~&G)u#%9BeE8k-nF+MO$nIsH3G-T55lG0rKL$_>Monb;r4C1!z3F zR@ch-qwgTOr;(}m(mH!54b(nZQ0}->t9&_Y>70MJ%Jr_lf2e!ou~}^7?Y(yvN76!_ zG6Ps=h1M&|Spxu>jPoiTcT2_q>)aSx%A>3pR!TLEWYm0X&%m<_z0jkaBhtir|^{nRLV=kqSSa>VAuXL%;J#o?Z>Vupy^@ z7qs&_1uM>OAp3%FL19P2TvH~5D2`n)gp2$NL;|?-lfssV8Y+gQRPyDvU& zQ7pvr5B!x7huoHlq(OFDLV`O0`Gvf?Jg1LP0yn1*U1Ie|$WQVsK?&|iAaCoBEJkh% zN@7(2jL{SiDU{VG_#+8LVwKf57PlxELPc?fDsh_I$11TZ@JCv{S;6{`x29aX!j5EQ z6?uJFl8U^(L5k`qR6xoFXg!V2zD)Qr4VaPon9vEO$qhg}8E*{}#tGlmK*+0nI z-;L`O`e+tSM^?>!Ef}$^a*I~lFW@agSQXYGMt)|u#m6~o?nQb8UkAd!bW{dhE6cCL zjI0Q_62-B}Hxq4$y3)ioGCnf*qmf(XodTldroCW*UB;#xmPj_%B6_EZXff62H? zF&Q;$2QZBz6y(`R9OdPKGjJE=iAtp8W%0rs7i4L}9GB%Si;o=Trdf>~<)@8H zl%(gSjm0Z+{a|QEoe^hH3q8tBvI;%QOVSQKVs4ktP7)7Y;%A7Bn^uvNpv!kqj$;(3 zNTo0$%ReoMTLZFB1ubFntSTMF8F|qip@MD{d9`KHjs_^C9J7_x|TG$`g&MTsc+7eR!ht&xlT2!=_Oa&4UN4JNDZu z1DGgXg!^w%V$}#ydVDZ0xFXy>pe}!9c1I>ayggJy+m6%KJ2&zzZ?G);kYydN?C~~0Ba(%yLL)<&OVZ$?wz$L3Xh;n ze$D@wRMDBb;VZV{mhdU_308?yK?k#2Te$k`QT3i2qZ94xa5XHR^>s#A`9(NwSo`Sn zc@cwC@gUWmbNoX4VD+4wLUZFqqgU62nUhEPK_bV4fb(7Aj?lV&zyZNPeACF!g|YEI zb=&d6FPPN6cVtdncKSP%_IV+6rE3_p$@5$VnxWe*4Pk+Rfe}uIV z!8ji{xB~Y;T6>iAfac-d0l+290Ve>M^;&vXd9?P}rs{54=8ft!f5U#}dB4!+(tRVy z_>ehSXg|+5tXZ~vgm}mHdn66Kq_H^Y1%TF9;sri0yj$m8Ib(J=Ug3FQZ1g@{0WLvb z5px%jSmxHlItM);k-WkIT{4#n;d*2PS4^u>fIiSi4lf^Q|0H3E4}VA#lmET50eFOU z2HiKj6}k&|tixljn5v<|rh-3wNnB89gK5Kbf=M;~!)&3IyLiJoVJ`wb(RD(UTo9CZ z+Ex7?w%#5;rBtIQZuvFg-fO(Vcwnk*mymZ0AYXCic0cL}`w5h_y;$3Q+^0-;W_K|u zUxg`En@hWcnOAw=WGHtu;?zc+ob9+>U{*ug-|I&1ADdNV{5x1bJ}S@n1H46B!b_@t zd>`S5UicsBiz2w$yPwbGFu9fE?P*$F7g6!ATx6<_p8y-V<^ww>mln+0cPEGAB^#;; z`tv*Ar=!H*=B6U56IG+C@XgArX{#~S>t!}+Pec{-$&UL@r)aFgv^Hci=l)ElIQJlh| zUv)%31hmoZdJV(Ap>l#&U^wCj$S2b$7usx&yALIlYlO_XE@kP8A zh6tn!KOdXK@`c~M`!eqZMXNl^;G*6GLPCu69A&15)tpraQ-B!vx?j7T(2>p=2X*Y2 z(y!(=bCEgw^}CZAmGYwJ^1)i8O7l%6qP7wrm59p{2yGVmVT&6@Tl_-m>xvged;E`< z38g$uli}JF7v<@@g5COv>Ko0Ir;0bh!4&R}#g?9vb*%E}6*u@%%S0t^YPDfY3SL&# zVJoSc715>g%uEu5Q7fuPwU|tjC$(!?r`Q{H4+suQr-*vE1(Eh@;OPp3McJ_aY}@n^ zx~9A4othJ3XV(vc!=T3%e%Jlm|mD>b@-FS2OS zRi3=H*L_qi9E*)Y@->Z2L)hRD~e0{%?_3Ho0G# zL0*iyy#6Pqt4&P|2nNB3_jxIR50v$0b6*1D z$Ggv$CSS^w_A*$ z;P&NN4CBV{=j9H3Bj2Xq+Q+y_%TI_ObBKGEw`);_&5nGl z?+kd;qKfJRRU`~FZvzwC{63q7Zace0{=0jM9b!8{c% z?BBg1?9gNeyxL*l?BMxr&u%9-$@S|yGgXNBugkji7r%Y9?Xwne4_P4H#{MsJ$Ha9k z^~$<6H+|6c0K8BMjeYvYIcIbf_)^lz>QHye2>d^cIi6%Dn&J#~tN6^B<>IVLGhvC@w+1}D;S0%p6;{&C)`U5eZ`U`J&bvNm0`Pi70j4&XzA=PLbmVQc?{i9;eOCp z2!|OgWWgbq38zOFp&&a7=13=TX8&0MBo?r_df-?M;*kzu3G_IKr_!3ukT7cr{tf-Y zwq7vqeqcc~Hj7|*B7AAOmWw~jNakY_l^K#>yBWhwCC*=Q*EFw;c7DkCN6-1W$o&zn;Oc+8+Jmvp? zoIEZ356zx+3814FDm?(ne>l2V|Jyq}s$EtzXaFwxEl5qMy3{SB{ zNWzt87=*eY{vRvsvZ0{)?6Ut99d{ZXgD1aA@mE^l%C=%LhVh+>A8gU#=Mj#0bLqSk z{F0;We+C8_g?+OTZmHx#iW_F5jDp`Yajq$h|2=XRu+N?!6HW=9 z6sEF+nid&Wg-!5fzF*_Yw$1>S*H7^Y=i2eA^9#D<&1f!G3wfV%;)i>d(yMRjgT{hh?!^0D_nPy8mh83m$H=K95bee|2hPfS{onm^`ATE>G|xJpg0w} z9pm!%G=WGb47mHr%}u?Egl+S3&GPut`e`EsyaICx&(`Vo6D8IEQdYi1^7xmcayRsm zRrEQ;$6Vz7#2U3oB1OxODWgzY1&8FEQB($&R`Vlc>dpU- zJZcH5a6kMX09jF}Rv#0si&sf}=ZBhhhYF0&V}{9{-o{xR>4Z{&fRW&9kVoNlVL^ZA zjx%;QRk2HzT_R@3rA8{%rJkl*hEn!h06V@yeBTZu$QW%3)IRerM0)KIS@u_HF!Fat~LwMCIru zO(-5qF}Yj92tvvDlCRJDqMOwN6c8ccfg<#X-XNw^1KDwVp`J}N654VY;0l~V#WUzu zk$!2KRD-igkz|JQsduq?%B%81ZY)jWywTvHbXUgUr?2Q-n(UZE*-|wE2SABAJBI^p ztk_gtWQH`Tuc9^e{K*USYRmt1lhUf1lvF0fr3Du|aNB&Fn zr#kXX^u3v!TA9I9#)k-n_zgD<0}bwr-~sbLPx;d}$lRRY%5h7fj2d#rR3jE5$>rp= zXhseHa}pCE$&3!58Xu6i$$wnAbSmQa;27_BWhc1U)B+ZTbG4qGF$*qVts6d`tm}J6 zfIkec(l-w`zT1_ZDZ9|lb+^OD!J|b{v$ET>ZM;ZN%40e}Dmzw0OCye>HQRG$iq!^Y zL`x->qYl$?hw-fESkX(0+yhJQ`A^XujHZ_kM5!hyj2+~%F0L!uHk`zsH7O6Yb-y_m zy7^5{7d~EZCE%3#GC2VgjYOwy-qrXP8-)=TtHdiBUP#$Q%iPJFyrC$H=gpbfleKTx@O{ z?%pmr+5dz}qpeST?@x?T0K2fMhwFT?8rb1k#91p%P$}J-;}!6enaql89(f;*e~_WZ zR++H9!>v5cH_oh5({g@_8#8Y$Z40uxdyF(yF}gUFAJjT-k_1mt%2NA31$Q=y_~+BT zT5e5}2+l`av^=Z%L9HY8N6_m9tl264=Ex;NMex}Z9Q*c>PvHi$O|{n#!4egm$F-4f zu#uemwUJL{2EblL%cI5KAw9N&OQ?HYx@#BImrKn1T<<}-J`{FuGKPr4OJ=VCEN(xO zE8L*hM)qSW_!YHwPM*9OAt1D_I6Ara6GA#VwN_Xy%$>EgXc;w@o;t;^Rn)8~Ikk>h zsVtpQwzhLu!oSf}R*GyyzDd>5B}Bsa;RhR!0K!iC789F$Rp>V-)~wzF@KWlD4!~eb zqw0G*df`NK*B{|eg@-x3La3eGwd?T1866pLp<8RufoC*!ok%iAYi==zf(w{?^Z{*U zNPZ4ab%!bEyi6k~^P6K-XTXJi4}8Wz?No;gXG$ahfiEkbKwT`?R)y&t*oMFtcHeg~ zXchIqnK_6u<*?>kBL9rPgfa?Fc(2D?9S9=Ts6Xl+5ijD!3lIT9i!aM3xf2=qt8GrYMC(Rs_-GA&y6Aj*Q%Fd6wTL(die)&74n;=?HnrFmcQWT zRsELcj*qvY7j5kzR8Xavuc_&Fqd(!LI=&|Cxt^&hhmtL|(hbaAHbseP-sG}%$-(-` zIu%##-C274;XI(4?$K38IBFb_4AJRZ`CR*amUxB_Sh>1zt87EDd!VA zG`T{CS;p8QVbDf)|HhdSSUCk8fe7Qa4eFPUcg`l-&t%cI9W zlg3K9bh8ddx^&awm2kqj_!4-MS3c~^U9RWc$c&?(_?nhgzzhn*on(&z(m$Jbf-pH%D z>(02UxyZwMA~!Afg0co{t`Dt=&VyG^e7>z`1W}>6xr(Pa(^BoI6GyYe+hxM`=k__; zqq&=_N0}U)TMzyT$XgH1iNQM$&CJ0&SN=@MTOc$Z-^{yopJZOHljY(ZucKI&uXx{^ z{#@D`?Oc*uDzBg}LogXK%iX1N@JkOgy&_V#dginbU$rzj>W+C#yp9S}yFN{dV(f zUhi>tNT+x2Z42DTDfd1YgZR#E!DO$=kjD1ah1|UCTuNFzsnwu3XI-NB4f)UH&OhyQ zIC+7V%YjT)$8xiRv1A5t4Q@&lkE;2`Tx&GWv%F2ngz4(#Dr=`x7`@fuL~qx|l&oSt z|A!gdKw<8{4HjdkymQqP z&9>RuPUC^=7-dzFqQ3pDdp%jAFpy7 zkFC`>0QP`zMgU6)=kW-g)e-3XTI zrG#HklH8(D*v>Q|!Pr!5w$vS5p-AN+(822apqpb^mVufy9JGN$_DKO*^cQ_NC=u`y9f#Bc*ggg_4E1W0rh3rGhL*@OX+O z)qKE1{=(W=B5<&-xQFliPhXU-zhYA!kqFUYxeZT>?f1Ki^DrGJ%T0v48P77Il-1|j zD@{N+Dna^jcEl-^awCkCDv4TNS5IvwEk@b!c|}4)+g9Gmo%VXEC_Up1+0X0jusxQ) zlzvhQ-XdZD%u>|PkQA1KR>Mpv*WS+5Q z$+4cGa4}sra#Pioa&Y3inbbmw8x?EAxNjhUS^_9~*IPTvVAEw-M)$Sv4B9a-c#&<=>%Ig+K({8=^eT*3=(ToPz zI<2g;&z2abtzSice@9}H?+Zs|AQJg~8EU4@Fh*72+Rt2>MC-h7#ChXqw|q_^m0@>3 zI;6E@eAZ;)*o9ALb_Q8;4f>LDv#d0@*lD5u7G{75rkq?Z?ud6VHgis0 zXfO!Us*4ZU{1CQd2xk~JO9i$5s+QbNNs$Y91f+`(1bDzuzCWU%aCp+YXK8^6WAcyB zP-U$jfQ5rQMHLm5_7b;?7j2~nhg>>)Z(M(0pp=sM;?LrUFyZ zhIyKr7I}T+q({mHW1Dv2K z?fL76{;p2=YuGP9^))O##s{(rqh`EJ!M%CULITxAV4nIipicy#Pt09RQ~2@t@PSK>2az5G znYcZ7Dpd7l8TPGwngLF9F+9Z%xpMK#VyLUk9oPw+zkqqaJ{^+zE50 z6L2rKtQEPg9ok?W(cszGI``AL*{X4mwx68(uTaDm5uf|E*Yd`jC4(kW40f!z6)Ius zfX3VcgRK>i7C)pGV*B2s<%j#z#tCk`qI-#@<$^cxLK8f*S-nyQmIV-&X)iGC)QlE= zZ=TCx>^j&o7d>z8PH$|EVSq{tV)Ts{`c|wFyW`F3w<*1H5{e44AA#EUFN2bI9k?-| zZ-k)lZt=Et74C)a(-WNA=IOAn{x`SYRzzf#bIT1-cPjj&lvze-lZ-|SRHq>7?v!0J z;B|#P_&z(Zx=~D*TxgvD;pMTUkK&jcIlFqwWVf!JwX;aUV)3p`T;0m)9o|hgg2xgE z_TfXJL~PF^`AtoDi65UM_dX5Uc^hz$b3i}l-!ecq#er&$fY9!JO0@HqzkG4mnF;{tL`D~FXC7`URIg~dEJs9AYxpO6%m|?6PSAyOtcP-n7INN z%|-(x=f*^9T4A*SCR#^;;QPanaK%M*3tX`dp%DqO19K#;?<)U&w0ig~Wx6$){JFq- zd5gBvjIvT?WVzTE9=#u3EGT+LWX(qGDTf_Fi*`E@&bhqm7KS+%cPxT|x#fmfz#}%WmAk8 zgHHdA#4DV4(j~h$8b$>Gz%lnd#hgL{wuG*>`+QvrudUK@?}W`ZXd`JXnh0)DO8|aF zlu$Wf0}s^~-9HPQaCbEj>k3|i+?3~RjTOH zHSQ#PUm?-Qmq{v%Hjh}iYIWHLN3PK-;~ENO)jVo!Sf>BeFJ@aPcBoXiZR7l0wb}7K8%{q=^I3%gjn6UQya4_3_jUiR0`Xq!EJvb z2B~(~RS-KG!pI}84zuf@h@;ZU);w{V{6Se&GX)wYUjfWg7fpTUC!ULhXEA+4YE2~m zim!IyC!RWP#3LxjnUmj#MI~6}ac`Aju&Q-3W?XZ`hGHYR)n-HRyYE^BI(^LrXu-z> zvX}%+rh@TJ_M*V@{eyyw| zt@)4$Tyr%^Zr|rPRYV$FLT*qcbG|rE#50a`yElO~UL_%?cI>zT6M^ZPtShzX2I{x5 z-o&YSrX}&{Zr-epEIw~pd@gY2VDm+_tXcuHEPMU~UkJZIpMg&l13nd^>p%HX5Igai zp_#E9Kuuu|MJE*}%d=JlW(1sNy)7Z$Uq3Ai;&f}lHI?ecD-Ja%KsS|vB(juY5Aw-F zJLE!ODt!*8^og9slr+nQHe;gu6!BRL3LCBk%7Nh!xrCuIKv^2hhl~jY%8ZSyiq;I)A#rpm&RRi*F>j zBWS*Ni(jPuOEta~-;IT{Z!!cYqyw!fy(yF_xhdu$_vBO7R#q05fEUO!#4U|!`HGD4 zrZdivBbjQ^hB>@BDE5K0HxGzYPX5xh)Q}GB;rGyaq=02;2Y)g-LThMqsQ@I;kg0e( zgnFTCus+CbHaKK2c&O*x^}J8RwEp99py{>Phrb06o+e0N65;|e34u?Szw z^dWQxRk9a&`07Ph6wNuwl%>KSCQwOa34I8sc~>BML!IS{KFJMhngPx{k>mVJJ4cQu zjF*2sihq=UR3Ot^Ij4eAbqa2%7O94s{y6mthYBl0ILkS7l1t<;JtsI~PJYU-=7%bz zJw!gtqHZ-P*bx#-7msevdkTeL`14h28AG-o_vfp~=nd&$XCZYMsJ*Tc!{PPklfq)V zPhS5Eu|Q70!(TuR$q~37`XQko68eE2?;stVzY26U=o-*?5cC8VDoaj8{CZF(XcA~L z=myXfP&UrriF`Srd>k(TJq66o1k(9{ySX6rIqc2q=+{(VLOlE>)u8>h{(5SrA6Vl* z2LwOGKMZskWhLE#eiY!kB;Kmg5%jU{?-2Ssh(30J7moT)8Tzn5{HojR$f2w)+FK;g zM;r)?c8B2ov<6QOcydr`4N5HmPs#$Nq4XM*UIM-x@a5RW(jAoUp!779n%~YGFQ(*r|Cjk2WjA{gG@r7XVa(M3WPDvH&DWK(eBCJ1 zmjdcZLErHdAg=#|_7q}={-(R6yWD=UcS4(`!Kgc0F47c;}jrq3XnJjNSp#B zP5~090D)70zyTm|00T27n`} zz!5cHDDiMaAwY@x{xlFY00a#HK?6Y001z~VlA?G5EI}`1qZhK#3kp*dmN*S?q_d}Q z1@V&6h)gQ|D$r66qoD zW0sSSSx!1;Iq5u!CG(b`)+`w_o^;H3(lO&n$L!a{?AOGMCml21G|Y6>%qJZ)pLEQ8 z(lPT%$IK@kGoN(Ke9|$)H8HzwYt2IZF4&q}J@2T&%(g9NwufS78?^tStR6cGGoN&f zLkY&A#1H=#GoW;g#cGVjYX9Y|Gsa>g=8F+DR7iL^w2kTSZ<}#5xHKB_A@~=&J*Lb)c_~w&0)OH)6%Z-co%_Uf%<9pp%Za?qLteflfNmK}Xx$0f{Ys zJx|90T?N9-1iI)z7ai!K13h%0hYs}6fgU>0LkD{3KnES@paUIrJdeiNR}Uh_vvHu8 zVUL38^_XkWS3!+?b>3+_{sld6Gzbg~0t17e5oQDNQs5e@jgzS}GQs_|F(-f7+l z=gJ^PM6FldN+;?yD@Zy4wYTheYgz@! z`2=L#2dm?tFSF5)4*Jo-nF5?CKpz&M@3O;dmXUR?#A{qJYcl=9>s+`hxW}uO;Ho9K zY6*}u7`^HgNJ9O-RQms8vr$9ZR+!0~N5Iunj$78`3@7&=a=7L5n`}4@ZBDge?G;#@L3wkibg4 zUZ<^?vRHAJDqV9LZ>1s@D$G?fxJr)UDob0c$F#NT430W$j-JP_vQ#5ka-4G?(27H6Y{*-;4%<5G#97eZP+ zd@73KQ$M|`8bYfxflZFL#-Y6DOzH&*%f=W4AW;E~LjV#LfJ6n*Lgg=QL<={fg&Q$G z0Z3Q?5*9$~R-<*RA!XSZtAK2V-~RX=0-BEa3{W28_k-qv9tS-QM7^C>L;fov|CNv) zrE9CvlGSKQ4O&tI?rShk0pQgVNR68JRARgW;JgT2E8n38To+*s@_>$seIOG)kO?2i ztnUL+4LGg=$003UN-tvlpy^1T0ZQZ#O>@g)B~44&JRnP0(th#$qRugXQCrV1dKW%X zHd+#jk-V?ak`m81`keZBEeU!p3D&iQYS8yJ==&OP{konv=d~ml=g|dYS`xdaovzok zr@5sVgBs{gFiv-rmzNpSs))DO7OhH)X;n~rduPF(gj>~2uX)GoQx~+VK({E;8lu(p zTGX&L1>TsX>6T2#@eI)8o>tG(h#AjWw7o1uzn-PV57o% z68bs3CGPUrXXS{aO(y0&M9I{GEINeRkdNBYsW=)+!|7zYkS4$qPNNw(nhEbToj#>< zT1XWviHccE){4Gktyw$Tz>Z+2(H3?dJ0Gb*Hi8|(E@Ic?+#lIY)`QJrvsqvEID3Zm zW9!%^b~gJSVHhh%IFD7ZZMd$A?ZA~gnaf6U&MkH+_j5nHk~ing**M;Uw_px$#apqf z_@Vqzb~QhYAI7fXZFn0to*&6Ov1|D;{1`Tgcjd>j$vlOpuqpgFejK}z_vEQ;DnFU` zVYl*rd;q(hpUMZanf!Eq2AjptA z9lwsv=hyR0_IEy+Pi9Z?DSQfB$fxp~+0*kFY}k#$9yqg%s%0-^Cj$4{x*M`ea?&ddu#=N zpTEya`7*wYt>T~ZPuW-ebN)H|ny=)m*lLcz*73D`9V_GC@eOP}-^4euO}w0!v(3DM zSFrDS6|Z7H@Lha2+rn$P%PI|Sa8_kVL$V!4Gb5Q*8?B61>=)xO<8ZdyXloqFYK=}t zCvF(W7{_qaIM(RKh0(|8%PnJ+aT)g+W-Q|!jE{{^ct_)VV>j<) zxTc@?F_X=U`5<$Qc@4kEoM7I>A2w&0Gx$?tfEd6Rih<$`{v6hFBBNNoBwsa3?MpHD;=Ht#zH*-^#RZG*7jrSvQ$yTDMu#&9kkUR#&?46Y|+s-&Uc;Y>wCucj5y8rFWAvTD&xtd9FZf;%gM2Ug7K<}|ultsW!M?YA#bT(h#P_}!?)%X9g&5)c+P7I;=BxBo zitBvUz8}Rz-%q}uM5ga&U#*yAbDN84wy>Lto9rYzN!(&5+pWZ{c3Zo>m|=IcyNYbP zo83dqu}`p15ck@B?Y`nZyPtiE_=`Qj9whSYv+XqTuszrwCi3l|Jwg=N7uci4-|UO+ zOT+^EQu}hT&>m+`7XPqswQm!P?dkS(@tQr`o-JOtbL=@{iJfczMZ9I-Z$Bj7we#&K z#4`Iyd%pPGUSKZ}EA55$Lh*%NXcvkv?HBA9M5+Cv{fby+zh*BH-`H>2Z;N&IQu{se zo&Ax$Ol-8ju)h?W?XT^x#Si{e|3Ix;N z|8oCWnVj@>($}(O(z>J#vQ^Udq-uG1b82qD_vHgm2G-N*JBJn1NVP@-M(GrE=Krauk)|a`|bP6UBa@;RnW1G;WFLzAdIm4?Qbk`dwuR2^66F`DDE4p zKT+v*a^2{a<#i=Q%V@22Kue6fsflZ=5~U?ht*c^Wxoh205C67DTd>dl z<4#wYs4{v@ zx%)j3d4Z1SC#W$WSY56#j`UcnQAWu3`ujzpjrX%2?KgEyq4fu#_ZzQm|2AFvC!o#ybk$Du!kQQvZJi)bjFm=zl!jZg|C_Em zjCQJbUd6Z-gJ5yoEqlDSe4lMA`;BZK^bNhR@?d%j2Y++7x$k29w*Agrym^4i31dan z3yg^+miq)cb1*iAcVQgzwiMKyir>@*IoH(fDHSNSM&TY(79dup(iMU#^uuQB6{Se- zxN>4rJJc^dn&WeXJon~0G=^S3gZ&!`$}5I1y_*@?9}HXRuEfyS>qx08E!G{^M)R_Ugaja zce{h!0yn|TQOQtD&mQm5pfH~r-~WfODBg2|*H-Ml-IV|QpV(sOkovd@54C|zEq9;a zlZMo_PwAQa#=&ZDL>k=Jo6J=n@$@|G+yta~WFKmISML)b(Ee<0k>?R9v{>JC8|r%7 zL!RT^L&AEI7>o2wwng;v))Z?6QVvuLyse#Ax*f-Jgrl&Z+t17E@c~R~S-V@|Sj1C~ zLFnm_vHDWi8u%VACm;9_XvDkLezndKskKad+u`}rBE7Gh36|-8EZ1c#Ta`j_wleHZ z>P`9lEhDk8t%0pbReLXQRd}Cxru(1Tn)a?;8FxIswyM^3$Lsi(x_vm-csukgNc}EL zaBi7O#T;^N{Z#Mwd-wYWSDYDlTv_j^IM%DEZK8eN2yBl%c6Yed@BzFTtXmSMgR|+` z+KL3}jm(`JuEK;-GJ=)p!%gmII;N!fo$#E(eN@YBxUDMob%K(=PMjLy2SLyA-HqWn zte5%^)b}KO@wVpJtBOMw&b3ivOC5xg*U82@Z`vkDb(rxLj+2z4c z%?}4PgL5aie|PWIt4%NB=*2K9<9M+?7siEQ32H1xD0PQvdmYdzcj+`eBXY-L{7QAo zbc8ZxO<|MQdZib~a_e0?2-kGMudcJ+idWnWC4A?h?*4;{Y3wVDtc$A^frGay(CF&> ze#~Cnb$Y*8-<8-&2k;(_*E6ND+N5XV2|f3NhTnUn76 zN=q=Cf+vzN^+42j;5HyY*cWe^;GELX1;}w1Mkz(f1&-%J4`+KF1>Hx7JJjJoZ?xo0jjLclF=9CWkhBpzb{V zf4Dgw?f!4>LsZExX+VD=&0o)E|+5atDXfN^v>mBL!CrUd2^+xD7Z?Ib5 zPzQBaKEb)Nx>YfK9Dera0NEtB-+z%;u`}Lo?{f*2`^iEFaIii>x$E^^jCijiLC)V+ ztG>Um-(wI)a9f+RMdY;4gI@aJ@=y4%n&Qm zt2ue@#JW5A?pUO6Oi<3oMpC0~fDEpLSM;>|r2C|o^1VC8eZsxbeZzgA!IkQ%rtf0z z0FDI>rRei&?xy&=xq53vQ=-p=weao_wn&hvMclnZN}SW(9DP!7U07S9z1MKn$Zn7l zDW!YuZdZD%@A>+Ugx;$)NyOgup6S|Dzf{a@#(K}$C0cdNLnw2n>eY)_q-4EN5dwN@kQQ!*jx1zm1^a80m5?q#QW*`UUSv$Lt@V5 z>oFZn-rZPtb=^J^bJvB}P7`kbsWDg{+bZa9{nhs?-7aoB_ck4WNj?3Ez0w19w|kLW z0>mhT^^e@kERTBs^Sr00W+bRljofY5uXlfZxwlHMWaNCUX*(&w zbHCA*`eJVdx_ivIxRq1&j7Vf3iMiE#wI*~>xBB-Jn#>vdACT6%_4>{zr0{e20-wk0 zR7~!;avDjE+;Z@n7%QR|fe(<~0UE1Vz-iUcfv|z953g2;S>^XtO ziPQI3>H?~}i&h@4MW-deiT&NwGm~*!kGlQd>s*48ajm-3n#f<@9&)c>eA=XEo@-*t(+q`ld+?HmRjP*pH^V!UiSFs`?dB%ct_qJK5H-P*cYD0PLEVk>6MIiz zACIoxt-Pi1vx5IUTjTu1-}}TEY_44aEt0jB`%zy~M1Ft^8BOO+v^A`|aefkv!RG(% zF{s;Wf5&I96Ft9}m>-4c2WEr+ubzCVQvX_RaPC9>U*=8q=j)N2-u$9$@7GbaztNbb z<}{5=Qg-Nk8cu_01kI$OG>h`+HhO?w)^9goPS4S&w3*(e9}vEwa)fWGf^k~Q1WTeH zSqs*Rer1QU(-^U#?0nWszaQj8b^)8nPGXsC7CTSB8Dtz=$2PFZtb)00ntlUFj(!8k zJ^BqG_v$x*+^63F@)!LEkh%H|AbINj6zqQEd-G!UpgG2z!i722yon!W&M@!bN9(sv zbQS}}Kz@ukU8M0Y;#_eq?;(bWAnz$gi3|Bj;u3KQ?;|b~Q+QwfUWsAi77^mZ#XRu{ zpC}#^+xTSlwg~>Vs20`y9kEmF;>GHn5&S*%&In#24QcQXB{u$%wB=EJnd~T!=j&u| z*_&@yZ;{|t>MatyTD?Vr|11Z~A^aEh{s{i7yh2`K_~khHHzP^Tm-CHba)B%~&eQLb z7%88V&l#iS3$n<#P`)HzF)os?%2$na{a%SN@=f`cajAZ#J4#ti)yi97XMB<5ItE7{1iT3Lq}A^rY{dFuTU#sc;J z2xFmjij`qJtKJ-8tW^cKd!iWbCl#*$){%+4*+9@w5G+{i0E0zhb{) z{9?amzh>-KZ$mJCwU^pU4OhJl!6fxI1e2?`A(*B=)qj#H{C)hVnwI|z{~2aW|2h7_ zW-I?t|8TRle}sR8+0H-8f1%l)IQt0_Y|;P{2nI<6K^DT{)C|EQpAPCjOMZkTgysmz zI<(a5YKP#rCDL0Vw8qgPxb{$l_WBOp;dB_nk@!6v^Yu0er&3#lqp2OjX~@-{&Y&X@ z&P1*wsWTmgpq}IF2Ch=5J9s#bjt5sKP;ZoRBAtSi{wT#y1L<7UJD7%mm!SwPp^L*% zztYA-ppBzY|Ap`=4yVfzEE-E!qK0vF4LBK36Hvx=G!>joqb%@nGqkod{F)i4{SJiI z(B_%Ab{0ZcnvKw#{)BKW-HFhPau8DJE`;th2jMvSGeTFo8=)6;KNoX_dk}iky$HSN zKKcvJ&ILO320A=Ieds|1_5G0${ek|9(2M3F^rMFmPN9bpM$jV&{U{%yKRrqdP{LER z5cNJy{{$!hLg+@%BJ`p~K%5jH&THW0by|X)Z_s;4FQNCr$p`cyIQa;n7cE2R24q@} z_@}fIIlllV^`^B5DYTBh18?hrS$#ETouD!64^%-vA^$G=1-$Jhm-+#(IQ0jL3F^%x zlf)R51~S!*H6xSxn2!!)HnT}GKl4*FmIS=Bfp;yaIcv!vJ**Y5uNANl^1@oP*2s@Q z?bzWAa>LrNHgp7Q%i7XWtQ~7d9awwTo;tE4*by|49m$TQ)7eq%C>q2%unyFTbz~js z7U{@gjmCOMTSFvls!vr=FJY=$)z{4NeEvWrgHXZfOU^7u~Hp|Afv)C+L`#38= zpFF{ypziE%>`Cg%=Ci+3FSdX^MLpO;_B8cmh3pxmtYhnFC@W*%(OGOg+kkiltDs?Q z8{0STB*QfY9d1g~Pi@U4vpF4YCYy&M z-r78zI-70G&eYXB#ypNv%pPV>>SgvaPom!D$>u3^qS@aZfRuoF2I7Ovv#6hWwizU5 zjxaAK2^)3=9cEr>UPEon@#eME(VSpTLVU70g*w5uO{G)KY34NggL#vA6LnB;S3+rb zn0L_e%G!~ktQ{Q=Yj+0rgT$GXB+e3NA%3h3Sf&ECWaw? zo;Z(Mt9LRX|8OxJDM1mW_R3PysmfAP7g);6u+I<~)L&dKE~jMmmL}>Ut`JusexDwKA$m_SF1>%>H)UoWl)Cz)ar`Nd>08MWUarXbH$F%>0G6Vp)g zP2wh;y+zyter^@F;i}ukbX+w<+<`J@ifrVcC1%r+;!omEl$;}S(Du8;T{t^O%mF8V z7Jo*{-QsSPnJaQp!ad?1lyI+@i)-^l9(5M?i~EuOfOvp}cu+h@hlr2}p{4W0JY4&b zcnBpwEFMOlN5mtz_A&7oYJ6Ngj%y1<0n(okPa@}hF&`!TT|AAF3&p>X^I7pM`gxI9 zgjPH!UIJGyi^XW^t6~Xic|*K~l()rFwC-K;KCb#ee29MjNPLX)KM^Y^AXbV}aI#9Q z0T17ZZ!unL#X34el!@=?OtD_92M-&>CbVv|_#S2cAbvmzTf`QWP%g?*{#LOSHCBiU z+p%(Zt)LZ#6*zXiOsh9Xk{Dk-}v5UGZpN79Z%C?ju+sXEHoIFAvK|SS>@+h3` zC_AErqvg>kt&{A8vz=uZSTE` z;(g^Q$kSi;r+&(>LVU0sjQm675TuNhBa!CJG1K z9BNnZlI|+6mDl0yM41UbC&?*@-zaZJ`Ymz>O1MMLLdmn`UDQ|3k-6xTd*oc?$&>e^ zt_S3UbczhgztRXfPr}B@hvXyRGhgPTgh&66y>E}Ns<_%-d(Js~pFJlxAcR0JBwRv( z0D*)6A%U2L5W*$raP~fTkw%J$h*S{~BT`C{`uRhp>T9VYd%r}VMH3BFd`)aBfdl})DC2j0aB#a3Mo>iLWU;IQsB@pbA2J8^Ln!;c{yy^m zss9tL9MS&;`49D@kUy?}44D)9e^Z)%QvU?CozhR?&Og&XL)@S@plqYwNXn=>siomE zT$F9-2JEbX4>=9D;ihJWX_%C$b~__s#2Ina)`&OaA(LPvkPhV9jM9weMst*HWwb(m zssY?*q#0?bA>GJA&Dll=Nah$hc5Nd-1B{>%qB0|FM5x?|8d0&qV@5{c$B)%xDM?CRa3q~)rf(rsSv2Tp1K*g z8@E$OW4bXN`9RpzO(AS*350zc()F^Q@)gcT44jReJLR3!RnC!fsH6Oa`~}j$+=zcE z?}y9-@nZTSq5*~Xrp}%sPao>&>Feo>oPM5S>h0<8=}$$T5>E;B@sxT>saPR($PD%jhD^1m zn!0(0c!r?tP|r}x^9=J0L(Xu|2*}iWY9Rw0j~XnGMLv)1v4IbT7{zG5l5uf^LEMCP}yd`7tYR2Lymr zA{fa_2>J9f{R!#U5b}Y${~zvcJwiUv_n(o!0iggGd?WHV0eKhD7K8%e@4q5vEAO?t z4WSTNd^?c$n+VyogLWbP4sdxkaQS<+_kUQF);sduA)0I8P% zsUHD1`WHeeeMlc8eFE6Ml(G9jVE5BtJD(wxQ3G)N6`I|Z4`cUcjNMx>c28#PKA5rl5XSC9 z8M~)4c25I#&jMc0*0RxVJ1rOK&gam)0GiK3&E2%_WN1Br>=U(KK=vk(eF4}-p;m|% zdu#oWE(X^30PB|m>kk0pPt?k^GK$l#(5^s!xmFJJU!heXU8xO0x<(s{^l;6Kc% zY-u*+1KS1N4K>%sfh{!Ct^-?W zpB2m0ZsU=(T0C_Kz4 zOl_7n3+bP03#dZ<8gzy^M3^~@WabcI<`8A(a3wQ`7&C`a%p9W39Ij;M5M$;rikU-% znS;&DA;`=jz|0}U%)w^n5M<^MVCE2F=HO@MU@>#>Gjp(*Iry15SRziuQD2cD5~!a@ z5=lrm7tN7Q7RgAbh!mt-iB{BBq>FUYMO)DpagNAA+(Y!BR-(V?k2oYk6c$&Ds}YY8 zW5^}05!WD|C?+DV7xjqm5%kBi5tz4*QOJ>uuYbGZ7v zcpg{Ri}ln+?HP-Bo7jeUhuA?raX=hE`jB{^I*XIyBn@}qLmkw9u$1F49VTMwkkrW$ z?}(>bM{`GWYUgOXZ zS;w=86>F*lJ8A(wqj*tk@S;|f;Yu0-&zag^-57VIkp?CUzD zCpae}eFKgd*g!xztXT5Ve>Q}5RpIKQq*Fe`mpm4>(l9+uZ zxCXlhBds`CH8ZXRFs@qUD3(>_3c7;S(iL)rs5LXLbY@eP%%hT+N3~=gRmnWc!91#o zK_xM3N^;%mx)pUQ)>O$%DTz5!OXfo9%!MkM1tl>HYRxRDl37p^^PehaJ}sH~RJtB^ zJ&f8OaXo^oiutr==2OX>Cy5zO5_6a&<}HJmw^T82Y012$nt4kN^Oj-ETUs-3NoQt~ z4o-3$4CiCl$CS;Sq=-35w(FGZ6cxBWb$v>Gn3)u~8eNT4sEj{lGe5~z*Ul{RBr~xG5}m96<1s9t%1VZfUERiu2R5U zC7ZcQFXk%Q%vE}TtF%L%?ZH?wnX%+CW9i9^rHC0zPi8Cwn6VV-J@uX_t9VN}^Og*~ zw~kTG?4^j=%N2Tmy+0&N^b*uus+Z!42I^Nprd%%v2dL01POBtJ(UU)L)+iMpVpB^iVuuLLJ~T7Q~M=0b`38hs67#exPi3-ahM>Mv3tHA!Yoam<>M^-uLr zkv^@ThKyoOX=hjy8AKlDPLjD(>UrELky%rV^O%yyNHUU;ub5Kmc}&T}Oi40R@_;F| z14n8PzT`1F8Xb{VtjTkRHRT$ek?vx2p*W+f(GBSyMh~R(!Js_Mpd=Vn71D}3HDm77 zg1J*NbEm<~orW-X8p_-$mAO-zag}iuN+|}_f*I5hW>BeT7}Pc3OCIJ+X~y-&^+-=N zCQ_C$$+!_L>tXoPU}B zg5**2C|DN25_OR-=^~#rrAY;{m25?wWn0-6ahA-+)h@CtuI9;ZNcWPx5SPg^Y9}jY zCFRH}Sw)@X5IKZuWsR&szF+#OgW7kRhRdtvk0CQr-hiu<EV6j{xe@o@^Dftxg z{~%W(epWt*c&&VqO5{uOB{0TU?%lE0A znPDk2!z@psr;xIl2Np9AEMW#%!VEBr8DKUuz;2!zPYu#T!2k=G0Twa??Bnrzyh!^! zekx-gIGTB2xhLQWP=+Vy38U1No-3)RXS8QDm8$)&sY~36xD(Vx?Rrf)@ve9m<&a3r zS9@P)tZ%oS`hqR|2Yeb2H~Gq4?mpB_yHV2J0`_`WtHsq$EozO!nYBLuo}F3HdNM!v<+h%Dx&CIC z>jm|tS{7e~%whIIRo^pyn2iV3o@Ezb!{vWIf6B97+l>$XknMf*r}1X`AKESF%R6)- zXPnwqhTq0z-vQ5;6&K_-`E#B1I9`0dA4=1lY)o#f=6|a%=WRE}8e=rFu~e1+(v<>^ z=byc&#?D{xB$waj`*LYL!Ef)I_A9@j&%e*szf|^XJ(@4-lMIdX-j|<6X=vVe?yYZF z;qaY4joD}0`QB>0Xivz7w;I&*S?Bw@D?i7EBkY5Elk!cyp!TfK<<8~Zd9KDw)S#E5 zUCZr^gZ8M<9+9k z56-#s>tw(051yz7iagO0Eg}Ctdt=eD9x|zD)o#`iIgd z7rk>s!zG)M zSsMd=`<=$?1+`y9pPyS3e`Y^{uaJ1>t8`=2Z#w+F%zHlb?3bZ=8?DQ0@l5F>-=*|- z|D4&;`XcshI%7FMx8F^BbhM>&miiJuUB6KKSFE`Bp+1+c%Py(*ABb6U-4~4Wv;6hT7SHWl{;j_>jQ-N!Z#Mm&a9OQh^zW&kx2>4>*}2HSvM%{D0;Mzi3V-u2G#C7y zYMuXk>P6i9%5RtX+OkhwX1S)(kc@j@{Z;Fzk+0syH?FV-Qoe(&&K;M+pBis!e5>KU zrr!w~f35!doDnuCuGqWrrmsQ*XY;;#bzZ}TzjI&0=R6C%@!R#vnO!-)afR+BwEemL z{^3yk5B&M6vkHFjHqYv{@AT%s<2}6cZ)o)F86Qo3E@&eAEsSQAzP)xEM|eqE^&WqVNkpC9$7VGZ7V0YA&u4W2l9= zMvSA@>RfF~V{fN)b)q(9h{<9yWr|zGE!0*_6VoV5ovuyU>U3>t&%RJOVxE{soy7g( ze#%uRZBu7;(l&Jw3&kSpDi({!sJmDy9;bZqJMjed5>JXJskiup_yZM*HDWFG5if`r zs93xrUZMWtHSrpii1lIvm8$c$sf>N6t`L6{+o@da5N}bH*d^YfYVmjR9@U7wVlNFB zhr~Zf;m+ztP3lsLs*M(VWIOk{u~D z){*K+rE47-j!YWwXz%Dq6C9l!o#+PR55^y8lJQ4l4gEx&zDzf()0b(AI(M0FQRgnx zRCVq$-D(^(KBe2;E_WQwQ|B(zeD}}XzoOr{m$^Trb?V$@%~agyig*tIrt57E{YqjdcW$jAyBlBZzl=-6WG`ns$piWm&sJc9MD8Y*{4xX?LrWm9=}-$;#S8>SSeY zzB*Z1TcA!>))vZ;jB1PJD0!8}Co5~qA$a3m(m_Fq#))E-8<{)?yJxc2D;E%NLJf ze5a}Nq7_?A54d-90SP2O+m88=%f5uY#9NpZozyAxh~L57$j03GJL27# zAsu;!WU;4VJMjVLNoRE;J!<}!_>ek?qv9y;;TUF4F3+59JaZB-b3TKnXb=t15sjEd z89a-c^DIiiEOL{Fy%givOEJ~q!MsXmU&S7d1kA2B>NI=A%5O0lb1WHgOU$$so@og@ z(~{K5_NcQ1=36q)w{)IwI_BFS5wFIqlRWFX@~rF1v(Ck{&V^aG3-LRcdwD$f1kXJu z=3WWu?oxLtneG9Yhmz-EA?D%lsjGXX`)Mk2KjVId`mhH|Z};1npPHJV`QL5pE-!~)LbQ@PDiIS^GWkbYN=){C8`-qEihwOBYxI=7FXApYmooE`8>t5_eyK_ zUdcDtnXlsNdUHMEKbwDs{6_P2q?IR2cXO-xH)>{XGvAH=NU4ms^*N6Ll9>4f@oWiCo}mYtDS9yh&Yp3I}p z>ZEsSBm2lclq~zozT}bpWIsxPZt73XWr-}I3|T76kiJ4*0m*V%j;n*@Ac|w(oK*JB z=^<<6FkJOYFJhncK^|HRY2~NWO-5vtlAy~*A^$3Q73#cNj-?cNjl7o9<#;(BlGn-W zQ1b*i0qN`I^++qfo*r_NoP-?cK1zb_+e5i=d*k*~D`>!@NFR$s4=X)LhFa=C>G4{; zgHlMKLzRzo5&KAYV;|`v_L1(xKGOZzN4hWjNEfq@bRYJS?#DjTec4C4n0=&+*hji2 z`$!kCk905gkuGE(>7MK(UBEulz1T;(kbR`PvyXHS_L1(+KGHqdN4h)vNcUj>XZIKM z^@W`CNb#w{q=+ZMfIxNDFkBA85mA=jw zF%g6Om0}e1j?&%jS$CIyL3jUH{1{sJd<{Ncj6bKxCy48jZqnvAh)GB{>GYeR(;ckS zJBZuFZLlTh>-0Osj4x>R4q}#=1sSE^JBbIx1C+x4+X<}Mo3UnZ#+tnaYxXXz**l9R zVhJph(&=&R*BvKTij|O5-rWi8-Q9xqco*>}Xz(=F;2EsJ^TbBz?liGkY=*UXU2H*G z>G2G)Rcu9C>G2HK=Zj;Io^ggPh)M~M!XAco+jRdHcx{#hZYd~ z#ePa}U~HiF#wKGE;vL3Y(Ee{5Z=bON9gN+^Zj{<<>_vRQIDlCB918Y16zp?oxa-{0 zsH6Kf_e{!StB~)W@19TD?q9nXQ#1aq^w z89B;AbYiQJ0;}*2$||eSg{^{Q8_=13AQQ|Z<`G;~o{%lr6EeX(W*&oWIANYZtSmtu zY``g`Ps0+lfhB09H1?LvU>lIhHlQnPfR3~QOVEn7f1Zq&@sLcA3DjC9$|R(l!5*|? zzshvB0eLb*W+GqtSf;a&Wd>V z%i)kw79x=?L`ykRjzn7dbH+AQ+97+CJ;oky zPqL@j_4Z7Ajy)Gr_ak>cq!vPAiMM*+=Z-_Nf2` z^gtZG%>$`{%s_`gmq31?C{Pk8w^s(L?H2+g>N$ZrPX|SyDCiC**eSu}V4Gl;-7c6D%nSAk_6-gQRt9VA;-D8#pB@b0i6;eP z!Mfl$go*Z?;N;-6;Edqx;N8J__Q>Ev!3Dt>q!-&OgUeLg!KdsE!BzJ0;M(B2;ClNM z?t4GT^Je_8e8rl%r651Zv6xtPB7TRMU4;>0j z4;={ z$%*7)1gr_wM|!Dmq_15Z84#(A)C6>l$m0<&?)Y?IMH%0}n^0MP@{1 zNA5-~^CAyL7N}7WSsWQ)&kxo_mPMY5tg`1~42)5uAhI^H4%gO4)?+jb2-YCf1uN}2 zp_!3njDR+g&5+p^*%{d#IS@Ge(UH+mbX0Vdy(c;*Iv)M;T5vbUZgrqTxEeh=B032(rYJfk zS|6PmelR*GI@jJFy+3p+IzAW(tccFH=SCNXW(M=3OCsCwrmLdMqbu!E(beG(qc7Nn z(O07zqFbWdquWFE(OuC!(L?sg=#l90=&2ZCwA4qEV|oxz5{rv94=xT)i>1agV;vB> z#PVZBv68@pc-~m7JTxa(9UBp|Vv*Qr)cLBN9vd5*5W6vSe{3q=O>rh_F8OHY-?->{(U#LFZMy~!`O+~ z=_>{Fj?zG7tbN8{u0!i!&bLF4=3z8!ut#0#4tg=K2%1ZCenNs4@##y~v0lW%xAg{SB(`vO^D%X74NUG4T(ypRG zyzfetHclHygS83T1gh4iXj5p2HdC8LHQE!}6EvK$@CZ>R%BYqRv6m6C4~V#$Mv59S zlq}$4ivj|HMlmA33JCW$8qFMkDiGpEx)qFmJIw&r+e3GWeZX-K0Kpxk2bqaK#CUDK z_*k5vUyG9tqDKJeThS6nYezb*b+iSBddZRP$flQpp>k-QBiGTD{^Trl7Sf-cCC(Ds z;H-1j(MIQZ=Xl!WyxBR0{^FeKoJy}d>z#Md7GBY{jn{I$;X38|l(zHE5<5T=9JEt+ z=_c*s{UYAu)mMA;bUmH+>OJ%xw2#+I?dO$J2lNts03FoJ^g;B2K3K1z5B1^ta5}Ef z)@Rel`eOYtI-xJsx6nzoc1O!rYj?DEYF&=jUaiH^I;d4RT1U11M$6F;>xZ>YYA*sU zS3j*cXr0wc8ZFPzjTEh$(bedx4KRinL$ra$7~^`a%(%h0L8~!tGA3(7ja!UcwBg3B z#x!k&QE$x9yvEOrIht*}V!WzFjn|C7XjdAq8(Xv=8(WR7+BL>DW1BY4c++@CyB28i zfHuiJ*F9Ie#eLL$RGVt1m?_$=X2gtW(}12%X}6iDrCXb&xUhB~a8PsYm*BrC+ONQW zQ?>arU8ZZl2Hwfi9#))JdjxE^tF}OPmtO5Rz#2jARq)V=wn4^ZOxq|&%hB28c*006SbaEo>9W@8SVLzuz*cUMIgQ+ zz5-)e6PB35*rXk~h=xu3@>ff>>a20rL~Al)_3t!q7i$Jmv#q;F2y3485WWkn#nv+G zDQlIr)>>z+_r*|VGh|U>*pgvOtZk51C3Zq~v9%kL2k`e{>zJy0WTAD^8iz8|tevQP zoYkOeww=~I{PmD6tz~wSonoz1h{>uuA2actp}alJ8mG_`YM5q^vhK#eTo!k*OyMcq z)9mvwl|of>?E6t}zP->|teyv@rrGl$wFLLL3U~PwN-jqL&OzNkTF4vct82nrkQt{i z7y4luQisqFJI|sob-&iKfQ}m00|lK$VIA=Fvw_9B;GX8Gzk$kt%YY1)2TJhlR|C^=wFB3OdT=)r1GDUffxGM^aV7rYQl7?$6)JTLk*j7zgw+!fgScF;JP`1eSv-G8P%VvS0|xY zHv`)>w{`|TL@n!pN=_?$7j(14MD*THdz80JFah?!nubso4M%84wdAGtbR|MZ-i0lP z#v*j0@d&vz8KE=HpqbP~TdpmqZX#Xuq3)ueD5e@wB1&kOxJUdKH2$x|3TX4E#M3lE ztP-nel2|QP(@((tpQjtei((z!?9`n)-RewmCeSoqcYK@kR_AS0@9OWWqdQy^T@&fI zuAjJmLQ7qfT{qL?u3KEU((ia*q!q4Txc(14$@?Fzbp6uxC_U|Z#`O%nu( z?l+HWW_J5-yh1%Cbew{BD^{)4C#8hvD(rkN{eOK+&>gBbmc9C5)ti+mR-)lc;KkTou7vYW8S$Hd` zqqrsueOhQQwO82B;7RiRIrbWVL(N0}RrX65K>{;;%m2>l|AaZMk9AK|b6Q(T*Ai7O z|KIO__E&_fN-D;B1Kyao&O5GRs(0d``XP(FlfBctGb%E@v%Pm$#Chjcm3SXwsRe`T zy^A4L#}doDGf-x!_bKnHLC2v>)_K=^H+#2vcUJB2?ylH3WQ6yC_ptXs<+dSXy~ps^ zNpFMC>65;silx33?FOrWJSI&R58{!O11ABQ@IUwC3!bjpYm?2+EKAoweB15 zJy1p7!@f!0W4RP^^DCxS#G&Q&s%_t^XnTWiOT`J_ zcHgdwedq&j7q;h^Z;$T~p83e&^}gc>rz%hS_Kc*FdKHa~^B(iA!t|Xb|f877>eV*NC@;-;|s&h`& zIq%1*-}}p9fdC<>Hd>`6B5)O$pM;Az!F)dcnu zxfv`!RvxQ34;mi=Upx){K>$}=#O$bsgrq zRC&MZrs5TtG^VO<1(vFks&0#q#m5i@>xviL3@i!Tm1&hHM2MWq<5gSWJygX5Kp-bU z_MqMX8XW{bYm&OFYJ{e$2k|oSNE*f?f~BIf zS|2W`E(q*_w}1#1=+RhhmYXXEo*|WRU${@s#%M*(E^i25lpCuC!uPA=)yDvx)W`I( z<#HqV&KQo!>f`b$h=i`_R&`5|s%{r7fv43cq?YRL>eJPI(fP{La&{~YYC(I|!__0@ z=PH`3$Ey3}lhqgFmP)32GPHqFjMQCy4OSKyaYY+meF9HGudwRCxf(pXcv&zRVqz$k z=10OKc+wvurip2Uh^xd^L=dyYEFy_{Vjii8?-Jid6!AUcdq_>ZLcD@B#B0QBNK3py zynzykH;FgVA>v2GkC2YoBDT=m$X>D+C6aw)A9_w@R+&+fYF)LC-mcnEZJ=b;ZPjh` z4%Hpi9h9QlRBfW?Ra>epl&ZR`x{Kba+E#6&G}Vr32mKNC67>>Fr#?r04!w)|JoR~$ zL4ASx0y<2+OudXUsV`DrL`SGEQ(s0|)K{plpm$SWr@oG|sW+)N(F@cMsUIRe^&{#> zD2Mtn^<$Jv{e=1n%And(eLtFzQu$f?d&XCp?fSL=~WovY48ZnZ&eKpyo`^-;vC3)O|lt2U`k zh*KA}7R9tLX@r}ec(EAgAkoW`C{1z|x7BBb~FZiE{7u2+APW*u#pc`>f z70PLHrcgtV$a=YenUKx&h;Pg{Cfj935M@sG!}kckAjhRO`IuZUEqHe19f%8BTa0cZZ(Jr^QLRPd+OT`&Q+V&}Df{zDO_2lkydLHq<6xlW)k&@~XTp z-;wXir$L6Hb)UQoE$>5l2yLHmjdCAdA4X6&E4ItCSm=6@32X4TaAG*cI~CT1)8UG@ z=x+aBI4hhRstJiy(@AWo|$*bHwJSshj~0xsWu#x z8SZg77OwVGkR4`fzQy0ooUYn|uZIT_z*kDz%1Da53CL*9SMlUG%bNDBQy} zhR=8(`Qr3)xIa9|%yTTXI2RrbkB2XX>hS1c98*xPij17hO~COm9(_pkPI))wS?Jjv zo)g4SO?V-^_-uSw#6D@8zTz7TufXWc&&DRyc=y9=zIve!&TsfyeC-??-h?qXLytSY zG3Jy|BS+|w@OHR0e2>+IV?wj=0LIkFHHwq|+u{B2BN*?2Y>trhvbRB=3_bPlL=qxN z@@gbClHq^se;mn<7(x|+G07b%f?ii5CBD`0L4=lv1AX*zpqrk3HYY3*HbD9Az^52a z6dCW7sF!D%B)U5y3)7*RNJXRuq%P73Et(^3LYq7ryvihnZgCS{KGGRE=?!|Pq)oXG z{0Hb}*7da(oa;ct1p+-E-%tv~qbU};^FcXm>Pb0Qk_r}gDk6{Nk;v2VnJ5)Tp=sx4BtgCt)k)jYqmDUlhv{@GEuC)yr8;bG-r=QeMoyQ3#$y?0I?4i1LIXt!`OdOF${ zy2Ts0B7A*$*10KOjB-&kmx|*tn&w@Io&_0pXFmKDp58F944ERg|NM|S1OSegGej)F*PaKZbCA)~|5;jmG<8rh4v zW4wGfnijo6FN?>b%ducA7ORfc(x-#_-UZO41((o_631mCtYD&^nFxs?(SHH-ksR9L zCSb*xi#2$sgv-9!Sd(OowZ=L;L$NNp-ZK#E2~E(maQ!rhzWvBR^sIj%b|%&jo=_1R zjGc>(3O8fpu}iTjX^v@*U5(9!r?|%0LTu4L?Olki#MbEH*hXwKw#_wqSpPtzCUy_% z`$3>4oDxon?Z+O$syPxnC@0GkLNk0QrN?6g*|*h;SKfZqv+!(2Ymv4 z8kx~&0DC$Bd436b&=mR_V$n4a4v^;(@+sI;Q2vUEh+aplNK$ZUK*6Cw1&4-|_aVy! zMI@mJkqoHwMZyTE^Zg3mY*vuw2Z%5r%@ze|eo#T0tqRg?Q;_C|6pYzUd<@X#UlNmm zF8@m5G5=cOF+WMV0bPCy&}A5qV3e#t<76D3zZVrO`Bn12kwfTv++%h_NRjVbn?Z0d;m00jh`UA%gggtVBrdQcHxa4yYr8g(Pli1}9H zLzrnL+A-5gbYP~H_-p)^B#0C0PpL-9iL=j)nL^PGeS2b0dD&iZO7d0;uS2f2q$BBQy2$z`AysViZzKP$B zNqkH5Wz8({ZOxqKJH)G+?`pnJyrFqT^Cq#OpxvM2H}w-cfOGeVT?OI(62FC?*aK|) z9PumdI{@MSi-K)`2iUfWIM6n0KS2CX?FY3VA_?tZYP(4de!n7_qCKTOMLw@RqwOP8 zF@sFLOZ#o@cgS~ZzpMQ|nX7$8`vbC2yRKa)%d{KXpO6l~w%eo!?~NpR%rcV#W|>J5 zv&^J~F)!)In3oJ-%u5C_<|RXzeI{khK9gb0K9i9{Upw@5GKzOLk`;$$4$YI5hrV-Y zfjowHGm^E3ZX8-9-;4LVll6yQJM|%adI?m5w6+3*Mthepr{F(~;e} z=XKAMAHnFGJcZFW`B99%$dfRBokeFS`|xkTke|Ri3CU0DJUX5n!n+5_ z^SXd8NPZUY8zf)SMRYN86z>=$KaUYQIffBB`2~#7$#IO($(MB>(shs%x=vjec}aIt zcbfdF?u@RFoB_1{aq`=`Pw38)|ET+7_hltbp*eWUzLmB!Kli6 z&h?x}Wq6K%PEZ|%^>6?U{{ej$Z7bzD<*!;9VKpp+bxcGN6i2nF0kZElM6&nAOr&CW z`6>7$*)3-Q{Jbru!ns@g2z-+4ikJdNi~In5l0|3PYe-ep$IkLSP&X}-P z3b*0gO<_ye5pLQu%tOK+ZY4Z$t_hDl&B9ZMC{m)%A&bdknwTl-#RAbR+C@g>M86mj zLpDWO37W!O+_BWvQvbYMZ*Z;NUaj3f^ z-gP#KyN){XK6jfPaazQOo@SO2pGe5jCTSe0QlgY1r7QQxcQ(UyIVlUS7l(6jcPUqF zk&I%yWC6@wCb`8iiI;-rA!eYI@{S8PeNUvAR4v?+YFVAL$3P~%wPq5z%TX%BGP^UY!WyYs1FVC5TTvI}QUb zjtoz8VA*q?9RW|$KNG1;vw!CgyMf)neer(aVcT{ur)vhJEYNISFlH#3!Vv#1p9-7!E@LvAO8h3ba%PC zta2zJlqAKxh}L0CJ0?8Wg&wR*T-WY8uN)7vnYZLrv zHbcL5UxLN#ODb-L>ur|Z^`-hU^c%kHoDxg2&Fp^Y7_`(M-OEcUE%6!bWxgU`Np4GS zx83cdtxfh;^OQL~FWqjjrklr0Cw#0=_T49s_{+al=v>^h}IO}wElp*XU)hLjb`tz5iDrB%dO>GdZHe%~LRQ4qM)6Hrj0*uPY&Q#KNxp)tr)}dw7m~vSYAp z*4hIa9M40(lDw2>^Rt=FQ+esdC#~rwzx!d?YT0UGwY{PEJfG&AJ=*K5<9M6d-imFV zhoH|1KGQsv+ntwQN|r9=HRXtw2wW$f*YgFu*^pq);_c=vYZI@7!jzJZMSFj7l64>S za*-R%Lr1Uk9N74gX_faoBiP1#1p7Z9_qh3E#i`iFe0_0SaWnS+;#3P$d_MmQf1GdO zTkM+!qo!4^M>%dU^YbSPyLh`X&Uf>t`9A(^UKu~^aGMA7nk;sHgzMnPiYqJ(f3diz zxX9YdPnyO|_w&*VH2f7CW4mFy0XAlGTliW28h@>rj8hKsF6b@5MTUV{tmy(-_PyiAM#HGBxr<0A;qHOTZD8Wi(fCv5OM{hVBt2* zZf;vBvlJL9!7cDMo#T@2Mqbdd;_J2UJEnx75OYAB3e|;OIc$L@_n0-;Cm!ANo%cP> zpDi30YJ~>r$&3xmQrVf5&pFpiIlFBEPImxL)^XEO^|VbtluTq!FoIQA_OV?j=duqdnuYr=+k z-0?`*bQ}oV!aZTXl(p%FN4yT=qD(mOJvI7mcg^WJEVqHzjS>>Hu>rDeIB(P0l1nmd zX}*jcQ6%*nJOfgY8#nb8G}ybugwiF`D)s^Ez9ln%)^t%!5>s>g#Ei0a8+Y`nfwh;} z^tJ*q+c%v*YhZEl&5H*9u2{tT#S)R`Rzy}5bGvP3-&0%)5`A?xeMyG1#n36rwqq8% zX{?M9D_|8&!7+-DoF`0o%;)lF#Tu~fdLD9~D9&~)n#PK6npea+v5~LOG2|GmOn06{nUiiKjq%#Q|#yon6=^4w+YQw41<(#Pi~X zoDyzLnBo?#)#8M;)>fa}B3=gXI&R}~yTxg7hFjzojec?7+G>eFkL%)+cvHM3-WIpS zo%~&T-ZfD|iV2{%J>O;DfV~TQX5pN%?^zsM8=&?On$ab(g|JWar3yf!5nlyH2Dn%dxMl*S|VPsrbua0rldDF`9yn}*`3=h6-Z{u zZcWc$cJ*3&tUWlU%k1VU{f5NgXNXNNakgtEB&BBNb8%>#7AK7{Lx?NXny-PywXdA~hTI$OMz`y?-D8kRr`SELbpI*w!g zMq!8TSmB&BCS9~~cBARO`JDL?#7=8oFo(8VjFB7>*7}&~EY!O72k=berO5(~dC?v_ z+UD3d^}z~QV7hCK*|4iZM_b@+CkeHt*Gp~WmckwAWj ze3f_`=I4oY$d`UWm=$Kegxn+d2%Eys+sS`cA;N((B|=g-`S&WE{GZ}XiD*!m`S;;W zi8!t>^UVq~{{e-WZ&8@}4=T)jtHR9xg~H6YQJvHY;zN)-ogzB$UT5ON3itjp-s?6>Nn%EwRAEM)q%`l>yq{F#{EF0QUe>%xYH>D2GB}$e zU6?;7-IzZoS)50aKAcC9JkFy?3FlFyALmizi#U%Wk3k;QN4`g4$a}Qk*8YS%gL5JB zO9}@*rEuV1Q#kNxg#-V(!hv5=IPh;M9Qaj*1OEqw1D{bi@NeQB*yJqUfldBEVYYvy zFx$5kX8Xqqvwa8ez$Slk=;yk(k(-cBJ+D&ZY)X}gvnkbcIGa)>;cQCvcAQPAk|CR_ zP`v}^Q7R|Sqf}m;N2xfRN2z=`k5chCk5UPcM?Fx9knOOlWyo{hr~0A74F3;>89qP+ zK@+2Y$X?Qx|HGC4D~nxF;7moT0=>QkKFNX%eIxu#btb~OBz+Bhk_8&44vvshXNn*) z|FJUxsq!Dt2k=Se-*al!X`Lcr?*VZ|EE>+e>3FjeNDGU~zlpfESqc0ie=qdUtJx5>Fk3gRV z=(7mYMXzM_X7w8P=rwwf-k>)#Tj*{29`xAHzd&E29~tJ1dvMJIC+SRZCOK1`86eqC zgR=;ZGT>*4lZJ1sQ*_GC3TKV84(bffMrX6L4f=FK-AQP73R+_6g)#u=Dx5>ml7_k> z=lLUU=LL`n=Vj+~e%s+K=ZtecC+NKHT*_~A-gMr|>OGQmc{ASDEAVTz(tVk~5Vv#k4amASW1x>3)HxSD4c|b6CR} zDNKZ3fmVIYS$c{YhNXN&8OviB!5DK9Ml;D=fsq)VjRStxFtf}x&yKT3Ri8;oPNaBKzF&CT&?t|s{{IXxq4h@T>Y*=*E!cH+;b7;eI8b2qx1-ECm$ z40osdr27=~?R5{hhur5u-xcl)?g{s0@J0jn3)h-^+G(H?neM>*$yx_j=-g3^nciel2x3C9hcDoz+X&^03z2^kI;OW+nFlS$& zJ$`!5a~fvU;py}A;WnPLo?-V)MvBwm8S#vHE_x=JG0zq7!b#7p=b93eb)Fm84?WAC zRcE7T9iL-XJ$F2JK*!iy4T_XFJ3V*Z2AI!d&qZjr>$wl|(DMYhU=jFc26Khg9Nsc) zvWaX8o6h*zEatSU)o_N*WsNvWvw960*20$2XY%5B9eO8yB%O7$JR4+VY>*yjtJzwQ zE@zHyV4K+55~FdCZDl*yF1ANM!h%1s{qH=<4zlOiQFh!t!{#!lvwGP}N7D6vy`P<8 zui|;r9qgQ8&9KHUl$^s}$S$%gnSGgk>{`YqyTNWANe3-O*lqS6jHZFzKVoDbWv?A^ zXU5qBFX>J2CV5j`wO+iIWqWjnF2kHR+iUO^v6t9OhJJ5}m-e#xJ6;i1qinCt9P?IS z-}lyd>%5IFjknp`=I!*J^q%tedI!8i%xPE;&Uw#!FVL-YN7hzm{lBfjE)8CP!LO$1 zIlS^J>u#5OhVgqRvU)Syy_ez6({Ps}?~L*ruivM>j}Y|=^$H@WSE*Ow>GB%&8a!QI zr(Rcnhk`ZX%( zw@^X9MGE>YR?x3SLBCc7{l*mZTcM!eN(KGK74%!Bpx%u zuY!K-6!iNi3i_>A{^#I*qz4dhqk?#Q{ug^^8(vj)?fdn-EgA^%ZN-0K~A}2*e>Oo3r ziX4g_#2gMH#pKTMn>p>dZ+-6laG&RX=#wY^j6K#|bIm#Cm~;NeSZilluUT&xt9aVv zDPgn5%fe=jSA@+PyM@gfuL_$r_K^2KNZ!Aly#HzP{{Kqe{|tHm_l3Gy9kwY=ic6~oT!AG#8@)Ti9g1%*9BXOzwhoe7;YtZO>^ zDW-PKrO>g^Y4z!R$rknLZ0KONv?$El>#?WSUjh&(9(qo~0Bg*nK zCGmp#p;e)Iq1K{V1sg+cp(CobCqt*pHjQvXAA~mdpOjx4Y7TXTE|tVXona?*G92vP zvt+`c>3JxZV4XhN)8pN-*mu};Z^P;>Z9>9Ml*l6d%B_(G^Pd^uu_7$5N>J#&{vaw7$iqJoo=(!3Rs z;Wy08I~o}k3FWOQnpHfhsBa`5$&}8Cj4Ny(up=^|bU|cNX}u~}8<{42x3rNysovzQ z$v!n={D2+B4W-AFPW32%ujGG#S6#jr*{W*G4BHKZ-m6yd zgOS6b=0VN9dq&>r@AX|2IZ-lh(7e*t(zcQbrAG!VDL7f!Ug(6&22Ia79v%}pRWfbl zxNAE~Pe#s`elVza!OmXCOFQz{_A85=?{z$HkBofjrP9u8J0cguM+@8gpD);0c&1>w z^f7WJXN~aOf#s!b`L*HsBgX6g<*f-XtLWW3K6nb8Tru*Z&1Glu*AALfF|uE+19?W(4E!*VMwg-%y=MxFkXqQU&k(6)m5aCD4C#`)R?@MXjILboa3u`7nLq8SY0r^ zS9{)?yfq~~qZgE)#s}6!FUO1d20sExjNpje89|bS#hTH$e_lY zmJ!vlz2PxKhYTH3R2ADlbY$#cVf*!MMcc|34tu9!*3i+))}wuWOGTzNRhq&YleNsE{sfw zT^U#-mXV+Q+`KLQ#`n8iG`;VHxK-kn4FAtK0PbHL9~mDVEh|_MYK=$Y$#|9K`@LG? zw?_wS&M$nwXjajzc>RAee#P(C4cje@KfW!#Q&_!PdzJr%n&YkUw)l}yYrz6x@$u6Y zip7W9=QJJ%=|ZbEB7&1!W7b?YOohSyZ;TY*}e* z(E{b+%8T=h2E@bV1^v}7va9zfVdlcflktIzb5@kCiA?KP)~_s?8Fs$-?(Drq+rl-% z&49o-QO#0FKH+^DNOw;E4e7PSB@o@BpV`o z%Qhufmd`HRl3Z0#KP=Q|OVJR;-Paa$lx;8DRlK2WPwvh^N6K1qT9O-*&kt(rQ$Dy( zc~xoNrm~}D$IIHw&Xg@w>t%cC^1Kz-^e#Ks&+jw7>_YjBl5u61dzF{%x$e+4ZG9IN zbQC(J%ZC}IM}~QYPSLF7)?qz|gz`*&xXr}tqPw} zEBDceH%PvXXggg_m!YVH>lmin!|kDTf6r?FJ*)lqtoHwxS#92iVcHK1T4#{I2;NUN z^=;%IfGfb)cn+Dftn=XWV9Z#r^d@DV;@myRb>Mo+oI_s5QS_F)N7ghc>FE6JN9f~f z-k4Uk)M@Wj^VhUr0&@hN9>^tNK3Iu9Drjy5*P^+BqgjHkjeG|D9rz4LdFwFp3*ZUx zT|sXE@+R;X;~@S0cjU*hMkDfe zuoKISLf(el2l;#0DhSR%lgG85r)CFv81i+Lz zidUmQ26mu%77U;{4$cDGL3uNe>0LvaacCA$8zbv}0nG+9e=s&G*+Ku$;7N|^mQ1B> zAJE#5Y3;3`9_u?fN?)9_U^&Prd*1}>(ENlN{zUmb=q+SD;(d&FRhhTZ-v`!k)*5h| z@nwY%Qu0mwB#uu`qlLd<+<)FZcXp_&=$7xM@2zT@nAR1Jz7PJ9qvMf3V66X%UY|nq zC$+Dc)*8x864`7+zDmzBbDxqMMQ?AT=3jHPKS!VAit}jauk}nZUHK1i$Z=46LZ#@{ zES8oxgD=xl%6PY9tB=skqC8%0F9H7*{ZM2VEXF411hWR19qQc0)boJWAU{dT_rdRg zJ7q@LSA#DID*qS#UhsO+sQvL)=7MMvTxArRCfX3wbJpsij_#mL5Y2YV;H&0l{P1S1 z^eyZ&3^@&IJ1@a{?;%^r2ap*lZxEW7(G*g{2xRTmKL)Sn>ThxNr)b+J$Uj2Q%3y21 zV#VuG^q8glQwO(bos;Jy{t>D+iJfv*arn)N2B*~ z%Bwjjr z!g{!e+Fl2LMad#8_9f~cL>X;i*PN=(oz%HOY3`)t-p;*Bqj$hfQiD5@k~MnX(d+G^ zcN(zCc3FGvH#IE)~<5_GbmHRkW7<*IkeNI4yjJmeiXeg}XTG&92WX9NxK8 zX`a<1OZlag+(LWynM*-A`cr9xGfv7otVqtI)YI8{t+ZTh=*_{lD@3;LGveYEolEeX zjr3hCd;+_Dv1>QGr-3KrDcsj>?UhPiB=xxXgT=mS9h8FyTKC5+zQ@-hIPZ$ zePQm~%v_fp!PaFKAv3-%dzP!)!+Pj^71RvvE)YIxv$8pQrFsN;A@VB5#?4@%yEaluw40#~E?1^5TbYio}NKSOP>Ux#?X%^=f9 zn|8V|Y8Oko_25u&4#>*y>e^VxoD*pD{)mNbA{6H`H~=gLsmIv_vc5T*6=-{60b55; zT+6-<{UPo1;L{*GvYM5$hTxgbF7)hTHY4R=H;WN*;CR++l-G>nA@C0H3*ckmaaad@ zNv-6f(cFF;_z1|JtD-sCbK!C-7Q2;sB$#1$9*6uZupRt8G zKdb1*fQyP|BIRd*nz8>AcoD3i%iG;&1y7Lg%#Vkvww}@TADeeK)p(rVFA4pv7RXQ zE_jKN8e{cUxJG1W3bpC>!1@#yRs7cZF7h|P=fH=-2Vuo@I zT%deI>Ujsb9(gxdi{|^_quqWe_2~VP)xcQ~5*^sRz@8v^42wO>sqbFR#2@r(0MB&j ziwoCs;EEPKwe*@f96gN4h8x&lMx$34?d^KEf}J`#zW6D~s;HQ=)b=4B1sk#SuBTTX zVsjU}S;XTOmbciyT>9m46?YnXYIbL_YqJ;F#10;jy9*z7nU5~)+R}M|kCBNloOh7f z7wj84Z)Z&q4Xikz*HzYS>p_mTb=I&ViC**1D(Yl6ab^peA9voX^rO&IvjtzWbOuSc zP)E3PrA|xRoL$>F3Lfq}qiXmPdd)FdA1u}fOUG#JFHT=-qj!$ZoO~CVNYKUp9t_#l zyrLTJ@jlnpHh~XV>^{~k`d9(h2%38+f4|7~bZYo4sIw(;P>&kpXi>(Ufc4msUHs6~ z92>^sl4Eh;JWfZq#p;xN3$0@BbM|tTuW)W18Z2z<{T<%oFk4+RdseX#R2se4Grl$+ z?y-_v@F-Wuo2+uK&f5JWGI6EN7%Aqg`WqlR3)FWmP#PbZ+)jX1(Pd|}p5*9t$n19( zOu*8a6TIDF$FyjPbAfRc$itp<^8a$go}m&HDA>Aik6ExC;=!WIHBB1iKaY-N2Y zM?JklzAUkfbptZdy)~N}mVw1`Ef@cEHg=V(qj!nkB}Zf*>iUI}^}4Ea7mT<|Jms+d zczBu%ckOr0TYwhw>otjC$i~bO@j*jaXL83foA2REwt5*+J07tj~ z6|MzmuolT&aN(tvwz3+D__ zn*-l)Uez9M99M1Ayd6&Bv71=ruUu9JPtS-erf*1oK$UmMEvtR1R;&v45L6sqPJZ)v_W9KGH3#ozeL@C6A(M0AB^a&AG23*MVOG zsmc?+A_`JvZrXrMDR#$2NTgU~} zJORu`GadOPm;$j$;BFARsU1pc!2T+Bt7X2+Q5*RX?R=Y(ThNaOhofl+M}QB39Ch{H zx)=Ek>UkghEx1*33m$Qtr?Xgkzq=?N<=!So9rgw9CXTj>-XbFKbcTx6TX8dye<(-o zEy9N#%>aw=%+DK}iOA%N&vtv}d8KJZ-UwEJ*LC}+I_lhsXFd+n{y;7EIZa`$Q8G76${NlG;yt;=}F%P?upuyuQ?YimOaR(*%AQ%_Qn%1_eHY<_XSa zUMSBL4cUGNp6QLk!Z6za%*`XpR%54p*k$+e;QTJk$D76|Fvo4pd%5pvVM7Nl;pprT zc`8q@Hp~JKZ}&8#gP(iYHo(5@=&VQ>&u7Ff)@qllJM6hGc_f$n4lZkjtr^SRuu5Gr zD6&gV$$o*1VvF9<$hJK}mh5@tf1#w#Fkg%2KXg6Fw^8zDuoIKz?s~We#@NuUhM{ zM%hHEb`zRE(TgT5yi{bD{D8-boK0}!fJ({3{=38JhNY=&v0{(donqNts*4eK9N~2kQ4Of|rmB`9EWDFc1 z{ZBaSCFGwW{|tE@cpdl>`tKlnpx))zQ|CT3$HBwk9&j{R4bB5Q^a_B_)OC&%_Cn2i zMe2!%JPzvlvJ(7}_B!pQoI4e3TmU~r|0y!F##*FTHm>ywN43x21yaBL3}qG~e*q+8 zX)_b8bKpnJL>PD$YqiI0&C<~mJE=?d#=*A(tTP_7HA~+Y$Z(J5Me9LfFDedGYh71H zyiV>AS+9uRf~i^yjnmTKPpbscyxjExF>nMr0!AbyAMR>5{&XY^C}Rq;c6Jo?Q>ks(hkbW!F8L$XyR)YiqU zyiwZRm922C6;+y9ox|m*+&NNqlZf~+^Q6S!T`!B?ERZ$dJSzJg_GvUf5pIutZnf(1 z{D`dcB0KZCTEwc-66e9LUsFRL^s=_hpv{%sC47px(}R+6$qcBGqu121jQho3T?Kx2w{SZ1(j;7NYq+c6*Gzn2cAGc?<3N53Kq%aG=6zUGH$+AB)cz)#7P* z&MS(sn%2`|H)YRBsvdH-ik;@lOc778NAO(A59qso`sKXwfYf6R!LQ~k{mb}s1HS$5 ztU_zRC+PLdSU^Woae0nK#r}uc5l*usi1nUS5xnFmPSYMa_qDFAhQxY1Wc9;JFVcpL zwA_B6OIqH-+(7-CWUQ4ePvh(qy|VV>vYK^WCmzoHT1WXOxb8=^VGA?p zcCJ1e%?sxJ>^mZFGw)LRpc#{r(l+~&_@we2SpjbAoU7#L#J8>Iu;E#m^-ejOM#}t( z8F7S2?KfSGjJrf(&tk(xvN9;2xq$V`WzRA(*KcBZlcYTS*c#9 z7Y$vetQ9h{*2~x}t818&w|8BmN-hw~+wEN+v%*vecD^XH1A9J%Km0Q`f6Tl`$={=f zQBs3bNIebov7VMR8KaecjI_{MEvQ;mN|_n>zxeY>T6G`o|5n!`g%icw?MKNnJ%YzR z&J0SiZa>D|{}tfRy3VP6;cKi#qr0XV!dE3<{W<0ocS)>s%$+9MFv<9(tk{ff1Na-R zehz%CYZj4+YO_^iZD+n;kQI-0?=kH83}-#cSp1Hayq?HHgA&z%D_TyF8A*7tEa$SKp=D4Zq^5RUjE^2i%|@M=$M^pkkMp=MZF{tYWxXjFRMg13bOp>Adl7 z^kh5&wBOTF`F?CmWa03{j?*e^%I##_uf@*9uxh0h`D4m!2B`D%Iwz3AhKx~wh%E4J zu1Mx5K$bF~Gu~LtB_?v&i#`3U?_Q9cr#pZV{DA8=V1e&o4en}r`nebU&>@1bPSSUt zJqSERd7W*}r7zrPclB93KNci++Jkr@K-}SB|15ksKwKFhPm)E3&?Sf9EThd~;?Pxs z?f~Scke}2sFZc&a{vL}l3J%YhImDh0yxr3GGG0WZW9o~XOYXvkpJ(Z30NQDfoP>1qj`>}+8RXeL3GxGHOjjmpSeu=d+=40^1q{B-1o`Su?BW? zmgqQH#)@H_{{WEw06yPgG*z+g3&QnkN1FIc07EL)2`5zsEk@5p#}UN$vUb z(SHKI&RKn^=Nm-0%v0xWj{bsPFcY)5C$4699l1)@ZIFBVS=c8_KaInaOKu!H=$=mG zDzAX7EgtJzfL>%3U^ji=Z53q(fM249dy$ubw83ReJu(CCbKove+u;q6Sk*hg)$hE~>D^429HcC$I_e(d&L{NyMx#lKOrj@)(DLgzhhL(gj9yh#l? z$iL;fCv~)ohPB8cf92t&P9Mrorv_aHo4DoRU3%pKxtkmqf?nT+>_Pb-aV|L!_Zpo` zq5J`j==E9m=yUZt##w#o-6_tRhDJZJGYMPi``Y@Rpni6jo+^GNQT$BF0JuZ&a1SJ- z;*bHeSt~5|1xw59To#eLjgL9Analbq=m*h|`EkgV1@NT+*#L(uW#IFy9(tz#0A$`- zI`=~C@8nWa?`z~G+&}7)=m%0}3~fMfldCaS8k_$5O?dy@Uw;4QxA^@7{vpHmTl_=* zQT3_WKcaA_LfhZg{porCu==#Y->Uvvl(W@YNB!gK({lfq`n1$<^jE7-izxYkzeGy@ zZ@z)|mv8RdvsJAAmv;#G$^ZImJ}Wi)>->%WX4Q_JswMmUR=>?Z;ve%*`ltO5)NhA> z$?r@%{?c?Xos-T>7y6Cq!T!2*nZG$*?(a*F@sFgVY2QDcuI?^*GF_G)pRP$yNl#7B zkauFG=cgB@7pu?mX<2$jx+yL1GuxEjqDpP24M)@H0YCYh8 zkUpg9J(@nQuHT+Mqpp80eIb20V`RKc&rEKnAXAhnRX98|Dig}YGa0`zGfwKvOz<~n zCS__f(=szNcdHtkb$zPGote3r2hus2MSfdmNv0vQGP5ePHnSn~yehdhvm>)x^+nkt zvp2IpbI@Ks|Qw8~LduBi$#9#hlvt8y}<{>!@`24~{`tM@-JelyZD zs&f8^H$mj3r&O&`y7lT;-UzY1YM1hob(JIKH+@w3(dnu^RV}<1;wYmMuR88;%UrB# zuR2q8uIhrk2V$%@wr6H-I!E3EF}5gEn?5(TbnNi4qbe`S`yR$-WQ3Hj<&7ODZ+aM8 zJ9e6?vBlq)c}Kt7!EYP;fbzoAmG%BWRwJhRgdK{^HpStEX43NzbmHl|GO@$N#oBT@~!Owri`I=((O@xmj)&|J(lY|99_f zHy4%Ar`%Yker_-tj1{VGc@NV~d^{mY#6??a;tI4-xqkKCy##@&XrlS`5 z6z_gd^DWg3-%_2*yWgi-Nh@XCX{D{S@l{JXyfMQXYgHRxvp#2i&iJ}D-WqSrvc712 z(fEdSn{}HpoA0yU#rIj~@fM{9-lDXEcf~)-yOdV)uK35S7OTa0-1@EcTVu8Lp7oyb z1pnP;4gcNd$JR&IN5)#~f_1@o()!r?*jUH^uX&0$%&+GS^H1}J`3<~b{uy}_lCg>R z%sxxNUd_9Xa^=nTW?y-;y?Kqi+1|{PH`|-}@@9Lp zATTE|$LtrV3(Ph92kr~ZHwOeB2s~g8417EAZL>J=-N0gVkbH;LED5|C*k=w4ydHSn z{7j%N&}NPfycu}YyfN@r;4O1Z;O)Rs^CtOjs~MK>wwe+7ZmU@#-(fYQ@*P$)Cf{K- zCiY!{&X#9|RvU?+-Qwo6H5lRl!x}w}Vdx*O?20>w{05i-H@2 z8_oLQPl7L)-wnPPe9>GI+#cL+en0qf@KtkZ@aMrj<|Dzq!4~t;;OXFLvnlv~@O|?~ z**9k2WUk6iXQ$04vOk;sIde_+E!pGEC$np^Ys{yzr({nt*Jpnv`zz+t*>_~$VQ%OZ z>lHJf>6Ph~k?$)QO~$sr?uiw{|GVG6xsON7Q%S>)mZg%ZD)p&26;jwg6<4~xsp0Cc z744ads!v|3Q2n(kI#UtDuDF!yt^QgS=T&*T;;fqN>b#2f)EM>Yc(OzN{oAX@U*8DS zsA6x`aqsL^;@rgaxqQ#Gk6$=<4e)TdfMGBq_dBUzQ2ovKUCPc2L>PAyBVNHwL_q}Hc4B}b|fL&O%T zEvfCQ?5@OksH>ZtT6bu@K6)t+3c>Km<&pOK&B($u-cK~?XC)aB%4-w><% zUh+udl;6|OO=re;cr|4tY54wX(ew? zT~KU#s~U?1Y782c#h3a!{N1U+{$78-e=ynTA68iJzmr_I2kn|AM&cmq-@|!#+ek5;INJsp5I++TpQ7KPX zrEg9yPft|ia$d$yFg-c7A~{c$KFA2wq;FSabS`l|zAQaGJxfN2pQ`knRGmL6Jukf= zy&!Q>#!-#p`Ba_qkN?Kr`G8k(mHB_}{JA%zX+VgGA%y%R2{-rN%$@&pr4&*cQ%Vsj zRzwz&rdf)Z#u!=T$1jVK^$7AYc&EFw~5V~j{+M2cw|5z~k?jV#Nu z7;)e8eTP5wPgj4>v(MwR56m;~J#*&FnKS3ld)_%2-p{Nl;VBN?`#klYX_Ru+)HPGr zPu(WGZJxTD%ClG0#MA>fNDA~6C#QCaClW_f&tmIk zzQNSp6nkmv)v4DjRC?mUL?2xE#;`KYO6F( z-KXx8a@Eu7X=%KAMm;0tsb|%*Qoh=)c1s0nkJ=*@s=aEjRHXhw{e?6^eN}x`Dpr4~ z{!%JY2h;(nR2@_YrHSe#^^z1-uc}w2GWEK8U5Y`A$Dzd&(BkFL;<|R1c9)dY?$+*> z3~jhJTr#z{Xm61$ZIm`jvbDErZfwvQrdWJyz~w& zU(1&!X@y#$bdNScn;=crO0*K`UM;Fcr72oWi%C>)?Chpcud&B=7KoNOmAxzj0jVvgZ>v`==XIn$k4bo_`j-&thTB&(AH zbj@PgYbkw0a;FidD^@tGM9M^hQm%14d%N(nYUMavoMx*4zE*E|TWxj@(|*j^luWl9 zoicZXNZg#ginf4*NGTUu&cgA|0EpBVfarc>v-Gh!%c8;z) zg6*JPR9*wms;8XAWvyb2x!qPN<$BKT7oJmv-&9er!gH$dn~LX}?&Uf$YLibJt*h_#?f2ePwflN4)2W9?DYsBlA%D8Kn?K84=@_>>lKKtie7C?~ z;T5^9{wlZ0U*oS&R7S7*oBS=tptsFk={LKUzr(E*%z(0LCsQy3{9~epoJGzezb(Go zT@ZL5J?mtNcBCiEq`2PXfZJ^za}28Am42Hu-^&eX0$2U(PMV%(m8R5Gddx|UaCW3d zr*hZ>X)56sq%3DsDpkJl20I`zAm{hw%^l5)`EW_EGIvDS=_t1zE|3m+dJ$lC;yQH_Xj9b;B(l%z5qNEuMSfEV0Xd=5n*qT&-7`>&%VjQ|2~vySa;E_L%$4 zL*`M6Z!}Ms9cCv|oH2XMbw;(hysW`oZJtM*xMF)E&Aea^npe!B^5f=FOEx8 z+pJ8z%F0R}HXE&ME6*ynVwPcf)?{m%HQkzJJz~wb7Fmm}TC0Kf71kNcc48KhiH=en%3R)rYbOraqwSp7Z0n+3V3*p7k_+Y;lu4AvpnFZDvQ4KFWs4HomQ`z~tOk3E zwZ^WrXIRblY=sczs!OV2d#BxMZnOIAedf_bt$mR0xlf0r^>H6+nnvOO6ns=DZI-rb@otCSm*3_4%yY_uJQ%t3+x=T!_IMz zIwzbCr-O3qr1NKJ?{UsM7Yb)MgJvVu(l**UoOFzA|5z#)hEq3Qq>~5;Jc6X7x*sXON zD3@9at#DV_?ao4X4YjaAwOs73x7N6uoLqN{mF+gWJKWvwUTcSYz&-39bK9uCS5b-` z?n!HfQ{{HiRmILo_iXeGTK$k+7pru8sm1E(sp_42>$=+)s}>{0JmFq+FS%FEPVo-p zrJL*YA?u4!Wv^+22 zSzgMU;#GPxtSoP~H`iNGCOcQGK4-sIo!DVidrKyEdv)G2Z>85%c-+~>ea~Fytu3G7 zZSXdj+q})RZKeKMNBwh~z07MVYlv0qL*`Mtnp*9I*`rsLT~DTYI}=yE*75;wpG)J& zJLny;vc2Q(ERSl_JLR3W`@L?b$~))vdjp~$(#YK5WLR6g%ic9-p)fG4>3-PH@CKYJ zd%zz_W46|Ar`kX49`?sr%}$1&>lgV^U-unXf$_)&3l3kLWM{ zJb$6t7(H(`x>v1Cza~}?8=*IP8}v#3Qoo)?ZHwLFFQ>iHU+rErJN$M2#_}cpQ~oxy zlXTNMf4fl~JE#x&yZk-=e*ciyWG|qRnPv6*M<)*WC#V+c#JPB*-{E&gm-=TCX?{;p zc;Y#4b8KJiV7xwF@1OTC_=Elxe<&q8+mdZ=Zz|2)lgdnHr?T`(sq9o`-@^XzK>JdN>0YO-CInnpV6YHE6FR_YON zLo(YOOtz)wrxyA1Qj1fyPDiR?Vs|Rj+l&#iv1~8Z4|Fgck^W7sptkK1nwR1and{tM zqdL0U+-_H=R_Rr#HFTF$YCUOpS^d8H!#kvxJEWJtI?~H}Y4a`XBfAs(n_5Q6tI6w< zlDw3>Zm4v0A$f)5`J5q&>j{odCoj{{spRGHQ|PEId5MmWCHv@CP9DnXq@(@Gqsb0B zYAxD9M>~`4$?n@m$t{M!OWDwXwvgGnN@EjV5Dl&f^+~GEN)aMHR+5qcWLY zRAlt)oyGtiUpB6pQqf2=Y-SV~u}V4`X^x5S(ytV5)z6!`$(UY|cg`#_qo!^;<|O@) zSrOlFh6@&(VVd=;%$fQXbB;OBbm+>3Ig3U8m^J3o{4+U+#~0`Cr}}A29vFMRsBv7v ztT&fuACGNF_US{poym*&XUxXr0kRm$#++DMxJ1~Q`SXes=JuirvNlQ2MR$qWwcsjU zd$h30+!JjqsxeQLT@sdOq6>ECd0}CSXNu3u51Uu=PZ*cWt{bVMkw&F>B6BEKY01X5 zl0p4S(V&%cas28^j z>vZf1%ga9+UuaD(s5NV1m3i%@*G1dkvRKXf#3dt9b}3eEEh_6O8Djf&?8t&m=HR$f z(MD^9QC+Y;zQ@>LtS1I;3|B8+hD4Yj0t-nPFU}=R06rD=N~j7^T+XWURcJEaEonq>-?? zVohuXQ{7Y)6~%WMDN`z}Bs=($u!Lik$>~OF!lJ@b>R(N<%EGN|7YmEnE|{=M*u#Ze zjeSO{pfB%u(Q@NdUVC(5!8F^-KQm#GowBDC)(I@G|G+%OF21teDOpv&+i=D5wEe=+O77!f)(+a{EqyN`09f7MH%)%`v`4hBWEv& z_KZsyGwf5wIeUhE+U^!3#Xe{E$5ea3m^*$|L9;Q1ZDo63QIW8h3tOC#w2!fmJGlkx zogycy*OUz1u$YYvPF2BfXQneJIoX+K<>hzKc&nssnX}MH7%QC`XQ@*krM_NR;4IJU zcN$9%3mZA!V>(t^L7%g+tgE=xd5ZRJ_F89q(MV@kZfC60*%LkC?2j)m8O*P6$QGm# zM`NvgMB&bI)j4V}89SuUnXtyLE2<#NnU0+fd!^H9?RL&MJ<&bRd83lr)X}e4yAzkn zn~X}m)4AXbW-rhyoGT?A(RI#H_QCkBxZ}#sb~lZ*K#HzfSG3ewUbvNNai7o|R2Thj zCT&^H_T-9ak6zE%A7b+vZZAq2Dfht$Wt(O&V?=Z5NY|Of1N+DI6he?Rbrq zC#>ywjhF6?NM7|u7v`AtUXEAbUM!yLl?p35Hd@%xdFQ;!Sc^A9AB-B{##x=ZewfPQ9a`xuBUeP_5qMPjWL$8vP2t%BXaztVRAzH|EconBy!pW|RyH>)NmJ zmlh5B_5SkmwSHsaPJgu+O~Q^AR-i(~q2h!2OY@hGOXMu_J4+f%$d>od_&ruFTh#@R z_*V-0gk_ydOJ%0A%v_y%AZ>%=rlhiCO=Xvab)Aa2lk;ox$E4`3ytu$xG%jJShz{n4 z3pSP3`b!Nf<)tR4rlqDQ4GPV&N5`GiBf^r_>xCtq=qkIOYOwdER=AnY($p$%ZO*0C zn$(Kadbc>W$!kh&Ni`Qtr}H~fyHk4$no|c-hf~M$uBGq#@quL1<=vOYTNp#cE!U^5N=t^qa2k(5L5PYF< zO}!??@SQ>&-yi@pXZ}!Y@sL#Lj-k1L%Zb@k- zwzSguC1+^sEX}5)MWtD#i)qU%t)*kJHDFs&+E8+a;$xI1t8_Bb)RwL)T~k^d-Hg zly0S)G)j-sLmH)5>6NmSbILjCt;%`jyfj+rQ~F4wJfl8C8s%B_S<)z9RKG|X1~MtMnni8RVj)t{0^ zd0Bm#G|DULE2L4*tLI6h^r?NMQTo+>(kQQ~uaQQ1U45N2%CFU5lScUu;fYE8PxU{g zg!)_cx1>?hwRF-b8CnKuluRv?G|C8V1Zk9!+DOtUSy~opl+oH~(kNrJF{DwlwQSNT zIa&^Blw2*BG)kV9M;fI-D%a;=;+N>WRb zMlm&0nx@&BE#0qqnkQ98)Q)yO_9$@4@N#8`MmT{ zBb8%usiz zo9@*UdPNE;{R+KvssE(zl~ncX>Io@LeNpYAp8GTP=hROxsK27V`ETkK>XpAyhop&G zsa7hLX|CoBW&lCIeWt`9@SEP; z+3Qj*B#3$Je~W!AG3$WoF4QO6ZhBq%O3)kIe&6d7;sdWsNXedf*cbaBcwl1gR(hJC ztKIO!guBDDR2oBE83rP88$g4PuG;$nixSt<@d=zJ2K}phu9QK^> zx)%mdBMn~m*+Wv`{iqA+`P!q%?cE6D?lM|7@J!GCig=7OqY2Cn<-17pHIy9Qj&Ju- z#D0lx_ei9@0#E9JUm~R8TH+CemU^Q{BE-NWkp_=z5himor2%(gFGL#r4Qt?^uurcr z_vap5^#(sf$oUO^h7i9GPyG?pIqF1x0d=Axz6P~gj2Mhu8Dmy{7IF*Zb2$4jWCbKf zZWvd|e~&y-W04O)qMm7FiTLvfzYBMH9CA3~zX^$an3JX)L2hkGkDjA^8d5^cdvPsv z$S~wg^Mwfi4)J-2L7&kg2&2q2M~F24j`)#?L7N6XkKv1p$$rc$W>4zOpl0$9a{>c$ zHS21o=Rt=AzTV+8KJc>48WL^CB*TEiJb)HqkLFBjW#%4Jk(mgJ(Hijac%-vmc4n1u zD{MzCeH9WqUqSmSXj2)ZRl)Nr=;z9pAbDZ$XSFjj+k*2Fo@X4HWLnc z7Q@UH_*UnUg_%Wp2oicy!91muqnzEP8j7^o9w1c<` zqmN0O%pqjj2J>&3c@_9&ho^0({V=nX34}~XRKACjFq>!t!c$RN^mAn%Bxc*dk3RE% zs)BwZJSDRq{mVfQ5xzf}e!#TGEjYUX;SmTk=NWcIK=y;i4o?RgljkY+p_SrzNah^E z&o?umnEp!rb~sAHbuQvNgMKSwm;!`e8n7;zr14Ma8!brFj4+RsALB`T5dTSpzk#z` zA%BT@j5`@p8ILe}l)MxYy^$$Q>{Xq8uFFpcd5SVar!lcS;L7?z{}kav$RPp!xe)1@ zM#VnP!K7kVBvXu-B+2xofU`FfF>KM*p;X<-|19L&5%WC4e3s)!;l9vm@CawZQER2~;d%uurKZS055aCx5KLPUH!E7SJV-eI@Z1@KrV1TJ43o#0cF4pDaMc2Gse~~1E9QuT;}Jn`R6(p_f=58KV>ZtE zARmKD&QwzLRT?Rxe$Y2U(9a>%B@a_FbxA1TjG_;HJXDQ8}J1-a6C< z7;ceV+y(C);Z?{1eKpLpEi6eU)kN5qSmtUn6?51)p-Iv{hqeR%DgwP4 z0h65BM8oj5k_Prg803%$>saO$bO*X+Dth2l^qi?uKt%|+n&6fMgj?8|%mGs{7l&Zs zE9k@W-voVIc+M`tSojB={W$8a59v=KB}R>c)(r7%^)|$3AqLth?TGLo9~Mfy$zC%cA^Dc4giyjTfQ4dl5!ok}+Bpv}xd#kjKtvxnBt# z#r$gKA~OA(S+7h&i(t;uK!yywy0UeR7>(Jp7{y`kU2Ge$w@b{<5oSE@L3}5kZWZc{ zEo24dge4Q=cdH~~pu=U%U-CjcMFYb8=E84(4z7Zo7G4gCIuD~=RGtek*1~L|Ery(k z+=d|08)eiF*(4(8&m;XDgnx}NG^&bTk%l)@4YNiVdN>X9iwZp%#w~n>=%}iwkM=l_FGW&?BEKJ1& zNs=joOmSgiSin4IJ;OY}Ps5M+cF0P|^i+luAg@`4px}S8=b0Ap0Tzl{pDG z3r>RaGsy4UVkW4+gOnln$F;SLTluVRbh%mgXGM|u% znhNGMncqraC(Ar8m~zj$4r^QrJWtEa2vt#L5Iocg2!nk=cCV0g(9b{36a}OiK>RNu zKM(l;Qlj{1KguOcQ3XTcI7OEM0vD`XsU59IrCmoFfE4D!o};Za~RGXavz z_8G`-$YDVm@mx%*!JNxvQ6{D;F9ai9$c>O}lfZsZU`GXP-nR!jBn}-So`N;N2uQTJ zvJ~;?6&hM!n}T>~t$-}V?_bQ1g6+qYV+Csn3iyx#Zwj^zGcy%lnPiQ}{oxXF=JD>~ zzW;(Svn;rWPlo&`WEbLJg6x3&F5;Ql(iQYx5%VCzA3+$Jgx=Rg%!d%h_)^azW&^?* z2)_o&Ts8F1fPW5aQ|8rIKFd7t5r}72Hr{Jwyb%Z78zum=zQQV;j5SFaZ{IS%(ZdRo z+2UeLPl9BoF|R1{n_V5kIwaO%0&Xqd!k95GGohL(?mU|?LyXymOdn;f$aiE8JhPga z3CtECSa8g)mqF`g7B2InnC&Jr1sZE>GPAarc-9*9XXyrUNW=Wa+@UuRhv1W2!%B4o z^Bt2y0}3?Wp+dcaSD- zpWFyDW%Nhj`oeB!Zk6&b?rBV@##xj^2E$FwMLcF$jlHmAq%-%GsgK&HxOE_*|HG$n zmf2I71yrnyDl+cKy!7`5{;h8ks#Rz_`B6OMJK0+{;tkaKcu4lLk9H4O-27h2e?x&a zr4Hk(5QDc=_TkOUY8AFw8e6~6mJ#Mm;(a8{>!KXPE94sP$dq!-;7p`^1LK%*D*pX1aC2wdR#uesjcF2xDbT!~3c7 z6_K+FYd>J+G0Bbjhge%vnH$e57?`hRt}$NGf`$nVAwBaeupX7h?>OLNt3MVpj8&!x zud(CrV#-g@XZY_{n?)L?uPc)R>P4M&gZ~WO!d!X*x5g&qwb?q5kyBF8K zgfLb|nR*@YnQtd@qfKSx&vb6)b}CpWmw9aye`k^5t6o_Oq7JO|+j-quSa5YzoDIXm zQT`8}XfF3RFq)8$!d6f&%G`l*4Q(lNYchQrD}Kr{=*d>p6>CUnJmo!jt`OR{0wV~m z%tUJiJs}J`R{a`?6X3we%xU4ZS*+|agGBhdr;Zu&tt?EwDbRK__TTE9JK>urd_puH&s=?L!(cVN_;5FlU2pRA>e! z{>d0Gq5r^HjJ`0|^fZj|F!VzhZ@2+18O#tFs~qw%j4xgb;+Y6<{q$TE&n#SKYlnJq z?I}o%ZgmvW@VdlrQ3IIwnP(pQB4WT?)%YFZHM9|CbNMA)3u`0{{h;ZH=f5NKcwde* zgUF5Nnx|3Pcc5=Dje-CE$SYmY#$g`yyoT_8kun5sA=$tp|F+*3N252g9{WU) zUbHg5v3?w-U56NGSNU%+zA%%@nW#f>Hr_x`ho+VP6<2MzjhzlQyV8$4e(V-0U4hLI zP;DE8J_&)-sPY`gEB`zmF<+2Pn=Xl!+ufpm5Wc}qH(>dbRKVp>U^&RpPH&*5GZ&rL z^B+Rkx{aF7*2S}ke-2OjPDlsxW6X!gS=5GtSye$#R(OPBJj(YY{@X}D6aDA6w;1fV z6W3MnOT*0VLH|$38lxor?njX4ATL6mfjkL$1@dJfLn|Q{K+b`j0=Wlrqmc4UNF8z- z;&(tEgzSavfLwz#IS5~dJcgKM2yeyr69c?P%k85zmc2_nFlFD9)PTa zM4s12Ln7zj4j`O?u$Zew8-#EN+Q;p|GvnX5oqE%_?crh3HC1c= z9111x(uak$vP?zJ)+GId;qM zDm^AO&^}pgdj4&hsaYTXPG5SL*E;tHk@Mf~%+3AOKTN#$dP~!oYQ0H)L2pvN+M>uI zSso?cFxS2J!jsQE@T*VtqrmI*yKk0O{6$RvI}}rSj~X5&zvtoPDE%$sAZ=9odq4Qm z#gEtiZNn3_$q{;{h>VPi%zmu;!%x&!Cv){25tBaZtq(o^X#Eo(eWIoz@4hGM>z=6p zV8i2dMZP{>oL5GTxpjWd;~#!3{&2$wKU|kL>%OUa?%VE8+DTn^lU~x&jd^tF>dBjj z`X|2rKT@*0^}EFRyGE%Gy=&I&WQjh34|8kpd%SM(WA%B{9=<>C{)cC#Dv}j$ywY(i zse|`9`zHQ7a{`kGW{KDw&-#q!T=kEFLV_TyyeQ9j;L*FZD zZhh?OZ$7jyv+20>$upllSMp`+wQuEijofTa>py$fFSXEv7vA&3b<_WOiyJ-i>Z^Bu z`kw#%^68E(p$i*#eBtSDtDpM7wEN%R_P+0b`6KteWyzvf`X=<(+J`#V#*`<2{kN4L zG@tq8cAuX$Y|_1Vy_&Q7^kW@Qzxe&+HwrTTejt*5_YbE0VutT7 z2_Jah%jXgsA0PXZzx(1d-FwPQr&PB{)xX`-Qu{9t{N@9h!(LQ#UO3YBx!0Gpmo7H9 zJ@?wbeS3G}6I+#mxfxw<SR1EJjhKRz?YE<4GRJ?rqyV6uelyX;FyW30)N z?6OS~rN}N>hBV4fqOuiAQVA86>}y%Fgebpfbd%fdF5f@y@BT5%=bU-YdFDBv&-?ZH zoCAfz^#NT#`@0Rmq7VEwK|nyjuO@Kv`HPW#0Vd-83c_gss_#RRQ2Z2-Bt$QP_5`;v zN~Lp_1Lfu1(uSO!e6S&H6Dy@-TfXL{uqYKOhZAAyG0?fE=h&DCCwY1rW{uPCoxm zXmaq!D+bMrS zAo4;4Gi@>M=s^piv@t=Z4bdSg(-iB`t9a~H%)joQIQpOxR=jR*L5coJt0i(K2`9kl znC?_N+mfiG`=@S}1iX0~WNZMfknlZW<3Ynz^t2%)zE+}#F)z-;q1F=i*pP?GD5F34 z;IQT0GONp+LtN14;=6$h=Q}?rKxc;=;;Bg6E@%(Wo3ivDDoPxkxNz)6#J%z41v1Gq zBvY3}1^B$zKW&T#W=QN>As_axV>8UU=uYL6Qj3?n;(};3rk!@MRc1{;&!ap{&W>8^ zKj zwl>h+RLrzpubI=A58QUPszOLkteuJOFt(V?@=iWpET`Y|DX8%VTd;%3TwbP#G+6+< z!z0DL9^ANj>WAWYpQ%-it$hfs9=TfRD^qLOdV-&EpFi~hleiOyHPx8ws;bHjT-tI} zHzR_0BeGcl=Sfw@BkXP2e7v1%Q({whm$W;?dwNk3`ujw+1?&$`Tg+X1myy*j?^Pcu z(ASmiMuCccB|r;Vl3VtbJG*gbgl7*);y!vmvgA&m0t&p+v4~iIoD@#on>@{ zDI&_O<7-EG$EwTQu{Q(FNPAQyjEa-X3j&L(a#Q`-`x4JG`SD4j3Mo8uZQ=wQbLXPk zd0)QYd+5>SS)IWZsFPPLb!eMg+qma6A?+zrWRtel#nfS0q^&*!L|kxp($EI`Npgxp;!35=EH@ z1t5{%6I+xl3dDpo`nSY(+XNy{|9>R5zx|x#Pk#Ql{78~`-8-(7-p4`bXm3zxWx%Yk z5*)R0fB`8#7kgh9p;Dl2*Uy+eSL7@#{UTJ-X3x2>0L+qUhsmu=g& zZQHhO+qSirZTs&0IVZXICMP*hZPK)9=Syd2M!&H%Hff8T`q)-UVL6Ab@ETT!Uo`D= z31s)qA%8kH>QqlC&ofl$=c-YtC*g9sR`#^*(z+kvYS!$2 zuBEx_C3Bi-#+g{1!N)5ferFKHs6%fFlI#e4A!CRYO;x8P`M6A2}lwz0=q!Iz{ZeL#AW>NhP zeCosL#6A7U=G5mA8jOG);0~6v<$PYmjkTP&Fu*6G{}mc61Gl+8oWIKz9G3alHOOAT z9lFvR5X)A5C}4bEp;r_n;}A=%rS^Agi35}wNM#dTZ?zj;YeVw6R%Wu@;&?v0yA!j) zQ$wEv$+5Re;=m%)p?Oa$!XqsGF!k#aFFb@G_D =JiiKhH^#1hFKyjPV=)jYN`x6 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%0DgSih_yx_LRqBZ}mk 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

gu_1MhzgYv6l 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 z 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 /* For addresses in PF_INET */ +#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ +#include +#include /* To use ifreq */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "read_line.h" +#include "user_list.h" +#include "msg_list.h" +#include "server.h" + +/* Handler for interrupts */ +void interruptHandler(int sig){ + printf("[SERVER]: Handling interrupt. Closing server socket...\n"); + /* Close the server socket and exit with the resulting return value. 0 if OK, -1 if error */ + exit(close(s_server)); +} + +int main(int argc, char * argv[]){ + struct sockaddr_in server_addr, client_addr; + int sc; + int val; + int server_port; + + /* Check command */ + if(argc != 3 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p \n"); + exit(-1); + } + + /* Check if the port number passed as parameter is valid */ + server_port = atoi(argv[2]); + if ((server_port < 1024) || (server_port > 65535)) { + printf("Error: Port must be in the range 1024 <= port <= 65535\n"); + exit(-1); + } + + /* Initialize mutexes */ + if(pthread_mutex_init(&socket_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_mutex_init(&list_mtx, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + /* Initialize condition variable for copying the socket descriptor in the thread */ + if(pthread_cond_init(&free_socket, NULL) != 0) { + perror("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + + /* Prepare thread conditions */ + thread = (pthread_t) malloc((sizeof(thread))); + pthread_attr_init(&thread_att); + pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); + + s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(s_server == -1){ + perror("Error when creating the socket"); + exit(-1); + } + + /* Obtain the IP address attached to interface eth0 */ + struct ifreq ifr; + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1); + ioctl(s_server, SIOCGIFADDR, &ifr); + + val = 1; + setsockopt(s_server, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + + /* Initialize the address that will be attached to the listening socket */ + bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ + server_addr.sin_family = AF_INET; + server_addr.sin_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; /* Listens to IP address in eth0 interface*/ + server_addr.sin_port = htons(server_port); /* Port number */ + + /* Bind the address to the listening socket */ + if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + perror("Error when binding the address to the socket"); + exit(-1); + } + + /* Set the socket to listen incoming requests */ + if(listen(s_server, 5) == -1){ + perror("Error when listening to the socket"); + exit(-1); + } /* Backlog is 5, maximum number of queued requests is 5 */ + + /* Once the server is listening, print inicial prompt */ + printf("s> init server %s:%d\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), + ntohs(server_addr.sin_port)); + + /* Define the variable for the client address size. It should be declared + as variable because the size depends on the incoming request and is an + output parameter of the 'accept' function */ + socklen_t cl_addr_size = sizeof(client_addr); + + /* Set the control variable to TRUE so that the listening thread waits + until the thread stores a local copy of the socket descriptor */ + busy_socket = TRUE; + + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ + fprintf(stderr, "%s", "s> "); /* Prompt */ + + /* Loop for accepting and creating threads for each incoming request */ + while(1){ + /* Accept client connections. If error, shut down the server */ + sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); + if(sc == -1){ + perror("Error when accepting the connection"); + /* Close listening server socket */ + close(s_server); + exit(-1); + } + /* Once accepted, create a thread to handle the request. If error, shut down the server */ + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { + perror("[SERVER]: Error when creating the thread"); + /* Close both listening socket and the one resulting from the accept operation */ + close(s_server); + close(sc); + exit(-1); + } + + /* Wait for the thread to copy the socket descriptor locally */ + pthread_mutex_lock(&socket_mtx); + while(busy_socket == TRUE) + pthread_cond_wait(&free_socket, &socket_mtx); + busy_socket = TRUE; + pthread_mutex_unlock(&socket_mtx); + + } + + exit(0); +} + +void * manageRequest(int *sd){ + int s_local; + char operation_buff[MAX_COMMAND]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; + int n; + int m; + char out; + + /* Copy locally the socket descriptor */ + pthread_mutex_lock(&socket_mtx); + s_local = *sd; + busy_socket = FALSE; + pthread_cond_signal(&free_socket); + pthread_mutex_unlock(&socket_mtx); + + /* Read the operation. If error, close the socket and terminate the thread */ + n = readLine(s_local, operation_buff, MAX_COMMAND); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Read the username and convert to uppercase. If error, close the socket + and terminate the thread */ + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* For convention of the server, convert every username to uppercase */ + toUpperCase(user_buff); + + /* Check the operation */ + if (strcmp(operation_buff, "REGISTER") == 0){ + /* Register the user */ + pthread_mutex_lock(&list_mtx); + out = registerUser(user_buff); + pthread_mutex_unlock(&list_mtx); + + } + else if (strcmp(operation_buff, "UNREGISTER") == 0){ + /* Unregister the user */ + pthread_mutex_lock(&list_mtx); + out = unregisterUser(user_buff); + pthread_mutex_unlock(&list_mtx); + + } + else if(strcmp(operation_buff, "CONNECT") == 0){ + + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + uint16_t client_port; + + n = readLine(s_local, msg_buff, MAX_MSG); + if(n == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Get the port number from the socket */ + client_port = (uint16_t) atoi(msg_buff); + /* Get the client IP address attached to the socket */ + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + perror("[SERVER_THREAD]: Error when getting client address"); + /* Send error 3 to client and close socket */ + out = 3; + goto respond_to_client; + } + /* Connect the user to the server */ + pthread_mutex_lock(&list_mtx); + out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); + pthread_mutex_unlock(&list_mtx); + + + /* If result is 0, then check for the pending messages and send them */ + if(out == 0){ + /* Send code 0 for the client to open the listening thread */ + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + /* Send Pending Messages */ + pthread_mutex_lock(&list_mtx); + struct msg **pend_msg = getPendMsgHead(user_buff); + while(*pend_msg != NULL){ + pthread_mutex_unlock(&list_mtx); + char sender[MAX_USERNAME]; + char msg_body[MAX_MSG]; + + /* Get the name of the sender, the id and the body associated to the message to be sent */ + pthread_mutex_lock(&list_mtx); + strcpy(sender, (*pend_msg)->sender); + int msg_id = (*pend_msg)->id; + strcpy(msg_body, (*pend_msg)->body); + pthread_mutex_unlock(&list_mtx); + + /* Try to send the message. The 'stored' flag is set to 1 because the message + is already stored in the server */ + int err = sendMessage(sender, user_buff, msg_body, msg_id, 1); + + /* If the message could not be delivered/stored, then exit the loop */ + if(err != 0) goto destroy_thread; + + /* Send acknowledge to the sender. No return value is checked */ + sendAck(sender, msg_id); + + /* Remove the message from the pending message queue and iterate with the next message */ + pthread_mutex_lock(&list_mtx); + *pend_msg = dequeueMsg(&(*pend_msg)); + } + pthread_mutex_unlock(&list_mtx); + } + goto destroy_thread; + } + else if(strcmp(operation_buff, "DISCONNECT") == 0){ + /* Get the IP from which the command is being executed */ + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + perror("Error when getting client address"); + /* Send error 3 to client and close socket */ + out = 3; + goto respond_to_client; + } + /* Try to disconnect the user passing the IP from which the request is being made + as parameter to the function */ + pthread_mutex_lock(&list_mtx); + out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); + pthread_mutex_unlock(&list_mtx); + + } + else if(strcmp(operation_buff, "SEND") == 0){ + /* Reserve a buffer for the username of the receiver */ + char dest_user_buff[MAX_USERNAME]; + + /* Read the destination user from the socket */ + m = readLine(s_local, dest_user_buff, MAX_USERNAME); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Convert username to uppercase by convention */ + toUpperCase(dest_user_buff); + + /* Read the message from the socket */ + n = readLine(s_local, msg_buff, MAX_MSG); + if(m == -1){ + perror("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* Check if one of the two users is not registered */ + pthread_mutex_lock(&list_mtx); + if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ + pthread_mutex_unlock(&list_mtx); + /* Send code 1 to the client and close the socket */ + out = 1; + goto respond_to_client; + } + pthread_mutex_unlock(&list_mtx); + + /* Check the status of the destination user */ + pthread_mutex_lock(&list_mtx); + char status = isConnected(dest_user_buff); + unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message + pthread_mutex_unlock(&list_mtx); + + if(status == 0){ //Not connected + /* Store the message */ + if (storeMessage(user_buff, dest_user_buff, msg_buff, last_id) != 0){ + /* Message could not be stored so send code 2 to the client and close the socket */ + out = 2; + goto respond_to_client; + } + /* Message was stored successfully, send code 0 and message ID to the client */ + out = 0; + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + }else if(status == 1){ //Connected + /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message + is being sent for the first time and was not previously stored int he server */ + int err = sendMessage(user_buff, dest_user_buff, msg_buff, last_id, 0); + /* If while trying to store the message, the user unregisters, value 1 will be returned */ + if(err == 1){ + out = 1; + goto respond_to_client; + }else if(err == -1){ + /* If any server error occurred and the message was not stored or sent, then send code 2 + back to the client */ + out = 2; + goto respond_to_client; + } + + /* If no server error occured, then the message was either sent or stored, so we send back + the code 0 (OK) to the client */ + out = 0; + if ((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* At this point, the message is assumed to */ + sendAck(user_buff, last_id); + } + /* The response to the client is handled within this else-of statement, so the + 'respond_to_client' label is skipped and proceed to close the socket */ + goto destroy_thread; + } + + /* Default print template */ + switch(out){ + case 0: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + break; + default: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "FAIL"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + } + + /* Label to jump previous code to respond the client and skip the default print right above, + in case other commands (as SEND) do not use a template print */ + respond_to_client: + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + destroy_thread: + if(close(s_local) == -1){ + perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + pthread_exit(NULL); +} + +/* Capitalizes the input string. String is both an input and output parameter */ +void toUpperCase(char * string){ + /* Convert to uppercase */ + int i; + for(i = 0; string[i]; i++){ + string[i] = toupper(string[i]); + } +} + +/* Return 0: Message is stored OK + Return -1: Server error (Memory space error) */ +int storeMessage(char * sender, char * receiver, char * msg, unsigned int msg_id){ + /* Store the message to the receiver pending list */ + pthread_mutex_lock(&list_mtx); + int err = storeMsg(receiver, msg, msg_id, sender); + pthread_mutex_unlock(&list_mtx); + + /* Error when trying to store the message */ + if(err == -1) return -1; + + fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + /* Return store OK */ + return 0; +} + +/* Return 0: Message is sent OK + Return 1: User did not exist when trying to store/send the message. Message not stored + Return 2: Message is stored, or not stored if was already stored + Return -1: Server error */ +int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, char stored){ + int s_receiver; //Socket for the receiver of the message + struct sockaddr_in recv_addr; //Receiver address + struct hostent *recv_hp; //Host entity structure for the receiver + + s_receiver = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_receiver == -1){ + return -1; //Send error message. -1 is internally encoded as server error + } + + bzero((char *) &recv_addr, sizeof(recv_addr)); //Reserve space for the address of the receiver + + pthread_mutex_lock(&list_mtx); + recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver + pthread_mutex_unlock(&list_mtx); + /* If error when getting the host, return -1 */ + if(recv_hp == NULL) return -1; + + memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format + recv_addr.sin_family = AF_INET; + pthread_mutex_lock(&list_mtx); + recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread + pthread_mutex_unlock(&list_mtx); + + /* Try to connect to the listening thread of the receiver to send the message */ + if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ + /* If the connection with the receiver fails, assume the client + to be disconnected, disconnect it and store the message */ + pthread_mutex_lock(&list_mtx); + /* As we are internally disconnecting the user from the server, we need to bypass the + IP check, so we pass the IP of the receiver as parameter to always fulfill the condition */ + char reg = disconnectUser(receiver, getUserIP(receiver)); // No need to check for output + pthread_mutex_unlock(&list_mtx); + /* If the disconnect method returns 1, it means that the user was not found so is not + registered (it unregister while trying to store the message, so we return 1 */ + if(reg == 1){ + return 1; + } + /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the + server so we need to push it to the end of the queue. If it was stored, then nothing is done */ + if(!stored){ + if(storeMessage(sender, receiver, msg, msg_id) == -1) return -1; //Return -1 if store error + } + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + /* Return 2 to indicate the message is stored but not sent */ + return 2; + } + /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ + char op[13]; + strcpy(op, "SEND_MESSAGE"); + send_msg(s_receiver, op, strlen(op)+1); + /* Send the sender name */ + send_msg(s_receiver, sender, strlen(sender)+1); + /* Send the identifier of the message */ + char id_string[11]; + sprintf(id_string, "%d", msg_id); + send_msg(s_receiver, id_string, strlen(id_string)+1); + /* Send the message */ + send_msg(s_receiver, msg, strlen(msg)+1); + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + + fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + return 0; +} + +/* Tries to send acknowledge to the sender. No return value */ +void sendAck(char * sender, unsigned int msg_id){ + int s_sender; //Socket for the receiver of the message + struct sockaddr_in sender_addr; //Sender address + struct hostent *sender_hp; //Host entity structure for the sender + + s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_sender == -1){ + /* If error when allocating resources for the socket, then exit */ + return; + } + + char ack_op[14]; + strcpy(ack_op, "SEND_MESS_ACK"); + + bzero((char *) &sender_addr, sizeof(sender_addr)); + + pthread_mutex_lock(&list_mtx); + sender_hp = gethostbyname(getUserIP(sender)); + pthread_mutex_unlock(&list_mtx); + /* If any error when getting the hoset, exit the function */ + if(sender_hp == NULL) return; + + memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); + sender_addr.sin_family = AF_INET; + + pthread_mutex_lock(&list_mtx); + sender_addr.sin_port = htons(getUserPort(sender)); + pthread_mutex_unlock(&list_mtx); + + if((connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr))) == -1){ + /* If error when connecting, exit the function */ + return; + } + + + char id_string[11]; + sprintf(id_string, "%d", msg_id); + if((send_msg(s_sender, ack_op, strlen(ack_op)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + if((send_msg(s_sender, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + + if(close(s_sender) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; +} \ No newline at end of file diff --git a/ssdd_p1_100291121_100292107/server.h b/ssdd_p1_100291121_100292107/server.h new file mode 100644 index 0000000..f1acb08 --- /dev/null +++ b/ssdd_p1_100291121_100292107/server.h @@ -0,0 +1,27 @@ +#define MAX_COMMAND 11 + +/* Mutex & Threads */ +pthread_mutex_t socket_mtx; +pthread_mutex_t list_mtx; +pthread_t thread; +pthread_attr_t thread_att; +/* Controls the access to the socket generated by the connection 'accept' */ +pthread_cond_t free_socket; +pthread_cond_t free_list; + +/* Variable that controls the state of the socket created by the connection 'accept' */ +int busy_socket; + +/* Declare the server socket as global variable */ +int s_server; + +/* Declare the list of users */ +struct user *users; + +/* ================FUNCTION HEADERS================ */ +void interruptHandler(int sig); +void * manageRequest(int *sd); +void toUpperCase(char * string); +int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, char stored); +void sendAck(char * sender, unsigned int msg_id); +int storeMessage(char * sender, char * receiver, char * msg, unsigned int mgs_id); \ No newline at end of file diff --git a/ssdd_p1_100291121_100292107/user_list.c b/ssdd_p1_100291121_100292107/user_list.c new file mode 100644 index 0000000..cd2c93b --- /dev/null +++ b/ssdd_p1_100291121_100292107/user_list.c @@ -0,0 +1,246 @@ +#include +#include +#include +#include +#include "msg_list.h" +#include "user_list.h" + +/* Checks if the input user is already registered + Return 0 if is registered + 1 if is not registered */ +char isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Registers a user (if not previously registered) and appends it to the end of the s list + Returns 1 if already registered + 0 if registered correctly */ +char registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + /* Prepare new user */ + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + /* If memory is full and malloc is not possible, we return code 2 */ + if(temp == NULL) return 2; + /* Initialize user values */ + strcpy(temp->username, username); + temp->status = 0; + strcpy(temp->ip, "-1"); + temp->port = 0; + temp->pend_msgs_head = NULL; + temp->next = NULL; + temp->last_id = 0; + + if (user_head == NULL){ //If list is empty + temp->next = user_head; + user_head = temp; + } + else{ + struct user *last = user_head; + + /* Iterate over the list */ + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + + return 0; +} + +/* Changes the status of a user to 1 (ON) and links an IP and port number to it + Return 0 if connect OK + 1 if user is not registered + 2 if registered but not connected */ +char connectUser(char * username, char * ip, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + strcpy(temp->ip, ip); + temp->port = port; + return 0; + } + temp = temp->next; + } + /* No user was found, so send code 1 */ + return 1; +} + +/* Changes the status of a user to 0 (OFF) and cleans the IP and port number + Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ +char disconnectUser(char * username, char * used_ip){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 0) return 2; //User already disconnected + if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + strcpy(temp->ip, "-1"); + temp->port = 0; + return 0; + } + temp = temp->next; + } + + return 1; +} + + +/* Unregisters a user, deleting it and its pending messages (if any) from the list + Returns 1 if the user does not exist. + 0 if the user is deleted correctly */ +char unregisterUser(char * username){ + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + /* Free the memory resources of the user structure */ + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + +/* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ +int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Enqueue message + return enqueueMsg(&(temp->pend_msgs_head), msg, msg_id, sender); + } + temp = temp->next; + } + + return -1; //User was not found +} + +/* Increments the last-sent-message ID associated to the input user + Return the value of the updated ID */ +unsigned int updateLastID(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Increment the ID in 1 + temp->last_id = temp->last_id+1; + //If it results in 0, then the maximum representable number is overflown + if(temp->last_id == 0) temp->last_id = 1; + + return temp->last_id; + } + temp = temp->next; + } + + return 0; +} + +/* Checks if the input user is connected + Return 0 if the user is disconnected + 1 if the user is connected + 2 if error (user was not found) */ +char isConnected(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->status; //Returns 0 if OFF, 1 if ON + } + temp = temp->next; + } + /* Return error 2 if we reach this point. No user was found */ + return 2; +} + +/* Retrieves the IP associated to a user in the list + Returns a char array with the IP of the user + NULL if the user was not found */ +char * getUserIP(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->ip; //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + +/* Retrieves the port number associated to a user in the list + Return the port number + 0 if the user was not found */ +uint16_t getUserPort(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->port; //Returns the IP of the user + } + temp = temp->next; + } + return 0; +} + +/* Retrieves a pointer to the head of the pending message list associated to a user + Return the pointer to the head of the message list + NULL if the user was not found */ +struct msg ** getPendMsgHead(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return &(temp->pend_msgs_head); //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + diff --git a/ssdd_p1_100291121_100292107/user_list.h b/ssdd_p1_100291121_100292107/user_list.h new file mode 100644 index 0000000..03b964b --- /dev/null +++ b/ssdd_p1_100291121_100292107/user_list.h @@ -0,0 +1,27 @@ +#define MAX_USERNAME 256 +#define MAX_IP 16 +#define TRUE 1 +#define FALSE 0 + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + char ip[MAX_IP]; /* IP of the user from which the connect operation was made */ + uint16_t port; /* Port number of the user from which the connect operation was made */ + unsigned int last_id; /* ID assigned to the last sent message */ + struct msg *pend_msgs_head; /* Pointer to the head of the pending messages queue */ + struct user *next; /* Pointer to the next user in the list */ +} *user_head; + +/* ================FUNCTION HEADERS================ */ +char isRegistered(char * username); +char registerUser(char * username); +char unregisterUser(char * username); +char connectUser(char * username, char * ip, uint16_t port); +char disconnectUser(char * username, char * used_ip); +int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender); +unsigned int updateLastID(char * username); +char isConnected(char * username); +char * getUserIP(char * username); +uint16_t getUserPort(char * username); +struct msg ** getPendMsgHead(char * username); \ No newline at end of file From 69e94d5ae9977691220cf1beb71649480e6b60c6 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Sat, 6 May 2017 19:44:52 +0200 Subject: [PATCH 13/17] CGP: Stable version before submission. Pending comments and error checking --- lab2_pruebas.zip | Bin 245900 -> 245281 bytes lab2_pruebas/ServerThread.class | Bin 2670 -> 2670 bytes lab2_pruebas/client$1.class | Bin 521 -> 521 bytes lab2_pruebas/client.class | Bin 7989 -> 8092 bytes lab2_pruebas/client.java | 23 +-- lab2_pruebas/monitor | Bin 24504 -> 24272 bytes lab2_pruebas/monitor.c | 154 ++---------------- lab2_pruebas/monitor.o | Bin 12672 -> 11472 bytes .../rpc_store_service/store_service_svc.c | 14 +- .../rpc_store_service/store_service_svc.o | Bin 20648 -> 21256 bytes lab2_pruebas/server | Bin 51088 -> 51128 bytes lab2_pruebas/server.c | 122 +++++++------- lab2_pruebas/server.h | 5 +- lab2_pruebas/server.o | Bin 42624 -> 42528 bytes lab2_pruebas/store_service_server | Bin 29016 -> 33424 bytes lab2_pruebas/store_service_server.c | 53 ++++-- lab2_pruebas/store_service_server.o | Bin 15760 -> 16480 bytes 17 files changed, 140 insertions(+), 231 deletions(-) diff --git a/lab2_pruebas.zip b/lab2_pruebas.zip index 72fbce9e465700b657c662003300ef8b62835cac..a9e549886e265dcf5bc60e7fc32dbb280ab6aefe 100644 GIT binary patch delta 50179 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 z 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 delta 51021 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 diff --git a/lab2_pruebas/ServerThread.class b/lab2_pruebas/ServerThread.class index 4a4afe18a937389d3fb87ee17d9fe521cad598bf..72435ca69b8d10703aa0c805b6e691eda3e71421 100644 GIT binary patch delta 261 zcmWN`O(??w9LM4B?~@6kHuG|DaB^``a&X`vnWIv2QagCLt>$Gn?n znzyCUl#m_7IJwcdaB{HY)06dPz0s)42Ar6yrDRyejHrxJRS|OjT)pLEDrHJ;CgfpK zbxftA9mVVhb z4?9-LuGO$-wd`9fG4m0(P7bV_Lkn_bArcnh*bX9LMqB|Cz$)a*$UkTay%NDUrg~ zBuz5I!6Pdniac*LE}R_f`00~&r`?f=!+JweM?=AY@)=YSLn>o9^yla-9#tU|axx|t z diff --git a/lab2_pruebas/client$1.class b/lab2_pruebas/client$1.class index d51ca23af6612a14ebeeaa6cf20d3e31a61254a7..0233174eb7d273b9c1247812e69fbfafb56761e6 100644 GIT binary patch delta 27 icmeBV>15e3osltO@(e~}&L{>prf3FUrr60>7)=3ZeFo|P delta 27 icmeBV>15e3oslti@(e~}&UgkkrUV9FrliSN7)=3aV+Q^J diff --git a/lab2_pruebas/client.class b/lab2_pruebas/client.class index f90e08494090da6ae0123803bec952f70b8171cb..9b35851ca5f0e37cc86aedf04fb7280e49fb3ff8 100644 GIT binary patch delta 3489 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 Fe*=kl>iqx! delta 3296 zcmai033yc175@J_le{}`-jHMqX2*@IWMu89zWU)yUQE6(` z8ibhCgk{Glu+LCK8VE2G$G#%IDT{Y}# z{MbP=HWG0w7hk-1#G1Os5p&koUQpNQ;0iN$C9V<$X1QCv={lQ3j4;%F$eX5fILrvS z?i=3BiOtM&m~Th{hdUg>kq!&7(c&nFr*JgUueKy}cKOt4bLN)M&YW3k@l=OnjQ&`T zb4y~9Qpa-~5r3jqMcK3}hZAJ}!kE%wMJ#q$#EA||&?={!SAE=^!$~Z4@Dp6)unZgB z!!hfE&7ACT3Qu!b&I*T9dAhqKc8#Kr5M1nV32O;myJ|(N4a1nJRpz69>ldWI$1b{$K-ZF?U4boNvI7a)F za9xElk_YR57zur!6#>~;0aTp$rp4U^x3K?v?zQn5ZpnaCE#vzZ40bOaaLpN?Fn~`* z0!BgyBiIK09ak;fL~%Fi`*xBr_U#laJH^UQaqfq4c^u=e?VsXqPYg}17t7`+<&A;z zjFzWVo+@^N9T*x$P6tj3jtwKZ1EF>^9v2;_M#tm(#_rLCft=u85kJKJC?Re1gy`$^ zcG(o-!a*^;MO-($1$RdIZaf|3DjKRAkmasEXezIwYRk0@rmtC|b~k;_8AhCQk5%ym=3xL}5lNhE*FZO5OXCa#`jcP8!Y0ZolM0 zPH{_<2k|twHaUysZgX;3Rz((9qx} zlMegj+JRJ@W)1rBTqLm$DO`k9F2P{dqL@oj$_r4zRjB4_%;tqy#Coh|11{w{T+K_c znd@-_FBg0_U?+bh_+BCSUWL898a-^rBix85xETkyMVj#Sc$Hi6Cbu;q!WMdYD>Zj8 zz@2h2?BYn?DNyfbHSdy6ayJ+99;x*gtph)|lYW3}cq$#Tiw3!P#NVagU~?jhs8bm6n;DC&6q*Z@y<#FguJP z+b}SHf6Pt<^1Y+FapwG1ykWHFyG5yKO=pSNW5fl~MeSzMnEzU|P_%9|T4zVKt~FYd zqgo~T`(tlIL0(>bW*Fyq7llz{ay8^VQI?HE-fo;LR%RM2=S8iYCRR=j$_nu?l)vA* z6WUwUis43Maa3cl4116vRgf86B3Ud8ga&I}f7zL2Cu!L{pe7=Kv9>E5_FW1xu*utaO%8#&%pW!}!j{Erq z_DdQ($p~JM0KcphjwlblP||!=481D0igC)%6y-2e1(>bkI8r5YmP+LumCSi6#I-W6 zSLxA6PegnK10(?;-;KA*_YB605Y4R}^1_WvPhNbh>G`VuTVnqG2~7*Li9 zDBrnaR2H<#mL+oY9b3WzNgvbu9_&Hgg5a{;;PNh+!s8mImt%@;Em7qaQ!o{i#H>+~o zqAIXMosM=j4c%%w_Nf_BaQnm8i-3h)y% CONNECT FAIL"); return RC.ERROR; @@ -290,23 +290,15 @@ static RC disconnect(String user) System.out.println("c> DISCONNECT OK"); return RC.OK; case 1: + checkAndUnbindUser(user); System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); return RC.USER_ERROR; case 2: + checkAndUnbindUser(user); System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); return RC.USER_ERROR; case 3: - /* In case of error in the disconnection process, stop the execution of the thread - and unbind the user from the client as if the disconnection has been made. But if the - disconnect command executed was not executed for the user that is bound to the client - then nothing is done */ - if(connected_user != null){ - /* Check if the user coincides with the linked user */ - if(connected_user.equals(user)){ - connected_user = null; - server_thread.kill(); - } - } + checkAndUnbindUser(user); System.out.println("c> DISCONNECT FAIL"); return RC.ERROR; } @@ -316,6 +308,11 @@ static RC disconnect(String user) System.out.println("Exception: " + e); //e.printStackTrace(); } + checkAndUnbindUser(user); + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + private static void checkAndUnbindUser(String user){ /* In case of error in the disconnection process, stop the execution of the thread and unbind the user from the client as if the disconnection has been made. But if the disconnect command executed was not executed for the user that is bound to the client @@ -327,8 +324,6 @@ static RC disconnect(String user) server_thread.kill(); } } - System.out.println("c> DISCONNECT FAIL"); - return RC.ERROR; } /** diff --git a/lab2_pruebas/monitor b/lab2_pruebas/monitor index bdc1e5589e78480296a13046c36b71f04a9f7901..04f101e8ad6d95766e5b032966d0309087464479 100755 GIT binary patch delta 6494 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 delta 7036 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 == 0) printf ("ERROR , MESSAGE DOES NOT EXIST\n"); - printf("MESS: %s\n", res->msg); - printf("MD5: %s\n", res->md5); - - - - clnt_destroy (clnt); -} - - int main (int argc, char *argv[]) { char *host; - - if (argc < 3) { - printf ("usage: %s server_host\n", argv[0]); + enum clnt_stat retval; /* Return value for the getmessage call */ + /* Check the parameters of the command */ + if (argc < 4) { + printf ("usage: %s server_host \n", argv[0]); exit (1); } - - host = "127.0.0.1"; + /* Get the address of the host from the first paramete */ + host = argv[1]; + /* Get the ID from the third parameter and store it in an unsigned int */ char *stopstring; - unsigned int id = strtoul(argv[2], &stopstring, 10); + unsigned int id = strtoul(argv[3], &stopstring, 10); CLIENT *clnt; - + /* Create the connection with the service */ clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); if (clnt == NULL) { - clnt_pcreateerror (host); + printf("ERROR , SERVICE NOT AVAILABLE\n"); exit (1); } /* Allocate resources for the response */ response *res = malloc(sizeof(response)); res->msg = calloc(MAX_SIZE, sizeof(char)); res->md5 = calloc(MAX_MD5, sizeof(char)); - getmessage_1(argv[1], id, res, clnt);//) printf("ERROR , SERVICE NOT AVAILABLE\n"); - + /* Call the get message service with the client ID and message ID passed as parameters */ + retval = getmessage_1(argv[2], id, res, clnt); + /* If FALSE is returned, there was an internal server error */ + if(retval != RPC_SUCCESS) printf("ERROR , SERVICE NOT AVAILABLE\n"); + /* if the length of the receive message is 0, no message was found */ if(strlen(res->msg) == 0) printf ("ERROR , MESSAGE DOES NOT EXIST\n"); + /* Otherwise, print the message and its MD5 hash */ else{ printf("MESS: %s\n", res->msg); printf("MD5: %s\n", res->md5); } - - + /* Destroy the connection */ clnt_destroy (clnt); -exit (0); + exit (0); } diff --git a/lab2_pruebas/monitor.o b/lab2_pruebas/monitor.o index e357f406e96459cb160fdcdd3399e3dbbd2e83d3..d5db255ed3ed9f7adb2a5e1ff36372d662e96be6 100644 GIT binary patch delta 2721 zcmZ{me`r%z6vy9vu`!8Oo3{4lY1<^))>Lg@!t7E-gEfmL!yj$^u})!amd37KY?~i- zVyQKBW7e*ac;>(%(=f(1bYKY^6DKx|Im-|lCdvu}e~i)nvssy7H(|T)z4K&T*oAlR zJLmJg=bU@q3oj=^)32r+d}?)iO$7{+iZr7Jy=jec9{*~$?{}|^V+d1nW+xKW}VA?{t1FmZ`cKj&+0-Q8+iXWQdz z-5>D!Y`b>vwKeT;3hZdwy2Gc`P_1j=pBP|BXXVF9_9LCwFx)5u9OFd2A?F?&IIcoA zNP#TSrN0?Qvz8KF`toq4LKj}83!iRQEyHI8vh|W`nN{Yuc6V~5xJ40eQBmoog|e{C z8Y>RRIZ`gCfUUk9H@x zcp{eQ8;EeB2z@}ISU8vnbNvH}ICnT0iS&iIkh*k*6WW7wagy9bI!yGUt$RK;Ku#1y zFWNj^i|F<2A9eJ?oG1j2A=UOe(S8qCc~>#Lv|Z=Wuj$vLoq^tuP2wLFz++oI*$sBPM0%jbzFoY4 zZ>822EvN}5>;lQblzlsS2F?;h zff=;OLC90;#l6oM>IAY%5C?Iu0ae=G7`Q0iinNrW+aO5kRirkCE`{_eiKHM$H7k(y zF`71*qqGZ8{VqcvfxW7obV9O9AT~H#C6VJWMdulquad;CQEkEAYc=PgsahhZAWG*t z$W#mBC#d|6QLchKrC!XQXXqs$H4@njt{VDWkp0GJnjuIvA48gIQrHKgS6?u#p0^=K z=^3n{kfBRqj?#JDD>Bpp_SF&*p=Gro{*Ad^jOGR;DV;&OnW0x;g3|Yq1{gXB_bL4m z--#ZEroikFL<83LIYT?3iP9|6>kN%Rl+p%_e3zjK$WR)^&i}>GDC8YNz>JZL={Haw zT0iHpla-AB4CY$P_-}%%RuC8AE-yp#5TsQ5svKnKJCLrGNI&Fig$++J{yzE<{%<{+ zzk~5V#Gdznd5tifWay_zQ;gq){_~9gXYAD%jK3EBR~dgBR(nVFo1V9C1DMx#Wm9X5 z2pNZ9y%i?cSxk+BdZr>C9;|zjzoq<>0B4;;yX~)Y7^gASDah2hmmR>zGmnXt0FbLI zIbClt`b9NfBiQTR#yyKvYl!A^^V5sr!+H;Yq6TK_Jw~ojW$VE%x%taAa6s}H*Dq0> zR>)B2o>G{RJp9R0`R@%loety4QZ0PY={DZ1Q7sE(oNoRejqCInCs9IwK`ys(woH{Y IgT2oBFS4b)?EnA( delta 3820 zcmZ`+eQZ~T*sjSCn5fz zR9WO?iQ1(W6;EeOL+z*{?T?nRtx;eq5S64wtLTT;Y*ow9CV@aJbdgH_D(xzD=e~Cy zeZA6d;(PD;{eI`%bI*Ox@A;#>WAS5tdDB|0sovchnHs&)8_5?m`Xxzqa5+TY~tIo_S;lDGKmBJT|G#HEUh z75A*EjysWj&n*mmCo;7dnR@%J;_t~Vj(Hc?O67l+Cg-yy-w`mvBFZt0aJM(|ppkZ_ zP+#lvJK831v7B3j{%*%LTtVVcWMaNTds$^4YiAqnd~?@ubK14ttL(T= zB)=Wg>baB8evBwQ#WL%qO#G1abTWqj1HBK?3=Jujh$s3FCsH9Pofz!p<1>k5a!6|L z%Oq0JC_e-rvFfrCDYP!!(u#i}>0t*vC41!4^6aR*#h&9C@%BSrF>LIWvvx_U*QbRS zaFDggYTYV6jRlgmJ%+V$gU;>rq!MX~b#W(I+b0#-cjBx;cNpUmvmLn?--xY~Hf`5j zj_d&X*|axuM)+SCOLrO8i~nGD^rwhx_V-9N$5pdGC~IZVTOKJ- zXNFRVXgZNP+#gRwL$kjxf3Bbq%au)nud1)es0_SN)#%lW-(FVnyu4*)kuAtp6x*db zU|&Y)n_r_Dv8}Y zZSz!qu4^V?(dEktX-o0sU?v(*C1RO`F+XG&iBxJRB_)pZXC%WVBn`yy+KWs36PbZT zIvv}OyOs`RGim8is(&!kCq<*_Oe}sd8h_?sv@h15M2G%C^iE}lvPmhfdwYyMH_+Bg za4e)bAJ##)qNtsO$T;#_`kQZ!_EQ*Fl-Pb^P2U2tlLB5w_F(~clRYBfKC;JPMp4*H za2+!_C1{$+{u4Oeih4$1Tgg5L?Z|#0u;%@;$l2UAf!$5^=QQ%YyYOS~{cFO_UB}2S zpgT|0w^(q+5+`opImrxkfC3Fz9IOjJYr&nCKsmxo5#vWVPH|3J^r}UFig07yHKfL2 z&f-vRarirgR3-N>3u|5eGYej6@%q|=*I4jMULb6Iu;LpncolMHy>}S+cXcw4Z>Pnf z+TxHP+^nm4phFhDwXQiqAH!I@O?^*~M`vdAnuTz}qw0g~MHp5U^=~%Aktf3&Pk?_u zfN3?#N`TcU>RqbJPA<;d}TTA~%qte%7!WCOHOnN%h_3D=Pwp(801 z*eAg0QPds8)(Gq+X!j`04SPL7^#pN07Bu(4G)9O~gb{(=2a6ctE4b~6ssp5XN6-Wy z)(~VbfQJ1ISipV(mKzkjL>%5A19;dQRM(TwMT%kW?vF6;Rn)aqk@p35Bg}Xeb`~yU zgsr5xA!ypc=~GxI1bjjDG}ZmTg60Ga`xNykp~dv5Hgh-$(>^8SA+%CpWm;Di@DSYg z1v`DTVza=Ok{uH8zfuli0lxvUHH!K+v0DW8x1b?ANtx^r*nh$TvgY}o6j&!LBfFQb zt}_BV2j2S>HB0NhFR*RUjqE6$-4_CT0LGC$K#`01>ozvCsx>f!tW1$t3+zd_j_e{; zFD$TC;A~XXtK_>wU>(rj$RF2x8-qR1QB7L$ZPU6sqnvyG557;phiMmm9EU}JWo}eZ z{F@Yc0pCn3oe=P^DEm19Un2Z3g!8bx4Cc$=KMdS>4Dn*VK@PWsK$V1lDd1+Jg${Ja zW*$h4O4T6X<_73=b$yWpFWvu>Rh#qxMt(+)vsdqTv6be1rqkdIR6>Q{UGf@#_+z_b zgLVG(@{;~C4r6}5Ii2_W9e3!+^RVm>SC3Fmk5W#$zaFqF;C77ZKP4pTH!vIsJKkKO zv(j;x354bCW$<~RO?Ed!Q&XE`lwSS1V7MtPN1EXjf*0AgnhmQJmYc)!F^s#m&2fw*zl7nnVTYSGn1^A%=YN^pnTG%X diff --git a/lab2_pruebas/rpc_store_service/store_service_svc.c b/lab2_pruebas/rpc_store_service/store_service_svc.c index 2bf4954..1c97888 100644 --- a/lab2_pruebas/rpc_store_service/store_service_svc.c +++ b/lab2_pruebas/rpc_store_service/store_service_svc.c @@ -11,6 +11,7 @@ #include #include #include +#include #ifndef SIG_PF #define SIG_PF void(*)(int) @@ -113,6 +114,7 @@ int main (int argc, char **argv) { register SVCXPRT *transp; + struct sockaddr_in service_addr; /* Struct to store the address of the server */ pmap_unset (STORE_SERVICE, STORE_VERSION); @@ -135,7 +137,17 @@ main (int argc, char **argv) fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); exit(1); } - + /* Get the machine's IP address */ + get_myaddress(&service_addr); + char * ip = inet_ntoa(service_addr.sin_addr); + /* If the address could not be obtained (no network connection), then print error and exit */ + if(strlen(ip) == 0){ + fprintf (stderr, "%s", "cannot get the IP address of the service."); + exit(1); + } + printf("Store service running at: %s\n", ip); + /* Self-invoke the init process when starting the server */ + init_1_svc(NULL, NULL); svc_run (); fprintf (stderr, "%s", "svc_run returned"); exit (1); diff --git a/lab2_pruebas/rpc_store_service/store_service_svc.o b/lab2_pruebas/rpc_store_service/store_service_svc.o index ad274a182a54d04a09bd8d4b8a9fc0415ee8fe6d..cb65215e52fd957b681cbe25080fd1542fb57e88 100644 GIT binary patch delta 2010 zcmZWpeN0iLgvdg^pEc!BRHSXdT%f zR3cK(A1;wU;14%vGyz|ni!2TnGr*4o6JtgkaZ8+niC--0rY7^=cVFQRPx9_N=XcKU zoO9p3=e;uxqi0~EKp1VAEm{+d_V7y=?ct%BUi+9fw}2304>zt`=cNSA9avHgTw>q_w#f8Pn0AR^ zp0-Nr*6QF;kH_!t4~l)>pcp*r6&>xOr?)rY9UK(89cL+D{H zCUW~_zKfE(ag@=KQ2?d6G$vC{P{x|(s&z9&A+DFR62v5j?EQx}rHRahG7_QU$t~tS z_SJaw{%zIv7p|uE7VBExiHt(X4Il zu{#+fc`wBG7+_y~yJV1Wnb#i*3hWf?vwZ^u#y90=E`&&qG@kqc7Z_!OLVXs2^{Ck&+fD6={tYJPv=*g29`gAgb zN;-N|lgzEJ;OLeErdSVCbc}^lv$*g0Hg_RZq7F!JPI%B{z9;ECuvVTU- zIwxoSQqFo+j`<01(3oH4m^&=S6QkvcS?|U4iT0kL!r7&X;<+k3TZP*cJi1Gra#0T8 zbEU>mlZs_lu^!#QDpy#CRq+;8{4**%QH2kv@KP0ig5yQ<(Wu)ED}-pf?MmTs)-Ifu z!liD2KXIe%tPm52Z&;h)XKB^?xBwosRy4zPX}F?P1If}kTN}Wlbf@x706Rvio8enr zt#-q_R8>O*sw7`+A3zs=Rd*ITq~ZGSwDiQg8k^}l-PoKiUkcjqc{b`)SUYTZ8xWe@ zTV8<nV8M2pR^ zJ4+>X2QDeBz0yg?eF7cTu+tXT`4A7Dh{eyG`{5d$-#WTBxa#!Rl`rnWu*)W_Tk*21 zR^LGXKTK*--(u5umviehI;a&&;nt@Zrq&}yZj~XJcj2`bvvAvqLTjylP;sQ9qtzx9 zxNwAm;dCB-43}GN`ag2GwNK_|wwZ+@Ge)$jm}u7GVQQ9{aipzQsCVJzwp#s)i-&*6 b!`sbzT`osnK}WkSZj{Y9l@-8Oomu|@Y_`th delta 1454 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 a8VhM2BYW7)=CSsa7X-uW3j463*Z%{Cup>AC diff --git a/lab2_pruebas/server.c b/lab2_pruebas/server.c index b725467..4bfea38 100644 --- a/lab2_pruebas/server.c +++ b/lab2_pruebas/server.c @@ -32,8 +32,8 @@ int main(int argc, char * argv[]){ int server_port; /* Check command */ - if(argc != 3 || strcmp(argv[1],"-p") != 0){ - printf("Usage: ./server -p \n"); + if(argc != 5 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p -s \n"); exit(-1); } @@ -44,18 +44,21 @@ int main(int argc, char * argv[]){ exit(-1); } + /* Store the IP of the storage service */ + store_service_ip = argv[4]; + /* Initialize mutexes */ if(pthread_mutex_init(&socket_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); + printf("[SERVER]: Error when initializing the mutex"); exit(-1); } if(pthread_mutex_init(&list_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); + printf("[SERVER]: Error when initializing the mutex"); exit(-1); } /* Initialize condition variable for copying the socket descriptor in the thread */ if(pthread_cond_init(&free_socket, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); + printf("[SERVER]: Error when initializing the mutex"); exit(-1); } @@ -66,7 +69,7 @@ int main(int argc, char * argv[]){ s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ if(s_server == -1){ - perror("Error when creating the socket"); + printf("Error when creating the socket"); exit(-1); } @@ -87,13 +90,13 @@ int main(int argc, char * argv[]){ /* Bind the address to the listening socket */ if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ - perror("Error when binding the address to the socket"); + printf("Error when binding the address to the socket"); exit(-1); } /* Set the socket to listen incoming requests */ if(listen(s_server, 5) == -1){ - perror("Error when listening to the socket"); + printf("Error when listening to the socket"); exit(-1); } /* Backlog is 5, maximum number of queued requests is 5 */ @@ -109,20 +112,6 @@ int main(int argc, char * argv[]){ /* Set the control variable to TRUE so that the listening thread waits until the thread stores a local copy of the socket descriptor */ busy_socket = TRUE; - - CLIENT *clnt; - - clnt = clnt_create ("127.0.0.1", STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror ("127.0.0.1"); - exit (1); - } - int result; - init_1(&result, clnt); - if(result == -1) printf("[SERVER_THREAD]: Error in the storage service\n"); - else printf("Storage service init OK\n"); - - clnt_destroy (clnt); signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ fprintf(stderr, "%s", "s> "); /* Prompt */ @@ -133,14 +122,14 @@ int main(int argc, char * argv[]){ /* Accept client connections. If error, shut down the server */ sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); if(sc == -1){ - perror("Error when accepting the connection"); + printf("Error when accepting the connection"); /* Close listening server socket */ close(s_server); exit(-1); } /* Once accepted, create a thread to handle the request. If error, shut down the server */ if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { - perror("[SERVER]: Error when creating the thread"); + printf("[SERVER]: Error when creating the thread"); /* Close both listening socket and the one resulting from the accept operation */ close(s_server); close(sc); @@ -179,7 +168,7 @@ void * manageRequest(int *sd){ /* Read the operation. If error, close the socket and terminate the thread */ n = readLine(s_local, operation_buff, MAX_COMMAND); if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket"); + printf("[SERVER_THREAD]: Error when reading from the socket"); if(close(s_local) == -1){ /* If there is an error when closing the socket, shut down the server */ interruptHandler(SIGINT); @@ -190,7 +179,7 @@ void * manageRequest(int *sd){ and terminate the thread */ m = readLine(s_local, user_buff, MAX_USERNAME); if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); + printf("[SERVER_THREAD]: Error when reading from the socket\n"); if(close(s_local) == -1){ /* If there is an error when closing the socket, shut down the server */ interruptHandler(SIGINT); @@ -223,7 +212,7 @@ void * manageRequest(int *sd){ n = readLine(s_local, msg_buff, MAX_MSG); if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket"); + printf("[SERVER_THREAD]: Error when reading from the socket"); if(close(s_local) == -1){ /* If there is an error when closing the socket, shut down the server */ interruptHandler(SIGINT); @@ -235,16 +224,16 @@ void * manageRequest(int *sd){ /* Get the client IP address attached to the socket */ int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); if (err == -1){ - perror("[SERVER_THREAD]: Error when getting client address"); + printf("[SERVER_THREAD]: Error when getting client address"); /* Send error 3 to client and close socket */ out = 3; - goto respond_to_client; } - /* Connect the user to the server */ - pthread_mutex_lock(&list_mtx); - out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); - pthread_mutex_unlock(&list_mtx); - + /* Connect the user to the server if no error */ + if(out != 3){ + pthread_mutex_lock(&list_mtx); + out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); + pthread_mutex_unlock(&list_mtx); + } /* If result is 0, then check for the pending messages and send them */ if(out == 0){ @@ -290,8 +279,8 @@ void * manageRequest(int *sd){ *pend_msg = dequeueMsg(&(*pend_msg)); } pthread_mutex_unlock(&list_mtx); + goto destroy_thread; } - goto destroy_thread; } else if(strcmp(operation_buff, "DISCONNECT") == 0){ /* Get the IP from which the command is being executed */ @@ -300,7 +289,7 @@ void * manageRequest(int *sd){ int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); if (err == -1){ - perror("Error when getting client address"); + printf("Error when getting client address"); /* Send error 3 to client and close socket */ out = 3; goto respond_to_client; @@ -319,7 +308,7 @@ void * manageRequest(int *sd){ /* Read the destination user from the socket */ m = readLine(s_local, dest_user_buff, MAX_USERNAME); if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); + printf("[SERVER_THREAD]: Error when reading from the socket\n"); if(close(s_local) == -1){ /* If there is an error when closing the socket, shut down the server */ interruptHandler(SIGINT); @@ -332,7 +321,7 @@ void * manageRequest(int *sd){ /* Read the message from the socket */ n = readLine(s_local, msg_buff, MAX_MSG); if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); + printf("[SERVER_THREAD]: Error when reading from the socket\n"); if(close(s_local) == -1){ /* If there is an error when closing the socket, shut down the server */ interruptHandler(SIGINT); @@ -343,7 +332,7 @@ void * manageRequest(int *sd){ /* Read the MD5 hash from the socket */ m = readLine(s_local, md5_buff, MAX_MD5); if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); + printf("[SERVER_THREAD]: Error when reading from the socket\n"); if(close(s_local) == -1){ /* If there is an error when closing the socket, shut down the server */ interruptHandler(SIGINT); @@ -378,19 +367,7 @@ void * manageRequest(int *sd){ out = 0; ///////////////////////////////////////////// /* Store the message in the storage server */ - CLIENT *clnt; - - clnt = clnt_create ("127.0.0.1", STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror ("127.0.0.1"); - exit (1); - } - int result; - store_1(user_buff, dest_user_buff, last_id, msg_buff, md5_buff, &result, clnt); - if(result == -1) printf("[SERVER_THREAD]: Error in the storage service\n"); - else printf("Message stores OK in storage service\n"); - - clnt_destroy (clnt); + storeMessage_svc(user_buff, dest_user_buff, last_id, msg_buff, md5_buff); if((send_msg(s_local, &out, sizeof(out))) == -1){ /* If error when sending the message, close the socket and exit */ @@ -432,19 +409,8 @@ void * manageRequest(int *sd){ out = 0; ///////////////////////////////////////////// /* Store the message in the storage server */ - CLIENT *clnt; - - clnt = clnt_create ("127.0.0.1", STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror ("127.0.0.1"); - exit (1); - } - int result; - store_1(user_buff, dest_user_buff, last_id, msg_buff, md5_buff, &result, clnt); - if(result == -1) printf("[SERVER_THREAD]: Error in the storage service\n"); - else printf("Message stores OK in storage service\n"); + storeMessage_svc(user_buff, dest_user_buff, last_id, msg_buff, md5_buff); - clnt_destroy (clnt); if ((send_msg(s_local, &out, sizeof(out))) == -1){ /* If error when sending the message, close the socket and exit */ if(close(s_local) == -1){ @@ -468,7 +434,7 @@ void * manageRequest(int *sd){ /* At this point, the message is assumed to */ sendAck(user_buff, last_id); } - /* The response to the client is handled within this else-of statement, so the + /* The response to the client is handled within this else-if statement, so the 'respond_to_client' label is skipped and proceed to close the socket */ goto destroy_thread; } @@ -498,7 +464,7 @@ void * manageRequest(int *sd){ destroy_thread: if(close(s_local) == -1){ - perror("[SERVER_THREAD]: Error when closing the socket in the thread"); + printf("[SERVER_THREAD]: Error when closing the socket in the thread"); exit(-1); } pthread_exit(NULL); @@ -674,4 +640,28 @@ void sendAck(char * sender, unsigned int msg_id){ interruptHandler(SIGINT); } return; +} +/* Connects to the storage service (if available) and stores the message with the corresponding information +passed as parameters */ +void storeMessage_svc(char * sender, char * receiver, unsigned int id, char * msg, char * md5){ + CLIENT *clnt; + /* Create connection with the storage service */ + clnt = clnt_create (store_service_ip, STORE_SERVICE, STORE_VERSION, "tcp"); + /* If error, the service is unavailable. Show error and exit */ + if (clnt == NULL) { + fprintf(stderr, "ERROR, STORAGE SERVICE UNAVAILABLE"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + return; + } + int result; + /* Call the storage service */ + store_1(sender, receiver, id, msg, md5, &result, clnt); + /* Check for internal server error in the process */ + if(result == -1) fprintf(stderr, "ERROR IN THE STORAGE SERVICE"); + /* If everything went OK, prompt a message in the console */ + else fprintf(stderr, "MESSAGE %d STORED OK IN STORAGE SERVICE", id); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + /* Destroy the client and return */ + clnt_destroy (clnt); + return; } \ No newline at end of file diff --git a/lab2_pruebas/server.h b/lab2_pruebas/server.h index 5fd2c95..4fa1935 100644 --- a/lab2_pruebas/server.h +++ b/lab2_pruebas/server.h @@ -18,10 +18,13 @@ int s_server; /* Declare the list of users */ struct user *users; +char * store_service_ip; /* Variable for the IP of the message storage service server */ + /* ================FUNCTION HEADERS================ */ void interruptHandler(int sig); void * manageRequest(int *sd); void toUpperCase(char * string); int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored); void sendAck(char * sender, unsigned int msg_id); -int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int mgs_id); \ No newline at end of file +int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int mgs_id); +void storeMessage_svc(char * sender, char * receiver, unsigned int id, char * msg, char * md5); \ No newline at end of file diff --git a/lab2_pruebas/server.o b/lab2_pruebas/server.o index ce27ef0003019aade28bfa57e4b9b56481ba6841..dc7f8b6661c096f7d0cfa76ed61ae260d09ac70f 100644 GIT binary patch literal 42528 zcmdsgdwi6|)&H}*kSvgpKrW!5E(mf@!d(%SkgRNgT+BsL!6lbXvXbn^y#!DZY>1ME z*u+akMHA4fwcgrVrM`mH`bxD`QQJywwX_u!@omv+i?{MSXXc#UlOfys>)YQyzxgE3 zGxMD@XU?2+=FB|LPBt6e%P+LsY!)Y*b-ooZF=|P?Zfnr z4PQQs@cVe_9E{hFeX2k=B&-0+bsZbFdOD(;>O7r;CQb%2Plx;cnS0wdY#kgO>*;iF z^0e)BdOEE=$ihR7+xJE?o;sa;jpahhG6CdWD>XST;%d} zC}~xH@jjr(Q&ede%Aq=ocl-Z}_E{(QMMA~p*@H%j7oSdoqQ>mpMvp`5zU}ylXkz*6 z_qq4mEl-zw@6&0>2YzGv)9pQ7ReSejb)XUB3fSkq6{Uz#+?u~@kZSqb(q-nnQ{hx@)x_x7}>_EL-b4);#xT-^7xZu<&V{`2AJW_!?#UyDBN zDfiBJ$7xR;Kuxe%| zw?z)e2OXzBG6klgp4QiYh@Rl-*zNh^#0g_&#~XM$+p)gW>S(WnyXJ|*h?B%~p02Jw zBvzzP4+AQpv-U=)YTJ$16VdsqQQS>+6X6L%pN-pS-#%zU!K16|V7v#6da{Qm)dOBn zL}$gt`ufbui1`7)+|Q#=0|{kLNetfKmk_A5|hUALhKVE%5nX?07xv;f++8?Ps#*@op` zP)c*8J*n;s9T9h2foV_OjqE$yZ-py42TUVUdk4(-S6C8L_r!1W-n8~n$!LWxv<-PC z27R#pZ-{0gn|YgPwLTVw$wotq|rk94$0RFP3n$8*@}Kl(L_3)Hz=k#}`Hj;*?G zQ-obVQqHdX%KtGcF~8$D_t??C4rtqU^n4A;;+&4EXsquOuI!5&nw-EW}k!xW2h<9$dqf#U^ z7uq+S@yM+hX$K4^Y3=J&T^FjD+|!)6|ADZk46T<*mwNRJjZdWL&>_*3tgI z97x;*#)R3tHmwi~auXet@G`^YcAAR0ZvsJ;8hlYsvJqv@}|V#N&%YKlkUBOik@X_ZXdvllit z#k?8*53FrRm;DEs{VQLe{&gL$`>3t^B-+G}T=BWi55ki@9UBhpbAO1Acr>Te{h_CJ zzo*j;4(olx6ZyuY*R7oN`O0qFRkhzK2S@igDI;mZ@z1ES{gx`mc4%ANKa7)Z+VDdg$PW?9I&vFaH*MHrMQ3!vTbIt_ZcituxD!;} z>3&eGBDifO1=c_l5Q%i7D&mh%yFee-kqdytv#Y{gQs^yqS9m(y2lu((ugG8GegV80 zlz)&lOcB2LATW%_cI>-9MQ8DY{U|!CwgQ{|1Gp8S{hM}y3meSg=~x?BcMqdBDZtD6 zQ*7%;0R^r{y~KwfcYaVH$XvDc-*tYl!SOoJ>^bTUSY)trAf6B(uEq(`5xwv0dw<&I z+Xu9XH@^Vf^225SVoJo!!FmCkno}Ze^L*^$-=7SzPX6yF!)EmE&Z_$oI>o>6IP~H% z{jC~~TlHuI^5vnk&-Qn#0XWPN947Z?J~m#}eKf86XlnP-q1{K5yN?dSRReU0w%2bz zP1~2@ssO=oe+LBSj^e$`!4ifakQb^Q%+p{KYtNk+rpRT%bjLhx8;)7ge0EoOSu`HW zkTxDCs5U`}KJp+CFYkg?sdEDaJqS~3q0lQ-+lS5*(PPCOKM_j?tUl?mETN)YqT{hA zcYG9H^Qw1fz;b{o{!dp9(A_Zz!SI3@Ufgz89rJX&d18M8jY7|sb$Nxm{9+6m5y*xC)wrVT8iIP^&NG3I}V~_#!zuIo6C8)!MSE!qpAF1+JW2 zBALMRPRbTc;!wRJ9>r zb%ZJO5G-G$G0&u{@dxUdth%l)xNo@VuwPm>e^agOH8oZU?AYDjrfBBBolTKE&7cl(g@?KQ^aw4Z>6W)onHv%6wQzh z#jFnno8@rI-AjrpD&6H)RY@#cP+C&rE~w=G2jth_izu;coBX~`NYN|#v^!!Gq> z4V@Ua3X3Y3TfcE9XpZZpHL=dRFu!PdZ2SZEUrSzz7T1lYto%P%Cg|)1SBVhAu9zhGToIOFWGJQ@rGr$t1y8t(=Gd1 z7s7SWpusSEExS`y*lkX%()Bazk;)G5=NOrdGsQkgA$DiH!r{US)ygq$V=UWN9LsLT zY`-R*@yagD4tDDHPyG%GNzOkay%t*IyJKApI`amoROp}yJ+W-$HO>w`5R+lhOV~_F znx1re87N8(Fv+E2z0Qw&9!Q*;Ve&$3Is|^Lvy(5l4(NwsJ~=<0U5wIN!%)DRpg!dX zkeN@d-IoKRdrMx1tApwxxmYa}I$xsUBHKZjcCyZY z8}rlIZ&LG;JI8>=w4}FR5AAh!TO7S(8md$o2Xjj3T=s6Q?K?k$hKiz?DU$WDoa2r_ zWBmNi8iYM(jJ_8r@YTI#Q&+pXI@EQLx(-&?By}A+0x8jABk8U>95S{ZirOihcf0|Z z8l3YkWKQ|*2-~$(e}b%%J5@_H^z>$KKWOL~$uQ+r`=R5I5QJ2s4xRFSs8C{@EU*?; z3+YreDe5{xU9;8oG<6-Pu2a-CM_qH(b(Xr$R@as4dWE{ysB43|HmU1ob={(_9qM{Q zYr{sPS$jE;CVl8%K8ua!qqsJPevD(W>rwvo&oD~u_(T7u$%j<}hanKJl$MeqSYXId z3U&>vTLBfS>9Bf)Dc^wfdd>`MjL(x{e$4B6GVDsE8Lb(OP66!k}RaQy_g&LVz*IaF-L@}SCgh*+{e5RF}p7M>K07K=lDVs5?t^FG0)Hu?t z)X^z7UXjE!9go7mHTgH=+0J-&YdqT(&)zf#IO}F=M(S)g4pV1)P(eC-b6lcZ;@Mj< zj#4;ExvmWa(j#d{g;4%B6gyoL9Z3BMQAL#cF?K}xzoY)Os#1?*UeEm0&oHlNe(L9# zcj>lYU|!Gs)Gslgr}3{af40v51M`cr;9{j(HY|8_!KMmjx?op@6}m9UhHY2tLXz!# zC^YJV(}vQv=t7DrM08=eZ9CMg(}j_?dMIqtg$&yaD11W~GHr#xtxXq3+bW^3MHj}| z9ssg#U6^9S__j?Krm8}pE=*H}2X$e(Dm<Vt$x6+l)--E*?8|=immQ`U8#a1qeDDqI~m5gQp+5&}9 ze}v{qPGpkgJQuDy@(dq$CseALPLanNo#aI96riyt+tQMpu%1F0LTfT+ty5KAE%BCZ zjK9T78-ng|^|O;GEdg1iO+UeF!$5Y=@B|=OpJ2V5HP?Jrq?( zE*;NCOhkpKNIXJqsFXdNBj-N@gsS(E=O6{;7hrx6FuWbAPeYpca+7({2T+!pRC&8~ z`ijDGE3^4is67L-d6|KwFoPBM%$9usQ+~^r@TtDGc4o&=@E<+nGQWxW(VD&!^Ddp= z`Uy0htfz5V=2fr8n1=s?5keD1GviFx&W1cOU0)7)VtP#o^2Bt*R>Ipc2*i9Tf_lvESpfXCrTf$~&96%Q0%SEHkI^*LCLqzzb&7iiNAw^3S<6yx+LeDkWF%; z11PV{+?EPE|0HJyTou>JkkMQ*>YOPYENhM*>P~hrg(TY5BwNFsSr>j28Y**TEpdT5 zt<0w2S}V(g`9XTS?96h14~QnL@vXPAim;;zwN}>B^H4|~qq53>7voZ~6~<2-E73sO zYqP3Qo#}dHS(m>D^s22VYh_+4)33sQsO=S)*G`z_MIp7bWi|XB$hEU&H6s5-n$hH} z)$3!7s=o{&Mt|Gzh$GOgb84N>`_>N-qa^)4_= z}(sjJ>2rmOr&bJBB&kWD9vO}14!X_!(p9~|$sc&UpiTc#pHR#hi8$>PWY#93@-^y;7 z1`U<@vKtS9;;hV2)XI)vZ}e!Fef>Nj(XN>NjfNO`o3f;C+PxZvqP-xy2i=DDICfbAE!*kH+tIUWaz7o#1L;7_wYv6B++jF+_EYgLDz4YH+i{!W=;>QKHDKB9 z){G9cPHnbq_vpg!TBio15zE$#dn`xKFIuN5VO~S?tE9{OV&&sGfzd3q7Y*o6M4dc-j8*JKC`>)aLbSItE$uVmFK%9zpdZ-b#(;Es? z0k?xQaU{04Vm4TfWk|N|4+H5em3>P+dDweAxqf&&QGM8ZR$8-F<-4kkSxgV<8#JGq z$<5!T<|{NeE|$%~J*|z4o;kRAjTIL$u~xt{8}$g^qu!gS_s{zEJ|Z?T$HHTU=J1*7 z-O;mcWB+pZM%_QxZ-Fujz~xObdM&}1*KvDoqT|*aP-`_QJ23UM|hmdU)oR> zN6&*BbAv6GZH9e36zx4_ntHY!?P%{=G?x@--9?$)kPoyo+OB)M7oN~zO9(+lZP;f4 z4`s#_GN8xK?Y|^b+O|InL|SH#9YbJT2Ohf~)2$?9kzLOo9>Y?*c4i*KGCPk!OI=}C zuXcD4Yj_YO%ndPN%45P5LA2Gv+@OR3Z|YxMGzXqnY&Vc(&yaOAF~&P>9WFmelHX{@ zwZ`7FS_{^#27=Bx5A`wXA$(GtkJ+^0_+&MN9E8BpgYYGw2@W0zOv2Z!CS@|dD>cC( zv!D|b96At~idr`*(+2`G1`<9CjT&!m*+$qV4$m0o7(QnB2;0cyba<6+pI{9ec0NF0 z{cOuIe8I4DhZTXt4I&)0GdK-Mz`5{-RmmAP$M9jpkkST4C%mwuW@iK0kWu|=hsJBc zGi|n_3~ZA!&ML~t1?tpMwm7HZ8KRIjNbxDk;C|94LqB7o%?OoAf`?_50gulZ1P$Yq znb4tK%URguK>nWMo@6XG4f{v*eB!6{m;lTJZf zEgJpp#ftW1W2o8EnWsi-e&zvn8P+_Z%7`kd)j$@y@*_j= zBp9nds3GF03sI2Ki}FJe90+znqQsqoN0C4%raExo#X4vM@~l(c15I@_(g+abYMazh zA&0}Jen}gR+F6F^xdR19mhF)~=LH`hg%3V$N%cw2M|yWUFI9!^q@LcL?>Tc1^}+8B z_}%Hu=soQ0dF0T&4bDrQeNp>_EN4c;o6aofi%{2a=-yx1r;J|LcgXpQv$yT=i#wce z9)7WRXK(JG9_{U0<;-ymd$;#cZ|@HK_>7)I&hdSFFw+Z}-S0VDd!5Vp`dEx&xAQXl zgp8iUYai*g&&=3)*!c-iKVzSf;rw~8^U_Q2?X{no0g}AA(|%6Y&z=5WN2Bv$$EnVo z-piej^{JN6_Sz?ByyyIWyerPddf(HlM(fN;a_06$FWUiF++VOyG zp<|58Iqp#3&YwfSjvl<&r;boEEKPD=aD(&FUguwTsB(Q$t9??Y^XHe&v5y~l#M#iW z!Y&xibaFPO_)x2KjfRl@;aHd+`qEc_Ty4C0PK{qT(ab=lRQChIfTb_Rjv<>*y zMc`If9jR9IYeW8sPme&cYmTgoHFcL1E*?;O{R=14T)JFme9iuBh)u{u=ScpfZiGv>{4&1i7V zs1HY~YuC(Z2?Zl?3@I3zfujjDfC_8ThTv7`Oweo%SfUxV4ps%N!bcchaEsDHH^g5! z?NtoNrr=1JH{4pQM9l}E09OUy27XPNrp{{gH#7q4fSx00kb?Y@N_7MX3;hS|ZwUD6 zTwv-D4jJZHL!>dL{GuhrWtP%FxqB&`TykqQps*K$iM28-+!vMQ7c6sE3XfA~#k^rF z8i4m+u@1c6aEm_x6Aqm>436y6Sy<+ptHWz7r3(-N%nY+nO-uAVn1+EMFc%A!6;=n| zKwCWVionLzFhSvYPYp)dxuOydY!zEI!MgQU3z*i6F9%Quz>7!fVy%{xyA|ct!GKRqATKyT1SUjntDdyX zzNqZtc~&FMI+zkl7Ccf0Q7441+!FG)R!4jmxPwnm-va2h1a#dJgz2bsq5~r+YHj0s zfNDa)>bhFgg_@WUGIUHsDX;d0P?J$FP6cwfuyQ4GEj2K7mvVQ(#j!%68-1|cU12o_ z@myZSinMycy=ozLYT+R;gCAowWq;Fc^2?W0SY`U)oEPR$ex=*Hw6v%s9}jnVbyNd) z2zXWa@&@bc!>|uiih@bFPRD0-mpafOMqP3O44g30G3Lc|Spd$;1$RX}4veX8~m^d8t}jA>?pCMhP&AmXw0W=o60+Ck=xax-0VwJb*{8_BO)~KjI6og@BGO z10k^%Y=GNUHA};^_$bxKg0?ad9D$4kt6Exop#m75j`%gv`g%)mti9C{T;9=DaJ2<% zLEM0Yw(96D1PYY2WLEx)<=}#BKD2^fl5q_eOQ7}vHEH#3S5I5yQ3VqLjxF+1p_Cd0 zslhbt4Il}|bk?U@fM6~|-0*{Jur+~hL2|vo;5vwARa=FA&ZZZm7*`!rBNi_iVQ`>Y zpC1-F?Hx7iL9bS@rTVI<&x>1l@Q9Y`x|#Ym%c4n-*c^?`Rf|V;6Rh=NkOw^oCpGMp z!XUnipe3axiU<06h9a`y=!Rx$@aLO4XP;(HT?)t47u;g5* zLN>0h(4aOLg~`r=wXxZh6$Kz77s{$|Ytj;pDC5UHw!aZM{(?rm-g!$pN0kp-U0b&IRC*59A6rD#r!i07r$z2GydrjcW3!rv%pcVz;}p z%wr)pTnaI5ozm;|fz|N{dQC9c1UiJ4-Ws*7N4x9!8dzHm4+yZ) zUI!~QybRGh`l1pHv9LB(;7ovn>UHsb0uEPsYi0g&cR7UF{E|XgT3O1XGT0b}b@T%L zd2y{pMPeoz+Y^PoYU_*}1Le!yx)OHI=%s4lASJHv-g-Z5ID#0#pwSt>twW=xqsVptM#GSuPZHx8x zLJb|2!)rRK0=F-E*Q|CQ2w`(Qlj(^Jg5Yf2#LylFeM3(`bWZStm;&=Xst?*QdP*UP zSW5~D7Pux?)j$x7>Suu&^P;LW^SYVya`NWn%$Z_5BdB*J@Zpt8wyVo6+q!hyn3QB^ zH@w@yw~%A0ZVKM>ho|3QFG$4~hgf$uVvy8F#9ZfYb6_2aqmueqmg_ui4i}&;y2@IO zcdmnW_KTrofUwV7u?~{@jE!mR-%$iu|AeZAH|X%jD8|E);y?nd|0UI{Pl&j^bLVpUI7C*43L@b2s*bt=NFbl}Ud0g^+XggL3kfp6gkNDh3zHb8RVOSS=$ zLmy)}sm7tt^bCO0YgMDhaq?duC<=!)@at3uokB9$z-Z|VwNc^F2Vwf5cnD;K_3;U` zIVQemLLPA!f{-Tbn{@`<2g0#_AU?SUJ^Skd1Lse=FHC@!5zZFl`^p5kk8mCj-`6C- zuLXRh@EWF9{|a1iAbcCpBY)=0M>_6Kz~{aM_;(ZF!{AlxK>a?G zfc}*P_^%S+?a02|(1o+Yfer`*E4^4oNOn{F|fWs+fHLiuE3_kfWhwx(fv=S4ahQL4V8AxwS z65tmnz-trW!36lVfTR9zCjImIm=3~=;EV<)J}7~IqC1eBI}_mFO@Mzt0gm6mHxU2l z6X35Wz<-kfKa>Ffp9J_n65vB&4>ORQ^!Ndv@2QQv+6#;KOtClh{T?>d`v&VwjfZ)DJ)-{7))x~{zt>O? zLNN+_ro=}fgD4s}nG9br!+QaInYJ7sn3#ue9W?Lv!YBZTpWwOM7pekNSn!6q1-AO? zSp?s-sCUEl@U#|))MI5CV8!7E4}PYAHUQ-y8NVmRJidOf!#5RCA5dC#{xDbp|Ik=< z;18EmfAGBK4;Sbv$VXf7Ezoj!Lt9j+9U{i`q?i084+wzo#UsHezW<^|&?U%;eZeyx zFkNP7(sKbhNzgUMd@|Sv6e>p|? z96^tVzNVGELypPv#3;`pJa?cM1M$1inb%8wqDQN7Hya1ih5APtZ%dd`HkryZl(- zavk3<@O&Z9Zxir8DCniVh9yH|NGSGV_+`7FCUB|G=>nJfJX_#WpBD&RuKN{)v)-1G z-c}fR3E@7$r$ETrByh?9DuWO2D_RZw65`(`_(=X+1iiFZm!OyS+Ai=yA?G6r`20Z7 zOS?Rkfc_alFZ=zyz}=!>{cSDUz7ju$J}5!`%W<7fII2a;bCJL=6#UiS;zJqfmk4}Q z0{-oSkCgvbfqMj>A1C0mN6vyu2r z6!hZ-{X9W0^?9zKm*e#aT+ZuN0xuH$8woe<)hy_x97t5I|=%t(s1uo@W zCU7a|B?6anh6OI=xsh|S-^&KSx@EOQ3`T6rS zg{GhFZH%V;8Jh91uo@$Rp3(2cLXlw{6OGRPTTOf ze&l*OM&NRvlS?>{i}z7;44n5-`GSw!=XeAz`4<~}cpp`6;JlCW3OKA<@=c&fy;iI1b&g=^BCdSuZ;6g2znWZUl(|};PX}j zKED_AGT#1G;L?uz`xxWz@eYt4^tbQmcqQ$1YB~r33CSd%GYDsWvOi2PaQ26pf{*0C zLEw|157z$-mZVd};-~lrt!Bsn6>LUL^Q; zB;bFOpqFw!C-7py=eGiv@!v=5)eMK4%JgDQB+0Wt=%j;4;oE zPQZVOpqFy461a>rA;CxPw>JuUIbS*jF8z6jz@G6AdFq!lP0+)WB?-jV5ci%Vo z@aKq63i{cC&u)QBKF=9^c>eA)aGt-v6ny0T9gH9LKtlao2ERPs(E^wKP9>c6P(XUf z74%a6vjr~sEHe14CO*Z2UdmZ1aLMOVgAeQB3Ik_7tPy-9|JwvE{efOTtM>-Us3=PG zn5b}k6uuD^2#J=*7`}r(w<7h&@Mj1|AH#%2Vxh`Y)K%{rQP-UED1#XGdnxG+V-6<9 z*OGt>H5|iNQ5okTCZ^A)&M}5yVtg0zU#a03{wpMa8%dl0FX^_ze17@B;%MMdSL^zzc~#pYOoopeVhhH$1P7iSZPo&o=NgHJLTez^^Ai z;qyz(r-S4?+n~Rgo&)hbIVPs>A^9&d@NHzrl?Hx4$=_(;6KIn0xg+L(9qIpD20in+ z)4=iEJf`~%`~wYJKQQno376-Hu*<6n-*3?0PxIn;2L5Z(!}|vQGTG%51LyNwJo$ON z`1NR*Qpk@O$JmOAKd)o_1)}G3M~wfJ?3-usc?Ag|@p&Ys->qS*%%Eqx@aGat&vsdB z(0@tx<@fhY&-(ecLH`2DgXg+2F@1>a{-}Yg|ELah>OZIpdj4GS1%rM&&r<_GO!|4p zz^9TO@tig$mgioQ^K%1dy$vQiFg@!n-N0FIIR^d_`TuMKU!cXXN(`Lf*gC-dI%xj- z4fPya6iUqJTdb3V-f3*z&xL4OC)|HZ)h8_2#e@bhUs$|QX=|5K^VcgFb~ zfXkp~JDp|VGl~Cn0}m3;c4q#gw7IOa4f-w`@A(G)F~zAu16N-e54@HdIDbwi&;Q`m z{Sn21iw*kyR9ayMgyNh>r24EL$pps415Ra;c5f#B!Amv;J+jK8w{M! zEp0XM4=G;VY~Y(n&)W=qF3Eq7fuBNr?lbV;6a7O5uKvX*$oc~VUqyP@ZQvWI{Gx&T zXuQ8NaF*{62Hr{Z|6|~VG+)x`&VJZI<*^2yMdN}maa4)vr%^nFFG=i&^SK9kt_fB4 zed4p+pnsd>yVSsoG+WDO;J>0cbCrQlB0u5tODyLbH1Bp8^o2zKq=COp<+ltR|IQH8 zAp`%4%Et`+T++`M2L2n0M@gg)mUA%4Gs3_hB7fsJ#PnwoKFOeel;ezn^ZY!|!1>&y z$H2$XcqH*020nuL zKVjgnQF*U{Kd;5NeqrE;iO&H8zl8Mgu7STo_%Q?jjO_KLfiEXL4jcciaf0yLD#K145a-D&1A^!4w6pH>`^5^RedM}Nu)4pKR{=VSQ16YK3f@{?x``cjIwzcBEnME@HDzliX|2L3SNe>L#qq&FMc zpXFIa{;B^PGW%AE11FxcSZ8Pv6lKl4>_&(C-;|6{Ujq7Iy{u}cD0|x$g@`rZ}d^qXhT?2oc z_}fu2kXS#ZR32{NeRio{vIkDACSiv0E*13y9Z7Z~`}WG}aYUrX!eG6PQ`{aj?=KOj9^V&HsUWR-!h zq;b_6_)my`$iQciJiLErJ^YgB9yaKwl03T%Jel;*=YN<_i1e`Ep!ZR~ZyWd;D!-oq z|HQzD(ENgbbf*&c%W)*dz#pLUXaoOTH^;A4@5kqF6i@hhk@+{1p3gJrr_p$e4EzM? zt;)ckBfqLP@YOWVW&Eurj7&yn1-x~PmWcR}c&VQftk%4bwzcui=q#q}p z7h?S^q`n;$Ldun@JCs8#u?uMgy-TyF?6}_d}Zu{4fp> z(pCd+(Xh46z#B+k_Zj$2q_@Wnd<@w||99H>{$v*ULvy7@g5R5vhF51KM**|c_-QHa|7q+ zvY~W-hV{(PU#AKj`R^tEX9^to=a9e65jfHxBYOOYHJF$`(}xUPeJLQ&ttXuI!{77N zZP5Rg^!A8>AEk9|m%)d>ujo~Sp6&RKf!{;(bQqmuVfopP(+vCyis$nPXZiX2oQe&4 z?w8O1Fn{j1%b@3e?>6wW$p0TP@J#Zz-3I;w`8l8G;eP)@@*g$m*LP=l^-yi#Jl?Ae{COJJ^#*f8W(R27eyc{}?#icbYigg7fGaWC&@2f&Yl`r3T(Y^Sa8w$I&`i zO*l5EC0Fsk(x4wo^QBeL(-NoXHyZSBC=~vKkDw=4P&Kz2^e&RKPta2+QuN<7=uaa% z{z%Z%)Kv6)4EmQ*d5~Tb^yI1vf5V`+k)Quw(36Q2{rd)eh~oJtf}XO9{wsri1kJA@ z^no4fpFg|91|zA!^M!SHx}YDeIP1$KgT9jdcDA7BGf3Ei%&Fon=MiU{qC9dR^%41( ziMy~7B&3z}d>)DMDT>On@XQq^#`&vHBN~q39M88IILGH*2F~&GfPr&7Id0%QAFZ75 z`eyh(WVlB{`VL<=rgI@*Q*}-R|2;~M`o8v@nsC_42?cdQ)z3_w^D5mjs3S8fB`6-mRS4U~@D64}+Wl{5y^u_@5r|?>OKav52j& z(OVzF|10pnPcC4AHkCerTo>U5lKCIT$PIKQT=8!N(Ulj$uS|Vay5yOl?>N`6ElpeX zoxxah7U2{&5mM>5a`G?;ceDTLfFaL+xBX1wiT)_lLF#{t!Igo`1B3KOV_+sNo)a`NYf84F{k~D2 zXXZa=&YU^t%z5USo!xA7FTKQWvspUXtP8DpNuzMz70)lE>_RKs%CKrYU2l0hj-_|4 zKmH`b@8YF-kRR6spl?sxMKbWoim zdb+2(6RSNP2b`X6Yd>=IFt5%7k<55+PXg5m>MGtO9hzwBF88(@)^9uEu&fOuFmnPj zLpG;A;(QbJ@}DJp(g_1o(sz;C;sWePL&S@ZCqYqRcHKrbQTp!q_(XKbaWx)tzi78S zJ?;aKry&dY7gLUE>glODus^E{ZT1+}l01jpTTp-)#g@XyhEdCx9>@Mk5;h3%9@w8w zmCESQ<$&rE?3doXa9EdnPq%wp+M@@!MPrwHx8__r@VILGJXaJII`3@kE0{wc~3X+>s|=XzR>0AhQ?j5oOn_BTFl%YR$14N z9|w14XMl{Hc3{h`o}SYCJzZLzUGB}@?#*}F2iPOilO6r+1nq(S zNu1)ON7D>Ws_%}EZIQR*ijLDCnFAAA$BU=H=R95e&i(A9ND*(~>F&h(ZmX-a8t#fG zjv!7F&v|-!29TIYA5Q@)p{dSgP}Q*yuP36jgjns&Kx7D zWWIu!u!q;(zv zEgkBtfNp7qgLaO`RBvkM-&TDmGS}K^?CLB-W%X>w-ofa-a8qWKCRqt+$3DECh-SxC z^K(*_<48V?Esmx=`gP>l-MI~}>8l5A!A^)l zBQ6w9)Tv+E;W#2Fzk|`DOB7N((~c1jZX7=1lN+Rs*T%HHlb1iT^@=2l@)lK#I z$nEJRtAgMC15FVNeK13j1(0-angl-4)!9Hrje5F%f}MUos8L*??tMhw({n$z>e)_& zJr9#}tG)_J#s1VA9^aKb>0e+$w~0fJu*UK<8?@n?1xoAyko-^Nr})>Xx?-)4 zx%t4!p~ZIO*YIGAbBX7S##=f|(V*bvWLI9fbhbb#-e%K2Bmy@-1hb%fA69~D^<=@Q z2$Kc%uGola0*l;K73}Osia{ck|7WY7&P~X@V;|lUtbLaDP{{Z6>{B8rBX3t?NkQPv z!Fl3giFe?W_{Ty(0g=P?@?RtN#sMm<;J6-dUfbHHr3O$ z{_r99F;JX!G`HJ*%v1lOr`rv0f)nkcWP35~5ernxPyH>94)-yeSr0LMe=mfksaIb0 zQ{MAf2<+eWbVXnHbk!X8bd|nX+~s~QE`_HXYP(Bc?5=sv(;Ynw9ltIjT$fwymvpQ@ zej=Lu7(DS$99^sp(G85dOW%d&C0*|i5qi|ZFTq-lR&`Iaqz5;Fq$h0Z znceHRg1ve@`0Cybs_u60710=Kta4Xg=B~VIzROb^XlU^Vnq2-s#1{%h+akHHqLyG7p|CI1 z?hCoX!TMFcNN#SfHM7mC3D-9H=DTudaplZ5*9C3CP~<}5>kfs2q4}-~09>unaKu&T z1IDgMv(FW(4K(>&`FXPoTo){GVH3R1J?ES`=SX>ogKJH*F8~ew5r1uq|5}ss}iY0fk0>imHQO;+2`5b}k?u1Jvhaw}*ddT;TEBfbE&7(^Am zkOb4pnH-)!xnZOgsc*CLXV1&cga7hl49-q#izaD6Zk@YP5B!2nUl?J7nxNJEik&{qSq)qY^gN$N*B9DZXc z*lMWhUuiees&p?Zsj7BYS~X>{Y*BexnY*a^%gEE@i_oy^Tl~I2#KktWKu?pyF8bdZ zIXP?3N0jPj!zfMDg|#Ki-0A3VORMQ^jgzQlN+o{3QLxvtgPoD^;XZb2R&AK z7Ba(9T=(!e!{?Z5a)axV%JNbazq%Z+Rn_H{?qUn2awQ_NKF+o*cu9rigivW&sd$m; zyFj3m-G(2SSav(@<>P+2Wk2f@xDFdO9Ok@bcT$Dj=EN#hpWld7cG%3($Q+z^_F;tB zo$(5X3oEFVBWGhQ+ff?JZpQ4OCf)JM9?TARs`ih*3WX%+ACO)Nt?+%ZE{2_X6I2p9 zY*Jq=8+l1*haZl~Fzgv@Mv|r{omK&gq5&qk=nYZja}ENDQ!z}w0Gq<5q-C9(e9;D= zABp+o!g%&#l-5c?0dIx+)CV9lk6XL11Vr_gyaYcKq8^e<>GL6#FH>-m^Q%xzgGesN zEVY`Nyy5~_^eD=!(LS8_;xL9Od?n&em9IlQRplEIPgnWo0?22oydU$~Du2yE=xV$* zYHIQojnI)A-1-*)RM`!2bYpy+?LbQ7oWc@sLMcb*CHMR>ChdO-X?umVeMF*qzYX&& z;q90oukdXzfP^lU-;Qmks{9?8pP~I`R9oOJQI(KRqDiIe7`kTD^(%DEq3bld=F)W*U1!sE4qaE!^=i7- z(Y1-LEp**X*DZAIqU#Bz4I7VU&6RpI=_B9!BsQ84;@TMb7aWUSjq!R2 zeor$>U5zn8F-i?#UNK4yqhZrC{h`%XY6OKEo7vD>Yo$gppFu*Twqrii8kL@UdjXtX_~J4VBm`UmUy;1p4}SH_QbQd7650}jAo?D_Tn&A zwhtAgvbV)0x;>uVhH;d`QR;>c5J-)r6BWYw?I?D-B04IQQ_Q7Z46|X|m8y_ryATS^s^GMtv~8-8N`;6jjJEBBnzgDh*47AxO{$P#n+b&*RUy+> z4BR?YVZ5yx3R_em$M$U?>s5tmHjHmORAD+522|l}D(qE-8C1Am6>@D^5R@NNg;^xq z0aeJiT>=dA}rrOeyobWt_ zGKAJ-%vz^Xo*wa*ZGykeN*jUhXS1n_kr*Myav=o+aV8g1eb9V77e=jug3G3)9S?aL z!wG9*Yq-hEv!@S3V(K=1c)Z(mk_NhMZ8*nDPhJf)mVJW10h|+inq(&#(nnz9sdgAC za!zvY0!E~k8=y!Xxl}wGGZ_^^k$4O(sK_49vGbk)Lh60&c}T(e`IsLD4DW>MuOLnQ zag%xJAE7KYNqM_<+OpzGE3@?@s68FCd6|L5FoTJEX4@fvIltvNe1xy8o!K=K{722W z%v&%&UeR}B-lg(eKZK@J)ikciT>V0fY4|;i5Q-?88E3j?4&<5Xx=P41)9XTzXQu17 zLS9Yd%#GiIyqdO=Le0Jb-R98c2nvwoM2#dlaV3)E zMDd7f1T;`on1h-$xQ$apA88_#R1x8Tb8w_Uc`Bg91BF-B=;*roJgi32CalH_v}uLg zI3>t3tVcm{jH)>^UW+x?0V^EwpqkqNI0MH{DDb-%Ns$REL6KrZsM)7$j>c**2Q?qS zZ5&RzB&|Gkk@7I7zHc;BxeR(iR)CzD6SZF&J+%oRp5uZlO2qZM5~%)YqT@# zl3So5nJa6N3)E?4wglH$Ssu&}Q_E#%mixOvG-;J@ot0IB9ZjmYvKB8uAytgZs(dxZ zrD`jTpE*{eft1%~)u1}l)yT50dMttV?m-Y89f752kzug1J`!YnTeshlmV>32Y` zoGq&v`7czAre>{N7h_a=3uKv5-5!M15bF;@UU_+z?>CU=4jPf(Wu37ZZaH`Xwd0VI zoXFFKQyaNZl{R*-uGt@}!5p+f$&;M-=z8o&Gkpf~NlqMbJUV30zHRjX-gsnMwdNZ^ z`H^%@p{rU2W>J0=UDb*(gYu*4nnqW(Mog#tSh{A?bsSyC)AbZOr zY#94u-^y+}8yb@NvYX!m#aWr5sFfYT-uTrn`-ZtdqFgci#-G+$9`3Pj0-eHyPkn! zP!;+XbPl z7In&ll{_Zf&Smg+G?lVM;OINHfs458cJ#fzfq2`#@&q(-^!08WR2~ zz7ID{Z?A2!Y^ST@$J~@=prdc|#_9gXkY!tpi)lyS{mf|ITcUI|>GM^zCg|V&1KqALQa5q=P}MQMKR1^@pSH zMJ|4ei|bVFw{a2T=o?rwJz&}PDn?JWPj9ts-%*9<+NTGj5zBTDuD~39Pqd#+!W=>8 zprp!wjg@C0x)0vFR0pprm2Tqhf2$O6fMtCRms^g${q56zA<)_})#r=tGm%LyUTh<5 z&(L_@m0+rkhjE=E8l}tYRe3BeS{;4AY@bDp$8-5`JFv_{zL>hy&2m5os@-&(7FU(e zwrP14pP9_(&2~$OxWMQ=U{lK4*RHq(ZMeL1^u5|n$_d4~TW?d2@IDi6X7&fTyv?R; z`Qmk|J0-+!rh1*J9%L>bbNO+D%hPc#ypTkV(n4}1%rsnW=A$NT$74oZiDgK(ohg}? zHJh@>>BYw0=b7cVY@bsf_P!O?9I8yRqv>?IhcmXFU9sj#cAVe#zGaG=E>;xalG&z< zo&sDO$BGLzu~Og@8@`hW+SF_jH?ja|3brnK!m z4dSPg`5Hq9*VxsVwy}(>j4`wrV`zsq0a&_V8M}PO@X)WQ)pbn zb$_SEB|jJXm>`%!aUu{qQ)0wlnMa(!V|CB)(n%ySJ-M=MQ%+IC&lyhCXCQ*=ICDH$ zbW*$nSU=?2E;>c2b;>DdtA*q5xR_|q8XoJy4$Y=W!jg>QW?}{&G29eXh_th~DHronz_G?ABYl2MoZ*JtvsoB!Ge;5{ zau@Irne-gR-m>P#2XN6T7l6g)NdN_dU2kw{_{R%P%Hc(Rs1pMrb0)YErc{{an6855 z8K!!^t5W;%mBKnt^Zva+Vm^9yp1oGSt4vpzqzQ4%# zD{w78L~3IE5Z|BUyPx|roA_``*?JRP!e;wyH0&Kh0vasOiiSh8{DJzGXoJs^g;{IQ zo$H-jFcUr*kFK5B6o}5M^GCv8KoVZZ6fOR`SxxozCo?%`=*|K@_+Zl)8O$C5{0!RY zHPlvbS?aU*T*yH_0-w@Ga+`5Lk#%jpFl51fbQU5qP&D`&0R}}x{H;Dk(560()O65< zKj)|Bn8#086|Fx2cZe7uQ$rnOp({T!1kZ!9`hyB$j;as^8NDb!6v2UDnITHLQ}8Gj z2*sph241X#HXzSh>KzoBeO~ z_wTZwkIwVI4Ck}` z&gIMR?zf+r0iwOK+kRfwvrd1%quF_{<5XwvK(q7v1Jv-ze*4sncbq?n_oQ>N&iD6| z=+4|E=d6L~6}vzX=aPYE?D?6FP{c8I**Yi5?9L#vdvSyVB*=c}EB1m+kZ9kt_VY6P zqD{9)9s4%A98Xz8wds$w$-_4Lo!6{5j3aqE53kQtt>cjmk2|6lIQH8va7=JHbNUB% zKMTD&`tV|(K87S%oaDUdCg*+q&cE)Wa${1veM+YD+2sZHGsYfqHZ|>XX7)Ry15_DF z8UO_}^*j4^Ie)VYnl$Zhq6+(&W0Q8hy$ft_KO@tAMi$>8oB8%G@$UQ}U){nz@S9&hO9me;!qj-^;UbG&exqXDY@jjgq9)S4XL z8*B?(FvsW2rltXJV{NOyWgXOc;ZOsG-pazup>4poHUhVX+DI+YuL=1hJ~aYj*BV(HYw9j5Dy+c%LcVsZvZBaaQdV7Q z)i#ri-WJe+6|D6(w$!!A*qy-%Jh_*oJZ4S2jW;I14{#k2+p;h6w+IrutVo+wtUk9g-8fHRpkN8@{ zvs!BFX2a;CJ`gOXm73xTuz7KpYs!|Cm0w;~SPZ-O6cd~A_zfrw zwGQGoDoYd>6;)U*K{#%MXEKy=ic5(Dc+Vm@t5sE6QdL@5UF3mb1R5Z?Hn*XwNk4@( z)gJG~g~dg9c4SdmjjJd>-*rxIL2jOFc3%G6yt#Sjxn{OTq5RM~Vt1KEihyYfF$wspf9Svq(APCIGL(2+-li`86 zxTs*#T9}XU850eL%vx0qN5V?2x?saPs|_sa#W!%&0ecDs3sN=CCW;0i83qJBeJe^z z>0wEtff?`-iko7{qGk|2l!(b3(Lg=||A%A;q#Aku^eQLHAL9b$V`wKGKPbgP^E2&FcWF z3k7Q%>QNUo4kFYKqh9oU_OCFx5}(SVfuXxpx{EH06^h;Ha+U5Xt2u}# z^&(cJ-3#tj51~>C4{;dW7K5kuH`S)Fa#594p^oNxVagO%ySY_>O>Q>nCY83ikLYn(!4XNoCWYJ5h}B-YmOMsXH5%vLi362ldRt+YAMu6P zK>S9Rfe2U+Hozq-&C)PGYe@C67)>UE!-tVzOtUzJs(8Hs)1s?5TkOw^o zCp9dL!XQ3H(6aKfi;CWBJ4z1K#;kDjoINuBrs5J<0c!QoA z@W{D@LN-23p+S8x3X`eT*NVO<;wG$>T5AJvIJD9Sg8&afzkrAiox`&*+zf%2hN}7x zf-Asrxx1=;aqzmc#S9u&UaEhc3))AcYH!uXs@2(T zkc8${A3eHM*ye`>FAfJkGmFY0eCwHk(~;(K^BS699B#aPs+Vu*KuAfJELvLbUgj>c z;H4c`3>L`&j-w+L5%EF=;E)gG3OAFV;tMV|A+^w=kmd@#189w3>~>dIcr4_GPri^c zj<-EhTi4>#5fm({ebDRmfz|P>cwI2q0y>12-a1;equtf?46LbzZu7s#sSXK;AQY~dkMG3f&3Ra*$FFsmPk(i0b zmOx=IEsSv;K)$S7SHrp(y_5zHQsU#>+vtb&MG!+bJc7};@ae3=4oHXR5RkVQR=ljg zLGuAsMNesTJS7*dVK1q4!{a{|eQ~jaTEV3+J;ca=s>{nScNZ?9MXy>-(9lsi`Vo$* zz}1Rc6VqY?A#AQ@GQV#@%$tL27GAQTZ>R}~&Ix`HQ(&Qo`r!4UryOF2wWz3QzH4et z9mK4tTItW68>LeIhWxp?c?G!z(~LI&+#Z3?gDBaqt+Z@w(`^${lbyY=n}hp~6S;00 z-U~;k-()WugXgk8IB%31HI9?N4?q+S z3qBwjB01ow!%)d#@u_B`(xHx~3_|f(#u)1_C(x#t^gR>uh`SJkG*#WK)8Rf8j`c(F znPt#xf1GdNc~Hi53H+1%HD1BEwwS)JNPzno*W=OmRe+BbenN8wuNPr(qfIpi6|7`;Nq6GLS32@x0A4)&T3GlHA z@bL-o(-PokCcvjB!1EH|XTfIlQ1Z`DKz~UBd|3kga01+$0B=lywS72$v_|Qvqpn-B2T7={&Y5cVx-Hy2({>s#Bb+DOoEyx-#& zabcm3-|dan&_@+i(F!l?!TMMQZ8WGB@l6m|Lc>RgKG-`aCrHg7~gI1jp|PQwRQVCHDt!aQ<+Ss)Bs94Yz@o!WL~wF|dYB z`xsL!pfXtu=ok0HBf%){doeBa1ma;A@UjOv+>@enF34SJCuO30(4j znQ`PJpChjbdKct1pVt}J{q}PCExzNpa^Rn)e^21DUtG^&LO$AdSpFO@kdTiH{%JnA zp2KAJo65M^Z??c?zb?UtAA!VovYSEzSQ*#bHN8GMiq%qYZGv9*d%eJC z3O+Y6uKUIJ9!%YWUiQ0P;Id!*bt6o8!{eq}PWoLQ#_^q8<3C|~-S7F_FRr&R;VlpT zY5Ly?9KT`kF~{>i7P!1BxHLL{L}apflGPLXI#gtM5tP%J^ zA!i5UTAnD&qkgqdjq5Z)zfI7~b>mkBf9Vf<1zsrlJeYtF{^~C#6hqqgX+e)!+~>fA zKX!l#i&D=27W7ii-wApt=br_BG4RrM{3HRN&jr1dGmSqw(E99RIma<>%IOxk^poWV zAMLmJy*W(CNBYSsflEKRR^ZZ4ZW6fklkEaO9s1CEpdVc1ev1VDJk#s(?%?tMLhzAt zzA5OXU5*HPX_tQpT&`y_`OG_ZS1jZ?opF>$@}DH=rM=1p?iPG%1upg3CUB|G>jf_L z*&%TG+`p4?t+!`cZ#xbAdB(pZ_*^37ykFpw|HB3!y{>rNz+YkhhXfzV|2aV~_4$&Z zm-c#H;ERNuA0*)OH$gA$@>v3U{lOKAE&Dx_Klnl1Bl=yI0KbZH(@*LIy_9FWz)J*w z`m-od#(ozI{9pq9PYXU${=))aBKZ6x0U!GaAcBPbN;xwb*M9XsNC0V~pqFuSslesD zUTN@om-*ngAu(Z5&g*tTFa6{?K`+OjE{^P^98;TD6}3f z6S$P~8piR4(^*+Em2Cnx3jtM^bf{#5F z3Xo8r$VbyBGmi4heSk3np9pn&T$KX9RN##Uf4vW|O3(JQ3Fz+=xLfc! zAaLo=F9=-v^Zy83`tzR{*ZR@>8lMXKO408K{;nPBtxDjN1uo@0U*J;C#R8XdUM6rU z=N$qs5&iy>aV@|0lQ#@p+x=a^NBYU<3Fz@V#h6S#86|M(CuIVcep1J{mQ(vllc1M= z5-{kspM(?8-y?9T|0e`4_5ZBErT$+LxYYj<#t+3{;A+2`9CLc$^UhO&$%2=-ZF44|6c?j$^R39Oa7l5e6;)y-ZasA)AFm|2~zV# z@}I%=FBG`6d#S*s-Ioho+PzialFu5(wVVrCKi3O-xlXuA;BsE~3S9R4yuho4 zzl|9~?oZDh&JvK#1=NFl&K3x~M)0{H0iQxaFQ2D10+)7d7JP;S|4poisGyhjx?bRt z&kY72?GHB@xb}zJ1s}=(cLG04jMu@Nv#6ix0(UZwcI2jzgWp~d^irRv2>ddj({Uh2 z;Fk-0dIJ8l1ijRAv%vAQSK0lKx4?bv)6}!RG{hrRevtz^erQXMs!pp9);kr}L(^89yfqT++`Lxa5C< zz@jW*YSIA4JJkDtT9$r7pGw>P~ z5PbuaroT!RDYi?zkUPgYBJpoC{}l$V_k;WfzMbFS0tUXE@#_ry72fx}(ZGGI_?r#< z0(4$Tx2aofT*b`)>jwS=D{rrXH=uDKJ*;jqKGV7UxPhO-^glE38s0a2*}!$2e9OQm z^5=_xH1H%I*GC3EhxwC(K%KVZt*o~c_AiZp#<)J0rSUVFZ;nClWj~o=;A>gVa}B(J z-!qF1d=tyB-}`mHH?tjA81#Cdz1hGsc#?$;d36Yx^9=l6B!J{L@O=ulDhyoPMV_ZZlW4oFG3bx7AL4m*Oj;hTpF0eE z56iRLz$@79_Zj#$)*JolcftQt_P3uK^xb-%8u&rh&ua#L3fu8d27Uv}`Kf_xy$xqO z=<#a3>3t)OYrW+f^!jtPIR=hv2ux)Lu29QbZs336vfsdScwPq$yokpYHSq6o2iF<+ zVjlku27VKlZ#M9GOy6VRvswSQ8#w-;Hm02hUe9*iW8gbj{_h)jI{S}4@1*rVjqQ8L zpx2*IylLQDnEpKj4={gy?nv{W$j_rp*0;t-aQRdNPhr2+=ZG}@)!g4%27Maym*)9Z6nTA%tH#ytl8cbLxu27W&4VV{AwaQSHi_wjgtW#Bzr z{=I>BGyR_od=Af-biQl(*K&EHfe&N(;b$f(Y5G&yAK+&k2jL;c7aI5g^I2-(&#`>V z4ZK9LwR{GCko|eJfe&XtS#RJ!;CZ*pz|Ua%M-2QqF3a;v=sII~-o0heALH`-20oqj z@R@->#c?Bv^`Z6o2K(n21K+~6n+86a z{ow%vpTYQ(20oMHtvpYKqMXO{zcJ_+GXA!K-^KV}4g4L}n~m+S?YNZvQ~e!;`1AVr zyzWweUn`Ek#O+-MpK|VZhJo8yKl;5>_xnA@w;A-`V7Yf2cscvk_YHh6`^k?CypPBG zO9R(&_4fv@*IR!!@N<~Iem~aoPi1?Z#pBlaOxEXY1AmkGE;De==SBm^zc7NS$H0qu zTssVWH}|{8z#n0K-f!Tmd0bB!IR3F4Oot8p@9Yn+8Tc{g^QM9Sh;chA29nm#g=R&?~;Gc6`dep#Qi0a~9S*29YieKq&{TLUlQ^1BJ}4-Fjuyb>kW zhwhjDC>m6x8h9s{#~b*k%m#k=os#DB7RQr(17E>+v>n9B>-=bhg)M1J~~ZnFgN3^Wszk zpT~S$2CnJOGVs5%+%pWkiuF9(zzf(e=NkCecw846co_~HQn7(gVSKTHU&&?teysI& zKI{K7gMJLlxx&EpI$NHn!uhy`_10|A&t^Z7=c$nX9=319p#J~|1?gG?*YD?>47{EB z-(=v2+26Jr_;JR+ZQwed{EvYjVY|O=;A7b?9~k&1?Y9Q5zn|a~=Xp>Mr?Nbm27Vsv zbB2L`%J!O<053A|CzyY^f!DErUTNTWFnzOuSCduX*WwL)5yyv327ZwJaI1m0F&}xp z3-#b;eeE&m*Rvk(H*kI4TmAjp`1&M={Xw5cLUXVyQ_r{ac_Hop$GGzAjBEO7EayW8 zeG$v^Qv+{h{AB~jzi^1@_XduC_!HA8{@_r{vmccK>1+dkne8>-!1edcOAP#B_QT}{ z{u{PeJ>z=3`uByl81#pETz4AyFt+cv4BXD+df31h@wg5e`0ts|aRYB>dVL;A%bCe~ zOdYHAr1kb5(`PWQ>Gj{dm?-F31;k*oz>$Uio_~RX|BB;4k%8;Kolz@rb>OF)08J;hxd`?E||G#-XFphD}NB@pf zu0gN;WPyQS&vD}#1J{0Xi-GI!qi$zh_p5*B>Ry9h_xpr_>wb?JxbFA3foJjjO63C+ zS`QBP+ldDLFh2+N`5#UH8b6m88}!;<%Nf_>dXneEZ3exa<@u^XuYcD|{i*2qb4Tkz z{h{bMuE+bL!T&)X*Xss;Bm2Yq2Hvb6Vtigjk9QtsAf*|&9`ES}UdHoux`F2~|GA8# ze)y3~{4X--_4j6%2zn09M6b{7XgPmDD8xBI&mo^`{09HeaZ*Bx3VJpb;rcv}=AX)X zyG79RR3rM^4gTL{{{4cUU6Sbc8ua>m;|~dXHWAV9GwAjAOP?0>oF)2~4SI|H`87eW zKfA*Q?-=x2cYhW1=d7Yn60nb+Ze*XR`Bm97qCFvNn0b=g?NEv z{_Qe0x2l9Io|QuvTnPVU+ESxR&dKVIa|GM+bfe!U#+tJj=dg(orK9Yhx~%VJ|1+Qh zdH$>I^Pw&BM8A{ieeQq1!C1?$Y4N*_rc79O->Hh?xG@fs_B-_u#-F>EGp1rITgF^L<0L-&&wrd8GHKuD|j{Zy6WW7Trp0Tn~Fzu%);@Gx}qn67kt6jSG8M38xl+e-}dChbFvng0JS zw}0PYpvSM_??YxN{q11=?PWsLA3l3@d#zW*j44Jf77ozO+OKZ0t0_O0P1%w7aEWR% dz#ZZ<7uO|b|LBuL^}n`Kwb$pcROw{>{a*tP{1yNJ diff --git a/lab2_pruebas/store_service_server b/lab2_pruebas/store_service_server index 672c267ab1d7ad658c01508bb58731a6c60801a7..cb11d841ecf0e78433908356d05b09a3aa4643d2 100755 GIT binary patch literal 33424 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 O-`5TTj&1*k{{L^4WcJJe diff --git a/lab2_pruebas/store_service_server.c b/lab2_pruebas/store_service_server.c index 5cd88de..5a5dc78 100644 --- a/lab2_pruebas/store_service_server.c +++ b/lab2_pruebas/store_service_server.c @@ -30,7 +30,31 @@ bool_t init_1_svc(void *result, struct svc_req *rqstp) { bool_t retval = TRUE; - /* Initialize the lists to NULL */ + /* If the list of users is not empty, traverse the list and free each node */ + if(usr_head != NULL){ + struct user *prev = usr_head; + /* While the list is greater than 1, advance in the list and eliminate the first node of the list */ + while(usr_head->next != NULL){ + /* If the list of messages associated to the user is not empty, traverse it and free the memory */ + if(usr_head->sent_msgs_head != NULL){ + struct msg *prev_msg = usr_head->sent_msgs_head; + /* While the list is greater than 1, advance in the list and eliminate the first node */ + while(usr_head->sent_msgs_head->next != NULL){ + usr_head->sent_msgs_head = usr_head->sent_msgs_head->next; + free(prev_msg); + prev_msg = usr_head->sent_msgs_head; + } + /* Free the resources of the last element in the list */ + free(prev_msg); + } + usr_head = usr_head->next; + free(prev); + prev = usr_head; + } + /* Free the resources of the last element in the list */ + free(prev); + } + /* Initialize the list of users to NULL */ usr_head = NULL; return retval; @@ -47,7 +71,8 @@ store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, in if(strcmp(temp->name, sender) == 0){ //User found in the list /* Append the message to the list of sent messages by that user */ *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - if(*result == -1) return retval; + /* If -1 is returned, the memory is full and message could not be stored. Return FALSE */ + if(*result == -1) return FALSE; /* Update the message counter */ temp->num_msgs = temp->num_msgs + 1; return retval; @@ -57,14 +82,15 @@ store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, in /* If the code reaches this point, no user was found, so add it to the list and set the message counter to 1 */ temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; + /* If malloc returns error (full memory or other). Return FALSE */ + if(temp == NULL) return FALSE; strcpy(temp->name, sender); temp->next = NULL; temp->sent_msgs_head = NULL; *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ + /* If -1 is returned, the memory is full and message could not be stored. Return FALSE */ + if(*result == -1) return FALSE; + temp->num_msgs = 1; /* Set the sent-message counter to 1 */ temp->next = usr_head; usr_head = temp; @@ -82,13 +108,14 @@ getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) while(temp != NULL){ if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } + // /* Search for the message with that ID */ + // struct msg *msg_temp = temp->sent_msgs_head; + // Iterate through the list of sent messages + // while(msg_temp != NULL){ + // *result = *result + 1; + // msg_temp = msg_temp->next; + // } + *result = temp->num_msgs; return retval; } temp = temp->next; diff --git a/lab2_pruebas/store_service_server.o b/lab2_pruebas/store_service_server.o index 9fdcf453a5c9cc2f49fd8f6e72f9daa59d397913..82da6375fe66e18f58a3876cf254a3de658cc94c 100644 GIT binary patch delta 6039 zcmZ{o4Nz3q702Iui?E19z8_B|uz~>*Sr?0h&w{$`Qe!K1(yDb5Fo=qy5d;#)*ky~_ zS+|q09-E}&N1)NPF&0JI#%dfv+oG8yBTmK|ZLMZB^((DZ6ENeHp8M{(%kxfhXZG#8 z|KB<1o^$SdyZg3%Au3{7|Se<5Sc-TlM9A_Oh zW35Cng#p!D&f?y~Z^(z#WSh-_OZ9dIx!6RNW zy^N-|;2|;PMJZmM*KA%@EuYQhMXaP8>#QkmrCilryF)3~J(6M_TS*I2igkP;50AX^ zk#*|TvC+&_EaZdSm?UrdI8nNf$EAJn@nYxldVI`mv^*bMhLy+HY2)iGh=O&6f?=G4p;)&= zvAWo4XivL%nG5*7717k=SXHa2U5)6j1*vEgv7&h;2S+PmXOnwgifvKVSK(gVl;kKi zR*j2L6vr6FW-p2=j;f5;lFsn%W+9x};^!Q`; z6#J|1+2plD%g_<`^advLR@<(loW0~buCDf|t) z^ZNBsgXYid4(3?e^1BYFeXZTO#MXr7O&zGMc){Lg-+pkhz2h_Ib?u3Gn3q@`wytq` z3+zwqk7!)?+_QK&!@8uOnPSfuNke1c?xc(#n73-hV=-H`Inm*^RCQd0U73XKDWMLV zcTb3K4e_PK%}ZBs&DZl>%3st-asMBLV5$!7g<;Wg_~|0l092%AYP-UqKJ_~j4r)A* zxCK_>lo{vS;QiERw6$T7opxEB01k()W}C+%^Elr;*5EN6avb9fKjp*1jmOtR_6dcf z-L(5PI~sl8U~}5EId9s0`VBTWO`H4d=wjbLY{+Zr79HO35VF5#(G80}25)ROSbVE}CfBn~V08#u944ZZNa#4I>3Zp>7HVzE z!*9@&=xdoRp8%!lGu6LBL%MFvr`DT4GmzoejDq*P@^|P=|E{qg&)6t8kE1jQYKCt7 ziDE92XdSqaHd7GP<2?1v5;!oCw?pU{oDTvTRA^f*)?6}#z?=wWC;T1mZKEm042BFzuyp?wnl z2@D`jpboq)(b=G8>c$bO@sLC}g9|ATJuT4=s6qNi%Ibk|nCq9itMu|!Kiovs`2 z)4q%&D^dFna3LK_J~VzQDS=5>5CAu5>ke(plpG))s3?lUseMh4B z6C_tR0<ZwOIe6nCebR!k|FhU+hm?+W9Fo^V*l>bbL?gWQR zH~h4}=Op?cs6rY^UA-mIPr!%tU5c!+pBI*_TA>?hHf80IXg6GS>1sDTa5;@%QD-(w zHaSp{ryDzYSfx**%b)@2>y-ILiRM73#rM8MkHbKouHJx~c}^pPI$prqi9>YtG`ME! z-Uh0DAyGDEOJ*`t9JP{H4wsci$^Lt!w@LP`6n}@LpXELADtn|r;>+m|l7ndCDM=R} z6$6r@Nr#XPq&P-_MN7EHcT+8iwDsfk#v#h9!WogiL&*T-x3g+=2HbHBnOe`hmtN@eM!7uZ;q|Xc4WBqLJqX{ey z0j~dsK9N>Px~Qy0(qE)&qLp;9@Ggq~nq*(%r3&^*Ks+Wks-;xMEu+U0fd>k}lfYE9s(oC3pRXHBB|k@V%*#zpunI z7%3Qx7EcwXD-0CILrh`v*sRGsRId&43TJ5n^M4v>EzA<9y@gqc{EurziFl+iGel8x z|&2W}jPprNQho1Fmri^{Ysg>b8=EU}S2kK%};O*AKFDhrB}wU{EP zFD{GRlw``vT<9(?(E3u~R&km3WeWTM2+B*cwBZz}FDcWqieNv!9VvoaC1sIk&A-JI Tr2|~01(E9}uVNjzPw61Xo)>4CtO`?dz zUs(w)+f$olG^up#v?f-h#F-3XG7{55N2du%$0j-xA&seu(~9xeA9U=w@147D&Wv~F z?R)q8Irsd!?>&8t>=d2bI_unq1SabyN#^5ln>VqbAR3zR+HAZ7h>)own_D|E`wnTJ!7DZcvj+qEYW= zM~be09SH7Mp-s91CVp}t<6f{j7s(o0~(&S8}eT2VyXa&ut#>!cBy2Uc)S?s4; zhBeKWQ#JO<5^;z_x5B=%hfxUoqFJ@=Is3NODq)qoar1MUAXx5hTvtdlN9es)vi%bM zI6^1X)J{sXlbT~Ewa%X92#l_W8Yso8$P|yt{BVdvJK|)yjqR*V(WykeA_22fNH_dtZxa>UXbSrwQ1E%fm%m=zg<* zeZLZUmD$@eX{!*g!Of(Za4~6`>5kSM&Z4;DxXL6wMbl=)3744k5E??>5jHGS5P ztf$KNNa9|7Q9{h>_=m8yS}GnT)GX^sQQYyekQS2H5kD%=it9&uH>CYVnCel@K{iPf znwsx}K*lV+&jI^0zCZPC+$lLM4|raWhcvF$;cCWe{Z$7%<^Ix4mL@oKJQDD@D_;>f zs=znHfWtH58xv8Tu*G{Jyp}^+yYNu@4JqP~`XoG*K9zEidQybGDngI+(+&ffhUl_> zhvaYNScGL{CflV;9P%Vq{OWEpvPvXQtRh!&jY# z&xZDQ@ICee^Y^5d(^=77(1mN?p?~UDFuDSUkv>PY;Ooj7YVBDNvkY?<^=dn#2O$sX zElTtkj2?gh(inUu<#@|Jg>$|JA*82C{WGIyVF0O{>OIBi0T@S`M}0fbXa%^l4f78`A5oXgi$BtA^nQ# zO(84Qz3C7@T1acM7#)ES(x-_oVRQ)$AdMng&*%*pM|z36v4hbo;GS!kE2$f=G5Rso zAT`KyH={YwhIBiv9b_~adgdCH+i2}YMsL!5jOkgl7a83EO-P-zb`PUN(1r9f$|J<+Iv7TJl03i3=np~6^N0?}n`fBnPWq79{0jm| z57NG0VDt)vkakjT0i;p1cj{?SRae0{(*IHBQz%D8o4}oGn2*pqWG*?=kDBM-KVlL>#IcE(qisW)^vv#^@IiLb{Kl=QG*?14y^g z{(j2nD2yYWu)}Fr89f8;0>eB?o^|=(3mht|O;Ce0m9la(dJNhM3~>zJDDar}$F8RB zW;SUsiXMJryVV95T?(#3!`x4qpJy};d`Q*Wn~ZitQ=uWwL$J_eCR4|~GI1O#|2`Nl zG+Niu9krCv59wZ7O}aFbsboqQIGUNgs&N<7(`ZjaOrK)+tySx1K&5+z>3y^fUoc%2 z@NcG@)VSMB_tJ)G_}y!L1**!_7lUDe`+ZtUfoC#ZC7RE4mFSa9SBX|f>hdd8WxASx zO6XhKnvIbQ(EcE8O)Jyir^%1| z1>cUdAYBFSqW~{3`&`w>ES!UmczR0<0+=AGPT^zFE(xoti|(|P4>9~ui)dN@r3o1k+l@MN|Iot zIOSod+jdp1gI@B4e$@IK1XPz~tIN)k>?!KadYOuha8Z&H>(8`Z41p;1#)jmFGLEz0 zEA{HDlHjG%GCk1?eWhiw9rDu>#|>oZkWrSRmwTb8tSq*bz7C&&wlc4NG8OvD%Ji$L v^6w##xG-D4o(e?^%k&jqcnMFJ(c8kZ*rDmRw^u-vdt<9J?Ag2ED@p%9Nu~v} From 2548c30dc333f3e79f3b37c4431f8b92ae787261 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Sat, 6 May 2017 22:33:02 +0200 Subject: [PATCH 14/17] CGP: Safe commit --- lab2/md5/client/Exception.class | Bin 0 -> 655 bytes lab2/md5/client/Exception.java | 60 +++++++++++ lab2/md5/client/Exception_Exception.class | Bin 0 -> 754 bytes lab2/md5/client/Exception_Exception.java | 54 ++++++++++ lab2/md5/client/MD5.class | Bin 0 -> 1080 bytes lab2/md5/client/MD5.java | 46 +++++++++ lab2/md5/client/MD5ImplService.class | Bin 0 -> 2226 bytes lab2/md5/client/MD5ImplService.java | 94 ++++++++++++++++++ lab2/md5/client/ObjectFactory.class | Bin 0 -> 1089 bytes lab2/md5/client/ObjectFactory.java | 53 ++++++++++ lab2/md5/client/package-info.class | Bin 0 -> 230 bytes lab2/md5/client/package-info.java | 2 + lab2_pruebas/Makefile | 2 +- lab2_pruebas/ServerThread.class | Bin 2670 -> 2670 bytes lab2_pruebas/client$1.class | Bin 521 -> 521 bytes lab2_pruebas/client$RC.class | Bin 884 -> 884 bytes lab2_pruebas/client.class | Bin 8092 -> 8281 bytes lab2_pruebas/client.java | 15 ++- lab2_pruebas/md5/client/Exception.class | Bin 0 -> 655 bytes lab2_pruebas/md5/client/Exception.java | 60 +++++++++++ .../md5/client/Exception_Exception.class | Bin 0 -> 754 bytes .../md5/client/Exception_Exception.java | 54 ++++++++++ lab2_pruebas/md5/client/MD5.class | Bin 0 -> 1080 bytes lab2_pruebas/md5/client/MD5.java | 46 +++++++++ lab2_pruebas/md5/client/MD5ImplService.class | Bin 0 -> 2226 bytes lab2_pruebas/md5/client/MD5ImplService.java | 94 ++++++++++++++++++ lab2_pruebas/md5/client/ObjectFactory.class | Bin 0 -> 1084 bytes lab2_pruebas/md5/client/ObjectFactory.java | 53 ++++++++++ lab2_pruebas/md5/client/package-info.class | Bin 0 -> 230 bytes lab2_pruebas/md5/client/package-info.java | 2 + lab2_pruebas/md5/endpoint/MD5Publisher.class | Bin 682 -> 0 bytes lab2_pruebas/md5/endpoint/MD5Publisher.java | 15 --- .../md5/server/endpoint/MD5Publisher.class | Bin 0 -> 1191 bytes .../md5/server/endpoint/MD5Publisher.java | 23 +++++ lab2_pruebas/md5/{ => server}/ws/MD5.class | Bin lab2_pruebas/md5/{ => server}/ws/MD5.java | 2 +- .../md5/{ => server}/ws/MD5Impl.class | Bin lab2_pruebas/md5/{ => server}/ws/MD5Impl.java | 2 +- lab2_pruebas/monitor | Bin 24272 -> 24304 bytes lab2_pruebas/monitor.c | 3 + lab2_pruebas/monitor.o | Bin 11472 -> 11720 bytes lab2_pruebas/server | Bin 51128 -> 51160 bytes lab2_pruebas/server.c | 15 +++ lab2_pruebas/server.o | Bin 42528 -> 43048 bytes 44 files changed, 673 insertions(+), 22 deletions(-) create mode 100644 lab2/md5/client/Exception.class create mode 100644 lab2/md5/client/Exception.java create mode 100644 lab2/md5/client/Exception_Exception.class create mode 100644 lab2/md5/client/Exception_Exception.java create mode 100644 lab2/md5/client/MD5.class create mode 100644 lab2/md5/client/MD5.java create mode 100644 lab2/md5/client/MD5ImplService.class create mode 100644 lab2/md5/client/MD5ImplService.java create mode 100644 lab2/md5/client/ObjectFactory.class create mode 100644 lab2/md5/client/ObjectFactory.java create mode 100644 lab2/md5/client/package-info.class create mode 100644 lab2/md5/client/package-info.java create mode 100644 lab2_pruebas/md5/client/Exception.class create mode 100644 lab2_pruebas/md5/client/Exception.java create mode 100644 lab2_pruebas/md5/client/Exception_Exception.class create mode 100644 lab2_pruebas/md5/client/Exception_Exception.java create mode 100644 lab2_pruebas/md5/client/MD5.class create mode 100644 lab2_pruebas/md5/client/MD5.java create mode 100644 lab2_pruebas/md5/client/MD5ImplService.class create mode 100644 lab2_pruebas/md5/client/MD5ImplService.java create mode 100644 lab2_pruebas/md5/client/ObjectFactory.class create mode 100644 lab2_pruebas/md5/client/ObjectFactory.java create mode 100644 lab2_pruebas/md5/client/package-info.class create mode 100644 lab2_pruebas/md5/client/package-info.java delete mode 100644 lab2_pruebas/md5/endpoint/MD5Publisher.class delete mode 100644 lab2_pruebas/md5/endpoint/MD5Publisher.java create mode 100644 lab2_pruebas/md5/server/endpoint/MD5Publisher.class create mode 100644 lab2_pruebas/md5/server/endpoint/MD5Publisher.java rename lab2_pruebas/md5/{ => server}/ws/MD5.class (100%) rename lab2_pruebas/md5/{ => server}/ws/MD5.java (92%) rename lab2_pruebas/md5/{ => server}/ws/MD5Impl.class (100%) rename lab2_pruebas/md5/{ => server}/ws/MD5Impl.java (98%) diff --git a/lab2/md5/client/Exception.class b/lab2/md5/client/Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..513323adaf32fcde25969ad02aa2548232f66c14 GIT binary patch literal 655 zcmaix$w~u35QhKGHfD^*B~hbBTrNpO=O7+j5JU|KQ9(rnPd$?+w9NE`Sweg(1x4`S z1Ncy4&A7z{rJ<_2`m4XHsi)_MM*u6B(UHPr7D-HLnAT8c&>Z3Wyd@Y$8kfAo4V$Z$ zaT0h^wKfL5o-w3$+$N#|v;*m?4-DwOX|C=lpFBq-Dg;g1-nMqu?@^-izafJava class for Exception complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="Exception">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Exception", propOrder = { + "message" +}) +public class Exception { + + protected String message; + + /** + * Gets the value of the message property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMessage() { + return message; + } + + /** + * Sets the value of the message property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMessage(String value) { + this.message = value; + } + +} diff --git a/lab2/md5/client/Exception_Exception.class b/lab2/md5/client/Exception_Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..ea89126ee48c9ccd48b44eb89a1875e138c1d25d GIT binary patch literal 754 zcma)4%Sr=55Uk15B64X)x~^#zP$t3LMe|l=5t7)XtISY7PDAl$ldUst54L8&oI~U+S^Xc zl|pIfsNWJ@EqzsI$m~ib^&UgD+_>ZS+;O?;IOjT$s#A{#RW2D)hkjcyj5nkbr#-JJ zf(zbssj~m?F~8_8ZUg_p;Ol0#)e-u5D7{#&#Oq+lpZmR_C61+GE)LeZ9%P$lC5DBw zp3>42mok*Za-fv2xiKJQn2&VyoxbNf5214{)SXfz?D7_M z$8NRm?l=V9G!9!B!Lo%6vL;($D8>0c6v!|=bp036Y>bV@8#|`{hmlyPACaaX!jLe6 zC`(d4f*hTBx>c#3q*$=4uV8lV1&OEVd4bNcs8yl?tMqs+0$M-78ue22#-oN5V7V3OhlRj24S9byKvA?CgSQ^K^$ literal 0 HcmV?d00001 diff --git a/lab2/md5/client/Exception_Exception.java b/lab2/md5/client/Exception_Exception.java new file mode 100644 index 0000000..4204a9a --- /dev/null +++ b/lab2/md5/client/Exception_Exception.java @@ -0,0 +1,54 @@ + +package md5.client; + +import javax.xml.ws.WebFault; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebFault(name = "Exception", targetNamespace = "http://ws.md5/") +public class Exception_Exception + extends java.lang.Exception +{ + + /** + * Java type that goes as soapenv:Fault detail element. + * + */ + private md5.client.Exception faultInfo; + + /** + * + * @param message + * @param faultInfo + */ + public Exception_Exception(String message, md5.client.Exception faultInfo) { + super(message); + this.faultInfo = faultInfo; + } + + /** + * + * @param message + * @param faultInfo + * @param cause + */ + public Exception_Exception(String message, md5.client.Exception faultInfo, Throwable cause) { + super(message, cause); + this.faultInfo = faultInfo; + } + + /** + * + * @return + * returns fault bean: md5.client.Exception + */ + public md5.client.Exception getFaultInfo() { + return faultInfo; + } + +} diff --git a/lab2/md5/client/MD5.class b/lab2/md5/client/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..58f5ffab2df1699cba943f79dc7fd702df250fc2 GIT binary patch literal 1080 zcmaJ=TTc@~6#fQ#qhbN2Xe&ZRgyN-xF}%nN6>Va|rRgSW;)9uP$Fj|KcHNo9^4EOu z2l%6mXSPi*lKRl}%sJopo$LPo^Ya&g*Eq=HSr*S3GF@rT-W@XRR!@84N^oDOE_Y1i zsqWGKO&3G{{lJx>@dBl@c)?I=#mabn`O(u}+n05v0wacWrjM35e3AR5HMnh`I-~E+>d1S2jGK zD#+1vYIe;G>$7A>MpvFIiGC|Nhh;-_ne0M`!X<8Dwt9w*DFq#fkUJOk=37s7?CDU~ z+FbiGiyE1ZH5ryZC?%s4J3OhW$^QuKBotdtt9e4#IfB}Cv?&D_<1^!*`@SP(-PZxZ z%hT()X!oRR8p1U}bWOp+)T)v$S0*Pv#4>D7Va7|GtTPMFP_eY(RsY-gux_ejJ|x4y zut1+7z*5v8QuIsHD@FbcvShs?PmcZ<$&=T(jU{s2(I{Y9V+E^Uz>aa3MDDp*Ls4TL z_X)mgl^>A1q*1oSGSMDVU;!J6?jF4#4da{G(x~7uF}5Xkv4<*|MN)RLkEcY+)B6ct IV&}N@7e*s0C;$Ke literal 0 HcmV?d00001 diff --git a/lab2/md5/client/MD5.java b/lab2/md5/client/MD5.java new file mode 100644 index 0000000..6888241 --- /dev/null +++ b/lab2/md5/client/MD5.java @@ -0,0 +1,46 @@ + +package md5.client; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.Action; +import javax.xml.ws.FaultAction; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebService(name = "MD5", targetNamespace = "http://ws.md5/") +@SOAPBinding(style = SOAPBinding.Style.RPC) +@XmlSeeAlso({ + ObjectFactory.class +}) +public interface MD5 { + + + /** + * + * @param arg0 + * @return + * returns java.lang.String + * @throws Exception_Exception + */ + @WebMethod + @WebResult(partName = "return") + @Action(input = "http://ws.md5/MD5/getMD5Request", output = "http://ws.md5/MD5/getMD5Response", fault = { + @FaultAction(className = Exception_Exception.class, value = "http://ws.md5/MD5/getMD5/Fault/Exception") + }) + public String getMD5( + @WebParam(name = "arg0", partName = "arg0") + String arg0) + throws Exception_Exception + ; + +} diff --git a/lab2/md5/client/MD5ImplService.class b/lab2/md5/client/MD5ImplService.class new file mode 100644 index 0000000000000000000000000000000000000000..f775c985c63a90c8e9a5aa81ad67a015586af386 GIT binary patch literal 2226 zcmb7FT~iuo7(I)|g%$BD8e=}JpFuFL(Hf1|7>n3g!7r@F$%V7xRyT!(fi-&DU(lb? z+eRd!A*70y0y}49_m_`<&HFqU+AMywGG^i;V-_4MZxesN4!^yzoJuHoRE4#ToLMRu8B^ch;448bi2Hg({Rp;W=!y%;o7cbZMtsl zPJt%sKvl`>n~)r-ySv{hedxq=gw9+cyOl3G3cAAM$=va*p2=FK?daSic@KBaY{$x( zdsfLJOUt&McMO?ENkM;A#bvq@_HiL^*$#ot(u0E5niMm4p!jwTorj04b-#3+P3ALh zas?eMwoY7aX~)QXmof_8JpGI8L?%xSQ@E6`0xg|CD`w19O9tNU)#eFpQsOBXxYd=n zA9s0SYoS^kwd5E@Rw#ONrAL=j$0;o6RPv-ysvvk?Q~sd0pJhYY(|pNUn4g-T65-Q* zNqmENj>#Y%;c*a8Fd}A@f|PSLVY zV&&;pugD=#Npo4PZ_1d4TvUVOS)){nd17(HZ619vGa^yre}(w(LseCBB}Y$#)})cX z>h;~zV*Xq%Azm;THo|8V-xD8ZcY+=$dX46K)FfJ=)Bg#EJk%&tNxVQL+BnfP{QSd_ zM8h6rjES105EnAhAk9kzFz2Qj@i4{3oxy~b2X(4xubZu(TbP%#Zf#Y}*q aK6g8qb(`;Dl9#NSRL)_(gjZN7A@&bB_WN`I literal 0 HcmV?d00001 diff --git a/lab2/md5/client/MD5ImplService.java b/lab2/md5/client/MD5ImplService.java new file mode 100644 index 0000000..35cc6ca --- /dev/null +++ b/lab2/md5/client/MD5ImplService.java @@ -0,0 +1,94 @@ + +package md5.client; + +import java.net.MalformedURLException; +import java.net.URL; +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.md5/", wsdlLocation = "http://localhost:8080/ws/md5?wsdl") +public class MD5ImplService + extends Service +{ + + private final static URL MD5IMPLSERVICE_WSDL_LOCATION; + private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; + private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.md5/", "MD5ImplService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL("http://localhost:8080/ws/md5?wsdl"); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + MD5IMPLSERVICE_WSDL_LOCATION = url; + MD5IMPLSERVICE_EXCEPTION = e; + } + + public MD5ImplService() { + super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME); + } + + public MD5ImplService(WebServiceFeature... features) { + super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME, features); + } + + public MD5ImplService(URL wsdlLocation) { + super(wsdlLocation, MD5IMPLSERVICE_QNAME); + } + + public MD5ImplService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, MD5IMPLSERVICE_QNAME, features); + } + + public MD5ImplService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns MD5 + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5 getMD5ImplPort() { + return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns MD5 + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5 getMD5ImplPort(WebServiceFeature... features) { + return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class, features); + } + + private static URL __getWsdlLocation() { + if (MD5IMPLSERVICE_EXCEPTION!= null) { + throw MD5IMPLSERVICE_EXCEPTION; + } + return MD5IMPLSERVICE_WSDL_LOCATION; + } + +} diff --git a/lab2/md5/client/ObjectFactory.class b/lab2/md5/client/ObjectFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..0124a4591d16fe9252ea35787736252409814af5 GIT binary patch literal 1089 zcmbVLU2hUW6g>kJ7Q}+IYFn(9`oTiAoA~h}q)DyqgTb1%hO|%3uuO28-G%H9O8=D~ z4IFaD$5?pp2yYDr~O+0LD9T=*Da!6J{)>Vx}q%uN&Rel zUSDzTQovB3RmJ11b?iD5eQ$;BXpOOj4D+9q8oaiwFTtiZg51+d!o*%M7)|mgayWO? zANsb~liJVHht8R>)gHH1-#_2fN5oLQUdf^8$w2w%jXVk{GAv$YKf}u9dC!`h$4$)Z z>J75w5*GIqT?-9(N(Vee|BqU_X1dmLxYx6y48x&0C4Ppm5vC&ij>CiC+CaqE(ATjV zkw%qA%9mbmx^xn$wNasWk*6m^-Rl-HSDC1s$RT#J*3$BtT{S_{dIVl;X>=?Npn7fo72`Ll71A-;67Lw{{1^5d# CXbqkK literal 0 HcmV?d00001 diff --git a/lab2/md5/client/ObjectFactory.java b/lab2/md5/client/ObjectFactory.java new file mode 100644 index 0000000..8f81db1 --- /dev/null +++ b/lab2/md5/client/ObjectFactory.java @@ -0,0 +1,53 @@ + +package md5.client; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the md5.client package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _Exception_QNAME = new QName("http://ws.md5/", "Exception"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5.client + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Exception } + * + */ + public Exception createException() { + return new Exception(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ws.md5/", name = "Exception") + public JAXBElement createException(Exception value) { + return new JAXBElement(_Exception_QNAME, Exception.class, null, value); + } + +} diff --git a/lab2/md5/client/package-info.class b/lab2/md5/client/package-info.class new file mode 100644 index 0000000000000000000000000000000000000000..e94a52b25d4c09ef80c919a8402294c253a11be6 GIT binary patch literal 230 zcmYjMu}%U(6r4rn1QMf-#t*QRR~Q?tY^X>`AThS@mgn8#?mNOR%C}MQ0e%!=kHYYh zc~i_}Ci8dL?E$=CP@q?!Z_uANo3)j(^I~wfV*AaNJUjhrhD-iogU8uMlMC|UqAR_; zt2T*~Ycv`>OEw!u^BbV2;D(r55ddJ z%tO>liCG0(R>`(CvSU8t*2=E6vu8o}t)D{+ldw2Pmf+Z)II$F`_SwvteQ{wwT;k@6 q5^kvFmU@yj@raK*TDZs016>*S@JxUdL0;(Nm1*9X;oZr}>;4C|QcLgv delta 261 zcmWN`O(??w9LM4B?~@6kHuG|DaB^``a&X`vnWIv2QagCLt>$Gn?n znzyCUl#m_7IJwcdaB{HY)06dPz0s)42Ar6yrDRyejHrxJRS|OjT)pLEDrHJ;CgfpK zbxftA9mVVhb z4?9-LuGO$-wd`9fG4m0(P7bV_Lkn_bArcnh*b15e3osltq@(e~}&O`<_rX&Vlrj*H77)=3azXt{Y delta 27 icmeBV>15e3osltO@(e~}&L{>prf3FUrr60>7)=3ZeFo|P diff --git a/lab2_pruebas/client$RC.class b/lab2_pruebas/client$RC.class index 6ef25cd5d9fff5850d0a1d3632d6f6a682dd66f4..7cd9a7cb4fe42628f2a5ea8c81c0b01655d01d24 100644 GIT binary patch delta 43 wcmeyu_JwUj1rwv-ofkr(uw7qv)Y;YB}Q!pjP;Sokvz`*8zaRXE}gvh$k4>-xiAOuS*@O$+T1 zQg}=Aqnf;}$vXrNY0o;;$6Gw$LBXn)t@TAbhLIcaiuWKbSbH z@T0=N70&7P|Iu57G_;=-!b)gkl!zvVDIQb2G+2BV#^D(YV-qK#$BoO$J(OJ>$oIoBI=I~`<_Fe{h~j2ew!T2WaxcYalMS*5@%T~tv~R$9%7 zII*4@IqR(R9KTL)@1AK8wBV@QB=E7M+2aYJRWhBQJ`|`UK z3WY)$WlJ&k(bkE@zo@fiw2ZNF8`j%078{)7zM8-tGR~IqGQpOKGRc<7GR2u4G0{`P z;r$WqJ=?I|c|W4Oqy4MV6UP6x1jvQ=)r=$+vIyh&ej|TOU*@!3YMg6^z zh(73u9P~ggd;R#Ihk?k)P!ynubPR@J0)}G>3Q>(wSczgDqcOB#EN;bkZa4v(F%5Tf z#yu#(6PS*tFavjThYUo7xhTTKT_!f0*kYpnRtmHtGBS)v2nAq}iMtbsopICH>lej( z#l=~PWNN7(&c(#JggC2-b188yBhIUca|IEuB2JCyIwDz36l*wZ9Y=0s{asI-8%Q@1 z&z;yxq&u($yNUKuZdZq$#Jde4Y{zTZg?I3Pi#rqM#lHuB9(Th30?tHpfv2}DZU(*) zX$0Ot|2Go+lL*iysdyS$cm|i^S-SQ)jKK4B|P@S=b?6 z@vwBmqtYF9(gXXYCk{wo9F*QTBz*2@g{gf7@Xrv@MS)UAqGa(!t7F9 zhc&ZBV|tjNdXddUcEy?^mqMpBK23_8webVfMp0>kYStV=d>s<@>ZQeQ zKgsP6ch1Cj4i0y}r0msJF~f%PzZ|P%6W<8e$W@xl3R&aw8)bw0-Eb?&0c6v#5_FMi zd^Al*j?6%T%wY^?VwlXrXqk<9QpziM0V-u7R!BKDF2b#{1Y4vMyJZ;*aj*uBvYY|C z8ZXF79F`z2(Q9!`uE#04fib%YXJjpN@)rCkw~0q?7bSN|v~1=zy+yjqz0ynWlfH7l z43Hf%U3RgmK0wH|vRWRL8|7hHFOSGZsgq6enA|CQN$aIS9(My)9EANnhML%Q4(ZJ3 z*f5KL-%V|1_pkNG%@4}JIkcA_;mu5OD-q+{Jne#d#M`Jj_!z=>pRTg4V-fC`5yI%C zU9d7dNg<3W%-G8TIwfSjYigyJ31tkbAuoOJ$Gd2*XD zmgzK(ReF2_CNyATapG2)p`$!0gvnh)m{OD(C<$Sz^F?BE_i2-B#ngk-8Sq-1%kuOL zq=(RP3)*HK@NGj>mbYgkW=yWdDLv~lCpRhCnn|%qiG=^;^EA`_Gpv;}EG?g7vwVr2@-55BcX(XBXJ($o z%kmT6k}ysff{zUYKNubn!z*6HS0vGfC5c9)q#CxQ8!e=}(MrY`i89`ZlZi&WEMmXX zNOmLIA2DIHVxYla0}t{c%1gzfDiYQqox5+w$yis4BPp*pbi zmjX1oHoW%#O_>8Tw+2h?qIL!s97%kb&M3m7T zaYhdeHhQDb=!0UTFUA`=m}=x=hS48$i~*QyRW5#goGe+W&QHWQJ zA{;hGy8&v2pmh#WCjNL1y~W?cpPFjM_~GZp|JeCh%;2eJ{E(K>h~-;hHsY#%jaboy zt6A7rhOnv;*J!-K^I>WR+m-=`F$Jbk0?U|+NMk1Ajk!oN=AnZz-`$*gBV+sud$CXN z<;1pYeT{y2u?~=03~$}98BuUPBa(z+F&GPSX~MO{a9uq*QOf&oj<{DA5*TNFJ0-(r fac_fEs;H-8gAaro$ph@&z_-wv{6zi^(tqk_xja6A delta 3759 zcmai033yc175>kgN#3287f2?AOcr1aVN1e}vO@w1i-Z9Z0t96VAp!ycld!1ZsHiBo zl_ym|5D`f$sm7o~BuK?tt<<_AC|VVlieTNhDl+}=3%Gs#zRrB_uIHZnpYxx4?tMM) z?&0A>XZ9Tc&{r1uuo@3pxC#v>9@d>kUF@;o!6POf)pf*ziM=M8bmuV(7WSEFR@iSL z9*^tE1G@OLo_Rvc9MoMF77qIGB>tlCl!d?IX&=IPM&WP1FdNS*9MS`SH}RZ_e^}^% z28HK!{emuD)Wu5*FY8@i(Vz}nxDu}_98ox`@S4Kw3dc;mVW9`!)Wtuw=v!LqZH0Ff zjw`%tp*`MHcwgZIi#q23?$r!^ilyiBA+hRrpNdb1nRZ*2nn{ z_)_63g|Bu08(n;B;yV-n(bj!$VLbL(D8dg4r?s6w>dqO3C?$nXSS_N&(6vX2SJ&Yf zC9%3;Dp6X>rwdDu#3`|r#4Bl~q_vU+C5fi^l_V)?V_}{o>!PhLQY;Bbs**GUlyoH- z9v~W3(oU;suZs?r1m!$aGA%5p9qe?}!&xdxI+@a0JF3ByBvZPW($&c{mODF)$}Y_e z1Ts&)$qex?tE#S?x1grBvRYtPEUBuhtf-~eogSVQ@`v01GBwG-01r{vnSx{bEK4Dqy(q*+J zwbhm7i*3n~TrJeyIp)n!J*21Z^m5L4gW+}9VoPsb^pU={^po>#xd7`;>2J#b87OE~ zF)UbIIC^Z!l-TZ&}76OJwQggAXPHq)~iTb$Fei=5ldbXz9KL{lc&QjG1+esi+A2ix^d zB~CyMSCh4lQkmk+QvI{1$~5hiGJ%J{ZJDl3yhy__F0QfVVwqv%R@^4&>P+$_JFlu_ z&+l=Y6Y>R|7+;F#PPRMvay^^ev7QMtWtP@G&c@x?D(K-Z+Tp8j7c;kJ(9%JAtJ$`c zYXoz!+ms4h=1Qfr*h=x_$tBKOYj~&ovCGCzO~pK0=F0+ss#vt3vZ^+#w=I{-LL2vD z{hm|SL1WJo@tMY))l58qmxqLL!Iq^%!>t)ZZcR6`ZpDuQ1;Nd1oyS^O$7Jt?@h}^L zTUc5!So)|g0ZJRL#hs#rlVLqO2LYD7sj4s1&<~x_pS=Mr2Vw~S`Ah?&kjJAt5))B? z$tc7$j6p3f#43!#)jZ}mB18ZaaR(;hF3xU2DSb5skD?5ZV>)i<4%vu}a#5^_- zTtS>y5a((lxr#W$L~<>+yn&b`kM|*n~!GC*G}yU>jZ_ z9Y;BCWr`^P#gi&`%1S9f96b=o}7Y$|&dCK$eVlGE(zpj59N}ZTwg+XheF0UOdvdCbesL zq&w2CLBm4|BR`*Kagr?H^<6CEbuA%gI$ckfN_X6FPyIe#{E(?oGL7VvAw_1>po@?$ zGtg0HlAKv!dLlXV5R&=Swh*&rF&0Y|u8?Y6FEzMX!nI^&1zA~%?Q$h{$tu)K7>~-; zXqGi(<2pPeYw^6?grl+^Z;FHWMwoJOX6 z4{uI8H<@^TlKeTP@WN=}j~UG4=EUSgM2BQYaAEpRSlOQR2*!=eZlI%ETYbvTmi>Eq{;&YRFa_dv{c z#OHeZG+{cWnzhtL&JXDs;fvYbsJk=VMeFpU0(a4{+yk-qqI*tGLNJ1v-q{h%(t(=l z{bipjQ@u@?O)V3&mU351fz~p|)smWfz`GsFJGc%#v_OR`(2>n%bST@~8bSZu2r{{V zrN7d-KVzVqw0EE@UGgjpd5$OQc?9G|1mz`kl9!PyhnXpkFc6PoguKQKaST)CZOoB( zFkg;!Ig0wNQ?^fg>JobDH&?OI0m=w+4PON< zYnbC=m{NfK&6ro_pP%htuossW?YJ~hS`MLhno;y){Ny$&MP8V*#sKU)_=uWE?PjgC(|${!8D3t z86}7_rXgU=M!Hdsj>a5!Zz_&UP2ABSa^PmKPTD0oy)OTK`iR%pBYj z2TZ&q#UK%^nM#Pan&IjIOa1UkhmCez`X`PVe3@Ls+Rs*)@0zRg()iNR GKlNWZ3Wyd@Y$8kfAo4V$Z$ zaT0h^wKfL5o-w3$+$N#|v;*m?4-DwOX|C=lpFBq-Dg;g1-nMqu?@^-izafJava class for Exception complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="Exception">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Exception", propOrder = { + "message" +}) +public class Exception { + + protected String message; + + /** + * Gets the value of the message property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMessage() { + return message; + } + + /** + * Sets the value of the message property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMessage(String value) { + this.message = value; + } + +} diff --git a/lab2_pruebas/md5/client/Exception_Exception.class b/lab2_pruebas/md5/client/Exception_Exception.class new file mode 100644 index 0000000000000000000000000000000000000000..9bbb796d140c6c2bb4ee68dc7d0db301445f8522 GIT binary patch literal 754 zcma)4T~8B16g|^V+OB{gP*jS((JinK#20Fa#zBdfI{V20#WDrU-432H0&9IvfYM%;}KE>xs zV4l)1=cbhlVB2s!BrZ3Q~iva)|8BlIJY*P#(k|! zsP2f3bR-At&R<$P+7AfbrNe=TIlT5zLDgj&0&|S2zvhEK zz#nBiyKQ=r;6u}IzVDp#UHA8&pT7XS#!dmx3V1G%Z)tb@ZdYJ^^XNi#lnj(<$%c!4 z)7sm*?h=@Kf9dJS`Ju4|ybvhW6XX20{^VP~8R)7pp;K8{pqL3<%8MUXe%8%n?asrq zy=(ruwn^aVpNLfKKB~56VX<~eYzElNb|5KJ^-^tO$9)qePGIHSx#*2#Y`cB7E7^?f z_Egv36K#pehl$Iem7Ae9Vn0kf{!OtIfpV|%Ue?3Z+fO~|1uNU{lOR=AEd+6mQDUgU@fDh<E(ETCwy zi2H=kr^*lLE?JaQVwtpu42)qZ)7{|vQ8&Jf6^jZUld-C?jty+mEK=FS7M_wc#rG4u I#M*x8FMNV3=l}o! literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5/client/MD5.java b/lab2_pruebas/md5/client/MD5.java new file mode 100644 index 0000000..6888241 --- /dev/null +++ b/lab2_pruebas/md5/client/MD5.java @@ -0,0 +1,46 @@ + +package md5.client; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.Action; +import javax.xml.ws.FaultAction; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebService(name = "MD5", targetNamespace = "http://ws.md5/") +@SOAPBinding(style = SOAPBinding.Style.RPC) +@XmlSeeAlso({ + ObjectFactory.class +}) +public interface MD5 { + + + /** + * + * @param arg0 + * @return + * returns java.lang.String + * @throws Exception_Exception + */ + @WebMethod + @WebResult(partName = "return") + @Action(input = "http://ws.md5/MD5/getMD5Request", output = "http://ws.md5/MD5/getMD5Response", fault = { + @FaultAction(className = Exception_Exception.class, value = "http://ws.md5/MD5/getMD5/Fault/Exception") + }) + public String getMD5( + @WebParam(name = "arg0", partName = "arg0") + String arg0) + throws Exception_Exception + ; + +} diff --git a/lab2_pruebas/md5/client/MD5ImplService.class b/lab2_pruebas/md5/client/MD5ImplService.class new file mode 100644 index 0000000000000000000000000000000000000000..2c4f1585a4c0896364d7eeb9ca2a2879d97cc0f1 GIT binary patch literal 2226 zcmb7F+fv(B6kW#<`Tw`p42$VoD4WY&~6q%bTgvkRVj0#F^*<*>oYrmkM z(bonZ=#-hZPkrb|wOvQnxVG_3sb{<;pR?D#ti8_hpMU-GD}Wj7s_4ODh~^6wy?8Cn zl7cruyb2<&;vSY2d?{Cx(yU0&lr*bB%qjRPh=huEyj8HK;A<7#SXZDcNDDkpugtEc zxAaVEXKyW;I^55!=!g1da(Q=cb3-7ae=t58nr*t;H#>Slps&t9^)8v(D*Fz3z8Bg> zKBt{K+P-;|F-sqwj!*6dar&9uts<5_^H=Ux9HMQ*xz7o{3XxWzg zTA(R9z9-O}EF7Bx?Yd=~8)x|=v$Sg*<+w5ueP0!)riNA1aL-C+LgG84wOz@z>AJN$ z1)8V>RVA-)Lgq-{-ThAKBPXUS>C6{%TZNJ<&=nom^T)G?*_>tCuEsr*_i*RTcCEa* zXE_#GTDI+iYshIh0{vALm+4B`$HjtWy974N9t2uzQq0_e;@dTJ9v-sRedjo*7qVV* zfesd1C$6@PYh=Gm8%2Mf!9{i=Cr=GixRkGenkk%>vgWEK2j1=1<_m37#uFI0)s?@W z^mt)wky;$JTVp>%Tq1Cd zrceCIfzhf6(8lni#JX*jUfMU zWTIgoGR8zrvJek4(ICxBgfQo&8Syd0L`aMhixY6Gn+3EW;UyXM0V7P(OhAx;=M7T4 zhJq#fj*+Z@N7^L+^(1M%u^Zew=xXUwt`Y1;=o;$p2>ryJGJh?e*IPun(#rR7eq)YD z<`^dYU>bu-S{~E|BdM(oqV3*}rpm+4&~l!V3;Bs$BK!vw+TSkGCQAxq<*R*iXVL1r~URKZ0`yIu`cu*v>$YJT%&XSN3^AH(0xFX@9VKEw8gIw z{>1cMl-U4nIiXY!co9Vyy~A4{a7V|YP!Wij0d{LRgPf)@&=Ar#Dn b80vGcgITZn9wvFos!8P><{iAkf`i0AJJS3# literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5/client/MD5ImplService.java b/lab2_pruebas/md5/client/MD5ImplService.java new file mode 100644 index 0000000..35cc6ca --- /dev/null +++ b/lab2_pruebas/md5/client/MD5ImplService.java @@ -0,0 +1,94 @@ + +package md5.client; + +import java.net.MalformedURLException; +import java.net.URL; +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.md5/", wsdlLocation = "http://localhost:8080/ws/md5?wsdl") +public class MD5ImplService + extends Service +{ + + private final static URL MD5IMPLSERVICE_WSDL_LOCATION; + private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; + private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.md5/", "MD5ImplService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL("http://localhost:8080/ws/md5?wsdl"); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + MD5IMPLSERVICE_WSDL_LOCATION = url; + MD5IMPLSERVICE_EXCEPTION = e; + } + + public MD5ImplService() { + super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME); + } + + public MD5ImplService(WebServiceFeature... features) { + super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME, features); + } + + public MD5ImplService(URL wsdlLocation) { + super(wsdlLocation, MD5IMPLSERVICE_QNAME); + } + + public MD5ImplService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, MD5IMPLSERVICE_QNAME, features); + } + + public MD5ImplService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns MD5 + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5 getMD5ImplPort() { + return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns MD5 + */ + @WebEndpoint(name = "MD5ImplPort") + public MD5 getMD5ImplPort(WebServiceFeature... features) { + return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class, features); + } + + private static URL __getWsdlLocation() { + if (MD5IMPLSERVICE_EXCEPTION!= null) { + throw MD5IMPLSERVICE_EXCEPTION; + } + return MD5IMPLSERVICE_WSDL_LOCATION; + } + +} diff --git a/lab2_pruebas/md5/client/ObjectFactory.class b/lab2_pruebas/md5/client/ObjectFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..8c3776ee8f21623c91e5fe4e4759f70dd0ccfbe7 GIT binary patch literal 1084 zcmb7DTW=CU6#jd%0bv1=FG7LGHwIV&k)}qy`3a4-v zYchF{6j_7?CHWH}170$0$eM^ebw>S%EKS(rV&B8i^1F5Oh%L3{$kbf7dYi#Vtjb9& zE{{N4IEFn~PMurI9TezEr0BI!^|D0TMQBeV(f=Nu3bZm>qm?PxH!mzC(5y9-kr9og(}-$cTCNvKRdTVGq27n1_>@A=3ShXbvH^H$`kU>opz{P6+GR zpjA@aq|=s*JRZ5&MjVd=!bRdFzw``BHyh6;rbzxkbV1!Gk|%&C6c)mc2P&-v;4h>r B3{(IB literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5/client/ObjectFactory.java b/lab2_pruebas/md5/client/ObjectFactory.java new file mode 100644 index 0000000..0e9a6c1 --- /dev/null +++ b/lab2_pruebas/md5/client/ObjectFactory.java @@ -0,0 +1,53 @@ + +package md5.client; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the md5_client package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _Exception_QNAME = new QName("http://ws.md5/", "Exception"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5_client + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Exception } + * + */ + public Exception createException() { + return new Exception(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ws.md5/", name = "Exception") + public JAXBElement createException(Exception value) { + return new JAXBElement(_Exception_QNAME, Exception.class, null, value); + } + +} diff --git a/lab2_pruebas/md5/client/package-info.class b/lab2_pruebas/md5/client/package-info.class new file mode 100644 index 0000000000000000000000000000000000000000..e94a52b25d4c09ef80c919a8402294c253a11be6 GIT binary patch literal 230 zcmYjMu}%U(6r4rn1QMf-#t*QRR~Q?tY^X>`AThS@mgn8#?mNOR%C}MQ0e%!=kHYYh zc~i_}Ci8dL?E$=CP@q?!Z_uANo3)j(^I~wfV*AaNJUjhrhD-iogU8uMlMC|UqAR_; zt2T*~Ycv`>OEw!u^BbV2;D(r55zD5)xFB5)I+gb~~X%_R;K4dHgK- zK#3;)0DhG5PFq9*aX!rB+;i@|b7pRS|M&&qHL3;-6vy!lRt_Zt&oP}tnd60lEQ$tZ zFv~H=@sc6?Mut+oWk^@ozA|LqM{U6{xhF&MxfirVeBicxLNb9XLxxiIXz#>5bsgUg zkDaE9Wq91sLZcb=Vo&TyO`iJnVROIN@@3Ky@hihIgYVscqugiHJ|7 zCu~>QB5Zdf8LGP7QL0;a96$10zY`^@UfZZ`IA@6yv^O~xOe|uFVfKGCh6y5T4OQ6< zx<1FUi509ely%^?m=6DKm?3|6#V@TB;i-F2^CD3qAjhH}1+1YTGII9G3`Ld*H)t>v z2RZJ;47{sJJ~?SsA2-s{x^w3|@O9fCM{a24&`^f$N0k5M8g|@R8$b^dHBiAg{SG}+ zVES2TeoCh~S{bcl>wU2Av?23o&JI9MqDkawuc=!|lNcynB2`FVAyXLpiR@t?{2IA$ VciIW!flB14h(${J8FWse@CSH5q-p>F diff --git a/lab2_pruebas/md5/endpoint/MD5Publisher.java b/lab2_pruebas/md5/endpoint/MD5Publisher.java deleted file mode 100644 index 8e75e7d..0000000 --- a/lab2_pruebas/md5/endpoint/MD5Publisher.java +++ /dev/null @@ -1,15 +0,0 @@ -package md5.endpoint; - -import javax.xml.ws.Endpoint; -import md5.ws.MD5Impl; - -//Endpoint publisher -public class MD5Publisher{ - - public static void main(String[] args) { - final String url = "http://localhost:8080/ws/md5"; - System.out.println("Publishing MD5 service at endpoint: " + url); - Endpoint.publish(url, new MD5Impl()); - } - -} \ No newline at end of file diff --git a/lab2_pruebas/md5/server/endpoint/MD5Publisher.class b/lab2_pruebas/md5/server/endpoint/MD5Publisher.class new file mode 100644 index 0000000000000000000000000000000000000000..0bc987251680ad37346a15ea21ec28153641d712 GIT binary patch literal 1191 zcmZuwT~pIg5IwgAZU})wp$H-p5TSq&6i{sWkWZ;ol$kO*jxVO|9SF8brcD8VkvcvXV31Q-TeM@{R_YX-l^z?u3(g7Ohpj7Jf5f+$5Ry(n3SJU zj;VG`V@AO<6|4&oEpLq>7@hja(6Z%Z1w$xl+2VaE zpB9BfGo2$#OWw3>hW_Z63OS1IrZ!aB`(mAVmEDCdyNJAeY4E)&h+?Zi7Jouk}vt;G6qM%_JuQ_5G;#lEW z)v$(j4R5f{(0d!RbDj~dXE`>9B(!3 zA;B;x9W|tM*SlxvzODL0`b1QdM0P34mNje!bx91e8kb&rwPf|lxfyB^vhoMf;MFcXoZs@B~G_DGR;yJY@8U#pv zFM1+RTj-Q1d&JLeImQ7km`8YF<|(y5=euUw9an;Kw4IS=V$gC{nm#wq^Eo-Bo$BCZ zq`!*{t4$&sRP^T)_cggk6vrsS^jpd&08$7MI{WEsnBI)ut<#ra7j&Whrn9YLRM3tA z4ANafuj$7P(%TFNk~au`zC_DR8Ld}nD}&Re3?=yk+Wt?d;f^x2228lK>L*{-9PT2M zjHfUH&)gtHjNMo0`E)@EgBZeNN*}0{GeI|?gRGro?;%eJBk0B?brq++4ymKB)YC&k Z^&;?>00E96jz?e|!wL~TCRYF>{{Y}5C2;@% literal 0 HcmV?d00001 diff --git a/lab2_pruebas/md5/server/endpoint/MD5Publisher.java b/lab2_pruebas/md5/server/endpoint/MD5Publisher.java new file mode 100644 index 0000000..5efdf55 --- /dev/null +++ b/lab2_pruebas/md5/server/endpoint/MD5Publisher.java @@ -0,0 +1,23 @@ +package md5.server.endpoint; + +import javax.xml.ws.Endpoint; +import md5.server.ws.MD5Impl; +import java.net.Inet4Address; + +//Endpoint publisher +public class MD5Publisher{ + + public static void main(String[] args) { + String url = "http://"; + try{ + url += Inet4Address.getLocalHost().getHostAddress(); + } + catch(Exception e){ + System.out.println("Exception when getting IP address."); + } + url += ":8080/ws/md5"; + System.out.println("Publishing MD5 service at endpoint: " + url); + Endpoint.publish(url, new MD5Impl()); + } + +} \ No newline at end of file diff --git a/lab2_pruebas/md5/ws/MD5.class b/lab2_pruebas/md5/server/ws/MD5.class similarity index 100% rename from lab2_pruebas/md5/ws/MD5.class rename to lab2_pruebas/md5/server/ws/MD5.class diff --git a/lab2_pruebas/md5/ws/MD5.java b/lab2_pruebas/md5/server/ws/MD5.java similarity index 92% rename from lab2_pruebas/md5/ws/MD5.java rename to lab2_pruebas/md5/server/ws/MD5.java index 66a0779..89fd071 100644 --- a/lab2_pruebas/md5/ws/MD5.java +++ b/lab2_pruebas/md5/server/ws/MD5.java @@ -1,4 +1,4 @@ -package md5.ws; +package md5.server.ws; import javax.jws.WebMethod; import javax.jws.WebService; diff --git a/lab2_pruebas/md5/ws/MD5Impl.class b/lab2_pruebas/md5/server/ws/MD5Impl.class similarity index 100% rename from lab2_pruebas/md5/ws/MD5Impl.class rename to lab2_pruebas/md5/server/ws/MD5Impl.class diff --git a/lab2_pruebas/md5/ws/MD5Impl.java b/lab2_pruebas/md5/server/ws/MD5Impl.java similarity index 98% rename from lab2_pruebas/md5/ws/MD5Impl.java rename to lab2_pruebas/md5/server/ws/MD5Impl.java index 4764206..5d65de8 100644 --- a/lab2_pruebas/md5/ws/MD5Impl.java +++ b/lab2_pruebas/md5/server/ws/MD5Impl.java @@ -1,5 +1,5 @@ // Based on http://www.mkyong.com/java/java-md5-hashing-example/ -package md5.ws; +package md5.server.ws; import java.io.FileInputStream; import java.security.MessageDigest; diff --git a/lab2_pruebas/monitor b/lab2_pruebas/monitor index 04f101e8ad6d95766e5b032966d0309087464479..371d2f2cb4552929ed50bf1ce57d00ce5b1859e6 100755 GIT binary patch delta 2071 zcmY*a3v5$W7(V~)y7u0+YX@|cy-U}7${{BqSz@j z(kzoTzXMc)^Fe@NaBxjPgLK5iiJ8cfiI1R8#biN(LlXpfT>t-;O+88f$2s5ko&P`Q zH23_+F#0ic=D}zr|DfEKB#hA(`8GPi?}#OShu;YN4(x&NCT+a%%G~FJ#~)o#{NfsE zjZ$`XSI~*h^f_6i zy=FvhuN!S|Ij@HMN8%+R!j(fiwhxKTN^}5!mnXYNX^)YgZtMDQB_uU^Z)b-CGZgon zDb!!AfQy7MwjC3$8&NxI2GsC57A~RE+A9aB0tA&mxJowQN&P&LEW?Y_7Z2fr>gF}ED415KwV&Qb%*b&BTLk&9fj;4s|sJQ3V&6d|Es#=id8*x z$21bc#KcRX#Tz#_tk2re(!8p1Q`W|&tmejGuwhMO@PRDfYDGY*Y4&=Ow$ZQqFJ0%O z?7pGvJIU|9sq4e!>u%|~pyPX&d=~jSI%q%n9`Y;6m)z0yR`Rcs?|>u=1{= zOYs~2hyO0WI&o~7?~6yoSeD{s+~UcEsJ7d)4PdY4^ga^@C-8+C>F|!$of{`XD;~(t zCi{7Q+BDb!)lP>&Gj^?%YCcV8$R& zefx{EXSR}n;w~a_YZHZeO3ERM#<5j4$K#*H-Vj3-&kAN$Q|MH@ z-!RL?)7deWnPcBDvqU_Dlw6H4XFSYFVIxXRUL!D|2lCUE0lg$pAsk z8TiC(-qaXuS+5PwpA9$+@tRFt4A6!RRg_z!!&N8v4jQU= zN%TSdqxwEdJT;Ty5LVP|g&{mfaT}hkSpk_wAx~2UREXA42%HSNXTQ*NVHz&q>8ILV1lj{Pp>;t?;i2azqe4gY~@u}r= N<>A`c(rE%_{sWaG96u;l?y7qSM*6z_&*6u;uy;$8CV-FE%je{09)`bq-A~+wQ1cY7xm;}}i3^)Q|ix7M)Fo`5XQHGhoWbAs*EgSe{JLi1gIlps$ z=R3FejviwJ$5=-$8wlm?6-o@8yh=hpg%ii(qnojKr)-SH!&mI*-5z7l#SHF1<(=7)ww5!B zR;#qm$wFi0YvNBf3dR3Nx}kMJpQOR3mJdY;XuxwhL;7EY=CH2+Ol0?zV`Y zlC)QkxZCSS+nWa5fm0*rF+-s8d|S(T?o~~=6K)8prU=#;`E^2){+NTQM(?qrG&p_JoY+Gu<;)M(RLAH1l|V;5nU zHk%!Su(pCV!#JK)fmN5qmO!O0n^*h`n{;-5XdEKia@GZB(X$6`=rW2EGMt=ig=@Jh zAi3&XzN(--U7yL-xq}YU%RGTwp1_5wysPfE>uPu3J;lh^ups`ojU30)6!X?&gIfH* zep`~hA$>=Z-b8(6T#|-RH{O+`3Dmu)&3M6$cvFv~{top@)YbPS>2=fxQFo%=fdf2> z`a0?%)GH-Pvhi>*VJ7p#U_v2ZbQ^emwsI2d1i_(CV=sV5pTRzY=TXjr07^f6iLxL1 z^%=Zo0)E%0vtAGk8NB))TB5|`}w-!1KUeKpInNO@u-_P?w27}BvqX5bB+_;+K z@DJBojZ@Z_9(KQ#H07p2&m`B6PIXvOk8ldFWAu4uK)Rx`Lwkke`cH`_SUv z)^J=5*MdpZ>^YR$q*#tyho}dfDLcoNh+pJyK{}wfn#9tA`e{nAC&wZFQZ&er(1Bvx z?5&tUV=Bbt>NRNQYG&+1TX>9))6P;VVF*cT%w(&DNhR=etgRHP$y!6GN;LHv>yLzr zr(;_bHAyJ@Frm0u3ex0=7-RmPTGkyzImNjKV`#C?ECKICiLp!?D-f~$%yKYtV z8q5(w8|M+cTjRtSjyo(%f*&C`F=s~Npa}J}T8RAA_E4(@`Cpzhizy+lq+rEW^4Vl6 zaZWi)-E^*4ylD&d!{mO5icHM*1BT#4qQq=bVo!7CbCk2392cNj!I>!#0!a)N2Qw4 zi?)gyR;2|Aq@r$BX0p{PZ1uD9=%`d#O@xw1rLz7-C~8e*i=v2~%KizVIG%!3IsF)u z*n}n%9C$v(?pd^HvCcB&ob-|$kj=}ZO4=vy$U#r6QoVt4#63f&DU_rOYAcM(WK7Ec zFe$H1W2mD<7eVXR5v_b*FK#?JW`PygTL`}^Bt^vVH{&?MXl4wm`k*} zPAJ7c7gaE^!0ltq2irZV__EmUNl_TMFaemLw&5ifbVcvb}4tKQ@B>y=pjDD#4= zIu+lm_0?PO?Kz0H53W_OVcpmsg); printf("MD5: %s\n", res->md5); } + int result; + getnummessages_1(argv[2], &result, clnt); + printf("Total number of messages: %d\n", result); /* Destroy the connection */ clnt_destroy (clnt); exit (0); diff --git a/lab2_pruebas/monitor.o b/lab2_pruebas/monitor.o index d5db255ed3ed9f7adb2a5e1ff36372d662e96be6..76a48d96158d2bf982e684d60b0715fe372a5343 100644 GIT binary patch delta 660 zcmYjOO=uHA6rMNfN;Z=Emmd||rY&t|H_ahZ*y17WB`_kD92684jWotXYf00nh#`d@ zY_bT(hj>ZBV=4-PJ(UI$PgN)qZyr6Co)Rxn5aLWW5kGj$yl=ku=6f^Eo1bsJVswj@ z^pWv+Ay?ytY;}p7LsN_p!V9rqk;Z1O=EzTSGgiescuP6AyUNW4r#So}$CP^eC37xL(zzsu>;(O2sWV@xVE~USPneOuG~+q1y&yfR+5=a zB9+Ws3QR4z$dHP+=@`_l=QQpN)j?Jh0%cGM8R>16Ik7lOAM*WFbISA`c3g`-siLKO zqdlQ+3u}4n%JFTWb-+&^AIw_d4uj*1Girs0JBqTF%w(5w!c!D?e)MDj>NxJ(hd6%o zrTnSnx-dF$csC;Z3Rs5!H(cK8o1=p9i}=&E@w(5u1gD57ijXM(r#~U`fqu`5oO|Jb zj=}W`?)Y&z$0+{sB*EXE3gvRoQu)i(^_d#INpX^EB+nBP~jw22t0e>K(VO zn8UPg&`J>B3-ZmdO-^H5H((F7&^&E<cjpV2~4xGzb{C$rT_o{ delta 452 zcmXX=y-UMT5YN3>OsuV+wI~$P)-*|5s8CD?Xgd|<|C4e6K z-#u6zEVJZ5VABW-X>oj+8>z{=}vUR^|w?* zP6yo+1fdr-&47EhAj^7P%gW9FOAoN68C{En`#vSq^(omL<}i%~-GF(l>+C}}=aM)X z7{G5mLUt7#k7Z=R$AuIYVg_j_c+SX_pOd55in$46@hp^awcYFSEV)teF`khh6mDy@ YL#GoF*%{=FiiLzBKM!$~=S$V@KeK>*oB#j- diff --git a/lab2_pruebas/server b/lab2_pruebas/server index d8ccbc3b74db2a45a430d5f10eac1083e078d018..e4119ff280c4dd69a29435b3e8e4edbb1681e738 100755 GIT binary patch delta 7803 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 delta 7556 zcma)B3tUvy)<64PDGX|{-*}a;SrD@mDt2qXhmL;S$_rK3M17p|w{l4@2xz|~Hz5aWx zwfEVBr=L|dJgc(DuoVv7YkgD33euC}_`>N|kR>w(Sw`ulfOfO9{_W`tCarz^sSCcl zGta5-O)LwYGxbXS7ICYe&)y89U~V~Vq)dO8_+bV`1cX^CJ62fBs?64s@;PQ(ugDlU zGFwfqq^8QUDs@S)*=8y?S2p>WZ9=1)n_F947jL=U>zbDNJAFnQ1=rg*-EOBFk1O~$ zw_DL41bwc0L@=GlSdy`KHBV+y+g_*k;t4t?IBWtM~hlb6!I)@Mdf4L5@Pg11}??3g5MjgCt>#D_jmqGlmYa)cC&B1f5yXnQJxe zu&GB%z9!cml(mmT_yN$$EBLT`1qCp0N(%^tH=DX6Q!6y85divgy7fD|^|jslUqkBq zj%kM!*y5Tgv8Vas(QJck#$NDH+=cv|F^9n>qj{K(q#oyxtfX0Ii(|2@Em{jl2t-MHpO@JEc}lbQX0xiItq304O-g=8VaX zw`9d#w%hdu&y3XRzVO`c+sNOYQj4yJKbzVP2^ z5w7u=qJ0!@d$cDaKhS97fZ*!P5JA|m?m=*}vtaJ!J})n)6)%-HsBE}#T+edf`PmEl zM_|05xAGtg^z8`G1EQIEz{Ji?!6OT9{)8;8Ta2)k@A1)H66kD0qz0a8S2nygOQ2M~ zZ%Z^wwag>~OaegPcV2iHMz(dEF~Vo{PgEQn$-buNgR?A0;o1wz3Fv#Eya>N&5qsa1Iky{2RD3uG(9A6fIn{MngnsNJ zFte^(iwKqP@zGr}+?fa!8R$!pD%rZS5(kAGcpH3nC+Ig~p%I$v*J*`TA9fnL@?zPQ{Wyu_#U8<|{PrQWXp_aYKhQ1ho{61TZv*3o zGY^*a6iHOdM9Wa7r}Z;SXG zccWx%HjMv|h}R+Ziul=gh^V2Gk%NPW-tKdRm(LD*d1RvHb^ZURpHtxm&A%GTcj#vx zqmM+KgYR_vuG_}HG*Xn}Zz&{NCuVezIeMa|KdiixI2aHb_{aH5F6HS0lJmx!noS+p z*rqm)=Amz(-NdX%@HuX?nGQ%_WY@3(z-lw?;u>SVp`W6)!*6T)V7`WG(+MsYzM;ez zEjve3V!|wku6W$pCU5C>w;W3c1LXlcT+hdDh@92WbyD(ck^Eh@!YZEpChz3Wg%y(j z7S!&Ld^4od`DV5aD(ReKPEL`o(aY4X+$+R%2Jy*uO4X&uZ-Snjuwh7%XL;ZCk;}3f z$a~6y4}{K;R*X6CveZjB-7DsD^ch4cO2c=uvRx|~#-)=<3!mpYu%dQF~dB}4#6#3069MI(p zwF_1*foI63?hEN1s<4Bq3pU&yo(H zAzKRB9US++Op&8v60coyyN|wKXtrK5S9WO4)-o4NHcLoNo$c``XQ$a#=rUVB=ZmWR zn#xAaV1K8RqoUdSbZgW@@h@;_xZQ-BZ2=Dc&MmBVEs`O>s#jvReT;;J*2m8fHBodf zeyG^@65WW;7N7YSrRmM$ibyKgYs5JhsYY)Q6ED&U{UY`b854#_zWgug`ecCzdjtZE zHeD@AhwrOqTe%d*s$LO65@q@fI=B;)YnaK+N_JIhDU(~C(tqDE2{`<|y8Nx7P)u>Yd{78Mw# zuwQA1Av*P^bG#HtOtoF${b4hm#xDS~^_1(Zmqbq4hl=Dd{bqO%Nj{XkOw2h)hLp#| zKL4cWQ_}pt`e#pTxl00EPHIberq{_YapYHI_|uxyA$?kdwSqhKeX2>_GRz>oM_|mi z9?fge4lyDztq1R-Nogb4NqREP(C6rIuKvHYGi_nWbm{$WjFNg?nyh|49iO0HG$k#l z*Ux99NKxXdv$QNdQY<`6i!w6A;b-Zy^cZ%HeoGG%bI(#(MkL!s<1?bfiZhbJ_%pOS zLu-Bx=4hBcQkS-?8~C<4`o3?dkau6+j6AD5uP|@=r0U2w1GGY+xjLTHY5CTl^R1sv z((x|!F(3X_<;p!>?>qVkQx)fEsn?ixzkZR$!XNUdjl1`rdrae|!zCRa6Heh-RlS$Z zUd-8(nbGuSRtTNQO0krmbh{TL?uk=ww-L1YwA;M}^m|Z_ry03C4cdt<)CoEh8%>MC ziP)<~&>=Xei$Hzx6(|Rth3{f5=>LE=fwtl<(FXbyKD7caNjbPOXhDN;VKJ%%i%^4? zB22{KMpzEI2DBFRENByGDz0E{pc_F2To||D=BEYy9MlNvhdXZ(=rYi9Q2ukO7W5cs z6X$XNZv*`lRKS(=LHv}_g1!f8RO2TH|It{4iL0RHphXmr6DMx?oW|zpMW0V;X-4OkT-D9dU4!cy-k&z6Zm1Y7XQAcFLFXzCw1jSvqTEZ4P^%@598}J z3**yNf$?2>3FEhP7~>T>k8uexV<-!xFpRB~hcSg_VXUPJjA!U2j6>)!#>sRZ<9cFw zp=>dQVcbZ07g@pF19FEmVz?Cs;wJV?d50e$dOiX*K8=D*N+=>DD9SRO45 zV+rM9)X^-Af1--9-c!;e&m{d7VEZ4o)59~IDeM)y9XKR*7 z(%R**3oQbBLH2aIGV{G&APA?~)74T&&vTteJM?x=+| zkCb^{L*d22f}qRB?q;oruvJu!^5wcZbP4-pGDg5D)$z+E`}B`cRymHB#y)0Qx>R82 z<)Ce)@re-V_@4mTZ%;}K>MV^f!kk{i7s;5ij+OeAJO`qOFVj!r@;*#xS`C0S1;k!G7n(cQMlshdZ`d^hq?X?UxuM4ysJ0( z*-XyXu~L0IU&0)=0=g{9IaNY>mw)*tp#)-NjdGY!kpfy~1eq%0_YyoWWXESQtp!x{}zMJ_5S zIAoERcv%TQUr5$qqp&WEG%+>OC zmV`x%1r{%cgB2YGa*>inUQ5woOf8P0#6S64hKaKOmn{N{f{=?pNEN;g1Ay2Npq z#n~}NX|=boWB9{roZYK7i@a#ks-;BYJ}2>;E&5@+sQKdE5)aT3yebn!xr6swEc#6D zexm3>t*_w*)5K4a+-}%UdSDAlC%O81@sU^~JPN|pZZ!FUo*Jx|(4d9n5_ni+$~+uQ z>lJ8+q=Fdugp7T!QV|co%c7sb4~M74E4~~`k>1W(d;PL`0nD%G)R$lg)9bfBF`J3| z;>i7E7E@E!e1rJaC|W#U$HHjq{F&m>c)C7+g1Avn#s&CEn?O|yO2m!?QZ399S0qv% z$R~+pS(wG*=+MG!aa|JKTsU`d&*wvqvr|pmo_L5(EGiSvCDFZ$=ZUWx=-}c6(Pg0a z#ThJ$B9@r_dcG>MRXCL`v5B*iso&B^#SfBc;nFIBm!TF^oK=^7~0TLYyp>yJ1f`14=HbvSzX^U9sAH=*nJ z)34j9%>ODopN12ZKQ@Kh6}n-76#F^+u;e`(k?#-asJ$jz~2lk{f-bkBXe;6gX z_WF4A;^?{rO_Xxa7^Apbg3Me!e&f}kkW{0jCf%j*_C5CE zU}2zu3(y-w(P{PHym1dhUypukeEtWD<9^CU%tw{{yq1MCN_u8up8Gf&Zi?@dw+u>MkgBfrHQ9h^u)fXpm_;$ph_js z5k)JGcJF(Z?}g0$rOZtG_7639w!*!NDxp_+yx$*r+mv}U>M#2@Vp~}2#~Y3-$tqNg z6VPDXxI>9wrOan3^XPW*K-xfYQv_um(f9MT1q!kBNSdFg8=5j?GdsO|B%!aT7YgXw zk@S8mvW=1uonUysSrpxR`sHtFfRogm+jrD6vf&zfsyQA1gR-wVm(8GS7=tLOC6}$B MB^dui`&y#^4R6?76#xJL diff --git a/lab2_pruebas/server.c b/lab2_pruebas/server.c index 4bfea38..d5d4d2a 100644 --- a/lab2_pruebas/server.c +++ b/lab2_pruebas/server.c @@ -113,6 +113,21 @@ int main(int argc, char * argv[]){ until the thread stores a local copy of the socket descriptor */ busy_socket = TRUE; + CLIENT *clnt; + /* Create connection with the storage service */ + clnt = clnt_create (store_service_ip, STORE_SERVICE, STORE_VERSION, "tcp"); + /* If error, the service is unavailable. Show error and exit */ + if (clnt == NULL) { + fprintf(stderr, "ERROR, STORAGE SERVICE UNAVAILABLE"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + } + else{ + /* Initialize the storage service */ + init_1(NULL, clnt); + + clnt_destroy (clnt); + } + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ fprintf(stderr, "%s", "s> "); /* Prompt */ diff --git a/lab2_pruebas/server.o b/lab2_pruebas/server.o index dc7f8b6661c096f7d0cfa76ed61ae260d09ac70f..19f317025d5744e6fde8cff59a1080f667676a55 100644 GIT binary patch delta 11307 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 delta 10925 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 From d7fe8a320afe530d510e2684ebe47a88096ee876 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Sun, 7 May 2017 00:11:43 +0200 Subject: [PATCH 15/17] CGP: Code commented. First submission version in ssdd_p2 folder --- lab2_pruebas/client.class | Bin 8281 -> 8281 bytes lab2_pruebas/client.java | 5 +- lab2_pruebas/jax/MD5Client.java | 19 - lab2_pruebas/jax/MD5Publisher.java | 10 - .../jax/localhost/_8080/md5/Exception.class | Bin 664 -> 0 bytes .../_8080/md5/Exception_Exception.class | Bin 810 -> 0 bytes .../jax/localhost/_8080/md5/MD5.class | Bin 637 -> 0 bytes lab2_pruebas/jax/localhost/_8080/md5/MD5.java | 60 - .../jax/localhost/_8080/md5/MD5Client.java | 15 - .../jax/localhost/_8080/md5/MD5Impl.class | Bin 1172 -> 0 bytes .../jax/localhost/_8080/md5/MD5Impl.java | 48 - .../localhost/_8080/md5/MD5ImplService.class | Bin 2282 -> 0 bytes .../jax/localhost/_8080/md5/MD5Response.class | Bin 735 -> 0 bytes .../jax/localhost/_8080/md5/MD5Response.java | 62 - .../localhost/_8080/md5/ObjectFactory.class | Bin 2032 -> 0 bytes .../localhost/_8080/md5/ObjectFactory.java | 89 -- .../localhost/_8080/md5/package-info.class | Bin 250 -> 0 bytes .../jax/localhost/_8080/md5/package-info.java | 2 - .../md5/client/Exception_Exception.class | Bin 754 -> 761 bytes .../md5/client/Exception_Exception.java | 2 +- lab2_pruebas/md5/client/MD5.class | Bin 1080 -> 1108 bytes lab2_pruebas/md5/client/MD5.java | 6 +- lab2_pruebas/md5/client/MD5ImplService.class | Bin 2226 -> 2233 bytes lab2_pruebas/md5/client/MD5ImplService.java | 10 +- lab2_pruebas/md5/client/ObjectFactory.class | Bin 1084 -> 1096 bytes lab2_pruebas/md5/client/ObjectFactory.java | 8 +- lab2_pruebas/md5/client/package-info.class | Bin 230 -> 237 bytes lab2_pruebas/md5/client/package-info.java | 2 +- .../md5/server/endpoint/MD5Publisher.class | Bin 1191 -> 1205 bytes .../md5/server/endpoint/MD5Publisher.java | 6 +- lab2_pruebas/md5/server/ws/MD5.class | Bin 503 -> 510 bytes lab2_pruebas/md5/server/ws/MD5Impl.class | Bin 1132 -> 1153 bytes lab2_pruebas/md5/server/ws/MD5Impl.java | 12 +- lab2_pruebas/monitor.c | 5 + lab2_pruebas/server.c | 6 +- lab2_pruebas/store_service_server.c | 47 +- ssdd_p2_100291121_100292107/Makefile | 54 + ssdd_p2_100291121_100292107/authors.txt | 2 + ssdd_p2_100291121_100292107/client.java | 743 +++++++++ .../gnu/getopt/COPYING.LIB | 482 ++++++ .../gnu/getopt/ChangeLog | 114 ++ .../gnu/getopt/Getopt.java | 1337 +++++++++++++++++ .../gnu/getopt/GetoptDemo.java | 97 ++ .../gnu/getopt/LANGUAGES | 23 + .../gnu/getopt/LongOpt.java | 195 +++ .../gnu/getopt/Makefile | 7 + .../gnu/getopt/MessagesBundle.properties | 33 + .../gnu/getopt/MessagesBundle_chs.properties | 33 + .../gnu/getopt/MessagesBundle_cht.properties | 33 + .../gnu/getopt/MessagesBundle_cs.properties | 33 + .../gnu/getopt/MessagesBundle_de.properties | 33 + .../gnu/getopt/MessagesBundle_es.properties | 33 + .../gnu/getopt/MessagesBundle_fr.properties | 35 + .../gnu/getopt/MessagesBundle_hu.properties | 32 + .../gnu/getopt/MessagesBundle_it.properties | 32 + .../gnu/getopt/MessagesBundle_ja.properties | 32 + .../gnu/getopt/MessagesBundle_nl.properties | 32 + .../gnu/getopt/MessagesBundle_no.properties | 32 + .../gnu/getopt/MessagesBundle_pl.properties | 36 + .../gnu/getopt/MessagesBundle_ro.properties | 34 + ssdd_p2_100291121_100292107/gnu/getopt/README | 57 + .../gnu/getopt/buildx.xml | 68 + .../gnu/getopt/gnu.getopt.Getopt.html | 639 ++++++++ .../gnu/getopt/gnu.getopt.LongOpt.html | 210 +++ ssdd_p2_100291121_100292107/lists/msg_list.c | 59 + ssdd_p2_100291121_100292107/lists/msg_list.h | 15 + ssdd_p2_100291121_100292107/lists/read_line.c | 68 + ssdd_p2_100291121_100292107/lists/read_line.h | 5 + ssdd_p2_100291121_100292107/lists/user_list.c | 246 +++ ssdd_p2_100291121_100292107/lists/user_list.h | 27 + .../md5/client}/Exception.java | 2 +- .../md5/client}/Exception_Exception.java | 14 +- .../md5/client/MD5.java | 46 + .../md5/client}/MD5ImplService.java | 20 +- .../md5/client/ObjectFactory.java | 53 + .../md5/client/package-info.java | 2 + .../md5/server/endpoint/MD5Publisher.class | Bin 0 -> 1205 bytes .../md5/server/endpoint/MD5Publisher.java | 27 + .../md5/server/ws/MD5.class | Bin 0 -> 510 bytes .../md5/server/ws}/MD5.java | 4 +- .../md5/server/ws/MD5Impl.class | Bin 0 -> 1153 bytes .../md5/server/ws}/MD5Impl.java | 15 +- ssdd_p2_100291121_100292107/monitor.c | 53 + .../rpc_store_service/segurodevida.c | 182 +++ .../rpc_store_service/store_service.h | 93 ++ .../rpc_store_service/store_service.x | 17 + .../rpc_store_service/store_service_clnt.c | 53 + .../rpc_store_service/store_service_svc.c | 155 ++ .../rpc_store_service/store_service_xdr.c | 44 + ssdd_p2_100291121_100292107/server.c | 682 +++++++++ ssdd_p2_100291121_100292107/server.h | 30 + .../store_service_server.c | 197 +++ 92 files changed, 6628 insertions(+), 386 deletions(-) delete mode 100644 lab2_pruebas/jax/MD5Client.java delete mode 100644 lab2_pruebas/jax/MD5Publisher.java delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/Exception.class delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.class delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5.class delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5.java delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Client.java delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.class delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.java delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.class delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Response.class delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/MD5Response.java delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.class delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.java delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/package-info.class delete mode 100644 lab2_pruebas/jax/localhost/_8080/md5/package-info.java create mode 100644 ssdd_p2_100291121_100292107/Makefile create mode 100644 ssdd_p2_100291121_100292107/authors.txt create mode 100644 ssdd_p2_100291121_100292107/client.java create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/COPYING.LIB create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/ChangeLog create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/Getopt.java create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/GetoptDemo.java create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/LANGUAGES create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/LongOpt.java create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/Makefile create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_chs.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_cht.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_cs.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_de.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_es.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_fr.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_hu.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_it.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_ja.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_nl.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_no.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_pl.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_ro.properties create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/README create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/buildx.xml create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/gnu.getopt.Getopt.html create mode 100755 ssdd_p2_100291121_100292107/gnu/getopt/gnu.getopt.LongOpt.html create mode 100644 ssdd_p2_100291121_100292107/lists/msg_list.c create mode 100644 ssdd_p2_100291121_100292107/lists/msg_list.h create mode 100644 ssdd_p2_100291121_100292107/lists/read_line.c create mode 100644 ssdd_p2_100291121_100292107/lists/read_line.h create mode 100644 ssdd_p2_100291121_100292107/lists/user_list.c create mode 100644 ssdd_p2_100291121_100292107/lists/user_list.h rename {lab2_pruebas/jax/localhost/_8080/md5 => ssdd_p2_100291121_100292107/md5/client}/Exception.java (97%) rename {lab2_pruebas/jax/localhost/_8080/md5 => ssdd_p2_100291121_100292107/md5/client}/Exception_Exception.java (58%) create mode 100644 ssdd_p2_100291121_100292107/md5/client/MD5.java rename {lab2_pruebas/jax/localhost/_8080/md5 => ssdd_p2_100291121_100292107/md5/client}/MD5ImplService.java (79%) create mode 100644 ssdd_p2_100291121_100292107/md5/client/ObjectFactory.java create mode 100644 ssdd_p2_100291121_100292107/md5/client/package-info.java create mode 100644 ssdd_p2_100291121_100292107/md5/server/endpoint/MD5Publisher.class create mode 100644 ssdd_p2_100291121_100292107/md5/server/endpoint/MD5Publisher.java create mode 100644 ssdd_p2_100291121_100292107/md5/server/ws/MD5.class rename {lab2_pruebas/jax => ssdd_p2_100291121_100292107/md5/server/ws}/MD5.java (74%) create mode 100644 ssdd_p2_100291121_100292107/md5/server/ws/MD5Impl.class rename {lab2_pruebas/jax => ssdd_p2_100291121_100292107/md5/server/ws}/MD5Impl.java (72%) create mode 100644 ssdd_p2_100291121_100292107/monitor.c create mode 100644 ssdd_p2_100291121_100292107/rpc_store_service/segurodevida.c create mode 100644 ssdd_p2_100291121_100292107/rpc_store_service/store_service.h create mode 100644 ssdd_p2_100291121_100292107/rpc_store_service/store_service.x create mode 100644 ssdd_p2_100291121_100292107/rpc_store_service/store_service_clnt.c create mode 100644 ssdd_p2_100291121_100292107/rpc_store_service/store_service_svc.c create mode 100644 ssdd_p2_100291121_100292107/rpc_store_service/store_service_xdr.c create mode 100644 ssdd_p2_100291121_100292107/server.c create mode 100644 ssdd_p2_100291121_100292107/server.h create mode 100644 ssdd_p2_100291121_100292107/store_service_server.c diff --git a/lab2_pruebas/client.class b/lab2_pruebas/client.class index f1dbeb98dc6e68e866544d82ecf8bedb100dcaf0..2ae212ed37b252da1fc764493a7febbff84871f9 100644 GIT binary patch delta 39 vcmccVaMNMK6m~}a%~RQ(*@X3zb23x&O7wkQOsyFi_;OQB^*6uf%@YCu5lalF delta 39 vcmccVaMNMK6n4h=%~RQ(*@WYhb23x&O7wkQOsyFi_;OQB<2S$N%@YCu9J>uR diff --git a/lab2_pruebas/client.java b/lab2_pruebas/client.java index 7d701ea..21aefa9 100644 --- a/lab2_pruebas/client.java +++ b/lab2_pruebas/client.java @@ -342,16 +342,17 @@ static RC send(String user, String message) String md5; /* Calculate the MD5 of the message */ try{ + /* Build the URL of the web service based on the IP passed in the command */ URL url = new URL(new String("http://" + _md5_ws + "/ws/md5")); /* Define the MD5 Web service variables */ MD5ImplService md5Service = new MD5ImplService(url); MD5 md5_ws = md5Service.getMD5ImplPort(); + /* Call the web service that calculates de MD5 of the message */ md5 = md5_ws.getMD5(message); } catch(Exception e){ - /* If exception occurs, nothing is sent to the server */ + /* If exception occurs, nothing is sent to the server. Print error */ System.out.println("c> ERROR , SEND FAIL / ERROR IN MD5"); - System.out.println("Exception: " + e); return RC.ERROR; } /////////////////////////////////////////////// diff --git a/lab2_pruebas/jax/MD5Client.java b/lab2_pruebas/jax/MD5Client.java deleted file mode 100644 index 4330699..0000000 --- a/lab2_pruebas/jax/MD5Client.java +++ /dev/null @@ -1,19 +0,0 @@ -import localhost._8080.md5.MD5Impl; -import localhost._8080.md5.MD5ImplService; - -public class MD5Client{ - - public static void main(String[] args) { - - MD5ImplService md5Service = new MD5ImplService(); - MD5Impl md5 = md5Service.getMD5ImplPort(); - try{ - System.out.println(md5.md5("mkyong")); - } - catch(Exception e){ - e.printStackTrace(); - } - - } - -} \ No newline at end of file diff --git a/lab2_pruebas/jax/MD5Publisher.java b/lab2_pruebas/jax/MD5Publisher.java deleted file mode 100644 index 66e28f8..0000000 --- a/lab2_pruebas/jax/MD5Publisher.java +++ /dev/null @@ -1,10 +0,0 @@ -import javax.xml.ws.Endpoint; - -//Endpoint publisher -public class MD5Publisher{ - - public static void main(String[] args) { - Endpoint.publish("http://localhost:8080/MD5", new MD5Impl()); - } - -} \ No newline at end of file diff --git a/lab2_pruebas/jax/localhost/_8080/md5/Exception.class b/lab2_pruebas/jax/localhost/_8080/md5/Exception.class deleted file mode 100644 index fb001ccec92d990563308b6fc17ad808f716ed18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmah`*-8UJ5Uj~*)@Y(8-Vu+NM9~pMhzEjrfDjcl1i=THY=$_pI~#U468}m;5q$6i z{3x+E##@wu?wX$Jsvi33`QZ`35+)2pFq%LZV{wefkzx7j z0te&RX}YG|Re@^nPRo=HUpaaqn2llNsHuHr%Zl<8`EF|M_#$}s80Ol7E#9&%URAor z#rrEiv8_$hr1>1TeASTjvFN3+nq=`h=|5d>J-d55rEP|pznwblh!!>(B;Nl(xZygD zL$@Z~B;x2wB8nJ8&T>p)ojab-&x(u1MQ+!Y`KPY*$6gMr7t-`GMH`IJMrk2|1feit zQlyxmTaGfL9G$%fyJ-^*im`Tal43WK6u(k$5xV|HohMQcdOOrTRjeQNsj|=xiINa$OiZnb3H6~8`$z^{VVd1pvO6e0t4%Z} zKJ*9lM>XDAo5cr=>C45QS0Aej zpJB7(`UByP{7~~=tI=w3@4U&sOb5{Z0*iP>c9Ej5=~fD{gmQ>C_wqKy#Q*>R diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5.class b/lab2_pruebas/jax/localhost/_8080/md5/MD5.class deleted file mode 100644 index be021c56be0e2843c2470528e1ebd3e6ebab54d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmaixX-fk!5Qg9MT3f5F^}dS7m)fE!h~R}#JV2-xv=qS)l5Rsy+0B;St?0i}Py|2t z1N>3qbiMFE3Cv6;&%859o}M2b0W2e%Km-$UgfVGg%D^;3M7Yf&L#Esk7lK*h;1sZ{4IuXZlOl#w$qRdsj|}Yuw&PyTNQPSGDcJSr9fsVxA2>g;k^UHxu54< z?ZmOuaZS0Wx_UhaJ1a}wc^JlzI@(vZtSL`Xuaee|FMQ=_kD(AqUGhuY;&r7PTzs7J z6Wc18ru00=tzNYyT_$=VtPY944){;id(GbdZh41c{_jq2bVLiA8iZ+jhIrd`+7-7U z-6Rb3BoRf7VbpR=VVygk&(Btit3_@%R(QatKi|JnZ%Na~EPYdizKtHfTTD@yV$vcT zr`OqMi3}b}0qaMaEehTIx`U1}tiY@>E diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5.java b/lab2_pruebas/jax/localhost/_8080/md5/MD5.java deleted file mode 100644 index 746c01e..0000000 --- a/lab2_pruebas/jax/localhost/_8080/md5/MD5.java +++ /dev/null @@ -1,60 +0,0 @@ - -package localhost._8080.md5; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for MD5 complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="MD5">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "MD5", propOrder = { - "arg0" -}) -public class MD5 { - - protected String arg0; - - /** - * Gets the value of the arg0 property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArg0() { - return arg0; - } - - /** - * Sets the value of the arg0 property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArg0(String value) { - this.arg0 = value; - } - -} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Client.java b/lab2_pruebas/jax/localhost/_8080/md5/MD5Client.java deleted file mode 100644 index 1af5113..0000000 --- a/lab2_pruebas/jax/localhost/_8080/md5/MD5Client.java +++ /dev/null @@ -1,15 +0,0 @@ -import localhost._8080.md5.MD5Impl; -import localhost._8080.md5.MD5ImplService; - -public class MD5Client{ - - public static void main(String[] args) { - - MD5ImplService md5Service = new MD5ImplService(); - MD5Impl md5 = md5Service.getMD5ImplPort(); - - System.out.println(md5.MD5("mkyong")); - - } - -} \ No newline at end of file diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.class b/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.class deleted file mode 100644 index 85bf6b15177fa9969c64d513c30ba996eaea8c45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1172 zcma)5YflqF6g^Y>usnn+4+~Nh6sSU{i6J5I#U|Rs1k|*Nm}o+#+mUXwFL!2Z{cC>k z2l%6mcW2AiVoCVWbmq>v=bn4^-rs+I{sQn42L(JY;041Sw|mI2vv=AT1Hm2PUGlaL zZSV4=`hSRF=FQNOfwp~56|m1xZbhE9UHQ>gcE^zo&-1k~&kW0kV95L56+f4qGpT!i z_k>~I4`gUS?}RH!!r5z*a1Gs(DsnWT7qkd3rH-L05EkLVurZ<@x(+Aymi!h;rO!hV z5H%$g9p4g8LSOD_9UOCRLOoyUdfotvUX%MnT?xYZO;yND4ra;9cbmFv}1K>f>c zxmkjdU=wB7yn$$pxaxHzzhT9Wk?fr91(9ahzfp25`>h)|@&Bl6hP)qXlXq~-yep-- zuYycwSetCH8Anr5)zh>eZj9k%3{U6aB0a?o41^QWCpx^95N-;MsTj5<$LWIz>9cDY zPR!NP16XyuG5yX;V7R{wx_!DzSEbMZVF5L;SWNsPqQ#Bwm9CsB#~ivT0-jd*z-K2 zZOG6{(^h0@m5`-hj&50s=TV^37rNi2TTx*KvvinKn8!WBEyNMJEuy4w9}kkyQW{#u z3WZh`9-^$UhV{>2ukeWKl`L$aqOgg_RG}1$ctYVVh3$ksgQxV6!80QvPT5J`cN6wK K%BT>Xh3a276-8|T diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.java b/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.java deleted file mode 100644 index d37401b..0000000 --- a/lab2_pruebas/jax/localhost/_8080/md5/MD5Impl.java +++ /dev/null @@ -1,48 +0,0 @@ - -package localhost._8080.md5; - -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.ws.Action; -import javax.xml.ws.FaultAction; -import javax.xml.ws.RequestWrapper; -import javax.xml.ws.ResponseWrapper; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebService(name = "MD5Impl", targetNamespace = "http://localhost:8080/MD5") -@XmlSeeAlso({ - ObjectFactory.class -}) -public interface MD5Impl { - - - /** - * - * @param arg0 - * @return - * returns java.lang.String - * @throws Exception_Exception - */ - @WebMethod(operationName = "MD5") - @WebResult(targetNamespace = "") - @RequestWrapper(localName = "MD5", targetNamespace = "http://localhost:8080/MD5", className = "localhost._8080.md5.MD5") - @ResponseWrapper(localName = "MD5Response", targetNamespace = "http://localhost:8080/MD5", className = "localhost._8080.md5.MD5Response") - @Action(input = "http://localhost:8080/MD5/MD5Impl/MD5Request", output = "http://localhost:8080/MD5/MD5Impl/MD5Response", fault = { - @FaultAction(className = Exception_Exception.class, value = "http://localhost:8080/MD5/MD5Impl/MD5/Fault/Exception") - }) - public String md5( - @WebParam(name = "arg0", targetNamespace = "") - String arg0) - throws Exception_Exception - ; - -} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.class b/lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.class deleted file mode 100644 index e47e3b39fc41605f32255d42014f76165d8a0079..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2282 zcmb7FTT|Os5dMyFkS&b41wtT!aE-AEBBTU@DVG@2P-JeV5GD^EVN_5m%N|PvUi%CB zGy2-VgF9uW=~Ey2quTDu8rL>%Lp|e_yl20?e7k%6$DhCa3g89yWpraPNa9NwJy>F~ zEMX;pR{_Li+{3Db*Q`yjSYyj1i}e8JBzzS>Tt*w-NZ63@wTv!oN>C-F1RkZc?rl_`%5P$;+%>aE!b~`1^JE-L2JBQlP&IYiT*%E@)X@+1;X70yQrhmf1qol*WbhR_piA ziunt^yy#-W5Z%~4bm2FlkK0CXecVI$Ni#xE8G<+;AUR0Co|2`YXG`>Fh%5L?X!=M$ zsdFS{_((?S8N>Gk8uCC9_}!C`2a1*8uSZRx1q#_e#;}JPqfqQG7>zX!G=l*BQE{LV z4>C@Hnm7>`GT9)^O9V0Jh8guRBZOd#6paz!Ry7M~M%)cD<^e`2h@Suf0z7LFVhIwK z$#$H`^0}l<(Z3~=))T$Ky`#?NPN{@I7lI|ozajV&os{`&cCFqZLYfwOpP+BlcF7#a zq~}Z_XH3h3I%h;`O9OBFx4p@H1(0j*Cv(A{@D)P8Ln8U<3ay-y&uwYg<>oDsa71l= zM=j!65i(IfT^WiWJlbcx^1@W!HGE=Is5fXk>TEBeWAjI}rf$%6L?qu=qt|GST_g07 z!gtb`4U#MePDqbxgjX74%Yo;!EH|M>b1z;isRp@@f7Oklo(g$fo0D#uQT%vph{ z_K7-GGFG-P4}vqczbP=+$!su*J~G~PW4&!{8dNZ;^#ad^gfn@T#IkE_PpV&8`8J7n zW1VOlC{na4(E{bmO64tMO?V+N(ONoU`eoW<`c~Um{U%Gg+8rv^5~%id=#1RWw3hzm zuj zu=C&UFIbnHy;r;K9f7CUR~n(~zggrZ3|u(*s z$)vX~ukf1VY3_GVbQJKIb1(8g;Em@Zj1`{hjFWt;9yJ0)UWDrnrsf$1V`=#d#K$4? zCfA$^s&Qm!a=i-ugu;hEppu~5m>NN!pumSR%PXHz7|Yg%UpHxOi@Rwe3YZyMT;Oh& V>^mBFaSwAm((Qdbcn9H8`U$i}s(Ana diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5Response.java b/lab2_pruebas/jax/localhost/_8080/md5/MD5Response.java deleted file mode 100644 index a1ff2cd..0000000 --- a/lab2_pruebas/jax/localhost/_8080/md5/MD5Response.java +++ /dev/null @@ -1,62 +0,0 @@ - -package localhost._8080.md5; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for MD5Response complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="MD5Response">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="return" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "MD5Response", propOrder = { - "_return" -}) -public class MD5Response { - - @XmlElement(name = "return") - protected String _return; - - /** - * Gets the value of the return property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReturn() { - return _return; - } - - /** - * Sets the value of the return property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReturn(String value) { - this._return = value; - } - -} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.class b/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.class deleted file mode 100644 index 0d9e0bbf8c38ea2d5e9a8c424cedec2778ad8853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2032 zcmbtVT~pIQ6g>;2O+$fF5ClQ2sI;I2LMMJ5fI5++TVCUxLn`SH*h znehksqa5!|+Z0O*Gt!6My?4(&d-mS!?e9N7e*u_7Mn*qghp-@{jps!f0iNH;2=crX zMjui#BrNmlEe|UptV&2qn3B1U2nwCb+lvSAs{ia>iJxi1jdC?4wq zJzIvQ@01HUz4S@Vne5R@y6Wg&yg)pW+%k)rYMvBrM>$%YS)5S{$McE@Ar;|j6iFey zE%3BS$X*Xw7cDT}I-(Au$c2Qj45m$9Nm0(Qj+OUo2kRMAFX)!T>h_Ghr8?yj-7oup zEXys=UZDeqvSrIL3i`fb8Y}TfFyUIbqtf@@vn#oGN0u$+p2?0&o3~Yps?Er;+60M(1dL77^UT087}2V31e$F+ks3Bf$F-tF4BiX=(<3 zXa17~fhdzGrfTJt>W=&BS~92Hd{yxqrfS9j6W0-GEt6{#gJJYpkmOytWFLf`n;xr4IJ0>d--)JE)LL+x~V4QmU6Y`AWA&m@w zM1F=#muNezp#3YYs}VuhKSkphp{}6=gzjiY&k-(;$Jfz8LWi2sDVKYkuEt6d^nb$| zqnD5lza!j-fS9U4ZjMUR4M51Jc*bbrm>?@*BZ)~HtT&G5{+ykC2>Nnv*EnDJa!wQH zC=`FrNFUmKIrnRvGrpX&RJNC1(LPXJ_&0TluESV&tfzwL4}@!0uWNPIte9&>8l~+f ZVW1RtQ=vylXdC^jbAn#E2Xh(cfxn?!<<$TH diff --git a/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.java b/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.java deleted file mode 100644 index 36e539c..0000000 --- a/lab2_pruebas/jax/localhost/_8080/md5/ObjectFactory.java +++ /dev/null @@ -1,89 +0,0 @@ - -package localhost._8080.md5; - -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.namespace.QName; - - -/** - * This object contains factory methods for each - * Java content interface and Java element interface - * generated in the localhost._8080.md5 package. - *

An ObjectFactory allows you to programatically - * construct new instances of the Java representation - * for XML content. The Java representation of XML - * content can consist of schema derived interfaces - * and classes representing the binding of schema - * type definitions, element declarations and model - * groups. Factory methods for each of these are - * provided in this class. - * - */ -@XmlRegistry -public class ObjectFactory { - - private final static QName _MD5_QNAME = new QName("http://localhost:8080/MD5", "MD5"); - private final static QName _MD5Response_QNAME = new QName("http://localhost:8080/MD5", "MD5Response"); - private final static QName _Exception_QNAME = new QName("http://localhost:8080/MD5", "Exception"); - - /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: localhost._8080.md5 - * - */ - public ObjectFactory() { - } - - /** - * Create an instance of {@link Exception } - * - */ - public Exception createException() { - return new Exception(); - } - - /** - * Create an instance of {@link MD5 } - * - */ - public MD5 createMD5() { - return new MD5(); - } - - /** - * Create an instance of {@link MD5Response } - * - */ - public MD5Response createMD5Response() { - return new MD5Response(); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link MD5 }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "MD5") - public JAXBElement createMD5(MD5 value) { - return new JAXBElement(_MD5_QNAME, MD5 .class, null, value); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link MD5Response }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "MD5Response") - public JAXBElement createMD5Response(MD5Response value) { - return new JAXBElement(_MD5Response_QNAME, MD5Response.class, null, value); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "Exception") - public JAXBElement createException(Exception value) { - return new JAXBElement(_Exception_QNAME, Exception.class, null, value); - } - -} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/package-info.class b/lab2_pruebas/jax/localhost/_8080/md5/package-info.class deleted file mode 100644 index 9d01aa69e3943331a433b9415b37de7f3162079c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmYjMJ!?Wi5S-KK^P`E4U}uvuSs@5ws(@H2LIg<{_MI2snfs93DgHJKe}F$qa?e7t zFuO3b?Ce~wr!#<8v@{$NrMm=ly?O(QhV1eGp-bHQIN(Y@A z_3oUH9JO~r;AvLw9O-Bc<=U-@?<##-vy_Fh{3g(JY*k3dlSi+JaW^J1Ua~2Ch~v>< zG@$upDA2!?^mSwHdPx6&5_l{f$*|kdBHt<*yMRC?g(|Cp>a9PZmS#IC^@J>-@dp<+ BM700_ diff --git a/lab2_pruebas/jax/localhost/_8080/md5/package-info.java b/lab2_pruebas/jax/localhost/_8080/md5/package-info.java deleted file mode 100644 index 933f36d..0000000 --- a/lab2_pruebas/jax/localhost/_8080/md5/package-info.java +++ /dev/null @@ -1,2 +0,0 @@ -@javax.xml.bind.annotation.XmlSchema(namespace = "http://localhost:8080/MD5") -package localhost._8080.md5; diff --git a/lab2_pruebas/md5/client/Exception_Exception.class b/lab2_pruebas/md5/client/Exception_Exception.class index 9bbb796d140c6c2bb4ee68dc7d0db301445f8522..f7d44e7d94f51649fb1e3a813401ba6a9055dfa2 100644 GIT binary patch delta 55 zcmeyw`jd5n5u^S@V-p~e;RYnuI{=9f(*#8`N=gc>^!3Y&^@>xA%2JCaPhgZ{)Ze_C H(VY^!3Y&^>R~8^?4XL7-V=D*cjMB cELlbdIiP5Ka!zJyUWxu>K}O-tXBc%E0o@xF_W%F@ diff --git a/lab2_pruebas/md5/client/Exception_Exception.java b/lab2_pruebas/md5/client/Exception_Exception.java index 4204a9a..9e68531 100644 --- a/lab2_pruebas/md5/client/Exception_Exception.java +++ b/lab2_pruebas/md5/client/Exception_Exception.java @@ -10,7 +10,7 @@ * Generated source version: 2.2 * */ -@WebFault(name = "Exception", targetNamespace = "http://ws.md5/") +@WebFault(name = "Exception", targetNamespace = "http://ws.server.md5/") public class Exception_Exception extends java.lang.Exception { diff --git a/lab2_pruebas/md5/client/MD5.class b/lab2_pruebas/md5/client/MD5.class index 1d9b6d4d30273d150925881b99b08752da942183..664addc9175cbeb99e48fa44ffa068d553e37bd5 100644 GIT binary patch delta 152 zcmdnNafM^T6+yL(l9B=|ef{!cz2elOvecr9_Y?)y(FG@SGWs*>PmW|%71YO&>tNg> zDT*$tmz!d$&&VJ%xt~dTawb!qtbTG%W@=uEzJF3yYI2ENVsc4-QKdB_10P7?WEN&+ LM*Yni%mR!6y@WAG delta 124 zcmcb@v4dm66)yRVl9B=|ef{#{iBA=|6yUtc;*9=`@sraTRk<_}f^!+S2=T$Wdbug4 z`iu-RlUFlIPi|$ZlZ{W#$xO{F(f3cvN=+_tOH3}wFRHX=WZ(lTjGwH)tjrj{*@anv F5db1TCu0Br diff --git a/lab2_pruebas/md5/client/MD5.java b/lab2_pruebas/md5/client/MD5.java index 6888241..77bf5ca 100644 --- a/lab2_pruebas/md5/client/MD5.java +++ b/lab2_pruebas/md5/client/MD5.java @@ -17,7 +17,7 @@ * Generated source version: 2.2 * */ -@WebService(name = "MD5", targetNamespace = "http://ws.md5/") +@WebService(name = "MD5", targetNamespace = "http://ws.server.md5/") @SOAPBinding(style = SOAPBinding.Style.RPC) @XmlSeeAlso({ ObjectFactory.class @@ -34,8 +34,8 @@ public interface MD5 { */ @WebMethod @WebResult(partName = "return") - @Action(input = "http://ws.md5/MD5/getMD5Request", output = "http://ws.md5/MD5/getMD5Response", fault = { - @FaultAction(className = Exception_Exception.class, value = "http://ws.md5/MD5/getMD5/Fault/Exception") + @Action(input = "http://ws.server.md5/MD5/getMD5Request", output = "http://ws.server.md5/MD5/getMD5Response", fault = { + @FaultAction(className = Exception_Exception.class, value = "http://ws.server.md5/MD5/getMD5/Fault/Exception") }) public String getMD5( @WebParam(name = "arg0", partName = "arg0") diff --git a/lab2_pruebas/md5/client/MD5ImplService.class b/lab2_pruebas/md5/client/MD5ImplService.class index 2c4f1585a4c0896364d7eeb9ca2a2879d97cc0f1..9a70699d12f7e2b74f4d10da6d7ea3d700ccf07a 100644 GIT binary patch delta 68 zcmdlaxKnV01rwwGWJ{)IAi0<6fS_nbNlAf~zJ7VJUU6zsS!&Vbc4j$FLnCuN13g1M W!^!KIeSj)|GdD8oZ?0uAWdQ)>1ruZZWJ{)IAi0<602g0INlAf~zJ7V}dKVM! diff --git a/lab2_pruebas/md5/client/MD5ImplService.java b/lab2_pruebas/md5/client/MD5ImplService.java index 35cc6ca..2608289 100644 --- a/lab2_pruebas/md5/client/MD5ImplService.java +++ b/lab2_pruebas/md5/client/MD5ImplService.java @@ -17,20 +17,20 @@ * Generated source version: 2.2 * */ -@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.md5/", wsdlLocation = "http://localhost:8080/ws/md5?wsdl") +@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.server.md5/", wsdlLocation = "http://127.0.1.1:8080/ws/md5?wsdl") public class MD5ImplService extends Service { private final static URL MD5IMPLSERVICE_WSDL_LOCATION; private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; - private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.md5/", "MD5ImplService"); + private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.server.md5/", "MD5ImplService"); static { URL url = null; WebServiceException e = null; try { - url = new URL("http://localhost:8080/ws/md5?wsdl"); + url = new URL("http://127.0.1.1:8080/ws/md5?wsdl"); } catch (MalformedURLException ex) { e = new WebServiceException(ex); } @@ -69,7 +69,7 @@ public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... */ @WebEndpoint(name = "MD5ImplPort") public MD5 getMD5ImplPort() { - return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class); + return super.getPort(new QName("http://ws.server.md5/", "MD5ImplPort"), MD5.class); } /** @@ -81,7 +81,7 @@ public MD5 getMD5ImplPort() { */ @WebEndpoint(name = "MD5ImplPort") public MD5 getMD5ImplPort(WebServiceFeature... features) { - return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class, features); + return super.getPort(new QName("http://ws.server.md5/", "MD5ImplPort"), MD5.class, features); } private static URL __getWsdlLocation() { diff --git a/lab2_pruebas/md5/client/ObjectFactory.class b/lab2_pruebas/md5/client/ObjectFactory.class index 8c3776ee8f21623c91e5fe4e4759f70dd0ccfbe7..5928895c219011fcfa08e21f93ffac6100c243c4 100644 GIT binary patch delta 138 zcmdnPae`yQQVj_WO`qHpQ~l(e%+$ORebM}q<&fv`S zyu^~yqEto(A2bD;TnLjU+cTyJie{9Q6j;AQZ;c6O`oj9vPAuy#JqHU*NWuSf|AVqJZnYAn ObjectFactory allows you to programatically * construct new instances of the Java representation * for XML content. The Java representation of XML @@ -24,10 +24,10 @@ @XmlRegistry public class ObjectFactory { - private final static QName _Exception_QNAME = new QName("http://ws.md5/", "Exception"); + private final static QName _Exception_QNAME = new QName("http://ws.server.md5/", "Exception"); /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5_client + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5.client * */ public ObjectFactory() { @@ -45,7 +45,7 @@ public Exception createException() { * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} * */ - @XmlElementDecl(namespace = "http://ws.md5/", name = "Exception") + @XmlElementDecl(namespace = "http://ws.server.md5/", name = "Exception") public JAXBElement createException(Exception value) { return new JAXBElement(_Exception_QNAME, Exception.class, null, value); } diff --git a/lab2_pruebas/md5/client/package-info.class b/lab2_pruebas/md5/client/package-info.class index e94a52b25d4c09ef80c919a8402294c253a11be6..fd877c6bf2b93d9163f496bbb9b7ef130fb22617 100644 GIT binary patch delta 27 icmaFH_?B@(v!G~3NlAf~zJ7VJUU6zsS!&V5-betFD+-MO delta 20 bcmaFM_>6HvGZ$Y*NlAf~zJ7V}#3_*gQn3fY diff --git a/lab2_pruebas/md5/client/package-info.java b/lab2_pruebas/md5/client/package-info.java index feb24c4..35519b5 100644 --- a/lab2_pruebas/md5/client/package-info.java +++ b/lab2_pruebas/md5/client/package-info.java @@ -1,2 +1,2 @@ -@javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.md5/") +@javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.server.md5/") package md5.client; diff --git a/lab2_pruebas/md5/server/endpoint/MD5Publisher.class b/lab2_pruebas/md5/server/endpoint/MD5Publisher.class index 0bc987251680ad37346a15ea21ec28153641d712..151165be986df8056f7136e9dde19c9bb1339773 100644 GIT binary patch delta 56 zcmZ3^xs`Lnd`4~2+!Ry&;?$zD)FS=zVtrp1Q_tLj9CikG9tIBvPeuj>g#6|`jIWsh D_MH)+ delta 42 wcmdnWxtw#ud`4Nm+!Ry&@?w2o7gNvNf*f`RcOC{022Vx?Nub2$Q;e^f01Ac-1^@s6 diff --git a/lab2_pruebas/md5/server/endpoint/MD5Publisher.java b/lab2_pruebas/md5/server/endpoint/MD5Publisher.java index 5efdf55..c81ad99 100644 --- a/lab2_pruebas/md5/server/endpoint/MD5Publisher.java +++ b/lab2_pruebas/md5/server/endpoint/MD5Publisher.java @@ -10,13 +10,17 @@ public class MD5Publisher{ public static void main(String[] args) { String url = "http://"; try{ + /* Get the machine's IP address in which the web service will be running */ url += Inet4Address.getLocalHost().getHostAddress(); } catch(Exception e){ - System.out.println("Exception when getting IP address."); + System.out.println("Error when getting IP address"); + return; } + /* Build the web service URI */ url += ":8080/ws/md5"; System.out.println("Publishing MD5 service at endpoint: " + url); + /* Publish the endpoint */ Endpoint.publish(url, new MD5Impl()); } diff --git a/lab2_pruebas/md5/server/ws/MD5.class b/lab2_pruebas/md5/server/ws/MD5.class index ba845b73fe710d970b2e7a42958f27ee93d35ead..f16d81b65a7872b952b96dd143f2f94f008e6785 100644 GIT binary patch delta 23 ecmey){EvBqDkHaGZi=aXacWUnYSCm(#&ZB;l?X)u delta 16 Xcmeyz{GEA&DkBS5Zi?w-1IBXzG9v|e diff --git a/lab2_pruebas/md5/server/ws/MD5Impl.class b/lab2_pruebas/md5/server/ws/MD5Impl.class index 8234097cf21b4f65d7419a34137518af49159d51..64a2b0640ea8b6fe7e0a1e0430c67eebc1d2591a 100644 GIT binary patch delta 56 xcmaFE(a5>MfstD;nV=}iWkgpHruVz#L%R~8_&oj diff --git a/lab2_pruebas/md5/server/ws/MD5Impl.java b/lab2_pruebas/md5/server/ws/MD5Impl.java index 5d65de8..1383620 100644 --- a/lab2_pruebas/md5/server/ws/MD5Impl.java +++ b/lab2_pruebas/md5/server/ws/MD5Impl.java @@ -6,7 +6,7 @@ import javax.jws.WebService; //Service Implementation -@WebService(endpointInterface = "md5.ws.MD5") +@WebService(endpointInterface = "md5.server.ws.MD5") public class MD5Impl implements MD5 { /** @@ -31,14 +31,4 @@ public String getMD5(String text) throws Exception return sb.toString(); } - /* - public static void main(String[] args) throws Exception - { - // msg is the message - String msg = "hello world"; - - // Print result - System.out.println("MD5('"+ msg +"') = " + MD5(msg)); - } - */ } diff --git a/lab2_pruebas/monitor.c b/lab2_pruebas/monitor.c index 8f6a612..d782e6a 100644 --- a/lab2_pruebas/monitor.c +++ b/lab2_pruebas/monitor.c @@ -39,9 +39,14 @@ main (int argc, char *argv[]) printf("MESS: %s\n", res->msg); printf("MD5: %s\n", res->md5); } + /*******************************************/ + /* Sample code for the getnummessages call */ + /*******************************************/ + /* int result; getnummessages_1(argv[2], &result, clnt); printf("Total number of messages: %d\n", result); + */ /* Destroy the connection */ clnt_destroy (clnt); exit (0); diff --git a/lab2_pruebas/server.c b/lab2_pruebas/server.c index d5d4d2a..5219e8c 100644 --- a/lab2_pruebas/server.c +++ b/lab2_pruebas/server.c @@ -113,6 +113,8 @@ int main(int argc, char * argv[]){ until the thread stores a local copy of the socket descriptor */ busy_socket = TRUE; + /**********************************/ + /* Initialize the storage service */ CLIENT *clnt; /* Create connection with the storage service */ clnt = clnt_create (store_service_ip, STORE_SERVICE, STORE_VERSION, "tcp"); @@ -122,12 +124,10 @@ int main(int argc, char * argv[]){ fprintf(stderr, "\n%s", "s> "); /* Prompt */ } else{ - /* Initialize the storage service */ init_1(NULL, clnt); - clnt_destroy (clnt); } - + /**********************************/ signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ fprintf(stderr, "%s", "s> "); /* Prompt */ diff --git a/lab2_pruebas/store_service_server.c b/lab2_pruebas/store_service_server.c index 5a5dc78..0ad2058 100644 --- a/lab2_pruebas/store_service_server.c +++ b/lab2_pruebas/store_service_server.c @@ -1,21 +1,21 @@ #include "rpc_store_service/store_service.h" -/* Define the structure of the message list */ +/* Define the structure of the message list nodes */ struct msg{ char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ }; - +/* Define the structure of the user list nodes */ struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; + char name[MAX_SIZE]; /* Name of the user */ + unsigned long num_msgs; /* Number of sent (stored) messages for the user */ + struct user *next; /* Pointer to the next user in the list */ + struct msg *sent_msgs_head; /* Pointer to the head of the messages sent by the user */ }; /* ========================================================== */ @@ -26,6 +26,10 @@ struct user * usr_head; int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); +/* Initializes the user list in the server. If there is an existing user list in memory, this is +traversed and all the nodes in the list (including both messages and users) will be freed from +memory. + Returns always TRUE. No internal error can happen */ bool_t init_1_svc(void *result, struct svc_req *rqstp) { @@ -60,6 +64,10 @@ init_1_svc(void *result, struct svc_req *rqstp) return retval; } +/* Stores the message and the associated information (receiver, ID, MD5) into the list of messages sent by +the input user passed in the 'sender'. + Returns TRUE no errors + Returns FALSE if there is a malloc error (memory full) */ bool_t store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) { @@ -87,6 +95,7 @@ store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, in strcpy(temp->name, sender); temp->next = NULL; temp->sent_msgs_head = NULL; + /* Add message to the list of messages that the user sent */ *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); /* If -1 is returned, the memory is full and message could not be stored. Return FALSE */ if(*result == -1) return FALSE; @@ -98,6 +107,8 @@ store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, in return retval; } +/* Gets the number of messages sent by the input user. + Returns always TRUE. No internal error can happen */ bool_t getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) { @@ -105,16 +116,10 @@ getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) struct user *temp = usr_head; *result = 0; - + /* Traverse the list of users until the input username is found */ while(temp != NULL){ if(strcmp(temp->name, user) == 0){ //Sender is found in the list - // /* Search for the message with that ID */ - // struct msg *msg_temp = temp->sent_msgs_head; - // Iterate through the list of sent messages - // while(msg_temp != NULL){ - // *result = *result + 1; - // msg_temp = msg_temp->next; - // } + /* Return the number of stored messages for that user */ *result = temp->num_msgs; return retval; } @@ -125,18 +130,22 @@ getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) return retval; } +/* Gets the message corresponding to the ID and username of the sender of such message. +If the message or the user is not found, then an empty string will be sent back. + Returns always TRUE. No internal error can happen */ bool_t getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) { bool_t retval = TRUE; - /* Initialize the strings of */ + /* Initialize to zeroes the message and MD5 strings of the response struct */ result->msg = calloc(MAX_SIZE, sizeof(char)); result->md5 = calloc(MAX_MD5, sizeof(char)); struct user *temp = usr_head; struct msg *msg_temp; + /* Traverse the list of users looking for the input username */ while(temp != NULL){ if(strcmp(temp->name, user) == 0){ //Sender is found in the list /* Search for the message with that ID */ diff --git a/ssdd_p2_100291121_100292107/Makefile b/ssdd_p2_100291121_100292107/Makefile new file mode 100644 index 0000000..023af6b --- /dev/null +++ b/ssdd_p2_100291121_100292107/Makefile @@ -0,0 +1,54 @@ + +# Parameters +RPC_PATH = ./rpc_store_service +LISTS_PATH = ./lists + +SERVER = server +CLIENT = client +MD5_WS = ./md5/server/endpoint/MD5Publisher +MONITOR = monitor +RPC_SERVER = store_service_server + +SOURCES_CLNT.c = +SOURCES_CLNT.h = +SOURCES_SVC.c = +SOURCES_SVC.h = +SOURCES.x = $(RPC_PATH)/store_service.x + +TARGETS_SERVER.c = $(LISTS_PATH)/user_list.c $(LISTS_PATH)/msg_list.c $(LISTS_PATH)/read_line.c +TARGETS_SVC.c = $(RPC_PATH)/store_service_svc.c $(RPC_PATH)/store_service_xdr.c +TARGETS_CLNT.c = $(RPC_PATH)/store_service_clnt.c $(RPC_PATH)/store_service_xdr.c + +OBJECTS_SERVER = $(TARGETS_SERVER.c:%.c=%.o) +OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) +OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) +# Compiler flags + +CPPFLAGS += -D_REENTRANT +CFLAGS += -g -Wall +LDLIBS += -lnsl -lpthread +LDFLAGS = -L$(INSTALL_PATH)/lib/ + RPCGENFLAGS = + +# Targets + +all : $(MONITOR) $(RPC_SERVER) $(SERVER) $(CLIENT) $(MD5_WS) + +$(MONITOR) : $(MONITOR).o $(OBJECTS_CLNT) + $(LINK.c) -o $(MONITOR) $(MONITOR).o $(OBJECTS_CLNT) $(LDLIBS) + +$(RPC_SERVER) : $(RPC_SERVER).o $(OBJECTS_SVC) + $(LINK.c) -o $(RPC_SERVER) $(RPC_SERVER).o $(OBJECTS_SVC) $(LDLIBS) + +$(SERVER) : $(SERVER).o $(OBJECTS_SERVER) $(OBJECTS_CLNT) + $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ + +$(CLIENT) : + javac $(CLIENT).java + +$(MD5_WS) : + javac -cp . $(MD5_WS).java + + clean: + $(RM) core $(SERVER) $(MONITOR) $(RPC_SERVER) *.o ./*/*.o *.class ./*/*.class ./*/*/*.class + diff --git a/ssdd_p2_100291121_100292107/authors.txt b/ssdd_p2_100291121_100292107/authors.txt new file mode 100644 index 0000000..f5b361b --- /dev/null +++ b/ssdd_p2_100291121_100292107/authors.txt @@ -0,0 +1,2 @@ +GUTIÉRREZ PARADELA, CARLOS 100291121 GROUP 89 +LÓPEZ LOZOYA, RUBÉN 100292107 GROUP 89 \ No newline at end of file diff --git a/ssdd_p2_100291121_100292107/client.java b/ssdd_p2_100291121_100292107/client.java new file mode 100644 index 0000000..21aefa9 --- /dev/null +++ b/ssdd_p2_100291121_100292107/client.java @@ -0,0 +1,743 @@ +import java.io.*; +import gnu.getopt.Getopt; +import java.net.Socket; +import java.net.ServerSocket; +import md5.client.MD5; +import md5.client.MD5ImplService; +import java.net.URL; + + +class client { + + /********************* TYPES **********************/ + + /** + * @brief Return codes for the protocol methods + */ + private static enum RC { + OK, + ERROR, + USER_ERROR + }; + + /******************* ATTRIBUTES *******************/ + + private static String _server = null; + private static int _port = -1; + /* Controls the user bound to the client when executing a CONNECT command */ + private static String connected_user = null; + /* Instantiate and prepare an empty ServerThread for further connection */ + private static ServerThread server_thread = new ServerThread(); + /* Variable for storing the IP address of the md5 web service server */ + private static String _md5_ws = null; + + + /********************* METHODS ********************/ + + /** + * @param user - User name to register in the system + * + * @return OK if successful + * @return USER_ERROR if the user is already registered + * @return ERROR if another error occurred + */ + static RC register(String user) + { + // Write your code here + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "REGISTER" is sent indicating the operation + String operation = new String("REGISTER"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be registered + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> REGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USERNAME IN USE"); + return RC.USER_ERROR; + case 2: + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to unregister from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist + * @return ERROR if another error occurred + */ + static RC unregister(String user) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "UNREGISTER" is sent indicating the operation + String operation = new String("UNREGISTER"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be unregistered + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* If we try to unregister the user that is currently bound and connected + to the client, it is unbound from the client */ + if(connected_user != null){ + /* This protects against null pointer exception when a CONNECT command is executed and + the server marks the user as connected, but then the client is terminated without + executing DISCONNECT from the server */ + if(connected_user.equals(user)){ + connected_user = null; + /* If the unregister also disconnect a user linked to the client (connected and with a + server thread running, kill also the running thread*/ + server_thread.kill(); + } + } + + System.out.println("c> UNREGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to connect to the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already connected + * @return ERROR if another error occurred + */ + static RC connect(String user) + { + + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + /* Before trying to connect, if a user is already connected, quit the function with RC.ERROR */ + if(connected_user != null){ + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "CONNECT" is sent indicating the operation + String operation = new String("CONNECT"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be connected + out.writeBytes(user); + out.write(0); + + /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum + number of queued requests */ + ServerSocket sock = new ServerSocket(0, 10); + /* Get the port at which the socket is listening */ + int port = sock.getLocalPort(); + + //4. A string is sent with the port number listening in the client + out.writeBytes(String.valueOf(port)); + out.write(0); + + //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //6. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* Start a new thread where */ + server_thread.start(sock); + /* Bind the user to the client */ + connected_user = user; + System.out.println("c> CONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> USER ALREADY CONNECTED"); + return RC.USER_ERROR; + case 3: + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + e.printStackTrace(); + } + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to disconnect from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already disconnected + * @return ERROR if another error occurred + */ + static RC disconnect(String user) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "DISCONNECT" is sent indicating the operation + String operation = new String("DISCONNECT"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be disconnected + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* Unbind the user from the client */ + connected_user = null; + server_thread.kill(); + System.out.println("c> DISCONNECT OK"); + return RC.OK; + case 1: + checkAndUnbindUser(user); + System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + checkAndUnbindUser(user); + System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); + return RC.USER_ERROR; + case 3: + checkAndUnbindUser(user); + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + checkAndUnbindUser(user); + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + private static void checkAndUnbindUser(String user){ + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } + } + } + + /** + * @param user - Receiver user name + * @param message - Message to be sent + * + * @return OK if the server had successfully delivered the message + * @return USER_ERROR if the user is not connected (the message is queued for delivery) + * @return ERROR the user does not exist or another error occurred + */ + static RC send(String user, String message) + { + String md5; + /* Calculate the MD5 of the message */ + try{ + /* Build the URL of the web service based on the IP passed in the command */ + URL url = new URL(new String("http://" + _md5_ws + "/ws/md5")); + /* Define the MD5 Web service variables */ + MD5ImplService md5Service = new MD5ImplService(url); + MD5 md5_ws = md5Service.getMD5ImplPort(); + /* Call the web service that calculates de MD5 of the message */ + md5 = md5_ws.getMD5(message); + } + catch(Exception e){ + /* If exception occurs, nothing is sent to the server. Print error */ + System.out.println("c> ERROR , SEND FAIL / ERROR IN MD5"); + return RC.ERROR; + } + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + /* If there is not a user connected in the client, return error RC.ERROR */ + if(connected_user == null){ + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + + //2. The string "SEND" is sent indicating the operation + String operation = new String("SEND"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user that sends the message + out.writeBytes(connected_user); + out.write(0); + + //4. A string of characters is sent with the user that receives the message + out.writeBytes(user); + out.write(0); + + //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent + out.writeBytes(trimMessage(message)); //Sends a string of 255 characters + out.write(0); + + //6. A string of characters is sent with the MD5 hash of the message to be sent + out.writeBytes(md5); //Sends a string of 255 characters + out.write(0); + + //7. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + String msg_id = new String(); + /* If response is 0 (OK), prepare to read the ID of the message */ + if(response == 0){ + + /* Create BufferedReader for easy reading a string */ + /* + BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); + msg_id = inString.readLine();*/ + byte ch; + do{ + ch = in.readByte(); + if (ch != 0) msg_id = msg_id + ((char) ch); + } while(ch != 0); + } + + //8. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> SEND OK - MESSAGE " + msg_id); + return RC.OK; + case 1: + System.out.println("c> SEND FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + /** + * @brief Trims the input message to 255 characters + * + * @param message - String to be trimmed + * + * @return message - Result String + */ + static String trimMessage(String message){ + /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ + int maxLength = 255; + + if(message.length() > maxLength){ + message = message.substring(0, maxLength); + } + + return message; + } + + /** + * @brief Command interpreter for the client. It calls the protocol functions. + */ + static void shell() + { + boolean exit = false; + String input; + String [] line; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!exit) { + try { + System.out.print("c> "); + input = in.readLine(); + line = input.split("\\s"); + + if (line.length > 0) { + /*********** REGISTER *************/ + if (line[0].equals("REGISTER")) { + if (line.length == 2) { + register(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: REGISTER "); + } + } + + /********** UNREGISTER ************/ + else if (line[0].equals("UNREGISTER")) { + if (line.length == 2) { + unregister(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: UNREGISTER "); + } + } + + /************ CONNECT *************/ + else if (line[0].equals("CONNECT")) { + if (line.length == 2) { + connect(line[1]); // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR + } else { + System.out.println("Syntax error. Usage: CONNECT "); + } + } + + /********** DISCONNECT ************/ + else if (line[0].equals("DISCONNECT")) { + if (line.length == 2) { + disconnect(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: DISCONNECT "); + } + } + + /************** SEND **************/ + else if (line[0].equals("SEND")) { + if (line.length >= 3) { + // Remove first two words + String message = input.substring(input.indexOf(' ')+1); + message = message.substring(message.indexOf(' ')+1); + send(line[1], message); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: SEND "); + } + } + + /************** QUIT **************/ + else if (line[0].equals("QUIT")){ + if (line.length == 1) { + exit = true; + } else { + System.out.println("Syntax error. Use: QUIT"); + } + } + + /************* UNKNOWN ************/ + else { + System.out.println("Error: command '" + line[0] + "' not valid."); + } + } + } catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + } + } + + /** + * @brief Prints program usage + */ + static void usage() + { + System.out.println("Usage: java -cp . client -s -p "); + } + + /** + * @brief Parses program execution arguments + */ + static boolean parseArguments(String [] argv) + { + Getopt g = new Getopt("client", argv, "ds:p:w:"); + + int c; + String arg; + + while ((c = g.getopt()) != -1) { + switch(c) { + //case 'd': + // _debug = true; + // break; + case 's': + _server = g.getOptarg(); + break; + case 'p': + arg = g.getOptarg(); + _port = Integer.parseInt(arg); + break; + case 'w': + _md5_ws = g.getOptarg(); + break; + case '?': + System.out.print("getopt() returned " + c + "\n"); + break; // getopt() already printed an error + default: + System.out.print("getopt() returned " + c + "\n"); + } + } + + if (_server == null) + return false; + + if ((_port < 1024) || (_port > 65535)) { + System.out.println("Error: Port must be in the range 1024 <= port <= 65535"); + return false; + } + + return true; + } + + + + /********************* MAIN **********************/ + + public static void main(String[] argv) + { + if(!parseArguments(argv)) { + usage(); + return; + } + + /* Creates a thread that catches Ctrl+C kill command from the CLI and disconnects from the server the + connected user of the client (bound to the client) */ + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() { + if(connected_user != null){ + disconnect(connected_user); + } + } + }); + + shell(); + System.out.println("+++ FINISHED +++"); + } +} + +/********************* SERVERTHREAD **********************/ + +class ServerThread extends Thread{ + + private ServerSocket sc; //ServerSocket of the listening thread + private volatile Thread blinker; //Thread of type volatile that will be attached to the ServerThread + private Socket sd; + + /** + * @brief Constructor. Starts the server thread and initializes the ServerSocket property + * + * @param sc - Initialized ServerSocket + * + */ + public void start(ServerSocket sc){ + blinker = new Thread(this); + blinker.start(); + this.sc = sc; + } + + /** + * @brief Destroys the server thread + */ + public void kill(){ + try{ + if(sd != null) this.sd.close(); + } + catch(IOException e){ + System.out.println("Exception: " + e); + } + blinker = null; + } + + /** + * @brief Main execution code sequence of the server thread. Listens to incoming connections + */ + public void run(){ + Thread thisThread = Thread.currentThread(); + sd = null; + while(blinker == thisThread){ + try{ + /* Waiting for connection */ + sd = this.sc.accept(); + + DataInputStream msg_in = new DataInputStream(sd.getInputStream()); + /* Receive the string encoding the operation */ + String operation = new String(); + byte ch; + do{ + ch = msg_in.readByte(); + if (ch != 0) operation = operation + ((char) ch); + + } while(ch != 0); + /* Prepare the string for the ID of the message sent/received */ + String id = new String(); + + switch(operation){ + case "SEND_MESSAGE": + /* Read the sender username from the socket */ + String sender = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) sender = sender + ((char) ch); + + } while(ch != 0); + /* Read the ID of the received message */ + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + /* Read the string containing the MD5 of the message */ + String md5 = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) md5 = md5 + ((char) ch); + + } while(ch != 0); + /* Read the string containing the body of the message */ + String msg = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) msg = msg + ((char) ch); + + } while(ch != 0); + /* Prompt */ + System.out.println("MESSAGE " + id + " FROM " + sender + ":"); + System.out.println("\t" + msg); + System.out.println("\tMD5:"); + System.out.println("\t" + md5); + System.out.println("\tEND"); + System.out.print("c> "); + break; + + case "SEND_MESS_ACK": + /* Read the id of the message being acknowledged */ + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + + System.out.println("SEND MESSAGE " + id + " OK"); + System.out.print("c> "); + break; + } + sd.close(); + + } + catch(Exception e){ + System.out.println("Exception: " + e); + //e.printStackTrace(); + this.kill(); + } + } + /* If the thread exits the loop for any reason, try to close the socket */ + try{ + sd.close(); + } + catch(Exception e){ + System.out.println("Exception: " + e); + this.kill(); + } + } +} diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/COPYING.LIB b/ssdd_p2_100291121_100292107/gnu/getopt/COPYING.LIB new file mode 100755 index 0000000..161a3d1 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/COPYING.LIB @@ -0,0 +1,482 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/ChangeLog b/ssdd_p2_100291121_100292107/gnu/getopt/ChangeLog new file mode 100755 index 0000000..7fed6d2 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/ChangeLog @@ -0,0 +1,114 @@ +For release 1.0.14 (2012/02/08) + +David Zhang (david290@qq.com) provided Chinese language messages. +Daniel Thomas (drt24@srcf.ucam.org) contributed a patch to fix a static +access warning message. + +For release 1.0.13 (2006/08/29) + +Krzysztof Szymanski (sirch.s@gmail.com) provided Polish language messages. + +For release 1.0.12 (2005/11/12) + +Sandro Tossi (matrixhasu@gmail.com) provided Italian language messages. + +For release 1.0.11 (2005/02/19) + +Daniel Perez Alvarez (dondani@gmail.com) provided Spanish language +messages. + +For release 1.0.10 (2004/09/12) + +Marian-Nicolae V. Ion (mion@neocom.fr) provided Romanian language messages. + +For release 1.0.9 (2002/01/16) + +Yasuoka Masahiko provided Japanese langauge messages. + +Csom Gyula provided Hungarian language messages. + +Guillaume Rousse supplied the ant build file +and documentation. + +For release 1.0.8 (2000/09/11) + +Ernst de Haan provided Dutch language messages. + +For release 1.0.7 (2000/02/02) + +Fixed an obscure POSIX compatibility issue. When an optstring is "o:", +then "-o -- foo" should result in -o having an optarg of "foo", not "--" +as was previously returned. This new parsing behavior is only enabled +in POSIX compatibility mode. Thank to Don Suit (dsuit@fc.hp.com) for +reporting this and help in communicating proper POSIX behavior. + +For release 1.0.6 (1999/06/27) + +Added French language messages. Thanks to Edouard G. Parmelan +(Edouard.Parmelan@quadratec.fr) for this contribution. + +For release 1.0.5 (1999/03/23) + +Fixed bug that caused getopt to throw a StringIndexOutOfBoundsException +when an empty string ("") argument was encountered. Thanks to +Steffen Siebert (siebert@logware.de) for this bug report and a patch. + +For release 1.0.4 + +Added Norwegian language messages. Thanks to Bjørn-Ove Heimsund +(s811@drone.ii.uib.no) for this contribution. + +For release 1.0.3 + +Added German language messages. Thanks to Bernhard Bablok +(bablokb@gmx.net) for this contribution. + +For release 1.0.2 + +Prevent ArrayIndexOutOfBounds exception if "optstring" is null. David Karr +(dkarr@nmo.gtegsc.com) had a problem with this when commenting out options +during debugging, so I have fixed it. + +For release 1.0.1 + +Added Czech language messages. Thanks to Roman Szturc (Roman.Szturc@vsb.cz) +for this contribution. + +For release 1.0 + +No changes. Just increment release number to 1.0 + +For release 0.9.2 + +The sample code has been moved into a separate file called "GetoptDemo.java". +This is so that it can be legally placed into the public domain and not +subsumed into the LGPL as would be the case if it were in Getopt.java. +While I do not encourage anyone to write proprietary software, I feel that +there is no good purpose served in restricting what someone can do with +a short example program. + +Modified the Makefile and various other files to support the change +above. + +For release 0.9.1 + +This release contains only minor fixes. It's always possible it introduces +some bugs though so unless you are keen on internationalization or are +having a line separator problem, there is no need to upgrade from 0.9. + +-- Messages are now internationalized. Thanks to Bill King + (wrking@eng.sun.com) for this. + +-- Changes all print's to println's to avoid system dependent line + separators. + +-- All internal variables are now protected. Several people suggested + doing this in response to my request for comments in the help file. + No one suggested keeping any variables public. + +-- Fixed parts of licensing that mentioned the regular GPL. Getopt is + and always has been licensed under the LPGL. Thanks to Arieh Markel + (arieh.markel@sun.com) for pointing this out. + + + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/Getopt.java b/ssdd_p2_100291121_100292107/gnu/getopt/Getopt.java new file mode 100755 index 0000000..429301b --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/Getopt.java @@ -0,0 +1,1337 @@ +/************************************************************************** +/* Getopt.java -- Java port of GNU getopt from glibc 2.0.6 +/* +/* Copyright (c) 1987-1997 Free Software Foundation, Inc. +/* Java Port Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +package gnu.getopt; + +import java.util.Locale; +import java.util.ResourceBundle; +import java.text.MessageFormat; + +/**************************************************************************/ + +/** + * This is a Java port of GNU getopt, a class for parsing command line + * arguments passed to programs. It it based on the C getopt() functions + * in glibc 2.0.6 and should parse options in a 100% compatible manner. + * If it does not, that is a bug. The programmer's interface is also + * very compatible. + *

+ * To use Getopt, create a Getopt object with a argv array passed to the + * main method, then call the getopt() method in a loop. It will return an + * int that contains the value of the option character parsed from the + * command line. When there are no more options to be parsed, it + * returns -1. + *

+ * A command line option can be defined to take an argument. If an + * option has an argument, the value of that argument is stored in an + * instance variable called optarg, which can be accessed using the + * getOptarg() method. If an option that requires an argument is + * found, but there is no argument present, then an error message is + * printed. Normally getopt() returns a '?' in this situation, but + * that can be changed as described below. + *

+ * If an invalid option is encountered, an error message is printed + * to the standard error and getopt() returns a '?'. The value of the + * invalid option encountered is stored in the instance variable optopt + * which can be retrieved using the getOptopt() method. To suppress + * the printing of error messages for this or any other error, set + * the value of the opterr instance variable to false using the + * setOpterr() method. + *

+ * Between calls to getopt(), the instance variable optind is used to + * keep track of where the object is in the parsing process. After all + * options have been returned, optind is the index in argv of the first + * non-option argument. This variable can be accessed with the getOptind() + * method. + *

+ * Note that this object expects command line options to be passed in the + * traditional Unix manner. That is, proceeded by a '-' character. + * Multiple options can follow the '-'. For example "-abc" is equivalent + * to "-a -b -c". If an option takes a required argument, the value + * of the argument can immediately follow the option character or be + * present in the next argv element. For example, "-cfoo" and "-c foo" + * both represent an option character of 'c' with an argument of "foo" + * assuming c takes a required argument. If an option takes an argument + * that is not required, then any argument must immediately follow the + * option character in the same argv element. For example, if c takes + * a non-required argument, then "-cfoo" represents option character 'c' + * with an argument of "foo" while "-c foo" represents the option + * character 'c' with no argument, and a first non-option argv element + * of "foo". + *

+ * The user can stop getopt() from scanning any further into a command line + * by using the special argument "--" by itself. For example: + * "-a -- -d" would return an option character of 'a', then return -1 + * The "--" is discarded and "-d" is pointed to by optind as the first + * non-option argv element. + *

+ * Here is a basic example of using Getopt: + *

+ *

+  * Getopt g = new Getopt("testprog", argv, "ab:c::d");
+  * //
+  * int c;
+  * String arg;
+  * while ((c = g.getopt()) != -1)
+  *   {
+  *     switch(c)
+  *       {
+  *          case 'a':
+  *          case 'd':
+  *            System.out.print("You picked " + (char)c + "\n");
+  *            break;
+  *            //
+  *          case 'b':
+  *          case 'c':
+  *            arg = g.getOptarg();
+  *            System.out.print("You picked " + (char)c + 
+  *                             " with an argument of " +
+  *                             ((arg != null) ? arg : "null") + "\n");
+  *            break;
+  *            //
+  *          case '?':
+  *            break; // getopt() already printed an error
+  *            //
+  *          default:
+  *            System.out.print("getopt() returned " + c + "\n");
+  *       }
+  *   }
+  * 
+ *

+ * In this example, a new Getopt object is created with three params. + * The first param is the program name. This is for printing error + * messages in the form "program: error message". In the C version, this + * value is taken from argv[0], but in Java the program name is not passed + * in that element, thus the need for this parameter. The second param is + * the argument list that was passed to the main() method. The third + * param is the list of valid options. Each character represents a valid + * option. If the character is followed by a single colon, then that + * option has a required argument. If the character is followed by two + * colons, then that option has an argument that is not required. + *

+ * Note in this example that the value returned from getopt() is cast to + * a char prior to printing. This is required in order to make the value + * display correctly as a character instead of an integer. + *

+ * If the first character in the option string is a colon, for example + * ":abc::d", then getopt() will return a ':' instead of a '?' when it + * encounters an option with a missing required argument. This allows the + * caller to distinguish between invalid options and valid options that + * are simply incomplete. + *

+ * In the traditional Unix getopt(), -1 is returned when the first non-option + * charcter is encountered. In GNU getopt(), the default behavior is to + * allow options to appear anywhere on the command line. The getopt() + * method permutes the argument to make it appear to the caller that all + * options were at the beginning of the command line, and all non-options + * were at the end. For example, calling getopt() with command line args + * of "-a foo bar -d" returns options 'a' and 'd', then sets optind to + * point to "foo". The program would read the last two argv elements as + * "foo" and "bar", just as if the user had typed "-a -d foo bar". + *

+ * The user can force getopt() to stop scanning the command line with + * the special argument "--" by itself. Any elements occuring before the + * "--" are scanned and permuted as normal. Any elements after the "--" + * are returned as is as non-option argv elements. For example, + * "foo -a -- bar -d" would return option 'a' then -1. optind would point + * to "foo", "bar" and "-d" as the non-option argv elements. The "--" + * is discarded by getopt(). + *

+ * There are two ways this default behavior can be modified. The first is + * to specify traditional Unix getopt() behavior (which is also POSIX + * behavior) in which scanning stops when the first non-option argument + * encountered. (Thus "-a foo bar -d" would return 'a' as an option and + * have "foo", "bar", and "-d" as non-option elements). The second is to + * allow options anywhere, but to return all elements in the order they + * occur on the command line. When a non-option element is ecountered, + * an integer 1 is returned and the value of the non-option element is + * stored in optarg is if it were the argument to that option. For + * example, "-a foo -d", returns first 'a', then 1 (with optarg set to + * "foo") then 'd' then -1. When this "return in order" functionality + * is enabled, the only way to stop getopt() from scanning all command + * line elements is to use the special "--" string by itself as described + * above. An example is "-a foo -b -- bar", which would return 'a', then + * integer 1 with optarg set to "foo", then 'b', then -1. optind would + * then point to "bar" as the first non-option argv element. The "--" + * is discarded. + *

+ * The POSIX/traditional behavior is enabled by either setting the + * property "gnu.posixly_correct" or by putting a '+' sign as the first + * character of the option string. The difference between the two + * methods is that setting the gnu.posixly_correct property also forces + * certain error messages to be displayed in POSIX format. To enable + * the "return in order" functionality, put a '-' as the first character + * of the option string. Note that after determining the proper + * behavior, Getopt strips this leading '+' or '-', meaning that a ':' + * placed as the second character after one of those two will still cause + * getopt() to return a ':' instead of a '?' if a required option + * argument is missing. + *

+ * In addition to traditional single character options, GNU Getopt also + * supports long options. These are preceeded by a "--" sequence and + * can be as long as desired. Long options provide a more user-friendly + * way of entering command line options. For example, in addition to a + * "-h" for help, a program could support also "--help". + *

+ * Like short options, long options can also take a required or non-required + * argument. Required arguments can either be specified by placing an + * equals sign after the option name, then the argument, or by putting the + * argument in the next argv element. For example: "--outputdir=foo" and + * "--outputdir foo" both represent an option of "outputdir" with an + * argument of "foo", assuming that outputdir takes a required argument. + * If a long option takes a non-required argument, then the equals sign + * form must be used to specify the argument. In this case, + * "--outputdir=foo" would represent option outputdir with an argument of + * "foo" while "--outputdir foo" would represent the option outputdir + * with no argument and a first non-option argv element of "foo". + *

+ * Long options can also be specified using a special POSIX argument + * format (one that I highly discourage). This form of entry is + * enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid + * option string. This causes getopt to treat the name following the + * "-W" as the name of the long option. For example, "-W outputdir=foo" + * would be equivalent to "--outputdir=foo". The name can immediately + * follow the "-W" like so: "-Woutputdir=foo". Option arguments are + * handled identically to normal long options. If a string follows the + * "-W" that does not represent a valid long option, then getopt() returns + * 'W' and the caller must decide what to do. Otherwise getopt() returns + * a long option value as described below. + *

+ * While long options offer convenience, they can also be tedious to type + * in full. So it is permissible to abbreviate the option name to as + * few characters as required to uniquely identify it. If the name can + * represent multiple long options, then an error message is printed and + * getopt() returns a '?'. + *

+ * If an invalid option is specified or a required option argument is + * missing, getopt() prints an error and returns a '?' or ':' exactly + * as for short options. Note that when an invalid long option is + * encountered, the optopt variable is set to integer 0 and so cannot + * be used to identify the incorrect option the user entered. + *

+ * Long options are defined by LongOpt objects. These objects are created + * with a contructor that takes four params: a String representing the + * object name, a integer specifying what arguments the option takes + * (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, + * or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described + * below), and an integer value (described below). + *

+ * To enable long option parsing, create an array of LongOpt's representing + * the legal options and pass it to the Getopt() constructor. WARNING: If + * all elements of the array are not populated with LongOpt objects, the + * getopt() method will throw a NullPointerException. + *

+ * When getopt() is called and a long option is encountered, one of two + * things can be returned. If the flag field in the LongOpt object + * representing the long option is non-null, then the integer value field + * is stored there and an integer 0 is returned to the caller. The val + * field can then be retrieved from the flag field. Note that since the + * flag field is a StringBuffer, the appropriate String to integer converions + * must be performed in order to get the actual int value stored there. + * If the flag field in the LongOpt object is null, then the value field + * of the LongOpt is returned. This can be the character of a short option. + * This allows an app to have both a long and short option sequence + * (say, "-h" and "--help") that do the exact same thing. + *

+ * With long options, there is an alternative method of determining + * which option was selected. The method getLongind() will return the + * the index in the long option array (NOT argv) of the long option found. + * So if multiple long options are configured to return the same value, + * the application can use getLongind() to distinguish between them. + *

+ * Here is an expanded Getopt example using long options and various + * techniques described above: + *

+ *

+  * int c;
+  * String arg;
+  * LongOpt[] longopts = new LongOpt[3];
+  * // 
+  * StringBuffer sb = new StringBuffer();
+  * longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
+  * longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
+  * longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
+  * // 
+  * Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
+  * g.setOpterr(false); // We'll do our own error handling
+  * //
+  * while ((c = g.getopt()) != -1)
+  *   switch (c)
+  *     {
+  *        case 0:
+  *          arg = g.getOptarg();
+  *          System.out.println("Got long option with value '" +
+  *                             (char)(new Integer(sb.toString())).intValue()
+  *                             + "' with argument " +
+  *                             ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 1:
+  *          System.out.println("I see you have return in order set and that " +
+  *                             "a non-option argv element was just found " +
+  *                             "with the value '" + g.getOptarg() + "'");
+  *          break;
+  *          //
+  *        case 2:
+  *          arg = g.getOptarg();
+  *          System.out.println("I know this, but pretend I didn't");
+  *          System.out.println("We picked option " +
+  *                             longopts[g.getLongind()].getName() +
+  *                           " with value " + 
+  *                           ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 'b':
+  *          System.out.println("You picked plain old option " + (char)c);
+  *          break;
+  *          //
+  *        case 'c':
+  *        case 'd':
+  *          arg = g.getOptarg();
+  *          System.out.println("You picked option '" + (char)c + 
+  *                             "' with argument " +
+  *                             ((arg != null) ? arg : "null"));
+  *          break;
+  *          //
+  *        case 'h':
+  *          System.out.println("I see you asked for help");
+  *          break;
+  *          //
+  *        case 'W':
+  *          System.out.println("Hmmm. You tried a -W with an incorrect long " +
+  *                             "option name");
+  *          break;
+  *          //
+  *        case ':':
+  *          System.out.println("Doh! You need an argument for option " +
+  *                             (char)g.getOptopt());
+  *          break;
+  *          //
+  *        case '?':
+  *          System.out.println("The option '" + (char)g.getOptopt() + 
+  *                           "' is not valid");
+  *          break;
+  *          //
+  *        default:
+  *          System.out.println("getopt() returned " + c);
+  *          break;
+  *     }
+  * //
+  * for (int i = g.getOptind(); i < argv.length ; i++)
+  *   System.out.println("Non option argv element: " + argv[i] + "\n");
+  * 
+ *

+ * There is an alternative form of the constructor used for long options + * above. This takes a trailing boolean flag. If set to false, Getopt + * performs identically to the example, but if the boolean flag is true + * then long options are allowed to start with a single '-' instead of + * "--". If the first character of the option is a valid short option + * character, then the option is treated as if it were the short option. + * Otherwise it behaves as if the option is a long option. Note that + * the name given to this option - long_only - is very counter-intuitive. + * It does not cause only long options to be parsed but instead enables + * the behavior described above. + *

+ * Note that the functionality and variable names used are driven from + * the C lib version as this object is a port of the C code, not a + * new implementation. This should aid in porting existing C/C++ code, + * as well as helping programmers familiar with the glibc version to + * adapt to the Java version even if it seems very non-Java at times. + *

+ * In this release I made all instance variables protected due to + * overwhelming public demand. Any code which relied on optarg, + * opterr, optind, or optopt being public will need to be modified to + * use the appropriate access methods. + *

+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+
+

+ Class gnu.getopt.Getopt +

+
+java.lang.Object
+   |
+   +----gnu.getopt.Getopt
+
+
+
+
public class Getopt +
extends Object +
+This is a Java port of GNU getopt, a class for parsing command line + arguments passed to programs. It it based on the C getopt() functions + in glibc 2.0.6 and should parse options in a 100% compatible manner. + If it does not, that is a bug. The programmer's interface is also + very compatible. +

+ To use Getopt, create a Getopt object with a argv array passed to the + main method, then call the getopt() method in a loop. It will return an + int that contains the value of the option character parsed from the + command line. When there are no more options to be parsed, it + returns -1. +

+ A command line option can be defined to take an argument. If an + option has an argument, the value of that argument is stored in an + instance variable called optarg, which can be accessed using the + getOptarg() method. If an option that requires an argument is + found, but there is no argument present, then an error message is + printed. Normally getopt() returns a '?' in this situation, but + that can be changed as described below. +

+ If an invalid option is encountered, an error message is printed + to the standard error and getopt() returns a '?'. The value of the + invalid option encountered is stored in the instance variable optopt + which can be retrieved using the getOptopt() method. To suppress + the printing of error messages for this or any other error, set + the value of the opterr instance variable to false using the + setOpterr() method. +

+ Between calls to getopt(), the instance variable optind is used to + keep track of where the object is in the parsing process. After all + options have been returned, optind is the index in argv of the first + non-option argument. This variable can be accessed with the getOptind() + method. +

+ Note that this object expects command line options to be passed in the + traditional Unix manner. That is, proceeded by a '-' character. + Multiple options can follow the '-'. For example "-abc" is equivalent + to "-a -b -c". If an option takes a required argument, the value + of the argument can immediately follow the option character or be + present in the next argv element. For example, "-cfoo" and "-c foo" + both represent an option character of 'c' with an argument of "foo" + assuming c takes a required argument. If an option takes an argument + that is not required, then any argument must immediately follow the + option character in the same argv element. For example, if c takes + a non-required argument, then "-cfoo" represents option character 'c' + with an argument of "foo" while "-c foo" represents the option + character 'c' with no argument, and a first non-option argv element + of "foo". +

+ The user can stop getopt() from scanning any further into a command line + by using the special argument "--" by itself. For example: + "-a -- -d" would return an option character of 'a', then return -1 + The "--" is discarded and "-d" is pointed to by optind as the first + non-option argv element. +

+ Here is a basic example of using Getopt: +

+

+ Getopt g = new Getopt("testprog", argv, "ab:c::d");
+ //
+ int c;
+ String arg;
+ while ((c = g.getopt()) != -1)
+   {
+     switch(c)
+       {
+          case 'a':
+          case 'd':
+            System.out.print("You picked " + (char)c + "\n");
+            break;
+            //
+          case 'b':
+          case 'c':
+            arg = g.getOptarg();
+            System.out.print("You picked " + (char)c + 
+                             " with an argument of " +
+                             ((arg != null) ? arg : "null") + "\n");
+            break;
+            //
+          case '?':
+            break; // getopt() already printed an error
+            //
+          default:
+            System.out.print("getopt() returned " + c + "\n");
+       }
+   }
+ 
+

+ In this example, a new Getopt object is created with three params. + The first param is the program name. This is for printing error + messages in the form "program: error message". In the C version, this + value is taken from argv[0], but in Java the program name is not passed + in that element, thus the need for this parameter. The second param is + the argument list that was passed to the main() method. The third + param is the list of valid options. Each character represents a valid + option. If the character is followed by a single colon, then that + option has a required argument. If the character is followed by two + colons, then that option has an argument that is not required. +

+ Note in this example that the value returned from getopt() is cast to + a char prior to printing. This is required in order to make the value + display correctly as a character instead of an integer. +

+ If the first character in the option string is a colon, for example + ":abc::d", then getopt() will return a ':' instead of a '?' when it + encounters an option with a missing required argument. This allows the + caller to distinguish between invalid options and valid options that + are simply incomplete. +

+ In the traditional Unix getopt(), -1 is returned when the first non-option + charcter is encountered. In GNU getopt(), the default behavior is to + allow options to appear anywhere on the command line. The getopt() + method permutes the argument to make it appear to the caller that all + options were at the beginning of the command line, and all non-options + were at the end. For example, calling getopt() with command line args + of "-a foo bar -d" returns options 'a' and 'd', then sets optind to + point to "foo". The program would read the last two argv elements as + "foo" and "bar", just as if the user had typed "-a -d foo bar". +

+ The user can force getopt() to stop scanning the command line with + the special argument "--" by itself. Any elements occuring before the + "--" are scanned and permuted as normal. Any elements after the "--" + are returned as is as non-option argv elements. For example, + "foo -a -- bar -d" would return option 'a' then -1. optind would point + to "foo", "bar" and "-d" as the non-option argv elements. The "--" + is discarded by getopt(). +

+ There are two ways this default behavior can be modified. The first is + to specify traditional Unix getopt() behavior (which is also POSIX + behavior) in which scanning stops when the first non-option argument + encountered. (Thus "-a foo bar -d" would return 'a' as an option and + have "foo", "bar", and "-d" as non-option elements). The second is to + allow options anywhere, but to return all elements in the order they + occur on the command line. When a non-option element is ecountered, + an integer 1 is returned and the value of the non-option element is + stored in optarg is if it were the argument to that option. For + example, "-a foo -d", returns first 'a', then 1 (with optarg set to + "foo") then 'd' then -1. When this "return in order" functionality + is enabled, the only way to stop getopt() from scanning all command + line elements is to use the special "--" string by itself as described + above. An example is "-a foo -b -- bar", which would return 'a', then + integer 1 with optarg set to "foo", then 'b', then -1. optind would + then point to "bar" as the first non-option argv element. The "--" + is discarded. +

+ The POSIX/traditional behavior is enabled by either setting the + property "gnu.posixly_correct" or by putting a '+' sign as the first + character of the option string. The difference between the two + methods is that setting the gnu.posixly_correct property also forces + certain error messages to be displayed in POSIX format. To enable + the "return in order" functionality, put a '-' as the first character + of the option string. Note that after determining the proper + behavior, Getopt strips this leading '+' or '-', meaning that a ':' + placed as the second character after one of those two will still cause + getopt() to return a ':' instead of a '?' if a required option + argument is missing. +

+ In addition to traditional single character options, GNU Getopt also + supports long options. These are preceeded by a "--" sequence and + can be as long as desired. Long options provide a more user-friendly + way of entering command line options. For example, in addition to a + "-h" for help, a program could support also "--help". +

+ Like short options, long options can also take a required or non-required + argument. Required arguments can either be specified by placing an + equals sign after the option name, then the argument, or by putting the + argument in the next argv element. For example: "--outputdir=foo" and + "--outputdir foo" both represent an option of "outputdir" with an + argument of "foo", assuming that outputdir takes a required argument. + If a long option takes a non-required argument, then the equals sign + form must be used to specify the argument. In this case, + "--outputdir=foo" would represent option outputdir with an argument of + "foo" while "--outputdir foo" would represent the option outputdir + with no argument and a first non-option argv element of "foo". +

+ Long options can also be specified using a special POSIX argument + format (one that I highly discourage). This form of entry is + enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid + option string. This causes getopt to treat the name following the + "-W" as the name of the long option. For example, "-W outputdir=foo" + would be equivalent to "--outputdir=foo". The name can immediately + follow the "-W" like so: "-Woutputdir=foo". Option arguments are + handled identically to normal long options. If a string follows the + "-W" that does not represent a valid long option, then getopt() returns + 'W' and the caller must decide what to do. Otherwise getopt() returns + a long option value as described below. +

+ While long options offer convenience, they can also be tedious to type + in full. So it is permissible to abbreviate the option name to as + few characters as required to uniquely identify it. If the name can + represent multiple long options, then an error message is printed and + getopt() returns a '?'. +

+ If an invalid option is specified or a required option argument is + missing, getopt() prints an error and returns a '?' or ':' exactly + as for short options. Note that when an invalid long option is + encountered, the optopt variable is set to integer 0 and so cannot + be used to identify the incorrect option the user entered. +

+ Long options are defined by LongOpt objects. These objects are created + with a contructor that takes four params: a String representing the + object name, a integer specifying what arguments the option takes + (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, + or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described + below), and an integer value (described below). +

+ To enable long option parsing, create an array of LongOpt's representing + the legal options and pass it to the Getopt() constructor. WARNING: If + all elements of the array are not populated with LongOpt objects, the + getopt() method will throw a NullPointerException. +

+ When getopt() is called and a long option is encountered, one of two + things can be returned. If the flag field in the LongOpt object + representing the long option is non-null, then the integer value field + is stored there and an integer 0 is returned to the caller. The val + field can then be retrieved from the flag field. Note that since the + flag field is a StringBuffer, the appropriate String to integer converions + must be performed in order to get the actual int value stored there. + If the flag field in the LongOpt object is null, then the value field + of the LongOpt is returned. This can be the character of a short option. + This allows an app to have both a long and short option sequence + (say, "-h" and "--help") that do the exact same thing. +

+ With long options, there is an alternative method of determining + which option was selected. The method getLongind() will return the + the index in the long option array (NOT argv) of the long option found. + So if multiple long options are configured to return the same value, + the application can use getLongind() to distinguish between them. +

+ Here is an expanded Getopt example using long options and various + techniques described above: +

+

+ int c;
+ String arg;
+ LongOpt[] longopts = new LongOpt[3];
+ // 
+ StringBuffer sb = new StringBuffer();
+ longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
+ longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
+ longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
+ // 
+ Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
+ g.setOpterr(false); // We'll do our own error handling
+ //
+ while ((c = g.getopt()) != -1)
+   switch (c)
+     {
+        case 0:
+          arg = g.getOptarg();
+          System.out.println("Got long option with value '" +
+                             (char)(new Integer(sb.toString())).intValue()
+                             + "' with argument " +
+                             ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 1:
+          System.out.println("I see you have return in order set and that " +
+                             "a non-option argv element was just found " +
+                             "with the value '" + g.getOptarg() + "'");
+          break;
+          //
+        case 2:
+          arg = g.getOptarg();
+          System.out.println("I know this, but pretend I didn't");
+          System.out.println("We picked option " +
+                             longopts[g.getLongind()].getName() +
+                           " with value " + 
+                           ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 'b':
+          System.out.println("You picked plain old option " + (char)c);
+          break;
+          //
+        case 'c':
+        case 'd':
+          arg = g.getOptarg();
+          System.out.println("You picked option '" + (char)c + 
+                             "' with argument " +
+                             ((arg != null) ? arg : "null"));
+          break;
+          //
+        case 'h':
+          System.out.println("I see you asked for help");
+          break;
+          //
+        case 'W':
+          System.out.println("Hmmm. You tried a -W with an incorrect long " +
+                             "option name");
+          break;
+          //
+        case ':':
+          System.out.println("Doh! You need an argument for option " +
+                             (char)g.getOptopt());
+          break;
+          //
+        case '?':
+          System.out.println("The option '" + (char)g.getOptopt() + 
+                           "' is not valid");
+          break;
+          //
+        default:
+          System.out.println("getopt() returned " + c);
+          break;
+     }
+ //
+ for (int i = g.getOptind(); i < argv.length ; i++)
+   System.out.println("Non option argv element: " + argv[i] + "\n");
+ 
+

+ There is an alternative form of the constructor used for long options + above. This takes a trailing boolean flag. If set to false, Getopt + performs identically to the example, but if the boolean flag is true + then long options are allowed to start with a single '-' instead of + "--". If the first character of the option is a valid short option + character, then the option is treated as if it were the short option. + Otherwise it behaves as if the option is a long option. Note that + the name given to this option - long_only - is very counter-intuitive. + It does not cause only long options to be parsed but instead enables + the behavior described above. +

+ Note that the functionality and variable names used are driven from + the C lib version as this object is a port of the C code, not a + new implementation. This should aid in porting existing C/C++ code, + as well as helping programmers familiar with the glibc version to + adapt to the Java version even if it seems very non-Java at times. +

+ In this release I made all instance variables protected due to + overwhelming public demand. Any code which relied on optarg, + opterr, optind, or optopt being public will need to be modified to + use the appropriate access methods. +

+ Please send all bug reports, requests, and comments to + arenn@urbanophile.com. +

+

+
Version: +
1.0.3 +
Author: +
Roland McGrath (roland@gnu.ai.mit.edu), Ulrich Drepper (drepper@cygnus.com), Aaron M. Renn (arenn@urbanophile.com) +
See Also: +
LongOpt +
+
+ +

+ Constructor Index +

+
+
 o + Getopt(String, String[], String) +
Construct a basic Getopt instance with the given input data. +
 o + Getopt(String, String[], String, LongOpt[]) +
Construct a Getopt instance with given input data that is capable of + parsing long options as well as short. +
 o + Getopt(String, String[], String, LongOpt[], boolean) +
Construct a Getopt instance with given input data that is capable of + parsing long options and short options. +
+

+ Method Index +

+
+
 o + getLongind() +
Returns the index into the array of long options (NOT argv) representing + the long option that was found. +
 o + getopt() +
This method returns a char that is the current option that has been + parsed from the command line. +
 o + getOptarg() +
+ For communication from `getopt' to the caller. +
 o + getOptind() +
optind it the index in ARGV of the next element to be scanned. +
 o + getOptopt() +
When getopt() encounters an invalid option, it stores the value of that + option in optopt which can be retrieved with this method. +
 o + setArgv(String[]) +
Since in GNU getopt() the argument vector is passed back in to the + function every time, the caller can swap out argv on the fly. +
 o + setOpterr(boolean) +
Normally Getopt will print a message to the standard error when an + invalid option is encountered. +
 o + setOptind(int) +
This method allows the optind index to be set manually. +
 o + setOptstring(String) +
In GNU getopt, it is possible to change the string containg valid options + on the fly because it is passed as an argument to getopt() each time. +
+ +

+ Constructors +

+ + o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring)
+
+
+
Construct a basic Getopt instance with the given input data. Note that + this handles "short" options only. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command line to the program. +
optstring - A String containing a description of the valid args for this program +
+
+ o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring,
+               LongOpt long_options[])
+
+
+
Construct a Getopt instance with given input data that is capable of + parsing long options as well as short. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command ilne to the program +
optstring - A String containing a description of the valid short args for this program +
long_options - An array of LongOpt objects that describes the valid long args for this program +
+
+ o +Getopt +
+ public Getopt(String progname,
+               String argv[],
+               String optstring,
+               LongOpt long_options[],
+               boolean long_only)
+
+
+
Construct a Getopt instance with given input data that is capable of + parsing long options and short options. Contrary to what you might + think, the flag 'long_only' does not determine whether or not we + scan for only long arguments. Instead, a value of true here allows + long arguments to start with a '-' instead of '--' unless there is a + conflict with a short option name. +

+

+
Parameters: +
progname - The name to display as the program name when printing errors +
argv - The String array passed as the command ilne to the program +
optstring - A String containing a description of the valid short args for this program +
long_options - An array of LongOpt objects that describes the valid long args for this program +
long_only - true if long options that do not conflict with short options can start with a '-' as well as '--' +
+
+ +

+ Methods +

+ o +setOptstring +
+ public void setOptstring(String optstring)
+
+
+
In GNU getopt, it is possible to change the string containg valid options + on the fly because it is passed as an argument to getopt() each time. In + this version we do not pass the string on every call. In order to allow + dynamic option string changing, this method is provided. +

+

+
Parameters: +
optstring - The new option string to use +
+
+ o +getOptind +
+ public int getOptind()
+
+
+
optind it the index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + When `getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. +

+

+ o +setOptind +
+ public void setOptind(int optind)
+
+
+
This method allows the optind index to be set manually. Normally this + is not necessary (and incorrect usage of this method can lead to serious + lossage), but optind is a public symbol in GNU getopt, so this method + was added to allow it to be modified by the caller if desired. +

+

+
Parameters: +
optind - The new value of optind +
+
+ o +setArgv +
+ public void setArgv(String argv[])
+
+
+
Since in GNU getopt() the argument vector is passed back in to the + function every time, the caller can swap out argv on the fly. Since + passing argv is not required in the Java version, this method allows + the user to override argv. Note that incorrect use of this method can + lead to serious lossage. +

+

+
Parameters: +
argv - New argument list +
+
+ o +getOptarg +
+ public String getOptarg()
+
+
+
For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. + No set method is provided because setting this variable has no effect. +

+

+ o +setOpterr +
+ public void setOpterr(boolean opterr)
+
+
+
Normally Getopt will print a message to the standard error when an + invalid option is encountered. This can be suppressed (or re-enabled) + by calling this method. There is no get method for this variable + because if you can't remember the state you set this to, why should I? +

+

+ o +getOptopt +
+ public int getOptopt()
+
+
+
When getopt() encounters an invalid option, it stores the value of that + option in optopt which can be retrieved with this method. There is + no corresponding set method because setting this variable has no effect. +

+

+ o +getLongind +
+ public int getLongind()
+
+
+
Returns the index into the array of long options (NOT argv) representing + the long option that was found. +

+

+ o +getopt +
+ public int getopt()
+
+
+
This method returns a char that is the current option that has been + parsed from the command line. If the option takes an argument, then + the internal variable 'optarg' is set which is a String representing + the the value of the argument. This value can be retrieved by the + caller using the getOptarg() method. If an invalid option is found, + an error message is printed and a '?' is returned. The name of the + invalid option character can be retrieved by calling the getOptopt() + method. When there are no more options to be scanned, this method + returns -1. The index of first non-option element in argv can be + retrieved with the getOptind() method. +

+

+
Returns: +
Various things as described above +
+
+
+
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+ + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/gnu.getopt.LongOpt.html b/ssdd_p2_100291121_100292107/gnu/getopt/gnu.getopt.LongOpt.html new file mode 100755 index 0000000..ddc1186 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/gnu.getopt.LongOpt.html @@ -0,0 +1,210 @@ + + + + + + + Class gnu.getopt.LongOpt + + + + +
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+
+

+ Class gnu.getopt.LongOpt +

+
+java.lang.Object
+   |
+   +----gnu.getopt.LongOpt
+
+
+
+
public class LongOpt +
extends Object +
+This object represents the definition of a long option in the Java port + of GNU getopt. An array of LongOpt objects is passed to the Getopt + object to define the list of valid long options for a given parsing + session. Refer to the getopt documentation for details on the + format of long options. +

+

+
Version: +
1.0.3 +
Author: +
Aaron M. Renn (arenn@urbanophile.com) +
See Also: +
Getopt +
+
+ +

+ Variable Index +

+
+
 o + NO_ARGUMENT +
Constant value used for the "has_arg" constructor argument. +
 o + OPTIONAL_ARGUMENT +
Constant value used for the "has_arg" constructor argument. +
 o + REQUIRED_ARGUMENT +
+ Constant value used for the "has_arg" constructor argument. +
+

+ Constructor Index +

+
+
 o + LongOpt(String, int, StringBuffer, int) +
Create a new LongOpt object with the given parameter values. +
+

+ Method Index +

+
+
 o + getFlag() +
Returns the value of the 'flag' field for this long option + + +
 o + getHasArg() +
Returns the value set for the 'has_arg' field for this long option + + +
 o + getName() +
Returns the name of this LongOpt as a String + + +
 o + getVal() +
Returns the value of the 'val' field for this long option + + +
+ +

+ Variables +

+ o +NO_ARGUMENT +
+ public static final int NO_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes no argument.

+

+ o +REQUIRED_ARGUMENT +
+ public static final int REQUIRED_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes an argument that is required.

+

+ o +OPTIONAL_ARGUMENT +
+ public static final int OPTIONAL_ARGUMENT
+
+
+
Constant value used for the "has_arg" constructor argument. This + value indicates that the option takes an argument that is optional.

+

+ +

+ Constructors +

+ + o +LongOpt +
+ public LongOpt(String name,
+                int has_arg,
+                StringBuffer flag,
+                int val) throws IllegalArgumentException
+
+
+
Create a new LongOpt object with the given parameter values. If the + value passed as has_arg is not valid, then an exception is thrown. +

+

+
Parameters: +
name - The long option String. +
has_arg - Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). +
flag - If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. +
val - The value to return for this long option, or the equivalent single letter option to emulate if flag is null. +
Throws: IllegalArgumentException +
If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. +
+
+ +

+ Methods +

+ o +getName +
+ public String getName()
+
+
+
Returns the name of this LongOpt as a String +

+

+
Returns: +
Then name of the long option +
+
+ o +getHasArg +
+ public int getHasArg()
+
+
+
Returns the value set for the 'has_arg' field for this long option +

+

+
Returns: +
The value of 'has_arg' +
+
+ o +getFlag +
+ public StringBuffer getFlag()
+
+
+
Returns the value of the 'flag' field for this long option +

+

+
Returns: +
The value of 'flag' +
+
+ o +getVal +
+ public int getVal()
+
+
+
Returns the value of the 'val' field for this long option +

+

+
Returns: +
The value of 'val' +
+
+
+
+All Packages  Class Hierarchy  This Package  Previous  Next  Index
+ + diff --git a/ssdd_p2_100291121_100292107/lists/msg_list.c b/ssdd_p2_100291121_100292107/lists/msg_list.c new file mode 100644 index 0000000..6112ae3 --- /dev/null +++ b/ssdd_p2_100291121_100292107/lists/msg_list.c @@ -0,0 +1,59 @@ +#include +#include +#include +#include +#include "msg_list.h" + + +/* Creates a new message struct and enqueues it to the end of the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->sender, sender); + temp->id = id; + temp->next = NULL; + + if (*head == NULL){ /* Queue is empty */ + temp->next = *head; + *head = temp; + } + else{ + /* If the queue is not empty, iterate to the end and append the message */ + struct msg *last = *head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + return 0; +} +/* Deletes the message at the head of the queue and returns the new + head of the list + Return a pointer to the next message in the queue + NULL if the list is left empty */ +struct msg * dequeueMsg(struct msg **head){ + struct msg* temp = *head; + /* Head pointing to the next element */ + *head = temp->next; + /* Free the resources of the first message */ + free(temp); + /* Return the new head of the queue */ + return *head; +} + +/* Deletes all the messages in the list from the head of the list +passed as paremeter */ +void deleteAllMsgs(struct msg ** head){ + struct msg **temp = head; + while(*temp != NULL){ + *temp = dequeueMsg(&(*temp)); + } + return; +} \ No newline at end of file diff --git a/ssdd_p2_100291121_100292107/lists/msg_list.h b/ssdd_p2_100291121_100292107/lists/msg_list.h new file mode 100644 index 0000000..bca5c01 --- /dev/null +++ b/ssdd_p2_100291121_100292107/lists/msg_list.h @@ -0,0 +1,15 @@ +#define MAX_MSG 256 +#define MAX_MD5 33 + +struct msg{ + char body[MAX_MSG]; /* Content of the message */ + char sender[MAX_MSG]; /* Sender of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +/* ================FUNCTION HEADERS================ */ +int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender); +struct msg * dequeueMsg(struct msg **head); +void deleteAllMsgs(struct msg ** head); \ No newline at end of file diff --git a/ssdd_p2_100291121_100292107/lists/read_line.c b/ssdd_p2_100291121_100292107/lists/read_line.c new file mode 100644 index 0000000..c2038c3 --- /dev/null +++ b/ssdd_p2_100291121_100292107/lists/read_line.c @@ -0,0 +1,68 @@ +#include +#include +#include +#include +#include "read_line.h" + +int send_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = send(socket, message, l, 0); + l = l -r; /* Pending data to send */ + message = message + r; /* */ + } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + +ssize_t readLine(int fd, void *buffer, size_t n) +{ + ssize_t numRead; /* num of bytes fetched by last read() */ + size_t totRead; /* total bytes read so far */ + char *buf; + char ch; + + + if (n <= 0 || buffer == NULL) { + errno = EINVAL; + return -1; + } + + buf = buffer; + totRead = 0; + + for (;;) { + numRead = read(fd, &ch, 1); /* read a byte */ + + if (numRead == -1) { + if (errno == EINTR) /* interrupted -> restart read() */ + continue; + else + return -1; /* some other error */ + } else if (numRead == 0) { /* EOF */ + if (totRead == 0) /* no byres read; return 0 */ + return 0; + else + break; + } else { /* numRead must be 1 if we get here*/ + if (ch == '\n') + break; + if (ch == '\0') + break; + if (totRead < n - 1) { /* discard > (n-1) bytes */ + totRead++; + *buf++ = ch; + } + } + } + + *buf = '\0'; + return totRead; +} diff --git a/ssdd_p2_100291121_100292107/lists/read_line.h b/ssdd_p2_100291121_100292107/lists/read_line.h new file mode 100644 index 0000000..e3d4c9e --- /dev/null +++ b/ssdd_p2_100291121_100292107/lists/read_line.h @@ -0,0 +1,5 @@ +#include + +int send_msg(int socket, char *message, int length); +int recv_msg(int socket, char *message, int length); +ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/ssdd_p2_100291121_100292107/lists/user_list.c b/ssdd_p2_100291121_100292107/lists/user_list.c new file mode 100644 index 0000000..0280c16 --- /dev/null +++ b/ssdd_p2_100291121_100292107/lists/user_list.c @@ -0,0 +1,246 @@ +#include +#include +#include +#include +#include "msg_list.h" +#include "user_list.h" + +/* Checks if the input user is already registered + Return 0 if is registered + 1 if is not registered */ +char isRegistered(char * username){ + struct user *temp; + temp = user_head; + + /* Iterate over the list */ + while (temp != NULL){ + if (strcmp(temp->username, username) == 0){ //Check if the username exists + return 1; + } + temp = temp->next; + } + + return 0; + } + +/* Registers a user (if not previously registered) and appends it to the end of the s list + Returns 1 if already registered + 0 if registered correctly */ +char registerUser(char * username){ + /* Check if the user already exists */ + if(isRegistered(username)) return 1; + + /* Prepare new user */ + struct user *temp; + temp = (struct user *) malloc(sizeof(struct user)); + /* If memory is full and malloc is not possible, we return code 2 */ + if(temp == NULL) return 2; + /* Initialize user values */ + strcpy(temp->username, username); + temp->status = 0; + strcpy(temp->ip, "-1"); + temp->port = 0; + temp->pend_msgs_head = NULL; + temp->next = NULL; + temp->last_id = 0; + + if (user_head == NULL){ //If list is empty + temp->next = user_head; + user_head = temp; + } + else{ + struct user *last = user_head; + + /* Iterate over the list */ + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + + return 0; +} + +/* Changes the status of a user to 1 (ON) and links an IP and port number to it + Return 0 if connect OK + 1 if user is not registered + 2 if registered but not connected */ +char connectUser(char * username, char * ip, uint16_t port){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 1) return 2; //User already connected + /* Change status to 1 ("ON") and update IP and Port */ + temp->status = 1; + strcpy(temp->ip, ip); + temp->port = port; + return 0; + } + temp = temp->next; + } + /* No user was found, so send code 1 */ + return 1; +} + +/* Changes the status of a user to 0 (OFF) and cleans the IP and port number + Return 0 if disconnect OK; + 1 if user is not registered; + 2 if registered but not connected; + 3 if trying to disconnect from a different IP */ +char disconnectUser(char * username, char * used_ip){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if (temp->status == 0) return 2; //User already disconnected + if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP + /* Change status to 0 ("OFF") and delete IP and Port */ + temp->status = 0; + strcpy(temp->ip, "-1"); + temp->port = 0; + return 0; + } + temp = temp->next; + } + + return 1; +} + + +/* Unregisters a user, deleting it and its pending messages (if any) from the list + Returns 1 if the user does not exist. + 0 if the user is deleted correctly */ +char unregisterUser(char * username){ + struct user *temp, *prev; //temp is the current user, prev is the previous user in the list + temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + if(temp == user_head){ //If the user is at the user_head of the list + user_head = temp->next; //change the user_head to the next element + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + free(temp); //Free the resources of the user + return 0; + } + else{ //User is not at the user_head + prev->next = temp->next; + /* Delete the pending messages if any */ + deleteAllMsgs(&(temp->pend_msgs_head)); + /* Free the memory resources of the user structure */ + free(temp); + return 0; + } + } + else{ + prev = temp; + temp = temp->next; + } + } + //If we reach this point, no user was found + return 1; +} + +/* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ +int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Enqueue message + return enqueueMsg(&(temp->pend_msgs_head), msg, md5, msg_id, sender); + } + temp = temp->next; + } + + return -1; //User was not found +} + +/* Increments the last-sent-message ID associated to the input user + Return the value of the updated ID */ +unsigned int updateLastID(char * username){ + struct user *temp = user_head; + + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + //Increment the ID in 1 + temp->last_id = temp->last_id+1; + //If it results in 0, then the maximum representable number is overflown + if(temp->last_id == 0) temp->last_id = 1; + + return temp->last_id; + } + temp = temp->next; + } + + return 0; +} + +/* Checks if the input user is connected + Return 0 if the user is disconnected + 1 if the user is connected + 2 if error (user was not found) */ +char isConnected(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->status; //Returns 0 if OFF, 1 if ON + } + temp = temp->next; + } + /* Return error 2 if we reach this point. No user was found */ + return 2; +} + +/* Retrieves the IP associated to a user in the list + Returns a char array with the IP of the user + NULL if the user was not found */ +char * getUserIP(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->ip; //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + +/* Retrieves the port number associated to a user in the list + Return the port number + 0 if the user was not found */ +uint16_t getUserPort(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return temp->port; //Returns the IP of the user + } + temp = temp->next; + } + return 0; +} + +/* Retrieves a pointer to the head of the pending message list associated to a user + Return the pointer to the head of the message list + NULL if the user was not found */ +struct msg ** getPendMsgHead(char * username){ + struct user *temp = user_head; + /* Iterate over the list */ + while(temp != NULL){ + if(strcmp(temp->username, username) == 0){ //User found + return &(temp->pend_msgs_head); //Returns the IP of the user + } + temp = temp->next; + } + return NULL; +} + diff --git a/ssdd_p2_100291121_100292107/lists/user_list.h b/ssdd_p2_100291121_100292107/lists/user_list.h new file mode 100644 index 0000000..70dcc1e --- /dev/null +++ b/ssdd_p2_100291121_100292107/lists/user_list.h @@ -0,0 +1,27 @@ +#define MAX_USERNAME 256 +#define MAX_IP 16 +#define TRUE 1 +#define FALSE 0 + +struct user{ + char username[MAX_USERNAME]; /* Username that acts as ID */ + char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ + char ip[MAX_IP]; /* IP of the user from which the connect operation was made */ + uint16_t port; /* Port number of the user from which the connect operation was made */ + unsigned int last_id; /* ID assigned to the last sent message */ + struct msg *pend_msgs_head; /* Pointer to the head of the pending messages queue */ + struct user *next; /* Pointer to the next user in the list */ +} *user_head; + +/* ================FUNCTION HEADERS================ */ +char isRegistered(char * username); +char registerUser(char * username); +char unregisterUser(char * username); +char connectUser(char * username, char * ip, uint16_t port); +char disconnectUser(char * username, char * used_ip); +int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender); +unsigned int updateLastID(char * username); +char isConnected(char * username); +char * getUserIP(char * username); +uint16_t getUserPort(char * username); +struct msg ** getPendMsgHead(char * username); \ No newline at end of file diff --git a/lab2_pruebas/jax/localhost/_8080/md5/Exception.java b/ssdd_p2_100291121_100292107/md5/client/Exception.java similarity index 97% rename from lab2_pruebas/jax/localhost/_8080/md5/Exception.java rename to ssdd_p2_100291121_100292107/md5/client/Exception.java index 033bd28..89fef0a 100644 --- a/lab2_pruebas/jax/localhost/_8080/md5/Exception.java +++ b/ssdd_p2_100291121_100292107/md5/client/Exception.java @@ -1,5 +1,5 @@ -package localhost._8080.md5; +package md5.client; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.java b/ssdd_p2_100291121_100292107/md5/client/Exception_Exception.java similarity index 58% rename from lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.java rename to ssdd_p2_100291121_100292107/md5/client/Exception_Exception.java index 81ea9b1..9e68531 100644 --- a/lab2_pruebas/jax/localhost/_8080/md5/Exception_Exception.java +++ b/ssdd_p2_100291121_100292107/md5/client/Exception_Exception.java @@ -1,5 +1,5 @@ -package localhost._8080.md5; +package md5.client; import javax.xml.ws.WebFault; @@ -10,7 +10,7 @@ * Generated source version: 2.2 * */ -@WebFault(name = "Exception", targetNamespace = "http://localhost:8080/MD5") +@WebFault(name = "Exception", targetNamespace = "http://ws.server.md5/") public class Exception_Exception extends java.lang.Exception { @@ -19,14 +19,14 @@ public class Exception_Exception * Java type that goes as soapenv:Fault detail element. * */ - private localhost._8080.md5.Exception faultInfo; + private md5.client.Exception faultInfo; /** * * @param message * @param faultInfo */ - public Exception_Exception(String message, localhost._8080.md5.Exception faultInfo) { + public Exception_Exception(String message, md5.client.Exception faultInfo) { super(message); this.faultInfo = faultInfo; } @@ -37,7 +37,7 @@ public Exception_Exception(String message, localhost._8080.md5.Exception faultIn * @param faultInfo * @param cause */ - public Exception_Exception(String message, localhost._8080.md5.Exception faultInfo, Throwable cause) { + public Exception_Exception(String message, md5.client.Exception faultInfo, Throwable cause) { super(message, cause); this.faultInfo = faultInfo; } @@ -45,9 +45,9 @@ public Exception_Exception(String message, localhost._8080.md5.Exception faultIn /** * * @return - * returns fault bean: localhost._8080.md5.Exception + * returns fault bean: md5.client.Exception */ - public localhost._8080.md5.Exception getFaultInfo() { + public md5.client.Exception getFaultInfo() { return faultInfo; } diff --git a/ssdd_p2_100291121_100292107/md5/client/MD5.java b/ssdd_p2_100291121_100292107/md5/client/MD5.java new file mode 100644 index 0000000..77bf5ca --- /dev/null +++ b/ssdd_p2_100291121_100292107/md5/client/MD5.java @@ -0,0 +1,46 @@ + +package md5.client; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.Action; +import javax.xml.ws.FaultAction; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.4-b01 + * Generated source version: 2.2 + * + */ +@WebService(name = "MD5", targetNamespace = "http://ws.server.md5/") +@SOAPBinding(style = SOAPBinding.Style.RPC) +@XmlSeeAlso({ + ObjectFactory.class +}) +public interface MD5 { + + + /** + * + * @param arg0 + * @return + * returns java.lang.String + * @throws Exception_Exception + */ + @WebMethod + @WebResult(partName = "return") + @Action(input = "http://ws.server.md5/MD5/getMD5Request", output = "http://ws.server.md5/MD5/getMD5Response", fault = { + @FaultAction(className = Exception_Exception.class, value = "http://ws.server.md5/MD5/getMD5/Fault/Exception") + }) + public String getMD5( + @WebParam(name = "arg0", partName = "arg0") + String arg0) + throws Exception_Exception + ; + +} diff --git a/lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.java b/ssdd_p2_100291121_100292107/md5/client/MD5ImplService.java similarity index 79% rename from lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.java rename to ssdd_p2_100291121_100292107/md5/client/MD5ImplService.java index 2f15218..2608289 100644 --- a/lab2_pruebas/jax/localhost/_8080/md5/MD5ImplService.java +++ b/ssdd_p2_100291121_100292107/md5/client/MD5ImplService.java @@ -1,5 +1,5 @@ -package localhost._8080.md5; +package md5.client; import java.net.MalformedURLException; import java.net.URL; @@ -17,20 +17,20 @@ * Generated source version: 2.2 * */ -@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://localhost:8080/MD5", wsdlLocation = "http://localhost:8080/MD5?wsdl") +@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.server.md5/", wsdlLocation = "http://127.0.1.1:8080/ws/md5?wsdl") public class MD5ImplService extends Service { private final static URL MD5IMPLSERVICE_WSDL_LOCATION; private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; - private final static QName MD5IMPLSERVICE_QNAME = new QName("http://localhost:8080/MD5", "MD5ImplService"); + private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.server.md5/", "MD5ImplService"); static { URL url = null; WebServiceException e = null; try { - url = new URL("http://localhost:8080/MD5?wsdl"); + url = new URL("http://127.0.1.1:8080/ws/md5?wsdl"); } catch (MalformedURLException ex) { e = new WebServiceException(ex); } @@ -65,11 +65,11 @@ public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... /** * * @return - * returns MD5Impl + * returns MD5 */ @WebEndpoint(name = "MD5ImplPort") - public MD5Impl getMD5ImplPort() { - return super.getPort(new QName("http://localhost:8080/MD5", "MD5ImplPort"), MD5Impl.class); + public MD5 getMD5ImplPort() { + return super.getPort(new QName("http://ws.server.md5/", "MD5ImplPort"), MD5.class); } /** @@ -77,11 +77,11 @@ public MD5Impl getMD5ImplPort() { * @param features * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. * @return - * returns MD5Impl + * returns MD5 */ @WebEndpoint(name = "MD5ImplPort") - public MD5Impl getMD5ImplPort(WebServiceFeature... features) { - return super.getPort(new QName("http://localhost:8080/MD5", "MD5ImplPort"), MD5Impl.class, features); + public MD5 getMD5ImplPort(WebServiceFeature... features) { + return super.getPort(new QName("http://ws.server.md5/", "MD5ImplPort"), MD5.class, features); } private static URL __getWsdlLocation() { diff --git a/ssdd_p2_100291121_100292107/md5/client/ObjectFactory.java b/ssdd_p2_100291121_100292107/md5/client/ObjectFactory.java new file mode 100644 index 0000000..c9865fe --- /dev/null +++ b/ssdd_p2_100291121_100292107/md5/client/ObjectFactory.java @@ -0,0 +1,53 @@ + +package md5.client; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the md5.client package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _Exception_QNAME = new QName("http://ws.server.md5/", "Exception"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5.client + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Exception } + * + */ + public Exception createException() { + return new Exception(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ws.server.md5/", name = "Exception") + public JAXBElement createException(Exception value) { + return new JAXBElement(_Exception_QNAME, Exception.class, null, value); + } + +} diff --git a/ssdd_p2_100291121_100292107/md5/client/package-info.java b/ssdd_p2_100291121_100292107/md5/client/package-info.java new file mode 100644 index 0000000..35519b5 --- /dev/null +++ b/ssdd_p2_100291121_100292107/md5/client/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.server.md5/") +package md5.client; diff --git a/ssdd_p2_100291121_100292107/md5/server/endpoint/MD5Publisher.class b/ssdd_p2_100291121_100292107/md5/server/endpoint/MD5Publisher.class new file mode 100644 index 0000000000000000000000000000000000000000..7e0460e25b2799f7e48c5589200e6edd369ee413 GIT binary patch literal 1205 zcmZuwT~pIQ6g}GlTSEA1DWV7jMJXTz1r%El`6yDSC^PkA9G}v52ZCvmNmIaIigmWyTXMa4d2xF?6h$w&}lM2q&gKFtlwtMZwUUHEr>x zQpyYOosqXF(pEA|n_)2VIeTav8MqheY`;i*{0bB?5n6jnG^ zRlLBOikDbph+XBRPYS~IO~>X~SFwRjhLN=AIi7ZWAZ%@4_&!P2GJBd)EPA3`=Gan^ z#x{eRT%KQ^*N@A3sYuRD)P+ho$=1rkJ2DGGGki_hMb|NHKdCXq39QRA;mK4&W=gKb z@k+%GG7MVNc_UAvE^T1wyORGle<%t*-Kd4l*MNcb)IY;@iI!nD(V{UoLUl7!q`Ows z7QUXLWpO=lgIpksvQELUcAPQ^8A?nABn@O8NDKql7%mBVh(P9E1_l}w%`?Lg@twvc znheN&E&HNGnooFPl&Eyj@ath3B3FVe8q;_yGiXX{mp;)?N|x+Z zy52^a84M-EYKzP!7lZz!0#9xbr7(^t{h#s)fgD1d)%jP~|R)_E0=VCw&-0KPKr~3A)S* hDSS^_4N`lDkTHb*5-7wm%yActW2BQvN9ibpv45Z~DnS4M literal 0 HcmV?d00001 diff --git a/ssdd_p2_100291121_100292107/md5/server/endpoint/MD5Publisher.java b/ssdd_p2_100291121_100292107/md5/server/endpoint/MD5Publisher.java new file mode 100644 index 0000000..c81ad99 --- /dev/null +++ b/ssdd_p2_100291121_100292107/md5/server/endpoint/MD5Publisher.java @@ -0,0 +1,27 @@ +package md5.server.endpoint; + +import javax.xml.ws.Endpoint; +import md5.server.ws.MD5Impl; +import java.net.Inet4Address; + +//Endpoint publisher +public class MD5Publisher{ + + public static void main(String[] args) { + String url = "http://"; + try{ + /* Get the machine's IP address in which the web service will be running */ + url += Inet4Address.getLocalHost().getHostAddress(); + } + catch(Exception e){ + System.out.println("Error when getting IP address"); + return; + } + /* Build the web service URI */ + url += ":8080/ws/md5"; + System.out.println("Publishing MD5 service at endpoint: " + url); + /* Publish the endpoint */ + Endpoint.publish(url, new MD5Impl()); + } + +} \ No newline at end of file diff --git a/ssdd_p2_100291121_100292107/md5/server/ws/MD5.class b/ssdd_p2_100291121_100292107/md5/server/ws/MD5.class new file mode 100644 index 0000000000000000000000000000000000000000..f16d81b65a7872b952b96dd143f2f94f008e6785 GIT binary patch literal 510 zcmaJ;%T5A85Ul34h^QcfVmugQj9%P>;lxFJB_0$Haw?rsh z&pn<*D$vG4l~C_Zb)?38uZ-&Z+|oLT+$2n>CI)kR^knP@?zcI53~7@9>il3vL<@=*}}F!Cx(RLt=1e~`mQl- z2nYWd93~}VlkRmd3FYyiVH;`9p)GSK+bJz~)9H`ciwKpa^tllWJB0l>uz2&&Q5T&E zyML$T2!xb;5gLeMa~ooiCPx4D!eGsHAWemC{364nydDgT{_dY|D7GGzO=F54((6(Y)Vy#-r z3j2kTEz*u$5bo;21jCTFvTf`bdeN{7dd9U)t1uJ)e~Y0t;~Kd)t475~@F}M_?r_|t z&={1(y_~4HX4!H$rpeBft9DK-nI4-;ROwQsnDnR^V$Z9VYnH^i>6jGFoMn|=!#~Op z^||--?OjLT5ZR2dcg&oaVF(K=Un!fGo3>nGZy7nl4VUs0Nrzm7o!oVj#G)dM4$7XE z6r73~%yLYrxQF{H9^j#hIiys~gGv#oyx|f$*EUn> zv^Pz1{v@*SX;5A_3c@BpxBNS;s7C&cW~kYzW*vXVsG3@1AK9o>sMQRK^RxPESnEBb zgf40gC~*}R=w?yz>6!&d({zyRB&(M+BOM$*0Q*D>f*>jTn+nMYqIAS_{R|15^hQVE zkVb2y25BuZ+C(~7gPf>=PfK4BdU=56>0r~O9Fb$v(R&QWf-xx~kB4#mHq7vc%^neK`IeBY@VA1Re0nhtN#x2n7*E3og;B3*Gb^Ko4E}UM!P-hJJbj^dWFe t9|q3R#S!DU%+c*XJ(SfC`atxOlSFx3A@Dw*qMynE0%o{I|LYD0egS-y3atPD literal 0 HcmV?d00001 diff --git a/lab2_pruebas/jax/MD5Impl.java b/ssdd_p2_100291121_100292107/md5/server/ws/MD5Impl.java similarity index 72% rename from lab2_pruebas/jax/MD5Impl.java rename to ssdd_p2_100291121_100292107/md5/server/ws/MD5Impl.java index 08a25c1..1383620 100644 --- a/lab2_pruebas/jax/MD5Impl.java +++ b/ssdd_p2_100291121_100292107/md5/server/ws/MD5Impl.java @@ -1,11 +1,12 @@ // Based on http://www.mkyong.com/java/java-md5-hashing-example/ +package md5.server.ws; import java.io.FileInputStream; import java.security.MessageDigest; import javax.jws.WebService; //Service Implementation -@WebService(targetNamespace = "http://localhost:8080/MD5") +@WebService(endpointInterface = "md5.server.ws.MD5") public class MD5Impl implements MD5 { /** @@ -14,7 +15,7 @@ public class MD5Impl implements MD5 * @return The calculated MD5 hash value (in hex format). */ @Override - public String MD5(String text) throws Exception + public String getMD5(String text) throws Exception { // Calculate MD5(text) MessageDigest md = MessageDigest.getInstance("MD5"); @@ -30,14 +31,4 @@ public String MD5(String text) throws Exception return sb.toString(); } - /* - public static void main(String[] args) throws Exception - { - // msg is the message - String msg = "hello world"; - - // Print result - System.out.println("MD5('"+ msg +"') = " + MD5(msg)); - } - */ } diff --git a/ssdd_p2_100291121_100292107/monitor.c b/ssdd_p2_100291121_100292107/monitor.c new file mode 100644 index 0000000..d782e6a --- /dev/null +++ b/ssdd_p2_100291121_100292107/monitor.c @@ -0,0 +1,53 @@ + +#include "rpc_store_service/store_service.h" + +int +main (int argc, char *argv[]) +{ + char *host; + enum clnt_stat retval; /* Return value for the getmessage call */ + /* Check the parameters of the command */ + if (argc < 4) { + printf ("usage: %s server_host \n", argv[0]); + exit (1); + } + /* Get the address of the host from the first paramete */ + host = argv[1]; + /* Get the ID from the third parameter and store it in an unsigned int */ + char *stopstring; + unsigned int id = strtoul(argv[3], &stopstring, 10); + + CLIENT *clnt; + /* Create the connection with the service */ + clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); + if (clnt == NULL) { + printf("ERROR , SERVICE NOT AVAILABLE\n"); + exit (1); + } + /* Allocate resources for the response */ + response *res = malloc(sizeof(response)); + res->msg = calloc(MAX_SIZE, sizeof(char)); + res->md5 = calloc(MAX_MD5, sizeof(char)); + /* Call the get message service with the client ID and message ID passed as parameters */ + retval = getmessage_1(argv[2], id, res, clnt); + /* If FALSE is returned, there was an internal server error */ + if(retval != RPC_SUCCESS) printf("ERROR , SERVICE NOT AVAILABLE\n"); + /* if the length of the receive message is 0, no message was found */ + if(strlen(res->msg) == 0) printf ("ERROR , MESSAGE DOES NOT EXIST\n"); + /* Otherwise, print the message and its MD5 hash */ + else{ + printf("MESS: %s\n", res->msg); + printf("MD5: %s\n", res->md5); + } + /*******************************************/ + /* Sample code for the getnummessages call */ + /*******************************************/ + /* + int result; + getnummessages_1(argv[2], &result, clnt); + printf("Total number of messages: %d\n", result); + */ + /* Destroy the connection */ + clnt_destroy (clnt); + exit (0); +} diff --git a/ssdd_p2_100291121_100292107/rpc_store_service/segurodevida.c b/ssdd_p2_100291121_100292107/rpc_store_service/segurodevida.c new file mode 100644 index 0000000..601ff5b --- /dev/null +++ b/ssdd_p2_100291121_100292107/rpc_store_service/segurodevida.c @@ -0,0 +1,182 @@ +/* + * This is sample code generated by rpcgen. + * These are only templates and you can use them + * as a guideline for developing your own functions. + */ + +#include "store_service.h" + +/* Define the structure of the message list */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +struct user{ + char name[MAX_SIZE]; + unsigned long num_msgs; + struct user *next; + struct msg *sent_msgs_head; +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct msg * msg_head; +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* Initialize the lists to NULL */ + usr_head = NULL; + usr_head->next = NULL; + usr_head->sent_msgs_head = NULL; + + return retval; +} + +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + printf("1\n"); + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + printf("2\n"); + if(strcmp(temp->name, sender) == 0){ //User found in the list + printf("3\n"); + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("4\n"); + if(*result == -1) return retval; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->name, sender); + printf("5\n"); + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + printf("6\n"); + if(*result == -1) return retval; + temp->num_msgs = 1; /* Set the message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + *result = *result + 1; + msg_temp = msg_temp->next; + } + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + struct msg *msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + if(msg_temp->id == msg_id){ //Message ID found + strcpy(result->msg, msg_temp->body); + strcpy(result->md5, msg_temp->md5); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + result = NULL; + return retval; + } + temp = temp->next; + } + result = NULL; //User was not found, thus message does not exist + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + /* + * Insert additional freeing code here, if needed + */ + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + // if (*msg_head == NULL){ /* Queue is empty */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + // else{ + // /* If the queue is not empty, append it to the beginning */ + // temp->next = *msg_head; + // *msg_head = temp; + // } + + return 0; +} diff --git a/ssdd_p2_100291121_100292107/rpc_store_service/store_service.h b/ssdd_p2_100291121_100292107/rpc_store_service/store_service.h new file mode 100644 index 0000000..25dff07 --- /dev/null +++ b/ssdd_p2_100291121_100292107/rpc_store_service/store_service.h @@ -0,0 +1,93 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#ifndef _STORE_SERVICE_H_RPCGEN +#define _STORE_SERVICE_H_RPCGEN + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_SIZE 256 +#define MAX_MD5 33 + +struct response { + char *msg; + char *md5; +}; +typedef struct response response; + +struct store_1_argument { + char *sender; + char *receiver; + u_int msg_id; + char *msg; + char *md5; +}; +typedef struct store_1_argument store_1_argument; + +struct getmessage_1_argument { + char *user; + u_int msg_id; +}; +typedef struct getmessage_1_argument getmessage_1_argument; + +#define STORE_SERVICE 666 +#define STORE_VERSION 1 + +#if defined(__STDC__) || defined(__cplusplus) +#define init 1 +extern enum clnt_stat init_1(void *, CLIENT *); +extern bool_t init_1_svc(void *, struct svc_req *); +#define store 2 +extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); +extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); +extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); +#define getMessage 4 +extern enum clnt_stat getmessage_1(char *, u_int , response *, CLIENT *); +extern bool_t getmessage_1_svc(char *, u_int , response *, struct svc_req *); +extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); + +#else /* K&R C */ +#define init 1 +extern enum clnt_stat init_1(); +extern bool_t init_1_svc(); +#define store 2 +extern enum clnt_stat store_1(); +extern bool_t store_1_svc(); +#define getNumMessages 3 +extern enum clnt_stat getnummessages_1(); +extern bool_t getnummessages_1_svc(); +#define getMessage 4 +extern enum clnt_stat getmessage_1(); +extern bool_t getmessage_1_svc(); +extern int store_service_1_freeresult (); +#endif /* K&R C */ + +/* the xdr functions */ + +#if defined(__STDC__) || defined(__cplusplus) +extern bool_t xdr_response (XDR *, response*); +extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); +extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); + +#else /* K&R C */ +extern bool_t xdr_response (); +extern bool_t xdr_store_1_argument (); +extern bool_t xdr_getmessage_1_argument (); + +#endif /* K&R C */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/ssdd_p2_100291121_100292107/rpc_store_service/store_service.x b/ssdd_p2_100291121_100292107/rpc_store_service/store_service.x new file mode 100644 index 0000000..e5a8648 --- /dev/null +++ b/ssdd_p2_100291121_100292107/rpc_store_service/store_service.x @@ -0,0 +1,17 @@ +const MAX_SIZE = 256; +const MAX_MD5 = 33; + +struct response{ + string msg; + string md5; +}; + +program STORE_SERVICE{ + version STORE_VERSION{ + void init() = 1; + int store(string sender, string receiver, + unsigned int msg_id, string msg, string md5) = 2; + int getNumMessages(string user) = 3; + response getMessage(string user, unsigned int msg_id) = 4; + } = 1; +} = 666; \ No newline at end of file diff --git a/ssdd_p2_100291121_100292107/rpc_store_service/store_service_clnt.c b/ssdd_p2_100291121_100292107/rpc_store_service/store_service_clnt.c new file mode 100644 index 0000000..91d8293 --- /dev/null +++ b/ssdd_p2_100291121_100292107/rpc_store_service/store_service_clnt.c @@ -0,0 +1,53 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include /* for memset */ +#include "store_service.h" + +/* Default timeout can be changed using clnt_control() */ +static struct timeval TIMEOUT = { 25, 0 }; + +enum clnt_stat +init_1(void *clnt_res, CLIENT *clnt) +{ + return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, + (xdrproc_t) xdr_void, (caddr_t) clnt_res, + TIMEOUT)); + +} + +enum clnt_stat +store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) +{ + store_1_argument arg; + arg.sender = sender; + arg.receiver = receiver; + arg.msg_id = msg_id; + arg.msg = msg; + arg.md5 = md5; + return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) +{ + return (clnt_call(clnt, getNumMessages, + (xdrproc_t) xdr_wrapstring, (caddr_t) &user, + (xdrproc_t) xdr_int, (caddr_t) clnt_res, + TIMEOUT)); +} + +enum clnt_stat +getmessage_1(char *user, u_int msg_id, response *clnt_res, CLIENT *clnt) +{ + getmessage_1_argument arg; + arg.user = user; + arg.msg_id = msg_id; + return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, + (xdrproc_t) xdr_response, (caddr_t) clnt_res, + TIMEOUT)); +} diff --git a/ssdd_p2_100291121_100292107/rpc_store_service/store_service_svc.c b/ssdd_p2_100291121_100292107/rpc_store_service/store_service_svc.c new file mode 100644 index 0000000..1c97888 --- /dev/null +++ b/ssdd_p2_100291121_100292107/rpc_store_service/store_service_svc.c @@ -0,0 +1,155 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef SIG_PF +#define SIG_PF void(*)(int) +#endif + +int +_init_1 (void *argp, void *result, struct svc_req *rqstp) +{ + return (init_1_svc(result, rqstp)); +} + +int +_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); +} + +int +_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) +{ + return (getnummessages_1_svc(*argp, result, rqstp)); +} + +int +_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) +{ + return (getmessage_1_svc(argp->user, argp->msg_id, result, rqstp)); +} + +static void +store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) +{ + union { + store_1_argument store_1_arg; + char *getnummessages_1_arg; + getmessage_1_argument getmessage_1_arg; + } argument; + union { + int store_1_res; + int getnummessages_1_res; + response getmessage_1_res; + } result; + bool_t retval; + xdrproc_t _xdr_argument, _xdr_result; + bool_t (*local)(char *, void *, struct svc_req *); + + switch (rqstp->rq_proc) { + case NULLPROC: + (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); + return; + + case init: + _xdr_argument = (xdrproc_t) xdr_void; + _xdr_result = (xdrproc_t) xdr_void; + local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; + break; + + case store: + _xdr_argument = (xdrproc_t) xdr_store_1_argument; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; + break; + + case getNumMessages: + _xdr_argument = (xdrproc_t) xdr_wrapstring; + _xdr_result = (xdrproc_t) xdr_int; + local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; + break; + + case getMessage: + _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; + _xdr_result = (xdrproc_t) xdr_response; + local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; + break; + + default: + svcerr_noproc (transp); + return; + } + memset ((char *)&argument, 0, sizeof (argument)); + if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + svcerr_decode (transp); + return; + } + retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); + if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { + svcerr_systemerr (transp); + } + if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { + fprintf (stderr, "%s", "unable to free arguments"); + exit (1); + } + if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) + fprintf (stderr, "%s", "unable to free results"); + + return; +} + +int +main (int argc, char **argv) +{ + register SVCXPRT *transp; + struct sockaddr_in service_addr; /* Struct to store the address of the server */ + + pmap_unset (STORE_SERVICE, STORE_VERSION); + + transp = svcudp_create(RPC_ANYSOCK); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create udp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); + exit(1); + } + + transp = svctcp_create(RPC_ANYSOCK, 0, 0); + if (transp == NULL) { + fprintf (stderr, "%s", "cannot create tcp service."); + exit(1); + } + if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { + fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); + exit(1); + } + /* Get the machine's IP address */ + get_myaddress(&service_addr); + char * ip = inet_ntoa(service_addr.sin_addr); + /* If the address could not be obtained (no network connection), then print error and exit */ + if(strlen(ip) == 0){ + fprintf (stderr, "%s", "cannot get the IP address of the service."); + exit(1); + } + printf("Store service running at: %s\n", ip); + /* Self-invoke the init process when starting the server */ + init_1_svc(NULL, NULL); + svc_run (); + fprintf (stderr, "%s", "svc_run returned"); + exit (1); + /* NOTREACHED */ +} diff --git a/ssdd_p2_100291121_100292107/rpc_store_service/store_service_xdr.c b/ssdd_p2_100291121_100292107/rpc_store_service/store_service_xdr.c new file mode 100644 index 0000000..2f68608 --- /dev/null +++ b/ssdd_p2_100291121_100292107/rpc_store_service/store_service_xdr.c @@ -0,0 +1,44 @@ +/* + * Please do not edit this file. + * It was generated using rpcgen. + */ + +#include "store_service.h" + +bool_t +xdr_response (XDR *xdrs, response *objp) +{ + //register int32_t *buf; + + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) + return FALSE; + if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) + return FALSE; + return TRUE; +} + +bool_t +xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) +{ + if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) + return FALSE; + if (!xdr_u_int (xdrs, &objp->msg_id)) + return FALSE; + return TRUE; +} diff --git a/ssdd_p2_100291121_100292107/server.c b/ssdd_p2_100291121_100292107/server.c new file mode 100644 index 0000000..5219e8c --- /dev/null +++ b/ssdd_p2_100291121_100292107/server.c @@ -0,0 +1,682 @@ +#include /* For addresses in PF_INET */ +#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ +#include +#include /* To use ifreq */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "lists/read_line.h" +#include "lists/user_list.h" +#include "lists/msg_list.h" +#include "server.h" +#include "rpc_store_service/store_service.h" + +/* Handler for interrupts */ +void interruptHandler(int sig){ + printf("[SERVER]: Handling interrupt. Closing server socket...\n"); + /* Close the server socket and exit with the resulting return value. 0 if OK, -1 if error */ + exit(close(s_server)); +} + +int main(int argc, char * argv[]){ + struct sockaddr_in server_addr, client_addr; + int sc; + int val; + int server_port; + + /* Check command */ + if(argc != 5 || strcmp(argv[1],"-p") != 0){ + printf("Usage: ./server -p -s \n"); + exit(-1); + } + + /* Check if the port number passed as parameter is valid */ + server_port = atoi(argv[2]); + if ((server_port < 1024) || (server_port > 65535)) { + printf("Error: Port must be in the range 1024 <= port <= 65535\n"); + exit(-1); + } + + /* Store the IP of the storage service */ + store_service_ip = argv[4]; + + /* Initialize mutexes */ + if(pthread_mutex_init(&socket_mtx, NULL) != 0) { + printf("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + if(pthread_mutex_init(&list_mtx, NULL) != 0) { + printf("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + /* Initialize condition variable for copying the socket descriptor in the thread */ + if(pthread_cond_init(&free_socket, NULL) != 0) { + printf("[SERVER]: Error when initializing the mutex"); + exit(-1); + } + + /* Prepare thread conditions */ + thread = (pthread_t) malloc((sizeof(thread))); + pthread_attr_init(&thread_att); + pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); + + s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ + if(s_server == -1){ + printf("Error when creating the socket"); + exit(-1); + } + + /* Obtain the IP address attached to interface eth0 */ + struct ifreq ifr; + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1); + ioctl(s_server, SIOCGIFADDR, &ifr); + + val = 1; + setsockopt(s_server, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ + + /* Initialize the address that will be attached to the listening socket */ + bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ + server_addr.sin_family = AF_INET; + server_addr.sin_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; /* Listens to IP address in eth0 interface*/ + server_addr.sin_port = htons(server_port); /* Port number */ + + /* Bind the address to the listening socket */ + if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ + printf("Error when binding the address to the socket"); + exit(-1); + } + + /* Set the socket to listen incoming requests */ + if(listen(s_server, 5) == -1){ + printf("Error when listening to the socket"); + exit(-1); + } /* Backlog is 5, maximum number of queued requests is 5 */ + + /* Once the server is listening, print inicial prompt */ + printf("s> init server %s:%d\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), + ntohs(server_addr.sin_port)); + + /* Define the variable for the client address size. It should be declared + as variable because the size depends on the incoming request and is an + output parameter of the 'accept' function */ + socklen_t cl_addr_size = sizeof(client_addr); + + /* Set the control variable to TRUE so that the listening thread waits + until the thread stores a local copy of the socket descriptor */ + busy_socket = TRUE; + + /**********************************/ + /* Initialize the storage service */ + CLIENT *clnt; + /* Create connection with the storage service */ + clnt = clnt_create (store_service_ip, STORE_SERVICE, STORE_VERSION, "tcp"); + /* If error, the service is unavailable. Show error and exit */ + if (clnt == NULL) { + fprintf(stderr, "ERROR, STORAGE SERVICE UNAVAILABLE"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + } + else{ + init_1(NULL, clnt); + clnt_destroy (clnt); + } + /**********************************/ + signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ + fprintf(stderr, "%s", "s> "); /* Prompt */ + + + /* Loop for accepting and creating threads for each incoming request */ + while(1){ + /* Accept client connections. If error, shut down the server */ + sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); + if(sc == -1){ + printf("Error when accepting the connection"); + /* Close listening server socket */ + close(s_server); + exit(-1); + } + /* Once accepted, create a thread to handle the request. If error, shut down the server */ + if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { + printf("[SERVER]: Error when creating the thread"); + /* Close both listening socket and the one resulting from the accept operation */ + close(s_server); + close(sc); + exit(-1); + } + + /* Wait for the thread to copy the socket descriptor locally */ + pthread_mutex_lock(&socket_mtx); + while(busy_socket == TRUE) + pthread_cond_wait(&free_socket, &socket_mtx); + busy_socket = TRUE; + pthread_mutex_unlock(&socket_mtx); + + } + + exit(0); +} + +void * manageRequest(int *sd){ + int s_local; + char operation_buff[MAX_COMMAND]; + char user_buff[MAX_USERNAME]; + char msg_buff[MAX_MSG]; + char md5_buff[MAX_MD5]; + int n; + int m; + char out; + + /* Copy locally the socket descriptor */ + pthread_mutex_lock(&socket_mtx); + s_local = *sd; + busy_socket = FALSE; + pthread_cond_signal(&free_socket); + pthread_mutex_unlock(&socket_mtx); + + /* Read the operation. If error, close the socket and terminate the thread */ + n = readLine(s_local, operation_buff, MAX_COMMAND); + if(n == -1){ + printf("[SERVER_THREAD]: Error when reading from the socket"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Read the username and convert to uppercase. If error, close the socket + and terminate the thread */ + m = readLine(s_local, user_buff, MAX_USERNAME); + if(m == -1){ + printf("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* For convention of the server, convert every username to uppercase */ + toUpperCase(user_buff); + + /* Check the operation */ + if (strcmp(operation_buff, "REGISTER") == 0){ + /* Register the user */ + pthread_mutex_lock(&list_mtx); + out = registerUser(user_buff); + pthread_mutex_unlock(&list_mtx); + + } + else if (strcmp(operation_buff, "UNREGISTER") == 0){ + /* Unregister the user */ + pthread_mutex_lock(&list_mtx); + out = unregisterUser(user_buff); + pthread_mutex_unlock(&list_mtx); + + } + else if(strcmp(operation_buff, "CONNECT") == 0){ + + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + uint16_t client_port; + + n = readLine(s_local, msg_buff, MAX_MSG); + if(n == -1){ + printf("[SERVER_THREAD]: Error when reading from the socket"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Get the port number from the socket */ + client_port = (uint16_t) atoi(msg_buff); + /* Get the client IP address attached to the socket */ + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + printf("[SERVER_THREAD]: Error when getting client address"); + /* Send error 3 to client and close socket */ + out = 3; + } + /* Connect the user to the server if no error */ + if(out != 3){ + pthread_mutex_lock(&list_mtx); + out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); + pthread_mutex_unlock(&list_mtx); + } + + /* If result is 0, then check for the pending messages and send them */ + if(out == 0){ + /* Send code 0 for the client to open the listening thread */ + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + /* Send Pending Messages */ + pthread_mutex_lock(&list_mtx); + struct msg **pend_msg = getPendMsgHead(user_buff); + while(*pend_msg != NULL){ + pthread_mutex_unlock(&list_mtx); + char sender[MAX_USERNAME]; + char msg_body[MAX_MSG]; + + /* Get the name of the sender, the id and the body associated to the message to be sent */ + pthread_mutex_lock(&list_mtx); + strcpy(sender, (*pend_msg)->sender); + int msg_id = (*pend_msg)->id; + strcpy(msg_body, (*pend_msg)->body); + pthread_mutex_unlock(&list_mtx); + + /* Try to send the message. The 'stored' flag is set to 1 because the message + is already stored in the server */ + int err = sendMessage(sender, user_buff, msg_body, md5_buff, msg_id, 1); + + /* If the message could not be delivered/stored, then exit the loop */ + if(err != 0) goto destroy_thread; + + /* Send acknowledge to the sender. No return value is checked */ + sendAck(sender, msg_id); + + /* Remove the message from the pending message queue and iterate with the next message */ + pthread_mutex_lock(&list_mtx); + *pend_msg = dequeueMsg(&(*pend_msg)); + } + pthread_mutex_unlock(&list_mtx); + goto destroy_thread; + } + } + else if(strcmp(operation_buff, "DISCONNECT") == 0){ + /* Get the IP from which the command is being executed */ + struct sockaddr_in client_addr_local; + socklen_t addr_len = sizeof(client_addr_local); + + int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); + if (err == -1){ + printf("Error when getting client address"); + /* Send error 3 to client and close socket */ + out = 3; + goto respond_to_client; + } + /* Try to disconnect the user passing the IP from which the request is being made + as parameter to the function */ + pthread_mutex_lock(&list_mtx); + out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); + pthread_mutex_unlock(&list_mtx); + + } + else if(strcmp(operation_buff, "SEND") == 0){ + /* Reserve a buffer for the username of the receiver */ + char dest_user_buff[MAX_USERNAME]; + + /* Read the destination user from the socket */ + m = readLine(s_local, dest_user_buff, MAX_USERNAME); + if(m == -1){ + printf("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Convert username to uppercase by convention */ + toUpperCase(dest_user_buff); + + /* Read the message from the socket */ + n = readLine(s_local, msg_buff, MAX_MSG); + if(n == -1){ + printf("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* Read the MD5 hash from the socket */ + m = readLine(s_local, md5_buff, MAX_MD5); + if(m == -1){ + printf("[SERVER_THREAD]: Error when reading from the socket\n"); + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* Check if one of the two users is not registered */ + pthread_mutex_lock(&list_mtx); + if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ + pthread_mutex_unlock(&list_mtx); + /* Send code 1 to the client and close the socket */ + out = 1; + goto respond_to_client; + } + pthread_mutex_unlock(&list_mtx); + + /* Check the status of the destination user */ + pthread_mutex_lock(&list_mtx); + char status = isConnected(dest_user_buff); + unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message + pthread_mutex_unlock(&list_mtx); + + if(status == 0){ //Not connected + /* Store the message */ + if (storeMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id) != 0){ + /* Message could not be stored so send code 2 to the client and close the socket */ + out = 2; + goto respond_to_client; + } + /* Message was stored successfully, send code 0 and message ID to the client */ + out = 0; + ///////////////////////////////////////////// + /* Store the message in the storage server */ + storeMessage_svc(user_buff, dest_user_buff, last_id, msg_buff, md5_buff); + + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + }else if(status == 1){ //Connected + /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message + is being sent for the first time and was not previously stored int he server */ + int err = sendMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id, 0); + /* If while trying to store the message, the user unregisters, value 1 will be returned */ + if(err == 1){ + out = 1; + goto respond_to_client; + }else if(err == -1){ + /* If any server error occurred and the message was not stored or sent, then send code 2 + back to the client */ + out = 2; + goto respond_to_client; + } + + /* If no server error occured, then the message was either sent or stored, so we send back + the code 0 (OK) to the client */ + out = 0; + ///////////////////////////////////////////// + /* Store the message in the storage server */ + storeMessage_svc(user_buff, dest_user_buff, last_id, msg_buff, md5_buff); + + if ((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + /* Send string with the message ID back to the sender */ + char id_string[11]; + sprintf(id_string, "%d", last_id); + if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + /* At this point, the message is assumed to */ + sendAck(user_buff, last_id); + } + /* The response to the client is handled within this else-if statement, so the + 'respond_to_client' label is skipped and proceed to close the socket */ + goto destroy_thread; + } + + /* Default print template */ + switch(out){ + case 0: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + break; + default: + fprintf(stderr, "%s %s %s", operation_buff, user_buff, "FAIL"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + } + + /* Label to jump previous code to respond the client and skip the default print right above, + in case other commands (as SEND) do not use a template print */ + respond_to_client: + if((send_msg(s_local, &out, sizeof(out))) == -1){ + /* If error when sending the message, close the socket and exit */ + if(close(s_local) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + pthread_exit((void *)-1); //Terminate thread with -1 return value + } + + destroy_thread: + if(close(s_local) == -1){ + printf("[SERVER_THREAD]: Error when closing the socket in the thread"); + exit(-1); + } + pthread_exit(NULL); +} + +/* Capitalizes the input string. String is both an input and output parameter */ +void toUpperCase(char * string){ + /* Convert to uppercase */ + int i; + for(i = 0; string[i]; i++){ + string[i] = toupper(string[i]); + } +} + +/* Return 0: Message is stored OK + Return -1: Server error (Memory space error) */ +int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id){ + /* Store the message to the receiver pending list */ + pthread_mutex_lock(&list_mtx); + int err = storeMsg(receiver, msg, msg_id, md5, sender); + pthread_mutex_unlock(&list_mtx); + + /* Error when trying to store the message */ + if(err == -1) return -1; + + fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + /* Return store OK */ + return 0; +} + +/* Return 0: Message is sent OK + Return 1: User did not exist when trying to store/send the message. Message not stored + Return 2: Message is stored, or not stored if was already stored + Return -1: Server error */ +int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored){ + int s_receiver; //Socket for the receiver of the message + struct sockaddr_in recv_addr; //Receiver address + struct hostent *recv_hp; //Host entity structure for the receiver + + s_receiver = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_receiver == -1){ + return -1; //Send error message. -1 is internally encoded as server error + } + + bzero((char *) &recv_addr, sizeof(recv_addr)); //Reserve space for the address of the receiver + + pthread_mutex_lock(&list_mtx); + recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver + pthread_mutex_unlock(&list_mtx); + /* If error when getting the host, return -1 */ + if(recv_hp == NULL) return -1; + + memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format + recv_addr.sin_family = AF_INET; + pthread_mutex_lock(&list_mtx); + recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread + pthread_mutex_unlock(&list_mtx); + + /* Try to connect to the listening thread of the receiver to send the message */ + if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ + /* If the connection with the receiver fails, assume the client + to be disconnected, disconnect it and store the message */ + pthread_mutex_lock(&list_mtx); + /* As we are internally disconnecting the user from the server, we need to bypass the + IP check, so we pass the IP of the receiver as parameter to always fulfill the condition */ + char reg = disconnectUser(receiver, getUserIP(receiver)); // No need to check for output + pthread_mutex_unlock(&list_mtx); + /* If the disconnect method returns 1, it means that the user was not found so is not + registered (it unregister while trying to store the message, so we return 1 */ + if(reg == 1){ + return 1; + } + /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the + server so we need to push it to the end of the queue. If it was stored, then nothing is done */ + if(!stored){ + if(storeMessage(sender, receiver, msg, md5, msg_id) == -1) return -1; //Return -1 if store error + } + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + /* Return 2 to indicate the message is stored but not sent */ + return 2; + } + /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ + char op[13]; + strcpy(op, "SEND_MESSAGE"); + send_msg(s_receiver, op, strlen(op)+1); + /* Send the sender name */ + send_msg(s_receiver, sender, strlen(sender)+1); + /* Send the identifier of the message */ + char id_string[11]; + sprintf(id_string, "%d", msg_id); + send_msg(s_receiver, id_string, strlen(id_string)+1); + /* Send the MD5 of the message */ + send_msg(s_receiver, md5, strlen(md5)+1); + /* Send the message */ + send_msg(s_receiver, msg, strlen(msg)+1); + + if(close(s_receiver) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + + fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, + sender, receiver); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + + return 0; +} + +/* Tries to send acknowledge to the sender. No return value */ +void sendAck(char * sender, unsigned int msg_id){ + int s_sender; //Socket for the receiver of the message + struct sockaddr_in sender_addr; //Sender address + struct hostent *sender_hp; //Host entity structure for the sender + + s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(s_sender == -1){ + /* If error when allocating resources for the socket, then exit */ + return; + } + + char ack_op[14]; + strcpy(ack_op, "SEND_MESS_ACK"); + + bzero((char *) &sender_addr, sizeof(sender_addr)); + + pthread_mutex_lock(&list_mtx); + sender_hp = gethostbyname(getUserIP(sender)); + pthread_mutex_unlock(&list_mtx); + /* If any error when getting the hoset, exit the function */ + if(sender_hp == NULL) return; + + memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); + sender_addr.sin_family = AF_INET; + + pthread_mutex_lock(&list_mtx); + sender_addr.sin_port = htons(getUserPort(sender)); + pthread_mutex_unlock(&list_mtx); + + if((connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr))) == -1){ + /* If error when connecting, exit the function */ + return; + } + + + char id_string[11]; + sprintf(id_string, "%d", msg_id); + if((send_msg(s_sender, ack_op, strlen(ack_op)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + if((send_msg(s_sender, id_string, strlen(id_string)+1)) == -1){ + /* If error when sending the ACK, close the socket and exit the function */ + if(close(s_sender) == -1){ + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; + } + + if(close(s_sender) == -1){ //Close the socket + /* If there is an error when closing the socket, shut down the server */ + interruptHandler(SIGINT); + } + return; +} +/* Connects to the storage service (if available) and stores the message with the corresponding information +passed as parameters */ +void storeMessage_svc(char * sender, char * receiver, unsigned int id, char * msg, char * md5){ + CLIENT *clnt; + /* Create connection with the storage service */ + clnt = clnt_create (store_service_ip, STORE_SERVICE, STORE_VERSION, "tcp"); + /* If error, the service is unavailable. Show error and exit */ + if (clnt == NULL) { + fprintf(stderr, "ERROR, STORAGE SERVICE UNAVAILABLE"); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + return; + } + int result; + /* Call the storage service */ + store_1(sender, receiver, id, msg, md5, &result, clnt); + /* Check for internal server error in the process */ + if(result == -1) fprintf(stderr, "ERROR IN THE STORAGE SERVICE"); + /* If everything went OK, prompt a message in the console */ + else fprintf(stderr, "MESSAGE %d STORED OK IN STORAGE SERVICE", id); + fprintf(stderr, "\n%s", "s> "); /* Prompt */ + /* Destroy the client and return */ + clnt_destroy (clnt); + return; +} \ No newline at end of file diff --git a/ssdd_p2_100291121_100292107/server.h b/ssdd_p2_100291121_100292107/server.h new file mode 100644 index 0000000..4fa1935 --- /dev/null +++ b/ssdd_p2_100291121_100292107/server.h @@ -0,0 +1,30 @@ +#define MAX_COMMAND 11 + +/* Mutex & Threads */ +pthread_mutex_t socket_mtx; +pthread_mutex_t list_mtx; +pthread_t thread; +pthread_attr_t thread_att; +/* Controls the access to the socket generated by the connection 'accept' */ +pthread_cond_t free_socket; +pthread_cond_t free_list; + +/* Variable that controls the state of the socket created by the connection 'accept' */ +int busy_socket; + +/* Declare the server socket as global variable */ +int s_server; + +/* Declare the list of users */ +struct user *users; + +char * store_service_ip; /* Variable for the IP of the message storage service server */ + +/* ================FUNCTION HEADERS================ */ +void interruptHandler(int sig); +void * manageRequest(int *sd); +void toUpperCase(char * string); +int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored); +void sendAck(char * sender, unsigned int msg_id); +int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int mgs_id); +void storeMessage_svc(char * sender, char * receiver, unsigned int id, char * msg, char * md5); \ No newline at end of file diff --git a/ssdd_p2_100291121_100292107/store_service_server.c b/ssdd_p2_100291121_100292107/store_service_server.c new file mode 100644 index 0000000..0ad2058 --- /dev/null +++ b/ssdd_p2_100291121_100292107/store_service_server.c @@ -0,0 +1,197 @@ + +#include "rpc_store_service/store_service.h" + +/* Define the structure of the message list nodes */ +struct msg{ + char body[MAX_SIZE]; /* Content of the message */ + char md5[MAX_MD5]; /* MD5 of the message */ + char sender[MAX_SIZE]; /* Sender of the message */ + char receiver[MAX_SIZE]; /* Receiver of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; +/* Define the structure of the user list nodes */ +struct user{ + char name[MAX_SIZE]; /* Name of the user */ + unsigned long num_msgs; /* Number of sent (stored) messages for the user */ + struct user *next; /* Pointer to the next user in the list */ + struct msg *sent_msgs_head; /* Pointer to the head of the messages sent by the user */ +}; + +/* ========================================================== */ +/* ======================== HEADERS ========================= */ +/* ========================================================== */ + +struct user * usr_head; + +int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); + +/* Initializes the user list in the server. If there is an existing user list in memory, this is +traversed and all the nodes in the list (including both messages and users) will be freed from +memory. + Returns always TRUE. No internal error can happen */ +bool_t +init_1_svc(void *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + /* If the list of users is not empty, traverse the list and free each node */ + if(usr_head != NULL){ + struct user *prev = usr_head; + /* While the list is greater than 1, advance in the list and eliminate the first node of the list */ + while(usr_head->next != NULL){ + /* If the list of messages associated to the user is not empty, traverse it and free the memory */ + if(usr_head->sent_msgs_head != NULL){ + struct msg *prev_msg = usr_head->sent_msgs_head; + /* While the list is greater than 1, advance in the list and eliminate the first node */ + while(usr_head->sent_msgs_head->next != NULL){ + usr_head->sent_msgs_head = usr_head->sent_msgs_head->next; + free(prev_msg); + prev_msg = usr_head->sent_msgs_head; + } + /* Free the resources of the last element in the list */ + free(prev_msg); + } + usr_head = usr_head->next; + free(prev); + prev = usr_head; + } + /* Free the resources of the last element in the list */ + free(prev); + } + /* Initialize the list of users to NULL */ + usr_head = NULL; + + return retval; +} + +/* Stores the message and the associated information (receiver, ID, MD5) into the list of messages sent by +the input user passed in the 'sender'. + Returns TRUE no errors + Returns FALSE if there is a malloc error (memory full) */ +bool_t +store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + /* Iterate through the list of users that sent at least one message */ + while(temp != NULL){ + if(strcmp(temp->name, sender) == 0){ //User found in the list + /* Append the message to the list of sent messages by that user */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + /* If -1 is returned, the memory is full and message could not be stored. Return FALSE */ + if(*result == -1) return FALSE; + /* Update the message counter */ + temp->num_msgs = temp->num_msgs + 1; + return retval; + } + temp = temp->next; + } + /* If the code reaches this point, no user was found, so add it to the list and set + the message counter to 1 */ + temp = (struct user *) malloc(sizeof(struct user)); + /* If malloc returns error (full memory or other). Return FALSE */ + if(temp == NULL) return FALSE; + strcpy(temp->name, sender); + temp->next = NULL; + temp->sent_msgs_head = NULL; + /* Add message to the list of messages that the user sent */ + *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); + /* If -1 is returned, the memory is full and message could not be stored. Return FALSE */ + if(*result == -1) return FALSE; + temp->num_msgs = 1; /* Set the sent-message counter to 1 */ + + temp->next = usr_head; + usr_head = temp; + + return retval; +} + +/* Gets the number of messages sent by the input user. + Returns always TRUE. No internal error can happen */ +bool_t +getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + struct user *temp = usr_head; + *result = 0; + /* Traverse the list of users until the input username is found */ + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Return the number of stored messages for that user */ + *result = temp->num_msgs; + return retval; + } + temp = temp->next; + } + *result = -1; //User was not found + + return retval; +} + +/* Gets the message corresponding to the ID and username of the sender of such message. +If the message or the user is not found, then an empty string will be sent back. + Returns always TRUE. No internal error can happen */ +bool_t +getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) +{ + bool_t retval = TRUE; + + /* Initialize to zeroes the message and MD5 strings of the response struct */ + result->msg = calloc(MAX_SIZE, sizeof(char)); + result->md5 = calloc(MAX_MD5, sizeof(char)); + + struct user *temp = usr_head; + struct msg *msg_temp; + + /* Traverse the list of users looking for the input username */ + while(temp != NULL){ + if(strcmp(temp->name, user) == 0){ //Sender is found in the list + /* Search for the message with that ID */ + msg_temp = temp->sent_msgs_head; + /* Iterate through the list of sent messages */ + while(msg_temp != NULL){ + if(msg_temp->id == msg_id){ //Message ID found + strncpy(result->msg, msg_temp->body, strlen(msg_temp->body)+1); + strncpy(result->md5, msg_temp->md5, strlen(msg_temp->md5)+1); + return retval; + } + msg_temp = msg_temp->next; + } + /* At this point, no message with such ID was found for that user. Stop iterating */ + return retval; + } + temp = temp->next; + } + /* User was not found, thus message does not exist */ + + return retval; +} + +int +store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) +{ + xdr_free (xdr_result, result); + + return 1; +} + +/* Creates a new message struct and adds it to the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->md5, md5); + strcpy(temp->receiver, receiver); + temp->id = id; + temp->next = *head; //If msg_head is null, then the list is empty + *head = temp; + + return 0; +} From 17dd27f14905e530d1c5bc54e46a455ee3e2c327 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Sun, 7 May 2017 19:14:24 +0200 Subject: [PATCH 16/17] CGP: Safe commit before submission --- lab2_pruebas/Makefile | 2 +- lab2_pruebas/ServerThread.class | Bin 2670 -> 0 bytes lab2_pruebas/client$1.class | Bin 521 -> 0 bytes lab2_pruebas/client$RC.class | Bin 884 -> 0 bytes lab2_pruebas/client.class | Bin 8281 -> 0 bytes lab2_pruebas/gnu/getopt/Getopt.class | Bin 7366 -> 0 bytes lab2_pruebas/gnu/getopt/LongOpt.class | Bin 1658 -> 0 bytes lab2_pruebas/lists/msg_list.o | Bin 5064 -> 0 bytes lab2_pruebas/lists/read_line.o | Bin 4808 -> 0 bytes lab2_pruebas/lists/user_list.o | Bin 10040 -> 0 bytes lab2_pruebas/md5/client/Exception.class | Bin 655 -> 0 bytes .../md5/client/Exception_Exception.class | Bin 761 -> 0 bytes lab2_pruebas/md5/client/MD5.class | Bin 1108 -> 0 bytes lab2_pruebas/md5/client/MD5ImplService.class | Bin 2233 -> 0 bytes lab2_pruebas/md5/client/ObjectFactory.class | Bin 1096 -> 0 bytes lab2_pruebas/md5/client/package-info.class | Bin 237 -> 0 bytes .../md5/server/endpoint/MD5Publisher.class | Bin 1205 -> 0 bytes lab2_pruebas/md5/server/ws/MD5.class | Bin 510 -> 0 bytes lab2_pruebas/md5/server/ws/MD5Impl.class | Bin 1153 -> 0 bytes lab2_pruebas/md5_client/Exception.class | Bin 655 -> 0 bytes .../md5_client/Exception_Exception.class | Bin 754 -> 0 bytes lab2_pruebas/md5_client/MD5.class | Bin 1080 -> 0 bytes lab2_pruebas/md5_client/MD5ImplService.class | Bin 2226 -> 0 bytes lab2_pruebas/md5_client/ObjectFactory.class | Bin 1089 -> 0 bytes lab2_pruebas/monitor | Bin 24304 -> 0 bytes lab2_pruebas/monitor.o | Bin 11720 -> 0 bytes .../rpc_store_service/store_service_clnt.o | Bin 12728 -> 0 bytes .../rpc_store_service/store_service_svc.o | Bin 21256 -> 0 bytes .../rpc_store_service/store_service_xdr.o | Bin 7208 -> 0 bytes lab2_pruebas/server | Bin 51160 -> 0 bytes lab2_pruebas/server.o | Bin 43048 -> 0 bytes lab2_pruebas/store_service_server | Bin 33424 -> 0 bytes lab2_pruebas/store_service_server.o | Bin 16480 -> 0 bytes ssdd_p2_100291121_100292107.zip | Bin 0 -> 92257 bytes ssdd_p2_100291121_100292107/README.txt | 47 +++++ ssdd_p2_100291121_100292107/monitor.c | 3 +- ssdd_p2_100291121_100292107/report.pdf | Bin 0 -> 981854 bytes .../rpc_store_service/segurodevida.c | 182 ------------------ ssdd_p2_100291121_100292107/server.c | 7 +- 39 files changed, 54 insertions(+), 187 deletions(-) delete mode 100644 lab2_pruebas/ServerThread.class delete mode 100644 lab2_pruebas/client$1.class delete mode 100644 lab2_pruebas/client$RC.class delete mode 100644 lab2_pruebas/client.class delete mode 100644 lab2_pruebas/gnu/getopt/Getopt.class delete mode 100644 lab2_pruebas/gnu/getopt/LongOpt.class delete mode 100644 lab2_pruebas/lists/msg_list.o delete mode 100644 lab2_pruebas/lists/read_line.o delete mode 100644 lab2_pruebas/lists/user_list.o delete mode 100644 lab2_pruebas/md5/client/Exception.class delete mode 100644 lab2_pruebas/md5/client/Exception_Exception.class delete mode 100644 lab2_pruebas/md5/client/MD5.class delete mode 100644 lab2_pruebas/md5/client/MD5ImplService.class delete mode 100644 lab2_pruebas/md5/client/ObjectFactory.class delete mode 100644 lab2_pruebas/md5/client/package-info.class delete mode 100644 lab2_pruebas/md5/server/endpoint/MD5Publisher.class delete mode 100644 lab2_pruebas/md5/server/ws/MD5.class delete mode 100644 lab2_pruebas/md5/server/ws/MD5Impl.class delete mode 100644 lab2_pruebas/md5_client/Exception.class delete mode 100644 lab2_pruebas/md5_client/Exception_Exception.class delete mode 100644 lab2_pruebas/md5_client/MD5.class delete mode 100644 lab2_pruebas/md5_client/MD5ImplService.class delete mode 100644 lab2_pruebas/md5_client/ObjectFactory.class delete mode 100755 lab2_pruebas/monitor delete mode 100644 lab2_pruebas/monitor.o delete mode 100644 lab2_pruebas/rpc_store_service/store_service_clnt.o delete mode 100644 lab2_pruebas/rpc_store_service/store_service_svc.o delete mode 100644 lab2_pruebas/rpc_store_service/store_service_xdr.o delete mode 100755 lab2_pruebas/server delete mode 100644 lab2_pruebas/server.o delete mode 100755 lab2_pruebas/store_service_server delete mode 100644 lab2_pruebas/store_service_server.o create mode 100644 ssdd_p2_100291121_100292107.zip create mode 100644 ssdd_p2_100291121_100292107/README.txt create mode 100644 ssdd_p2_100291121_100292107/report.pdf delete mode 100644 ssdd_p2_100291121_100292107/rpc_store_service/segurodevida.c diff --git a/lab2_pruebas/Makefile b/lab2_pruebas/Makefile index 023af6b..86daa8a 100644 --- a/lab2_pruebas/Makefile +++ b/lab2_pruebas/Makefile @@ -50,5 +50,5 @@ $(MD5_WS) : javac -cp . $(MD5_WS).java clean: - $(RM) core $(SERVER) $(MONITOR) $(RPC_SERVER) *.o ./*/*.o *.class ./*/*.class ./*/*/*.class + $(RM) core $(SERVER) $(MONITOR) $(RPC_SERVER) *.o ./*/*.o *.class ./*/*.class ./*/*/*.class ./*/*/*/*.class diff --git a/lab2_pruebas/ServerThread.class b/lab2_pruebas/ServerThread.class deleted file mode 100644 index 4cacd8ea243584500b372646787473b7fb97fb88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2670 zcmaJ>X>3$g7(Mr!>AW}7*KMH7)FM+C>_RD6sL}#T7fPiIFjy%r_&R;ILx-6%^M*wh zS7g;FCPYXy#1I>oM5{6o>IMo%;+mMa5m)@BiN-{uNddn*OFIJ%lX>^v_wM=5J>PcE zTsZy?fEqmE0HIMqlboCFsKg?o6$P@Gq7-qeI(&P6928@t^ zGmi1=fxhY${UJl|gx(GgkOV}w@d zJ%0X@5jORZDNtONLXs*WWwcU@&4brJ=9Y@CY82O1GzZ5I;}DW7r|7cWT&$-2$4Y zxua=yd$Y&0u%%hU9_*FzOMY9uuyKiin%H&=*xZYjcee9F)bV5Iyx7~D=J48TXB&>Q zcLB?P99t7C?r~F#yOX)%@rlKB%wr8V%g|}@l8V<1`XXrr|q#))-#%ig?uw#wi3Qmt9WGjANCPqLBM)Q0nyu*oBD{ax}8Mkx+;$HyO8d z`mqko9}ike+sFubWtsB%Nm=88WmVaIhM7`aGA#-9vc|`&j-f>fftPH^jH&V(XxL(GECiCn{+-X3`$a z<$V>F>;?sOF1D;s3b1^`0y5d|sbhRyOJ+qnQuzX{s^En!ib?!w1e3et%JPq*pnU{| zEUTzvdK9i&YrgdWiV{kzSZKa=UlheGwIknp@Z$Fga9u`KosDW07gJvKGRxtgR7EF> zf850LbUpX4nLL-cY|fG>rW`mQ;Z^faUP zqlBK}Vn2u)dKPo(Ie6$0R?_p(=`h}-A$&wH;xl>)ztJoBlU~I?^qO$euqdQAgqx0t zX%rO=bWF6+aj}%%5?%DR2+_M@1Dz0u=%hGK?~9Z4fjCR2#5p=Gey0z`AM~;Kn?9jD z`jiUjbDBe6(0uxmHGfAf^c5|puSutG$>8^X`hk5oMjSafv& diff --git a/lab2_pruebas/client$1.class b/lab2_pruebas/client$1.class deleted file mode 100644 index 8d999ae051b84c5c675df036a81c65a965402a3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmZXRPfx-?5XIlNg<>gxM1qPUYB+!gsqx?eV@!x9Cg1^x9z2+(-9WW$OxxRSQ# zhprrTMKtyu9a|>0Q8tl;ZejTKN~*^y)+vQk)o63xz_ ze8HeNgL)rpl({Agl}e7JGDJpkkftvxScZZ*hcd`g*63dIC{a})p+*_xWRJSl%knSy C++@rE diff --git a/lab2_pruebas/client$RC.class b/lab2_pruebas/client$RC.class deleted file mode 100644 index 7cd9a7cb4fe42628f2a5ea8c81c0b01655d01d24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmZuvVNcpn6g`g?TG|2%j7`+BDVu%;eJO&miwxLU4}^Kn2gzEFphlR37Vcg8aX2dz1{a*#~&BXW{n}*GR=<3pq*GP z^L!R4#nZ#~Nz0?fTA#$z{(8KH5ExGKwhad}b(= z+86efUG;2#P_@Q^>kn$>#rAdAcgF_|x&J_q%BKu*%N_XkcoI-&sl+pCoz@Af*5~@S z{K;i~uK5A&s#(KH(0AUuoR=P|u)`@Cc*OP18F+)Y3ifEuokj*$@y@_Hp3Y1PX#*K< zvPhE>_dD^Kq-ft8`ZOS0D$nuh^e&wKm`KFJ&J6qWJBr(>&EfC#S!`cx?9vS<>3PVF z6%ZAGJh2g;2mwoZz70npj>mWch82o7$n#H|f_+2e7Sb1r81iIe;%u4lt5}=iHxUt8 zJp;M&9no9J4+|n(7XtDD1xWM*N@aWP2C=UXx)&%D!853MPBvua5KI0Y{)F63E7A?r zYs5vM$s*82U_?cbi2Wj*G^KaYm8a0HZgh%-bq#huE-hN7ksw*}bVplQCSKw24QvV$ PMaq#BL_$UhOO5INXEc`!;puM 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 vj+XY@i(6kHhnQ(BaM(HYFp diff --git a/lab2_pruebas/gnu/getopt/Getopt.class b/lab2_pruebas/gnu/getopt/Getopt.class deleted file mode 100644 index d3c9ed475743f58df3f0aa073afb31edc0418c30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7366 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 YayaWh1iBcQHE}rWOM-qxl|uOVf83LL4FCWD diff --git a/lab2_pruebas/lists/msg_list.o b/lab2_pruebas/lists/msg_list.o deleted file mode 100644 index 8e6708f4929b17bdd6e044e9529ee008451d4f58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5064 zcmbVPYitx%6uvXtZKqvYT8at*WihBg?CuuY%0sYF3eyCQfiz&Ef!W>L-3|Mw^FT`E zVd^8B#-#lr#)PQ+^AG;Uppi%-B{BR0C2EWYB@m3kL=zH7@SJQuaje^JbcJ+d^L+Jf!27aKuYFEFt zt3T9fpfu3TYMQCh%hl->((8_W;rL2mk-+qZJ;m&I&IQXP-wDGVyE=^)5*Y=t^VUXX zS{=T9Yd#3K?I{rkN(XjMgiyap868EOGnne)d0L6MSP4pu^A^*bOIW26YBRy7Sx!AB?ePUO$0VeFp5K@ zDOxD|%(R3=eodAOD$|gLb*gB|%dwPcHeCh_sgEMdWb9_a8&)aX&&-zJQDItzEIhUX zyMhX7{RaftoK{SOMr|A(_oa+FA;(#h^&SW@_%S242M3}ynyYbg8aS~OMhsbVW-m!a zFg0ghZpTWDn3U{xD8-0jDdxgbL|I+k>F84FrE zAA^cluvly}K(M34!qzv<2Xv&Hv1qpuv0~8;v5heU#O8Ju=|EwmdmYT6B_zTzut2m( z3u3EbjC7+{+j2J2odo+>!gyh^4Dih2k#4MEaM6jai_vIav=-W2#8^9s6br?UzB=vv z7))gWoSe>Z#9BO9muKMz2OmhBWWnJheAsIsFo)r1GF(x^xZBYVPto;YBaC9f^F7Ak z{O&_Gk--jFlk&13w#sDSA89kJQ&*YUWHkHDpIAw2#+tc!{j9b8yVJ>Q|6YG(?b*+* zC%+8VoSjTsd%jw3nvknlDd*zif$x+^n5<>Uu%hGnEGT=0T$yL%Xj0;y=j1r^d1;*G zxszqde5J&bxxgA3;ym2SPliQ$Pw~!8ep6&4_Jh1kXMJK&x-?$s_wBs>eem&p; ze-YkIk-jd;Tvc^&mKV9tw-k%u<*`iOap!6ilE=$g?y__xJ0YWD#XDXajSuzq#`_a} ziBx<|s&^nYkXj$_DfvN}Z_4p9cMBO19XFHTbZFf`&p=rtgB}r z5K`~a-ho7_FVVM3s~7fH&_WuG!@HPqsMA<7uf@XGY$@RQLlV7aOGoFs=1_ZcBx-<( z&^<5J@FfLO`U%uZ-&aX5-fE>kDD|XzV1U%n!!I`Ckw)f#%Fl(aj4;va zbr|eL3vYnezk13b!rByDH%4SXuES7>Fwy-Q;I&>`r;D)mIvEA*iwi>QpuPjp0cA5q zqYym-ylAo^4B4mPhjEm@>e(s48`)z+L3k^tFx){3^mRPWaT}z96aiZ%dIqN29{e zk*xMp;cIE0!_JM|baufrz!7GgyVqmRX_Mkvsdx&X}F57-YHzq za5q-HN5!YKY%4K39w!`Y!Jnc*Vic~{VZVl}`dPx8DEUqrM&FfVUU4ojItd@Yw27?a zJ1mj*JeCk>mZyW9ora)~OxWDd%{-OR-Sq$_4VUM5a*1%ymkfs(<()4z9R{YW-EDL1Of4C2gNFV@rU;uj*h8k<6#q41uQQ z0N)CkNA)nc`U-lQ@CeCjIIkxng%0C&7-K%H{{Z;vF)@|O9}6F%2DbQqH=2J64>Hhx zDh%h3=USitR=^tNzeIkwKp!UEb`+F4hW1}zQ9$ZDA*BaxUj{{^`lsotq5QFatX;3a z09d2^H!1&7(1%I4&4RK~{&SRHofFKDORDF`?+C_Jbpk6WM@=Nq5-L%R$HBUh|IhS7 z^viIyr}9%{mHcZ4#B?>jIzF&gACtd!%-ACGKcod#^H=akz%*LFtF(SL8RGikeM$MN zb;Wy%{_dbloGvV%p%5Z9Zv~;O*N(brs(+Ro;E%Alz3Ta~O*G2Cm-@#L1`Cm%|3B{B BURnSE diff --git a/lab2_pruebas/lists/read_line.o b/lab2_pruebas/lists/read_line.o deleted file mode 100644 index d2e48826b2bbebf7b138ffa47e9f8c0d43cadda2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4808 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 N8sq&To?&@=?l;DtHCO-u diff --git a/lab2_pruebas/md5/client/MD5ImplService.class b/lab2_pruebas/md5/client/MD5ImplService.class deleted file mode 100644 index 9a70699d12f7e2b74f4d10da6d7ea3d700ccf07a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2233 zcmb7FT~iuo6nBtNH3qS`mxMr zMZzl|UiuK1aSy8!Uh`_2%^G`V*sS|7FX3w+QZl;nM#6@KZ)8NUDM6Kx6?mLoo7>3l zsJYDE{zf`;bdXz9kJRn-YJOvTOCY3v&^~I4soTo8dumExpv6D)Hl5k2`Hncg7s^Gc zsGM8MfqtCRs~?Smp1COK727DAgumZ{-`!fxW&|EJU`?&0TNSOKE4y3tN}$dq!!+z= zfsW|pzJNDfKG6lbRm0S`&PvC6HLo2PX=N<>t|3lS4ePpQpH=k~<9nmcUGZA7W$jLZ zrdmJ^$y=M?9ND|O-zk0QRJWPVQl+?4uG#|O=%iXYnNtcyLpN=O_K3WPduOI?l=OYW zGKi&B(=6K>Ps0)zY^b9b>(cW@O@URxbyTaQ71fk(l7~^Sg9E{0vVndE$8Ix&-&SzMT2 zm}dQx`wII8@f?XD9^r8iPcX)2oTkF1*3L?cRM>$}Uh^P>*v1Z<-5?%fFo*{jpkf*c zWZ<5_)B0LgD}Gn5mh=-ky7e zhnu%V!Xb_I9gT>!B4na|x-N$msD&0k`nfLKe>q zR85pkELt#7GhiF2GfW+Bo_YL4iM~ACX|Hc@GL&1#?x}m`oCUrk-GE0YuE(97HccB0 z`KFLUtuaj0>^+9;M*oO2OtysN?LpAx;U~B2>xdU}SMijcVXkJkf}=N%=L;^ClV*tY zb?y3$JtCzmStZb zzH+ro5kq}km78Xr{lLG}_nv#c)|gtzF#B1lledoZC0dPmc*?_7?FX5tF$7I5VKAFy zQ)0BW+aH7;-xAu^(#P&G_tci_seX9As!xicdb6Mo?}j!dI(i0(NB6viw43=V2 I9jyR=0sDOrY5)KL diff --git a/lab2_pruebas/md5/client/package-info.class b/lab2_pruebas/md5/client/package-info.class deleted file mode 100644 index fd877c6bf2b93d9163f496bbb9b7ef130fb22617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmYjMJx@YG5S+u0C(vjCh95xb+k)6=WkY3RA_=kGcdT%5w~xF#kl#k(5Aa7B?@N)IxhxyTecfs%7fF-x?J;~4My)fO)kjXMOS%w zQLPgvS8FsFzqU6AIs{LZ(*^NarH|leb|rzI4Z6xfVt$@I2CI~|Pefm_jMD6-DZ}EC u4DMU9-iapqAH(3bH6hQsq_=70tXyXl5jTHT@j*%e diff --git a/lab2_pruebas/md5/server/endpoint/MD5Publisher.class b/lab2_pruebas/md5/server/endpoint/MD5Publisher.class deleted file mode 100644 index 151165be986df8056f7136e9dde19c9bb1339773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmZuwT~pIg5IwgAZYhC6p@vcvXV31Q-TeM@{R_YX-i6T%HH1-)u`q&AUoF1&&3IC5E;Y!!o=zhG2Z^BSXuUofiy|v|)+& zr9xJ?hkDi|OG`mFEQbF0m-LB#s%xfh9cdZQHLRng4D8H!dhXl4?o{v`FF9UO84Tf! zU2=0`*N`kd``b$grL1WbkA*uYi4^o9#=ws~&q-(+!-N0nH%o?@7p{V3yyi$KNMeO! zRlyq86}-VZL+@?O&UsEao?%-Y8wxhD#V}U4sb|N+Qjdh^QQ2zhK-KekR}_nL9NP+Z zu*;w%mgkq}wX>pD$df$d)oLZ4YFCTGJvDMd)jd^MdB-*^FQGET2&_q;aAhbVQw7K5 zc&lI!DF(H{UyGBdx)u!Gw>^Bwo`{@BZ8g#Q4$#-1hNwFZ(K5`&n@s1Psj6s_>aHZU zgr}wGSlsaCAQecXw4KwLd(VtJ!*W?~i5~GOHPb!}PNFl`N?5D3GdNX>rPG5pu(1o_0&bEp% zgmw(zA>AePnttOTz4d4yeS_fVOSH_C(RzipGB{nz2&I2O+5d@fw4)5A0Tb=4`pH){ zN4v-*<0*{5GdGA3WA_z$K3!14AOwH=Cg=uqkhPQSJ>-dC1l^dVu9DQ(A$9bX cdU`~tUIhLUAiy!m@feI_C`5$A;lxFJB_0$Haw?rsh z&pn<*D$vG4l~C_Zb)?38uZ-&Z+|oLT+$2n>CI)kR^knP@?zcI53~7@9>il3vL<@=*}}F!Cx(RLt=1e~`mQl- z2nYWd93~}VlkRmd3FYyiVH;`9p)GSK+bJz~)9H`ciwKpa^tllWJB0l>uz2&&Q5T&E zyML$T2!xb;5gLeMa~ooiCPx4D!eGsHAWemC{364nydDgT{_dY|D7GGzO=F54((6(Y)Vy#-r z3j2kTEz*u$5bo;21jCTFvTf`bdeN{7dd9U)t1uJ)e~Y0t;~Kd)t475~@F}M_?r_|t z&={1(y_~4HX4!H$rpeBft9DK-nI4-;ROwQsnDnR^V$Z9VYnH^i>6jGFoMn|=!#~Op z^||--?OjLT5ZR2dcg&oaVF(K=Un!fGo3>nGZy7nl4VUs0Nrzm7o!oVj#G)dM4$7XE z6r73~%yLYrxQF{H9^j#hIiys~gGv#oyx|f$*EUn> zv^Pz1{v@*SX;5A_3c@BpxBNS;s7C&cW~kYzW*vXVsG3@1AK9o>sMQRK^RxPESnEBb zgf40gC~*}R=w?yz>6!&d({zyRB&(M+BOM$*0Q*D>f*>jTn+nMYqIAS_{R|15^hQVE zkVb2y25BuZ+C(~7gPf>=PfK4BdU=56>0r~O9Fb$v(R&QWf-xx~kB4#mHq7vc%^neK`IeBY@VA1Re0nhtN#x2n7*E3og;B3*Gb^Ko4E}UM!P-hJJbj^dWFe t9|q3R#S!DU%+c*XJ(SfC`atxOlSFx3A@Dw*qMynE0%o{I|LYD0egS-y3atPD diff --git a/lab2_pruebas/md5_client/Exception.class b/lab2_pruebas/md5_client/Exception.class deleted file mode 100644 index 26b029ef44963172f242f6b80cb446adb2973ecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmaix$w~u35QhJrWD+yREymr5%Oz2C4&uQDL0mwH1~df0gLEcM=rGeW%o5^TDJX&m zAHataYvR73G*nerfAv>2_4suE0ALj}29lV}Ac3hgrqd`eq#Y3iyeSxRN73`QD$2RLy zHBA2gYMwdvj%Cq&u3x?M1bs|zb339IFO&XL^;UCmxL@95SopisE1gu_p$3`vKTz!X zu2=CJ!p|a&o-A~v81hbI?ZUF9P@(w=9{gBGrQQ-&h&ftZk`_sOh$|^dP)tH(GjuDE zXXN$8JFx36Xpl{Hle1)dktO>Ty@7W14P7Rv5B;y`JTy8av$%8%?L*e+X4h$w4T=Vc d&@hN0@-r0WsCrl+j}eU0bu7R*CeFbE=+9~ll=J`q diff --git a/lab2_pruebas/md5_client/Exception_Exception.class b/lab2_pruebas/md5_client/Exception_Exception.class deleted file mode 100644 index 9bbb796d140c6c2bb4ee68dc7d0db301445f8522..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754 zcma)4T~8B16g|^V+OB{gP*jS((JinK#20Fa#zBdfI{V20#WDrU-432H0&9IvfYM%;}KE>xs zV4l)1=cbhlVB2s!BrZ3Q~iva)|8BlIJY*P#(k|! zsP2f3bR-At&R<$P+7AfbrNe=TIlT5zLDgj&0&|S2zvhEK zz#nBiyKQ=r;6u}IzVDp#UHA8&pT7XS#!dmx3V1G%Z)tb@ZdYJ^^XNi#lnj(<$%c!4 z)7sm*?h=@Kf9dJS`Ju4|ybvhW6XX20{^VP~8R)7pp;K8{pqL3<%8MUXe%8%n?asrq zy=(ruwn^aVpNLfKKB~56VX<~eYzElNb|5KJ^-^tO$9)qePGIHSx#*2#Y`cB7E7^?f z_Egv36K#pehl$Iem7Ae9Vn0kf{!OtIfpV|%Ue?3Z+fO~|1uNU{lOR=AEd+6mQDUgU@fDh<E(ETCwy zi2H=kr^*lLE?JaQVwtpu42)qZ)7{|vQ8&Jf6^jZUld-C?jty+mEK=FS7M_wc#rG4u I#M*x8FMNV3=l}o! diff --git a/lab2_pruebas/md5_client/MD5ImplService.class b/lab2_pruebas/md5_client/MD5ImplService.class deleted file mode 100644 index 2c4f1585a4c0896364d7eeb9ca2a2879d97cc0f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 zcmb7F+fv(B6kW#<`Tw`p42$VoD4WY&~6q%bTgvkRVj0#F^*<*>oYrmkM z(bonZ=#-hZPkrb|wOvQnxVG_3sb{<;pR?D#ti8_hpMU-GD}Wj7s_4ODh~^6wy?8Cn zl7cruyb2<&;vSY2d?{Cx(yU0&lr*bB%qjRPh=huEyj8HK;A<7#SXZDcNDDkpugtEc zxAaVEXKyW;I^55!=!g1da(Q=cb3-7ae=t58nr*t;H#>Slps&t9^)8v(D*Fz3z8Bg> zKBt{K+P-;|F-sqwj!*6dar&9uts<5_^H=Ux9HMQ*xz7o{3XxWzg zTA(R9z9-O}EF7Bx?Yd=~8)x|=v$Sg*<+w5ueP0!)riNA1aL-C+LgG84wOz@z>AJN$ z1)8V>RVA-)Lgq-{-ThAKBPXUS>C6{%TZNJ<&=nom^T)G?*_>tCuEsr*_i*RTcCEa* zXE_#GTDI+iYshIh0{vALm+4B`$HjtWy974N9t2uzQq0_e;@dTJ9v-sRedjo*7qVV* zfesd1C$6@PYh=Gm8%2Mf!9{i=Cr=GixRkGenkk%>vgWEK2j1=1<_m37#uFI0)s?@W z^mt)wky;$JTVp>%Tq1Cd zrceCIfzhf6(8lni#JX*jUfMU zWTIgoGR8zrvJek4(ICxBgfQo&8Syd0L`aMhixY6Gn+3EW;UyXM0V7P(OhAx;=M7T4 zhJq#fj*+Z@N7^L+^(1M%u^Zew=xXUwt`Y1;=o;$p2>ryJGJh?e*IPun(#rR7eq)YD z<`^dYU>bu-S{~E|BdM(oqV3*}rpm+4&~l!V3;Bs$BK!vw+TSkGCQAxq<*R*iXVL1r~URKZ0`yIu`cu*v>$YJT%&XSN3^AH(0xFX@9VKEw8gIw z{>1cMl-U4nIiXY!co9Vyy~A4{a7V|YP!Wij0d{LRgPf)@&=Ar#Dn b80vGcgITZn9wvFos!8P><{iAkf`i0AJJS3# diff --git a/lab2_pruebas/md5_client/ObjectFactory.class b/lab2_pruebas/md5_client/ObjectFactory.class deleted file mode 100644 index 0f9f67619b30d3d1e2476a771929a562ab04e3d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1089 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 Ef7m|@HUIzs diff --git a/lab2_pruebas/rpc_store_service/store_service_svc.o b/lab2_pruebas/rpc_store_service/store_service_svc.o deleted file mode 100644 index cb65215e52fd957b681cbe25080fd1542fb57e88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21256 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 PB>j76;W^3_vaI+A9{0^; diff --git a/lab2_pruebas/rpc_store_service/store_service_xdr.o b/lab2_pruebas/rpc_store_service/store_service_xdr.o deleted file mode 100644 index eba2fd4b086b9955d84163d5ab062e6f79f2db8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7208 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
wnj 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 diff --git a/lab2_pruebas/store_service_server b/lab2_pruebas/store_service_server deleted file mode 100755 index cb11d841ecf0e78433908356d05b09a3aa4643d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33424 zcmeHwdwd+lm2S_BG}BUR9+n@-wy;Ln20^eMwlM+%j4TZvfrNz~2EQ1Oq>(I;M)ExT zB48T>@gU6Fgb;_A#2Xw!xIoBmLb#BC2?U$ny%&ciiFcE192Qs!lVBbJCnV8+UsZQc z&q(6#-MxGNa{K45Q>V^3bT_j zTBSeg}DP6QtsydwmWgh<5+9jga9uR<0mP)i@l!k^Z*XENP=c~~9jPj_im{A(`(Kh~X z*X?V!2T)@@z(Q#d=S)dj9xZPsy9qbV7FCo10T|^$iB^o#;JXHV)bl@j_;kWny}!x) za#FX?DD|pR)!)~-WN}r0_k#YuSZecv&9zGwELmKc7_3|w29iS}GCc8{pU8~sOP#l!x1a)7mSAeN7q$>kb z3fovsB)h3St3B~(l=5g-ceHD;JF4_-iuXZ6oyxtf_HneRyHzViQ_ec>(-x&-&-cs>!xonrsfP zdv>w*8SC`4zCJfs%oP}S;!?Bv3MgY8>O4+WtrI2JN^6`NalmV)Ur@+XN%cAbxNz1* zh`Qf`*DqZHUtz(Umq@f!TkyuUhzzwBy!Cn=u;8hyafB>*>SP=(7Q7kDXuQsX=QY7N z)>-gyka?`P;0sNxq6}H^T=R`%vjtydAW?3&;4vWPvCD$@m{{C5S@2#9exC(zj4_)J zSnyLU^bcF`Q!V%>EO=g1jpHc`e!77~dB}p-ZUhqRZ-%&%u`Sa)dmC)^nlKCSJL~m&4 zi|Pv&p#aA&Cu zxTxRBIzw;tsHoq{I+v8uL!!Qw^{K2sA?k6~8G54!MEwTV8FHh0M7@)BhScbGQD4P6 zLuqtK)LU6+sEn=?^($Fth>W&~`cl>z8lwSGznFD~#AvmsFJzseFzOfe^H}GSFzOTa z;<wq`vRk?r_!iD%l3}Yj^7CZ z&;P{%0ipEC(DNgghior}e)5;(bW@sUNb{B{YhRH4Z@+X0^jA_-I>0y*!+@=QDL)33 z?E}%%bN)&ycDa(uKk)_dnZn*9!`RWaqg%m47&D|gl)m{`D4jZbIQR}D924ezh=L{F z+kPwSrL3oeCr6)_^&-}XxBEa&gKq-MAI{34(!oVSJw;HLkJDDDx|!}lO{$#cYU=CU^!`lVt?T1p|2n|cV4#{_mq*AF(I)6yif+s0>u_Rba z6x4^rRtqf*yuAv3fH*Mr|3x#;86DDRDhg2Nr)_!-rB0D_@+w?OZHN}8TJKHU7v&~V2QV2?Ip@Y64i zI30?T{t*y|(mtMtm7S-?QiWppM*nCE-p-42Xm^WE2u$x`bvXFp=&=libOzkC^X5~E z_x2lM=5r+=8@Yx?Vt_=0A)5ESLRLoSnV$&9oC+P@PFXwz#bGh(X7$soVHQ8$8kex< zM3pX$x>J5=c>0rmzw9HuN2o7GIsX8#FwPtbhN~EgP`cw-#{XN$OuL4I#}89I<-}z< zCe46J7={vw7EToE9Z&nv!HKy#KFf8fXQV**Z_KI%1L9aZ^%|5of`C9Eh`IADO?i$6 zjqLj)9nHZ6floG+qjhAPwV{RAryrIH-A|4lK|2@_s2!M*B6cF6W}tr6Y?9NCbL?hn zJiL7#qUMs|YpF1+BHsRhu0?n>(;tX1xaNPeWf5CQl}{as*F3zmSY^NgLM z>F=EQtYFlqp%Fpe+cyi(ymR7AG(&L_Ef|QC2(Xigyalq^96moB2PIR8cgzpQo0xsV z*6FbIDSFVPrkl;dPB*{CdG}m3>>Wu{Z$pce>nRS}p4f(2|HU^_hG{IkK+1|2qIRCa~ZA7DYtn_t1eOb1754nfgfq2YiJSHwK; z=hGr!^L|`13-?pUdEro=WgZ(!|9Ye!J|6971Rf6V6Uf8C1A6&z&D4N$Vl`VTOF)hm zrnx8|Ud5I=!6Pwd%ipr)9JbiS6+3v~f1M$D{*^6mcKUB0q0^74)$ZV-r>XX{REp+3 zil)$TJzNd#cXz;&=6%9jzaBe^6+^JslAXg1pX>_lPCXIY-At1o4y9iiJDLvOyYuFI zm0QZd{sgcGL^S<+Pe&O=X9FG%z6R(|A5a}Gyul;hCzacz zWiQQ?E;`q=>?DOt$kQjY02s%CCT*FP+k&m$)ae}1&L+TYLhFA%&^IyYt!-ft)~Cq z*z`~q=Q+Bj!fE>T=d~;fLw3)ex@+rJ)TPJjI_lb+cF+InG(VDo-3wT@HKspmO#ig$ zT;7?hq38eX7`gC0jP>omP5NtoVdM`@>9?EGA2mS2*tB1UcD`T>U34P#HWS;`YwOn3 zt*yJhF8sotOuq5K3-CAP>8UUGk$9wHkel5o~R1Tz>WWlyPn)b_uO=u{Zc%mJ1mfx!4NyC)Y>)jV*qCKhQteBQU1= zZOOrS)accZea#qlApMc##s2w;Lb-dGiuvQwWGWtucGFthY{w-BP%=3_`0m))J1jAz zKR|gu;$s>Xq-PPTi%~XW0cc103d$r(6|4QdD3_r8F3LAizJ}6+>*t3kdr?lqP<{#J zVw8W6lFyb7;$Gu(D0kq}upi~?D1U(RNnFN%iEQAUcs|JN&m#}#>P%UKgHv_!c%gkSKFj+S1zA*$$5+B zokbaxi8NZd1%8-Ex;l^V4tu@Z=_s?IYtc^U-3tE;K-@3K$i)inMpG8O-{r3rW!T$!@x1#;qC^PaOG3E0aLIKuduI6TYcZQ#K z6{CHnwcXxs@;9KJm%VCh`;8g?ZnUpP`(kVRplqK9+-+zdMEgIXH2V+kbU0oSCX!3o z@hIAPPy4GJI-~s`fd3V4rXxfcez31G^<-W%2l4b;R{JYvdlBO3RkW|kYQI*rHvo4& z+I_f9jk0~I$M;wErJjqqYG{+@Gwf_ov0&)0f9H(g?eqKtn&p99>)9Cvt?DmmW??0@PJ1NUSHtB zeIg!4`|tlUHpu!udw_-c&i6>ZtQ+r+9kt84@lF>XHSsXsEA+BQFE{Gt9eR16UOuFkPwM4MdigWG6rEX4%j)Yd z_E&UtreevI|ANZJmDLNDq(rUemYOA%)r%_^pDXeHh1E4ns+Uw>q?`|a89p)^-f{7T% zp8)4nf6f-0^D59eRcZ$6Z=$eofwa7{wiDb*aPB<>hX~GlfZ*$pl9zmm;1L*;_oC!> zT@H*>Jp-O`eGw-$|H5__-$oDl7m-F$&xVxziv>MMtI%9P8oL)3IcsR1{V+s27YVz* z3(!?6uq((t=LXQadO(|}mK~&Q6|h>q9UwS+p_jTTOd1FJ@u}}}8&+LP^m{4NsAZ6- zzE4)W8YS-s+$qmfe@DWP1i4bU1(bgRLi-^A7xc7)vWWh2AHgY)x)oe=9*~~B=tuF) z0ZQ z;X4VJsJ)O}FihC5K1BMvK0<4S;!?rZQn0~GtG-8uL=`}In;oRuiB=ij1)CCped=dG zU$EsKz$NOBaW1&&Z*caj5z^oM4}dGw??A1BZEpdtR{x&#J3aw?aNUVNumo3B5Eo{(cofQ3d&VR zGnJRk92TQ_3!6#$O*Zocp2tuWNk#Utor=;%$*v22iY@0t6fMqbc@>DMv|V5!?;Vm- z2%R8F$%qyXqG+LmWeXv+)SxKhG{9s4=u{a1_V)l5>}wW?Hk<`7-*%O}FM@TN;{G)d zBESk4e+!_eg`IhR3;{OJl?VyDXAfY9=RHn5&r+Q8J;!i%dO(L@bS_^HT1RUX^Xj0hv^2 z$fD2&sSx^$T?m4b2iaeoa!YnlRzkeT>?#3VqV=x^iFy<^Y6J9?BKk;DGE}bCZrMr^ z`*G5?3GJIGVmk#Zt{C82?Q>rx@jdM2W)71Su|o(}T$P|{(b6A~#!E4GN>wjrm%~C; z^%&v12>VpNCZg>oT%sO@LfYMQgJ1n2Y5t0Et#U?-wyzlXW+fYl{4)D5sUhwC)K+mF z!)cxN#ibxo`|0BQWS?ou{*s74Vdht;72@otkSYeg=$a^aJON7a%z$v4=M#YVvyHb= zDOxpz)|mubY(=ZzrucVYUeOwP1sR2yqO~W$kf#>oT-5&vF5#+r3*iCM_|*GJ6Z&2#3@|Fsms3J;-TMTohVebp7R&I?9G{7$BZ1Q&1!+ zI{OV3>iPm;pUM|ZilU?`QMo!6^%Cz_6QsZ4Am9o)*V_OVi_=O#SQh98r%E3?RdzRp zzGMf2iUdS*@u5V?$}le$aqm>O0y~u*81!ET>{Oq?xrlx%_pGflvO{qnH z?7{UYvId`fS`eaV3?zCL_jKN60Pem(anB&EDs~dNOZ=djMVe}dE&mbfvIz2QPWoS& zO$M8bXvJ1qf=+EJ8_I2^|AUnRQL)d)Uq9Ijxs1$nlqNuI)1Jl|?->fC2@9kB(60rR znGPCZvw3V#L0!iFyrRF-F<4~t@!kpj2}x4~jjgl>0ctCzD7<^@R1X0-a}9BGI3&i6 z-#qa1uM9+B_ez(ne5eWO<(3}W*wauZw?Rx`djqJ)#X8YbXezzw82#@2%Sy9T) z0brZU&h2~G`K$Hjn~dh`$X!8o?0eS(dFFEZBS3M5-hiMIPyGSe_Fteu7va4CeQ)1; z-5lXQz1A}4Rk|R+OMrcEQ#nV&rnd#k#Sn;^WA9Vjq)CB)0jXo}6WgRs0cn#WZCWaA z>MlEoGJGzUyH}_Ps5#pB~vyNcOWn ztDhUpel{bPZ9CXFdrCm`Al_d9WZOR%mkQa>4%tsg+P*{D-XP7}K{8>j7_uGgme$IC zcglX(Nc++u* zi@$fB)a4*28AePw^Bnr`amu=k{_2=w#ZS`YoT(^m&Z9@ z?0XwzD2OJSEUo%>#tuSfT}RO~X=;I^x@Mj1_hK)WUF8Yrr>8+0NSOxZ=35#xw;y14 z|HU-OeiSp#acq)|D6fpSGS-YJ&wn#}Wk!@Yc}8S^gzY<@C+SX@karuw>^v#&`|kti zR8O%*=1JBJDgP{ymoP)hpDWTLW=Q$-9;QrYNcqWsBghOXKRZKO2>;0p$$8-*eaQ^T zX~~eBW`=YnnhQuHG9*_G%@rAvYmu;%8IoEmuq)71Fz0s478z1O8QCQ_1s{(y5@`v91+qI+@1ouJ6&3N~$}H6oWQc$Ybf$mI&&+e2$aE?4kAZIQWL!3Pfk zFLSwqj|92mz73SmgT%vS1-HisApcn5dzZoE>PBc%_&%qXqW%qZEBu%vuBr=&KSda~ z640&i4}?q9Rq#yV9|`+aALJB%LbyWx6>0uNxLW-q<@}j&t$H)%{DpA9doJk}8!I7i zF$LK~rN#R&x$UBIo%bgs%d>5Sdh5K;QI^y8IaJnr+bB%6QQIMJE6IvPCF$k$x6ord zf|kwRG|7r>jEL>tD)uwg_P40q>V1jQrrBjmGea9fVYN~&xp#y-d9*TUsRs({*0AMTO2%3c~?`QHQ-OUPl_{hxK7x~od+nN^0jY_UT@xw0CR6sQ%+s}j-=KAxNZGa663#28?Ap-Z z0xeT^ZPy5VC{uPVeGXb>%C6l>Sf=dSFkzXpYj;fnY^3bkhG!_0DZ7^V1wfgyYbkz| zL8k25rZT`XW!JV`23V%-+D+F3mMOb-^Jc&@W!JXd16Zc)+KvYS%amQ)`9r`mW!G+h z9dJmQ&TH5!=yrxU{getgReA)D6)@EkRKGW=2%-HG6jLP8Zww-8Dn-%Y8MG9XPGE%$ zDleNkEJpKuHj}iC%{+l;C5kChkp{L?QQ9ckb;0~1$Mgnp(&DU^TYxx&whJue?IS6L z&1jA;3m(ZaP!wh%(guTV_ky6jY60O(X103v1A_WeO1#&8x=ry+VJ@0(yPQHn*% z&V{vTaR=Hok+N$dW!FT?u8EXg6DhkUQg%(G?6?CGYm!LWi(2mhvq;&CEGc_YJKZZ& z_M#3t!>1IBl$|}gmpsTGMar(N1Hz^hi!1+qCNZAEbV=<H*=Vzh#f+( zp0c~sUn31ucK4l9Ri^CjVWFx>+1+;$mMOb?H({BwyYHqOWXkUTE5fzP>=yUFXQ>xc zcK4Ure<@RT_x;pXktw_Ti@#%^{dDntvd=Uc-Cq*%C(Qf`wL+YUl$`_bxn>G3C7MXt zHIcGwmXzJIsuZnf%9P!+`aV=d%I>kG?4GqwbSP7HPyY&pzD(IYmXzHS-T1UqKR?g?w0TOwumMEs&NrtF@s%K^)j-4i8^ zOxZoX#LJZ3b3+T@3OU!uAaRB`QtqA3dlbOP!@V;I>xsL!=fiJw?mF=GeDnr?oE`*l+Zg* z$`o?uQx0?>k@uVxpqXbIU zB-6Hk$dp+A4?+W7yYeiF<%YyLcTl@?D2soR$3wi?j?%XO2d1oZ2%6fRlO^jMLzYve zfBio~XxJ9;kI8t5_ux_5_CJCRWa*m)TfaV-Nju0c|P0lrokGaDd>23_qn@3{>r6 z5IgoB*j6s~ODagLc#O?W0LJyU)b zNmE?Au*-8+-;iRvn?7M~t;~HE_W2&+O|9}Hobr?;)@D6>{vH@t=POF?)5mfU+7Eyu zD|^--7v^O>7_{cT4*wP4L9ROKBS8HD;BJuRt6z}BS5Yhd(cexuH*fB0_ADRr-Aa%t zY}P}*eD(XlJN1Wr9|Cq+9`d=Y5Bc&{-mIvk$(N6)*lpnvobsrx^O^;i-V@xE7x7Nq zIZ%sMx40>H#&!dCeHJI@P$ABWi;rNOyDq0gUG%s!{V2{p*Kxvk5-xG^Ihu2ru;0b! zXwJL-8gK>T0Cu-HHxy&oT)ZiFCKduzTzrn^OkE3Db)8TArj3AoED)GobG7U5Nx$QdfNNcRj^^As4O{^ipQAZ%zX<1$;$d)~ zjYh9H@vlDMCVC`aO$wOm2`b)SNGd{TZ$(iciMX#Th^VO~qQPET3d*%cGnJRkW0vO6 zv6-Zgu$d?DJb|J>D)JS!Q&HL|*>%Csu;pd6(BiC?p90~d?E(vV?~;^4=mbehMzknE zh!)X(I*9^k?1dE$7|wD88?|Srf12R&IT!i_7^89V?OoZUwrcre}IJ2w*NU(#{4W9 z^VuL}&|bwh#WvqFRdaY|d#2cmUA{BWIs;GnF4iv58mD5}o2O{nWts!)UY-tO!Oiyq z3(v72m20Za;n6fQ*-%y8ri5CM6*r8q7;;gD)!#MEK zQ8~zTJxO*}hV1g0MErjpuRJ&@GboxdC`AH*y>4SbJ;s1~b%*3PPNkcDMkHZE%b_mL z9qOsp5uTPk!qYP&JVTD~8O8{g&=(l1%m~l23=O)TZ5?6DIAN5sM|jSs3>w}qF=hgt z@2^ChGBVDYnKicMnNczZ%`%2_Gp(1;{4CS*|H7Q(JaP&H%*lq=qzonLb36?uQGxU~ zb{{!0CmKbos&{7rXXuPruqoyRc3`G-_>lG+$fUw8_v6v?N2BK&Ogs(2* zMKQowY!icBH}X%ZQ3H8j3?=3cKFA0Fq9Uo}dI?b(TmoeU-)YnVt3E*C1_+~THy&6z z=GZ>i_`&0=)GGC?D*N22&!}gr_x(V<>KVs|M;*m#&krBJbfNn5jgPNX*V`9NQ|!2( zeAIbB-Fus3;~NgoqsIg$>HL~n_2!!yg4A1TITMX)_0F9;YqI{YQdg>v?Odg%L@@O@ z)!y6G$JCb(sJ-gnRjFTpf8?!~SF-wn`to0^y(aj~F+sHIOT-A-=~g z5dYDrFxHU&>}Y5EDNOg~j-@eZIYTMuK1RtLk_lW+KO6Uqjsn~7)yGomo2iuxKTse0 z8UXcctQr_r<#eg*Xb*+2sB3HrHYl6cN8|Wt>`-`cD512pE?*XIZft9=Yp)OC^Rm&6 z%H}XW;n2Ay8BHi%oni5v*#1F$pFy1PecHZWe3Ze@*I4^vVXjNzq|zE}XzlY2yRo?!I`mE7>;~QwAep;ChqmmCnJzeu&BRL-9fp zq9{OqD;KVT+6orAFuiDmDoF8V+>QJgZhS*{V>F&1Ce_*B*QH$7(%K$wY-kD!R8q*R zYlS@dH4fyG;f7%S@`hl}$Z5pt2j4Q1z^%-w-#%>*qMfs&}e|=3&&P&h!1p~=cEP82g zG!~8bb)g!Gcdfq^fr-z7`xo^37xaj)1TVl4CE?M*_yTqZcO@_|Tchzo>Hw0Y5=#wG zOMIDE41|(`dux`!;qmAV;EZ=fkP{h*!iI1+ zKI^-FFrM^hg#)|gI72GFYb*ss_<><)(0XNf)A}tO9T8B%e@p8c@M)4O6b``^tw9bD zA`hx9S_rT&hR>fzmFBi(7@w;f5x53ZeJd&q0eBe#HxI=TD?{YPw^uOoFdA1(ev=ql z58#8uk=|$`ToZ;dLR?*aeXyk+GDK)JVW&e2IU$DN7KmtV4tEW7QU_fDy?=B<2Y`YBsv9f4!XR27 ziNWhSi;|2-Vu>NnLJ@nyJ$j7YU}{I5@$uv?eI~Z8sHa)dS(u5-TOpP+J%xZ4Utwk? zYh{6I{Bn()5mGNX{b3Xvgjdax?phzg2yfuWr@J9E9$p`fa2yiJAw8U=YBE4LkC)Z8 zF0ES@4A-?TYvWw#j3hX7B^mmNi=aV-&=jl-2_?BTJb-WCV+q=XDI^yub1^Ze6$f4l z;kC;Y#}S~Rx}P!EO}SLNKb91#ukY(!ukb6}a0??>uraFex$Ys3UmW8nhYL9A&-UfZ zuMO5+rMpi?RMq;yfoN4P#J@cOjSa2AwiXgX zz(%QVYw*foJpx_KGUHAF6N~J6v@3%{kqxP6m>#6tyAw$+OLPpr%Z(*N4zHLg4dx^? z1dEy27wb#v(Y;xYZ8)3?i*=TOhyw(u{J3~q2PR)zo0#*#tHrX5^#l=xg#t$RfN-#< z2Ns4Km&1}scX%inSMVWp@riIDt22cUpkwxdsIdjtnfB%3=Jpm7ZfR^bVW24o98xiZ z9zEA(I2xBVXDW4}OxFkwQ&el)iVRUl0|fW<;o>!jYZjKv@rw;64M_SUSda`AC@$QU ziif)f`%?okQ*=XpeMa=sV6eR&-!;Od<-f_Tjytqji%;I}g zCI`cW4C2e}(!B}#6f;2Tnuu(S>H`VmCRj)zUbk(b5+2}Z;0?z%wyao^t-GL=A);`J zHkU(_r@8Jrq0be#J27XLaG$if21xM<`tV?XH={#*AzzxCFr~C~WPI3GZ;6N2x@%3M zMvNN*A4`QLMXSoH@hX8kwlL@0B9jpV-qhG06c%J%R7{HCvKCW$VRJ0HSw=B^$bhEm zOBP$Awy|CxIuYk$Rpht`_gh16St~lGJ~gs{(^*?Aiwi7+DIzQt!&2Y95HqTGqp4nV zOH-R!X-B+?pu}$sq=w{B>*=e!fQL6G`Asv!*^ty_GB>s~woo?i!o-|3BS{#L2?TMi zu?{$9xgLoOQGIN)khpfs;2pw6K;GPCjZMx-ffyq-*m=VcGulr*97v~X?SXML4x|h1 z6XG38azcEb`FE36VGd;EM<=9rD#qVcX4AWrc2~fP60ids#rr127br(2#21=>H)$2- zP&CE(`_XKCk#e#yU_}Yop}3XfMHAsY=I<3*nH-8&G5#Jk8}Cz&>s!g$_$lV^?PTMN zm6NjrR+NAp_|lv4_pR1O2mU6;_`B9@{B&%tt+S#8>`-Rl_k||HpJD#4gO$mF7kHHF ziRfo4YRyFWS?2G7WXqXtt(vgI{A*kjB>;!`MV@RNYYt`3c%;CWO@jB2!y_lgF4B8^ z#FKRtp@zS)8Rs`{FxnN5;&%tK=xGu0>vHgwI{rWoz5#d}elMj$_Z#)#(T4xF3C3|N z@RWZjN6sCBetbN91Ne#T`oSdlqq_XuXWhpqp`XleAA%n5RVfe82>{9*b}&rjPf|>z zr$;zs>bQ6=6LQAKZG}#sJ1;H~`0?}WY9VKQJa+?M3_tVh{5-I?BMxlTX8pd2j#iR7 zeeNToyLEi-yZjFdyuqC*`Jq$xoBQU%OThaxWF{2A{s`XR8aMA=7jjH86ZlBrJ>%Zn z;9qnUn^YNK8VsKZ{~6$Y=$Ah$U_BNJdXJL(xQ%~3GLf8^=y&`&**OV4AJ)=8#x~ly zdgr%HLVv%G->wC$YASqGJCQywPJ%x+3I5|r@WmLHiR7O*3H~zR>CfEt^D05_8TWS) zJ(I}Us?+EGO~>#g^bbyge;#;$md9j;e~&lCK2!1KjQg*I9M8DFxp+gz=f2hR5#_*Q z<2r~PJ#pj%n8T=x98l?Xp^jOcw#!C9~Mo5Uj{tmB-gGs;$d&K?teV+7RMUk{W@$dHcle{ zY@z@7`?o!l(DTKG34fQYE1pawQ$0N*ow>5UHQdzL)*cQkNT&1;28WXa*bu=MBzKUy z2gAMngPoE7a5vH;>=dRpD_w&FL;X?gVpLvuK`kGBu?LG4`U;-t~nSEUflpg!(m!& zz*&7G6K_~~bzO5~J*X@#*pb2RQ8DhB=0aMip;ZYlYg)dvt|`3yiYwZJ?cw&i zrA`Py!re%067i?s0s-UK&iET=*;#V9vAr2PUdD*EH`jB#+L@lg z1N^zU9B%0rxQAP}saSTa`5ScE=y0?KhwMT6hie0>*waKQNe0&o=I4XJh#@joBFa zYlhjla2Rt=UqsC9ZZRt-o|EE=kqS+}%tK{C>-*YI{jWoN1nzaERHBbBVJk0jPBmEBunkS9y*sEQVS zUp%W4Mq51EA0dMd4Ph&>QiMq*z{=i1RFmA@s^rQKqCv5GR7Th9YyEmW12SupRWACH z!+>w-0vWo&CU+Nf7)(+;FkFf%5hqF|EGoCAiPz!S_pOyTOkPR2=++RFW9|8~b7-dWZZA6zh>wRjx-PzwKr48~bPNbPA58 zvf#Th;xOop@W*l!u<*Q)ZjPv5`1{ z-W>kp`u+8BZY1F_^p&;o^#{<9)xXYvQs;kNFAaX9U!(qD4!^Pg_!>8?a1_YGJm=c~ zEwr$IWBiQ#?6}U~mt%jfJ>SXUH-0zV_&xE1X3rAH?Vle8vG#B5d!FRNf`h*;VLfvD ze;JJ){MVtXO2 zNnYsSEOMmD6xV{eR>?XgV#}qUeV`tE?ynM5)H5r6@V@_4b o%bDVWa;R4__;_)}F&F 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 CJ8cmF diff --git a/ssdd_p2_100291121_100292107.zip b/ssdd_p2_100291121_100292107.zip new file mode 100644 index 0000000000000000000000000000000000000000..cf9f00110cad53a02daa1077dfd817a95dd1ebad GIT binary patch literal 92257 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 z

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

P!gTmec-E~ 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

ICzAh-eFZRIz7zOIJ!yGfo*<~-a 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 RE&`TL3^XxG0{H^${{cH{UGx9| literal 0 HcmV?d00001 diff --git a/ssdd_p2_100291121_100292107/README.txt b/ssdd_p2_100291121_100292107/README.txt new file mode 100644 index 0000000..b8b1c98 --- /dev/null +++ b/ssdd_p2_100291121_100292107/README.txt @@ -0,0 +1,47 @@ +Carlos Gutierrez - 100291121 +Ruben Lopez - 100292107 + + +INSTRUCTIONS FOR COMPILING AND EXECUTING THE PROGRAM: + +**IMPORTANT NOTE: IF THE PROGRAMS ARE TO BE RUN IN THE SAME MACHINE, IT IS RECOMMENDED TO USE LOOPBACK +IP ADDRESSES (INSTEAD OF THE PUBLIC IP) TO AVOID CONNECTIVITY PROBLEMS** + +------------ +COMPILATION +------------ +- Extract the ZIP folder by running 'unzip ssdd_p2_100291121_100292107.zip -d '. +This will extract the contents in the provided. + +- Navigate to the + +- Execute the command 'ls' and make sure that the 'Makefile' is located in the directory + +- Run the command 'make' and wait until the process is finished. Now all the necessary files +will be compiled and ready to be executed. + +---------- +EXECUTION +---------- +Open 5 terminals and navigate to the root directory where the files are located, and then execute the +following commands: + +-Terminal 1: 'java -cp . md5.server.endpoint.MD5Publisher' + +-Terminal 2: './store_service_server' + +-Terminal 3: './server -p -s ' +where is the port number in which the service will be running, and is the IP +address that is shown in Terminal 2 after executing the command shown above + +-Terminal 4: 'java -cp . client -s -p -w ' +where is the IP address of the messaging service that is shown after executing the command +in Terminal 3; is the same port number indicated in the command of Terminal 3; +and is the IP address and the port number that are shown after executing the +command in Terminal 1, in the format IP:port + +-Terminal 5: './monitor ' +where is the IP address that is shown in Terminal 2 after executing the command shown above + +Terminal 4 will execute the client and can be replicated more times to create more clients and communicate between them +in real time diff --git a/ssdd_p2_100291121_100292107/monitor.c b/ssdd_p2_100291121_100292107/monitor.c index d782e6a..f3e2b03 100644 --- a/ssdd_p2_100291121_100292107/monitor.c +++ b/ssdd_p2_100291121_100292107/monitor.c @@ -45,7 +45,8 @@ main (int argc, char *argv[]) /* int result; getnummessages_1(argv[2], &result, clnt); - printf("Total number of messages: %d\n", result); + if(result != -1) printf("Total number of messages: %d\n", result); + else printf("The tuple client-id does not exist.\n"); */ /* Destroy the connection */ clnt_destroy (clnt); diff --git a/ssdd_p2_100291121_100292107/report.pdf b/ssdd_p2_100291121_100292107/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..df6e5b672d2e9b4809b99da06dc3f54d6a495665 GIT binary patch literal 981854 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

_;Ukv6I#8LeloMSFljd- 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

v(_8K8luS#bO&m>4~sL#6Q#c* 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�+u{(fuLT0)26imu)%ZLEslb^T1_UHf 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%0D@W{`FNA?Pj{6cu-ZQ+sq!Xv*F9(hN2g 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

a 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%0D5hMGLCRe{WI3&5 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%0A(##P%W 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 literal 0 HcmV?d00001 diff --git a/ssdd_p2_100291121_100292107/rpc_store_service/segurodevida.c b/ssdd_p2_100291121_100292107/rpc_store_service/segurodevida.c deleted file mode 100644 index 601ff5b..0000000 --- a/ssdd_p2_100291121_100292107/rpc_store_service/segurodevida.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - -/* Define the structure of the message list */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct msg * msg_head; -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* Initialize the lists to NULL */ - usr_head = NULL; - usr_head->next = NULL; - usr_head->sent_msgs_head = NULL; - - return retval; -} - -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - printf("1\n"); - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - printf("2\n"); - if(strcmp(temp->name, sender) == 0){ //User found in the list - printf("3\n"); - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("4\n"); - if(*result == -1) return retval; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->name, sender); - printf("5\n"); - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("6\n"); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - if(msg_temp->id == msg_id){ //Message ID found - strcpy(result->msg, msg_temp->body); - strcpy(result->md5, msg_temp->md5); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - result = NULL; - return retval; - } - temp = temp->next; - } - result = NULL; //User was not found, thus message does not exist - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - /* - * Insert additional freeing code here, if needed - */ - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - // if (*msg_head == NULL){ /* Queue is empty */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - // else{ - // /* If the queue is not empty, append it to the beginning */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - - return 0; -} diff --git a/ssdd_p2_100291121_100292107/server.c b/ssdd_p2_100291121_100292107/server.c index 5219e8c..1d5f86b 100644 --- a/ssdd_p2_100291121_100292107/server.c +++ b/ssdd_p2_100291121_100292107/server.c @@ -120,8 +120,7 @@ int main(int argc, char * argv[]){ clnt = clnt_create (store_service_ip, STORE_SERVICE, STORE_VERSION, "tcp"); /* If error, the service is unavailable. Show error and exit */ if (clnt == NULL) { - fprintf(stderr, "ERROR, STORAGE SERVICE UNAVAILABLE"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ + fprintf(stderr, "s> ERROR, STORAGE SERVICE UNAVAILABLE\n"); } else{ init_1(NULL, clnt); @@ -271,17 +270,19 @@ void * manageRequest(int *sd){ pthread_mutex_unlock(&list_mtx); char sender[MAX_USERNAME]; char msg_body[MAX_MSG]; + char msg_md5[MAX_MD5]; /* Get the name of the sender, the id and the body associated to the message to be sent */ pthread_mutex_lock(&list_mtx); strcpy(sender, (*pend_msg)->sender); int msg_id = (*pend_msg)->id; strcpy(msg_body, (*pend_msg)->body); + strcpy(msg_md5, (*pend_msg)->md5); pthread_mutex_unlock(&list_mtx); /* Try to send the message. The 'stored' flag is set to 1 because the message is already stored in the server */ - int err = sendMessage(sender, user_buff, msg_body, md5_buff, msg_id, 1); + int err = sendMessage(sender, user_buff, msg_body, msg_md5, msg_id, 1); /* If the message could not be delivered/stored, then exit the loop */ if(err != 0) goto destroy_thread; From 922d04e591a4638d790c307aee1f5982ab804c34 Mon Sep 17 00:00:00 2001 From: Guti <100291121@alumnos.uc3m.es> Date: Sun, 7 May 2017 19:39:16 +0200 Subject: [PATCH 17/17] CGP: Final submission of Lab 2. Reorganization of directories --- lab1/.DS_Store | Bin 6148 -> 0 bytes lab1/ServerThread.class | Bin 2537 -> 0 bytes lab1/authors.txt | 2 - lab1/client$1.class | Bin 521 -> 0 bytes lab1/client$RC.class | Bin 884 -> 0 bytes lab1/client.class | Bin 7645 -> 0 bytes lab1/client.java | 711 --------- lab1/lists_old/msg_list.c | 158 -- lab1/lists_old/msg_list.h | 19 - lab1/lists_old/test.c | 62 - lab1/lists_old/user_list.c | 237 --- lab1/lists_old/user_list.h | 26 - lab1/lists_old2/msg_list.c | 158 -- lab1/lists_old2/msg_list.h | 19 - lab1/lists_old2/test.c | 61 - lab1/lists_old2/user_list.c | 318 ---- lab1/lists_old2/user_list.h | 35 - lab1/msg_list.c | 58 - lab1/msg_list.h | 13 - lab1/read_line.c | 68 - lab1/read_line.h | 5 - lab1/report.pdf | Bin 702969 -> 0 bytes lab1/server.c | 615 -------- lab1/server.h | 27 - lab1/servidor.zip | Bin 7819 -> 0 bytes lab1/servidor/Makefile | 26 - lab1/servidor/msg_list.c | 55 - lab1/servidor/msg_list.h | 13 - lab1/servidor/read_line.c | 88 -- lab1/servidor/read_line.h | 5 - lab1/servidor/server.c | 308 ---- lab1/servidor/server.h | 22 - lab1/servidor/user_list.c | 200 --- lab1/servidor/user_list.h | 31 - lab1/ssdd_p1_100291121_100292107.zip | Bin 689617 -> 0 bytes lab1/test | Bin 20400 -> 0 bytes lab1/test.c | 70 - lab1/user_list.c | 246 --- lab1/user_list.h | 27 - lab2/.DS_Store | Bin 6148 -> 0 bytes lab2/MD5Client.class | Bin 756 -> 0 bytes lab2/Makefile | 26 - lab2/ServerThread.class | Bin 2670 -> 0 bytes lab2/authors.txt | 2 - lab2/client$1.class | Bin 521 -> 0 bytes lab2/client$RC.class | Bin 884 -> 0 bytes lab2/client.class | Bin 7989 -> 0 bytes lab2/client.java | 740 --------- lab2/gnu/getopt/COPYING.LIB | 482 ------ lab2/gnu/getopt/ChangeLog | 114 -- lab2/gnu/getopt/Getopt.class | Bin 7366 -> 0 bytes lab2/gnu/getopt/Getopt.java | 1337 ----------------- lab2/gnu/getopt/GetoptDemo.class | Bin 2868 -> 0 bytes lab2/gnu/getopt/GetoptDemo.java | 97 -- lab2/gnu/getopt/LANGUAGES | 23 - lab2/gnu/getopt/LongOpt.class | Bin 1658 -> 0 bytes lab2/gnu/getopt/LongOpt.java | 195 --- lab2/gnu/getopt/Makefile | 7 - lab2/gnu/getopt/MessagesBundle.properties | 33 - lab2/gnu/getopt/MessagesBundle_chs.properties | 33 - lab2/gnu/getopt/MessagesBundle_cht.properties | 33 - lab2/gnu/getopt/MessagesBundle_cs.properties | 33 - lab2/gnu/getopt/MessagesBundle_de.properties | 33 - lab2/gnu/getopt/MessagesBundle_es.properties | 33 - lab2/gnu/getopt/MessagesBundle_fr.properties | 35 - lab2/gnu/getopt/MessagesBundle_hu.properties | 32 - lab2/gnu/getopt/MessagesBundle_it.properties | 32 - lab2/gnu/getopt/MessagesBundle_ja.properties | 32 - lab2/gnu/getopt/MessagesBundle_nl.properties | 32 - lab2/gnu/getopt/MessagesBundle_no.properties | 32 - lab2/gnu/getopt/MessagesBundle_pl.properties | 36 - lab2/gnu/getopt/MessagesBundle_ro.properties | 34 - lab2/gnu/getopt/README | 57 - lab2/gnu/getopt/buildx.xml | 68 - lab2/gnu/getopt/gnu.getopt.Getopt.html | 639 -------- lab2/gnu/getopt/gnu.getopt.LongOpt.html | 210 --- lab2/jax/MD5.class | Bin 487 -> 0 bytes lab2/jax/MD5.java | 13 - lab2/jax/MD5Client.class | Bin 800 -> 0 bytes lab2/jax/MD5Client.java | 19 - lab2/jax/MD5Impl.class | Bin 1116 -> 0 bytes lab2/jax/MD5Impl.java | 43 - lab2/jax/MD5Publisher.class | Bin 446 -> 0 bytes lab2/jax/MD5Publisher.java | 10 - lab2/jax/localhost/_8080/md5/Exception.class | Bin 664 -> 0 bytes lab2/jax/localhost/_8080/md5/Exception.java | 60 - .../_8080/md5/Exception_Exception.class | Bin 810 -> 0 bytes .../_8080/md5/Exception_Exception.java | 54 - lab2/jax/localhost/_8080/md5/MD5.class | Bin 637 -> 0 bytes lab2/jax/localhost/_8080/md5/MD5.java | 60 - lab2/jax/localhost/_8080/md5/MD5Client.java | 15 - lab2/jax/localhost/_8080/md5/MD5Impl.class | Bin 1172 -> 0 bytes lab2/jax/localhost/_8080/md5/MD5Impl.java | 48 - .../localhost/_8080/md5/MD5ImplService.class | Bin 2282 -> 0 bytes .../localhost/_8080/md5/MD5ImplService.java | 94 -- .../jax/localhost/_8080/md5/MD5Response.class | Bin 735 -> 0 bytes lab2/jax/localhost/_8080/md5/MD5Response.java | 62 - .../localhost/_8080/md5/ObjectFactory.class | Bin 2032 -> 0 bytes .../localhost/_8080/md5/ObjectFactory.java | 89 -- .../localhost/_8080/md5/package-info.class | Bin 250 -> 0 bytes .../jax/localhost/_8080/md5/package-info.java | 2 - lab2/md5/client/Exception.class | Bin 655 -> 0 bytes lab2/md5/client/Exception.java | 60 - lab2/md5/client/Exception_Exception.class | Bin 754 -> 0 bytes lab2/md5/client/Exception_Exception.java | 54 - lab2/md5/client/MD5.class | Bin 1080 -> 0 bytes lab2/md5/client/MD5.java | 46 - lab2/md5/client/MD5ImplService.class | Bin 2226 -> 0 bytes lab2/md5/client/MD5ImplService.java | 94 -- lab2/md5/client/ObjectFactory.class | Bin 1089 -> 0 bytes lab2/md5/client/ObjectFactory.java | 53 - lab2/md5/client/package-info.class | Bin 230 -> 0 bytes lab2/md5/client/package-info.java | 2 - lab2/md5/endpoint/MD5Publisher.class | Bin 682 -> 0 bytes lab2/md5/endpoint/MD5Publisher.java | 15 - lab2/md5/ws/MD5.class | Bin 503 -> 0 bytes lab2/md5/ws/MD5.java | 15 - lab2/md5/ws/MD5Impl.class | Bin 1132 -> 0 bytes lab2/md5/ws/MD5Impl.java | 44 - lab2/md5_client/Exception.class | Bin 655 -> 0 bytes lab2/md5_client/Exception.java | 60 - lab2/md5_client/Exception_Exception.class | Bin 754 -> 0 bytes lab2/md5_client/Exception_Exception.java | 54 - lab2/md5_client/MD5.class | Bin 1080 -> 0 bytes lab2/md5_client/MD5.java | 46 - lab2/md5_client/MD5ImplService.class | Bin 2226 -> 0 bytes lab2/md5_client/MD5ImplService.java | 94 -- lab2/md5_client/ObjectFactory.class | Bin 1089 -> 0 bytes lab2/md5_client/ObjectFactory.java | 53 - lab2/md5_client/package-info.class | Bin 230 -> 0 bytes lab2/md5_client/package-info.java | 2 - lab2/msg_list.c | 59 - lab2/msg_list.h | 15 - lab2/msg_list.o | Bin 5040 -> 0 bytes lab2/read_line.c | 68 - lab2/read_line.h | 5 - lab2/read_line.o | Bin 4784 -> 0 bytes lab2/rpc_store_service (copy)/Makefile | 47 - lab2/rpc_store_service (copy)/store_service.h | 97 -- lab2/rpc_store_service (copy)/store_service.x | 18 - .../store_service_client | Bin 24408 -> 0 bytes .../store_service_client.c | 129 -- .../store_service_client.o | Bin 14864 -> 0 bytes .../store_service_clnt.c | 54 - .../store_service_clnt.o | Bin 12720 -> 0 bytes .../store_service_server | Bin 29184 -> 0 bytes .../store_service_server.c | 200 --- .../store_service_server.o | Bin 16696 -> 0 bytes .../store_service_svc.c | 143 -- .../store_service_svc.o | Bin 20616 -> 0 bytes .../store_service_xdr.c | 46 - .../store_service_xdr.o | Bin 7440 -> 0 bytes lab2/rpc_store_service/Makefile | 47 - lab2/rpc_store_service/segurodevida.c | 182 --- lab2/rpc_store_service/store_service.h | 93 -- lab2/rpc_store_service/store_service_client | Bin 24328 -> 0 bytes lab2/rpc_store_service/store_service_client.c | 135 -- lab2/rpc_store_service/store_service_client.o | Bin 15456 -> 0 bytes lab2/rpc_store_service/store_service_clnt.c | 53 - lab2/rpc_store_service/store_service_clnt.o | Bin 12696 -> 0 bytes lab2/rpc_store_service/store_service_server | Bin 28960 -> 0 bytes lab2/rpc_store_service/store_service_server.c | 161 -- lab2/rpc_store_service/store_service_server.o | Bin 15752 -> 0 bytes lab2/rpc_store_service/store_service_svc.c | 143 -- lab2/rpc_store_service/store_service_svc.o | Bin 20624 -> 0 bytes lab2/rpc_store_service/store_service_xdr.c | 44 - lab2/rpc_store_service/store_service_xdr.o | Bin 7200 -> 0 bytes lab2/segurodevida.c | 182 --- lab2/server | Bin 37168 -> 0 bytes lab2/server.c | 629 -------- lab2/server.h | 27 - lab2/server.o | Bin 34632 -> 0 bytes lab2/servidor/Makefile | 26 - lab2/servidor/msg_list.c | 55 - lab2/servidor/msg_list.h | 13 - lab2/servidor/read_line.c | 88 -- lab2/servidor/read_line.h | 5 - lab2/servidor/server.c | 308 ---- lab2/servidor/server.h | 22 - lab2/servidor/user_list.c | 200 --- lab2/servidor/user_list.h | 31 - lab2/test | Bin 20400 -> 0 bytes lab2/test.c | 70 - lab2/user_list.c | 246 --- lab2/user_list.h | 27 - lab2/user_list.o | Bin 10016 -> 0 bytes lab2_pruebas.zip | Bin 245281 -> 0 bytes lab2_pruebas/.DS_Store | Bin 6148 -> 0 bytes lab2_pruebas/Makefile | 54 - lab2_pruebas/authors.txt | 2 - lab2_pruebas/client.java | 743 --------- lab2_pruebas/gnu/getopt/COPYING.LIB | 482 ------ lab2_pruebas/gnu/getopt/ChangeLog | 114 -- lab2_pruebas/gnu/getopt/Getopt.java | 1337 ----------------- lab2_pruebas/gnu/getopt/GetoptDemo.java | 97 -- lab2_pruebas/gnu/getopt/LANGUAGES | 23 - lab2_pruebas/gnu/getopt/LongOpt.java | 195 --- lab2_pruebas/gnu/getopt/Makefile | 7 - .../gnu/getopt/MessagesBundle.properties | 33 - .../gnu/getopt/MessagesBundle_chs.properties | 33 - .../gnu/getopt/MessagesBundle_cht.properties | 33 - .../gnu/getopt/MessagesBundle_cs.properties | 33 - .../gnu/getopt/MessagesBundle_de.properties | 33 - .../gnu/getopt/MessagesBundle_es.properties | 33 - .../gnu/getopt/MessagesBundle_fr.properties | 35 - .../gnu/getopt/MessagesBundle_hu.properties | 32 - .../gnu/getopt/MessagesBundle_it.properties | 32 - .../gnu/getopt/MessagesBundle_ja.properties | 32 - .../gnu/getopt/MessagesBundle_nl.properties | 32 - .../gnu/getopt/MessagesBundle_no.properties | 32 - .../gnu/getopt/MessagesBundle_pl.properties | 36 - .../gnu/getopt/MessagesBundle_ro.properties | 34 - lab2_pruebas/gnu/getopt/README | 57 - lab2_pruebas/gnu/getopt/buildx.xml | 68 - .../gnu/getopt/gnu.getopt.Getopt.html | 639 -------- .../gnu/getopt/gnu.getopt.LongOpt.html | 210 --- lab2_pruebas/lists/msg_list.c | 59 - lab2_pruebas/lists/msg_list.h | 15 - lab2_pruebas/lists/read_line.c | 68 - lab2_pruebas/lists/read_line.h | 5 - lab2_pruebas/lists/user_list.c | 246 --- lab2_pruebas/lists/user_list.h | 27 - lab2_pruebas/md5/client/Exception.java | 60 - .../md5/client/Exception_Exception.java | 54 - lab2_pruebas/md5/client/MD5.java | 46 - lab2_pruebas/md5/client/MD5ImplService.java | 94 -- lab2_pruebas/md5/client/ObjectFactory.java | 53 - lab2_pruebas/md5/client/package-info.java | 2 - .../md5/server/endpoint/MD5Publisher.java | 27 - lab2_pruebas/md5/server/ws/MD5.java | 15 - lab2_pruebas/md5/server/ws/MD5Impl.java | 34 - lab2_pruebas/md5_client/Exception.java | 60 - .../md5_client/Exception_Exception.java | 54 - lab2_pruebas/md5_client/MD5.java | 46 - lab2_pruebas/md5_client/MD5ImplService.java | 94 -- lab2_pruebas/md5_client/ObjectFactory.java | 53 - lab2_pruebas/md5_client/package-info.java | 2 - lab2_pruebas/monitor.c | 53 - .../rpc_store_service (copy)/Makefile | 47 - .../rpc_store_service (copy)/store_service.h | 97 -- .../rpc_store_service (copy)/store_service.x | 18 - .../store_service_client | Bin 24408 -> 0 bytes .../store_service_client.c | 129 -- .../store_service_clnt.c | 54 - .../store_service_server | Bin 29184 -> 0 bytes .../store_service_server.c | 200 --- .../store_service_svc.c | 143 -- .../store_service_xdr.c | 46 - lab2_pruebas/rpc_store_service/segurodevida.c | 182 --- .../rpc_store_service/store_service.h | 93 -- .../rpc_store_service/store_service.x | 17 - .../rpc_store_service/store_service_clnt.c | 53 - .../rpc_store_service/store_service_svc.c | 155 -- .../rpc_store_service/store_service_xdr.c | 44 - lab2_pruebas/segurodevida.c | 182 --- lab2_pruebas/server.c | 682 --------- lab2_pruebas/server.h | 30 - lab2_pruebas/servidor/Makefile | 28 - lab2_pruebas/servidor/msg_list.c | 55 - lab2_pruebas/servidor/msg_list.h | 13 - lab2_pruebas/servidor/read_line.c | 88 -- lab2_pruebas/servidor/read_line.h | 5 - lab2_pruebas/servidor/server.c | 308 ---- lab2_pruebas/servidor/server.h | 22 - lab2_pruebas/servidor/user_list.c | 200 --- lab2_pruebas/servidor/user_list.h | 31 - .../Makefile | 0 .../gnu/getopt/COPYING.LIB | 0 .../gnu/getopt/ChangeLog | 0 .../gnu/getopt/Getopt.class | Bin .../gnu/getopt/Getopt.java | 0 .../gnu/getopt/GetoptDemo.class | Bin .../gnu/getopt/GetoptDemo.java | 0 .../gnu/getopt/LANGUAGES | 0 .../gnu/getopt/LongOpt.class | Bin .../gnu/getopt/LongOpt.java | 0 .../gnu/getopt/Makefile | 0 .../gnu/getopt/MessagesBundle.properties | 0 .../gnu/getopt/MessagesBundle_chs.properties | 0 .../gnu/getopt/MessagesBundle_cht.properties | 0 .../gnu/getopt/MessagesBundle_cs.properties | 0 .../gnu/getopt/MessagesBundle_de.properties | 0 .../gnu/getopt/MessagesBundle_es.properties | 0 .../gnu/getopt/MessagesBundle_fr.properties | 0 .../gnu/getopt/MessagesBundle_hu.properties | 0 .../gnu/getopt/MessagesBundle_it.properties | 0 .../gnu/getopt/MessagesBundle_ja.properties | 0 .../gnu/getopt/MessagesBundle_nl.properties | 0 .../gnu/getopt/MessagesBundle_no.properties | 0 .../gnu/getopt/MessagesBundle_pl.properties | 0 .../gnu/getopt/MessagesBundle_ro.properties | 0 .../gnu/getopt/README | 0 .../gnu/getopt/buildx.xml | 0 .../gnu/getopt/gnu.getopt.Getopt.html | 0 .../gnu/getopt/gnu.getopt.LongOpt.html | 0 ssdd_p2_100291121_100292107.zip | Bin 92257 -> 1036602 bytes ssdd_p2_100291121_100292107/Makefile | 2 +- ssdd_p2_100291121_100292107/README.txt | 2 +- ssdd_p2_100291121_100292107/report.pdf | Bin 981854 -> 982425 bytes .../rpc_store_service/store_service.x | 17 - .../storeServer.c | 0 .../storeServer.x | 0 .../store_service_server.c | 197 --- 303 files changed, 2 insertions(+), 21868 deletions(-) delete mode 100644 lab1/.DS_Store delete mode 100644 lab1/ServerThread.class delete mode 100644 lab1/authors.txt delete mode 100644 lab1/client$1.class delete mode 100644 lab1/client$RC.class delete mode 100644 lab1/client.class delete mode 100644 lab1/client.java delete mode 100644 lab1/lists_old/msg_list.c delete mode 100644 lab1/lists_old/msg_list.h delete mode 100644 lab1/lists_old/test.c delete mode 100644 lab1/lists_old/user_list.c delete mode 100644 lab1/lists_old/user_list.h delete mode 100644 lab1/lists_old2/msg_list.c delete mode 100644 lab1/lists_old2/msg_list.h delete mode 100644 lab1/lists_old2/test.c delete mode 100644 lab1/lists_old2/user_list.c delete mode 100644 lab1/lists_old2/user_list.h delete mode 100644 lab1/msg_list.c delete mode 100644 lab1/msg_list.h delete mode 100644 lab1/read_line.c delete mode 100644 lab1/read_line.h delete mode 100644 lab1/report.pdf delete mode 100644 lab1/server.c delete mode 100644 lab1/server.h delete mode 100644 lab1/servidor.zip delete mode 100644 lab1/servidor/Makefile delete mode 100644 lab1/servidor/msg_list.c delete mode 100644 lab1/servidor/msg_list.h delete mode 100644 lab1/servidor/read_line.c delete mode 100644 lab1/servidor/read_line.h delete mode 100644 lab1/servidor/server.c delete mode 100644 lab1/servidor/server.h delete mode 100644 lab1/servidor/user_list.c delete mode 100644 lab1/servidor/user_list.h delete mode 100644 lab1/ssdd_p1_100291121_100292107.zip delete mode 100755 lab1/test delete mode 100644 lab1/test.c delete mode 100644 lab1/user_list.c delete mode 100644 lab1/user_list.h delete mode 100644 lab2/.DS_Store delete mode 100644 lab2/MD5Client.class delete mode 100644 lab2/Makefile delete mode 100644 lab2/ServerThread.class delete mode 100644 lab2/authors.txt delete mode 100644 lab2/client$1.class delete mode 100644 lab2/client$RC.class delete mode 100644 lab2/client.class delete mode 100644 lab2/client.java delete mode 100755 lab2/gnu/getopt/COPYING.LIB delete mode 100755 lab2/gnu/getopt/ChangeLog delete mode 100755 lab2/gnu/getopt/Getopt.class delete mode 100755 lab2/gnu/getopt/Getopt.java delete mode 100755 lab2/gnu/getopt/GetoptDemo.class delete mode 100755 lab2/gnu/getopt/GetoptDemo.java delete mode 100755 lab2/gnu/getopt/LANGUAGES delete mode 100755 lab2/gnu/getopt/LongOpt.class delete mode 100755 lab2/gnu/getopt/LongOpt.java delete mode 100755 lab2/gnu/getopt/Makefile delete mode 100755 lab2/gnu/getopt/MessagesBundle.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_chs.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_cht.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_cs.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_de.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_es.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_fr.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_hu.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_it.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_ja.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_nl.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_no.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_pl.properties delete mode 100755 lab2/gnu/getopt/MessagesBundle_ro.properties delete mode 100755 lab2/gnu/getopt/README delete mode 100755 lab2/gnu/getopt/buildx.xml delete mode 100755 lab2/gnu/getopt/gnu.getopt.Getopt.html delete mode 100755 lab2/gnu/getopt/gnu.getopt.LongOpt.html delete mode 100644 lab2/jax/MD5.class delete mode 100644 lab2/jax/MD5.java delete mode 100644 lab2/jax/MD5Client.class delete mode 100644 lab2/jax/MD5Client.java delete mode 100644 lab2/jax/MD5Impl.class delete mode 100644 lab2/jax/MD5Impl.java delete mode 100644 lab2/jax/MD5Publisher.class delete mode 100644 lab2/jax/MD5Publisher.java delete mode 100644 lab2/jax/localhost/_8080/md5/Exception.class delete mode 100644 lab2/jax/localhost/_8080/md5/Exception.java delete mode 100644 lab2/jax/localhost/_8080/md5/Exception_Exception.class delete mode 100644 lab2/jax/localhost/_8080/md5/Exception_Exception.java delete mode 100644 lab2/jax/localhost/_8080/md5/MD5.class delete mode 100644 lab2/jax/localhost/_8080/md5/MD5.java delete mode 100644 lab2/jax/localhost/_8080/md5/MD5Client.java delete mode 100644 lab2/jax/localhost/_8080/md5/MD5Impl.class delete mode 100644 lab2/jax/localhost/_8080/md5/MD5Impl.java delete mode 100644 lab2/jax/localhost/_8080/md5/MD5ImplService.class delete mode 100644 lab2/jax/localhost/_8080/md5/MD5ImplService.java delete mode 100644 lab2/jax/localhost/_8080/md5/MD5Response.class delete mode 100644 lab2/jax/localhost/_8080/md5/MD5Response.java delete mode 100644 lab2/jax/localhost/_8080/md5/ObjectFactory.class delete mode 100644 lab2/jax/localhost/_8080/md5/ObjectFactory.java delete mode 100644 lab2/jax/localhost/_8080/md5/package-info.class delete mode 100644 lab2/jax/localhost/_8080/md5/package-info.java delete mode 100644 lab2/md5/client/Exception.class delete mode 100644 lab2/md5/client/Exception.java delete mode 100644 lab2/md5/client/Exception_Exception.class delete mode 100644 lab2/md5/client/Exception_Exception.java delete mode 100644 lab2/md5/client/MD5.class delete mode 100644 lab2/md5/client/MD5.java delete mode 100644 lab2/md5/client/MD5ImplService.class delete mode 100644 lab2/md5/client/MD5ImplService.java delete mode 100644 lab2/md5/client/ObjectFactory.class delete mode 100644 lab2/md5/client/ObjectFactory.java delete mode 100644 lab2/md5/client/package-info.class delete mode 100644 lab2/md5/client/package-info.java delete mode 100644 lab2/md5/endpoint/MD5Publisher.class delete mode 100644 lab2/md5/endpoint/MD5Publisher.java delete mode 100644 lab2/md5/ws/MD5.class delete mode 100644 lab2/md5/ws/MD5.java delete mode 100644 lab2/md5/ws/MD5Impl.class delete mode 100644 lab2/md5/ws/MD5Impl.java delete mode 100644 lab2/md5_client/Exception.class delete mode 100644 lab2/md5_client/Exception.java delete mode 100644 lab2/md5_client/Exception_Exception.class delete mode 100644 lab2/md5_client/Exception_Exception.java delete mode 100644 lab2/md5_client/MD5.class delete mode 100644 lab2/md5_client/MD5.java delete mode 100644 lab2/md5_client/MD5ImplService.class delete mode 100644 lab2/md5_client/MD5ImplService.java delete mode 100644 lab2/md5_client/ObjectFactory.class delete mode 100644 lab2/md5_client/ObjectFactory.java delete mode 100644 lab2/md5_client/package-info.class delete mode 100644 lab2/md5_client/package-info.java delete mode 100644 lab2/msg_list.c delete mode 100644 lab2/msg_list.h delete mode 100644 lab2/msg_list.o delete mode 100644 lab2/read_line.c delete mode 100644 lab2/read_line.h delete mode 100644 lab2/read_line.o delete mode 100644 lab2/rpc_store_service (copy)/Makefile delete mode 100644 lab2/rpc_store_service (copy)/store_service.h delete mode 100644 lab2/rpc_store_service (copy)/store_service.x delete mode 100755 lab2/rpc_store_service (copy)/store_service_client delete mode 100644 lab2/rpc_store_service (copy)/store_service_client.c delete mode 100644 lab2/rpc_store_service (copy)/store_service_client.o delete mode 100644 lab2/rpc_store_service (copy)/store_service_clnt.c delete mode 100644 lab2/rpc_store_service (copy)/store_service_clnt.o delete mode 100755 lab2/rpc_store_service (copy)/store_service_server delete mode 100644 lab2/rpc_store_service (copy)/store_service_server.c delete mode 100644 lab2/rpc_store_service (copy)/store_service_server.o delete mode 100644 lab2/rpc_store_service (copy)/store_service_svc.c delete mode 100644 lab2/rpc_store_service (copy)/store_service_svc.o delete mode 100644 lab2/rpc_store_service (copy)/store_service_xdr.c delete mode 100644 lab2/rpc_store_service (copy)/store_service_xdr.o delete mode 100644 lab2/rpc_store_service/Makefile delete mode 100644 lab2/rpc_store_service/segurodevida.c delete mode 100644 lab2/rpc_store_service/store_service.h delete mode 100755 lab2/rpc_store_service/store_service_client delete mode 100644 lab2/rpc_store_service/store_service_client.c delete mode 100644 lab2/rpc_store_service/store_service_client.o delete mode 100644 lab2/rpc_store_service/store_service_clnt.c delete mode 100644 lab2/rpc_store_service/store_service_clnt.o delete mode 100755 lab2/rpc_store_service/store_service_server delete mode 100644 lab2/rpc_store_service/store_service_server.c delete mode 100644 lab2/rpc_store_service/store_service_server.o delete mode 100644 lab2/rpc_store_service/store_service_svc.c delete mode 100644 lab2/rpc_store_service/store_service_svc.o delete mode 100644 lab2/rpc_store_service/store_service_xdr.c delete mode 100644 lab2/rpc_store_service/store_service_xdr.o delete mode 100644 lab2/segurodevida.c delete mode 100755 lab2/server delete mode 100644 lab2/server.c delete mode 100644 lab2/server.h delete mode 100644 lab2/server.o delete mode 100644 lab2/servidor/Makefile delete mode 100644 lab2/servidor/msg_list.c delete mode 100644 lab2/servidor/msg_list.h delete mode 100644 lab2/servidor/read_line.c delete mode 100644 lab2/servidor/read_line.h delete mode 100644 lab2/servidor/server.c delete mode 100644 lab2/servidor/server.h delete mode 100644 lab2/servidor/user_list.c delete mode 100644 lab2/servidor/user_list.h delete mode 100755 lab2/test delete mode 100644 lab2/test.c delete mode 100644 lab2/user_list.c delete mode 100644 lab2/user_list.h delete mode 100644 lab2/user_list.o delete mode 100644 lab2_pruebas.zip delete mode 100644 lab2_pruebas/.DS_Store delete mode 100644 lab2_pruebas/Makefile delete mode 100644 lab2_pruebas/authors.txt delete mode 100644 lab2_pruebas/client.java delete mode 100755 lab2_pruebas/gnu/getopt/COPYING.LIB delete mode 100755 lab2_pruebas/gnu/getopt/ChangeLog delete mode 100755 lab2_pruebas/gnu/getopt/Getopt.java delete mode 100755 lab2_pruebas/gnu/getopt/GetoptDemo.java delete mode 100755 lab2_pruebas/gnu/getopt/LANGUAGES delete mode 100755 lab2_pruebas/gnu/getopt/LongOpt.java delete mode 100755 lab2_pruebas/gnu/getopt/Makefile delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_chs.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_cht.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_cs.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_de.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_es.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_fr.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_hu.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_it.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_ja.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_nl.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_no.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_pl.properties delete mode 100755 lab2_pruebas/gnu/getopt/MessagesBundle_ro.properties delete mode 100755 lab2_pruebas/gnu/getopt/README delete mode 100755 lab2_pruebas/gnu/getopt/buildx.xml delete mode 100755 lab2_pruebas/gnu/getopt/gnu.getopt.Getopt.html delete mode 100755 lab2_pruebas/gnu/getopt/gnu.getopt.LongOpt.html delete mode 100644 lab2_pruebas/lists/msg_list.c delete mode 100644 lab2_pruebas/lists/msg_list.h delete mode 100644 lab2_pruebas/lists/read_line.c delete mode 100644 lab2_pruebas/lists/read_line.h delete mode 100644 lab2_pruebas/lists/user_list.c delete mode 100644 lab2_pruebas/lists/user_list.h delete mode 100644 lab2_pruebas/md5/client/Exception.java delete mode 100644 lab2_pruebas/md5/client/Exception_Exception.java delete mode 100644 lab2_pruebas/md5/client/MD5.java delete mode 100644 lab2_pruebas/md5/client/MD5ImplService.java delete mode 100644 lab2_pruebas/md5/client/ObjectFactory.java delete mode 100644 lab2_pruebas/md5/client/package-info.java delete mode 100644 lab2_pruebas/md5/server/endpoint/MD5Publisher.java delete mode 100644 lab2_pruebas/md5/server/ws/MD5.java delete mode 100644 lab2_pruebas/md5/server/ws/MD5Impl.java delete mode 100644 lab2_pruebas/md5_client/Exception.java delete mode 100644 lab2_pruebas/md5_client/Exception_Exception.java delete mode 100644 lab2_pruebas/md5_client/MD5.java delete mode 100644 lab2_pruebas/md5_client/MD5ImplService.java delete mode 100644 lab2_pruebas/md5_client/ObjectFactory.java delete mode 100644 lab2_pruebas/md5_client/package-info.java delete mode 100644 lab2_pruebas/monitor.c delete mode 100644 lab2_pruebas/rpc_store_service (copy)/Makefile delete mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service.h delete mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service.x delete mode 100755 lab2_pruebas/rpc_store_service (copy)/store_service_client delete mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_client.c delete mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_clnt.c delete mode 100755 lab2_pruebas/rpc_store_service (copy)/store_service_server delete mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_server.c delete mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_svc.c delete mode 100644 lab2_pruebas/rpc_store_service (copy)/store_service_xdr.c delete mode 100644 lab2_pruebas/rpc_store_service/segurodevida.c delete mode 100644 lab2_pruebas/rpc_store_service/store_service.h delete mode 100644 lab2_pruebas/rpc_store_service/store_service.x delete mode 100644 lab2_pruebas/rpc_store_service/store_service_clnt.c delete mode 100644 lab2_pruebas/rpc_store_service/store_service_svc.c delete mode 100644 lab2_pruebas/rpc_store_service/store_service_xdr.c delete mode 100644 lab2_pruebas/segurodevida.c delete mode 100644 lab2_pruebas/server.c delete mode 100644 lab2_pruebas/server.h delete mode 100644 lab2_pruebas/servidor/Makefile delete mode 100644 lab2_pruebas/servidor/msg_list.c delete mode 100644 lab2_pruebas/servidor/msg_list.h delete mode 100644 lab2_pruebas/servidor/read_line.c delete mode 100644 lab2_pruebas/servidor/read_line.h delete mode 100644 lab2_pruebas/servidor/server.c delete mode 100644 lab2_pruebas/servidor/server.h delete mode 100644 lab2_pruebas/servidor/user_list.c delete mode 100644 lab2_pruebas/servidor/user_list.h rename {lab1 => ssdd_p1_100291121_100292107}/Makefile (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/COPYING.LIB (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/ChangeLog (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/Getopt.class (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/Getopt.java (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/GetoptDemo.class (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/GetoptDemo.java (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/LANGUAGES (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/LongOpt.class (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/LongOpt.java (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/Makefile (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_chs.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_cht.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_cs.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_de.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_es.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_fr.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_hu.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_it.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_ja.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_nl.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_no.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_pl.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/MessagesBundle_ro.properties (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/README (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/buildx.xml (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/gnu.getopt.Getopt.html (100%) rename {lab1 => ssdd_p1_100291121_100292107}/gnu/getopt/gnu.getopt.LongOpt.html (100%) delete mode 100644 ssdd_p2_100291121_100292107/rpc_store_service/store_service.x rename lab2_pruebas/store_service_server.c => ssdd_p2_100291121_100292107/storeServer.c (100%) rename lab2/rpc_store_service/store_service.x => ssdd_p2_100291121_100292107/storeServer.x (100%) delete mode 100644 ssdd_p2_100291121_100292107/store_service_server.c diff --git a/lab1/.DS_Store b/lab1/.DS_Store deleted file mode 100644 index 887cb27fefb12a89fc35700acd34f6898032bf7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~JqiLr422W55Nx)zoW=uqgF*BJUO;rgMzj$7Il3=DEVx>W$O|NICY!MASL{qg zL^qFqEz*g|9BwKr3nNqPr*f97Jo@|Ta=hIxL&YRlRs-*3^n57ff&@r_1W14cNZ@A( z*trdxFG3kffCNZjAYlK80ynLxE!2M<2tEQpXGptY?Xv{5SOQv8TPQLxjaF#1s*fR- z_jYK>x|-TTqg^zI56w5LO))TycF}?jOsfk636Q{uz%=%qo&P)dr}=->!Yv7qz@HJ& z*>=C(;G^KmuPS@C2_M B5p@6n diff --git a/lab1/ServerThread.class b/lab1/ServerThread.class deleted file mode 100644 index bdac80ca7fc94d29f3ef030de714ba5d1948bc11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2537 zcmaJ?`)?Fg6#nk%c4u}wwe7a0-P+1l5&NK2c~ohk$hHNmeE^F{@qyFr&@Nqem)+S) z<)Mfu4~+@Y81NAdk!nm-P!^@45>cbS_zxIk;*b1dNN8eGz;kDJ+gWMYbnd+~_nhy1 z_dDm@{&wTScL0{+H8%);1s!tkbfE!Va7Hwxfa(J$xq za@Zh;jcx?6NxDAn#%4UBV2gAdaH9-c6+G!i1^n{mDQW$*e0@g6HaS15LRT@UBB)|W zg`r}*ieZU2q9UYXhk{WzGYKo$DL{#!Kt<0EeN1nT7-n<8h>scZKr}dNm~8^eU^o;R zHR1xEv`tu#3^#8Yi5vP5Z&PAOpv2~#^>eNaMM7q~Kwe$_W&uY>bjT1W>Ip@RzU0n9 zBfd!=4D*-#gsI0(fvP$ih@FDvJsJv!1quVE9vtn}W0o&V$msE8gvDlcSQ9=EA5Fj= zh$iDfV{J$VCqYB+$GB-4XACrHQB@G=fb=vOqnio*h0 zpsTNQTW?n&ux4GCh9fvC^~-+Swx)x{Q#0E>0jF>6#{OPjh*o}FEG(Py7;Iq63?nVt9rO7g5hX_ zb7xCbU_4#7G^{jSAATCFz9*Y?fF3Bc)w6sKR^|k`e$r3x}*!K_a zFoNc7?Nu|Hh7c&LyA_xbX9~u~klQIH`GzBWgt-{98im1RJkAB1)h!o(rt!*WMYDB_ zR3Ip;ljCP;%?it`?ie;qTTRKdWZ28no-H;ut;`Vo--gVXD!bo5ZgPsaz5N2!bse{g zkm&)2Qb+W}Ncsj~`)+1w>`LlkZk!wyvbt~O3b1s7kFP1>do_2~=i?HZjj~ z$MF=Zm}y_RZzC zd3i0$1d93nF6-UtXi>@)b`_n{k01H-@*{SKOTcW6-KglbdB_^$IN2IYp?>1}RMr%=w>Le*2`Ld*#WmE?JgOld z>M~V%R`wk2g@g9NMf*`g2T)B1(MX4|ln!GB9YKJOVGF$uo!-C?bR56ZoA{mH!WDWO z|IkTH(L2IJ?}`d~U-;+)v5-C#emW)A(MKXir^Qj45Xb3bagsg}@6l)C6n!qfr!T~1 zIxGIBFU1u~iK}!`T%&Kq6kVVq`j$%RA~U_jTz@7X{YbTRnOf;5YNubUZs|waG+YYW zuA^STN(HN?F<;!kGG6hYDAKB?q4KKMQ9F%7x%d}b`DwfEF6I7!P8PUP%T^27XOzgi3g7! z{87d!5IoqVGqcn0?Y`-L|9pG`ILEP$I5u@;kc+~WhP;MthQy^Ko$!i5t=8@tVl8hZ z7&4Y4MRztG3V*|x(P35N{HrL1zs00yHirSMxW4+0S|WTVaME|=r_VB!lt zBF9UfyiU18o(k1R>yPS(J{{SNX3@EAiy){p8V!bgwf3JPX5<96M@QPBh9d^0*J3DF z|D!c)WwY06GHk3DXdp&^HhL6#X*L=nNmYq5O@#Q#JJ=f)q*?&fRNA!C*XYFxP0yix zL8mx}`VeW9g(eM^$~zwnMhNP(Y6s)96R}yIVcPUGp z(P;MBKgxLDgKUu5Cimvvciy?@p7zh*AHM|C4 zBVMY=^1Q1e$8$}=9z&%2j)K`@FphoS8Mi!pGI1shdS~FdjvtiFR-GZ*HqEZdpq*H4 z^K4!yrPHI%N!y~kAD7UvOWO-MNwQp7K9O6aPYy$>P&^ohQ8w>nx zKfGuxkRQ^nnl%c?1Lv*Fb?Gw~cDW=254gX11F!H}!9LBo^~k^)-Wb@x<9SFSV<5{z z4jFRdZYMsI936Ngp9bX0l?6TB{<$*9)zLxEyUoFxgrhV?mq3lY)P zvyiLb5xs$Y|3ZZOLO?#C2#H=msqU;_Blh(kdyzU3Jb{X*6lba&QpumApOAYQMY@K1 zg}5j*Srob`jHoCQv0sFfrt}~5E7&HxBvQwRZ(>X2 P67|Un5+S3EbhGdeCFY_J diff --git a/lab1/client.class b/lab1/client.class deleted file mode 100644 index f1ded5542ed0ff0abba6d989cd56e0c1a9b8b04c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7645 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 A#sB~S diff --git a/lab1/client.java b/lab1/client.java deleted file mode 100644 index 11d9e02..0000000 --- a/lab1/client.java +++ /dev/null @@ -1,711 +0,0 @@ -import java.io.*; -import gnu.getopt.Getopt; -import java.net.Socket; -import java.net.ServerSocket; - - -class client { - - /********************* TYPES **********************/ - - /** - * @brief Return codes for the protocol methods - */ - private static enum RC { - OK, - ERROR, - USER_ERROR - }; - - /******************* ATTRIBUTES *******************/ - - private static String _server = null; - private static int _port = -1; - /* Controls the user bound to the client when executing a CONNECT command */ - private static String connected_user = null; - /* Instantiate and prepare an empty ServerThread for further connection */ - private static ServerThread server_thread = new ServerThread(); - - - /********************* METHODS ********************/ - - /** - * @param user - User name to register in the system - * - * @return OK if successful - * @return USER_ERROR if the user is already registered - * @return ERROR if another error occurred - */ - static RC register(String user) - { - // Write your code here - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "REGISTER" is sent indicating the operation - String operation = new String("REGISTER"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be registered - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - System.out.println("c> REGISTER OK"); - return RC.OK; - case 1: - System.out.println("c> USERNAME IN USE"); - return RC.USER_ERROR; - case 2: - System.out.println("c> REGISTER FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> REGISTER FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to unregister from the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist - * @return ERROR if another error occurred - */ - static RC unregister(String user) - { - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "UNREGISTER" is sent indicating the operation - String operation = new String("UNREGISTER"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be unregistered - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* If we try to unregister the user that is currently bound and connected - to the client, it is unbound from the client */ - if(connected_user != null){ - /* This protects against null pointer exception when a CONNECT command is executed and - the server marks the user as connected, but then the client is terminated without - executing DISCONNECT from the server */ - if(connected_user.equals(user)){ - connected_user = null; - /* If the unregister also disconnect a user linked to the client (connected and with a - server thread running, kill also the running thread*/ - server_thread.kill(); - } - } - - System.out.println("c> UNREGISTER OK"); - return RC.OK; - case 1: - System.out.println("c> USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> UNREGISTER FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> UNREGISTER FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to connect to the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist or if it is already connected - * @return ERROR if another error occurred - */ - static RC connect(String user) - { - - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - /* Before trying to connect, if a user is already connected, quit the function with RC.ERROR */ - if(connected_user != null){ - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "CONNECT" is sent indicating the operation - String operation = new String("CONNECT"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be connected - out.writeBytes(user); - out.write(0); - - /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum - number of queued requests */ - ServerSocket sock = new ServerSocket(0, 10); - /* Get the port at which the socket is listening */ - int port = sock.getLocalPort(); - - //4. A string is sent with the port number listening in the client - out.writeBytes(String.valueOf(port)); - out.write(0); - - //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //6. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* Start a new thread where */ - server_thread.start(sock); - /* Bind the user to the client */ - connected_user = user; - System.out.println("c> CONNECT OK"); - return RC.OK; - case 1: - System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> USER ALREADY CONNECTED"); - return RC.USER_ERROR; - case 3: - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to disconnect from the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist or if it is already disconnected - * @return ERROR if another error occurred - */ - static RC disconnect(String user) - { - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "DISCONNECT" is sent indicating the operation - String operation = new String("DISCONNECT"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be disconnected - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* Unbind the user from the client */ - connected_user = null; - server_thread.kill(); - System.out.println("c> DISCONNECT OK"); - return RC.OK; - case 1: - System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); - return RC.USER_ERROR; - case 3: - /* In case of error in the disconnection process, stop the execution of the thread - and unbind the user from the client as if the disconnection has been made. But if the - disconnect command executed was not executed for the user that is bound to the client - then nothing is done */ - if(connected_user != null){ - /* Check if the user coincides with the linked user */ - if(connected_user.equals(user)){ - connected_user = null; - server_thread.kill(); - } - } - System.out.println("c> DISCONNECT FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - /* In case of error in the disconnection process, stop the execution of the thread - and unbind the user from the client as if the disconnection has been made. But if the - disconnect command executed was not executed for the user that is bound to the client - then nothing is done */ - if(connected_user != null){ - /* Check if the user coincides with the linked user */ - if(connected_user.equals(user)){ - connected_user = null; - server_thread.kill(); - } - } - System.out.println("c> DISCONNECT FAIL"); - return RC.ERROR; - } - - /** - * @param user - Receiver user name - * @param message - Message to be sent - * - * @return OK if the server had successfully delivered the message - * @return USER_ERROR if the user is not connected (the message is queued for delivery) - * @return ERROR the user does not exist or another error occurred - */ - static RC send(String user, String message) - { - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - /* If there is not a user connected in the client, return error RC.ERROR */ - if(connected_user == null){ - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - - //2. The string "SEND" is sent indicating the operation - String operation = new String("SEND"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user that sends the message - out.writeBytes(connected_user); - out.write(0); - - //4. A string of characters is sent with the user that receives the message - out.writeBytes(user); - out.write(0); - - //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent - out.writeBytes(trimMessage(message)); //Sends a string of 255 characters - out.write(0); - - //6. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - String msg_id = new String(); - /* If response is 0 (OK), prepare to read the ID of the message */ - if(response == 0){ - - /* Create BufferedReader for easy reading a string */ - /* - BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); - msg_id = inString.readLine();*/ - byte ch; - do{ - ch = in.readByte(); - if (ch != 0) msg_id = msg_id + ((char) ch); - } while(ch != 0); - } - - //7. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - System.out.println("c> SEND OK - MESSAGE " + msg_id); - return RC.OK; - case 1: - System.out.println("c> SEND FAIL / USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - /** - * @brief Trims the input message to 255 characters - * - * @param message - String to be trimmed - * - * @return message - Result String - */ - static String trimMessage(String message){ - /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ - int maxLength = 255; - - if(message.length() > maxLength){ - message = message.substring(0, maxLength); - } - - return message; - } - - /** - * @brief Command interpreter for the client. It calls the protocol functions. - */ - static void shell() - { - boolean exit = false; - String input; - String [] line; - BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - - while (!exit) { - try { - System.out.print("c> "); - input = in.readLine(); - line = input.split("\\s"); - - if (line.length > 0) { - /*********** REGISTER *************/ - if (line[0].equals("REGISTER")) { - if (line.length == 2) { - register(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: REGISTER "); - } - } - - /********** UNREGISTER ************/ - else if (line[0].equals("UNREGISTER")) { - if (line.length == 2) { - unregister(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: UNREGISTER "); - } - } - - /************ CONNECT *************/ - else if (line[0].equals("CONNECT")) { - if (line.length == 2) { - connect(line[1]); // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR - } else { - System.out.println("Syntax error. Usage: CONNECT "); - } - } - - /********** DISCONNECT ************/ - else if (line[0].equals("DISCONNECT")) { - if (line.length == 2) { - disconnect(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: DISCONNECT "); - } - } - - /************** SEND **************/ - else if (line[0].equals("SEND")) { - if (line.length >= 3) { - // Remove first two words - String message = input.substring(input.indexOf(' ')+1); - message = message.substring(message.indexOf(' ')+1); - send(line[1], message); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: SEND "); - } - } - - /************** QUIT **************/ - else if (line[0].equals("QUIT")){ - if (line.length == 1) { - exit = true; - } else { - System.out.println("Syntax error. Use: QUIT"); - } - } - - /************* UNKNOWN ************/ - else { - System.out.println("Error: command '" + line[0] + "' not valid."); - } - } - } catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - } - } - - /** - * @brief Prints program usage - */ - static void usage() - { - System.out.println("Usage: java -cp . client -s -p "); - } - - /** - * @brief Parses program execution arguments - */ - static boolean parseArguments(String [] argv) - { - Getopt g = new Getopt("client", argv, "ds:p:"); - - int c; - String arg; - - while ((c = g.getopt()) != -1) { - switch(c) { - //case 'd': - // _debug = true; - // break; - case 's': - _server = g.getOptarg(); - break; - case 'p': - arg = g.getOptarg(); - _port = Integer.parseInt(arg); - break; - case '?': - System.out.print("getopt() returned " + c + "\n"); - break; // getopt() already printed an error - default: - System.out.print("getopt() returned " + c + "\n"); - } - } - - if (_server == null) - return false; - - if ((_port < 1024) || (_port > 65535)) { - System.out.println("Error: Port must be in the range 1024 <= port <= 65535"); - return false; - } - - return true; - } - - - - /********************* MAIN **********************/ - - public static void main(String[] argv) - { - if(!parseArguments(argv)) { - usage(); - return; - } - - /* Creates a thread that catches Ctrl+C kill command from the CLI and disconnects from the server the - connected user of the client (bound to the client) */ - Runtime.getRuntime().addShutdownHook(new Thread() { - public void run() { - if(connected_user != null){ - disconnect(connected_user); - } - } - }); - - shell(); - System.out.println("+++ FINISHED +++"); - } -} - -/********************* SERVERTHREAD **********************/ - -class ServerThread extends Thread{ - - private ServerSocket sc; //ServerSocket of the listening thread - private volatile Thread blinker; //Thread of type volatile that will be attached to the ServerThread - private Socket sd; - - /** - * @brief Constructor. Starts the server thread and initializes the ServerSocket property - * - * @param sc - Initialized ServerSocket - * - */ - public void start(ServerSocket sc){ - blinker = new Thread(this); - blinker.start(); - this.sc = sc; - } - - /** - * @brief Destroys the server thread - */ - public void kill(){ - try{ - this.sd.close(); - } - catch(IOException e){ - System.out.println("Exception: " + e); - } - blinker = null; - } - - /** - * @brief Main execution code sequence of the server thread. Listens to incoming connections - */ - public void run(){ - Thread thisThread = Thread.currentThread(); - sd = null; - while(blinker == thisThread){ - try{ - /* Waiting for connection */ - sd = this.sc.accept(); - - DataInputStream msg_in = new DataInputStream(sd.getInputStream()); - /* Receive the string encoding the operation */ - String operation = new String(); - byte ch; - do{ - ch = msg_in.readByte(); - if (ch != 0) operation = operation + ((char) ch); - - } while(ch != 0); - /* Prepare the string for the ID of the message sent/received */ - String id = new String(); - - switch(operation){ - case "SEND_MESSAGE": - /* Read the sender username from the socket */ - String sender = new String(); - do{ - ch = msg_in.readByte(); - if (ch != 0) sender = sender + ((char) ch); - - } while(ch != 0); - /* Read the ID of the received message */ - do{ - ch = msg_in.readByte(); - if (ch != 0) id = id + ((char) ch); - } while(ch != 0); - /* Read the string containing the body of the message */ - String msg = new String(); - do{ - ch = msg_in.readByte(); - if (ch != 0) msg = msg + ((char) ch); - - } while(ch != 0); - /* Prompt */ - System.out.println("MESSAGE " + id + " FROM " + sender + ":"); - System.out.println("\t" + msg); - System.out.println("END"); - System.out.print("c> "); - break; - - case "SEND_MESS_ACK": - /* Read the id of the message being acknowledged */ - do{ - ch = msg_in.readByte(); - if (ch != 0) id = id + ((char) ch); - } while(ch != 0); - - System.out.println("SEND MESSAGE " + id + " OK"); - System.out.print("c> "); - break; - } - sd.close(); - - } - catch(Exception e){ - System.out.println("Exception: " + e); - //e.printStackTrace(); - this.kill(); - } - } - /* If the thread exits the loop for any reason, try to close the socket */ - try{ - sd.close(); - } - catch(Exception e){ - System.out.println("Exception: " + e); - this.kill(); - } - } -} diff --git a/lab1/lists_old/msg_list.c b/lab1/lists_old/msg_list.c deleted file mode 100644 index f5b00d9..0000000 --- a/lab1/lists_old/msg_list.c +++ /dev/null @@ -1,158 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" - - -/* Returns 1 if already registered; 0 if registered correctly */ -int enqueueMsg(struct user *usr, char * msg, unsigned int id){ - struct pend_msg *msg_head = usr->pend_msg_head; - struct pend_msg *temp; - temp = (struct pend_msg *) malloc(sizeof(struct pend_msg)); - strcpy(temp->pend_msg, msg); - temp->id = id; - /* - printf("MESSAGE TO BE QUEUED: \n"); - printf("\tBODY: %s", temp->pend_msg); - printf("\tID: %d", temp->id); - printf("MESSAGE HEAD POINTER IS:\n"); - printf("\tBODY: %s", msg_head->pend_msg); - printf("\tID: %d", msg_head->id); - if(msg_head->next == NULL){ - printf("HEAD->NEXT IS NULL!\n"); - } - else{ - printf("HEAD->NEXT IS NOT NULL\n"); - }*/ - - if (msg_head == NULL){ //If list is empty - printf("MSG_HEAD IS NULL!\n"); - msg_head = temp; - msg_head->next = NULL; - printf("MESSAGE ENQUEUED\n"); - return 1; - - } - else{ - printf("MSG_HEAD IS NOT NULL!\n"); - temp->next = msg_head; - msg_head = temp; - printf("MESSAGE ENQUEUED\n"); - return 1; - - } - - printf("MESSAGE NOT ENQUEUED\n"); - return 0; -} - -/* Deletes the message at the head of the queue -void removeMsg(){ - struct pend_msg *temp = msg_head; - //Head pointing to the next element - msg_head = temp->next; - //Free the resources of the first message - free(temp); - return; -}*/ - -/* Retrieves the message at the head of the queue */ -/* -struct pend_msg * peekMsg(struct pend_msg * msg_head){ - struct user *temp = user_head; - - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->msg_head; - } - temp = temp->next; - } - - return NULL; -} -*/ - -void printMsgs(struct pend_msg * msg_head){ - printf("INSIDE THE PRINT MSGS FUNCTION!\n"); - struct pend_msg *temp = msg_head; - if(temp == NULL){ - return; - } - - while(temp != NULL){ - printf("Message ID: %d", temp->id); - printf("Message body: %s", temp->pend_msg); - temp = temp->next; - } - - return; -} -/* -void addafter(int num, int loc){ - int i; - struct pend_msg *temp,*left,*right; - right = msg_head; - for(i=1;inext; - } - temp = (struct pend_msg *)malloc(sizeof(struct pend_msg)); - temp->data = num; - left->next = temp; - left = temp; - left->next = right; - return; -} - - - -void insert(int num){ - int c = 0; - struct pend_msg *temp; - temp = msg_head; - if(temp == NULL){ - add(num); - } - else{ - while(temp != NULL){ - if(temp->data < num) - c++; - temp = temp->next; - } - if(c == 0) - add(num); - else if(c < count()) - addafter(num,++c); - else - append(num); - } -} - - -void printMsgs(){ - struct pend_msg *temp; - temp = msg_head; - if(temp == NULL){ - return; - } - while(temp != NULL){ - printf("%s ", temp->pend_msg); - temp = temp->next; - printf("\n"); - } -} - - /* -int count(){ - struct pend_msg *n; - int c = 0; - n = msg_head; - - while(n != NULL){ - n = n->next; - c++; - } - - return c; -}*/ diff --git a/lab1/lists_old/msg_list.h b/lab1/lists_old/msg_list.h deleted file mode 100644 index f8850ad..0000000 --- a/lab1/lists_old/msg_list.h +++ /dev/null @@ -1,19 +0,0 @@ -#include "user_list.h" -#define MAX_MSG 256 - -/* -struct pend_msg{ - char pend_msg[MAX_MSG]; - unsigned int id; - struct pend_msg *next; -} *msg_head;*/ -struct pend_msg{ - char pend_msg[MAX_MSG]; - unsigned int id; - struct pend_msg *next; -}; - - -int enqueueMsg(struct user *usr, char * msg, unsigned int id); -void removeMsg(); -void printMsgs(struct pend_msg * msg_head); diff --git a/lab1/lists_old/test.c b/lab1/lists_old/test.c deleted file mode 100644 index f5cd026..0000000 --- a/lab1/lists_old/test.c +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" -#include "msg_list.h" - - -int main(void){ - char line[MAX_MSG]; - - //struct user * user_head = (struct user *) malloc(sizeof(struct user)); - while(1){ - printf("USER LISTS. CHOOSE ACTION:\n"); - printf("\t1: Register\n"); - printf("\t2: Unegister\n"); - printf("\t3: Connect\n"); - printf("\t4: Disconnect\n"); - printf("\t5: Send message\n"); - readLine(0, line, MAX_MSG); - if(strcmp(line, "1") == 0){ - printf("Username: \n"); - readLine(0, line, MAX_MSG); - int res = registerUser(line); - if(!res){ - printf("USER ADDED\n"); - printUsers(); - } - else{ - printf("ERROR: ALREADY EXISTS!\n"); - printUsers(); - } - - } - else if(strcmp(line, "2") == 0){ - readLine(0, line, MAX_MSG); - int res = unregisterUser(line); - if(!res){ - printf("USER DELETED\n"); - printUsers(); - } - else{ - printf("ERROR: DOES NOT EXIST!\n"); - printUsers(); - } - } - else if(strcmp(line, "5") == 0){ - readLine(0, line, MAX_MSG); - char user[MAX_MSG]; - strcpy(user, line); - readLine(0, line, MAX_MSG); - char msg[MAX_MSG]; - strcpy(msg, line); - printf("Going to send to %s the msg %s", user, msg); - appendMsg(user, msg); - printPendMsgs(user); - } - } - - return 0; -} \ No newline at end of file diff --git a/lab1/lists_old/user_list.c b/lab1/lists_old/user_list.c deleted file mode 100644 index 7521fed..0000000 --- a/lab1/lists_old/user_list.c +++ /dev/null @@ -1,237 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" -//#include "user_list.h" - - - - int isRegistered(char * username){ - struct user *temp; - temp = user_head; - - /* Iterate over the list */ - while (temp != NULL){ - if (strcmp(temp->username, username) == 0){ //Check if the username exists - return 1; - } - temp = temp->next; - } - - return 0; - } - -/* Returns 1 if already registered; 0 if registered correctly */ -int registerUser(char * username){ - /* Check if the user already exists */ - if(isRegistered(username)) return 1; - - struct user *temp; - temp = (struct user *) malloc(sizeof(struct user)); - strcpy(temp->username, username); - - //Allocate space for pending messages queue - //struct pend_msg *msg_node = (struct pend_msg *) malloc(sizeof(struct pend_msg)); - //struct pend_msg *msg_node = NULL; - //temp->pend_msg_head = msg_node; - temp->last_msg_id = 0; //Initialize the last message ID to 0 - temp->pend_msg_head = (struct pend_msg *) malloc(sizeof(struct pend_msg)); - //temp->pend_msg_head = NULL; - if (user_head == NULL){ //If list is empty - user_head = temp; - user_head->next = NULL; - } - else{ - struct user *last = user_head; - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - temp->next = NULL; - } - - return 0; -} - -/* Return 0 if disconnect OK; 1 if user is not registered; - If the statusFlag is 0, it tries to disconnect the user but if already disconnected returns 2 - If the statusFlag is 1, it tries to connect the user but if already connected returns 1*/ -int updateUserStatus(char * username, char statusFlag){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == statusFlag) return 2; - temp->status = statusFlag; - return 0; - } - } - - /* If the code reaches this point, the user was not found registered in the system */ - return 1; -} - -/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ -int connectUser(char * username, uint16_t port){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 1) return 2; //User already connected - /* Change status to 1 ("ON") and update IP and Port */ - temp->status = 1; - //Set IP - temp->port = port; - return 0; - } - } - - return 1; -} - -/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ -int disconnectUser(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 0) return 2; //User already disconnected - /* Change status to 0 ("OFF") and delete IP and Port */ - temp->status = 0; - //Free IP - free(&(temp->port)); - return 0; - } - } - - return 1; -} -/* - - -void insert(int num){ - int c = 0; - struct user *temp; - temp = user_head; - if(temp == NULL){ - add(num); - } - else{ - while(temp != NULL){ - if(temp->data < num) - c++; - temp = temp->next; - } - if(c == 0) - add(num); - else if(c < count()) - addafter(num,++c); - else - append(num); - } -} - - - */ -/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ -int unregisterUser(char * username){ - /* Check if the user is not registered */ - //if(!isRegistered(username)) return 1; - - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list - temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if(temp == user_head){ //If the user is at the user_head of the list - user_head = temp->next; //change the user_head to the next element - free(temp); //Free the resources of the user - return 0; - } - else{ //User is not at the user_head - prev->next = temp->next; - free(temp); - return 0; - } - } - else{ - prev = temp; - temp = temp->next; - } - } - //If we reach this point, no user was found - return 1; -} - - -void printUsers(){ - struct user *temp; - temp = user_head; - if(temp == NULL){ - return; - } - while(temp != NULL){ - printf("%s ", temp->username); - temp = temp->next; - printf("\n"); - } -} - -void appendMsg(char * username, char* msg){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - int id = updateID(temp); - //Enqueue message - struct pend_msg *temp_msg = temp->pend_msg_head; - enqueueMsg(temp, msg, 3); - return; - } - temp = temp->next; - } - - return; -} - -unsigned int updateID(struct user *usr){ - //Increment the ID in 1 - usr->last_msg_id = usr->last_msg_id+1; - //If it results in 0, then the maximum representable number is overflown - if(usr->last_msg_id == 0) usr->last_msg_id = 1; - printf("LAST PENDING MESSAGE ID IS: %d", usr->last_msg_id); - - return usr->last_msg_id; -} - -void printPendMsgs(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - printMsgs(temp->pend_msg_head); - } - temp = temp->next; - } -} - - /* -int count(){ - struct user *n; - int c = 0; - n = user_head; - - while(n != NULL){ - n = n->next; - c++; - } - - return c; -}*/ diff --git a/lab1/lists_old/user_list.h b/lab1/lists_old/user_list.h deleted file mode 100644 index 624e13b..0000000 --- a/lab1/lists_old/user_list.h +++ /dev/null @@ -1,26 +0,0 @@ -#define MAX_USERNAME 256 - -/* -struct pend_msg{ - char pend_msg[MAX_MSG]; - struct pend_msg *next; -} *msg_head;*/ - -struct user{ - char username[MAX_USERNAME]; /* Username that acts as ID */ - char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - uint16_t port; - struct pend_msg *pend_msg_head; - unsigned int last_msg_id; - struct user *next; -} *user_head; - -int isRegistered(char * username); -int registerUser(char * username); -int unregisterUser(char * username); -int connectUser(char * username, uint16_t port); -int disconnectUser(char * username); -void appendMsg(char * username, char* msg); -unsigned int updateID(struct user *usr); -void printPendMsgs(char * username); -void printUsers(); diff --git a/lab1/lists_old2/msg_list.c b/lab1/lists_old2/msg_list.c deleted file mode 100644 index f5b00d9..0000000 --- a/lab1/lists_old2/msg_list.c +++ /dev/null @@ -1,158 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" - - -/* Returns 1 if already registered; 0 if registered correctly */ -int enqueueMsg(struct user *usr, char * msg, unsigned int id){ - struct pend_msg *msg_head = usr->pend_msg_head; - struct pend_msg *temp; - temp = (struct pend_msg *) malloc(sizeof(struct pend_msg)); - strcpy(temp->pend_msg, msg); - temp->id = id; - /* - printf("MESSAGE TO BE QUEUED: \n"); - printf("\tBODY: %s", temp->pend_msg); - printf("\tID: %d", temp->id); - printf("MESSAGE HEAD POINTER IS:\n"); - printf("\tBODY: %s", msg_head->pend_msg); - printf("\tID: %d", msg_head->id); - if(msg_head->next == NULL){ - printf("HEAD->NEXT IS NULL!\n"); - } - else{ - printf("HEAD->NEXT IS NOT NULL\n"); - }*/ - - if (msg_head == NULL){ //If list is empty - printf("MSG_HEAD IS NULL!\n"); - msg_head = temp; - msg_head->next = NULL; - printf("MESSAGE ENQUEUED\n"); - return 1; - - } - else{ - printf("MSG_HEAD IS NOT NULL!\n"); - temp->next = msg_head; - msg_head = temp; - printf("MESSAGE ENQUEUED\n"); - return 1; - - } - - printf("MESSAGE NOT ENQUEUED\n"); - return 0; -} - -/* Deletes the message at the head of the queue -void removeMsg(){ - struct pend_msg *temp = msg_head; - //Head pointing to the next element - msg_head = temp->next; - //Free the resources of the first message - free(temp); - return; -}*/ - -/* Retrieves the message at the head of the queue */ -/* -struct pend_msg * peekMsg(struct pend_msg * msg_head){ - struct user *temp = user_head; - - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->msg_head; - } - temp = temp->next; - } - - return NULL; -} -*/ - -void printMsgs(struct pend_msg * msg_head){ - printf("INSIDE THE PRINT MSGS FUNCTION!\n"); - struct pend_msg *temp = msg_head; - if(temp == NULL){ - return; - } - - while(temp != NULL){ - printf("Message ID: %d", temp->id); - printf("Message body: %s", temp->pend_msg); - temp = temp->next; - } - - return; -} -/* -void addafter(int num, int loc){ - int i; - struct pend_msg *temp,*left,*right; - right = msg_head; - for(i=1;inext; - } - temp = (struct pend_msg *)malloc(sizeof(struct pend_msg)); - temp->data = num; - left->next = temp; - left = temp; - left->next = right; - return; -} - - - -void insert(int num){ - int c = 0; - struct pend_msg *temp; - temp = msg_head; - if(temp == NULL){ - add(num); - } - else{ - while(temp != NULL){ - if(temp->data < num) - c++; - temp = temp->next; - } - if(c == 0) - add(num); - else if(c < count()) - addafter(num,++c); - else - append(num); - } -} - - -void printMsgs(){ - struct pend_msg *temp; - temp = msg_head; - if(temp == NULL){ - return; - } - while(temp != NULL){ - printf("%s ", temp->pend_msg); - temp = temp->next; - printf("\n"); - } -} - - /* -int count(){ - struct pend_msg *n; - int c = 0; - n = msg_head; - - while(n != NULL){ - n = n->next; - c++; - } - - return c; -}*/ diff --git a/lab1/lists_old2/msg_list.h b/lab1/lists_old2/msg_list.h deleted file mode 100644 index f8850ad..0000000 --- a/lab1/lists_old2/msg_list.h +++ /dev/null @@ -1,19 +0,0 @@ -#include "user_list.h" -#define MAX_MSG 256 - -/* -struct pend_msg{ - char pend_msg[MAX_MSG]; - unsigned int id; - struct pend_msg *next; -} *msg_head;*/ -struct pend_msg{ - char pend_msg[MAX_MSG]; - unsigned int id; - struct pend_msg *next; -}; - - -int enqueueMsg(struct user *usr, char * msg, unsigned int id); -void removeMsg(); -void printMsgs(struct pend_msg * msg_head); diff --git a/lab1/lists_old2/test.c b/lab1/lists_old2/test.c deleted file mode 100644 index 1de5e8a..0000000 --- a/lab1/lists_old2/test.c +++ /dev/null @@ -1,61 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" - - -int main(void){ - char line[MAX_MSG]; - - //struct user * user_head = (struct user *) malloc(sizeof(struct user)); - while(1){ - printf("USER LISTS. CHOOSE ACTION:\n"); - printf("\t1: Register\n"); - printf("\t2: Unegister\n"); - printf("\t3: Connect\n"); - printf("\t4: Disconnect\n"); - printf("\t5: Send message\n"); - readLine(0, line, MAX_MSG); - if(strcmp(line, "1") == 0){ - printf("Username: \n"); - readLine(0, line, MAX_MSG); - int res = registerUser(line); - if(!res){ - printf("USER ADDED\n"); - printUsers(); - } - else{ - printf("ERROR: ALREADY EXISTS!\n"); - printUsers(); - } - - } - else if(strcmp(line, "2") == 0){ - readLine(0, line, MAX_MSG); - int res = unregisterUser(line); - if(!res){ - printf("USER DELETED\n"); - printUsers(); - } - else{ - printf("ERROR: DOES NOT EXIST!\n"); - printUsers(); - } - } - else if(strcmp(line, "5") == 0){ - readLine(0, line, MAX_MSG); - char user[MAX_MSG]; - strcpy(user, line); - readLine(0, line, MAX_MSG); - char msg[MAX_MSG]; - strcpy(msg, line); - printf("Going to send to %s the msg %s", user, msg); - appendMsg(user, msg); - printPendMsgs(user); - } - } - - return 0; -} \ No newline at end of file diff --git a/lab1/lists_old2/user_list.c b/lab1/lists_old2/user_list.c deleted file mode 100644 index bd9c020..0000000 --- a/lab1/lists_old2/user_list.c +++ /dev/null @@ -1,318 +0,0 @@ -#include -#include -#include -#include -#include "user_list.h" - - - - int isRegistered(char * username){ - struct user *temp; - temp = user_head; - - /* Iterate over the list */ - while (temp != NULL){ - if (strcmp(temp->username, username) == 0){ //Check if the username exists - return 1; - } - temp = temp->next; - } - - return 0; - } - -/* Returns 1 if already registered; 0 if registered correctly */ -int registerUser(char * username){ - /* Check if the user already exists */ - if(isRegistered(username)) return 1; - - struct user *temp; - temp = (struct user *) malloc(sizeof(struct user)); - strcpy(temp->username, username); - - //Allocate space for pending messages queue - //struct pend_msg *msg_node = (struct pend_msg *) malloc(sizeof(struct pend_msg)); - //struct pend_msg *msg_node = NULL; - //temp->pend_msg_head = msg_node; - temp->last_msg_id = 0; //Initialize the last message ID to 0 - temp->pend_msg_head = (struct pend_msg *) malloc(sizeof(struct pend_msg)); - //temp->pend_msg_head = NULL; - if (user_head == NULL){ //If list is empty - user_head = temp; - user_head->next = NULL; - } - else{ - struct user *last = user_head; - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - temp->next = NULL; - } - - return 0; -} - -/* Return 0 if disconnect OK; 1 if user is not registered; - If the statusFlag is 0, it tries to disconnect the user but if already disconnected returns 2 - If the statusFlag is 1, it tries to connect the user but if already connected returns 1*/ -int updateUserStatus(char * username, char statusFlag){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == statusFlag) return 2; - temp->status = statusFlag; - return 0; - } - } - - /* If the code reaches this point, the user was not found registered in the system */ - return 1; -} - -/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ -int connectUser(char * username, uint16_t port){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 1) return 2; //User already connected - /* Change status to 1 ("ON") and update IP and Port */ - temp->status = 1; - //Set IP - temp->port = port; - return 0; - } - } - - return 1; -} - -/* Return 0 if disconnect OK; 1 if user is not registered; 2 if registered but not connected */ -int disconnectUser(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 0) return 2; //User already disconnected - /* Change status to 0 ("OFF") and delete IP and Port */ - temp->status = 0; - //Free IP - free(&(temp->port)); - return 0; - } - } - - return 1; -} -/* - - -void insert(int num){ - int c = 0; - struct user *temp; - temp = user_head; - if(temp == NULL){ - add(num); - } - else{ - while(temp != NULL){ - if(temp->data < num) - c++; - temp = temp->next; - } - if(c == 0) - add(num); - else if(c < count()) - addafter(num,++c); - else - append(num); - } -} - - - */ -/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ -int unregisterUser(char * username){ - /* Check if the user is not registered */ - //if(!isRegistered(username)) return 1; - - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list - temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if(temp == user_head){ //If the user is at the user_head of the list - user_head = temp->next; //change the user_head to the next element - free(temp); //Free the resources of the user - return 0; - } - else{ //User is not at the user_head - prev->next = temp->next; - free(temp); - return 0; - } - } - else{ - prev = temp; - temp = temp->next; - } - } - //If we reach this point, no user was found - return 1; -} - - -void printUsers(){ - struct user *temp; - temp = user_head; - if(temp == NULL){ - return; - } - while(temp != NULL){ - printf("%s ", temp->username); - temp = temp->next; - printf("\n"); - } -} - -void appendMsg(char * username, char* msg){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - int id = updateID(temp); - //Enqueue message - struct pend_msg *temp_msg = temp->pend_msg_head; - enqueueMsg(&temp, msg, 3); - return; - } - temp = temp->next; - } - - return; -} - -unsigned int updateID(struct user *usr){ - //Increment the ID in 1 - usr->last_msg_id = usr->last_msg_id+1; - //If it results in 0, then the maximum representable number is overflown - if(usr->last_msg_id == 0) usr->last_msg_id = 1; - printf("LAST PENDING MESSAGE ID IS: %d", usr->last_msg_id); - - return usr->last_msg_id; -} - -void printPendMsgs(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - printMsgs(&(temp->pend_msg_head)); - return; - } - temp = temp->next; - } -} - - /* -int count(){ - struct user *n; - int c = 0; - n = user_head; - - while(n != NULL){ - n = n->next; - c++; - } - - return c; -}*/ - - - -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -/* Returns 1 if already registered; 0 if registered correctly */ -int enqueueMsg(struct user **msg_head, char * msg, unsigned int id){ - //struct pend_msg *msg_head = *(usr->pend_msg_head); - struct pend_msg *temp; - temp = (struct pend_msg *) malloc(sizeof(struct pend_msg)); - strcpy(temp->pend_msg, msg); - temp->id = id; - /* - printf("MESSAGE TO BE QUEUED: \n"); - printf("\tBODY: %s", temp->pend_msg); - printf("\tID: %d", temp->id); - printf("MESSAGE HEAD POINTER IS:\n"); - printf("\tBODY: %s", msg_head->pend_msg); - printf("\tID: %d", msg_head->id); - if(msg_head->next == NULL){ - printf("HEAD->NEXT IS NULL!\n"); - } - else{ - printf("HEAD->NEXT IS NOT NULL\n"); - }*/ - - if (msg_head == NULL){ //If list is empty - printf("MSG_HEAD IS NULL!\n"); - msg_head = temp; - msg_head->next = NULL; - printf("MESSAGE ENQUEUED\n"); - - } - else{ - printf("MSG_HEAD IS NOT NULL!\n"); - temp->next = msg_head; - msg_head = temp; - printf("MESSAGE ENQUEUED\n"); - - } - - printf("RESULT OF ENQUEUEING:\n"); - struct pend_msg *aux = usr->pend_msg_head; - if(aux == NULL){ - printf("LA LISTA NO CONTIENE NADA DESPUES DEL ENQUEUE!!!!!!\n"); - } - while(aux != NULL){ - printf("Message ID: %d", aux->id); - printf("Message body: %s", aux->pend_msg); - aux = aux->next; - } - return 0; -} - -/* Deletes the message at the head of the queue -void removeMsg(){ - struct pend_msg *temp = msg_head; - //Head pointing to the next element - msg_head = temp->next; - //Free the resources of the first message - free(temp); - return; -}*/ - -void printMsgs(struct pend_msg ** msg_head){ - printf("INSIDE THE PRINT MSGS FUNCTION!\n"); - struct pend_msg *temp = msg_head; - if(temp == NULL){ - printf("NOTHING TO PRINT!"); - return; - } - - while(temp != NULL){ - printf("Message ID: %d", temp->id); - printf("Message body: %s", temp->pend_msg); - temp = temp->next; - } - - return; -} \ No newline at end of file diff --git a/lab1/lists_old2/user_list.h b/lab1/lists_old2/user_list.h deleted file mode 100644 index 44c548c..0000000 --- a/lab1/lists_old2/user_list.h +++ /dev/null @@ -1,35 +0,0 @@ -#define MAX_USERNAME 256 -#define MAX_MSG 256 - -/* -struct pend_msg{ - char pend_msg[MAX_MSG]; - struct pend_msg *next; -} *msg_head;*/ - - -struct user{ - char username[MAX_USERNAME]; /* Username that acts as ID */ - char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - uint16_t port; - struct pend_msg{ - char pend_msg[MAX_MSG]; - unsigned int id; - struct pend_msg *next; - } *pend_msg_head; - unsigned int last_msg_id; - struct user *next; -} *user_head; - -int isRegistered(char * username); -int registerUser(char * username); -int unregisterUser(char * username); -int connectUser(char * username, uint16_t port); -int disconnectUser(char * username); -void appendMsg(char * username, char* msg); -unsigned int updateID(struct user *usr); -void printPendMsgs(char * username); -void printUsers(); -int enqueueMsg(struct user **usr, char * msg, unsigned int id); -void removeMsg(); -void printMsgs(struct pend_msg ** msg_head); \ No newline at end of file diff --git a/lab1/msg_list.c b/lab1/msg_list.c deleted file mode 100644 index ce0b614..0000000 --- a/lab1/msg_list.c +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" - - -/* Creates a new message struct and enqueues it to the end of the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->sender, sender); - temp->id = id; - temp->next = NULL; - - if (*head == NULL){ /* Queue is empty */ - temp->next = *head; - *head = temp; - } - else{ - /* If the queue is not empty, iterate to the end and append the message */ - struct msg *last = *head; - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - return 0; -} -/* Deletes the message at the head of the queue and returns the new - head of the list - Return a pointer to the next message in the queue - NULL if the list is left empty */ -struct msg * dequeueMsg(struct msg **head){ - struct msg* temp = *head; - /* Head pointing to the next element */ - *head = temp->next; - /* Free the resources of the first message */ - free(temp); - /* Return the new head of the queue */ - return *head; -} - -/* Deletes all the messages in the list from the head of the list -passed as paremeter */ -void deleteAllMsgs(struct msg ** head){ - struct msg **temp = head; - while(*temp != NULL){ - *temp = dequeueMsg(&(*temp)); - } - return; -} \ No newline at end of file diff --git a/lab1/msg_list.h b/lab1/msg_list.h deleted file mode 100644 index afe2e09..0000000 --- a/lab1/msg_list.h +++ /dev/null @@ -1,13 +0,0 @@ -#define MAX_MSG 256 - -struct msg{ - char body[MAX_MSG]; /* Content of the message */ - char sender[MAX_MSG]; /* Sender of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -/* ================FUNCTION HEADERS================ */ -int enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender); -struct msg * dequeueMsg(struct msg **head); -void deleteAllMsgs(struct msg ** head); \ No newline at end of file diff --git a/lab1/read_line.c b/lab1/read_line.c deleted file mode 100644 index c2038c3..0000000 --- a/lab1/read_line.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" - -int send_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = send(socket, message, l, 0); - l = l -r; /* Pending data to send */ - message = message + r; /* */ - } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - -ssize_t readLine(int fd, void *buffer, size_t n) -{ - ssize_t numRead; /* num of bytes fetched by last read() */ - size_t totRead; /* total bytes read so far */ - char *buf; - char ch; - - - if (n <= 0 || buffer == NULL) { - errno = EINVAL; - return -1; - } - - buf = buffer; - totRead = 0; - - for (;;) { - numRead = read(fd, &ch, 1); /* read a byte */ - - if (numRead == -1) { - if (errno == EINTR) /* interrupted -> restart read() */ - continue; - else - return -1; /* some other error */ - } else if (numRead == 0) { /* EOF */ - if (totRead == 0) /* no byres read; return 0 */ - return 0; - else - break; - } else { /* numRead must be 1 if we get here*/ - if (ch == '\n') - break; - if (ch == '\0') - break; - if (totRead < n - 1) { /* discard > (n-1) bytes */ - totRead++; - *buf++ = ch; - } - } - } - - *buf = '\0'; - return totRead; -} diff --git a/lab1/read_line.h b/lab1/read_line.h deleted file mode 100644 index e3d4c9e..0000000 --- a/lab1/read_line.h +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int send_msg(int socket, char *message, int length); -int recv_msg(int socket, char *message, int length); -ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab1/report.pdf b/lab1/report.pdf deleted file mode 100644 index 20919f92b6c7ec67b7799f670024b77ade1ec2b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702969 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

m32N@YTbQ*rRPe7EWL`z+DzjtHPcch}idh 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 LP6Ofz#2e+arcc{ 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 fs&T78yKST_<*(}k$ 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

T{lGaJz-0ER`-8zd8f^jd#ueJjePMDJmg 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 z znj#|5MJKL97oB)N)KNqk)KSEnP)8BvP)89TggT0-Ltgst10D4>q8|C=pF=+R7obKW zzJwg|G31bc1v%v7$RYnTdVii+Za3JOLo0sV73>PN^o{uT0#&oLag zh^!pD|M#8P zbv8Pi4du=@XJ_t!v)g%J({EIq{mwz>BTcow!8r!@N$0fliDuoo;C$*_b*^hiz%^Tj z@@pAIqs~s}b4|ad-_YmWcOE%Uo#)xZBtgbGr^y6OHK`)gH0wF%xjIrq>PQo5A?+kh z@}!pxk)>ogSw+^6b>toLF4;o1llRCTvX2}fhsY6foP12qfNSQ!HH+YyWf1-u2)zNq zZIinoouqMBfgs8;eW)j_sUU1T5COFbaRsfX0CvymF5 zCSI?jrktJBEHzIpQ7h^VYK_{|H)w7<#|-7KJ#ns6JI+;2HMN&Ko;^VwQYX|IjnT1m zd~yw)NUNRGFo&;Pq%)k)b4|3CHqd6;M(SviG|?={CBPJfOSj`*c4&NI#;-=t+7SY=)tt zQI|J&Aa}qOa+SKuT~)4{TwPYcRd=Pq`NVa{b=TFBVRyB=?zwsleK{GfK4-VS!PVm$ za1FUeKwar{jpxR>9=m3;?z`rk)4Dd-qHEdp%(VeRZ9CU<3D>Ucz;*0;;d;q{XBLeb zhMf1E)650tB9p?TGnv{EMsF0EJjTj67=|Vpkx^i+U?NNzQ^DM1YGI9H>X`$Tv&=lRL_T9ym^Jb)vjA;ClE1`kGCOn$v&S5Q z8bC8A%$XZ=$GYR)iEgz!!>x52+-A3peC#IOtXl>(Fhusa1MU*{4f3A5(p^o?FpB$@ z`?jmjC_39RhYjuSMt8H;o}cG#b9cJC^E%x3ueNKdX@hgp-EW%KR6C!z2aUakD)*zS zJ(~5)RqiqOqMw&sl<6V&gQ`Yyzud z)2Mk?!$h+>*2G#^J0-F-ta~iadfAYEhb?7Go%h*tuvMi7*cxh++N0LkI_DO9=V}ja zc)bqXtH7r7KJol7T6xlB&a<+&^AX7_V)jBwIfaXGWn2Y! zldI+Gxdx_|YvNiBcd03^gX`jYsd?@J_t3SG*UAlZp!73(3|0CDZi1WQW?wTKS2X>} z?XUCPJh#NHaBJKqx5Mpmhun#Cnmgk$J{E*8=i~WAUd?A{M|kbk9^P=Rnm6+{p5$3x z<^z0*eviMAabPwXSNKZ4n!m;0<{SCu+=RR)zRjuTJNa(@KHqP;ZMw}5URmQGu{G(3 z8KwLfKgmyDN�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%0A{P61!l|TCK2mpXpnQF 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%0D{XG}*la1(Mp+L=XGBCOfol}r1g3!q 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%0A%v_y%AZ>%=rlhiC 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 +B|OFS+yE_(JQQ`%)`CN`F#il+ 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%0AFmXI<>e>Ck)1w%p2I!-g_#t9IilRzl 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

_VyqFqF^|-W+FqLNL{C>4 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 /* For addresses in PF_INET */ -#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ -#include -#include /* To use ifreq */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" -#include "msg_list.h" -#include "server.h" - -/* Handler for interrupts */ -void interruptHandler(int sig){ - printf("[SERVER]: Handling interrupt. Closing server socket...\n"); - /* Close the server socket and exit with the resulting return value. 0 if OK, -1 if error */ - exit(close(s_server)); -} - -int main(int argc, char * argv[]){ - struct sockaddr_in server_addr, client_addr; - int sc; - int val; - int server_port; - - /* Check command */ - if(argc != 3 || strcmp(argv[1],"-p") != 0){ - printf("Usage: ./server -p \n"); - exit(-1); - } - - /* Check if the port number passed as parameter is valid */ - server_port = atoi(argv[2]); - if ((server_port < 1024) || (server_port > 65535)) { - printf("Error: Port must be in the range 1024 <= port <= 65535\n"); - exit(-1); - } - - /* Initialize mutexes */ - if(pthread_mutex_init(&socket_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_mutex_init(&list_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - /* Initialize condition variable for copying the socket descriptor in the thread */ - if(pthread_cond_init(&free_socket, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - - /* Prepare thread conditions */ - thread = (pthread_t) malloc((sizeof(thread))); - pthread_attr_init(&thread_att); - pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); - - s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ - if(s_server == -1){ - perror("Error when creating the socket"); - exit(-1); - } - - /* Obtain the IP address attached to interface eth0 */ - struct ifreq ifr; - ifr.ifr_addr.sa_family = AF_INET; - strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1); - ioctl(s_server, SIOCGIFADDR, &ifr); - - val = 1; - setsockopt(s_server, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ - - /* Initialize the address that will be attached to the listening socket */ - bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ - server_addr.sin_family = AF_INET; - server_addr.sin_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; /* Listens to IP address in eth0 interface*/ - server_addr.sin_port = htons(server_port); /* Port number */ - - /* Bind the address to the listening socket */ - if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ - perror("Error when binding the address to the socket"); - exit(-1); - } - - /* Set the socket to listen incoming requests */ - if(listen(s_server, 5) == -1){ - perror("Error when listening to the socket"); - exit(-1); - } /* Backlog is 5, maximum number of queued requests is 5 */ - - /* Once the server is listening, print inicial prompt */ - printf("s> init server %s:%d\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), - ntohs(server_addr.sin_port)); - - /* Define the variable for the client address size. It should be declared - as variable because the size depends on the incoming request and is an - output parameter of the 'accept' function */ - socklen_t cl_addr_size = sizeof(client_addr); - - /* Set the control variable to TRUE so that the listening thread waits - until the thread stores a local copy of the socket descriptor */ - busy_socket = TRUE; - - signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ - fprintf(stderr, "%s", "s> "); /* Prompt */ - - /* Loop for accepting and creating threads for each incoming request */ - while(1){ - /* Accept client connections. If error, shut down the server */ - sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); - if(sc == -1){ - perror("Error when accepting the connection"); - /* Close listening server socket */ - close(s_server); - exit(-1); - } - /* Once accepted, create a thread to handle the request. If error, shut down the server */ - if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { - perror("[SERVER]: Error when creating the thread"); - /* Close both listening socket and the one resulting from the accept operation */ - close(s_server); - close(sc); - exit(-1); - } - - /* Wait for the thread to copy the socket descriptor locally */ - pthread_mutex_lock(&socket_mtx); - while(busy_socket == TRUE) - pthread_cond_wait(&free_socket, &socket_mtx); - busy_socket = TRUE; - pthread_mutex_unlock(&socket_mtx); - - } - - exit(0); -} - -void * manageRequest(int *sd){ - int s_local; - char operation_buff[MAX_COMMAND]; - char user_buff[MAX_USERNAME]; - char msg_buff[MAX_MSG]; - int n; - int m; - char out; - - /* Copy locally the socket descriptor */ - pthread_mutex_lock(&socket_mtx); - s_local = *sd; - busy_socket = FALSE; - pthread_cond_signal(&free_socket); - pthread_mutex_unlock(&socket_mtx); - - /* Read the operation. If error, close the socket and terminate the thread */ - n = readLine(s_local, operation_buff, MAX_COMMAND); - if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Read the username and convert to uppercase. If error, close the socket - and terminate the thread */ - m = readLine(s_local, user_buff, MAX_USERNAME); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* For convention of the server, convert every username to uppercase */ - toUpperCase(user_buff); - - /* Check the operation */ - if (strcmp(operation_buff, "REGISTER") == 0){ - /* Register the user */ - pthread_mutex_lock(&list_mtx); - out = registerUser(user_buff); - pthread_mutex_unlock(&list_mtx); - - } - else if (strcmp(operation_buff, "UNREGISTER") == 0){ - /* Unregister the user */ - pthread_mutex_lock(&list_mtx); - out = unregisterUser(user_buff); - pthread_mutex_unlock(&list_mtx); - - } - else if(strcmp(operation_buff, "CONNECT") == 0){ - - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - uint16_t client_port; - - n = readLine(s_local, msg_buff, MAX_MSG); - if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Get the port number from the socket */ - client_port = (uint16_t) atoi(msg_buff); - /* Get the client IP address attached to the socket */ - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1){ - perror("[SERVER_THREAD]: Error when getting client address"); - /* Send error 3 to client and close socket */ - out = 3; - goto respond_to_client; - } - /* Connect the user to the server */ - pthread_mutex_lock(&list_mtx); - out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); - pthread_mutex_unlock(&list_mtx); - - - /* If result is 0, then check for the pending messages and send them */ - if(out == 0){ - /* Send code 0 for the client to open the listening thread */ - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - /* Send Pending Messages */ - pthread_mutex_lock(&list_mtx); - struct msg **pend_msg = getPendMsgHead(user_buff); - while(*pend_msg != NULL){ - pthread_mutex_unlock(&list_mtx); - char sender[MAX_USERNAME]; - char msg_body[MAX_MSG]; - - /* Get the name of the sender, the id and the body associated to the message to be sent */ - pthread_mutex_lock(&list_mtx); - strcpy(sender, (*pend_msg)->sender); - int msg_id = (*pend_msg)->id; - strcpy(msg_body, (*pend_msg)->body); - pthread_mutex_unlock(&list_mtx); - - /* Try to send the message. The 'stored' flag is set to 1 because the message - is already stored in the server */ - int err = sendMessage(sender, user_buff, msg_body, msg_id, 1); - - /* If the message could not be delivered/stored, then exit the loop */ - if(err != 0) goto destroy_thread; - - /* Send acknowledge to the sender. No return value is checked */ - sendAck(sender, msg_id); - - /* Remove the message from the pending message queue and iterate with the next message */ - pthread_mutex_lock(&list_mtx); - *pend_msg = dequeueMsg(&(*pend_msg)); - } - pthread_mutex_unlock(&list_mtx); - } - goto destroy_thread; - } - else if(strcmp(operation_buff, "DISCONNECT") == 0){ - /* Get the IP from which the command is being executed */ - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1){ - perror("Error when getting client address"); - /* Send error 3 to client and close socket */ - out = 3; - goto respond_to_client; - } - /* Try to disconnect the user passing the IP from which the request is being made - as parameter to the function */ - pthread_mutex_lock(&list_mtx); - out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); - pthread_mutex_unlock(&list_mtx); - - } - else if(strcmp(operation_buff, "SEND") == 0){ - /* Reserve a buffer for the username of the receiver */ - char dest_user_buff[MAX_USERNAME]; - - /* Read the destination user from the socket */ - m = readLine(s_local, dest_user_buff, MAX_USERNAME); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Convert username to uppercase by convention */ - toUpperCase(dest_user_buff); - - /* Read the message from the socket */ - n = readLine(s_local, msg_buff, MAX_MSG); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - /* Check if one of the two users is not registered */ - pthread_mutex_lock(&list_mtx); - if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ - pthread_mutex_unlock(&list_mtx); - /* Send code 1 to the client and close the socket */ - out = 1; - goto respond_to_client; - } - pthread_mutex_unlock(&list_mtx); - - /* Check the status of the destination user */ - pthread_mutex_lock(&list_mtx); - char status = isConnected(dest_user_buff); - unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message - pthread_mutex_unlock(&list_mtx); - - if(status == 0){ //Not connected - /* Store the message */ - if (storeMessage(user_buff, dest_user_buff, msg_buff, last_id) != 0){ - /* Message could not be stored so send code 2 to the client and close the socket */ - out = 2; - goto respond_to_client; - } - /* Message was stored successfully, send code 0 and message ID to the client */ - out = 0; - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Send string with the message ID back to the sender */ - char id_string[11]; - sprintf(id_string, "%d", last_id); - if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - }else if(status == 1){ //Connected - /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message - is being sent for the first time and was not previously stored int he server */ - int err = sendMessage(user_buff, dest_user_buff, msg_buff, last_id, 0); - /* If while trying to store the message, the user unregisters, value 1 will be returned */ - if(err == 1){ - out = 1; - goto respond_to_client; - }else if(err == -1){ - /* If any server error occurred and the message was not stored or sent, then send code 2 - back to the client */ - out = 2; - goto respond_to_client; - } - - /* If no server error occured, then the message was either sent or stored, so we send back - the code 0 (OK) to the client */ - out = 0; - if ((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Send string with the message ID back to the sender */ - char id_string[11]; - sprintf(id_string, "%d", last_id); - if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - /* At this point, the message is assumed to */ - sendAck(user_buff, last_id); - } - /* The response to the client is handled within this else-of statement, so the - 'respond_to_client' label is skipped and proceed to close the socket */ - goto destroy_thread; - } - - /* Default print template */ - switch(out){ - case 0: - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - break; - default: - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "FAIL"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - } - - /* Label to jump previous code to respond the client and skip the default print right above, - in case other commands (as SEND) do not use a template print */ - respond_to_client: - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - destroy_thread: - if(close(s_local) == -1){ - perror("[SERVER_THREAD]: Error when closing the socket in the thread"); - exit(-1); - } - pthread_exit(NULL); -} - -/* Capitalizes the input string. String is both an input and output parameter */ -void toUpperCase(char * string){ - /* Convert to uppercase */ - int i; - for(i = 0; string[i]; i++){ - string[i] = toupper(string[i]); - } -} - -/* Return 0: Message is stored OK - Return -1: Server error (Memory space error) */ -int storeMessage(char * sender, char * receiver, char * msg, unsigned int msg_id){ - /* Store the message to the receiver pending list */ - pthread_mutex_lock(&list_mtx); - int err = storeMsg(receiver, msg, msg_id, sender); - pthread_mutex_unlock(&list_mtx); - - /* Error when trying to store the message */ - if(err == -1) return -1; - - fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, - sender, receiver); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - /* Return store OK */ - return 0; -} - -/* Return 0: Message is sent OK - Return 1: User did not exist when trying to store/send the message. Message not stored - Return 2: Message is stored, or not stored if was already stored - Return -1: Server error */ -int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, char stored){ - int s_receiver; //Socket for the receiver of the message - struct sockaddr_in recv_addr; //Receiver address - struct hostent *recv_hp; //Host entity structure for the receiver - - s_receiver = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if(s_receiver == -1){ - return -1; //Send error message. -1 is internally encoded as server error - } - - bzero((char *) &recv_addr, sizeof(recv_addr)); //Reserve space for the address of the receiver - - pthread_mutex_lock(&list_mtx); - recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver - pthread_mutex_unlock(&list_mtx); - /* If error when getting the host, return -1 */ - if(recv_hp == NULL) return -1; - - memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format - recv_addr.sin_family = AF_INET; - pthread_mutex_lock(&list_mtx); - recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread - pthread_mutex_unlock(&list_mtx); - - /* Try to connect to the listening thread of the receiver to send the message */ - if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ - /* If the connection with the receiver fails, assume the client - to be disconnected, disconnect it and store the message */ - pthread_mutex_lock(&list_mtx); - /* As we are internally disconnecting the user from the server, we need to bypass the - IP check, so we pass the IP of the receiver as parameter to always fulfill the condition */ - char reg = disconnectUser(receiver, getUserIP(receiver)); // No need to check for output - pthread_mutex_unlock(&list_mtx); - /* If the disconnect method returns 1, it means that the user was not found so is not - registered (it unregister while trying to store the message, so we return 1 */ - if(reg == 1){ - return 1; - } - /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the - server so we need to push it to the end of the queue. If it was stored, then nothing is done */ - if(!stored){ - if(storeMessage(sender, receiver, msg, msg_id) == -1) return -1; //Return -1 if store error - } - - if(close(s_receiver) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - /* Return 2 to indicate the message is stored but not sent */ - return 2; - } - /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ - char op[13]; - strcpy(op, "SEND_MESSAGE"); - send_msg(s_receiver, op, strlen(op)+1); - /* Send the sender name */ - send_msg(s_receiver, sender, strlen(sender)+1); - /* Send the identifier of the message */ - char id_string[11]; - sprintf(id_string, "%d", msg_id); - send_msg(s_receiver, id_string, strlen(id_string)+1); - /* Send the message */ - send_msg(s_receiver, msg, strlen(msg)+1); - - if(close(s_receiver) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - - fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, - sender, receiver); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - return 0; -} - -/* Tries to send acknowledge to the sender. No return value */ -void sendAck(char * sender, unsigned int msg_id){ - int s_sender; //Socket for the receiver of the message - struct sockaddr_in sender_addr; //Sender address - struct hostent *sender_hp; //Host entity structure for the sender - - s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if(s_sender == -1){ - /* If error when allocating resources for the socket, then exit */ - return; - } - - char ack_op[14]; - strcpy(ack_op, "SEND_MESS_ACK"); - - bzero((char *) &sender_addr, sizeof(sender_addr)); - - pthread_mutex_lock(&list_mtx); - sender_hp = gethostbyname(getUserIP(sender)); - pthread_mutex_unlock(&list_mtx); - /* If any error when getting the hoset, exit the function */ - if(sender_hp == NULL) return; - - memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); - sender_addr.sin_family = AF_INET; - - pthread_mutex_lock(&list_mtx); - sender_addr.sin_port = htons(getUserPort(sender)); - pthread_mutex_unlock(&list_mtx); - - if((connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr))) == -1){ - /* If error when connecting, exit the function */ - return; - } - - - char id_string[11]; - sprintf(id_string, "%d", msg_id); - if((send_msg(s_sender, ack_op, strlen(ack_op)+1)) == -1){ - /* If error when sending the ACK, close the socket and exit the function */ - if(close(s_sender) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; - } - if((send_msg(s_sender, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the ACK, close the socket and exit the function */ - if(close(s_sender) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; - } - - if(close(s_sender) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; -} \ No newline at end of file diff --git a/lab1/server.h b/lab1/server.h deleted file mode 100644 index f1acb08..0000000 --- a/lab1/server.h +++ /dev/null @@ -1,27 +0,0 @@ -#define MAX_COMMAND 11 - -/* Mutex & Threads */ -pthread_mutex_t socket_mtx; -pthread_mutex_t list_mtx; -pthread_t thread; -pthread_attr_t thread_att; -/* Controls the access to the socket generated by the connection 'accept' */ -pthread_cond_t free_socket; -pthread_cond_t free_list; - -/* Variable that controls the state of the socket created by the connection 'accept' */ -int busy_socket; - -/* Declare the server socket as global variable */ -int s_server; - -/* Declare the list of users */ -struct user *users; - -/* ================FUNCTION HEADERS================ */ -void interruptHandler(int sig); -void * manageRequest(int *sd); -void toUpperCase(char * string); -int sendMessage(char * sender, char * receiver, char * msg, unsigned int msg_id, char stored); -void sendAck(char * sender, unsigned int msg_id); -int storeMessage(char * sender, char * receiver, char * msg, unsigned int mgs_id); \ No newline at end of file diff --git a/lab1/servidor.zip b/lab1/servidor.zip deleted file mode 100644 index f0620b5fc85f95fe70b8010ae47292686b55d929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7819 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 -#include -#include -#include -#include "msg_list.h" - - -/* Returns 1 if already registered; 0 if registered correctly */ -void enqueueMsg(struct msg **head, char * message, unsigned int id){ - struct msg *temp; - //Allocate the space for the new message and - temp = (struct msg *) malloc(sizeof(struct msg)); - strcpy(temp->body, message); - temp->id = id; - - if (*head == NULL){ //If list is empty - temp->next = *head; - *head = temp; - } - else{ - struct msg *last = *head; - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - temp->next = NULL; - } -} - -/* Deletes the message at the head of the queue */ -void removeMsg(struct msg ** head){ - struct msg *temp = *head; - //Head pointing to the next element - *head = temp->next; - //Free the resources of the first message - free(temp); - return; -} - -void printMsgs(struct msg ** head){ - printf("INSIDE THE PRINT MSGS FUNCTION!\n"); - struct msg *temp = *head; - if(temp == NULL){ - return; - } - - while(temp != NULL){ - printf("Message ID: %u", temp->id); - printf("Message body: %s", temp->body); - printf("\n"); - temp = temp->next; - } - - return; -} diff --git a/lab1/servidor/msg_list.h b/lab1/servidor/msg_list.h deleted file mode 100644 index 1320b12..0000000 --- a/lab1/servidor/msg_list.h +++ /dev/null @@ -1,13 +0,0 @@ -#define MAX_MSG 256 - -struct msg{ - char body[MAX_MSG]; - unsigned int id; - struct msg *next; -}; - -unsigned int last_msg_id; - -void enqueueMsg(struct msg **head, char * msg, unsigned int id); -void removeMsg(struct msg ** head); -void printMsgs(struct msg ** head); diff --git a/lab1/servidor/read_line.c b/lab1/servidor/read_line.c deleted file mode 100644 index 967be93..0000000 --- a/lab1/servidor/read_line.c +++ /dev/null @@ -1,88 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" - -int send_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = send(socket, message, l, 0); - l = l -r; /* Pending data to send */ - message = message + r; /* */ - } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - -int recv_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = recv(socket, message, l, 0); - l = l -r ; /* Pending data to receive */ - message = message + r; - } while ((l>0) && (r>=0)); /* We check the return value in case all the data was not received */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - - - -ssize_t readLine(int fd, void *buffer, size_t n) -{ - ssize_t numRead; /* num of bytes fetched by last read() */ - size_t totRead; /* total bytes read so far */ - char *buf; - char ch; - - - if (n <= 0 || buffer == NULL) { - errno = EINVAL; - return -1; - } - - buf = buffer; - totRead = 0; - - for (;;) { - numRead = read(fd, &ch, 1); /* read a byte */ - - if (numRead == -1) { - if (errno == EINTR) /* interrupted -> restart read() */ - continue; - else - return -1; /* some other error */ - } else if (numRead == 0) { /* EOF */ - if (totRead == 0) /* no byres read; return 0 */ - return 0; - else - break; - } else { /* numRead must be 1 if we get here*/ - if (ch == '\n') - break; - if (ch == '\0') - break; - if (totRead < n - 1) { /* discard > (n-1) bytes */ - totRead++; - *buf++ = ch; - } - } - } - - *buf = '\0'; - return totRead; -} diff --git a/lab1/servidor/read_line.h b/lab1/servidor/read_line.h deleted file mode 100644 index e3d4c9e..0000000 --- a/lab1/servidor/read_line.h +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int send_msg(int socket, char *message, int length); -int recv_msg(int socket, char *message, int length); -ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab1/servidor/server.c b/lab1/servidor/server.c deleted file mode 100644 index 469b0fa..0000000 --- a/lab1/servidor/server.c +++ /dev/null @@ -1,308 +0,0 @@ -#include /* For addresses in PF_INET */ -#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" -#include "msg_list.h" -#include "server.h" - -/* Handler for interrupts */ -void interruptHandler(int sig){ - printf("[SERVER]: Handling interrupt. Closing server socket...\n"); - exit(0); -} - -int main(int argc, char * argv[]){ - struct sockaddr_in server_addr, client_addr; - int sd, sc; - int val; - int server_port; - struct hostent *hp; - - - /* Check command */ - if(argc != 3 || strcmp(argv[1],"-p") != 0){ - printf("Usage: ./server -p \n"); - exit(-1); - } - - /* Check if the port number passed as parameter is valid */ - server_port = atoi(argv[2]); - if ((server_port < 1024) || (server_port > 65535)) { - printf("Error: Port must be in the range 1024 <= port <= 65535\n"); - exit(-1); - } - - //printf(); - - /* Initializing mutex */ - if(pthread_mutex_init(&socket_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_mutex_init(&list_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_cond_init(&free_socket, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_cond_init(&free_list, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - - /* Prepare thread conditions */ - pthread_attr_init(&thread_att); - pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); - - sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ - if(sd == -1){ - perror("Error when creating the socket"); - exit(-1); - } - - val = 1; - setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ - - bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ - server_addr.sin_family = AF_INET; - server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ - server_addr.sin_port = htons(server_port); /* Port number */ - - if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ - perror("Error when binding the address to the socket"); - exit(-1); - } - struct in_addr in; - - hp = gethostbyaddr((char*) &server_addr, sizeof(server_addr), AF_INET); - - char **p; - - for (p = hp->h_addr_list; *p != 0; p++){ - memcpy(&in.s_addr, *p, sizeof(in.s_addr)); - printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); - } - - /* Initial prompt */ - //printf("s> init server %s:%d\n", inet_ntoa(in), ntohs(server_addr.sin_port)); - - if(listen(sd, 5) == -1){ - perror("Error when listening to the socket"); - exit(-1); - } /* Backlog is 5, maximum number of queued requests is 5 */ - - socklen_t size = sizeof(client_addr); - - busy_socket = TRUE; - busy_list = FALSE; - - signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ - - while(1){ - fprintf(stderr, "%s", "s> "); /* Prompt */ - - sc = accept(sd, (struct sockaddr *) &client_addr, &size); - if(sc == -1){ - perror("Error when accepting the connection"); - exit(-1); - } - thread = (pthread_t) malloc((sizeof(thread))); - if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { - perror("[SERVER]: Error when creating the thread"); - exit(-1); - } - - /* Wait for the thread to copy the socket descriptor locally */ - pthread_mutex_lock(&socket_mtx); - while(busy_socket == TRUE) - pthread_cond_wait(&free_socket, &socket_mtx); - busy_socket = TRUE; - pthread_mutex_unlock(&socket_mtx); - - /* Close the created socket */ - printf("\n"); - } - - close(sd); - exit(0); - -} - -void * manageRequest(int *sd){ - int s_local; - char operation_buff[MAX_OP]; - char user_buff[MAX_USERNAME]; - char msg_buff[MAX_MSG]; - int n; - int m; - char out; - - /* Copy locally the socket descriptor */ - pthread_mutex_lock(&socket_mtx); - s_local = *sd; - busy_socket = FALSE; - pthread_cond_signal(&free_socket); - pthread_mutex_unlock(&socket_mtx); - - /* Read the operation */ - n = readLine(s_local, operation_buff, MAX_OP); - if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - /* Send Fail code to client side */ - /* - out ='2'; - send_msg(s_local, &out, sizeof(out)); - */ - exit(-1); - } - /* Read the username and convert to uppercase */ - m = readLine(s_local, user_buff, MAX_USERNAME); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - /* Send Fail code to client side */ - /* - out ='2'; - send_msg(s_local, &out, sizeof(out)); - */ - exit(-1); - } - toUpperCase(user_buff); - - /* Check the operation */ - if (strcmp(operation_buff, "REGISTER") == 0){ - /* Register the user */ - pthread_mutex_lock(&list_mtx); - ////////////////////////////////////////////////////// - /* DOUBT */ - ////////////////////////////////////////////////////// - /* Wait while the list of users is being accessed */ - /* - while(free_list == TRUE) - pthread_cond_wait(&free_list, &list_mtx); - free_list = TRUE; - */ - out = registerUser(user_buff); - pthread_mutex_unlock(&list_mtx); - /* - switch(result){ - case 0: - out = '0'; - break; - case 1: - out = '1'; - break; - default: - out = '2'; - }*/ - } - else if (strcmp(operation_buff, "UNREGISTER") == 0){ - /* Unregister the user */ - pthread_mutex_lock(&list_mtx); - ////////////////////////////////////////////////////// - /* DOUBT */ - ////////////////////////////////////////////////////// - /* Wait while the list of users is being accessed */ - /* - while(free_list == TRUE) - pthread_cond_wait(&free_list, &list_mtx); - free_list = TRUE; - */ - out = unregisterUser(user_buff); - pthread_mutex_unlock(&list_mtx); - /*switch(result){ - case 0: - out = '0'; - break; - case 1: - out = '1'; - break; - default: - out = '2'; - }*/ - } - else if(strcmp(operation_buff, "CONNECT") == 0){ - - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - struct hostent *hp; - uint16_t client_port; - char * client_ip; - - n = readLine(s_local, msg_buff, MAX_MSG); - - client_port = (uint16_t) atoi(msg_buff); - - //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); - - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1) perror("Error when getting address"); - struct in_addr in; - - hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); - - char **p; - - for (p = hp->h_addr_list; *p != 0; p++){ - memcpy(&in.s_addr, *p, sizeof(in.s_addr)); - printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); - } - - - //client_port = client_addr_local.sin_port; - - printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); - - pthread_mutex_lock(&list_mtx); - out = connectUser(user_buff, msg_buff, client_port); - pthread_mutex_unlock(&list_mtx); - - }/* - else if(strcmp(operation_buff, "DISCONNECT") == 0){ - pthread_mutex_lock(&list_mtx); - out = disconnectUser(user_buff); - pthread_mutex_unlock(&list_mtx); - }*/ - - - - write(1, user_buff, m); - - /* - - - struct sockaddr_in test_addr; - - getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); - //test_addr.sin_addr is of type struct in_addr - char * ip = inet_ntoa(test_addr.sin_addr); - printf("CLIENT ADDRESS: %s\n", ip); - printf("CLIENT PORT NUMBER: %d\n", client_port); - */ - - send_msg(s_local, &out, sizeof(out)); - - if(close(s_local) == -1){ - perror("[SERVER_THREAD]: Error when closing the socket in the thread"); - exit(-1); - } - pthread_exit(NULL); -} - -void toUpperCase(char * string){ - /* Convert to uppercase */ - for(int i = 0; string[i]; i++){ - string[i] = toupper(string[i]); - } -} \ No newline at end of file diff --git a/lab1/servidor/server.h b/lab1/servidor/server.h deleted file mode 100644 index c39faea..0000000 --- a/lab1/servidor/server.h +++ /dev/null @@ -1,22 +0,0 @@ -#define MAX_OP 11 - -/* Mutex & Threads */ -pthread_mutex_t socket_mtx; -pthread_mutex_t list_mtx; -pthread_t thread; -pthread_attr_t thread_att; -/* Controls the access to the socket generated by the connection 'accept' */ -pthread_cond_t free_socket; -pthread_cond_t free_list; - -/* Variable that controls the state of the socket created by the connection 'accept' */ -int busy_socket; -/* Variable that controls the if the list of users is being accessed */ -int busy_list; - -/* Initialize the list of users */ -struct user *users; - -void interruptHandler(int sig); -void * manageRequest(int *sd); -void toUpperCase(char * string); \ No newline at end of file diff --git a/lab1/servidor/user_list.c b/lab1/servidor/user_list.c deleted file mode 100644 index befa904..0000000 --- a/lab1/servidor/user_list.c +++ /dev/null @@ -1,200 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" -#include "user_list.h" - - -char isRegistered(char * username){ - struct user *temp; - temp = user_head; - - /* Iterate over the list */ - while (temp != NULL){ - if (strcmp(temp->username, username) == 0){ //Check if the username exists - return 1; - } - temp = temp->next; - } - - return 0; - } - -/* Returns 1 if already registered; 0 if registered correctly */ -char registerUser(char * username){ - /* Check if the user already exists */ - if(isRegistered(username)) return 1; - - /* Prepare new user */ - struct user *temp; - temp = (struct user *) malloc(sizeof(struct user)); - /* Initialize user values */ - strcpy(temp->username, username); - temp->status = 0; - temp->port = 0; - temp->pend_msgs_head = NULL; - temp->next = NULL; - - if (user_head == NULL){ //If list is empty - /*Initialize the last assigned ID to a message if is the first user to register*/ - if(first_user){ - last_msg_id = 0; - first_user = FALSE; - } - temp->next = user_head; - user_head = temp; - } - else{ - struct user *last = user_head; - - /* Iterate over the list */ - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - - return 0; -} - -/* Return 0 if connect OK; 1 if user is not registered; 2 if registered but not connected */ -char connectUser(char * username, char * ip, uint16_t port){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 1) return 2; //User already connected - /* Change status to 1 ("ON") and update IP and Port */ - temp->status = 1; - //Set IP - temp->port = port; - return 0; - } - temp = temp->next; - } - - return 1; -} - -/* Return 0 if disconnect OK; - 1 if user is not registered; - 2 if registered but not connected; - 3 if trying to disconnect from a different IP */ -char disconnectUser(char * username, char * used_ip){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP - if (temp->status == 0) return 2; //User already disconnected - /* Change status to 0 ("OFF") and delete IP and Port */ - temp->status = 0; - //Free IP - free(&(temp->port)); - return 0; - } - temp = temp->next; - } - - return 1; -} - - -/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ -char unregisterUser(char * username){ - /* Check if the user is not registered */ - //if(!isRegistered(username)) return 1; - - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list - temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if(temp == user_head){ //If the user is at the user_head of the list - user_head = temp->next; //change the user_head to the next element - free(temp); //Free the resources of the user - return 0; - } - else{ //User is not at the user_head - prev->next = temp->next; - /* Free the memory resources of the user structure */ - free(temp); - return 0; - } - } - else{ - prev = temp; - temp = temp->next; - } - } - //If we reach this point, no user was found - return 1; -} - - -void printUsers(){ - struct user *temp; - temp = user_head; - if(temp == NULL){ - return; - } - while(temp != NULL){ - printf("%s ", temp->username); - temp = temp->next; - printf("\n"); - } -} - -void appendMsg(char * username, char* msg){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Enqueue message - enqueueMsg(&(temp->pend_msgs_head), msg, updateLastID(temp)); - return; - } - temp = temp->next; - } - - return; -} - -unsigned int updateLastID(){ - //Increment the ID in 1 - last_msg_id = last_msg_id+1; - //If it results in 0, then the maximum representable number is overflown - if(last_msg_id == 0) last_msg_id = 1; - - return last_msg_id; -} - -void printPendMsgs(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - printMsgs(&(temp->pend_msgs_head)); - } - temp = temp->next; - } -} - -void removePendMsg(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - removeMsg(&(temp->pend_msgs_head)); - } - temp = temp->next; - } -} - diff --git a/lab1/servidor/user_list.h b/lab1/servidor/user_list.h deleted file mode 100644 index b947099..0000000 --- a/lab1/servidor/user_list.h +++ /dev/null @@ -1,31 +0,0 @@ -#define MAX_USERNAME 256 -#define TRUE 1 -#define FALSE 0 - -/* -struct pend_msg{ - char pend_msg[MAX_MSG]; - struct pend_msg *next; -} *msg_head;*/ - -struct user{ - char username[MAX_USERNAME]; /* Username that acts as ID */ - char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - uint16_t port; - struct msg *pend_msgs_head; - struct user *next; -} *user_head; - -int first_user; - - -char isRegistered(char * username); -char registerUser(char * username); -char unregisterUser(char * username); -char connectUser(char * username, char * ip, uint16_t port); -char disconnectUser(char * username, char * used_ip); -void appendMsg(char * username, char* msg); -unsigned int updateLastID(); -void printPendMsgs(char * username); -void printUsers(); -void removePendMsg(char * username); \ No newline at end of file diff --git a/lab1/ssdd_p1_100291121_100292107.zip b/lab1/ssdd_p1_100291121_100292107.zip deleted file mode 100644 index 0092f37580bd067d36c8f2a584137cc5379d48d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689617 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�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%0DSCdnPQ$Pr{g#46*oSXpwY8xsT zipMQ3DdWZ)dPk^5py!^dMYQWG)j_@MPSdeSjNp2XP7y}!1g3~}i%b#9Z5ThxZ$)qr ztIjxr!!Jyr7$d8;r+I^sCyr%9lyy`!B+r8$D8Q|#$bC|>WtR5}OHd{zD54-QitNCX zEm*#+r(ls3HlbA8s)bNZo=16@h!06QNsMA#x3qaCD%UxwvN7mfL^8<^_ot%@FGU%*2+sk>Db>`>Z`Y`xQF{aOsn}9( zk^CO9n8980JPVA9I)Tf_sNt>ekCjRWoh#O-xJbv9Ia_M)1zTq8=WL9j^If%(v0er9 zGOw`4R5RRTNC7U+E+@pRXTi?({*tydb}06;DE4(>ttnv~LIWBa0~uv{w7GiH@-s>; zxMU`hFJRGNt)XD~TlU9S^DzE8 zSpe?DdZV1d?pCLQHgJemq_tKx=Q~(t)QA$5T;ny{Yr3e!m;RT$U9(zvnPx8-C|1lP z=!__M*U^N+y?IFMow1b^)vz}+j zp2xSoBu{yy{9N&-%x$6LREu-6V|HCMF|wzClAoEQvuH zHHE~;Y+VF3)!4{wT{kv9_$a?!4K`u$sIFa0207Wt2&0U2to#9UD&1A$-2rgxU)s2* zv4LBlRzccC__4-YgjQ)@O1${!u?I$W?>rFAffrcK0sUjj+jUTlDaew0xma`e?NgfY zQ+r^$We1H;$G?VEzDUYukkxpy##*?UZl2*+#P0@UTUW)~ETEZy><&_Y;+5G)i!E9c zk@KHiGqeV1P2tN67Y=9k=D`nv4~30GudA!(p87a7aB9I7{fo9|0gkhrhMCQ@Drl7w zy(Vwnb#^(5{cZ68m28!41gnb%r+9Yr><1j%N}@%E-G6=utHsRJg|Ahzy5?87uI;#h zu&9w~1@^54?7THb1qNmFV+B>6Iv@L}>~NF(3JhyBjS=!3&RVk3m!}8)1)cc{PQ_D)1k)t)q`KqLVy z!Dhjj0cinh0joir!EOO|0{(x9{_Op6%{|HG$Q8;p%w5QJ%q9CX6`%#viRs4Gz|g>= zg2dWD*1+dL?7-;2>j0`~3}YrCBQqcWz}%UkrCOc4w7_(4fh-N145qzt)+ZB?4cU$E#q#dtqVHn<9Dj|r!xNAS>q?`HMQ$tY=&$On zq0eF{-T%TBx(37=(rLf4NBZ5WhH0qLz-gytbiAsAW;wDMr2Xzu2kz>}<2FujRtM5@ zI8ktFrz=_w{1wz@f4grhHcQS*@{!Mn3w#aV6(rntXOC|O8+*tT5cr*Y4*@qC_UM~m zzYCuY`xSiDHb_sb2R?fkJg~@J?>0Jb0DYDb$tun&Akv` z^YUV3^xpNPdO)#<6K$o`zcAatO@SZXy7#(zaI$A_fzxi6WKRTokhX+O0bd=}_YQc# zJ^#ptrro*gDfHlNiJ<$Dd>6P4)dit3as{q@GqCOd4rIfk4a^Hj_A`HGyw>f)))-Uv ziM~$U=Iny1;dB9%qdExq`S4m9_K}0yN2vS^@ytmVY?pcF@AQtrikL~_ejg1r1zeZbp>RH@IhvU z@xf+=@`YbKaF{{Y164zIjc0>s?|A>vKA7^azCr6*dI{ggdXL^t$L3h}2>*igNbiQ} z>emL^I_N#0;k#Svd3rwEetUOy&s@P_c3Z1&}P7THF7*T0tdRJI}e`uQH_ z4RyJ@*1Pe}WCQ<&{hoI9J$ND*Wo3{(;J;@vN@~FM%>e=f02YelX|C7Zfj!r)ydT*M!8I};OxB@D57WE*H8mep*4|Lh-8;LB zZ}ty5I}gr75-+HZ@f(a(zH6p!MO+U##D>m2A88GC@0&?D;edR(Y58)%L>ov9Tf)*IQ$ zsiE&HRQ{@g{@w}$fmXZG0sK*%K%xehY|yBQA?fK$0!OVSPBD1VkuAqhu@LIfQvy!W z%k?`PsQjZ-rif0hivlE}Ce$mZ#Hg}L8RS(mQSRr+&RwdS+z*-Ny)WZGbw}2V_AI|G z@s4pV^RAk4bhJC8|MxZ9#rT$2&F~@eUTaoMOtJr zsgbPplOl-v%rcDjGJLh+(I=4+|nX4X@D$AgmeICb^q8CY(&<9vErG|DBEL0nuCe~xS~m%&_| zA-`F=y}qO1K*^DqNhz&ZoF=~^=4{4}Azd^#Y(hv=-V7edoCKGKh~qO~C)^ z4tn5g3TkW<36Y;Fy<)b(jMJ{ViKri-I7zS*=Q7Nw+dq75J;fzFU6SdwF8F+`uC4lD z70(o@Xlq;AZ>-HTSHCovvx?}YZ%f7=Xv_>)awtsD`>}>c< zjLi5<^xvG3;~)EXA_LoZ3HEO<3)6SjKcyHMzAcOl_{|SpMZq^i1Dr%-@_5pOK9npON*u#P^hpYz+A9OyA34 z`OabbC!Y0x(d z=>LU`-=~p@o$(*}rtFOL|Ku?I3%@<=?Ej>)vwx?uurUAMk?(L0CU*7z0X6ae>qTVx zUl;M83-`Zo|8ouB=$}IW9N70k{X2fI`Ty?Z|9N8mqw4qi|KDwp@2vmQ9RINYb7TDP zNANHI|51%aHFf9uFQS&%<5c#=%C^w+%w{8 zN^g7{oyl=DLh<2Bfzc}`gd#g=XdEJv)yp9&-PQ|Ne@lbjP`J0p5`L-^$P^zTGj&U%Kd@L7+>TddJ- z1Z(?K;MLTAiSl%1H@=s@A=al1P#ZD44N0~7rF%10CtbYBJRU6Ro$5F(ena!thF=?l`rVPZ_5Z#1f6nkl zBA+iB{#kB@Bg#)vo*G3X#2L!5&G36g#hNvgr3U5v^d3=L<8f|dwc8J@`^x&g<4t|A z?Q8UMw{+tn+iGR$Xk#z$g6!QAe*WgPaJ+|aPEH%=t-9UxD+}vG-3IE-b&qHD%~|E; ztAJkSBekRcYo+QvSn4CW=@D;3wKr{|xVciJw!?8{mV}0kT5GnIRG7z%X9~R6+!oP4BrTZZ}r|3~m4DVQOMz^7iSm4Ji|@ zeL^pa2?N$Gv&?3(yH8v74Ekt3$dTi-R{u_LRU2GH6JEq}8C>~b#;~tTtup26IF3KT zg0sjVMjQ-2c^_^If|ankySncRnos`n$?+!5RB>8;>|>$pnpa9@wt-eeVmW4bTo6_} zu)TF1?Xa;c%;wC)EDaLRh`TAQnU(^q*+g;xKEPx zX1OL!Q+DZB7H4Hy-gY~!}UsP5z%NNv8-uilv%n!U%_V%$})OoN9*w3Ig z4n^HYxJ1tRu&5{+U1R+9C2icx_DfH;pmp@iE4pe3@OKl7zWaXoZC%f%{;RX+q};nt z&upBF(r`DJl_=}f7`>3-V#pUcrh8Z(z%wJ0koM#$R2`^jz*@1Q?CKDz3n8`2uM#+_ zM#3Y4)IF%s45w847Pm@1d1^%=%X@dndam`Zp5!IG`f5+(J*=0mnl$oPdwbT^6q&`(E40O4b;@aR^zNMWysNLG)mBL z+9bU1`6BrJz6Y~$dO{-6*NV3A@dMWhCXl&NX5f%4?G_coazYDrwOQk*l6Bc9ab&Ax zo=(g2`843z!Eb_7FC$g5rZc%+U15W_xH#NpvYrk8GmD>Id?*ZPGvN6_V$??}sf9*+ z`+dbZ7!xE)GZ)bHrCpTX`Q5A0JjfYpB!i@fYU*2%Oz%iV0B1m$zY7Yc%}*PByjG0PNu5)?kX=E)vEO&eW9c992AK&^3Vf@Q?~{KE^#RBH(fk8+OP)`h^c(v;HU_E z1^LFg(dn+oP{jN|U9`6J+Td&6(rcEGkLIqn*8Cf01(H+D`k@8oJ&jQ?SpyArI2wSE`tMNj z$|!d05{2karK2U{bqJh`g`HC$7n6lNvx^SSK8p%(mE{-#%Ts%RKU5hP;yXy=wtv0V zskvu^h|xCn+*sc^feeve7j3bu{|eHCfu4$4 z(|{4&&_O=G2ejn~8iPo-WkprdqYkwXbtkAMiVz;^ zgyfmt+=n>=r%-WYQp7OaTHVmX&V}#;&GmD*p;7OQM2AA0%BX6^=)>_ zO8+k|z?#fC-{DH6|7aOklw*J~`0Zn^C9vis;O1yXS4Lrmw0r#;v_1L*C%{M~1RSIjaY3J2FR)G@ERUstlC9Yu|UT-g1F zVIuMkDL6ZUB4p|CWK^Iw7~_-0Tt9;d^=KYP^<-K=x#Uq1sCLh;Io|uz8D z9iCNm-t?D31?IG_%GG=(qQI!kxhS~+D2-jToR%|WfyrP|W{5|A`gb`53>h|W3fh*9 z)u_tyyp@zpbN+J>k1RV`r`1T+ex=M=r7Ww8g;fF;wn6FQjbs*p@Y2$%ne0$DQ58Y_ zG|w3k&HH6~8Ij;_qKeElab)2;4tA%#pF8a=+tudC%EzR({#Ns+N_p+8=OK&SC|(%{ z!Yz%h006-~%`dzMoLxWOW>%k68z*9iXK~J7en-0(xnrf-is8zME<`U4g;jU>fnw-n zatkIQP=kiyehxnct&@Io9%0r;yEI%G0#RDbstHXMDF+sh60W);>bc@q5Tg;v!(_=+ zm&VzOqpa-Fck-W8MweVbQ!$n2jpZ-kk(Iga`^mDnG&qaidpH{1F%>;}uuVX=lS*b^ z^a2RwyTbM*%%TpjBIHFT{$~Bf)gKry=f*u~R;|4SgQlqV*9PrIJy7oP{?QHN1^G_+ z40`Rq4c_zQf2B`QB)@4O)Fb(urvlUG%r_Z`hYN_t)`;J85;0Lkg=6|h0}vXJTY~2g z*QI=+Nsm#}_T6<4ZdAv3uv!0YnP50(Sne0XgcpJk_v3IcBjLav^`@2RZ7PJn1ksibDwonXp#5 z@mRekWEMFE30abX8@cf~LgE2Q3L{Yl%`j6r$wa*{) zL^%afSz4h~^0JXV3x^Z)qLDe|3?yPn0=2_71LdKDk)0@Z3v0x56Z;4QRm0dRB<0Wx=|yvs|BwYz1`>iM z`w4+wCGEx_gBP;n4@Aqo;}1N^d5{fg7cSEcG|PDq4QLlUtA$k;Jj;dA6+CN%dCGZ^ z4iwA1tA@!GJgbC77d-zBgD-H=4&xKM5utb#zsW+r62FN;wwAa_Lbeva2|})xxJg5< z7QYEY_Kw*#q|l1n6{66J*>$DJir-bG$co)HrO1lg6{GN?8$godrXA3imk5KSm`vD(p=c7VRSlafj9J2^ zt>)3ta&PH)v~j)Ixn1o)Xbc`Rhfn^0?eGXhzWwY!_y`_*gHL|KqrKwO*z|7c__A^R z+WG&c<3DF@#-X+5(%5ur>A0|QUE8^B>OZgy9$SO^c4#%phtM80hz^R}XpdBlS zXCjWEgP9f2j|gHBVJJ<5iC2><}}9MGfrdXEeMvAS4YZGg(}6^yApdc zmn52C%*avJ1(XCH2Z*YHnlQ`|<{9M$3QEN`*!?9c#0)tNMg6sauz)y0mL~FWC}##Y zW08lMXO>5qw-;)J5Ex>FIDwxg%^Yb$IfI-xA{ZY+iYSGTiFXqL5=n%KbrS&|Nl+Hy zLh3_Fm=&61m&cellfV{s3K}Y2x+$8s7b5(3WJj>S#0^rGVdifhfuMhBEny!2{OIpI zAi=5_NU{pyHLrBv@P`3inz`9*e&lYq>7|1 z=-4c;yrh<@G;!;fWpM{p2rb#Fumgr-OM+bTFHK1Ygab{{N{!zRya$;g4zx2Ig6g4@ zMRCTmW&X#Kc}yWqzbvC#PJb7RXh8oiMz9QPN&8)ln2Bf``1=9@&5wbPV;2*6RkXpk zth(5Z452c-1@kwV+(VLVWo(Ene@EQ%Km{EI8wKw|4`*_Yp{_Zh3I@P4&!U8vpdQ$TgNTs?#)ibU zL?wiAEuadxV%!)CsA3l2kx|47e!>XfeHtn(jCk#JG$d;#2vCK^lxC*hMOM!bC}H2l z2EoL%Rq_oI%wWmsO;8qOCf_}W#}p+27tGMp2}CGnPX`rzQQ(Qrn$9Nw9r-|XDiL{r z_&_j9FdD@^Ky8TdQaZ6YZ$!#+n6K0!h@n82Ngg>YkRYCbXgdztN)+Xqvmc_*OCCBb zlps3)-NuycrGEYyPI)ebSh0!XY9$4!8McC?gha8v;-{qrQ5lr6e*mE>HEUfxR5rs} zS3D-x*SJ2P2+u&zxLsG`$U zI&jej)(Y_IMZM;Q=LY8ve>dKCUu^=sA>YSOcL#g*H7&ojSjIjvsMkNquKl^fo&UgD zb^qyt4&lTXFa_=l?(BW>~hsub-$@^d3Ooc=F`5@4c&s|+8)!4)CDmO8Q{xB zP3C6ZTyeK)qwhJ;jkvA1O}PDM8+e`z?;_JU>zrqad%!))HP^ZP1?+0&FukL= zd}VWPUhj%j>zs#W9+%Tl#Qk`GI%s+j2kTD~?0Q{qy>4GnJnQ-L^dO>I{xTZ(-L^8`sxiPfFw#plr^Ld=2)2Wci5L8r^+|B^tPDsAe0r)C~=$ zVkQinEhR3xC9Xq#f8}ijN^C_0O1fP5OR8E}nY&%AOg5uhb2$cBa#y&_{wxeA=I+UQ zDcy|!H5nS8j@UKLJ>e<}EJBunlM3>dy9t;E;2{0k3m*y^yg)BRKBbrDq z;uHiYEzTty?-xOH^UHeT)^>9kM|$Mmmqj`+-Bc*7<_S!e65AP*la}US6KZVFwx{BE z-ug^@+&_xjlKLc6U7|`^XX}n5;fV7PE0c(zF`XS3kCYe-1&3K2Je9gVQdreozr1Zr z2&2>RV3Kc*wjad7UkG4qZy8fB-K6^zX_c)0_zE)yBXvk!zK7JEn_toO5@vS~dWMlM zhs2tMsQ){0UM4*`Rl4X!N0348RVyfw-Q`FnfyYCT!JAK+r{(GRdVC7GqFXaq9 z@wb4J-uj>{(YI{dcKjvlPNMkKZTcodpmwcwW7AUE&&gpE_bO5uAmZGC8G%RNFl%+U zihMI;DIf30>H>IvRVkjVXi)D!B~dU-)syv0nynknA*rspwH|DhkBHC0Hc1bTcBNVa zUS*S8@JJK|3sCl`wh&PBsGOapzOEM@_^3WfTO^TfCzL*=|NK9BteRR<$Xqah;<0* zfzaV2Kn8*JeZ+Hs$-zf`W_rl+ArgRzeD{11dTeyi{{ka}2>258=;T14|AhGo_9O5& zPz?M&(1-7jY4~I4ePB-?Y<#R?;P>Cw_(<14TKFKM;IlvAW1tFtSm9%c0&DyxoQ4+t zk>LYU19Ia7TLX;R0|Nje?SVl5!IOiv5GjN5_XiyPV$aTAu#bNa(6-1n__q5t*LHP} z*S7jL);3+wQjc;^at~V1Q4jAn)3*HfRL}o>BK3gxy!B-J@BzE~KKcCnF!F8oVe@74 zS@K=-QTA2#;rl@cLI*?#O!s37WC~~scqge_VoJf?R@L0y%+b_H6WM_GI?Z>X7{c;`F7r0k`3@!Lp&M0cin!rmOK=aCl$I1TthEM>|fYN*?aHy8QxKMQ?{QRlYIYYqX(!DdJh5!yWS5G znC%cCYz7}9FdM*+sQ(X*|1rhN5&IjqarWN1eTHXL{gmw^$0YB+#%>4f&qVbHx(#3L z*4jiWca8CY)}tx?2#jij^XWj5kA-1{rj$y9i|5txraI^q|8uD(A4|X0!73xRx~)2T z_mq#U&ey3=3`rR-hdeLH`Z8xGkh1}mC-{vwxD5!0lRbAATEVj9NoT;^#qsAm`qoh} z?YR^7DI+m`z0y)q2gH^3bMGbI^{7yrdx$8Ndd`JfWOalxZrk3p)X;b@vr@lNJ%b*cLuQiO zB=ZwR3)rs3I;0g&Cq(rrRzbccldOkf)#Ab>V62r9l~noV(zH0qEU9y5Cr%|xXfFTE zm-+zTvWLZdxucyk4=13_Tv@bg+l6EL} z;eAb*DaACz)~DK`<;-&@C-8QO^f9+_%!!bUWKv5wbq4S=hCV4CH_5x^!)psm!1BN{ zXC9Fz^j9g5Sw+-jK6xu7NhyjN_{?aKzR@msgztSUg6yfD<-14+kMY4#haGRzQ%WjT zL&D!7H*az6J}-YH7g*kb3MfY!=F)QJjXCdwojPUnle6WAbFhj5seg_ME7w|&ZO>w> zZJ#!>J|0nl8(){qEYFO90pwL)95uX%2@Soq>idv*2VEc_AMpS5w0>qO@?4028& zm?m;f!t>Psq%+?xawq$W@W@plL?O;Ih$|A{7RNJ?Wi(YQ66>b)<^f!Kv=V+!@<`dt z-`T_4d&K|P@#%>=CA>5A#o|e6Ut8YZeWo?{k;$3Fa+BKfdoxUN zbzpK(=3F8=VPDH=@gtU`PIKdJfn$5!-}*QmUUTgObdJcZN2Ubv*cU@O9;;t@7vv~PZT8idji)Xn;(J|_5*R@?d zQr(t|j^}x@*BBbEtDY{mKnIV`#r=xQ9Y>qzjG6+y;pw0g1d68@ps=<j*r>pxPzH!gmT27pntb>7h{Xe zWDLJQSd;=7+QGB?5LH^W$?$aSX^t;OSQAy*{$*8I@d zbtCWR5ToW;G+JrUj=gyO{Mb0DkTJc3VT=4L>=ZWJ*ydPn{ktwDA z*(TEt?_$NhXlJ#bRFgWwi$BU2&V_C3`)PUqPFo05)ME*aKWz`uE`I!_2Zc;xF-RN8 zw4kzqA7*p0FLo7xB=8JL>_d!`$nY0;?H%*&T;=l0v5(oSu}i{MrZgs5SW01_LCY$40_YpDf0~EZW#Ii=>GW zih3}OZY6$S*y7n4@xe3E)kp1&t(||APE)#>kwD@kLuXz#Vm5yksT6Ou6OD#3A*^W3 zj8!AJ2KQ!to@^*J@qo>))ya^r9Y#{6+y<@wia9tB;_^mDPlqMu-i_wvXGELvxh9)X>`2z031% z;xi~Qu%)j(_u=1#@Ihr1E_CJe;C%34>wI&mqhYP?%RyJ|9IIN8QSr1L)Il7cmNgf% zd2X`EHgGiU(ZM7S!O7Fe?(r6}5?wVO1OU~Gppr;I; zoPDvcUE7-%SVPwLqazte*BQ5Mc6l?_n|VEb{%tO9wAE0QP+^ciP%^h8plQF&T&~Ch zz?gpkpX5IG>}ZyuUhXA42#xS6Mb);xc{)phcjP+M{{>wK#z54bs%m?IxedV{4yZQS zhjDh&JvcW7ItuO&CQCklVj&hW76=z5Q33eUT@7e-rFK`^Dai|5eVmYF*8Pw- zm&w*l;dR;lA*1C~l)q~6KCZ}4;Bv!3LPRFnvJ*x_gCW*8WtwW(z*aPuwjNPPRF_v%X7#5St?? z=!Y0A;DOJX5R&rOj_wN=t25_~2SEWUueS&v(}KB4_ye^!jKkzIQPq^yC9b1z`pE8pkFj@c@~WT%gss!eD@ljic~ChxKewUW^Y+xU2SgDvF| z7xcQoz?eCveIA=;y&aJWnPEj>;X>G0Eia@-ziFb1@9lZr7kVnxBtE9XINfPK*N54LokE;d`+B#x{*?wVzHeg zzg!R#E$w7N3ZLz9Z_S9_?8$X*mQfu*S6)prJt*O+ww$z{gLcy&hfT>siDIX)C*zIc~3H3SL^0rL&8(!SIIa zrSx>fA?4HxJ!Ms?Q=Y}2<(oQ=YTnc%FfP=nGWbkPbOU-~BS^Mh+E2V*!B$<1{d#V6 zWE8ODLmJ{Eny4at_s$3c#yIZ#>MyiAFnwpJnoj2@Gbg-eGct~^difiB;!!zv ziH9eV5ZK8HiCIbU*l5Wa@kv>U$V1@a(1Bs_g=?quXAh|D4?c9A(QA6PPhv7tQVi+x zb~8uy^P~rMA7xqfrz049=>DpnMmenISvg6l^{?YS`9>_OczX<4#L0Cd+oIBkIUG!zhN&H$ao_AvbBB7zc-yV!dV_V>*BW5fgv2@q z3n;Fv31jG+xjRfJ#_W<#{v>HjtJD>_4yTWhht^8Vk2Q}*SXJ1fTBJ%O)fx@uOLA&) zYBSZXMf%!~k`fO+fwfmueYFK_=hbJFau8SlUfN z=th^cT%J7i-%I&-X=bMiK(`{}r=+`2@^$`x#xNmJ@+gFf~5DBhr zSAqua4MismqM$~_YaJ#I9ooM`Cu{ZFk7h!E4&%7H_XXHq5fN1mjB9MJIU^Jp4;{(8 zmjT;5BO@b^mi^*P3P_E1sn(ZhB z+A0x7Ugq#cK*~-?=1pRwSH(!`x9{&W)wO5;oP9fao|kzs;{!#KA;$3Dx>$2C4Reu{ z6*j$w;(?lX&ekz>49)XGvcvcp|2taQu}7CyJRQ%lj86!^~CD zm5GAK+~$?qJ*c1bYcQf2uEROy;6$4ze>=ZeuP%lD>yP$}xbY68`}v62brYkY|7%ICb&roPwd;m1<&snARh^Jz z)?1iyYOxUS1G?}_tU&N}N?Po|II|3iA{Oy~>?aMg>7fat|G9tZo-F-W{@?HS*)a`t zQ9a(NA&4J+%%W5U1lr!iUk&oOaJx?x2MTctqGi7uWEgwi8ybya4^xwz&6dt9}__@ia) zRY*fSo-NyE1YFRqO4J99vh#H7Y}sJ1MtSt6HjJKWBXE@Czq=sKT}tCCaA23Me27QLw2>4csbGro$$dAT>uNufB{_$(MEp6LU`o>Dy7YLn`LV zN-7oJ(pQ$EIfhnheQ~>Z{%pL~8>3gt4KUg(Om%rX+yQu7F8`VPn;soM_;*0fy;fwi z9O=MCJ9F4khxX4|PxoCJjXKEqfD@|@p?9cSv_Ecs&Bbm{+UXfZcc6JU9CQqHLNMhi=q0*N>eED z8%tC+Li6e$v*L+Yv;8}htHJ6+lhevbw_{>1!2#OHX6Ny@_rCa-_eMv^ST=yiyny)x z58E;umedd`0g|v)>@kmD{j^d^r*&e+K9L7_!^t5^I5+J)Ky0ra@a&4Lsb*5?GI4Wb zHfmd+Ma4~a_!3`}Y)k)woQ0dqu(2QNkx>4&nB#4Xi$|s&pbh?3(0XJ>bt&Qs|1$ZN z?P4w?xbB@Eq8^ymf*6T|+vdyM@=IN9Orv>Z-vG!AXKVSFu4u3+k{!ayt_JXT{E6uD!Tp`Pt;HwfB zDNZ;vEkgSX?Gy=?O>53|*fTp0ar>)~$F$oG#3qGaT`*x-vQdfYlAs$vX{ALEVdl?W z_Ova@gs1&5Po-#1CX`j3sbB{0>gW96#0Az6I|xmfQ;4;w1yAS%CqS~ZVa}tWxFOTK zW9{6QYuHp`(X?TW)ut8l>I=eMPj8n5`9P`Hd0=THY>lgWpT7@p8q{96g? zz=xjUt9$gtFYEQnyu{s1<>ge72jsA1T!!FfSRy0CPUWN7QFe-}pyiKI^rHwaf}vk% z+{ndT$HF^>3rFRr07k1^)G!e>&937+uApTO;q%Q;lNoQU5L0{7;yKeSu+zT+c#5^W z^Y(8Ysoo%^P0|e2Ggf50wqf_~Po>f=Dau*z342t^Yt8n3w$2Eaoh)?MA+-%97iec$ z683PRb7W4{)0aXtdYSrO6)%c^*PR;>fE})!X1VpVb^|`;H_@j){~z4F1Cu6A@GrVE zvoo_}TRXOG+qP}nwr$(iGq!Epw$Hx*bK;(Rzru~k>{OvUqpKr-5gknwQF{ZI&P6E3b?TlC5`iZzZ#LhnA6V9$)OSmE0uLBG+xCL9btS>tFmoiqcZ= zgLBj?@LL8gtS!%TivBBfH)%Rwu65tq3%-a$%XDZ4vZkNpRKuS8Tts3sx;*!-%WX(1 z3mxH3cVUSX>#Zqw^+K8hUiJI>>%`qWI0hdYHenZ}>ug)e75l1_0r8`BOr zhNb*TIW)`@Zu?AjNcZ#~R}Lr=ZTr(PqvZSbsBc?Lfve%H!e~QpFH+!S`&qBcSEY;u zF5`o|xkJ<8NJGfpm2^Xp*3}t<09mhN4%vo+{O+~TG0CsR&X&j+-+OLNxUg(n6giP* zX1SQnVmFOtd2!;Da&+N~Iuja)Vl|Bj;zIcXoyFLac9!JD2B`G9HNV|n>96!;3lcjJ5*vd25|SBTyc3htXfP>^BMT$ zeW^tz>t2Uu+Ypax3iH7=d5%!B5Y@&Z~Q)hM-7D3{BakJNEr{ zMkYl&u5gyoty8YHd)Ee9SyJPmoIO{iEV!n_E6rcRQt`g~VgeU9hqg_exo~(_q9+*t zZ70W!9TuX6n_RiE2kpLCwsQqh9RXec!?LU1wT>`Rt}7tC=`*_1vbMt5VUy zt*<(Yb+}MSznK%ZZ~=9a%;vpa5|`Fc($|qxrsN<`=hv1bI@PjL^Jx5G5p-Q-^uKO9eo{9zdB^9ocQ6?poMc*SqG@&gQoi*ely=&Yne->GWXk zwTMjBK}^rZ8iHmlk=Q~xSHU3PQAOz)-Yn&CDN8vzsaZR|b1JJMrz$OEX3oTlz_Q!Z z;M=BYE*@AZ7V`5zKd%N5>)#L{$Nshxxbl*aK|#xt#){;Otz5zo7~;wYaL7t7o0>9Bcd{V3nfr-%{V41ztdI{U3g%&`{_0!m(Y@d#QG zDD?u53L6H@TgM4oC$)4MN@&g?+X7jetUo&$%~7z;&YUnuYv~FGe9pfa6ea|qb|HWO zr$9pD2!Sl<`y)Tw|2m@nf27( zGuz!?PLk*3UjCkwpd_mAh`2S6ySJ0w9-d47cAb={qHQp9b5a%5PG*y-E!7Ksb#(Kc zZcMryDv6xD*~`Aa$=z<-3>dCOU`1r2&2i}%9*nzN*p9GeH>*8*PNl72RSSkmzwW`Y zkd0h!*;-#fgK>aWwqpiP`-mLh}lk#X>nmE zz#h>EV4L1@2=27MGF;-JeJ^KWxuGn|R$>FTCg2&+!ky@v%JLZf+eaotwkd&y+G!JU zKZSK1+%IVt^2T;o7aDrXH(M#Zm{?I^?S`$e!PGxrBqVB?cZKYDxbYYBzK{X;yceez zU7|zl$X?h0cKK%H^wWmc8bF>A$(ad!mD2{Yf){p6T?pz}yE>dv8dhOP$qSdk)scM> zm1!0RhZmE_=x!hWE|a5(;dj#-!O+}Y0@$11?_g+d(5bGjOxIM`P^pNasS)*Ys_`&4 z78IV!0z)A_kEp~tE@wWnuz%uuN*F(%*J{3OSnp_f_h>GWsm{{YR8|i$PF^Bbc9fv3 zG_7E)({_f*xkzq9s$U4fOok)tsGzDm$)2LAq%7xaaT76CHXZotv4TjM==%T{N}TwRJ)Zlm7Ly=_PE%oLFpVA1!-A8B$heQo6%l z?2dV)EHBSiRb_81;IA$#r=T9_$1pBazl*A1uqMk=5?8iAy3}fJa&x(xWUx>U>{^UZ zo4uZoV4&!~i@57a2pP|?;E7JiI1k}4a#HyxM=4ezp$wDw2`rr z7tGe{JZGpzv$0TaB_Qj6V}COK>PSjKQPtOd0@wrWbjHuH^PO~#JGrN10PTnD1AW2a za5RW`T3PzBNIO>SRDSdISV*_2E2E+`K)y;|Fl~jBXOA+XA%#|lI;Y=qC=prKo9Vz!^gv_3N_`v(#FM(#g5f;u>@=u3|+-> zw1Y~oh$SL*>Vg5AP$EvMt#=w6aeyRvB6fLb2rlOPT2og$xEHurtG zFWw+o;S#dDqy^BcORYE-2M+sWQH!iDQ~&tfmDjpr6|Yd$`4-8=dHmwFGhvh4BYYSd z((FY(gBF@4-EJXnI+|KJ4eeetUHnqwxI|$(=v%>YzD2{Et664=`9i9PfsvZ@E{p_7^fkRj#tN?iduBOGbI-& zZJ&Oc6e77BGe!{plLX+`)-TFE7p~tfy)>^lT0&1Cvn+x1$f^Q_I?QMTFZwXo4Y~ab zw+voEo<1C-j27q0V%4>oeY83NY1Ej^pnP`<=sxXd94{)EffqfH&CnKgDBC{YJ{GqS zpRu}n zhUAaEv39B3py0dSZoggnEpMS-Z6nk)GMS>j59lbeBhi9M0H`eo;`InEyX|(YpOCP9 zg}01uIM02gWTeVE5tNK!8X33t*62F0H}IQkuV6Z|H$oGX$<56ubd@zGEII~Q=QQ&2 znly~?^Y|Es`){|@9Jp^NpPhC{H5VYO-C)=LuDdIBI3DyVT@bknSXf^L=d5=LXhFes z(6q#&WnS<`ejt$a2519zQG&Q_AwIHSCa?HhVRz>nb-3HXaJ%$wu-krLx8V8wBsG^p zZNF;K33nX;pJ2G5C;D)oh&+M39mAp8$J9X^e{zW~iM@jD zX!n3p7trYO2tLzp9s3Qjsa5)&`txZ_R}C?Q(=^VB^vU$2+lt{z&5sQ&^Y=mb`U+oJ54_c;1tf-)iSoIXIT z#W()ok$Q#Py7#O8d4azs^(tMva3#SZ;F5ZU*pu(?VF}HuDKf;a{-5cC3jaX;DTPn* z_}UI@&ZzUhb?65Tn%cJOHGM(|ky9^q#@{39*ABvSY@+WU3la`04r=uJHp{F|v7_1Z z>L=+}5#ZGivWutPy9#g#gl%0q$fbYr7osQ2o?QQ45POh&P;ijqpHgrEo1U($x`;ZO(Fs~Y zDr)VF?|Pwvf8eTl{`f z2wfsC>L^cA_kUUM4-5*0;Kk>Xcr{+Vuyy&BA3V#SCc_qHhrTyzmq~ewE~zG_CZxu% zCd!su$Bs>de)0#g1xZJ;EzJ&NkD}i>h&xF0Pb&gXINSD|WLu;i>mE-(NDw##91<@6 zXTUA`2r?ADU{+j$G+UA#n?9^Qu0H-AQ@=t#ML$^oTae9QKQf+vm>s@8+8$#6QBdV; zX#%+`Vh!o0P+PFwza`p_vu8$^HUIw}nKvrWw#ZBB6=M%A$oF8>NPrTbaFPgHpbRmF zV3PQ-)e2)KaI!HEGH2*y*Zu9~h={9H1}^dRt|bWfbo}nS*K}P!c1IGx5 z6ybO<|Jh1WSV7q>GS=RsDHp#a8$ZVrTO|uoapn*Bf%Q8B08}?-hU?)jy%-^v26Yx| znda^%r)73yR&|dt6fPGEb&nAy&)cv%CN*~KoAD4VJH92OhQ!OjqPH}o-84S+c8w@x zQ&wqz@t{o&<8*x0ydYpkVeND6l*$o=oOBOqJ6vwqG;hz8pV$kSi+%hRndzRYjOckT zTz>fEM*ctdF^@LamU6tEZ5EA64kCCKP&e(9glDnfyeWE`g0V79TqO-t zu6yPt95k-YUo|LLZGUzygapZl9gW6la5xsGyNIFUSxU{46REf(%bP1>Q zOC~O>x0$_Kh=v380+n*g8*1*6#suVq$An;tDOD%+4e^!a``@#&=9TxDCqvD`Dcg$% z>xQdlZ>x{_9CJK#+NRWXtVEAkmLQY{iggMYM)L#FgAB+|p8t;R?oPykbchF(PL+~a!v3pc&Ce&acZDJ0da{i6) zq8G>w>u4>*Z6*vrpQkVs>ow0`*L2tO>0S3WzME&K=!8_;a<_BeEowNi1Lo-?EcK2^ zX2pc9U9=Fby?i)`lNZYttFURFyduvKlp5LTJ-n!t2EnN~@8UPJn)x~ByShxL{ERHC z+uS3yhfheK1#u+ICnC3Q1*Y3TMUo8TEm$qNwSdm~O083~e@~`cAhQJPpAO;KtAOW( z$9A`e+TPAJV>h4Hc}}OTI%t(Xj#Gc?I+&aw9XHVDejv8rczvd~s@Ss>#S(!;^(4jy zpc4jO{&@?a)ksb9a=CetzqM&jw*q*GP8kEP5gu{)c@ZCLF{#l!i?}r9=x^@F0;Ulk z8Td6pwaHEy_=jGP3_kC5_+QRc^9|y*&r#OEeA@hJS#SH;a6fX5msVyd7;cw5e7501 zexh=E_8CBSP(}*BRX4>x|9U}E^`FdH0Cbu6y`y_9H$hqZCEAc!dcW#Wa6_}}pq_g* z?ciYt5TrLKk0IBI%;aWm_*J1Oo*z&)etYZ8w*LO&o1J0e!26A|&7|wL@X5s=`MVm` z$v+RD-xgV^YX9>C6lI&IN7eR;GIvGuY+P{AbieWbY)$y$h?zgwR)^f{L1Hg68ug#f z5`(NXSUZdn5Wzi9X0k+9wZ2MR7G@NE0gA%2-X~Ffpsg*v{EfU=&bby=JZr-^w!edQo?-tv*A{IEsfZ7O`n{f zf%$ane4i7CybF44tJbt;*>c{g)Z>1Ah*hHS>?2X`d&lb1y!wR=okaG|2XL`E1Il zHC#F+ikG?5ftcD!?gY9zOyY6~Z{3;{W=nV6I+`?Q$$6R4E$u3+59?h_2Z>el&ICN# zq}S>z;cU*?Y!jVAPFIL?T^IcPc%ekWC-eG$cp77Z@92ap&$cPc)NX9_Cv5Z&{t*_o z#|BNh!R`r`X_HZO-o;abq-1RCjDkIg76rlT{73ZNt_Xs?t(O*FW{UEe>rex;2zN?2 zlFb^w;nWm+Ku7s-h$+nvo+Xr?!%ntjC0e&bW0=mwP{=0BdrJ5-`~~)1_Fc68>b|)^VZ!2@e{zFWl-gq(=Fhr(g89k? zqMPT7xtUPe6VDT8v77Gidirt*;sR1Te7E`o!VdP0&;6s9yv?Jzv+%$>wJ`D1q&Z`& zi9;IuIgknS`QY&#kL~>v+jQ}=K#1_=h1b5^OFRD%i+L>>d(C+3`SkhBwI1vJZdDt0 z;O?F5pKENUtG}E1_~3bo58^8}!@IZ8>U(d`{j-P+(zDR(n|If!C$bn#Xyst|R0 z(t5GM`vvf4UA*D>q49mFz{rdETg8qc&{sCC+wqCrUrTNF6zNJDw zeb!7se@bxwG$_yX7@+?wL4xcU@1kM7Duek%=lEKu`M+Getw`ISK&-z!y^@+uV=cct zh56gYauTxjNcDWz(yr9*T;!e}j9l-%zi+vRyla8*uJz6^++sn0@^|?H=yQB~SeDz0 zIP=ssWOMbI^nuNzgIX~iE7+rX;3UB#3lpv!lpMVEBwgWjfAaL(0z)*5STx5%K#+msT zy`-cl4YRa3yi&I!Hn3H+hdWQF(wJ)TEI;K_u{Q^Xro~RwK}+nF=jVkhKUj zR^Wr|bvVN$2W}OcC_cLNHqUlKt4jDL`$ABW)D_e1y_)}#_<^!)v+Tub5N_$sZV+_o z)nJ#F33PU7$%1hmI~hIc-Matd{(F-!Hh!enqn)oN*z+h1J2=}RbQ7rSp1>V}i&U4? zRsU97OHi>2G+cdC=hn&)BRLwAh%^a8~a$LktreShT<189GW~H7e zioASsDSZV0kRD5Lnv6duOXS2+Wn&rTm9{U{BK{#idQU>RPn9xJ85-{%>n?}ZBV7GM zoSZ!}tvJ7G#-br^YPgC{9GE>bt;(S_U!%aZOo-Pr9z3cirFGUZsgj)nH+9~qgg6t z;M&-k47KLbqLV(!QU^0GTow96rnpMdBA!0Z(l|BFa zXUwO3v9Wb+LjvRjV>LnYlS5i`8SZJ|4r)-A{`8Y0 zUUVsM>3Gwo{HQ@%sQL(Pe$9<8qlQpx0;8tdRZx&>tQR5nRuG!N2W!%oBx$`iCai+^ zntdw0LM;i^LE@JzE?8QlHm0ouMlRr;AT$P+YZ__&*9NYAN-l7n;0I4#mpW}}Uw&V| zB34CO5W0taMt%M)ta)GZkeTor@CIO90zLmqs>5r<6D0qD_<%^Nx3{;8mM>Hfov&gsfe?Fm|V(z<4eZhf(8 z6V>u$1t+or)`C`eiQNKMc&XKbS9n=`NzKJbV+ejbnKrWB$9Ul25{DB+xk`G8ls5C- z`~6F`fwzHIfbaw91Ia7&EBy-tHS9+>h!+M$p{fhQdxA=vTswRScMK%q3}ON4uV#0H z7idKDs78?eE8c-OItbEs>MhTnx8Ufc8_fPlD|O=c0)kUN?&tuS)9p2 zQ>ba{S-SwIZMBWBsF3g&IuIx&r;Ho7v%w^R^ zWIe`VB3#6(6+U`h1>U-KOQLDu*}DjbtTn=H&;@I*%$j-5W#dYS(`qFksyPy&u*Ep+ zswFuL$2U~?Ixjuc+7)u53MECIl*%!+ZgQ)i;pI)jg7ae04toFAA!9-~-$SOPnxEqA>0!C-r?@ z-6&x{K`dmX6&k9$l-ePLemrS#Ef+CWqoCTcxqiB7kZ}%5${IP;8P&a} ze*8c`LC=TpW;S>l@=(jGtg^H0luO!GI&KQ6ijdYku%r{Q`1D^yP}Kw?1bHB!cxZwG zU;<#YG4?<|qIhUv3Ia5gvA^sPVPdd9il(9Z@8_N#H{LJaHy;Z-N>4dEPRgnrr83I0 zNagW3N`#%|BF_r4?9aB#qibT(S&@sQZ(`9}VT+?P@tEz% zKL6s)|KhQWqtRl~n^B9SSN}x#;^@{t5&4+>fx&FZCo+XjRcHd8BhMHTwm6AV5g(~U zs9G*!Q=SvRl3D&yQksy#$J3H2i`qQISdi@|?*va9xgyMZ7viS)h#)xFxzByqjZP7g zkLD$XjYc{sZZDCAYC5QHFO!9aHaN3i&_+ZPsXK^rSJ_74)3`vl<<=5;)elW_C*CVW zEf3XJMtJTAZ!M%bE97~H_$q`p2l`o1c?xM?(0Lle=#N_fo>tI$3X^h5xecrtg?7+~ zQaQv5-;!IG>jy~lP@!wOTrbpsy`rZseQrysI+}N|bXOX?jqw3-t7AcU>jLTRjM!tw zm@#CSqkoSEpV96qT`mz4CCUqK7QNkYZwBZMYo*59s!bFTo254kQAegIPm~bvx#As9 z;A8AJ#~oXA94{0duk14kGBQgxHv6I0vS(=A%-30c-I6RZYk5jgLZztiSN;MrGLIuO z31>I(e-*Mq&<(3L$XuoAM%E3l9fG}^!dq(7phjXGl9IA-NsE4A(48E4*CCRNHJGv< z{)`EKm|Ha6Z#^c|rshGj9Mq_nsY1gV6sZ@t`YvQCSu_n-PkYCv2Upbni>h~?`)6_5 zEp$ikyaJozN$Jmzeub|bY(=ACJcr`S*U+}`O8K_m%31Bb@hvKJK&w8Thmc@h@=oB3 zJ{ff2-Yrm+ADn%X@9#oArYQfOKDAf$kx#d@Ur73hQX%AYD9pW1X+VtnsFNY=bZAd~ zUTVLf^bx#(BlRIHLS^+as6tWd5LNn2%P4t5nd?xO`#e^EVaYpMg;3vuS_NCz;dBde z-!otO+3JycL3Qrllqq)y-t2*|g7Eh1tcG$N|H2Luv_p^Sm4Ag`p0;NLBHcsI3SqQE zeVTD^`^7sT+*af>7ruU~+6LLv$J_?Xx=XSduwe&&-Ot??yOnn50pPLi#kv>yRNqcx z-J7{{`sT77&%8SZfZC4f?pC{5ZiloUUA;yExP8N2cWEDDK2g3Ye4}0Wv)_=rQ*RDF z-hh1K@b*LB5PXt;24n9IK7aF$$=)q|Li0|{+&z2-(7n!l7SO#B`=tN$*WT*BDSu=2 z4A(wjeUkJH**Tx)9wp#%j+`1!w4(RNi`wUhN%jf(u)D8 z!6ID;MfVNq`KeGP2TKjo)rfhJIEPvdQeQh)sk@POBJl=s?+RBbpTocQ{n*H0!w2@m z*eHDFB`l4bw$@$OU)JH)aj!(JYg=SDYH?;^Ekc_H))B7Co)cZ9IBT+JWh_dY7S=JY zs$66^Yqe*6mT4?fnhMy z)m7q^jhWT8m*bd?sns=ks4qrMjkMKems4Sk1lPoPD6u9;?%C66a#N*^8P~L0;;4_H z8j`J|MK!r}1`mkW_`9h%$5jt2@0r)cT~f3UFB&Q@NjfK3jo{u&F2hA_*F>L_zl?m@ z`CyZ5$N2B9+10uULq}bYJny~Pm0%MGj=&v)KILMP@W$jFny?9fNJhqE|Mzh(NJm8M z>i@HkKfCsH-2d6fKX-JF$+$_s$rPN@Kel@SaSURg#sN>6dlvsH??eS=vXr{C#Q~4AD|p7-;&>&-=fpN2U^w%^#}Vw*f}q2HzGs%)X4Z=_^xM$I=fe?i&EZ zZN?i-J^Dz^{&}jcd-aiOq-F7oB5CNSjSj=D=4$>zQYkkWWn-44Vk1Mu~I_ZrDYfin9jToFJ!4}KVD=C+N z>@}ID##QwzE0=_?u&44*Q-$sW|GQuX+(zEjxW4yq4$q`QRIn!t{II+FHl2Cs1WHK1Z?3D z)-TaPF?z(9$a({+tiKaJ375;{4VtB6Hre={&MH;#lzZ6fVNe?4)yNBAm5Yp?TdeUbAOo|GE4s0jfE`O?PV~iFlKogZAgQP1*BrR)8JoVv9 zV}Cyh_x9Rp_CChB5x~ahg%Tl-2@p{tz}l}`1lM0l+#>e6nd@M()s9yN>@vH-%)T;y zV$4RzM#c7;RxzmrFwtP8(sS3$9CZE&vMgKb|NOMn{&1qItj+dVu>K^nFcNKyx-@iM z2BV6pPg9sNS|&1AhNhUat&NeG5hgoN)NYL@xD z^}5`v0$dgxs`5}8v?#5N8xX4|RSJ@a#x0B+6RJe3E|&{cU@zz?OP|`3t&SQTG~KHJ zDm;`&aMf2EzE-v%_CSPs-^7)jyDu)R@OXB>eLLzq*2gXnk_~;F-?NZEVJ>dD?!8<_ zxbAwfAQ1kOMv1=PwAJ@pI~zxQ27e|0Ui27cbGNK@eDLaLXHWSWp>z6BoXfIDM zPc_FKo*kg&e%DdgpyvLyKJDdYS3Fa25aSH0DV4EOBlec*+?m{dmUpOEsQRgIf^Pz= zOx~&7;g%1{cgY6YC0NXlaoug*9Pg{z)7nv&*UI&L7F|)YWY^r_VK>!sNM(E7o<)t2O?@z`0}`<_@f_HTR~b zgEi2mri(ROGjrQIPZHMLlX)wX=R;bx#A-u8uJ%OD5bMUkrM;Krup`ZBGEG5ts!5f$ zPy>NTe;zV-YL=L+cZI1uyT(>JGR?o|l8RW;wIuYd9_oSJ%g<>Uo4GgK5jQS3dzPp} zOfz9tfr*x)R)Jz-Nr^5lwQd=J@=)Q<%qik6FkQi0ay*SaV}BZXGU86n(VQtfS$a4l z_wecR(~*;1f;tO+BJhy!LjQ>Ip7GK1T#dD&-57ap1iAdnISAWGcuDpVj$=5o2H}#B zZBV*~;gXVVc(Mj6ZI;nSQWJ@_U(!Zw6Un(>(?)vz!^r>>SzxbWKYLoOz^?%!F(}BF z;E{>8tc6Qu4kRZlP`;x4QLiGo=T#4l3zjrAQ1qgyCI=P!i)olJ#|Q74&yh>uvBCju z{Q#ll1=gs571k)k$IYmZejJ}N(iGNcAiiQ-AvN1L^zt!jvXITiW3o z?w##oltX}ln>8`g*>DS=^VC0PtrTd%+EJ8k_QA zoXxRn%yNISo~JgJaby@kf6De_4#ku828d!D!5{YAWeve3>}4{+XzZgu#)SH7bV=_M z^xH7k9v(58aM(Ue@rC81-_T4LjK84)J`Rq0P-(RGksVpUyBj_B4KjI02}W4(-^_~MyqKJxj~gB+&w$IPn8IeXnaz`Th{S9qKOc_Lv;F(m;&3Y95m_%J8I2MbJ)Ragp0>bd zofW(}?0$flBALvTETIu3ks(4%?eAho@($5Bw?QUaTq96i6Y_k9xhQbql z-vFhFHDZcIF-NB?qLMqzEkw*`nUU3OdQ`|TjoAR)dy2z=!GI0qD~D$6hEWBjOo-WB zFY~lt=n=0(>r;`+mi5B|5@<0}q|#azV|BoO!2TyMbQ^7d4hk#Wns*!>PW&{o+Rw-^ zxgK|Zmay};akOp})-37?;!Q6ln4B)l=VG3%H#|XWTL;Pnhoj20=rTMel(zO`ccA8gwM=IR6GG3q1 zcO>@5Z?YdJJn7C=xfzqp3-Wn{#p5Ctg)+?xa-8Ago#BgnjLLeD#XQFGdyEos8^z;7 z#^FYgav#RwLdN4dh{FYo!xLvqLOCwrixfZKdXqg>SN zDAe1A?3B1w^YYzs_;L-oe!&jCeDX)!d=rWb${3fah{0_LgctOCw##F5g8lVX6oyv$aW|Ax$J2t{Ty zjjFI2KwZ#A{1LRTVnshxy@nW}t0zfrGr&{aMy)Ag&-p`0G0b41N}qBsAF=Z8Cm(QZzB}La7THq80muNOet#CU=16J=1nGx_OnG3#8;QAFi!3X~LLk7b=FqGC_^+^GC+f&6uHLs$zkz4X~e z{i1NTGc@A`#69ihFlLjPdXh`^BfJjVL6?q50nI-mTuQUhl

h|ePTU;i%OwlRB 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

Q2UlQS!Bv>^Jzyy}_{HGzSHDuqe=9)GulI{j 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 z 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

aM!c~hDk|yz0O1I-qEU> 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 DP-7bT diff --git a/lab1/test b/lab1/test deleted file mode 100755 index 0e567722f17e1267f66c85ecd1e31e36265dd948..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20400 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 diff --git a/lab1/test.c b/lab1/test.c deleted file mode 100644 index f0a11fc..0000000 --- a/lab1/test.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" -#include "msg_list.h" - - -int main(void){ - char line[MAX_MSG]; - - //struct user * user_head = (struct user *) malloc(sizeof(struct user)); - while(1){ - printf("USER LISTS. CHOOSE ACTION:\n"); - printf("\t1: Register\n"); - printf("\t2: Unegister\n"); - printf("\t3: Connect\n"); - printf("\t4: Disconnect\n"); - printf("\t5: Send message\n"); - printf("\t5: Delete message\n"); - readLine(0, line, MAX_MSG); - if(strcmp(line, "1") == 0){ - printf("Username: \n"); - readLine(0, line, MAX_MSG); - int res = registerUser(line); - if(!res){ - printf("USER ADDED\n"); - printUsers(); - } - else{ - printf("ERROR: ALREADY EXISTS!\n"); - printUsers(); - } - - } - else if(strcmp(line, "2") == 0){ - readLine(0, line, MAX_MSG); - int res = unregisterUser(line); - if(!res){ - printf("USER DELETED\n"); - printUsers(); - } - else{ - printf("ERROR: DOES NOT EXIST!\n"); - printUsers(); - } - } - else if(strcmp(line, "5") == 0){ - readLine(0, line, MAX_MSG); - char user[MAX_MSG]; - strcpy(user, line); - readLine(0, line, MAX_MSG); - char msg[MAX_MSG]; - strcpy(msg, line); - printf("Going to send to %s the msg %s", user, msg); - //appendMsg(user, msg); - printPendMsgs(user); - } - else if(strcmp(line, "6") == 0){ - readLine(0, line, MAX_MSG); - char user[MAX_MSG]; - strcpy(user, line); - removePendMsg(user); - printPendMsgs(user); - } - } - - return 0; -} \ No newline at end of file diff --git a/lab1/user_list.c b/lab1/user_list.c deleted file mode 100644 index cd2c93b..0000000 --- a/lab1/user_list.c +++ /dev/null @@ -1,246 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" -#include "user_list.h" - -/* Checks if the input user is already registered - Return 0 if is registered - 1 if is not registered */ -char isRegistered(char * username){ - struct user *temp; - temp = user_head; - - /* Iterate over the list */ - while (temp != NULL){ - if (strcmp(temp->username, username) == 0){ //Check if the username exists - return 1; - } - temp = temp->next; - } - - return 0; - } - -/* Registers a user (if not previously registered) and appends it to the end of the s list - Returns 1 if already registered - 0 if registered correctly */ -char registerUser(char * username){ - /* Check if the user already exists */ - if(isRegistered(username)) return 1; - - /* Prepare new user */ - struct user *temp; - temp = (struct user *) malloc(sizeof(struct user)); - /* If memory is full and malloc is not possible, we return code 2 */ - if(temp == NULL) return 2; - /* Initialize user values */ - strcpy(temp->username, username); - temp->status = 0; - strcpy(temp->ip, "-1"); - temp->port = 0; - temp->pend_msgs_head = NULL; - temp->next = NULL; - temp->last_id = 0; - - if (user_head == NULL){ //If list is empty - temp->next = user_head; - user_head = temp; - } - else{ - struct user *last = user_head; - - /* Iterate over the list */ - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - - return 0; -} - -/* Changes the status of a user to 1 (ON) and links an IP and port number to it - Return 0 if connect OK - 1 if user is not registered - 2 if registered but not connected */ -char connectUser(char * username, char * ip, uint16_t port){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 1) return 2; //User already connected - /* Change status to 1 ("ON") and update IP and Port */ - temp->status = 1; - strcpy(temp->ip, ip); - temp->port = port; - return 0; - } - temp = temp->next; - } - /* No user was found, so send code 1 */ - return 1; -} - -/* Changes the status of a user to 0 (OFF) and cleans the IP and port number - Return 0 if disconnect OK; - 1 if user is not registered; - 2 if registered but not connected; - 3 if trying to disconnect from a different IP */ -char disconnectUser(char * username, char * used_ip){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 0) return 2; //User already disconnected - if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP - /* Change status to 0 ("OFF") and delete IP and Port */ - temp->status = 0; - strcpy(temp->ip, "-1"); - temp->port = 0; - return 0; - } - temp = temp->next; - } - - return 1; -} - - -/* Unregisters a user, deleting it and its pending messages (if any) from the list - Returns 1 if the user does not exist. - 0 if the user is deleted correctly */ -char unregisterUser(char * username){ - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list - temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if(temp == user_head){ //If the user is at the user_head of the list - user_head = temp->next; //change the user_head to the next element - /* Delete the pending messages if any */ - deleteAllMsgs(&(temp->pend_msgs_head)); - free(temp); //Free the resources of the user - return 0; - } - else{ //User is not at the user_head - prev->next = temp->next; - /* Delete the pending messages if any */ - deleteAllMsgs(&(temp->pend_msgs_head)); - /* Free the memory resources of the user structure */ - free(temp); - return 0; - } - } - else{ - prev = temp; - temp = temp->next; - } - } - //If we reach this point, no user was found - return 1; -} - -/* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ -int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Enqueue message - return enqueueMsg(&(temp->pend_msgs_head), msg, msg_id, sender); - } - temp = temp->next; - } - - return -1; //User was not found -} - -/* Increments the last-sent-message ID associated to the input user - Return the value of the updated ID */ -unsigned int updateLastID(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Increment the ID in 1 - temp->last_id = temp->last_id+1; - //If it results in 0, then the maximum representable number is overflown - if(temp->last_id == 0) temp->last_id = 1; - - return temp->last_id; - } - temp = temp->next; - } - - return 0; -} - -/* Checks if the input user is connected - Return 0 if the user is disconnected - 1 if the user is connected - 2 if error (user was not found) */ -char isConnected(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->status; //Returns 0 if OFF, 1 if ON - } - temp = temp->next; - } - /* Return error 2 if we reach this point. No user was found */ - return 2; -} - -/* Retrieves the IP associated to a user in the list - Returns a char array with the IP of the user - NULL if the user was not found */ -char * getUserIP(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->ip; //Returns the IP of the user - } - temp = temp->next; - } - return NULL; -} - -/* Retrieves the port number associated to a user in the list - Return the port number - 0 if the user was not found */ -uint16_t getUserPort(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->port; //Returns the IP of the user - } - temp = temp->next; - } - return 0; -} - -/* Retrieves a pointer to the head of the pending message list associated to a user - Return the pointer to the head of the message list - NULL if the user was not found */ -struct msg ** getPendMsgHead(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return &(temp->pend_msgs_head); //Returns the IP of the user - } - temp = temp->next; - } - return NULL; -} - diff --git a/lab1/user_list.h b/lab1/user_list.h deleted file mode 100644 index 03b964b..0000000 --- a/lab1/user_list.h +++ /dev/null @@ -1,27 +0,0 @@ -#define MAX_USERNAME 256 -#define MAX_IP 16 -#define TRUE 1 -#define FALSE 0 - -struct user{ - char username[MAX_USERNAME]; /* Username that acts as ID */ - char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - char ip[MAX_IP]; /* IP of the user from which the connect operation was made */ - uint16_t port; /* Port number of the user from which the connect operation was made */ - unsigned int last_id; /* ID assigned to the last sent message */ - struct msg *pend_msgs_head; /* Pointer to the head of the pending messages queue */ - struct user *next; /* Pointer to the next user in the list */ -} *user_head; - -/* ================FUNCTION HEADERS================ */ -char isRegistered(char * username); -char registerUser(char * username); -char unregisterUser(char * username); -char connectUser(char * username, char * ip, uint16_t port); -char disconnectUser(char * username, char * used_ip); -int storeMsg(char * username, char* msg, unsigned int msg_id, char * sender); -unsigned int updateLastID(char * username); -char isConnected(char * username); -char * getUserIP(char * username); -uint16_t getUserPort(char * username); -struct msg ** getPendMsgHead(char * username); \ No newline at end of file diff --git a/lab2/.DS_Store b/lab2/.DS_Store deleted file mode 100644 index 887cb27fefb12a89fc35700acd34f6898032bf7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~JqiLr422W55Nx)zoW=uqgF*BJUO;rgMzj$7Il3=DEVx>W$O|NICY!MASL{qg zL^qFqEz*g|9BwKr3nNqPr*f97Jo@|Ta=hIxL&YRlRs-*3^n57ff&@r_1W14cNZ@A( z*trdxFG3kffCNZjAYlK80ynLxE!2M<2tEQpXGptY?Xv{5SOQv8TPQLxjaF#1s*fR- z_jYK>x|-TTqg^zI56w5LO))TycF}?jOsfk636Q{uz%=%qo&P)dr}=->!Yv7qz@HJ& z*>=C(;G^KmuPS@C2_M B5p@6n diff --git a/lab2/MD5Client.class b/lab2/MD5Client.class deleted file mode 100644 index 1cd92a21ed79511c80fcb29c3a612285f09b4cec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmZuvZBNrs6n<`3cDJtE6dWqZ5JBvCtBU)C@e68VvLQ){iSbicZk9q{meL{oB0uAY z5jF7#_@mUPMO}z%lXLDpFVA_-IrqoUuipV|qiw*%oW#5V4Re{eSH=RGB`j8OA4>)v zU|C|tKp77uRwW(@6rcN%pS}<%Sgm&g`fhxv1nM0>QhUR&r;-D=7to@It{(}^S|2(` z?x|}BZq&D(H1VVUPL^18QrA1~x`RAk!Xgie7Rw13PCQIJ_1e#XYTcLZ-N08-x|IQ$ zsG=s&2oKx##}k{*H{l>~RC4Nj%ETJhB{ocKVvAhEUF|{#W`~sOPib4&co^i=4p(_6(NsVuX~4860^ Xe$iNvxFyk$ybFojIX>3$g7(Mr!>AW}7*KMH7)FM+C>_RD6s8SZC3#HNp7_1Z*e4Reqp~Fm>c>|Qi z4cQbGj3J`N5Tn*;)Kp<0G%BE&h(;0Xm&VL+{~j3ik-)rC2BJZ1a5qpSe)LQdZt6U~LHY7y>!1zJSplS=ViZ zR_fh;{*nmxpYkBnO87`o1_VFNbGVUvbIY*w&E z!&Yq5@Gu@x@Ti8z@OYAoPioXny(KUZF`3fP*J;>}C#2FHX&%JS)36h}B=v3$d+?-y z=4ongT+`O%@hoa?((n}a%J?O}ty$EtR6tE^y9I3S#Vb16cp>Wev2$MRZH;qyZMCxv z$Jx7(U?mo|N1zzA?{R;8X6kJY^L zluAxZ7aOMGJG$2zUh|rG)eOcd1SXeVP0WmAm6M{7`)WYy^#|C6i4<})vb>Q{h$}Z4 zw{-fk4$L19T1wl<2zX_g^7%rS|FJzW7zZ_!d@atdHpa@D))=#(gzcKrBvh^L<5p$69#g z=HykqY*(I1_9@R+ez?0KFq>CXcosZoR2+pE=7qo<9&Pd?`FX6xZ9Gco0ydS@u8I** z7vn8QV68X|Ym}`kkH9u=?v$s{AT-*HNwft;w3SJ?$P-lIm_A?@n=7BeA*U$RAxvp~ zAC3`Zb{&Q0%!(qrGK!oia-+zr5PaM)69C!BgPpZVrNyijv>n;B3wg8yPTGk|+KrjC z2XlE}g(bUQL7j^&=OqPL&ar?@w%dPX%!32w>}p|F-vXFx4wA!hXlATqpHqEwTg==uX~&2@K36u zlf@SXd7iH4{xy^55|_tpXWYps&6u&Fp8?f8*D7e5>cu_Sqp zI$LXXvMW@7h`b7LnpNikj`uF diff --git a/lab2/authors.txt b/lab2/authors.txt deleted file mode 100644 index f5b361b..0000000 --- a/lab2/authors.txt +++ /dev/null @@ -1,2 +0,0 @@ -GUTIÉRREZ PARADELA, CARLOS 100291121 GROUP 89 -LÓPEZ LOZOYA, RUBÉN 100292107 GROUP 89 \ No newline at end of file diff --git a/lab2/client$1.class b/lab2/client$1.class deleted file mode 100644 index d51ca23af6612a14ebeeaa6cf20d3e31a61254a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmZXRPfx-?5XIlNK(VxdNKjGy7Y^V-FdjT$j7g)333vda2V-<88>p78X^Y>>lf;8Z z4}K`)6bK$@(wW)m@9nK$+F+v3WJkd*B@LWW1r{EgEVm(q5< zz>$NN2!~!@!-j!P6b&Sx8Q8+MffDu@k~3NPm;nsNwUolQTpk1>V8}+B)m$zIweHXt zyibm2Jb4{)hddQ3_sxH*6Z&*yBbr6$wk?97T(8#|@|Ef`MNHobY>$q#Lk;^3O50-C ztt_L}=GQp)dTBNqB1u(=GEIc|;Ro0|6{MO1)Kng5r7zIaIhvk8 z`G!t$0`)G^C{s-uDwU5&C{Hkz9#Zs01v4oaQ^-V`a*XaZivm?S62>Tloa|6{_oDa* D_MBwI diff --git a/lab2/client$RC.class b/lab2/client$RC.class deleted file mode 100644 index 6ef25cd5d9fff5850d0a1d3632d6f6a682dd66f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmZuv?{Csj6g`g?T1xpbKy+*q-O#m6$8_!!WMLtgEF+S%ZVB;&DOgFDt|UCWesUSoZ7*=&O)h%w=)KePX-5%PI-eOz zM*G~kbgI4+461fG@`6FlT&AykffpV!6#fG}HqRL1wl@fza55rh$>2L`oyM8n+F0Ok z1(S>V0{J1$s@cQIsPDe@xUR&^g7Bd%kVM30%nS#MGm5`cTfpD?vrJ!W?9m@i(escS zs~{-=Wl|$D2?8=jJ`G18j)!;zhE=LIDf6XG!M-7K1L+G@3`L4Dah4(c8rJ9dEkwj_ zA_uwh9nl-e_b)`aF9hTbN|5LSl*-QfHDX`yv6pBkf+tY%l;TX4ODg#~`U$z4RitaE zSBQ&3lSPpbg&q|}GWLsb(v;poSDqqaccW7z?JKamc3DBWf+U$yBx|;jAzicPo7fT} P%2=VSkq8+EGL7OtEBK-v diff --git a/lab2/client.class b/lab2/client.class deleted file mode 100644 index f90e08494090da6ae0123803bec952f70b8171cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7989 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 BdWHZ1 diff --git a/lab2/client.java b/lab2/client.java deleted file mode 100644 index aa189f4..0000000 --- a/lab2/client.java +++ /dev/null @@ -1,740 +0,0 @@ -import java.io.*; -import gnu.getopt.Getopt; -import java.net.Socket; -import java.net.ServerSocket; -import md5_client.MD5; -import md5_client.MD5ImplService; - - -class client { - - /********************* TYPES **********************/ - - /** - * @brief Return codes for the protocol methods - */ - private static enum RC { - OK, - ERROR, - USER_ERROR - }; - - /******************* ATTRIBUTES *******************/ - - private static String _server = null; - private static int _port = -1; - /* Controls the user bound to the client when executing a CONNECT command */ - private static String connected_user = null; - /* Instantiate and prepare an empty ServerThread for further connection */ - private static ServerThread server_thread = new ServerThread(); - - - /********************* METHODS ********************/ - - /** - * @param user - User name to register in the system - * - * @return OK if successful - * @return USER_ERROR if the user is already registered - * @return ERROR if another error occurred - */ - static RC register(String user) - { - // Write your code here - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "REGISTER" is sent indicating the operation - String operation = new String("REGISTER"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be registered - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - System.out.println("c> REGISTER OK"); - return RC.OK; - case 1: - System.out.println("c> USERNAME IN USE"); - return RC.USER_ERROR; - case 2: - System.out.println("c> REGISTER FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> REGISTER FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to unregister from the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist - * @return ERROR if another error occurred - */ - static RC unregister(String user) - { - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "UNREGISTER" is sent indicating the operation - String operation = new String("UNREGISTER"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be unregistered - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* If we try to unregister the user that is currently bound and connected - to the client, it is unbound from the client */ - if(connected_user != null){ - /* This protects against null pointer exception when a CONNECT command is executed and - the server marks the user as connected, but then the client is terminated without - executing DISCONNECT from the server */ - if(connected_user.equals(user)){ - connected_user = null; - /* If the unregister also disconnect a user linked to the client (connected and with a - server thread running, kill also the running thread*/ - server_thread.kill(); - } - } - - System.out.println("c> UNREGISTER OK"); - return RC.OK; - case 1: - System.out.println("c> USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> UNREGISTER FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> UNREGISTER FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to connect to the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist or if it is already connected - * @return ERROR if another error occurred - */ - static RC connect(String user) - { - - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - /* Before trying to connect, if a user is already connected, quit the function with RC.ERROR */ - if(connected_user != null){ - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "CONNECT" is sent indicating the operation - String operation = new String("CONNECT"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be connected - out.writeBytes(user); - out.write(0); - - /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum - number of queued requests */ - ServerSocket sock = new ServerSocket(0, 10); - /* Get the port at which the socket is listening */ - int port = sock.getLocalPort(); - - //4. A string is sent with the port number listening in the client - out.writeBytes(String.valueOf(port)); - out.write(0); - - //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //6. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* Start a new thread where */ - server_thread.start(sock); - /* Bind the user to the client */ - connected_user = user; - System.out.println("c> CONNECT OK"); - return RC.OK; - case 1: - System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> USER ALREADY CONNECTED"); - return RC.USER_ERROR; - case 3: - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to disconnect from the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist or if it is already disconnected - * @return ERROR if another error occurred - */ - static RC disconnect(String user) - { - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "DISCONNECT" is sent indicating the operation - String operation = new String("DISCONNECT"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be disconnected - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* Unbind the user from the client */ - connected_user = null; - server_thread.kill(); - System.out.println("c> DISCONNECT OK"); - return RC.OK; - case 1: - System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); - return RC.USER_ERROR; - case 3: - /* In case of error in the disconnection process, stop the execution of the thread - and unbind the user from the client as if the disconnection has been made. But if the - disconnect command executed was not executed for the user that is bound to the client - then nothing is done */ - if(connected_user != null){ - /* Check if the user coincides with the linked user */ - if(connected_user.equals(user)){ - connected_user = null; - server_thread.kill(); - } - } - System.out.println("c> DISCONNECT FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - /* In case of error in the disconnection process, stop the execution of the thread - and unbind the user from the client as if the disconnection has been made. But if the - disconnect command executed was not executed for the user that is bound to the client - then nothing is done */ - if(connected_user != null){ - /* Check if the user coincides with the linked user */ - if(connected_user.equals(user)){ - connected_user = null; - server_thread.kill(); - } - } - System.out.println("c> DISCONNECT FAIL"); - return RC.ERROR; - } - - /** - * @param user - Receiver user name - * @param message - Message to be sent - * - * @return OK if the server had successfully delivered the message - * @return USER_ERROR if the user is not connected (the message is queued for delivery) - * @return ERROR the user does not exist or another error occurred - */ - static RC send(String user, String message) - { - String md5; - /* Calculate the MD5 of the message */ - try{ - /* Define the MD5 Web service variables */ - MD5ImplService md5Service = new MD5ImplService(); - MD5 md5_ws = md5Service.getMD5ImplPort(); - md5 = md5_ws.getMD5(message); - } - catch(Exception e){ - /* If exception occurs, nothing is sent to the server */ - System.out.println("c> ERROR , SEND FAIL / ERROR IN MD5"); - System.out.println("Exception: " + e); - return RC.ERROR; - } - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - /* If there is not a user connected in the client, return error RC.ERROR */ - if(connected_user == null){ - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - - //2. The string "SEND" is sent indicating the operation - String operation = new String("SEND"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user that sends the message - out.writeBytes(connected_user); - out.write(0); - - //4. A string of characters is sent with the user that receives the message - out.writeBytes(user); - out.write(0); - - //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent - out.writeBytes(trimMessage(message)); //Sends a string of 255 characters - out.write(0); - - //6. A string of characters is sent with the MD5 hash of the message to be sent - out.writeBytes(md5); //Sends a string of 255 characters - out.write(0); - - //7. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - String msg_id = new String(); - /* If response is 0 (OK), prepare to read the ID of the message */ - if(response == 0){ - - /* Create BufferedReader for easy reading a string */ - /* - BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); - msg_id = inString.readLine();*/ - byte ch; - do{ - ch = in.readByte(); - if (ch != 0) msg_id = msg_id + ((char) ch); - } while(ch != 0); - } - - //7. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - System.out.println("c> SEND OK - MESSAGE " + msg_id); - return RC.OK; - case 1: - System.out.println("c> SEND FAIL / USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - /** - * @brief Trims the input message to 255 characters - * - * @param message - String to be trimmed - * - * @return message - Result String - */ - static String trimMessage(String message){ - /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ - int maxLength = 255; - - if(message.length() > maxLength){ - message = message.substring(0, maxLength); - } - - return message; - } - - /** - * @brief Command interpreter for the client. It calls the protocol functions. - */ - static void shell() - { - boolean exit = false; - String input; - String [] line; - BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - - while (!exit) { - try { - System.out.print("c> "); - input = in.readLine(); - line = input.split("\\s"); - - if (line.length > 0) { - /*********** REGISTER *************/ - if (line[0].equals("REGISTER")) { - if (line.length == 2) { - register(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: REGISTER "); - } - } - - /********** UNREGISTER ************/ - else if (line[0].equals("UNREGISTER")) { - if (line.length == 2) { - unregister(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: UNREGISTER "); - } - } - - /************ CONNECT *************/ - else if (line[0].equals("CONNECT")) { - if (line.length == 2) { - connect(line[1]); // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR - } else { - System.out.println("Syntax error. Usage: CONNECT "); - } - } - - /********** DISCONNECT ************/ - else if (line[0].equals("DISCONNECT")) { - if (line.length == 2) { - disconnect(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: DISCONNECT "); - } - } - - /************** SEND **************/ - else if (line[0].equals("SEND")) { - if (line.length >= 3) { - // Remove first two words - String message = input.substring(input.indexOf(' ')+1); - message = message.substring(message.indexOf(' ')+1); - send(line[1], message); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: SEND "); - } - } - - /************** QUIT **************/ - else if (line[0].equals("QUIT")){ - if (line.length == 1) { - exit = true; - } else { - System.out.println("Syntax error. Use: QUIT"); - } - } - - /************* UNKNOWN ************/ - else { - System.out.println("Error: command '" + line[0] + "' not valid."); - } - } - } catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - } - } - - /** - * @brief Prints program usage - */ - static void usage() - { - System.out.println("Usage: java -cp . client -s -p "); - } - - /** - * @brief Parses program execution arguments - */ - static boolean parseArguments(String [] argv) - { - Getopt g = new Getopt("client", argv, "ds:p:"); - - int c; - String arg; - - while ((c = g.getopt()) != -1) { - switch(c) { - //case 'd': - // _debug = true; - // break; - case 's': - _server = g.getOptarg(); - break; - case 'p': - arg = g.getOptarg(); - _port = Integer.parseInt(arg); - break; - case '?': - System.out.print("getopt() returned " + c + "\n"); - break; // getopt() already printed an error - default: - System.out.print("getopt() returned " + c + "\n"); - } - } - - if (_server == null) - return false; - - if ((_port < 1024) || (_port > 65535)) { - System.out.println("Error: Port must be in the range 1024 <= port <= 65535"); - return false; - } - - return true; - } - - - - /********************* MAIN **********************/ - - public static void main(String[] argv) - { - if(!parseArguments(argv)) { - usage(); - return; - } - - /* Creates a thread that catches Ctrl+C kill command from the CLI and disconnects from the server the - connected user of the client (bound to the client) */ - Runtime.getRuntime().addShutdownHook(new Thread() { - public void run() { - if(connected_user != null){ - disconnect(connected_user); - } - } - }); - - shell(); - System.out.println("+++ FINISHED +++"); - } -} - -/********************* SERVERTHREAD **********************/ - -class ServerThread extends Thread{ - - private ServerSocket sc; //ServerSocket of the listening thread - private volatile Thread blinker; //Thread of type volatile that will be attached to the ServerThread - private Socket sd; - - /** - * @brief Constructor. Starts the server thread and initializes the ServerSocket property - * - * @param sc - Initialized ServerSocket - * - */ - public void start(ServerSocket sc){ - blinker = new Thread(this); - blinker.start(); - this.sc = sc; - } - - /** - * @brief Destroys the server thread - */ - public void kill(){ - try{ - if(sd != null) this.sd.close(); - } - catch(IOException e){ - System.out.println("Exception: " + e); - } - blinker = null; - } - - /** - * @brief Main execution code sequence of the server thread. Listens to incoming connections - */ - public void run(){ - Thread thisThread = Thread.currentThread(); - sd = null; - while(blinker == thisThread){ - try{ - /* Waiting for connection */ - sd = this.sc.accept(); - - DataInputStream msg_in = new DataInputStream(sd.getInputStream()); - /* Receive the string encoding the operation */ - String operation = new String(); - byte ch; - do{ - ch = msg_in.readByte(); - if (ch != 0) operation = operation + ((char) ch); - - } while(ch != 0); - /* Prepare the string for the ID of the message sent/received */ - String id = new String(); - - switch(operation){ - case "SEND_MESSAGE": - /* Read the sender username from the socket */ - String sender = new String(); - do{ - ch = msg_in.readByte(); - if (ch != 0) sender = sender + ((char) ch); - - } while(ch != 0); - /* Read the ID of the received message */ - do{ - ch = msg_in.readByte(); - if (ch != 0) id = id + ((char) ch); - } while(ch != 0); - /* Read the string containing the MD5 of the message */ - String md5 = new String(); - do{ - ch = msg_in.readByte(); - if (ch != 0) md5 = md5 + ((char) ch); - - } while(ch != 0); - /* Read the string containing the body of the message */ - String msg = new String(); - do{ - ch = msg_in.readByte(); - if (ch != 0) msg = msg + ((char) ch); - - } while(ch != 0); - /* Prompt */ - System.out.println("MESSAGE " + id + " FROM " + sender + ":"); - System.out.println("\t" + msg); - System.out.println("\tMD5:"); - System.out.println("\t" + md5); - System.out.println("\tEND"); - System.out.print("c> "); - break; - - case "SEND_MESS_ACK": - /* Read the id of the message being acknowledged */ - do{ - ch = msg_in.readByte(); - if (ch != 0) id = id + ((char) ch); - } while(ch != 0); - - System.out.println("SEND MESSAGE " + id + " OK"); - System.out.print("c> "); - break; - } - sd.close(); - - } - catch(Exception e){ - System.out.println("Exception: " + e); - //e.printStackTrace(); - this.kill(); - } - } - /* If the thread exits the loop for any reason, try to close the socket */ - try{ - sd.close(); - } - catch(Exception e){ - System.out.println("Exception: " + e); - this.kill(); - } - } -} diff --git a/lab2/gnu/getopt/COPYING.LIB b/lab2/gnu/getopt/COPYING.LIB deleted file mode 100755 index 161a3d1..0000000 --- a/lab2/gnu/getopt/COPYING.LIB +++ /dev/null @@ -1,482 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/lab2/gnu/getopt/ChangeLog b/lab2/gnu/getopt/ChangeLog deleted file mode 100755 index 7fed6d2..0000000 --- a/lab2/gnu/getopt/ChangeLog +++ /dev/null @@ -1,114 +0,0 @@ -For release 1.0.14 (2012/02/08) - -David Zhang (david290@qq.com) provided Chinese language messages. -Daniel Thomas (drt24@srcf.ucam.org) contributed a patch to fix a static -access warning message. - -For release 1.0.13 (2006/08/29) - -Krzysztof Szymanski (sirch.s@gmail.com) provided Polish language messages. - -For release 1.0.12 (2005/11/12) - -Sandro Tossi (matrixhasu@gmail.com) provided Italian language messages. - -For release 1.0.11 (2005/02/19) - -Daniel Perez Alvarez (dondani@gmail.com) provided Spanish language -messages. - -For release 1.0.10 (2004/09/12) - -Marian-Nicolae V. Ion (mion@neocom.fr) provided Romanian language messages. - -For release 1.0.9 (2002/01/16) - -Yasuoka Masahiko provided Japanese langauge messages. - -Csom Gyula provided Hungarian language messages. - -Guillaume Rousse supplied the ant build file -and documentation. - -For release 1.0.8 (2000/09/11) - -Ernst de Haan provided Dutch language messages. - -For release 1.0.7 (2000/02/02) - -Fixed an obscure POSIX compatibility issue. When an optstring is "o:", -then "-o -- foo" should result in -o having an optarg of "foo", not "--" -as was previously returned. This new parsing behavior is only enabled -in POSIX compatibility mode. Thank to Don Suit (dsuit@fc.hp.com) for -reporting this and help in communicating proper POSIX behavior. - -For release 1.0.6 (1999/06/27) - -Added French language messages. Thanks to Edouard G. Parmelan -(Edouard.Parmelan@quadratec.fr) for this contribution. - -For release 1.0.5 (1999/03/23) - -Fixed bug that caused getopt to throw a StringIndexOutOfBoundsException -when an empty string ("") argument was encountered. Thanks to -Steffen Siebert (siebert@logware.de) for this bug report and a patch. - -For release 1.0.4 - -Added Norwegian language messages. Thanks to Bjørn-Ove Heimsund -(s811@drone.ii.uib.no) for this contribution. - -For release 1.0.3 - -Added German language messages. Thanks to Bernhard Bablok -(bablokb@gmx.net) for this contribution. - -For release 1.0.2 - -Prevent ArrayIndexOutOfBounds exception if "optstring" is null. David Karr -(dkarr@nmo.gtegsc.com) had a problem with this when commenting out options -during debugging, so I have fixed it. - -For release 1.0.1 - -Added Czech language messages. Thanks to Roman Szturc (Roman.Szturc@vsb.cz) -for this contribution. - -For release 1.0 - -No changes. Just increment release number to 1.0 - -For release 0.9.2 - -The sample code has been moved into a separate file called "GetoptDemo.java". -This is so that it can be legally placed into the public domain and not -subsumed into the LGPL as would be the case if it were in Getopt.java. -While I do not encourage anyone to write proprietary software, I feel that -there is no good purpose served in restricting what someone can do with -a short example program. - -Modified the Makefile and various other files to support the change -above. - -For release 0.9.1 - -This release contains only minor fixes. It's always possible it introduces -some bugs though so unless you are keen on internationalization or are -having a line separator problem, there is no need to upgrade from 0.9. - --- Messages are now internationalized. Thanks to Bill King - (wrking@eng.sun.com) for this. - --- Changes all print's to println's to avoid system dependent line - separators. - --- All internal variables are now protected. Several people suggested - doing this in response to my request for comments in the help file. - No one suggested keeping any variables public. - --- Fixed parts of licensing that mentioned the regular GPL. Getopt is - and always has been licensed under the LPGL. Thanks to Arieh Markel - (arieh.markel@sun.com) for pointing this out. - - - diff --git a/lab2/gnu/getopt/Getopt.class b/lab2/gnu/getopt/Getopt.class deleted file mode 100755 index 735a7f1b16f8604e9cb9d33e36933c4d2349e9fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7366 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 - * To use Getopt, create a Getopt object with a argv array passed to the - * main method, then call the getopt() method in a loop. It will return an - * int that contains the value of the option character parsed from the - * command line. When there are no more options to be parsed, it - * returns -1. - *

- * A command line option can be defined to take an argument. If an - * option has an argument, the value of that argument is stored in an - * instance variable called optarg, which can be accessed using the - * getOptarg() method. If an option that requires an argument is - * found, but there is no argument present, then an error message is - * printed. Normally getopt() returns a '?' in this situation, but - * that can be changed as described below. - *

- * If an invalid option is encountered, an error message is printed - * to the standard error and getopt() returns a '?'. The value of the - * invalid option encountered is stored in the instance variable optopt - * which can be retrieved using the getOptopt() method. To suppress - * the printing of error messages for this or any other error, set - * the value of the opterr instance variable to false using the - * setOpterr() method. - *

- * Between calls to getopt(), the instance variable optind is used to - * keep track of where the object is in the parsing process. After all - * options have been returned, optind is the index in argv of the first - * non-option argument. This variable can be accessed with the getOptind() - * method. - *

- * Note that this object expects command line options to be passed in the - * traditional Unix manner. That is, proceeded by a '-' character. - * Multiple options can follow the '-'. For example "-abc" is equivalent - * to "-a -b -c". If an option takes a required argument, the value - * of the argument can immediately follow the option character or be - * present in the next argv element. For example, "-cfoo" and "-c foo" - * both represent an option character of 'c' with an argument of "foo" - * assuming c takes a required argument. If an option takes an argument - * that is not required, then any argument must immediately follow the - * option character in the same argv element. For example, if c takes - * a non-required argument, then "-cfoo" represents option character 'c' - * with an argument of "foo" while "-c foo" represents the option - * character 'c' with no argument, and a first non-option argv element - * of "foo". - *

- * The user can stop getopt() from scanning any further into a command line - * by using the special argument "--" by itself. For example: - * "-a -- -d" would return an option character of 'a', then return -1 - * The "--" is discarded and "-d" is pointed to by optind as the first - * non-option argv element. - *

- * Here is a basic example of using Getopt: - *

- *

-  * Getopt g = new Getopt("testprog", argv, "ab:c::d");
-  * //
-  * int c;
-  * String arg;
-  * while ((c = g.getopt()) != -1)
-  *   {
-  *     switch(c)
-  *       {
-  *          case 'a':
-  *          case 'd':
-  *            System.out.print("You picked " + (char)c + "\n");
-  *            break;
-  *            //
-  *          case 'b':
-  *          case 'c':
-  *            arg = g.getOptarg();
-  *            System.out.print("You picked " + (char)c + 
-  *                             " with an argument of " +
-  *                             ((arg != null) ? arg : "null") + "\n");
-  *            break;
-  *            //
-  *          case '?':
-  *            break; // getopt() already printed an error
-  *            //
-  *          default:
-  *            System.out.print("getopt() returned " + c + "\n");
-  *       }
-  *   }
-  * 
- *

- * In this example, a new Getopt object is created with three params. - * The first param is the program name. This is for printing error - * messages in the form "program: error message". In the C version, this - * value is taken from argv[0], but in Java the program name is not passed - * in that element, thus the need for this parameter. The second param is - * the argument list that was passed to the main() method. The third - * param is the list of valid options. Each character represents a valid - * option. If the character is followed by a single colon, then that - * option has a required argument. If the character is followed by two - * colons, then that option has an argument that is not required. - *

- * Note in this example that the value returned from getopt() is cast to - * a char prior to printing. This is required in order to make the value - * display correctly as a character instead of an integer. - *

- * If the first character in the option string is a colon, for example - * ":abc::d", then getopt() will return a ':' instead of a '?' when it - * encounters an option with a missing required argument. This allows the - * caller to distinguish between invalid options and valid options that - * are simply incomplete. - *

- * In the traditional Unix getopt(), -1 is returned when the first non-option - * charcter is encountered. In GNU getopt(), the default behavior is to - * allow options to appear anywhere on the command line. The getopt() - * method permutes the argument to make it appear to the caller that all - * options were at the beginning of the command line, and all non-options - * were at the end. For example, calling getopt() with command line args - * of "-a foo bar -d" returns options 'a' and 'd', then sets optind to - * point to "foo". The program would read the last two argv elements as - * "foo" and "bar", just as if the user had typed "-a -d foo bar". - *

- * The user can force getopt() to stop scanning the command line with - * the special argument "--" by itself. Any elements occuring before the - * "--" are scanned and permuted as normal. Any elements after the "--" - * are returned as is as non-option argv elements. For example, - * "foo -a -- bar -d" would return option 'a' then -1. optind would point - * to "foo", "bar" and "-d" as the non-option argv elements. The "--" - * is discarded by getopt(). - *

- * There are two ways this default behavior can be modified. The first is - * to specify traditional Unix getopt() behavior (which is also POSIX - * behavior) in which scanning stops when the first non-option argument - * encountered. (Thus "-a foo bar -d" would return 'a' as an option and - * have "foo", "bar", and "-d" as non-option elements). The second is to - * allow options anywhere, but to return all elements in the order they - * occur on the command line. When a non-option element is ecountered, - * an integer 1 is returned and the value of the non-option element is - * stored in optarg is if it were the argument to that option. For - * example, "-a foo -d", returns first 'a', then 1 (with optarg set to - * "foo") then 'd' then -1. When this "return in order" functionality - * is enabled, the only way to stop getopt() from scanning all command - * line elements is to use the special "--" string by itself as described - * above. An example is "-a foo -b -- bar", which would return 'a', then - * integer 1 with optarg set to "foo", then 'b', then -1. optind would - * then point to "bar" as the first non-option argv element. The "--" - * is discarded. - *

- * The POSIX/traditional behavior is enabled by either setting the - * property "gnu.posixly_correct" or by putting a '+' sign as the first - * character of the option string. The difference between the two - * methods is that setting the gnu.posixly_correct property also forces - * certain error messages to be displayed in POSIX format. To enable - * the "return in order" functionality, put a '-' as the first character - * of the option string. Note that after determining the proper - * behavior, Getopt strips this leading '+' or '-', meaning that a ':' - * placed as the second character after one of those two will still cause - * getopt() to return a ':' instead of a '?' if a required option - * argument is missing. - *

- * In addition to traditional single character options, GNU Getopt also - * supports long options. These are preceeded by a "--" sequence and - * can be as long as desired. Long options provide a more user-friendly - * way of entering command line options. For example, in addition to a - * "-h" for help, a program could support also "--help". - *

- * Like short options, long options can also take a required or non-required - * argument. Required arguments can either be specified by placing an - * equals sign after the option name, then the argument, or by putting the - * argument in the next argv element. For example: "--outputdir=foo" and - * "--outputdir foo" both represent an option of "outputdir" with an - * argument of "foo", assuming that outputdir takes a required argument. - * If a long option takes a non-required argument, then the equals sign - * form must be used to specify the argument. In this case, - * "--outputdir=foo" would represent option outputdir with an argument of - * "foo" while "--outputdir foo" would represent the option outputdir - * with no argument and a first non-option argv element of "foo". - *

- * Long options can also be specified using a special POSIX argument - * format (one that I highly discourage). This form of entry is - * enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid - * option string. This causes getopt to treat the name following the - * "-W" as the name of the long option. For example, "-W outputdir=foo" - * would be equivalent to "--outputdir=foo". The name can immediately - * follow the "-W" like so: "-Woutputdir=foo". Option arguments are - * handled identically to normal long options. If a string follows the - * "-W" that does not represent a valid long option, then getopt() returns - * 'W' and the caller must decide what to do. Otherwise getopt() returns - * a long option value as described below. - *

- * While long options offer convenience, they can also be tedious to type - * in full. So it is permissible to abbreviate the option name to as - * few characters as required to uniquely identify it. If the name can - * represent multiple long options, then an error message is printed and - * getopt() returns a '?'. - *

- * If an invalid option is specified or a required option argument is - * missing, getopt() prints an error and returns a '?' or ':' exactly - * as for short options. Note that when an invalid long option is - * encountered, the optopt variable is set to integer 0 and so cannot - * be used to identify the incorrect option the user entered. - *

- * Long options are defined by LongOpt objects. These objects are created - * with a contructor that takes four params: a String representing the - * object name, a integer specifying what arguments the option takes - * (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, - * or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described - * below), and an integer value (described below). - *

- * To enable long option parsing, create an array of LongOpt's representing - * the legal options and pass it to the Getopt() constructor. WARNING: If - * all elements of the array are not populated with LongOpt objects, the - * getopt() method will throw a NullPointerException. - *

- * When getopt() is called and a long option is encountered, one of two - * things can be returned. If the flag field in the LongOpt object - * representing the long option is non-null, then the integer value field - * is stored there and an integer 0 is returned to the caller. The val - * field can then be retrieved from the flag field. Note that since the - * flag field is a StringBuffer, the appropriate String to integer converions - * must be performed in order to get the actual int value stored there. - * If the flag field in the LongOpt object is null, then the value field - * of the LongOpt is returned. This can be the character of a short option. - * This allows an app to have both a long and short option sequence - * (say, "-h" and "--help") that do the exact same thing. - *

- * With long options, there is an alternative method of determining - * which option was selected. The method getLongind() will return the - * the index in the long option array (NOT argv) of the long option found. - * So if multiple long options are configured to return the same value, - * the application can use getLongind() to distinguish between them. - *

- * Here is an expanded Getopt example using long options and various - * techniques described above: - *

- *

-  * int c;
-  * String arg;
-  * LongOpt[] longopts = new LongOpt[3];
-  * // 
-  * StringBuffer sb = new StringBuffer();
-  * longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
-  * longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
-  * longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
-  * // 
-  * Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
-  * g.setOpterr(false); // We'll do our own error handling
-  * //
-  * while ((c = g.getopt()) != -1)
-  *   switch (c)
-  *     {
-  *        case 0:
-  *          arg = g.getOptarg();
-  *          System.out.println("Got long option with value '" +
-  *                             (char)(new Integer(sb.toString())).intValue()
-  *                             + "' with argument " +
-  *                             ((arg != null) ? arg : "null"));
-  *          break;
-  *          //
-  *        case 1:
-  *          System.out.println("I see you have return in order set and that " +
-  *                             "a non-option argv element was just found " +
-  *                             "with the value '" + g.getOptarg() + "'");
-  *          break;
-  *          //
-  *        case 2:
-  *          arg = g.getOptarg();
-  *          System.out.println("I know this, but pretend I didn't");
-  *          System.out.println("We picked option " +
-  *                             longopts[g.getLongind()].getName() +
-  *                           " with value " + 
-  *                           ((arg != null) ? arg : "null"));
-  *          break;
-  *          //
-  *        case 'b':
-  *          System.out.println("You picked plain old option " + (char)c);
-  *          break;
-  *          //
-  *        case 'c':
-  *        case 'd':
-  *          arg = g.getOptarg();
-  *          System.out.println("You picked option '" + (char)c + 
-  *                             "' with argument " +
-  *                             ((arg != null) ? arg : "null"));
-  *          break;
-  *          //
-  *        case 'h':
-  *          System.out.println("I see you asked for help");
-  *          break;
-  *          //
-  *        case 'W':
-  *          System.out.println("Hmmm. You tried a -W with an incorrect long " +
-  *                             "option name");
-  *          break;
-  *          //
-  *        case ':':
-  *          System.out.println("Doh! You need an argument for option " +
-  *                             (char)g.getOptopt());
-  *          break;
-  *          //
-  *        case '?':
-  *          System.out.println("The option '" + (char)g.getOptopt() + 
-  *                           "' is not valid");
-  *          break;
-  *          //
-  *        default:
-  *          System.out.println("getopt() returned " + c);
-  *          break;
-  *     }
-  * //
-  * for (int i = g.getOptind(); i < argv.length ; i++)
-  *   System.out.println("Non option argv element: " + argv[i] + "\n");
-  * 
- *

- * There is an alternative form of the constructor used for long options - * above. This takes a trailing boolean flag. If set to false, Getopt - * performs identically to the example, but if the boolean flag is true - * then long options are allowed to start with a single '-' instead of - * "--". If the first character of the option is a valid short option - * character, then the option is treated as if it were the short option. - * Otherwise it behaves as if the option is a long option. Note that - * the name given to this option - long_only - is very counter-intuitive. - * It does not cause only long options to be parsed but instead enables - * the behavior described above. - *

- * Note that the functionality and variable names used are driven from - * the C lib version as this object is a port of the C code, not a - * new implementation. This should aid in porting existing C/C++ code, - * as well as helping programmers familiar with the glibc version to - * adapt to the Java version even if it seems very non-Java at times. - *

- * In this release I made all instance variables protected due to - * overwhelming public demand. Any code which relied on optarg, - * opterr, optind, or optopt being public will need to be modified to - * use the appropriate access methods. - *

- * Please send all bug reports, requests, and comments to - * arenn@urbanophile.com. - * - * @version 1.0.7 - * - * @author Roland McGrath (roland@gnu.ai.mit.edu) - * @author Ulrich Drepper (drepper@cygnus.com) - * @author Aaron M. Renn (arenn@urbanophile.com) - * - * @see LongOpt - */ -public class Getopt extends Object -{ - -/**************************************************************************/ - -/* - * Class Variables - */ - -/** - * Describe how to deal with options that follow non-option ARGV-elements. - * - * If the caller did not specify anything, - * the default is REQUIRE_ORDER if the property - * gnu.posixly_correct is defined, PERMUTE otherwise. - * - * The special argument `--' forces an end of option-scanning regardless - * of the value of `ordering'. In the case of RETURN_IN_ORDER, only - * `--' can cause `getopt' to return -1 with `optind' != ARGC. - * - * REQUIRE_ORDER means don't recognize them as options; - * stop option processing when the first non-option is seen. - * This is what Unix does. - * This mode of operation is selected by either setting the property - * gnu.posixly_correct, or using `+' as the first character - * of the list of option characters. - */ -protected static final int REQUIRE_ORDER = 1; - -/** - * PERMUTE is the default. We permute the contents of ARGV as we scan, - * so that eventually all the non-options are at the end. This allows options - * to be given in any order, even with programs that were not written to - * expect this. - */ -protected static final int PERMUTE = 2; - -/** - * RETURN_IN_ORDER is an option available to programs that were written - * to expect options and other ARGV-elements in any order and that care about - * the ordering of the two. We describe each non-option ARGV-element - * as if it were the argument of an option with character code 1. - * Using `-' as the first character of the list of option characters - * selects this mode of operation. - */ -protected static final int RETURN_IN_ORDER = 3; - -/**************************************************************************/ - -/* - * Instance Variables - */ - -/** - * For communication from `getopt' to the caller. - * When `getopt' finds an option that takes an argument, - * the argument value is returned here. - * Also, when `ordering' is RETURN_IN_ORDER, - * each non-option ARGV-element is returned here. - */ -protected String optarg; - -/** - * Index in ARGV of the next element to be scanned. - * This is used for communication to and from the caller - * and for communication between successive calls to `getopt'. - * - * On entry to `getopt', zero means this is the first call; initialize. - * - * When `getopt' returns -1, this is the index of the first of the - * non-option elements that the caller should itself scan. - * - * Otherwise, `optind' communicates from one call to the next - * how much of ARGV has been scanned so far. - */ -protected int optind = 0; - -/** - * Callers store false here to inhibit the error message - * for unrecognized options. - */ -protected boolean opterr = true; - -/** - * When an unrecognized option is encountered, getopt will return a '?' - * and store the value of the invalid option here. - */ -protected int optopt = '?'; - -/** - * The next char to be scanned in the option-element - * in which the last option character we returned was found. - * This allows us to pick up the scan where we left off. - * - * If this is zero, or a null string, it means resume the scan - * by advancing to the next ARGV-element. - */ -protected String nextchar; - -/** - * This is the string describing the valid short options. - */ -protected String optstring; - -/** - * This is an array of LongOpt objects which describ the valid long - * options. - */ -protected LongOpt[] long_options; - -/** - * This flag determines whether or not we are parsing only long args - */ -protected boolean long_only; - -/** - * Stores the index into the long_options array of the long option found - */ -protected int longind; - -/** - * The flag determines whether or not we operate in strict POSIX compliance - */ -protected boolean posixly_correct; - -/** - * A flag which communicates whether or not checkLongOption() did all - * necessary processing for the current option - */ -protected boolean longopt_handled; - -/** - * The index of the first non-option in argv[] - */ -protected int first_nonopt = 1; - -/** - * The index of the last non-option in argv[] - */ -protected int last_nonopt = 1; - -/** - * Flag to tell getopt to immediately return -1 the next time it is - * called. - */ -private boolean endparse = false; - -/** - * Saved argument list passed to the program - */ -protected String[] argv; - -/** - * Determines whether we permute arguments or not - */ -protected int ordering; - -/** - * Name to print as the program name in error messages. This is necessary - * since Java does not place the program name in argv[0] - */ -protected String progname; - -/** - * The localized strings are kept in a separate file - */ -private ResourceBundle _messages = ResourceBundle.getBundle( - "gnu/getopt/MessagesBundle", Locale.getDefault()); - -/**************************************************************************/ - -/* - * Constructors - */ - -/** - * Construct a basic Getopt instance with the given input data. Note that - * this handles "short" options only. - * - * @param progname The name to display as the program name when printing errors - * @param argv The String array passed as the command line to the program. - * @param optstring A String containing a description of the valid args for this program - */ -public -Getopt(String progname, String[] argv, String optstring) -{ - this(progname, argv, optstring, null, false); -} - -/**************************************************************************/ - -/** - * Construct a Getopt instance with given input data that is capable of - * parsing long options as well as short. - * - * @param progname The name to display as the program name when printing errors - * @param argv The String array passed as the command ilne to the program - * @param optstring A String containing a description of the valid short args for this program - * @param long_options An array of LongOpt objects that describes the valid long args for this program - */ -public -Getopt(String progname, String[] argv, String optstring, - LongOpt[] long_options) -{ - this(progname, argv, optstring, long_options, false); -} - -/**************************************************************************/ - -/** - * Construct a Getopt instance with given input data that is capable of - * parsing long options and short options. Contrary to what you might - * think, the flag 'long_only' does not determine whether or not we - * scan for only long arguments. Instead, a value of true here allows - * long arguments to start with a '-' instead of '--' unless there is a - * conflict with a short option name. - * - * @param progname The name to display as the program name when printing errors - * @param argv The String array passed as the command ilne to the program - * @param optstring A String containing a description of the valid short args for this program - * @param long_options An array of LongOpt objects that describes the valid long args for this program - * @param long_only true if long options that do not conflict with short options can start with a '-' as well as '--' - */ -public -Getopt(String progname, String[] argv, String optstring, - LongOpt[] long_options, boolean long_only) -{ - if (optstring.length() == 0) - optstring = " "; - - // This function is essentially _getopt_initialize from GNU getopt - this.progname = progname; - this.argv = argv; - this.optstring = optstring; - this.long_options = long_options; - this.long_only = long_only; - - // Check for property "gnu.posixly_correct" to determine whether to - // strictly follow the POSIX standard. This replaces the "POSIXLY_CORRECT" - // environment variable in the C version - if (System.getProperty("gnu.posixly_correct", null) == null) - posixly_correct = false; - else - { - posixly_correct = true; - _messages = ResourceBundle.getBundle("gnu/getopt/MessagesBundle", - Locale.US); - } - - // Determine how to handle the ordering of options and non-options - if (optstring.charAt(0) == '-') - { - ordering = RETURN_IN_ORDER; - if (optstring.length() > 1) - this.optstring = optstring.substring(1); - } - else if (optstring.charAt(0) == '+') - { - ordering = REQUIRE_ORDER; - if (optstring.length() > 1) - this.optstring = optstring.substring(1); - } - else if (posixly_correct) - { - ordering = REQUIRE_ORDER; - } - else - { - ordering = PERMUTE; // The normal default case - } -} - -/**************************************************************************/ - -/* - * Instance Methods - */ - -/** - * In GNU getopt, it is possible to change the string containg valid options - * on the fly because it is passed as an argument to getopt() each time. In - * this version we do not pass the string on every call. In order to allow - * dynamic option string changing, this method is provided. - * - * @param optstring The new option string to use - */ -public void -setOptstring(String optstring) -{ - if (optstring.length() == 0) - optstring = " "; - - this.optstring = optstring; -} - -/**************************************************************************/ - -/** - * optind it the index in ARGV of the next element to be scanned. - * This is used for communication to and from the caller - * and for communication between successive calls to `getopt'. - * - * When `getopt' returns -1, this is the index of the first of the - * non-option elements that the caller should itself scan. - * - * Otherwise, `optind' communicates from one call to the next - * how much of ARGV has been scanned so far. - */ -public int -getOptind() -{ - return(optind); -} - -/**************************************************************************/ - -/** - * This method allows the optind index to be set manually. Normally this - * is not necessary (and incorrect usage of this method can lead to serious - * lossage), but optind is a public symbol in GNU getopt, so this method - * was added to allow it to be modified by the caller if desired. - * - * @param optind The new value of optind - */ -public void -setOptind(int optind) -{ - this.optind = optind; -} - -/**************************************************************************/ - -/** - * Since in GNU getopt() the argument vector is passed back in to the - * function every time, the caller can swap out argv on the fly. Since - * passing argv is not required in the Java version, this method allows - * the user to override argv. Note that incorrect use of this method can - * lead to serious lossage. - * - * @param argv New argument list - */ -public void -setArgv(String[] argv) -{ - this.argv = argv; -} - -/**************************************************************************/ - -/** - * For communication from `getopt' to the caller. - * When `getopt' finds an option that takes an argument, - * the argument value is returned here. - * Also, when `ordering' is RETURN_IN_ORDER, - * each non-option ARGV-element is returned here. - * No set method is provided because setting this variable has no effect. - */ -public String -getOptarg() -{ - return(optarg); -} - -/**************************************************************************/ - -/** - * Normally Getopt will print a message to the standard error when an - * invalid option is encountered. This can be suppressed (or re-enabled) - * by calling this method. There is no get method for this variable - * because if you can't remember the state you set this to, why should I? - */ -public void -setOpterr(boolean opterr) -{ - this.opterr = opterr; -} - -/**************************************************************************/ - -/** - * When getopt() encounters an invalid option, it stores the value of that - * option in optopt which can be retrieved with this method. There is - * no corresponding set method because setting this variable has no effect. - */ -public int -getOptopt() -{ - return(optopt); -} - -/**************************************************************************/ - -/** - * Returns the index into the array of long options (NOT argv) representing - * the long option that was found. - */ -public int -getLongind() -{ - return(longind); -} - -/**************************************************************************/ - -/** - * Exchange the shorter segment with the far end of the longer segment. - * That puts the shorter segment into the right place. - * It leaves the longer segment in the right place overall, - * but it consists of two parts that need to be swapped next. - * This method is used by getopt() for argument permutation. - */ -protected void -exchange(String[] argv) -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - String tem; - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - // Bottom segment is the short one. - int len = middle - bottom; - int i; - - // Swap it with the top part of the top segment. - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - } - // Exclude the moved bottom segment from further swapping. - top -= len; - } - else - { - // Top segment is the short one. - int len = top - middle; - int i; - - // Swap it with the bottom part of the bottom segment. - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - } - // Exclude the moved top segment from further swapping. - bottom += len; - } - } - - // Update records for the slots the non-options now occupy. - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/**************************************************************************/ - -/** - * Check to see if an option is a valid long option. Called by getopt(). - * Put in a separate method because this needs to be done twice. (The - * C getopt authors just copy-pasted the code!). - * - * @param longind A buffer in which to store the 'val' field of found LongOpt - * - * @return Various things depending on circumstances - */ -protected int -checkLongOption() -{ - LongOpt pfound = null; - int nameend; - boolean ambig; - boolean exact; - - longopt_handled = true; - ambig = false; - exact = false; - longind = -1; - - nameend = nextchar.indexOf("="); - if (nameend == -1) - nameend = nextchar.length(); - - // Test all lnog options for either exact match or abbreviated matches - for (int i = 0; i < long_options.length; i++) - { - if (long_options[i].getName().startsWith(nextchar.substring(0, nameend))) - { - if (long_options[i].getName().equals(nextchar.substring(0, nameend))) - { - // Exact match found - pfound = long_options[i]; - longind = i; - exact = true; - break; - } - else if (pfound == null) - { - // First nonexact match found - pfound = long_options[i]; - longind = i; - } - else - { - // Second or later nonexact match found - ambig = true; - } - } - } // for - - // Print out an error if the option specified was ambiguous - if (ambig && !exact) - { - if (opterr) - { - Object[] msgArgs = { progname, argv[optind] }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.ambigious"), - msgArgs)); - } - - nextchar = ""; - optopt = 0; - ++optind; - - return('?'); - } - - if (pfound != null) - { - ++optind; - - if (nameend != nextchar.length()) - { - if (pfound.has_arg != LongOpt.NO_ARGUMENT) - { - if (nextchar.substring(nameend).length() > 1) - optarg = nextchar.substring(nameend+1); - else - optarg = ""; - } - else - { - if (opterr) - { - // -- option - if (argv[optind - 1].startsWith("--")) - { - Object[] msgArgs = { progname, pfound.name }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.arguments1"), - msgArgs)); - } - // +option or -option - else - { - Object[] msgArgs = { progname, new - Character(argv[optind-1].charAt(0)).toString(), - pfound.name }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.arguments2"), - msgArgs)); - } - } - - nextchar = ""; - optopt = pfound.val; - - return('?'); - } - } // if (nameend) - else if (pfound.has_arg == LongOpt.REQUIRED_ARGUMENT) - { - if (optind < argv.length) - { - optarg = argv[optind]; - ++optind; - } - else - { - if (opterr) - { - Object[] msgArgs = { progname, argv[optind-1] }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.requires"), - msgArgs)); - } - - nextchar = ""; - optopt = pfound.val; - if (optstring.charAt(0) == ':') - return(':'); - else - return('?'); - } - } // else if (pfound) - - nextchar = ""; - - if (pfound.flag != null) - { - pfound.flag.setLength(0); - pfound.flag.append(pfound.val); - - return(0); - } - - return(pfound.val); - } // if (pfound != null) - - longopt_handled = false; - - return(0); -} - -/**************************************************************************/ - -/** - * This method returns a char that is the current option that has been - * parsed from the command line. If the option takes an argument, then - * the internal variable 'optarg' is set which is a String representing - * the the value of the argument. This value can be retrieved by the - * caller using the getOptarg() method. If an invalid option is found, - * an error message is printed and a '?' is returned. The name of the - * invalid option character can be retrieved by calling the getOptopt() - * method. When there are no more options to be scanned, this method - * returns -1. The index of first non-option element in argv can be - * retrieved with the getOptind() method. - * - * @return Various things as described above - */ -public int -getopt() -{ - optarg = null; - - if (endparse == true) - return(-1); - - if ((nextchar == null) || (nextchar.equals(""))) - { - // If we have just processed some options following some non-options, - // exchange them so that the options come first. - if (last_nonopt > optind) - last_nonopt = optind; - if (first_nonopt > optind) - first_nonopt = optind; - - if (ordering == PERMUTE) - { - // If we have just processed some options following some non-options, - // exchange them so that the options come first. - if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) - exchange(argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - // Skip any additional non-options - // and extend the range of non-options previously skipped. - while ((optind < argv.length) && (argv[optind].equals("") || - (argv[optind].charAt(0) != '-') || argv[optind].equals("-"))) - { - optind++; - } - - last_nonopt = optind; - } - - // The special ARGV-element `--' means premature end of options. - // Skip it like a null option, - // then exchange with previous non-options as if it were an option, - // then skip everything else like a non-option. - if ((optind != argv.length) && argv[optind].equals("--")) - { - optind++; - - if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) - exchange (argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - - last_nonopt = argv.length; - - optind = argv.length; - } - - // If we have done all the ARGV-elements, stop the scan - // and back over any non-options that we skipped and permuted. - if (optind == argv.length) - { - // Set the next-arg-index to point at the non-options - // that we previously skipped, so the caller will digest them. - if (first_nonopt != last_nonopt) - optind = first_nonopt; - - return(-1); - } - - // If we have come to a non-option and did not permute it, - // either stop the scan or describe it to the caller and pass it by. - if (argv[optind].equals("") || (argv[optind].charAt(0) != '-') || - argv[optind].equals("-")) - { - if (ordering == REQUIRE_ORDER) - return(-1); - - optarg = argv[optind++]; - return(1); - } - - // We have found another option-ARGV-element. - // Skip the initial punctuation. - if (argv[optind].startsWith("--")) - nextchar = argv[optind].substring(2); - else - nextchar = argv[optind].substring(1); - } - - // Decode the current option-ARGV-element. - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - if ((long_options != null) && (argv[optind].startsWith("--") - || (long_only && ((argv[optind].length() > 2) || - (optstring.indexOf(argv[optind].charAt(1)) == -1))))) - { - int c = checkLongOption(); - - if (longopt_handled) - return(c); - - // Can't find it as a long option. If this is not getopt_long_only, - // or the option starts with '--' or is not a valid short - // option, then it's an error. - // Otherwise interpret it as a short option. - if (!long_only || argv[optind].startsWith("--") - || (optstring.indexOf(nextchar.charAt(0)) == -1)) - { - if (opterr) - { - if (argv[optind].startsWith("--")) - { - Object[] msgArgs = { progname, nextchar }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.unrecognized"), - msgArgs)); - } - else - { - Object[] msgArgs = { progname, new - Character(argv[optind].charAt(0)).toString(), - nextchar }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.unrecognized2"), - msgArgs)); - } - } - - nextchar = ""; - ++optind; - optopt = 0; - - return('?'); - } - } // if (longopts) - - // Look at and handle the next short option-character */ - int c = nextchar.charAt(0); //**** Do we need to check for empty str? - if (nextchar.length() > 1) - nextchar = nextchar.substring(1); - else - nextchar = ""; - - String temp = null; - if (optstring.indexOf(c) != -1) - temp = optstring.substring(optstring.indexOf(c)); - - if (nextchar.equals("")) - ++optind; - - if ((temp == null) || (c == ':')) - { - if (opterr) - { - if (posixly_correct) - { - // 1003.2 specifies the format of this message - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.illegal"), msgArgs)); - } - else - { - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.invalid"), msgArgs)); - } - } - - optopt = c; - - return('?'); - } - - // Convenience. Treat POSIX -W foo same as long option --foo - if ((temp.charAt(0) == 'W') && (temp.length() > 1) && (temp.charAt(1) == ';')) - { - if (!nextchar.equals("")) - { - optarg = nextchar; - } - // No further cars in this argv element and no more argv elements - else if (optind == argv.length) - { - if (opterr) - { - // 1003.2 specifies the format of this message. - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.requires2"), msgArgs)); - } - - optopt = c; - if (optstring.charAt(0) == ':') - return(':'); - else - return('?'); - } - else - { - // We already incremented `optind' once; - // increment it again when taking next ARGV-elt as argument. - nextchar = argv[optind]; - optarg = argv[optind]; - } - - c = checkLongOption(); - - if (longopt_handled) - return(c); - else - // Let the application handle it - { - nextchar = null; - ++optind; - return('W'); - } - } - - if ((temp.length() > 1) && (temp.charAt(1) == ':')) - { - if ((temp.length() > 2) && (temp.charAt(2) == ':')) - // This is an option that accepts and argument optionally - { - if (!nextchar.equals("")) - { - optarg = nextchar; - ++optind; - } - else - { - optarg = null; - } - - nextchar = null; - } - else - { - if (!nextchar.equals("")) - { - optarg = nextchar; - ++optind; - } - else if (optind == argv.length) - { - if (opterr) - { - // 1003.2 specifies the format of this message - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.requires2"), msgArgs)); - } - - optopt = c; - - if (optstring.charAt(0) == ':') - return(':'); - else - return('?'); - } - else - { - optarg = argv[optind]; - ++optind; - - // Ok, here's an obscure Posix case. If we have o:, and - // we get -o -- foo, then we're supposed to skip the --, - // end parsing of options, and make foo an operand to -o. - // Only do this in Posix mode. - if ((posixly_correct) && optarg.equals("--")) - { - // If end of argv, error out - if (optind == argv.length) - { - if (opterr) - { - // 1003.2 specifies the format of this message - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.requires2"), msgArgs)); - } - - optopt = c; - - if (optstring.charAt(0) == ':') - return(':'); - else - return('?'); - } - - // Set new optarg and set to end - // Don't permute as we do on -- up above since we - // know we aren't in permute mode because of Posix. - optarg = argv[optind]; - ++optind; - first_nonopt = optind; - last_nonopt = argv.length; - endparse = true; - } - } - - nextchar = null; - } - } - - return(c); -} - -} // Class Getopt - - diff --git a/lab2/gnu/getopt/GetoptDemo.class b/lab2/gnu/getopt/GetoptDemo.class deleted file mode 100755 index 518218737ebab153a4d2c72c103e2e074bbef12d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2868 zcmb_e+jA3T6#sp>?KTb2h88FV{R;GI)0B${DHJK?66^(OrG#>ElWdc1liir?w%`px zQ1FI2j!(`o;|mWy>1gWM5l0__i9X@DX3SJ#Gs8;8wwEv~VU7wz zRgiF5!WBxE!8>MH*_e7v6Nu}MtEQ1L2i3IEBOra)gC`mM3Ec`N?5*ICp(jQ&CWZZH z%mHg^O3f0jq?*bI&leeL49m<|W?Un^lvXZlX)Dc8UxrtV$RL|)&dg+u1Ve2g6pe*K z@lbN2PvE@d!^?QZhgWgchu3gT!gU{B#|?&!l^nEGT#(pu+%S2HxN^!zGju+unMppY zq%4)U`*0I)5RDb@ux_deHS5EhxF$m0^5M3Kb`x(g)U_AAm2ARFtGdZ4N8L)LsDwVe zjav+AnCDcLUokA6RAyD4RZT0ab4}+)mgvx?$rU}$&7?vLt{ZxwM2j$IxtdaK+&Lx3 zr>&gHrwog%ZOUd+U82pv+8J8Hd`36s2usU#^QdL=424t4KFs4Act_;(F0L{7%8NmziV*FRbtXkE#f{XmAH({x?GkBXv1uh^B`4xc8Cfn4p5dtz z>2$h>3peUT+ERF6qEtaqlbDgss)gJDY_5u;VNY@ zPL)|9w6>jVIjXEFs-?w6)7lN&(OEhT0u<+Y$A|ZYd(#LtMU_Jc(djZT&Be+nPzS7Z z%4l?&$WvLW3>`z`LZcDvsGQ|+g{nAeePJ=> zqg6braI3)Rt4dWM)=;~SW=u6JhPmUMP%6Q>e+luU-Ym?2Olp~?^gmObg@D4WJoO&hDZ5`CE}d`8SZb$iE=M}bKh zaT+Olt$Ha(ae$iOB+eVlgFCkpgkVB)1p_r3JAl_VqS z?wSYtoE9`bbobcGTKY8X!+u(mscR52B=Vo~d<)0O0-TX~xI(Uga{-Qs-|b{|$$5Cj z0xtVmay7Z?3|ry06|$ST#p42MB7Sd|zcw%rU&!6$cIL6B$(_gA$N|S)_OSUgBJmY* z@X{rI5xNA$Pv~;c^*vo7Qt2cQk-S54f@F+jl%$6wt=V>x@sdoEJS&2%8~y@y3#cdV ze*gMB8WzwPX>#SUVICXv*z{o@P5#ZK@BR@|_dU4%&GeARmOQrJD@>L-KSp{Rk);3e zGNZlAar~UT%3NB=Dj;^Z?aE`j@Y_MRYLOOyD|2flqh>*@L}T&i|Wua=tYO!iyxzv*6ZP>e?M!n0gquLg4l$9Y{oE} zF-A>%k+fe^li$ZS{EjyKiB7f^-Hap1+R)2-u#-jUpM;8i>?-!N>o~}6p`U$;!)zXd z>^mG~Ki~v=fRpSe46|P_%6`RZM?J1Xq&tEb!H5jXSM{1*G-XvLYWZhAt}@Fl)du%_W_+>sH#(U8Ik4JVP*@HXDj@Gg=h zn4T6o9Udst7ZJm;{X+aLe_Y;ZiA=vSPa}n9jmv?lRMmp0bJwCSyBzgEh@){YYJjwS z`utfk+z1d?k1G9)GaVHKM59cRv?sc_)7SOQyY(RoQQ62XRcErOj;fu{ygHwmG zdgtYGK&(4G0`-aCtM=fZnhf|hvr0^j(q#n1F@Z58>4G>$UI@p@AMf!e$e----$F!^ zPS}X#-CK!zZzc9=4M|r?`}gJi~=l z^ckiiuMk@czl5@u+ClsU2C7%0FQKmK&k;==c>!%Ax{JXb9Q{{6zl|Y1wT)qYY8xYZ zl7c1v^zxr0tJ9qcJfbS=7{+6&^?SO3f4~xcL=iusf}cswzu+!@MVgRfV6W*gsvx64 zX9~_U+I^p%2=$@TGlglgvX>LI%F`%SHS`C)FvyfKZ}SP+EIuH67&`p>A?R-e`jD#X ahmIVM`WJyd3XGaK9Q74JFH)uuK7Iq%AbJb{ diff --git a/lab2/gnu/getopt/LongOpt.java b/lab2/gnu/getopt/LongOpt.java deleted file mode 100755 index 6357085..0000000 --- a/lab2/gnu/getopt/LongOpt.java +++ /dev/null @@ -1,195 +0,0 @@ -/************************************************************************** -/* LongOpt.java -- Long option object for Getopt -/* -/* Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -package gnu.getopt; - -import java.util.Locale; -import java.util.ResourceBundle; -import java.text.MessageFormat; - -/**************************************************************************/ - -/** - * This object represents the definition of a long option in the Java port - * of GNU getopt. An array of LongOpt objects is passed to the Getopt - * object to define the list of valid long options for a given parsing - * session. Refer to the getopt documentation for details on the - * format of long options. - * - * @version 1.0.5 - * @author Aaron M. Renn (arenn@urbanophile.com) - * - * @see Getopt - */ -public class LongOpt extends Object -{ - -/**************************************************************************/ - -/* - * Class Variables - */ - -/** - * Constant value used for the "has_arg" constructor argument. This - * value indicates that the option takes no argument. - */ -public static final int NO_ARGUMENT = 0; - -/** - * Constant value used for the "has_arg" constructor argument. This - * value indicates that the option takes an argument that is required. - */ -public static final int REQUIRED_ARGUMENT = 1; - -/** - * Constant value used for the "has_arg" constructor argument. This - * value indicates that the option takes an argument that is optional. - */ -public static final int OPTIONAL_ARGUMENT = 2; - -/**************************************************************************/ - -/* - * Instance Variables - */ - -/** - * The name of the long option - */ -protected String name; - -/** - * Indicates whether the option has no argument, a required argument, or - * an optional argument. - */ -protected int has_arg; - -/** - * If this variable is not null, then the value stored in "val" is stored - * here when this long option is encountered. If this is null, the value - * stored in "val" is treated as the name of an equivalent short option. - */ -protected StringBuffer flag; - -/** - * The value to store in "flag" if flag is not null, otherwise the - * equivalent short option character for this long option. - */ -protected int val; - -/** - * Localized strings for error messages - */ -private ResourceBundle _messages = ResourceBundle.getBundle( - "gnu/getopt/MessagesBundle", Locale.getDefault()); - -/**************************************************************************/ - -/* - * Constructors - */ - -/** - * Create a new LongOpt object with the given parameter values. If the - * value passed as has_arg is not valid, then an exception is thrown. - * - * @param name The long option String. - * @param has_arg Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). - * @param flag If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. - * @param val The value to return for this long option, or the equivalent single letter option to emulate if flag is null. - * - * @exception IllegalArgumentException If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. - */ -public -LongOpt(String name, int has_arg, - StringBuffer flag, int val) throws IllegalArgumentException -{ - // Validate has_arg - if ((has_arg != NO_ARGUMENT) && (has_arg != REQUIRED_ARGUMENT) - && (has_arg != OPTIONAL_ARGUMENT)) - { - Object[] msgArgs = { new Integer(has_arg).toString() }; - throw new IllegalArgumentException(MessageFormat.format( - _messages.getString("getopt.invalidValue"), msgArgs)); - } - - // Store off values - this.name = name; - this.has_arg = has_arg; - this.flag = flag; - this.val = val; -} - -/**************************************************************************/ - -/** - * Returns the name of this LongOpt as a String - * - * @return Then name of the long option - */ -public String -getName() -{ - return(name); -} - -/**************************************************************************/ - -/** - * Returns the value set for the 'has_arg' field for this long option - * - * @return The value of 'has_arg' - */ -public int -getHasArg() -{ - return(has_arg); -} - -/**************************************************************************/ - -/** - * Returns the value of the 'flag' field for this long option - * - * @return The value of 'flag' - */ -public StringBuffer -getFlag() -{ - return(flag); -} - -/** - * Returns the value of the 'val' field for this long option - * - * @return The value of 'val' - */ -public int -getVal() -{ - return(val); -} - -/**************************************************************************/ - -} // Class LongOpt - diff --git a/lab2/gnu/getopt/Makefile b/lab2/gnu/getopt/Makefile deleted file mode 100755 index 6ff789c..0000000 --- a/lab2/gnu/getopt/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# Makefile for Java port of GNU getopt - -all: - javac LongOpt.java Getopt.java GetoptDemo.java - -docs: - javadoc -author -version -public Getopt.java LongOpt.java diff --git a/lab2/gnu/getopt/MessagesBundle.properties b/lab2/gnu/getopt/MessagesBundle.properties deleted file mode 100755 index 9356ee1..0000000 --- a/lab2/gnu/getopt/MessagesBundle.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- English language error messages -/* -/* Copyright (c) 1998 by William King (wrking@eng.sun.com) and -/* Aaron M. Renn (arenn@urbanophile.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: option ''{1}'' is ambiguous -getopt.arguments1={0}: option ''--{1}'' doesn't allow an argument -getopt.arguments2={0}: option ''{1}{2}'' doesn't allow an argument -getopt.requires={0}: option ''{1}'' requires an argument -getopt.unrecognized={0}: unrecognized option ''--{1}'' -getopt.unrecognized2={0}: unrecognized option ''{1}{2}'' -getopt.illegal={0}: illegal option -- {1} -getopt.invalid={0}: invalid option -- {1} -getopt.requires2={0}: option requires an argument -- {1} -getopt.invalidValue=Invalid value {0} for parameter 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_chs.properties b/lab2/gnu/getopt/MessagesBundle_chs.properties deleted file mode 100755 index 1090dc6..0000000 --- a/lab2/gnu/getopt/MessagesBundle_chs.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties šCSimple Chinese language error messages -/* -/* Copyright (c) 2012 by David Zhang (david290@qq.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: Ñ¡Ïî ''{1}'' ÓÐÆçÒå -getopt.arguments1={0}:Ñ¡Ïî''--{1}'' ²»ÄÜŽø²ÎÊý -getopt.arguments2={0}:Ñ¡Ïî''{1}{2}''²»ÄÜŽø²ÎÊý -getopt.requires={0}: Ñ¡Ïî ''{1}'' ÒªÇóŽøÓвÎÊý -getopt.unrecognized={0}: ÎÞ·šÊ¶±ðµÄÑ¡Ïî ''--{1}'' -getopt.unrecognized2={0}:ÎÞ·šÊ¶±ðµÄÑ¡Ïî''{1}{2}'' -getopt.illegal={0}: ·Ç·šÑ¡Ïî -- {1} -getopt.invalid={0}: ÎÞЧѡÏî -- {1} -getopt.requires2={0}:Ñ¡ÏîÐèÒªÓвÎÊý -- {1} -getopt.invalidValue=Ñ¡Ïî 'has_arg'µÄÖµ {0} ·Ç·š - - diff --git a/lab2/gnu/getopt/MessagesBundle_cht.properties b/lab2/gnu/getopt/MessagesBundle_cht.properties deleted file mode 100755 index 270e4f1..0000000 --- a/lab2/gnu/getopt/MessagesBundle_cht.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties - Triditional Chinese language error messages -/* -/* Copyright (c) 2012 by David Zhang (david290@qq.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: 遾項 ''{1}'' 有歧矩 -getopt.arguments1={0}:遾項''--{1}'' 䞍胜垶參敞 -getopt.arguments2={0}:遾項''{1}{2}''䞍胜垶參敞 -getopt.requires={0}: 遾項 ''{1}'' 芁求垶有參敞 -getopt.unrecognized={0}: 無法識別的遞項 ''--{1}'' -getopt.unrecognized2={0}:無法識別的遞項''{1}{2}'' -getopt.illegal={0}: 非法遞項 -- {1} -getopt.invalid={0}: 無效遞項 -- {1} -getopt.requires2={0}:遞項需芁有參敞 -- {1} -getopt.invalidValue=遾項 'has_arg'的倌 {0} 非法 - - diff --git a/lab2/gnu/getopt/MessagesBundle_cs.properties b/lab2/gnu/getopt/MessagesBundle_cs.properties deleted file mode 100755 index 3c14a03..0000000 --- a/lab2/gnu/getopt/MessagesBundle_cs.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle_cs.properties -- Czech language error messages -/* -/* Czech Messages Copyright (c) 1998 by Roman Szturc (Roman.Szturc@vsb.cz) -/* These messages are encoded in ISO-8859-2 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: volba ''{1}'' je nejednoznaèná -getopt.arguments1={0}: volba ''--{1}'' nepøipou¹tí argument -getopt.arguments2={0}: volba ''{1}{2}'' nepøipou¹tí argument -getopt.requires={0}: volba ''{1}'' vyŸaduje argument -getopt.unrecognized={0}: nepøípustná volba ''--{1}'' -getopt.unrecognized2={0}: nepøípustná volba ''{1}{2}'' -getopt.illegal={0}: nepøípustná volba -- {1} -getopt.invalid={0}: neplatná volba -- {1} -getopt.requires2={0}: volba vyŸaduje argument -- {1} -getopt.invalidValue=Neplatná hodnota {0} parameteru 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_de.properties b/lab2/gnu/getopt/MessagesBundle_de.properties deleted file mode 100755 index f741386..0000000 --- a/lab2/gnu/getopt/MessagesBundle_de.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- German language error messages -/* -/* German Messages Copyright (c) 1999 by Bernhard Bablok (bablokb@gmx.net) -/* These messages are encoded in ISO-8859-1 -//* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: Option ''{1}'' ist zweideutig -getopt.arguments1={0}: Option ''--{1}'' erlaubt kein Argument -getopt.arguments2={0}: Option ''{1}{2}'' erlaubt kein Argument -getopt.requires={0}: Option ''{1}'' benötigt ein Argument -getopt.unrecognized={0}: Unbekannte Option ''--{1}'' -getopt.unrecognized2={0}: Unbekannte Option ''{1}{2}'' -getopt.illegal={0}: Verbotene Option -- {1} -getopt.invalid={0}: Ungültige Option -- {1} -getopt.requires2={0}: Option benötigt ein Argument -- {1} -getopt.invalidValue=Ungültiger Wert {0} für Parameter 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_es.properties b/lab2/gnu/getopt/MessagesBundle_es.properties deleted file mode 100755 index ef358f4..0000000 --- a/lab2/gnu/getopt/MessagesBundle_es.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle_es.properties -- Spanish language error messages -/* -/* Spanish Messages Copyright (c) 2004 by Daniel Pérez (dondani@gmail.com) -/* These messages are encoded in ISO-8859-1 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: la opción ''{1}'' es ambigua -getopt.arguments1={0}: la opción ''--{1}'' no permite un argumento -getopt.arguments2={0}: la opción ''{1}{2}'' no permite un argumento -getopt.requires={0}: la opción ''{1}'' requiere un argumento -getopt.unrecognized={0}: opción no reconocida ''--{1}'' -getopt.unrecognized2={0}: opción no reconocida ''{1}{2}'' -getopt.illegal={0}: opción ilegal -- {1} -getopt.invalid={0}: opción no válida -- {1} -getopt.requires2={0}: la opción requiere un argumento -- {1} -getopt.invalidValue=Valor no válido {0} para el parámetro 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_fr.properties b/lab2/gnu/getopt/MessagesBundle_fr.properties deleted file mode 100755 index 400447c..0000000 --- a/lab2/gnu/getopt/MessagesBundle_fr.properties +++ /dev/null @@ -1,35 +0,0 @@ -/************************************************************************** -/* MessagesBundle_fr.properties -- French language error messages -/* -/* Copyright (c) 1999 Free Software Foundation, Inc. -/* Michel Robitaille , 1996, -/* Edouard G. Parmelan , 1999. -/* These messages are encoded in ISO-8859-1 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: l'option ''{1}'' est ambiguë -getopt.arguments1={0}: l'option ''--{1}'' ne permet pas de paramètre -getopt.arguments2={0}: l'option ''{1}{2}'' ne permet pas de paramètre -getopt.requires={0}: l'option ''{1}'' requiert un paramètre -getopt.unrecognized={0}: option non reconnue ''--{1}'' -getopt.unrecognized2={0}: option non reconnue ''{1}{2}'' -getopt.illegal={0}: option illégale -- {1} -getopt.invalid={0}: option invalide -- {1} -getopt.requires2={0}: cette option requiert un paramètre -- {1} -getopt.invalidValue=Valeur invalide {0} pour le paramètre 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_hu.properties b/lab2/gnu/getopt/MessagesBundle_hu.properties deleted file mode 100755 index f7af03b..0000000 --- a/lab2/gnu/getopt/MessagesBundle_hu.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- Hungarian language error messages -/* -/* Copyright (c) 2001 by Gyula Csom (csom@informix.hu) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: opció ''{1}'' félreérthetõ -getopt.arguments1={0}: opció ''--{1}'' nem enged meg argumentumot -getopt.arguments2={0}: opció ''{1}{2}'' nem enged meg argumentumot -getopt.requires={0}: opció ''{1}'' argumentumot igényel -getopt.unrecognized={0}: ismeretlen opció ''--{1}'' -getopt.unrecognized2={0}: ismeretlen opció ''{1}{2}'' -getopt.illegal={0}: illegális opció -- {1} -getopt.invalid={0}: érvénytelen opció -- {1} -getopt.requires2={0}: az opció argumentumot igényel -- {1} -getopt.invalidValue=Érvénytelen érték {0} a következõ paraméterhez 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_it.properties b/lab2/gnu/getopt/MessagesBundle_it.properties deleted file mode 100755 index c596c26..0000000 --- a/lab2/gnu/getopt/MessagesBundle_it.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- Italian language error messages -/* -/* Copyright (c) 2005 by Sandro Tosi (matrixhasu@gmail.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: l'opzione ''{1}'' è ambigua -getopt.arguments1={0}: l'opzione ''--{1}'' non ammette un argomento -getopt.arguments2={0}: l'opzione ''{1}{2}'' non ammette un argomento -getopt.requires={0}: l'opzione ''{1}'' richiede un argomento -getopt.unrecognized={0}: opzione non riconosciuta ''--{1}'' -getopt.unrecognized2={0}: opzione non riconosciuta ''{1}{2}'' -getopt.illegal={0}: opzione illegale -- {1} -getopt.invalid={0}: opzione invalida -- {1} -getopt.requires2={0}: l'opzione richiede un argomento -- {1} -getopt.invalidValue=Valore non valido {0} per il parametro 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_ja.properties b/lab2/gnu/getopt/MessagesBundle_ja.properties deleted file mode 100755 index 5578972..0000000 --- a/lab2/gnu/getopt/MessagesBundle_ja.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- Japanese language error messages -/* -/* Copyright (c) 2001 by Yasuoka Masahiko (yasuoka@yasuoka.net) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u66d6\u6627\u3067\u3059\u3002 -getopt.arguments1={0}: ''--{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 -getopt.arguments2={0}: ''{1}{2}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 -getopt.requires={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 -getopt.unrecognized={0}: ''--{1}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 -getopt.unrecognized2={0}: ''{1}{2}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 -getopt.illegal={0}: -- {1} \u306f\u4e0d\u6b63\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 -getopt.invalid={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002 -getopt.requires2={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 -getopt.invalidValue={0} \u306f\u3001'has_arg' \u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u4e0d\u6b63\u306a\u5024\u3067\u3059\u3002 - diff --git a/lab2/gnu/getopt/MessagesBundle_nl.properties b/lab2/gnu/getopt/MessagesBundle_nl.properties deleted file mode 100755 index c614922..0000000 --- a/lab2/gnu/getopt/MessagesBundle_nl.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle_nl.properties -- Dutch language error messages -/* -/* Copyright (c) 1999 by Ernst de Haan (ernst@jollem.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: optie ''{1}'' is ambigue -getopt.arguments1={0}: optie ''--{1}'' staat geen argumenten toe -getopt.arguments2={0}: optie ''{1}{2}'' staat geen argumenten toe -getopt.requires={0}: optie ''{1}'' heeft een argument nodig -getopt.unrecognized={0}: onbekende optie ''--{1}'' -getopt.unrecognized2={0}: onbekende optie ''{1}{2}'' -getopt.illegal={0}: niet-toegestane optie -- {1} -getopt.invalid={0}: onjuiste optie -- {1} -getopt.requires2={0}: optie heeft een argument nodig -- {1} -getopt.invalidValue=Ongeldige waarde {0} voor parameter 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_no.properties b/lab2/gnu/getopt/MessagesBundle_no.properties deleted file mode 100755 index bcb8c50..0000000 --- a/lab2/gnu/getopt/MessagesBundle_no.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- Norwegian language error messages -/* -/* Copyright (c) 1999 by Bjørn-Ove Heimsund (s811@ii.uib.no) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: flagget ''{1}'' er flertydig -getopt.arguments1={0}: flagget ''--{1}'' tillater ikke et argument -getopt.arguments2={0}: flagget ''{1}{2}'' tillater ikke et argument -getopt.requires={0}: flagget ''{1}'' krever et argument -getopt.unrecognized={0}: ukjent flagg ''--{1}'' -getopt.unrecognized2={0}: ukjent flagg ''{1}{2}'' -getopt.illegal={0}: ugyldig flagg -- {1} -getopt.invalid={0}: ugyldig flagg -- {1} -getopt.requires2={0}: flagget krever et argument -- {1} -getopt.invalidValue=Ugyldig verdi {0} for parameter 'has_arg' - diff --git a/lab2/gnu/getopt/MessagesBundle_pl.properties b/lab2/gnu/getopt/MessagesBundle_pl.properties deleted file mode 100755 index 9580853..0000000 --- a/lab2/gnu/getopt/MessagesBundle_pl.properties +++ /dev/null @@ -1,36 +0,0 @@ -/************************************************************************** -/* MessagesBundle_pl.properties -- Polish language error messages -/* -/* Polish Messages Copyright (c) 2006 by Krzysztof Szyma?ski (sirch.s@gmail.com) -/* These messages are encoded in ISO-8859-2 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - - -getopt.ambigious={0}: opcja ''{1}''jest wieloznaczna -getopt.arguments1={0}: opcja ''--{1}'' nie akceptuje argumentu -getopt.arguments2={0}: opcja ''{1}{2}'' nie akceptuje argumentu -getopt.requires={0}: opcja ''{1}'' wymaga argumentu -getopt.unrecognized={0}: nierozpoznana opcja ''--{1}'' -getopt.unrecognized2={0}: nierozpoznana opcja ''{1}{2}'' -getopt.illegal={0}: nie dopuszczalna opcja --{1} -getopt.invalid={0}: b??dna opcja --{1} -getopt.requires2={0}: opcja --{1} oczekuje argumentu -getopt.invalidValue=Nie poprawna warto?? {0} argument 'has_arg' - - - diff --git a/lab2/gnu/getopt/MessagesBundle_ro.properties b/lab2/gnu/getopt/MessagesBundle_ro.properties deleted file mode 100755 index 3c0b08b..0000000 --- a/lab2/gnu/getopt/MessagesBundle_ro.properties +++ /dev/null @@ -1,34 +0,0 @@ -/************************************************************************** -/* MessagesBundle_fr.properties -- Romanian language error messages -/* -/* Copyright (c) 1999 Free Software Foundation, Inc. -/* Marian-Nicolae Ion , 2004, -/* These messages are encoded in ISO-8859-2 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your optiunea) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: opÅ£iunea ''{1}'' este ambiguă -getopt.arguments1={0}: opÅ£iunea ''--{1}'' nu acceptă parametru -getopt.arguments2={0}: opÅ£iunea ''{1}{2}'' nu acceptă parametru -getopt.requires={0}: opÅ£iunea ''{1}'' cere un parametru -getopt.unrecognized={0}: opÅ£iune necunoscută ''--{1}'' -getopt.unrecognized2={0}: opÅ£iune necunoscută ''{1}{2}'' -getopt.illegal={0}: opÅ£iune ilegală -- {1} -getopt.invalid={0}: opÅ£iune invalidă -- {1} -getopt.requires2={0}: această opÅ£iune cere un parametru -- {1} -getopt.invalidValue=Valoare invalidă {0} pentru parametrul 'has_arg' - diff --git a/lab2/gnu/getopt/README b/lab2/gnu/getopt/README deleted file mode 100755 index 48451f7..0000000 --- a/lab2/gnu/getopt/README +++ /dev/null @@ -1,57 +0,0 @@ -This is a Java port of the GNU getopt functions based on the versions -contained in glibc 2.0.6. I have attempted to keep the functionality -and programmer's interface as faithful to the original as possible. -However, due to differences between Java and C, some minor changes -has to me made. (Given the obtuse interface in the clib version, -perhaps some major changes should have been made). This should not -affect the way options appear to be parsed to the end user of program -that uses this Java getopt. The use of these classes are completely -documented in the javadoc comments, so I will not repeat that info here. - -Note that since these objects are part of a package called "gnu.getopt", -they need to be in a subdirectory called gnu/getopt somewhere in your -CLASSPATH. This includes the "MessagesBundle" files. - -I am not aware of any bugs. If you find one though, please send email -to me at arenn@urbanophile.com. The more detailed a bug report the better. -Bug fixes are also welcome at the same address. Please reference -release number "1.0.13". If you use this code, it would be helpful -if you let me know so that I can let you know if anything changes or -if any major bugs have been found/fixed. - -I have included a Makefile for compiling the code. If you do not have -access to make, then you can simply do a "javac *.java" at the OS -command line (or follow your vendor's instructions for compiling a -Java class). To build the documentation, do a "make docs" -or "javadoc -public *.java". Note that the images needed by the html -generated by javadoc are not included. You will need to get those -from some other Java documentation package. - -Note that the Makefile is not compliant with the GNU makefile -standards as I anticipate that at some point a master makefile will -be created for various GNU Java packages. And it is serious overkill -to create a megabloat makefile (kinda like this megabloat README) for -such a simple package. - -There is sample code showing how to use getopt available in the -GetoptDemo.java file. - -NEW: A support file for the "ant" build process was contributed. Here are -some brief things you can do with it. Note that I have not ever used this -so it is doubly AS IS. - -Get ant from jakarta project (see jakarta.apache.org/ant), and run it with -one of these target (all is default target): -ant prepare: create the needed directories -ant classes: compile the java classes -ant jar: create the jar archive -ant javadoc: create the javadoc -ant all: create jar and javadoc -ant clean: clean everything - -Happy hacking, - -Aaron. -arenn@urbanophile.com -http://www.urbanophile.com/arenn/ - diff --git a/lab2/gnu/getopt/buildx.xml b/lab2/gnu/getopt/buildx.xml deleted file mode 100755 index ad51e8f..0000000 --- a/lab2/gnu/getopt/buildx.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lab2/gnu/getopt/gnu.getopt.Getopt.html b/lab2/gnu/getopt/gnu.getopt.Getopt.html deleted file mode 100755 index 425de42..0000000 --- a/lab2/gnu/getopt/gnu.getopt.Getopt.html +++ /dev/null @@ -1,639 +0,0 @@ - - - - - - - Class gnu.getopt.Getopt - - - - -

-All Packages  Class Hierarchy  This Package  Previous  Next  Index
-
-

- Class gnu.getopt.Getopt -

-
-java.lang.Object
-   |
-   +----gnu.getopt.Getopt
-
-
-
-
public class Getopt -
extends Object -
-This is a Java port of GNU getopt, a class for parsing command line - arguments passed to programs. It it based on the C getopt() functions - in glibc 2.0.6 and should parse options in a 100% compatible manner. - If it does not, that is a bug. The programmer's interface is also - very compatible. -

- To use Getopt, create a Getopt object with a argv array passed to the - main method, then call the getopt() method in a loop. It will return an - int that contains the value of the option character parsed from the - command line. When there are no more options to be parsed, it - returns -1. -

- A command line option can be defined to take an argument. If an - option has an argument, the value of that argument is stored in an - instance variable called optarg, which can be accessed using the - getOptarg() method. If an option that requires an argument is - found, but there is no argument present, then an error message is - printed. Normally getopt() returns a '?' in this situation, but - that can be changed as described below. -

- If an invalid option is encountered, an error message is printed - to the standard error and getopt() returns a '?'. The value of the - invalid option encountered is stored in the instance variable optopt - which can be retrieved using the getOptopt() method. To suppress - the printing of error messages for this or any other error, set - the value of the opterr instance variable to false using the - setOpterr() method. -

- Between calls to getopt(), the instance variable optind is used to - keep track of where the object is in the parsing process. After all - options have been returned, optind is the index in argv of the first - non-option argument. This variable can be accessed with the getOptind() - method. -

- Note that this object expects command line options to be passed in the - traditional Unix manner. That is, proceeded by a '-' character. - Multiple options can follow the '-'. For example "-abc" is equivalent - to "-a -b -c". If an option takes a required argument, the value - of the argument can immediately follow the option character or be - present in the next argv element. For example, "-cfoo" and "-c foo" - both represent an option character of 'c' with an argument of "foo" - assuming c takes a required argument. If an option takes an argument - that is not required, then any argument must immediately follow the - option character in the same argv element. For example, if c takes - a non-required argument, then "-cfoo" represents option character 'c' - with an argument of "foo" while "-c foo" represents the option - character 'c' with no argument, and a first non-option argv element - of "foo". -

- The user can stop getopt() from scanning any further into a command line - by using the special argument "--" by itself. For example: - "-a -- -d" would return an option character of 'a', then return -1 - The "--" is discarded and "-d" is pointed to by optind as the first - non-option argv element. -

- Here is a basic example of using Getopt: -

-

- Getopt g = new Getopt("testprog", argv, "ab:c::d");
- //
- int c;
- String arg;
- while ((c = g.getopt()) != -1)
-   {
-     switch(c)
-       {
-          case 'a':
-          case 'd':
-            System.out.print("You picked " + (char)c + "\n");
-            break;
-            //
-          case 'b':
-          case 'c':
-            arg = g.getOptarg();
-            System.out.print("You picked " + (char)c + 
-                             " with an argument of " +
-                             ((arg != null) ? arg : "null") + "\n");
-            break;
-            //
-          case '?':
-            break; // getopt() already printed an error
-            //
-          default:
-            System.out.print("getopt() returned " + c + "\n");
-       }
-   }
- 
-

- In this example, a new Getopt object is created with three params. - The first param is the program name. This is for printing error - messages in the form "program: error message". In the C version, this - value is taken from argv[0], but in Java the program name is not passed - in that element, thus the need for this parameter. The second param is - the argument list that was passed to the main() method. The third - param is the list of valid options. Each character represents a valid - option. If the character is followed by a single colon, then that - option has a required argument. If the character is followed by two - colons, then that option has an argument that is not required. -

- Note in this example that the value returned from getopt() is cast to - a char prior to printing. This is required in order to make the value - display correctly as a character instead of an integer. -

- If the first character in the option string is a colon, for example - ":abc::d", then getopt() will return a ':' instead of a '?' when it - encounters an option with a missing required argument. This allows the - caller to distinguish between invalid options and valid options that - are simply incomplete. -

- In the traditional Unix getopt(), -1 is returned when the first non-option - charcter is encountered. In GNU getopt(), the default behavior is to - allow options to appear anywhere on the command line. The getopt() - method permutes the argument to make it appear to the caller that all - options were at the beginning of the command line, and all non-options - were at the end. For example, calling getopt() with command line args - of "-a foo bar -d" returns options 'a' and 'd', then sets optind to - point to "foo". The program would read the last two argv elements as - "foo" and "bar", just as if the user had typed "-a -d foo bar". -

- The user can force getopt() to stop scanning the command line with - the special argument "--" by itself. Any elements occuring before the - "--" are scanned and permuted as normal. Any elements after the "--" - are returned as is as non-option argv elements. For example, - "foo -a -- bar -d" would return option 'a' then -1. optind would point - to "foo", "bar" and "-d" as the non-option argv elements. The "--" - is discarded by getopt(). -

- There are two ways this default behavior can be modified. The first is - to specify traditional Unix getopt() behavior (which is also POSIX - behavior) in which scanning stops when the first non-option argument - encountered. (Thus "-a foo bar -d" would return 'a' as an option and - have "foo", "bar", and "-d" as non-option elements). The second is to - allow options anywhere, but to return all elements in the order they - occur on the command line. When a non-option element is ecountered, - an integer 1 is returned and the value of the non-option element is - stored in optarg is if it were the argument to that option. For - example, "-a foo -d", returns first 'a', then 1 (with optarg set to - "foo") then 'd' then -1. When this "return in order" functionality - is enabled, the only way to stop getopt() from scanning all command - line elements is to use the special "--" string by itself as described - above. An example is "-a foo -b -- bar", which would return 'a', then - integer 1 with optarg set to "foo", then 'b', then -1. optind would - then point to "bar" as the first non-option argv element. The "--" - is discarded. -

- The POSIX/traditional behavior is enabled by either setting the - property "gnu.posixly_correct" or by putting a '+' sign as the first - character of the option string. The difference between the two - methods is that setting the gnu.posixly_correct property also forces - certain error messages to be displayed in POSIX format. To enable - the "return in order" functionality, put a '-' as the first character - of the option string. Note that after determining the proper - behavior, Getopt strips this leading '+' or '-', meaning that a ':' - placed as the second character after one of those two will still cause - getopt() to return a ':' instead of a '?' if a required option - argument is missing. -

- In addition to traditional single character options, GNU Getopt also - supports long options. These are preceeded by a "--" sequence and - can be as long as desired. Long options provide a more user-friendly - way of entering command line options. For example, in addition to a - "-h" for help, a program could support also "--help". -

- Like short options, long options can also take a required or non-required - argument. Required arguments can either be specified by placing an - equals sign after the option name, then the argument, or by putting the - argument in the next argv element. For example: "--outputdir=foo" and - "--outputdir foo" both represent an option of "outputdir" with an - argument of "foo", assuming that outputdir takes a required argument. - If a long option takes a non-required argument, then the equals sign - form must be used to specify the argument. In this case, - "--outputdir=foo" would represent option outputdir with an argument of - "foo" while "--outputdir foo" would represent the option outputdir - with no argument and a first non-option argv element of "foo". -

- Long options can also be specified using a special POSIX argument - format (one that I highly discourage). This form of entry is - enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid - option string. This causes getopt to treat the name following the - "-W" as the name of the long option. For example, "-W outputdir=foo" - would be equivalent to "--outputdir=foo". The name can immediately - follow the "-W" like so: "-Woutputdir=foo". Option arguments are - handled identically to normal long options. If a string follows the - "-W" that does not represent a valid long option, then getopt() returns - 'W' and the caller must decide what to do. Otherwise getopt() returns - a long option value as described below. -

- While long options offer convenience, they can also be tedious to type - in full. So it is permissible to abbreviate the option name to as - few characters as required to uniquely identify it. If the name can - represent multiple long options, then an error message is printed and - getopt() returns a '?'. -

- If an invalid option is specified or a required option argument is - missing, getopt() prints an error and returns a '?' or ':' exactly - as for short options. Note that when an invalid long option is - encountered, the optopt variable is set to integer 0 and so cannot - be used to identify the incorrect option the user entered. -

- Long options are defined by LongOpt objects. These objects are created - with a contructor that takes four params: a String representing the - object name, a integer specifying what arguments the option takes - (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, - or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described - below), and an integer value (described below). -

- To enable long option parsing, create an array of LongOpt's representing - the legal options and pass it to the Getopt() constructor. WARNING: If - all elements of the array are not populated with LongOpt objects, the - getopt() method will throw a NullPointerException. -

- When getopt() is called and a long option is encountered, one of two - things can be returned. If the flag field in the LongOpt object - representing the long option is non-null, then the integer value field - is stored there and an integer 0 is returned to the caller. The val - field can then be retrieved from the flag field. Note that since the - flag field is a StringBuffer, the appropriate String to integer converions - must be performed in order to get the actual int value stored there. - If the flag field in the LongOpt object is null, then the value field - of the LongOpt is returned. This can be the character of a short option. - This allows an app to have both a long and short option sequence - (say, "-h" and "--help") that do the exact same thing. -

- With long options, there is an alternative method of determining - which option was selected. The method getLongind() will return the - the index in the long option array (NOT argv) of the long option found. - So if multiple long options are configured to return the same value, - the application can use getLongind() to distinguish between them. -

- Here is an expanded Getopt example using long options and various - techniques described above: -

-

- int c;
- String arg;
- LongOpt[] longopts = new LongOpt[3];
- // 
- StringBuffer sb = new StringBuffer();
- longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
- longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
- longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
- // 
- Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
- g.setOpterr(false); // We'll do our own error handling
- //
- while ((c = g.getopt()) != -1)
-   switch (c)
-     {
-        case 0:
-          arg = g.getOptarg();
-          System.out.println("Got long option with value '" +
-                             (char)(new Integer(sb.toString())).intValue()
-                             + "' with argument " +
-                             ((arg != null) ? arg : "null"));
-          break;
-          //
-        case 1:
-          System.out.println("I see you have return in order set and that " +
-                             "a non-option argv element was just found " +
-                             "with the value '" + g.getOptarg() + "'");
-          break;
-          //
-        case 2:
-          arg = g.getOptarg();
-          System.out.println("I know this, but pretend I didn't");
-          System.out.println("We picked option " +
-                             longopts[g.getLongind()].getName() +
-                           " with value " + 
-                           ((arg != null) ? arg : "null"));
-          break;
-          //
-        case 'b':
-          System.out.println("You picked plain old option " + (char)c);
-          break;
-          //
-        case 'c':
-        case 'd':
-          arg = g.getOptarg();
-          System.out.println("You picked option '" + (char)c + 
-                             "' with argument " +
-                             ((arg != null) ? arg : "null"));
-          break;
-          //
-        case 'h':
-          System.out.println("I see you asked for help");
-          break;
-          //
-        case 'W':
-          System.out.println("Hmmm. You tried a -W with an incorrect long " +
-                             "option name");
-          break;
-          //
-        case ':':
-          System.out.println("Doh! You need an argument for option " +
-                             (char)g.getOptopt());
-          break;
-          //
-        case '?':
-          System.out.println("The option '" + (char)g.getOptopt() + 
-                           "' is not valid");
-          break;
-          //
-        default:
-          System.out.println("getopt() returned " + c);
-          break;
-     }
- //
- for (int i = g.getOptind(); i < argv.length ; i++)
-   System.out.println("Non option argv element: " + argv[i] + "\n");
- 
-

- There is an alternative form of the constructor used for long options - above. This takes a trailing boolean flag. If set to false, Getopt - performs identically to the example, but if the boolean flag is true - then long options are allowed to start with a single '-' instead of - "--". If the first character of the option is a valid short option - character, then the option is treated as if it were the short option. - Otherwise it behaves as if the option is a long option. Note that - the name given to this option - long_only - is very counter-intuitive. - It does not cause only long options to be parsed but instead enables - the behavior described above. -

- Note that the functionality and variable names used are driven from - the C lib version as this object is a port of the C code, not a - new implementation. This should aid in porting existing C/C++ code, - as well as helping programmers familiar with the glibc version to - adapt to the Java version even if it seems very non-Java at times. -

- In this release I made all instance variables protected due to - overwhelming public demand. Any code which relied on optarg, - opterr, optind, or optopt being public will need to be modified to - use the appropriate access methods. -

- Please send all bug reports, requests, and comments to - arenn@urbanophile.com. -

-

-
Version: -
1.0.3 -
Author: -
Roland McGrath (roland@gnu.ai.mit.edu), Ulrich Drepper (drepper@cygnus.com), Aaron M. Renn (arenn@urbanophile.com) -
See Also: -
LongOpt -
-
- -

- Constructor Index -

-
-
 o - Getopt(String, String[], String) -
Construct a basic Getopt instance with the given input data. -
 o - Getopt(String, String[], String, LongOpt[]) -
Construct a Getopt instance with given input data that is capable of - parsing long options as well as short. -
 o - Getopt(String, String[], String, LongOpt[], boolean) -
Construct a Getopt instance with given input data that is capable of - parsing long options and short options. -
-

- Method Index -

-
-
 o - getLongind() -
Returns the index into the array of long options (NOT argv) representing - the long option that was found. -
 o - getopt() -
This method returns a char that is the current option that has been - parsed from the command line. -
 o - getOptarg() -
- For communication from `getopt' to the caller. -
 o - getOptind() -
optind it the index in ARGV of the next element to be scanned. -
 o - getOptopt() -
When getopt() encounters an invalid option, it stores the value of that - option in optopt which can be retrieved with this method. -
 o - setArgv(String[]) -
Since in GNU getopt() the argument vector is passed back in to the - function every time, the caller can swap out argv on the fly. -
 o - setOpterr(boolean) -
Normally Getopt will print a message to the standard error when an - invalid option is encountered. -
 o - setOptind(int) -
This method allows the optind index to be set manually. -
 o - setOptstring(String) -
In GNU getopt, it is possible to change the string containg valid options - on the fly because it is passed as an argument to getopt() each time. -
- -

- Constructors -

- - o -Getopt -
- public Getopt(String progname,
-               String argv[],
-               String optstring)
-
-
-
Construct a basic Getopt instance with the given input data. Note that - this handles "short" options only. -

-

-
Parameters: -
progname - The name to display as the program name when printing errors -
argv - The String array passed as the command line to the program. -
optstring - A String containing a description of the valid args for this program -
-
- o -Getopt -
- public Getopt(String progname,
-               String argv[],
-               String optstring,
-               LongOpt long_options[])
-
-
-
Construct a Getopt instance with given input data that is capable of - parsing long options as well as short. -

-

-
Parameters: -
progname - The name to display as the program name when printing errors -
argv - The String array passed as the command ilne to the program -
optstring - A String containing a description of the valid short args for this program -
long_options - An array of LongOpt objects that describes the valid long args for this program -
-
- o -Getopt -
- public Getopt(String progname,
-               String argv[],
-               String optstring,
-               LongOpt long_options[],
-               boolean long_only)
-
-
-
Construct a Getopt instance with given input data that is capable of - parsing long options and short options. Contrary to what you might - think, the flag 'long_only' does not determine whether or not we - scan for only long arguments. Instead, a value of true here allows - long arguments to start with a '-' instead of '--' unless there is a - conflict with a short option name. -

-

-
Parameters: -
progname - The name to display as the program name when printing errors -
argv - The String array passed as the command ilne to the program -
optstring - A String containing a description of the valid short args for this program -
long_options - An array of LongOpt objects that describes the valid long args for this program -
long_only - true if long options that do not conflict with short options can start with a '-' as well as '--' -
-
- -

- Methods -

- o -setOptstring -
- public void setOptstring(String optstring)
-
-
-
In GNU getopt, it is possible to change the string containg valid options - on the fly because it is passed as an argument to getopt() each time. In - this version we do not pass the string on every call. In order to allow - dynamic option string changing, this method is provided. -

-

-
Parameters: -
optstring - The new option string to use -
-
- o -getOptind -
- public int getOptind()
-
-
-
optind it the index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. -

-

- o -setOptind -
- public void setOptind(int optind)
-
-
-
This method allows the optind index to be set manually. Normally this - is not necessary (and incorrect usage of this method can lead to serious - lossage), but optind is a public symbol in GNU getopt, so this method - was added to allow it to be modified by the caller if desired. -

-

-
Parameters: -
optind - The new value of optind -
-
- o -setArgv -
- public void setArgv(String argv[])
-
-
-
Since in GNU getopt() the argument vector is passed back in to the - function every time, the caller can swap out argv on the fly. Since - passing argv is not required in the Java version, this method allows - the user to override argv. Note that incorrect use of this method can - lead to serious lossage. -

-

-
Parameters: -
argv - New argument list -
-
- o -getOptarg -
- public String getOptarg()
-
-
-
For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. - No set method is provided because setting this variable has no effect. -

-

- o -setOpterr -
- public void setOpterr(boolean opterr)
-
-
-
Normally Getopt will print a message to the standard error when an - invalid option is encountered. This can be suppressed (or re-enabled) - by calling this method. There is no get method for this variable - because if you can't remember the state you set this to, why should I? -

-

- o -getOptopt -
- public int getOptopt()
-
-
-
When getopt() encounters an invalid option, it stores the value of that - option in optopt which can be retrieved with this method. There is - no corresponding set method because setting this variable has no effect. -

-

- o -getLongind -
- public int getLongind()
-
-
-
Returns the index into the array of long options (NOT argv) representing - the long option that was found. -

-

- o -getopt -
- public int getopt()
-
-
-
This method returns a char that is the current option that has been - parsed from the command line. If the option takes an argument, then - the internal variable 'optarg' is set which is a String representing - the the value of the argument. This value can be retrieved by the - caller using the getOptarg() method. If an invalid option is found, - an error message is printed and a '?' is returned. The name of the - invalid option character can be retrieved by calling the getOptopt() - method. When there are no more options to be scanned, this method - returns -1. The index of first non-option element in argv can be - retrieved with the getOptind() method. -

-

-
Returns: -
Various things as described above -
-
-
-
-All Packages  Class Hierarchy  This Package  Previous  Next  Index
- - diff --git a/lab2/gnu/getopt/gnu.getopt.LongOpt.html b/lab2/gnu/getopt/gnu.getopt.LongOpt.html deleted file mode 100755 index ddc1186..0000000 --- a/lab2/gnu/getopt/gnu.getopt.LongOpt.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - Class gnu.getopt.LongOpt - - - - -
-All Packages  Class Hierarchy  This Package  Previous  Next  Index
-
-

- Class gnu.getopt.LongOpt -

-
-java.lang.Object
-   |
-   +----gnu.getopt.LongOpt
-
-
-
-
public class LongOpt -
extends Object -
-This object represents the definition of a long option in the Java port - of GNU getopt. An array of LongOpt objects is passed to the Getopt - object to define the list of valid long options for a given parsing - session. Refer to the getopt documentation for details on the - format of long options. -

-

-
Version: -
1.0.3 -
Author: -
Aaron M. Renn (arenn@urbanophile.com) -
See Also: -
Getopt -
-
- -

- Variable Index -

-
-
 o - NO_ARGUMENT -
Constant value used for the "has_arg" constructor argument. -
 o - OPTIONAL_ARGUMENT -
Constant value used for the "has_arg" constructor argument. -
 o - REQUIRED_ARGUMENT -
- Constant value used for the "has_arg" constructor argument. -
-

- Constructor Index -

-
-
 o - LongOpt(String, int, StringBuffer, int) -
Create a new LongOpt object with the given parameter values. -
-

- Method Index -

-
-
 o - getFlag() -
Returns the value of the 'flag' field for this long option - - -
 o - getHasArg() -
Returns the value set for the 'has_arg' field for this long option - - -
 o - getName() -
Returns the name of this LongOpt as a String - - -
 o - getVal() -
Returns the value of the 'val' field for this long option - - -
- -

- Variables -

- o -NO_ARGUMENT -
- public static final int NO_ARGUMENT
-
-
-
Constant value used for the "has_arg" constructor argument. This - value indicates that the option takes no argument.

-

- o -REQUIRED_ARGUMENT -
- public static final int REQUIRED_ARGUMENT
-
-
-
Constant value used for the "has_arg" constructor argument. This - value indicates that the option takes an argument that is required.

-

- o -OPTIONAL_ARGUMENT -
- public static final int OPTIONAL_ARGUMENT
-
-
-
Constant value used for the "has_arg" constructor argument. This - value indicates that the option takes an argument that is optional.

-

- -

- Constructors -

- - o -LongOpt -
- public LongOpt(String name,
-                int has_arg,
-                StringBuffer flag,
-                int val) throws IllegalArgumentException
-
-
-
Create a new LongOpt object with the given parameter values. If the - value passed as has_arg is not valid, then an exception is thrown. -

-

-
Parameters: -
name - The long option String. -
has_arg - Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). -
flag - If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. -
val - The value to return for this long option, or the equivalent single letter option to emulate if flag is null. -
Throws: IllegalArgumentException -
If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. -
-
- -

- Methods -

- o -getName -
- public String getName()
-
-
-
Returns the name of this LongOpt as a String -

-

-
Returns: -
Then name of the long option -
-
- o -getHasArg -
- public int getHasArg()
-
-
-
Returns the value set for the 'has_arg' field for this long option -

-

-
Returns: -
The value of 'has_arg' -
-
- o -getFlag -
- public StringBuffer getFlag()
-
-
-
Returns the value of the 'flag' field for this long option -

-

-
Returns: -
The value of 'flag' -
-
- o -getVal -
- public int getVal()
-
-
-
Returns the value of the 'val' field for this long option -

-

-
Returns: -
The value of 'val' -
-
-
-
-All Packages  Class Hierarchy  This Package  Previous  Next  Index
- - diff --git a/lab2/jax/MD5.class b/lab2/jax/MD5.class deleted file mode 100644 index 551f55f27677a8c73e480ea6e6bbbaac7ddd3b57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmaJ;O;5r=5Pd^|BBFu_it%8KF?z8F%luxwNbR{QdlaBz4#@}`~>czWo#aisLHdGuQ%6t8AJ zk7E^TV`GER=uLF29{Elg)epF(br^eTm{3a%X3przIQQIdbNmnvn&RPxlgQ_56)>S7 z{g0F0g!=bDBX z{}}A2C1PXsx)+4<;vG8u5&JQrx{yA%x3NjsO#<`%evUPFC2aqlk|z){@*4nUr9HC3 ra>BBr=V1%V3o6KMVM)#mim6%=v@EnIB?3SC7FYiErQ5H)>} diff --git a/lab2/jax/MD5.java b/lab2/jax/MD5.java deleted file mode 100644 index d9a0e59..0000000 --- a/lab2/jax/MD5.java +++ /dev/null @@ -1,13 +0,0 @@ -import javax.jws.WebMethod; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.jws.soap.SOAPBinding.Style; - -//Service Endpoint Interface -@WebService -@SOAPBinding(style = Style.RPC) -public interface MD5{ - - @WebMethod String MD5(String text) throws Exception; - -} \ No newline at end of file diff --git a/lab2/jax/MD5Client.class b/lab2/jax/MD5Client.class deleted file mode 100644 index 8b8b907756fc153d4d60ebd8cc6a0baa6f0bd17b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmaJhA>f?QmZS6kBefb_RY|MSFJFqeu5`HxQVv zeP|un$F}9!LC@;MksI{35@5a)+s_^K7~iI^>MSY*|7Zmrp3%Re&6e;=-73XiDj%vteRNEIve*7Ps5B%YXfiVcCOtNvb{II17JVPN7}QYHJZw!p2cw71;@<-|mextl=whSqqUo{InU zxf@0#sn+VP8xUL9DtAtgV&zl(a6oA3x3q3(?NZm6>MGkOAVo0*mTF^^|KIgjfa@#* zvY&8zoMCAk5l2`YWsK&y7uk-&9CCb7$)|x6MuBUQr&(G-JF$EYamEer#5Fx~>U>?d zG0A9l#m8~qW$`qs1&@SjqN!*brNuGtoU7cL_7}aq964M>7fB*mh diff --git a/lab2/jax/MD5Client.java b/lab2/jax/MD5Client.java deleted file mode 100644 index 4330699..0000000 --- a/lab2/jax/MD5Client.java +++ /dev/null @@ -1,19 +0,0 @@ -import localhost._8080.md5.MD5Impl; -import localhost._8080.md5.MD5ImplService; - -public class MD5Client{ - - public static void main(String[] args) { - - MD5ImplService md5Service = new MD5ImplService(); - MD5Impl md5 = md5Service.getMD5ImplPort(); - try{ - System.out.println(md5.md5("mkyong")); - } - catch(Exception e){ - e.printStackTrace(); - } - - } - -} \ No newline at end of file diff --git a/lab2/jax/MD5Impl.class b/lab2/jax/MD5Impl.class deleted file mode 100644 index 1fef4a142af2d97ba3dd129a22110c50729388fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1116 zcmZ`&+foxj5IvL2P7)R&K+ph+7cLtJEQlZmLD5$JjOWl3^9~tgM<=aVGKq5<_!V8u?eNhV7+$e3Kkg9Ji@1 zhRD)hUf9yCSPsWD#o0=&nitEaOQjN3rfio+T`Gq7vzjH%vRF4AlS-MltcoeOg|qX`K+wVdNk5JOCByhkx?TUZ5#-O1-dlU ze7ZqC@^tEC+bOzCo{gIJ&*3 fhg5w>f&_xx7j z0te&RX}YG|Re@^nPRo=HUpaaqn2llNsHuHr%Zl<8`EF|M_#$}s80Ol7E#9&%URAor z#rrEiv8_$hr1>1TeASTjvFN3+nq=`h=|5d>J-d55rEP|pznwblh!!>(B;Nl(xZygD zL$@Z~B;x2wB8nJ8&T>p)ojab-&x(u1MQ+!Y`KPY*$6gMr7t-`GMH`IJMrk2|1feit zQlyxmTaGfL9G$%fyJ-^*im`Tal43WK6u(k$5xV|HohMQcdOOrJava class for Exception complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="Exception">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Exception", propOrder = { - "message" -}) -public class Exception { - - protected String message; - - /** - * Gets the value of the message property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMessage() { - return message; - } - - /** - * Sets the value of the message property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMessage(String value) { - this.message = value; - } - -} diff --git a/lab2/jax/localhost/_8080/md5/Exception_Exception.class b/lab2/jax/localhost/_8080/md5/Exception_Exception.class deleted file mode 100644 index f99975ef6fbac2895af1fb1c57a9b1d56eb528cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmb7CT~8W86g|VIz_!>TRjeQNsj|=xiINa$OiZnb3H6~8`$z^{VVd1pvO6e0t4%Z} zKJ*9lM>XDAo5cr=>C45QS0Aej zpJB7(`UByP{7~~=tI=w3@4U&sOb5{Z0*iP>c9Ej5=~fD{gmQ>C_wqKy#Q*>R diff --git a/lab2/jax/localhost/_8080/md5/Exception_Exception.java b/lab2/jax/localhost/_8080/md5/Exception_Exception.java deleted file mode 100644 index 81ea9b1..0000000 --- a/lab2/jax/localhost/_8080/md5/Exception_Exception.java +++ /dev/null @@ -1,54 +0,0 @@ - -package localhost._8080.md5; - -import javax.xml.ws.WebFault; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebFault(name = "Exception", targetNamespace = "http://localhost:8080/MD5") -public class Exception_Exception - extends java.lang.Exception -{ - - /** - * Java type that goes as soapenv:Fault detail element. - * - */ - private localhost._8080.md5.Exception faultInfo; - - /** - * - * @param message - * @param faultInfo - */ - public Exception_Exception(String message, localhost._8080.md5.Exception faultInfo) { - super(message); - this.faultInfo = faultInfo; - } - - /** - * - * @param message - * @param faultInfo - * @param cause - */ - public Exception_Exception(String message, localhost._8080.md5.Exception faultInfo, Throwable cause) { - super(message, cause); - this.faultInfo = faultInfo; - } - - /** - * - * @return - * returns fault bean: localhost._8080.md5.Exception - */ - public localhost._8080.md5.Exception getFaultInfo() { - return faultInfo; - } - -} diff --git a/lab2/jax/localhost/_8080/md5/MD5.class b/lab2/jax/localhost/_8080/md5/MD5.class deleted file mode 100644 index be021c56be0e2843c2470528e1ebd3e6ebab54d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmaixX-fk!5Qg9MT3f5F^}dS7m)fE!h~R}#JV2-xv=qS)l5Rsy+0B;St?0i}Py|2t z1N>3qbiMFE3Cv6;&%859o}M2b0W2e%Km-$UgfVGg%D^;3M7Yf&L#Esk7lK*h;1sZ{4IuXZlOl#w$qRdsj|}Yuw&PyTNQPSGDcJSr9fsVxA2>g;k^UHxu54< z?ZmOuaZS0Wx_UhaJ1a}wc^JlzI@(vZtSL`Xuaee|FMQ=_kD(AqUGhuY;&r7PTzs7J z6Wc18ru00=tzNYyT_$=VtPY944){;id(GbdZh41c{_jq2bVLiA8iZ+jhIrd`+7-7U z-6Rb3BoRf7VbpR=VVygk&(Btit3_@%R(QatKi|JnZ%Na~EPYdizKtHfTTD@yV$vcT zr`OqMi3}b}0qaMaEehTIx`U1}tiY@>E diff --git a/lab2/jax/localhost/_8080/md5/MD5.java b/lab2/jax/localhost/_8080/md5/MD5.java deleted file mode 100644 index 746c01e..0000000 --- a/lab2/jax/localhost/_8080/md5/MD5.java +++ /dev/null @@ -1,60 +0,0 @@ - -package localhost._8080.md5; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for MD5 complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="MD5">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "MD5", propOrder = { - "arg0" -}) -public class MD5 { - - protected String arg0; - - /** - * Gets the value of the arg0 property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArg0() { - return arg0; - } - - /** - * Sets the value of the arg0 property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArg0(String value) { - this.arg0 = value; - } - -} diff --git a/lab2/jax/localhost/_8080/md5/MD5Client.java b/lab2/jax/localhost/_8080/md5/MD5Client.java deleted file mode 100644 index 1af5113..0000000 --- a/lab2/jax/localhost/_8080/md5/MD5Client.java +++ /dev/null @@ -1,15 +0,0 @@ -import localhost._8080.md5.MD5Impl; -import localhost._8080.md5.MD5ImplService; - -public class MD5Client{ - - public static void main(String[] args) { - - MD5ImplService md5Service = new MD5ImplService(); - MD5Impl md5 = md5Service.getMD5ImplPort(); - - System.out.println(md5.MD5("mkyong")); - - } - -} \ No newline at end of file diff --git a/lab2/jax/localhost/_8080/md5/MD5Impl.class b/lab2/jax/localhost/_8080/md5/MD5Impl.class deleted file mode 100644 index 85bf6b15177fa9969c64d513c30ba996eaea8c45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1172 zcma)5YflqF6g^Y>usnn+4+~Nh6sSU{i6J5I#U|Rs1k|*Nm}o+#+mUXwFL!2Z{cC>k z2l%6mcW2AiVoCVWbmq>v=bn4^-rs+I{sQn42L(JY;041Sw|mI2vv=AT1Hm2PUGlaL zZSV4=`hSRF=FQNOfwp~56|m1xZbhE9UHQ>gcE^zo&-1k~&kW0kV95L56+f4qGpT!i z_k>~I4`gUS?}RH!!r5z*a1Gs(DsnWT7qkd3rH-L05EkLVurZ<@x(+Aymi!h;rO!hV z5H%$g9p4g8LSOD_9UOCRLOoyUdfotvUX%MnT?xYZO;yND4ra;9cbmFv}1K>f>c zxmkjdU=wB7yn$$pxaxHzzhT9Wk?fr91(9ahzfp25`>h)|@&Bl6hP)qXlXq~-yep-- zuYycwSetCH8Anr5)zh>eZj9k%3{U6aB0a?o41^QWCpx^95N-;MsTj5<$LWIz>9cDY zPR!NP16XyuG5yX;V7R{wx_!DzSEbMZVF5L;SWNsPqQ#Bwm9CsB#~ivT0-jd*z-K2 zZOG6{(^h0@m5`-hj&50s=TV^37rNi2TTx*KvvinKn8!WBEyNMJEuy4w9}kkyQW{#u z3WZh`9-^$UhV{>2ukeWKl`L$aqOgg_RG}1$ctYVVh3$ksgQxV6!80QvPT5J`cN6wK K%BT>Xh3a276-8|T diff --git a/lab2/jax/localhost/_8080/md5/MD5Impl.java b/lab2/jax/localhost/_8080/md5/MD5Impl.java deleted file mode 100644 index d37401b..0000000 --- a/lab2/jax/localhost/_8080/md5/MD5Impl.java +++ /dev/null @@ -1,48 +0,0 @@ - -package localhost._8080.md5; - -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.ws.Action; -import javax.xml.ws.FaultAction; -import javax.xml.ws.RequestWrapper; -import javax.xml.ws.ResponseWrapper; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebService(name = "MD5Impl", targetNamespace = "http://localhost:8080/MD5") -@XmlSeeAlso({ - ObjectFactory.class -}) -public interface MD5Impl { - - - /** - * - * @param arg0 - * @return - * returns java.lang.String - * @throws Exception_Exception - */ - @WebMethod(operationName = "MD5") - @WebResult(targetNamespace = "") - @RequestWrapper(localName = "MD5", targetNamespace = "http://localhost:8080/MD5", className = "localhost._8080.md5.MD5") - @ResponseWrapper(localName = "MD5Response", targetNamespace = "http://localhost:8080/MD5", className = "localhost._8080.md5.MD5Response") - @Action(input = "http://localhost:8080/MD5/MD5Impl/MD5Request", output = "http://localhost:8080/MD5/MD5Impl/MD5Response", fault = { - @FaultAction(className = Exception_Exception.class, value = "http://localhost:8080/MD5/MD5Impl/MD5/Fault/Exception") - }) - public String md5( - @WebParam(name = "arg0", targetNamespace = "") - String arg0) - throws Exception_Exception - ; - -} diff --git a/lab2/jax/localhost/_8080/md5/MD5ImplService.class b/lab2/jax/localhost/_8080/md5/MD5ImplService.class deleted file mode 100644 index e47e3b39fc41605f32255d42014f76165d8a0079..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2282 zcmb7FTT|Os5dMyFkS&b41wtT!aE-AEBBTU@DVG@2P-JeV5GD^EVN_5m%N|PvUi%CB zGy2-VgF9uW=~Ey2quTDu8rL>%Lp|e_yl20?e7k%6$DhCa3g89yWpraPNa9NwJy>F~ zEMX;pR{_Li+{3Db*Q`yjSYyj1i}e8JBzzS>Tt*w-NZ63@wTv!oN>C-F1RkZc?rl_`%5P$;+%>aE!b~`1^JE-L2JBQlP&IYiT*%E@)X@+1;X70yQrhmf1qol*WbhR_piA ziunt^yy#-W5Z%~4bm2FlkK0CXecVI$Ni#xE8G<+;AUR0Co|2`YXG`>Fh%5L?X!=M$ zsdFS{_((?S8N>Gk8uCC9_}!C`2a1*8uSZRx1q#_e#;}JPqfqQG7>zX!G=l*BQE{LV z4>C@Hnm7>`GT9)^O9V0Jh8guRBZOd#6paz!Ry7M~M%)cD<^e`2h@Suf0z7LFVhIwK z$#$H`^0}l<(Z3~=))T$Ky`#?NPN{@I7lI|ozajV&os{`&cCFqZLYfwOpP+BlcF7#a zq~}Z_XH3h3I%h;`O9OBFx4p@H1(0j*Cv(A{@D)P8Ln8U<3ay-y&uwYg<>oDsa71l= zM=j!65i(IfT^WiWJlbcx^1@W!HGE=Is5fXk>TEBeWAjI}rf$%6L?qu=qt|GST_g07 z!gtb`4U#Mefeatures parameter will have their default values. - * @return - * returns MD5Impl - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5Impl getMD5ImplPort(WebServiceFeature... features) { - return super.getPort(new QName("http://localhost:8080/MD5", "MD5ImplPort"), MD5Impl.class, features); - } - - private static URL __getWsdlLocation() { - if (MD5IMPLSERVICE_EXCEPTION!= null) { - throw MD5IMPLSERVICE_EXCEPTION; - } - return MD5IMPLSERVICE_WSDL_LOCATION; - } - -} diff --git a/lab2/jax/localhost/_8080/md5/MD5Response.class b/lab2/jax/localhost/_8080/md5/MD5Response.class deleted file mode 100644 index 13a887b80f714fda96d37efa59fcfadeb6d4017e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 zcmaJPDqbxgjX74%Yo;!EH|M>b1z;isRp@@f7Oklo(g$fo0D#uQT%vph{ z_K7-GGFG-P4}vqczbP=+$!su*J~G~PW4&!{8dNZ;^#ad^gfn@T#IkE_PpV&8`8J7n zW1VOlC{na4(E{bmO64tMO?V+N(ONoU`eoW<`c~Um{U%Gg+8rv^5~%id=#1RWw3hzm zuj zu=C&UFIbnHy;r;K9f7CUR~n(~zggrZ3|u(*s z$)vX~ukf1VY3_GVbQJKIb1(8g;Em@Zj1`{hjFWt;9yJ0)UWDrnrsf$1V`=#d#K$4? zCfA$^s&Qm!a=i-ugu;hEppu~5m>NN!pumSR%PXHz7|Yg%UpHxOi@Rwe3YZyMT;Oh& V>^mBFaSwAm((Qdbcn9H8`U$i}s(Ana diff --git a/lab2/jax/localhost/_8080/md5/MD5Response.java b/lab2/jax/localhost/_8080/md5/MD5Response.java deleted file mode 100644 index a1ff2cd..0000000 --- a/lab2/jax/localhost/_8080/md5/MD5Response.java +++ /dev/null @@ -1,62 +0,0 @@ - -package localhost._8080.md5; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for MD5Response complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="MD5Response">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="return" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "MD5Response", propOrder = { - "_return" -}) -public class MD5Response { - - @XmlElement(name = "return") - protected String _return; - - /** - * Gets the value of the return property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReturn() { - return _return; - } - - /** - * Sets the value of the return property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReturn(String value) { - this._return = value; - } - -} diff --git a/lab2/jax/localhost/_8080/md5/ObjectFactory.class b/lab2/jax/localhost/_8080/md5/ObjectFactory.class deleted file mode 100644 index 0d9e0bbf8c38ea2d5e9a8c424cedec2778ad8853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2032 zcmbtVT~pIQ6g>;2O+$fF5ClQ2sI;I2LMMJ5fI5++TVCUxLn`SH*h znehksqa5!|+Z0O*Gt!6My?4(&d-mS!?e9N7e*u_7Mn*qghp-@{jps!f0iNH;2=crX zMjui#BrNmlEe|UptV&2qn3B1U2nwCb+lvSAs{ia>iJxi1jdC?4wq zJzIvQ@01HUz4S@Vne5R@y6Wg&yg)pW+%k)rYMvBrM>$%YS)5S{$McE@Ar;|j6iFey zE%3BS$X*Xw7cDT}I-(Au$c2Qj45m$9Nm0(Qj+OUo2kRMAFX)!T>h_Ghr8?yj-7oup zEXys=UZDeqvSrIL3i`fb8Y}TfFyUIbqtf@@vn#oGN0u$+p2?0&o3~Yps?Er;+60M(1dL77^UT087}2V31e$F+ks3Bf$F-tF4BiX=(<3 zXa17~fhdzGrfTJt>W=&BS~92Hd{yxqrfS9j6W0-GEt6{#gJJYpkmOytWFLf`n;xr4IJ0>d--)JE)LL+x~V4QmU6Y`AWA&m@w zM1F=#muNezp#3YYs}VuhKSkphp{}6=gzjiY&k-(;$Jfz8LWi2sDVKYkuEt6d^nb$| zqnD5lza!j-fS9U4ZjMUR4M51Jc*bbrm>?@*BZ)~HtT&G5{+ykC2>Nnv*EnDJa!wQH zC=`FrNFUmKIrnRvGrpX&RJNC1(LPXJ_&0TluESV&tfzwL4}@!0uWNPIte9&>8l~+f ZVW1RtQ=vylXdC^jbAn#E2Xh(cfxn?!<<$TH diff --git a/lab2/jax/localhost/_8080/md5/ObjectFactory.java b/lab2/jax/localhost/_8080/md5/ObjectFactory.java deleted file mode 100644 index 36e539c..0000000 --- a/lab2/jax/localhost/_8080/md5/ObjectFactory.java +++ /dev/null @@ -1,89 +0,0 @@ - -package localhost._8080.md5; - -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.namespace.QName; - - -/** - * This object contains factory methods for each - * Java content interface and Java element interface - * generated in the localhost._8080.md5 package. - *

An ObjectFactory allows you to programatically - * construct new instances of the Java representation - * for XML content. The Java representation of XML - * content can consist of schema derived interfaces - * and classes representing the binding of schema - * type definitions, element declarations and model - * groups. Factory methods for each of these are - * provided in this class. - * - */ -@XmlRegistry -public class ObjectFactory { - - private final static QName _MD5_QNAME = new QName("http://localhost:8080/MD5", "MD5"); - private final static QName _MD5Response_QNAME = new QName("http://localhost:8080/MD5", "MD5Response"); - private final static QName _Exception_QNAME = new QName("http://localhost:8080/MD5", "Exception"); - - /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: localhost._8080.md5 - * - */ - public ObjectFactory() { - } - - /** - * Create an instance of {@link Exception } - * - */ - public Exception createException() { - return new Exception(); - } - - /** - * Create an instance of {@link MD5 } - * - */ - public MD5 createMD5() { - return new MD5(); - } - - /** - * Create an instance of {@link MD5Response } - * - */ - public MD5Response createMD5Response() { - return new MD5Response(); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link MD5 }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "MD5") - public JAXBElement createMD5(MD5 value) { - return new JAXBElement(_MD5_QNAME, MD5 .class, null, value); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link MD5Response }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "MD5Response") - public JAXBElement createMD5Response(MD5Response value) { - return new JAXBElement(_MD5Response_QNAME, MD5Response.class, null, value); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://localhost:8080/MD5", name = "Exception") - public JAXBElement createException(Exception value) { - return new JAXBElement(_Exception_QNAME, Exception.class, null, value); - } - -} diff --git a/lab2/jax/localhost/_8080/md5/package-info.class b/lab2/jax/localhost/_8080/md5/package-info.class deleted file mode 100644 index 9d01aa69e3943331a433b9415b37de7f3162079c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmYjMJ!?Wi5S-KK^P`E4U}uvuSs@5ws(@H2LIg<{_MI2snfs93DgHJKe}F$qa?e7t zFuO3b?Ce~wr!#<8v@{$NrMm=ly?O(QhV1eGp-bHQIN(Y@A z_3oUH9JO~r;AvLw9O-Bc<=U-@?<##-vy_Fh{3g(JY*k3dlSi+JaW^J1Ua~2Ch~v>< zG@$upDA2!?^mSwHdPx6&5_l{f$*|kdBHt<*yMRC?g(|Cp>a9PZmS#IC^@J>-@dp<+ BM700_ diff --git a/lab2/jax/localhost/_8080/md5/package-info.java b/lab2/jax/localhost/_8080/md5/package-info.java deleted file mode 100644 index 933f36d..0000000 --- a/lab2/jax/localhost/_8080/md5/package-info.java +++ /dev/null @@ -1,2 +0,0 @@ -@javax.xml.bind.annotation.XmlSchema(namespace = "http://localhost:8080/MD5") -package localhost._8080.md5; diff --git a/lab2/md5/client/Exception.class b/lab2/md5/client/Exception.class deleted file mode 100644 index 513323adaf32fcde25969ad02aa2548232f66c14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmaix$w~u35QhKGHfD^*B~hbBTrNpO=O7+j5JU|KQ9(rnPd$?+w9NE`Sweg(1x4`S z1Ncy4&A7z{rJ<_2`m4XHsi)_MM*u6B(UHPr7D-HLnAT8c&>Z3Wyd@Y$8kfAo4V$Z$ zaT0h^wKfL5o-w3$+$N#|v;*m?4-DwOX|C=lpFBq-Dg;g1-nMqu?@^-izafJava class for Exception complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="Exception">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Exception", propOrder = { - "message" -}) -public class Exception { - - protected String message; - - /** - * Gets the value of the message property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMessage() { - return message; - } - - /** - * Sets the value of the message property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMessage(String value) { - this.message = value; - } - -} diff --git a/lab2/md5/client/Exception_Exception.class b/lab2/md5/client/Exception_Exception.class deleted file mode 100644 index ea89126ee48c9ccd48b44eb89a1875e138c1d25d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754 zcma)4%Sr=55Uk15B64X)x~^#zP$t3LMe|l=5t7)XtISY7PDAl$ldUst54L8&oI~U+S^Xc zl|pIfsNWJ@EqzsI$m~ib^&UgD+_>ZS+;O?;IOjT$s#A{#RW2D)hkjcyj5nkbr#-JJ zf(zbssj~m?F~8_8ZUg_p;Ol0#)e-u5D7{#&#Oq+lpZmR_C61+GE)LeZ9%P$lC5DBw zp3>42mok*Za-fv2xiKJQn2&VyoxbNf5214{)SXfz?D7_M z$8NRm?l=V9G!9!B!Lo%6vL;($D8>0c6v!|=bp036Y>bV@8#|`{hmlyPACaaX!jLe6 zC`(d4f*hTBx>c#3q*$=4uV8lV1&OEVd4bNcs8yl?tMqs+0$M-78ue22#-oN5V7V3OhlRj24S9byKvA?CgSQ^K^$ diff --git a/lab2/md5/client/Exception_Exception.java b/lab2/md5/client/Exception_Exception.java deleted file mode 100644 index 4204a9a..0000000 --- a/lab2/md5/client/Exception_Exception.java +++ /dev/null @@ -1,54 +0,0 @@ - -package md5.client; - -import javax.xml.ws.WebFault; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebFault(name = "Exception", targetNamespace = "http://ws.md5/") -public class Exception_Exception - extends java.lang.Exception -{ - - /** - * Java type that goes as soapenv:Fault detail element. - * - */ - private md5.client.Exception faultInfo; - - /** - * - * @param message - * @param faultInfo - */ - public Exception_Exception(String message, md5.client.Exception faultInfo) { - super(message); - this.faultInfo = faultInfo; - } - - /** - * - * @param message - * @param faultInfo - * @param cause - */ - public Exception_Exception(String message, md5.client.Exception faultInfo, Throwable cause) { - super(message, cause); - this.faultInfo = faultInfo; - } - - /** - * - * @return - * returns fault bean: md5.client.Exception - */ - public md5.client.Exception getFaultInfo() { - return faultInfo; - } - -} diff --git a/lab2/md5/client/MD5.class b/lab2/md5/client/MD5.class deleted file mode 100644 index 58f5ffab2df1699cba943f79dc7fd702df250fc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmaJ=TTc@~6#fQ#qhbN2Xe&ZRgyN-xF}%nN6>Va|rRgSW;)9uP$Fj|KcHNo9^4EOu z2l%6mXSPi*lKRl}%sJopo$LPo^Ya&g*Eq=HSr*S3GF@rT-W@XRR!@84N^oDOE_Y1i zsqWGKO&3G{{lJx>@dBl@c)?I=#mabn`O(u}+n05v0wacWrjM35e3AR5HMnh`I-~E+>d1S2jGK zD#+1vYIe;G>$7A>MpvFIiGC|Nhh;-_ne0M`!X<8Dwt9w*DFq#fkUJOk=37s7?CDU~ z+FbiGiyE1ZH5ryZC?%s4J3OhW$^QuKBotdtt9e4#IfB}Cv?&D_<1^!*`@SP(-PZxZ z%hT()X!oRR8p1U}bWOp+)T)v$S0*Pv#4>D7Va7|GtTPMFP_eY(RsY-gux_ejJ|x4y zut1+7z*5v8QuIsHD@FbcvShs?PmcZ<$&=T(jU{s2(I{Y9V+E^Uz>aa3MDDp*Ls4TL z_X)mgl^>A1q*1oSGSMDVU;!J6?jF4#4da{G(x~7uF}5Xkv4<*|MN)RLkEcY+)B6ct IV&}N@7e*s0C;$Ke diff --git a/lab2/md5/client/MD5.java b/lab2/md5/client/MD5.java deleted file mode 100644 index 6888241..0000000 --- a/lab2/md5/client/MD5.java +++ /dev/null @@ -1,46 +0,0 @@ - -package md5.client; - -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.ws.Action; -import javax.xml.ws.FaultAction; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebService(name = "MD5", targetNamespace = "http://ws.md5/") -@SOAPBinding(style = SOAPBinding.Style.RPC) -@XmlSeeAlso({ - ObjectFactory.class -}) -public interface MD5 { - - - /** - * - * @param arg0 - * @return - * returns java.lang.String - * @throws Exception_Exception - */ - @WebMethod - @WebResult(partName = "return") - @Action(input = "http://ws.md5/MD5/getMD5Request", output = "http://ws.md5/MD5/getMD5Response", fault = { - @FaultAction(className = Exception_Exception.class, value = "http://ws.md5/MD5/getMD5/Fault/Exception") - }) - public String getMD5( - @WebParam(name = "arg0", partName = "arg0") - String arg0) - throws Exception_Exception - ; - -} diff --git a/lab2/md5/client/MD5ImplService.class b/lab2/md5/client/MD5ImplService.class deleted file mode 100644 index f775c985c63a90c8e9a5aa81ad67a015586af386..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 zcmb7FT~iuo7(I)|g%$BD8e=}JpFuFL(Hf1|7>n3g!7r@F$%V7xRyT!(fi-&DU(lb? z+eRd!A*70y0y}49_m_`<&HFqU+AMywGG^i;V-_4MZxesN4!^yzoJuHoRE4#ToLMRu8B^ch;448bi2Hg({Rp;W=!y%;o7cbZMtsl zPJt%sKvl`>n~)r-ySv{hedxq=gw9+cyOl3G3cAAM$=va*p2=FK?daSic@KBaY{$x( zdsfLJOUt&McMO?ENkM;A#bvq@_HiL^*$#ot(u0E5niMm4p!jwTorj04b-#3+P3ALh zas?eMwoY7aX~)QXmof_8JpGI8L?%xSQ@E6`0xg|CD`w19O9tNU)#eFpQsOBXxYd=n zA9s0SYoS^kwd5E@Rw#ONrAL=j$0;o6RPv-ysvvk?Q~sd0pJhYY(|pNUn4g-T65-Q* zNqmENj>#Y%;c*a8Fd}A@f|PSLVY zV&&;pugD=#Npo4PZ_1d4TvUVOS)){nd17(HZ619vGa^yre}(w(LseCBB}Y$#)})cX z>h;~zV*Xq%Azm;THo|8V-xD8ZcY+=$dX46K)FfJ=)Bg#EJk%&tNxVQL+BnfP{QSd_ zM8h6rjES105EnAhAk9kzFz2Qj@i4{3oxy~b2X(4xubZu(TbP%#Zf#Y}*q aK6g8qb(`;Dl9#NSRL)_(gjZN7A@&bB_WN`I diff --git a/lab2/md5/client/MD5ImplService.java b/lab2/md5/client/MD5ImplService.java deleted file mode 100644 index 35cc6ca..0000000 --- a/lab2/md5/client/MD5ImplService.java +++ /dev/null @@ -1,94 +0,0 @@ - -package md5.client; - -import java.net.MalformedURLException; -import java.net.URL; -import javax.xml.namespace.QName; -import javax.xml.ws.Service; -import javax.xml.ws.WebEndpoint; -import javax.xml.ws.WebServiceClient; -import javax.xml.ws.WebServiceException; -import javax.xml.ws.WebServiceFeature; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.md5/", wsdlLocation = "http://localhost:8080/ws/md5?wsdl") -public class MD5ImplService - extends Service -{ - - private final static URL MD5IMPLSERVICE_WSDL_LOCATION; - private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; - private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.md5/", "MD5ImplService"); - - static { - URL url = null; - WebServiceException e = null; - try { - url = new URL("http://localhost:8080/ws/md5?wsdl"); - } catch (MalformedURLException ex) { - e = new WebServiceException(ex); - } - MD5IMPLSERVICE_WSDL_LOCATION = url; - MD5IMPLSERVICE_EXCEPTION = e; - } - - public MD5ImplService() { - super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME); - } - - public MD5ImplService(WebServiceFeature... features) { - super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME, features); - } - - public MD5ImplService(URL wsdlLocation) { - super(wsdlLocation, MD5IMPLSERVICE_QNAME); - } - - public MD5ImplService(URL wsdlLocation, WebServiceFeature... features) { - super(wsdlLocation, MD5IMPLSERVICE_QNAME, features); - } - - public MD5ImplService(URL wsdlLocation, QName serviceName) { - super(wsdlLocation, serviceName); - } - - public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { - super(wsdlLocation, serviceName, features); - } - - /** - * - * @return - * returns MD5 - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5 getMD5ImplPort() { - return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class); - } - - /** - * - * @param features - * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. - * @return - * returns MD5 - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5 getMD5ImplPort(WebServiceFeature... features) { - return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class, features); - } - - private static URL __getWsdlLocation() { - if (MD5IMPLSERVICE_EXCEPTION!= null) { - throw MD5IMPLSERVICE_EXCEPTION; - } - return MD5IMPLSERVICE_WSDL_LOCATION; - } - -} diff --git a/lab2/md5/client/ObjectFactory.class b/lab2/md5/client/ObjectFactory.class deleted file mode 100644 index 0124a4591d16fe9252ea35787736252409814af5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1089 zcmbVLU2hUW6g>kJ7Q}+IYFn(9`oTiAoA~h}q)DyqgTb1%hO|%3uuO28-G%H9O8=D~ z4IFaD$5?pp2yYDr~O+0LD9T=*Da!6J{)>Vx}q%uN&Rel zUSDzTQovB3RmJ11b?iD5eQ$;BXpOOj4D+9q8oaiwFTtiZg51+d!o*%M7)|mgayWO? zANsb~liJVHht8R>)gHH1-#_2fN5oLQUdf^8$w2w%jXVk{GAv$YKf}u9dC!`h$4$)Z z>J75w5*GIqT?-9(N(Vee|BqU_X1dmLxYx6y48x&0C4Ppm5vC&ij>CiC+CaqE(ATjV zkw%qA%9mbmx^xn$wNasWk*6m^-Rl-HSDC1s$RT#J*3$BtT{S_{dIVl;X>=?Npn7fo72`Ll71A-;67Lw{{1^5d# CXbqkK diff --git a/lab2/md5/client/ObjectFactory.java b/lab2/md5/client/ObjectFactory.java deleted file mode 100644 index 8f81db1..0000000 --- a/lab2/md5/client/ObjectFactory.java +++ /dev/null @@ -1,53 +0,0 @@ - -package md5.client; - -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.namespace.QName; - - -/** - * This object contains factory methods for each - * Java content interface and Java element interface - * generated in the md5.client package. - *

An ObjectFactory allows you to programatically - * construct new instances of the Java representation - * for XML content. The Java representation of XML - * content can consist of schema derived interfaces - * and classes representing the binding of schema - * type definitions, element declarations and model - * groups. Factory methods for each of these are - * provided in this class. - * - */ -@XmlRegistry -public class ObjectFactory { - - private final static QName _Exception_QNAME = new QName("http://ws.md5/", "Exception"); - - /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5.client - * - */ - public ObjectFactory() { - } - - /** - * Create an instance of {@link Exception } - * - */ - public Exception createException() { - return new Exception(); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://ws.md5/", name = "Exception") - public JAXBElement createException(Exception value) { - return new JAXBElement(_Exception_QNAME, Exception.class, null, value); - } - -} diff --git a/lab2/md5/client/package-info.class b/lab2/md5/client/package-info.class deleted file mode 100644 index e94a52b25d4c09ef80c919a8402294c253a11be6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmYjMu}%U(6r4rn1QMf-#t*QRR~Q?tY^X>`AThS@mgn8#?mNOR%C}MQ0e%!=kHYYh zc~i_}Ci8dL?E$=CP@q?!Z_uANo3)j(^I~wfV*AaNJUjhrhD-iogU8uMlMC|UqAR_; zt2T*~Ycv`>OEw!u^BbV2;D(r55zD5)xFB5)I+gb~~X%_R;K4dHgK- zK#3;)0DhG5PFq9*aX!rB+;i@|b7pRS|M&&qHL3;-6vy!lRt_Zt&oP}tnd60lEQ$tZ zFv~H=@sc6?Mut+oWk^@ozA|LqM{U6{xhF&MxfirVeBicxLNb9XLxxiIXz#>5bsgUg zkDaE9Wq91sLZcb=Vo&TyO`iJnVROIN@@3Ky@hihIgYVscqugiHJ|7 zCu~>QB5Zdf8LGP7QL0;a96$10zY`^@UfZZ`IA@6yv^O~xOe|uFVfKGCh6y5T4OQ6< zx<1FUi509ely%^?m=6DKm?3|6#V@TB;i-F2^CD3qAjhH}1+1YTGII9G3`Ld*H)t>v z2RZJ;47{sJJ~?SsA2-s{x^w3|@O9fCM{a24&`^f$N0k5M8g|@R8$b^dHBiAg{SG}+ zVES2TeoCh~S{bcl>wU2Av?23o&JI9MqDkawuc=!|lNcynB2`FVAyXLpiR@t?{2IA$ VciIW!flB14h(${J8FWse@CSH5q-p>F diff --git a/lab2/md5/endpoint/MD5Publisher.java b/lab2/md5/endpoint/MD5Publisher.java deleted file mode 100644 index 8e75e7d..0000000 --- a/lab2/md5/endpoint/MD5Publisher.java +++ /dev/null @@ -1,15 +0,0 @@ -package md5.endpoint; - -import javax.xml.ws.Endpoint; -import md5.ws.MD5Impl; - -//Endpoint publisher -public class MD5Publisher{ - - public static void main(String[] args) { - final String url = "http://localhost:8080/ws/md5"; - System.out.println("Publishing MD5 service at endpoint: " + url); - Endpoint.publish(url, new MD5Impl()); - } - -} \ No newline at end of file diff --git a/lab2/md5/ws/MD5.class b/lab2/md5/ws/MD5.class deleted file mode 100644 index ba845b73fe710d970b2e7a42958f27ee93d35ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmaJ;%TB^T6g`(mi--y$D8_{`hUmsF3@bJwYGNXR&_vgzOmIkO1t=LDV_Ij)JM8Z}RUhY0!W zg)gQ?hDzJ05NiFIGIApBrIv$0w3G^sm!t`mL}1~JpS1HJ1|4A@!(o#(+;A58;zkC7 zkmLDh@oYl%d%Y{7x%34$9DGUW(3?7Lx7E9pY8cxjWVLw?gpFN>ZVU;9Tct$Q4m_=e zCLH}EaGbQTOuFA|v$@Hz;jrOkEydMRx`VOs4WYaWeXhdB9^o)fEFb&R<8lOH|L+ou zKuGcL0F+@b$S}(?%W&L+&B$Vu<2#KtK2yji(GsI|<^|4f2$ZmmBGWw6O;oXUQTqU* CaDoT` diff --git a/lab2/md5/ws/MD5.java b/lab2/md5/ws/MD5.java deleted file mode 100644 index 66a0779..0000000 --- a/lab2/md5/ws/MD5.java +++ /dev/null @@ -1,15 +0,0 @@ -package md5.ws; - -import javax.jws.WebMethod; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.jws.soap.SOAPBinding.Style; - -//Service Endpoint Interface -@WebService -@SOAPBinding(style = Style.RPC) -public interface MD5{ - - @WebMethod String getMD5(String text) throws Exception; - -} \ No newline at end of file diff --git a/lab2/md5/ws/MD5Impl.class b/lab2/md5/ws/MD5Impl.class deleted file mode 100644 index 8234097cf21b4f65d7419a34137518af49159d51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 zcmZ`(+foxj5Iqx?ovk4MuF8L76Y-1w-qKWs9|H zDJz`kX0}K(YC*`=g>i;KV`baiF_T5pE+jM3vFyTh?Efi-mW(uWuUE~AkKj{Ia@^s# zOQA7ni+edykyhDuIi|?Yl&eloELk3#PE_eqrI_%j7^2UrwzNuO-Eu98X3n> zY1@^i?PWZA{&CgErpg5gA+;}sOZ{NPJSMd$?1FsdcS)MeY9((VfAr$^htQN7nrqNE z-m2{V@wX@ew0t1wfKNV%CK`t+hzOc-iAJ61qNg9-bi;eFO!_JMXa(p+;F$gaoTHN? n%5j;a%YVBmtMBwL=piSC^0-3ay*@=Bl>-FKaE-p}F8Y50V$=dh diff --git a/lab2/md5/ws/MD5Impl.java b/lab2/md5/ws/MD5Impl.java deleted file mode 100644 index 4764206..0000000 --- a/lab2/md5/ws/MD5Impl.java +++ /dev/null @@ -1,44 +0,0 @@ -// Based on http://www.mkyong.com/java/java-md5-hashing-example/ -package md5.ws; - -import java.io.FileInputStream; -import java.security.MessageDigest; -import javax.jws.WebService; - -//Service Implementation -@WebService(endpointInterface = "md5.ws.MD5") -public class MD5Impl implements MD5 -{ - /** - * Performs the MD5 algorithm in order to produce a 128-bit hash value. - * @param text input text argument. - * @return The calculated MD5 hash value (in hex format). - */ - @Override - public String getMD5(String text) throws Exception - { - // Calculate MD5(text) - MessageDigest md = MessageDigest.getInstance("MD5"); - byte[] dataBytes = text.getBytes(); - md.update(dataBytes, 0, text.length()); - byte[] mdbytes = md.digest(); - - // Convert byte to hex format - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < mdbytes.length; i++) { - sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1)); - } - - return sb.toString(); - } - /* - public static void main(String[] args) throws Exception - { - // msg is the message - String msg = "hello world"; - - // Print result - System.out.println("MD5('"+ msg +"') = " + MD5(msg)); - } - */ -} diff --git a/lab2/md5_client/Exception.class b/lab2/md5_client/Exception.class deleted file mode 100644 index 26b029ef44963172f242f6b80cb446adb2973ecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmaix$w~u35QhJrWD+yREymr5%Oz2C4&uQDL0mwH1~df0gLEcM=rGeW%o5^TDJX&m zAHataYvR73G*nerfAv>2_4suE0ALj}29lV}Ac3hgrqd`eq#Y3iyeSxRN73`QD$2RLy zHBA2gYMwdvj%Cq&u3x?M1bs|zb339IFO&XL^;UCmxL@95SopisE1gu_p$3`vKTz!X zu2=CJ!p|a&o-A~v81hbI?ZUF9P@(w=9{gBGrQQ-&h&ftZk`_sOh$|^dP)tH(GjuDE zXXN$8JFx36Xpl{Hle1)dktO>Ty@7W14P7Rv5B;y`JTy8av$%8%?L*e+X4h$w4T=Vc d&@hN0@-r0WsCrl+j}eU0bu7R*CeFbE=+9~ll=J`q diff --git a/lab2/md5_client/Exception.java b/lab2/md5_client/Exception.java deleted file mode 100644 index 12a6fdc..0000000 --- a/lab2/md5_client/Exception.java +++ /dev/null @@ -1,60 +0,0 @@ - -package md5_client; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for Exception complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="Exception">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Exception", propOrder = { - "message" -}) -public class Exception { - - protected String message; - - /** - * Gets the value of the message property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMessage() { - return message; - } - - /** - * Sets the value of the message property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMessage(String value) { - this.message = value; - } - -} diff --git a/lab2/md5_client/Exception_Exception.class b/lab2/md5_client/Exception_Exception.class deleted file mode 100644 index 9bbb796d140c6c2bb4ee68dc7d0db301445f8522..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754 zcma)4T~8B16g|^V+OB{gP*jS((JinK#20Fa#zBdfI{V20#WDrU-432H0&9IvfYM%;}KE>xs zV4l)1=cbhlVB2s!BrZ3Q~iva)|8BlIJY*P#(k|! zsP2f3bR-At&R<$P+7AfbrNe=TIlT5zLDgj&0&|S2zvhEK zz#nBiyKQ=r;6u}IzVDp#UHA8&pT7XS#!dmx3V1G%Z)tb@ZdYJ^^XNi#lnj(<$%c!4 z)7sm*?h=@Kf9dJS`Ju4|ybvhW6XX20{^VP~8R)7pp;K8{pqL3<%8MUXe%8%n?asrq zy=(ruwn^aVpNLfKKB~56VX<~eYzElNb|5KJ^-^tO$9)qePGIHSx#*2#Y`cB7E7^?f z_Egv36K#pehl$Iem7Ae9Vn0kf{!OtIfpV|%Ue?3Z+fO~|1uNU{lOR=AEd+6mQDUgU@fDh<E(ETCwy zi2H=kr^*lLE?JaQVwtpu42)qZ)7{|vQ8&Jf6^jZUld-C?jty+mEK=FS7M_wc#rG4u I#M*x8FMNV3=l}o! diff --git a/lab2/md5_client/MD5.java b/lab2/md5_client/MD5.java deleted file mode 100644 index 9c738a6..0000000 --- a/lab2/md5_client/MD5.java +++ /dev/null @@ -1,46 +0,0 @@ - -package md5_client; - -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.ws.Action; -import javax.xml.ws.FaultAction; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebService(name = "MD5", targetNamespace = "http://ws.md5/") -@SOAPBinding(style = SOAPBinding.Style.RPC) -@XmlSeeAlso({ - ObjectFactory.class -}) -public interface MD5 { - - - /** - * - * @param arg0 - * @return - * returns java.lang.String - * @throws Exception_Exception - */ - @WebMethod - @WebResult(partName = "return") - @Action(input = "http://ws.md5/MD5/getMD5Request", output = "http://ws.md5/MD5/getMD5Response", fault = { - @FaultAction(className = Exception_Exception.class, value = "http://ws.md5/MD5/getMD5/Fault/Exception") - }) - public String getMD5( - @WebParam(name = "arg0", partName = "arg0") - String arg0) - throws Exception_Exception - ; - -} diff --git a/lab2/md5_client/MD5ImplService.class b/lab2/md5_client/MD5ImplService.class deleted file mode 100644 index 2c4f1585a4c0896364d7eeb9ca2a2879d97cc0f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 zcmb7F+fv(B6kW#<`Tw`p42$VoD4WY&~6q%bTgvkRVj0#F^*<*>oYrmkM z(bonZ=#-hZPkrb|wOvQnxVG_3sb{<;pR?D#ti8_hpMU-GD}Wj7s_4ODh~^6wy?8Cn zl7cruyb2<&;vSY2d?{Cx(yU0&lr*bB%qjRPh=huEyj8HK;A<7#SXZDcNDDkpugtEc zxAaVEXKyW;I^55!=!g1da(Q=cb3-7ae=t58nr*t;H#>Slps&t9^)8v(D*Fz3z8Bg> zKBt{K+P-;|F-sqwj!*6dar&9uts<5_^H=Ux9HMQ*xz7o{3XxWzg zTA(R9z9-O}EF7Bx?Yd=~8)x|=v$Sg*<+w5ueP0!)riNA1aL-C+LgG84wOz@z>AJN$ z1)8V>RVA-)Lgq-{-ThAKBPXUS>C6{%TZNJ<&=nom^T)G?*_>tCuEsr*_i*RTcCEa* zXE_#GTDI+iYshIh0{vALm+4B`$HjtWy974N9t2uzQq0_e;@dTJ9v-sRedjo*7qVV* zfesd1C$6@PYh=Gm8%2Mf!9{i=Cr=GixRkGenkk%>vgWEK2j1=1<_m37#uFI0)s?@W z^mt)wky;$JTVp>%Tq1Cd zrceCIfzhf6(8lni#JX*jUfMU zWTIgoGR8zrvJek4(ICxBgfQo&8Syd0L`aMhixY6Gn+3EW;UyXM0V7P(OhAx;=M7T4 zhJq#fj*+Z@N7^L+^(1M%u^Zew=xXUwt`Y1;=o;$p2>ryJGJh?e*IPun(#rR7eq)YD z<`^dYU>bu-S{~E|BdM(oqV3*}rpm+4&~l!V3;Bs$BK!vw+TSkGCQAxq<*R*iXVL1r~URKZ0`yIu`cu*v>$YJT%&XSN3^AH(0xFX@9VKEw8gIw z{>1cMl-U4nIiXY!co9Vyy~A4{a7V|YP!Wij0d{LRgPf)@&=Ar#Dn b80vGcgITZn9wvFos!8P><{iAkf`i0AJJS3# diff --git a/lab2/md5_client/MD5ImplService.java b/lab2/md5_client/MD5ImplService.java deleted file mode 100644 index 8207f3b..0000000 --- a/lab2/md5_client/MD5ImplService.java +++ /dev/null @@ -1,94 +0,0 @@ - -package md5_client; - -import java.net.MalformedURLException; -import java.net.URL; -import javax.xml.namespace.QName; -import javax.xml.ws.Service; -import javax.xml.ws.WebEndpoint; -import javax.xml.ws.WebServiceClient; -import javax.xml.ws.WebServiceException; -import javax.xml.ws.WebServiceFeature; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.md5/", wsdlLocation = "http://localhost:8080/ws/md5?wsdl") -public class MD5ImplService - extends Service -{ - - private final static URL MD5IMPLSERVICE_WSDL_LOCATION; - private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; - private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.md5/", "MD5ImplService"); - - static { - URL url = null; - WebServiceException e = null; - try { - url = new URL("http://localhost:8080/ws/md5?wsdl"); - } catch (MalformedURLException ex) { - e = new WebServiceException(ex); - } - MD5IMPLSERVICE_WSDL_LOCATION = url; - MD5IMPLSERVICE_EXCEPTION = e; - } - - public MD5ImplService() { - super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME); - } - - public MD5ImplService(WebServiceFeature... features) { - super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME, features); - } - - public MD5ImplService(URL wsdlLocation) { - super(wsdlLocation, MD5IMPLSERVICE_QNAME); - } - - public MD5ImplService(URL wsdlLocation, WebServiceFeature... features) { - super(wsdlLocation, MD5IMPLSERVICE_QNAME, features); - } - - public MD5ImplService(URL wsdlLocation, QName serviceName) { - super(wsdlLocation, serviceName); - } - - public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { - super(wsdlLocation, serviceName, features); - } - - /** - * - * @return - * returns MD5 - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5 getMD5ImplPort() { - return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class); - } - - /** - * - * @param features - * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. - * @return - * returns MD5 - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5 getMD5ImplPort(WebServiceFeature... features) { - return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class, features); - } - - private static URL __getWsdlLocation() { - if (MD5IMPLSERVICE_EXCEPTION!= null) { - throw MD5IMPLSERVICE_EXCEPTION; - } - return MD5IMPLSERVICE_WSDL_LOCATION; - } - -} diff --git a/lab2/md5_client/ObjectFactory.class b/lab2/md5_client/ObjectFactory.class deleted file mode 100644 index 0f9f67619b30d3d1e2476a771929a562ab04e3d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1089 zcmbVLT~8B16g|_H?slz!1r?|$;750hvWXurmXILAgQ+!uA@D?|%cKt3-ICp@mVf2P zLlc|$1N>3OJG*454dKCk*qOQa+%xB%nfd+a=Pv*+@XSIPD+V4~$m#J>2{-WALIF<< z)J#-OELt#N8*mKN8K#f7`<^&cvKt=nwl?2yGgOSr?y zyNYX9x>+r*yz0^#7=(Yo=>mpNAbc%`oiQBjU#h8%Zj~Z}~iquMMP(4SgMJ zDQQ}{uOb0|*b zl%B!t1$>F(8g34eI~pMWHLEBlaVJ6FMm{08QA~KIhbSC<$HWYBY;}O*c-3>An ObjectFactory allows you to programatically - * construct new instances of the Java representation - * for XML content. The Java representation of XML - * content can consist of schema derived interfaces - * and classes representing the binding of schema - * type definitions, element declarations and model - * groups. Factory methods for each of these are - * provided in this class. - * - */ -@XmlRegistry -public class ObjectFactory { - - private final static QName _Exception_QNAME = new QName("http://ws.md5/", "Exception"); - - /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5_client - * - */ - public ObjectFactory() { - } - - /** - * Create an instance of {@link Exception } - * - */ - public Exception createException() { - return new Exception(); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://ws.md5/", name = "Exception") - public JAXBElement createException(Exception value) { - return new JAXBElement(_Exception_QNAME, Exception.class, null, value); - } - -} diff --git a/lab2/md5_client/package-info.class b/lab2/md5_client/package-info.class deleted file mode 100644 index c6084a3f2e5f81a03952f9ea5dc147a027590c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmYjMu}(rk5S#<`2_yy@2_IkyTNoRyY^+R7ATe}g-?6~K-9F+S%C}kY0e%$W9tCle z*(qi+lleRT9soR|Q=nC#ZP1=nyDuwm&Wk~B%XY&{89H55qcwlC!C<`8 -#include -#include -#include -#include "msg_list.h" - - -/* Creates a new message struct and enqueues it to the end of the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->sender, sender); - temp->id = id; - temp->next = NULL; - - if (*head == NULL){ /* Queue is empty */ - temp->next = *head; - *head = temp; - } - else{ - /* If the queue is not empty, iterate to the end and append the message */ - struct msg *last = *head; - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - return 0; -} -/* Deletes the message at the head of the queue and returns the new - head of the list - Return a pointer to the next message in the queue - NULL if the list is left empty */ -struct msg * dequeueMsg(struct msg **head){ - struct msg* temp = *head; - /* Head pointing to the next element */ - *head = temp->next; - /* Free the resources of the first message */ - free(temp); - /* Return the new head of the queue */ - return *head; -} - -/* Deletes all the messages in the list from the head of the list -passed as paremeter */ -void deleteAllMsgs(struct msg ** head){ - struct msg **temp = head; - while(*temp != NULL){ - *temp = dequeueMsg(&(*temp)); - } - return; -} \ No newline at end of file diff --git a/lab2/msg_list.h b/lab2/msg_list.h deleted file mode 100644 index bca5c01..0000000 --- a/lab2/msg_list.h +++ /dev/null @@ -1,15 +0,0 @@ -#define MAX_MSG 256 -#define MAX_MD5 33 - -struct msg{ - char body[MAX_MSG]; /* Content of the message */ - char sender[MAX_MSG]; /* Sender of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -/* ================FUNCTION HEADERS================ */ -int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender); -struct msg * dequeueMsg(struct msg **head); -void deleteAllMsgs(struct msg ** head); \ No newline at end of file diff --git a/lab2/msg_list.o b/lab2/msg_list.o deleted file mode 100644 index 30072c7b01c0f98c7a69f52e4a278b03f0a43486..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5040 zcmbVQZ-`Xa6~FJz&hFbCcU@hRD%y4o+NyMBcJ1!gYBd|zt#3iAG%Sfw&^I%8XNJt5 z?R#(RuGE^cB+an2>{8kikQ6^PUmE(+VoM}~u2B4BTcJ==+KOT+1`;A9!JKpNId9)w zCto};@1FBJfA61n?qe=Y9s90rS%S$Dhs2u1s1Sb`SmP%YJ0UiS4PwS^{nuUm--O#b zf6r|--*;OxcUs49A8SpmzB_CSaSv_X*3=_+@%$sv?7RFJ=>9DPmjGOv0gu1AtsB}7 zp`R}c@B{4~w{_iZ{k=^CrGaME&@9c|ZY}T7UXR=xukHdC2~6*~OTvBaYV)g_AB5qN z+ge5ojm&^J_}~DWwx%9FSP#NOcS(hT(t%wQA=JOLjE*YKWlVMR8m&ZHtpp{;d8=uz zC2Ua%(TuUe4&LDU;92F&i_>~fi#mXw)<2hTUh9FmbYTs`Q9HLz@v+BZY(s6Q2Q{|k zsKM4!7lGXxOyZE}N>=KjupK3lUzg*9%C@v&n<`lgN@CcyyKaMp)+dn_I(E0>EvHr- z6L!ykP+>cjB0LTQyMqep{SXA$oL)?WMtu?G4{aYvJtT-z-?_P1X|K<0& ze}8oM)HkoZ<2?7L=H4rdIp?K6Z?|p8Qf<^rY4yOjspAk}v&&KUnn1(-#4BaA5CXU z>C9{pdWBaqbABU~g|Ojgg3yN(6REsh$`hH8k@N9zUS~Akpz=Mm*8U98i5Nn977u zE!~8{UbX5Dc>62H1_{x}Y}=U7eYXumAt6+k>wrf+wM~~0{cSP|*#9=h)`9yybUNKM z(I`e=0bVuJ7>4Xl_+cFO=iWRFcqe;o#c1#11_5zLUh5Wx_={Wfs?|n8z3!85$XXmhx>O9L1==0>3+EA3t@tFGw8cpcciq zXk>hWWZqB4KPG(2u!oCD(J=$(bMc~qpP>3Z1OFw-bZ10$o+A6EVUO1l(vS5J*^?+1 z4g3VjzcTP&kbKF&@$(4jh908$d8+3V1K&$>lJq#l_hlR5yq+1d-(%ou!e2CSu7~q; zoLyu;NA@^i-c`bXYQ*6V@*4v`Lh>aValkmdkCzR5uK&7$b3K1G@L8(oAB5w8@wp%T z->~QSpBgyF=XVO%A>NI-_i%hlEBLN4@iZA=E%;-aAck>XhcgDw^^0t;id2 zw$P~6BwXv+I($iF;d2DOB;d<}0?G2}S>LNks{ZMRG`Qj#^7?b631ZC8N7_C%6I+49 zTXiBrH1h^FL!f0nz+Iv9I3&X-uA;BO6Jwe;_BAt+HdnU9ssTTHG3L|ykArWgRGdE* zKSUjDM*!)+zrj@_PXKIGMIHpfoYG|08|s@IApXOxu&7 z=v4naeQK~j){nKD^;ZBhV*(`ZQ~r4rVr1GDLDwn&+mxTr3FgNoHS^;=f-$*HU=?}P zL`p_N7I}OXtULLy(hD)B!$nW_=XsE3hOpKemZZ P`6sA -#include -#include -#include -#include "read_line.h" - -int send_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = send(socket, message, l, 0); - l = l -r; /* Pending data to send */ - message = message + r; /* */ - } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - -ssize_t readLine(int fd, void *buffer, size_t n) -{ - ssize_t numRead; /* num of bytes fetched by last read() */ - size_t totRead; /* total bytes read so far */ - char *buf; - char ch; - - - if (n <= 0 || buffer == NULL) { - errno = EINVAL; - return -1; - } - - buf = buffer; - totRead = 0; - - for (;;) { - numRead = read(fd, &ch, 1); /* read a byte */ - - if (numRead == -1) { - if (errno == EINTR) /* interrupted -> restart read() */ - continue; - else - return -1; /* some other error */ - } else if (numRead == 0) { /* EOF */ - if (totRead == 0) /* no byres read; return 0 */ - return 0; - else - break; - } else { /* numRead must be 1 if we get here*/ - if (ch == '\n') - break; - if (ch == '\0') - break; - if (totRead < n - 1) { /* discard > (n-1) bytes */ - totRead++; - *buf++ = ch; - } - } - } - - *buf = '\0'; - return totRead; -} diff --git a/lab2/read_line.h b/lab2/read_line.h deleted file mode 100644 index e3d4c9e..0000000 --- a/lab2/read_line.h +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int send_msg(int socket, char *message, int length); -int recv_msg(int socket, char *message, int length); -ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab2/read_line.o b/lab2/read_line.o deleted file mode 100644 index 209e48b0b1f82926e0153807cbfd05e5152f8834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4784 zcmbVPYiJx*6h3!$lWekWlD58LeJoP7h3;;m>1vy{#@4l?R;`t21aY0+oqgEd**cG! zRAR)`$GTLqB0j*!4?#pN_(zGN5GdFdiu9jFgyx4rO8P@VBw(PPbLZZ4a=ZQGft`EK zcb@lkW_B{Y_kN8rki=joT#_UT@b&6T{4i&S;VM`IBYOQ0ed>dvo=X`9^xa zo?dLE7xmm3z2VI@(igrXhx&7`9%v82DRv-I55#3H=ZJ~gofgRjD9Xa<# z@A((8vgz|4Jr}~$3v8Nfe&U7B>5YdM^ZK2u_$1vnUdpNCZ(^-ssvRPHk5+L$@Tdm1 zPGb?$Xj%s!!u}BP2iETE+Gq%c+sc*;T7*lQZxR;LSI?kDdt?%yn(yWNoU;(&Z20Uh zQi{mF8_&Wzo>he#E{C7r&m2TBvJs;qytph-^KD(VEZt(ha12N;DtE)N9zS-Rq*E?)BYk*xHWXYtdx`M58+q!nA_L)ZrdPaj~v} zQ1`azQ1pRyxT1s+(~)5J^!fPheGjaoNW<5?yQ`0(4%bq8Xx9OB4nip62OzQQ3Z4K_ z^a~iSLO+q1{9rRp4u4`7I7g4*=~)Jm>A+Rh;3MQ1`?q^FK6%4HlqEgKPL{1)#mk$? zvAa{5)L^_)w!E=;(ejenvg<(5#1|^%Y_gckU2eZch61onBcH)YW`ds^cl@B~Byjlw zJge-udE{{l$mGoe@*%3X)1MS_eUV#03v18OBXW$MMS3*x!P*P$rQ)Hd1|o?CF1qdB zu^*>ijlAvs*z~-yBS(IDD)fA$5Lz1xd87C2+~|?jL+!ugJz}hCI*w5^!6_d$GcLF_ zcRv;imRIGYBXFvIFBT7uY2`Cjr?_H1m6}zId6rWyT4p{*SI;TcYXh z65Bm65ZjU%O!UX@=pRV+r~0?X;#JqP%pFD3GVO8>MZ?aOcHln5Q-iU1F%~a4u8}(s zKWNunGw0UqxZ~QG9g?M5)l3#Wx14;TW*=}48aXq0A1JF1h8lK z?rpJ+BU#UKJ%0t_DUVA7FAby;{ey|YP0GsPyU8bZct5bQUbcQ!M`RjL&kYFEkBFbF zd%JsI({`_J*PcNOU$@;?1MenMA8KRVK!OO29BTPSC7d7I%UnXD$*YQx z-)~hIqwsdy0_T0N17AVat@Ub8)2w59g2fp@*(ObG#*aV05 zD3HChlbwCT73{ZM0pE57e8q)azNN%)4ZpmZjA`3eEmNuG47XgfxCZc`)1AuXN(V9p zqg=rRNO6DQeU(;giM~6K-U;9|Pl=xn;A;Z-Zvi}LU!((uL@jPD{$w2f9!HsWRPxAz z+)2Va@i#^w66GS2_*P$ptHmhslS1wjBc)$%ugGr_IN1kJS$_bhyw3^wE(NDIGto|e zSgz+EA*U5w%6k>u5bN@|f)5MaQ1DTKmlS-1z-tPAy}(~l@F9V}uHZKd`E3Q4YxIeN zheVvu6g)2QFBM#_?>7P`v*5nSb0zojF%joiC5{kbUcu!zK#%Z~ac&oOeFB$x<^9~I z*gq)bClnk%k~rlRTy_$9hAA)qx)kKa)b zUE3c^lC#Zrfd~zsN=km&D!Rn6>7satfINng+6Vh z3+91Du2!v@_+Cs{_^M9e`yOA_*k(i^vy>^=M%5J6|NkL|uC#`7on@q9!N~oWxY#Bs z0`+D33o^Wn_>4}M9ZB{X>QUq?&pmy265WPB!b2nk=$M*F=u~(!;uQ1$`lrxWjY+9w z{WJ|`hSYW=NhC-Z*s33^gE;J;V?6{zN? RYtkzJqA+}jf(1y;{~vLkVuAnw diff --git a/lab2/rpc_store_service (copy)/Makefile b/lab2/rpc_store_service (copy)/Makefile deleted file mode 100644 index 3f7252c..0000000 --- a/lab2/rpc_store_service (copy)/Makefile +++ /dev/null @@ -1,47 +0,0 @@ - -# This is a template Makefile generated by rpcgen - -# Parameters - -CLIENT = store_service_client -SERVER = store_service_server - -SOURCES_CLNT.c = -SOURCES_CLNT.h = -SOURCES_SVC.c = -SOURCES_SVC.h = -SOURCES.x = store_service.x - -TARGETS_SVC.c = store_service_svc.c store_service_server.c store_service_xdr.c -TARGETS_CLNT.c = store_service_clnt.c store_service_client.c store_service_xdr.c -TARGETS = store_service.h store_service_xdr.c store_service_clnt.c store_service_svc.c store_service_client.c store_service_server.c - -OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) -OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) -# Compiler flags - -CPPFLAGS += -D_REENTRANT -CFLAGS += -g -LDLIBS += -lnsl -lpthread - RPCGENFLAGS = - -# Targets - -all : $(CLIENT) $(SERVER) - -$(TARGETS) : $(SOURCES.x) - rpcgen $(RPCGENFLAGS) $(SOURCES.x) - -$(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) - -$(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) - -$(CLIENT) : $(OBJECTS_CLNT) - $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) - -$(SERVER) : $(OBJECTS_SVC) - $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) - - clean: - $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) - diff --git a/lab2/rpc_store_service (copy)/store_service.h b/lab2/rpc_store_service (copy)/store_service.h deleted file mode 100644 index 215718c..0000000 --- a/lab2/rpc_store_service (copy)/store_service.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#ifndef _STORE_SERVICE_H_RPCGEN -#define _STORE_SERVICE_H_RPCGEN - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define MAX_SIZE 256 -#define MAX_MD5 33 - -struct response { - char *msg; - char *md5; -}; -typedef struct response response; - - -struct store_1_argument { - char *sender; - char *receiver; - u_int msg_id; - char *msg; - char *md5; -}; -typedef struct store_1_argument store_1_argument; - -struct getmessage_1_argument { - char *user; - u_int msg_id; - response *res; -}; -typedef struct getmessage_1_argument getmessage_1_argument; - -#define STORE_SERVICE 666 -#define STORE_VERSION 1 - -#if defined(__STDC__) || defined(__cplusplus) -#define init 1 -extern enum clnt_stat init_1(void *, CLIENT *); -extern bool_t init_1_svc(void *, struct svc_req *); -#define store 2 -extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); -extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); -#define getNumMessages 3 -extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); -extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); -#define getMessage 4 -extern enum clnt_stat getmessage_1(char *, u_int , response *, int *, CLIENT *); -extern bool_t getmessage_1_svc(char *, u_int , response *, int *, struct svc_req *); -extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); - -#else /* K&R C */ -#define init 1 -extern enum clnt_stat init_1(); -extern bool_t init_1_svc(); -#define store 2 -extern enum clnt_stat store_1(); -extern bool_t store_1_svc(); -#define getNumMessages 3 -extern enum clnt_stat getnummessages_1(); -extern bool_t getnummessages_1_svc(); -#define getMessage 4 -extern enum clnt_stat getmessage_1(); -extern bool_t getmessage_1_svc(); -extern int store_service_1_freeresult (); -#endif /* K&R C */ - -/* the xdr functions */ - -#if defined(__STDC__) || defined(__cplusplus) -extern bool_t xdr_response (XDR *, response*); -extern bool_t xdr_response (XDR *, response*); -extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); -extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); - -#else /* K&R C */ -extern bool_t xdr_response (); -extern bool_t xdr_response (); -extern bool_t xdr_store_1_argument (); -extern bool_t xdr_getmessage_1_argument (); - -#endif /* K&R C */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/lab2/rpc_store_service (copy)/store_service.x b/lab2/rpc_store_service (copy)/store_service.x deleted file mode 100644 index ff6866a..0000000 --- a/lab2/rpc_store_service (copy)/store_service.x +++ /dev/null @@ -1,18 +0,0 @@ -const MAX_SIZE = 256; -const MAX_MD5 = 33; - -struct response{ - string msg; - string md5; -}; -typedef struct response response; - -program STORE_SERVICE{ - version STORE_VERSION{ - void init() = 1; - int store(string sender, string receiver, - unsigned int msg_id, string msg, string md5) = 2; - int getNumMessages(string user) = 3; - int getMessage(string user, unsigned int msg_id, response *res) = 4; - } = 1; -} = 666; \ No newline at end of file diff --git a/lab2/rpc_store_service (copy)/store_service_client b/lab2/rpc_store_service (copy)/store_service_client deleted file mode 100755 index 829c6fbea7a8b8113b0d51a93b0c9e5b3d5334fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24408 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 GNBl3E)|>+X diff --git a/lab2/rpc_store_service (copy)/store_service_client.c b/lab2/rpc_store_service (copy)/store_service_client.c deleted file mode 100644 index a993fae..0000000 --- a/lab2/rpc_store_service (copy)/store_service_client.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - - -void -store_service_1(char *host) -{ - CLIENT *clnt; - /* - enum clnt_stat retval_1; - void *result_1; - enum clnt_stat retval_2; - int result_2; - char *store_1_sender; - char *store_1_receiver; - u_int store_1_msg_id; - char *store_1_msg; - char *store_1_md5; - enum clnt_stat retval_3; - int result_3; - char *getnummessages_1_user; - enum clnt_stat retval_4; - response result_4; - char *getmessage_1_user; - u_int getmessage_1_msg_id; - -#ifndef DEBUG - clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror (host); - exit (1); - } -#endif *//* DEBUG */ - /* - retval_1 = init_1(&result_1, clnt); - if (retval_1 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_2 = store_1(store_1_sender, store_1_receiver, store_1_msg_id, store_1_msg, store_1_md5, &result_2, clnt); - if (retval_2 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_3 = getnummessages_1(getnummessages_1_user, &result_3, clnt); - if (retval_3 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_4 = getmessage_1(getmessage_1_user, getmessage_1_msg_id, &result_4, clnt); - if (retval_4 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } -#ifndef DEBUG - clnt_destroy (clnt); -#endif *//* DEBUG */ - clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror (host); - exit (1); - } - int result; - init_1(&result, clnt); - printf("Result of init: %d\n",result); - store_1("sender1", "receiver1", 1, "blablabla", "blablamd5", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver2", 2, "blablabla2", "blablamd52", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 1, "blablabla11", "blablamd511", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 2, "blablabla22", "blablamd522", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 3, "blablabla22", "blablamd533", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 3, "blablabla3", "blablamd53", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 4, "blablabla4", "blablamd54", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 5, "blablabla5", "blablamd55", &result, clnt); - printf("Result of the send: %d\n", result); - - response res; - getmessage_1("sender1", 1, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender2", 2, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender1", 4, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender3", 1, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Length msg: %d\n", strleng(res.msg)); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender1", 6, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Length msg: %d\n", strleng(res.msg)); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - - - - - - clnt_destroy (clnt); -} - - -int -main (int argc, char *argv[]) -{ - char *host; - /* - if (argc < 2) { - printf ("usage: %s server_host\n", argv[0]); - exit (1); - } - */ - host = "127.0.0.1"; - store_service_1 (host); -exit (0); -} diff --git a/lab2/rpc_store_service (copy)/store_service_client.o b/lab2/rpc_store_service (copy)/store_service_client.o deleted file mode 100644 index 0e815cb86607de320ee597ac2fd59410cf812326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14864 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 Dskt|8 diff --git a/lab2/rpc_store_service (copy)/store_service_clnt.c b/lab2/rpc_store_service (copy)/store_service_clnt.c deleted file mode 100644 index 20c4bc7..0000000 --- a/lab2/rpc_store_service (copy)/store_service_clnt.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include /* for memset */ -#include "store_service.h" - -/* Default timeout can be changed using clnt_control() */ -static struct timeval TIMEOUT = { 25, 0 }; - -enum clnt_stat -init_1(void *clnt_res, CLIENT *clnt) -{ - return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, - (xdrproc_t) xdr_void, (caddr_t) clnt_res, - TIMEOUT)); - -} - -enum clnt_stat -store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) -{ - store_1_argument arg; - arg.sender = sender; - arg.receiver = receiver; - arg.msg_id = msg_id; - arg.msg = msg; - arg.md5 = md5; - return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} - -enum clnt_stat -getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) -{ - return (clnt_call(clnt, getNumMessages, - (xdrproc_t) xdr_wrapstring, (caddr_t) &user, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} - -enum clnt_stat -getmessage_1(char *user, u_int msg_id, response *res, int *clnt_res, CLIENT *clnt) -{ - getmessage_1_argument arg; - arg.user = user; - arg.msg_id = msg_id; - arg.res = res; - return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} diff --git a/lab2/rpc_store_service (copy)/store_service_clnt.o b/lab2/rpc_store_service (copy)/store_service_clnt.o deleted file mode 100644 index d7481f3537da16b13e5297a4f63214f87ef25725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12720 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 L{Xk4M?*D%Q^qmfD diff --git a/lab2/rpc_store_service (copy)/store_service_server b/lab2/rpc_store_service (copy)/store_service_server deleted file mode 100755 index d9ce0ed54c417b4158cdeb5c0b4574c898c382bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29184 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 diff --git a/lab2/rpc_store_service (copy)/store_service_server.c b/lab2/rpc_store_service (copy)/store_service_server.c deleted file mode 100644 index 6bf8516..0000000 --- a/lab2/rpc_store_service (copy)/store_service_server.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - -/* Define the structure of the message list */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* Initialize the lists to NULL */ - usr_head = NULL; - //usr_head->next = NULL; - //usr_head->sent_msgs_head = NULL; - - return retval; -} - -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - // printf("sender: %s\n", sender); - // printf("receiver: %s\n", receiver); - // printf("msg_id: %d\n", msg_id); - // printf("msg: %s\n", msg); - // printf("md5: %s\n", md5); - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - printf("name: %s\n", temp->name); - if(strcmp(temp->name, sender) == 0){ //User found in the list - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - //if(*result == -1) return retval; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->name, sender); - temp->next = NULL; - temp->sent_msgs_head = NULL; - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *res, int *result, struct svc_req *rqstp) -{ - //result = (response *) malloc(sizeof(response)); - bool_t retval = TRUE; - - struct user *temp = usr_head; - struct msg *msg_temp; - printf("he1\n"); - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - printf("he1\n"); - /* Search for the message with that ID */ - msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - printf("hey2\n"); - printf("Message id: %d\n", msg_temp->id); - if(msg_temp->id == msg_id){ //Message ID found - printf("hey3\n"); - strncpy(res->msg, msg_temp->body, strlen(msg_temp->body)+1); - strncpy(res->md5, msg_temp->md5, strlen(msg_temp->md5)+1); - //res->msg = msg_temp->body; - //res->md5 = malloc(sizeof(msg_temp->md5)); - //res->md5 = msg_temp->md5; - printf("MEssage body: %s\n", msg_temp->body); - printf("MEssage body check: %s\n", res->msg); - printf("MEssage md5: %s\n", msg_temp->md5); - printf("hey4\n"); - //strncpy(res->md5, msg_temp->md5, strlen(msg_temp->md5)+1); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - printf("hey\n"); - res = NULL; - printf("hey\n"); - return retval; - } - temp = temp->next; - } - res = NULL; //User was not found, thus message does not exist - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - /* - * Insert additional freeing code here, if needed - */ - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - // if (*msg_head == NULL){ /* Queue is empty */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - // else{ - // /* If the queue is not empty, append it to the beginning */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - - return 0; -} diff --git a/lab2/rpc_store_service (copy)/store_service_server.o b/lab2/rpc_store_service (copy)/store_service_server.o deleted file mode 100644 index be3eb2456ef94f90fdf3fd59c990f5341dc9b10b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16696 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 diff --git a/lab2/rpc_store_service (copy)/store_service_svc.c b/lab2/rpc_store_service (copy)/store_service_svc.c deleted file mode 100644 index 4d78591..0000000 --- a/lab2/rpc_store_service (copy)/store_service_svc.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "store_service.h" -#include -#include -#include -#include -#include -#include -#include - -#ifndef SIG_PF -#define SIG_PF void(*)(int) -#endif - -int -_init_1 (void *argp, void *result, struct svc_req *rqstp) -{ - return (init_1_svc(result, rqstp)); -} - -int -_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) -{ - return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); -} - -int -_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) -{ - return (getnummessages_1_svc(*argp, result, rqstp)); -} - -int -_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) -{ - return (getmessage_1_svc(argp->user, argp->msg_id, argp->res, result, rqstp)); -} - -static void -store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) -{ - union { - store_1_argument store_1_arg; - char *getnummessages_1_arg; - getmessage_1_argument getmessage_1_arg; - } argument; - union { - int store_1_res; - int getnummessages_1_res; - int getmessage_1_res; - } result; - bool_t retval; - xdrproc_t _xdr_argument, _xdr_result; - bool_t (*local)(char *, void *, struct svc_req *); - - switch (rqstp->rq_proc) { - case NULLPROC: - (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); - return; - - case init: - _xdr_argument = (xdrproc_t) xdr_void; - _xdr_result = (xdrproc_t) xdr_void; - local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; - break; - - case store: - _xdr_argument = (xdrproc_t) xdr_store_1_argument; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; - break; - - case getNumMessages: - _xdr_argument = (xdrproc_t) xdr_wrapstring; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; - break; - - case getMessage: - _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; - break; - - default: - svcerr_noproc (transp); - return; - } - memset ((char *)&argument, 0, sizeof (argument)); - if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - svcerr_decode (transp); - return; - } - retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); - if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { - svcerr_systemerr (transp); - } - if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - fprintf (stderr, "%s", "unable to free arguments"); - exit (1); - } - if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) - fprintf (stderr, "%s", "unable to free results"); - - return; -} - -int -main (int argc, char **argv) -{ - register SVCXPRT *transp; - - pmap_unset (STORE_SERVICE, STORE_VERSION); - - transp = svcudp_create(RPC_ANYSOCK); - if (transp == NULL) { - fprintf (stderr, "%s", "cannot create udp service."); - exit(1); - } - if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { - fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); - exit(1); - } - - transp = svctcp_create(RPC_ANYSOCK, 0, 0); - if (transp == NULL) { - fprintf (stderr, "%s", "cannot create tcp service."); - exit(1); - } - if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { - fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); - exit(1); - } - - svc_run (); - fprintf (stderr, "%s", "svc_run returned"); - exit (1); - /* NOTREACHED */ -} diff --git a/lab2/rpc_store_service (copy)/store_service_svc.o b/lab2/rpc_store_service (copy)/store_service_svc.o deleted file mode 100644 index 6bd1add8d44d4e8c962065a08e8f0cf5ea010a69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20616 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 diff --git a/lab2/rpc_store_service (copy)/store_service_xdr.c b/lab2/rpc_store_service (copy)/store_service_xdr.c deleted file mode 100644 index e75dc70..0000000 --- a/lab2/rpc_store_service (copy)/store_service_xdr.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "store_service.h" - -bool_t -xdr_response (XDR *xdrs, response *objp) -{ - register int32_t *buf; - - if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) - return FALSE; - return TRUE; -} - -bool_t -xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) -{ - if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->msg_id)) - return FALSE; - if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) - return FALSE; - return TRUE; -} - -bool_t -xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) -{ - if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->msg_id)) - return FALSE; - if (!xdr_pointer (xdrs, (char **)&objp->res, sizeof (response), (xdrproc_t) xdr_response)) - return FALSE; - return TRUE; -} diff --git a/lab2/rpc_store_service (copy)/store_service_xdr.o b/lab2/rpc_store_service (copy)/store_service_xdr.o deleted file mode 100644 index 7a6c4daa514bc474501475f15e1689973635596d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7440 zcmb_geQX>@6`#Gc@7BK9KF6`^C@DG8ICZ4@YzN292Tj~KPA(+`lQz(ZitBxB>?6Jp zcK4EVnxuu0Qq!VRs?s8*$sg?>5lR6eL`x*37LW=mqAEh6e}M!PN?VBp1PTx}yx+{5 z%X)lP#K%at^XB*7`^|fAW@mTr!HGRPLzX3Uv&2?$eWXz#;=R}9F)5CTWujB;PtCoR zI{98aHFx|FFp zB=@W6CnKL-Mwu#wH-e;I2@xPQLv;-#(u`8qik%j*SCSa9u>pvO#Ao(N;9j~)-y#W$_4A}& zs#Z51UG`PNyNceFh<0PslbqimqCJppMHTIZuiVT1(G`CnS*}oYrLBanrjxW6Y`Jt(Z0tg<5N4if#cPIRG8)IE==8ww(# zxKI|w(HG=6Rp)rW&e1oIqYnzj(NB`FI<3C;u2{HzMSG{UG#bB&v^^r+zB#rfw!4cC zyEP&f+Zqc~y_#5T7oxd?P+E0#u!?qB;r3VzP8JRAwmQQ`GHbbAz^HYt>|#yQc6XPy zUeZt2E6J{nCbsp&?L=u`r|jsqZe6~+3+(Y`$$yT*x`; zTHa0O5QslpalGU-9`#zJJhVvL#V-^c(vt)qX*iFHAlX_}`Xq;2tiRbWRPDE_2iE`9 ze&H+$_E`)yf?;TN7oE)^N_?hVno7tE9*?zjHsd*>nwEpSo1Sv~qT_j)DJMOg&bU+6 zq9e@+CzB7YmjNCvmmG2}S46g4o=N)+v#nC{f*wKX9TVdp+c6>1>0BmHGx)-Fa!%ne zYj^IOm=M>4s+PRMRLRLFbU-TmKrD5O+;qkjo>R&bQ;ia!MM6}b<5$X_Us9xXYw&r~ zW!F#4gBs`SA5G^yA8R2qnAj^bAhbvu!FRkPjz_i2yA`*btEV4`v4%RTD9Fl#DXLXV zSE@d86}$HCPmB)_CpIKUl0%90L&Kv(qeGh#14X}Da_*RNN{(B|(JpMBxVgsJ;THvi@pm zIV|$c&QdW|S?Z!&IGphvF*sc=I)hWhF?gix9`Y)goHMwiKp_>fv;_G9y3Ks2=nc+f zvg>i*zjV)#BEQB~kk;bknXR3_r9CE_b%a9}bPTMMC$Hh0=W(I5qjGsOw*^>+e%)As+*E z{Xe=MuPsmz5XNcJpoMXYG-zRdpEgxtA>VpUm{{avz5y;D&kgX_1sH(v z!gqIR7Z&uaYS6->qX7z@wgotz;Y$N`kZVKOYWm^(!fbdP!(Q9z$NF}{8`kLPC(VxaF3@0s(SUBY9Cny*Lj%s z-&({TUnOX;N1ZhP6@b)Co>g2g6F;yB{y+c^@;}Wuc2;oppAXnCC7q5(e$CMs_F5*f zz5{``(C=aP?}UAuf_FzUfMedhJl<~L@9=oH zfnVe}Ck^}+9)Hrnuku)*H9D_BVigCTK^t`id_l#lx z9>;UmzkRxc#&;RG-XC`xcqiwZHt^r^_>h60Vf!Nnj7a6}~;Q0DN zyK3MY6fA7k>wKqqoZ?5U#_wYPl7VagCl|rb82CNR^9=)ko#XkQfuCgjhX!tOoPRWM z&Honz@8EggH}Lv-fv-_&I$zDd&cHR#h=H%?c(yW*=@^o{`wjaF$CESgUF>w+z|Tt- zA--tvXBa(MKYi9Ga{MwJdu=W-pN+! ztDkd-4D9RZ#H(Jc|b+FJU7 zlW#LXvi;MXh;b9fA0XiTZ~aHf*W|=hdj96%W^7hA;>;({_?{jpBc^M>%PK#1Bd{ew>FUCp@>YVa!k(Ly;%j zM)TYB&mNlICzu~+gE@bdFmUQPNtErb7S;bbcnA=r=hyv1jG6wMmMDMy+*6~4{&VcF z^|~*yzaHye&#T90NC0MpDJtw=(}vvZ{5AY_5*pPn!SzeAA?k-)Qv2(=;(gz|ci=M3 q{^u|VG&BB2vBUgrj{hg@K!1G7?-g@?EK{TTzs)aRF31ASod4hAoVdyW diff --git a/lab2/rpc_store_service/Makefile b/lab2/rpc_store_service/Makefile deleted file mode 100644 index 3f7252c..0000000 --- a/lab2/rpc_store_service/Makefile +++ /dev/null @@ -1,47 +0,0 @@ - -# This is a template Makefile generated by rpcgen - -# Parameters - -CLIENT = store_service_client -SERVER = store_service_server - -SOURCES_CLNT.c = -SOURCES_CLNT.h = -SOURCES_SVC.c = -SOURCES_SVC.h = -SOURCES.x = store_service.x - -TARGETS_SVC.c = store_service_svc.c store_service_server.c store_service_xdr.c -TARGETS_CLNT.c = store_service_clnt.c store_service_client.c store_service_xdr.c -TARGETS = store_service.h store_service_xdr.c store_service_clnt.c store_service_svc.c store_service_client.c store_service_server.c - -OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) -OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) -# Compiler flags - -CPPFLAGS += -D_REENTRANT -CFLAGS += -g -LDLIBS += -lnsl -lpthread - RPCGENFLAGS = - -# Targets - -all : $(CLIENT) $(SERVER) - -$(TARGETS) : $(SOURCES.x) - rpcgen $(RPCGENFLAGS) $(SOURCES.x) - -$(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) - -$(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) - -$(CLIENT) : $(OBJECTS_CLNT) - $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) - -$(SERVER) : $(OBJECTS_SVC) - $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) - - clean: - $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) - diff --git a/lab2/rpc_store_service/segurodevida.c b/lab2/rpc_store_service/segurodevida.c deleted file mode 100644 index 601ff5b..0000000 --- a/lab2/rpc_store_service/segurodevida.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - -/* Define the structure of the message list */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct msg * msg_head; -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* Initialize the lists to NULL */ - usr_head = NULL; - usr_head->next = NULL; - usr_head->sent_msgs_head = NULL; - - return retval; -} - -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - printf("1\n"); - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - printf("2\n"); - if(strcmp(temp->name, sender) == 0){ //User found in the list - printf("3\n"); - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("4\n"); - if(*result == -1) return retval; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->name, sender); - printf("5\n"); - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("6\n"); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - if(msg_temp->id == msg_id){ //Message ID found - strcpy(result->msg, msg_temp->body); - strcpy(result->md5, msg_temp->md5); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - result = NULL; - return retval; - } - temp = temp->next; - } - result = NULL; //User was not found, thus message does not exist - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - /* - * Insert additional freeing code here, if needed - */ - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - // if (*msg_head == NULL){ /* Queue is empty */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - // else{ - // /* If the queue is not empty, append it to the beginning */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - - return 0; -} diff --git a/lab2/rpc_store_service/store_service.h b/lab2/rpc_store_service/store_service.h deleted file mode 100644 index 25dff07..0000000 --- a/lab2/rpc_store_service/store_service.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#ifndef _STORE_SERVICE_H_RPCGEN -#define _STORE_SERVICE_H_RPCGEN - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define MAX_SIZE 256 -#define MAX_MD5 33 - -struct response { - char *msg; - char *md5; -}; -typedef struct response response; - -struct store_1_argument { - char *sender; - char *receiver; - u_int msg_id; - char *msg; - char *md5; -}; -typedef struct store_1_argument store_1_argument; - -struct getmessage_1_argument { - char *user; - u_int msg_id; -}; -typedef struct getmessage_1_argument getmessage_1_argument; - -#define STORE_SERVICE 666 -#define STORE_VERSION 1 - -#if defined(__STDC__) || defined(__cplusplus) -#define init 1 -extern enum clnt_stat init_1(void *, CLIENT *); -extern bool_t init_1_svc(void *, struct svc_req *); -#define store 2 -extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); -extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); -#define getNumMessages 3 -extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); -extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); -#define getMessage 4 -extern enum clnt_stat getmessage_1(char *, u_int , response *, CLIENT *); -extern bool_t getmessage_1_svc(char *, u_int , response *, struct svc_req *); -extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); - -#else /* K&R C */ -#define init 1 -extern enum clnt_stat init_1(); -extern bool_t init_1_svc(); -#define store 2 -extern enum clnt_stat store_1(); -extern bool_t store_1_svc(); -#define getNumMessages 3 -extern enum clnt_stat getnummessages_1(); -extern bool_t getnummessages_1_svc(); -#define getMessage 4 -extern enum clnt_stat getmessage_1(); -extern bool_t getmessage_1_svc(); -extern int store_service_1_freeresult (); -#endif /* K&R C */ - -/* the xdr functions */ - -#if defined(__STDC__) || defined(__cplusplus) -extern bool_t xdr_response (XDR *, response*); -extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); -extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); - -#else /* K&R C */ -extern bool_t xdr_response (); -extern bool_t xdr_store_1_argument (); -extern bool_t xdr_getmessage_1_argument (); - -#endif /* K&R C */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/lab2/rpc_store_service/store_service_client b/lab2/rpc_store_service/store_service_client deleted file mode 100755 index 2e88530f16727f06213afba80c27833d3830590c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24328 zcmeHv33Oc5ndYtiJ;_#;CE1oS#^qpx!XQ}^vJntMX(_t|vL&<_7%*imr3IvtP*r(L zhz$lBVa(VA>2?xk!jc3!O%f+0#6UMTyUBEjlK^pNGIN|x;K(716NuY{ZZzL_mr_-! zlul2dnarHSvvu!(|NZ{=zWe_B>bo_^Wd&M4dAv0aKr;(8AQlL)Nr6eS|cq>bvKw zrm2MpN(ANTYv3%|M7>D@rrxXl*sp6N$0p^32Tqaf8iiI-pnd@LA1E0ALv}NGU+C)89XW-`$p^r@&cmyJS3})aFu=FvOfiFm7g^29> zr4`xj`ShZoh}?cS>6!c)h>=|{SkGrL0i0TOD_Evh+=kM>Gz5t4K{A~yJ zZHDT^CfUB2ZHD4Rn{3yx&90sZ$@Y0{bLdV~$@W8KLD9b#ZFyAxs(Ir3*GDG)F|zCD zC)+xkUp{c!-3l<6yo`>fiW0qt;((+Ru>Q6}jctQo*wyxS$|1aWeAkOmx_(gEBiYyoq+!$HLnYTlW{n<@g>h@pd9Z=ONWBE07iCQCQ_ca?}c1i*>5Q@ zb#&v2?T{gi84!p}+GeSgmcb$&xzWL}?g40rrSSf~$Zq!vE`Vs9 zu09MjxWh+LA4Yv_cld87!pG4%fYv1HM^V$Y{b|>rYfl#hZr(q&YWqUEH;l4*;+6V? zTsR{W-+!t!0OvUUlyi~YsndOt3u>iZO!MphWojzza4_Bfi7pz%pN_%0lQ6_MOirzu zCk?rB4RJ+&#+5ddRvLoRV-u;@A`@Nc-nzpxdwmT3I=(ynn(8IuV2mDtQ3T-T!&9s7 zU%=kogHrbHaZE$@Zj!xor;Xpn^FV!a6^f@gw9kY9 zDJ8eeqU63jN-n384OAjKFFol&bMj-eC~3{394 zJu|K38?z{R@eea&au1b!hMr6-k%1kVMaj-QO1?lPU!xMvD&>h(Qa+24OY$grib`Ij z60YMJN`A(^=ZVRw_kdT^={Tl!Wa2rwo~R-HCM>HtaTF@moOn?RV0FO6n*cl!evK#4 zONZW0vpke$dFjymY3$t!I~f752f4aZw^?H4bT;-mnup|UsLf+PoL2twqzyQa{g0$s zGVRY%*c|((PS5B+!>{{~pv~yN6wv(#oX7q{X_id;cPng;{ml}a)qkE6hl&uP$=W>j z!)fK{Kj1v}Kayt2v_D5-bL^k`ry2d{6<_xsGi*lxrGV}~;5_ypO0#6zzguB*>~B`s zV`}LQ1?60v_|eqSy;%Bqy-?RFTrbWCXL@N5PTc%UT;GmIUJjpLfKZW{GjcaPJ_P^8 z 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 diff --git a/lab2/rpc_store_service/store_service_client.c b/lab2/rpc_store_service/store_service_client.c deleted file mode 100644 index 6d94e6b..0000000 --- a/lab2/rpc_store_service/store_service_client.c +++ /dev/null @@ -1,135 +0,0 @@ - -#include "store_service.h" - - -void -store_service_1(char *host) -{ - CLIENT *clnt; - /* - enum clnt_stat retval_1; - void *result_1; - enum clnt_stat retval_2; - int result_2; - char *store_1_sender; - char *store_1_receiver; - u_int store_1_msg_id; - char *store_1_msg; - char *store_1_md5; - enum clnt_stat retval_3; - int result_3; - char *getnummessages_1_user; - enum clnt_stat retval_4; - response result_4; - char *getmessage_1_user; - u_int getmessage_1_msg_id; - -#ifndef DEBUG - clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror (host); - exit (1); - } -#endif *//* DEBUG */ - /* - retval_1 = init_1(&result_1, clnt); - if (retval_1 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_2 = store_1(store_1_sender, store_1_receiver, store_1_msg_id, store_1_msg, store_1_md5, &result_2, clnt); - if (retval_2 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_3 = getnummessages_1(getnummessages_1_user, &result_3, clnt); - if (retval_3 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_4 = getmessage_1(getmessage_1_user, getmessage_1_msg_id, &result_4, clnt); - if (retval_4 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } -#ifndef DEBUG - clnt_destroy (clnt); -#endif *//* DEBUG */ - clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror (host); - exit (1); - } - int result; - init_1(&result, clnt); - printf("Result of init: %d\n",result); - store_1("sender1", "receiver1", 1, "blablabla", "blablamd5", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver2", 2, "blablabla2", "blablamd52", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 1, "blablabla11", "blablamd511", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 2, "blablabla22", "blablamd522", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 3, "blablabla22", "blablamd533", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 3, "blablabla3", "blablamd53", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 4, "blablabla4", "blablamd54", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 5, "blablabla5", "blablamd55", &result, clnt); - printf("Result of the send: %d\n", result); - - response res; - int size; - getmessage_1("sender1", 1, &res, clnt); - printf("Result of the receive: %d\n", result); - size = strlen(res.msg); - printf("Length msg: %d\n", size); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender2", 2, &res, clnt); - printf("Result of the receive: %d\n", result); - size = strlen(res.msg); - printf("Length msg: %d\n", size); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender1", 4, &res, clnt); - printf("Result of the receive: %d\n", result); - size = strlen(res.msg); - printf("Length msg: %d\n", size); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender3", 1, &res, clnt); - printf("Result of the receive: %d\n", result); - size = strlen(res.msg); - printf("Length msg: %d\n", size); - - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender1", 6, &res, clnt); - printf("Result of the receive: %d\n", result); - size = strlen(res.msg); - printf("Length msg: %d\n", size); - - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - - - - - - clnt_destroy (clnt); -} - - -int -main (int argc, char *argv[]) -{ - char *host; - /* - if (argc < 2) { - printf ("usage: %s server_host\n", argv[0]); - exit (1); - } - */ - host = "127.0.0.1"; - store_service_1 (host); -exit (0); -} diff --git a/lab2/rpc_store_service/store_service_client.o b/lab2/rpc_store_service/store_service_client.o deleted file mode 100644 index 84774fb114b93186200b3d4983b2f278b9522607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15456 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 /* for memset */ -#include "store_service.h" - -/* Default timeout can be changed using clnt_control() */ -static struct timeval TIMEOUT = { 25, 0 }; - -enum clnt_stat -init_1(void *clnt_res, CLIENT *clnt) -{ - return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, - (xdrproc_t) xdr_void, (caddr_t) clnt_res, - TIMEOUT)); - -} - -enum clnt_stat -store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) -{ - store_1_argument arg; - arg.sender = sender; - arg.receiver = receiver; - arg.msg_id = msg_id; - arg.msg = msg; - arg.md5 = md5; - return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} - -enum clnt_stat -getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) -{ - return (clnt_call(clnt, getNumMessages, - (xdrproc_t) xdr_wrapstring, (caddr_t) &user, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} - -enum clnt_stat -getmessage_1(char *user, u_int msg_id, response *clnt_res, CLIENT *clnt) -{ - getmessage_1_argument arg; - arg.user = user; - arg.msg_id = msg_id; - return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, - (xdrproc_t) xdr_response, (caddr_t) clnt_res, - TIMEOUT)); -} diff --git a/lab2/rpc_store_service/store_service_clnt.o b/lab2/rpc_store_service/store_service_clnt.o deleted file mode 100644 index caf03e41c842e025264f766c9b5542e068e7223f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12696 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 aF?_$qlHmUFHn))f9rR)KH1OSx`~P3cWCTe7 diff --git a/lab2/rpc_store_service/store_service_server b/lab2/rpc_store_service/store_service_server deleted file mode 100755 index 7f84b2495ca634c03c2b7b0c74bdc48db5b3bdf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28960 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 C3&NEE diff --git a/lab2/rpc_store_service/store_service_server.c b/lab2/rpc_store_service/store_service_server.c deleted file mode 100644 index fd2b220..0000000 --- a/lab2/rpc_store_service/store_service_server.c +++ /dev/null @@ -1,161 +0,0 @@ - -#include "store_service.h" - -/* Define the structure of the message list */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* Initialize the lists to NULL */ - usr_head = NULL; - - return retval; -} - -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - if(strcmp(temp->name, sender) == 0){ //User found in the list - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - if(*result == -1) return retval; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->name, sender); - temp->next = NULL; - temp->sent_msgs_head = NULL; - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - /* Initialize the strings of */ - result->msg = calloc(MAX_SIZE, sizeof(char)); - result->md5 = calloc(MAX_MD5, sizeof(char)); - - struct user *temp = usr_head; - struct msg *msg_temp; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - if(msg_temp->id == msg_id){ //Message ID found - strncpy(result->msg, msg_temp->body, strlen(msg_temp->body)+1); - strncpy(result->md5, msg_temp->md5, strlen(msg_temp->md5)+1); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - return retval; - } - temp = temp->next; - } - /* User was not found, thus message does not exist */ - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - - return 0; -} diff --git a/lab2/rpc_store_service/store_service_server.o b/lab2/rpc_store_service/store_service_server.o deleted file mode 100644 index af6dd76829f69736095985b5aa02a4a6d9ab4724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15752 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 diff --git a/lab2/rpc_store_service/store_service_svc.c b/lab2/rpc_store_service/store_service_svc.c deleted file mode 100644 index 2bf4954..0000000 --- a/lab2/rpc_store_service/store_service_svc.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "store_service.h" -#include -#include -#include -#include -#include -#include -#include - -#ifndef SIG_PF -#define SIG_PF void(*)(int) -#endif - -int -_init_1 (void *argp, void *result, struct svc_req *rqstp) -{ - return (init_1_svc(result, rqstp)); -} - -int -_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) -{ - return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); -} - -int -_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) -{ - return (getnummessages_1_svc(*argp, result, rqstp)); -} - -int -_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) -{ - return (getmessage_1_svc(argp->user, argp->msg_id, result, rqstp)); -} - -static void -store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) -{ - union { - store_1_argument store_1_arg; - char *getnummessages_1_arg; - getmessage_1_argument getmessage_1_arg; - } argument; - union { - int store_1_res; - int getnummessages_1_res; - response getmessage_1_res; - } result; - bool_t retval; - xdrproc_t _xdr_argument, _xdr_result; - bool_t (*local)(char *, void *, struct svc_req *); - - switch (rqstp->rq_proc) { - case NULLPROC: - (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); - return; - - case init: - _xdr_argument = (xdrproc_t) xdr_void; - _xdr_result = (xdrproc_t) xdr_void; - local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; - break; - - case store: - _xdr_argument = (xdrproc_t) xdr_store_1_argument; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; - break; - - case getNumMessages: - _xdr_argument = (xdrproc_t) xdr_wrapstring; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; - break; - - case getMessage: - _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; - _xdr_result = (xdrproc_t) xdr_response; - local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; - break; - - default: - svcerr_noproc (transp); - return; - } - memset ((char *)&argument, 0, sizeof (argument)); - if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - svcerr_decode (transp); - return; - } - retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); - if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { - svcerr_systemerr (transp); - } - if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - fprintf (stderr, "%s", "unable to free arguments"); - exit (1); - } - if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) - fprintf (stderr, "%s", "unable to free results"); - - return; -} - -int -main (int argc, char **argv) -{ - register SVCXPRT *transp; - - pmap_unset (STORE_SERVICE, STORE_VERSION); - - transp = svcudp_create(RPC_ANYSOCK); - if (transp == NULL) { - fprintf (stderr, "%s", "cannot create udp service."); - exit(1); - } - if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { - fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); - exit(1); - } - - transp = svctcp_create(RPC_ANYSOCK, 0, 0); - if (transp == NULL) { - fprintf (stderr, "%s", "cannot create tcp service."); - exit(1); - } - if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { - fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); - exit(1); - } - - svc_run (); - fprintf (stderr, "%s", "svc_run returned"); - exit (1); - /* NOTREACHED */ -} diff --git a/lab2/rpc_store_service/store_service_svc.o b/lab2/rpc_store_service/store_service_svc.o deleted file mode 100644 index fb15e5931869fe419846473e7b4f82823ee93674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20624 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 Ke3L0;Rq?<5ohJ+c diff --git a/lab2/rpc_store_service/store_service_xdr.c b/lab2/rpc_store_service/store_service_xdr.c deleted file mode 100644 index ecef5da..0000000 --- a/lab2/rpc_store_service/store_service_xdr.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "store_service.h" - -bool_t -xdr_response (XDR *xdrs, response *objp) -{ - register int32_t *buf; - - if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) - return FALSE; - return TRUE; -} - -bool_t -xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) -{ - if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->msg_id)) - return FALSE; - if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) - return FALSE; - return TRUE; -} - -bool_t -xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) -{ - if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->msg_id)) - return FALSE; - return TRUE; -} diff --git a/lab2/rpc_store_service/store_service_xdr.o b/lab2/rpc_store_service/store_service_xdr.o deleted file mode 100644 index ae406f5bd8a3ac8528cfb907288a241090bb42a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7200 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 diff --git a/lab2/segurodevida.c b/lab2/segurodevida.c deleted file mode 100644 index 601ff5b..0000000 --- a/lab2/segurodevida.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - -/* Define the structure of the message list */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct msg * msg_head; -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* Initialize the lists to NULL */ - usr_head = NULL; - usr_head->next = NULL; - usr_head->sent_msgs_head = NULL; - - return retval; -} - -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - printf("1\n"); - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - printf("2\n"); - if(strcmp(temp->name, sender) == 0){ //User found in the list - printf("3\n"); - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("4\n"); - if(*result == -1) return retval; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->name, sender); - printf("5\n"); - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("6\n"); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - if(msg_temp->id == msg_id){ //Message ID found - strcpy(result->msg, msg_temp->body); - strcpy(result->md5, msg_temp->md5); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - result = NULL; - return retval; - } - temp = temp->next; - } - result = NULL; //User was not found, thus message does not exist - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - /* - * Insert additional freeing code here, if needed - */ - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - // if (*msg_head == NULL){ /* Queue is empty */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - // else{ - // /* If the queue is not empty, append it to the beginning */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - - return 0; -} diff --git a/lab2/server b/lab2/server deleted file mode 100755 index cd515d92dc490e3d5cc32d7af79c0a059b974e50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37168 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 Jb8gA{{~zJ3EYJV| diff --git a/lab2/server.c b/lab2/server.c deleted file mode 100644 index 00fc3fa..0000000 --- a/lab2/server.c +++ /dev/null @@ -1,629 +0,0 @@ -#include /* For addresses in PF_INET */ -#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ -#include -#include /* To use ifreq */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" -#include "msg_list.h" -#include "server.h" - -/* Handler for interrupts */ -void interruptHandler(int sig){ - printf("[SERVER]: Handling interrupt. Closing server socket...\n"); - /* Close the server socket and exit with the resulting return value. 0 if OK, -1 if error */ - exit(close(s_server)); -} - -int main(int argc, char * argv[]){ - struct sockaddr_in server_addr, client_addr; - int sc; - int val; - int server_port; - - /* Check command */ - if(argc != 3 || strcmp(argv[1],"-p") != 0){ - printf("Usage: ./server -p \n"); - exit(-1); - } - - /* Check if the port number passed as parameter is valid */ - server_port = atoi(argv[2]); - if ((server_port < 1024) || (server_port > 65535)) { - printf("Error: Port must be in the range 1024 <= port <= 65535\n"); - exit(-1); - } - - /* Initialize mutexes */ - if(pthread_mutex_init(&socket_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_mutex_init(&list_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - /* Initialize condition variable for copying the socket descriptor in the thread */ - if(pthread_cond_init(&free_socket, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - - /* Prepare thread conditions */ - thread = (pthread_t) malloc((sizeof(thread))); - pthread_attr_init(&thread_att); - pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); - - s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ - if(s_server == -1){ - perror("Error when creating the socket"); - exit(-1); - } - - /* Obtain the IP address attached to interface eth0 */ - struct ifreq ifr; - ifr.ifr_addr.sa_family = AF_INET; - strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1); - ioctl(s_server, SIOCGIFADDR, &ifr); - - val = 1; - setsockopt(s_server, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ - - /* Initialize the address that will be attached to the listening socket */ - bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ - server_addr.sin_family = AF_INET; - server_addr.sin_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; /* Listens to IP address in eth0 interface*/ - server_addr.sin_port = htons(server_port); /* Port number */ - - /* Bind the address to the listening socket */ - if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ - perror("Error when binding the address to the socket"); - exit(-1); - } - - /* Set the socket to listen incoming requests */ - if(listen(s_server, 5) == -1){ - perror("Error when listening to the socket"); - exit(-1); - } /* Backlog is 5, maximum number of queued requests is 5 */ - - /* Once the server is listening, print inicial prompt */ - printf("s> init server %s:%d\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), - ntohs(server_addr.sin_port)); - - /* Define the variable for the client address size. It should be declared - as variable because the size depends on the incoming request and is an - output parameter of the 'accept' function */ - socklen_t cl_addr_size = sizeof(client_addr); - - /* Set the control variable to TRUE so that the listening thread waits - until the thread stores a local copy of the socket descriptor */ - busy_socket = TRUE; - - signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ - fprintf(stderr, "%s", "s> "); /* Prompt */ - - /* Loop for accepting and creating threads for each incoming request */ - while(1){ - /* Accept client connections. If error, shut down the server */ - sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); - if(sc == -1){ - perror("Error when accepting the connection"); - /* Close listening server socket */ - close(s_server); - exit(-1); - } - /* Once accepted, create a thread to handle the request. If error, shut down the server */ - if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { - perror("[SERVER]: Error when creating the thread"); - /* Close both listening socket and the one resulting from the accept operation */ - close(s_server); - close(sc); - exit(-1); - } - - /* Wait for the thread to copy the socket descriptor locally */ - pthread_mutex_lock(&socket_mtx); - while(busy_socket == TRUE) - pthread_cond_wait(&free_socket, &socket_mtx); - busy_socket = TRUE; - pthread_mutex_unlock(&socket_mtx); - - } - - exit(0); -} - -void * manageRequest(int *sd){ - int s_local; - char operation_buff[MAX_COMMAND]; - char user_buff[MAX_USERNAME]; - char msg_buff[MAX_MSG]; - char md5_buff[MAX_MD5]; - int n; - int m; - char out; - - /* Copy locally the socket descriptor */ - pthread_mutex_lock(&socket_mtx); - s_local = *sd; - busy_socket = FALSE; - pthread_cond_signal(&free_socket); - pthread_mutex_unlock(&socket_mtx); - - /* Read the operation. If error, close the socket and terminate the thread */ - n = readLine(s_local, operation_buff, MAX_COMMAND); - if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Read the username and convert to uppercase. If error, close the socket - and terminate the thread */ - m = readLine(s_local, user_buff, MAX_USERNAME); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* For convention of the server, convert every username to uppercase */ - toUpperCase(user_buff); - - /* Check the operation */ - if (strcmp(operation_buff, "REGISTER") == 0){ - /* Register the user */ - pthread_mutex_lock(&list_mtx); - out = registerUser(user_buff); - pthread_mutex_unlock(&list_mtx); - - } - else if (strcmp(operation_buff, "UNREGISTER") == 0){ - /* Unregister the user */ - pthread_mutex_lock(&list_mtx); - out = unregisterUser(user_buff); - pthread_mutex_unlock(&list_mtx); - - } - else if(strcmp(operation_buff, "CONNECT") == 0){ - - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - uint16_t client_port; - - n = readLine(s_local, msg_buff, MAX_MSG); - if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Get the port number from the socket */ - client_port = (uint16_t) atoi(msg_buff); - /* Get the client IP address attached to the socket */ - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1){ - perror("[SERVER_THREAD]: Error when getting client address"); - /* Send error 3 to client and close socket */ - out = 3; - goto respond_to_client; - } - /* Connect the user to the server */ - pthread_mutex_lock(&list_mtx); - out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); - pthread_mutex_unlock(&list_mtx); - - - /* If result is 0, then check for the pending messages and send them */ - if(out == 0){ - /* Send code 0 for the client to open the listening thread */ - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - /* Send Pending Messages */ - pthread_mutex_lock(&list_mtx); - struct msg **pend_msg = getPendMsgHead(user_buff); - while(*pend_msg != NULL){ - pthread_mutex_unlock(&list_mtx); - char sender[MAX_USERNAME]; - char msg_body[MAX_MSG]; - - /* Get the name of the sender, the id and the body associated to the message to be sent */ - pthread_mutex_lock(&list_mtx); - strcpy(sender, (*pend_msg)->sender); - int msg_id = (*pend_msg)->id; - strcpy(msg_body, (*pend_msg)->body); - pthread_mutex_unlock(&list_mtx); - - /* Try to send the message. The 'stored' flag is set to 1 because the message - is already stored in the server */ - int err = sendMessage(sender, user_buff, msg_body, md5_buff, msg_id, 1); - - /* If the message could not be delivered/stored, then exit the loop */ - if(err != 0) goto destroy_thread; - - /* Send acknowledge to the sender. No return value is checked */ - sendAck(sender, msg_id); - - /* Remove the message from the pending message queue and iterate with the next message */ - pthread_mutex_lock(&list_mtx); - *pend_msg = dequeueMsg(&(*pend_msg)); - } - pthread_mutex_unlock(&list_mtx); - } - goto destroy_thread; - } - else if(strcmp(operation_buff, "DISCONNECT") == 0){ - /* Get the IP from which the command is being executed */ - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1){ - perror("Error when getting client address"); - /* Send error 3 to client and close socket */ - out = 3; - goto respond_to_client; - } - /* Try to disconnect the user passing the IP from which the request is being made - as parameter to the function */ - pthread_mutex_lock(&list_mtx); - out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); - pthread_mutex_unlock(&list_mtx); - - } - else if(strcmp(operation_buff, "SEND") == 0){ - /* Reserve a buffer for the username of the receiver */ - char dest_user_buff[MAX_USERNAME]; - - /* Read the destination user from the socket */ - m = readLine(s_local, dest_user_buff, MAX_USERNAME); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Convert username to uppercase by convention */ - toUpperCase(dest_user_buff); - - /* Read the message from the socket */ - n = readLine(s_local, msg_buff, MAX_MSG); - if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - /* Read the MD5 hash from the socket */ - m = readLine(s_local, md5_buff, MAX_MD5); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - /* Check if one of the two users is not registered */ - pthread_mutex_lock(&list_mtx); - if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ - pthread_mutex_unlock(&list_mtx); - /* Send code 1 to the client and close the socket */ - out = 1; - goto respond_to_client; - } - pthread_mutex_unlock(&list_mtx); - - /* Check the status of the destination user */ - pthread_mutex_lock(&list_mtx); - char status = isConnected(dest_user_buff); - unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message - pthread_mutex_unlock(&list_mtx); - - if(status == 0){ //Not connected - /* Store the message */ - if (storeMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id) != 0){ - /* Message could not be stored so send code 2 to the client and close the socket */ - out = 2; - goto respond_to_client; - } - /* Message was stored successfully, send code 0 and message ID to the client */ - out = 0; - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Send string with the message ID back to the sender */ - char id_string[11]; - sprintf(id_string, "%d", last_id); - if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - }else if(status == 1){ //Connected - /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message - is being sent for the first time and was not previously stored int he server */ - int err = sendMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id, 0); - /* If while trying to store the message, the user unregisters, value 1 will be returned */ - if(err == 1){ - out = 1; - goto respond_to_client; - }else if(err == -1){ - /* If any server error occurred and the message was not stored or sent, then send code 2 - back to the client */ - out = 2; - goto respond_to_client; - } - - /* If no server error occured, then the message was either sent or stored, so we send back - the code 0 (OK) to the client */ - out = 0; - if ((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Send string with the message ID back to the sender */ - char id_string[11]; - sprintf(id_string, "%d", last_id); - if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - /* At this point, the message is assumed to */ - sendAck(user_buff, last_id); - } - /* The response to the client is handled within this else-of statement, so the - 'respond_to_client' label is skipped and proceed to close the socket */ - goto destroy_thread; - } - - /* Default print template */ - switch(out){ - case 0: - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - break; - default: - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "FAIL"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - } - - /* Label to jump previous code to respond the client and skip the default print right above, - in case other commands (as SEND) do not use a template print */ - respond_to_client: - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - destroy_thread: - if(close(s_local) == -1){ - perror("[SERVER_THREAD]: Error when closing the socket in the thread"); - exit(-1); - } - pthread_exit(NULL); -} - -/* Capitalizes the input string. String is both an input and output parameter */ -void toUpperCase(char * string){ - /* Convert to uppercase */ - int i; - for(i = 0; string[i]; i++){ - string[i] = toupper(string[i]); - } -} - -/* Return 0: Message is stored OK - Return -1: Server error (Memory space error) */ -int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id){ - /* Store the message to the receiver pending list */ - pthread_mutex_lock(&list_mtx); - int err = storeMsg(receiver, msg, msg_id, md5, sender); - pthread_mutex_unlock(&list_mtx); - - /* Error when trying to store the message */ - if(err == -1) return -1; - - fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, - sender, receiver); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - /* Return store OK */ - return 0; -} - -/* Return 0: Message is sent OK - Return 1: User did not exist when trying to store/send the message. Message not stored - Return 2: Message is stored, or not stored if was already stored - Return -1: Server error */ -int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored){ - int s_receiver; //Socket for the receiver of the message - struct sockaddr_in recv_addr; //Receiver address - struct hostent *recv_hp; //Host entity structure for the receiver - - s_receiver = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if(s_receiver == -1){ - return -1; //Send error message. -1 is internally encoded as server error - } - - bzero((char *) &recv_addr, sizeof(recv_addr)); //Reserve space for the address of the receiver - - pthread_mutex_lock(&list_mtx); - recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver - pthread_mutex_unlock(&list_mtx); - /* If error when getting the host, return -1 */ - if(recv_hp == NULL) return -1; - - memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format - recv_addr.sin_family = AF_INET; - pthread_mutex_lock(&list_mtx); - recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread - pthread_mutex_unlock(&list_mtx); - - /* Try to connect to the listening thread of the receiver to send the message */ - if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ - /* If the connection with the receiver fails, assume the client - to be disconnected, disconnect it and store the message */ - pthread_mutex_lock(&list_mtx); - /* As we are internally disconnecting the user from the server, we need to bypass the - IP check, so we pass the IP of the receiver as parameter to always fulfill the condition */ - char reg = disconnectUser(receiver, getUserIP(receiver)); // No need to check for output - pthread_mutex_unlock(&list_mtx); - /* If the disconnect method returns 1, it means that the user was not found so is not - registered (it unregister while trying to store the message, so we return 1 */ - if(reg == 1){ - return 1; - } - /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the - server so we need to push it to the end of the queue. If it was stored, then nothing is done */ - if(!stored){ - if(storeMessage(sender, receiver, msg, md5, msg_id) == -1) return -1; //Return -1 if store error - } - - if(close(s_receiver) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - /* Return 2 to indicate the message is stored but not sent */ - return 2; - } - /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ - char op[13]; - strcpy(op, "SEND_MESSAGE"); - send_msg(s_receiver, op, strlen(op)+1); - /* Send the sender name */ - send_msg(s_receiver, sender, strlen(sender)+1); - /* Send the identifier of the message */ - char id_string[11]; - sprintf(id_string, "%d", msg_id); - send_msg(s_receiver, id_string, strlen(id_string)+1); - /* Send the MD5 of the message */ - send_msg(s_receiver, md5, strlen(md5)+1); - /* Send the message */ - send_msg(s_receiver, msg, strlen(msg)+1); - - if(close(s_receiver) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - - fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, - sender, receiver); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - return 0; -} - -/* Tries to send acknowledge to the sender. No return value */ -void sendAck(char * sender, unsigned int msg_id){ - int s_sender; //Socket for the receiver of the message - struct sockaddr_in sender_addr; //Sender address - struct hostent *sender_hp; //Host entity structure for the sender - - s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if(s_sender == -1){ - /* If error when allocating resources for the socket, then exit */ - return; - } - - char ack_op[14]; - strcpy(ack_op, "SEND_MESS_ACK"); - - bzero((char *) &sender_addr, sizeof(sender_addr)); - - pthread_mutex_lock(&list_mtx); - sender_hp = gethostbyname(getUserIP(sender)); - pthread_mutex_unlock(&list_mtx); - /* If any error when getting the hoset, exit the function */ - if(sender_hp == NULL) return; - - memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); - sender_addr.sin_family = AF_INET; - - pthread_mutex_lock(&list_mtx); - sender_addr.sin_port = htons(getUserPort(sender)); - pthread_mutex_unlock(&list_mtx); - - if((connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr))) == -1){ - /* If error when connecting, exit the function */ - return; - } - - - char id_string[11]; - sprintf(id_string, "%d", msg_id); - if((send_msg(s_sender, ack_op, strlen(ack_op)+1)) == -1){ - /* If error when sending the ACK, close the socket and exit the function */ - if(close(s_sender) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; - } - if((send_msg(s_sender, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the ACK, close the socket and exit the function */ - if(close(s_sender) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; - } - - if(close(s_sender) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; -} \ No newline at end of file diff --git a/lab2/server.h b/lab2/server.h deleted file mode 100644 index 5fd2c95..0000000 --- a/lab2/server.h +++ /dev/null @@ -1,27 +0,0 @@ -#define MAX_COMMAND 11 - -/* Mutex & Threads */ -pthread_mutex_t socket_mtx; -pthread_mutex_t list_mtx; -pthread_t thread; -pthread_attr_t thread_att; -/* Controls the access to the socket generated by the connection 'accept' */ -pthread_cond_t free_socket; -pthread_cond_t free_list; - -/* Variable that controls the state of the socket created by the connection 'accept' */ -int busy_socket; - -/* Declare the server socket as global variable */ -int s_server; - -/* Declare the list of users */ -struct user *users; - -/* ================FUNCTION HEADERS================ */ -void interruptHandler(int sig); -void * manageRequest(int *sd); -void toUpperCase(char * string); -int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored); -void sendAck(char * sender, unsigned int msg_id); -int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int mgs_id); \ No newline at end of file diff --git a/lab2/server.o b/lab2/server.o deleted file mode 100644 index 6fd3590549a17304fe80c790feff6c340d759d38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34632 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 ZaVVPgWA_YJ|L#)AfWXhMbm~<5{U1dl=cxby diff --git a/lab2/servidor/Makefile b/lab2/servidor/Makefile deleted file mode 100644 index 3a28c57..0000000 --- a/lab2/servidor/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -BIN_FILES = server - -CC = gcc - - -CCGLAGS = -Wall -g - -LDFLAGS = -L$(INSTALL_PATH)/lib/ -LDLIBS = -lpthread - - -all: CFLAGS=$(CCGLAGS) -all: $(BIN_FILES) -.PHONY : all - -server: server.o read_line.o user_list.o msg_list.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -%.o: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c $< - -clean: - rm -f $(BIN_FILES) *.o - -.SUFFIXES: -.PHONY : clean diff --git a/lab2/servidor/msg_list.c b/lab2/servidor/msg_list.c deleted file mode 100644 index 4484c2f..0000000 --- a/lab2/servidor/msg_list.c +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" - - -/* Returns 1 if already registered; 0 if registered correctly */ -void enqueueMsg(struct msg **head, char * message, unsigned int id){ - struct msg *temp; - //Allocate the space for the new message and - temp = (struct msg *) malloc(sizeof(struct msg)); - strcpy(temp->body, message); - temp->id = id; - - if (*head == NULL){ //If list is empty - temp->next = *head; - *head = temp; - } - else{ - struct msg *last = *head; - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - temp->next = NULL; - } -} - -/* Deletes the message at the head of the queue */ -void removeMsg(struct msg ** head){ - struct msg *temp = *head; - //Head pointing to the next element - *head = temp->next; - //Free the resources of the first message - free(temp); - return; -} - -void printMsgs(struct msg ** head){ - printf("INSIDE THE PRINT MSGS FUNCTION!\n"); - struct msg *temp = *head; - if(temp == NULL){ - return; - } - - while(temp != NULL){ - printf("Message ID: %u", temp->id); - printf("Message body: %s", temp->body); - printf("\n"); - temp = temp->next; - } - - return; -} diff --git a/lab2/servidor/msg_list.h b/lab2/servidor/msg_list.h deleted file mode 100644 index 1320b12..0000000 --- a/lab2/servidor/msg_list.h +++ /dev/null @@ -1,13 +0,0 @@ -#define MAX_MSG 256 - -struct msg{ - char body[MAX_MSG]; - unsigned int id; - struct msg *next; -}; - -unsigned int last_msg_id; - -void enqueueMsg(struct msg **head, char * msg, unsigned int id); -void removeMsg(struct msg ** head); -void printMsgs(struct msg ** head); diff --git a/lab2/servidor/read_line.c b/lab2/servidor/read_line.c deleted file mode 100644 index 967be93..0000000 --- a/lab2/servidor/read_line.c +++ /dev/null @@ -1,88 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" - -int send_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = send(socket, message, l, 0); - l = l -r; /* Pending data to send */ - message = message + r; /* */ - } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - -int recv_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = recv(socket, message, l, 0); - l = l -r ; /* Pending data to receive */ - message = message + r; - } while ((l>0) && (r>=0)); /* We check the return value in case all the data was not received */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - - - -ssize_t readLine(int fd, void *buffer, size_t n) -{ - ssize_t numRead; /* num of bytes fetched by last read() */ - size_t totRead; /* total bytes read so far */ - char *buf; - char ch; - - - if (n <= 0 || buffer == NULL) { - errno = EINVAL; - return -1; - } - - buf = buffer; - totRead = 0; - - for (;;) { - numRead = read(fd, &ch, 1); /* read a byte */ - - if (numRead == -1) { - if (errno == EINTR) /* interrupted -> restart read() */ - continue; - else - return -1; /* some other error */ - } else if (numRead == 0) { /* EOF */ - if (totRead == 0) /* no byres read; return 0 */ - return 0; - else - break; - } else { /* numRead must be 1 if we get here*/ - if (ch == '\n') - break; - if (ch == '\0') - break; - if (totRead < n - 1) { /* discard > (n-1) bytes */ - totRead++; - *buf++ = ch; - } - } - } - - *buf = '\0'; - return totRead; -} diff --git a/lab2/servidor/read_line.h b/lab2/servidor/read_line.h deleted file mode 100644 index e3d4c9e..0000000 --- a/lab2/servidor/read_line.h +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int send_msg(int socket, char *message, int length); -int recv_msg(int socket, char *message, int length); -ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab2/servidor/server.c b/lab2/servidor/server.c deleted file mode 100644 index 469b0fa..0000000 --- a/lab2/servidor/server.c +++ /dev/null @@ -1,308 +0,0 @@ -#include /* For addresses in PF_INET */ -#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" -#include "msg_list.h" -#include "server.h" - -/* Handler for interrupts */ -void interruptHandler(int sig){ - printf("[SERVER]: Handling interrupt. Closing server socket...\n"); - exit(0); -} - -int main(int argc, char * argv[]){ - struct sockaddr_in server_addr, client_addr; - int sd, sc; - int val; - int server_port; - struct hostent *hp; - - - /* Check command */ - if(argc != 3 || strcmp(argv[1],"-p") != 0){ - printf("Usage: ./server -p \n"); - exit(-1); - } - - /* Check if the port number passed as parameter is valid */ - server_port = atoi(argv[2]); - if ((server_port < 1024) || (server_port > 65535)) { - printf("Error: Port must be in the range 1024 <= port <= 65535\n"); - exit(-1); - } - - //printf(); - - /* Initializing mutex */ - if(pthread_mutex_init(&socket_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_mutex_init(&list_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_cond_init(&free_socket, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_cond_init(&free_list, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - - /* Prepare thread conditions */ - pthread_attr_init(&thread_att); - pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); - - sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ - if(sd == -1){ - perror("Error when creating the socket"); - exit(-1); - } - - val = 1; - setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ - - bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ - server_addr.sin_family = AF_INET; - server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ - server_addr.sin_port = htons(server_port); /* Port number */ - - if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ - perror("Error when binding the address to the socket"); - exit(-1); - } - struct in_addr in; - - hp = gethostbyaddr((char*) &server_addr, sizeof(server_addr), AF_INET); - - char **p; - - for (p = hp->h_addr_list; *p != 0; p++){ - memcpy(&in.s_addr, *p, sizeof(in.s_addr)); - printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); - } - - /* Initial prompt */ - //printf("s> init server %s:%d\n", inet_ntoa(in), ntohs(server_addr.sin_port)); - - if(listen(sd, 5) == -1){ - perror("Error when listening to the socket"); - exit(-1); - } /* Backlog is 5, maximum number of queued requests is 5 */ - - socklen_t size = sizeof(client_addr); - - busy_socket = TRUE; - busy_list = FALSE; - - signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ - - while(1){ - fprintf(stderr, "%s", "s> "); /* Prompt */ - - sc = accept(sd, (struct sockaddr *) &client_addr, &size); - if(sc == -1){ - perror("Error when accepting the connection"); - exit(-1); - } - thread = (pthread_t) malloc((sizeof(thread))); - if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { - perror("[SERVER]: Error when creating the thread"); - exit(-1); - } - - /* Wait for the thread to copy the socket descriptor locally */ - pthread_mutex_lock(&socket_mtx); - while(busy_socket == TRUE) - pthread_cond_wait(&free_socket, &socket_mtx); - busy_socket = TRUE; - pthread_mutex_unlock(&socket_mtx); - - /* Close the created socket */ - printf("\n"); - } - - close(sd); - exit(0); - -} - -void * manageRequest(int *sd){ - int s_local; - char operation_buff[MAX_OP]; - char user_buff[MAX_USERNAME]; - char msg_buff[MAX_MSG]; - int n; - int m; - char out; - - /* Copy locally the socket descriptor */ - pthread_mutex_lock(&socket_mtx); - s_local = *sd; - busy_socket = FALSE; - pthread_cond_signal(&free_socket); - pthread_mutex_unlock(&socket_mtx); - - /* Read the operation */ - n = readLine(s_local, operation_buff, MAX_OP); - if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - /* Send Fail code to client side */ - /* - out ='2'; - send_msg(s_local, &out, sizeof(out)); - */ - exit(-1); - } - /* Read the username and convert to uppercase */ - m = readLine(s_local, user_buff, MAX_USERNAME); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - /* Send Fail code to client side */ - /* - out ='2'; - send_msg(s_local, &out, sizeof(out)); - */ - exit(-1); - } - toUpperCase(user_buff); - - /* Check the operation */ - if (strcmp(operation_buff, "REGISTER") == 0){ - /* Register the user */ - pthread_mutex_lock(&list_mtx); - ////////////////////////////////////////////////////// - /* DOUBT */ - ////////////////////////////////////////////////////// - /* Wait while the list of users is being accessed */ - /* - while(free_list == TRUE) - pthread_cond_wait(&free_list, &list_mtx); - free_list = TRUE; - */ - out = registerUser(user_buff); - pthread_mutex_unlock(&list_mtx); - /* - switch(result){ - case 0: - out = '0'; - break; - case 1: - out = '1'; - break; - default: - out = '2'; - }*/ - } - else if (strcmp(operation_buff, "UNREGISTER") == 0){ - /* Unregister the user */ - pthread_mutex_lock(&list_mtx); - ////////////////////////////////////////////////////// - /* DOUBT */ - ////////////////////////////////////////////////////// - /* Wait while the list of users is being accessed */ - /* - while(free_list == TRUE) - pthread_cond_wait(&free_list, &list_mtx); - free_list = TRUE; - */ - out = unregisterUser(user_buff); - pthread_mutex_unlock(&list_mtx); - /*switch(result){ - case 0: - out = '0'; - break; - case 1: - out = '1'; - break; - default: - out = '2'; - }*/ - } - else if(strcmp(operation_buff, "CONNECT") == 0){ - - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - struct hostent *hp; - uint16_t client_port; - char * client_ip; - - n = readLine(s_local, msg_buff, MAX_MSG); - - client_port = (uint16_t) atoi(msg_buff); - - //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); - - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1) perror("Error when getting address"); - struct in_addr in; - - hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); - - char **p; - - for (p = hp->h_addr_list; *p != 0; p++){ - memcpy(&in.s_addr, *p, sizeof(in.s_addr)); - printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); - } - - - //client_port = client_addr_local.sin_port; - - printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); - - pthread_mutex_lock(&list_mtx); - out = connectUser(user_buff, msg_buff, client_port); - pthread_mutex_unlock(&list_mtx); - - }/* - else if(strcmp(operation_buff, "DISCONNECT") == 0){ - pthread_mutex_lock(&list_mtx); - out = disconnectUser(user_buff); - pthread_mutex_unlock(&list_mtx); - }*/ - - - - write(1, user_buff, m); - - /* - - - struct sockaddr_in test_addr; - - getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); - //test_addr.sin_addr is of type struct in_addr - char * ip = inet_ntoa(test_addr.sin_addr); - printf("CLIENT ADDRESS: %s\n", ip); - printf("CLIENT PORT NUMBER: %d\n", client_port); - */ - - send_msg(s_local, &out, sizeof(out)); - - if(close(s_local) == -1){ - perror("[SERVER_THREAD]: Error when closing the socket in the thread"); - exit(-1); - } - pthread_exit(NULL); -} - -void toUpperCase(char * string){ - /* Convert to uppercase */ - for(int i = 0; string[i]; i++){ - string[i] = toupper(string[i]); - } -} \ No newline at end of file diff --git a/lab2/servidor/server.h b/lab2/servidor/server.h deleted file mode 100644 index c39faea..0000000 --- a/lab2/servidor/server.h +++ /dev/null @@ -1,22 +0,0 @@ -#define MAX_OP 11 - -/* Mutex & Threads */ -pthread_mutex_t socket_mtx; -pthread_mutex_t list_mtx; -pthread_t thread; -pthread_attr_t thread_att; -/* Controls the access to the socket generated by the connection 'accept' */ -pthread_cond_t free_socket; -pthread_cond_t free_list; - -/* Variable that controls the state of the socket created by the connection 'accept' */ -int busy_socket; -/* Variable that controls the if the list of users is being accessed */ -int busy_list; - -/* Initialize the list of users */ -struct user *users; - -void interruptHandler(int sig); -void * manageRequest(int *sd); -void toUpperCase(char * string); \ No newline at end of file diff --git a/lab2/servidor/user_list.c b/lab2/servidor/user_list.c deleted file mode 100644 index befa904..0000000 --- a/lab2/servidor/user_list.c +++ /dev/null @@ -1,200 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" -#include "user_list.h" - - -char isRegistered(char * username){ - struct user *temp; - temp = user_head; - - /* Iterate over the list */ - while (temp != NULL){ - if (strcmp(temp->username, username) == 0){ //Check if the username exists - return 1; - } - temp = temp->next; - } - - return 0; - } - -/* Returns 1 if already registered; 0 if registered correctly */ -char registerUser(char * username){ - /* Check if the user already exists */ - if(isRegistered(username)) return 1; - - /* Prepare new user */ - struct user *temp; - temp = (struct user *) malloc(sizeof(struct user)); - /* Initialize user values */ - strcpy(temp->username, username); - temp->status = 0; - temp->port = 0; - temp->pend_msgs_head = NULL; - temp->next = NULL; - - if (user_head == NULL){ //If list is empty - /*Initialize the last assigned ID to a message if is the first user to register*/ - if(first_user){ - last_msg_id = 0; - first_user = FALSE; - } - temp->next = user_head; - user_head = temp; - } - else{ - struct user *last = user_head; - - /* Iterate over the list */ - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - - return 0; -} - -/* Return 0 if connect OK; 1 if user is not registered; 2 if registered but not connected */ -char connectUser(char * username, char * ip, uint16_t port){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 1) return 2; //User already connected - /* Change status to 1 ("ON") and update IP and Port */ - temp->status = 1; - //Set IP - temp->port = port; - return 0; - } - temp = temp->next; - } - - return 1; -} - -/* Return 0 if disconnect OK; - 1 if user is not registered; - 2 if registered but not connected; - 3 if trying to disconnect from a different IP */ -char disconnectUser(char * username, char * used_ip){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP - if (temp->status == 0) return 2; //User already disconnected - /* Change status to 0 ("OFF") and delete IP and Port */ - temp->status = 0; - //Free IP - free(&(temp->port)); - return 0; - } - temp = temp->next; - } - - return 1; -} - - -/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ -char unregisterUser(char * username){ - /* Check if the user is not registered */ - //if(!isRegistered(username)) return 1; - - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list - temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if(temp == user_head){ //If the user is at the user_head of the list - user_head = temp->next; //change the user_head to the next element - free(temp); //Free the resources of the user - return 0; - } - else{ //User is not at the user_head - prev->next = temp->next; - /* Free the memory resources of the user structure */ - free(temp); - return 0; - } - } - else{ - prev = temp; - temp = temp->next; - } - } - //If we reach this point, no user was found - return 1; -} - - -void printUsers(){ - struct user *temp; - temp = user_head; - if(temp == NULL){ - return; - } - while(temp != NULL){ - printf("%s ", temp->username); - temp = temp->next; - printf("\n"); - } -} - -void appendMsg(char * username, char* msg){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Enqueue message - enqueueMsg(&(temp->pend_msgs_head), msg, updateLastID(temp)); - return; - } - temp = temp->next; - } - - return; -} - -unsigned int updateLastID(){ - //Increment the ID in 1 - last_msg_id = last_msg_id+1; - //If it results in 0, then the maximum representable number is overflown - if(last_msg_id == 0) last_msg_id = 1; - - return last_msg_id; -} - -void printPendMsgs(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - printMsgs(&(temp->pend_msgs_head)); - } - temp = temp->next; - } -} - -void removePendMsg(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - removeMsg(&(temp->pend_msgs_head)); - } - temp = temp->next; - } -} - diff --git a/lab2/servidor/user_list.h b/lab2/servidor/user_list.h deleted file mode 100644 index b947099..0000000 --- a/lab2/servidor/user_list.h +++ /dev/null @@ -1,31 +0,0 @@ -#define MAX_USERNAME 256 -#define TRUE 1 -#define FALSE 0 - -/* -struct pend_msg{ - char pend_msg[MAX_MSG]; - struct pend_msg *next; -} *msg_head;*/ - -struct user{ - char username[MAX_USERNAME]; /* Username that acts as ID */ - char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - uint16_t port; - struct msg *pend_msgs_head; - struct user *next; -} *user_head; - -int first_user; - - -char isRegistered(char * username); -char registerUser(char * username); -char unregisterUser(char * username); -char connectUser(char * username, char * ip, uint16_t port); -char disconnectUser(char * username, char * used_ip); -void appendMsg(char * username, char* msg); -unsigned int updateLastID(); -void printPendMsgs(char * username); -void printUsers(); -void removePendMsg(char * username); \ No newline at end of file diff --git a/lab2/test b/lab2/test deleted file mode 100755 index 0e567722f17e1267f66c85ecd1e31e36265dd948..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20400 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 diff --git a/lab2/test.c b/lab2/test.c deleted file mode 100644 index f0a11fc..0000000 --- a/lab2/test.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" -#include "msg_list.h" - - -int main(void){ - char line[MAX_MSG]; - - //struct user * user_head = (struct user *) malloc(sizeof(struct user)); - while(1){ - printf("USER LISTS. CHOOSE ACTION:\n"); - printf("\t1: Register\n"); - printf("\t2: Unegister\n"); - printf("\t3: Connect\n"); - printf("\t4: Disconnect\n"); - printf("\t5: Send message\n"); - printf("\t5: Delete message\n"); - readLine(0, line, MAX_MSG); - if(strcmp(line, "1") == 0){ - printf("Username: \n"); - readLine(0, line, MAX_MSG); - int res = registerUser(line); - if(!res){ - printf("USER ADDED\n"); - printUsers(); - } - else{ - printf("ERROR: ALREADY EXISTS!\n"); - printUsers(); - } - - } - else if(strcmp(line, "2") == 0){ - readLine(0, line, MAX_MSG); - int res = unregisterUser(line); - if(!res){ - printf("USER DELETED\n"); - printUsers(); - } - else{ - printf("ERROR: DOES NOT EXIST!\n"); - printUsers(); - } - } - else if(strcmp(line, "5") == 0){ - readLine(0, line, MAX_MSG); - char user[MAX_MSG]; - strcpy(user, line); - readLine(0, line, MAX_MSG); - char msg[MAX_MSG]; - strcpy(msg, line); - printf("Going to send to %s the msg %s", user, msg); - //appendMsg(user, msg); - printPendMsgs(user); - } - else if(strcmp(line, "6") == 0){ - readLine(0, line, MAX_MSG); - char user[MAX_MSG]; - strcpy(user, line); - removePendMsg(user); - printPendMsgs(user); - } - } - - return 0; -} \ No newline at end of file diff --git a/lab2/user_list.c b/lab2/user_list.c deleted file mode 100644 index 0280c16..0000000 --- a/lab2/user_list.c +++ /dev/null @@ -1,246 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" -#include "user_list.h" - -/* Checks if the input user is already registered - Return 0 if is registered - 1 if is not registered */ -char isRegistered(char * username){ - struct user *temp; - temp = user_head; - - /* Iterate over the list */ - while (temp != NULL){ - if (strcmp(temp->username, username) == 0){ //Check if the username exists - return 1; - } - temp = temp->next; - } - - return 0; - } - -/* Registers a user (if not previously registered) and appends it to the end of the s list - Returns 1 if already registered - 0 if registered correctly */ -char registerUser(char * username){ - /* Check if the user already exists */ - if(isRegistered(username)) return 1; - - /* Prepare new user */ - struct user *temp; - temp = (struct user *) malloc(sizeof(struct user)); - /* If memory is full and malloc is not possible, we return code 2 */ - if(temp == NULL) return 2; - /* Initialize user values */ - strcpy(temp->username, username); - temp->status = 0; - strcpy(temp->ip, "-1"); - temp->port = 0; - temp->pend_msgs_head = NULL; - temp->next = NULL; - temp->last_id = 0; - - if (user_head == NULL){ //If list is empty - temp->next = user_head; - user_head = temp; - } - else{ - struct user *last = user_head; - - /* Iterate over the list */ - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - - return 0; -} - -/* Changes the status of a user to 1 (ON) and links an IP and port number to it - Return 0 if connect OK - 1 if user is not registered - 2 if registered but not connected */ -char connectUser(char * username, char * ip, uint16_t port){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 1) return 2; //User already connected - /* Change status to 1 ("ON") and update IP and Port */ - temp->status = 1; - strcpy(temp->ip, ip); - temp->port = port; - return 0; - } - temp = temp->next; - } - /* No user was found, so send code 1 */ - return 1; -} - -/* Changes the status of a user to 0 (OFF) and cleans the IP and port number - Return 0 if disconnect OK; - 1 if user is not registered; - 2 if registered but not connected; - 3 if trying to disconnect from a different IP */ -char disconnectUser(char * username, char * used_ip){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 0) return 2; //User already disconnected - if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP - /* Change status to 0 ("OFF") and delete IP and Port */ - temp->status = 0; - strcpy(temp->ip, "-1"); - temp->port = 0; - return 0; - } - temp = temp->next; - } - - return 1; -} - - -/* Unregisters a user, deleting it and its pending messages (if any) from the list - Returns 1 if the user does not exist. - 0 if the user is deleted correctly */ -char unregisterUser(char * username){ - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list - temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if(temp == user_head){ //If the user is at the user_head of the list - user_head = temp->next; //change the user_head to the next element - /* Delete the pending messages if any */ - deleteAllMsgs(&(temp->pend_msgs_head)); - free(temp); //Free the resources of the user - return 0; - } - else{ //User is not at the user_head - prev->next = temp->next; - /* Delete the pending messages if any */ - deleteAllMsgs(&(temp->pend_msgs_head)); - /* Free the memory resources of the user structure */ - free(temp); - return 0; - } - } - else{ - prev = temp; - temp = temp->next; - } - } - //If we reach this point, no user was found - return 1; -} - -/* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ -int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Enqueue message - return enqueueMsg(&(temp->pend_msgs_head), msg, md5, msg_id, sender); - } - temp = temp->next; - } - - return -1; //User was not found -} - -/* Increments the last-sent-message ID associated to the input user - Return the value of the updated ID */ -unsigned int updateLastID(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Increment the ID in 1 - temp->last_id = temp->last_id+1; - //If it results in 0, then the maximum representable number is overflown - if(temp->last_id == 0) temp->last_id = 1; - - return temp->last_id; - } - temp = temp->next; - } - - return 0; -} - -/* Checks if the input user is connected - Return 0 if the user is disconnected - 1 if the user is connected - 2 if error (user was not found) */ -char isConnected(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->status; //Returns 0 if OFF, 1 if ON - } - temp = temp->next; - } - /* Return error 2 if we reach this point. No user was found */ - return 2; -} - -/* Retrieves the IP associated to a user in the list - Returns a char array with the IP of the user - NULL if the user was not found */ -char * getUserIP(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->ip; //Returns the IP of the user - } - temp = temp->next; - } - return NULL; -} - -/* Retrieves the port number associated to a user in the list - Return the port number - 0 if the user was not found */ -uint16_t getUserPort(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->port; //Returns the IP of the user - } - temp = temp->next; - } - return 0; -} - -/* Retrieves a pointer to the head of the pending message list associated to a user - Return the pointer to the head of the message list - NULL if the user was not found */ -struct msg ** getPendMsgHead(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return &(temp->pend_msgs_head); //Returns the IP of the user - } - temp = temp->next; - } - return NULL; -} - diff --git a/lab2/user_list.h b/lab2/user_list.h deleted file mode 100644 index 70dcc1e..0000000 --- a/lab2/user_list.h +++ /dev/null @@ -1,27 +0,0 @@ -#define MAX_USERNAME 256 -#define MAX_IP 16 -#define TRUE 1 -#define FALSE 0 - -struct user{ - char username[MAX_USERNAME]; /* Username that acts as ID */ - char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - char ip[MAX_IP]; /* IP of the user from which the connect operation was made */ - uint16_t port; /* Port number of the user from which the connect operation was made */ - unsigned int last_id; /* ID assigned to the last sent message */ - struct msg *pend_msgs_head; /* Pointer to the head of the pending messages queue */ - struct user *next; /* Pointer to the next user in the list */ -} *user_head; - -/* ================FUNCTION HEADERS================ */ -char isRegistered(char * username); -char registerUser(char * username); -char unregisterUser(char * username); -char connectUser(char * username, char * ip, uint16_t port); -char disconnectUser(char * username, char * used_ip); -int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender); -unsigned int updateLastID(char * username); -char isConnected(char * username); -char * getUserIP(char * username); -uint16_t getUserPort(char * username); -struct msg ** getPendMsgHead(char * username); \ No newline at end of file diff --git a/lab2/user_list.o b/lab2/user_list.o deleted file mode 100644 index 605dc3111aa489600bde6d8fa46fcc4005558af7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10016 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 diff --git a/lab2_pruebas.zip b/lab2_pruebas.zip deleted file mode 100644 index a9e549886e265dcf5bc60e7fc32dbb280ab6aefe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245281 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 BklNGuxK3w4Rfy_`i z7;uJy9V!@DhGpBG*laRYV6KEEqG!U&_%!BlXRTr6FroYWsLySc^Q+3i~K6nOaQWH!s z585&6aG;qW#etFqGN|P`NVKzMmxeE`;rAMjNB)z7{&Se^F->B$IRd+=O zp(_TVlgtWBNrhXVUI^f_-rEt|-co7=NQoPjw<`Q8O{cQ4f(SR97;92>+!6=QIp=!kxq1}RO zaK@+UOpO6k^Q365iCSiD+G+u5H4~-fappMdkS7u1O1WnF(;wz93$5z<~tiuSr;=^h6DVP9FfES@)`H z^N1|->ab&?-W?gvd0;HMz_|*%#Lwr%nx;UL^Oou{RKs@kIIzMgwVarJqm>B#cT-cu z=8~}0EXP_kDvyu*R>=UXn=f@9`^4sim?Z>6=7Szs4|!=hg!i+sSHn~%!x%-V`T#QI z_wd^|JU9xm&^Vo+YhsYzg?<8j9F)n!B0%`plwjpJ1p1-l_c{&?_y3lQdpH-bHGD?{ z#_#+H=f8<2-~9i#+#eIy4%bHyBVu-oiZ_l_B8#f%0SkkQikmKEDVZlzFwh_p?nh3b z3k+Q7a@pEc9WSOp$ZRsfl}lfOWrfo#&`@v`HgyMU%T&}!nUq__zeE+mm&ew3YsfNM zDw!s!<|phfaK!0cH+#GS4XvYD$lR-l+?E|bGB>T6>bsKAy+$7@2Ca8gPgq}SQ%zEq z2D8H5Mb9d}Wf#%_&8RFMATk|MTS_>ynK9L0kY+A{iA&r5?<^tv#0d4{dljC(Ke+$H zO8hHB{6%gUA}=G?_uW3QUo0v-l89m`h+*h>5D$i&j>yuGC}2i-x>(v?VkOa4;N1%E z9q^N4uYs(9;S|qx(~IfOl(EKcnhro#p;@7>PNFu{dNmEUZ)f&m$3G;`S;sKrQX&#KuvX|GcpAE&V?*u z)jd&0sWOjW^z7nV17vGwO~$P^c{}17o~gIHK-r(+K0;+bil&v8m&wjQ*aB)s;Bif7twnxx9;^wS|+piR0hm zohP2}A7azs(X&z(BPq~|4wXuITW^nl@E=45oCpb+Px7}!6qS!lZGzq?ny*c+?xXMv z^hYf1=CoBe1`Ihd!ssYMMDN{TbPosBDGlDwy%bu!E|I((;MoIL z|8JYc;wMtH^IMv+0Pu{a7xG+T%6Jm^gRDJ=bGT?y!mQAu?A?SSsgiW?@?ohac z*=}4&w5pC=;c@5b*X*j$Xrr(bT=)G?ffU8LM6$FS%D3!$9V@0jM@{x@s+e>}#l z4_4zZJjO@SN(%d1x-l{&vuzelvOR6L@)6;422miXBQg&WtPqrxx|t`#oEYKlyBt`} zEyh=-`iH1I$d$PpwC&r%^t9=8xX!`V{PnpBpe`^P7}5u@**jWbzQZH>8{+_@K3<@= zkDZL2jH3jD5t~Z+`{g4Q&G+8;&DhLDLN%5A^)nC`Ouwg7UX{6kQo&HelUmR7Z1=vW zK4OLWI;c3RQ1gWX+4cDLG5@gciz+^ev^8`!bWvLo5Sf)Y_%;*zsRp|&82tnyN%3P# zc^6I-E9t{P{bd&K=*V*5rWl?byS^XltoQYb7jgwA{IMdqmhAApW#TyTn3+Ekbma{w z?kSkAn?}7I=O`ao=NJ~09I&2E&*?S*VebrhL#KJt7t)Z`&?Q%yz)gLj z2b+^+=Elq~^x8nU3Sl$E7@YL>g~trapml^INBD1Wd|v*5&b@qE8T;x4>Jh%(C2)ze z#|x(l;~373x1>#O{j=Wtuf6rZ)HMF%pk!v^Y-j&}gkxZ(l zvlgTAU&N*JO09?1Y`miIPY2;zO+?!Wj3rMvAsvl!YUCn-=Az!D6{qJ7e`77dbM#cLI7n zuIYTlb{0x1p;34F?)!z!`c0Nz%Jy#HoLa6_sLqYXoX;T6}zS8Y2qSq0S9NB z59iG35yRr;j4*#rZ$_HEhn4Z&r4gdlpl-%FaORhQk&`JgnvskB@K`eOcy4Qf{FPH?KcKaX zuB#{LPXo&W;S}jmX@lB5IG|)C*7QEU?qbV6c9c zzw?rVii30C`cFgG6B^qu_mgl>(v`DtPt4c)qK}wnsCv?zIJ-BbN(@;MJ8WXO>fKj^ zE7_T6ryj@I5N_PjGH@r@q|>tx&Fo;prkEsr+XZ!5dW4HQcnky^9&q@g5OvKy^|+qm z0bbup_1^DhM+dLZx8L3Un1@WH!9vV-$7v^+z}j2VLM4P8B{_2RBT%|14F>30F?I}Qy{?V>k z>C3`e>GDuXxv(W1;z{D9PPzeKihG<p~ zzy{A2WXB;HpFG`rz$-&k-l9b-i060zg$lV?@8I-^WDDhLrN^hB*Ng~KMemk0>1zwz z-cJw{Qg-T^*H{yE^riZT3O6Ot#c`pO5GwR>Y$<-q9@j(sujZl&LLJKHuEt4CMVV?< ze`j$r3Q&PwZacGjhOYs@L-tj|^CR=FD_z*P$U;VqsfJD+52;hA zRi#=LEuPnzKQ=lS4Q{Vfm!{@_)c(@uwlT0Robx!b0u<9QvqMQ&?^6ku z!B-os_ctAMhQSWOs#_6^{e7-TuOSiflYdzLaJW>z-SLnO8pFa0avOzkq)9r&yfqQm z>aALAyNik*@-R{O#<6pFj3%>zvc_=o1EgT|=yD^gV|lLy&cqWbd1qGdVpGc~q3U0pKP4YBrU;w9K` zS^>{WN9x8z>^LU9g$DI+xy_RIDr<~N_RMo%GVm^fMob~i=yE}7D-paSR}u*$=`_t& zs(gF#f^y3&Cz0!@=`&GzC(h9gaD?*}&ppi(qI~>3F-%>|%(uozl5x~xL#0(Uyi4{_ z{c`9in{F{~fA&>R%+U47OA>C@Y?9`;ZY1mHhr5>Byf=x>epf2X+sDmU_ouS&$I0u~ zSlcCA``3TUvi>2-1%@#!li&dW%sKqU`y+oH1;zduY5zV5@>n>niKgbFcNg@R(`>B314fcTGD6tirJr2Q{_46qg$5vfnUPjRRU?XEZ`133 zJ3Sm#i_7I}dtZwpKMfl<3Vu~^TtkjSTV9NPNr5mskqTy8T;wz z{dKnY=BFBmr`H$O{jM>q?xJb-YEbm2@W(Hz#_vH;ic5nfIlRSsv!nUkj*b+_Q<28t z-G(W{Rv-G;Xn0;+?(U8l{ev>)CyNz-qQHY>xc$KS)s%wWudkWM|3J3}$5ET)R!LPK zP=f7;p`a;GskJW#-F^-LC+oFq7pGu;lw5UCJiIlSulAh#d}{lZX-)TKP62*Tc{1}T z;M*o94~vdeiQtR z!c>D(%_;NN_%R-zk0Wb^T%VFtj*9dy3ukvNSooPv^$XCyOh#d`LcOf?s0L-4D^!d7 zxPW4TjJA?lufn5Fci5xgH}g_L528POPMR#ZdG=HMykvo`5ujd=+^??w5nomSD##c zbrEOIsTQEu{^HWaE=@friGpfWbO4{8s7oCK8ucLdv7sO19&`ci8?7fMAobM3z-xh_W4*I$itd5!^#7AS8XB@$x$A#oh$;83r z&IU8mMA*gAleq_?Wn|rTqnEJ7gg|f23mK)ZY`MLPTN@8b`ROIzQ2{27X%U=N5qrnc zC11jD3sHcXVXxG$Wz?use3t@9oioj%P)-O(J^{dzGhd%d044}b5Fmg0Wih7+o(IH^ z7%rUzoMl3*&W}5b@DphT`H+WhjK#m(>4)JpUS*IS zy!|W-lvB#0OmyvRM?x)l4PrWhULO)*WyG&T6HX!Ef_g(Mis2|JryhsQbdkO?&fI=Y zf1mhc9)B!$VgtvJGPzyG1o8y*S3vZLdk)lCoFncdWL`mmGvSR6bvaOxj!+1@gkb4{$(8_ z`)nvGa}BZa^zZg4jn~e)e=Hi^0udsFuMbU zBq+n!ChmcXz*v`0%E+7m$BhBuL=}-rR-7y4CJyqdj6g_4IX6fQ6agmP6Ifs%0N9ci z6ZODE8}04ZZ#$KSe&{HU2Hbxspa3g^+O`Y9Ct?9k092pUx5eG`hIXOnL#RKsP;cSg z7VuY`%zRJ$7~cvaXVW$20ky|Ie^X_;^M{8fayTY8 zuw}5ARdq1~jTU)R2(3t1jvC#L+ZV?R>Ax}0dBH-aG(y`>eP2}(b(K96u9hF{O&@W} z8)M6%3+I&pU2-BJ+x7llA4LIR^y3IHUvlw``4m(LXQy@ssP@Kzv(#BQeuo=kMi)2X=E}jx zCl8usOW@=-PIH9w>jrU(5T;1m67Hkz-@yshlKpOgds+$ZABq@C{T0QRT;VTqSh?dp zfPdlg$`*zIaO1w-nhLU%?Acmr*_neT!$W$;h4Wr*{)a5P8(10c4=#)FYV_gt(ss8~ z;KmypaQC~8JEYoTrqd$ua0e)O)n?T)d*GHgRbH=GwqKC1fr{HNUmJE|ga8C~pey_!#E#fy8aV~|mEuP}qEAAB zx|Z5q2(3XZFQn~OR-8@^@`69#r>T)K$4Sc=TFftzKGCrtj3bhik!ALXK)^Gi$k#Bl zMN0x;oG@RK6?^uD4KNXpCIJCsyyF_&RK41|0n@ z;r8uk8PZhjeu2Hwxj+}19N1$O*g6x#8-x&Fp;T3*0NXvPXeY`ESe!FdPD2aG9uW0n z2LBbGG<=;2at6;URd6p>szbAwI+OWWArIANq)O`!2IZ7vK{QNaH74FZd8gbp`-A0& zrf~Q5F>H4^h_y3gkSgtCwWnK+XRPJ{MJ$dwZsN5{bt!~* zWJMb6Ot7M_7&!XOa)BD{n*_)OaNon*^eKooccIhsYIlqdFx^Jys^%l3&GC02H5icE z5~U#z;UQG~u?EbORH^MlIgp@(79-dFuc4T5OjRmS7QwqDVkJso25e5P=r&?lwVl~G z41u7qtx0v}9r~Ajm|)IAW~ywoBd3F-3$hG&5Jm~l^1O+-5}eLJ#coUsjiB5)jFXFW zspFhaitDB2OIX{q*|vj&H3zPBHGkHLgkS_K6%5C*G$-d6wx*w$jNuguv+xq^76H|> zPxvF;MaZKo2bgKSf~+V;kQe4%yJCuT_`ZP4ch_6yPbClO1-2>6(2 z3#gk9$P$IP>{EbqNSU`Iy0 zp(bHq&u3ri6WJF(N=CPeLsjxDKzqtEnTnL2puDooJ<@4h2~enH*Qa-e3j`}viC-4p z`|eePiFKDGy+4xZF`?`@8z>B_2H;|`ggk)Fl!kI2_+xa7sM2~*XHc}5crQ^=16`s` zypdtPN@`>kU3zHHwp-S*5SHVB%)|L%_hr2PEAspTk;>1v?>9W7Qlnmk$E-(LZ)n3uAmIu&AzT%H3Y_XQAfU;y$QP$i)l$588y>Q-j~q zGq%`1BSkI-_lWk;mMR&r$wWIT;!L|@{3f1rBq5LhRs_o|Q{z3V2|eqJ?cuO^B`_R* zzz|?Y(2DvCOI^vp@ls_7b*xSU#PeYX_nkFwrX`83#i)GLJ)RkYA(1xV`_oW$}ky zFiRxDUM4g`G-Xr468#$n1JTN%e=HjOEU$3OANHT)ApKn~mXn+{QXHVXtP0FZa#UAxMb5^BnCaat^34=wX0r+_r;+#Til};3JX9|0Cy(lqRaxW zsG3F*MqWdJREYq{Z-`IuluqIW)boq1Uw!XGMX);Mkbej&rJ!vzjTT7vmQM1+7mW2+ zplU|CZfpkqm=FpR51$3sf~EMObz&X#g0h!6C80Fxnek>o^Nhk-7x)KX>H549)ddYB z>m@zEajsn(?vX+@)Z%&seu{P#5F4H((u9l(%Li)?tH(P_DYiBlXg=b!*0%rxyhPR- zrKVHct;}bH%_YmZ5NU*gsMOpNgIHo5d`KfMa6Bt+OAEEvy`R_0DO4ey*;q+GipaYB z0_2UFMEmn0!U(^s0!M%$x!+=-m6j@TqJff?lWwlRV${pwRxqv*4+hi9+};4eU}-*y zEk;u%meq63$n(BgPBhzdSY`}2+j2OrGYhYl-0a5aOsV!;*Ag|v{DY7}jCdzqJ$C@5 zjm6w2q7-O=nc)pem}}Cto*x_K-EMWj53B3PB;TJ6X2I=FV~f_4w{#MW#6aA?AW$*c zTp-LsU`I-op;D4smgyLuMOF{Ql-}WL0Jn+Wzwe;kZ27Dif`bV8V!BEl=_u1M$YpqD zQKA~abW5EDqAF@x!B6P3fqCeG5v^P{$dC*`6Gg@yV0Dt!#smNtE55dxD=ft=lGBdV z99BZ!mRUlocTXC!AG0VM5)p)ph#NCZmw}wv2l5OhJ&=kN0Xh*#Ey&U;L%qQyTL#4L zy1d1Bn;HCL<`|SyZ8_;)_lOdU1;_*anlJcjIYLajeocNFoShX@^p*}fnv)(q<`P2P z+#)XAjOlzU%4%bA*%=+%_I@$L9O|ZePVk6Fu6M|AH3p)I-*4l<4fdxn-s4h<;T4^o zUwf+JLupgu`Oj4UVFZmhX z@^KH(`j{td6|a~6F@`fZq=h`;@(`>x>M$i)cq8g97ctflX!&MEa?a4OB1ub* zp$g7&raCUfHIpdRf#D|Kr%XLJHW>gR^j4!iD6gU4i6<|2&86sadOTi^z8p>HbUE)w zmGx2NaU0bT5jM7behwaw@9+0wUS7;iQqNt489K%{b3MHGhU$sW2_#B7O#%7XP0alx zXKBW3$oA39$gQ8F+N&fRw{R5z#W)Zqo{*Lc)4z;5Ayq<*qjIqj0p?T$xhAl)bhC1^ z`FOwrqWXfPF9Lg4T2~MYS`Fuoe=#l_W-}x;Z_9qDHf6 zI*DROUqLe(9)9hq86mAYN(!{s6No67TcJX&W$Eg~9};*ZrGp%ehL1UaJOm;T9kvWt z`y*TvLvb0JEwv+lu zt5WQX=up&7JisJ$GY?|BCM19P>9W#^gTNO6!1Nv`sJn2BKB})}AG2$wplo1EsErhn?#iCf;t}+d--zS` z0X;2*jB&*MS(wiWO|1)Gv@pzWd?CAjy#_q;19k zQ8_guYPZ?El15E!(Vjm;f+hTXg_wFkQkV%du%EW%YZ4*_*OVsrIlib^*3%t)yWYrf zEZGT$u%CX4pp^wJ2+$8Hn8BdS>zPOb@?uo^_a?Kgc21d}JqxwjE^eyhwp;PHvoVIZ zIJ7VBr=RW&Q$uVGp~2voakxzO{SoIbu+3h21;D^JM#4=qwCWIy)EQ|o44QiQ&{=6 zEu*z<3dX#K((QXxvj*p=HLD9N3ij34i}9|c-U!QHNyzx3sR5P5`~=^sc^ z@3+|OPlBT-nCD-Rp22^uw+ex^!u#J5sqv(qq;Kb;E#Jp1A>!Nv=v_imNIPb=(^x0^ zf4{ujc7@zN#uFl4f})t_AUSDJUogV#DlT9>oZr0PGV;dQI5z?kufiqwLjdWhwLB#a z@NT#m%X!7Te9g@;N_|znyoQkW;!ufF%}`-EMWprT*f>&yCR0D7gXNob5c>>utygb_ zS7~a~Y0Es%T%?c=7-xzviH^slB`=DBPmkzl!uT3(K$~`bv5fBfWw5Td)FeJKjzrUg zqNE9s^0dyvo4b%#~^9;Y|~agD!Yt~Q+7ALOjxlucCf-2 z%o3^B1I15`IV4KVKBe#Wc$`chyV|M_*y|8>rd(`%JakC<%-V)9#CgrpGG!#nb$O{6 zI*;1Jlm}GyFsD{uJprYj&d)DKt|1Iuld80afDDx>k(U)?{or6d04zkXY7QCCzqi`eI7C# zz$wg`0Dx2}TI!&vGA4XJ1$DZ#8zC*GqdYx0ly+uEtXU2u*j$sTVpJGXSl%U_h?MXG zj}e$-&YOr3C7mPFiZ`}m^T~#2Z-Gnd7ALmZEXg55T|o>fFa(ZO?0QimezFYxFpoGv zEar7>>|l#ycUPH?Xh(x!g*}wqyza|hm~kBGqU@c1w>_ihJ95&sMqcauxAM5(s^68@ zbQUXsA11e>f-%Ha{mVQf*ds>j{R@|MUBvteXLTv3g{aX36*b~foPp1B9HaDe+|?nM zdxPM}cK&<|h$Z*W3TS_ASTFRR-rRs=Qg-=L4Hb-Z5UMD`t7}l?(Y*|KzxX@4eJuPS zfiTMJe3-*@m@%3RBSzIH^Mw=7@(M>dwxwkl=i`+;NFF|&66pJ{B+rNK&D>82!4z7x zhoCnydg5Gj84-GKU(Gghyts7*j(=V9^ZamZPb-}4kj=<_&hd5JBt zrQM>;(JE;_eSPl~Mljn4H2HEo8U75#GQPa+FmfzDSeb5VE{%D*mvtp(!6I6TSO#N0$H?cnGCkj(a`qWo|MH`vsvU3SChj4x=& z4M%6|Sp){=_BeUYInCQ@G-fTzK>4WtkUaX<%8 z-1=Euh4r)orJ*qm@)i^rfh8|!{-rvA5&nU%l;4}`HK~gKyuFgvj0HqKFo#U}MiFPf zlHA-n-k32FLo_GBSkH*zxtrpw1?ZZ4(1y9AZ-lkRsB3cwTKOT!(1dQ&^Km+rmva0v zB@_omO`uKRT=gG6**ND{XW4Cw3xbZ$hXM@XyiZLZi6O1d)didR21eOF8lWmG?wVqO zs&%64_01&%V?Ty>@u;+o#K4#gqj@m37Cd&|J_&Jho(<>wCB}6tERSsJd0~m$N*; zH17xD(>)+Z=Mpm7yWRnERD0 zZL4G3?x>S=Y$qMtwrx9ktIxgny?6F|36h5W|)wZkU-C+_c!7Dyfz zLvRr=UlRD$87C>iJ-hfsZg_8@6_J^?u^&h9+Qc|bcm$tdMa1J=GuI+PfxF8-L`1u< zcfFLY(LWl6Q@KY;igi7Z9qLx91W^LZdoP(Jn3geTP@1ew4sz)lvW=nlT~Cd6zVXTVri+Cuv2dHNJ46s{s98!s~(1r%^C#`f7D zXCmuo4N8fw_KsY0vV`n7IbctdH4fBs&1cuH4&a@ObKXAAwuVjkk6{ zHZ^@Cw)WyUbV5!&*rH!OMmn&L4{FIZ`dO&fht4gR*?IdbZ-vEmVaX^=X2*@nOUIgM z2^X2p8vzIE3?Ixo*8hSts=q;2TvxUgb#D(=yLwZLNwtgN0Ir>Mi;Yg3;-X|baS=N5 zw|GTFg(iD*mwxvVYr4A^2qNAMLaHJp{Bmhx-%F3?h`lm7bE6(VBtws2$Jl*%I1Byk zP$;UTux4dE^;9laf=eTB0IUgKc&n`tix_6MEht@d3ND0(pvDLyyC|kWNpUc``uRc~ z5wugMQDGFn^EZ(n91_i|0kLNir>=+n)`!f>t<`3<-oG@3^s{AaWpOuK6mfO3p+6JG zf@bfE79Saq0Gk@*j;uTS$v!DYg8XjS>hoK)@fiHBRSFi_fz!rJnXepY@Knd;uxAE$ zZa8pGP_~@{IEj9oxI`NQE~b_fQ8K>JoT2Qx~t!ld(hY+fjz447^eqQP=vYb z#ILnvHT9;aIM2P-xQ6B~>Ke`~YyIK5g9dOa-h?jTXufOO(dTG)wsQD+xqdu6_wSOU zGY~wh~lk;6X^ZdDy+F%_Xh>$gyk$(Om_1%8g&%q;Dk}A2d+}t&v7{ZLr4U>OT$uR zf?rSG@GIbygiig!X*v!ca9K%9X0B#f>3UkTt=U^kUeLh zwl5=+KE#}F51!ji9>2R5RzB=k2}M+Lv-W4LEv#(f;h@hcT-bsO<6p`8fa^UWbEetd zMXMpbf!Z2gt*gNlN1JjFe$x;Wc&KA2S5UJ6)iX1~wyU&95sA^#-H~h0)Ed@6bTFfL zt7;Rc9qaNd)jO4Xhufz{fPc=!_-lbGz;kV)0;K(j!M}VV`VWaLLl+BcV|P0D{~W@K zRvAqI^a!=zq9UV`Q!Vj-@e<#!Z`rHnC)i^QLrsxNST>~m;4Mh)jy#72hbn73oMs-% z#6M-d8tAS}{1u={6{Ly1R4`i+c>iKjvs5pNufSpc1leT0=`0e2sjPl0+d{i5$++YY znarZ4%8>BY+WV?Yw8=c{8+O6819mJO<&RHO`-5NDqV#&ALknR!r+%>sLd?9hd@{(; zdCd*xUfnlX6LuzGruE5alUy4koY4twX3_jO^Yz;8x4bXl+=fauH??OE*zC^UOT{cgh zgJ$_sRFJ4Ct_Qv9G|s6KxRXFjRl!83*4(zK_!TM&w830_CxCGb-Q*@ixgmR1$rB1i zZiMM>%bW~;gQ}CvkujE$(lUsYG07!!+cTs4p1|{yxY1?TiO_uUyh(bIH4xM$g=bh! zvM>{JwCiXvTF!%6yxKbGgi6|`Ty_7K`71Y3@l8%4$EF-@hRYsUGa|T0j(rpaysgQn zXH!({mJ{4#jka#bn<|KhUw?Gfy|RsO_DRgcNpi@IR%9vAB+nYT6EP`}`Z}gy82266 z%1bQay`~FNwJ^Zrr%dTJAamEUh85fRFyA!z0KpZm`wF@&CudWy0 z{jSrA$%13y61rR5xbNKQRnLjf&*hJ?i`P|WrJrti?;n48HEtL`mxcv+EGh;FAL9Lo z|3XC(!EZ7m|0xD&qbg&!%ZAW#tA^0YLaE)h3dFmod}&)PF}+Tgfg%!1Y+=lpBJN+9 z|FZcwF7KEi;!of@wC&yQVMi95ErrH!>{nn`YZSH|vTzV{UQF+|Onk^-x+>c_LHA@# zExER|HNTT?G^3;ho;&QJ&1o0gQD*r%doj39&uw*SBQ|MGX@)ld6Nz&c?x74{W^|&% zrzPB3V+1oO-uwHS+xUQaFvYT6u8}mg&Gn=|kOyuW7dK~Q9YfJkWs=(o-Bi?2YgL*i zCE7|W=FCd;AKi>`dhTLMRMJoJaQjyR=!PEX4{- zjI;t%`BDsu(pQx+3|7Jp3SRB+^<-{I`zRt3Ahew@p?A{yucPDf)8uK}t0VktFK*>vgAIBhsP+jlB<{mw#Dib(^4P`r&n0g%E0PAxPFudnTQCp(EVa}QszR7N<>pzXH%>_z zONda-ag&Fwmk=$IVl!JG-`Vuqa+Ny^SzOo#9nR9nVm@Uf_5)b%pkQG zUd**&#ZA2GL_Ms&&qt?Zk{-0R`bxoKoLCxL6ySspsW|BEVc1V&ZenhLAVn7UcM*grN^_c)Zu1 z#Au%TD4flAgOSogEc@>9vAkz4>_TphRHz!YeTgriG}lRi0EL`G&SnE6 zjOqK;)(Df!ZbmP;!;2T5Bv|TDfB~{Zcqkrxl;M-U%tC!kdgM!%VWKg-KmuReN_2f| zVZOUH#F+IKt9*bw-DJZT;Dd$u24jmsW)bwCg$^USG%XR@a7T0)^aUA_D!-Tb!_f)k z+r=^X6z9Reb$x5)GC)HpanRhmHM~7M-`+i3wSu*sQFdb*2(o{J`Z>r{p8%n58#Gu; zZ@LZ3R|rfrZZbh=x7hpHnmm*KcPmukN7<2j3S_M$`u+D`E4-TU29U5W<33O^R)ul{IpSUl@mySQd6q%*%jzDYIx;dP(_7Ii zp*-js=$I?pTAbWEdixlW9E5p9GTANAK?_BCF9h#iT?VGnY2BGBu<4;4cowM2p=@&W zZvL*h$bup6P&@ZADlqemHKuoaK|}5AtYRE`mwA@|J{rY(0QV`Jf#+{(4|p1^+Pc*X|*}?mPh!P)pVeNMp17hhJP76DKD?yR4Iti> ziJqe!oxP)-y@{ib4f`tW~rUUsRj4PneYPCdzQ;?yj9O~c?4?JswNpv zc8plHQcJtp++{>18Y7CNog~XEQp^b@=P(Nnm9L zKrrhxdl^8eWk5raH=GbCXs~~OT7&A{n-({1MGN{y{nlz}=$7@;HnZXieX9i?sC!u~ z`=tm~gDXjFi!Av#%TYYom@Q_b!;3o#jN8D1ly*tcq7Uj#9Yn>o_yk7lJidloxTSt# zsK^cEm_XSVN&7?_ZS{9ABbxwNB@qV`HM9;3{bB*9?cNMTT|X-&Q~p37y;Zsc2XVh8 zs1yXEmIB^TiWbXMs-`no!rQvO@W2f>*sGzJDB$;idOH9ZxWjdZ8mUU-DMf5Qr+OV7 z>w2%rLYtt<{p#&^;n{=k0&5D0UFnqzcowEPAK7u}HIE37=9Upp_CSHN!@zLm%!WVP zoj9r5sU{OMHnUI*?WtYkxufT`KjF29V`3q6qkkC*uFiyMGnO2p5t7{Oo}n+Y9Amm1 z`R=j_dYVF$Jas3p>Gu` z%S)zHN=B3V_zn4StlNe>8YBg$7c!0$YzaV;ZEzRSd!$ZWSKe088D2BptAvU>u1I7J zLlB6jd=QW}!y=dYm~ z#d_}dAJ1*ey!ET_?{epCL$$4Bqkhlc0_ihV;+(7eAtKYn@*ZI{1r4t^m{#5ABxY}j z-CN78@PVHu40pw;A-Z$fh)tViMnBZrsautA=tn-GL-NO{ZJ6FL?lp1sL6b-8Le>tHFjaJ7+%xVhz_Fg`N~TskVMurBCIA<+hKMvhBN7Sb5O zM9&j5W8}Pg?v_?@J#V{UyE~3^ZQ6mr>qhRdS11#i@|r~-q+Bsa69a6Z7*`;S4lx?- zV#zc@z?$#A^mesiJ4 zfLF4Yubhy+oPxSirSZ-tpSl}K4|AL=#;(9*g4`UD&~1XVYsn#sU+}>ZPDjT6&M2CA zZH}SW_&qIv1`4DK&goMAuGwOrAJqA%g8M=3#Sfg;Y4M9(kXUz(!e zw!#LC7w!S(LXi4E5s@yWz=EaOcKzF-HF1V8_U7*q$(S^D|3f)Ufx=l;U^{*yLOgPV z!f%r1M3q3@#};jf6cf?6qU=`{@bzukvc=1sHh{Y{fakYe4_R}T4Ou*c<)moL=~7B9 za*yYFpY}I1TK=BzowsGWU8Lyw!Xwu8;?HhhmfJPs9x889=B;fVrV{uQ+L9#o)^9A; zba(^Za#=erJAv$u%}8lGNHD2Cx`z9mq>DI-$QB)imw{t4)$1q&*=c>7u8_)K$=7sW z@rLkm_Jwc>hNLxGWLgnVzOOuReYsPlXqja@y{}Cjeb~s2veo*UXnS-q{QC;~8F0_y z&f>SFq>^UM4jPVeoz^Uc_U{wje>Ky9 z5AlzUOKhd$px9V~lvwW(64b!*V?8NPEl8RQCDKW7$_Ku=#p(>p!t5#RA!L&{nz@>C zD(@c6=Dc?dAXW}@#wVN_bEzupY19#&l5);j9$|XPm7-ut9HHFZMZ;pR zv=ScZ+#!F>voTB#Q!~?CUOXNCesqBL7@zhmxE4M&B1!Qzo0;KWxug+W?t~m;DIO@) z{K#_$p181W(eJHcz9IW@PqriRz#KHML^apQF^(E*uQmQDPq(RZ(jd?DA+VpgjV|nU zewU5LA3Sp8Tx-*vrXG+!vf7B0qoMlK&7tf1j~d zWw9AiyeHMhw0=keLH?qOh-;OnqZUNkS4<+`JIh&jIbABH7ow^3hy1 z8(Q^eLV9gcJjruJQNbAl7~ z85VlsFjTNX8g=@$vnT*IQen)M`8)|VZ?Jbf5t#fD-7VX=L8+qn{v=geD*=j3SXKbN!*e4N_!G3889UBrw4CEkUBJ#BMCWS2$ zD=&vIn@S4-W$=Wo@#-@!X!4FodU68%YM|TN?!xEm!vZmHR zhsT9}Y P4vPy`pEA-38ecg4SQt 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 B5p@6n diff --git a/lab2_pruebas/Makefile b/lab2_pruebas/Makefile deleted file mode 100644 index 86daa8a..0000000 --- a/lab2_pruebas/Makefile +++ /dev/null @@ -1,54 +0,0 @@ - -# Parameters -RPC_PATH = ./rpc_store_service -LISTS_PATH = ./lists - -SERVER = server -CLIENT = client -MD5_WS = ./md5/server/endpoint/MD5Publisher -MONITOR = monitor -RPC_SERVER = store_service_server - -SOURCES_CLNT.c = -SOURCES_CLNT.h = -SOURCES_SVC.c = -SOURCES_SVC.h = -SOURCES.x = $(RPC_PATH)/store_service.x - -TARGETS_SERVER.c = $(LISTS_PATH)/user_list.c $(LISTS_PATH)/msg_list.c $(LISTS_PATH)/read_line.c -TARGETS_SVC.c = $(RPC_PATH)/store_service_svc.c $(RPC_PATH)/store_service_xdr.c -TARGETS_CLNT.c = $(RPC_PATH)/store_service_clnt.c $(RPC_PATH)/store_service_xdr.c - -OBJECTS_SERVER = $(TARGETS_SERVER.c:%.c=%.o) -OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) -OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) -# Compiler flags - -CPPFLAGS += -D_REENTRANT -CFLAGS += -g -Wall -LDLIBS += -lnsl -lpthread -LDFLAGS = -L$(INSTALL_PATH)/lib/ - RPCGENFLAGS = - -# Targets - -all : $(MONITOR) $(RPC_SERVER) $(SERVER) $(CLIENT) $(MD5_WS) - -$(MONITOR) : $(MONITOR).o $(OBJECTS_CLNT) - $(LINK.c) -o $(MONITOR) $(MONITOR).o $(OBJECTS_CLNT) $(LDLIBS) - -$(RPC_SERVER) : $(RPC_SERVER).o $(OBJECTS_SVC) - $(LINK.c) -o $(RPC_SERVER) $(RPC_SERVER).o $(OBJECTS_SVC) $(LDLIBS) - -$(SERVER) : $(SERVER).o $(OBJECTS_SERVER) $(OBJECTS_CLNT) - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -$(CLIENT) : - javac $(CLIENT).java - -$(MD5_WS) : - javac -cp . $(MD5_WS).java - - clean: - $(RM) core $(SERVER) $(MONITOR) $(RPC_SERVER) *.o ./*/*.o *.class ./*/*.class ./*/*/*.class ./*/*/*/*.class - diff --git a/lab2_pruebas/authors.txt b/lab2_pruebas/authors.txt deleted file mode 100644 index f5b361b..0000000 --- a/lab2_pruebas/authors.txt +++ /dev/null @@ -1,2 +0,0 @@ -GUTIÉRREZ PARADELA, CARLOS 100291121 GROUP 89 -LÓPEZ LOZOYA, RUBÉN 100292107 GROUP 89 \ No newline at end of file diff --git a/lab2_pruebas/client.java b/lab2_pruebas/client.java deleted file mode 100644 index 21aefa9..0000000 --- a/lab2_pruebas/client.java +++ /dev/null @@ -1,743 +0,0 @@ -import java.io.*; -import gnu.getopt.Getopt; -import java.net.Socket; -import java.net.ServerSocket; -import md5.client.MD5; -import md5.client.MD5ImplService; -import java.net.URL; - - -class client { - - /********************* TYPES **********************/ - - /** - * @brief Return codes for the protocol methods - */ - private static enum RC { - OK, - ERROR, - USER_ERROR - }; - - /******************* ATTRIBUTES *******************/ - - private static String _server = null; - private static int _port = -1; - /* Controls the user bound to the client when executing a CONNECT command */ - private static String connected_user = null; - /* Instantiate and prepare an empty ServerThread for further connection */ - private static ServerThread server_thread = new ServerThread(); - /* Variable for storing the IP address of the md5 web service server */ - private static String _md5_ws = null; - - - /********************* METHODS ********************/ - - /** - * @param user - User name to register in the system - * - * @return OK if successful - * @return USER_ERROR if the user is already registered - * @return ERROR if another error occurred - */ - static RC register(String user) - { - // Write your code here - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "REGISTER" is sent indicating the operation - String operation = new String("REGISTER"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be registered - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user is previously registered; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - System.out.println("c> REGISTER OK"); - return RC.OK; - case 1: - System.out.println("c> USERNAME IN USE"); - return RC.USER_ERROR; - case 2: - System.out.println("c> REGISTER FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> REGISTER FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to unregister from the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist - * @return ERROR if another error occurred - */ - static RC unregister(String user) - { - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "UNREGISTER" is sent indicating the operation - String operation = new String("UNREGISTER"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be unregistered - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* If we try to unregister the user that is currently bound and connected - to the client, it is unbound from the client */ - if(connected_user != null){ - /* This protects against null pointer exception when a CONNECT command is executed and - the server marks the user as connected, but then the client is terminated without - executing DISCONNECT from the server */ - if(connected_user.equals(user)){ - connected_user = null; - /* If the unregister also disconnect a user linked to the client (connected and with a - server thread running, kill also the running thread*/ - server_thread.kill(); - } - } - - System.out.println("c> UNREGISTER OK"); - return RC.OK; - case 1: - System.out.println("c> USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> UNREGISTER FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> UNREGISTER FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to connect to the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist or if it is already connected - * @return ERROR if another error occurred - */ - static RC connect(String user) - { - - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - /* Before trying to connect, if a user is already connected, quit the function with RC.ERROR */ - if(connected_user != null){ - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "CONNECT" is sent indicating the operation - String operation = new String("CONNECT"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be connected - out.writeBytes(user); - out.write(0); - - /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum - number of queued requests */ - ServerSocket sock = new ServerSocket(0, 10); - /* Get the port at which the socket is listening */ - int port = sock.getLocalPort(); - - //4. A string is sent with the port number listening in the client - out.writeBytes(String.valueOf(port)); - out.write(0); - - //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //6. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* Start a new thread where */ - server_thread.start(sock); - /* Bind the user to the client */ - connected_user = user; - System.out.println("c> CONNECT OK"); - return RC.OK; - case 1: - System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> USER ALREADY CONNECTED"); - return RC.USER_ERROR; - case 3: - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - e.printStackTrace(); - } - System.out.println("c> CONNECT FAIL"); - return RC.ERROR; - } - - /** - * @param user - User name to disconnect from the system - * - * @return OK if successful - * @return USER_ERROR if the user does not exist or if it is already disconnected - * @return ERROR if another error occurred - */ - static RC disconnect(String user) - { - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - //2. The string "DISCONNECT" is sent indicating the operation - String operation = new String("DISCONNECT"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user to be disconnected - out.writeBytes(user); - out.write(0); - - //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - //5. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - /* Unbind the user from the client */ - connected_user = null; - server_thread.kill(); - System.out.println("c> DISCONNECT OK"); - return RC.OK; - case 1: - checkAndUnbindUser(user); - System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - checkAndUnbindUser(user); - System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); - return RC.USER_ERROR; - case 3: - checkAndUnbindUser(user); - System.out.println("c> DISCONNECT FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - checkAndUnbindUser(user); - System.out.println("c> DISCONNECT FAIL"); - return RC.ERROR; - } - private static void checkAndUnbindUser(String user){ - /* In case of error in the disconnection process, stop the execution of the thread - and unbind the user from the client as if the disconnection has been made. But if the - disconnect command executed was not executed for the user that is bound to the client - then nothing is done */ - if(connected_user != null){ - /* Check if the user coincides with the linked user */ - if(connected_user.equals(user)){ - connected_user = null; - server_thread.kill(); - } - } - } - - /** - * @param user - Receiver user name - * @param message - Message to be sent - * - * @return OK if the server had successfully delivered the message - * @return USER_ERROR if the user is not connected (the message is queued for delivery) - * @return ERROR the user does not exist or another error occurred - */ - static RC send(String user, String message) - { - String md5; - /* Calculate the MD5 of the message */ - try{ - /* Build the URL of the web service based on the IP passed in the command */ - URL url = new URL(new String("http://" + _md5_ws + "/ws/md5")); - /* Define the MD5 Web service variables */ - MD5ImplService md5Service = new MD5ImplService(url); - MD5 md5_ws = md5Service.getMD5ImplPort(); - /* Call the web service that calculates de MD5 of the message */ - md5 = md5_ws.getMD5(message); - } - catch(Exception e){ - /* If exception occurs, nothing is sent to the server. Print error */ - System.out.println("c> ERROR , SEND FAIL / ERROR IN MD5"); - return RC.ERROR; - } - /////////////////////////////////////////////// - /////////////// PROTOCOL /////////////// - /////////////////////////////////////////////// - try{ - /* If there is not a user connected in the client, return error RC.ERROR */ - if(connected_user == null){ - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - //1. Connect to the server, using the IP and port passed in the command line - Socket sc = new Socket(_server, _port); - - DataOutputStream out = new DataOutputStream(sc.getOutputStream()); - DataInputStream in = new DataInputStream(sc.getInputStream()); - - - //2. The string "SEND" is sent indicating the operation - String operation = new String("SEND"); - out.writeBytes(operation); - out.write(0); //Insert ASCII 0 at the end - - //3. A string of characters is sent with the user that sends the message - out.writeBytes(connected_user); - out.write(0); - - //4. A string of characters is sent with the user that receives the message - out.writeBytes(user); - out.write(0); - - //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent - out.writeBytes(trimMessage(message)); //Sends a string of 255 characters - out.write(0); - - //6. A string of characters is sent with the MD5 hash of the message to be sent - out.writeBytes(md5); //Sends a string of 255 characters - out.write(0); - - //7. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case - byte response = in.readByte(); - - String msg_id = new String(); - /* If response is 0 (OK), prepare to read the ID of the message */ - if(response == 0){ - - /* Create BufferedReader for easy reading a string */ - /* - BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); - msg_id = inString.readLine();*/ - byte ch; - do{ - ch = in.readByte(); - if (ch != 0) msg_id = msg_id + ((char) ch); - } while(ch != 0); - } - - //8. Close connection - sc.close(); - out.close(); - in.close(); - - //Decode the response from the server - switch(response){ - case 0: - System.out.println("c> SEND OK - MESSAGE " + msg_id); - return RC.OK; - case 1: - System.out.println("c> SEND FAIL / USER DOES NOT EXIST"); - return RC.USER_ERROR; - case 2: - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - - } - catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - System.out.println("c> SEND FAIL"); - return RC.ERROR; - } - /** - * @brief Trims the input message to 255 characters - * - * @param message - String to be trimmed - * - * @return message - Result String - */ - static String trimMessage(String message){ - /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ - int maxLength = 255; - - if(message.length() > maxLength){ - message = message.substring(0, maxLength); - } - - return message; - } - - /** - * @brief Command interpreter for the client. It calls the protocol functions. - */ - static void shell() - { - boolean exit = false; - String input; - String [] line; - BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - - while (!exit) { - try { - System.out.print("c> "); - input = in.readLine(); - line = input.split("\\s"); - - if (line.length > 0) { - /*********** REGISTER *************/ - if (line[0].equals("REGISTER")) { - if (line.length == 2) { - register(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: REGISTER "); - } - } - - /********** UNREGISTER ************/ - else if (line[0].equals("UNREGISTER")) { - if (line.length == 2) { - unregister(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: UNREGISTER "); - } - } - - /************ CONNECT *************/ - else if (line[0].equals("CONNECT")) { - if (line.length == 2) { - connect(line[1]); // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR - } else { - System.out.println("Syntax error. Usage: CONNECT "); - } - } - - /********** DISCONNECT ************/ - else if (line[0].equals("DISCONNECT")) { - if (line.length == 2) { - disconnect(line[1]); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: DISCONNECT "); - } - } - - /************** SEND **************/ - else if (line[0].equals("SEND")) { - if (line.length >= 3) { - // Remove first two words - String message = input.substring(input.indexOf(' ')+1); - message = message.substring(message.indexOf(' ')+1); - send(line[1], message); // userName = line[1] - } else { - System.out.println("Syntax error. Usage: SEND "); - } - } - - /************** QUIT **************/ - else if (line[0].equals("QUIT")){ - if (line.length == 1) { - exit = true; - } else { - System.out.println("Syntax error. Use: QUIT"); - } - } - - /************* UNKNOWN ************/ - else { - System.out.println("Error: command '" + line[0] + "' not valid."); - } - } - } catch (java.io.IOException e) { - System.out.println("Exception: " + e); - //e.printStackTrace(); - } - } - } - - /** - * @brief Prints program usage - */ - static void usage() - { - System.out.println("Usage: java -cp . client -s -p "); - } - - /** - * @brief Parses program execution arguments - */ - static boolean parseArguments(String [] argv) - { - Getopt g = new Getopt("client", argv, "ds:p:w:"); - - int c; - String arg; - - while ((c = g.getopt()) != -1) { - switch(c) { - //case 'd': - // _debug = true; - // break; - case 's': - _server = g.getOptarg(); - break; - case 'p': - arg = g.getOptarg(); - _port = Integer.parseInt(arg); - break; - case 'w': - _md5_ws = g.getOptarg(); - break; - case '?': - System.out.print("getopt() returned " + c + "\n"); - break; // getopt() already printed an error - default: - System.out.print("getopt() returned " + c + "\n"); - } - } - - if (_server == null) - return false; - - if ((_port < 1024) || (_port > 65535)) { - System.out.println("Error: Port must be in the range 1024 <= port <= 65535"); - return false; - } - - return true; - } - - - - /********************* MAIN **********************/ - - public static void main(String[] argv) - { - if(!parseArguments(argv)) { - usage(); - return; - } - - /* Creates a thread that catches Ctrl+C kill command from the CLI and disconnects from the server the - connected user of the client (bound to the client) */ - Runtime.getRuntime().addShutdownHook(new Thread() { - public void run() { - if(connected_user != null){ - disconnect(connected_user); - } - } - }); - - shell(); - System.out.println("+++ FINISHED +++"); - } -} - -/********************* SERVERTHREAD **********************/ - -class ServerThread extends Thread{ - - private ServerSocket sc; //ServerSocket of the listening thread - private volatile Thread blinker; //Thread of type volatile that will be attached to the ServerThread - private Socket sd; - - /** - * @brief Constructor. Starts the server thread and initializes the ServerSocket property - * - * @param sc - Initialized ServerSocket - * - */ - public void start(ServerSocket sc){ - blinker = new Thread(this); - blinker.start(); - this.sc = sc; - } - - /** - * @brief Destroys the server thread - */ - public void kill(){ - try{ - if(sd != null) this.sd.close(); - } - catch(IOException e){ - System.out.println("Exception: " + e); - } - blinker = null; - } - - /** - * @brief Main execution code sequence of the server thread. Listens to incoming connections - */ - public void run(){ - Thread thisThread = Thread.currentThread(); - sd = null; - while(blinker == thisThread){ - try{ - /* Waiting for connection */ - sd = this.sc.accept(); - - DataInputStream msg_in = new DataInputStream(sd.getInputStream()); - /* Receive the string encoding the operation */ - String operation = new String(); - byte ch; - do{ - ch = msg_in.readByte(); - if (ch != 0) operation = operation + ((char) ch); - - } while(ch != 0); - /* Prepare the string for the ID of the message sent/received */ - String id = new String(); - - switch(operation){ - case "SEND_MESSAGE": - /* Read the sender username from the socket */ - String sender = new String(); - do{ - ch = msg_in.readByte(); - if (ch != 0) sender = sender + ((char) ch); - - } while(ch != 0); - /* Read the ID of the received message */ - do{ - ch = msg_in.readByte(); - if (ch != 0) id = id + ((char) ch); - } while(ch != 0); - /* Read the string containing the MD5 of the message */ - String md5 = new String(); - do{ - ch = msg_in.readByte(); - if (ch != 0) md5 = md5 + ((char) ch); - - } while(ch != 0); - /* Read the string containing the body of the message */ - String msg = new String(); - do{ - ch = msg_in.readByte(); - if (ch != 0) msg = msg + ((char) ch); - - } while(ch != 0); - /* Prompt */ - System.out.println("MESSAGE " + id + " FROM " + sender + ":"); - System.out.println("\t" + msg); - System.out.println("\tMD5:"); - System.out.println("\t" + md5); - System.out.println("\tEND"); - System.out.print("c> "); - break; - - case "SEND_MESS_ACK": - /* Read the id of the message being acknowledged */ - do{ - ch = msg_in.readByte(); - if (ch != 0) id = id + ((char) ch); - } while(ch != 0); - - System.out.println("SEND MESSAGE " + id + " OK"); - System.out.print("c> "); - break; - } - sd.close(); - - } - catch(Exception e){ - System.out.println("Exception: " + e); - //e.printStackTrace(); - this.kill(); - } - } - /* If the thread exits the loop for any reason, try to close the socket */ - try{ - sd.close(); - } - catch(Exception e){ - System.out.println("Exception: " + e); - this.kill(); - } - } -} diff --git a/lab2_pruebas/gnu/getopt/COPYING.LIB b/lab2_pruebas/gnu/getopt/COPYING.LIB deleted file mode 100755 index 161a3d1..0000000 --- a/lab2_pruebas/gnu/getopt/COPYING.LIB +++ /dev/null @@ -1,482 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/lab2_pruebas/gnu/getopt/ChangeLog b/lab2_pruebas/gnu/getopt/ChangeLog deleted file mode 100755 index 7fed6d2..0000000 --- a/lab2_pruebas/gnu/getopt/ChangeLog +++ /dev/null @@ -1,114 +0,0 @@ -For release 1.0.14 (2012/02/08) - -David Zhang (david290@qq.com) provided Chinese language messages. -Daniel Thomas (drt24@srcf.ucam.org) contributed a patch to fix a static -access warning message. - -For release 1.0.13 (2006/08/29) - -Krzysztof Szymanski (sirch.s@gmail.com) provided Polish language messages. - -For release 1.0.12 (2005/11/12) - -Sandro Tossi (matrixhasu@gmail.com) provided Italian language messages. - -For release 1.0.11 (2005/02/19) - -Daniel Perez Alvarez (dondani@gmail.com) provided Spanish language -messages. - -For release 1.0.10 (2004/09/12) - -Marian-Nicolae V. Ion (mion@neocom.fr) provided Romanian language messages. - -For release 1.0.9 (2002/01/16) - -Yasuoka Masahiko provided Japanese langauge messages. - -Csom Gyula provided Hungarian language messages. - -Guillaume Rousse supplied the ant build file -and documentation. - -For release 1.0.8 (2000/09/11) - -Ernst de Haan provided Dutch language messages. - -For release 1.0.7 (2000/02/02) - -Fixed an obscure POSIX compatibility issue. When an optstring is "o:", -then "-o -- foo" should result in -o having an optarg of "foo", not "--" -as was previously returned. This new parsing behavior is only enabled -in POSIX compatibility mode. Thank to Don Suit (dsuit@fc.hp.com) for -reporting this and help in communicating proper POSIX behavior. - -For release 1.0.6 (1999/06/27) - -Added French language messages. Thanks to Edouard G. Parmelan -(Edouard.Parmelan@quadratec.fr) for this contribution. - -For release 1.0.5 (1999/03/23) - -Fixed bug that caused getopt to throw a StringIndexOutOfBoundsException -when an empty string ("") argument was encountered. Thanks to -Steffen Siebert (siebert@logware.de) for this bug report and a patch. - -For release 1.0.4 - -Added Norwegian language messages. Thanks to Bjørn-Ove Heimsund -(s811@drone.ii.uib.no) for this contribution. - -For release 1.0.3 - -Added German language messages. Thanks to Bernhard Bablok -(bablokb@gmx.net) for this contribution. - -For release 1.0.2 - -Prevent ArrayIndexOutOfBounds exception if "optstring" is null. David Karr -(dkarr@nmo.gtegsc.com) had a problem with this when commenting out options -during debugging, so I have fixed it. - -For release 1.0.1 - -Added Czech language messages. Thanks to Roman Szturc (Roman.Szturc@vsb.cz) -for this contribution. - -For release 1.0 - -No changes. Just increment release number to 1.0 - -For release 0.9.2 - -The sample code has been moved into a separate file called "GetoptDemo.java". -This is so that it can be legally placed into the public domain and not -subsumed into the LGPL as would be the case if it were in Getopt.java. -While I do not encourage anyone to write proprietary software, I feel that -there is no good purpose served in restricting what someone can do with -a short example program. - -Modified the Makefile and various other files to support the change -above. - -For release 0.9.1 - -This release contains only minor fixes. It's always possible it introduces -some bugs though so unless you are keen on internationalization or are -having a line separator problem, there is no need to upgrade from 0.9. - --- Messages are now internationalized. Thanks to Bill King - (wrking@eng.sun.com) for this. - --- Changes all print's to println's to avoid system dependent line - separators. - --- All internal variables are now protected. Several people suggested - doing this in response to my request for comments in the help file. - No one suggested keeping any variables public. - --- Fixed parts of licensing that mentioned the regular GPL. Getopt is - and always has been licensed under the LPGL. Thanks to Arieh Markel - (arieh.markel@sun.com) for pointing this out. - - - diff --git a/lab2_pruebas/gnu/getopt/Getopt.java b/lab2_pruebas/gnu/getopt/Getopt.java deleted file mode 100755 index 429301b..0000000 --- a/lab2_pruebas/gnu/getopt/Getopt.java +++ /dev/null @@ -1,1337 +0,0 @@ -/************************************************************************** -/* Getopt.java -- Java port of GNU getopt from glibc 2.0.6 -/* -/* Copyright (c) 1987-1997 Free Software Foundation, Inc. -/* Java Port Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -package gnu.getopt; - -import java.util.Locale; -import java.util.ResourceBundle; -import java.text.MessageFormat; - -/**************************************************************************/ - -/** - * This is a Java port of GNU getopt, a class for parsing command line - * arguments passed to programs. It it based on the C getopt() functions - * in glibc 2.0.6 and should parse options in a 100% compatible manner. - * If it does not, that is a bug. The programmer's interface is also - * very compatible. - *

- * To use Getopt, create a Getopt object with a argv array passed to the - * main method, then call the getopt() method in a loop. It will return an - * int that contains the value of the option character parsed from the - * command line. When there are no more options to be parsed, it - * returns -1. - *

- * A command line option can be defined to take an argument. If an - * option has an argument, the value of that argument is stored in an - * instance variable called optarg, which can be accessed using the - * getOptarg() method. If an option that requires an argument is - * found, but there is no argument present, then an error message is - * printed. Normally getopt() returns a '?' in this situation, but - * that can be changed as described below. - *

- * If an invalid option is encountered, an error message is printed - * to the standard error and getopt() returns a '?'. The value of the - * invalid option encountered is stored in the instance variable optopt - * which can be retrieved using the getOptopt() method. To suppress - * the printing of error messages for this or any other error, set - * the value of the opterr instance variable to false using the - * setOpterr() method. - *

- * Between calls to getopt(), the instance variable optind is used to - * keep track of where the object is in the parsing process. After all - * options have been returned, optind is the index in argv of the first - * non-option argument. This variable can be accessed with the getOptind() - * method. - *

- * Note that this object expects command line options to be passed in the - * traditional Unix manner. That is, proceeded by a '-' character. - * Multiple options can follow the '-'. For example "-abc" is equivalent - * to "-a -b -c". If an option takes a required argument, the value - * of the argument can immediately follow the option character or be - * present in the next argv element. For example, "-cfoo" and "-c foo" - * both represent an option character of 'c' with an argument of "foo" - * assuming c takes a required argument. If an option takes an argument - * that is not required, then any argument must immediately follow the - * option character in the same argv element. For example, if c takes - * a non-required argument, then "-cfoo" represents option character 'c' - * with an argument of "foo" while "-c foo" represents the option - * character 'c' with no argument, and a first non-option argv element - * of "foo". - *

- * The user can stop getopt() from scanning any further into a command line - * by using the special argument "--" by itself. For example: - * "-a -- -d" would return an option character of 'a', then return -1 - * The "--" is discarded and "-d" is pointed to by optind as the first - * non-option argv element. - *

- * Here is a basic example of using Getopt: - *

- *

-  * Getopt g = new Getopt("testprog", argv, "ab:c::d");
-  * //
-  * int c;
-  * String arg;
-  * while ((c = g.getopt()) != -1)
-  *   {
-  *     switch(c)
-  *       {
-  *          case 'a':
-  *          case 'd':
-  *            System.out.print("You picked " + (char)c + "\n");
-  *            break;
-  *            //
-  *          case 'b':
-  *          case 'c':
-  *            arg = g.getOptarg();
-  *            System.out.print("You picked " + (char)c + 
-  *                             " with an argument of " +
-  *                             ((arg != null) ? arg : "null") + "\n");
-  *            break;
-  *            //
-  *          case '?':
-  *            break; // getopt() already printed an error
-  *            //
-  *          default:
-  *            System.out.print("getopt() returned " + c + "\n");
-  *       }
-  *   }
-  * 
- *

- * In this example, a new Getopt object is created with three params. - * The first param is the program name. This is for printing error - * messages in the form "program: error message". In the C version, this - * value is taken from argv[0], but in Java the program name is not passed - * in that element, thus the need for this parameter. The second param is - * the argument list that was passed to the main() method. The third - * param is the list of valid options. Each character represents a valid - * option. If the character is followed by a single colon, then that - * option has a required argument. If the character is followed by two - * colons, then that option has an argument that is not required. - *

- * Note in this example that the value returned from getopt() is cast to - * a char prior to printing. This is required in order to make the value - * display correctly as a character instead of an integer. - *

- * If the first character in the option string is a colon, for example - * ":abc::d", then getopt() will return a ':' instead of a '?' when it - * encounters an option with a missing required argument. This allows the - * caller to distinguish between invalid options and valid options that - * are simply incomplete. - *

- * In the traditional Unix getopt(), -1 is returned when the first non-option - * charcter is encountered. In GNU getopt(), the default behavior is to - * allow options to appear anywhere on the command line. The getopt() - * method permutes the argument to make it appear to the caller that all - * options were at the beginning of the command line, and all non-options - * were at the end. For example, calling getopt() with command line args - * of "-a foo bar -d" returns options 'a' and 'd', then sets optind to - * point to "foo". The program would read the last two argv elements as - * "foo" and "bar", just as if the user had typed "-a -d foo bar". - *

- * The user can force getopt() to stop scanning the command line with - * the special argument "--" by itself. Any elements occuring before the - * "--" are scanned and permuted as normal. Any elements after the "--" - * are returned as is as non-option argv elements. For example, - * "foo -a -- bar -d" would return option 'a' then -1. optind would point - * to "foo", "bar" and "-d" as the non-option argv elements. The "--" - * is discarded by getopt(). - *

- * There are two ways this default behavior can be modified. The first is - * to specify traditional Unix getopt() behavior (which is also POSIX - * behavior) in which scanning stops when the first non-option argument - * encountered. (Thus "-a foo bar -d" would return 'a' as an option and - * have "foo", "bar", and "-d" as non-option elements). The second is to - * allow options anywhere, but to return all elements in the order they - * occur on the command line. When a non-option element is ecountered, - * an integer 1 is returned and the value of the non-option element is - * stored in optarg is if it were the argument to that option. For - * example, "-a foo -d", returns first 'a', then 1 (with optarg set to - * "foo") then 'd' then -1. When this "return in order" functionality - * is enabled, the only way to stop getopt() from scanning all command - * line elements is to use the special "--" string by itself as described - * above. An example is "-a foo -b -- bar", which would return 'a', then - * integer 1 with optarg set to "foo", then 'b', then -1. optind would - * then point to "bar" as the first non-option argv element. The "--" - * is discarded. - *

- * The POSIX/traditional behavior is enabled by either setting the - * property "gnu.posixly_correct" or by putting a '+' sign as the first - * character of the option string. The difference between the two - * methods is that setting the gnu.posixly_correct property also forces - * certain error messages to be displayed in POSIX format. To enable - * the "return in order" functionality, put a '-' as the first character - * of the option string. Note that after determining the proper - * behavior, Getopt strips this leading '+' or '-', meaning that a ':' - * placed as the second character after one of those two will still cause - * getopt() to return a ':' instead of a '?' if a required option - * argument is missing. - *

- * In addition to traditional single character options, GNU Getopt also - * supports long options. These are preceeded by a "--" sequence and - * can be as long as desired. Long options provide a more user-friendly - * way of entering command line options. For example, in addition to a - * "-h" for help, a program could support also "--help". - *

- * Like short options, long options can also take a required or non-required - * argument. Required arguments can either be specified by placing an - * equals sign after the option name, then the argument, or by putting the - * argument in the next argv element. For example: "--outputdir=foo" and - * "--outputdir foo" both represent an option of "outputdir" with an - * argument of "foo", assuming that outputdir takes a required argument. - * If a long option takes a non-required argument, then the equals sign - * form must be used to specify the argument. In this case, - * "--outputdir=foo" would represent option outputdir with an argument of - * "foo" while "--outputdir foo" would represent the option outputdir - * with no argument and a first non-option argv element of "foo". - *

- * Long options can also be specified using a special POSIX argument - * format (one that I highly discourage). This form of entry is - * enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid - * option string. This causes getopt to treat the name following the - * "-W" as the name of the long option. For example, "-W outputdir=foo" - * would be equivalent to "--outputdir=foo". The name can immediately - * follow the "-W" like so: "-Woutputdir=foo". Option arguments are - * handled identically to normal long options. If a string follows the - * "-W" that does not represent a valid long option, then getopt() returns - * 'W' and the caller must decide what to do. Otherwise getopt() returns - * a long option value as described below. - *

- * While long options offer convenience, they can also be tedious to type - * in full. So it is permissible to abbreviate the option name to as - * few characters as required to uniquely identify it. If the name can - * represent multiple long options, then an error message is printed and - * getopt() returns a '?'. - *

- * If an invalid option is specified or a required option argument is - * missing, getopt() prints an error and returns a '?' or ':' exactly - * as for short options. Note that when an invalid long option is - * encountered, the optopt variable is set to integer 0 and so cannot - * be used to identify the incorrect option the user entered. - *

- * Long options are defined by LongOpt objects. These objects are created - * with a contructor that takes four params: a String representing the - * object name, a integer specifying what arguments the option takes - * (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, - * or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described - * below), and an integer value (described below). - *

- * To enable long option parsing, create an array of LongOpt's representing - * the legal options and pass it to the Getopt() constructor. WARNING: If - * all elements of the array are not populated with LongOpt objects, the - * getopt() method will throw a NullPointerException. - *

- * When getopt() is called and a long option is encountered, one of two - * things can be returned. If the flag field in the LongOpt object - * representing the long option is non-null, then the integer value field - * is stored there and an integer 0 is returned to the caller. The val - * field can then be retrieved from the flag field. Note that since the - * flag field is a StringBuffer, the appropriate String to integer converions - * must be performed in order to get the actual int value stored there. - * If the flag field in the LongOpt object is null, then the value field - * of the LongOpt is returned. This can be the character of a short option. - * This allows an app to have both a long and short option sequence - * (say, "-h" and "--help") that do the exact same thing. - *

- * With long options, there is an alternative method of determining - * which option was selected. The method getLongind() will return the - * the index in the long option array (NOT argv) of the long option found. - * So if multiple long options are configured to return the same value, - * the application can use getLongind() to distinguish between them. - *

- * Here is an expanded Getopt example using long options and various - * techniques described above: - *

- *

-  * int c;
-  * String arg;
-  * LongOpt[] longopts = new LongOpt[3];
-  * // 
-  * StringBuffer sb = new StringBuffer();
-  * longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
-  * longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
-  * longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
-  * // 
-  * Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
-  * g.setOpterr(false); // We'll do our own error handling
-  * //
-  * while ((c = g.getopt()) != -1)
-  *   switch (c)
-  *     {
-  *        case 0:
-  *          arg = g.getOptarg();
-  *          System.out.println("Got long option with value '" +
-  *                             (char)(new Integer(sb.toString())).intValue()
-  *                             + "' with argument " +
-  *                             ((arg != null) ? arg : "null"));
-  *          break;
-  *          //
-  *        case 1:
-  *          System.out.println("I see you have return in order set and that " +
-  *                             "a non-option argv element was just found " +
-  *                             "with the value '" + g.getOptarg() + "'");
-  *          break;
-  *          //
-  *        case 2:
-  *          arg = g.getOptarg();
-  *          System.out.println("I know this, but pretend I didn't");
-  *          System.out.println("We picked option " +
-  *                             longopts[g.getLongind()].getName() +
-  *                           " with value " + 
-  *                           ((arg != null) ? arg : "null"));
-  *          break;
-  *          //
-  *        case 'b':
-  *          System.out.println("You picked plain old option " + (char)c);
-  *          break;
-  *          //
-  *        case 'c':
-  *        case 'd':
-  *          arg = g.getOptarg();
-  *          System.out.println("You picked option '" + (char)c + 
-  *                             "' with argument " +
-  *                             ((arg != null) ? arg : "null"));
-  *          break;
-  *          //
-  *        case 'h':
-  *          System.out.println("I see you asked for help");
-  *          break;
-  *          //
-  *        case 'W':
-  *          System.out.println("Hmmm. You tried a -W with an incorrect long " +
-  *                             "option name");
-  *          break;
-  *          //
-  *        case ':':
-  *          System.out.println("Doh! You need an argument for option " +
-  *                             (char)g.getOptopt());
-  *          break;
-  *          //
-  *        case '?':
-  *          System.out.println("The option '" + (char)g.getOptopt() + 
-  *                           "' is not valid");
-  *          break;
-  *          //
-  *        default:
-  *          System.out.println("getopt() returned " + c);
-  *          break;
-  *     }
-  * //
-  * for (int i = g.getOptind(); i < argv.length ; i++)
-  *   System.out.println("Non option argv element: " + argv[i] + "\n");
-  * 
- *

- * There is an alternative form of the constructor used for long options - * above. This takes a trailing boolean flag. If set to false, Getopt - * performs identically to the example, but if the boolean flag is true - * then long options are allowed to start with a single '-' instead of - * "--". If the first character of the option is a valid short option - * character, then the option is treated as if it were the short option. - * Otherwise it behaves as if the option is a long option. Note that - * the name given to this option - long_only - is very counter-intuitive. - * It does not cause only long options to be parsed but instead enables - * the behavior described above. - *

- * Note that the functionality and variable names used are driven from - * the C lib version as this object is a port of the C code, not a - * new implementation. This should aid in porting existing C/C++ code, - * as well as helping programmers familiar with the glibc version to - * adapt to the Java version even if it seems very non-Java at times. - *

- * In this release I made all instance variables protected due to - * overwhelming public demand. Any code which relied on optarg, - * opterr, optind, or optopt being public will need to be modified to - * use the appropriate access methods. - *

- * Please send all bug reports, requests, and comments to - * arenn@urbanophile.com. - * - * @version 1.0.7 - * - * @author Roland McGrath (roland@gnu.ai.mit.edu) - * @author Ulrich Drepper (drepper@cygnus.com) - * @author Aaron M. Renn (arenn@urbanophile.com) - * - * @see LongOpt - */ -public class Getopt extends Object -{ - -/**************************************************************************/ - -/* - * Class Variables - */ - -/** - * Describe how to deal with options that follow non-option ARGV-elements. - * - * If the caller did not specify anything, - * the default is REQUIRE_ORDER if the property - * gnu.posixly_correct is defined, PERMUTE otherwise. - * - * The special argument `--' forces an end of option-scanning regardless - * of the value of `ordering'. In the case of RETURN_IN_ORDER, only - * `--' can cause `getopt' to return -1 with `optind' != ARGC. - * - * REQUIRE_ORDER means don't recognize them as options; - * stop option processing when the first non-option is seen. - * This is what Unix does. - * This mode of operation is selected by either setting the property - * gnu.posixly_correct, or using `+' as the first character - * of the list of option characters. - */ -protected static final int REQUIRE_ORDER = 1; - -/** - * PERMUTE is the default. We permute the contents of ARGV as we scan, - * so that eventually all the non-options are at the end. This allows options - * to be given in any order, even with programs that were not written to - * expect this. - */ -protected static final int PERMUTE = 2; - -/** - * RETURN_IN_ORDER is an option available to programs that were written - * to expect options and other ARGV-elements in any order and that care about - * the ordering of the two. We describe each non-option ARGV-element - * as if it were the argument of an option with character code 1. - * Using `-' as the first character of the list of option characters - * selects this mode of operation. - */ -protected static final int RETURN_IN_ORDER = 3; - -/**************************************************************************/ - -/* - * Instance Variables - */ - -/** - * For communication from `getopt' to the caller. - * When `getopt' finds an option that takes an argument, - * the argument value is returned here. - * Also, when `ordering' is RETURN_IN_ORDER, - * each non-option ARGV-element is returned here. - */ -protected String optarg; - -/** - * Index in ARGV of the next element to be scanned. - * This is used for communication to and from the caller - * and for communication between successive calls to `getopt'. - * - * On entry to `getopt', zero means this is the first call; initialize. - * - * When `getopt' returns -1, this is the index of the first of the - * non-option elements that the caller should itself scan. - * - * Otherwise, `optind' communicates from one call to the next - * how much of ARGV has been scanned so far. - */ -protected int optind = 0; - -/** - * Callers store false here to inhibit the error message - * for unrecognized options. - */ -protected boolean opterr = true; - -/** - * When an unrecognized option is encountered, getopt will return a '?' - * and store the value of the invalid option here. - */ -protected int optopt = '?'; - -/** - * The next char to be scanned in the option-element - * in which the last option character we returned was found. - * This allows us to pick up the scan where we left off. - * - * If this is zero, or a null string, it means resume the scan - * by advancing to the next ARGV-element. - */ -protected String nextchar; - -/** - * This is the string describing the valid short options. - */ -protected String optstring; - -/** - * This is an array of LongOpt objects which describ the valid long - * options. - */ -protected LongOpt[] long_options; - -/** - * This flag determines whether or not we are parsing only long args - */ -protected boolean long_only; - -/** - * Stores the index into the long_options array of the long option found - */ -protected int longind; - -/** - * The flag determines whether or not we operate in strict POSIX compliance - */ -protected boolean posixly_correct; - -/** - * A flag which communicates whether or not checkLongOption() did all - * necessary processing for the current option - */ -protected boolean longopt_handled; - -/** - * The index of the first non-option in argv[] - */ -protected int first_nonopt = 1; - -/** - * The index of the last non-option in argv[] - */ -protected int last_nonopt = 1; - -/** - * Flag to tell getopt to immediately return -1 the next time it is - * called. - */ -private boolean endparse = false; - -/** - * Saved argument list passed to the program - */ -protected String[] argv; - -/** - * Determines whether we permute arguments or not - */ -protected int ordering; - -/** - * Name to print as the program name in error messages. This is necessary - * since Java does not place the program name in argv[0] - */ -protected String progname; - -/** - * The localized strings are kept in a separate file - */ -private ResourceBundle _messages = ResourceBundle.getBundle( - "gnu/getopt/MessagesBundle", Locale.getDefault()); - -/**************************************************************************/ - -/* - * Constructors - */ - -/** - * Construct a basic Getopt instance with the given input data. Note that - * this handles "short" options only. - * - * @param progname The name to display as the program name when printing errors - * @param argv The String array passed as the command line to the program. - * @param optstring A String containing a description of the valid args for this program - */ -public -Getopt(String progname, String[] argv, String optstring) -{ - this(progname, argv, optstring, null, false); -} - -/**************************************************************************/ - -/** - * Construct a Getopt instance with given input data that is capable of - * parsing long options as well as short. - * - * @param progname The name to display as the program name when printing errors - * @param argv The String array passed as the command ilne to the program - * @param optstring A String containing a description of the valid short args for this program - * @param long_options An array of LongOpt objects that describes the valid long args for this program - */ -public -Getopt(String progname, String[] argv, String optstring, - LongOpt[] long_options) -{ - this(progname, argv, optstring, long_options, false); -} - -/**************************************************************************/ - -/** - * Construct a Getopt instance with given input data that is capable of - * parsing long options and short options. Contrary to what you might - * think, the flag 'long_only' does not determine whether or not we - * scan for only long arguments. Instead, a value of true here allows - * long arguments to start with a '-' instead of '--' unless there is a - * conflict with a short option name. - * - * @param progname The name to display as the program name when printing errors - * @param argv The String array passed as the command ilne to the program - * @param optstring A String containing a description of the valid short args for this program - * @param long_options An array of LongOpt objects that describes the valid long args for this program - * @param long_only true if long options that do not conflict with short options can start with a '-' as well as '--' - */ -public -Getopt(String progname, String[] argv, String optstring, - LongOpt[] long_options, boolean long_only) -{ - if (optstring.length() == 0) - optstring = " "; - - // This function is essentially _getopt_initialize from GNU getopt - this.progname = progname; - this.argv = argv; - this.optstring = optstring; - this.long_options = long_options; - this.long_only = long_only; - - // Check for property "gnu.posixly_correct" to determine whether to - // strictly follow the POSIX standard. This replaces the "POSIXLY_CORRECT" - // environment variable in the C version - if (System.getProperty("gnu.posixly_correct", null) == null) - posixly_correct = false; - else - { - posixly_correct = true; - _messages = ResourceBundle.getBundle("gnu/getopt/MessagesBundle", - Locale.US); - } - - // Determine how to handle the ordering of options and non-options - if (optstring.charAt(0) == '-') - { - ordering = RETURN_IN_ORDER; - if (optstring.length() > 1) - this.optstring = optstring.substring(1); - } - else if (optstring.charAt(0) == '+') - { - ordering = REQUIRE_ORDER; - if (optstring.length() > 1) - this.optstring = optstring.substring(1); - } - else if (posixly_correct) - { - ordering = REQUIRE_ORDER; - } - else - { - ordering = PERMUTE; // The normal default case - } -} - -/**************************************************************************/ - -/* - * Instance Methods - */ - -/** - * In GNU getopt, it is possible to change the string containg valid options - * on the fly because it is passed as an argument to getopt() each time. In - * this version we do not pass the string on every call. In order to allow - * dynamic option string changing, this method is provided. - * - * @param optstring The new option string to use - */ -public void -setOptstring(String optstring) -{ - if (optstring.length() == 0) - optstring = " "; - - this.optstring = optstring; -} - -/**************************************************************************/ - -/** - * optind it the index in ARGV of the next element to be scanned. - * This is used for communication to and from the caller - * and for communication between successive calls to `getopt'. - * - * When `getopt' returns -1, this is the index of the first of the - * non-option elements that the caller should itself scan. - * - * Otherwise, `optind' communicates from one call to the next - * how much of ARGV has been scanned so far. - */ -public int -getOptind() -{ - return(optind); -} - -/**************************************************************************/ - -/** - * This method allows the optind index to be set manually. Normally this - * is not necessary (and incorrect usage of this method can lead to serious - * lossage), but optind is a public symbol in GNU getopt, so this method - * was added to allow it to be modified by the caller if desired. - * - * @param optind The new value of optind - */ -public void -setOptind(int optind) -{ - this.optind = optind; -} - -/**************************************************************************/ - -/** - * Since in GNU getopt() the argument vector is passed back in to the - * function every time, the caller can swap out argv on the fly. Since - * passing argv is not required in the Java version, this method allows - * the user to override argv. Note that incorrect use of this method can - * lead to serious lossage. - * - * @param argv New argument list - */ -public void -setArgv(String[] argv) -{ - this.argv = argv; -} - -/**************************************************************************/ - -/** - * For communication from `getopt' to the caller. - * When `getopt' finds an option that takes an argument, - * the argument value is returned here. - * Also, when `ordering' is RETURN_IN_ORDER, - * each non-option ARGV-element is returned here. - * No set method is provided because setting this variable has no effect. - */ -public String -getOptarg() -{ - return(optarg); -} - -/**************************************************************************/ - -/** - * Normally Getopt will print a message to the standard error when an - * invalid option is encountered. This can be suppressed (or re-enabled) - * by calling this method. There is no get method for this variable - * because if you can't remember the state you set this to, why should I? - */ -public void -setOpterr(boolean opterr) -{ - this.opterr = opterr; -} - -/**************************************************************************/ - -/** - * When getopt() encounters an invalid option, it stores the value of that - * option in optopt which can be retrieved with this method. There is - * no corresponding set method because setting this variable has no effect. - */ -public int -getOptopt() -{ - return(optopt); -} - -/**************************************************************************/ - -/** - * Returns the index into the array of long options (NOT argv) representing - * the long option that was found. - */ -public int -getLongind() -{ - return(longind); -} - -/**************************************************************************/ - -/** - * Exchange the shorter segment with the far end of the longer segment. - * That puts the shorter segment into the right place. - * It leaves the longer segment in the right place overall, - * but it consists of two parts that need to be swapped next. - * This method is used by getopt() for argument permutation. - */ -protected void -exchange(String[] argv) -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - String tem; - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - // Bottom segment is the short one. - int len = middle - bottom; - int i; - - // Swap it with the top part of the top segment. - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - } - // Exclude the moved bottom segment from further swapping. - top -= len; - } - else - { - // Top segment is the short one. - int len = top - middle; - int i; - - // Swap it with the bottom part of the bottom segment. - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - } - // Exclude the moved top segment from further swapping. - bottom += len; - } - } - - // Update records for the slots the non-options now occupy. - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/**************************************************************************/ - -/** - * Check to see if an option is a valid long option. Called by getopt(). - * Put in a separate method because this needs to be done twice. (The - * C getopt authors just copy-pasted the code!). - * - * @param longind A buffer in which to store the 'val' field of found LongOpt - * - * @return Various things depending on circumstances - */ -protected int -checkLongOption() -{ - LongOpt pfound = null; - int nameend; - boolean ambig; - boolean exact; - - longopt_handled = true; - ambig = false; - exact = false; - longind = -1; - - nameend = nextchar.indexOf("="); - if (nameend == -1) - nameend = nextchar.length(); - - // Test all lnog options for either exact match or abbreviated matches - for (int i = 0; i < long_options.length; i++) - { - if (long_options[i].getName().startsWith(nextchar.substring(0, nameend))) - { - if (long_options[i].getName().equals(nextchar.substring(0, nameend))) - { - // Exact match found - pfound = long_options[i]; - longind = i; - exact = true; - break; - } - else if (pfound == null) - { - // First nonexact match found - pfound = long_options[i]; - longind = i; - } - else - { - // Second or later nonexact match found - ambig = true; - } - } - } // for - - // Print out an error if the option specified was ambiguous - if (ambig && !exact) - { - if (opterr) - { - Object[] msgArgs = { progname, argv[optind] }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.ambigious"), - msgArgs)); - } - - nextchar = ""; - optopt = 0; - ++optind; - - return('?'); - } - - if (pfound != null) - { - ++optind; - - if (nameend != nextchar.length()) - { - if (pfound.has_arg != LongOpt.NO_ARGUMENT) - { - if (nextchar.substring(nameend).length() > 1) - optarg = nextchar.substring(nameend+1); - else - optarg = ""; - } - else - { - if (opterr) - { - // -- option - if (argv[optind - 1].startsWith("--")) - { - Object[] msgArgs = { progname, pfound.name }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.arguments1"), - msgArgs)); - } - // +option or -option - else - { - Object[] msgArgs = { progname, new - Character(argv[optind-1].charAt(0)).toString(), - pfound.name }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.arguments2"), - msgArgs)); - } - } - - nextchar = ""; - optopt = pfound.val; - - return('?'); - } - } // if (nameend) - else if (pfound.has_arg == LongOpt.REQUIRED_ARGUMENT) - { - if (optind < argv.length) - { - optarg = argv[optind]; - ++optind; - } - else - { - if (opterr) - { - Object[] msgArgs = { progname, argv[optind-1] }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.requires"), - msgArgs)); - } - - nextchar = ""; - optopt = pfound.val; - if (optstring.charAt(0) == ':') - return(':'); - else - return('?'); - } - } // else if (pfound) - - nextchar = ""; - - if (pfound.flag != null) - { - pfound.flag.setLength(0); - pfound.flag.append(pfound.val); - - return(0); - } - - return(pfound.val); - } // if (pfound != null) - - longopt_handled = false; - - return(0); -} - -/**************************************************************************/ - -/** - * This method returns a char that is the current option that has been - * parsed from the command line. If the option takes an argument, then - * the internal variable 'optarg' is set which is a String representing - * the the value of the argument. This value can be retrieved by the - * caller using the getOptarg() method. If an invalid option is found, - * an error message is printed and a '?' is returned. The name of the - * invalid option character can be retrieved by calling the getOptopt() - * method. When there are no more options to be scanned, this method - * returns -1. The index of first non-option element in argv can be - * retrieved with the getOptind() method. - * - * @return Various things as described above - */ -public int -getopt() -{ - optarg = null; - - if (endparse == true) - return(-1); - - if ((nextchar == null) || (nextchar.equals(""))) - { - // If we have just processed some options following some non-options, - // exchange them so that the options come first. - if (last_nonopt > optind) - last_nonopt = optind; - if (first_nonopt > optind) - first_nonopt = optind; - - if (ordering == PERMUTE) - { - // If we have just processed some options following some non-options, - // exchange them so that the options come first. - if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) - exchange(argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - // Skip any additional non-options - // and extend the range of non-options previously skipped. - while ((optind < argv.length) && (argv[optind].equals("") || - (argv[optind].charAt(0) != '-') || argv[optind].equals("-"))) - { - optind++; - } - - last_nonopt = optind; - } - - // The special ARGV-element `--' means premature end of options. - // Skip it like a null option, - // then exchange with previous non-options as if it were an option, - // then skip everything else like a non-option. - if ((optind != argv.length) && argv[optind].equals("--")) - { - optind++; - - if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) - exchange (argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - - last_nonopt = argv.length; - - optind = argv.length; - } - - // If we have done all the ARGV-elements, stop the scan - // and back over any non-options that we skipped and permuted. - if (optind == argv.length) - { - // Set the next-arg-index to point at the non-options - // that we previously skipped, so the caller will digest them. - if (first_nonopt != last_nonopt) - optind = first_nonopt; - - return(-1); - } - - // If we have come to a non-option and did not permute it, - // either stop the scan or describe it to the caller and pass it by. - if (argv[optind].equals("") || (argv[optind].charAt(0) != '-') || - argv[optind].equals("-")) - { - if (ordering == REQUIRE_ORDER) - return(-1); - - optarg = argv[optind++]; - return(1); - } - - // We have found another option-ARGV-element. - // Skip the initial punctuation. - if (argv[optind].startsWith("--")) - nextchar = argv[optind].substring(2); - else - nextchar = argv[optind].substring(1); - } - - // Decode the current option-ARGV-element. - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - if ((long_options != null) && (argv[optind].startsWith("--") - || (long_only && ((argv[optind].length() > 2) || - (optstring.indexOf(argv[optind].charAt(1)) == -1))))) - { - int c = checkLongOption(); - - if (longopt_handled) - return(c); - - // Can't find it as a long option. If this is not getopt_long_only, - // or the option starts with '--' or is not a valid short - // option, then it's an error. - // Otherwise interpret it as a short option. - if (!long_only || argv[optind].startsWith("--") - || (optstring.indexOf(nextchar.charAt(0)) == -1)) - { - if (opterr) - { - if (argv[optind].startsWith("--")) - { - Object[] msgArgs = { progname, nextchar }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.unrecognized"), - msgArgs)); - } - else - { - Object[] msgArgs = { progname, new - Character(argv[optind].charAt(0)).toString(), - nextchar }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.unrecognized2"), - msgArgs)); - } - } - - nextchar = ""; - ++optind; - optopt = 0; - - return('?'); - } - } // if (longopts) - - // Look at and handle the next short option-character */ - int c = nextchar.charAt(0); //**** Do we need to check for empty str? - if (nextchar.length() > 1) - nextchar = nextchar.substring(1); - else - nextchar = ""; - - String temp = null; - if (optstring.indexOf(c) != -1) - temp = optstring.substring(optstring.indexOf(c)); - - if (nextchar.equals("")) - ++optind; - - if ((temp == null) || (c == ':')) - { - if (opterr) - { - if (posixly_correct) - { - // 1003.2 specifies the format of this message - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.illegal"), msgArgs)); - } - else - { - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.invalid"), msgArgs)); - } - } - - optopt = c; - - return('?'); - } - - // Convenience. Treat POSIX -W foo same as long option --foo - if ((temp.charAt(0) == 'W') && (temp.length() > 1) && (temp.charAt(1) == ';')) - { - if (!nextchar.equals("")) - { - optarg = nextchar; - } - // No further cars in this argv element and no more argv elements - else if (optind == argv.length) - { - if (opterr) - { - // 1003.2 specifies the format of this message. - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.requires2"), msgArgs)); - } - - optopt = c; - if (optstring.charAt(0) == ':') - return(':'); - else - return('?'); - } - else - { - // We already incremented `optind' once; - // increment it again when taking next ARGV-elt as argument. - nextchar = argv[optind]; - optarg = argv[optind]; - } - - c = checkLongOption(); - - if (longopt_handled) - return(c); - else - // Let the application handle it - { - nextchar = null; - ++optind; - return('W'); - } - } - - if ((temp.length() > 1) && (temp.charAt(1) == ':')) - { - if ((temp.length() > 2) && (temp.charAt(2) == ':')) - // This is an option that accepts and argument optionally - { - if (!nextchar.equals("")) - { - optarg = nextchar; - ++optind; - } - else - { - optarg = null; - } - - nextchar = null; - } - else - { - if (!nextchar.equals("")) - { - optarg = nextchar; - ++optind; - } - else if (optind == argv.length) - { - if (opterr) - { - // 1003.2 specifies the format of this message - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.requires2"), msgArgs)); - } - - optopt = c; - - if (optstring.charAt(0) == ':') - return(':'); - else - return('?'); - } - else - { - optarg = argv[optind]; - ++optind; - - // Ok, here's an obscure Posix case. If we have o:, and - // we get -o -- foo, then we're supposed to skip the --, - // end parsing of options, and make foo an operand to -o. - // Only do this in Posix mode. - if ((posixly_correct) && optarg.equals("--")) - { - // If end of argv, error out - if (optind == argv.length) - { - if (opterr) - { - // 1003.2 specifies the format of this message - Object[] msgArgs = { progname, new - Character((char)c).toString() }; - System.err.println(MessageFormat.format( - _messages.getString("getopt.requires2"), msgArgs)); - } - - optopt = c; - - if (optstring.charAt(0) == ':') - return(':'); - else - return('?'); - } - - // Set new optarg and set to end - // Don't permute as we do on -- up above since we - // know we aren't in permute mode because of Posix. - optarg = argv[optind]; - ++optind; - first_nonopt = optind; - last_nonopt = argv.length; - endparse = true; - } - } - - nextchar = null; - } - } - - return(c); -} - -} // Class Getopt - - diff --git a/lab2_pruebas/gnu/getopt/GetoptDemo.java b/lab2_pruebas/gnu/getopt/GetoptDemo.java deleted file mode 100755 index b57c5a8..0000000 --- a/lab2_pruebas/gnu/getopt/GetoptDemo.java +++ /dev/null @@ -1,97 +0,0 @@ -import gnu.getopt.LongOpt; -import gnu.getopt.Getopt; - -/* - * This sample code was written by Aaron M. Renn and is a demonstration - * of how to utilize some of the features of the GNU getopt package. This - * sample code is hereby placed into the public domain by the author and - * may be used without restriction. - */ - -public class GetoptDemo -{ - -public static void -main(String[] argv) -{ - int c; - String arg; - LongOpt[] longopts = new LongOpt[3]; - // - StringBuffer sb = new StringBuffer(); - longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'); - longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); - longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2); - // - Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts); - g.setOpterr(false); // We'll do our own error handling - // - while ((c = g.getopt()) != -1) - switch (c) - { - case 0: - arg = g.getOptarg(); - System.out.println("Got long option with value '" + - (char)(new Integer(sb.toString())).intValue() - + "' with argument " + - ((arg != null) ? arg : "null")); - break; - // - case 1: - System.out.println("I see you have return in order set and that " + - "a non-option argv element was just found " + - "with the value '" + g.getOptarg() + "'"); - break; - // - case 2: - arg = g.getOptarg(); - System.out.println("I know this, but pretend I didn't"); - System.out.println("We picked option " + - longopts[g.getLongind()].getName() + - " with value " + - ((arg != null) ? arg : "null")); - break; - // - case 'b': - System.out.println("You picked plain old option " + (char)c); - break; - // - case 'c': - case 'd': - arg = g.getOptarg(); - System.out.println("You picked option '" + (char)c + - "' with argument " + - ((arg != null) ? arg : "null")); - break; - // - case 'h': - System.out.println("I see you asked for help"); - break; - // - case 'W': - System.out.println("Hmmm. You tried a -W with an incorrect long " + - "option name"); - break; - // - case ':': - System.out.println("Doh! You need an argument for option " + - (char)g.getOptopt()); - break; - // - case '?': - System.out.println("The option '" + (char)g.getOptopt() + - "' is not valid"); - break; - // - default: - System.out.println("getopt() returned " + c); - break; - } - // - for (int i = g.getOptind(); i < argv.length ; i++) - System.out.println("Non option argv element: " + argv[i] + "\n"); -} - -} // Class GetoptDemo - - diff --git a/lab2_pruebas/gnu/getopt/LANGUAGES b/lab2_pruebas/gnu/getopt/LANGUAGES deleted file mode 100755 index d8e1399..0000000 --- a/lab2_pruebas/gnu/getopt/LANGUAGES +++ /dev/null @@ -1,23 +0,0 @@ -Getopt supports error messages in the following languages: - -English (default) -Chinese (simplified and traditional) -Czech -Dutch -French -German -Hungarian -Italian -Japanese -Norwegian -Polish -Romanian -Spanish - -Anyone can create a translation without knowing how to program Java. -Simply supply me with a MessagesBundle file for your locale and I'm happy -to include it. See MessagesBundle.properties as an example with reference -English messages. - -Aaron (arenn@urbanophile.com) - diff --git a/lab2_pruebas/gnu/getopt/LongOpt.java b/lab2_pruebas/gnu/getopt/LongOpt.java deleted file mode 100755 index 6357085..0000000 --- a/lab2_pruebas/gnu/getopt/LongOpt.java +++ /dev/null @@ -1,195 +0,0 @@ -/************************************************************************** -/* LongOpt.java -- Long option object for Getopt -/* -/* Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -package gnu.getopt; - -import java.util.Locale; -import java.util.ResourceBundle; -import java.text.MessageFormat; - -/**************************************************************************/ - -/** - * This object represents the definition of a long option in the Java port - * of GNU getopt. An array of LongOpt objects is passed to the Getopt - * object to define the list of valid long options for a given parsing - * session. Refer to the getopt documentation for details on the - * format of long options. - * - * @version 1.0.5 - * @author Aaron M. Renn (arenn@urbanophile.com) - * - * @see Getopt - */ -public class LongOpt extends Object -{ - -/**************************************************************************/ - -/* - * Class Variables - */ - -/** - * Constant value used for the "has_arg" constructor argument. This - * value indicates that the option takes no argument. - */ -public static final int NO_ARGUMENT = 0; - -/** - * Constant value used for the "has_arg" constructor argument. This - * value indicates that the option takes an argument that is required. - */ -public static final int REQUIRED_ARGUMENT = 1; - -/** - * Constant value used for the "has_arg" constructor argument. This - * value indicates that the option takes an argument that is optional. - */ -public static final int OPTIONAL_ARGUMENT = 2; - -/**************************************************************************/ - -/* - * Instance Variables - */ - -/** - * The name of the long option - */ -protected String name; - -/** - * Indicates whether the option has no argument, a required argument, or - * an optional argument. - */ -protected int has_arg; - -/** - * If this variable is not null, then the value stored in "val" is stored - * here when this long option is encountered. If this is null, the value - * stored in "val" is treated as the name of an equivalent short option. - */ -protected StringBuffer flag; - -/** - * The value to store in "flag" if flag is not null, otherwise the - * equivalent short option character for this long option. - */ -protected int val; - -/** - * Localized strings for error messages - */ -private ResourceBundle _messages = ResourceBundle.getBundle( - "gnu/getopt/MessagesBundle", Locale.getDefault()); - -/**************************************************************************/ - -/* - * Constructors - */ - -/** - * Create a new LongOpt object with the given parameter values. If the - * value passed as has_arg is not valid, then an exception is thrown. - * - * @param name The long option String. - * @param has_arg Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). - * @param flag If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. - * @param val The value to return for this long option, or the equivalent single letter option to emulate if flag is null. - * - * @exception IllegalArgumentException If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. - */ -public -LongOpt(String name, int has_arg, - StringBuffer flag, int val) throws IllegalArgumentException -{ - // Validate has_arg - if ((has_arg != NO_ARGUMENT) && (has_arg != REQUIRED_ARGUMENT) - && (has_arg != OPTIONAL_ARGUMENT)) - { - Object[] msgArgs = { new Integer(has_arg).toString() }; - throw new IllegalArgumentException(MessageFormat.format( - _messages.getString("getopt.invalidValue"), msgArgs)); - } - - // Store off values - this.name = name; - this.has_arg = has_arg; - this.flag = flag; - this.val = val; -} - -/**************************************************************************/ - -/** - * Returns the name of this LongOpt as a String - * - * @return Then name of the long option - */ -public String -getName() -{ - return(name); -} - -/**************************************************************************/ - -/** - * Returns the value set for the 'has_arg' field for this long option - * - * @return The value of 'has_arg' - */ -public int -getHasArg() -{ - return(has_arg); -} - -/**************************************************************************/ - -/** - * Returns the value of the 'flag' field for this long option - * - * @return The value of 'flag' - */ -public StringBuffer -getFlag() -{ - return(flag); -} - -/** - * Returns the value of the 'val' field for this long option - * - * @return The value of 'val' - */ -public int -getVal() -{ - return(val); -} - -/**************************************************************************/ - -} // Class LongOpt - diff --git a/lab2_pruebas/gnu/getopt/Makefile b/lab2_pruebas/gnu/getopt/Makefile deleted file mode 100755 index 6ff789c..0000000 --- a/lab2_pruebas/gnu/getopt/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# Makefile for Java port of GNU getopt - -all: - javac LongOpt.java Getopt.java GetoptDemo.java - -docs: - javadoc -author -version -public Getopt.java LongOpt.java diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle.properties b/lab2_pruebas/gnu/getopt/MessagesBundle.properties deleted file mode 100755 index 9356ee1..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- English language error messages -/* -/* Copyright (c) 1998 by William King (wrking@eng.sun.com) and -/* Aaron M. Renn (arenn@urbanophile.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: option ''{1}'' is ambiguous -getopt.arguments1={0}: option ''--{1}'' doesn't allow an argument -getopt.arguments2={0}: option ''{1}{2}'' doesn't allow an argument -getopt.requires={0}: option ''{1}'' requires an argument -getopt.unrecognized={0}: unrecognized option ''--{1}'' -getopt.unrecognized2={0}: unrecognized option ''{1}{2}'' -getopt.illegal={0}: illegal option -- {1} -getopt.invalid={0}: invalid option -- {1} -getopt.requires2={0}: option requires an argument -- {1} -getopt.invalidValue=Invalid value {0} for parameter 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_chs.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_chs.properties deleted file mode 100755 index 1090dc6..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_chs.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties šCSimple Chinese language error messages -/* -/* Copyright (c) 2012 by David Zhang (david290@qq.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: Ñ¡Ïî ''{1}'' ÓÐÆçÒå -getopt.arguments1={0}:Ñ¡Ïî''--{1}'' ²»ÄÜŽø²ÎÊý -getopt.arguments2={0}:Ñ¡Ïî''{1}{2}''²»ÄÜŽø²ÎÊý -getopt.requires={0}: Ñ¡Ïî ''{1}'' ÒªÇóŽøÓвÎÊý -getopt.unrecognized={0}: ÎÞ·šÊ¶±ðµÄÑ¡Ïî ''--{1}'' -getopt.unrecognized2={0}:ÎÞ·šÊ¶±ðµÄÑ¡Ïî''{1}{2}'' -getopt.illegal={0}: ·Ç·šÑ¡Ïî -- {1} -getopt.invalid={0}: ÎÞЧѡÏî -- {1} -getopt.requires2={0}:Ñ¡ÏîÐèÒªÓвÎÊý -- {1} -getopt.invalidValue=Ñ¡Ïî 'has_arg'µÄÖµ {0} ·Ç·š - - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_cht.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_cht.properties deleted file mode 100755 index 270e4f1..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_cht.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties - Triditional Chinese language error messages -/* -/* Copyright (c) 2012 by David Zhang (david290@qq.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: 遾項 ''{1}'' 有歧矩 -getopt.arguments1={0}:遾項''--{1}'' 䞍胜垶參敞 -getopt.arguments2={0}:遾項''{1}{2}''䞍胜垶參敞 -getopt.requires={0}: 遾項 ''{1}'' 芁求垶有參敞 -getopt.unrecognized={0}: 無法識別的遞項 ''--{1}'' -getopt.unrecognized2={0}:無法識別的遞項''{1}{2}'' -getopt.illegal={0}: 非法遞項 -- {1} -getopt.invalid={0}: 無效遞項 -- {1} -getopt.requires2={0}:遞項需芁有參敞 -- {1} -getopt.invalidValue=遾項 'has_arg'的倌 {0} 非法 - - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_cs.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_cs.properties deleted file mode 100755 index 3c14a03..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_cs.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle_cs.properties -- Czech language error messages -/* -/* Czech Messages Copyright (c) 1998 by Roman Szturc (Roman.Szturc@vsb.cz) -/* These messages are encoded in ISO-8859-2 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: volba ''{1}'' je nejednoznaèná -getopt.arguments1={0}: volba ''--{1}'' nepøipou¹tí argument -getopt.arguments2={0}: volba ''{1}{2}'' nepøipou¹tí argument -getopt.requires={0}: volba ''{1}'' vyŸaduje argument -getopt.unrecognized={0}: nepøípustná volba ''--{1}'' -getopt.unrecognized2={0}: nepøípustná volba ''{1}{2}'' -getopt.illegal={0}: nepøípustná volba -- {1} -getopt.invalid={0}: neplatná volba -- {1} -getopt.requires2={0}: volba vyŸaduje argument -- {1} -getopt.invalidValue=Neplatná hodnota {0} parameteru 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_de.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_de.properties deleted file mode 100755 index f741386..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_de.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- German language error messages -/* -/* German Messages Copyright (c) 1999 by Bernhard Bablok (bablokb@gmx.net) -/* These messages are encoded in ISO-8859-1 -//* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: Option ''{1}'' ist zweideutig -getopt.arguments1={0}: Option ''--{1}'' erlaubt kein Argument -getopt.arguments2={0}: Option ''{1}{2}'' erlaubt kein Argument -getopt.requires={0}: Option ''{1}'' benötigt ein Argument -getopt.unrecognized={0}: Unbekannte Option ''--{1}'' -getopt.unrecognized2={0}: Unbekannte Option ''{1}{2}'' -getopt.illegal={0}: Verbotene Option -- {1} -getopt.invalid={0}: Ungültige Option -- {1} -getopt.requires2={0}: Option benötigt ein Argument -- {1} -getopt.invalidValue=Ungültiger Wert {0} für Parameter 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_es.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_es.properties deleted file mode 100755 index ef358f4..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_es.properties +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** -/* MessagesBundle_es.properties -- Spanish language error messages -/* -/* Spanish Messages Copyright (c) 2004 by Daniel Pérez (dondani@gmail.com) -/* These messages are encoded in ISO-8859-1 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: la opción ''{1}'' es ambigua -getopt.arguments1={0}: la opción ''--{1}'' no permite un argumento -getopt.arguments2={0}: la opción ''{1}{2}'' no permite un argumento -getopt.requires={0}: la opción ''{1}'' requiere un argumento -getopt.unrecognized={0}: opción no reconocida ''--{1}'' -getopt.unrecognized2={0}: opción no reconocida ''{1}{2}'' -getopt.illegal={0}: opción ilegal -- {1} -getopt.invalid={0}: opción no válida -- {1} -getopt.requires2={0}: la opción requiere un argumento -- {1} -getopt.invalidValue=Valor no válido {0} para el parámetro 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_fr.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_fr.properties deleted file mode 100755 index 400447c..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_fr.properties +++ /dev/null @@ -1,35 +0,0 @@ -/************************************************************************** -/* MessagesBundle_fr.properties -- French language error messages -/* -/* Copyright (c) 1999 Free Software Foundation, Inc. -/* Michel Robitaille , 1996, -/* Edouard G. Parmelan , 1999. -/* These messages are encoded in ISO-8859-1 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: l'option ''{1}'' est ambiguë -getopt.arguments1={0}: l'option ''--{1}'' ne permet pas de paramètre -getopt.arguments2={0}: l'option ''{1}{2}'' ne permet pas de paramètre -getopt.requires={0}: l'option ''{1}'' requiert un paramètre -getopt.unrecognized={0}: option non reconnue ''--{1}'' -getopt.unrecognized2={0}: option non reconnue ''{1}{2}'' -getopt.illegal={0}: option illégale -- {1} -getopt.invalid={0}: option invalide -- {1} -getopt.requires2={0}: cette option requiert un paramètre -- {1} -getopt.invalidValue=Valeur invalide {0} pour le paramètre 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_hu.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_hu.properties deleted file mode 100755 index f7af03b..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_hu.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- Hungarian language error messages -/* -/* Copyright (c) 2001 by Gyula Csom (csom@informix.hu) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: opció ''{1}'' félreérthetõ -getopt.arguments1={0}: opció ''--{1}'' nem enged meg argumentumot -getopt.arguments2={0}: opció ''{1}{2}'' nem enged meg argumentumot -getopt.requires={0}: opció ''{1}'' argumentumot igényel -getopt.unrecognized={0}: ismeretlen opció ''--{1}'' -getopt.unrecognized2={0}: ismeretlen opció ''{1}{2}'' -getopt.illegal={0}: illegális opció -- {1} -getopt.invalid={0}: érvénytelen opció -- {1} -getopt.requires2={0}: az opció argumentumot igényel -- {1} -getopt.invalidValue=Érvénytelen érték {0} a következõ paraméterhez 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_it.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_it.properties deleted file mode 100755 index c596c26..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_it.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- Italian language error messages -/* -/* Copyright (c) 2005 by Sandro Tosi (matrixhasu@gmail.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: l'opzione ''{1}'' è ambigua -getopt.arguments1={0}: l'opzione ''--{1}'' non ammette un argomento -getopt.arguments2={0}: l'opzione ''{1}{2}'' non ammette un argomento -getopt.requires={0}: l'opzione ''{1}'' richiede un argomento -getopt.unrecognized={0}: opzione non riconosciuta ''--{1}'' -getopt.unrecognized2={0}: opzione non riconosciuta ''{1}{2}'' -getopt.illegal={0}: opzione illegale -- {1} -getopt.invalid={0}: opzione invalida -- {1} -getopt.requires2={0}: l'opzione richiede un argomento -- {1} -getopt.invalidValue=Valore non valido {0} per il parametro 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_ja.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_ja.properties deleted file mode 100755 index 5578972..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_ja.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- Japanese language error messages -/* -/* Copyright (c) 2001 by Yasuoka Masahiko (yasuoka@yasuoka.net) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u66d6\u6627\u3067\u3059\u3002 -getopt.arguments1={0}: ''--{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 -getopt.arguments2={0}: ''{1}{2}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 -getopt.requires={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 -getopt.unrecognized={0}: ''--{1}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 -getopt.unrecognized2={0}: ''{1}{2}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 -getopt.illegal={0}: -- {1} \u306f\u4e0d\u6b63\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 -getopt.invalid={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002 -getopt.requires2={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 -getopt.invalidValue={0} \u306f\u3001'has_arg' \u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u4e0d\u6b63\u306a\u5024\u3067\u3059\u3002 - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_nl.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_nl.properties deleted file mode 100755 index c614922..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_nl.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle_nl.properties -- Dutch language error messages -/* -/* Copyright (c) 1999 by Ernst de Haan (ernst@jollem.com) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: optie ''{1}'' is ambigue -getopt.arguments1={0}: optie ''--{1}'' staat geen argumenten toe -getopt.arguments2={0}: optie ''{1}{2}'' staat geen argumenten toe -getopt.requires={0}: optie ''{1}'' heeft een argument nodig -getopt.unrecognized={0}: onbekende optie ''--{1}'' -getopt.unrecognized2={0}: onbekende optie ''{1}{2}'' -getopt.illegal={0}: niet-toegestane optie -- {1} -getopt.invalid={0}: onjuiste optie -- {1} -getopt.requires2={0}: optie heeft een argument nodig -- {1} -getopt.invalidValue=Ongeldige waarde {0} voor parameter 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_no.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_no.properties deleted file mode 100755 index bcb8c50..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_no.properties +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** -/* MessagesBundle.properties -- Norwegian language error messages -/* -/* Copyright (c) 1999 by Bjørn-Ove Heimsund (s811@ii.uib.no) -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: flagget ''{1}'' er flertydig -getopt.arguments1={0}: flagget ''--{1}'' tillater ikke et argument -getopt.arguments2={0}: flagget ''{1}{2}'' tillater ikke et argument -getopt.requires={0}: flagget ''{1}'' krever et argument -getopt.unrecognized={0}: ukjent flagg ''--{1}'' -getopt.unrecognized2={0}: ukjent flagg ''{1}{2}'' -getopt.illegal={0}: ugyldig flagg -- {1} -getopt.invalid={0}: ugyldig flagg -- {1} -getopt.requires2={0}: flagget krever et argument -- {1} -getopt.invalidValue=Ugyldig verdi {0} for parameter 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_pl.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_pl.properties deleted file mode 100755 index 9580853..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_pl.properties +++ /dev/null @@ -1,36 +0,0 @@ -/************************************************************************** -/* MessagesBundle_pl.properties -- Polish language error messages -/* -/* Polish Messages Copyright (c) 2006 by Krzysztof Szyma?ski (sirch.s@gmail.com) -/* These messages are encoded in ISO-8859-2 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your option) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - - -getopt.ambigious={0}: opcja ''{1}''jest wieloznaczna -getopt.arguments1={0}: opcja ''--{1}'' nie akceptuje argumentu -getopt.arguments2={0}: opcja ''{1}{2}'' nie akceptuje argumentu -getopt.requires={0}: opcja ''{1}'' wymaga argumentu -getopt.unrecognized={0}: nierozpoznana opcja ''--{1}'' -getopt.unrecognized2={0}: nierozpoznana opcja ''{1}{2}'' -getopt.illegal={0}: nie dopuszczalna opcja --{1} -getopt.invalid={0}: b??dna opcja --{1} -getopt.requires2={0}: opcja --{1} oczekuje argumentu -getopt.invalidValue=Nie poprawna warto?? {0} argument 'has_arg' - - - diff --git a/lab2_pruebas/gnu/getopt/MessagesBundle_ro.properties b/lab2_pruebas/gnu/getopt/MessagesBundle_ro.properties deleted file mode 100755 index 3c0b08b..0000000 --- a/lab2_pruebas/gnu/getopt/MessagesBundle_ro.properties +++ /dev/null @@ -1,34 +0,0 @@ -/************************************************************************** -/* MessagesBundle_fr.properties -- Romanian language error messages -/* -/* Copyright (c) 1999 Free Software Foundation, Inc. -/* Marian-Nicolae Ion , 2004, -/* These messages are encoded in ISO-8859-2 -/* -/* This program is free software; you can redistribute it and/or modify -/* it under the terms of the GNU Library General Public License as published -/* by the Free Software Foundation; either version 2 of the License or -/* (at your optiunea) any later version. -/* -/* This program is distributed in the hope that it will be useful, but -/* WITHOUT ANY WARRANTY; without even the implied warranty of -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -/* GNU Library General Public License for more details. -/* -/* You should have received a copy of the GNU Library General Public License -/* along with this program; see the file COPYING.LIB. If not, write to -/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, -/* Boston, MA 02111-1307 USA -/**************************************************************************/ - -getopt.ambigious={0}: opÅ£iunea ''{1}'' este ambiguă -getopt.arguments1={0}: opÅ£iunea ''--{1}'' nu acceptă parametru -getopt.arguments2={0}: opÅ£iunea ''{1}{2}'' nu acceptă parametru -getopt.requires={0}: opÅ£iunea ''{1}'' cere un parametru -getopt.unrecognized={0}: opÅ£iune necunoscută ''--{1}'' -getopt.unrecognized2={0}: opÅ£iune necunoscută ''{1}{2}'' -getopt.illegal={0}: opÅ£iune ilegală -- {1} -getopt.invalid={0}: opÅ£iune invalidă -- {1} -getopt.requires2={0}: această opÅ£iune cere un parametru -- {1} -getopt.invalidValue=Valoare invalidă {0} pentru parametrul 'has_arg' - diff --git a/lab2_pruebas/gnu/getopt/README b/lab2_pruebas/gnu/getopt/README deleted file mode 100755 index 48451f7..0000000 --- a/lab2_pruebas/gnu/getopt/README +++ /dev/null @@ -1,57 +0,0 @@ -This is a Java port of the GNU getopt functions based on the versions -contained in glibc 2.0.6. I have attempted to keep the functionality -and programmer's interface as faithful to the original as possible. -However, due to differences between Java and C, some minor changes -has to me made. (Given the obtuse interface in the clib version, -perhaps some major changes should have been made). This should not -affect the way options appear to be parsed to the end user of program -that uses this Java getopt. The use of these classes are completely -documented in the javadoc comments, so I will not repeat that info here. - -Note that since these objects are part of a package called "gnu.getopt", -they need to be in a subdirectory called gnu/getopt somewhere in your -CLASSPATH. This includes the "MessagesBundle" files. - -I am not aware of any bugs. If you find one though, please send email -to me at arenn@urbanophile.com. The more detailed a bug report the better. -Bug fixes are also welcome at the same address. Please reference -release number "1.0.13". If you use this code, it would be helpful -if you let me know so that I can let you know if anything changes or -if any major bugs have been found/fixed. - -I have included a Makefile for compiling the code. If you do not have -access to make, then you can simply do a "javac *.java" at the OS -command line (or follow your vendor's instructions for compiling a -Java class). To build the documentation, do a "make docs" -or "javadoc -public *.java". Note that the images needed by the html -generated by javadoc are not included. You will need to get those -from some other Java documentation package. - -Note that the Makefile is not compliant with the GNU makefile -standards as I anticipate that at some point a master makefile will -be created for various GNU Java packages. And it is serious overkill -to create a megabloat makefile (kinda like this megabloat README) for -such a simple package. - -There is sample code showing how to use getopt available in the -GetoptDemo.java file. - -NEW: A support file for the "ant" build process was contributed. Here are -some brief things you can do with it. Note that I have not ever used this -so it is doubly AS IS. - -Get ant from jakarta project (see jakarta.apache.org/ant), and run it with -one of these target (all is default target): -ant prepare: create the needed directories -ant classes: compile the java classes -ant jar: create the jar archive -ant javadoc: create the javadoc -ant all: create jar and javadoc -ant clean: clean everything - -Happy hacking, - -Aaron. -arenn@urbanophile.com -http://www.urbanophile.com/arenn/ - diff --git a/lab2_pruebas/gnu/getopt/buildx.xml b/lab2_pruebas/gnu/getopt/buildx.xml deleted file mode 100755 index ad51e8f..0000000 --- a/lab2_pruebas/gnu/getopt/buildx.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lab2_pruebas/gnu/getopt/gnu.getopt.Getopt.html b/lab2_pruebas/gnu/getopt/gnu.getopt.Getopt.html deleted file mode 100755 index 425de42..0000000 --- a/lab2_pruebas/gnu/getopt/gnu.getopt.Getopt.html +++ /dev/null @@ -1,639 +0,0 @@ - - - - - - - Class gnu.getopt.Getopt - - - - -

-All Packages  Class Hierarchy  This Package  Previous  Next  Index
-
-

- Class gnu.getopt.Getopt -

-
-java.lang.Object
-   |
-   +----gnu.getopt.Getopt
-
-
-
-
public class Getopt -
extends Object -
-This is a Java port of GNU getopt, a class for parsing command line - arguments passed to programs. It it based on the C getopt() functions - in glibc 2.0.6 and should parse options in a 100% compatible manner. - If it does not, that is a bug. The programmer's interface is also - very compatible. -

- To use Getopt, create a Getopt object with a argv array passed to the - main method, then call the getopt() method in a loop. It will return an - int that contains the value of the option character parsed from the - command line. When there are no more options to be parsed, it - returns -1. -

- A command line option can be defined to take an argument. If an - option has an argument, the value of that argument is stored in an - instance variable called optarg, which can be accessed using the - getOptarg() method. If an option that requires an argument is - found, but there is no argument present, then an error message is - printed. Normally getopt() returns a '?' in this situation, but - that can be changed as described below. -

- If an invalid option is encountered, an error message is printed - to the standard error and getopt() returns a '?'. The value of the - invalid option encountered is stored in the instance variable optopt - which can be retrieved using the getOptopt() method. To suppress - the printing of error messages for this or any other error, set - the value of the opterr instance variable to false using the - setOpterr() method. -

- Between calls to getopt(), the instance variable optind is used to - keep track of where the object is in the parsing process. After all - options have been returned, optind is the index in argv of the first - non-option argument. This variable can be accessed with the getOptind() - method. -

- Note that this object expects command line options to be passed in the - traditional Unix manner. That is, proceeded by a '-' character. - Multiple options can follow the '-'. For example "-abc" is equivalent - to "-a -b -c". If an option takes a required argument, the value - of the argument can immediately follow the option character or be - present in the next argv element. For example, "-cfoo" and "-c foo" - both represent an option character of 'c' with an argument of "foo" - assuming c takes a required argument. If an option takes an argument - that is not required, then any argument must immediately follow the - option character in the same argv element. For example, if c takes - a non-required argument, then "-cfoo" represents option character 'c' - with an argument of "foo" while "-c foo" represents the option - character 'c' with no argument, and a first non-option argv element - of "foo". -

- The user can stop getopt() from scanning any further into a command line - by using the special argument "--" by itself. For example: - "-a -- -d" would return an option character of 'a', then return -1 - The "--" is discarded and "-d" is pointed to by optind as the first - non-option argv element. -

- Here is a basic example of using Getopt: -

-

- Getopt g = new Getopt("testprog", argv, "ab:c::d");
- //
- int c;
- String arg;
- while ((c = g.getopt()) != -1)
-   {
-     switch(c)
-       {
-          case 'a':
-          case 'd':
-            System.out.print("You picked " + (char)c + "\n");
-            break;
-            //
-          case 'b':
-          case 'c':
-            arg = g.getOptarg();
-            System.out.print("You picked " + (char)c + 
-                             " with an argument of " +
-                             ((arg != null) ? arg : "null") + "\n");
-            break;
-            //
-          case '?':
-            break; // getopt() already printed an error
-            //
-          default:
-            System.out.print("getopt() returned " + c + "\n");
-       }
-   }
- 
-

- In this example, a new Getopt object is created with three params. - The first param is the program name. This is for printing error - messages in the form "program: error message". In the C version, this - value is taken from argv[0], but in Java the program name is not passed - in that element, thus the need for this parameter. The second param is - the argument list that was passed to the main() method. The third - param is the list of valid options. Each character represents a valid - option. If the character is followed by a single colon, then that - option has a required argument. If the character is followed by two - colons, then that option has an argument that is not required. -

- Note in this example that the value returned from getopt() is cast to - a char prior to printing. This is required in order to make the value - display correctly as a character instead of an integer. -

- If the first character in the option string is a colon, for example - ":abc::d", then getopt() will return a ':' instead of a '?' when it - encounters an option with a missing required argument. This allows the - caller to distinguish between invalid options and valid options that - are simply incomplete. -

- In the traditional Unix getopt(), -1 is returned when the first non-option - charcter is encountered. In GNU getopt(), the default behavior is to - allow options to appear anywhere on the command line. The getopt() - method permutes the argument to make it appear to the caller that all - options were at the beginning of the command line, and all non-options - were at the end. For example, calling getopt() with command line args - of "-a foo bar -d" returns options 'a' and 'd', then sets optind to - point to "foo". The program would read the last two argv elements as - "foo" and "bar", just as if the user had typed "-a -d foo bar". -

- The user can force getopt() to stop scanning the command line with - the special argument "--" by itself. Any elements occuring before the - "--" are scanned and permuted as normal. Any elements after the "--" - are returned as is as non-option argv elements. For example, - "foo -a -- bar -d" would return option 'a' then -1. optind would point - to "foo", "bar" and "-d" as the non-option argv elements. The "--" - is discarded by getopt(). -

- There are two ways this default behavior can be modified. The first is - to specify traditional Unix getopt() behavior (which is also POSIX - behavior) in which scanning stops when the first non-option argument - encountered. (Thus "-a foo bar -d" would return 'a' as an option and - have "foo", "bar", and "-d" as non-option elements). The second is to - allow options anywhere, but to return all elements in the order they - occur on the command line. When a non-option element is ecountered, - an integer 1 is returned and the value of the non-option element is - stored in optarg is if it were the argument to that option. For - example, "-a foo -d", returns first 'a', then 1 (with optarg set to - "foo") then 'd' then -1. When this "return in order" functionality - is enabled, the only way to stop getopt() from scanning all command - line elements is to use the special "--" string by itself as described - above. An example is "-a foo -b -- bar", which would return 'a', then - integer 1 with optarg set to "foo", then 'b', then -1. optind would - then point to "bar" as the first non-option argv element. The "--" - is discarded. -

- The POSIX/traditional behavior is enabled by either setting the - property "gnu.posixly_correct" or by putting a '+' sign as the first - character of the option string. The difference between the two - methods is that setting the gnu.posixly_correct property also forces - certain error messages to be displayed in POSIX format. To enable - the "return in order" functionality, put a '-' as the first character - of the option string. Note that after determining the proper - behavior, Getopt strips this leading '+' or '-', meaning that a ':' - placed as the second character after one of those two will still cause - getopt() to return a ':' instead of a '?' if a required option - argument is missing. -

- In addition to traditional single character options, GNU Getopt also - supports long options. These are preceeded by a "--" sequence and - can be as long as desired. Long options provide a more user-friendly - way of entering command line options. For example, in addition to a - "-h" for help, a program could support also "--help". -

- Like short options, long options can also take a required or non-required - argument. Required arguments can either be specified by placing an - equals sign after the option name, then the argument, or by putting the - argument in the next argv element. For example: "--outputdir=foo" and - "--outputdir foo" both represent an option of "outputdir" with an - argument of "foo", assuming that outputdir takes a required argument. - If a long option takes a non-required argument, then the equals sign - form must be used to specify the argument. In this case, - "--outputdir=foo" would represent option outputdir with an argument of - "foo" while "--outputdir foo" would represent the option outputdir - with no argument and a first non-option argv element of "foo". -

- Long options can also be specified using a special POSIX argument - format (one that I highly discourage). This form of entry is - enabled by placing a "W;" (yes, 'W' then a semi-colon) in the valid - option string. This causes getopt to treat the name following the - "-W" as the name of the long option. For example, "-W outputdir=foo" - would be equivalent to "--outputdir=foo". The name can immediately - follow the "-W" like so: "-Woutputdir=foo". Option arguments are - handled identically to normal long options. If a string follows the - "-W" that does not represent a valid long option, then getopt() returns - 'W' and the caller must decide what to do. Otherwise getopt() returns - a long option value as described below. -

- While long options offer convenience, they can also be tedious to type - in full. So it is permissible to abbreviate the option name to as - few characters as required to uniquely identify it. If the name can - represent multiple long options, then an error message is printed and - getopt() returns a '?'. -

- If an invalid option is specified or a required option argument is - missing, getopt() prints an error and returns a '?' or ':' exactly - as for short options. Note that when an invalid long option is - encountered, the optopt variable is set to integer 0 and so cannot - be used to identify the incorrect option the user entered. -

- Long options are defined by LongOpt objects. These objects are created - with a contructor that takes four params: a String representing the - object name, a integer specifying what arguments the option takes - (the value is one of LongOpt.NO_ARGUMENT, LongOpt.REQUIRED_ARGUMENT, - or LongOpt.OPTIONAL_ARGUMENT), a StringBuffer flag object (described - below), and an integer value (described below). -

- To enable long option parsing, create an array of LongOpt's representing - the legal options and pass it to the Getopt() constructor. WARNING: If - all elements of the array are not populated with LongOpt objects, the - getopt() method will throw a NullPointerException. -

- When getopt() is called and a long option is encountered, one of two - things can be returned. If the flag field in the LongOpt object - representing the long option is non-null, then the integer value field - is stored there and an integer 0 is returned to the caller. The val - field can then be retrieved from the flag field. Note that since the - flag field is a StringBuffer, the appropriate String to integer converions - must be performed in order to get the actual int value stored there. - If the flag field in the LongOpt object is null, then the value field - of the LongOpt is returned. This can be the character of a short option. - This allows an app to have both a long and short option sequence - (say, "-h" and "--help") that do the exact same thing. -

- With long options, there is an alternative method of determining - which option was selected. The method getLongind() will return the - the index in the long option array (NOT argv) of the long option found. - So if multiple long options are configured to return the same value, - the application can use getLongind() to distinguish between them. -

- Here is an expanded Getopt example using long options and various - techniques described above: -

-

- int c;
- String arg;
- LongOpt[] longopts = new LongOpt[3];
- // 
- StringBuffer sb = new StringBuffer();
- longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h');
- longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); 
- longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2);
- // 
- Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts);
- g.setOpterr(false); // We'll do our own error handling
- //
- while ((c = g.getopt()) != -1)
-   switch (c)
-     {
-        case 0:
-          arg = g.getOptarg();
-          System.out.println("Got long option with value '" +
-                             (char)(new Integer(sb.toString())).intValue()
-                             + "' with argument " +
-                             ((arg != null) ? arg : "null"));
-          break;
-          //
-        case 1:
-          System.out.println("I see you have return in order set and that " +
-                             "a non-option argv element was just found " +
-                             "with the value '" + g.getOptarg() + "'");
-          break;
-          //
-        case 2:
-          arg = g.getOptarg();
-          System.out.println("I know this, but pretend I didn't");
-          System.out.println("We picked option " +
-                             longopts[g.getLongind()].getName() +
-                           " with value " + 
-                           ((arg != null) ? arg : "null"));
-          break;
-          //
-        case 'b':
-          System.out.println("You picked plain old option " + (char)c);
-          break;
-          //
-        case 'c':
-        case 'd':
-          arg = g.getOptarg();
-          System.out.println("You picked option '" + (char)c + 
-                             "' with argument " +
-                             ((arg != null) ? arg : "null"));
-          break;
-          //
-        case 'h':
-          System.out.println("I see you asked for help");
-          break;
-          //
-        case 'W':
-          System.out.println("Hmmm. You tried a -W with an incorrect long " +
-                             "option name");
-          break;
-          //
-        case ':':
-          System.out.println("Doh! You need an argument for option " +
-                             (char)g.getOptopt());
-          break;
-          //
-        case '?':
-          System.out.println("The option '" + (char)g.getOptopt() + 
-                           "' is not valid");
-          break;
-          //
-        default:
-          System.out.println("getopt() returned " + c);
-          break;
-     }
- //
- for (int i = g.getOptind(); i < argv.length ; i++)
-   System.out.println("Non option argv element: " + argv[i] + "\n");
- 
-

- There is an alternative form of the constructor used for long options - above. This takes a trailing boolean flag. If set to false, Getopt - performs identically to the example, but if the boolean flag is true - then long options are allowed to start with a single '-' instead of - "--". If the first character of the option is a valid short option - character, then the option is treated as if it were the short option. - Otherwise it behaves as if the option is a long option. Note that - the name given to this option - long_only - is very counter-intuitive. - It does not cause only long options to be parsed but instead enables - the behavior described above. -

- Note that the functionality and variable names used are driven from - the C lib version as this object is a port of the C code, not a - new implementation. This should aid in porting existing C/C++ code, - as well as helping programmers familiar with the glibc version to - adapt to the Java version even if it seems very non-Java at times. -

- In this release I made all instance variables protected due to - overwhelming public demand. Any code which relied on optarg, - opterr, optind, or optopt being public will need to be modified to - use the appropriate access methods. -

- Please send all bug reports, requests, and comments to - arenn@urbanophile.com. -

-

-
Version: -
1.0.3 -
Author: -
Roland McGrath (roland@gnu.ai.mit.edu), Ulrich Drepper (drepper@cygnus.com), Aaron M. Renn (arenn@urbanophile.com) -
See Also: -
LongOpt -
-
- -

- Constructor Index -

-
-
 o - Getopt(String, String[], String) -
Construct a basic Getopt instance with the given input data. -
 o - Getopt(String, String[], String, LongOpt[]) -
Construct a Getopt instance with given input data that is capable of - parsing long options as well as short. -
 o - Getopt(String, String[], String, LongOpt[], boolean) -
Construct a Getopt instance with given input data that is capable of - parsing long options and short options. -
-

- Method Index -

-
-
 o - getLongind() -
Returns the index into the array of long options (NOT argv) representing - the long option that was found. -
 o - getopt() -
This method returns a char that is the current option that has been - parsed from the command line. -
 o - getOptarg() -
- For communication from `getopt' to the caller. -
 o - getOptind() -
optind it the index in ARGV of the next element to be scanned. -
 o - getOptopt() -
When getopt() encounters an invalid option, it stores the value of that - option in optopt which can be retrieved with this method. -
 o - setArgv(String[]) -
Since in GNU getopt() the argument vector is passed back in to the - function every time, the caller can swap out argv on the fly. -
 o - setOpterr(boolean) -
Normally Getopt will print a message to the standard error when an - invalid option is encountered. -
 o - setOptind(int) -
This method allows the optind index to be set manually. -
 o - setOptstring(String) -
In GNU getopt, it is possible to change the string containg valid options - on the fly because it is passed as an argument to getopt() each time. -
- -

- Constructors -

- - o -Getopt -
- public Getopt(String progname,
-               String argv[],
-               String optstring)
-
-
-
Construct a basic Getopt instance with the given input data. Note that - this handles "short" options only. -

-

-
Parameters: -
progname - The name to display as the program name when printing errors -
argv - The String array passed as the command line to the program. -
optstring - A String containing a description of the valid args for this program -
-
- o -Getopt -
- public Getopt(String progname,
-               String argv[],
-               String optstring,
-               LongOpt long_options[])
-
-
-
Construct a Getopt instance with given input data that is capable of - parsing long options as well as short. -

-

-
Parameters: -
progname - The name to display as the program name when printing errors -
argv - The String array passed as the command ilne to the program -
optstring - A String containing a description of the valid short args for this program -
long_options - An array of LongOpt objects that describes the valid long args for this program -
-
- o -Getopt -
- public Getopt(String progname,
-               String argv[],
-               String optstring,
-               LongOpt long_options[],
-               boolean long_only)
-
-
-
Construct a Getopt instance with given input data that is capable of - parsing long options and short options. Contrary to what you might - think, the flag 'long_only' does not determine whether or not we - scan for only long arguments. Instead, a value of true here allows - long arguments to start with a '-' instead of '--' unless there is a - conflict with a short option name. -

-

-
Parameters: -
progname - The name to display as the program name when printing errors -
argv - The String array passed as the command ilne to the program -
optstring - A String containing a description of the valid short args for this program -
long_options - An array of LongOpt objects that describes the valid long args for this program -
long_only - true if long options that do not conflict with short options can start with a '-' as well as '--' -
-
- -

- Methods -

- o -setOptstring -
- public void setOptstring(String optstring)
-
-
-
In GNU getopt, it is possible to change the string containg valid options - on the fly because it is passed as an argument to getopt() each time. In - this version we do not pass the string on every call. In order to allow - dynamic option string changing, this method is provided. -

-

-
Parameters: -
optstring - The new option string to use -
-
- o -getOptind -
- public int getOptind()
-
-
-
optind it the index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. -

-

- o -setOptind -
- public void setOptind(int optind)
-
-
-
This method allows the optind index to be set manually. Normally this - is not necessary (and incorrect usage of this method can lead to serious - lossage), but optind is a public symbol in GNU getopt, so this method - was added to allow it to be modified by the caller if desired. -

-

-
Parameters: -
optind - The new value of optind -
-
- o -setArgv -
- public void setArgv(String argv[])
-
-
-
Since in GNU getopt() the argument vector is passed back in to the - function every time, the caller can swap out argv on the fly. Since - passing argv is not required in the Java version, this method allows - the user to override argv. Note that incorrect use of this method can - lead to serious lossage. -

-

-
Parameters: -
argv - New argument list -
-
- o -getOptarg -
- public String getOptarg()
-
-
-
For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. - No set method is provided because setting this variable has no effect. -

-

- o -setOpterr -
- public void setOpterr(boolean opterr)
-
-
-
Normally Getopt will print a message to the standard error when an - invalid option is encountered. This can be suppressed (or re-enabled) - by calling this method. There is no get method for this variable - because if you can't remember the state you set this to, why should I? -

-

- o -getOptopt -
- public int getOptopt()
-
-
-
When getopt() encounters an invalid option, it stores the value of that - option in optopt which can be retrieved with this method. There is - no corresponding set method because setting this variable has no effect. -

-

- o -getLongind -
- public int getLongind()
-
-
-
Returns the index into the array of long options (NOT argv) representing - the long option that was found. -

-

- o -getopt -
- public int getopt()
-
-
-
This method returns a char that is the current option that has been - parsed from the command line. If the option takes an argument, then - the internal variable 'optarg' is set which is a String representing - the the value of the argument. This value can be retrieved by the - caller using the getOptarg() method. If an invalid option is found, - an error message is printed and a '?' is returned. The name of the - invalid option character can be retrieved by calling the getOptopt() - method. When there are no more options to be scanned, this method - returns -1. The index of first non-option element in argv can be - retrieved with the getOptind() method. -

-

-
Returns: -
Various things as described above -
-
-
-
-All Packages  Class Hierarchy  This Package  Previous  Next  Index
- - diff --git a/lab2_pruebas/gnu/getopt/gnu.getopt.LongOpt.html b/lab2_pruebas/gnu/getopt/gnu.getopt.LongOpt.html deleted file mode 100755 index ddc1186..0000000 --- a/lab2_pruebas/gnu/getopt/gnu.getopt.LongOpt.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - Class gnu.getopt.LongOpt - - - - -
-All Packages  Class Hierarchy  This Package  Previous  Next  Index
-
-

- Class gnu.getopt.LongOpt -

-
-java.lang.Object
-   |
-   +----gnu.getopt.LongOpt
-
-
-
-
public class LongOpt -
extends Object -
-This object represents the definition of a long option in the Java port - of GNU getopt. An array of LongOpt objects is passed to the Getopt - object to define the list of valid long options for a given parsing - session. Refer to the getopt documentation for details on the - format of long options. -

-

-
Version: -
1.0.3 -
Author: -
Aaron M. Renn (arenn@urbanophile.com) -
See Also: -
Getopt -
-
- -

- Variable Index -

-
-
 o - NO_ARGUMENT -
Constant value used for the "has_arg" constructor argument. -
 o - OPTIONAL_ARGUMENT -
Constant value used for the "has_arg" constructor argument. -
 o - REQUIRED_ARGUMENT -
- Constant value used for the "has_arg" constructor argument. -
-

- Constructor Index -

-
-
 o - LongOpt(String, int, StringBuffer, int) -
Create a new LongOpt object with the given parameter values. -
-

- Method Index -

-
-
 o - getFlag() -
Returns the value of the 'flag' field for this long option - - -
 o - getHasArg() -
Returns the value set for the 'has_arg' field for this long option - - -
 o - getName() -
Returns the name of this LongOpt as a String - - -
 o - getVal() -
Returns the value of the 'val' field for this long option - - -
- -

- Variables -

- o -NO_ARGUMENT -
- public static final int NO_ARGUMENT
-
-
-
Constant value used for the "has_arg" constructor argument. This - value indicates that the option takes no argument.

-

- o -REQUIRED_ARGUMENT -
- public static final int REQUIRED_ARGUMENT
-
-
-
Constant value used for the "has_arg" constructor argument. This - value indicates that the option takes an argument that is required.

-

- o -OPTIONAL_ARGUMENT -
- public static final int OPTIONAL_ARGUMENT
-
-
-
Constant value used for the "has_arg" constructor argument. This - value indicates that the option takes an argument that is optional.

-

- -

- Constructors -

- - o -LongOpt -
- public LongOpt(String name,
-                int has_arg,
-                StringBuffer flag,
-                int val) throws IllegalArgumentException
-
-
-
Create a new LongOpt object with the given parameter values. If the - value passed as has_arg is not valid, then an exception is thrown. -

-

-
Parameters: -
name - The long option String. -
has_arg - Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). -
flag - If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. -
val - The value to return for this long option, or the equivalent single letter option to emulate if flag is null. -
Throws: IllegalArgumentException -
If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. -
-
- -

- Methods -

- o -getName -
- public String getName()
-
-
-
Returns the name of this LongOpt as a String -

-

-
Returns: -
Then name of the long option -
-
- o -getHasArg -
- public int getHasArg()
-
-
-
Returns the value set for the 'has_arg' field for this long option -

-

-
Returns: -
The value of 'has_arg' -
-
- o -getFlag -
- public StringBuffer getFlag()
-
-
-
Returns the value of the 'flag' field for this long option -

-

-
Returns: -
The value of 'flag' -
-
- o -getVal -
- public int getVal()
-
-
-
Returns the value of the 'val' field for this long option -

-

-
Returns: -
The value of 'val' -
-
-
-
-All Packages  Class Hierarchy  This Package  Previous  Next  Index
- - diff --git a/lab2_pruebas/lists/msg_list.c b/lab2_pruebas/lists/msg_list.c deleted file mode 100644 index 6112ae3..0000000 --- a/lab2_pruebas/lists/msg_list.c +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" - - -/* Creates a new message struct and enqueues it to the end of the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->sender, sender); - temp->id = id; - temp->next = NULL; - - if (*head == NULL){ /* Queue is empty */ - temp->next = *head; - *head = temp; - } - else{ - /* If the queue is not empty, iterate to the end and append the message */ - struct msg *last = *head; - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - return 0; -} -/* Deletes the message at the head of the queue and returns the new - head of the list - Return a pointer to the next message in the queue - NULL if the list is left empty */ -struct msg * dequeueMsg(struct msg **head){ - struct msg* temp = *head; - /* Head pointing to the next element */ - *head = temp->next; - /* Free the resources of the first message */ - free(temp); - /* Return the new head of the queue */ - return *head; -} - -/* Deletes all the messages in the list from the head of the list -passed as paremeter */ -void deleteAllMsgs(struct msg ** head){ - struct msg **temp = head; - while(*temp != NULL){ - *temp = dequeueMsg(&(*temp)); - } - return; -} \ No newline at end of file diff --git a/lab2_pruebas/lists/msg_list.h b/lab2_pruebas/lists/msg_list.h deleted file mode 100644 index bca5c01..0000000 --- a/lab2_pruebas/lists/msg_list.h +++ /dev/null @@ -1,15 +0,0 @@ -#define MAX_MSG 256 -#define MAX_MD5 33 - -struct msg{ - char body[MAX_MSG]; /* Content of the message */ - char sender[MAX_MSG]; /* Sender of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -/* ================FUNCTION HEADERS================ */ -int enqueueMsg(struct msg **head, char * message, char * md5, unsigned int id, char * sender); -struct msg * dequeueMsg(struct msg **head); -void deleteAllMsgs(struct msg ** head); \ No newline at end of file diff --git a/lab2_pruebas/lists/read_line.c b/lab2_pruebas/lists/read_line.c deleted file mode 100644 index c2038c3..0000000 --- a/lab2_pruebas/lists/read_line.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" - -int send_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = send(socket, message, l, 0); - l = l -r; /* Pending data to send */ - message = message + r; /* */ - } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - -ssize_t readLine(int fd, void *buffer, size_t n) -{ - ssize_t numRead; /* num of bytes fetched by last read() */ - size_t totRead; /* total bytes read so far */ - char *buf; - char ch; - - - if (n <= 0 || buffer == NULL) { - errno = EINVAL; - return -1; - } - - buf = buffer; - totRead = 0; - - for (;;) { - numRead = read(fd, &ch, 1); /* read a byte */ - - if (numRead == -1) { - if (errno == EINTR) /* interrupted -> restart read() */ - continue; - else - return -1; /* some other error */ - } else if (numRead == 0) { /* EOF */ - if (totRead == 0) /* no byres read; return 0 */ - return 0; - else - break; - } else { /* numRead must be 1 if we get here*/ - if (ch == '\n') - break; - if (ch == '\0') - break; - if (totRead < n - 1) { /* discard > (n-1) bytes */ - totRead++; - *buf++ = ch; - } - } - } - - *buf = '\0'; - return totRead; -} diff --git a/lab2_pruebas/lists/read_line.h b/lab2_pruebas/lists/read_line.h deleted file mode 100644 index e3d4c9e..0000000 --- a/lab2_pruebas/lists/read_line.h +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int send_msg(int socket, char *message, int length); -int recv_msg(int socket, char *message, int length); -ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab2_pruebas/lists/user_list.c b/lab2_pruebas/lists/user_list.c deleted file mode 100644 index 0280c16..0000000 --- a/lab2_pruebas/lists/user_list.c +++ /dev/null @@ -1,246 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" -#include "user_list.h" - -/* Checks if the input user is already registered - Return 0 if is registered - 1 if is not registered */ -char isRegistered(char * username){ - struct user *temp; - temp = user_head; - - /* Iterate over the list */ - while (temp != NULL){ - if (strcmp(temp->username, username) == 0){ //Check if the username exists - return 1; - } - temp = temp->next; - } - - return 0; - } - -/* Registers a user (if not previously registered) and appends it to the end of the s list - Returns 1 if already registered - 0 if registered correctly */ -char registerUser(char * username){ - /* Check if the user already exists */ - if(isRegistered(username)) return 1; - - /* Prepare new user */ - struct user *temp; - temp = (struct user *) malloc(sizeof(struct user)); - /* If memory is full and malloc is not possible, we return code 2 */ - if(temp == NULL) return 2; - /* Initialize user values */ - strcpy(temp->username, username); - temp->status = 0; - strcpy(temp->ip, "-1"); - temp->port = 0; - temp->pend_msgs_head = NULL; - temp->next = NULL; - temp->last_id = 0; - - if (user_head == NULL){ //If list is empty - temp->next = user_head; - user_head = temp; - } - else{ - struct user *last = user_head; - - /* Iterate over the list */ - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - - return 0; -} - -/* Changes the status of a user to 1 (ON) and links an IP and port number to it - Return 0 if connect OK - 1 if user is not registered - 2 if registered but not connected */ -char connectUser(char * username, char * ip, uint16_t port){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 1) return 2; //User already connected - /* Change status to 1 ("ON") and update IP and Port */ - temp->status = 1; - strcpy(temp->ip, ip); - temp->port = port; - return 0; - } - temp = temp->next; - } - /* No user was found, so send code 1 */ - return 1; -} - -/* Changes the status of a user to 0 (OFF) and cleans the IP and port number - Return 0 if disconnect OK; - 1 if user is not registered; - 2 if registered but not connected; - 3 if trying to disconnect from a different IP */ -char disconnectUser(char * username, char * used_ip){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 0) return 2; //User already disconnected - if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP - /* Change status to 0 ("OFF") and delete IP and Port */ - temp->status = 0; - strcpy(temp->ip, "-1"); - temp->port = 0; - return 0; - } - temp = temp->next; - } - - return 1; -} - - -/* Unregisters a user, deleting it and its pending messages (if any) from the list - Returns 1 if the user does not exist. - 0 if the user is deleted correctly */ -char unregisterUser(char * username){ - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list - temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if(temp == user_head){ //If the user is at the user_head of the list - user_head = temp->next; //change the user_head to the next element - /* Delete the pending messages if any */ - deleteAllMsgs(&(temp->pend_msgs_head)); - free(temp); //Free the resources of the user - return 0; - } - else{ //User is not at the user_head - prev->next = temp->next; - /* Delete the pending messages if any */ - deleteAllMsgs(&(temp->pend_msgs_head)); - /* Free the memory resources of the user structure */ - free(temp); - return 0; - } - } - else{ - prev = temp; - temp = temp->next; - } - } - //If we reach this point, no user was found - return 1; -} - -/* Returns 0 if store OK. -1 if server error (malloc error because of full memory) */ -int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Enqueue message - return enqueueMsg(&(temp->pend_msgs_head), msg, md5, msg_id, sender); - } - temp = temp->next; - } - - return -1; //User was not found -} - -/* Increments the last-sent-message ID associated to the input user - Return the value of the updated ID */ -unsigned int updateLastID(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Increment the ID in 1 - temp->last_id = temp->last_id+1; - //If it results in 0, then the maximum representable number is overflown - if(temp->last_id == 0) temp->last_id = 1; - - return temp->last_id; - } - temp = temp->next; - } - - return 0; -} - -/* Checks if the input user is connected - Return 0 if the user is disconnected - 1 if the user is connected - 2 if error (user was not found) */ -char isConnected(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->status; //Returns 0 if OFF, 1 if ON - } - temp = temp->next; - } - /* Return error 2 if we reach this point. No user was found */ - return 2; -} - -/* Retrieves the IP associated to a user in the list - Returns a char array with the IP of the user - NULL if the user was not found */ -char * getUserIP(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->ip; //Returns the IP of the user - } - temp = temp->next; - } - return NULL; -} - -/* Retrieves the port number associated to a user in the list - Return the port number - 0 if the user was not found */ -uint16_t getUserPort(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return temp->port; //Returns the IP of the user - } - temp = temp->next; - } - return 0; -} - -/* Retrieves a pointer to the head of the pending message list associated to a user - Return the pointer to the head of the message list - NULL if the user was not found */ -struct msg ** getPendMsgHead(char * username){ - struct user *temp = user_head; - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - return &(temp->pend_msgs_head); //Returns the IP of the user - } - temp = temp->next; - } - return NULL; -} - diff --git a/lab2_pruebas/lists/user_list.h b/lab2_pruebas/lists/user_list.h deleted file mode 100644 index 70dcc1e..0000000 --- a/lab2_pruebas/lists/user_list.h +++ /dev/null @@ -1,27 +0,0 @@ -#define MAX_USERNAME 256 -#define MAX_IP 16 -#define TRUE 1 -#define FALSE 0 - -struct user{ - char username[MAX_USERNAME]; /* Username that acts as ID */ - char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - char ip[MAX_IP]; /* IP of the user from which the connect operation was made */ - uint16_t port; /* Port number of the user from which the connect operation was made */ - unsigned int last_id; /* ID assigned to the last sent message */ - struct msg *pend_msgs_head; /* Pointer to the head of the pending messages queue */ - struct user *next; /* Pointer to the next user in the list */ -} *user_head; - -/* ================FUNCTION HEADERS================ */ -char isRegistered(char * username); -char registerUser(char * username); -char unregisterUser(char * username); -char connectUser(char * username, char * ip, uint16_t port); -char disconnectUser(char * username, char * used_ip); -int storeMsg(char * username, char* msg, unsigned int msg_id, char * md5, char * sender); -unsigned int updateLastID(char * username); -char isConnected(char * username); -char * getUserIP(char * username); -uint16_t getUserPort(char * username); -struct msg ** getPendMsgHead(char * username); \ No newline at end of file diff --git a/lab2_pruebas/md5/client/Exception.java b/lab2_pruebas/md5/client/Exception.java deleted file mode 100644 index 89fef0a..0000000 --- a/lab2_pruebas/md5/client/Exception.java +++ /dev/null @@ -1,60 +0,0 @@ - -package md5.client; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for Exception complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="Exception">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Exception", propOrder = { - "message" -}) -public class Exception { - - protected String message; - - /** - * Gets the value of the message property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMessage() { - return message; - } - - /** - * Sets the value of the message property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMessage(String value) { - this.message = value; - } - -} diff --git a/lab2_pruebas/md5/client/Exception_Exception.java b/lab2_pruebas/md5/client/Exception_Exception.java deleted file mode 100644 index 9e68531..0000000 --- a/lab2_pruebas/md5/client/Exception_Exception.java +++ /dev/null @@ -1,54 +0,0 @@ - -package md5.client; - -import javax.xml.ws.WebFault; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebFault(name = "Exception", targetNamespace = "http://ws.server.md5/") -public class Exception_Exception - extends java.lang.Exception -{ - - /** - * Java type that goes as soapenv:Fault detail element. - * - */ - private md5.client.Exception faultInfo; - - /** - * - * @param message - * @param faultInfo - */ - public Exception_Exception(String message, md5.client.Exception faultInfo) { - super(message); - this.faultInfo = faultInfo; - } - - /** - * - * @param message - * @param faultInfo - * @param cause - */ - public Exception_Exception(String message, md5.client.Exception faultInfo, Throwable cause) { - super(message, cause); - this.faultInfo = faultInfo; - } - - /** - * - * @return - * returns fault bean: md5.client.Exception - */ - public md5.client.Exception getFaultInfo() { - return faultInfo; - } - -} diff --git a/lab2_pruebas/md5/client/MD5.java b/lab2_pruebas/md5/client/MD5.java deleted file mode 100644 index 77bf5ca..0000000 --- a/lab2_pruebas/md5/client/MD5.java +++ /dev/null @@ -1,46 +0,0 @@ - -package md5.client; - -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.ws.Action; -import javax.xml.ws.FaultAction; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebService(name = "MD5", targetNamespace = "http://ws.server.md5/") -@SOAPBinding(style = SOAPBinding.Style.RPC) -@XmlSeeAlso({ - ObjectFactory.class -}) -public interface MD5 { - - - /** - * - * @param arg0 - * @return - * returns java.lang.String - * @throws Exception_Exception - */ - @WebMethod - @WebResult(partName = "return") - @Action(input = "http://ws.server.md5/MD5/getMD5Request", output = "http://ws.server.md5/MD5/getMD5Response", fault = { - @FaultAction(className = Exception_Exception.class, value = "http://ws.server.md5/MD5/getMD5/Fault/Exception") - }) - public String getMD5( - @WebParam(name = "arg0", partName = "arg0") - String arg0) - throws Exception_Exception - ; - -} diff --git a/lab2_pruebas/md5/client/MD5ImplService.java b/lab2_pruebas/md5/client/MD5ImplService.java deleted file mode 100644 index 2608289..0000000 --- a/lab2_pruebas/md5/client/MD5ImplService.java +++ /dev/null @@ -1,94 +0,0 @@ - -package md5.client; - -import java.net.MalformedURLException; -import java.net.URL; -import javax.xml.namespace.QName; -import javax.xml.ws.Service; -import javax.xml.ws.WebEndpoint; -import javax.xml.ws.WebServiceClient; -import javax.xml.ws.WebServiceException; -import javax.xml.ws.WebServiceFeature; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.server.md5/", wsdlLocation = "http://127.0.1.1:8080/ws/md5?wsdl") -public class MD5ImplService - extends Service -{ - - private final static URL MD5IMPLSERVICE_WSDL_LOCATION; - private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; - private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.server.md5/", "MD5ImplService"); - - static { - URL url = null; - WebServiceException e = null; - try { - url = new URL("http://127.0.1.1:8080/ws/md5?wsdl"); - } catch (MalformedURLException ex) { - e = new WebServiceException(ex); - } - MD5IMPLSERVICE_WSDL_LOCATION = url; - MD5IMPLSERVICE_EXCEPTION = e; - } - - public MD5ImplService() { - super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME); - } - - public MD5ImplService(WebServiceFeature... features) { - super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME, features); - } - - public MD5ImplService(URL wsdlLocation) { - super(wsdlLocation, MD5IMPLSERVICE_QNAME); - } - - public MD5ImplService(URL wsdlLocation, WebServiceFeature... features) { - super(wsdlLocation, MD5IMPLSERVICE_QNAME, features); - } - - public MD5ImplService(URL wsdlLocation, QName serviceName) { - super(wsdlLocation, serviceName); - } - - public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { - super(wsdlLocation, serviceName, features); - } - - /** - * - * @return - * returns MD5 - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5 getMD5ImplPort() { - return super.getPort(new QName("http://ws.server.md5/", "MD5ImplPort"), MD5.class); - } - - /** - * - * @param features - * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. - * @return - * returns MD5 - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5 getMD5ImplPort(WebServiceFeature... features) { - return super.getPort(new QName("http://ws.server.md5/", "MD5ImplPort"), MD5.class, features); - } - - private static URL __getWsdlLocation() { - if (MD5IMPLSERVICE_EXCEPTION!= null) { - throw MD5IMPLSERVICE_EXCEPTION; - } - return MD5IMPLSERVICE_WSDL_LOCATION; - } - -} diff --git a/lab2_pruebas/md5/client/ObjectFactory.java b/lab2_pruebas/md5/client/ObjectFactory.java deleted file mode 100644 index c9865fe..0000000 --- a/lab2_pruebas/md5/client/ObjectFactory.java +++ /dev/null @@ -1,53 +0,0 @@ - -package md5.client; - -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.namespace.QName; - - -/** - * This object contains factory methods for each - * Java content interface and Java element interface - * generated in the md5.client package. - *

An ObjectFactory allows you to programatically - * construct new instances of the Java representation - * for XML content. The Java representation of XML - * content can consist of schema derived interfaces - * and classes representing the binding of schema - * type definitions, element declarations and model - * groups. Factory methods for each of these are - * provided in this class. - * - */ -@XmlRegistry -public class ObjectFactory { - - private final static QName _Exception_QNAME = new QName("http://ws.server.md5/", "Exception"); - - /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5.client - * - */ - public ObjectFactory() { - } - - /** - * Create an instance of {@link Exception } - * - */ - public Exception createException() { - return new Exception(); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://ws.server.md5/", name = "Exception") - public JAXBElement createException(Exception value) { - return new JAXBElement(_Exception_QNAME, Exception.class, null, value); - } - -} diff --git a/lab2_pruebas/md5/client/package-info.java b/lab2_pruebas/md5/client/package-info.java deleted file mode 100644 index 35519b5..0000000 --- a/lab2_pruebas/md5/client/package-info.java +++ /dev/null @@ -1,2 +0,0 @@ -@javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.server.md5/") -package md5.client; diff --git a/lab2_pruebas/md5/server/endpoint/MD5Publisher.java b/lab2_pruebas/md5/server/endpoint/MD5Publisher.java deleted file mode 100644 index c81ad99..0000000 --- a/lab2_pruebas/md5/server/endpoint/MD5Publisher.java +++ /dev/null @@ -1,27 +0,0 @@ -package md5.server.endpoint; - -import javax.xml.ws.Endpoint; -import md5.server.ws.MD5Impl; -import java.net.Inet4Address; - -//Endpoint publisher -public class MD5Publisher{ - - public static void main(String[] args) { - String url = "http://"; - try{ - /* Get the machine's IP address in which the web service will be running */ - url += Inet4Address.getLocalHost().getHostAddress(); - } - catch(Exception e){ - System.out.println("Error when getting IP address"); - return; - } - /* Build the web service URI */ - url += ":8080/ws/md5"; - System.out.println("Publishing MD5 service at endpoint: " + url); - /* Publish the endpoint */ - Endpoint.publish(url, new MD5Impl()); - } - -} \ No newline at end of file diff --git a/lab2_pruebas/md5/server/ws/MD5.java b/lab2_pruebas/md5/server/ws/MD5.java deleted file mode 100644 index 89fd071..0000000 --- a/lab2_pruebas/md5/server/ws/MD5.java +++ /dev/null @@ -1,15 +0,0 @@ -package md5.server.ws; - -import javax.jws.WebMethod; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.jws.soap.SOAPBinding.Style; - -//Service Endpoint Interface -@WebService -@SOAPBinding(style = Style.RPC) -public interface MD5{ - - @WebMethod String getMD5(String text) throws Exception; - -} \ No newline at end of file diff --git a/lab2_pruebas/md5/server/ws/MD5Impl.java b/lab2_pruebas/md5/server/ws/MD5Impl.java deleted file mode 100644 index 1383620..0000000 --- a/lab2_pruebas/md5/server/ws/MD5Impl.java +++ /dev/null @@ -1,34 +0,0 @@ -// Based on http://www.mkyong.com/java/java-md5-hashing-example/ -package md5.server.ws; - -import java.io.FileInputStream; -import java.security.MessageDigest; -import javax.jws.WebService; - -//Service Implementation -@WebService(endpointInterface = "md5.server.ws.MD5") -public class MD5Impl implements MD5 -{ - /** - * Performs the MD5 algorithm in order to produce a 128-bit hash value. - * @param text input text argument. - * @return The calculated MD5 hash value (in hex format). - */ - @Override - public String getMD5(String text) throws Exception - { - // Calculate MD5(text) - MessageDigest md = MessageDigest.getInstance("MD5"); - byte[] dataBytes = text.getBytes(); - md.update(dataBytes, 0, text.length()); - byte[] mdbytes = md.digest(); - - // Convert byte to hex format - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < mdbytes.length; i++) { - sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1)); - } - - return sb.toString(); - } -} diff --git a/lab2_pruebas/md5_client/Exception.java b/lab2_pruebas/md5_client/Exception.java deleted file mode 100644 index 12a6fdc..0000000 --- a/lab2_pruebas/md5_client/Exception.java +++ /dev/null @@ -1,60 +0,0 @@ - -package md5_client; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for Exception complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="Exception">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Exception", propOrder = { - "message" -}) -public class Exception { - - protected String message; - - /** - * Gets the value of the message property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMessage() { - return message; - } - - /** - * Sets the value of the message property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMessage(String value) { - this.message = value; - } - -} diff --git a/lab2_pruebas/md5_client/Exception_Exception.java b/lab2_pruebas/md5_client/Exception_Exception.java deleted file mode 100644 index c786d68..0000000 --- a/lab2_pruebas/md5_client/Exception_Exception.java +++ /dev/null @@ -1,54 +0,0 @@ - -package md5_client; - -import javax.xml.ws.WebFault; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebFault(name = "Exception", targetNamespace = "http://ws.md5/") -public class Exception_Exception - extends java.lang.Exception -{ - - /** - * Java type that goes as soapenv:Fault detail element. - * - */ - private md5_client.Exception faultInfo; - - /** - * - * @param message - * @param faultInfo - */ - public Exception_Exception(String message, md5_client.Exception faultInfo) { - super(message); - this.faultInfo = faultInfo; - } - - /** - * - * @param message - * @param faultInfo - * @param cause - */ - public Exception_Exception(String message, md5_client.Exception faultInfo, Throwable cause) { - super(message, cause); - this.faultInfo = faultInfo; - } - - /** - * - * @return - * returns fault bean: md5_client.Exception - */ - public md5_client.Exception getFaultInfo() { - return faultInfo; - } - -} diff --git a/lab2_pruebas/md5_client/MD5.java b/lab2_pruebas/md5_client/MD5.java deleted file mode 100644 index 9c738a6..0000000 --- a/lab2_pruebas/md5_client/MD5.java +++ /dev/null @@ -1,46 +0,0 @@ - -package md5_client; - -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.ws.Action; -import javax.xml.ws.FaultAction; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebService(name = "MD5", targetNamespace = "http://ws.md5/") -@SOAPBinding(style = SOAPBinding.Style.RPC) -@XmlSeeAlso({ - ObjectFactory.class -}) -public interface MD5 { - - - /** - * - * @param arg0 - * @return - * returns java.lang.String - * @throws Exception_Exception - */ - @WebMethod - @WebResult(partName = "return") - @Action(input = "http://ws.md5/MD5/getMD5Request", output = "http://ws.md5/MD5/getMD5Response", fault = { - @FaultAction(className = Exception_Exception.class, value = "http://ws.md5/MD5/getMD5/Fault/Exception") - }) - public String getMD5( - @WebParam(name = "arg0", partName = "arg0") - String arg0) - throws Exception_Exception - ; - -} diff --git a/lab2_pruebas/md5_client/MD5ImplService.java b/lab2_pruebas/md5_client/MD5ImplService.java deleted file mode 100644 index 8207f3b..0000000 --- a/lab2_pruebas/md5_client/MD5ImplService.java +++ /dev/null @@ -1,94 +0,0 @@ - -package md5_client; - -import java.net.MalformedURLException; -import java.net.URL; -import javax.xml.namespace.QName; -import javax.xml.ws.Service; -import javax.xml.ws.WebEndpoint; -import javax.xml.ws.WebServiceClient; -import javax.xml.ws.WebServiceException; -import javax.xml.ws.WebServiceFeature; - - -/** - * This class was generated by the JAX-WS RI. - * JAX-WS RI 2.2.4-b01 - * Generated source version: 2.2 - * - */ -@WebServiceClient(name = "MD5ImplService", targetNamespace = "http://ws.md5/", wsdlLocation = "http://localhost:8080/ws/md5?wsdl") -public class MD5ImplService - extends Service -{ - - private final static URL MD5IMPLSERVICE_WSDL_LOCATION; - private final static WebServiceException MD5IMPLSERVICE_EXCEPTION; - private final static QName MD5IMPLSERVICE_QNAME = new QName("http://ws.md5/", "MD5ImplService"); - - static { - URL url = null; - WebServiceException e = null; - try { - url = new URL("http://localhost:8080/ws/md5?wsdl"); - } catch (MalformedURLException ex) { - e = new WebServiceException(ex); - } - MD5IMPLSERVICE_WSDL_LOCATION = url; - MD5IMPLSERVICE_EXCEPTION = e; - } - - public MD5ImplService() { - super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME); - } - - public MD5ImplService(WebServiceFeature... features) { - super(__getWsdlLocation(), MD5IMPLSERVICE_QNAME, features); - } - - public MD5ImplService(URL wsdlLocation) { - super(wsdlLocation, MD5IMPLSERVICE_QNAME); - } - - public MD5ImplService(URL wsdlLocation, WebServiceFeature... features) { - super(wsdlLocation, MD5IMPLSERVICE_QNAME, features); - } - - public MD5ImplService(URL wsdlLocation, QName serviceName) { - super(wsdlLocation, serviceName); - } - - public MD5ImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { - super(wsdlLocation, serviceName, features); - } - - /** - * - * @return - * returns MD5 - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5 getMD5ImplPort() { - return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class); - } - - /** - * - * @param features - * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. - * @return - * returns MD5 - */ - @WebEndpoint(name = "MD5ImplPort") - public MD5 getMD5ImplPort(WebServiceFeature... features) { - return super.getPort(new QName("http://ws.md5/", "MD5ImplPort"), MD5.class, features); - } - - private static URL __getWsdlLocation() { - if (MD5IMPLSERVICE_EXCEPTION!= null) { - throw MD5IMPLSERVICE_EXCEPTION; - } - return MD5IMPLSERVICE_WSDL_LOCATION; - } - -} diff --git a/lab2_pruebas/md5_client/ObjectFactory.java b/lab2_pruebas/md5_client/ObjectFactory.java deleted file mode 100644 index c11e011..0000000 --- a/lab2_pruebas/md5_client/ObjectFactory.java +++ /dev/null @@ -1,53 +0,0 @@ - -package md5_client; - -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.namespace.QName; - - -/** - * This object contains factory methods for each - * Java content interface and Java element interface - * generated in the md5_client package. - *

An ObjectFactory allows you to programatically - * construct new instances of the Java representation - * for XML content. The Java representation of XML - * content can consist of schema derived interfaces - * and classes representing the binding of schema - * type definitions, element declarations and model - * groups. Factory methods for each of these are - * provided in this class. - * - */ -@XmlRegistry -public class ObjectFactory { - - private final static QName _Exception_QNAME = new QName("http://ws.md5/", "Exception"); - - /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: md5_client - * - */ - public ObjectFactory() { - } - - /** - * Create an instance of {@link Exception } - * - */ - public Exception createException() { - return new Exception(); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link Exception }{@code >}} - * - */ - @XmlElementDecl(namespace = "http://ws.md5/", name = "Exception") - public JAXBElement createException(Exception value) { - return new JAXBElement(_Exception_QNAME, Exception.class, null, value); - } - -} diff --git a/lab2_pruebas/md5_client/package-info.java b/lab2_pruebas/md5_client/package-info.java deleted file mode 100644 index b7be753..0000000 --- a/lab2_pruebas/md5_client/package-info.java +++ /dev/null @@ -1,2 +0,0 @@ -@javax.xml.bind.annotation.XmlSchema(namespace = "http://ws.md5/") -package md5_client; diff --git a/lab2_pruebas/monitor.c b/lab2_pruebas/monitor.c deleted file mode 100644 index d782e6a..0000000 --- a/lab2_pruebas/monitor.c +++ /dev/null @@ -1,53 +0,0 @@ - -#include "rpc_store_service/store_service.h" - -int -main (int argc, char *argv[]) -{ - char *host; - enum clnt_stat retval; /* Return value for the getmessage call */ - /* Check the parameters of the command */ - if (argc < 4) { - printf ("usage: %s server_host \n", argv[0]); - exit (1); - } - /* Get the address of the host from the first paramete */ - host = argv[1]; - /* Get the ID from the third parameter and store it in an unsigned int */ - char *stopstring; - unsigned int id = strtoul(argv[3], &stopstring, 10); - - CLIENT *clnt; - /* Create the connection with the service */ - clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - printf("ERROR , SERVICE NOT AVAILABLE\n"); - exit (1); - } - /* Allocate resources for the response */ - response *res = malloc(sizeof(response)); - res->msg = calloc(MAX_SIZE, sizeof(char)); - res->md5 = calloc(MAX_MD5, sizeof(char)); - /* Call the get message service with the client ID and message ID passed as parameters */ - retval = getmessage_1(argv[2], id, res, clnt); - /* If FALSE is returned, there was an internal server error */ - if(retval != RPC_SUCCESS) printf("ERROR , SERVICE NOT AVAILABLE\n"); - /* if the length of the receive message is 0, no message was found */ - if(strlen(res->msg) == 0) printf ("ERROR , MESSAGE DOES NOT EXIST\n"); - /* Otherwise, print the message and its MD5 hash */ - else{ - printf("MESS: %s\n", res->msg); - printf("MD5: %s\n", res->md5); - } - /*******************************************/ - /* Sample code for the getnummessages call */ - /*******************************************/ - /* - int result; - getnummessages_1(argv[2], &result, clnt); - printf("Total number of messages: %d\n", result); - */ - /* Destroy the connection */ - clnt_destroy (clnt); - exit (0); -} diff --git a/lab2_pruebas/rpc_store_service (copy)/Makefile b/lab2_pruebas/rpc_store_service (copy)/Makefile deleted file mode 100644 index 3f7252c..0000000 --- a/lab2_pruebas/rpc_store_service (copy)/Makefile +++ /dev/null @@ -1,47 +0,0 @@ - -# This is a template Makefile generated by rpcgen - -# Parameters - -CLIENT = store_service_client -SERVER = store_service_server - -SOURCES_CLNT.c = -SOURCES_CLNT.h = -SOURCES_SVC.c = -SOURCES_SVC.h = -SOURCES.x = store_service.x - -TARGETS_SVC.c = store_service_svc.c store_service_server.c store_service_xdr.c -TARGETS_CLNT.c = store_service_clnt.c store_service_client.c store_service_xdr.c -TARGETS = store_service.h store_service_xdr.c store_service_clnt.c store_service_svc.c store_service_client.c store_service_server.c - -OBJECTS_CLNT = $(SOURCES_CLNT.c:%.c=%.o) $(TARGETS_CLNT.c:%.c=%.o) -OBJECTS_SVC = $(SOURCES_SVC.c:%.c=%.o) $(TARGETS_SVC.c:%.c=%.o) -# Compiler flags - -CPPFLAGS += -D_REENTRANT -CFLAGS += -g -LDLIBS += -lnsl -lpthread - RPCGENFLAGS = - -# Targets - -all : $(CLIENT) $(SERVER) - -$(TARGETS) : $(SOURCES.x) - rpcgen $(RPCGENFLAGS) $(SOURCES.x) - -$(OBJECTS_CLNT) : $(SOURCES_CLNT.c) $(SOURCES_CLNT.h) $(TARGETS_CLNT.c) - -$(OBJECTS_SVC) : $(SOURCES_SVC.c) $(SOURCES_SVC.h) $(TARGETS_SVC.c) - -$(CLIENT) : $(OBJECTS_CLNT) - $(LINK.c) -o $(CLIENT) $(OBJECTS_CLNT) $(LDLIBS) - -$(SERVER) : $(OBJECTS_SVC) - $(LINK.c) -o $(SERVER) $(OBJECTS_SVC) $(LDLIBS) - - clean: - $(RM) core $(TARGETS) $(OBJECTS_CLNT) $(OBJECTS_SVC) $(CLIENT) $(SERVER) - diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service.h b/lab2_pruebas/rpc_store_service (copy)/store_service.h deleted file mode 100644 index 215718c..0000000 --- a/lab2_pruebas/rpc_store_service (copy)/store_service.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#ifndef _STORE_SERVICE_H_RPCGEN -#define _STORE_SERVICE_H_RPCGEN - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define MAX_SIZE 256 -#define MAX_MD5 33 - -struct response { - char *msg; - char *md5; -}; -typedef struct response response; - - -struct store_1_argument { - char *sender; - char *receiver; - u_int msg_id; - char *msg; - char *md5; -}; -typedef struct store_1_argument store_1_argument; - -struct getmessage_1_argument { - char *user; - u_int msg_id; - response *res; -}; -typedef struct getmessage_1_argument getmessage_1_argument; - -#define STORE_SERVICE 666 -#define STORE_VERSION 1 - -#if defined(__STDC__) || defined(__cplusplus) -#define init 1 -extern enum clnt_stat init_1(void *, CLIENT *); -extern bool_t init_1_svc(void *, struct svc_req *); -#define store 2 -extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); -extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); -#define getNumMessages 3 -extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); -extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); -#define getMessage 4 -extern enum clnt_stat getmessage_1(char *, u_int , response *, int *, CLIENT *); -extern bool_t getmessage_1_svc(char *, u_int , response *, int *, struct svc_req *); -extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); - -#else /* K&R C */ -#define init 1 -extern enum clnt_stat init_1(); -extern bool_t init_1_svc(); -#define store 2 -extern enum clnt_stat store_1(); -extern bool_t store_1_svc(); -#define getNumMessages 3 -extern enum clnt_stat getnummessages_1(); -extern bool_t getnummessages_1_svc(); -#define getMessage 4 -extern enum clnt_stat getmessage_1(); -extern bool_t getmessage_1_svc(); -extern int store_service_1_freeresult (); -#endif /* K&R C */ - -/* the xdr functions */ - -#if defined(__STDC__) || defined(__cplusplus) -extern bool_t xdr_response (XDR *, response*); -extern bool_t xdr_response (XDR *, response*); -extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); -extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); - -#else /* K&R C */ -extern bool_t xdr_response (); -extern bool_t xdr_response (); -extern bool_t xdr_store_1_argument (); -extern bool_t xdr_getmessage_1_argument (); - -#endif /* K&R C */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service.x b/lab2_pruebas/rpc_store_service (copy)/store_service.x deleted file mode 100644 index ff6866a..0000000 --- a/lab2_pruebas/rpc_store_service (copy)/store_service.x +++ /dev/null @@ -1,18 +0,0 @@ -const MAX_SIZE = 256; -const MAX_MD5 = 33; - -struct response{ - string msg; - string md5; -}; -typedef struct response response; - -program STORE_SERVICE{ - version STORE_VERSION{ - void init() = 1; - int store(string sender, string receiver, - unsigned int msg_id, string msg, string md5) = 2; - int getNumMessages(string user) = 3; - int getMessage(string user, unsigned int msg_id, response *res) = 4; - } = 1; -} = 666; \ No newline at end of file diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_client b/lab2_pruebas/rpc_store_service (copy)/store_service_client deleted file mode 100755 index 829c6fbea7a8b8113b0d51a93b0c9e5b3d5334fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24408 zcmeHv4R~ACndZ@tr7JtO6x(qek`M(FFih>(&JQ6iMY63#4o(~#JCH(-+KIoVc7<4K4@kh&vlLpG+E~b%{f(D^ z230+4nrfO_2){&7j<)*Fmrc~25-{~%ZO49H8#y*9SEc2uw4A9=Xv0ix{G)IDYuEbP z?E$pd4zLnU@;F|Tmu1bH$sWQ7OJx&vKmw*tDzq@Qk-HjlwDaQ@pJr^+{Y@5^v)VsX z>!w&R(BHLW(Sm`V>Vf{D)RyWkOP5qHSyYpV*VIeDsh_+nR(HsrOdS1a(dKgeaSo8a z{!6cyrsA(wtbg+H_rG?>i+^}Bdh%h?ittAra@>SpREdC}I8&PbdeMek{^84o2d?v$7~gIV=MoXy(w`KONFo{SzA4h(cT;3zw0}ShkMs{EH;OGi zBauz<{vHVo$AOEDNH~!ML$3r=5uhc+x_e+K8R;I0MUyd!+dL8-*36Lzdu2}}$;e=| ze@HP8EAH6HNPGl_^bW>{G*3jVXlZU}jMUdGN<;NEi{Xm zLWFm|YlU|g?3v*g;a$g)1*d-rVtD6s*0YLfZ1L?Njm^IUNAH{fAh!ERJacLcW&Sp{ z8QL=^WP5~dhV;xa*}jo&2ipf_yNhjx>dZs3{W-Q7qBDDCyNzvz=FAS+Udc9x@651l zH?YkRo#~YAWo$D9XV%DeJ==8gOhC3TWt&5JrdGDUQRx>O_o6LJ-LIQRU%nwc`rpDk z-#ELbz4?V>ol^rM{KE0GK2|Tdya93g8VLSwqjye|5QiQ?AUnd<51|V0JXaDPeRI>y zLsZ4^P2F&mgt1d#zC-HY@GPUYvBtEIklqo#?Ke`v@sAu(5FR}nK7RVjuc<5zyz@$tDtPB!$fcG2 zmI7lZHk{c88NwKOUwHJ^bK%j{+3@ZV{sNc@BD}lfTzL1bXU7)LfY!0aMK~fv!9!fJ zo~BQS2_4~xkDb6w@%`vot!^0VUWB@1qaA-A9$j^?Wi<3?%jl|ypdCGh_V+BE3e(*c27_m3^!Hl5}T;MhF+ zqu?PfoZ-=z4}Td0c7)SU85iE2I@c3kxJdSk>D}_Dv9Ywl{pCokn3sJA2U1+aA+o4@#51-%=W_^%Om$AXyMTp zPCo`Ym~%3`^VX9hRRODD-3zB3Kp!RJ>2Hx?cgM-_o)DaTmBc3yRXX$h(Jjy?=iF&K z*~o$wW-N8GdGvVj(A}Uu{grf=4*@#*7!IcoLjmWKQt~8FO34pDoT%g_P@n!e4u?6+ zM@|7!N>Y<3*^)=e+f?!al}P8MCH7KSQag!~g?W?|Lg48N9F!&FO5UOGdEEKUA11nU zL0SnX(~)r{4^N`xTX~e!P|4-AWL$|1Y;+POJ$aNgQAsP6a8@Zxq>@>aD4CN-$>*pf zMkQR+GnBl>0OpCwFMbdF?p2sh9j{=%oN6A$e0w=O`ixv+)X4rV3{X>J7@F18_=c3j zf`M7LJB__tVNVl#UmCk<(mptaj>>_*B2OQm&D%#+-abkv?Ss)&e*6<+kn6`U&e8u| zKb}+A96!Dzv6IH?K{$Lmm8XwQdHd+h+sDdD``|@c`7t$5AEkNw_~ZYS-sSl5mcpJ? z%U!@Pmy^-g#!l=-B)DFy>jc*82f&$LTK%K9zKiS2sqhP-a}UE;GIRNv4s(veIB~id zMohf8VKoQmVJ3j#(SM}GeNemWSjsJ@(mS6584G?G*FUh$g(A&1l*LwXh-*dK8eG%N z)pKG8i}&T@UCAc{dK=I`Bls4+byFX zG(p2y`LDt|pS6WAe<$@e)*b7*4Z-V!8-h0kBhT&~&&S?-79&G_I_2fQBiTJH+G2^+ zK++%I={+ZKG{i`(JJ!D`Hc}@Nv7sK;H2Z; z`n0@3LVI1^I0Im%H-lbpVDz7cA-8bhxP=A;ivhv0Xk4)Yfz5DdagO!cJLSNtSRw%^ zQ7Be5EmnZCZK0^EzpSPf|LTNorsLDR_rbl#iTB3Fj-fvIyRosos2|2~okq>Uw{R*w zjM-9!`a{%V)O&Fz^r2pdmH1B7J5fK1`VG`CqCSL6^J&z9k06hQ`ylEyT)r z|2)vkv9!LDMgM7<-URxKpzq3}?~wE+;Ceu>#n{D2Zz%D7$=*;>d5*K`|SZ%>EC=SovLkq+j!Bg+Poppazs_~w?l%Jx;;(T zrs8cZS^S-{GP$2$J81HE^IOk!#VrB_0SOs=m2MlmO@HP$6Vt|4Li%$~+mD;%vTfpd zR<~c(blu(m@yh&;o!ik@^te8(>!)=6yslr>^;^3BK-VtZwPvZ%^+mc~qU+_lmP~mL zX5JXmipIue{;H0y)KD_zUtF`OrnY)XO1A1gU$>;Dc2UiuOBCK;Ut71Nc1i8!;!_Y- zo#;U>4rc*>I(1s>NV2((Lb!n2Lf2D7%x@q_pY0bB zv^(9mv9eiDfzichFC6}x$#Wm_y02*PK*6IE!mG%@C+KRKcEBWh1&^!6$+g5?jjh4j58@2IMtocQN%S!@Ff~! z-DAi4P;mZdAnoY~bAkUcpoM28bQH|}Ph?>nHUlVRr)$Ajv>s}sQmwlcZ zZh|(~$2VCn}iU_!G+W~l~=NjU7-VZq7IZJpK=TBIaUWXo^ z0HRDDo&5R@+% z%Jupa(WVy&1$@#zEc&B6*3 zc8bb260A@X)r^~BTZPrkj%IWVYo+YWx(@0pt+sCh>)8ewYwboT5uREKwsU|i&l5a$ zoWjv3Tt8&vx`QMW3|rU#p0d5rV{KqR!gC?v8wgi=sLhJd$Xd^%I9k1rg1Xc*hxk6~ z4+!g5@UqJ4YyidcHzY*Y0u-JPD9|-Xb)I)=T=yQpJ`dMlEA|b*m7e<$RBI#o{i1vo zsxlrh4s;3Y4;rNnKv0V$nZaIfC|^ud2tkIHJFSGFvmc}MUcgR^9+!m4%hkbCf1L}% zc0G{7`znq$?;IFq_pXD<4)0?W@wS0j;9U*8%lm0y+}>_F50E}RQ7=3r1TAr%&(nVb zXD1d`jmW;wzO-KViRcQBmOq5$aqAu(EL8 z8`OCl!c;h4>6Cgdq8@AdNGu@=FD8o*rqf&(#R@O^JAkty;IS1m>L$(MHJruvz(S&3_C2xvd`8hwA3_s>G|m0nl_3>BlgxX!D@!V9iDTcL+vh|_AX~}c z+V=&-tl2hbo+sV%1R#P7lRN_ZKxH8eW3+7Z7%jRbot#JAa7(G4r<}Z2%(@3?TQzk( zu65m)*0nFKt6J#_E2pYYNnK6nGy1k_MqdU%c2upLKmcSotCbUvY9|)FEuB~+{CCia zLQZv$W3Rtcb^0NwPQjB^r>TAnCezeFVL)=2e0V-s>`wt@pT87Got*LsJLI3lI8_eo zRB5PFrJ+uh%Gy;ndNsvWHoB4$DjRjGY}Bc;QK*qQuu4krqJ&CH2^Ls(m6ZMf4VQIX zDPdv*>1W8RveJzNRaVM1-5w=J@*qK#mC|7QAP&x#Xp~!LrGLRVsH}89(73K*!WGOt zK#&eHEA_C~1~3-x1K@@kXIbA%QP*XItW;LYK7^&RQW+qyhCwbO&lH!n1(nO%g=6t? zaH<4VT66Wcft)-+Jp`&rP>T_N>k%3-%q3D-DnVsPEK4P*ZvySJRDw#l(ozX3VZWsk z)Sm*b5^kNK{uPy~1XbpTmP$}xBid34>IZ;*mP$~kp|eU$C8&!5`z@8AwgRrQRD#N& z)>yJV6}-lTJ|CkxWqQ>6u$6 zs9&cRm7rcpEtX19IY5@B5>$rMC+sRgeGL3=ouG0-vQ&b~euSkGRKk@OPkbvvBWo>{ zpfcZEYN-U3`UAqP6V%UuVyOgGrY4q3P^D^1C8*5ad={2SB&ZJnuC(q$P_2#R_lxos zsLFW2IM5}RMV+NQ*{Ma6%wRL8m6Y4k6he@p%#)K1(I2zXn`sy$wdso{s?gEtR0oMh8exY2p(=m&pU8 zQ^uPMW$ZHpa;bHJzPT(~Q2t_Ch!C(0n9E|$EYE)StCXhofy~sooMuQ85X@sGKkZTc z40jnXupl#+byF-?`6I!z^vD37P9vwX11Rum`^AQ&g(bBut_OI+5|XsA4-;4*G-WFAs*IeAnbQm{<& zqnnq3@{q@6x#3|UyDj4EbJAYd)eC@}@;ZVerpP;FQ`8-@V%`>W4K4$wG+WJ+%Dgkl*<@W)r1jKdg%Yan^;@bWWV3mNlZsXNmB_OVy z6);pKAg*1!c87(RQ>h9pK6$7CgfKB8E-NWvnkTs!6~#pebiVmjsF;=+CTXcuB?CcE z!5J}R8n1NlzLQUrKTk4Y=08521Th&aREB(wbQ($@mAIDtAt^rwg&t>7UISt(eV16+ z@LRG{34@?mDF_O0&`An&9z`Jp$`VwCoM|p=7C@K92_O>?*Zww%xE4n#I|x9@-VXj! zy?D6G{|fjr?#|rPIOzdnYv!&XtQQY=C1u@mkL#ZK7GR58Kld!jZ@msq_iV{;ant8M z{{S#PrE?DPl}e|duwU4z$bG@rs8jB7-SaMhI*YqD_k5*O>bZz|tTHY(?u*HSTVxi^ zwNuP}3Ga`T-w)8{Vc5(f5e3X*d*BwxOyjl2=HZBAjhXg{Y*86DgB4w=jaUz5l*@OJ zGL4G(egVrX@<>HYv6P}|S&F8Sz|FGDVpz)CsAE2L@X39aUGhjBAEkB7&(blU1f`=2 zkg!d)%`Yh{a+J(0nQAL_`|z`ueV!;P`Ycdbnl*?8)aeDbxeQyPiv%lIg>aNCEBds= zxk+U7Y>twmB4TY|@f4?7mV#Pnvo)6yUo;mQ763ElGO4O~nz$H01C=7(u{mc^R@0BB4k4*|$09Sz znWHg2Mg=PNE;Byv>_M=`O{dEqGYExd5Q@|wOi_bStVZ|$$+7seBat2J+>w}MNdK({ zMGZlrihWV;c`(JC2gRA^K}q&`;2l2?eCj-yYR-dFPOh@?$<29CK8eTjyvd%#72~rO zdggM;7jH2#whv2+apa{-;Lo-ol^9vjKh!;t>WM8F8SWNY2)r;HS+YpKJ={B#TF}*> zO#E+H5?d2OB$DxwSR@e}+0@@1i|}pInr`$cl3RykiJCrkZ9pu$2E+oH>>rGQPNaf> z!|SU`B$`V0DM)IRYO;C)Q5KKg+|G0q+upNZQBiNdxb&@^J9~HTv|l;Ry573Neq}|y z_265;0Aa5{NN$utIt}@MuORiu{>{T=5`9OJ?XY9P8`f*7AN;Mg0O6@C`#6Uy?eoBA zt+&>H4B!UqD(j|qcmBX$hzK)_wTl=2-J;Do^)H%{ne%XxIcL%fhsXB5_3f1PW@>%? zd)BwV4#4_4n+C(C{em*&$9TWlrnJ?GXkTO`wh_5Zp9preha<~_%`KrOqVXE{CccT? zwx%(HzXnn|+CqHaJC%ra$A@|n5&h0KUdv8OzV_x-p{CZ3cEMK{B2qhlf|Rd$FRTaq zKzyjzFAu4qM1Sv4tOsv7Bt>s5If!TcqrEXDG!)yC#H$T>i98Y?7V&6gAU4#S>=Rw_ z_yDxf(hODd9r6ftP_cY-975*x2)rmB>51Vr^7vM0%XDf@TkDE-p|-WFn%Axhwl{`J zPIV3Rchj7q)S$K~0h35k+OeUDG=&;ln?fpHtyh7Vh$V;PiR6%sL1S=r``XazCfQ&g z9jozTNpp*63q>~fZKXFG2cnzs!aAeHU^TWhhgP@CwP#y=D8?@z_#5l$avomsR}Usr zL$ND*V?(i#{%$m*Bi(&hsLw0-t9$*`8|91m)x#t4WUL!&VKu!*L@=0}q67Us9L-2X zy>lOfgNP(-!prkRaYl&?UE1i?t?g~070qkgLv5H2iN5$q(w{YCa<()Cn-Ia}f>BxC z778I2h#kgbVLib9A$$QMCX(ACgZL6eGM3nkaZq7{U?UYH!H?h*0bF)rVmf{*!oju` zYmGsT8BxT{NT~P!hAOkBQY6wH?ZF2Sk|MbY)1w=@m8}t+I2e@y zfpcg?I@e4qR-lWu94IqYF&<{FO4F4W=@IDei>i+)Q0s!e_+V^7FZ^4uIX-ezVmR6z zThP?cPbYLC>^;@EIwoU-i3NCzsGiqbd?O*_O6jlajt_6WL>jZUJ=hXz3pR#>tD9Ov zdfa(_Vb*p<6ZkGeriI%)+&YDCYrWyjQ6=Tpju#&NP^}1k7a}!2mjXZ6*24&2bU{h0@ zY?C?E*4Eml#M(kDLyherbuz?U2Vf_(Vky&$EH9Y+gD4seA2uoMo$&HrZE` zg14xM6GfleLXGQW-|bi~WY?tV^_r(|7tT@1&2*8;j?^HsiyU3*B8a1& zg>~bMK;ldV1uBQ*Lzr&yt{aC{cJ*hE4&-)A?STnA{L)8zUc5sj^WvT9=Snk`Iq;O} zi+TB7!aR4H&F>bkIs=&~2|IA_!aV1hNp#?=N#=RcYoTroTs&&0i|2%JT7-rJw)J<}Xh__nVEM zCir=Y+~N=w`2JEp{B&Wy%aSSM;8VZ;eEc)Sj=cEu#6x-UGc(nuVTXD=A>B5BL(Dc{ zR_ze_<55{y+)fevEox$M2>%2ma$4M-{_R*UVG0m7{Gyi|H{3wMSy3YP=FA6rMEr>y ze2vEEKKI=u^^eDgcCf6)pAB!%ndi495{GU0qki)oxxs${fK5!C58nhnpI?V1{|sTC zPVi|(&rHJqPm|y$i`%cI{!&pnEdXe|dVDBd6VF;kob}b zPY;DA;qRFQe+%&RH#ZKW!25HJL3=;&Q|&XvojL2tH;IQPv#vU|?Dv4r=hu%VzC`dd zK`b$O#LPi_e0Y1}(H#A^YyM7sUSF#Df2sBRa?W=?X2J0?8_THX{}b@kpF6%DhvLuu zjjcrDwQxptG4TG3wgKfc5opxr*mI56Z*H!%YJnRj(LW444o&;HjL*dDFCV&K+|1n#^E0OC9!VyWsf`=4^^ZhWHnv4tu&s(jkT8$L zdXc5auuT}m?J8{j65!~GM|ub1T~TaXk)59T+QP`XBP&{38-gv7*5%9B zhT0?T!G@L)dywCS>rSMk`+p`0l^>VO{9arjV7?H?@4`iz+gD+0V@9NXRU^lv9iLsm zo;ilCb5!b9K4+w?xnI8<*Sbgw@C$h3IQFDIkC%;O&Z|F>mrc<989!xo0)y$xO)1BxR+C(?34Eia@D1y%^{NxVsn_yl$F0n zB3+4u?tlEVed?=y*#d;0A};cIa4P;L6}X5L@;=I0%q<< z)DY(#V6bK1@5!Fpbwbo6whktvU8s{Is_ruo0uUP+7Bxe->rxYJXs%91dvyypuWPze z{rD6n?s3$x)fdH$wwj);L(r${W(;G)K ziMwT@hNnN6;&QIm#QO9J-`4{rrlmyHnXe=ad}BA*&`op@_rIu?>Ve_JufZ6K8mvKb zH&@dW>q_-PE;`hUG1ATcp^b3^N4vU4Vw+4$-UHHHh*`!8`>z9;r{YqFTv8RY?^~)7 z=6yj;mb?aLeIfqv^hjFX><{^?Jd0l*#}DRuY%rJ&S@LEdnbh+045O}d<(q)Vr!(Tl z{{8lVHLI*f3%|>x?Kk_<7q$Ev1_uSd`AXl7JTgUD*5QatRa)Nc zUn{kt<~>Qpt#lZe^$qyrJBr4Bv(M#g5G*GC1*)0u$MD|-Jl}aVZL=Rfr{#_Rx%O*y zavwofBX9Q2Rk}mtr|Cb}|2rT{`39{pP!Nz%KnwVF{Me+fT={!|BMa?g>2w8jEvxkV ztE#2?GBE2={AJ4T(DMADpXG$A(nqtuG4+>0$&_E?4oKcLoYW}BUe%h|{u&6G@+L3r z)bjYHB&(Qy4e~&aym_y;XR6}BBluZ`vCb^tLWBLA@iTevu$B*ym{D@&zYAKXy!rmI z`7UxYLzZB!{LvhFbAO_$ObPxjr~lk|{s?S%;z6E6lrZ}>^PS{e{@nJ@A>+-EH~ZvD zeJdcBKezolWN9MLVHUH$_kT?Jw;;o*X5`KN6Z0MG6WV_>zfJ#U9_)u~X8-0s%Q=0^ z!tjGl7SlHM{{S{qUido|qhD29RFys&Ia8klB~yNfmfzu5BDzuy9F5%u@eu&(GX9%= z!b5(=Vfs-m)t7-;JJ31%ugydPHu8&d@Z@DNH6MU8u%f8rD}Gh)%|rsu<()Z+e9v4Z z_&67>jFKyV@g(xzWlE?n=Y+|XUp$F?;Im5pK@(VQL#}*K%jd@LpMy%^2{Z9>)?yfQpQ7L}tk` GNBl3E)|>+X diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_client.c b/lab2_pruebas/rpc_store_service (copy)/store_service_client.c deleted file mode 100644 index a993fae..0000000 --- a/lab2_pruebas/rpc_store_service (copy)/store_service_client.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - - -void -store_service_1(char *host) -{ - CLIENT *clnt; - /* - enum clnt_stat retval_1; - void *result_1; - enum clnt_stat retval_2; - int result_2; - char *store_1_sender; - char *store_1_receiver; - u_int store_1_msg_id; - char *store_1_msg; - char *store_1_md5; - enum clnt_stat retval_3; - int result_3; - char *getnummessages_1_user; - enum clnt_stat retval_4; - response result_4; - char *getmessage_1_user; - u_int getmessage_1_msg_id; - -#ifndef DEBUG - clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror (host); - exit (1); - } -#endif *//* DEBUG */ - /* - retval_1 = init_1(&result_1, clnt); - if (retval_1 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_2 = store_1(store_1_sender, store_1_receiver, store_1_msg_id, store_1_msg, store_1_md5, &result_2, clnt); - if (retval_2 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_3 = getnummessages_1(getnummessages_1_user, &result_3, clnt); - if (retval_3 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } - retval_4 = getmessage_1(getmessage_1_user, getmessage_1_msg_id, &result_4, clnt); - if (retval_4 != RPC_SUCCESS) { - clnt_perror (clnt, "call failed"); - } -#ifndef DEBUG - clnt_destroy (clnt); -#endif *//* DEBUG */ - clnt = clnt_create (host, STORE_SERVICE, STORE_VERSION, "tcp"); - if (clnt == NULL) { - clnt_pcreateerror (host); - exit (1); - } - int result; - init_1(&result, clnt); - printf("Result of init: %d\n",result); - store_1("sender1", "receiver1", 1, "blablabla", "blablamd5", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver2", 2, "blablabla2", "blablamd52", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 1, "blablabla11", "blablamd511", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 2, "blablabla22", "blablamd522", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender2", "receiver1", 3, "blablabla22", "blablamd533", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 3, "blablabla3", "blablamd53", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 4, "blablabla4", "blablamd54", &result, clnt); - printf("Result of the send: %d\n", result); - store_1("sender1", "receiver1", 5, "blablabla5", "blablamd55", &result, clnt); - printf("Result of the send: %d\n", result); - - response res; - getmessage_1("sender1", 1, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender2", 2, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender1", 4, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender3", 1, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Length msg: %d\n", strleng(res.msg)); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - getmessage_1("sender1", 6, &res, &result, clnt); - printf("Result of the receive: %d\n", result); - printf("Length msg: %d\n", strleng(res.msg)); - printf("Mess: %s\n", res.msg); - printf("MD5: %s\n", res.md5); - - - - - - clnt_destroy (clnt); -} - - -int -main (int argc, char *argv[]) -{ - char *host; - /* - if (argc < 2) { - printf ("usage: %s server_host\n", argv[0]); - exit (1); - } - */ - host = "127.0.0.1"; - store_service_1 (host); -exit (0); -} diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_clnt.c b/lab2_pruebas/rpc_store_service (copy)/store_service_clnt.c deleted file mode 100644 index 20c4bc7..0000000 --- a/lab2_pruebas/rpc_store_service (copy)/store_service_clnt.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include /* for memset */ -#include "store_service.h" - -/* Default timeout can be changed using clnt_control() */ -static struct timeval TIMEOUT = { 25, 0 }; - -enum clnt_stat -init_1(void *clnt_res, CLIENT *clnt) -{ - return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, - (xdrproc_t) xdr_void, (caddr_t) clnt_res, - TIMEOUT)); - -} - -enum clnt_stat -store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) -{ - store_1_argument arg; - arg.sender = sender; - arg.receiver = receiver; - arg.msg_id = msg_id; - arg.msg = msg; - arg.md5 = md5; - return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} - -enum clnt_stat -getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) -{ - return (clnt_call(clnt, getNumMessages, - (xdrproc_t) xdr_wrapstring, (caddr_t) &user, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} - -enum clnt_stat -getmessage_1(char *user, u_int msg_id, response *res, int *clnt_res, CLIENT *clnt) -{ - getmessage_1_argument arg; - arg.user = user; - arg.msg_id = msg_id; - arg.res = res; - return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_server b/lab2_pruebas/rpc_store_service (copy)/store_service_server deleted file mode 100755 index d9ce0ed54c417b4158cdeb5c0b4574c898c382bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29184 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 diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_server.c b/lab2_pruebas/rpc_store_service (copy)/store_service_server.c deleted file mode 100644 index 6bf8516..0000000 --- a/lab2_pruebas/rpc_store_service (copy)/store_service_server.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - -/* Define the structure of the message list */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* Initialize the lists to NULL */ - usr_head = NULL; - //usr_head->next = NULL; - //usr_head->sent_msgs_head = NULL; - - return retval; -} - -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - // printf("sender: %s\n", sender); - // printf("receiver: %s\n", receiver); - // printf("msg_id: %d\n", msg_id); - // printf("msg: %s\n", msg); - // printf("md5: %s\n", md5); - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - printf("name: %s\n", temp->name); - if(strcmp(temp->name, sender) == 0){ //User found in the list - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - //if(*result == -1) return retval; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->name, sender); - temp->next = NULL; - temp->sent_msgs_head = NULL; - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *res, int *result, struct svc_req *rqstp) -{ - //result = (response *) malloc(sizeof(response)); - bool_t retval = TRUE; - - struct user *temp = usr_head; - struct msg *msg_temp; - printf("he1\n"); - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - printf("he1\n"); - /* Search for the message with that ID */ - msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - printf("hey2\n"); - printf("Message id: %d\n", msg_temp->id); - if(msg_temp->id == msg_id){ //Message ID found - printf("hey3\n"); - strncpy(res->msg, msg_temp->body, strlen(msg_temp->body)+1); - strncpy(res->md5, msg_temp->md5, strlen(msg_temp->md5)+1); - //res->msg = msg_temp->body; - //res->md5 = malloc(sizeof(msg_temp->md5)); - //res->md5 = msg_temp->md5; - printf("MEssage body: %s\n", msg_temp->body); - printf("MEssage body check: %s\n", res->msg); - printf("MEssage md5: %s\n", msg_temp->md5); - printf("hey4\n"); - //strncpy(res->md5, msg_temp->md5, strlen(msg_temp->md5)+1); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - printf("hey\n"); - res = NULL; - printf("hey\n"); - return retval; - } - temp = temp->next; - } - res = NULL; //User was not found, thus message does not exist - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - /* - * Insert additional freeing code here, if needed - */ - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - // if (*msg_head == NULL){ /* Queue is empty */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - // else{ - // /* If the queue is not empty, append it to the beginning */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - - return 0; -} diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_svc.c b/lab2_pruebas/rpc_store_service (copy)/store_service_svc.c deleted file mode 100644 index 4d78591..0000000 --- a/lab2_pruebas/rpc_store_service (copy)/store_service_svc.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "store_service.h" -#include -#include -#include -#include -#include -#include -#include - -#ifndef SIG_PF -#define SIG_PF void(*)(int) -#endif - -int -_init_1 (void *argp, void *result, struct svc_req *rqstp) -{ - return (init_1_svc(result, rqstp)); -} - -int -_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) -{ - return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); -} - -int -_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) -{ - return (getnummessages_1_svc(*argp, result, rqstp)); -} - -int -_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) -{ - return (getmessage_1_svc(argp->user, argp->msg_id, argp->res, result, rqstp)); -} - -static void -store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) -{ - union { - store_1_argument store_1_arg; - char *getnummessages_1_arg; - getmessage_1_argument getmessage_1_arg; - } argument; - union { - int store_1_res; - int getnummessages_1_res; - int getmessage_1_res; - } result; - bool_t retval; - xdrproc_t _xdr_argument, _xdr_result; - bool_t (*local)(char *, void *, struct svc_req *); - - switch (rqstp->rq_proc) { - case NULLPROC: - (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); - return; - - case init: - _xdr_argument = (xdrproc_t) xdr_void; - _xdr_result = (xdrproc_t) xdr_void; - local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; - break; - - case store: - _xdr_argument = (xdrproc_t) xdr_store_1_argument; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; - break; - - case getNumMessages: - _xdr_argument = (xdrproc_t) xdr_wrapstring; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; - break; - - case getMessage: - _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; - break; - - default: - svcerr_noproc (transp); - return; - } - memset ((char *)&argument, 0, sizeof (argument)); - if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - svcerr_decode (transp); - return; - } - retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); - if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { - svcerr_systemerr (transp); - } - if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - fprintf (stderr, "%s", "unable to free arguments"); - exit (1); - } - if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) - fprintf (stderr, "%s", "unable to free results"); - - return; -} - -int -main (int argc, char **argv) -{ - register SVCXPRT *transp; - - pmap_unset (STORE_SERVICE, STORE_VERSION); - - transp = svcudp_create(RPC_ANYSOCK); - if (transp == NULL) { - fprintf (stderr, "%s", "cannot create udp service."); - exit(1); - } - if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { - fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); - exit(1); - } - - transp = svctcp_create(RPC_ANYSOCK, 0, 0); - if (transp == NULL) { - fprintf (stderr, "%s", "cannot create tcp service."); - exit(1); - } - if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { - fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); - exit(1); - } - - svc_run (); - fprintf (stderr, "%s", "svc_run returned"); - exit (1); - /* NOTREACHED */ -} diff --git a/lab2_pruebas/rpc_store_service (copy)/store_service_xdr.c b/lab2_pruebas/rpc_store_service (copy)/store_service_xdr.c deleted file mode 100644 index e75dc70..0000000 --- a/lab2_pruebas/rpc_store_service (copy)/store_service_xdr.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "store_service.h" - -bool_t -xdr_response (XDR *xdrs, response *objp) -{ - register int32_t *buf; - - if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) - return FALSE; - return TRUE; -} - -bool_t -xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) -{ - if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->msg_id)) - return FALSE; - if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) - return FALSE; - return TRUE; -} - -bool_t -xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) -{ - if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->msg_id)) - return FALSE; - if (!xdr_pointer (xdrs, (char **)&objp->res, sizeof (response), (xdrproc_t) xdr_response)) - return FALSE; - return TRUE; -} diff --git a/lab2_pruebas/rpc_store_service/segurodevida.c b/lab2_pruebas/rpc_store_service/segurodevida.c deleted file mode 100644 index 601ff5b..0000000 --- a/lab2_pruebas/rpc_store_service/segurodevida.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - -/* Define the structure of the message list */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct msg * msg_head; -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* Initialize the lists to NULL */ - usr_head = NULL; - usr_head->next = NULL; - usr_head->sent_msgs_head = NULL; - - return retval; -} - -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - printf("1\n"); - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - printf("2\n"); - if(strcmp(temp->name, sender) == 0){ //User found in the list - printf("3\n"); - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("4\n"); - if(*result == -1) return retval; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->name, sender); - printf("5\n"); - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("6\n"); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - if(msg_temp->id == msg_id){ //Message ID found - strcpy(result->msg, msg_temp->body); - strcpy(result->md5, msg_temp->md5); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - result = NULL; - return retval; - } - temp = temp->next; - } - result = NULL; //User was not found, thus message does not exist - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - /* - * Insert additional freeing code here, if needed - */ - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - // if (*msg_head == NULL){ /* Queue is empty */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - // else{ - // /* If the queue is not empty, append it to the beginning */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - - return 0; -} diff --git a/lab2_pruebas/rpc_store_service/store_service.h b/lab2_pruebas/rpc_store_service/store_service.h deleted file mode 100644 index 25dff07..0000000 --- a/lab2_pruebas/rpc_store_service/store_service.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#ifndef _STORE_SERVICE_H_RPCGEN -#define _STORE_SERVICE_H_RPCGEN - -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define MAX_SIZE 256 -#define MAX_MD5 33 - -struct response { - char *msg; - char *md5; -}; -typedef struct response response; - -struct store_1_argument { - char *sender; - char *receiver; - u_int msg_id; - char *msg; - char *md5; -}; -typedef struct store_1_argument store_1_argument; - -struct getmessage_1_argument { - char *user; - u_int msg_id; -}; -typedef struct getmessage_1_argument getmessage_1_argument; - -#define STORE_SERVICE 666 -#define STORE_VERSION 1 - -#if defined(__STDC__) || defined(__cplusplus) -#define init 1 -extern enum clnt_stat init_1(void *, CLIENT *); -extern bool_t init_1_svc(void *, struct svc_req *); -#define store 2 -extern enum clnt_stat store_1(char *, char *, u_int , char *, char *, int *, CLIENT *); -extern bool_t store_1_svc(char *, char *, u_int , char *, char *, int *, struct svc_req *); -#define getNumMessages 3 -extern enum clnt_stat getnummessages_1(char *, int *, CLIENT *); -extern bool_t getnummessages_1_svc(char *, int *, struct svc_req *); -#define getMessage 4 -extern enum clnt_stat getmessage_1(char *, u_int , response *, CLIENT *); -extern bool_t getmessage_1_svc(char *, u_int , response *, struct svc_req *); -extern int store_service_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); - -#else /* K&R C */ -#define init 1 -extern enum clnt_stat init_1(); -extern bool_t init_1_svc(); -#define store 2 -extern enum clnt_stat store_1(); -extern bool_t store_1_svc(); -#define getNumMessages 3 -extern enum clnt_stat getnummessages_1(); -extern bool_t getnummessages_1_svc(); -#define getMessage 4 -extern enum clnt_stat getmessage_1(); -extern bool_t getmessage_1_svc(); -extern int store_service_1_freeresult (); -#endif /* K&R C */ - -/* the xdr functions */ - -#if defined(__STDC__) || defined(__cplusplus) -extern bool_t xdr_response (XDR *, response*); -extern bool_t xdr_store_1_argument (XDR *, store_1_argument*); -extern bool_t xdr_getmessage_1_argument (XDR *, getmessage_1_argument*); - -#else /* K&R C */ -extern bool_t xdr_response (); -extern bool_t xdr_store_1_argument (); -extern bool_t xdr_getmessage_1_argument (); - -#endif /* K&R C */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_STORE_SERVICE_H_RPCGEN */ diff --git a/lab2_pruebas/rpc_store_service/store_service.x b/lab2_pruebas/rpc_store_service/store_service.x deleted file mode 100644 index e5a8648..0000000 --- a/lab2_pruebas/rpc_store_service/store_service.x +++ /dev/null @@ -1,17 +0,0 @@ -const MAX_SIZE = 256; -const MAX_MD5 = 33; - -struct response{ - string msg; - string md5; -}; - -program STORE_SERVICE{ - version STORE_VERSION{ - void init() = 1; - int store(string sender, string receiver, - unsigned int msg_id, string msg, string md5) = 2; - int getNumMessages(string user) = 3; - response getMessage(string user, unsigned int msg_id) = 4; - } = 1; -} = 666; \ No newline at end of file diff --git a/lab2_pruebas/rpc_store_service/store_service_clnt.c b/lab2_pruebas/rpc_store_service/store_service_clnt.c deleted file mode 100644 index 91d8293..0000000 --- a/lab2_pruebas/rpc_store_service/store_service_clnt.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include /* for memset */ -#include "store_service.h" - -/* Default timeout can be changed using clnt_control() */ -static struct timeval TIMEOUT = { 25, 0 }; - -enum clnt_stat -init_1(void *clnt_res, CLIENT *clnt) -{ - return (clnt_call (clnt, init, (xdrproc_t) xdr_void, (caddr_t) NULL, - (xdrproc_t) xdr_void, (caddr_t) clnt_res, - TIMEOUT)); - -} - -enum clnt_stat -store_1(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *clnt_res, CLIENT *clnt) -{ - store_1_argument arg; - arg.sender = sender; - arg.receiver = receiver; - arg.msg_id = msg_id; - arg.msg = msg; - arg.md5 = md5; - return (clnt_call (clnt, store, (xdrproc_t) xdr_store_1_argument, (caddr_t) &arg, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} - -enum clnt_stat -getnummessages_1(char *user, int *clnt_res, CLIENT *clnt) -{ - return (clnt_call(clnt, getNumMessages, - (xdrproc_t) xdr_wrapstring, (caddr_t) &user, - (xdrproc_t) xdr_int, (caddr_t) clnt_res, - TIMEOUT)); -} - -enum clnt_stat -getmessage_1(char *user, u_int msg_id, response *clnt_res, CLIENT *clnt) -{ - getmessage_1_argument arg; - arg.user = user; - arg.msg_id = msg_id; - return (clnt_call (clnt, getMessage, (xdrproc_t) xdr_getmessage_1_argument, (caddr_t) &arg, - (xdrproc_t) xdr_response, (caddr_t) clnt_res, - TIMEOUT)); -} diff --git a/lab2_pruebas/rpc_store_service/store_service_svc.c b/lab2_pruebas/rpc_store_service/store_service_svc.c deleted file mode 100644 index 1c97888..0000000 --- a/lab2_pruebas/rpc_store_service/store_service_svc.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "store_service.h" -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef SIG_PF -#define SIG_PF void(*)(int) -#endif - -int -_init_1 (void *argp, void *result, struct svc_req *rqstp) -{ - return (init_1_svc(result, rqstp)); -} - -int -_store_1 (store_1_argument *argp, void *result, struct svc_req *rqstp) -{ - return (store_1_svc(argp->sender, argp->receiver, argp->msg_id, argp->msg, argp->md5, result, rqstp)); -} - -int -_getnummessages_1 (char * *argp, void *result, struct svc_req *rqstp) -{ - return (getnummessages_1_svc(*argp, result, rqstp)); -} - -int -_getmessage_1 (getmessage_1_argument *argp, void *result, struct svc_req *rqstp) -{ - return (getmessage_1_svc(argp->user, argp->msg_id, result, rqstp)); -} - -static void -store_service_1(struct svc_req *rqstp, register SVCXPRT *transp) -{ - union { - store_1_argument store_1_arg; - char *getnummessages_1_arg; - getmessage_1_argument getmessage_1_arg; - } argument; - union { - int store_1_res; - int getnummessages_1_res; - response getmessage_1_res; - } result; - bool_t retval; - xdrproc_t _xdr_argument, _xdr_result; - bool_t (*local)(char *, void *, struct svc_req *); - - switch (rqstp->rq_proc) { - case NULLPROC: - (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); - return; - - case init: - _xdr_argument = (xdrproc_t) xdr_void; - _xdr_result = (xdrproc_t) xdr_void; - local = (bool_t (*) (char *, void *, struct svc_req *))_init_1; - break; - - case store: - _xdr_argument = (xdrproc_t) xdr_store_1_argument; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_store_1; - break; - - case getNumMessages: - _xdr_argument = (xdrproc_t) xdr_wrapstring; - _xdr_result = (xdrproc_t) xdr_int; - local = (bool_t (*) (char *, void *, struct svc_req *))_getnummessages_1; - break; - - case getMessage: - _xdr_argument = (xdrproc_t) xdr_getmessage_1_argument; - _xdr_result = (xdrproc_t) xdr_response; - local = (bool_t (*) (char *, void *, struct svc_req *))_getmessage_1; - break; - - default: - svcerr_noproc (transp); - return; - } - memset ((char *)&argument, 0, sizeof (argument)); - if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - svcerr_decode (transp); - return; - } - retval = (bool_t) (*local)((char *)&argument, (void *)&result, rqstp); - if (retval > 0 && !svc_sendreply(transp, (xdrproc_t) _xdr_result, (char *)&result)) { - svcerr_systemerr (transp); - } - if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - fprintf (stderr, "%s", "unable to free arguments"); - exit (1); - } - if (!store_service_1_freeresult (transp, _xdr_result, (caddr_t) &result)) - fprintf (stderr, "%s", "unable to free results"); - - return; -} - -int -main (int argc, char **argv) -{ - register SVCXPRT *transp; - struct sockaddr_in service_addr; /* Struct to store the address of the server */ - - pmap_unset (STORE_SERVICE, STORE_VERSION); - - transp = svcudp_create(RPC_ANYSOCK); - if (transp == NULL) { - fprintf (stderr, "%s", "cannot create udp service."); - exit(1); - } - if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_UDP)) { - fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, udp)."); - exit(1); - } - - transp = svctcp_create(RPC_ANYSOCK, 0, 0); - if (transp == NULL) { - fprintf (stderr, "%s", "cannot create tcp service."); - exit(1); - } - if (!svc_register(transp, STORE_SERVICE, STORE_VERSION, store_service_1, IPPROTO_TCP)) { - fprintf (stderr, "%s", "unable to register (STORE_SERVICE, STORE_VERSION, tcp)."); - exit(1); - } - /* Get the machine's IP address */ - get_myaddress(&service_addr); - char * ip = inet_ntoa(service_addr.sin_addr); - /* If the address could not be obtained (no network connection), then print error and exit */ - if(strlen(ip) == 0){ - fprintf (stderr, "%s", "cannot get the IP address of the service."); - exit(1); - } - printf("Store service running at: %s\n", ip); - /* Self-invoke the init process when starting the server */ - init_1_svc(NULL, NULL); - svc_run (); - fprintf (stderr, "%s", "svc_run returned"); - exit (1); - /* NOTREACHED */ -} diff --git a/lab2_pruebas/rpc_store_service/store_service_xdr.c b/lab2_pruebas/rpc_store_service/store_service_xdr.c deleted file mode 100644 index 2f68608..0000000 --- a/lab2_pruebas/rpc_store_service/store_service_xdr.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "store_service.h" - -bool_t -xdr_response (XDR *xdrs, response *objp) -{ - //register int32_t *buf; - - if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) - return FALSE; - return TRUE; -} - -bool_t -xdr_store_1_argument (XDR *xdrs, store_1_argument *objp) -{ - if (!xdr_string (xdrs, &objp->sender, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->receiver, MAX_SIZE)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->msg_id)) - return FALSE; - if (!xdr_string (xdrs, &objp->msg, MAX_SIZE)) - return FALSE; - if (!xdr_string (xdrs, &objp->md5, MAX_MD5)) - return FALSE; - return TRUE; -} - -bool_t -xdr_getmessage_1_argument (XDR *xdrs, getmessage_1_argument *objp) -{ - if (!xdr_string (xdrs, &objp->user, MAX_SIZE)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->msg_id)) - return FALSE; - return TRUE; -} diff --git a/lab2_pruebas/segurodevida.c b/lab2_pruebas/segurodevida.c deleted file mode 100644 index 601ff5b..0000000 --- a/lab2_pruebas/segurodevida.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This is sample code generated by rpcgen. - * These are only templates and you can use them - * as a guideline for developing your own functions. - */ - -#include "store_service.h" - -/* Define the structure of the message list */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; - -struct user{ - char name[MAX_SIZE]; - unsigned long num_msgs; - struct user *next; - struct msg *sent_msgs_head; -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct msg * msg_head; -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* Initialize the lists to NULL */ - usr_head = NULL; - usr_head->next = NULL; - usr_head->sent_msgs_head = NULL; - - return retval; -} - -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - printf("1\n"); - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - printf("2\n"); - if(strcmp(temp->name, sender) == 0){ //User found in the list - printf("3\n"); - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("4\n"); - if(*result == -1) return retval; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->name, sender); - printf("5\n"); - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - printf("6\n"); - if(*result == -1) return retval; - temp->num_msgs = 1; /* Set the message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - *result = *result + 1; - msg_temp = msg_temp->next; - } - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - struct msg *msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - if(msg_temp->id == msg_id){ //Message ID found - strcpy(result->msg, msg_temp->body); - strcpy(result->md5, msg_temp->md5); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - result = NULL; - return retval; - } - temp = temp->next; - } - result = NULL; //User was not found, thus message does not exist - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - /* - * Insert additional freeing code here, if needed - */ - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - // if (*msg_head == NULL){ /* Queue is empty */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - // else{ - // /* If the queue is not empty, append it to the beginning */ - // temp->next = *msg_head; - // *msg_head = temp; - // } - - return 0; -} diff --git a/lab2_pruebas/server.c b/lab2_pruebas/server.c deleted file mode 100644 index 5219e8c..0000000 --- a/lab2_pruebas/server.c +++ /dev/null @@ -1,682 +0,0 @@ -#include /* For addresses in PF_INET */ -#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ -#include -#include /* To use ifreq */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "lists/read_line.h" -#include "lists/user_list.h" -#include "lists/msg_list.h" -#include "server.h" -#include "rpc_store_service/store_service.h" - -/* Handler for interrupts */ -void interruptHandler(int sig){ - printf("[SERVER]: Handling interrupt. Closing server socket...\n"); - /* Close the server socket and exit with the resulting return value. 0 if OK, -1 if error */ - exit(close(s_server)); -} - -int main(int argc, char * argv[]){ - struct sockaddr_in server_addr, client_addr; - int sc; - int val; - int server_port; - - /* Check command */ - if(argc != 5 || strcmp(argv[1],"-p") != 0){ - printf("Usage: ./server -p -s \n"); - exit(-1); - } - - /* Check if the port number passed as parameter is valid */ - server_port = atoi(argv[2]); - if ((server_port < 1024) || (server_port > 65535)) { - printf("Error: Port must be in the range 1024 <= port <= 65535\n"); - exit(-1); - } - - /* Store the IP of the storage service */ - store_service_ip = argv[4]; - - /* Initialize mutexes */ - if(pthread_mutex_init(&socket_mtx, NULL) != 0) { - printf("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_mutex_init(&list_mtx, NULL) != 0) { - printf("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - /* Initialize condition variable for copying the socket descriptor in the thread */ - if(pthread_cond_init(&free_socket, NULL) != 0) { - printf("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - - /* Prepare thread conditions */ - thread = (pthread_t) malloc((sizeof(thread))); - pthread_attr_init(&thread_att); - pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); - - s_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ - if(s_server == -1){ - printf("Error when creating the socket"); - exit(-1); - } - - /* Obtain the IP address attached to interface eth0 */ - struct ifreq ifr; - ifr.ifr_addr.sa_family = AF_INET; - strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1); - ioctl(s_server, SIOCGIFADDR, &ifr); - - val = 1; - setsockopt(s_server, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ - - /* Initialize the address that will be attached to the listening socket */ - bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ - server_addr.sin_family = AF_INET; - server_addr.sin_addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; /* Listens to IP address in eth0 interface*/ - server_addr.sin_port = htons(server_port); /* Port number */ - - /* Bind the address to the listening socket */ - if((bind(s_server, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ - printf("Error when binding the address to the socket"); - exit(-1); - } - - /* Set the socket to listen incoming requests */ - if(listen(s_server, 5) == -1){ - printf("Error when listening to the socket"); - exit(-1); - } /* Backlog is 5, maximum number of queued requests is 5 */ - - /* Once the server is listening, print inicial prompt */ - printf("s> init server %s:%d\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), - ntohs(server_addr.sin_port)); - - /* Define the variable for the client address size. It should be declared - as variable because the size depends on the incoming request and is an - output parameter of the 'accept' function */ - socklen_t cl_addr_size = sizeof(client_addr); - - /* Set the control variable to TRUE so that the listening thread waits - until the thread stores a local copy of the socket descriptor */ - busy_socket = TRUE; - - /**********************************/ - /* Initialize the storage service */ - CLIENT *clnt; - /* Create connection with the storage service */ - clnt = clnt_create (store_service_ip, STORE_SERVICE, STORE_VERSION, "tcp"); - /* If error, the service is unavailable. Show error and exit */ - if (clnt == NULL) { - fprintf(stderr, "ERROR, STORAGE SERVICE UNAVAILABLE"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - } - else{ - init_1(NULL, clnt); - clnt_destroy (clnt); - } - /**********************************/ - signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ - fprintf(stderr, "%s", "s> "); /* Prompt */ - - - /* Loop for accepting and creating threads for each incoming request */ - while(1){ - /* Accept client connections. If error, shut down the server */ - sc = accept(s_server, (struct sockaddr *) &client_addr, &cl_addr_size); - if(sc == -1){ - printf("Error when accepting the connection"); - /* Close listening server socket */ - close(s_server); - exit(-1); - } - /* Once accepted, create a thread to handle the request. If error, shut down the server */ - if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { - printf("[SERVER]: Error when creating the thread"); - /* Close both listening socket and the one resulting from the accept operation */ - close(s_server); - close(sc); - exit(-1); - } - - /* Wait for the thread to copy the socket descriptor locally */ - pthread_mutex_lock(&socket_mtx); - while(busy_socket == TRUE) - pthread_cond_wait(&free_socket, &socket_mtx); - busy_socket = TRUE; - pthread_mutex_unlock(&socket_mtx); - - } - - exit(0); -} - -void * manageRequest(int *sd){ - int s_local; - char operation_buff[MAX_COMMAND]; - char user_buff[MAX_USERNAME]; - char msg_buff[MAX_MSG]; - char md5_buff[MAX_MD5]; - int n; - int m; - char out; - - /* Copy locally the socket descriptor */ - pthread_mutex_lock(&socket_mtx); - s_local = *sd; - busy_socket = FALSE; - pthread_cond_signal(&free_socket); - pthread_mutex_unlock(&socket_mtx); - - /* Read the operation. If error, close the socket and terminate the thread */ - n = readLine(s_local, operation_buff, MAX_COMMAND); - if(n == -1){ - printf("[SERVER_THREAD]: Error when reading from the socket"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Read the username and convert to uppercase. If error, close the socket - and terminate the thread */ - m = readLine(s_local, user_buff, MAX_USERNAME); - if(m == -1){ - printf("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* For convention of the server, convert every username to uppercase */ - toUpperCase(user_buff); - - /* Check the operation */ - if (strcmp(operation_buff, "REGISTER") == 0){ - /* Register the user */ - pthread_mutex_lock(&list_mtx); - out = registerUser(user_buff); - pthread_mutex_unlock(&list_mtx); - - } - else if (strcmp(operation_buff, "UNREGISTER") == 0){ - /* Unregister the user */ - pthread_mutex_lock(&list_mtx); - out = unregisterUser(user_buff); - pthread_mutex_unlock(&list_mtx); - - } - else if(strcmp(operation_buff, "CONNECT") == 0){ - - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - uint16_t client_port; - - n = readLine(s_local, msg_buff, MAX_MSG); - if(n == -1){ - printf("[SERVER_THREAD]: Error when reading from the socket"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Get the port number from the socket */ - client_port = (uint16_t) atoi(msg_buff); - /* Get the client IP address attached to the socket */ - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1){ - printf("[SERVER_THREAD]: Error when getting client address"); - /* Send error 3 to client and close socket */ - out = 3; - } - /* Connect the user to the server if no error */ - if(out != 3){ - pthread_mutex_lock(&list_mtx); - out = connectUser(user_buff, inet_ntoa(client_addr_local.sin_addr), client_port); - pthread_mutex_unlock(&list_mtx); - } - - /* If result is 0, then check for the pending messages and send them */ - if(out == 0){ - /* Send code 0 for the client to open the listening thread */ - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - /* Send Pending Messages */ - pthread_mutex_lock(&list_mtx); - struct msg **pend_msg = getPendMsgHead(user_buff); - while(*pend_msg != NULL){ - pthread_mutex_unlock(&list_mtx); - char sender[MAX_USERNAME]; - char msg_body[MAX_MSG]; - - /* Get the name of the sender, the id and the body associated to the message to be sent */ - pthread_mutex_lock(&list_mtx); - strcpy(sender, (*pend_msg)->sender); - int msg_id = (*pend_msg)->id; - strcpy(msg_body, (*pend_msg)->body); - pthread_mutex_unlock(&list_mtx); - - /* Try to send the message. The 'stored' flag is set to 1 because the message - is already stored in the server */ - int err = sendMessage(sender, user_buff, msg_body, md5_buff, msg_id, 1); - - /* If the message could not be delivered/stored, then exit the loop */ - if(err != 0) goto destroy_thread; - - /* Send acknowledge to the sender. No return value is checked */ - sendAck(sender, msg_id); - - /* Remove the message from the pending message queue and iterate with the next message */ - pthread_mutex_lock(&list_mtx); - *pend_msg = dequeueMsg(&(*pend_msg)); - } - pthread_mutex_unlock(&list_mtx); - goto destroy_thread; - } - } - else if(strcmp(operation_buff, "DISCONNECT") == 0){ - /* Get the IP from which the command is being executed */ - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1){ - printf("Error when getting client address"); - /* Send error 3 to client and close socket */ - out = 3; - goto respond_to_client; - } - /* Try to disconnect the user passing the IP from which the request is being made - as parameter to the function */ - pthread_mutex_lock(&list_mtx); - out = disconnectUser(user_buff, inet_ntoa(client_addr_local.sin_addr)); - pthread_mutex_unlock(&list_mtx); - - } - else if(strcmp(operation_buff, "SEND") == 0){ - /* Reserve a buffer for the username of the receiver */ - char dest_user_buff[MAX_USERNAME]; - - /* Read the destination user from the socket */ - m = readLine(s_local, dest_user_buff, MAX_USERNAME); - if(m == -1){ - printf("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Convert username to uppercase by convention */ - toUpperCase(dest_user_buff); - - /* Read the message from the socket */ - n = readLine(s_local, msg_buff, MAX_MSG); - if(n == -1){ - printf("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - /* Read the MD5 hash from the socket */ - m = readLine(s_local, md5_buff, MAX_MD5); - if(m == -1){ - printf("[SERVER_THREAD]: Error when reading from the socket\n"); - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - /* Check if one of the two users is not registered */ - pthread_mutex_lock(&list_mtx); - if(!isRegistered(user_buff) || !isRegistered(dest_user_buff)){ - pthread_mutex_unlock(&list_mtx); - /* Send code 1 to the client and close the socket */ - out = 1; - goto respond_to_client; - } - pthread_mutex_unlock(&list_mtx); - - /* Check the status of the destination user */ - pthread_mutex_lock(&list_mtx); - char status = isConnected(dest_user_buff); - unsigned int last_id = updateLastID(user_buff); //Update the last id of the sender message - pthread_mutex_unlock(&list_mtx); - - if(status == 0){ //Not connected - /* Store the message */ - if (storeMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id) != 0){ - /* Message could not be stored so send code 2 to the client and close the socket */ - out = 2; - goto respond_to_client; - } - /* Message was stored successfully, send code 0 and message ID to the client */ - out = 0; - ///////////////////////////////////////////// - /* Store the message in the storage server */ - storeMessage_svc(user_buff, dest_user_buff, last_id, msg_buff, md5_buff); - - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Send string with the message ID back to the sender */ - char id_string[11]; - sprintf(id_string, "%d", last_id); - if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - }else if(status == 1){ //Connected - /* Try to send the message to the receiver. We set the 'stored' flag to 0 because the message - is being sent for the first time and was not previously stored int he server */ - int err = sendMessage(user_buff, dest_user_buff, msg_buff, md5_buff, last_id, 0); - /* If while trying to store the message, the user unregisters, value 1 will be returned */ - if(err == 1){ - out = 1; - goto respond_to_client; - }else if(err == -1){ - /* If any server error occurred and the message was not stored or sent, then send code 2 - back to the client */ - out = 2; - goto respond_to_client; - } - - /* If no server error occured, then the message was either sent or stored, so we send back - the code 0 (OK) to the client */ - out = 0; - ///////////////////////////////////////////// - /* Store the message in the storage server */ - storeMessage_svc(user_buff, dest_user_buff, last_id, msg_buff, md5_buff); - - if ((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - /* Send string with the message ID back to the sender */ - char id_string[11]; - sprintf(id_string, "%d", last_id); - if((send_msg(s_local, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - /* At this point, the message is assumed to */ - sendAck(user_buff, last_id); - } - /* The response to the client is handled within this else-if statement, so the - 'respond_to_client' label is skipped and proceed to close the socket */ - goto destroy_thread; - } - - /* Default print template */ - switch(out){ - case 0: - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "OK"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - break; - default: - fprintf(stderr, "%s %s %s", operation_buff, user_buff, "FAIL"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - } - - /* Label to jump previous code to respond the client and skip the default print right above, - in case other commands (as SEND) do not use a template print */ - respond_to_client: - if((send_msg(s_local, &out, sizeof(out))) == -1){ - /* If error when sending the message, close the socket and exit */ - if(close(s_local) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - pthread_exit((void *)-1); //Terminate thread with -1 return value - } - - destroy_thread: - if(close(s_local) == -1){ - printf("[SERVER_THREAD]: Error when closing the socket in the thread"); - exit(-1); - } - pthread_exit(NULL); -} - -/* Capitalizes the input string. String is both an input and output parameter */ -void toUpperCase(char * string){ - /* Convert to uppercase */ - int i; - for(i = 0; string[i]; i++){ - string[i] = toupper(string[i]); - } -} - -/* Return 0: Message is stored OK - Return -1: Server error (Memory space error) */ -int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id){ - /* Store the message to the receiver pending list */ - pthread_mutex_lock(&list_mtx); - int err = storeMsg(receiver, msg, msg_id, md5, sender); - pthread_mutex_unlock(&list_mtx); - - /* Error when trying to store the message */ - if(err == -1) return -1; - - fprintf(stderr, "MESSAGE %d FROM %s TO %s STORED", msg_id, - sender, receiver); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - /* Return store OK */ - return 0; -} - -/* Return 0: Message is sent OK - Return 1: User did not exist when trying to store/send the message. Message not stored - Return 2: Message is stored, or not stored if was already stored - Return -1: Server error */ -int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored){ - int s_receiver; //Socket for the receiver of the message - struct sockaddr_in recv_addr; //Receiver address - struct hostent *recv_hp; //Host entity structure for the receiver - - s_receiver = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if(s_receiver == -1){ - return -1; //Send error message. -1 is internally encoded as server error - } - - bzero((char *) &recv_addr, sizeof(recv_addr)); //Reserve space for the address of the receiver - - pthread_mutex_lock(&list_mtx); - recv_hp = gethostbyname(getUserIP(receiver)); //Get the IP of the receiver - pthread_mutex_unlock(&list_mtx); - /* If error when getting the host, return -1 */ - if(recv_hp == NULL) return -1; - - memcpy(&(recv_addr.sin_addr), recv_hp->h_addr, recv_hp->h_length); //Get the IP addres in network format - recv_addr.sin_family = AF_INET; - pthread_mutex_lock(&list_mtx); - recv_addr.sin_port = htons(getUserPort(receiver)); //Get the port number of the receiver listening thread - pthread_mutex_unlock(&list_mtx); - - /* Try to connect to the listening thread of the receiver to send the message */ - if (connect(s_receiver, (struct sockaddr *) &recv_addr, sizeof(recv_addr)) == -1){ - /* If the connection with the receiver fails, assume the client - to be disconnected, disconnect it and store the message */ - pthread_mutex_lock(&list_mtx); - /* As we are internally disconnecting the user from the server, we need to bypass the - IP check, so we pass the IP of the receiver as parameter to always fulfill the condition */ - char reg = disconnectUser(receiver, getUserIP(receiver)); // No need to check for output - pthread_mutex_unlock(&list_mtx); - /* If the disconnect method returns 1, it means that the user was not found so is not - registered (it unregister while trying to store the message, so we return 1 */ - if(reg == 1){ - return 1; - } - /* If the stored parameter is set to 0, it means that the message was not prevoiusly stored by the - server so we need to push it to the end of the queue. If it was stored, then nothing is done */ - if(!stored){ - if(storeMessage(sender, receiver, msg, md5, msg_id) == -1) return -1; //Return -1 if store error - } - - if(close(s_receiver) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - /* Return 2 to indicate the message is stored but not sent */ - return 2; - } - /* Send the SEND_MESSAGE string to the receiver to detect an incoming message */ - char op[13]; - strcpy(op, "SEND_MESSAGE"); - send_msg(s_receiver, op, strlen(op)+1); - /* Send the sender name */ - send_msg(s_receiver, sender, strlen(sender)+1); - /* Send the identifier of the message */ - char id_string[11]; - sprintf(id_string, "%d", msg_id); - send_msg(s_receiver, id_string, strlen(id_string)+1); - /* Send the MD5 of the message */ - send_msg(s_receiver, md5, strlen(md5)+1); - /* Send the message */ - send_msg(s_receiver, msg, strlen(msg)+1); - - if(close(s_receiver) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - - fprintf(stderr, "SEND MESSAGE %d FROM %s TO %s", msg_id, - sender, receiver); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - - return 0; -} - -/* Tries to send acknowledge to the sender. No return value */ -void sendAck(char * sender, unsigned int msg_id){ - int s_sender; //Socket for the receiver of the message - struct sockaddr_in sender_addr; //Sender address - struct hostent *sender_hp; //Host entity structure for the sender - - s_sender = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if(s_sender == -1){ - /* If error when allocating resources for the socket, then exit */ - return; - } - - char ack_op[14]; - strcpy(ack_op, "SEND_MESS_ACK"); - - bzero((char *) &sender_addr, sizeof(sender_addr)); - - pthread_mutex_lock(&list_mtx); - sender_hp = gethostbyname(getUserIP(sender)); - pthread_mutex_unlock(&list_mtx); - /* If any error when getting the hoset, exit the function */ - if(sender_hp == NULL) return; - - memcpy(&(sender_addr.sin_addr), sender_hp->h_addr, sender_hp->h_length); - sender_addr.sin_family = AF_INET; - - pthread_mutex_lock(&list_mtx); - sender_addr.sin_port = htons(getUserPort(sender)); - pthread_mutex_unlock(&list_mtx); - - if((connect(s_sender, (struct sockaddr *) &sender_addr, sizeof(sender_addr))) == -1){ - /* If error when connecting, exit the function */ - return; - } - - - char id_string[11]; - sprintf(id_string, "%d", msg_id); - if((send_msg(s_sender, ack_op, strlen(ack_op)+1)) == -1){ - /* If error when sending the ACK, close the socket and exit the function */ - if(close(s_sender) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; - } - if((send_msg(s_sender, id_string, strlen(id_string)+1)) == -1){ - /* If error when sending the ACK, close the socket and exit the function */ - if(close(s_sender) == -1){ - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; - } - - if(close(s_sender) == -1){ //Close the socket - /* If there is an error when closing the socket, shut down the server */ - interruptHandler(SIGINT); - } - return; -} -/* Connects to the storage service (if available) and stores the message with the corresponding information -passed as parameters */ -void storeMessage_svc(char * sender, char * receiver, unsigned int id, char * msg, char * md5){ - CLIENT *clnt; - /* Create connection with the storage service */ - clnt = clnt_create (store_service_ip, STORE_SERVICE, STORE_VERSION, "tcp"); - /* If error, the service is unavailable. Show error and exit */ - if (clnt == NULL) { - fprintf(stderr, "ERROR, STORAGE SERVICE UNAVAILABLE"); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - return; - } - int result; - /* Call the storage service */ - store_1(sender, receiver, id, msg, md5, &result, clnt); - /* Check for internal server error in the process */ - if(result == -1) fprintf(stderr, "ERROR IN THE STORAGE SERVICE"); - /* If everything went OK, prompt a message in the console */ - else fprintf(stderr, "MESSAGE %d STORED OK IN STORAGE SERVICE", id); - fprintf(stderr, "\n%s", "s> "); /* Prompt */ - /* Destroy the client and return */ - clnt_destroy (clnt); - return; -} \ No newline at end of file diff --git a/lab2_pruebas/server.h b/lab2_pruebas/server.h deleted file mode 100644 index 4fa1935..0000000 --- a/lab2_pruebas/server.h +++ /dev/null @@ -1,30 +0,0 @@ -#define MAX_COMMAND 11 - -/* Mutex & Threads */ -pthread_mutex_t socket_mtx; -pthread_mutex_t list_mtx; -pthread_t thread; -pthread_attr_t thread_att; -/* Controls the access to the socket generated by the connection 'accept' */ -pthread_cond_t free_socket; -pthread_cond_t free_list; - -/* Variable that controls the state of the socket created by the connection 'accept' */ -int busy_socket; - -/* Declare the server socket as global variable */ -int s_server; - -/* Declare the list of users */ -struct user *users; - -char * store_service_ip; /* Variable for the IP of the message storage service server */ - -/* ================FUNCTION HEADERS================ */ -void interruptHandler(int sig); -void * manageRequest(int *sd); -void toUpperCase(char * string); -int sendMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int msg_id, char stored); -void sendAck(char * sender, unsigned int msg_id); -int storeMessage(char * sender, char * receiver, char * msg, char * md5, unsigned int mgs_id); -void storeMessage_svc(char * sender, char * receiver, unsigned int id, char * msg, char * md5); \ No newline at end of file diff --git a/lab2_pruebas/servidor/Makefile b/lab2_pruebas/servidor/Makefile deleted file mode 100644 index 2e6a4cf..0000000 --- a/lab2_pruebas/servidor/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -RPC_PATH = ./rpc_store_service - -SERVER = server - -CC = gcc - - -CCGLAGS = -Wall -g - -LDFLAGS = -L$(INSTALL_PATH)/lib/ -LDLIBS = -lpthread - - -all: CFLAGS=$(CCGLAGS) -all: $(SERVER) -.PHONY : all - -server: server.o read_line.o user_list.o msg_list.o - $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ - -%.o: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c $< - -clean: - rm -f $(SERVER) *.o - -.SUFFIXES: -.PHONY : clean diff --git a/lab2_pruebas/servidor/msg_list.c b/lab2_pruebas/servidor/msg_list.c deleted file mode 100644 index 4484c2f..0000000 --- a/lab2_pruebas/servidor/msg_list.c +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" - - -/* Returns 1 if already registered; 0 if registered correctly */ -void enqueueMsg(struct msg **head, char * message, unsigned int id){ - struct msg *temp; - //Allocate the space for the new message and - temp = (struct msg *) malloc(sizeof(struct msg)); - strcpy(temp->body, message); - temp->id = id; - - if (*head == NULL){ //If list is empty - temp->next = *head; - *head = temp; - } - else{ - struct msg *last = *head; - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - temp->next = NULL; - } -} - -/* Deletes the message at the head of the queue */ -void removeMsg(struct msg ** head){ - struct msg *temp = *head; - //Head pointing to the next element - *head = temp->next; - //Free the resources of the first message - free(temp); - return; -} - -void printMsgs(struct msg ** head){ - printf("INSIDE THE PRINT MSGS FUNCTION!\n"); - struct msg *temp = *head; - if(temp == NULL){ - return; - } - - while(temp != NULL){ - printf("Message ID: %u", temp->id); - printf("Message body: %s", temp->body); - printf("\n"); - temp = temp->next; - } - - return; -} diff --git a/lab2_pruebas/servidor/msg_list.h b/lab2_pruebas/servidor/msg_list.h deleted file mode 100644 index 1320b12..0000000 --- a/lab2_pruebas/servidor/msg_list.h +++ /dev/null @@ -1,13 +0,0 @@ -#define MAX_MSG 256 - -struct msg{ - char body[MAX_MSG]; - unsigned int id; - struct msg *next; -}; - -unsigned int last_msg_id; - -void enqueueMsg(struct msg **head, char * msg, unsigned int id); -void removeMsg(struct msg ** head); -void printMsgs(struct msg ** head); diff --git a/lab2_pruebas/servidor/read_line.c b/lab2_pruebas/servidor/read_line.c deleted file mode 100644 index 967be93..0000000 --- a/lab2_pruebas/servidor/read_line.c +++ /dev/null @@ -1,88 +0,0 @@ -#include -#include -#include -#include -#include "read_line.h" - -int send_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = send(socket, message, l, 0); - l = l -r; /* Pending data to send */ - message = message + r; /* */ - } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - -int recv_msg(int socket, char *message, int length) -{ - int r; - int l = length; - - - do { - r = recv(socket, message, l, 0); - l = l -r ; /* Pending data to receive */ - message = message + r; - } while ((l>0) && (r>=0)); /* We check the return value in case all the data was not received */ - - if (r < 0) - return (-1); /* fail */ - else - return(0); /* success */ -} - - - -ssize_t readLine(int fd, void *buffer, size_t n) -{ - ssize_t numRead; /* num of bytes fetched by last read() */ - size_t totRead; /* total bytes read so far */ - char *buf; - char ch; - - - if (n <= 0 || buffer == NULL) { - errno = EINVAL; - return -1; - } - - buf = buffer; - totRead = 0; - - for (;;) { - numRead = read(fd, &ch, 1); /* read a byte */ - - if (numRead == -1) { - if (errno == EINTR) /* interrupted -> restart read() */ - continue; - else - return -1; /* some other error */ - } else if (numRead == 0) { /* EOF */ - if (totRead == 0) /* no byres read; return 0 */ - return 0; - else - break; - } else { /* numRead must be 1 if we get here*/ - if (ch == '\n') - break; - if (ch == '\0') - break; - if (totRead < n - 1) { /* discard > (n-1) bytes */ - totRead++; - *buf++ = ch; - } - } - } - - *buf = '\0'; - return totRead; -} diff --git a/lab2_pruebas/servidor/read_line.h b/lab2_pruebas/servidor/read_line.h deleted file mode 100644 index e3d4c9e..0000000 --- a/lab2_pruebas/servidor/read_line.h +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int send_msg(int socket, char *message, int length); -int recv_msg(int socket, char *message, int length); -ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/lab2_pruebas/servidor/server.c b/lab2_pruebas/servidor/server.c deleted file mode 100644 index 469b0fa..0000000 --- a/lab2_pruebas/servidor/server.c +++ /dev/null @@ -1,308 +0,0 @@ -#include /* For addresses in PF_INET */ -#include /* Address-->Network and Network-->Address library; gethostbyname; gethostbyaddr */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "read_line.h" -#include "user_list.h" -#include "msg_list.h" -#include "server.h" - -/* Handler for interrupts */ -void interruptHandler(int sig){ - printf("[SERVER]: Handling interrupt. Closing server socket...\n"); - exit(0); -} - -int main(int argc, char * argv[]){ - struct sockaddr_in server_addr, client_addr; - int sd, sc; - int val; - int server_port; - struct hostent *hp; - - - /* Check command */ - if(argc != 3 || strcmp(argv[1],"-p") != 0){ - printf("Usage: ./server -p \n"); - exit(-1); - } - - /* Check if the port number passed as parameter is valid */ - server_port = atoi(argv[2]); - if ((server_port < 1024) || (server_port > 65535)) { - printf("Error: Port must be in the range 1024 <= port <= 65535\n"); - exit(-1); - } - - //printf(); - - /* Initializing mutex */ - if(pthread_mutex_init(&socket_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_mutex_init(&list_mtx, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_cond_init(&free_socket, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - if(pthread_cond_init(&free_list, NULL) != 0) { - perror("[SERVER]: Error when initializing the mutex"); - exit(-1); - } - - /* Prepare thread conditions */ - pthread_attr_init(&thread_att); - pthread_attr_setdetachstate(&thread_att, PTHREAD_CREATE_DETACHED); - - sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); /* This socket has no address assigned */ - if(sd == -1){ - perror("Error when creating the socket"); - exit(-1); - } - - val = 1; - setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char*) &val, sizeof(int)); /* Makes the address of the socket reusable */ - - bzero((char*) &server_addr, sizeof(server_addr)); /* Initialize the socket address of the server to 0 */ - server_addr.sin_family = AF_INET; - server_addr.sin_addr.s_addr = INADDR_ANY; /* Listens to all addresses */ - server_addr.sin_port = htons(server_port); /* Port number */ - - if((bind(sd, (struct sockaddr*) &server_addr, sizeof(server_addr))) == -1){ - perror("Error when binding the address to the socket"); - exit(-1); - } - struct in_addr in; - - hp = gethostbyaddr((char*) &server_addr, sizeof(server_addr), AF_INET); - - char **p; - - for (p = hp->h_addr_list; *p != 0; p++){ - memcpy(&in.s_addr, *p, sizeof(in.s_addr)); - printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); - } - - /* Initial prompt */ - //printf("s> init server %s:%d\n", inet_ntoa(in), ntohs(server_addr.sin_port)); - - if(listen(sd, 5) == -1){ - perror("Error when listening to the socket"); - exit(-1); - } /* Backlog is 5, maximum number of queued requests is 5 */ - - socklen_t size = sizeof(client_addr); - - busy_socket = TRUE; - busy_list = FALSE; - - signal(SIGINT, interruptHandler); /* Handles the ctrl+c signal to interrupt the server */ - - while(1){ - fprintf(stderr, "%s", "s> "); /* Prompt */ - - sc = accept(sd, (struct sockaddr *) &client_addr, &size); - if(sc == -1){ - perror("Error when accepting the connection"); - exit(-1); - } - thread = (pthread_t) malloc((sizeof(thread))); - if(pthread_create(&thread, &thread_att, (void *) manageRequest, &sc) != 0) { - perror("[SERVER]: Error when creating the thread"); - exit(-1); - } - - /* Wait for the thread to copy the socket descriptor locally */ - pthread_mutex_lock(&socket_mtx); - while(busy_socket == TRUE) - pthread_cond_wait(&free_socket, &socket_mtx); - busy_socket = TRUE; - pthread_mutex_unlock(&socket_mtx); - - /* Close the created socket */ - printf("\n"); - } - - close(sd); - exit(0); - -} - -void * manageRequest(int *sd){ - int s_local; - char operation_buff[MAX_OP]; - char user_buff[MAX_USERNAME]; - char msg_buff[MAX_MSG]; - int n; - int m; - char out; - - /* Copy locally the socket descriptor */ - pthread_mutex_lock(&socket_mtx); - s_local = *sd; - busy_socket = FALSE; - pthread_cond_signal(&free_socket); - pthread_mutex_unlock(&socket_mtx); - - /* Read the operation */ - n = readLine(s_local, operation_buff, MAX_OP); - if(n == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - /* Send Fail code to client side */ - /* - out ='2'; - send_msg(s_local, &out, sizeof(out)); - */ - exit(-1); - } - /* Read the username and convert to uppercase */ - m = readLine(s_local, user_buff, MAX_USERNAME); - if(m == -1){ - perror("[SERVER_THREAD]: Error when reading from the socket\n"); - /* Send Fail code to client side */ - /* - out ='2'; - send_msg(s_local, &out, sizeof(out)); - */ - exit(-1); - } - toUpperCase(user_buff); - - /* Check the operation */ - if (strcmp(operation_buff, "REGISTER") == 0){ - /* Register the user */ - pthread_mutex_lock(&list_mtx); - ////////////////////////////////////////////////////// - /* DOUBT */ - ////////////////////////////////////////////////////// - /* Wait while the list of users is being accessed */ - /* - while(free_list == TRUE) - pthread_cond_wait(&free_list, &list_mtx); - free_list = TRUE; - */ - out = registerUser(user_buff); - pthread_mutex_unlock(&list_mtx); - /* - switch(result){ - case 0: - out = '0'; - break; - case 1: - out = '1'; - break; - default: - out = '2'; - }*/ - } - else if (strcmp(operation_buff, "UNREGISTER") == 0){ - /* Unregister the user */ - pthread_mutex_lock(&list_mtx); - ////////////////////////////////////////////////////// - /* DOUBT */ - ////////////////////////////////////////////////////// - /* Wait while the list of users is being accessed */ - /* - while(free_list == TRUE) - pthread_cond_wait(&free_list, &list_mtx); - free_list = TRUE; - */ - out = unregisterUser(user_buff); - pthread_mutex_unlock(&list_mtx); - /*switch(result){ - case 0: - out = '0'; - break; - case 1: - out = '1'; - break; - default: - out = '2'; - }*/ - } - else if(strcmp(operation_buff, "CONNECT") == 0){ - - struct sockaddr_in client_addr_local; - socklen_t addr_len = sizeof(client_addr_local); - struct hostent *hp; - uint16_t client_port; - char * client_ip; - - n = readLine(s_local, msg_buff, MAX_MSG); - - client_port = (uint16_t) atoi(msg_buff); - - //client_addr_local = (struct sockaddr *) malloc(sizeof(struct sockaddr)); - - int err = getpeername(s_local, (struct sockaddr *) &client_addr_local, &addr_len); - if (err == -1) perror("Error when getting address"); - struct in_addr in; - - hp = gethostbyaddr((char*) &client_addr_local, sizeof(&addr_len), AF_INET); - - char **p; - - for (p = hp->h_addr_list; *p != 0; p++){ - memcpy(&in.s_addr, *p, sizeof(in.s_addr)); - printf("List: %s\t%s\n", inet_ntoa(in), hp->h_name); - } - - - //client_port = client_addr_local.sin_port; - - printf("\nPORT NUMBER OF THE CLIENT: %d\n", client_port); - - pthread_mutex_lock(&list_mtx); - out = connectUser(user_buff, msg_buff, client_port); - pthread_mutex_unlock(&list_mtx); - - }/* - else if(strcmp(operation_buff, "DISCONNECT") == 0){ - pthread_mutex_lock(&list_mtx); - out = disconnectUser(user_buff); - pthread_mutex_unlock(&list_mtx); - }*/ - - - - write(1, user_buff, m); - - /* - - - struct sockaddr_in test_addr; - - getpeername(sc, (struct sockaddr *) &test_addr, (socklen_t *) sizeof(test_addr)); - //test_addr.sin_addr is of type struct in_addr - char * ip = inet_ntoa(test_addr.sin_addr); - printf("CLIENT ADDRESS: %s\n", ip); - printf("CLIENT PORT NUMBER: %d\n", client_port); - */ - - send_msg(s_local, &out, sizeof(out)); - - if(close(s_local) == -1){ - perror("[SERVER_THREAD]: Error when closing the socket in the thread"); - exit(-1); - } - pthread_exit(NULL); -} - -void toUpperCase(char * string){ - /* Convert to uppercase */ - for(int i = 0; string[i]; i++){ - string[i] = toupper(string[i]); - } -} \ No newline at end of file diff --git a/lab2_pruebas/servidor/server.h b/lab2_pruebas/servidor/server.h deleted file mode 100644 index c39faea..0000000 --- a/lab2_pruebas/servidor/server.h +++ /dev/null @@ -1,22 +0,0 @@ -#define MAX_OP 11 - -/* Mutex & Threads */ -pthread_mutex_t socket_mtx; -pthread_mutex_t list_mtx; -pthread_t thread; -pthread_attr_t thread_att; -/* Controls the access to the socket generated by the connection 'accept' */ -pthread_cond_t free_socket; -pthread_cond_t free_list; - -/* Variable that controls the state of the socket created by the connection 'accept' */ -int busy_socket; -/* Variable that controls the if the list of users is being accessed */ -int busy_list; - -/* Initialize the list of users */ -struct user *users; - -void interruptHandler(int sig); -void * manageRequest(int *sd); -void toUpperCase(char * string); \ No newline at end of file diff --git a/lab2_pruebas/servidor/user_list.c b/lab2_pruebas/servidor/user_list.c deleted file mode 100644 index befa904..0000000 --- a/lab2_pruebas/servidor/user_list.c +++ /dev/null @@ -1,200 +0,0 @@ -#include -#include -#include -#include -#include "msg_list.h" -#include "user_list.h" - - -char isRegistered(char * username){ - struct user *temp; - temp = user_head; - - /* Iterate over the list */ - while (temp != NULL){ - if (strcmp(temp->username, username) == 0){ //Check if the username exists - return 1; - } - temp = temp->next; - } - - return 0; - } - -/* Returns 1 if already registered; 0 if registered correctly */ -char registerUser(char * username){ - /* Check if the user already exists */ - if(isRegistered(username)) return 1; - - /* Prepare new user */ - struct user *temp; - temp = (struct user *) malloc(sizeof(struct user)); - /* Initialize user values */ - strcpy(temp->username, username); - temp->status = 0; - temp->port = 0; - temp->pend_msgs_head = NULL; - temp->next = NULL; - - if (user_head == NULL){ //If list is empty - /*Initialize the last assigned ID to a message if is the first user to register*/ - if(first_user){ - last_msg_id = 0; - first_user = FALSE; - } - temp->next = user_head; - user_head = temp; - } - else{ - struct user *last = user_head; - - /* Iterate over the list */ - while(last->next != NULL){ - last = last->next; - } - last->next = temp; - } - - return 0; -} - -/* Return 0 if connect OK; 1 if user is not registered; 2 if registered but not connected */ -char connectUser(char * username, char * ip, uint16_t port){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if (temp->status == 1) return 2; //User already connected - /* Change status to 1 ("ON") and update IP and Port */ - temp->status = 1; - //Set IP - temp->port = port; - return 0; - } - temp = temp->next; - } - - return 1; -} - -/* Return 0 if disconnect OK; - 1 if user is not registered; - 2 if registered but not connected; - 3 if trying to disconnect from a different IP */ -char disconnectUser(char * username, char * used_ip){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //if(strcmp(temp->ip, used_ip) != 0) return 3; //Trying to disconnect from a different IP - if (temp->status == 0) return 2; //User already disconnected - /* Change status to 0 ("OFF") and delete IP and Port */ - temp->status = 0; - //Free IP - free(&(temp->port)); - return 0; - } - temp = temp->next; - } - - return 1; -} - - -/* Returns 1 if the user does not exist. 0 if the user is deleted correctly */ -char unregisterUser(char * username){ - /* Check if the user is not registered */ - //if(!isRegistered(username)) return 1; - - struct user *temp, *prev; //temp is the current user, prev is the previous user in the list - temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - if(temp == user_head){ //If the user is at the user_head of the list - user_head = temp->next; //change the user_head to the next element - free(temp); //Free the resources of the user - return 0; - } - else{ //User is not at the user_head - prev->next = temp->next; - /* Free the memory resources of the user structure */ - free(temp); - return 0; - } - } - else{ - prev = temp; - temp = temp->next; - } - } - //If we reach this point, no user was found - return 1; -} - - -void printUsers(){ - struct user *temp; - temp = user_head; - if(temp == NULL){ - return; - } - while(temp != NULL){ - printf("%s ", temp->username); - temp = temp->next; - printf("\n"); - } -} - -void appendMsg(char * username, char* msg){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - //Enqueue message - enqueueMsg(&(temp->pend_msgs_head), msg, updateLastID(temp)); - return; - } - temp = temp->next; - } - - return; -} - -unsigned int updateLastID(){ - //Increment the ID in 1 - last_msg_id = last_msg_id+1; - //If it results in 0, then the maximum representable number is overflown - if(last_msg_id == 0) last_msg_id = 1; - - return last_msg_id; -} - -void printPendMsgs(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - printMsgs(&(temp->pend_msgs_head)); - } - temp = temp->next; - } -} - -void removePendMsg(char * username){ - struct user *temp = user_head; - - /* Iterate over the list */ - while(temp != NULL){ - if(strcmp(temp->username, username) == 0){ //User found - removeMsg(&(temp->pend_msgs_head)); - } - temp = temp->next; - } -} - diff --git a/lab2_pruebas/servidor/user_list.h b/lab2_pruebas/servidor/user_list.h deleted file mode 100644 index b947099..0000000 --- a/lab2_pruebas/servidor/user_list.h +++ /dev/null @@ -1,31 +0,0 @@ -#define MAX_USERNAME 256 -#define TRUE 1 -#define FALSE 0 - -/* -struct pend_msg{ - char pend_msg[MAX_MSG]; - struct pend_msg *next; -} *msg_head;*/ - -struct user{ - char username[MAX_USERNAME]; /* Username that acts as ID */ - char status; /* Status of the client: 0 if "OFF"; 1 if "ON" */ - uint16_t port; - struct msg *pend_msgs_head; - struct user *next; -} *user_head; - -int first_user; - - -char isRegistered(char * username); -char registerUser(char * username); -char unregisterUser(char * username); -char connectUser(char * username, char * ip, uint16_t port); -char disconnectUser(char * username, char * used_ip); -void appendMsg(char * username, char* msg); -unsigned int updateLastID(); -void printPendMsgs(char * username); -void printUsers(); -void removePendMsg(char * username); \ No newline at end of file diff --git a/lab1/Makefile b/ssdd_p1_100291121_100292107/Makefile similarity index 100% rename from lab1/Makefile rename to ssdd_p1_100291121_100292107/Makefile diff --git a/lab1/gnu/getopt/COPYING.LIB b/ssdd_p1_100291121_100292107/gnu/getopt/COPYING.LIB similarity index 100% rename from lab1/gnu/getopt/COPYING.LIB rename to ssdd_p1_100291121_100292107/gnu/getopt/COPYING.LIB diff --git a/lab1/gnu/getopt/ChangeLog b/ssdd_p1_100291121_100292107/gnu/getopt/ChangeLog similarity index 100% rename from lab1/gnu/getopt/ChangeLog rename to ssdd_p1_100291121_100292107/gnu/getopt/ChangeLog diff --git a/lab1/gnu/getopt/Getopt.class b/ssdd_p1_100291121_100292107/gnu/getopt/Getopt.class similarity index 100% rename from lab1/gnu/getopt/Getopt.class rename to ssdd_p1_100291121_100292107/gnu/getopt/Getopt.class diff --git a/lab1/gnu/getopt/Getopt.java b/ssdd_p1_100291121_100292107/gnu/getopt/Getopt.java similarity index 100% rename from lab1/gnu/getopt/Getopt.java rename to ssdd_p1_100291121_100292107/gnu/getopt/Getopt.java diff --git a/lab1/gnu/getopt/GetoptDemo.class b/ssdd_p1_100291121_100292107/gnu/getopt/GetoptDemo.class similarity index 100% rename from lab1/gnu/getopt/GetoptDemo.class rename to ssdd_p1_100291121_100292107/gnu/getopt/GetoptDemo.class diff --git a/lab1/gnu/getopt/GetoptDemo.java b/ssdd_p1_100291121_100292107/gnu/getopt/GetoptDemo.java similarity index 100% rename from lab1/gnu/getopt/GetoptDemo.java rename to ssdd_p1_100291121_100292107/gnu/getopt/GetoptDemo.java diff --git a/lab1/gnu/getopt/LANGUAGES b/ssdd_p1_100291121_100292107/gnu/getopt/LANGUAGES similarity index 100% rename from lab1/gnu/getopt/LANGUAGES rename to ssdd_p1_100291121_100292107/gnu/getopt/LANGUAGES diff --git a/lab1/gnu/getopt/LongOpt.class b/ssdd_p1_100291121_100292107/gnu/getopt/LongOpt.class similarity index 100% rename from lab1/gnu/getopt/LongOpt.class rename to ssdd_p1_100291121_100292107/gnu/getopt/LongOpt.class diff --git a/lab1/gnu/getopt/LongOpt.java b/ssdd_p1_100291121_100292107/gnu/getopt/LongOpt.java similarity index 100% rename from lab1/gnu/getopt/LongOpt.java rename to ssdd_p1_100291121_100292107/gnu/getopt/LongOpt.java diff --git a/lab1/gnu/getopt/Makefile b/ssdd_p1_100291121_100292107/gnu/getopt/Makefile similarity index 100% rename from lab1/gnu/getopt/Makefile rename to ssdd_p1_100291121_100292107/gnu/getopt/Makefile diff --git a/lab1/gnu/getopt/MessagesBundle.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle.properties diff --git a/lab1/gnu/getopt/MessagesBundle_chs.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_chs.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_chs.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_chs.properties diff --git a/lab1/gnu/getopt/MessagesBundle_cht.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_cht.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_cht.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_cht.properties diff --git a/lab1/gnu/getopt/MessagesBundle_cs.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_cs.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_cs.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_cs.properties diff --git a/lab1/gnu/getopt/MessagesBundle_de.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_de.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_de.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_de.properties diff --git a/lab1/gnu/getopt/MessagesBundle_es.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_es.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_es.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_es.properties diff --git a/lab1/gnu/getopt/MessagesBundle_fr.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_fr.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_fr.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_fr.properties diff --git a/lab1/gnu/getopt/MessagesBundle_hu.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_hu.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_hu.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_hu.properties diff --git a/lab1/gnu/getopt/MessagesBundle_it.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_it.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_it.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_it.properties diff --git a/lab1/gnu/getopt/MessagesBundle_ja.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_ja.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_ja.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_ja.properties diff --git a/lab1/gnu/getopt/MessagesBundle_nl.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_nl.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_nl.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_nl.properties diff --git a/lab1/gnu/getopt/MessagesBundle_no.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_no.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_no.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_no.properties diff --git a/lab1/gnu/getopt/MessagesBundle_pl.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_pl.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_pl.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_pl.properties diff --git a/lab1/gnu/getopt/MessagesBundle_ro.properties b/ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_ro.properties similarity index 100% rename from lab1/gnu/getopt/MessagesBundle_ro.properties rename to ssdd_p1_100291121_100292107/gnu/getopt/MessagesBundle_ro.properties diff --git a/lab1/gnu/getopt/README b/ssdd_p1_100291121_100292107/gnu/getopt/README similarity index 100% rename from lab1/gnu/getopt/README rename to ssdd_p1_100291121_100292107/gnu/getopt/README diff --git a/lab1/gnu/getopt/buildx.xml b/ssdd_p1_100291121_100292107/gnu/getopt/buildx.xml similarity index 100% rename from lab1/gnu/getopt/buildx.xml rename to ssdd_p1_100291121_100292107/gnu/getopt/buildx.xml diff --git a/lab1/gnu/getopt/gnu.getopt.Getopt.html b/ssdd_p1_100291121_100292107/gnu/getopt/gnu.getopt.Getopt.html similarity index 100% rename from lab1/gnu/getopt/gnu.getopt.Getopt.html rename to ssdd_p1_100291121_100292107/gnu/getopt/gnu.getopt.Getopt.html diff --git a/lab1/gnu/getopt/gnu.getopt.LongOpt.html b/ssdd_p1_100291121_100292107/gnu/getopt/gnu.getopt.LongOpt.html similarity index 100% rename from lab1/gnu/getopt/gnu.getopt.LongOpt.html rename to ssdd_p1_100291121_100292107/gnu/getopt/gnu.getopt.LongOpt.html diff --git a/ssdd_p2_100291121_100292107.zip b/ssdd_p2_100291121_100292107.zip index cf9f00110cad53a02daa1077dfd817a95dd1ebad..88812a31e0aa7486ae8397eca4cc6505e06a3964 100644 GIT binary patch delta 962552 zcmV({K+?bA&;`1pKMYVy0|W{H00000gq)EKGY1G;4_OFX50`K{0U8l|oTo};*=86S`S$XTMt=vcnbgl1n2_*00ig*007+m z1#}%b);0>8DQ0G7W@g5inVFfH?U)&2W@dKG%*@ObGsJd`H{BWNp6;3H_q*?R*ZO~F z<Li$en zR<@>ea{8vmj`)l}PAkw!>)V);8{5z*D^lRoDLOeg8#*aD7#l0t+B)HL{Jca)-@#JC z#>Do=ZGQP`Y=r;gGGpE!e=tzSHb%b|!T7Ib{aOZ{kgcE}77zoj^SJuv^ggqh{n1N*P%wDEsiF4Lct`{TpG_(!=v;VT$B z+B!QJ8aw{DM8wTWOwmc-$@s^2F+~>qUvK>58!JBR-@dWov;FNGJN~cb@$%A%+S)k% z$RNsq|0^syQAT_QhQFPYbFej3G52u*~s zVn~b*98H4{CyL9CsiDFzi6jxN|9;JV1YWnesl2feN@FRFOIarXEy}BXrr3Dtd9JN& z>hZF0H$oQE<#kh?Eps?0Tg>NkZ^T$Hh4Joxp?YmwWA5?#a!0(f(lXM@zI5_*NBrFC z#8gNFq}0q;EQg5 zoi>@D4e>`7`#D79{4U4BUyM$bZnf&;BTHq{!U1KUL;)s@!w~}FOmz>@LrsqkGm5m1 zjuRzL4+ALXG7R@tr?MhKIQDsK;v2ti@3RSCW-V)@wPib|=DBLcYeh~85{iR`&0AOl zuMAKqZNZRCQ7lpTS41*E-t|G*8$Ct{lUnrg98o zL|bl>0?ly1PhRQg}1ATmrtP$mG`3NEp2v3kPd3=Mo} zTPHGwusqhvQvA@VB<-A++G+MtKNWBn%Di6GXcqmGnNp>ZpsJp^F-V2rF5nl-3Np22 zQB+NN=RF_z<7<#FrY*S`7snBQOKCnk6R;S0gS6&ug~9pg1P}#GfkgJ@)yAJDQ2YVp zb;#{#q)m1T1+>a{=>~|}QV*|C%qOWY!KeyFO?#2Wo{ z_tA(MuRoJPbwAM$2a1SNPNuf5D2Xi`#aP2uLuoXYyN>uoB_=e8szi-{BVQiWFFm}b z4yox&A+PuqEaE!T#IgXWK9pSq(Yn4*AKL9FNBF}bF%WkMNK4VK-i)_b23uU;O&(T- zhZ;dZ$$O;d8cd>8b?q2JWds{@!M=6_zKH2?$%!WX`f;|joesMCAtM`UPP)V33NCQ_ zz;i$T2m}WJN>O?gSI>G zP19b05<`K=A57VSyW~gd`{)fxD{4yvG4kxd`GnNypJ29Khhvq0*scP){dT+kHL8uk z1RnR>kFgoXm4y@1_QRFr(OqiCScL)2tq}+b5IRjL%gEH^Wofj1@gtrT?YE}wn)|^u z-D-kegCgn@Pb@XJzevzZ%$#bWK?hNSnkQJ}e;@W-X`!Vo0Vn>fL#8Ro5=cd|LoXd+ z*J$(6I-D4TiFt*8YZX`p!dxl2bR(dtGO{t?ou{U*xZ=zH4hpB1r3Z+*kWUbkZ5Erj z;lvl$4CCf=!zM5hRmTX--9fb65JC$z@JLpT^(;A7rp@_>*Q$oG)73pmC%u_w1$_Cy zMR;pAG^J~1G+Q(XB#>USsE-zK1hStrPk`eEpNd>R5o02M%0AiHQz2kodu8;WOExrD z_ zA3hXe(U;_ZRS40(<>Q9_l2ayN3JY{mSsIJjWlA16txx*Qgn~waPTnecU{r6F@NHDr zI;)yh`-WEB_^UNUyI-|56$Iw5uSC}}An=L91hInRtAWKDQCI2LjxQhDhiOACgIgwj zDp{exbD{=Am;mpW!y}>bvHh%aaaC9}`kwMS#N5Jv&pX5@F?)j)K}6NU`g+1^$eZl73Ks97FK$Q5ler%O{$Ukz@RdbhFftj1PLBaUAm37 zTMC9j_<+0@=oEHbr4Fc`7(({lLXEjuG$Fe$i*T{x1;0mA%5I6(b4At_jJ&>M#IG0l zg13c#Z)W2Onj9u5rDbeRlXq+h+#APxQ5)AoSvI(YDYU6a55Ancg80W6WrTk}3g|0; zdV*-ktY*YI$;Rk>Id}(4mX4tQyq(xB3B8p-;iIS8u5p{)_E#LCng!4DS9ldHo!95=fTV_soVLo-D zdL803W6eS>J5UB}E3FS}P1XtRYw93=4am@tQ-bLvEFg?}X+f$LAcT_g|2&H7NG8bb zSZs2Zk;6f#xJ3QI$l;Q|^5`q+y)ONKGd3a+}`0PU-jM;`_ zA&vyr3>csQbQx$~Dl%#!(|vekg996(tHbtyc~^uR;=LGusrN!$kbEs3k#Spp-JRtT zp_C&2&9v}mT#-S(AeDPKgba6xbA{G6j*&X>$SaLv=LJ+v9KkPp8*s}V?2`mwCTBE>GQv`HJt3V z#zayWj+GbmI?AuXiC7I|p1u8;&a2ivCz1f%+-N}>PA2DEwk5&&mAl6^B1!vhr4&Dn zA;3K1PQm)yM1{m1?Vll^dk_bh`Yqy>gixhED^&f8mM#qYOBTY*^1J&sC ze3)TnN0LYE<5XmvIR6gDNCh)_nuf?&1cJeuK<7Xm8)1gTOt?fyS*ZkY){_R#h)@ZT zC(7G`)5SR2YK0>_Q^*E!%AYZ2o(bOLYu9t>Ay~a`7#}DS2ObeVIBw5xfPI}Qhmw*5 zPDwb1-3Afr?Yb0=7$=f{(+nYfxCWq>St4;h*MQ~+_?!!rNf^9(j|m54?wfdCQH5U& z1?4U37ik~RUDe$ZBzzwSfyjb*a_4r|3x*y{5ifsECx_f!o=*-N)Ce*PUW=<<(Wat> zs>k@{$XRMUEoF|-n$X`zgS&{|L-D-PqudFU5xZ3mXyvb44sU z_TiTz1|#B{L`A*@+z#ZF&n#`cW2_RS@E5wr!_KJ)fHEl!kwP5(O;dQelnRh} z8l9l2q)FT%t0H0&&|Z*`kUJy&8*)v{XMymS#QoYI&UpX=(1|NEQvAA`3|G2wsh%_Y z{4zj>tz4I3gBCe|L?<@p_S?WePwYBMRb15-;i@L;DR|h$`PV(VAFLb5g$hQ3?+n?} z+zL@Qj#*bX19yh0X-QEXvQ4Ra(Mq?E^mn$!CCo!DUJrACOX>kgH?h3~jY6=)_3HJZ zL+9pTgp*4$PvP%ieUa}4%u*D)IzVU-$<(if*j{N;$tK5t1s-r7aa%bRXPMlj-2|DV zZ~Zpj?@id=(?Fx0XD-Hku8A=PSdfIG6Qitn41A}am3gy=-B%ET5j1AuO7}#31%Y4E z1W2^@jIT{`!~woI9wG>TaUhM>>MFzQ;F5G>E=j`cK-g1+@(CSReKP01-{rO3DOhnexlpexLw1dOw}cqn%U~pA&MG>W;vu4TUL1SZ+pAmAgs3 zL7XzbkEGO(!7n#=KcolNuo;5Qd`3ID0F$}&u#;R-=Zt2hios~)<3JNq-93O0+soP4 z2|5f}8+?79KqPB5jSn+$d0g>v>6`{<6R-8YE?jlPNEM$+nq? zx=`AV@;6Uyi#EFchbz;b+BBc(Mcu* z+zjB}q_jJ%qQ027(DxGL9p^5a#Vm_VGkj+rWn1*`21)V{R-|%;w;tF~C?CN@C@j8( zQO+lMHyPeY@=*WM;b0uBoQ2vXA*(Vp+qO7=GQ5Lx55od{4HJt78aLvYp4U{ay2epG z2zwN&Zk4k4#g3cSzA{-8yw7+HnS!Hr*5ge1t5C8~zwnREfYCPDSqR}DJR7Xazi7y*d*2d0xr)bLJ^m4 zDWhkcuPSiwVGkzfOT3tZVW=2&eRuqpI^iF_Mm0d@+r5l9}EYrR#1A!u>Orf5VGDr5*G zN0XF5>NEzXZN031c%(p};y^uVmMwXjO4hRAphL^?(1q}Wj^B%VFg zOQuLuD$B5d2Tej}2lN>$4)Q_8`)@=7Ud2&|l0&zK5u+ zYY-~h$5!Qh#K%H&nA~Y|gX8EnextTt;I^$?yo;tmxC%CB#5J$Ix6YSs4@CWDBz$X3LT`}{GZr}P03?7IEA=Bw7(Byr+xa8w77P-xN3gN6o@N8PmOs85}l$=lxJ=6uEJEqiXxmy757%gLsPvD&3xa8Nic1*>8jFd0h#>TD+rg0J6tQoOkEsVFyg#dSfS8sH-o9%9IH%~VQYa=j5ug@nV+Di}0KEo$Gr?P7zwr@V4S}WP% zBUpFE3k^-@M(l?(rk=qGj_Su8eec2EL**v%TI)}C4|I#UMi2ad;L%9R+CyW}mbBh% zk78a{7DyHx-^eqx+r6*99^8FxJK1d^20h(J9-~WeGU8DCen3LHhPl~#Sg*RYl-L88 z7lk%OyO}jqk5-Qur)FB%Am7{_OmJp}EM4K$MNwh9(_H=zRfs zc<`-~f*=0vX1BO4p{L2Pl?UUUnZwcM{BuV~BlV_@5!1aIXX}YnNB2HSGra`Mxf`?h z?&ZK+09?qBZ>QULFU~fv+v8i?N!8GO?vgG!fc*7CY2MpW885WJ_JG5?AMT; z9}aVtRI4X{sRD2vChkBLrr~U-DmgrRj=H*hyd{iZxV?j+ovxpDt5Z~u4$gLq8sG8@ z_}&uMdYXGiw8PdIZ^G;cy*)JJQ3>@VuVH7~JLFWL3g|p6p(+@vG{})8b}sr83A@;x ziS5_#0^F$SARL;rmn6_CTs2EynI>MKvV8%>rTC41ShG3;Ec@#}2Tom?`pQhD((Qn= z?etg&dugt2QSCbs6R-(hS3BE3L%cqPcD-o(J!VhcuDrjU-};t|m*wUxo;s(!g%7-}g$6-lc(jx*vypWcvP2fw+}+!4vh4_i@m)`&Vl2?>yVz zSvr<~PBGAb3F}cpeQYWxQy!S6fg#|Qm?fA0|qqaRf>cXFo@|64tc^na9T`wI`v@RNjB zvQ@S*|AlP+0fPAtApT)J(8On8`bqNt=In1d{(lGM?|_9Qgnv2x3vR~W)aS>~O15GW z!ZP}H{{TxTtolP%ezfY3lZx(+KbrFwBM1IZcz+P8pOymEAMjcK0ROl2x~zkLk+H*% zHX;9eF%xke;B>~vjOMd znqufgneZ9@_8T)kBh%l^Gru?ZFtFn@u>U2K&;P)zBVc1=>*T13&&cr8p7qmM#rQWP z7u(OnPkR;<{m;YCE17;;x0slJe;$73WBQqo>1RIXpBb2cW?=qlBV+!VftmHEru=ui z5(C@+qG9QGLp#H7XOVwzSz=;jW&BsmlC>=s8{(Ty_q#t{A&}1PD<}jsvwhm>4s=1I z|MT{J;4XO>T+@ES0rt(MZOD4kaMDQOzQ{CJf%O@+2rm;?Mra0x0?(^|dt>J-bDMgC zYV}87ooZ7y-9x;QZzl^kJ5zJzws5y|5A{>c5i3tFt?V6MPc?%@T@$8wN9FZQH%~7x z?%vK`PEQ|*B3YE;%VmeeBIO=a5c;r2Nf;DZBooS?_lP8U_hMX!#Fmg4UlX)mUmuTY zBHtgbXKaVWKF#A%xf!;9;61NH+}!WNa7?uKo*sB~v`=*n(2X5%x<_PL>0{Z{=j{|L z6vai`&7jK!*U4v%5=1gjfu&6Vat9yeCP6Z9ijgI z@~Jzc8xNp3O3x37v86VuZkw%v0pt#KwGH(tj^IZn6mAAF43I5T`@lqu^Y#4{q7pj& zG2CKG1SIKW{J>%fYXs2WXTTKYfNyp_vqWfJyB~D~=Oamd za<#LifA1RBy%(W>MNnhb0FJha6xl!?=h($`0#2+TVVv?C)rkgMCIN_m=pMz_Y_^T8&m<#laVpFS+eZ3wJ?V;~yyqSH^|$$4IXT#&YF-1giahVq7cV%XYN z>eEZ>HfMpmh>)!rc3VnBRUvnCVTU@09D@_FJ&H2kK!!Nl$PP6JT8F^#P0iUO2Rg0@d|-L3WKV%uAV4NOt*kv8W+rJH$F4C>#3fxk>i{nbd<`p;knZ< z)CLKoCyk|lhQ@q}<;|qcXZ47PrPK6Q$@MN8%7*#v?nA}}_BxR(%;xYS5x6loBiyup zoHYO5_a~j%?Fsa~M=OdNI1vUlofh-#Tr{M-IMl2jgIvHfIL0VPaWgA=dYCI}1l;T$ zq;)+##sJa)4<=~bvx@>0lj(<*z7i0^y|dU2{W361@@i@#%lB^dJ57Mxh#B6e{u}USW*Z}SAvtoy zh~mZqRGVgpDUKL!AWu6D$CF{8=z-}qBp|**MZvDNQT}@PD8QvP3J#$~Y$^uiiCb!OImFj+qwgJ5+MOqQ&A(0 zgVD-*n}EtcZy_;*A-PWVSFPz?ydOu=u9awi4_yKq4d^*xkvm+P*#|<2fBB{lcfLE! z2N+fP&{3e>lnVsMdQ&$YjvkqV!bNpUF1%QCBA^rS0xNpnYo(?cbk1V80gBavA=oyb zZWr_&>?Rb zqT$tGeP{#6o-k(gxE*%2yVv+Fm|GSEhbP=}0yJA69x`T%`72f?-y*queZalkWgv4} zu~HyxJf{$6*x)`YXLZkaLurp{UHQ>*jC|-fg8__`N6jqz=&r3S`|vIqv*N2(zpd!t zt;H+`v_?goLFa6)RbHXCFuPrs#MAkIm8QX3!w-v88t1D4z^Zx#VODX;GA{V;KomF5 z^f2iWm8F4=gtT}j5mCr-;&Gr9qiu|m1Y|YnlxllbHdSO5Vf*{ejpM352FPEB5;AwD zD0YIX@kIKn$+~D4=a6{RWe$uWeR+8|q%qR@(=*m-(Rh|&KkbZe0)H)se+UkLu6jR2 zQ~{cA$9NS>Aop-e;uPC6~&_WRz1MHyK$oZ^za z#b`gV6cxn9j2?qdvdS@@#}EL2T_MWg4B;! z3Uq-m-FCWP0b=~7+DopuioOpIP<#-K<}yR9Qi*s!Dpo<16dQqVd{- z{w~Tl9Dm@JBfBI@J90>WJ?DJ`WO51b1uJCo)0jreoKbGcaUFpI;T&>?uo(?X;|<~| zl116mI{!o7=MEvV<4D+B@9lWgY`mwe0dps znlFTd$^1#43Sv3v27EvRM0Cj!Yu^wZb5Q^hUm1F|M{I>$TL^;n&ST6c>pyot`N*eO z>xP8_$Zs)}fO_V^mjZ>}0K)MulglYQ8Wu6+Amd`5QqKd#7-%kCktZu0$~!9)oMM6E zmRjIS`0mHuh@TCA<^L!M_eVj8F|i$wc9Ws5&5zBXF9%G_2}9rKKdM;Q0b?i73=~C% zWC?Ni2|>s&IG*ox2Y~=A6%uajsnfX5mLs+h~!B7(vZc_{AtT za|1}R%o5BEUwR^hA_@ECCfn`G=esQT&8}9Q*zld@Ee_Ft>#Qnb=Xv>64eeJh$#s)! zD<=6La@g}K(kq{n(Jv+WLmIhTtHm&LXAJkr?R(JTehxo=*!stcKR6FYI#ZO2X(V{5p)u z_rf@Y9LCN6u&};V=e^vN@nvL=2(@nw(S;WXr0o37Jn@KD?jHKM*|Iv)<&`-hEYJW zqM09xds?hX+=G+#Io=h%gJ;8Me9&eTuYzRn77Y$WMdOL?Wj6xc->w!cQ~^9AvCKXv z!(#l0!rlbVV}wv!gxqz%halA8!0-I5S-G0vMQ@0689^XQ7I1dRO1l`K9ms?6KzePbtbd6 z5oKrDDQf76AC^O&YC`lUM_`D$8PvUn95f$)kVWq9?|%rgbiDZl-0AEJzv$R5=9=y3 zvv-x}D1UBEv#MJi{S=MR)N@Gwi=g>TcBn=I1*hD(Lt5Z_L|7{!bqoZI5|>t?7#%h6 z$A3Kqi+}bo7mI(b!ukP$NP_zY8{N-bM$<%-7S$~$5b~oma=R1oOA9-=4LP+Eu%(KB z8^m2>xdB>)lNJS@i8W}<&fWSG2$4^^5Kj{03+@QH9D4q+WC`GV%!KmZd#$wMjjw#> zSJRFPJ8uv6h0B-hC#m4f_e)iqk6@Qa@7Kc}FMR700$mRej{SfSjx9}Y;)?S=YfHYD z1YfzptnulJNtL(dbcYhfB7u#CUX1~NEd1zeb1fi{q^OXJcsHhGto-Tw*nl*8Azpyi zNlPs#6%&%_N47g45+Yx`eFCY;kq&_E3|rp>=`B`k^24k(|6dyNG`*|6W@r)w0P$j~#2HuAy~`!?3qB3^_=rT_yQgy`nF z6bXDly$Op04AnJ%Mj1OQ@mf=V7yl%jLls}fSvvJaLa+?Nojv~&odn0{vk{s*8q;Le z6Z!Z%o}z`^lleT;7GD3k#6aqQly3^-Ey}3&_jk}}$*?~s?->3PHTEle$3oA*!TP(W zsQ(c|#`Gs7h?Tj4gZW=($Qb_Dl%J3BrLGsCYbRwmkCnGZq5ADL8tp?K&-@tJ?A;g1|Y z-CpU`)HQx&#%KGbMYZvN_l%AIJD!&DPhD&O2Mh@dJ~R8jawV+zEPs;$HhdPA-?Juk zqCaZF_WvD!^55NJ|5xdM3y$A4?jQVz|C8o1|2z7TTF}EFs&UvxM}&V+k1;=zp?=3`}fHe`E<68U9dh zmcOKhjBKU^GSJh1(*F~|uXz3%0%lg$ zKO$iM9Rjw$f`EmCk(Tiv0Dgt@Zvn9X*MW%TcL4q{!~Gu*M1LP({=cSb|Lai0!tuX2 z)G+>z+h^qX&;7^oYnQRGG1D^rz5jmg%)i!stn3_r?7rVEGMMQ9Qu!>bw9Nk~{}(WS zt$ZeiKapRy-OaO@R_6cjts<-pf7MFC zO8>v9d%rVNFfson*`sHqW&6kA`BM=7V%Pr?w)C%E&+t2c^=JAoQ`k=k%`sGKu{S0y76K z{Xa&*pMd@?1djizgABi$$(jD&PGkR6vwx`6?;^r}uUvmnqd!-;ANkZ|4J>{%!jD|P zsuA0d=aZj*8u2s9fX~M8o8%AmVf?=^0kZzDPJq8}_&+@5{tp}epCjELA8G#3?*Fm1 z|Jg5p((cUoY|OuDXqF$3iT@WGnvLmyv!Q>tQe^%wGyTtrj+u#pmf@dD_N&VMH6>%= z_>q&j#GzEmxWUZ#*~u+b84yb8-7| zhV3`v#*WX%{+r~Fg*nGRlkD_ATJASV27LDa8*!*?tpA&``TJgB`YVFL#KA(#^iRR~ zRZRYxU@-ntz#jzTcMD4u#NpPlJ9qQ#8Q{+m&dodutr#Mq zh>3-R_Qz!ZcOm#yB>tKZF#hR6y=EpM-!@v5@=sK>m#{0S^bphjvX(EXD z0f_4qDxq-QS2f3LvEDE6EhliW?e_SA-id%c`M7id7~+tw$1te?QFyDwz=L_*Y-<&_S%$cx{D`^)#T;{ zuMNXpah0~~-go!=-RG2*2-m6X%np^$3hw%Ku4q%)r4>2vr4_U8xiTsk>6$4WZ9Z>* z6~nxHQ+U~Yo?W9K-;z6?Z*NVj&0hJk_@2jZP5m0Wn&#aL-Op=LR?6{oO-w&%x-nQa z_kFve)q(4CX^P-kH_kluKwx=oY#NnGIAN^TQu)%Jdr7Lwiq&>B_4X8MMWktPnCg9~ zHW)wimUt`f6tM3LB9yRX5<)CD{XguuKUx!YwW(JO>_Dd!e;b!Zy5p^wY&`t%X2L zS%vT0IC>_VvWj|AIT&ygeQQ4G;$hSdpz;iFJfPtx9ugS%WJF-&foj6>x)KO~KA!S* z4e0StIY&~tUHF4W5ADEctlOz>8`HW%6>q`w>C5jAXSyy#wty|;nMCZg)fUqx5{G`8 z0x*6n7#Z#1;wIeD;#8O(O~ee`Ya!Pv!k#=>$CvmZH0ce zJ8TxbcY&L3RBe=0l5vVbUJ-mS%i8rHJPhv_mOO1Jq01T`uCYiyh|4xx} z&RMMtFR)VcWQo88=#+e*6Oo~ufQD}7Fu=^N5E+tP8D>!F9*mM3w-aoCS_>A7ZW$~T zrKmQBVHw^&*l8iIS~6)pVp>t!+llXnS#9K(syQ(j{p1Px`|e{1I^(fHDW)H1+c{DGIN((43z9B;(v?l6;HQ%cva{ z=a}rJ!9KkQ)mvaqel0D}wl!b^?@sB39{f&<>KpxU+9=KsJj&HgE$ zu$r(Si9}tAAp>QPTp}A_Zei0LBM-ceOi|Mflm?%zxWfknO1Pi-Lz10EO}>$ul)a~h z8aqs^XndV4CVKL;pK7s%EoAI2K7tB~(#bjn>yhXr!VGwAOHMz334@U8E~4<3-K^1N z76yQ*8iIIO;XI6*?gChDswsUm5km`d96t|sL^rd5C??Z>SRMmsGkmV$=D1PT@y6ws zt2WvoaT*vvj=Ng5(2~9d0@_+e{HafBn5;{psnWba4QrUBsWiMRK06+{{kxWNngk^r zUS)26ZGluas3F~SPN-<=4+(Ia17m+S2l`gFy_ek zoFt$+H8M9g20hIHs-z=JO>)7bFw+VLelbmOh4(uPSx2!jwf*@<@dH&7Ss_@DRg9hr z=yNg%6O5sMw@Zx{p0-Zk6!F-WuO{-qn4|WrsbYp@l&otN3h#uw`i|nr^J-=}*i_PZ z`FSgC{P%Akx;~1yA<2VVsl?Q&CwPr$7R^uIy8|dp@qax)Ob--eeI{WgR98MK2Gjf= z{WjxjRZl*}5|eaP7HiGv)t+3sZ8=I}T`#Pz+#9Pm59YIfHXWop^7-3(XmFL!6#jP^O?868O4v{YaQ3 z+rE+v*z$9QYFy8RRE(sK=G0zM?7{`aR1#NcZ`soe@~5O-*>7LJwQ>$(8lUKnjMH#a zHJE~bo^(!YLh%ufnN@Sj338WoWtZq1eBdQB4k+wK?$cDDn|z2lsTHgV-Yu4V@^Sv+ z+F4v0^775N%ww006Dpj;Tab3yARh_I7gN2=3HE&K1 zmhxIId5Z;`>W}Ld%X%J-n6&f))f!K76JL{mb)5HbaxVcy*~;O{W5`?@+c-I#%YCQ} zAIQqIv;p_;6}D|<6Lqv*?p#O|Y5ly=tIe(1eAp3IS0~cQlOWfmVv81d&F{J!D4J#0 zyul@nzR?^)<}SnZU1@^$G`PhX6x|iLCw7GZ1MAnouPK#xZrIdj+g_O!!OT3I`^i#& zH9#+Q`v6zaurs*$C;;>~XzfkOz=d-j&YMVKNw!WOFHAs?1N#?3eqc_>7inV1cZaFr zGO(gqM+Ca47N`42G~u5SLFI>68$=dp9aWqOo`WvEXqxBfxND9U;3(}<&W5Gl(9xd9 z0Xa$3jc3AR>@j+o*DH9h9!` z$~cKlce?PU4Id!Vwh!vC%PSf_Z~cUe$b#+sh=0$EQXFl^`=lw>DBy}{a^=3$@L($= zXvc_-xv?wUlSeo!19%gL>3cevS@U6C=M}oq8NR(LBT64nXE~1m=alA*mHeuIF0dz% zt2yGZ%pyE=y+$=x7Y`=jm+I>^8Qq-)lBm8&mbL;!tCG1~rxXdI{Qr=xc4D zt=1|5qk_2CoA-e5jhV|}nfR}N?;wn0j!Tr0s7#vTI|ajW@XG1qT1`b5fzzEVAK?+C zEHu8Z;KmJ8peA&n;#-xQFMP4|Y-)Ej7(VlJOc9hPma#f80SUthIS)gKMnP~G4&ogDwrazPu}P|yZ5GL)P)Bx6itMjz~@CDNFGyvtypB)KhFl} z<7Nr1Efmn#;|O)x zE_jBw`=wX`>)Fjh2!o}t`NRenwZzln!H-5ur!?@w-*tLv%iy^Iti4&A(sY3!>j0Nes~LteZraEO^?fXw})z=wdZ2Y_j|m5?;}&-|`K9RZ$*>NEQ23OtvAn*%nL;K(Db#>Y`f4F$nTWANvBr8L=I# zm3~W&Hcji1q-8Ej_ByMG)((dJIer<6QltRdby$Kr!GS5BMwK@b*JZy2^qPjj_u(3I z4XrXPjff&9_|WEm;iLSP!R-pnYwmR5w*`0Hr~UxoW&*>Ob2OhOf{pLO-C(3Mmi_dS zyDYHSY8$;+jC2o`R?DrWcBgD>kAcYrtIfnNJuK+uc6{5~z?7DQ8c$M-16(01%XC(z zPCgCs&Yy%S`l1++;tjL5(cLAv+yYic*_ND?mah|75p*SgGKobAV7Mw{qu=;vi6k;- zKdVT&%jL?SYZ0ILC4Ezjs+&P|#U6^fQP5aKURO%2@TN0q%x~$tl2|7Mz)k$Ap(%@Z0LSW!K%zMV;5ua0*FHujzmiF5nBJgh6Lvcgllnc zz-FUzhqzk2OaXSgQ~*$mJ^>ucj^PfV?q2<<*PeNQ{SyO`%?Lzt(IDtD;VEqS)W96E z4i@?Bds9Cd^$@WR5B_yfr|>SHe;d18$8ed(Yvh>{wx)<_Xs6YQl-Ro{cY7XPSNK@` zOggjr<^1;sd^IP4m`;E&BrnV!Z1OXS`e!?jj z^6JWeg3Xvj7bFGFrq6pw{A4r!(?J)K+hM<~@Kbq8jm%{cwp+`|U|_e@$^rMJW4l7j zP`tKwq{4J++g%oUOIjY+Bx1r>f(SqqB<=>`)eQkC-ceY2<6XID*lmhb3%0xDa=ayN z`V@AZb5m+HZtP^+P}4*{FZOw0?M^33Wp;yq9)F3QWJd1N^&1n>svs-(b^Lgd*Q5zB ztp=D67uBDxc|zkvSO(&Pn=yoZ$pnad#3lLEFs#F4%DjtWRO8YWfY;*q7xNw!&2-f8 zlH>LC3Arek?=#6rdd11;TClkgKls6#8tMFE6@fWA$ zh+_%dy=nY(Nu>gZMSC9PxD_PW5F_U1KE6*_pG4;ee%T8xenI%P;S+kqjdxp=#t?O* zf)D3lP5qJyhcp$7E9CR4y==)->Yk2&*0)3*o(YUw?*r)NJb8J{f!vk#g5i&Dp%ebA znH^OzxsB`IoWKKN)Ydy=K9Q~b9BlBsQCF+EAl&Ivc|?HmPSWI-LY>pOquAnZ;Q0(B znIj_=f&@)<<$TSq%K?56;E9fTT7#Rt)g!7DyiA-oj8+PiT>dxZ>PdpH@p2@8?$k6N z?u!`}Wdz5^P}<4U3HeRCu9x+xTP`Ktn5=l6sg=T#h{rVdDpI^61?35AP3hIpbcH6L zBwp1{t3zd%_Cl}tYc0z7ylXC61jZnDZ)5%`Py>F z^M`hgc9}G-4r%1W>p;SKj4F_;@FXX$4Ngga;ZZq682x0pP$k93(=kMQn3+@H^lYEE+CmlbLd17nP4aEP#!DgfmpO4g-^B{Z8 zDL`=GiY{@+=yHxKqLvX?C)$3Mu&1Pa+e+a9Mf?Tz2yMvMbq{j?t4$K-7QY*R6_y3!UJu=1`BZkT z!P%nEC&pO4kUfi9&Cq+j?42Uv4<&L~<5JFM+M6;AcDqR0U-y_!V9{M(SH-5p_q3oh zTagd8?5gf5S|z0;sV87cu{((vEQV6^8u7gCY#uztV`;C9sFSDjq_*+jpW&>I!P9R0 z6yU4N)|DNryqKncK$XU^ZC33g`b7+^qVa>KYXl7z)!si*j5%e(WzierA}N;UgbK#m z5jz+%lu=JVaA|&a>~z1wB(Gsawb)*1JEOe!S$7y+jo8x~a+uo3yHum7eZMOTmhy(^ zZ(V%=o_)ICGpO;?&}J%j4`V7k#N8ig4fP)Yb}jp|?P9Ed`$MO{Dz_zLNQAVeS0TsBf5Q==3pz&2~%cMal*(z7VOTuFXr?mFm zu}aj}=_~0G4ex%eDxQksxI~N=ecQ>Jc&l(G<;s_T?2|sDD5s9L560z6 zn~HT@;a>%#C*{joA#>(yr7hUuw8@6IE^O?H*loIDr`jE3cC&6#7@FDv&%M~s(HyI% zkesHjs|kxPNWvgjTcmsq(Y|UBJb%7OdpHG9gwn|y&=2uLF_jI|r)|0M9)gKh^pA~S zgsG!{Tb(ub9HJ#G{Z67WSZ-@5SUL-oFa8x%+^(K8maNDePsI@>F&R^kNa$l?-D!W5 ztD!?EQVjT3U)4<4uyAGecE=SG?w$!joXVSqBBiz%h$e|c<_66rD>-32Z`SDbO}!z8 zi_hMqy{f{eSJ8_E5#`_@yNStB+WP4AovC<#eP}y|YgTl8;bh?f>W1+aa28Rq29q<~ zW7YVkpdq&~UGc9SlnChvyGkPpZM>xl{^#d~cL%X`(xX=9g_ukly4Vym2r~~HvZj2D z5XsDRv`8tcPx5l}w*zmS7l(bs^d65JSUV3kzOT39E^$QI*GG=~D_F$@(PJ^E?e~NMG!aT&hl^-W%4K`rqqR{VSC+B8$*a|6Pv*gC+zg+D=*U^Z z6+>aDTzH&ydvPzDmB@AgMnVl~YK5NMD6-P0xOLctHu;=Tx zx>)wUuMM>|+=tS^r0<7ub53Vv9zalhpYPq6PPTsEvH!?Plxu%I7?w`zjo^F2&w@#? zWW@#tK4HRPHdwu&eQe?tRp25_Mf*iLe-B-h_)_Ymk*^ekCOg*0O|HSQci{Sy$XKLZt|@k~ z6k1Q0VjUZ7QgOyGsr~t{HGo%qGV0s_iL@#fom+vxSJ~NiEhT^IHq877YxI9|KxFxi z1EPbuzSUoLIb{Bu-Qd4@{4)N{ru-X#f9jk3ryhsDBKj{rhV(4I@iAn7_?@FK<8OQn znVEm%=*!5;%JQEaeWi`{f2lJ*6Vu<^4VjsL>u&fX_pfE)Gt$%3|5D8FcaUZIQwS$^6Ke-ruscUQOH6#fr8sU|)P<4;eS-<{%g)(Zu~C}tbf?yfaOmE`~RJqv;EP}*w)6;)=J;;FDpC? z>wi#q2FBlL{2yH2S^f}`|KEI!{|@fIIQcU({np8!?YFwm{F|;}VfkIxf6#OM1t))& z-zq#a6XUN1;IsZ>Txb5*&iTWxA1r^^3gtg_4*S1#0{>a-zurac|EY@@IR4Q^On-0# zXZh1v<1e^@{|(}wb`%W*BQ5j))ES(GnejIRH4`J-U+Apgjm|$h_-|WAF#PiI2WN1m zKRAQ4aQrp9DI4=2cC*%uf7xqE^0Cc%55zssktB)BqwUf2Yb9RMIin_>>lp5HqL)iK zpuB9U2$#H&JXpH?K1o0^+q8Z$Vi2nh9e>e8esguTPB*{q#S)qB?8!x{>t%ntz~0pS zutE9#`cV7*aVg!EE@orm;e5knDLUQ9_15KGzkj;R`MeCP^M&#If76<6eDzj`kMr#i z_sA_XRlMuzQuPgS{`-MM;jA=@gmUV9;z(QQQgz)vtncf|w{kqRk(=s~HecV@uW$`- zw$-|?-@j4ub83|YOMi3zV1D~EudPlv4q`dLz#a%K^CwLC`0$8G2lcwgz;uE@qArK z7K}agRMCz%e^qZsG*}&Tf`5fH3O@2e7n?+EP~9j5@kRlPkOB)smO7!PzgX)oBn+^^YJvI*zZIN5SmO6aR!>iWdQ4PiDF!|G@%|+OVJ|CBjZOLZZGr^?9S*@%NnB{?vU^F;@C=qSoINkG$64B4GgsNUJDOBmg$cG0UdlkStagP+b|GhAslzNn zs7B~@e~8lt#6&p+T|Si?$42f|S6Ze8-piC^w|SJ$()A9Nb9qIkd8yFwujW%_<~h^o zC7)pKv;erXPGGR18HDI(FcMl=_3*%k)m4S}I0KOlawvMD!`s7iidcR%pkC%mWC7Gy zRL)UC;9X@&TbqC~18+$hAC%|t3rpAQK^B8?e@TWYN31Cd_L}<<#|L@G^EU^9Rj@0A zOVv;yhq+9EQY9sGq~8kOeYyhHlqBm<`;<#*4@qb{&CJn80_HbU1yRtiPzF{|{S_!T zm4tpi4x%EM1U@ESU5+_g4C+@4>a1o>jnS$wH{AXOoBE>+s#XDNh#&S7dWF!u{30za zf5YD`sKM}`y+G{PSfuGSz3N^Czfq$_R0r99wwl;c9H6T3C-X>^1ftddV4yycj%iP2 zG_g#U2tnFJX0Sw&`t0kJ*UV}`*LNFRM~I#YBr*_y3XATqq=8{FErb4Dj9=*Mt43Q# zV{QN<=Cw`^VE}^MjJ!H1frG>^Ce-6*fB1#q6(db2Z~7cbG^=imSvUD7JK`h%ifh1# zAwuGTE@}^34xtJYMq%RCC1k-k$byEol7ewZHI!iHwc=6Ymc+8@Ef|IUx;SHwfkO=v zk-yteU4OBmu6xB;47+Z%e`g(m{lEhD*oN_k^!VQAazq;vjqfgJDN7a%4X!wEGFizUGcb5; z%^QH?;2=J-2e)f@Gjx0f*=f1D68D|8@B&dU#5~a|M;u&rcHbl%u<3+p_(eW!(N^2P z95~lLwoqT4G9%nzn%LWn5h0dHe_48yoJ5tzSa{pIjKmW+tKIdLVLiIGqI}Z}(yi*#+?9wh1@M z@@RkgkTSUGN1hMi4&z4pfBGkq$*bc~xwHLEH2rQ=5d_^rRN)j6ZVJSg%(hsU46~%f zvX&kxboXO}=it#A#Afnsnui|#^=SjZvH*!>{tC3>mS&$s5{tWZ^%OUaCd3=sQj8nj zx{M4O+mg7hJ@l?YizJ=IPW6D_7H%`pGJHSs;zSIGFMMnYiJmz}k zVXe2)gp*mlagJvSa2igIxELhQ6hs3JFf7}yWGxO2M z)^^4yy5ud{IrN@U9kn+iFQYSpqtxp3fzn`f0k%w(oL=0Z_+w?y1PW+ z+%a1*R6b=XKhvjPZ3e_|c)ewaiMFM(trk^vf7R7%$WO{P{_&BHW2A0QNYcxBqf-Ng zmUfQm?+IeFIFl<~I!VMcaiF0cSv1F47}4E7N0bVN(fSR{Vb74kv(AM|QJXkGmkWWY zAI{)gMNo6!e;A^}WNgQ1+zP?Dx1Tbed#oXhh>QDi(SS-l4WU1orZv{-c8EKL z0zTHa+sSTuTRuX(*llqRbTmWsD9n`K(8F5Kw;Kj;e-*HddVb8p{RC!*Cba}dP?i8_ z>(FG?_Mx4e5@i%}FOF`obq-|k=8FNc#b6GpXe0z)$VPmo6=*ff-WfSfAvfph(KN2K z<5&Y{YWl5D`U-SK$Xb+2MFMJ`^+4wO27RmmakXw3?K!~>Fn3oLGJ!we9dsFLj1XM% z2Cie6e{Pqq)yjvrb$wJg4quuZxmpEhIAJ`3y=UXmK0f$^PgboFPmJjMvJ7F+@l`?* zwI9{K-!M5Oaz9HG_TcImsl2#RVWUFshT4CKpZE?Id{Y=L&vA-9j&YO&Gg{u&&k;n$ zH}&IVg#-Tj;){K=FMg?s2@j9I!QIgX`8d}(f4Nd}ejS#7mLoEhh>+tOz}$MgInE?W zRDMRejuRfjD&EXs>HC4;|CEi4W0f1RptNN;ya%7;}m{lwPrwnmkEg8xN;H3tz( zj>`?e*s$Dw`8hUDDEbvZZt%0Gf;td_>r z0sy3{m4Gyds&itFW*$|b8r8SpC^pOY+m?7c?4Yl`3VN4PCP0aEPjNe5SK`$Se=;S6 z^~7m)iy!aZx1FHk`akGLW%uYo=cLl-M7Pe~(lvA}dM59<KE(ug6C$PJn}><}C=|D$AXMpy+9w~JJ0@Ch=>9H=1rLNJ%%OW}eFA1w zp^EP6T)N}wVb<AHsF^jc zh==b8KAM&@>*q~vK{I6P2q>=Oh>L5@g7vlt<6F$g_CVfJG36y6_(7cZ`hBdUg#K6+ z8$~n1r0AqNe;=3ETAW;u?KKbd}ba1!FRPw@vc zvf3c&?^DJ74!QdsKkRbC``W1bIDmpsk8k43b@rxLjJYnU?z&Bi3W%_WZ-B3vcXnGo z#nGBJ-*>RZuTn44rXmfqk18~rlkR)5Q$sCf!`pEmhg#;8<5<9O)W+d>9N9!~;L7v99yov4J`^PP6|8 zeF&*~@r;wkfo2ZLAaFncItchVe?RDY`f89(w5k}(Tf}OmT;#CM3KhV{c;#a<3@A8i zEWV}M_ZF#si%8Bdt{14EgbRUKYm@NT=C3dOfYLi1wFF278`#-Uw33*%Ck=#393ORMDUHxjmHbP<%ef4-JG#e&fr~gdCERs<6ds=}RlNOfY$uuCqd)tRXNMHXAEBNMeL zE~ph(m7p(LQjG6*Z(rque`4Tt!^c(U4Y$acyy{igU_&p_q{9fPI5KnaO`p@ zjt>!nYPSLP*c31HiQ zPBZ8Rop-Dc6yH|83AzmXwAfVQGSOkq8ePIA?%>aD#rlv3&421H9TTRdmF9Wy1?2tE zflf7pXJ(UKJ~}zoe<^&%vQ{JE8Ip47T!2K~DjTk(qo=Hh@*eqlB9T=Hde`&)CmEg75C}68kBGGy)TxRt172@@kDMm%^ER`!xdD>aaLsT;9Mf|yY zdV!PKGKcYs<{I%rDTNv9(AL_zqxW%~VU5j$)4-%7(@lqjf9fL^IMCB>*`asu$5k7a z-jY^9k0T8feUeN*qpLFwP}0>-Cy!lLl3+q@wk;T9)lo~@-D9wS&wGRP<+*4PL zZE_>Jwh2Y@%j3@SsjTvt93wPasYynP=@Jmm2uB58GfAW^{E0`SDVStf<1eMX(ucmc zL%T|)GAxg>e*nVZo~v8EVcqws10G!)h!=DzC>O({m`FnDGMAW1X@`18a#AyvxMwL^ zg>Ba5fwO1AaFs+~>=Rv#b#0Rm<43ux8W&(=0-0ZP05CXkN2c>0f- zI!j6zy#Ubw)94n^roRTt#ME`1mbM@(%gm?z$yq&j|G7AbLH@`ZL)dk&b7aONDw4-ue#0e$*NTStk#^GKO_R~RBddsM=h zICv!l%d@vRdTbIOeZscPa3X(OOtg39khfP*aSnmsLWv~$MBrtNllH#f@5#+Qv65`A#ogIqe4V(~zrTkCry{ze%bGoaZ>r8>cSCY|p3FS(FNSMkCkjIAETk zJr^w^;T4pqBW19b-di3_IIO36GtN$pY2}n!bYK2!bEr}G_d zVkB1i$e|Q%Op6gE+uB_qo%&L3S8`i+WQrQa`!BYFs!b zC3a5zF7IyU^%~j~tm1xd0KC-s%Jlxef7|v@Hp;sZSTlLdN2s$eih#14>z%X~z9Qm2$nFFv!DB4siI086+B)iG zgRMz`O3x19J zAt7f_jgg7cRvW=Bk7)00p&YLg&(!Smthl$=N_8uHP!JfcFj@-R7bnPiBL$A}D<)f1g8hzk#GxL47PIcBg+ZvWTeR|1h3Dr|+EvBHYg$k@z$2 zC#r>qhVqQkOk~#JQbq4f5JjKky8s&ffGA;=WWj8!qSd6-iWo6o(ZGO+l{m&~gjDRe zkW5lTxKRLxT_}8#WQ8TUj%rE%+8jMAF@>5qik=%gZct;KBk}y;e?*9=na%-Z&P5s9 z$pq(zXN^a18sUOuLH-b4)K@=FEfo8(Bq$2t+Ig!gDS5{45W_Z9sd`P1M$aOr!H5yn z#+y+36IUaSF?!n)c#9vl`!&uMYstX2GG zV970X%*=yPBxx)3e@V5Ahr7g>7dCAN&b|GhG@Sa|b42_Q%or@x$>3Mw=JH!Wo;4FO z^;uU?6=5hFBJ_YKW4}r*^&$+Qh-?5QtAs0|yw~k^96`*;3V(udKm*Ag22ohHc0NoD zP@aLPUz7WcN*hdhr%5F2(&(fZG!Zo^2`3!lV|2H&KV*}Ee>6ht!_T_EG1gpNXTUkI z^MSR@+9JdVR=;)MjCT_4z^b_;TeY4AS9QXtYQ93<*wN5*td-K_p=9c?FrnDQGc{kj zy7{hVZH|hn8kVbJ%h8lg(?->i2nLSLZD!h0f@Y&)#kZ)+(!=2GX4k$d5~6m+4m2Tq zsUA3?Eo~@df8DfoC3bv*QWg>S`ZH#rjevKvu1^}3MPQ0zWbZiF<9)Xn z>4o^o2i;k#jdQGN8#2`-`%!bysbnEmG}}9IQn@(Yf5O)!`qw5o+q;9BOEpyaxDQR{ zx~tG4@&v`-u8UVp9!|I+;YnL@QSL&~54jmEfJ+j-T1yU;6-|_S$ha;|rwn{a4DFL4 zf@`i=es*6bW)9RUkSKom_~4476iw53MS4N8Dyw*kIw_w?!hon4WIS6GnvQdx6DrHr z%M!N)e=~6KE$aNy+$Jz~B%UyVp?2RA%#LEtwC-z7w#&_ML-m1sYcR~?YHtR15{@<^sV`fN_eJLCH{M;3)PXzrf6tj4@pg5iIj2rDahcAQnH#e~7qBZR zhuqKN&?9ISM>DBCi3vTLdLNb4V&ROC)IX(D%xNwbvv}@z&0pp85Y}g0$Ox`;e@j+$ zJ)3ZF$t3X?hZ;j^o7CTkIooxz35nNfuO*UBqy&USBpqU6rOld!osp|PYExx4Wo@%H ze@mFU&tAeyFC9?@4XBZ568kzU!j6I@$lD|iBeZ|b9p~A*ZwDz@4CXmNzZROwq5XG`b z5~B&)I^fi$x+8sk5vALr_q}+9D&2XLe>F`uPjD?hBlK*#Ybq(5r=r$w`JCxvJPqp=luYK{ zro;8RNOKYNL1%vR4gFEC**ru<()MYhIYC+n;Z^wH2{aeBFWiUQZiLJfX5Xdif1@Vy zcw4SotWYM5UF6svvwfPf&B!pinVF0l$h2?T!5ocCSHwlPFL{3E`OhVq97C?qSVW_hk(|w=X}_ z!CfdachO^{o-SVaC8KwN9s?Wt{S(fzpN;CWDmvm$*=w#N*OJ!85-wI`d z%QS);!#`DP`Bv)1Ycq~;XE91Qq;w6q0}5(2bb?IARw4u((tP(|B=m84HST!rN7&7y zWzkGMpo#QIa7;pR{dA6)f7Yxjbg&C8Lt$=!CfAj@hMDnpHEmRdH z>2YWG8h5WPhl0PPzOI-*1V^IMtT$})PL#?1)Yu?V9%on>!DyBvUQDgof^%qZ64ZM! zQC#8OBeKF5g8;q(|oz?C#PkB{3CHtk$JjG~N}| zYu#naEvS26dG?WFf0nu`drb!Ni}=BtmY+Eb9woGD?`^9&6UC^KzG->gaemihvY+&> zA~?_Hti`LpW#yT(a@ju1Uhjd}DheAkR&%^~-k~#H*pO06ISOlcCtxBJ9jTJ&7e;5! z&TKy>;JN4ywX!zti1?oO?z5M(>!KAg^)IwB6G{7s_%ljAe^AzYI%T$ zd68%JAJjWSfopqG`4DF&I3@0;v2hPcVff69o6&6__|F4#q=+GJ&t%8b0r5l`(*U`{ z8b?=mSLOOOe`to?CpzauUgYUPAUfUjF?#0B0*X>T;CyMILptkq<`l%;+6@8S%OY45 ze_Y~)Cq2u3mPtBq_a&3V+n}yM&~u1JT3X%Cp;#ESvQNfsJS^DakCFR`o$oH+nUk+EY-h#?OgwJLpBaB{0S5M9DRafT$$KKwU`j0%?X)1r~9V0CuxQSI}M~IvCn8B zs)UA~f2Z%~6dV?A;wOb5oCkmy(ONXUy=>+)K;FFR51zqB5aeh@pAbjWPhV;MasY2} z`xBvq?mBHkJ+?48nmh;&@uar0nk1vES%RI-y(BC<3c8j_NG?J4WYBIJ?8k3EZ6`o< ziw4o@Yes(E{A8aFk?7>6EcsGAo7IWO+~{o)e|F&ny_csgEfnK`o||EvV>X5GQ5wau z%HP2#=c~VDzQ4hdMx-ZQ4YW^A$0TIvLw3u1GTcS0HF_70w;tOCQEF4)KnirS)R%svr zm}~dBOH#b29O7V%*!X@G!~>7ZC_6+m%fw`HZQgp5->HqVId_9-JX>Y~W~6Z>lv|Ky zv9?%8JB?tkP{(+r>e~euk&+@!S1xP(e-!I*?{&WrTt3ROpKZDnol@o0F+(vZu*dfJ zCsArePJ8DxrwG~N(x*RfxGazYD(R2F2+FG(?8!5Lx>_=R%T9kysiHbUwppXrE76wJ zoFr}+ea*hQle7>i(OXi?p!DW~h|JNY_73a@R7>(WSf8BQ)cL@O!Z15dvee!ee=b1l zDc`2J$AQ$55^l&Of7j&t zs?tNLY<49oy5Oo3^YTg+yo^Ijvan3EOl15j(d3)Jw+?J@{0hX(z`-e|e*Xycw1tonPWlI?gg+<8QPlXo*3?2 z7)@Hv0=QC38oh^)Zbvfz!em%hDgBjsV0vt1`Ao!dA`TS3f3SP@zH_cGmn3mqL))dh z5>_ytgj#X_S^Bs!7H1r<%8sM#o5@HLXoLAwPcI5N!6XeN^5Y8d5IR*UY#C>zrsb8j zV1LuQk&bK249UkE^+kGI34T^!6s?A@PMl68%wI1LcUms3Mfq9n8Pv|{x_qA}<{Obs zzo+jhRn0xKe`j5xxLez)D9`B(RI6zM*`a156UmESW1~=1VYhj9!#HwSA_YMU|;w#8^0N~M^@V(tL>)BKlGG$Vh-(Oo*X6AdM3Y)T|y*AzVzG7 zqY7DRsyrpGZr4jVLK2aZwEopM)0oj_veL**4=k^S{ZJx8c1!~b^cr?o%@^u~FBVOf zr|$aNe`7QdZpAHHpQqmnvTMm}OM5+(;WidP%*MXZ zuD4bJL?AG+Sgzj^&FFDeVVw=l=Bwr-XyO1Vf1&}xA{E~cxVa!NW%VH|Al8-pu0*FM z+mhhst7eEd7*gvqk@vsUgp7v%%Zh8QLT_%t)f4 z5q4+Xu{=k#oY?oaG?c`9?2c%rrx94|e@{BHBZQSl)>?tU1FYrIMBS_fP^KkB8X)b# zBU|_mbwK5%6uO!WoL&TmPD^ZI8DE?xI=PTxRAP%iGZnV>`?lygdh30P2G&Bj`r;l* zmKYJcx@oQYFx89En2bf@pu9&lHqd$@>XR4DN!r>(fI-~j4}xxer=Fr;(0JJ!e}mxp z@%*VF;fgAR8QE&nS$Ak)n##D*Ho2V6I;?M;w>0$_u36z`+pvTI5BChW5a0-3J{E>S ztG)}yrvthwm+r+q%*6Qn^Vmfq8H1Enys+3cdU(ATBBbdvj#fCOA^mEh#^*_bkuNSP zR*d(hkJ)C&VUC#cnd04)+B=rUe~{dfNt#|Q+Nz&ZLopZM(D``mSO8+`gWOP~75$>S zSPFCnB|ZZ3a!`A`n7rhsrj6!cy^+}>ns?qG^oPNTqWFt=Mk;O!uXUl7H1}M1v3{N# z;){)o&wB;#T6!O>@7a;&_8cWld?ccS?MyVv^I*~mjnNY0W>#8uCVWPQpL>+DG0?L8$&P^nfA@+PFmy7vwV_j_Q&y1p zu8wrpMl2M+>`C_fefWR>f1cGpY$*7j!UQ<} z<6iOq!%zWMrvDTwK>wRifj`7=vHs}}_kVH6`2YQI0d|((?H$kl-}jDZVgI*#$N$M2 zCYk;aV#WHW5k~**4X1yIxA_l&UaTyC2=w~HJ3?7m{u$`S%KEQ?UaYKt7U=b_SpN4S zzF67*EaHom{T~rue}8!K2P@nER>T+U|2TH#|Hs3NSpQnQ3Nr&M$G@2TG_7s-SP}nb z^2?L&ceS9Suc>zR4;}?SUVWjmwRG9JV>Q@ z`*8D6)J?75)P8%IOMpwTdUAC6HZ_;f4063Rmw@+C7N8AIW@KF=gq4}d^LgX+%qyr= z_4M4un{RTdf9;#c+D>_>=69_p`T0BM!Gka31*4f0i4#&!RgU^~GR_`1b8IV=HT}D@ z-u4)S@d&=XqQs;EH@ZD?hdQqGMqKEGhzZ*{9Q=9C0fobrF4K9nlqsxptV_v*7;o_I z*e@sPCPB#V=BI#7?$5yQvQ7AT4Ev1vd_X$;lJLmAe*~FRQDjn-4k-v5qjj}Cby`i_ zJTn@Hg<}~At>iQMP??%(deS-;7x2-K;+zen*W_REsiAO2ugk%TD6w~nn}(wV#6lq~ zw!oe~AWGklV=t!xj`felXQc_h5`AV1drvu&9UCSAC|}nIFmyZ;NGHeyt_s8es9#WX zj}|xKe@+&slC;2@MPDs4YL7O1$c!eW6BN^TgoMDvgPuLyloJE=6bLoCjTWYUR%%pu z$0JNJq7sR1acE7!S4jhqNNP0{pH0|RCjmrpA|{3-$B0!TrL%%DSPA_serQS1b_Vz* zrsy!B6m*S9h_!|XldL75xfP!!Zbk!R9F4|-f6*#!H6b+5B}_e*tTh{Gk=BvU0;ME= zLKln$iQiJ~lJ{6W(cM3q5luRfq>sGS+9_XUib+}ylSAi>S`--3&{=I>Ett2Wwr-f` z@n+g4hm$RQN$tdCiA2huANrpSb(bkwH$&)N)t>e{>@xLQ| zR83Z!KDH|Wv#|6NOW)KBBrpb%RO%tT2m2}nZoL?7boN1wfK&2=GyAGCkhx@>7)g*~cn2Q1RMWh;j&}k##7SBhCtpi2INvRJWL30Q%l=eo8k< zb-}wy%OC^!ZnbD)JrpIN+nNd>?M2RbbOa6LsF^RpP&8vj`M3QSZ*{?4R=Lshf3xth zLU@7hpExV3_Yjdd1+fsMMlLkK3FdGCSEE8dn8e6-@`-oA_w0@3G!y0=UX5Hw9&bzF z4hH*Cm4Mb(7!;6NQSDE-$<{!SCIi=6VvWDz**jt6yQJR;MWFPUVUbI+HZ=5sh_kNJ z2hz?BcL6geZ7%h?UX5|@`s_6`rJEc$ein!^3H9yq@ zPAB+gxfVnez!hExsfJ0ZApc@M(k5Mw$Av){zs>}eI}EC@YHef^?57$hUZ1Y?89GG) z#Uoif&Kjc#GJGOwyg^7f#C`v6|_JHmd3O+cIa;Jcra8xRn>x$utTkPV% zMMHLKD(#x!?srq8js(KuzO1m;;D_p}$kr-g*_jD7)A`8F0>g4^?bp!(Dx(08h^g#9 zJYhQraUKFM7Jqq61qTU$f4b0zShJ*C25OjHjjFi7A47i>0m`JogV=9$|D@=K7aSm_ zVT2LeI#7jq$}qJcMt?Jm7~Q|xZTHQZ6}-XklxSGDis9`00ECwnTSJKABLxMQ3jx>} zP*#8fuhdB}dYSh*K-}J-vAja~pa>UXvLB7!bXJqt@{P@9Oyj~zf4q^q$%K)REa+{W z9Cj9!M?CN2d3<&OAQhQ|Gb*X)_^a(|pdGgp5<#$$3(&y4+3TeaFg)Z?{ zE8L2WV(TPpeOY~tkl^05%__FrDUhJ?=uI#w(!S|1{ktutbcTr7PvX*o-vB3__cH`p zK?f3%X?8H?4~9|Xe;q>CV?atvB|KRQlT#qC(C;c1BYyLPf8oX z1MzzK-M!HI%vQKSm2ovQ*-Ef3(66NGR9%`ey!CI>w|bDke=M{13_ChtUX176mb-OE zj4kh%O>VrJgD~jo+fZ7qvcFi>Io{-6b`8-xMh_ zvj%=g?l;JvA-t@oe^;mI#5|1Wuyd2UhQ8@Wd>K55(h5&S5!9Mi0|aZ=1utH+SWCzD<>0!u ze(WI$vlluGxP%0%F>+?@bF0b_yO>edN9+^qVBT4-JQvahyl>IHk!?dDjP4@TSB~7c zVy`QoIsL|6wB>8Z5@X4w3sUKzcGj)%lw8FX#EU2(e=e_X;Y+?He2AvGR%7F~zHTW> zq4IL?-OJLzYs;8|W#Zl+Bq97x8Oj=CZZK57_RJQR{JoI2F2+F)ftTZQEO zB%D4YRh)l;NilIR>LnB{Z_b->7VFX9NitB2l~U9ocEOpPZ6kz@?1C9S`~l0*MLsqX zcQO5(f5p}YIh?0QDn3AjM}M#{euHZK9lf_2m)dW)TEE zX_O{{(21pr&b&*I!9psF`9^YT!fNQypdu?1n3f_Is93y6iziyc**0U=q+!; zy48X1zgoq1rm1_34J)pGjY{ z7b$X#AqUxe9L^XYUy?X??Aho|Q>4&gaLl2!Qg$y;S*+4h^>ed-vwfCED-0^>wt`P8 zdp?ssHp1Q?nBJOrdcttv3P%=hvna6L!hU-g`f5@9L?Fd2uu2drxr8K$c*M( zp`mZ49=RE_0{(=2+SJz=|2i@@Rgm$tYSfRXuRBhH69idz?6U0swVoefE5z@$f2G`N zErPc>J+qpUz?D+V{GWhZDJLJ6ZAKDe$}}kZ86hb`(HVz?M-j6r!xA%bViF5^7!{H~ z?kpd|iH>RuWsN1Iwf7w}NAv(nJkiga*k(80(+=Bt_X9^eD5WdLfZw5xf zaxjEhB9%$?Z>s6Sa4?v&BnyE{mKSD%3@&~DU^(*RgU81eC_m&Sh7mC|zALaamsk-a z2B{G?@rYJY`Zj=_{?)2*L0xH9CUfAfE(tAgC37o#pd>df_a5^o0>>j}f7l?Ai!~x{ zb%|@k4b`z$ajQcV?)f$pqv@7279O5(!h8;U!-(VCJs+0i>0nPb8L~He6esaVWlzJS z^rkOE3*E{K)0sT*PZM8Y;+xquBn%_Ypxglimw7k|>BIYO<*?TkymUfo8lqPGkFlON z(w4g89V50-0{5QMnPs3ie}xAKToQYs2l~yq#}TX|!&u0iGJ@Pk=3dkjL~LJoB0Uq;(CYdFT&uX8pyOYa0BE4F z=gJ0iwdxhpj5|B7&rEq&r*mHQeVC=dV6D*SGU?agNL=F-AB;p#f3cRaJ@Z0}evo#Y zHZ@G6jJM0|hX=mjGE`>wpv5W={|-}ZkXX1}m7B!im@sT*f%24+ag1NPV^uX7du%;3 z0j{5S9>E$0{l$3Bjm;6*Q4kU1XjIQCN}r-O-I-NHn z?F+i5ntr2`<3v$;e|;4@&w;9%YB(Q-vn8*2;keuDS5kAM+3+Rn=u*yEXy#&tCJDsJ z&xH_U;q@OitKo9Y1(Iv!!;u%$bF3FzG9VkNr`yX^86kOH#Q44zXBE#ZcOR-+C=)~cnTxbDKkM$?l?N*da)uj-t}3~V z#@vMe=LUIT7z$PJ?l*k*l2P4+9gt|;PL-XWGdgbKdF);DiCgV>pPVO~Rdug1 zx~-7D_9kTet@Vx*w9z_~?^UYK=ALbvIUq9>!jMXNfAA0bIKH26Fs@O*m44eT<<;OV z6D=hF{*Bc5VES9=Zfb9EY>T{`)`lRSw7#XgR43ar_$jK#l`!i(4dU<#VWv$J-JBw6*HLV#%$i5BbmyeBB{3U;$3x&js5)6`S2Y6f}HbagGv7io06f zT{bz>%J7|?@#jrLMTLFn<1$Pr9N)B1;dak6axj!2l^=?lAc9!-1Ii*wOSl)^BAFV*pp{(6YZKOl=3Oc zf6P71s__O{pZl_;flI}c?062y!JWKDP|Ea;ZM4bD%cE>6RU_NQ6*#-)yC;sSLnKU@ zJ~JmU`oe<5md;{N4&hiCNXFnukQwUq*aEW!wJGMEPyS8bp<54xS@9GygtHA1Lyc~e zW)ZpXL2*UI!Y@)ge)U8_gir$UVe~QVf3*lW2*b!5U4Y4mtsnlBZe{z!u19}+AH+Xc zre9yw@RI;pK&HP~#AjnVH!tpr3x*y{E8s^d4!&03lhgI@P~;wxSwe zj?5g|xG%NQ&$K(yH{5~{VqVs8(gz0&JSgh@sM&IBr4AlNkk^E2WHXaaCqvmp3Gvwf zauLU7&-!InNoe5NgAM-efqL@e=YNEB2Hpz=0jk>wPo1reGwZ6C18Y%u%>Lt)$W?D~ zXQu7<*N8ay^BlgBoco%geulAIqy+dd)LR;yY_1#?V0q$dB=7Up$BG_6rUm!Y z(qfvx3Oq57tqs1j*Ub4Zn5J=ek#QBT?Fa3(4hiq1K}6j~&5jcyI;y{kiKF{MYbn)RRkcN1GJPPzQYmQ&_ zt%;?)eV0yYn*a2B>`9sQ49GL^6lWPz0vp|Z%+;D}iatl>QF48U8piu64Ail=lT&GN z%xjwBcjRez7K5U+ASGzy$$y(qe2*oW#$Js;_F%1;lAOYOB4ZV(^$5tZ3(&_&kdq-5 zL0=r%Q10ijm=Fb{!lZmx61G;}nb)Bo3av%aN7c~U1Cyo~FX%)Bi{h)|1ol3Xjhrc2 zcxfO8Sjd|-#`i4`uH#IX`BTTwg>`yZdrfZVe1hbhgDjzYgTDVp(0@YXs-4il+HKRW z^u+*}YhqMtNnF={e0{$Qat9)3*E@<^p;do`&^r$t*rSOxLAlF~q{|_4#VUR|OB`03 z@J)qd)|F%(!M6tXZe87A7($G+I@UqVjM4Tlne7b?(pQjj%0hEN(?BAq$s<5ZC z!6n2C^K%-B4`ej23%#>u+&cp7!5T5SBbzss*}1hE`jU9URr{-kiDQ(`ocEx=vY-tv z!FH`4^un?vjOX7UF4TfcDmfTlPk4Jcs&~A6dbDQulSX8xk-7-N7}B>2E{`Q<3*}kgIf^ z%vLAbK#n|YY-M-}JG{V;G;$!k<;TivXqUPlzuA37$EPmA>*8`I)#?8fO4P1T6rftB z;l_s!L}MB$c2roapYn|H@sL9TN;ereTthe}FQ@Ey+=&QiWQ z)8=Rbb>97k@7h>}mgdX=v17)57DOZFZq5bzTaYBpCWC6Az&Bu79{?F&YE}I@*rrQW zG0jhz;D6mE%ObG>0n{5_XT5MbrvOBSTt_8LK0^~S6<~casC#JEo*dIYTq{T9 zRkm&0wpQ7;ZQFM}@4NRt=k9Oc6W{%DGb&y?YN zjDOcXfUZTiqQc_)TcW1%MJd%X-yjDrh8 znh6q^_=#KKAym`i!PSpiejJS{(+`Lyh<{M4Tr|?r4rIY}lB1q%5FrsSVVW`M^?!53 z&L(#d7ombskfamY2Ydb1rr$7YEyf(+k)Lzlgl5BLm?H{!z`Xw1?p1Zo7Kj97jJlp* zjJMdoH5?AdT;*=;dY?3DcY;ZHfRUsX{&x!YNaCkj5FLaDb{C`7HjZYN1&qM2c7N&O zRD1$YyXkWf;NUU3Z^{?&Q+amIs6+(7IxB2y3*5CFHZ`hwYQVn1Fm)5h zEON%7;2btTF6Fsrz7Fv9v@>Uzf6Z8W-_if;j1M=(R^mK-P+b_OjycfIHG1*N*({U& zc|_HN_wjt{8OF-iz_9~0?x!WbtA8hCL8c67;LQ#LSFYk2Iwi#4F9EQO>o;?(A5>qV zgcD$^Drp)?D!h{P%7!DyXOcdKF|yX2Z!bP8qm~c=Z$_yD40(GTv)`;la!}(GIPR zihhYTDdnm#I7JZ)ghfJEvwz!ayV>Mx%4*Sk0W{-}pzGg%FlSGLVB{WYEe{sJ!OakZ zivG|o|Ej;2TaOrGnh}!MbAQeTfZPlHtxk2o&X?yu&U?Ah1RyzgcGy>O>^-zRzQYA2!rb?cKX895pjgT&+)0lUq)O=Gd>&Jop$5X$PMrYPp{V-IFFqFs4t|?vgLA+0+MT4I3NHEe&geX&UEtf2uZFjuwn{= zRPga|FMJ}M*;(fN4u9~*JCG`PhjgqEe6jn$fb5K`(p*38jtH*K+{~vSmcLZ|u1)pu zWzl>y_c6yQeVnCu0QYSRW~3bbj;NF+SUzmib)}!3M>`Sm;_u!`-3=o>-?FU<237-- zMp3pFl++*zv3=*sZ}Gkrh74XrLg+qX?IUoguNc*gQ~?U5Ie#>Bf%$n-PA+!}KlmWe zFnK%l31FOmMql(SG~m9FwxEh~9JSMUIc2C<(Lwj^$N%9}%qss=K~}^5F7Rc~@$JM| zA@&aWf+5Q}ua)6JvK`{L8b(2cV6XH#y>fejAQ}X=hs)Gf=H-0r7|Lvqh`&^zKoD8) z!{inh8#H<>vVRl9#wY&E0GN4*hTw7a3SFiZ&o}4%rJJTmHz28RmT`&MS(Ty1)F#D-&z6I8Iy`GK(0vrO5o;P9X3`pL zhMb4&{(q71uWo73qwsY*7^S&}9nsv_AcQO@FoA*7X>dWLeeVi9=VAvi2q0XFMnvry zFD_)N0`}j0U2OKYi0$191{NvLEyuBW znx1yOmt*B7wHQ6UEhsbC78Lt`=wAXelJrGFf`8J&-SKy}G=CNu6I`}sZqo`P=!_^U z&XV#mVnT_80>jL!r;Gg~vUOhKO%y5OhF1Baxx;EhNa82u9-}P|m_fn&$0uLH4CoBI zwh1CTf+Qd+)Q!wQcCJjP8L>X=sQe6yjA-37b?EfX1h-^Xs7J$5CVzKl@~)6RIX^D} zYJcUg@(BeXN0Yjf3_jc`xU~R4#&ZD~n1!Ij_;<)Eu|hc#B=G(-PMerSR8XYs_wu<1g!d!`<1QY77iK{9Y(`jiP{y1x)7ISEPcSMvp$?+7{f$&OI9#M2x$ZtO z&f&OI4`4kTLD``^N;S)EiwIas5h}+k0kOE7W47)uhj31~b%aq%|LBdPGl-#eD1RaQ zDWRNv?CbQ|y;Ac!v?Z}BakZp1px6;!1OgSY5nUQ|a4iZuSEz!370M~zci96zoq8mc zuni518(Zb`=O$1CRwao=_JRJVE()@2_;~_qmNY{WA`$gdpV0HKfoU-r9gLrTwOjk` zdKQ@Ir!3{9nz;dvM@wK!PB03|k$*t$3qv7^NkY7!<3Yyr0U7ve43QCfGN}m55F~K^ zjsA+b2}RGn1tyUjjs=&9ooUu_3KW2zC^7v=-m{3YfDnpGbTy_h2*cz4zW?t$RA?c# zD*o>itmX3`kx=4f7*QRm`&%um%a+Xxcivi*XwbPC%e;f{<2SN zegX?VoXg^yQyyhyC032<-&^|dU^ia@M?WTL3#aXSd9Cj9z^7e!g={NyO;NH!80&If z{2*oYjcTDak5O`*%AyCH0e>aZG=@g#y&y21z>*oP(8QTXsB3@twaK6%$>Q0IIuJL&!&l zRaBW@{J;dR4D-k2MQwI#CKs%U)igRiwBwB2c=My^&hx{PoCm%wfPZ&=wqw#pK_`d` zYaY%JG=qSi_f_2b)0-=a(M9n)*Wd)MBtLon;f3u{wv$_c#aI+XZ&{}oE5j$ya9qeV z?6`8$kPx@bn!A?g$ek}|1gG8I5I!5d1VIvEB(;kJWGnT@_!}{_$H6|~Jv7WL+3Nfy zOgJBEOU}8IVhl-<0skyp%LhppIA@s~x~rtO%lx+;i$R(KA>$VVyI*HYe8=d2GDB4Z~9+ zCFv||keoangWT~V zqZmrF5`SSpjvxwb5fWpyw#F9)H@f{tUoipL%0p_vya;26e=+U_F_XwVp;E{xE_edm zoVG{8QAg6}uy0AJGtY-tEU8?Wi}ZCkUrNyD3WM9+G}mk@dg-`@vTFAYBwV9|QS1Sx zCe!}LMAh1q9c*@prTT}bhLu2srs1IOsREx@i z3Jgx`lxc}%{}A#jq_Eh~Pj^ey7SXr%=6}^r7l-oz(`zYUEAYRWw-UvkccENPwB!3J zx_>dH^a?!}EwR>Tzb(YSEbIp@F12`8@4{Hu3&0IU#R4^u3IwCf_>#T|RX-aQ8j?W)|7CY;3}d9-{{2jPS93}$ zifJdQ%WweQG-)1zj9yUtrZi(KbOdzYj;yE(_;ya%J~DzsA6Onmjsppzmyu9UHnyuM zrddPRjtuuE+5r77<+6Rt!ZYB4et$W&@j+goq)5Q^@JDs|Q7--5qqha5B!vI@Pr{8gqgbw(Ss-@~ayD=4@KilYOWT3rSR{b)|XtM|- zgJ4cTes#Dn3lBVcQBR@F>17`2tv^?E1baZV{5*9hUI(Z@gcB2C}7oLoJn4NgGKc66k#T+WRhvA<|PYyq+3;UoEVH$;1+<2C=g*}@$im@T^QN7dTZ zlK6+OjC(WTpayz|O6XrhItqR%KWExq+!*v0liYwz87j z_pl{SJwpJG|WJ-4tq5I#O0)PFD5&sUpqtIWx zE$`8x7wKGG!}8#*I|NoBKi=8jrJ$^cRFH?9!wf>@*4f}1dwSrC-g|*(VvCvo50UEY zuKx>f4SJcMAv@=xEJzW}WXeg9h;HNbD|eluDJB?=L?hZ*-7NB++kRjWa|kq2{3X}H z1*Th!?JW8$Mv~{=9e;VBIFX5~EVI6$Nv8G3zb~0U{%uGwQ!_2f&}#B4a6B830;&xy zEh9A{`K7(EZMtx8cawDq5ef^wt*S`O=yPGUO=K|AGjKg^#kGyh9=RO?|))e-bLucXd>#(bR8ii zA^zpVAV$EhbEDtw_jq}ui}|W2X2xDJ3p&{%T%)Jo+)>(BEdVe3rp#d(w3(TEKSJ5Y zpl5!9sL&~>w)Yb*x)mnk@ZHxD$%*n)9`#h>*Dxs;q-LTxIKA7bkdU{C=zjurh8u&M zuJm0-(LY`zAb+LUUwKbmrH$Cjz9=;r8qXx~|2aR5A(Ur;xQ=oalIQeUbl4VWtz+F~ zP{;_yN=7pK6bu0bAG4s3LskEVWmAf(i985@+-yS{fFi8kP?jby4q?){*E;+6XDE8C zdQ|KB2NKK<6bssvYt~y0`fpeAL6ke@C7G*vtv-bwaDTZb8egPu167+n<_;plMBy3q!S3C{;lrQSap`IOzooqcE|FA8RopZxPjxVOj~zhx9hPF5C^ z;${`Zl`tspYXA5GP{AJ@Gl)`==JKFlgyP5Qih#!pYPu!;a;6Yr2H3Z*Rh}cPN7BIgS9oOto=AStmqOcNRLJ)wR!joHZTIAnuya z5xAGgemVReVQHSxEbA-w$kh!sej7vL0e`Kok}vfL*b-&3;K}C~Cqw)@frmG34kvy^ z?Sl>4;F=0uCYw=(vd;cTB_cv^ga#(vj2=OB3C9aU#e_AI3Rk>2?#08T$zV;LB9mSE5q1urHIA< zRD7z~2|)7ftT5u=PY&3tfgh)_39~*>o6%nJCaA5k&9=Z6?2w8_>W-~sKR7G>7I-{|gltqF4<8Xi- z_MlI#;T9RqvxX+{OVzoVf;d6c+FfSGKpdPBL($wb)Xn&txT^aCckF8a5Gl*(?Wt2D>JB4PR z+>;^C+u?NW;4_E3>tBla$;$Cl7kPNA=F$|L%SNPeYh=^w+&pte#mAUAxR{pe> zL(j?k2kuw&Te)N=+FM){4S(ciBseNd*5^WF%aCY0T`Yvmm=CzXK{;t+v4!(t1A^%P zpdR5XqCr=$8*DjYosRFcm?f)!218+4@PFbn>8gIKC}}OG zWm0%HLJdXR6HWVNBXsO0J-PFKZA+EVOL#t_Irmi988Tgbue`{0WI{{|MgH%I0Zem0 zKj*ls8!ypa6HrT?{lQm_tNruX*LvEt!UB`(K>g?WRn`d~_m@)f>e*e|63IhZw};E6 z18nl9hPPAhwhm-O#(#P0iem0Z(bW(Z^Cn7c)%rVlEH~CO*9A2MZ$sgKLYv#H{Sr_< ztjk{6#guYggyw!5;(u#D$EJ0QCHoJAa_-lYsIF+1KjoYE>vB-meZV3As6UKQ6=>V= zAp#Sa2XjZ#HmgUzx6f%OB$5;6|0$%bx^2R_shB51a7Zo*_lH_ zUO;X|Bc_?xN`JU7seYa3n>p>$` z-d*|2z0D%D@^G&)2&SGtWZUA5E=ue10{A;UZf*50Lr1kT!-KydFyrfim1O<5b2$hq z>kw}xD$9*_-`ybQo~W}z$L8;qJR@yPQdDcXyc2qU<$vYYQ!DZ%04)asYP|7Os5zS^ z;aa#To`|O1NFLACFZ)nyrKWWKXf#p8%h`WPPR#3yRu8pV)K;cZ6xjFA*iL5A2nQhn zSq^vsrUn83Pf!knrS};m$38M%Zh66H2f@tGNXep3-jMy4I9oPR$Zt+KvR*D$?R1?0RWI47u2Hs@f)A|6{&JU6C{TV#!*}EFUA*?JELa`*k z2!CMe4P(5?uj0T*WmCNJK9Jt*OgKRIf0vQ!PQa5M|I9Q2zF+hf4hU@-%N@A{?#=sf zIUTkNhv!ZfgS*_dC|xlN-l6=HM-=OE6(MP;n!LMHgl>$y%^dLsRE-L#^R$1{4-((a z55rld+wQ#3e=jE^^o%cs=s*otc{1V=eScsvRNGzNzEBfRNb{5kZm}w5`x^X-JgR6T zDJ)^n{UNCHFlFKUczl)h1ylm!r?h=|>35GG(Kq?RC>CXMSix}m4Fw)xEu2SX854R) z7Sp=;xje@09dCVgR2CFFdp#BmzgCof)76o{$CUzESryf@`S;FqdQUWSXSAPHvd3z*# zC;-r6je`|Xx7KFGpwzaENH$qrP492*5LE9dMQm)jLj_Q&YBb4&J@(qUgzFE@F>Mm2 zI>daGHa~XQDR7fGIB7QrCXSlBF>aCjD4I7N>p6C)5w1TiD z8BrNCjUlS*E1=kLH`fH90&aKmAQ$MCB7w6mnHe=4E~*@4@k5b$ zX|fBt>;|(p@0oJcb(DZG5V+k?**ue$w&2AKyu559xHqpghgeoH8vB081AA1TT6-MCiWJ%O$9tk{q=GC)#^) zGWv1YVuSvikbka$RA6T1lNTjaDgD%%Wc5*5q_U4%Y}d@tUDA2?+)@o5vssM|vbbO9 z&rEW!H>je+#R$(VxFV>ET^V&!hPb2o3SBXHktvvPn*C4<%)p{&YYt7q&|?6(WFnwt6wiWHQrqy} zoK0r1oqzPHB2SoYQQUm~TQPF<4a8SFf{#+EYDOS9-*+x6ZLEcxh2kBGLwK|zFba@$ zganx4q}0>X3#pk%$+CFmKnhTUMFBP_vEnkNhzTZYw3ee9BN5T!PP$1{T%z{VR7ybD zs|SNZao9`!5R@IKFW`1j6oE40vYxDJj)E_bV1GK%SP==`(F^Ra+`k4-YknVNaBu9_ z!umndPC+5c&YQFgA#@MFq>HPkVXgdqQUHVHtapEc^Qp+}#-qv1qmwMdlp5?Wkr<(` zn0E8!)FDn~T(ye2psN2;2hVavRv_P%SF}%4MYE5!EwX?5C&Ig2VG@kp&H72<%AQVp zf`5;P&$T1}z}tOM)bRv!+a&w-@5l+`LEd@uEN0UR2r2A`#5tOTKOp?^5_-+IX~~{5 zMHyVB2tUPj~ zBpLbYz=#V0P!@S+yyPH;-}Wxy2Fh5PUrV4F3wH@@kkZPqCcp-z72yXozoa$HKY#l) z%?B;*$_-%b3*u9aP5!m?4%qEYFGxDljf|?KxFa^Okt`!H^WNIwyLT?>EiNjGR4Ivg z{*2k3XaPJeOG&E{{F#Jk7f0+(3j880h}+Z8d}A-mJ6C{1y8jO~Pj@pPV{QD8kNw^> zpJac~i5?g!rS$y(7Irb?kqRlc-X!e>er$=@0b*LsqVmD$J_=fy zw5XQR7Op3cvS>>l+|-;})Bb|NDI1lpS~n%Vqs8VQT$5_Qx|+&;hlAY-1>^Wt>eW&L za}FsXG31y8gr+t^lfC=Fw;u)tiLie(C*o^YJ_#M*upY6y(Mt^9Dd_L{Q z9HqWrV|uvXhA987t8s!&JoDe=r!>9tFxbsx4^P`cC~J0mXr;>dmPvJJig5w0=yPcD2%P_I94*9j{Uiy^b2!fW= zVXmR%6x!a$qo3LXT*BEadw;O{w*bWOYHX?4B+>Nra7}A z&oq6FAKYyr!k(~~#Hh^p( zoJnsvfaQU98OQWKu}-UjuZ}={Awh>WW|5yqkfo)dp#O}UT>(_LU%cd6tq6!;rj^-9>)@5j%cDh1IpODW`!8ej=u zehe$Q@24LdEARZ|gnv3(ff#k$9a$X#mqId)!?An65~hZRNvPhGpA(UuH=2( zyeesnIVL+@cOWSei?f5DAG;c>yE}L`SXw*I`?H_egE0voihnBCy@ldEb=U8ipVrU} zXvYC-b$u|~mZ>0`I5K(k91~#9p0l6OsT{C8LW^5P-ia$`h@^rx*ue#ees#Mz_32n5 zh(9Y3fXi5L#maI#p_enCFIP{^Ux~DRcN5mCJSU%x@P2(rJGuDUOJ?R#%dad;bZfuv zfHl6)?zED0SAT~qG^ypfLGjBTV5o+y(-*vUud&1Ye|mX)>Y9mg*3-y0A^Ob-^mN4< z6p>eUK+LP`XKH!h9)3Q2`9HNQ1!QA>@YzU+Th1%J&~(0jES)OSBI1Rnr$6Et-hYnv zg0rvIzHbHj^(H>U#c#U5LF2tWjRrvIiO^{FAYlpiTYqJ0*PPGB-0BWv+0mDi$_2># z@7RT4+-WAU9a08;2P9lKQb>q z$kQ+STz|g&+zz&}6(qbny)5)7=C_>)OXtJI@qwY!e*Cs`HdYUUa*icsLqWPG&9%F~ zmwNHp(c9zeL{nut>!kMJVR`5d*(g`vuYRg~1ZbQXIf`j;QhPvk6dTMf*AJ|16B*Y(_>jem)B!ba%4rvcQI06%;K)DR6a`G~jZ zNP^ZO5O335FZi+CdkHp?dUf5M_n;|Mr3Vs@!107q)W19(T+D4*#_5nQzyDN5&JcBb z+yKv-J@ebkRogIxu;-301e33wipYB0{mf-aD3r=?@jg7}=7vTRUlc3KT)aQsnxG_J@=<=BNS05E01_qA5h|EHK7R@ZO()e2G(x^=>7i3lxK(6?xa9 zN(K~J;=(oGfiO_&r4)~b0|llx=;3}%oX z*-y(FA%;jN@?^rC0SAsOlq)C#1bp41$PytoM}Z|;Xn_K2%(4!F`Oj~E@ACI;#4kjE zr3a7n|9Rs-neG3RjsL71jBNky*n@009ptf(ksox#4fLm;?SGrD z8%z-Bv>*i}PsBJPA_$2@A|Nyc6`nz5L{uKp`uv;|N^{}IOHg=F#mk5SB3u+W5l?%_ zhYgd!qD#4i;$t2C8^1{gZsr+2=9$UMOJB3tG_K5`e;Y^)5%c3|;mJp~OK2CFPssC5 z@SFp=ag*72l8De>V-hJ#qv`rg-+#JwPNo#TeVKEDJM@pa*sc<+MVi>J^;GbbvG(-S zjmxjE#BkosW!EktK}zrsH9C9>&~=%%_U6~uERhq*H0T*zo3ShySI`!&QCNJAm7%l) z0dQ91MT0}k(&z-I?B$mWYmVZZTWmqg1 zN>w#vEM&s!fF_<~6_p;82}lO*&Wpff-k(n#mm|?P?(deh6N?bGl~+`;UG5gQdLi8w z)V_TogqFejHa{1f6D(!?a-9N%lR@$U28!9(eeddW3pKQZEx7tq8Pc#Z1xE0GqZ$Ni zkB}!b zIZ+?ko48<6X4T4;2z$=dQmuE^@n*z^t)d6<8uLdM%eMVSRaS35M|QfWpRfL99I%Y% zB6?d>^mwLKOK_o(_?iwcr83sMDPY~Yf9HX=FKxfcN%`Wif!EqZmq>~k*1-ciD*nH!ZR>$T%YX2rx1&)I=zJ*I70chz*h4$3l%d9*V ze4>BD*JTomAG$dIOn)R0HOD@5?a8&&nA?{8%d zG=Me2kWcOagfNToztu@gY03MusCbxDVJ6eFW}2C--D%t168@$Co&=|daNtmhhZ=NMD04T^Cq zcy``?()J4YV3TR8cARTx6sfCVl$K&LZ2<4rmn;qsP0CHLB5=o!hPT)?q(NcR+=Y2%p6__iOKFc*JqlDNvusvDD8wr}?7@LyY@~KgnJa=mcv&b$dNG_i7xU6#K7@tv^`TzIYa0$F)&1#VmnHJp^>W zoP|4ZWBWq36r99XqnKRj{nMYtj+T) zKvL0XnbUME!TY`G<6JmJ58#esMB+?MN%O^fv(CL;l{=8z8ms?%(r|U=<^8iv41bq% zAPz4>2N+AP6AG6h&>2S~7l|60A3YH71<{++TA*3;t0Gd_eS3rSmlvT$H*y(Ia!tn_ zE`Z10CqG&Q->W}l`j%;Zrm}9+>jN5T7_aHGftO&4Wpb!b}CSxa)q zD82!BNoN1|9%l4qgLP!|T?;74jek14RSFyD3tyP53Lbx|C3E#%u||44>BVS zJ?jwT$QsOH`U)^pxn1x&?#g;A{d-MIeqz`3?(Jc8zZT3D#jUjzSu7%C>N9JM3|ie}flhKptr(VcHKW`7D!8FU^gk-4Ra zuGr1->v8t*P_|5HIeLdg4YpQo&=?ZPb%X>E;m2@n-bX(0t{uaT4+Vg8Y=mFnTrjz* z7uN**%W>7ZN-D-wPSbB%3dtr^>+IzRuwMZ&C0$3Z7d4aaxspEokObD``>OEN4E0s^ z&A;b&ntSy^d$_7sPJiyiuwOBTj57#{4PNR`SOL6yy5KbIHPKY*(0q8|?tkhgg#aU2P(4pCAVJ8` zY#g%Po?VdD{W56a)dM=0yEi`&3Zz<5rJ`?Jy;s}xzFe|6wS=++UWmPD5ZQ;|XYdFE zCzDg#e{!>#O+uVlJk|9%*rA8u3L)n|{yF0h-m5cEcZ7SdJAQz5GrLhlFe&zH2R$62 zMabk*8e!n=@_&_m@5C5W^WvVjR8ymkj7AvoO#~9tT^SQcI^VnRT>N>JF&Kqp#+ya!&=aKHpc z_KHCY5L}KP3d3NZ;`BlX5o04!NJihiGN_AZ^;5@GSbxp!70sv{VI_f`M)uBc82I^A z^2vJeQ|Eo?E&nu^G8Q#)a#%0Sgt=7STmX zU@V`clkyr7?$rsse~Q+*6FA%$=?n^l9Ehb2!;vodj)5%|5wa2g%n!+oPnjX2zVV3n zd!GW^wtor=0bZss%C!gdvJ((Yqx~_-)@{2Syn5y!jknZ_@Fg;~V(9Y}nXy3IgJme^ zhiKr>BPZKVC8Qmza<8^yEvEOTRrrsF)KK5P3FztMFC_Q?A<44*d*WC5wn5vlbP!<@ z2FgyoPoNAWUJa!WLc0BFusaWrzcDm~CAtbw3xAyO)1gxhJTHtfimeZ#`*1@pL*K#~ z2JZBmB3lo4mYrGgzXv&n>F+J7v>gN69pGAPx!*NTLI~TU5TFS>cq)Ii)(%E{#>C*M1KEpj#xmq@D5R`pijzgWsPTY2k zHGcxThmW+P;nan%s13$m=djGz*!T(R5zH&#o*H(tn@t&gpzj5kz5SJ{cGC&J=pf@2 z5}oKUnCPnD`>VWiS!d&BiG);e{Lj=-BwuuE6~=TYpZ|KMAr&)CK*MZb&|pB>qulHr zpQY+7RH}2lnK^ZrjJ`_3NJ5Wtg4bP&{w7)aQq4| zxIcElqTrT)$e~ayq+Q8!G>~yDj(5#2F?${~smnTT_@ssAC8kXM)Cj2?ns5yXU4J8m zh3x-gBz{Psj{3FR!^I3$Lg*FTZe3V`xtmGNe=vJbqoB85OlKgEMxaI~!P4%ZyenG3 zs~7ayAl~uA)Ijos&rk2iD;*e~KW@Di;Ifp^m`dG%p&Pv>HzKEL46K)^;4CCJZyr4_ zP&3gRS5Ixk06(|FdrME$>Rh2e4u8FX&fPKD)ntZE{!xljA$xZxF*Q0Zi_ZR`?fQrP zE4X>-J0?cN*gIWb5gs4(s^Zz{^D4q2<}xU@(Qyke5$D`<176k5qVz~IUOCgT^O_w` zc91WlM4j)N`(~c8=+P}aN#q^j8g4*eLDMv~2cx?SdWj#G%hSzve_}tKqkm?WAx_@8 ze)?qtl7n-tyOfnk%Xm)vvJRaYx^r^XT;Y6}1D?MM+N9fge*PjyI^)0=mCl^6AVx83 zc%E{Lqc0yfYgN~C-|UW;^s%RGaU;r8U)&28xqtbu{cWZ%*wh~9))TVH`1iK90JG6(wK#NceG_OQMYp%> zCZX*$yP9Gt{T+>)$=oTSgf=!79n?f6g-AS0`^xXQ4tcMVLlU0ZK9x*ml_^#wYr}U3 za-R?r{vg0RVV!^K0>fvuV4H3n)_v=vG~7aP;E;Q!K7CiM-HCohA%D%oxfQq%rTV7( zSEK;>KC_eW?vTy)nANOOMt%NC_=ZMevjb)^?WXHeS4YD{(MubLjm-#l;c(g~PHIAQ zPY;ZM(_CY(+VqVrlYcy{X_4J3?qG~2BeQC8MF>qO{&(@D28J$7#sU#Vm>@-zBu!od`B;{yV9wmiJ;&|=KHk@}AX0mv(P73qU<8~3 z_-7#n2q7@?*zeg`f6G-jqJ%w=FYuSIl?d)v>E}y~M^P2hLVsDwx2IFDk!)7b)|eVp zzq88?K|$(AIq=af+a3K{M+Ae-&xM~byMw$Rrfv)sAb&{Te!|wbI;NXA^&9=ZU#B7@ z_h7o38&)OpZzAFP6@-{XC}tT8mpYoyMyu;`37=}O2098ggw=vV|GV8!-Cmt(?1jCI z@eUO0?&OHa$A86*!srNC%{o_wz;f*SIL`dCT=|O>MX>BM{N;XqrjGo(_s)+ zOs;0b^U#|1I;iFR>6c{Rl!r}>8;t=0EVrj;`0K_OG=B!()wzCbfaC#XS!b1ettI7D zSnQi=erRb8WaN)nenqpr(0ogng4fM1sYCe>fP$y@TpM3D$zdjV%HhX`7SI5{e<@NJ}-|UQ#^U|U2i^<%_JROg)ph^C1GB{+!KifHg^c4}I zYLW;y3&ju=ID;e(6d!4()fV}}=6|cZXP7cH#CbOxMu?!22Xy!X`N(S2#29FHVZR&C zR!4-C=0p4W60{lp^^U@n&QLhoO{N0msNVIHo7>~f3C@50pjsA>kNgbZ07xmY%or57 zplN9bNgd&?2eHBlxJ{q1rtL{PO5PwYdncn9Ti9IoM!54978Ftj;i#W449VyufPzY> zKba}W9py)F^gExQ$FeJaGVGB~AyHdlc@j)F`VAhLM`rLjLj|_XAJV>)3(u}TSxmE2 zzQfnZ(ItOqLWwD&OI_dL&x%BR3zseh10#`ydSKxW&kX-R<7*Os3$@atoiD zj?TlhmP1Ks$nd0HNQr!yj2Kk9S1Ii;I)@=}Wn#&-D=k`!PGm0e%QJv}S3xTZN(Mt} z_-D~11Zs2{MMbN@Vwikw4-r*3Mv|y*Wo^N$0ln3;44?A8(7=g2~ZBr)oW(IKG z#-$P)#Z*)Hh_o8~5FOn51{K?YTvk-_*I&I6;pk})V`Te>e;83jQ|n1#(_2(bw>e#I zl(l8G>Wby~EBh1T3?TmcRuh9t*7hI1Sp%5QJ|_W8E7Kei7hIi(_K_6vtb!{FP3ka+ zic)|4q8tG9u%cx9y-*U;D?aYBa`@8^GL!kldtrn^+7aE7*!%I^%d{b=D>cYcuFpz} zl6HG|Zeq70Pk8pEx^j}weUj!Mo@PVjOJ^f2%bcAXx1*5JV0+Oc{1UMtI5I&jO_oSb zD+vZf2uS%jl0RGj2S7iuhM%Qm;jLZomI$T#o}N zsf6N4OgT9G!?{dh=i@dNh`)6)j9uCQn)C-=YY=V6E6jECeg&pCor{V9C6csrSxzW1 zK24zHg7~jX_k03}4w@hrkCR$ZoRjPvhFoVc^w6apH#Ng&3a-_%9rp7i0165SKz)Ci zS~yqz>YpvT5D%y3OWXGuzh1czxTr>Os?U-B>r-ZQn`f{Ol#GI+(A_`bf=DQWVdSj< z*Fj~2G>{rq{T;(iE#uBsBnQ{FGoBq07MsLQ>6p*-(FkqK(3mRN^T^XdzjD<^V?8*o`lMeT+$kgajl2 zQsfSk5Q7SmMyBg0t#j9pbc3C5)_Km@p!bpGO=EU9Pr$tsH-s3^#^d5>bQQ3KpkG@@ z?=M+EkuO1)RzSq}*V%erDADHu_*W#y1$3J+QJXZh>y!K&RG)k#=blx@K(~KY8x(5y zh3(U!Z-2F%2_B*uJ}WUY%@0eU*z{i&f)Xq6E^IXITm`0(1P#gLl5B{bG@m*Me`hg= zE>wrpjQHB5cHb|kXwOxMb^MQpqWN`V!gvTBfryE`Qw_o2)V5EZgQ)N@e`oWiu<7%4 zs1g%@;mI` zHZwdklgv(LbKf@MY#>1X0t5&Uhq-}7q-2eU{e)qtf`9)H z0_0(@LbFNVW%`_CSGRcd;}bFkPv3WI>UXZMM^bTByOnoG-d%rtl$=+y+~djc`2l5H z9zYNW58pp|L)dr~wPV9sO5;WxAn-j+aUM#7y7&SFAhs?wV?#_!>=>vrRh@8u&GsDI z7!aa`pS2@On&4h9;iO)YMR#M+5D=n$b7Zr!L;^)pDO5~?{t~r9rf~srLcs<>O+N{u z8btx=@uDTJap!-jzrB8JTk=|eL>Yx;`@pPrwr$#W`tb8Tw+T}nr{5vCW!ReTDE$E3 ziHYO_42;q&xb#+T2bbH%Vp5H+#hBDx`wXz>7mH*QFZY{cF}W#D?ZFb16y zyu|}V476z5h}G1(g?~g2m2yW98^DKj#GA+GiVcq*4BbkK~%=X&)$6W-Zqz#ziii9i} z4MC{EIOS}E*E4$SFYj`??`do|d#DE0cjxHSn;?Igi0WgEwB$}=!r?W3Dvs`3Sb*pe z^_hM76ahvl+8bkM80Zen@on{vk;;Ab&WpKCjnj3F86ufzDq{867mfKRHm-AR zyQQaCLch(Q29Al1Bx`~&>QyhcJ`hV*-0CgX-6#3!mmFsco z8p>DV+{?NSyjyCi0n`YZ{ja?C9YZq7Qs+aj~n$8_4#bCE68m>7N4B(>oF) zyNl>`UUDey4`klOJToJoJAGn^EvD~re|+YrQx*iAhAt5KFpWU+3oP39Rs&bA27Z4t zr&3N!vJuHn$0+_yZ0F|w**8jCIAsAWrX}b`j6@2}D@t5kpSp?k1#Isgq6^lE9w5FT zZ2DwG$(>?^$?lt|-zmys$lMtci0BwqFueS!w1S$}5thjf6xe#&YR!?J!x^h1^cgtd zlKR2=)@PK_4nNN^d6|stZ6;xg0tIX)wN1>GsanDA-7jO=dq{p{I%51Pj;UVjP z-8Dz^I2Qv)@k_pGB|mX{Sl&Z3XzdF+?A+PZbrZ-L56M5}@vo#3Wd&q73BjKJ(4I@X zc3#j(dq56fd&QGi+)6W_zK%s-gis=^MpVo65^6C-5hQih8BN_y+~C$mF_C}Dv%_pS zG`0kO9f3URK`EMXMsV$E-T+v%Vd3NMwV4^)_`VDpgzlM9AOOd*0S+f#j^+Vm<`qSe z59HC#%iYrDTE`20I2-KomJtta+9>?0X?4<(~q`X zV}cvgqWl~ms3DnmthBrP8})zJ`xxTFppaKX!L93RxfX@gdLb4F1CCyTSMW87<5ie( zOOT#7X0twLWOn}4g^9wvQ>dh%luAbQFM;vnPK<~bT`f4%<=B~VgklI_IG8EsgIse1 z>f}d!SU|+4A5Dv-7hqr%R)P5s${RQ(K`ceJ=siYd8t*6!0t50PUHN|=9cMM-01Vgo z4lMJ^eT2F2CL&BOltr~hcuf73CSElz)E|1+KsPZ2`nskUg(kqYs{5*JkWhUeTR|8p zPtMM-*RG}EOXQ@DMcP}mlGygpZI~p<)yb1F6FJK%<2Q;6k__(y@am?BSEAsp zs^f%c*Ph`MioE4mQD}di2%10D_TB}kO}VWM5Z}evzt00r8V5rGl0-5gG06O_yz`7K zUdPa|ud_U#sZy*5z2neslerw$m6RQ2e8EpSuSkDc02LZ&n4*nA^QO>oexbUj+6oof zdb4n;c`ffS+nCd0v>}#s1y!{)1N}yK*yKmMC7s=ZS)Q!STGM|&EgyNhOR7?$20Y-& zW+oJp(bx>-@1Mbc7o&-P)@@xuc?Z6;8(u1lYunc|TPS8dwt%ktyc!bTnl}B*EbsXA z%XV#?>72eEy!tP);SxP4z1AW6%w{yt5%CMM5wHH6X_0nhdU@ z@n(~cDBWSeb=iLz5EQXtvUBH;8Ip?#WxIc&8kZc@V=??PIzJv` zfZwZ4VIq!399u1>P-@vW45;v#mPjv;LH81LLUSp;Sq%XKbH$g^wXnG_w37eoQ zR$vQ<>O1GH;E3$a2HjvKM~hsvP<;6~Zv;AS5HmMq7mk1JYQ2=5ndO+DT>{0NfOYU? zLDx5p`o0}d!4&mU>^D!o4-c-@^PXy5{RwrF&*%&p83yazX`AmP0a5+Ve$rN;G8wZg6VbmFalg_dO8`_iV9ZkWxC0K^C^!fX@zEYV3i}4}OPk$7nNKrByv-4i>|j#NT}ktG(Hb;oj$0@dVhBhKvKHpIM>7QI4sxmTd{ntB!x$bc-hAjbNs?Z={%Q4;vU^LW`cVF`LjL z6gxAO$8`iBu!4*)54r_YdH|buL9#-QjzNT5%P4TcDNl}`umv)GP7>o4wKDZ;<|* z9x>LgwLz27NjT~iRAN4-e)LZ`H(Y(2=dpV=6Xs^-OUqP)8^;br57BHRcy4l1R^KwvZ)J=CZ zYP}UlP9VDR)6D){VQT_C|LlM44bunNIR~%pX%*g?&NnjhY51ZSc-O5fu_O2LZ_PW19WcZ|U6Mp5InK~=2NKXvR zevfFAN=fx3_b?6u=Ji}?o(|8mJe9n8j+J+O@nn`~${fE6cn-2U1c{Xs$f>;ep(1jQ_&XSg}2B$BoB!bZmuh+L@k9m0j z2S+(%Jq{oEaQ;0&Zn`?`HF@i)k76X+seh_h{5?(fw^Pm-IWN3pL5jg9s7#gFoI%s% zqSsSW8puc{bMW>ulXT}}y}uES#z`(QeW>4VfOI^=%Qjp!Y_Ww9o~xTx&(wwz$w_ir(Q9k1aA)RT1)ED}_8%^FX+ zPS}E0hw6V)JZ!@4Tpx$9X76Q5kPs40NXe9^QR*@`@5A5(vTE(u-ArqxOdjP~9#G)|xK6qSQq z^%nPE-F8s~Eikg|mvruHW1P<1tKVI>c|9SA1S}l5TIQ;{+}aYr&8@MWm={vZ!ZZwz z2&yNgO`P8E^KtEZ7^H{3JhmKCXqR7R3(q-T%hMm9e4CH2`(o(ES(Szs&!mBfW6Q-OM%m$EFww6Z!w9{K7oP=)S0X%fBBOIQZdEbkXxaFw|5kMRU^M%qa!8@rtQ@J_S)GIMZQsz;Rsx$CERQeP2cg4r{@{I_A(@`e)**kM zGW`?{e#}L_u$=e-vFMgJ zOn_b8kjT}KQnt@ zGer;VhIW^{ViIymedrf3{-~}&&^tOC#Mc*!ezX;r9So0p;eXl;%x^nn3ao#vQsbQ) ztFfE3^Y6Q#bX15VvQilJbs(ZDEjyl7O_=Q*#l6SVlJ<*k7q?5&!$x`1fnL`5JN$3D zApn2@2Fs(H- zRnlNQT@1jA*_mVqCrpceEyABLdS;bxJNf#q;&tgdD-+now#t0ZR|9|WZ?L}|CG^{_ zd6l<^+mY>yTH7spu}|_-FwruNdtud5yIY@BuoFo10|T|_(WH`Q2P;)=FF!UzGRLQbxs=>}I4lu)uiOnqbx#0J z1}`k6dn)1Xm;>5hvJro09mg&9(dd;1LBZUU&)(W?AdS%V{#Va|XzyYlQmkc-Hrp+s zImM_X&kFqs=C}A=Bng}VhKC`@UA{?ksk8HAKix?>(vq-HKvC_V+UCck;Wj@naRUQV z%JK&_0Em)pQsX=_S>^k7LhpJIP}U9BR#cW!x|14%$yjd&u$+I_iw9jFOPm+$i`Bny zhV>`dUE?XC7$a?dHV0dWX^%^4RIxA8}7*McfW=Ka!bE#qSmn6`~0? zRm*7E&TkDBSfGEev>0s+Y-xHsPY|RvxjK~BucUWXZu{A&YV#=gjL5{O@qVjC%C;S&_`hKLHhGuNbchs4_6a8EeW(#hLM3( zU{OPJ!kWX{!nzVBo_MeTK`sx}VKjSs-t|b|n^7l?i*zEacmuv0K%cj&x2sd!1CDnl zL;Fo;qyv95nVs_-JJ%f4d(DQmR9G;Ua(To=9jl=XWr0-hk(RCPMLKU-2oa@U!Od%q8(ce5*r%c}np0gYI*`NX#M*UludM|0bAfj+W{f@b$0q z2Dg9ZiZO9$!z>!orUGz3l}tf^7JTo8&^be2>xRG^)FK2X?NHA%I&*Ua=`u+b z^v7}Nf$x&gWx``sPF8I`1L zKj(J*&`iN*+BKj>N1D=_T&s3yuC;T6u9km*xF$n`U3h5l+~5tMk&k#5Xhlp}vVIU+ zYRS=5O;+BxKjsD=uU(ZNBxE86bY{e-2U1mG9u+v0WmS}QS<7ixiThsbh~IPu2?Qv; z0Kr_z`|J7md$=dH^T9J=!{%F5*9H3g9bYcFzO|K=pQF{6Q#A{p2xi6bcF2)gB$t00 z6&qTxg*MOVLe!;e7@+!uCp+$jUMFiwGK-QhL|q{3A0p%4y&(91V=@$&@rIFY7Rb^T zON?flke4zah4lTiq>Sp{323%${7_a0)wg`<AxCslu88KcyG4#-jAgVNhc#)n~ zdCc^2USVQGlY1u_b93jw&diqHFg$N>~0@|3wl`FL&$dl z2`v~%#r>s;&_p-Uzu#}ZE#ZlU2;wLsBEql6&={01Ltws`DZleapmLr8`)ufVx>trm zBK!=!|C6T#{fLL#g{*2ogrt~v3OJ#GdhHO`c*ZZa@&f1arIS6^(Uz#^o&A3}VOww_ zrz-FbQ*1WHagX`Lf{+q&*-SZ(*#Qo)FKZIm3TENIe*kPeAmV~cLKjMD0?)F2(}GyF zP%Fz_rug>b)1LkZJ5k*PL_WJGnqhW3%E~l2X#ZjSh`sekO!o@xD3vTI-Og=xLJ!d7tve}a=E33p&%1q6x(#XL}|L4cmk|JO%!w8j7*O|-GsB=?$xO|feS#>QqwDyE$WSCEus#BJ;T0~ zCtCfZ1G>`jiO>t>iW~Dv%RxbF3&h@u4bt!NN6tN0m=qi6a}R%@go@&q0YZHBMUj+2 z&mQ)LPnrGIZqMvyeJOvZosAA%ob@K%0HnP2PU{&!ST~NGi7{&VGG(;urB-Ok-t6cx z-ihO+61w%6P=ST9pw@eK%!)!oLb+#&PshxqF#%L?$)p=0!T%|~QYf&*FX&4x%$yeu zz|nqsYy16~u80!uJ+XNL{{gC{7XN~3@n>i4hD<^_H1z0X!xMk%c;v$0a~e1|6o$Ci zm3md06?^MJkw>zD61xf?xhHJ&d)J0>yQnhEQQeG#IoehbIg&}7f+#SPjocuqljJ9( zQeqb`C~S`newVf5{3a6{o?HV|cY|Lca7E(>-O)oQFB@18HgH*XIJqx&-ep`9AwLXc zYI+(&uQrfNZ_9rS7Jo7J3#s&b*DC^!hWRS42jM4R{zXtIp{w4%&=UiR-8h}+(3%bN z{j=t`n!VG|OId2vkU(lkfuV}0gYE`Ig3?c>7y3NTE}Fvs4h{bgFQcJ9;Jy;6bpNvs z$^8Gd?1GOErixGUmD@)H#1E-0$p0gHsLcYie8{`k{^X zmNf>$NIyTkI=o1vhXcAhDpjtjGJo?HreEh=m+pvNUeZ=%R-TEX`n+sS>#54p*F;X7 z4onwyeVCfxJF8!2$@1?^mM+P1?qKqJS6G~X7

axVja74Fp>FHMG}1sEJAqg@=== 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 z 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

q*)e0TV;I@-Lv0>37Adx<#t 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

VLeO-f(|&gzB&S61B(D;;RRvLW~!BUSIJG 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 z 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

|D zO4c|eeyNW*;slWvVR^G&Dvb?kYpQ$3yV9+he>AQH)U7~K|5b}!Y}BtZ_3J_g4O03I zQU(oSLxyp|BfVItUsv_(M*0nRK_j?uQ97_uJOHR(h}5sf>em$Y>q>upS^>x;LKef3 zO)A5|@@9SzzyCf;r*d_BJ0`XzeY-lAwq@FPw#{&f{noifACaElEF8gRoJ^~(2B1s2JF!?aLk~_qE&H(M&)EzKHDGtult*vOJ|=Lk`L$agA#AEQ}qre`RBi z<)BKIj=sIfa(MT*bxf!wx~LxXutW1;miFYFPac`nj3V-$=rHcRFtp7^z=AzK;UpC2 z44UI~+U~n%k$5=ha`M(ZRYz^QAji8hO`9i3yJ3iPw1l+!Q2wlQzSC+9-$MR zS8z-2)kxnj4qLvR3q5iA0EF{kKZdB;JRg@rX}hhW4J+cK^Ǟdaf$e{zRxrsiBb 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

Me3^j7@_N-A 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 z z&S@W6s&fa|(mBDwMm4Op$K?^$PojvL(=)s86oci%;XMmx0fVf=aX^@2fAUL5jT9Dr zpc`&l^w=`jz0G>YZbpoE^bUDqN?PNglI#gO8*-Nr7AjZEQ$i+7hbzOZ-9aO%9us3lJ@1FVubAKYZF$ZUvpCnH{nKr3;=4LAlaJ)p7QAea#5^US+WSKyBKo5AhwWO|Z7Z@)V?*lf61>N-=Iw zSiO0;u)`EK%a@Ljjwb^Yq!$HCtimzy#&ZXqX@wZI`-g|cFEa5)Mdt3MQ5pS}2GYg`8iCw$S<~u8vzSk` zEyF-EJ#rss$+neNAE{B3oBcCcR~Pt}B)$LB_(D8qucTV2^jullS?F2IYf*nB+(=~Ge;8e7+-(@3%2Kn|55LBj>j$B9!#XVQ*?s)C(?D@Qn5EaBC`e_mPSg(UOqu!l6Ytq;X zfvwm;aunxb?{glbR4Qkx=42{m%9C2NmWfu=h9wtSSlAK$e<0HaUPGd}fd&!jQ4W^H z&f@|!={;W`=b9q+Ny134#2sFdiga@eui2g?8mNKUvSBRNSYRMuP*C84@Z>Bu`0p&X z=3^f|f{P>831}0pr;-uaK0YOgvsVZ1E_h_ooQ6jg0FlI_aiKmx_FFQwLh{ z7o%?j8&v0;e*^@GKv$h$w3s+r2VmS^gwYaBYFzibPyoa$&~ z(dLlXHJq_ETlefLfM8;EsLE7V7d3e5T&0e{CiD{8KxWPC`cGt5!m7|na^6*!Q^#ri z=vvw9GBWYm@BlXaG7W#0DZ`x(hqA+kHpu5-x>TpGe}r3L8WOHvvS(mx$`s9lN8dSe zj-SSH0n`J1h3!w?$M7vFMIY3X_hdhR0lTFIUxD&$EACQDVcT}HuC36NY}O{I3)*Id z^sfGNUdCuNFJDyM0Gw@AYGK7-N2!T{gJ4;?Y_F-l6LU-5K@>64WCwa0$DBi>j-EP- zsv4+Lf2u&!XBDwufY>UBt#5@t99kr-7tH+&$t1lxN+Q=$dQor8DW(`Q zXz-x4r@R{3i_S;zn)8|qka-R*>U|c=Tv>tiV1P%?B9FRx7y+gl*Rw=_{oPS=T=ns(YX zaw1S75lz-TauiETfs5n_!azt?E9opHdo3N}zA&bcQ2q&X?T{n~Z}D5J(Y1P!z+=)nY;j6en|qNU zU)Y~0X)2bC())Cl*&0k1?8fAF*iXSkk{bSoiCVkf+>7=8IXM-Lm8{hT(@FVv_v@f1qY)b_nOwP8WTt&vRpzKY!+Nfs79yo*Q0x z;2o~gL+X*aF2?oOt2pi}JnjPwWrKgW03@4#PLpg2oi4`<-&sJBsr~f{j6Y>Yt_sm;5?D*}5e}Z@o zU6#x~GDj&_^=e41r2iMh(now=8bvW>gcyq#IQTiai<~C{!PdrAmA+GPbfF#o@ccNvX}JroTqn8`>bR#Nk@N*5czyGhf0~`Me}iO0aH@lI z5vMx0|KfaI+2EdrVM25pg`B&ApN{?o$!|G8HAjJ;rs4PH9Qm=HL@gZ{kD2jtNtg=n$P3 z)FMnXdQd~qvC^;QPq|Yve;Tr}6bY0N2!+Sy-ma#jiZHG1@z#Imm-;DHQzy&_7wHD^ zw7CitIITFj)$RVce4o=4$?2IjynzNi^d2OI>ALTqj=xo&y7Wuf*PcKYr+l<#xx0_=6!nsU5D+_b-EB5Ql?q3hq50_L}ft4<3GrJ&2MYMD4 zL?BxHxaC|KLMQn1e>EJ;_ecI<7OPDj{i5cuwE6B2z3_E7U34Ou-S)Yz4OOXY)s^+Q z3@p@y5$N2d&m$SZbF!%pXl&cI;4CP|bOc}ph6&u$w}6^=E~^Eo6;ktx z2te8t-ZNLHtA-rC?IQvg@*ctwJ8FO*0n8Mx`1Bf+T=>6PIuy~!m z=>QElE0zXr%4gh(xbUsF|Iu1pVL)_T#+#6J(XIFR*9DY>-Q5uz5{9y zH9zqdfkU@`e-qlfTO7=-xPQLg)V;&e4T!LWqzyDAJcXd$ZzE~h?zruEaI3i=JkYf9 zmjq}HfYb-188D!pJRjaAA_MeBIRJmd{qp=(qvQKW%_45z`TQV0OV_Zm@&A#M){h|J1&vMoTh5(IU=70se-MR^2Oy_o$sRIYI`RaYPrqp; zHZ`f92i2&78x7{%GE1XDiHC7TdV<_;2{9r99m%zR^!G~+qD#$Ea zp0!rw{VnKjVj7@Ml)TZDGRr~xGYwLKus-Tj`lx1X87f!s@8pcAtAgP}n51W2y}0sr zLOSd>e`A1tzUMlL>L~s|N>z~>4-+PQqsi99i4*^3%t&v!Yr*n2h;CXUeApFN4lD<& z_Zs#jXfvO_50O<`iT&1~D%hqN`wy@xo-@}A&~40~45$R6qj#=zoq zcY&G`#hCe1DKgcRMXN8!UWSOpf3EZ=;wKmAhslH88|o;r9MM&#-|1l*StD{ zBzrxm@{~%~(X*40(`TS}mVMVYvW6s;I<4D*-)Jt;Tvzx7|C_p0o91=~CHWob^Qt3d z1#5><-SnkXSB**A^&mXf8p9Y$#5$qAfAuGdt*P{m>mJ4|=vNfCG>&_C?8t984G9;Z~o*2nMcOpc=$63&>N2r5~GJY*ZCgxk-y#T z`XT2w6>-LI(8YJumVxRF0OfvHSErnqr6TFY8F#iYYw|NZRxH_!I603At?^MPe=U%M zbb6Hp%ZaTpBOog*bi+Qnz&yzn?PK7B$Vpm8F?t9r5>O#JGXhvr*gG8eYGdKj68*c? zYVdX)oZpG5 zg1O5HMI>OZq|2ec!V}zs(JzD^_t3;QTq+$ZiP6tp@wCE%5pP6zSr%C%(P@A*Se4pEQtIiL7R9lUCQQ-501px^tz zp{XO)f>S)PH|XRfrv;2-f7HK)6tO1XC0eTeIHJLLQ3Zl>j6F?#7Qj}TR|ZUai(p*l zB1pR-qmeXCYM@{HK3%d!kX#TE4+Ju2BbgbK z#I(U)P{?rbkn005e@{%a(-2mQs#DYf07W*=VzhDGKsbqRSTiQG;B^Xb zNo9|#e}k^c+`?YM?~Z05ixA7N-T4E@M%K+;V6CH%mWx7RBPd|dk65kmX@%z`=&N;k zTBq6jps7Lp=d|>*yUIdZ>=!rd zqDe5zB7}8mP~_JEPc)6YpaOg;B7y3x)2x_%X&syo&e9%Et?J!Z_*{zlVgwoHeYtkk z`Rk{@Fd;?nV)J#k;$zNjgiVPLmt&LDQKpfK>yG{xtZfKCZz$#uW52exD|Pqr0%qP; ze{cK#x)Ek=Y2MNSfc$tStjT=cq4}MX%8wuaJoXoECJ4=D%fs&kBYGo8B z$cevbJj~nwN;%XTZa3W4o%YgeI!;A@e`ejTG%s|`Ah%zjh@ol{XrCiny44iUi4tcO zK8Dpll!5j#UZj9&f82i>{S1Dpk{?C+mMQrY?E@%7!mod@ZXjeqLlQ-N>k!5=#DW$v0>SRwF?p@WBW=gHqU{E4{6{@pcC$L+^0f2{JY zZXoN5gt6)?)UKxeMyu)S6|MSGT}vj)IrTESHgXlwgXK}K&$H_DH#(e;eC-!3xTesDC!)-JJr7DXR$4Z-Z zyZwXKID`*~p+1Z=(4yhrD#7u;e-plzEuqdl$A3p{x%KcjfVFNH{b!=aURM zMC*?~6zL)>k$iZAeI1>Y-fSPVS~V(G0}$Nm3Ae|8{mq7k)*loo{gh}O}~ zjpaQw=){7J2|=Qf_LS@)tJ@R`f{8oXf6~1v1Zav~KT-`b0iR?0(NGHCME9kL&PjsZ zjsx=n<0r_`q(xUxfY8SDwhH_A=)8~Nv|O63!aG9bDm>Em$cbX5(A~b*$lur0})omJFf6D>~u5;mB~X87*AXneK%dllxEMKBqKM236QQ*WZlq=b@U&CEq9SXN4N%vdLQ~I%rq&oY zc9Djh+?c8LGN$KaCsRdGq+Cy-A5I739<^)vddqtEfBLFBIM~PruczQhC*sUo>3Hmg zj2!bl&7ndVdT{2ylYeQYp+Ti7Y_+D(J z!!8W0Q$joMf-v0o>TVZkTwQ(j|%n-WxxUflMYPT1t+f({X1Y`{efwk|B> z*=hM8h-Bs885;7y4-MdEXue^Tk_#1JaV?~F=wRoOkYER;DoB26Iqh;&J??VbHBlG8okfZlH*aBG3S z%MY;w(t4@+Pbr>}911~@f{4x`-e)rf`Fd0SW)u$C)C~`153wH@;&e7n45U3_4bi9$ ze^N8qC6tly?%N9#9yFv8X?*|G?632}_ny*G#)d~2q(RMmVCcDZM;J`1*;|bd(eWeR z+^ZvvgfDo2yzfA8Gl9O-uek>)NcDpcKt6^g^pD?Mqq?fu0baQ9>wz~-LSU^qO*o<+ zwr)yvRQ12FUyqJi7rOgg!*NCS-hYQBe=NJqAyECLb-0QaGQi zGq7JlF4%B~L>duPvcCcl0J(*OdO)I#C6_dO9eDL{GlRV|R2@ALIgrmPsqs0U!G&v-k%8I_#g7QaLex*PYD zwZ!!`((}HI%xq4PN*(r2wH#|5_fv|Qn0XJ(JQ?LrGE7;@c{DRxanetzp_y$+YYnO*P;jene^^DmPayw7 zIeyJ{PP$9wp?%mthN`8$nV`r*QXKz$=)M2U-_)lrygB9i8Y)m=#AhfopabWyn~xM z+s}*Pl6k8}6DWu4M%x2{*wuQJrO*jVW9c0FwT zv>-F@wtF?c@ibEli%8+>75EBPFIWh{2yu0GJrzh+P?(QN*ixKLf8TkS&Ruq)iQSyo zB-rXSlPHavtY&|E^zJBgtgpKrW&5+nKkXn?j>LQnP+IAk-SDTBAaxh(QlM&K4ke60 zd0lmD+C@oO7@NzfxD~tJU4mMPm{G1PCoz0zR&QK-_SuN2UFm3T(R~d~S$(Sj=+N(- z7$xcQ{BvW|=_2APe=Gag#5uu%%18DvXs(as{Kr8PKElyaJYod_+>EDXAN2}>&3(FR z#r#fDaEe7^OPa^O0Rxjr-mT7v#(!p3HtSoYYt&B;in|Xe93A@!5lF2~ydny6a=#SP zWVsDnlg|puZR->&6G4N}CUf9ee=2?%`cSbh2{5 zaCkCk<4*Mmj_WV~7q}V1k)KdGaGkxZzH{hYnN;Koez9>+P8m85RjWZ+fkLabkeYca zZG|AJvqKmy29aa)+d4s>mVx}kFN|0lkKFe&FH^OK05ikarOqCfH%@B<+cAZS-O|zd zVbbJ!t4eWFf6aEW3%wd{UJ^KU0A|99MFsOQuCAwdhT6AH&(`*)`i){!OmPy0KAeBQ zH5jAso-tFFzv9S{T-TQ0_lf+h2DDDStCnJ*|7-+zyHG9~lLRxU{338B`7wxY2f0gi!K|+t!JX5Q)nCU>d^4s~o zy>i>C|7&kGwW*rNvekCGpIw==k$*1jC1tx%8bg&+G0SKrHx|d7DL;1Uy@kW3vxcNr zo)_>PqfYTRjjj3nelKfIQ%*bw__; z@?+RQeKE!8cd4``Y;)i zP$(0-_nQx^U%YUC(U(Sr+ zIeGaM?kd@+Up5j7$b%^wcLTXFADs1a#IR=JJ*+ayv6RQ%G%?{g@ zm}{!$LEi5-PNk|h4x)I zMz$#x77f;Yq*>jFZ7~F`gmm22xljBOcFCQ?#xbM08ENk{f4CMrMs0kbj+yylVWmL; zY@}*2^PGvyx}|!zvM9lJ<)gCbe_g<)gXkLQfxY5sZS<})qDJ9~4^XF`R&zLeecVd( z=g9Je0_7mR88kx5yrovO&>TPJy$W0s3=vYGcFF=3kR*pHL7bTtX!%_Pp}s_V7af4l z5_&BdvhB;#1vD#^R+6Cu+_wjW>Im6GbiuxoH~7fH#0N8HheoOd8}^D~e~Wm+{O z`u?t2fyPKPBfo5bs({*N0LE>w zg20GjaF{$N0E{OUOb0_}e~^T-7RfjMDJ(FY(7Je3Z5fb49E{8Kuozu9BSEQ168G*Q z3d4Y)x7}>nvS_NhsBP!2CK}A82IlCjL|#RJodg-#r91l)RMSt#@Eb>_y`=kIBYN50 z%21wRq-Eh>_)wi6%yQ)N{Z-7oP`nDUoQXM1eOgI;jgR(8>jvh8e?+c-R6M_x{xrmN zKqcpUsa#2|T(W!O?nuMpqxr+M^DRLenl3T9pc&iM$<@jzq|^bOliCCdV-hu4qI%Ne zpx%7>ka7GA5+P#ykfL@As@@+&A`}genxInj5U?eQDuukeCDVJ@L9hOS=y%TS_UW{V z63W#>grR-Ba{Ix)e?Y~GZ3_M@o?nptn1?5FtoxH_jY?4GDL$t0L`gg-OZr_y{#`Oe z(nnq(`Bnb88u_`B2F9qAH?Afez)NJ6CO1Iu2og(#LBdhwyIC-<9AnffA>x*iVs>Jq zZIPy@`N7>YK!tR*imH@w@}_BE`VwZ=1~J{i&qEwBFH^-he{N2bhFVEXuz*71=p7;P zgg}^Idnf%Z-O@R=CGi{aO?g#zsC|J1+j96}MO#7buMLBjUJ!SD)2jj|i_?6JFEoU| zfJ&;E7XO*W*Eu-mzPU754?MIdfqFxu&iIPX0S}f`+U|o`cDR}5YRgwuTTY*WK9QN_ zx`U~~jK0%gf9<)pJkN5XBY9Uj(eJ8Ny9*y*OQqv)U>C9F(#H(@|)1201a!KrLkFyxVpsb2<%WS)=>lF%(yP2O zk|R?1_-rS&ue{DgXn~CxVUyJt8*9D4`JjVNWgBaDgW!wm@S#Sy2+6X20$BqvEc+<4 zRq}{tHw_IUtL)HvC9wtsZ+uAju>#sUhNRVE6N-FC;TGb(FoN=`xHeGfAvX9e(2Z+ZpCVB#%9)GtO3K_m^60U#P-pe6~WV>jt z-Z)<*C@3hZ79mGh6RSnstIb{c&f={_VqD0hLC->7L%XR;`{9$V`5l+?5s`>Y&5g|M zW4KxoObUxI)#np#%k46551VZ(*|)7IT8*`w8Z7I3^ySjGN0sIxpxR7G!&&n*1xw=} zEE6q8h<_lXFM$)m98*^NxnTf?_E;G?_s!C zPUb0b%N2_fxk2HmpPdAkAgzBVAbUIZfs$8az}f-@GK_el4}7F$G>?{pWY{<=EdMB6 zB#26~=%S~{711$w!Z$$eg{Z^k0(rgWaF%77@_$`$q+2R0pSw|7X<;j=Nm{s*e{g}k zaA?}p^!P`4q68OeF=yo<uwq^)_I6gBWL;O)O$FYOdL%y=bOKDGt3{ec>==I`MxlXf+V52Xq z)la#p7s&67eA&{G;Qqvpw(Ym;AytDTmdr4MGv45eDZVqs^iR1!Lcc6Y!j99Xwc`p! zmtZ~%@V#Otn1cBukfe++emPT3fAUk<8Gnpzl!gJ`0_U}B3pU&WZB=llA0s*|mqm7g z%!2y#GZ?B);7RKwZCf8v#10j4bk{#rPL0;MiJd0|ZIqiXRg zB_(0Z_(&n3B>z1k0zIMTl!u>J4pRsJX5G(cuUy}mmp;#*%j(8j%bKoNjZ-06#GGt9 z^TEcjL`0J2ZjQ6l;(_Xt7M390-+!O5&8+9r*qpH^4`PVc$;azpu2x@_M? zce~UdtyL#zC#WK4>9RAGR1a~>p_tkq-D371xzB0t>8{H_3fgr${nellnoQSuOO);v z?)mTLNSofbK-`ok_rg&`E|Hh*T7Su0iB5KF z=iG}AYcW?o$A#ZHSMMF#59r(0uHBc(51m)5U)Ar@r(H+)pI>-)8eLcS_v2XR{O;77 z?!rZ6l{Mr~RCA*Sr|*f3T5ad!`v$ZAwFjr%A1lfaR$%s4JG|+x-4~hEN)KO<*oYXGg9so+gj;-#lHYZ<)C|^|J5!$UMya z&L1gAs0?1KcsX_@cB{ks=t0ly(jR>a%-=g1kMHB_26N$9_z6*O`+q?t7H;psSAtv2 zx4kmjd4j^1UH8{04&Tkkk_ev;GpB8{+p`i|OSeV$ywuqRcTU-pbMEZYe-8dX27fe( zf43*|&8TH8VMaAlONZHcR-LDeZv96gWKehdtAkvbZ~a^uRR=jU|F}oGad_9bA@j(* zd+!YoNCwfw_d*Ei5PyC1lBp3qD(+1b8@1mdDJW1pO70mcJmlRwIv{ijzGYOfmKLyU zE@lNzCfVV~V z*qxQQHQd3TsNBUgM;SI1+#~HvY_iR<$TmkKS{(}iQ_;yZTl9}r?mJFt-@Ok;2Bm`O zkb9wVH0wD>)Wjt!#;HR1@V^BP>?mV@FYbj-QQr-Y-52<9dGtc6RK|+Vv^2S^sumEN zW#82b?}=C25r1&${@YOO3Ar1ICTaf3?f>n8_J?$$c^2^|X+aGo-Tyk11Gvn&{;36e z2tEaEi`~eLx1s-i%DKUA%sTh7?#fipc#v`oT|;LLwW{uQhf%?MWZn_?C4*@YdbHij z?~(^5)#WIeB~so4GODc(NCDd)TP^){}QFJvB_W5Ye-0aOTGqGn6q zO+!s$8h@l7DalkwU3_W@VI8tA=~HF;ysoU?7rM*qmQmQ>BBy?s(tYgt5`YhHSQ)rl zlXH9m*Z4S&@iZ)>DcC4CfSQr3{@UvxRdCe<7o#ccwh3;~7?d0;@7i?O9GWh5xA42* z!PI?!>~zWhNjb1-N%xHCzx?FnrpVaos`sqQV1J!kK)zvGH{-gleFo0o`G`li{jh@^ z3WYu+k&*aWL?KQo=nLwuB@CFe{xc{#R9!-EfU2wLTuEKi)WI|;Jpz*dvHjQop3&kD zU!jD_^EOZo+)rsm()j$pNva71AT^|eI;XP#o4@N($jz8Qd34?C?h*GO)yyC@$=-Ob z;(r2d-0zMDRK?xO$0>t&`^+WzS}5NF)Y*ZyCHIgAc9pD!T9BPI{!}}s3#aJafV_Az zydhQJEOTw71R`_w5-NSv;Zq12 z6dgjZ{5#}-kwNDkau};b<(-qtiymLQcy?ZD8A7PoWO#46IK~m5W711O- zwMdU@lN!;Yd320Z8SANz_a;YbQ$9+b)`ZLn<)utl9sjR90jWpa^560(y@Hb}(|_6& z3{E7u^^m^kx})i22T#*S_aB7+V|*>49|jSXM?$j(p?AeSiejxOZBoJ%HrPfBD?&s<`EU22py4P>Kyv{zv+dXeELp<#BctM%n*gswMWAK%wEVgZK&f zm;uR=Q0GRbSzj+hQ1#!3gjGbF@P8kPg>Q$`q)uwnZ0f|p=S?ei5ecdA7JJJt1V-yL zlffXe7HhLC1eMK($cLv^>!xG&s#aXX3F>C}FhMIe9+n=TS|BT}LoN-OWe*}> z{Ym-ktY;3+E97Tebc0D4>eeHqR_uayP1{zZ($)5-h}LRL@v4^f#yq0dU4OF)+6kC7 zhiX@;OAXDK#f?^L{eSC<*m!O_c02k0XhUq4*w{9o2-oOjd288TtS_1t(2!XGZSDq> z!uEvNm`Sx>TTi6s&}=j|k!ZQL8c)rpT5oJ5(r{@tn*2Xs9;ddlk#96U$z;k+EemSO zLj^%-3Of;KJVCu!>OL8}>JsmGBn!U|5i#=?<;bL&beZf0@kw>j>nuOz8`j&+0sTO;R zyfk{2?+O$*Ns%ts5!C$ha;iG5P9%L%e;PaHk-jP(p{zfZuFN^TLVqq#Zf_blD3Nx1 zWXZIuRce|wW_q70URlq+R>tWS>o)fVSEY4AZ_&=g*k0WGS#5;m1AY{EI;zdA=N!j_5$13 z)=VZobxa}MqS_R7VSnI=wLC8!;(e5F7F;Dj&SCO+3VOGur2N;lFbyxR?w*FvJT(hw z>X|pncV3Gq{Yj;9I9VVW;F@GvH^|}=AuD3)_@Qgm7y-I`nAduG9xux*kT&*O;OIB-fR@;(s>eofu7ebsvIgEQ-Y- znj@PCwyM1q%tm6VT2TcuyX!1#RqrU|!Y`8&m_#L;GkZfT?e{o(sXIOTF)CK;_v~!c$t61lr3;Xi0}FDP;n~F^QNeFX)i3$RW(y{ zwf)Kj?V{VD%wra2&wsUsS)$aw70dgiK5gQ%X-G1e z^yo%_au_nj4GXBOEk}M#mpzIesiUVlUE3jBFbcmiYc|PMCmD=wm^Z&l)@gISG9Nci zG&X5u6Y-Kz8ABE~$K@L^f)>eEoMYB1Cf7P{9n8_0pOWXfD5(0IBR{~2#+SkcUkh|wi*@CPlGyF8VqqfgdLR~^WFJzFf6eIVT+^av($^c9F?uB+)S;LxYhCZx00)bnA~JJ%9jR+<#vE__~d!~v+;cwkQ7S zyMHSReTCB{WnstB9lwEe8&HUv>;VtQqq%%jSN31gIfoGy=;L$2hO9D@w)`JU6HA&&&w1JtrfOdh8?@VYWU9J9ZPe5swA+BCJrP;~lJKVZDArEjNyy zz7IB@O6%b|IVNF2i){zsYkKiuRDY7^bGG}OA51}05fy|`K7f&V31#HgujOPML3l6{ z?Z(#_`iiRds!@y=hd>8JV(6MEbbbhqPy5sK_}bO7^`nB4wUdDfY4~_|o%WDIH|%_wq?qAb-A6?F}3f z*s1!K^0b$Su$_Dn8KT$S@SDS*V>rl7mu)tBGzqelKv1+;VTAO*nXMH&2M7*$HFduN6%uTN!_L2S`ssIWYzLY9(RaZ%ZihRMQ_n zH6hKkd+-Js5&6+qzv9O!9e+R>(XeoS(Wyd=e+(26>dMtt-pdx~5LbKCp1;03_8iJf zlEEg@VGn?%yn%Kn(SSV$8|yhSB+B8C>*023rlYl}c>Z|cDE9>v4Lgk<;7DcwT&Tg- zTYajt#ISB2#RhY0>}t!ICo0O`m zdz)AVBfPlf3jDa%D0q~47Issqwib(j5bn0PrPgDgyQ7e90s=l2b2#BW{8HyxLsJMK zEt=<)$!_zy7~Ee8hszvoN|gN!ahi|2!9V4;_B2wfVdRM(F={o zS@y?7i;uO-HpMj%WLD-i=%I9-=as3a#%(-H!o>16ClH0I*}bY7#UfLa^1aNEaHuQ> zM-xg0F!K<8YG3WjT{ObJ%HZec65cpo3GUpk#d!DM(LeO3y=M@Vu$8Jgj3f;uwPiqP|Oh+fV27=KEH&J#%!!zGE1aoqsTg4AsnI*B94iGMQdWgr6n6 z*%CSs-`c2~|6+56d?mjDUCRw$&l*IbUDy4;xvCL@aD3yw30K1hV6zhb{8i?VO4&{OMKd=2nYe)a*vCeUhIuR(>wSX_2)v$ipTLND{CPOO@EIV(Y zUo;Lilz+OFTGcIFUv|qFJDr!WqJG(QMIp9w(p3@AL=8HFBAdcvVl3Uo-IcoNUfmJFC&16Y6TAyN0>5g% zXm5GGaP6Wse7wc~3|xgH@+B_SDmHX7Hv z(0?PqTZ<#go0r4SLyr3t{R>T0`lOKTUFj3yt;rMpmHmVL@cQvO?z=QIx40}V{Y50^ zHDQMabBsm^x@LCnPVh@^hejir5M^}KDxz`ZD#CH}D&lbjD*|#9D$N5euRdZYKm ze`EF}d}H(^&@gdSm${d}I1-h@66+&0p9%mzy{l zJsDR+SHst{(2n5lNB8$maX@+GH^P5h8C@9c#ZmpyP)wxaXkt5Ph~QrFhPv-$rp_v~Z8Iu%*-y{eI$B*AjeRfAe1)$J zPPp4xYpfwIy;5W9ln53;L{=n`_aLZeW3`T|gch9Em)_x}%Tq`HTw13ID_le|6 z4Avv#Cf43$-<`@y=As~#b#J^!KHv#{L*f;Gx8I`u!@e755mhzL_n}r*@SqA{so2Zg zfy`<)D6zTOv)+F2j`OPsQ@Sd4QT1Cn-;3|G1ZsK6)XS=+Syi>TYMI$|waHVh`q>wE zE@ofE4#FwIIl}QBa~?AsqkqgLW#wv38d&}dDgEu2BHSzv-_4xNzx;f6zw*4~s0n!& z$UfE=vvgSc%H7G@)yrId=JhdK`m$2Q+Cef9qqfxa6Y^gA%CoWB^!*MjeR0cS*$r09 zS~WvsuF>mjvG{4?khx+*X0G|m>9Y92OUhd9`!rwrY(r(M*;}o(_+Lu83->+U#tPd!3f zYo0dmNWWT5P0<&cBBGHaDTVWu`YiB4l60Zybhg%XTz`wP(6C@yIxV4*p^~eT zu9DnZ7ZcLmER)K+_3?bWSTnQCqq(Skc5UWNn=J5nX;vO(&#JUG+&1CuHP@eVH zF`gxVQC)6BdV(ql61hPxp}Fx=ysoFSoB{oEsp;gFBBw9kiO;ITs>{C(lSRkvAh0n0 zc^RFvql`Q>BY(5Az!{;zXp`-5Swg>ArQqB9cp5r7jn;CxO6JmbyGCa_o27Mw?S2~V zYTd(WFQaq{uY7yOWIL<9akKfa3qiP3z5~1y+9+xoJKj!uvYh4JJL_HQWoq{glK>*y z;ifpOd%b%FEf4d~Qv&^P`?C7xJC1!=17-!*g=vK?{eQFytO~4o3O$CI>w4H-c#DPF zDZC7F!1wL^nLqw_z(fXf@&2SgN#+kMBr4BS7RsUtFVWm zSt?Tv6RXU$xOp54VJbzD)8e(+X|7qSEW62l9cYd#!^u!(yP0lgS~@D_8`ODezPt#d z;A1p8jDNmhnl!D>Xs{JUX?7Sr#ju-RXE^G~SewCSZ~}hAGE1Jp=4o;qJVtI2DzS?$#ri)=1@FHA1P6;VTuA;;7~CeKt<)>hVi z7GF>j!HQx<>(Oj(Dep9QTL7C8jWY+fz@|}_Hh*{gH7jG5TdlBr-Bx9BQmi7TWG>w3 z!4h9#?QNS?YAPf06vR|Qs>|bP_h{tyd7V!!>r#0&5GCAO-5^?lykS8KGczMDaZEEv z>8CRL(#p-%q5o1q*;3Sruu^P=AeDq`$QxdTW{I_2cswmvDN0ptNJ6JdP%V6)EjLM8 z27kW_?A&Q{MQXkIUUh>4TQ#4L1bn}1ofyWBo;id!&!>aPCmRLgv5@e#oj7PA`% zqx984kiI>{R5J2wHu5Vv->X?HG$r({Nohf5kS$3b(P?hd+U|a9AA_TwnE;SF!$IrI zPE+Ohlg{(Cz?uN;iMpf6H6PoizNF4eb+6r&^ib(3)AA^SGMY(#efiD3J+#GL=zn8# zNk;pdFN;c^LC#!bM_NuYCK92vVxGlztz{?E67Rhv`!J09Z$|}Al^GHvXNj%y#xP9> z2}Oy8!RJ~mG+4d&z(&@^RgoXGkF(e-O_wwN!XJLBRys(82|m5%-1F_t$f37bQlal8 zR`LDqBG_Z?o#^m$wM-*E;zbKDpyD zQsWy@pah06b+09CmNq&{y+j!?(F%R9^W@1gSK1I|jpXs3xeDvb$Essp0!O-HPgHBY z<_7+SSNl$5)u`EcC6YeDl|-jG<_<1G=TKIcsMsX6DdH_n8p5B!G9}aB)evd zF!_x_rQ@S3)9NOsR8P+ssSQ`XtFK9A>Mpw`mCY8*hY;0n^=|ixgp%8m5h*!3tY+(v zMx!aBrZ8GMUESXM5EQz)bwO(N7Q?L{jvdvK&RadtzgLqWOg;zKopweS6Fw@`jfFDC zm6!eyxMB(C%FE8X00x-3*?%2Xp89+(nwJ%mqbXLN_EPQ^Z=aFyNE$d0T+SJ$afDpq z*m5!uk?y`;quj;U^b5@xjVd1tT$gkGLJVhY1~!h^%&Kgo8O5`?nZ@_AX05|K(5z-H z#KxB2?y75sw?|fKzObR{0=*cc=2XeOqUV|dI~cpHyL;bmF&{6GI)8(2CD$(3<}H=I z+9DoFmKH7Sn(3bA^ON_GkH#Zdd$M;DbU0rS(#0xpY=){Aujw=wxbc4(_)zWwu=fEG zr&HZ9eM4LHn~P3$=Q=ZAUNPrQX&6-*HGD2w=ng2K+e4a7>Q<;$GlwzOaT__SW#$Z- zn<47PNT?gb?Ru6Ejeoe-BUo>^PEj@^nv#6YYU(n1J%pyhvKe3zy*;vQ?5bEjyK)wk%1iUFIx;qYczdN-<}hGF>FD85|7181=Z_ zK(6UUS<(5{z5WQXo2ucPt}(7v#v0eb#h133G#_fqt@-;moNx1br*Ng&<& zfa9PX(_F?jS{k9-m1KI{$ z@6F_4T>ae!Wb2`>LA~zlg0!vr3GOl8vAqYlTlUf4A%C&K$oeJjS;~R-{FU~#>@jtE zf%by>0`bVdu-2HgWnOnIa_!OcnRJ&x@UAUYITZOR<#U-K-UVn~0N{Z=_I2R_4d4Mj z^8ZPf?jg&Am;R5%=>VpIE7LFJ?$F$@x&N&ClkyR(LF59;1~~7b`~Psp?mO%L+p?vD zZ4?3;9)F6{v9=C0sK3Q=)QbIx#nbA^e;1TEs5KwQ9FEgJHb2Qj`3}0%-}e;42i&I? zWG&!oK%O2N8jNU~@&~k*C?L;0jK}%9zz7b<>wH~k443nDo~U^S4CLS5BGiDgQ;O~& z_It7e5IT%6s4asPwD(^BTg=0FAD~+nShUx4k$)(y$$NbO9M=CK6!<@k|Hq3AeS&_q z7?Nc=5R-AZKu381T*Gb^Z9IeTvGTFqQO(I!ryrhvxEQy8z2^H-qqJ7l1La0IapJ{W3gV68?Y8+Ww zsDE~B5+X@y=d_cBwuckc*5ZR`3wy}%b35ov{QRSb&){){IpW0r2L4d3HA0VCKOl5% z567X!y9c_yfb_>72YL&H5BK->*U?#DVFA(CLTh!A0a_Y>_RrC2;zvk_i3ISvG?dd> z-xJBUui+0whJ2Ntv+bIP$0S-gl*O zeAfO8$}P78T3hGflazfQ+cDV!bS=CqvLR5*vJcM=&C5__#KLbIG1A*$Gp*8~(;j>B z=|m6v4Y)1)^M7(a($y`XYk&tI>3Dv1%!RODwSj6H>A|L-v57R7W%S7I;a!XSjDO1) z>a8w_tv}0u9Zl{!@^7*_lFwF^1e(zbaU1|5yCzt{zbU?dmt-4s6wpx+@Qg6PDS=;B z{GG%n{3#YuhD~n~`lYAiQ&rpN1_qJ8@KYAE8L&nGYhKj{ud3IcqL`LmRhYOwOZlgd}KkK zqT`yC5(`z{6@T@AIb#p;(lb*LD>WeeDGTUJk0A{ZqEDGV>i!=+=#j9QiDLhUp{OKP z%ke6fG{FO!ZVE}*X8!5%OhSTBh49)=yH7o=>!ja$bT?ibSc zpC6E!zs2e$=01i}96-$sC!-QhMn&wjvY2Tl5z|US#^t!Qi*YG@28FOGMmxwhErIEkcnfRD4FpkK$*VNLxt{`oP^PozuzaMR;;peOr-?DN*6QyXNL z=yN3_yKy*xX2Ok#dO1R1LcCu1?>4#-gCPH ze4|?b>jT0X@C!g2AiYOihyMMi3+e}4=g$|QHejU><&M)0unVj;prw!Hj%5wz2g)@- zTaR@Oa2L?$-*bw~c=vxpUEK5)(bMO6H!q_dPDWeow3gUu4S&(oYJ!Ja(*I!XKVao$ zJw?;;(^&l>a^V2!1=M8}!FmJ9X2i8?TJ~rQ4WQq{?_+nV2IvKe36Q8m<$_hm{V$G? z94)u+o_!Lm!@;Io>4^0!+*fd{xMVY)I_4byYB||hQ=40?4wE{Nu#UB!NruM#AgFoA zL@P^)R+12{B!Bu?PVlxE=V>;|*;J2hBW3|GTEz7wgjh}pvNR-3w>;=s^c==n^&t96 zNGseWmvrCU9>6RNEHx_avbuPfRi$*PRBjjeI*qYx;?nplm-RBcc^A|~IhX^Sq3Hi> zm()7LhVq3S)CWzM`M{<}OZNX?wZi49gBR-msA7{<9e=$*|GSV$L7`W*Fs4am9by)n zJj}Wbv#5G4yL7Gcxz@6>tDY=HnVUTHt$dF4 z0soHwP;K{#Y}xGNY+nBxEC0%L+veQeS>E~sT&?x3wI3|8_|bti&4NQ^JRl#qwW1(eHLf#5Eg_e{BdBt7MJITC?~mai(M4 z3Y=-xPoh~j4){hkphMkV^oFV88c5e;TEuM;{C|LuioOxKWV>em*3QrT^jh!YYC&rT zIqv%EH>`)I1}o7gAzxB#0c&x8Jl6jYHw2Tor;|#!9gU)2L~sA!gxt5er(K6|4cJLE zvugRj^#$E6`%=e7(|;)Ju*-MV91y*rF8f&akls+TMQd*RUiWJEK<`-WK+-n#-yBsd z`+o}e=D3%HlIoyfQRA^CVg(iyLM^-Wnc0V)W6^v zZ}vwH{p!CO*#73wgBHw>E)Dd*(%3Yhh=2bXjv50$UD~1*fjaQI+ZyC3706pq%09s9 zr=8&~A8&2t?BDwg^UQQHB#72>AaXH3QL8wRW&?l{3r#VWgho>NZ4al=z(?@4C! z;}*TG%4p4{UCvkT++JMi@LgP~@*bLs+Evphz}S@mY~@#BQq|W3)HkBD;!iZIm&m45 z;pKO^=i*mU5}6M0o|__5>H(xTJb%q*Gv!vp;`d+u^XyT}8_wScj~Ia`{&n=K77lNC znD&Fp$?Bt5Y~I0{JF?IDUy~ai(1{zK-*4?vpYNPPIAn>N`_TgK+ji91J@=~tpKgB? z`WQg>u?Fm+Nq3--YJMFh92HOwj*+qqWx; z(H*?2s&4pOA@0)yZ#N!{fznA}e2q4E)zaE7Sn})8!y<3HK3;c4GZ=3{Gu*BPUiT8O zdzsI@?ALyd-zHF(Udors%Hj56u6r5JgY4IVwFjLx`CSNG%4=WUjSJuJUq{)`b>3?W z$k%3|kIg`DtG-^>Qm<>7&wq{V*JjRZ3)hVm+s2x0W8IFiURT6m6-D>vuWM3|&A{&e z$k+1!v|Lvu2RW@xsa-VJO|jeWCLiMg-bQ^qjrut1B5UE&l^`lhc9iB2`mr`Y8jI6UI_euS^+v-u>n;1{I@vq=S`WnA$IJdB@I7Xa@^k(+ z`W|NbL)Iz+?Uj$;z<)Gu1te|K;9&Lf(=7vVRCS1dX? zeSXA(p__F0KjPs3CMa~1KIwL=P$%zHpt?)t5kk1it%XFSIe!LhTi$1V44tX}DDLwB z|NjVNzm76PWxQUohc~ZlZMNj!#`-Z>Pdnx^!#u}6$L$Xw_X*lp{64N?Zx&;thIyU&P9E+RqTf)NcIM=%K_FK#z=H{W50~T+9?Y&b6wT_Rrvo%Xz-RZ;1tco9M-Vo+^9Ibz5!yS+yZMXj*+<@Y zx_{>lkJZc50W1e2%LUIuL(;j`;+J5VHwU>MtZe5rM`i*WR8lHA-J1tRrjRDA%v6B| z2eXdn+a{(bnNAJeXNE9e()n0rgMh4zNK$0qKh^IaI;!Ff6gk8HNr6;7m@^S0g&7T! z${R&_G-@#uDn^bgwjGwzwUoa(meF~!4}VJxzMQJBOASTe&dtwjH|iI53`TVxf$6wN zOGSrf&B$ailO(e|z&=@j3{QNfziwH7JEwlr-*K6L3Qv08d%UWdZ_!70Aq+>nmfKNx z6=TtR=?_>hKV#m1JH37maWC;G7om%LmrA*n?WyQ*%160|+e*=1f&VYo`~keSV1G>) zg;(rk#rBGA+qRvo*tTukwr$%hwrxB4v-a-YeY*d9o_qS-p7Wb;ef8Fdsxb$uM%g-J zIyc)oV>lQ8g<#vx=rd2v>OD8Cr9Br#C0mPUgF%9XuT>sBQ&A}s<|^c=h=k8mbq{Yk zWp<2`=K^!$gfDJR?R7GauhCn~sDE8#jr=`|sv7rB1eIKn%9gf;lgmMO?xSv}@j?#N_15hv z5NGNZ``*lOnWdvClJ>jNOHG?2zyH((b*V}E(4ZpY{vQy{IhgIXT3+1w|9=OVQi}@O zGOk<)4+%@(%FAvy{fvM%oGaJDpoN zzNUH?X}EZ|k`;!*hJC6hH6;{dBpTUxM|x@5T5-K_-H{xi;<5>7? zh)@e~@-984Fk;fS9VN_KIS$-gnG<>T09sZY%TOX%-=mAtGHNtMbbqg+maclOnY6}(jJ=RkS!~Yb&p~PytQAVz+gj7_pYG5vpgCj z`(SsTair`N_ycAxH{rZ>z-y#zH~c9J|A%nN)<4OH?}=OqtBUv09#_fmn++X?Ed=$T zp=tzC3)VPZ9=V`Gpnpl(aSvojSs11Sd`4*t1a9ACmOazrHp;XcMMV|)_bn#t1=a&_ zqow}dTFuUgLgj|+V_i!<_A#}QyM9rnc9_XM@h#ykagX)qtG+eT%@r)>c@&Fe3+;XC z0(bqYwes7fS-08+OZkUU<5tCE`hwTLk=}+3BrTx0kZ%-R)_(`&9#~pV)8)0G&1%?g zS!3?krqrKsE(t{!)MZ}ik1AZm8ebUQjvX6Qceajfj@|uN5?2-9N3;}E2uDVjr3IPj zLGDjbS?B6Se|Vwuil^d&iX$!3uG}(iHE-b_xh*`L=S{%gQZQxX!(cQNde~Wb_VzmC zQ4t6C;7zFug@4huLk2+k$g||%=Mi&7(cV!G%Kc9sIQtu`8Q~1(-8#7uD7Vn@ z0Nb?CHT2<&h`k2H;!IYO=sB4TuibmZ;_Q}l+~QnTn89SXLnF$58DD~dr zT@P|EOSFjQ9rlYVnvXzMiaa|4a*{kd+tu)DhfiTk_J4(q{kLknOTrpIB+J%kGils# zPdatk|41B_`dgJDkl??^6V%D8}iMtIa;9N zJ?M$-E6dTM1N2H8X0I5akkGY*^o@6$AJjG^Z9GliKoa(*n0h=fMEUc{;FljkcZ{T zF{Yi*<<%N|r{KM}hP9H7{#8$r7p`~DKvhz7qdy zwtv;I@^`j{H!XwJudox0m_3Bs?~j$8n!O~o9&X$2SAFAKoqx;{y`uJxvF7R3 zu}_iD`8y#v;x>kI3+(_i-y^SwMA%gjHyZ5#zLQfwf#?1vSng(t;?r$Vr~3Jfi+oXd zaJ58r4R4V-q>;N;`KLKZt#U-Ywk z&<3Gp*SrKci$n;kzxo#i8=2$zEq5Jr$!=a};#q|^YE!V3iK3w95Ql?DLsJ}4jRAMBf6osW;O9_;5Ab~PW4O1+C;olCRJKQ}JzyY3wE(_47cp>DLd%DE?` zCgA1}uAnp!u9k+uG?%v1K&rG#I)9F@pAeijLWlan5R!u=cj=d?gcU@Ik^(jd4ytrc zUyTf!CZ09n+YnUDoD;j$XUaAfR<-gs8dn?9Sw2%+_;APdNV1M)yZJxFA6QOFaGi*< zdaO7@={N(6Z$vo#0kZ~i&Ij#XaNcTgX|{zT_I_yh@pVL~^Z+4L@6z%wCx1rB0^B6M z%c4nmu~tZIV!6eY_Ysap2l(!b^ylpl^Gn_CwO>kmAULyqmDZ52AQll{!N$iwkzP4!L1z1A+TGIdyWiUDx!GmDPUCVXyz`Iz zx^lLp=|Ynqr3u{JPwrpeSAXei*aymGe#v>`+Fz~K7dV#wEHr*id#x`2DyF4)fr1VQ zj_Z~`QURTqnETBu2aS!%s-crp2pAgvlXNpI*?;`gO`u*{{r%)z zc+~(Zr$;xH6&4>AB||48A}st}kP(p(A8R-0?MsOH+t9zlf|l}c*n?HUj4a=#}Ni*?Y~9*cGOFQ_=R0Kl@yI<-(? zRmJx+*|vZf2A>_+sKF*5*sRp`TOQbGjKel3_BVdFU{!_o8;--W^z49+!8Ql>JKD7n z!#4Z$TkhBZVOja~KiIS|!!8Z%;Oy9BVp%~2V{U)*)Pp;2tbdxA!REU*b8PE`f3tA) z?KIi7RAN=7|8+6MvH}QBpW11%`P-A89eJ#(;J@jJVOcW&J#-*!)nK1Q^I{paPFJYyH@?>s?EwN>RU7gbQLO8W zb$Nz z5!)o{{MOZ~wnuC~mTjt`rV&7L>CV3!c4`)7{xu|~j(I8%HTc5QY(Lw0b5zS?7SjEbX;>!$V-GBWM(8RG zSH7$4(#FA(APfTmd3IM&l1)zSKod(WyFCAJprC~A#tmz4y*B0ine`}IrHk*4Y_=Ui z0XsYAGJn#ge$Vt&MzKriWAs$U)}ySgSwF~2#`zQ4F!IjY{*rRSj&se?m}0sY>&VPD zYtNbei~68l%em|G6iX-PlD}igw)6F6?5Whd`xTDWst520m7K<@YxYF~TjwxsP<8j& z?m;4Pd|oH_Q+!yZ)Vy~g>k8wjT1orr9cGG3B!74hxk>|_iI@k8iG&ABE4>39Hxwfd zHxh+}r%3bS9plKVSN+23?#0QF<L;E3Dh$o#~<*heBnoyI1 zkbg#&n~HEsmK%$3n3y;t2{D-R*>E1dM+GsU8Z^yaGQ1 z5u-vM=iivFe@!RtN7`@jMKF@%=lUCn@Gk%nP2~OUVbOPo zONs-8{{pCZiqOA$L>v8`T@UA9iN8G=<$u3{vgm&qpzD7g+bP+ZbxOYFodiFcx zQhw;ghIE7xB(*5T(Cv3BwVF}l1U+8;@83y|^b*Yzb-YF^)b&Well&&)lGNIMC*h

uK8L-sVJy-9$~4xvLr0F@aCuU9X_}h^Rzf62)i_U|sD4^v=%emd z;b@06CqzeuR6nauBE{6G$dG7uT4FTAUOdiT9O#CVlg0QjFF&n#TAH6_xX1=oVUHp^ zn>Sz^>`WZR)8QYcUQ&`2mVcynL|HSX#w%4{YAUCn#!O;n|7VAjsZmyeiis+}h~2C# zzi4H?fz-Cm$=JlXs8KlbwfSU^vP0|dtY#s*@)P@&P2>a1v5{5f!}WBl^i%8fsLZ?h zE#r#Y(dZe_l6t^hOQHJeB^Woqu2E50#4sEIrb=ylHE>GD!G$StVSjn_gD~+y{fP0q zA304Gc9=!p z2z!`C@rZO-M#lTtjwcdZDuKcxtJGiP`b_#Gg~R;-SwN=0{UtaaWG01uRwj8}#=zSl zQtO0M;SwvV!S6`~uOS;bW?|ihNC#OOzm~x~leijTLSs^z@bfGQ~WC+$=Z3nrUrkE!G-l zq+7ULHN&a>pp&$P@qp9nu{Gl>=ActMy6SJx!>|kO+Dw!+)B1l|G670@Li@o-AfrMt zi>I)QhGpsWTqUCtg(B78Nry>We>ioE(gvKWmp4h9{w8BsGCe#@Z&hbd!EbUObW*n{ zp4=s`UnVo4q>r~Bw>EYACwEF-ze;9LNnih$!=Y`L(&r#-n$zd7EOP%HLtM|LVqrXn zUN9Fioydoh`p|!>|7Kg;IW-|e)mMzWZ*&`TA z=TA8PHAFIOk~Km#T$DYWzg0KFHY_4#5c+E-l**LA*4R;WLRM|sB>$a6;b6m&%22v+ zg3_=me}Z}}L;SBrB0Y=TA-UR-tXgVkLMr)H6>fjd1p8P9UuvVF;iIfk(syrGv^KS@ z3ntY6vX0-Zyir+4yO$6B8L2&};i9~eFTFe2cTNpb`xyFkQhR2@CWQk+#Z-2)i#h(p z`f>B@-S&2?vh$)bl)rGI$QDXooVc}7SVAw9cwwltD0`q-R*^SGsZ>-_*WOXSDVo@* z$mV}fel}KiUO1+xmT0M{CX%R-4|BjY(>d=#^Kei?qoS;n^x9TZUHQ)3&g+RuY8`V6 zIzBcouT65$n6P=Fcr(BnRYEP{sHM21>}8%=*oL)mP(m&Aw=V3cQCby#TBn$t|II$g zYlWS*l~hHZ8p&=bm!0LcQ7N*BI{GUnlXrj5ofNd8l%?}Is+En)X+@p7mHsON!{69! ze_5J^!jkW3t0h*T3zmg#)c>@!Q)~|W8?~|{&&%gj{;$hF{J=`AD0nn^9X*4r z@iMQisqPfCq^iB5jjs%o^E6YMWT7!(Oa1BJ0_DChwtXiMFMFd++=w6y8<*E48T@}9 zRG`0i?+%V6zn#x4!*fEQXP ziE>Di3@aBq$!F?u>+V-Af)rcXV}^hHWS5CFr=UFoL3iR0v0OrCY-3&5lE})Q$rhleKy&@*AnaPNcLp#2VY&#C8~tT?9yIn{ zn!UuC*b>3b2~OV)7X$+rNSVE87f=w+aIWQl+i5%}MxfEh0=q`|=T4&waxi~B4T7Me$ZtQoYX!K46p{qI@xj*FBka{I!K{;%%sDyn*>HW)q+zESA z>F?gBwW2~T?p_q!cA<^TApW$Cys8N(>TQ{2?VL@}UNf1o`;>Elh(TjkIrY5j<7BPd zmH{`4ZtiQi0I^djH}%6yUCpni6v#A>VWOSK<%84Ypy=1AHILz)Ww3t*ozm>`2Ft+( zIjM6D&9hhLhrio5IU9E99w1@p??u;mLX**+lCI^(?OJaf9$n){?fqOgxWSe;*}KhA zxWl-8{x@19d%CKkT2Q6t_>NSP9<&zHn!(a52gDxW|JwAaITTx-{?%54VQvFuHK@Kk z_p8DkVVCO$!lA#5SWkcF@4gSej0>wR%Vlq|EsZ?=hH*mnAj|b+3Gt21e9UtaeWdl8 z<-218>kam>cfJR3I@VWZQ+nc7g;kug-2ZosZ6r&b9Y_EsVblboY?;wT6Gi@ZPfuv>qDU`M1X7o2 z+WEIVjpH83ih+N~;{ho>d=d4O4jK#TD!BA~@u|A-`g3yEzO))H_POGnF#p-OFqM3w zT^1UrJ2Tu51&@tiLEOsf5OCqCelDZo$sMd@A@P2!WC@O{_6e}&$2CP2{TS>OWGB}l zpyt|hIdl|g^?v^={0i^Jk{whU(y!;ALi|Ya=2CYHYt(;Zbvtg<5!)452}|z(K(2l^ z3dX{9!t!WGvrhe~JWQU5nE2>l+j84*4YYLwR;xBE*%@_L5mz@MZW3b-7i|vrI>(aJB)xVLW38fg@-|IRn_4vQ(6gsHH?1=^_%m&3X&SkJyu>V5;gCUv$~Ba zd2KCfGv#fgb$s@H$5eyhiCTff<=)cU4D#v!DbUmfLtTc)mKj(0L|Q682>UWxS0_== zecoJ?n6;BbL%@zs$}=cku0T@YK_Gz}-{^PXRKCOme3!% z7c_rx%M;aBwvEB;j1Y*@QNmdipqxM$Rg2}6_+>0~OBtKN1ZH`dQ@O8hOd3A*06T3H zRZ<02d4N1@L=iPf#{mTIspGm}8y%vprR`X8eUAHZp8YtGJ|6oqBUc^;JG)`FP^%WO z{)JMh;HrP1iu)FG+fQ00s7%J=7tQu%Yp60B9!|I* zr=IH3cf@fc_S8yI5#7yj{u+Pw$y{;xvz%?f4YoE*pdy;5@Du&Kmye?_`6f(Dl!#q` z;>qLyr*b_%(Y?VgTKRHzj7z;$`J*X6zzWqW&|{E|CSskWBvP%JjHj;7IbPra(>&A70Oz~ zR>{y(-;il|%uMamoJTLDQXUNqhP~)a(w~^rxiH4`s|N^Z2uH z_YyaFO$Wcgyf^*fM_{QjBGpru)IaPMSh0-+g(?mXVNuevvt)p7rCopVs|*QQ zx%YfySt1MhUos0(IvU>AP9B1jBno#}W0SwkJ>m(^hC#RLdRa8Es19S{?uLS0_xd?+ z^s=65qt}M^n$*C!#=a2>`73db>(L(DZdn4IoAu-YSjUc^Yc5| zFqbkiPqWNsr3ZomYsmMx0Ih!&D&*iMCRQ%cz%KYd1*5MuRBX6c{cn0iNfteTDUJI= zEoe?Xqe3XKZ60;`7Yo_8orBh zxwqS?mmGJJBWHhMx_kGLwK2IxyM#t8Ln;xq@f~BfG4-grr2G;`QZwu@_29h4-2XS# zwE*pO))xw`2iWQ-2xkxAEFS1Rz_4!@9?Ct?u>U6>Y{m~zA76jnpJ>q1z$Cu$y zYthJY^e>I*oaj(Ib`h|a z)TNZGO)O9znxTK#b|$oFi)+#lRV5=VNravimMD?^ixX-Um#dObDE}`O0}t}MZe(T3 z|IW#^$fq!35EnL5tZd0OtH{>o8@}O^)7Z{SU_Bs+bPmY<_tiY9QWFL8)r2tS!v9NE zcx4(M&bOM6LY5raQd}rqUT?%@nGVM(!dZWoQhE8QoN|A5x^m`;lomV#QrP#dmr0ks zMXSKY$lsv`oD(1mv>Vkni?iuPKV+uhHLU#&T*4wQ4%o(sZ}_4ab)wRPFu042bIxQ}@&X)@};ZJwsK zOESo`-Hv}6bq9HXO5kmdJ zc9bNdHs1a}l6`BGF6kiF_1l&x9g}{|YS+wAn?`@V|3~DaSM-jden-o^>zGaGUbXsr zBMdIcjZEbo@D7SGwp=)k*^SVJx8cDTxeH8!&rO=$Y!EXwSP=IRKA9?N$;PJj>W=)>od?tS;e*NFAj!ziBjGvzS(DZ;u!$%V{giMONf= z{FSVKiQ@l}>}<(ut))(f*OOpE->-}L)72eA%q1;Ef#xs89i%^U-0 z1y;HZYeUikHSzm%xm&r0>Q?8{0`Vi03qrHUA#0GyV9n@_^3h@_X>z#^U4xk+%V=nB z!X*t|hGEath;uTcIQ53HKeIi9W2raPjBfr@3%F7)V*WAgu7Mc7I55Lnbb9VlfxD+w zpyK*h>;#A;t?a<87t@7GJs^M9j)y_JsL~mtU`Ez2;Xlb{ukunlWhW9$o~1=J3-^U- zU5a!6Mh=3fAO(o={W}1pAo=hCpdtET11!V;kHO&@jS{kVsPC@68%OM>bV2hYjcLN% zUg*6Gfm2;~W38uRU}jm30?b4 zWL++?Z%wakO{Pvc8^C|KwD_vg{mOF-bXoq4ss*@W-rfMET=xmYtg!(?vFhoAQEdT$ zV$t0J-8J9uPKyEA$F1&7Oe_=Y0?T$%fGx|p(-9W5ZQ`qvE#Eg%x_a?>cn!`0^(azS zqgJBHJD4-WQ&AdAUN~Ft=CuOxVp0H2nQj+~pjO9xP<5>Lic^2*({7N@AoJgqBuNVB z*6>VY*2%xvm^i~_-O@)XA*z#1RM1GZS1e&SYuWnj{#t;1R1V>2w5$wnxY$92!$^YEr*Ea0&UKA!VuOD!^H!s#pSp1~D$rIg(O3aD_@w3{{wyD1toE9O2Y)C!7M{V2Vk>Uh_2OM0VaZNq9680#y50csN4ltIa z(%~cH*6V*9Jj^O~v>+6gh>)Gig}Ei<;S`n(KdqJKqHR_8JtfksP$f^71U`GRdFc@8 zkhs=BX` zgW|gKb3E^!el%#poVR=L#P+rx-YUO#Ci<)z7*2nDc46bzj*3p++f#aWNi^m;plN-| zQMVEbW&J*Gq}@yj7dEtj5x__OP`sQ+L$y-6?xki8MSiBIWE6=P9!=r%3UpvXnvzh@ zkXV3~1XDNhcSvZ~l+hFYcPURY;R+e8-SUz>uaOfgzov2I^fO7qDqQnIM3s8Zb)r0F zY&n1TC&(Hl5B-g=&+1D=ec5r}R=Kr^w+W{;JG$)&qEHm3gKg%C{)+MzxG%ydCquw;m4xE}eSaEYY6gFs_ zeW$lo2#25KjS<&Aw!;_g6ixFlL6hiH%Zq=!u#U^Cd!saiC@t-&V}dKYTA)j;Md!%-iE14at4dtpPt)%N98zr!2O?YthbvAZpQ8uAD-e z!?vJK9If+58TtrSVj6HOjO#o3<1GU{`uSHL&{1tu*nl@QCFLU%tLx?c6O6L6OK$XO zDb0M?5JQ;7YK#CQQhz8AZ>J8rc`JWKsi5q|4!Y>m;iULHkm!Cu2p0azlShyv3oS_q z2qc+#8(efOTNejp@qgn5Jxds+?GzX2W^|A^?fGGKq#~1M>KUFd7MP$?GUH62xu7=z_>)+tvi2k)0z)A z4ZRmdSauM+42=(&(=142GNJ&I%0w6{4Sg2n86kj%?;p^D5J2%42>G7j15o)`;R6u) zT7CvV@tsL3nMVQ|``Rz_plX79L91G8EY*1a-~^{vw1j>U#(lFS{HPIS;w}}T8zgh$e%}rUcq_04wB@8DM4)ZD!&cgH$)Kq3#Po2o5P^-e;a>;Pu+nb!e00bJlN#n zNYD3&y0Oa9IOI8S8vB#F5p`vfD05`36Ej9x9ai_SH{k+3D(OYbJJ;JEitGw@toX2C zUK;^zTJ)qpenoftjp)ei(**Sn3Pyo0Ye2h)j{=A3+0f1A`HE`7DTId(JqYgU=hO$;q<$p^Maf=E*sY5;LnrCKm{^!D(kF_6SVO`n4eU9HCw$vq!&P z(*i(Hb$dZnZ2(X-dB5TUuyNB{>Ov|039NGin(Ts}q#1wtzZlTAD)I72cU{!W|7`36 zUUtW$gqzw@Kdg&!IiC`;dIhz`w_O%2v^KCWr4du-9JDrYE~Uw^`P+vNfJ}L42C@{- zemW@SZ{<17m7AK;xO;sNH;Qztc}~qnKWHo{>)AB;=JQ2e9vvIERSL)Db7XLAyhfUF zIA0y6eQ1B~?H!lDLO&2KDM6tcJKNoFVSNM;K47IzJ+QD*RqTuA+e_7FO@J5so}4~O zU%20E1Pr#C&a-1%Z4NLsFQ4X2`|8*)NDI@7bc&ePbIV-pjj_?baNk=~t4t~AY=5zt zMTh*k3Yvbhp@gBCR9<-Pyg%k1;#NVn&5Xu4(hq-hh3%hHH4KdQ=8bf=U%;yHpvmu+ z>D--1vva#9Q?cB6H8!pPS;w#NAReSu_|d?|T5j(ud>b%roiBO)8ci8AOQ z39L&f6+Rfx+!V!%pAlU{uI!W(Y`6tqU^FRVy@e>{eF(#I-6oA9KU%|Z+_9K&Q3;D| z7RP@c*<`PrWH2=f$L3uiBddp89OdzM%O)J}2}0Q0SKI#*8aWQnWJ!}Y^(Ha7vff%h z>~JM~2bJFV+yGW*$R}B)szW6S3LO^e8WBcJQdlC7r3nx;m8`T|t^E07ors7;%3z zeRL#PoewaqLMFPT)N92p4kQ`)dB&!vM$vQk{0UMc4w4_gleLC4g{kRxNpkL7S;juK zXxl{1zM?InKlq?(%Y~vj{ZL-J44!M>5Rxy1MP*kdWe7b^g{rc+@S&k0 zG>Lik53%~{tUnRSoP5+>QR0Y(^6I9a{-ZC5XQ`+D^CVtFO%@9CY#*^%b6~B4Kw2?mfv$QK@bmXJ|6O!Xh@f>ylO-a&82XprT=Ah zD%Q|)93Jk~avb~(hrVC~CidYbbZ|KkR2JO`RF|;?gPx$QP$a{q1g5@YvH<|qk#GG$hC0(Hvl{(#Kr2}Fe z<`TeEmpKJ!n@Nsvqa*v4^ZJL&&jNoPzu+Fkj4zlaDv-eQZsfC>hsJ-Q>SIyrdUud4K7(d#)~12q@U~T^Y`4-j{#&ok%QsCCo&N#XeOzHc3UX zMkNso)n!hIHW`QKLxMJq>SaX z&Jai9V0rTDL}fA81A8GM{1i9a`P+d8ed8Z$`~K$r)NJzx!5ij8a7~w#$x_R{c4MW$ zQXIC{9y=oyx|D?QT%7xCLzs1eseS9yh+C2e8g}|(dDKId)~ME@h4}BOBHc)fir7e| zy4rssqzc-?;3k+$M%=K~`aasPJ@%W;Dd_ZT55$h>{0*&;dVIky&|mGIepd z@eI6ApR|>*M-rPKSis+FhU-RhdntKCBV2zQsu2)P<3nE_e~%i#jy`oe8WVZL*}3yA zkgrX%$O?zHc`ry;Z{}2&e+X+?E=*i4o;0SQa+Z{G)}*){8pWud%W~G5lT((IQ`Tge z?N5p!xl0ncL_?c{W`b0uJ-jp5Yd}(B{e+$YrPZ(P3&@U4Tu%_~ZWx*3Rdc)x)((HI z-qrH@&voCrH4%EYxKVfwOuGTY;03?SyN#$$Y__TIQ)7+@^ohOrqGg@A`hpERtDkL$ zZJj|G*O4066z7RKIGXO!IeST(T9*e7?dn|$-WiKI{#FAFRm!3fQ-}>QatSs zng6-zPK_f&`|p^?cF}(FwY3h*Xu*FCC6quZHgS~H4KYgvcEeaQQY*-?bidsq2c`8W z%0o<}Sdm8*X3iqYy7K0thrAxLzBx4wf@!)x9EPHLQfx`h<4u#vQO?UlLIjSm&X+b0 zujzsZQ43bKG`Z`PukSc>KQqeNlK6kw$0X9WMk`MhrT&V1E@;!VpT!nhCwyUs6VIqrcbWKy|+ zF4WvBLE8&`0vCwate~#q{40N2%0q(csge}&gp~zz z;_Q_XxruZQ^g+r)GmvhgmZPh`&1mu-rRKTAR-Hp^rxb`Z=G^A$9i@L6(Kd=yVjDf& zH&;y!(=E;A-G?lWkUU4*Kv~taRVGgoj`G+L9xI(23gWe6ZjLx!XPD-+x5RcxRxD1c zuBEN8rn-jL+-6NtjKc9<8Xz>7cP5EDRsvYk3ufX%HlyJ?aS7dcf}GQ@tq>o*pxt?l zhUmXY>b_J|Qwq6)I+K6(t_+u5xS6w}BaaOBUY4D`9P*f(Z}m*c@_5t60A&diNBT(QWq3*s;SX5h*<1Bk878dc? zJAa5WTM}?~{`@|-@yWms-dvZo-t2>&fQ#A!NtP*QVY?slGE0AzvA#WlDTlX2>qHl} z4w_B(aEq6*7M@L)v!PDiESULQztZmU7$fjki%8>vUCaI<(>H4Pn_lk|Cf~UKc!kuB zIV_7vgg#B~-l8*p@|XFZ+iymJ6E&}+)*xridkbhTOo8bkhg5g<-=C4l-4^NY!G_+U zlc+{MT*G}%Cv1O+Q>=d!o<;X@_y%wgLKio(pRkzKIb`n7i=T*bE-u7AS&d;3z2d$! zNC=o6)uYdSc8Fm6FC0TZ9K2QAnH?XtNzWM}IU-N@dzlw%n8+(P{PnI1MG^=*foc5m{na%3FYfd1= z4|2xh8-)n%r`Hb*t3#h+ls_O&s%M~(z?uLx^zP<3#WC}FRBDxK<-^Qb&0Nj~nZucd zH-tBcG>9~gH*}lOm?fL9Jv-+&X+fDNGzwc*JH?~?;a;+uO=BwDATM+xt1jEA`<&*@{B9rO7We{yO%`?@CxK*Kp~1nmj8jR2R3^UI9NjK} zQ$XXF$mr~9{;h|r?_)tkGS8wH72>|os=}?lYv^M`hoW}bhxDhUcG1De_yN*I^sRbo z!H1AGO|jYZ*vT!mWnc!8u_@6lPHIsn_0b61D$jp`=PkEoVTaDAyt}|uGE{@}KEX>! zlQMPUcmsW_=BKo~%BS3?oV(7a+NatZ@23!Vu_tMEGK~r5e)z4mdgFV$hgNw!#eukG zxF(T`xyFIITA3&L`0rMfn5$98RqB&?ZYolivB*^%HA3?SVKtJo#!kEV^@5A|wF6kH zU(SDHTC1q^r2ebPb#lyRV82C!8vJi#-qp=x#gkX@H|E929VMCzik@cQ#7g02z(kw5 zMS0|ePe{)Ce>Zrgd8Kh`<5p#py`34K8ISY52EMYgsdmeCD`gdIRZhnjpG==kkK5mi zd**YhZ0(&=47Wu&OC^t1X=v8(+gC9z3EY1wE$J`mzeL%V+Lme>NYWRLG!8WmDZb>= zZM2A4F&d#Yk74XN?ct~yPcY%ctwp>H@wbk<42&f48I;D-q(>S@0&Y#@uYJ$CfvoJL~CA-DJzPxqefZjR9T{Eb4Y5nNb zfH@sZtM(9Ip>=ot50#exdQf||c};(NcYF7l!xO|MK-JDA-zB0J;fBD*QHyZva2ui~ z#AS9Hq85*>&Sh6`;&In#=ILweoAeV`mBxDgM!i;Z`<3IgV__Sv4bOSocxO-N4Aa_2 z$s65L=jHH*Ov|M+jU&&2ThB+*8}<^-hWSQe704x|b09^3XK!ck1BG*A`)YsVNatwh zXyVD{>E@~1z=iXhR&-l)J5Uwn(`E_l(w-b)-jw497dif^_|jO3Mn1jPSzcBo`}XQZ zEKW4tEW@IGA>9hYIKxuQ!d==ClR?oDZk9JjJ*TzHChg@-$BFBl=v~JJ8IzIw7}piX z9p@P*E(V+%_pOHo=lRO^%Yc9Cw&^t^dbB&N3oKgq6KOR4r><#|-uvvWD$d@Qs%M4j z9?jy7a)z8PObsX|MFsw%Z2ky_5e$QN-BiOA{iji;d8Rp%Mt&tOdbO%SW$lppBCxri zoW9ogx5G-yOv~)O|FtyH{kxMDa0M!6}`(xM?rT?Tz&(Ylfc z&2cfi!Z>15IrqV@cEfGfZS;Ae8O$% zxli4=(;BPBLpgC)-?D$9EV8;%rh+P{4x<88Ash#lYcydtbT&EFGru~jtM?q0i-~=O zlg`cUo@OFGUyUfWSa=KGv)EN#Qb5w5jnhbF!pdH7qBq6=Fx4~fRWLn2081l+J=|6- zUbDipIP7bh=QMLu!VLGzsQid*#f1_2$l~4E>}qM7r4vgBq>O+4g63%JqfAvQ;@tX0 zxY62*=B5An5*Hab+m~zD{91#q@^`{_9yZq>Z)KF=3h z8;Fwq@3oy58?q_tz$+DB1Cu{pG$TCTM@<)mnQ!(kn9EO&oz3Gbp0Md@{RdI`8xq)0 z97|x`aOuJ3r&o|*KPGI`D-g{3!!EmX%`7g%{L^P`Wu$X zX-b9m9vY}L%gUtOlJSHDoL(Z9HdU2SPlSDY;xz^Ca2$UZiEJuJ!PWa$D;w4CMvIWc zNFrQYaC`0Eis;Xz71qNxD)k1Hhtk2jZk<(C`2iQp3Q}8T={xMYsjrw+-B8@eoO5vQ zBG(#&R2LeKSMHxB-lb-5S6^nhQKl&Q^jGB7t8dw-lX~ivpIN6bCCT#c8;=!dHz$dA zTdlaReV>0kP#oNZCdQ0wvs_i03zdw3MB0U)J6LMDS$atwh@&9m83vth@!zY!7qw!K zu_dpDs5EAWMS(*PTh&3gd09!TR&gqxSIx5uunh^bJh#Yh<|^=hHn+i8b53!09w3z` zyN)_@9i@ubTz|xFzD)O3!aL+s&k76k8|ceScs74;&uETEz4pWFE$ZR^6{)NXTVtLA z$;7-VSq66v(s9+YHn=)OENAyt{z~49&(Y1v~ea>Ft(y+Dl<)Uxa zzD$2R5kiSLxs79w@-4#*7Tm$c^2HUM5~Y~&pd!~BJWf=L@UP1(>-|>7)p7!c4>1Z>8m8x#QY~M{>*J9?K|?Pul!4kL8V)=0BC-hn&Ay?X9F} zhT)pSF7k3H>`4E^3U5>&;fzOL2^=4LZdnJwS|5%PxPo z7@+3M$H(T?c$S}yuL#*Dp3_z(IJyh#9xCj!pFzu`ah$0dj`Gxx6F3&DwZu2<1FqiY zK3X-FBug${bl*NfNzRt>qHgl}x2l{w7aPw)jN3&{$RFZf&5w+;zanLZ!|?06AHbKK z&eGG0z4X5v$1ZL<&BZ*+xG&_Q?U;W%MPja=Z9BBzy-V9+pUc9|J&i6q?YBB!}X-r*JSxZsSBIHxkv6g~7rw+0r&l^*@ zpxmb<<>~8iAB3MDLdf}P>PkxbP}==za^j_{)z}F3U1g&1SVsBatEY4@)`@=;^Vpk+ z!T%*Dss0iJRXgyy@!k6Xx?dcJ#-Yj>r>LRv85wNniqd2pKTU-9k?`~Ox^f$NoZ=0- zrZ-7cn&MbCsK9(jr1az3nK_zc!B`bG)HNYXg-r(iWF>7d3xn9bpf>OF4k0+32iAMg zn?>35NP$ztTiovTqiV}NgY$oef*!Y%rK5NV=E>&xHoD!6Km~U0qEzw8@xJ#Rd($|c6#|mprcPpNEpmnjF5{2uC=qzu?ffmH&x+q63*5+Ft_e_7xmyG+st>Y4^ zaE(Fy3)Vm6(k<9uo0WNwAVYFc3Lm)#xXqvZ8k@HA`D;Z6!)#`+mLh34QO6xLWzXBb zm}-s_&9}Sj6t;$$)qnQFKDKNY(uTjXyDwQSj&saz*&p3A9mtfj4N*Yi{n_ZC%VP;2Oi*(s3E@yJ=&A{75e(gT>;#b zE1z89!;`HEKYOuwAgcr1f4z_Rx(M_)2ap6E1=3U}24|T+qfUQADXuCUvxIEGP8s8G zWuIPKGUH^NaG$?znmJaLz2N6=oxPrEmQgD9W%H3(^&SOdEFw5Kbm3g$NJFqdWe?wG zf?24l?xH7g_-ZdIcfznacx{JROV*d%Qe72-ZIS0FV-i|x-`8`L3saRXq`d5e)qL^3 zn^}vu;?%E5n>c?he1TmlmaAQG>o|UJ*Q>^+7K2xj9^ME=qb1g>e%b(e6pvw?B{enC zb9Ws;9u7!cpH=oeX=yMm>AZBXEgttL6lI5d#e1Qy?oNy_WKGMcPRCSM&x7yKty7n6 z&SCelF(wPIzl3xqTrH*y@=tw|ciR1ISB`i31k18rc(;E&V8GEbD6%2XvZ0mVOI&|_ z*0^Js%o{`hWNG#E)?f=##253ZVv{s&`}Gl#Z0_zq!k`^u{4V!QwqLjdAsn}T5PChq$5`t9B6 zc$p!vr{sS<%jlpNWef$MqO5ac6C|?at#3TIbU5yswIGv!*k$f%%UejeJ(5$PiT=HJ zcFP}Uz=Kn{ig(!ajES-Dzj!+3{){dMNk zZqIhXMW_&V+o_h0pqh14Gb+F1RFf`L-A?tuI>vu9qCgF-mN0sp=BEY~mNN`NQjTMk zPAHZ%p#MSx))BmFa{_zE9i+AJ*=*<6TK=@BVq>ZeW<#sjvqkwP`3%ZkRQb@BiPq4C z3)RmZ^#YL>jB0F8;XKgn*PN*XrLI(V#pWrFDvYxx4j%g3F8ElU?+!>mr&U}e^hL@z zHi3UVfD0el_F(K0aB+9*3k(|N+;`X?$hz{DADvfg-T z5Bu78+`lznfhbh8s9N^vny2;PUliZT3mZwn?V{tXn<~Yahh)=#33eSy|7y;%ZRDWq z7LhvDUfdanqv0$(z?r4z^vf;p27BS|==^_kn-BXKP7xgd`%pFSK$lv8e)t1Jw9}M! zGN;P{yRwktglko@+yrX?!=&k? zp+&VtwYpBnEG8|KJF`uIMaeT9wq^C-8#E;95*69|zdD^%su~_O-VV-`0|{P&w0kL3 z&X7CoB5%p7Jw#p-WU7>G$rU~&8fAYk_LIw0k;ic#(zIJOs!tN#zm=DAjEbOe8hM2G_(Z zn?~_UX5o_Nd5s}b?K2K_OIgf_`UT;KQroCkO-q)clZVbB#zv733(efewLgC?%GKvg zRt;xsp+lBVb(#8YxaLjdnTg+3qL{49nJ{k@sKO#RO4=p_^ zJt_^cxM5e{RB}yc8C%Sj%S2YXJ(SjJRdX{r9WN9QNk73pN$-I@SzmGuSvkkLSJzH! zol`S=+3MKn(0V!Q*y_+dwo`v>Bo0}-RhG)_bnSH+#A%zGL3S?AGv2E!%-trraHNf` zjjqkzySTf%r`K-!ZuS~wIG3>K61xa&#*{8)M$ux%A@Sryrp^0Ovic)s2r+9CxNck6 zEuTEyXt$8In6Touqm_Z726xkeM+b%vd)ta?;8F)JffCCDYLb5v%R_(I7$Z0qfZCuZ zKrcbm%9lVf1)K$`md*$K*-rC~Y~-!1^O3R~%k`Kq^MQ;Np$J$VDMd7!OP%6v?JR{m z{ewyk+F6M^w)8;-`(cSTMw1^a$^5+*GFi;tg!*zS|7GNe#)i!SQ&Xc2yDH?;$6Um@&+rf6D@9{*pbgN8wavu|b&Gym zdeZi#e*@A1w_tQG@%Xm-%$`kZLq?X+GtY_Z{ySi2NS$^b3w(c9m@?sSn9jho4wz)I ztDeRl)&`VY_j~IBk8Ey%O77tCKGl07vj=415(1puTbBSc5sqV$fh`d|GaB%GB|2e> zck=H^4gYeVu=y=GTxuUYED^X$OF@8&%P3(UZB;AU(y3fS2)qdk0g8bpsf!Kd9Ie}ST#vI02%DB>4QFyWhYK*WTMRIu|az_+Xg2=Wo;XHUIloNu? zv@qz{$h3WMPkE&(Qb8&8(8ZC;$m5V0`B@OhV~W>Y*bgD^c|9LAA9h`fKpw?sxp*J6 z$Y0NceTe*o{(cO_1#yAX5)Hu0Tg zacdRM3%vA`mxVkBpLX3(X}ox8E(pDlcnCb2mm{ya^x^uR!m?w`vX@1;2B&w8*|pvY zymGa7Rc?PMGVve7Kfu4F-h-|o<$SMez~|6s5aXodgBVMK84Dp+;!u7QA^+A`jmZ@% zNn9kDS2u?rnIZVD;R%GxnpX;$_|$GJi(p4&OA)Lg6%~-q(PE1;YSrT~(Hcysj?wN- z{2GCoKr+*3W=vNoTIri8rmXLw3|JqtkO48OT?v1MoSZU34RBy`=f5<};=7pKJfuZ1 zN@dGHa#(Op(9N=rD*k2f=ZasLjyO3QQ=FnuO6Rc5cxs|;r7e9iadPNjR`68FYgIqF zl2G1=fv#RIN6?^d{p?xMg=F|p|H^l1{XnvYp$mg2V$N|2Y{>%b9IP%tHiTi6$oHt> zH2{CD3NXS)Axfr>DlbwARf_Jg<9a>aJXNf39>Emkv8ZZJd7z4_ipq;)9O=)wi6Mhs z0kH_YZC}yQVv0+O=%7VY994eIT2nsza5AKCqlwgLjX&g;Sncomqv|U)EmsvS|IL z;$L;IbdSCBT=WdF?{?(*LtUGcGXPcz7VA{nh_nNz7L9k9znDL=Lw5$T|6cIGsLy|G zz~xW!UhzQLHONz$EL)yjsd6KwQ@_beX02WhUpM3iwq;fMfFoa7zqrR{UBk`$iCGz4 zI`BI1ip8|@+cT2g!@x6K$E^MV+p)GuRiiY$adI_?-J;oPckQCCOC*a&l?N{vw-PtD z-^!fjcFW*`FVwxVGvqG*0Z|-4J{Ny5QgK^F6*<8)u#y(p#87kvqfu5O2LY@C5h*SN64ne7*4Kg$GQ`giq*cV79pdE&V$PvA!R|dN-waG#PCYg;O zW4rcOid{-Y=llxy`7P5N^#T;WE|racXbfuQ@YqLyhadXXa&QD5rRrfZ!SezM#W>1v z3ROe);A%xlz22H!QFh7Y2cmBQZh$x0iZXfY-X-2W-s)UZ^7&liGbV7K%L-rcV-w&aQ_ z7=ZE+;!AG>F~DgJ+xcR03Ye%6YX^MX6U;;9h~Z`$`!R=hrV1t0;ZAvk{>{!x^? zQDh~*wB9qxli9Ixx^|kc^=S2I4>PiHnBWlP5u}A<3Mcsb=Fw%|*v}JxUp&=BMsNys z1r`5D;#@-Z^_M$>yi^lOzUHf^)XLxS~|?v{^@uE`j15Gc95 zaVxJOhFCvXobU*iGweZ&y_PPOa~202y)4svcdIl0)W#)O2#|%8B~w!oL1blV%kj`_BoZ_5_{^IFeJ>pit5^~|F?xSGg+*-ZpX&jEmIceFgW4@FMo zJ>9;HPal*|AIr{VvW;ucuFg)ox75~;WN#?V&7dwI>gl4&o&%wt1CE}bPJNB}S`A>g z+ISC6yr0#cIt0*qvN(Is>t?K*!>rsWtea4322ZN+ zR6Wl=8)yB0ODn0pU%Xw}8E+A=`e(?5i* zDKYZbi3yDqW@>1|et<2+mD4$wvNU?2f3gC-;O^Bco{6-H!RgR))lz zYr1NGn?XuCsM`lXR>|oPA1#wl+JF}U+(S5l6dq{9PuZb&J+wP8p1a`O3EZ)7%HVU` z_#YI9X(Y{Da1npRoB*3->9ob4m9M$)7} zBB+H?$7rjVstTiqDEC00>mxOGx^+8#=-5}v+mJ_`O%!4HNihLCi-Q!C0~ebCut80f z{hTQCQBMopR$<##sr+NOt@qYjXI|Cv%@(WFjoxb;vW;+D82VP(hNh5@(AHx!=Jv5Yh=J{qkLIZy-tv+7Y)Cg6hSC!Fk* zzyg^kGKzsSz${bPWbo~?U{4txF?R1|xneYA77({~9TqTcUrV^>g&&kWW6Qcvqht8Y zWCO4d=s3uYoD_S`Nt0K9?=aW_w28$fSn?R>?6e$fnkQDl!K#x5RE@Ye_f*a53{fZ zg;TQm9rOq2mwCuWKmFdEETCXlu}XmG!CK?M>A~x zMT%?tLpjrJIZXIF!Uy>G=!M~Hij{feQ-*7z$Bs5<&Z6Oft?9Y!I4*1VuAJU18f?BKhD~&tvD95j->%e^6#Rk#Dqo%+Y~IOx z>KunQ_ab*ub;GIw ziypKqAMfIJpWF4o2~5=1a6I#&VRakL z>&+$k?VDQD9XATk8XJ`(_QmZ`6}RqB?&Nx~D^YB}tD5IEAiIju4KR%&geH)~Qz#DU zRVYJ$YzFZ+@neGhC=UH7K*^@vi=HHHBqkC3ClDk$@;i+2r(8GhddP>}hUME!sN~j4 zP3NadGOwS6E(km8kG;&`mEe^C4oTug&N78Cl^L@HFFxz?@Hdxwzqyus)gJ6`v#aHpC!GgRqEy?{zGMCVgrATTt#2#aB4>#DN>WqIsG!~OM1)?tDPc;E?1PY$#T)!!n+iKmGBpz`%hS=u> zVv{~4sMF1VKyEz+C*+w0YRWYtLa*{pKCda+nl1vJ|DXltnxpo++}PUbMVh=7*1Z+}-`Ywc7me5PYn z)e_u1X+qiBXhB{fyGXv-ZTfyc*^3v4FhxR|YgeVSEO>OrooGK|p0|`w`w2gPni_A0 zFkE|}`R}sBw zjeP}u5T1|w+uqicq#j`>WkhgCS9r4ZB4?1uTe+wpqp;c0u)k-TwO?Vg1heuj-sspV z+4f%Rzy-W#8H-^lOelrthp)4} zN=u1kR&y9t%D6Pz8@_S%x`y9hLwalx#b&{$21cCoyuJ1!j|5XWLtN=RwGHVF*F%}8 zD$^?$RA?%Bq2AQPwZFet!7cSk?BtDX^;fxYaO0>`Ty-jyKSa}CslJ%s9(&eta4d|y z^?!BJ6_{C_z)@JM?ca%iB){?P-{GbNAH39z-KhN$vN+v40eKrtGN{afUA45tq4<+t}r_UWjv9p2zbt{v%Mot9(iqJvs&sV>c5SNVXgs@%Ml4{S;E%Gm~D7yEm+wx>N#j6}C&FL0-%DkDdw@g8zr zqFO6yMVK0M4$0;F!t7FBzrLb_MrHO<_l?U_cPy9~_^pyTOcK_Ko@Uf;ja##aMj+9P zZh~l`+hntK#Zb?G5GhX(2**l9;v-ZEqlz#fgbAePj#U3R5H5%omPa@cW>zs{U`ich z+=5XgW~V7^rN5Xq?0$FlpuDNkG zKY&^=92%t8BDv}mY|sefy8Ni*L9X;B^RN_33gNy6e;1iW#ITVG*~!}8%la9dRRieC z9sC)8GxCw^^Ckdv35RZ>vM5-UR9>2>Nw}1=)Je1@{LFESZAQK{=8SJ%UN6}yU6p@m z*Qp7orjf&x^p*4_9MU9U-s@zNY7wkF(n$f-d4_m@By&(4!xNv)_o->cpFuNoM&Gi; zbf~=q+-b$Z@04@JB(${_n6fo~MaXPHwI6+dE3&>pdRJR3+TD@y=~VUp6lH`B%9F$Q%?ab_;@ADf(P*PijSik+w@EjD z_zTg!(_rVucqdo7yF2rfQ@DG3;N~atd-d#*eap1O>2b_G?_h;Y5E%(d4^{ZL< z>x;zDUD+iozbWg8%UTY8jlbc>Bh;4f*wz<10xEOVu8mb|bkD*5RUrz8P*gv{B~3ol zIK!A!E*c3be_F24<;eBORoq$IMmy+#J?sv0x8t-Uti76}IzIY>RDL;%U`uVUBeMO9 z{i@G<+7<3*i368+kr}ylN@VIwF5|BD4uZ*s+mU;4V>)9x<}P`P1^i|4B?>ZwY6@jw z>(oN%b1lO%rkP_6-&`WX!#KGf3Lh;!X1aQ+dVXT%>bzLe(~F{UH!`JOb0=+oUNL)D zJW@+@K7)!8a)m#?74vAZnAoZVGx`~=n-pkI1>;@VioK6veJG)H+GTK~$Vy>9>4bTB z1H}rquTe+@ie+n3B&6w#)M2g765rX0LqWjvk%Fj2YoiLOP{yaw?G;$H?CR0RU6#-j zmU4g7%6i~@@3D8|)5<%{$UNqMcN6HSeQ-;^4a+g;PVoBAU4x2%iVFetHskgq*$Qq7 zlpTY0x)J*hj@Y>M@O25&$;^Fe{)y4c-}{_{ncu7XC;5@pvR~7ghtdMz!m43|;O&9x zf|il1;xPBAl`-C-eGK#YR4ZtfTnQ)_g6?Eu(X9b=O7q5V8%-A7YjGEU&TDlaR`6?A zP2Y@@MYqPpW4q9IL)Ldg?S~cJcZ1>E24K^c<=|s`;CDmXg)`K$S2Ob370S1xdDGV9 zcRS~QDJC6ZXCc*bmly7RvH2)0e`7|puBtB)a*Rr&DYT7Wq7gR0jwBb4&(TepNzJ4% z@j;mTMZrt`jKd$GNj?aFscz)&!lDi)`~+u1AdFi48L1}Vz$qw@K{DO1s-q%iDCl-+SUy+OaOeHGO@d+$XTZ3dvZLtha*;hOgs{ik za=T*9_Xz~eL)HheG2u-h{?qM#Sina!cnEjKtH+1;^!nVMLZXX<7U({p&b8oC3j znFJBt>pRg)n^rY;u4TuUB%B}{z~X*#p_g$23`c9`&nm}= z=*IBri%X~A>P899dvThP&W*0?x7H8ZUGqqUag4%N4kV00$MJRg^#!-VVK<^pD(7*0 z^Rs?`Qs)*9z*|uhjASM$h9@i&3|#XxmnT4Hto@tIz!5d`wATt#O_MY-@TJv4wlzxO zR+Uy2{C%@0vw``?@LG#*w82LYI*V!4{znf}i|ORCM~_mB4TVk<&FjW4v8YS*jd+h= z6OM<%2uMPGzX-rjFMk-UStTX~kYR&~y=&aZZ^_Hg%~ z-h$tzhm0${^Sr~n+rHGlU_R47?mnPm4si<9A{gP`lHal)d9J({y2rW~yYUg`uD(Wp zzFNO9znH(^K0QCfe9&!x=zIt2T7Bnv<9U_wcxISo5sopAk&lbV;h-UaW0wHE&w4}? zwg_#glQ*#p-#(1NhF*$+sbM7_wy;|0Y3nWcb)B{sdn^s-0HJ`w0VM#VL9?JaFx6UJxQo=Yr83Rv)!-B&?C4q_LgI0d@`ycH=47?QslK_*vSi?#~X=7&~caX8N zxQJX=ZF}|>_8RsU`%(DO?78o?f^30zVQZqUqrD@MbwgS~TtZ&LWMHmeWdjO-oj|SUijk~RSEqyIccp|@2;U4JD;Z)_Wdtbk`JwQ#C zq3TAcHAjev$F?QVQ;x()n{xD`5(_{{FSiw+|!M}6;HP}-2ihj)dK)r%1UNBGn4 z0FGa9!aLVpQdU(~b@?qbQZj-ADZ}H!+7al2ps~Z_Lm4AOA$0y|=)`<~K|A<%F3@$9 zLud>sdT0~0l0kfe5g~N91Vhm2k#Ch@mu>Ek(Og&6&F(?&)WLb(PfJf;SDo2!T#nY| znnF5*x`U#FE+uWdW`n;69R@4hn)JK$OZ5wPtp?o&g@J`4Vgp3we-XvO9&APZ7P8Cr z3ii{2mnfjs4`(HSR@G5|5sV=1%@q~8R@~PuAeM*vDh<#0F+LK(D6D=D-h_n_-5|8u z3);jljU8JxGb<`nz(bFO9w{kUC1h0+O~4S_I>P^(tqy}7RV{pdiIU*<=g(i%j5r$z z8<3A&K##O#YJ!YRY4DSv6p|4}0igN7qA3D|y@5c%1Wdh6CSC=9@V~?Ih~$=hi%3xu z^UP`}Fd~%$Ip)ibbB|+>Yr}d?JR8VXF}Sd~Fu8CqBAm)K`WtC+ri9(|fo6BYZjM#& z#qYz^kvefQ!#1Ip0xYcL|w^22qhu+4<;o$jUYweR`v<%rb8RALfCbGyd& zfrJuG6H^n}5?vF2K@ycKizzM=v&6gTWznl5l$2F)syNkM-+8SK1q|&EM#mTukNmh2 zQORkPwf$^)6jo46OR*}j*kt9|v|W+qrIe*rrj(~tsFkV|H!C%x#S<~<3_ zYllRIDu|rO7g5aNst4KiwNCw2Wh!uQ(fkUBSiQ22R_&3JYAutNlsXAD#B zw1aApBYB^HW4w$Q)Od1V^zMlRkQ#pM5WZrQmL9A8%;N3#jS2FC+7Y`K0Y7ZZN=o#0Pua`(d|he9bUYxka_x8+?tg z7-eotrGIVffmPdr-i!y^9ib!aH#JM3M{+(=Jl9ZvFxP-P^26q&dW=e zS(FXH{>jN+f_MOdH`P!QhbX&)z+T9(z2x)h6}amAyg1|PS?mq)e97&W<)Vu> z%cA%734F@LX*$A-7-Sh_d0eK~uE+5TZ=+1z2CDeL=$1%H5I$pGklBz=Ru@#kR~;`h zLTHkI=8;q(VjTmsk2)hWN?ZrgDb^J86=3vmC(?W$FLKob+V6AtkdA~B(O`?H9&j-W zHXG-~(^q|8&rdN#X@K(DXj^SdqrNcx{65sO)q=Z0*A{_uuR&;lG?O-K44v~fltUN7 z9AO+`Jmbyuh^`|H7YQ`Pb}!1|>&H`+$=l0+wt9llA;2N$XWv-=%ca;U3^+aVY{>CF z!3hKRC{;8bo~JSstoNmes>q>Z4H%$Z(kmXfU8=EYT0i>4zGzx+^xjng=rKKufh*W> z4pnMWm98;GT7Ti*PysV4#Y?}yHq5AiviS2FZDp{aOC2Mj}eaLdQj zf&CNZJfGoOh&_C&Z>z}u7;7D*G4ovYY&TKUOn3ejyv*F$J!q{4 z#}cn9OQOZ?&%yK*Dd?Tm0ZRmkW+yw}ZDtS_Y`l(ig7hr>0x8@rMJZsG1&cC&d{_(i zhLbr#keRUb5UWS4$3EDfh>*6L#fg%F_yf^jSMbFq9q=uWDXj0KWd&Huhe}G^Me)Hy z*unD#@^fE(IGHg;n1Ales0}sq;bJ}+ynXhiVmd&wP459*{Rgl|+7XrS+{g4(zi>?0 z#*IdvV%>fTmObEOJRemElknny@{;(n&z8YMaw3-qVHEy|{!ttNcny5Vx?fNnh%q0m zf9oo$fz4iV6DmxCkzUf7YahKLX!d9I4wWB53r326bFN3?;mcndlHWNui^!~c`8q|x zhmbW=ah{A+2ZjXTOVVs0?lUpbs?YZ-38nmXnBz+DEwFl4p zHQnfQ{8!p#iOPHJ^{u)!Paps@O)Eo^&`Af z0GRzzuq!)H@ij>v&<8!@F<|&o-7q_14RHMIzujnc&F@WUj;vqxm* zM=1=?8lI}1s?7^9$?EWK-oX2>; zdG)=q+*>;)8FG$)xXQsCa*n*pTZ%9rVq!FW@4R_BcAR^XLNr;u7nmzIQQms#!c0a? z_D8wrx|+WCJl6Lx_n>%f?Sj(^!;Q)o?heTg^@idK>qhp5iodzLxl0MtiO?AsdOmnI zwD`jr$4dR#d~>z)JUKNfozaoHHn9WOKVl3nhWj!)gB#L+S|*gyHzXFkAjqU9bw}~1 zB@KP#C~XCSNn}z1O0nE5_*ieU3m{Pi$V@fzWoa3jS-LWaF?fOT!30l-3-%ApCqxYN zms;HqZgXWBGgmOsc?L6#^jxE|MP69p>-|`N*t;_J@}ifrc~?gqWk{6gL$u6_)wPpOEOS`MJPM zSmOG`{A9VnixrI|2{>br2mG0!O6DU774 z*k%;+lzBo>-^0uTr&0LFa~EdRkGoVLxDsRlO9o0M*5wwa%5%f6Q5?BDm@>+$0{D)0 z&TH6zGOA6-xIsOEnuH;agbLhqN? z#j6O)_noIb=J6o)5IpGh14rAjzluKbhBH`IMO`Y3H02E8j*KzC*g{F%^mbo;+WRVu z0&5WE+|x3ew99i=lTMn;06ItFp)|fVVjFIMCqEhmsZ*LVkl0peCnjRF53L(!!@I+S zkLkyYCm!B6d#UkIAi39#=UKb5+kuJmPZ_)As$^ z3S>NsF%sa;$9u`s4?vq0Nz9ag9F4;GDumYvs^RH4w7GEJIg(a;(AGpO}zb2Z#rL_ggKMRSjD|d za-x?Z_$e2ps|@MV{@xgjp>V1KN`hg33BbIt8VC$l(Ct#f8{VC4DmcQ=T|W&!4gbmJ0dt~=<<6oEPXH*Vc(SXh5z!A5~pkHGYv^_Ff+NtO3%s7HgM`ZxPK z`#mvM@=xLdkdrt*VX&N0$WU0tn$B|p*SAW2kr1a|WZ zn?~hKle#AQqXmZ_30yT|`q|2(0lXZ*K2^w8z8>joh48P6}X%sElXQL7#r4Nk(Yu?>LU z>4o+ukRN>R%CuO?8nEi@#&(LhACXj#LZc=&J^6TUfUKVtMGUu#klJBz=Xma~l5!;^ zEoUufpi*wY&-h*LUMrY?LjOfwi#w^@ik^H~D^k?gx0HIN z_Q?&DxuIUUkHthH!qh=S7q~*lfhOk*fpoYH$Q?}q2YG$18%@^ z_<(Wx4Mu#tzrUjIgztocJ1RHjBOyBd)%b{BK;6E(*XhqvNYPtE)`S=|yFv}2CPeCT zfVOe0q0E@KFfS&5;X6q?D6c+xo3zmgFi=4t_k8_%dhkT(Nzf9<*3jcYh7AigYc`mk zBQ^S}e4{~1{p7E-FMuzA;`lnhbOdqnY2uUR$X~E;IgTN2iEfD!gu5iWBC>vUOL(Cc z#%~dJ2Xl*e@pt*rk2sGy&u+!>5PApEk7md7h^&q1#B}q2s_oN^>f~MQSC8oATHM0A zf_X-CNNftR?PIhCImLM6efijp^2B)ya*RHWJjJBGBfgN_BZ2UcMvLdg&CJa!n^Dxs zjw;fx3Khzdk!Fh*%FkMnM~Vx8D6%I;J<6ghf|3`|mr6DykLA_L!Y4`@=6fo_Ci+(> zQYVIokuey53Nw>Oj|se$YRywC@?R7=<;$DFHG-{_cFt=n3SZ=ZFI$u(kqJo}vsa@v z6Ef=vn@=iEC~s4yQm1n56xvI%>5A@(?n0QfXt|%5`_F+O;=g9neXWS`&E@9u93}BfhLEIE~fm-<0k$KJh zs@TT?ag`%*Y##Xbs35mxJnmFnKams1K%gpbfum%qoE;EQ1sxti(?- zA(OftUpbMB(v9?2Vqmc^*D8m`HECL z2j!30)XoXUFHw+=2bNuXn%$25wrfj&+vZNNNtxG~`!u|s(~y>hnkRHy=v!=hBhJ0f zv(BSSN0|4K&qJQ3UFBV3RoS>VQczS~YFi$riA+P(i4CYQ5LEp6GY9R!mg6W8TX7d* z)`QMV&6jI2F)hgIsdC&TM#)C?b8&LwK2BOOaRo@`bqUl6M2_+(_UdC)64z>fm7Y-% ze>{v;>uU7q`r}EF#hG<_uvOXuwa7V0*)m`dNHydKL=bu%Ho<=9n?8m2T{ zqeaSUgBo!X%nI300+{ADN$!t7SSXn6xMupf&KrW0)e97&gx-isrOar|=d#4z2B_qN zX+%x|(`9Jbh*&d>1CXM%L=lL8p0M$g&$ihu6duFn;W&;vsUIW+ehROcy#+DiYsFi! z(%60MBAW`Q)iWV$6oBaQt2b@LD;F}Ic$q4i1a#vhF}Y1WLwIYF9c{^vv4Os8NGN=i zenOXTWNSGIVEm!#>bHJ8T8nxPZ-MX@Yn{B>UH!;Nxk!F5Ys@(hx{I)X@9)xH)Hx-` zy%qUTdgT7X|AMFM_nz=9JO*WfY^vX{Zq|ANslZ(9xMhCA_m1yga9;ObRlnfTNP2sQ z$eK>hAa{g-OQm`=)tKKR+ia+M6TL#N6`Xj)ddzmxZg_+U>t5SB>maSTp=%f zLj{2%td)3_F#Pyj>*Bsa@mA4qAl-c2y4kwpx#oe40Z^YHoqQ~JlYFpr0gNi*)yHFt zK^cMGXVu)T$p+u2EA<83Qkr&9bMHBofLhKZ^s;}cvn1b!Hv;s3_~A7s0;JbHZeOPe zGcaJmw|^9vbz8yP7!8X>jR}eM5VZmqepK1vxemz?vlq74WIy9gYO}7>SM5R%1mhc& z_vU-}hy2MhrMN0l_=9DI$V;6So)w)H=tgr^y>-{b5yrO>_lXLGx<|G3XNzjXb_ZGu zFk5m6k#ARz?n`5T4~R(6ab1<_-9SVSxI5!d*a)yHP-2O64^#=QMbo1;)j=J~NI$CS z=VHLQPXG-@TFeyGHbCVYBVDo@gceLyIE#^y_~GagVK!g5=X1Nb1nOc|^#g~}zO9S! zm*4|Ry@g~#*pXJ>mpJMb0#vi?geL|mL#;X~EJS6);E9ocyzK3ufM060RnJlW+I9Po zFFBffGKuDygv|9{Nt!B6Fcmoe@8S^D9Y<;J5l zAj11z*`1s!IB_Be5KBxi>bkOBdRO(ZV+@6IuF~2u$+;**w`OYTB&lb~OZ#u1ifdfL zjn!vagAliWU^S~95ECVt$(w-tsMX#In<5U=`em029)Pt!|2Smt#<$7PX+4n{9di$M zFLZ{c9*6VhuKDnFS8N5oGuMp7mmc%|#NuXRkY>Je}zt><`rz znHwpzFBLiZW0xs`F1bt96BgQ&4LJq!S+O{J7td~gzo<(?dsOUj$XUQ}RP1>8&XLJx z?zsBy{!X+#LD&MvdRKC}Q8CwGBG zoqFfb(tpDoL|m(iC*3Lhvr>A}7K|JQuIN|G93`t&uJSgiL)ojjH$+b6pCOuP-g?Zj zMhH(ocFnp}D`HK0S$1*&sH9j0yEKJzvKV=P`U|?Bq7(OF=Zsn8-@p^c;oN1fnzx`A zY{)nD3-=1BRmIe@$u{-J_5&1)=#J3ec#YB@KUoFeqMsmHfKiNl)o6PWj9gX{wAQ`T z=8|0wNEhW7O~D7A z;7VrUi_X;*q2Oz`QN_H*oEDrC#8|R_S(@Q-SG>lBGR{Lwa1ql>RHbVXaT&YyJwnGA zsnbxxyi0@^X(1@-uCWJdx&_7Cn0*=d=f9?f+D~jr(4w6oR1CEP7S&SkEUF~$GH^5g zW8!7Px9~9=K>ek?ul+CKrGyZFG{RF{-sV>4RF_$&I2oS>weR@RGu>u36n zHN4`j^-OLlKJ;Mq5cj|4d(8Xa=(nhsAA)=J z>ulEpHkeJgf}EJb!?4-K%roEueoxbQvm(TEq6791h!2PY^+KBiNepL1>OcD}lV_cm zxGjMS_brGt!@M`X{(_w^>DCp0%PQPv67`byY>acud6`F;=Lb9cH!n`vB;h6LSsHh? zFqY-UPv}^nN$7YW96c2-`E+{balo+6#|lq7Km9~*;Kw7~3SaxL*f$xiv{$4R5%G!j zOy&U6JKo2?4c6<2!9Eb@A4x7K$uEF?Zp`FUU8=H%7fwugoled~b;@K;kb> z+Lp;0q|^0@9RcKjO16qoT`u{JUR!U5C(K9dHQrXRt`P7|KP^7tz!6}3{wk?< z=i;2#LoMNbl%pG*ZFWN}J%kiOqJezG%HxCN4Bfeuf;vv3v7oX0@c7LBgJg!%I#Hsg zi@&%&6`uUq8eVXqK3cqd8srI{;@}d4^Ato$yt%#%y|onQV!soAJ+~Au<4_a>;uP}< zDC6K1Jye_t`a+dJ26J35+yb0>z`5Sx57qiiRfFbQwG~BXedw-ZO>!gX|7yG{IbNR zYxF9T&cWjPwT*eqFC?Ck`fI`>Mz)QvX@OVVFa1ACFYuxQFc)dCF`zJHQ)H=Q#Egtu z7^&mOcJ5jLrpH%Vp@;4NP)`iBn42)4MzBv}97fwgYtqku$*Sw%P<4-G95i&JZn~#i zP-Ynrx7bYztP(o=w2x?zsgt#jKAL(CKqC{|hc(Bj+^lslJvT4!7;F5(UkGR>S9epnvM7J zyw|Sd4}LU@uYQAv+IL)6$!WwK<+R|m!&%{gto(|lhV zMaf?W&Xvy@HMPVs+?mRu;ho4ayBG?*X3lyQdq)J-lp}>Io-)Q|U=&?-ylH;GJHw zPsi(o{?-GM?15>|GB&wd|8nnHv^?s3*YWYgeZi2V%!11rj2)%tZSjrj9XN7Ge4+p8 zcs%*>f8g^%gw+`mm{tupN{T*>?b z(iFJY{)y*cW`-#y^391T-g+mQE!eTMFL-8 zzz~s-z#fTdT+GnrI8r;bUFQVp+@pVm`1&EQl-%2A-#bSc5RfV}!TK!4YA?1N(7#lF zy0@zDp1Q%NfaSzZCgo@~Ym673HzAOI9Uix;bX02uI?J62AWI~|3U<>n^J9-KIw)fc zBFiX%FJV#4gy;A6`}oJub-U@c+xp&P`}oVdYqI6!(Yfe6=4_<8 zGE?=9y$N?S>4fdLjEZ8Uy`j&7ifnwPGv0e@v0=ZWoc!Cj+~Mi+T6M`(#0F)5K4WQa zbu?3TK%shSv#{K~co1A{r4;*I8EhR)WJ27PqaRn3|9ma~m^U|H#ucWV>N{TKPk zi1smQ4TBo$6-Aqk?6yoVi-qj2Lx0Zdy8i5TOOw|o&e81F?F8MYq-84O){Ys|T?f>w z$*BuR&Bo5{m+i;(Rw@vi*vjSUTb=n0Bc2BBsT&$Mv+mwi6HKPk4j_$x$d=aYD+)(z zMpTc8{1Q*Zmz67>4V9yf1ZU;SQckP%?fFdKZR|~*vznRQ1&b>ltMuI)KO8LY4u}i4 zrnj9Koz1S#w;$Na^itGqn3d%$`Am0VBi_Y-Zz_f;r|ZPLgP zC@Rk6Y;De4R3wx&D$!SeV;kNxj+Dl(-ofP~o`CEPEm1sW;TP%G_OHxO2FH}v^w;XniWW|ZsrBt(nD_Vf>>H@O;7HE-8d%F- zLtqULU(?l{dFzvFu*h3$P9xb3%|uRch19Lomy?c9Dpe>4Y{FoFOimktUKeg>{>w*g z=atXl*R8-C__Jp()g^|W%b^}ANBAZ88Sa~&i=3$&DmODi>mpAN(N<3v(N@b!&z)xE zDk=@V$&QXfN81k1@%Opz1m*_E8HOIi$j=(bk#5+I+FfINTeHLdK$m6rs81RT@1NcE z&!4)AhKJqnODybv5PR@=f1rW=f1yC9c5HY!|GnOJ&%#Abp)rQqhhdFO)zXU?37MR@ zMMq&V_L!KM_=JCDu$#c59~zHMg+RHA_OQO{A7@ML^O{K|%l8L#~;N%ca z%Y}F+67xy(LF*QKj2$*Tc^O%Zr0Cl|p>U=C8=pphc@pCeMD0{F0+>JFAkp#S(A{qN zcv#P1sa?fTGIF)X;II=hvA(~1B)5dRiCGhIP0PclYGZ@9BF~I$Hw;UCPmKY?ff{{;8x0I4P6WXbIHQL8 zj#YVoQQL-41KAYp{CR{Rdv#>sT1C2o$ez1;b4}Kc5;HOr(sG)Ktp0Wm!yMA$S(`Gs zv%l89ki1X5W4NEuFwym5SG|o;K4DAqw2&*t#PZ)ZB4$K&7|iGx6=?uBK*+yu?R#w8 z+esm>Bq@;e520k}m188$@CX!`7*aaK@+e7{wz8trfAoTF|H<6VoLL#Yh>EdQMwLc` z1JKQ!)P3<-NQAcw-hwKN77JF{(xaGVa0Th`?R>}lwsvOPCW^y-l1VddoUK}Cc4!Dyo-*Zs#@y_?|mE1KE)qM|u9kDa&;a7_v9jVlwGnY`m~AXb3YLyT zn}N1@!RvqM`5|teUaejfJLWmzxOlmPM$5Y6e{jbh-=YVh|I+#64xDmPejVxRTv7?^{r-L3|aYJttcV_Cc zUkYwhy|g?Coa$&}%8|0`+D=!8h4=Ii?e%9P1@m{+XTxvRYwH0p$CHPySLWShyg9h9 zf4C5{L#7q&kTeKUz~}X2(H5phBEgLu^&IV11sv19?6uiihLX-I&MCeX1no`v1k;9=NXkJ2f$rPJ$pETl^-T3g8wj%qvNllZ%JUI*uX4d!`XjTS zHL63XsqeNl9ZDSuS&1qt>6;4mT?WR&f7)f9^J30r1^7!guS%hmEGm=l?nbRzD%L8a zlr15Z6{&w$@LN`l|YONBi%IZ3Ged3c$CFVi&eB`m~H`w@n%!RWNT(|jc^^V#$ zR#{XwbD=Tz#=D%UaF`L1_!k-Pg#8!pJFi0*8@`NPz*Cn~2x2j65o$a80=s#be`Jym zX|%)n0_H;ImVmi}N2a5sZ=wl%te}%v7Akw(EWATdn?UHvTpK~?IUW0N)((5OmY>!k z=5OfEEB6>Oeq=;E)&;u*%XEQ-T&6Fst3T#m3SsKUKa0oavT5Fku8Y92N)`OtkN+Mj zmbWm8YCWLcmobi%W#hUiGAl(zf1cHilyU_{nvv0$PvhmS1x21gjFe{a3OD?tEJztD zXbB1}{zSw^N}X}?-ss9-+hqs0{K&s;c!^f$zzxN^`_jj&a@Dzc%N{y^wj;i)baFbE z!Og4cCjW-~i&wq!Xint&0ml=@;hj#0FLf6wS51q$gF@UBa3br)O!0&(e-iv7p22$` zUAD+8{7CB4%|-?Lh$&zF%U1C$UADp-ZShT_bjj;);oZ1I(R`mvgs#llo8ALA%^O(p z^?Lp}_hr9y;_J8Zzn&;i2XddZgCRdHkH=1&3R_ zlAtqpAy#W@pjrDfA#)vKrNu4@HIYY(eQ%~(gp@z@jk=OoB7x= z$L~nE&#pA;DTn<_UvX&q=O8K$yUSvF{Vv|rl}3LlD-ON?kl5}5f6B+X=ElIS{NoRz z#g1W_dv8d_tMf-n%iRZ%E%6lUh`38KK95i%C4I1o>H%Pec6d2cCjxH%dUBdbL*=po z$8@Do;EA$9)SqSj8S`}Ikn!Knb|oJw(Cb5tc;)XI#yxpRe&SUkiF5ue{P11kXOFib zeJS&I_nS+IAUssafB!$!6QvoF%HEX9LyWd(Eksf!rpZqBdV|6)%^RX!jN@+LONa>M z%3~HUP5fK@-IQ_9Bk!Y3@hhQ$?$*H`uDWEzV_0_(s%~WNqclw&(%X+-Bxd)o*@Pnk znVIwV(cLahz28{gf$HK#NmEG~gp$m->!ie^rGtJ1&6yRK9hbc{;yaR>+Rd%gR-Ei&6U*73|^>T{WcKo^G*n^*OAMIJc@ z?JkZs86GOv$L-ft36Nuhd7I+~hvK)GhYE-8A!1fgY2Qi*#rA3`a#v;l7xC=M8N%zy2V&;nCvz$1 zd7N?^cadj`EDX7YC5C1Ni1G>x+H957a>|BPkS&LRe+~)l!W!k(N@54^%T#ia{jewM*;shM+1k)q=V8R`-MFwWL`&h+CbN*_r$^|Ft zie>=h2IHnSl*!=x4?78}$nJ8MZ=J!RPJ?a;rts<;}}Ntf?4P&?=*tM>Gt(xde+y ze+q>YkK_xd*GOK`Iiq0>YwLH}jGWL%l~U~&&gf?_PLt~B^`OxQN0i?a60EcsN1`E! z=hK)On)6 z6OBf=N`qD+yfSAM6Z`T6L2g$twb4q8y150E`e9`?fonR47Fn91Lo{*%F{Rabe@eSu zGIDE*CgpU{lS$=_Mcs-zX0=J>@`lAVUas~Ej^VRxcWz({x)AtI< zWdN6fb`y=JYL$1!tcNmv^<_x4l@e)n=8CoDM298RiBJe+GPmW`hmz)zi_^qEG3zNJCt zOw)uRu0t+0(iP5UmG=zJSdSiD`{Y8VI8X3KG;(TTlY^qyXwDSm#v&By)q0qaC0+cI zn8}dfB@M`N{DYXXP^=K+%&Cl!MZ;nI#@I!bbiZ@_hnQhd)$Uly*vZn*e^|H(punkE!GuVZ6l#8Ve=~KC?k0GPdxRer?TYp8yPdZ#*pAygHasz`TkFK@^zSBo zv%Nx#{xa)MglOvxrt1x^>kZn}?PJyLbJgv8)#=l&)xlY{{b$t%ZnXx-g7puR1^^S* zA0{;bh87G{2Y}@Zpl)BIZeO%NL^S}W77+92zqLCq3oBax?#!!WZWa|CAvY* z1(g2F9Z>X}c7wb#=K?VsR`i?QBj>}+0rY~E1!y@S?`w2}tP5>W{;6~XJ?)x#%?t5G zXa3sF5Aj9*bA=(iAAM2-UO#Y2>JPVhHoTD?-`ri;{rlJ8e>n`2{CQIf|B*K$eYu_H zBi(W(?PrGy|Ako$lKS+lKWJ~DFd|fq`rvG53S&u>$A^4fsI5r@3}rdsZ-R< zRZoru3%z(1T6;lTKU-|`?nyi{Qqx*;B0f;G-|Bt}6?^r`kdHm2F_Cqz+qwsJ}mi?2a0O<~8)j z-Zs;NV2`88C0T(Il0QDS(F-M3nY?moMORO?;7gvP4&F7u#e=Ljm@lnlp2^=6__IF6 zm+{gQ^v6Z5BaD?#Q@C;*NsT-7$5{+}>$ka=>C(I@e+%c9j>Rc1XVvoJaV~?a+C`K8fuBmiq~1ZdBfa|HyXR_stGMy$rqSv zWXMbJAzp($l|7b4r_K}0NizY-6KyRFgf+|Vte+%JAx{juO`R?|v&-l8-i;d_Ni)HO zPDfD10_2x9E%kKydHzqL1ReMb8$lX4e^ifCCNdV&{zTQx?fmECIWWcL9(AM4CDzm6 zrm>}PZI;O;QB>BVu%*`vFGfq|pIZE@F4ubtFMW9~MMg}HwAhbdG}mP=0-V{sxmoL) z8^zC-s12r!2$8gAsLhib$k)rF0X_L3TYxg1HQP%zmaN~7&E&sY#wlw%&re5Me^1Qq zBV3=({fmjdGP#-C#ah$2tEa>ePE*fF9XL*@H!Iy9elhJX>`BT6m&QLSQO@t13N2^J z9Tl4&4Bo*#61s&~L$A#r9^K@flAYPQDjhoK3z|#PIqKch&E!cbmy_npt>n}k>iRwU z-GiEk)#OqOuNT-KKMT)2C82O1e=WthlDsDnMXv7~PlCnT#oEEGPc*Y`J4qfQyd}9x zH8fcBHNXKLv6VW!mAR6-C2(hgA9a+<=nJ(MK*Z@E%}BXCHBy&|A4NRX(3g!NMnp+T znBqI~gv(=0TocV8rOV49w696DDZe_r^YD0;H6oqnOSEm-yh%LfOeRd2m|TwMTFflvnp%bxWCMHP;|8H`6(mIy3x~!w%!& z9$@qB$=@GaQO=KGe^j*&%aCs)jHFczl?w{goUOB$_f^w34Jqc%KgLeYDQ{KCD-@P6 z=8j{%0~(jQ#?`O2%^6iF##-pD8&%dTGQNr{+g)|b@LDF<%`cjk)q*Oj#<{O4l*`bl zOlqSMvYMof2R$s6qq`~IkerEk>kMxlJM0M2|G}8O@5z8(;W^+srByNsulkA}PM< z9h)TnL$DjiF3HuUvK#YS*+V1hog>K@aVQf0K>;QVk)eR%?ddMm>x?xXw?{3TmDe7f z^E-OB6K61Pe}FvC3xTXSUGfTsC&aX~IZrk;&w zWRx=O)r&Ta!y>GG?`6A}`_BZIpJV&W6tKtf!n0kaKR2%z`r9- zMg&AM=I8`0y2YMCd$l)k~LMfuW@m&depce@sP{-W%-01yUr3tmT&hl94;Y^ta4& z2VhwxllY#C0)YExoClfN9mflB1>_T2aA+Hs3+w|*CXfsGF1)8}KU|9Un%6A9huLQ< z@T+};?y!Q2_lwj9-YpUECH|KG@AXF)FLW<=cup(8g!Bkv%+ue>i6j3Pb?-KB+@JRs zf7t=B>jN+52VzwNW()2M$>Ys(3>Q$QKs7tgb?Q44)NaYoYX9tWp5!FN5Q^#2 zKYi;q{8(g6AL|?HKb#b7iP`uOtGP&|nTgbfwNh@{UaF~|+H2dJ)9;7V>4U@2OLw~T=f34m1 zaW=99jeBrBS{85vw;;F1a|gBMGF|6?P3@~|56;N(M0C3XJIe;Mdj`FRImLGEZViy_ zaASS|8$@CwXb)>P{j6$oLTrEk`Sw7-bWwlU-Nb(q3fxQfHO~G1WBd07Kg_=PMMQuQ zpB-G61@_&V2f?=ps0AHV+?HHpe};gW+u!ydQb&F*K+eAtIqukX0v%wL!e89sWjH|* z;KNM2C+e1iATaQqpb-e8Mj3zxS6Rk9B_ zJGyDHU?3YI7w9b4KW@x#e=4lu7!qo~lgu{MA-;WHKPp%v!!7!l0bBpD$^$sRGzcyi zBT+Cr_V3h{@ryk=mnFVN230dH{|z2MxDCYJf{$Te*^V{ap9GXhiyf9hDD_(!q3v588H zU`CzDH!=pFCTOc4cu#dios7x*==Eq}KVtG@(sjH4w18kVQ9u2{76ug6)cK$OjgqqGnhqa;b)AfRMPWm<@?2Yp%v2G#~!QwmkZ{TQ_yJVlD5YC5A%*JKRXk@ zEw}(24r40i+*1*F(exE@2psYjus1TLe<;Y|?@+oUJru_6Q{H#C(Y$#3 z3upS~ZVNG8bO#C<%1NF##*E*1*VyQJeDYTPB; zf$h)`b;78-Hj0+vnC6Eb9IX2k0H7l0@NuRwB4h%=m_1UOe_e;NeQ=Lyuf^v0N#9U~ zzYny|mH4^*fUw;1;Ra3*Hqy?m%RGPW>NQ^Ww37SeZi?PHulTy1RQ3rs*~XO85m1SE z+q@_jfSIN+u`t?;qO1xr9VcBrtoec@P8)HEED$_hnI3oY^?9@V z_~jVxaO^3Ie{wS6tNHlDEi#9# z`}54P?Dn_kity?lk;6I7>xA3#Jwo9bO8d62O2!Efe|I*PJ7LjpO6G<4KdAe_^~(zQ zAQZk>Z$W(sru}R7f^oek;#PfQe-3=2@pw=?>$HD1yqhA5Ok_j#%B-T|a1?kA5c&aU z66~w)TlEhsKoF4=dP2zsBiM=nfQnOty2N7y{lVOm#`~Z$$c_kGCLpK_`<5Bv zp)t^we}wXnD((gDf`XYm5gH34QecVOo~QMr0u3OJ;00=+0_u`6sL#G`x9SziBKk@f zbPEngH5=Agbe+814@c;@lBX96}@$NG@iv_BmKPFT-C=q?0XTXN%}oc2MjJ1)tJ~Lx?Ap zn0k!L)dkWy6=9#iKbKF@Zm`$=H-s%tCECeH9ZbH~YVQne>5u8p=}+lrzn9o|E03fn zf7?c|?1hsC_C;q7Pk|oghZ?i|izSQ|&f0eQHK3qUJfn3;kU^>7oP#;85SAHI_cl@!~ zom@% z9jfK`fwLoLIzF4FGP;92(BIIYf7TepA*xFoq;Ny9qh7&lYw{B#(*X;p7Po>ew80~o z0k;}u2NSYFQa=XE(iI@)2fRg&1&GI&&>LGw&FA+O0@LtBbv)4@3o9UK5Cf~^YskK= zjq9huGUM-ya0&1hr}bCO@(WQ;R9gmT&jxaa0B8@KgM+z|5on>T*AP0rf5He*Ym~VY z`N3Eg>tEL>;02ddsRkT%!TXWayY)J}A`Rog_HffQNM=o8ZtU#iq10PN*>eYT0r(-- z3O*Jp=2J0zhqmflCKhswS5~4cSqL??wPUI+Vi_|N%A(Yt0jKH|HI`BX##BkvPtN78 z8%^U7Xw!XD1XOi0piPV`e-+CG%Ms!Ah4^jqyWT6K3of*;IIXvR2tz=4WMSY3c-H?B zwjgW)>IL+KxX$Y9X5@j66%X~Nik&n)1QZIP(a%MYZ+Gy53d4!05{a&lqhma+!$SEi z1gcl%BRS@q%|_#oua+1AmB&q#D^Aks;VsEL>*&*F%%ubFjO!yCe?o5x*XA3_x$N6Y zR11C~GP*iMFv<4QC>v5izd(j%IjyI_K4bhfrSV_G`;1c)21GAITn`P*j=XoM%b+tU z35$pxQsLOV{Ef(Iv^VuSmtK**cxPYR6@HpiXV@H>$6$WO9I=GuI{e3Lj~9D#+Xu>w zo3jks-weED1gv7-fA0bRpX?hw1*Zl5iZ5VI$q!PD-q1P)pASC1DZCHxH>BA~0XCgc z53*_f2k0iZGhQW{p3Nf_L!DK&yB<~;J%N1c&bg>r3$Y#*aFyaI^VatLI{($JQeYWd zXf@BdOe+z#sGSTupRhsD3k$vv~ z_nxTvCjx`kc{h{d9&Nv8mB3H5CoKZz$TDq#s#S4g*bsxz6r}loqVk@pXs7RhOla@` zTv`TLXgu}}ZUZ@hPlLZzfU#Bl29M~?@DNoBd|au0!XP7m%?fc#{?bW96+mZc z;<_Gdyd5%xRMZ_!gDnTz;}99AdiI5Am&_f%htfa<$vcuUIDK7!{@ACV_#CtV4Nwp8 z&p#4cKW+)?reIs4vDlgbiR?0#3YP z%03z_e~?g8$Jm_7hJRppt9&YjgI+0pJw>JKRem@*PI|O)ea%F5LJ(c@9eyvm{#PQn zdWZi8lVlFaTw2+~1_>r%fZHdEe+&8O)J`AySYq~kWLPqEnp|)&j@XD^ zR`f@Uu89OeKb;9&?Fd30lKLJ}`&RP-CY|vDfh;3fKLepuE$LY!Xq_;NqX-uA&UMV+d9WJAvx$2^Q_Kf#+QbTYdeF6;1p0w?%|zp_Ni z4IF`T$1ytc_|naT&vOS`gTn&tfiSXS$3E+11=is|*21%7gik?s8b!L-5{wdb`C@(P z;q9oXoO#W1oNZ6tDKeKZmky``3B3}aH58cJJW5|$z)FgTJQ zLUV_Qk2esCLXQxmXQ&EG3WXLH!f;17VjxE(FJ>Yz7(!b_qi0}Bzx~0&@wV-L{xJDT zYc^@`nBmyH>YjD=oqb*1Iqmc{(&cJi^?QiZ33)hjA zbp49sL#z-)p4H zlp()X<6itvbL+q*gtiDa4tYFzP7U26%;xHWxvqq&KjVIg7yfEM(_VA{J$ZHo-Vf{c zD9KiD%))nWhRAdp3>)$6e;V$d*g=V-B#1guzNY8LnfsX|?N#z*;*Wjj#>wc(5GV9QiQVp$(QR|PH*n*I;&ikG z;V*3pq~Gl~dG(LMjno0&*xdRsv194U^1eA#0#94zb7G$00Ir#K2(W^vTB3ffBq6e}$;SB4*_q-6@6V+rW|B0ph6qxA_kW!113i&{+_5)?P%W#t<1F z%H8c7$As!X9>B7VOEx!(0be?k{a@tcU%giow~K#L{NnTroqmC?_rCv5@ssv0N%VAr z4YWgIdzR?IWK9cdFwb)VbN&fcBF*g-<8IVrjg-C-gqblTe~6&dcuMaJbAA{c%XIFl z1wEPafnjyr8QX6#s*=CO2nC_8r;54xN4u630;B3>-xS=joACD~Z#fIWO2N@~A(|F; zox{gm^QDb9g*LMcaUHQ&eF5ctO`eOAeeXRfqbv))kW{6Dpfl$ib!6{Z=#w1aqTsX2 z&=P*|`m@&je>>K>L0H5uaA7r4sJy z*F(RJ^sLGB7>H?*o42H1RIt^?TB!x)#ejV(+63IB7+9Lb8KX{E$A`k8$AI z9x`^c!m-MD#?)fx$2rCY_<~NIt(UKmj^6izep)O+e~y`UO>Vefb%NxNiVX@B@Y4g+ zyG{!AK3ucF{xxO!LB3j^vi|zdqdgVEfF$%6hBwpDawrgM)3)zPcj`Cz{IAKqu0?K) zdBZ+lX)@YeoqD*t$6T zpBIp9ZxjO5Ijfva{?X7A*UDg>1I{iy4z+e0ob319%fWdh+9-WHbd%zyWbR4Num)Hv z(V4%@4qgS)GF>F6#k<7`GTCp}HLsbjE^t)8rc1$f7tH5LA0*&Q@AhQ#e_y~Kp|w!L zf544t*zTUS0^F@JIXQf^^#EUQ^S9i7IYs}@kLzMESG+K?HW^7dHh)Dn^kjKqcij;0 zi1!~s&67Ow86=bgRpqwtyTYont{~PQ*v6Q zvnu!w@1gENeD}GddCRca+F6Z)+f#1v=X9T$Tnf;`t;3n-$|MQTDUi!x?$uaLW!p z0lE!%vFxP##7SJ}?Uu^1f-HEuf6ONNIA7eVUq#o>TE^W&>`{Syp~}?=fA2mMa(x3+ zrsn8jAbR>ek~cxYkyV}M8XBUzZCLk7jD!pv#Dk=2r$dPzybjJN~X~b51oRbVfvpq;{%jHX) zy5s@GNWU7unB#?bYp_e(qnygc zUY+0V0rHKzuj%0A#(Dg;He-H?>4%=Wm;y8bOz;7A1~89mN2dN@e;}*#dG0@_h#4l0 z5(wk}d6gnPc!bvdfVJqJC-0zk%_sEFje`~wEIEuB>eRriqHk%1*&6n zsf5H0);9UO-Ux{?gMx+r;aIx|IuN4AZ#nn6$ z@PeVf11(wJfBGk?5I=pj)Syy4@M;02sz^Hf8iRhr;7jExy-cCS4nfQ*cP{zgrJu&p zh9lAPBW3B%hQ7kxMsg(iAy(A0GUI3XH+(olnN~cAJe|)Y^8)45g4AipbJ&|qS9!s+ zHy_b{!QZsafR={r?HaJU^m7x8Zm$|#$NDU2rpVd%f8`UtcgbcAu6To(n0(<>=1jUQ zG$DVWr#tU-P){s`s$M$y`h%CT;0t~3Khx$vAoVEsc=xr3<1Q8Z+~GYqVSi|W3}&PU z)YPQ%j>!AKcfy#NM>+R~a;yibqJe!KzgX{dM-~=B>0`j@&YDj3@)1WJ`@8_pai*+} z)(lP0e;(!e+{z6RxRU;zithdT*mgHlDJBS1L1#_;+lwpzjY z^VHAkgT8=Cc>3c4a{=!PdfFTC=3J6qAnncsnTKLe69#Z^0DKeE@oQIjD|NMG8W5Bk#g==(o8{g)+q`%;7z)ik?-bw z3P7BUYT3JSx@<(w@`cVGo|EuhnIzFIlI3ejfDEnmhsy&+bE9VkB18pdz5JlVKGj!H ze;V(b^X||PV%!Q-d!E2_HxUA0p|eFp&!|N`S@sQGC7R9V37p0-mUSW!$Ibh$~9=zG(g+xe+f_tXIGfd+2n%3YEr>R{qK7C-d%6Qn|vaB zP4q}8_oT_yTW@Ag9o%9K2+!a)2-xe#S?peX?ujo{7nrAq$^gV--O)qTFSchm9p>w{ z(2IOepAUp?@uoX|L{+U%DJN98L}FYM4KGrnT zPy44O%RbES=X5X94IEquZD?&sXm~8dK~N+cVR?Ld{CfPA82=EWey?}ACc!R%})Q z*W|Ovj4&txDxoUDDgi6FWz_wD?da{&PZxu&1%UHX#jgK>&7%uBN42e?m4}rGn+jJH zrq5^D`8JVVL{G>wVnmG;CeIVk8_#c?MVw8TIXYQ8c{?HMTfxGKw2HU}e}xuy7HH3V z&)Xb0vy7|$cOC8)_8D#ggv>$jy^f7WnHHrIaE`q%c?=t(q-2wWIkNLEnGW1mMs4O0zO4F~Jz z*MzQAvLZPNLGG8?p3)C3)rN!>8vP!>hxw!?nY;;c4cDTd)Xa*(G@v&@5x06O~&-L=iv1 z8#(6_*)rJT*|OO(*>ckShWlBgH6V%7M zjO@Qm8mP(%P{l$L#V3@BQ%O=uFB4$KmB*LIoyTF~V~i{tf4*Z}6Lm>j z>8*M9>AktO4!)&&PwBH6j0;uTjvB-`fPRBHFdLL>-x;I}-n-XB{*@s@)@kpv(Q4#(l$E9v8!!#gln7pOWsKT$y^073dKHM7m}EU zr8(G1XTOKZIkLBUId1KD2Bp~*v&)hGn{t{tV9yHLv(uRQ2UELtd&8a`%Yl2WJu^Hr z`~`iAe>h|DgLBGo8v2fu)#`#fqbWJ+ZuxrH)to+a%h@~2>$kg|dF-|Q&XK$CHTVwt z8}}%En)zjQn&uegyY?=6iu*3L%CXAf6H__doHOgdeY-I>>uBv@ec-6AYv=7h>*zh+ z96W1UN^lokliTs}hOj!T&3lTxnr9iOs$JWue{;&bidnKTYMmndTj_c^xYrb4b@y$W5tM6)e zf9~!X&)yGC@3{Azcbu*BZ{N4z57bTSHtl2P_UQKL`|pj<@V8>m_IE{R>Tkto)hE_3 z^J|%B(yiU^{I}>2COMQM&c16gSIPt0Z*>w}kyqTUlsiFj#&2g*MiR!)aMDMThmY+9 zBl+yzuDCnPvAWN0cfF_Km+NhHS8Kxbe~&$9dyZ>wjLP<}eeWqM_Y#`L0apHpoT3@b zaZ0EPqL#!Qd__lMWM~FCDztJ4S`Vz3Zdt$&Wd6Y%#l&&bfs6VTN~TUBy0X2-v! zaP6PksGM2TQI0v^3^=AYpRc?4&%7bOt8SryPNDCq0p5}5)&0@^Eqf>xjofUW`7*K`;Jt};uM67PTy|iN^xT|C zTmq~2d*ynx+NS|PV~tzGdwqm96T11Ot7TW9ZfHE-!1a5EbG(Bp;q!Ofxlm_YsKs&H3YVN@`kVf0;RToLM+C z;HDr@1Md3=cIb)JRSer1ngjlF8f;TWP%OcTLZMEW92hl_H!!p?v~bAj%&}LntMSSe zgE0Hb`^)>z`vwWdTwVT8O1L)OM%d@wKAm zL0D|#6NEAyisTB|T5KZ+)C)sbb4Z|XbqL~%C|hXdaMy%uV)o96=5gx_g3qt}oug+P zVrPc>AHcmUAVn76s04aphbIz<1xRG1X z!-TDZk_1Ae6hfw3_cjlf314D$uKF;Mv*o@TQ@?({0M4?skF<)q&xAjsS$(|&y#wrT zi(lq4N1pFGG6$b;e>@*$Ij6IZG(LW~dnR{*UwE!?zTv$??bs25`wCdLY&&}j*tQ%y zM>o!0$8M35j$aG+k~ch~wOG9e3)sCbUm2ad_n4!$ZRs()96poWdvDo?u3J?0xoxqY za$B@Frwl_t2LLzt^_o{FCXrynfm?$I`1k*%lD~v;Z(-fnf4QYiBE*J?wzVJF-?ODs z>%iCAJr3d9hfTuQMyR%H-DkK(Pa@VvuC{yGt6`l$4(&$vo0p6#$MLvpMz0Dzvle4qadORpR9T}gEPtGTP7J(IkvGqRXJ>ii`!imG# zM?BR%(UnR#e-^Q4kxVC_ICL<{W{jdM)Fe%&EA%AIsw?Cxje!)sFL>GHH}ProDT@&+ zK)i-2Q6xL?mupd+3M5dCYpE#^Cr65P6gkR|CrQzefE4{hO{FM;q`?O%#!F2iPzds5 za>jG^(@gTfe+GP2yU@G9Q%(1ve!u~;7<~%}noPtSuUYkclFG8kj{xrAy+MDQGy*uuDs;$bVVqnCcn7yM) z@IY(Mf7-nH6P}D5R2GtJk(D#Kebefe+Jf|!=NA5p<2Eq{ad%cLK*EuDA;Lk zgzhd<&!UJ;`%8kOh}{EId&&_Opdx5zD$J8uh(ks4ijEImS( ze>jH5Oma5eDkZ~{msyfnv-ALDQo+7xhY53H#kff|r<#VdXnJ81jLwXj9yx8%I8sHr zR)&fmXp-12(rw&Aw;nbi(kOkOp*eMJ61r}F!wi=eIz@P5|Cp4n&7l91aXRI{Ablci z9O^aJCBR~ru{wpxU>cLo`mHK{s(51Uf1N@+*3%G@FzJxFWilP-t&+hUX=b9Ct`ehc zIj{g~6(QH|r+$5DaXEb|spwYZ{w+2!2dVFZI7_ycj-;Ty2SVn9QYUN=%LfBs8t zNr8tkXq0|@j0t4ZEr|_X1jZl%3)%qa{!zkLKTf`F(XoX>232;kp8#4&``_ISOc2m` zg7TEak*y@4vPbon{>PH$MIDEfin@LiXiAFKiVaxGWpmN?^+;aE%`PqOJSC8`e@I_N z-$h?XAE=>n-f|R%y1&cAfQ`4Ke_kds^cD0K>=ncn9M+OWm1NKK@n*Gzp^^ZhDWZ(S*T*c9?i?c$yQd!GbM5$u$y5Q1~n1;@|iUe^Os|u^@Ks z^#)f1r_LDGOQl%TTJRR8}fYUlxFA?NHLLSt*CPpm1hh)*#iT z!j)q!tG3`=-c%t#NY1{nagOcKXzSJ1 zJXAl)EN(W#Y-X{J+$y(LeQbg~?pP_mUdG_o-taFVEY6hJ5XTr<)W803o)#}AB)rt; z8vIaRU&${Q|Lhnn4WKf>w%7(aE`vw#s(VCzW?dN8&-o zwufA7CD=8ZSS|57E#u7-a#1lihG@N9Bg>}@)|0O&59!&ZaECYRhkgQ`E`_y;d|U-W zF#L51L$TDjB^g42nV7SpjSxEd`r*3Nhq=Kl8Ak?%IkQl;e>5`80<9O{b5z_jDY=F? z?Un#vK%l=$hT=|<6vD21@MaXWb2CkysYr@T-f^l-`BHZ$TYyLhjV62aMv44^F75ukNor_4Ef=R#luF;gU4fmZ5dwmnBe^$a$~_2k^3Hv zvl3iJmbmywB+2XCS#K@5=2S4=@e#$&9s8-#pUv3 zMyS=wUvp2SDP`7pjW)j~El)5UjzoO3BBRcK5n7YzLQ>tvqSBHv5^Z1(ABnMS@DOWY zsqU}0oRXwY=|#F!oMTMCS&d^HRG{FY;?_nqTfnA>ejlw_DycNKM z7|Fg&q1_T9F};9gnd>6$thp+wQH^6c)R;3t{*i?0srg{*#yNK3u8~QT)buf4%H2%- zDXC&<-G9?e#R3zyvhK$jXOq3W!PPk-1ImzenL~q;ol>pP3bLi*n76i(FEwE)VOo#2 ztc3+WCcUGyB2ZSWvU{BvsqTxV_idM^F(EAy{GP{hlCHG9WHVr)f`?uPNd-eyx})=- zE~4-K&uujO&Tn`9uSG9wOY-Ks4O4`xQ|lBjJFnKl+3uO`q;ez1x8~R8H};Rr?+!@mqsEu@50JX`j-I}#{G4x? z{eKzn@$GZ&BitM9%gnhe$jzS#iUuXLOJKlWE{Q&7+yp^?@v`SQ)ygHd# zHe=#$*`MRks2AH?ZWrApxN{7J*iGY}yMIOfdUQG_dW`4}^l-kg&+cv9=soU0W zd}Cf*#iyi1oY&^)N~uqL-dmzXE}4A%hynFV;q16!GsuI|n}!GBy=tIb}L^<+$Dn$%O!DDj)+V=UKR zrKKE_Jij1sJmAUED$`!)=1a}1SWZ!^1b=nHT#*Bk{6p9dQxV%%_4r)b(U6}fWv)!Qbhf48 z9N(c5jE^XbNMm>?U)m%q4*>O&sIts`+P=jRhjM2An0_hWxcqyA}>r4b9b@4DHvy)}C~DRUjall6f)3_FjV0lP{;!&iwoWw5jel)EtI<)-3-M|0 z63I99(nX7{;uR ze&D2wXU#$=9y71#HJPr$QgxeSNSETs)R*{f9ew9hRJ=7((rFpk3H1Z+Ycobp0>+@} znMF(MLfKe%7H{z_IftdtqvbRA2!Ww}&Bd+K2Wpm1-Ex_Udw=0b87qdjWONC_Zb0)0 z#(R+0hTTaDI(0^t=ZG$^Djf@kb^7*>qB`hH8}Md-Dj4VO3tP zhAL2JH|3LNMt?hAO*XSlgL6Pv##V=xJiFlx-Qtw`MA>VXD@3RA%oLO3R6%=U$!gLv zB?!P`5znd9JA%vU=^M#O>*;C+KckI`1?4pHNdtRnX!?^@5oLnpQ^mE<*lR4a(DYUj3Hkbz(7*a ze+mBqCSU>!os9c2MTa@1nF@i2g$0C}QC6ERjtL4IA;ABA%t=`um|67c@|?Xxvy`o%+F~S(z+!@9b~DKyq1UC3n?rEeQ%;VO>%6s zh*x4}zkbwC)n?Ul)qd6Ne}=jesY!-HMn_Cm!=$G!F*7x6T~?r;6CG?N+j(6Kty~Ug z>NgErO;^V#CCF{)nTpxGHLY~4c7m4;p?@4sSG5&++vg9~zR|M{B_BgaRfbns*3mcP zHaVZItQ@UGtyCwjVL(S-hF(lz%vLyE$XtkAs9XxxJ!1Ua->WZ5hIpoR<$kTMl&+-m zt?N7KYVPm43aU^cDeZQ1T=a{-RH7Fya%iM18X9-j295@nj!+>N9TYO9X{RK7iGO?f zBeR3ugQ=l3S))-}YBy;u?ete8Rgh7TU##!l_x%R?K^CDzQDSJR+Rc3Tn*w5j8KF*> zaMumY9;t&Jp>D~w)Y{tY-1jd`o*}`QCMdO3+v;s3y0sl_hq2y;>90_S>vWL@e{hwd zDIMWj2Ci^%)QgUfv4~Ssk{y{&*?(r4$Jj^IIv;#=R0vIFVRg^VlPzja+TXGQnN1(E zrro2p1{v9D@0M7;xI!&izSvC3WvvGfmqj18=ChdDJA0oIcVj50d|Lmrr5-B7ls_29 z{W+;(FYU_d&Gh+VE$cl0a&~Mvf8BhTd0bjA{~T88>3si;kg5OKW54tnd4DBs{^WX2 zFu8waxk%|o$%R?Zd~Xaa?R2woe8I`N89kMIf&aleJde3T{8G>SCiivScMRw)ZI~TH zaj<$x&uYtpWJhk`ofbdf$aH@%)sjI;GMD2BV4r+mop^CnXp}uFdME{K@eFBANJ$(% zZP}!~WdOcqP}@~N*)cN0rRF_WuSmp@Q8U^O1M7+R$uinnp6AtnW?)G`rgEApYt?Sy5^Jmbw0`1^cUo zx216!$b`!NgQ$P-IkoZacUYZ?WN|8Bbyu2Q$lmp$wVrr_ipP|P=6_8i+dv)Uha_8( zG`+WccRKf$a&rm`(<{>1^Z3%Mv$kn3(^-bSX6vKMb~7%C{OXRn#Tn;rp@>gS?j(0{^lpf! z1ZOWcGlVUy?a9@vuVv@R%=4XZsR`lfI1v`osSl>{T`Q|^=cU)kz->xudF#VxFZZr$ z%c9vd+-khH(bT@j}_H^Y40gUQcn7OGOsXSxa)uEbwAJ(4QeTaMD!L+<%62cW0XK29-iznu21Xt>4{eko= z$!Nsj4c%x2;SKm`MBxqDXoTx_Cl+N)yJ6B%Oy{A}w14*=Pu|5%5NChAL3(SH;V`5v z$Y?}pcPP6G*8%rH{ek?ge9s2XBhI1Peb6iLXas3D>0j!QdvJAEb4L@4a_42|MD0H2 z6;?O$*8SGL>Miq?H3s?C^VYG7?L7NP?Y{n%el$Y1Tb5nrYw{D-*hAM%SI+R3@|JSq zL84nB27h^k6^rsM)=(I^7jiU$h&S9&*twTuGy=m1CI)%jhha1Vi8t6#*t(ZxG(w3t z*-)6f7iTmA)CVXA+1v+XGyB%It#mSZ#jFcBH=T67<3_zJ*w3h^EC$m{(GF=F)P-0Gh#JPk? ze>I%4EbFIH3`Vs zgJ&`E!u_o-=YhMOc3$Q#{R2#{26D3^B+h|US@he{JtJuq!s>IPAL)!hE3}&uH<2NS zl5&xs?oBXOX!-B2c8ULlX8=b9y(7}`Y`s>xR5B@4RaFIZK}BW!dBF_Y9qTk0ivFZt z3Pfeje{Y#d=jG6mi>7^|0UQoX-hXzW$%e-?ShQ(6%G>_4d22=g+9c_|7<`uH>6lQS z>p^G(u8|Df5tnd5vO!cMn-0naYyjyir>6I4H}0yyWsKIRNy@6yEl76ivL2X@69+GwU9_ zlJ&wHaw|6oo+toQ2*^x8C`9FeCd6uj}2?I4`eo-DpGSVr6Hfc#Jo!h9kP zZDWbqI9-@hxWXPt`&#RPaY&rVeUgEMrst&g2=-K{ZlfREl0pIOi#^wBRiVQEu0Fwb z;ui*p-i^SA)4ooiSrXO$+JE{Nl%-zmQ*WRNS-p1ws&~eeJQ*?1bLb>opn~4v?Wp6$ zdZXyQ^;M%!VB-wFY=olHUwpJzGg0}bRqY7Vk z%rYv;Iavj7gHmqk<)Wtx6=YdA(&c|DFc8a)PIZmKwJu@s6$B?7d4F5jlgji@ph^0t ze5H!YGRph_-U`jp*j;6Uw$Msq&ara+5K6U4x3Y&x6s%^R9R{D(e)4t$h$!kic+uQ-o6=J0oG8Hs&LCr9Jr({N<75vJo-XuyE zJ+w zMUl&uL5f`UtohCURdR#{UZ~}DZ30>Q!P(!@dC3@$yX-Mhi3_=N-^uS`<-O>;VXlI# zL0K%z-3=m}_Z-V}ZD@mCbjY3f+*(A@PpsOBV*&R4EkHV`mq`r2w ze1yk}eGXIwqz7~Wr*bL*c4xN2S``9AZMMwXe(A&`Ngo{yDpON_CxGD~FC9v#)-k=$ z#{U#vX&8ID;~7%98RFP}@vMYfV%bp{>c8~Hi#7IX^M827_7Ss3jwIhuhJy@m#1)au zZ{RBB9TDYnbGXRzhhyM8i=}cDhSmP7bxp!t8T0!S;y?(S`Owv&srblrzb0(bT+9Mh|3=YKmQ};e>-cu!-8ZUC;^QF}o{I{>>o|;4X}n z#jHp8C)VlXxX>U&z48#;yZz&VX*n=MV%+)A+JA-!IqOv2{f#DB1BenRgM0FT+eX8{>Z@W3StYGn#RwC zJ_e!>fjnQX#_-9Fq=hN3EyH|6QHRYQ+wZVc`F)elYkgN-mJh9RM}U1nT*~>0og)1$oa0%Uw?)83aiYiQlz=!WOMc^kz33ed z9+EUxlk%3#9{yf6o5D1;GBcw0)c%E{w?t_N&$ZtKa!u9cL~6w=RukMFO`M=Km^DI= z07&g<{j5kk&VL%TuoeHZtRY!|et%%z{>dqG+kgpR2i5kFtQjI+3D+^CJPEne$*sS$ z0%Yo0L)amt@bM3wucQF30_*}E@W91F74b9(h3?oqU$B7+c{#Pc8pKm;ZZSe2jViAT zFDK0>R#ViM&(Kqu+xt?@Mac)tG-KvRu^BiAH6v7SKm`$i#1dxgK_Xa%xqnz#VyA2c zG`d3{|L~C=+tE;fH)G;@Zw{*8sQ}>iZ`AkE^f6hTO6ei?SJoGS$T`E305y{qPOG;Ws1zATa(TeDhyf_Y|m4u30+VvQt%GwH}oNbRK6|-DEsFQt|Z()`=BVGDh(iOdKH6bcuskHp) z=&7+&>`@swDP^!J%E4Awt6H=l06ZT#VBR19F<9S{B~jR^POM(3-s+ug6KMtR5S{&0 zxIBOBv4-&22++c}&7!$W+KH5!K$&Mp(QvrEcuw6!;sE*%7f}TiY@TzeAi_Bk06F>UOw%EY-`nFZ`;M=6w%dx%A`qa`9IqM+fSfZ zgK?%T^6pD;+kX?g*9Cr3!YHie(MJ$vF=b-6(6WoB&_3N@dt9ol$PBd7H?zQHPKU71 z6O1z>vze+w-JC+L%Bi0dMJ;0I6i%KfkImiY+yz8?GmUe?!p7I1spOaKykANsEo{Yq z(7#RQ!xg&~PcgWrRI8lm%z!9c71o8scce2tYJUZVpFU7iI^A&!Djm?l^6K=4+FZ&~ zxlJ)tGPB=SCtKO{u5f`{x}U_z;(Vho>^@e0Vp3ZxH^3bc_3!b-Et3~86hS6dW*r!9 zWKre+sB_2K4ImYd2$czL_eWk<5wP6hH6KcxCJ>CsCnA1>oTF@md9oHy9_)Y z3p<0h3a%Qb9npBBU%pWB=Gny1TqIozGk;isao5d=zT}=_xzix^%Zww%8>DZ$G^V#< z_RL2ukeyN<2EHFtttOn#+Y!PQ%w=^OxS=TIPLz}t--&zx*YeJu(^PUqde6CxJZ?Lf z;_UmZH^QC})PKkKxXEMpmm0ZR$%&%2R0+2lf)WwShw@8R5Pxa1Hmu1|%mm|ocJ-dihNDB2iJAdSS zMlQSq1uO{XCox>r@0IPZC0Ho~Z5QS_Ot2G@lz${nLhbhmD?PzWp&HqU=+k~v7R=Mx zu2^~lTsbhW8up2Pp>M`HXj?vO#D5wER9>a?O7%pul{;$$J;SZUX@RpY{qLcbZB6&@ z+UX_pPM%U%Ykq1fb4<>Gf397i6~=6MN+O#}%1PFd|4=^H+)C`sJdeUYjv;79B^I-w zqzG9`_3S3M4sRAN2o+Vdk{y9yNv#hOg%0^hJC6FEA{jB5$0`OWNS5KA#(x^Azq*Eo zK|W@@ptXo`D$E{O+oUq+g8JO>|Hv^5j4yWU@&!ct9drYiG_uYjYn2ykQj*LUQ0mZN zSYAjr)nue$&zxvGt1{klaUne9I2SIK6vl6Mx?jJDx+^P&`uV0m{5CC&g8Ka?Cgftg zy+qm>vmRbsmNL4s3PQK3V}I{wlS@)GZ%O_I&NUV;H*8~{WQ+E0&yQz`u`e)dSTLKf zD)w}HGB+zRLs{^`0mIaoIOG+y#A@|_VcTzIht9O6&vg1lvK<+DCT2bA2sb1*9~#m( zG@DrCCq6VURy%swxmE~g>|ao*n5c%9mzF4|SW0_1Be0OpK364*zkguB5F#|gk}kLm z=mrm_&BE{Ac>?;)xtE9if#O+d&HL9@y80cm*(R*F5^QRYFG)4Y)AEvbCF zdMdzYil`|Wcj8tiT`evvV{E?lR*zM}SSxjHRq8<0jN^=gm&pH6if$kmNtFY;5cxL4 zW0xr1VM-EN1kMmxlz->Uv5*Ja(ST(x6|fN9ey7^?V_q&psI8WUIS2frm7?rOs(r_C z0{ITn+zg{B)n^K+$+tWo(d$hn_rH+CSk5bPqHivhSwj3}KU5@n&fjNBA!%?;<7W&# zlEyfoqQg-GNrSEeo5Er+vkIRCY5{ZsMgjN)3WY^yGEc*VqkjUB0h$4x0hqyNFxmok zg|j2JW3;2a)7~TJpT*?(xvkJjI`eL`p#XatB7 zpb|*Y@7WJs^?z|_7W4$ju&<>rrthY2M^zS!W9JqO3ml7sKP47a=AR6J4A>0d4rrGn zLN2N=j~%=n#NQ5K?7oZS4?{mQ{WkqL{X6|@|G~*%uo?yUqPbzck>54xjRC2oF_E{L zmx0nDrvXfXv;emlPeD0@z5u@fynvwqg)*{0MT4aLD}Mzt1v&*hmCfMNS2*+8Q`n=} z)7S&uJ3(mSGXt|jwS%+cz5DMDT z=+PPLTUYG_Y|@El%F%drvN0?-1n0A4;>x@72X12b>ha5x`m?hMHw~lWK5>5E6}Csa zpfV4_Ab(mfI5!IQ%c$y;yXq&A{+m>9A-3S~OgYlxw@Lvr^`cJ$ed)|p3dZ<{Oe1Dq zo!8KUt>%|a{uUZ)}T ze7LJd$Jdr=AC_|1-1bnabgE0We9J4);gNfC`jy)>$FqSo{)oPH=Fu-g)X(^2@bo73 z^iYxh)?T(|#*|Y!RmB2TsuOInr@yJ~sxrgfWbEDqj@wiHtv}WsTqT#Vz{P@H)d0SWGf&KA{e}N@AlUMWQ z_56Br#x!-)$K~1Kk$GbJ@_t+_FG2&4lrgP_ch`LiW=7M-o(>yZsx+(CWf7&n$(rsO zLu&H5zQl1dC%EKuvZX;?rTu-y`1En|`G5Y4;`n4zotXDJi-+nF{rIFarE<6X$}4jC zkIpVeu}#tDZOd8)OXZ{tWSpE%<=p9CH*V#1@>zc#ESdOSttS?p1LHDa3nwGGf(I@E zJCuH|3H-ocy|=luc{1@}lsh#^AZ2Tvw{=gV)G{q7QVJG`Ki&_HH{J)?_Z)b17k?kC zO6FvEgF`V~$$U1t_oagU#XZ>n74+Kfm~@ub&an*nwelUm65g#4>iHh!O7zy4NMMJ&kDLy4t z?7q`*@alpZh&Ak>>xwCTbpL^nLd{Wh^p<-Z&pQdpJ5l7H&gkBRt z*PW~(sg`1Edr&!t);mNrGi7!In`l-tsB+z{U593Ujyd1*?Uiwm@jcA8K!C<>t(kx`>bW(sYdgWfRMav%z^27*zijbv(hfLWge zd^M!q5$RM~h$azs(rK1|aw+5*2*>O{V1NE6uR;B*)&7&i`~e%J zKOp!Ar2cAIA^z%!wGdBCeieSB(y6(=Tbl2lHdzK1ZE4|id^UC5KCHp^&s(vBm&aZH zM=1Xhu73n~Q0eXqQjU*j`k!29VAR%^*z2pM_U?Yu=MU8W$K$i9`}TI7{0G3maeKQZ z{s7_7>L7^CiAT z#>ve<(lF!$zmE1k!3>Y%?HYY|))_ufcuN8i+e7(BunN09Z7c21yRJgT_GHpe6^$9mogv7Vh-iDgz={0{WJ-FwSObsmvSG7fDJ{*gkfg?$I3xyRvabpd8I|cgeU{ni_^%yt*e!%~f_- z`9+Bsz%rs@W@r`2GU8%pc;&}3(&&}lZT3T?ny?;9S>CB7?vnDP*eUsu=dJ#c#|^!` z!GGpHaW(pRZ}cU^8(*b6UmG^BqASEBaKsqqg%UrD|1kVF2p@>?9)#iF5#Zk`@E()} zjw%DjQiH}+5#cLQ2vo3zs+5GPI>OYR;p;K*448$6BnI86usyud=S0kbt&^nA@|i*q zBv3{|rSm)!V1^U5ew%zlKBLM~js%;F*ngEIX#y<7p(}`k4`9lZ-2^QNcj7i8Sc_Z^ zV9pipLzZ;9@SXp&70VvNRABvs+F#hG*jKk~w|c&#?IBSTA7Q%|Dg(9}RnN^Tc^? z<5cR#+VPj3{v=^6*bLa&eEQYUeeUiZ^Gx31vBfpDsP(8#c!qTYbF2F8c;#q4+w9tv z=97GUV|Cq+fs-f1Q50dToZQb@Pk%b0G1Qwjm99tX;in>Jt1+zlp4=3ZbK)^Or-C8AdG3xOO1oe~kuPJa^k*gHZJ zs*+h!Le6cIk&af)SS_WwVYHD>)3ofw%6;yxXcTb<;@FNZMw?-vC&W+wkM|0q2M@lN;daGmd-?V9C0n7+GaME`L4=6|@)CuRt$DEw_^AhvYkHaxRfA4XhxOGh`xKAX^wa z3RVkVTP@1{%K2^*FyS%H=^#;OGJPH%@8HkDFYP*$cBfoVnM(s+X zK*}&C84VpS^$;RNB5HFlLC`94^K29TrD_!3iq}BfFsq5hj(_An=t=jmI;PtlN?Zz>UgF9&d6bXgd1A`!8u0!MXxV8(3oZ;{f1bwiI6ks^w;WgZ4VS{r`d?VF_vf|>hw8j z4n(He$hw7>YPRp-NVO7mMV+q%b*I@#zCo32BEH-^VXkh*o~Hz<(r;(nVf-xvtJlH3 z@0??E>VFYRx1DeY`nSx^(BCq;^xHXgiBz@Q({0TDv(UBdV{PBObz_=r54L6^IMsu`UVJQIq!*UjQDPrKE-1>o zs9wD9pW~_<>jjL=f~0y7)`O2h)4F7%azH?NzklLw8dLQbmib$Qqi!s{kKh-UN}&QJ zJmDp|Ony?RT7%?bi9ueL8u59VVLncS2ty@Oh|nV5tV@F^BM&89WSL-Is9CJ3K!Zp_ zoEo9J3ME`cK2oUi?|}#??3CQZ7^Hv9+bk7Ab;)0#8Yx687b#>}CS1V$R|y3aSp&`UlX}ity^hsOrT2zLiLz z$R=2-1(G_k%|3!uV3c;IIzZWD%aQi` z8w=Kc?L(3d@tPrN7sah+n~KgEX~)&h^BYjt!p!~IsF|Z{6_(NCX`4saM^_xUTz@97 zimUotE1OZhCA_5Xyae93l5*2sw0B3clLH!4`dDK>UDb|1o8=aB!V zTuedbZ}cB%iP)L2nZ2zU1%}ux*Ur=}oY#iU%bx=s`_C<(*9t7+R$I^*g$pVdxDMhQ z{MIFE$H{HT)&=gbZVukAY}G=o%y}*+JWxN zTc3I4S;5C%&x1piM8nYrp%NQpS=|0Fh4hCn1$Pk<PV}F!o$J7qk zn#9Y4j?SE#)Xps!7r`w#)+rcQ!Ywh@iD(zY8P^>|PGT4Ft9UncgW93VWA!Xc(%<6q zjn0<`U&9*0+sej6oXd`Oo1=D|8nE}8F=Y9%XP0jBsZ*E#hV5xHrIZmkNnDDOhGxRE z%T)|shi;TO>rD-0D-zX`)PID^!@ChZ6}R)6uifCV-6yx*B89t(eQqFEceT$!+bXyC zUNKd#K(lL4A8C~JPVssAq@d>-ND=wH=GYvTybMgEj>GOwl;KXP+MOd zT-jS)=w64|*6JW}*<(51&N}TZJ&9iSR&-L_&|6zn4QOqykF8>FHGe$GTU!uYTR2-= zR^2r{aXcL@IqfYy|HStx|3}O}M(GkYU7~2!F59+k+qP}nwr$(CZQFM3vTfY`ey6+7 z*SF6Z#$Ao9)r-d-nOo#&DWu z81t^?7**HsvSV%J%HR>ofKgyoBMNEX<+2*tx2$vpNw4}zFA+%3 zJ4nayb*tP~UH#Ob25L)twvCRWYd}&Vpezt3A~hsMH6&p*B!fL9radIZJtW~hBm+bw zCO{-bKqO&Eu2AhAdkdw914t=F!E>WFnF*%5b3RoLl&sK7n)Dkkelcp_v= z*gY~$)!GsKNPpCl;B&;9s<$N@If7lxgT@D%$oX;uQSW65h9((OA9Z2F7+|bbIKpMj z+?HZI;$;lomK#k38)tvOpBf~s$G##^l*A=9IYLmJb!>oqK(8>~SQmZ(&JfNeRym?z z%;1(Ot>3oB^azzETRGBT44NjMOVBv-V9c5(aGHRd;D30~at!#=rAEO+of;M!cDz?; z5cHO=M#e)UigN z7%J&1L0A;GNOq26*6dW96n~X4D*h~KSOi*RKNqm*W)`4Kz)h4a2`gbt1x%HSlSElG zQY?9DXHGZ{Oe!WTp**LsXnbmB7RjWYN!d&IEr09Q@KxI-{H5zq@s-=9{7veX*`>XW z_anSbcAMxr=6TTd$lE6Eqq|Mxi-#Nk)#4@pRpurBZSq$C$?z8bL3=0f+T3u7))_m7 zJBEE%dw_T+dN2NJ*rxc^eNi<^DbX^Zxp9`ha&7^?>$3@*ekK z@_#P(fbuRSA|FoJNG-1z9XY+opJEb_X{b0IDbhg6I#SDyTz06q9VvEC$vaX9oQyw( z@K;h$f|5g0azbTMGB>eKy9k+ljZ!E1GPzcgt)$Db$1zB8{9*i-f+qzlMR!t0((c%_ zB+fBvQLRJeyllG^nWBwqWD-Zx&%~cmzJEihLkgo9S~ZkhD8*pX{@6CvCstXM;+4E8 z#VaM+F^^HSLl2{hJ3m?pS9z2QDH-vYphVe2okEE+Wh^CP5^0k7SfWJILo%b9yCyif z9#Nril1Q@Sp0->X?0>`R zIr$^PQ}bJyrzls2Pid~APi3yEPl>L)PmNFQH(%Gdc8j0HvY1h&T#{m?JR-9qM6)7h zvm%JIBFeKo?V~&o)I2`aJYCcrccyG@{*NckwP0P5&N)nTyl>n~G25c<6X|BwuJq@; zmbu<$+^)dq5}-4FPtvXk*b;#=Ie(65*izRyIA>yP;p_aulddNoj?itH(K(PawoiO) z8B%laW{oD_HEWG{mk!nH&HRTIP;LzD+%=FjghZQmB=i6;X4-Ciyk4O|xrV zssYC%`n9i3^@~5NtXKT$tR}=%j+DlUb}3I`O4D|SpqF%&@y4U@HH1y#OMkIy3C~F5 zSy>Ckrm{`uOEjxa)oSjFsX0^2X|u-W;|U#2V2HYK)BvGIH0nm7x-wKtI<;xkh+~)u zJeN|>hME0a&c*4t#zO{uR5n>3lIh=yZS4ltYLwmKrVbW&*0oqOr^=`9C+-4w*0O`O z^tP$0;}&DI+~JmcGsL6QN`H|VBD0mtm3zXG$M&r0K1M&vS^D46uMBp)xxczceOT1A z#tya;&+blm%XA-|t=55B*29z6GQza74E zKOJ9C?`aPl?{1M$KYw;mkKS7c39d}HgacbX{oFXO4jOQ4KW-nbdp|IFFKM_lquv{N zJ?mPI-3NwDe`6%sFNPo6^lXC`qLOA~XM*j*LwB$U+PS z%S9-V2jt}t?0*uzpqNH}4|4@;90EAB%M-=Ii$O$8ih0jj*nuDVhA6|k%wD$8+QwqPj5ps zOcq)bvuY%;945{*#=IGaVUrSYP&PT~%%*uI+&J2Ggnw_7?ol*hi{MhjkpvwbJb*JM zd%TEE>^vAfBpn&NQ=IHk9pjB-iAQxS>&>{Q=qc#bA*mF za#H2mcavW&aJcD?Y*0zZql&jIMlA}SlUO7?H8!hj64IpTCR`MoDE2Jlvq(;rpe#yO zNO-DflJt<_qo4D`NZ_$s@uiXU}jMC51@73?`ja0F8o2!SL(QoW+|Lrrw8D2`p zrGE91J&P!#_`eeL5HZv^V+l@@v&M_NzzrvY#h9R<{+gE!P+x{w^+{ zI)6)X3Zl}HuZ=8SsnP=Bx>C>yQnsnqqjFc-RxuK&hm#MBICxcjfsA;S%{g?)=!yuj zR-Y6Ox%RLmbT%p**E{(9H4Wc8HXAK47~>72fvx)9!h_}F<@s=GI-Q$ae@cp4@N95j zIb5Adfu5l<2Sxd~?F0h3#k_7BU?aPJqJP>`nWurGTqFqYI%;61h*P>tQ@oOJ(KEKDKIdF-e4Nlq<^bX zr@pbfQmLLIk0K4Y%Ta@+ext2^p>(-DlkCaZ;k`#t@0r)7`;Pt*KMx{~NzXwceU>{| zD}846H@rSN=c5gxuJL&sJZocvTY$a)Ye{Jk;Uq~HK9-4Z8Q=Lr!3ob)iQdx>RYWF!Icz@Z3NO8uZ zw7}76gMK_-3LXmaJIy=IKsk32_s~r)#w4_W0xCHau!@(Gms0+wrcF)0#jV9H1gTA0 zYt%90SCjU}tGVUEqu2D*_#LC`i3uzu?E!Gtmo*P(2mk}49#V3r#7+qOu0g~;PAdB& zNMQg^K(N1jd`u%Xu}Rt$qGF@k3uJ$XV{A52@i8}t+;~#g#7>BJhdeDZ z6k7L$BhIezc_f=g=hW*I95~OB_ks#mJAyd#uEJ!{Q-Y(w;Chp zZDO=ZlfG${SJk>+H`wKNnqOO*JJ@59F!l&Hx!-<|YJ1i-WD#XmWM!rDigJ>rDc2EZ z3xAL5b)jyVt4deJ&W0_80-mDOO4thHGeV2DkMg%*Pw|gJPxX&PPob{_h@^S)sChQ2 zdE&`D@=S?^rXXHn$&-PmC|-ZT@son40NGO6IWlL8Y|-5Od2=SOl+_tGXC7^S%acfF ze6KLtf@o)UZ9bI+l21x)VVy#67x`4fTVS{szMr)>PlA;qMG#lgq62d5E3;&kOfGt5b2NU2}g!)3$3Ivz!K@ z8pYhNPF{{a=h4qYyT#yVQawvyE}^RI6ws z4N;IO^3wV%gH~2Otzp?N6wRhqQLQ?gWmYS#mK@D2S9z{NoF!TFvULkLfi7c2>Bb3b z$IP$NataeldKb25=4S?!4A9KbOwo+d^wF$I>6B8+CFUjRC2ge|i-wBbWn)W*8kQcL zP2)|&P18*qPJMq)YfCnlbWRyF=~Edr8MWy|4W_LbU8nVI=F_aMOs{mWtj~YOxY)TcCPG-}m}DovX;x>oC%%_mx2nqKN& zTAv!9T3}jY>P)K+tBO`3E{QIY&l;E3m)@6zRyi&qEgPMqox7b2og1AiolBdhJmx%x zJf=JbJSKlURz3PX#z@wUGuBR8!^Ta(r)t(05L zThd$FS~WHeHM^_ERt+^RJvLj$TZUVvTQ*yET*h3MT((>mTsB;0pWCh*w3{kjD>toR z*A8BryCc3qJ!w64J?p+{KJ7luKGi+Ly0&@ddDeeVVl_q$MY{_}<_^^^-Pi783m5AL>zC~N?1$_p><8?}?3eBP?MKG3 z!xn!oojC$#+ZnE|4!iqT$5*FUx7b(M2h;3h98x(bvl6ouvt~I>IgdF}*)Fpvv!3W>r?#iQrv#@8rw(RikI|3akA;tsQjQk1T~oJ_or<-8)ZEnM)bP|2tn#he zt(vW>tAGS4!vGH)`ED;;Q@X1|YC5iM>$t9DJ0Ev+c6hdXcD}d2cY=0^wlQAW-72~Uc_w&fc&2pzH3YRzb@pss zYwc@YY@KXfZJlnNTiakeVmmlDvacAg9;l@l+REDE+Qzx&xt6&mxkkBmwN7fDR6WYP%)G36qs0af4P2Yes+Goe}sODe*XR>{Ve@B{mgx*0U7ecr~}>b)5F6R1L^!>1NH>@0F49+ z0xJ4r1XL0**?-jk)L+dnqi>*Zk0tX8l3myxR3Op5r6qFRS6x0;RG7vIQGBCPd zxu3cJu|K+hvcI~2v;VVSu)nZ>zdx~mzTdHbIxs~*VGP?LbRf@|jCX-~fpCFD2?+xY z0}}%q1C$f8ipxUC0HeNDTpO_8>}hBCFmstCK!JvbX^cDZ+0eq z=6z;(CaDf-W#F}r1sj%h@MXVdA7_7S-)H}Ow|^IIPs&ZJjhc&|iL8&W0FEO!S^mn}D0Jo8X%e zkZ_P7ZR}ml%}BvW!$^Onh@^q8foTz49a$Y)9c3NfjbssX75-m;0UX;b#z~lyz?ATq z5S2isKv5}jtzgHDEhG9^q*KIG*i-af_+1oKL{yk@)^2XmOvp*WN%CRs?CR|6tk6u` zNw|rvgS7*{gS~^ggT;f+gLxh9Dmo`TCq^e)H(Z>K+BDYPU{8OIF%{<$^Bn#h`yBNg z2NN3;ZesY?u%uyf{b;?Zp`#(Bp;KMS+Qr((TB(|)m8g}?72lP8756gSWps9Uc8qqk zcDSS+wQa2D-kuv{F3v6HHT*U9HR?4EE;cUQ?C|el$$jKo@mum+)BVQ%`@P70=Ub$^ zledhwkGGMxled4Bw^=uhFTF3ZFSReBFQqT5FM%(`fMQZG$AR=4(tDtiWd zQhR)Rc5>oLG1Ix6Xi|l-K%-ZqS)*JdIR`xlGY2IHDF=VAMs9X;c4~G?cAj>&wKOZ) z8u1z#8z~!E8>t)VRw7uESmIbBSz=kDSrS@enj>&3afVYi$4|DoEM*yfnV0NbHZO+= z2ar?fsj=heY4WM`WJW3zm6`8sVRmOW3danGmE-EE_4Gz|6N{OdtkHW9~|qwG=k zBuADL!Kr_vq;v&^)npE2>0yO)rPM{Ja-H&?vcpB~^4;>;^18A_B{vHL3kM4i3zbTe zX1ZpkrF4yCjckpSjd)LzrOdVXwG56pj%-UAr(#Y8Qw3DTREJ_M$65~7tjw|NL=Qom zn(f~9;dYl}*lFx6PL@`pR)SUv7mu5(ts2>`nH}t#CD>Rd$)PU=QN^A4?>H#`7;08+-NFjzhzyV|E{S4ZH=q2D%p0^A-Of zIR7_19sd`YHO(fxq6=5yYl19Lg1^(h8Qcx+hYiH}BMI~&Oiy4p0=7f6W3=P6L$!ay zy#d~peR1Kb?~a=E!Fdae&Gf78&tc34t$LK_gl+x4R`o3x=YQ46jNZ&LXl5SD5A z*NDrs0VgE$-N33e1|F5<*kQ&wu{D4EwPqOXQ~3rMZ&UqsV66FRpySN^rGP!m|E#A) ze_hOVY^Nh18nLQl^A_xyR3TrIH>v?Wh#$$jtbPl@TN!WIh-nfG+dsCTwqQ4ZZh(9N zjIE{+8bSC~{_`aGYmx$1^ECpZLD8j;Zh)_Vd;kxsrsL@Y442rfY{P$gQ8s_8=S^2Q zwgS5RKmG9lJhZTkujcppskR%2K{i38wCDH#?7@87E_W`h#%QuVbrt-F@xC4jh<`X+ zgZPHKfwBU!0cizf;{o6R;0Wsph=USf{2QK7{tJ$(X5wGbMXTsFLl!8Z-^t$;?uz!s z2I2ycg!&kG$qXa+4h-4!3)Fvy?ojm+>e1QpqqKpFPMNU(%#KqB@*#dfvzPQc>VwoX zM#WeE;bDo|R}Qk>-`gjoJ$}toACn^t-L7==huNnVvwUnC^X~)p1^<6Sxg&CKaC51M z3+My&{qu$V3?^T9G44{qUZ7>%Zslih`-4Q-slIIxmak2lzz-p9^}OZGJl4n#9a2 z1noDR(5C+cJFgw4CpH@vmbhO-T=wtF&YTK%`2y(%Xmf{UcYd1Bai&+JlaT&Zf%Mj3xInmIt^jiT*4x!m zIl!)eCo63++bJzfDj@gBp`YTQP`ZTr?OUROrUy$e1rVzAiN&=-U(HB zM7*c|>*$>qV~;_|QYlt#Qy;xVdd5hA$|Uhg-};&X%Ve57hX}8z`ebg@957O0v%k^E z{bU?gjpKP;?&9xiY$496PmvdZcX@1^tTC0-c}$DrVI_Zuxl1%(V$u9CpxPI#o;n9J)U(dS^~AFrx&gj#44H2NuUQ`y0)G~dyW+?hm`)$K z3I35Dlx_xR4^bcRdm1pNHoav!CFA*y;s-Qa?=x*=EQRajiSSO$}(3$4dCdV|W@1}{3sY5xg zk7)yNrJ-h3*_H_S0g)>lrVQ1N2)-PMtuhr;|xqm=J;8-=r)q{CQ9nN`tpT>kW z@$vj>0UD|>kVJo3i|E@W12LJxXn((|3rWM&ZgsTyZY1)NGXohjQJ{|jU{D<(D@UA_3 zZKdecQ+#b`6!dBdG`bnEmHDidS-&n^kVtl1v{@ULW=fzAphqxno?|C?y&IxM=B$Wy z3(0>tm1t29BAdu(;*L4b2ZCy#TY}1PM^(7ECLHnocQJ5dXP`)mm+9@3>Ic-lz`7@U zhmJaNFHF1(Wr1;T#Ef0+2ZP;|M^iMl|CMM6&+!*n6UYX{2ILy_pZrS^IKVi-HUXv? zbF6W-1~FV+X&M>FrZ!Qgk8r(d5rO5nWHf&R5>lN*teG?H{bl<~!|Ta)FmsIbmNZ>- z=_6hN*3ZZ&2(1!x%r66svRe65f#{or1aw18vqO_E!&T*QmEQVK?H^X4G(au?s(|fG_UgEy zkN?08`&H~eppG3nBtA-tmlNcTSRh@Xj8K(mmK5|uv`O;R;vFphe^KvfdOV`(G4Mx* z|JyVWfJ80Rclh7H`5koM@u<*-zn2$eUI~EbKL7(VFaHnBwftLk z>^WYPvEpA9!*wASqzF7If?Go7mB4xa8>H_E`uIXUztb$Aw#n!H?*t1~I|n4bi;afaumPPpLgWu=G?fO|3mY!1Q=4 z(Oo__D$uFbDI@h>ka<9`Rl6|Y87Ay z_-|tTXT#BO{n2m%KLqo9z#n1!kMQQWe`bX84ZxY9gTCm;qk(x4ZNz^Huf^9{73+Nd z>*D*b0sr%C+pT|o#8#7hKA>-mvpIf0&=02hynr9*C$oGSAR7$xDgAGz58uhNPl}@3 zvgqDC#{XxcxUL5IDQTcbaYYs4Q&L}t{E{-*`@fu`T9FH>f^HSIR{y6`Sfi}a)&K47 zkNy0^bpv(P{@=*Dax8yCvJvz#x)4V-UD)$+eJ{3a+RzQ;xEg=&p9d6lClF1Qe3gH| z?+3D}dS;^r(9whP!A|w$pnCSVdVWl!Ag)Oe&n$#@Hu8$yB6(}ze|xdpv6AaL5M5LT zZX{Q=!8Xc2`)p{hWb&!8N$^~JRPx2r;D)T!3 z0eKLZBmzDRMkN6`k*x}IE|gW76)QckUO;aobvSEaN2$`m#ESZ2%+1Pzn*SGISX=qP zRJpWLuBlUK=@tFo2#IX?B|GmDOdRFt-FrPGobgkyCU_5IC z>R8TNL|?Zx?7ky)S;<CI z@nz+(2Dm!hT9X9-Cs@`zOc$ggNghOjQviICi;y^3Jg%TJS-vVMt0-Ja%{J~ej5A%e%i(BxoHm!)?71d+ErthHB z@?rdHXSjojJ9J>=1~7#I_!0P-_(*D@T#;6M3#*&owK;ZyUY-q+&!V1BY|%Tor}x&m zJ~tb^wAMO&Q+Q-)(6$6(KM)3_#I(G?^bUV8j=Q)gtG+~#_m@&egH0@>jO?b5nl^0lGO+Fr@r209^25?mv)Wip=`*?hP>dAmrBb z;3?t5kO82ApI5=|fdl;iwl-b-1+M@Dz&F5QHf7LL(wAhdll)r)8C`n-q z=SYe#VE;e20OZaoBl_V$K?TbFw5kUlWV)DJEZ{Y+?U4F9w=~JPS88vTZ0A?|;K+M-Rc+?X2QANMnWscYF_T{g zU|ti!uRX9k$Drz$rZN*9aNwe;Szz>k$|OfL=ZAiICXB$?M32DOP&dZ_7_E$?^e^o! zEJ$b|)x?a~?jkJE(@ls$qlgZF{X;Gv5kmxB5;m`pe+4fe7p#ykFP`wmFUWs4(Y$3q zK@M{X@mD{lL5zpe8O{UIOd4*2W2(}Mch~tdD#<@BbvgY=YyEjJc)eL@TDvCi@Qz1<&$+dqAE_#?yei^wu zslD(Spn<)3$i{xRy{!Wn$eDC^37tbej##yH-F8ONL5HQ#V4}URKU=DnqRV+jivzu* z=&RCt8R+{aYzwGsf2ylLIW|~2VCe|yh^Pc;ud!o&Y9nLrQ62J~Pj2#^0N~_+uW+U+ zM>?`F_(;+#Wt|+64XS?{8A7up$sK$@!T>lYDGv`2G9=r-CT#td5kPA5qbA_)?oN+o zU*rRhB?%C@rf<<672v%`l5;c$=pH7VnHY>oM}+XC!Ur=K#%iO4^`} zOUzmyGQ09o{Xu`lnU0j0-JW4u@~rnJy;TX<6io^pa2H_{$L0|) z)rf~1m@g-}I5Ypf%1Roi@;ODyc_zx4ntz}^fWg%aW;6khyN`<6g4CJWlcQb;2(i*? zY4VjDB=DJCxAVSsz8}!rkH|zbuZp<{zwb<3iSJv3i#&fkIO6^`LQjM{Tw_|gF8Kyq zxG=HUqCDh0fUqp_%z4cPo z3Nz_db%|0+i?SS+De|1bGMAvm(?VpD>2(qB5L|zxR%7X4dw@|UG(B-ly>sPeno5L- zd7-d9TI}W6xl+%5%n*%BUOLoOppT=8)+Cq9dRqo)TNXoW!+g zN&To6>aCDrtyuf;Q0PFRSo`vieE~w7F6h-OA7};e*jBOK%dl#kLeBvekEerqdoj&} z0+-3-1hjzE<&#}BpNzB=JV%rq$on1>fUAEt1fh-8=;4bv4(*D6-KEXd(KD4@NDg&0 z=bBlaU5iP8B>aeQxERfbnChDtt(*yc=8D!|?z7#%kA*uch#VCW2l9Bmabw8k4Rwss zA#4xZ*d5m4Bqn==cO19H8m1zzQ_3z~cfXh$u8E-kq#tjc;TV|XcpyH;s10yZMTmbd z@2eD#9dwYTz3FNdk2qIM+;Xmbbe;n={q%;h65ng=ucm<0siBeMC1%yUVz~W$*7SLC zv655DQInDGv^M5(BV_;8YZ>`E2peC8{2`y4v6F;kt0Ei(;kLU72M$*}Nw1^Q?l7CD zZ{_yMzdt@_GH#JV)gegK&KgW_)5L#+bYNxOx3x4cA9>#G?*>CT{KuPBTZyJS00mrTQlP0-`jc zV`A>*cWK8YL~xAi5VWJ<)82odiN^j?mNDcVb=f<_CV~&(z?MaR4QQbJg{puWOw4|B zL;g&86+I~Hg-b$swBKKZbziRR8#vfsrJr$C&sDZwn%@e1t^pjkQG~IY9`uwu4=OUv zOPR?PoJh|S^)|rTBsim)4&E7P-w3&`~Li)M&JTM*9&nXZ4-5qujbN+wkGHSFCRoE5IBLmK;u->irgSrBwkJ;)274g~Z za}j)nk&XjQacX}I0gTJ-_Dn)d5K#jI9RRLf2yI3v#*jJVv3aR=u$S}bq%T`CQSSHi z@a1uA;+Ue0F|WnPXt~d^Y(}RX)PgH|AEN!} ziJaO^3i7pUo0}-B(D0Sf+*4%V7HS7(z%+z9P)nnR`@a*`Ir)0t)Bj=+8`4U4Vnx$R3! zI7MOR*)xA>+PhRPcMq*PJhuM!2x}^1uV6G)O{2xU0aP8&8qc91QpkagE~5|{u=pm& zVDb!mtVq<$FZTBG?gipY8RibW?x)DS1lJbXD5EMS-<$!t4AiD)w-o zQ%$5z#l{$W-`>xcrY}d^$D-8rPHww=TTg4njp)ea`72^A(m(thiG>*&Y{*}a;otrt zPjie>0h9?<&H9a;XmTU{Yo+Xd*1%6&Ze{HYEqN7j&Qu6DdT|^tC2hNf#v3vzwRt0> zJM@3tTS*c`aO@WGjC<_;yD!R%7ijZ@=GHh1?bOWz4N6O z*o;^052^$a54zl1O@eq)MTnUn@yl+dp#M7yMvsZt&(90sQ|ov`6d@#juC1pJ5&~4_ z`Mv`pc2DRdz|luxHWeuaE(6$pew+@AngD+Y(`TjaGwqbA1_j^3*2*2|SoDlnTrY|U zD|&jB`cTJV;psi;rgp1eAj6|rP;_#x@qR&Gnn@;>V|$I7pZ5TpHLPxTsF+)B+}ypU z@4iq|rxZckyy(`;rLQ}cGTEi??IE5dk0LG~MNT!^M8!KlqwDz|81S56Wn6K70-3LQJlx1-iaCvkV)+9_n4M8SmwysMCs zBg)i*Ql*03MQi&R=`qh=rlh8qRD!YNMW}kv6Y`DVz;Yf-6A+A^H8r*|_f48H-(#Oa zOX0KNQ#;oAEI&I?%IeVA%++@lvc-Scn7R0_a{84JXc?R4)J<~ zV9^G4Xu4I+g@w~9wJ@_2=cwRI{LZ)@vop!wZ2-ZztqfAs&S&@6!W`Ax+>Es$WRjP} zVsqGU!oF|8+zX7tGMt%!W!+MH{`sUbe(3S-$s(IVUf09jezTOk#yZQ+$f zNg42zC9|le{DyiIC5t5EN6m^qe=krMit~~asRM}e27Q`x<9d_db=99lzail2=~wgO z5$}Qw$U&reHfrGSgMT|V{>}IYKE*e~0S*;oXkg^E9;UK(IINC7SA>e&jyHKDST1EssH!))Ji{N;EZtFfazz+bhbkRAqCEO~|uvzE3KXG^ty(r>EwT zXeNZ9oTqp=F?!}x>1?Tf_ZnSg8rL%U&d=&G)6#SO+*&dL*1CVZu`*%rI7X933$W0? z3rM3d5=OKZq=nQ?k6eDc(yIxZn4TQP$o%eBv`$;cui65hink*dCo3DG`&juk7n zg&Mo#m-FBO=W3WB316mEaahDYLSt6EzOr63*q@Q*I*)%C=>b`IxY*Dz{dfx(cfz$}4CM7YnQa2jpjOBq{bJDU{~A+Q85sOm+m-&r9BwBzd4duii^FDL%~JZv?u zh3ZArxA_!zn*M+40tE{AwQu-jwEJWs{I;nmVlRsW=Gcf#3x%4jyAgn14#S3{O@UZb z9{>{hWP^W;1k9%rUhdfKzZ^JeUw$Oc&SNDd7QV*-2Sb(A=U@D78nmmaf!i+BiRVYm zUmd#z+z^A-17k&0w_yv1<`dJ`u39GJ5Igs4N{-ih1o z=q24E-W7AvI(&|eDtx0gR16Cs1VC{F?t**=haG=+ISxXE#TuVFPh4lVggHH0rCLIJ z;EKMe%@CgOcDUW)v3R#i-1!fxPQAV1#2Qubd>UzE=k|tol4}1ggDR=l%rc|k8h$#A zASvTz#wWsx1A@GIFMY`>+jkwybKV+zAe>FbgOI_7y_}n2mnk(2`=VA&E}n_o)9M(@ z^-6zJshIPxNCaeI;AKPS=+&cHBXW2jcQkx|mVmG|mE9n6z>6GS$+^RpB-4_V%^BKi zIjM5F=?r$vVLj?Zp5Yl$T1hiv@RU4jaNk?cnR@6%R|dCbSM_;tR>;TMTYd6UhLlEy zmMiw1M))HWaPLn!tFpxX6-P7s^RKc1&2oPRdSlBZevHEkm#@EnM)YLn*hP`0)FmEpZxjhX+S7tZbze3520Rij5;K1? zL&AatOZtdkJmXh2<-US#R72Gqr$AO*)SQ0~`;|{u#hiLLUK+-3RH13?Nc_Y7t$Ny! zfb_S>K~GF3SHlEpPFzplO+0(08*-piLXDQ56~`#5e3jPXfnu0+rfHfKgrD>cEc9!L z%I&C(ftP;#@Q`_Rabc$*S-e#+8z+C6(hL#ZuKq8dV)GV9sgi@Bk>!JKDCo{#C%e7AEn1)eQk2VL|fW?Z*&)U^!wkskoNUJeEfq=~Jule43V zfz5xJc7~QPkjzYs`1JVyWoqFwGScJ!|65qt{-?#v!SUbyOzi)Vot0Gw|G$6Fp6P$i zo|~Ia)WX`?#F0+a+Q8XF*u==r*o02n#MaE&9G`=Og@OHl5C(ikdNz6vR$g8h$p0A) z_v|Yl2zRZOmK$C(tNLn>T6A3KC!DCLz`CLR_mYS>-eAq#sOK-_xA%oEHJr#j6~J8!sSoPneKLZ&q>=T z;5#n>f)7)x*4@tZPtSSUaq~KMgsN-3ruI@-Cq#1S2wu&Q1sP>@IM9D$tbX6Z$OI=^ z{VvANgd8=im$riB_7H+sKMUVZ+GBiejo>YgchlF|yDSb-EYN?eWC@Bj`lvX#VyMT# zE_Xm5VY*(lyBj(-fDS8Q~Ic;VWDzAGAkJxP0hh&|W&z!Z=| z391Kyr$)NHIHjtq;eD$;JuH8+6j=Zt6c14+MolmC zW?u@8-+Zq<9UNPMWDd)Qf-BHY;1M1*uM@KBmo2Uz_a8JTgJ+oW+zd3yGwX{yDi{B$ z$A%Y)i_DwuGABzic&@GnpE8LwRDA(8L~|$J%02G!jsF{u7Cwezlfg<_;hpXgAv9e^ zzQlH<6R3qE__g528&gj>t(x5yh%h%C*{OJPo#Rf(J_0fm!fq_u5SKSoq)|79ZI%f?a_iY$hZ5j-Si3PfnqIR zE$y{|uDh>B{^wcPmiI+x zaAIDH9z1{3gLr7O1kHCa=_D&53)y?=yL3Hg2;PJ}-<4E#>#Zyd-6rObA5x&J&viOW zXtxnHCtY2fT&gW?Ev?LKETTj(&j+2G^7W;im5lp!cPU;RavBy9TgT4pHmXq@#>{6f znlYW~D#gmf;SS)jxd*#DflX$@^KXZ|KxBXBtl2tvsPPlm&lnx%>u{69|&3aCHR#jA;roB*CD zObmZ*^-o~NSY~tE{i(+iPEP+cCK{M&CHQj&SK@;k0z^6r83Z(Z>FQ7aG17q}q|*tM z_9}7#f%a7D^69B?;AduO3_sUEP@rR*o3X=X6%8mBgahB(WcJq9+5USefhGi02y^D% zfT_7$45%)RXU41pO`As`P)| z1{HcxAZn;Z-De5b+$-lO#{)Z`UpNvjn8TxI&k?NbKET4Mmrp$={pAi05h=v!v}jKQ zpGeHmUd~Z)5SMFIZyI;@v)^sEzFnGqB0>^Hye={ZC+aa7 z!vQQKzFb^C+yWf4unhp!!-Tt_Wg@6G$&&b-ICsKbq-$6~;G&f#cc6wJ5198q=A3qJHimPX;?&~sO<^tG7u1MzK;OHeO&5 zQ2{UCVbEO|Fn9E}bYMHZ1KR3bj=H)(v?nHGotpexoj(*}HD&sKf7IGQJIfJfzzNIX zzyfhXP&)-_N4Fm{0rD~WV7#vY2(~gJ82WeNW zuwuaaRsnzcAmIRR@)8JtSm$RXjr~*jaLLeK{&j240M^gi0CZwOC0WTc)aIWbVq$EE zUQA8znvIG6s&G~W+_GU+k_BxcxMm?T)Y$jh=aZDpcsSQngTwT37&CEPl9Mzx@GX1? zR2sXL#gq4U!s|&S;qJ)h4!Ol}_H`Kmevy1W54V4+iUw5Dd$!*vn5>?o&$_|ukGS>i zHNWBa9yR}6KLA^#CHpNVkhUr^o0}>!yG)0f>n3$6*Xz)&S%>zLG3uMA^=mJkS&c0h z9@*O#dkVeAzF}EDzdMhY`2MdCHtBf3^on2LUx))FGCqROv$1vjUw|S^m*`&R$PR^? zUYLKESi0)_w=G$EOy5rh()9;)ry~K@Gxze&QknPoZ-Ui3eYU-qBCrfHJY(D52#8(# zB5wD;HpjVKc4mQL`<>UW9(Stkk+y0r`M7RTD+|^wtQs;gsy@q=5$Y;1sv-u6;Ahz%B*(z1w9~cjr^w zoU=t?K}>xTwUo9?Skag&4Vp#rs226owF1yp3j4`oHF)z)md%hO_p&S4yu}~bo|4aV zo++3W4VrzBHHsv6tSi3UWq!asg&)B`94nXNuh>N<&fOBXrjjkNB~n%_>n)@iBA0&} zHAc-xI`B83?Su9%L(dfLy|d=;{)Ed4OA0FpXXR()xBHxvoZC3DuvTFeLVE=l^3MCP z%MA>i!{DWW%=E}e)6m|qqrv9(`@koxPzn3~`J3%FZ|pWZ;rw7x%u&~3YUSh#cz3kU0mYyN`3@vA7XIk{1s-qKU=olY7Hg5C?rIKGZ?3%X1pYwc$ ze1&uQaYb13=3s`5UPey-FBI;fWky-N4l!96c4!e{ti1$~JgxQ5|_imIY^PbMY zZ$$AC$$lX$s+5ms3)nfw@9dpGw7_+D6zV$Em#MN!+;NfX9QAWE`e|(Qzx;AR!&>rc zva_zGp%g&WxB!>5txE>wHb(&+F$vcXwYM9qmu+AyE+Wt;p4fjZB7_TNhX{TWY1K_t zj}`1&AqhoXn9POc445v#6b5maGB*5Tml^dr0Q`3IyQ}iICsV&Z)JV}8_mqIF)j)67 zt|e_C`7CT~ZEwhuqhUY+l6is+-Dv)G)&_n(0UkN;xwWOKOx#uR2b1x%MTK%|XIkH> z_D-djeIw1983KQ3j3gyLagjwW{8Me(Z`fF)eZ_cfHI`&>{$9U>8XKzKs44lJPyWF^;0@|U$HMH@X|7}h&1}B)_FR6ry0Jui zUv)%)T_#tGZ>7A#fms>3!Fb%4tzpvES{&N6s64D&Y}hway6zplSpC`G?c8bF zf2x0|4H7&$$B#0`n+0+JX>)@N$XdgH#A$IIsF4c?H8TrkhKpLOMhOxq1@=ttS9FZz zu^{xaeQ$BS@^F+hsj+guT*!#wUU#!O-Aifeh={qr?IuWH4YLihsPVo%Odp+)m142U z=(c{IokW~Vozz;U)m*&1GJCFCcj5OvXPSR6L5%k(tozu4-NF{A5nriwNq39dz2egj zI~)^SwQ%LQ=pGG_wm~QPT^X=2!o|g>I<3cz)WFJ?tXZ;*9clnfK(oL4#8*`CqSh7c zif1RVthE*NJGC5h35eIcES1;dDfmysuiRk*Az6 zqI%KH4SL^tkoTb5MdcWtv>-?0V!Jz0=K9Nf9K zX{l*BSk;W?_MLWcVGY?ek6yue8ao7)vw?7bY;9TFr@R`LwI>upV_!h%otl5pu=h8* zH|;5JKTwO}6*0`Ul{>J9-6?Nh+aLlq`eVBSHk?eQxmQ6nDHA3_YqV zhp)0(sVvpS?)~aUrzv%2WO5T#hLodDb?W=45oSv>CMkpMhK_a+CFMZtlO`!6&qvXJ z7Fz5n+M`=$sm;z-#uC-*HF~yG&2DB}3yon#mE6#pa2tVfCA6rbM~jxWzDeczxO4Q* zg{@@&ppOgDgauba`detjWFk{y0rAZ*h(vOMPdwG!VV#9lhN5U;qdwJuTQg=yA=;#R znwTohpeVYX&`4h$$HK> zF?VVTohJR!aqN)PuA~axC6AOKtau21oXSKV0?;d&aKGeU4WqpJ>7+H6mVH9Rf}BzJ z?7qQQ$7Fn%v6}iZd`(NCV(Mxw1vrpK;RNk86gd^L?#3|l-r~vHLHfX=oKb_iRsNDR z4$rVw%)$zNGx``U_dNEK065Qo`;97Vq87$Xa-(ctCo0>T)4lFkwYRcTS3@%l#nzen z=0zV4o7;KQ$Uz4@EcQaV{1bYEk>DGw0`V#SjB`nTZ;`}mg0n%5n|R7wm+vZJULbRT zRWfMDrcEo#EM+7hKGx$Rf^N5~)WGdBfuEGSa_dEBULOwaug;5Nf>YO__(O)aXA)<-BgMRv52biNRkXTl3c6KAS05wVTy zs;$ymL>_3puF(*vjY z_MxOjM19V4ogNAcO-mVnixZWOQ&UR8e;kbmzCXXWoh@Ca+DsQ3Q+N7M2z%Sy5Pu0> zH@Y8=*k1I!YA9Y~!WLzOH`BxdGS<+JH@2~~lp~{;SpNN5>Qy*vXM#mSRPSc1=UA#r z)eY>`uKTW;7Eey&DDD8fY{HvzJA*?5huQ3f3#@j!yAfLqg3bef{O&@?>)ka+)5bof zy&Ai%wFYzLX=SLG^YXVvFhE(;oH)mAd^Ql zB4bXtrHr0hjn^}>5^hpS2CWT?ET@0rTWwopy?QWba~5F>bEESOU>U1ZF8or zW%J6_C#M4@W3$uPlSl8=(jhHG%h<)#ttw{?eQoo4Mg%Z_q!RKI=*Q^3zml{urkO>G zo>qhbJx2H}Dm|e%W}A$|hCwP}qE}!5O8Mtg3D^8+1oFqc1{L+0-8|{r}sX!C!;Pob!|)a&*kCL z6)0qSx{WD+V4djt@$0<~C5htd-eg8qnL*=WBNLyHKPjG zj%3&pAepr}w$&IHsghjLt#}f-0uZN$RnbE9vFt;b&*Z$01uHiTazf zc5H4uPmFea5$hc@rZZY4*}(nrsc%dxKFxu>dp+v_=eAM>%Hi3grgRb@EF~(G4?g;= zp^nRctCE#nHUl903Tn9^2}Wuc$7f@Rg{O_d|B$(3u%!$*(0xybL~*ea*aLhxlW zvH@)kL@?C;)?Q4t>$k`q*L7XhnFEjZRdX7Dy~=sr+7_;NtScolq+Riu6&vsyWB0Lk zqaB_tuTAp;+ok=c&A{i>ERYePkWI;~Ibuc8)z zO(X5f2&|BXM8XK=ZFg^<7irIJms9D`52W1Ou-JtULCdJku^`g5ZsBj7z^{(J4qGLE zlXuQ(AS{UF^y;g7Ne6J6v3t*k5p0$L5M$O#HRf(LWA}$nqe6r3Rp`tW6zr?!!-SRd zXp3#Ci~g9%3)~{E3#GVjVdEawQ68UvwizM9kkuaFQa=E+OSQ4%$8oCp&6iq5C|F;; z>*+;fgq=1YgBHuf)yzX_sfyA4bXzUgnUh=eA>EwXGj!OipUZ0~OM(jy%DV2x`tJNY zfbN>sNpZ#lS36Q4C~K_%MeoKH1#3Gt0o)YBzYS7LsRzE!V3)Ot8k?PwyXvuj5kri} z`e-wx{U&>@0p87HE{Rz})=%I199S^1)cA5ltr(4{v=x*za$+DTlUq{P{K`0pV2^1) z^^!@-3$9AyipEiy#o5Efw9Iy3XW7X(tYcWKRwtdBF$;#Lj(5Ni^{USO=g@0&F~3Z? zZh;|3WvBA<)rI>3NDgHv}A_*@(+*RNX~<5y$M=p?rj1~t5NYPx)3AH zq9wxZ16MYRteFOgYsm7XCyA==(dC}Y8_>F<%|L3D_j4D@@$qhm`#Xo)si1b0wy=eQ z75y=rlb)9Np1N=vX-8|lbH26ybVt8RVCStLen5V-Vo+2a))5Oy*YP2LRMwLSELdBG z#L8z7RRg0`Eb4@0RWlv5YDL!z?33-{vbLv$&QPbM4bqesK1*0RxB4B z=hca0?V`r=XHc@Ds$z}LPb1}XWe1B(PUCB3x2T+u6o9ecz~6;+8gyg5CQYeA7KpaL z4>aIJBoFtZ!}`;cM|ZJflp#To(F$xFaEb!58xsa`_Zc(z0AAdGk5hBI?UcRqM0<_~ z*nCgBag25Gb;lacpiplN?+TL*k!+JGj37Y>Rr2NPAVtG>f~Y(=2znXNWkd>&fLi(# zWY$)F?(CzoJ_ozF?+ejM?<_*L!Bw6I)IXfvBO(fLmHRX>aw5_(LY!%_1B{mmj6!P& z85oMfuNX-^GXQvhFwZ}dA<5vK>#3*{X80J&rhU((r%=+pCIohkgdhT=t@T*ZSh?Mm z7UermE2q1id&FsV7x%i2?~VH(=T5ILvbA-J7HbqyN6`(s>x^d>J;cr5xi~f#GN^qO9SXNLwVSEkn+x6^X+>s#Dklw zG%ZV3E0m#s$CZk8nHUlDl%yrD9yXfq$A|t}BY=)(->n~+&RQoJrZPT_tEkN;z)O^9 zry<3VTQbWN+qY-)YW5GM)0!v3N!wa$XXDuFjDKKr*?!+Aoxjt{>5?XKhj%=lsd=fq zNVSe}enBoy#Z}Ibn!PQ%~J8rCc-p6_G@p4e1a6}QM1s1>n(NIutM{TK(D0B^+*-Kj2DFS7*vKZ@f~5pi%N?x?u@E*jIz}*!Us2?zwp~r1!%y;< zdDH~YGW*C5WGlGCDs+SQeJ^$vY;#Vr;Ac9V0gPB6-%uI3@-HSwPvF5|69k9&dd1wDe+m7pMH_C5QtA8(|8=2%vScKagKh7(l5=hPu{d(XCOk)N(E~irr-h&D;kR;~ zRmJOV8apC(68@f}h45BnJB{d{1B^2Et3n!yPE*&|alcqifhz*4IH4`vNj{m9@mN#^ zT(IilRg4P_re!V>sq3<*7UwJMl(2F1Nt0Y2=TY>O1aq1XDaAnplACvbag$^8x%clv zlwore2c&!L zbBY&f`CC$LQVZkAh8$qK>DWx+C=FZf!Jz2O8IMJ2+cYUDTsQyLSVf;DW~^w1=|pC@ z#NHC}o1o|M-h@0TGYjm0+leV=F7lk|C6DaFCZWlu4eOlJCeq^VruHq!C^4_d-hv9j>Q^s)ychh)>#uk75I9P93Ql~<`3B94%vT{=%Oa=1E?xD3FF-MHmX zBg@ne@(G;^Y|5r(O2b_QAMa4f?zl}Ry$6xz;ceoRevvo{x+#8tLeQl0#Mup*hIApR zZ|`@=&ogTVL9-Gc3uH|+o5kEV%mgE}6e5XJy!=!Y7Yz!&QUWD9op*reX$ImOOTs)I zL|ThUktcr$ipqzkQF5Ls8A-2AYJIUQJ`n9x!$#4`4z<&nn}CJG8>-P^y|kHEiNq-1 z<}guxR@hP}vQmwIiMGZ@G7>Fg9}`BqUj(OR?3nF{ZRo(I=42r=ClA@}&#?*`R3>Fq zG6yltGS=KgSz1Cj!tVeQ404Gg3amP$M6#Gu*K!9;g6w8Iy4R{sl$W&^6heAY8-dmH zxhdW>2@T>X1*SWzpwGpPmX3{gC$-pn;uPo5n-Yr)3Z~_MRloP`t|;EyA~Sr4W_QGl zQuY`r4O5;JXG*vjUkWIiJ*qHs-K@f7cGYQZwWaZ2eOV#mF6!KH)sxP3I)_hav+HXtrKY82rio5}m6BYxFL=D#GwyYaoSL?!Jz060_;M;QC1kJCG2|SL zCNyltIC&<2N*0^`c9AYo*q$y!v$1G!ad8S|nk`N&za7!ia%3Eyl(zFIDXBSim6j@Q z2QZxFxYi(6c419Q{vWV>kl*MtEc-czL)aEl|dG z4lzGC!~r3&afh(*Ftz(YKD>jyhAPpnePK9ye3a-gITC&#%mE@0`Qq&o50ZHB?YC>+ zZQN^~+vTftPHkmvC9lgxc5N)wb(0Q+Ht|Tuc15kTS*pr(vd&+G9of>PNg)~M(i2f* zlP;!zMKWOq1hq;gLW-g5%*2G;nHibPPcoAigW08D@Y!bRlTq#(T*YjJWF{78q_mtP zXE9^45r#eM$I|F*YuX$OjoIah6QdYuM-z>??EOh&Y1&1`#zvw=rt}sj+Ffc%HoI_p z1~@gr)Cyu#gVbVEX~#~a!^Ug`2nmOq_F(IOGA{a&?6+a;G7bUInG&c{^jl_@NgG-= zMxuNvvr49!j9Em}=(zOc1KF!{$*3%S*$V_G0?f1|ieqCCR0aatCB?=T&XZ1I<9vN; z5<(^*7h#RZM&!RY9tMhNs+3d|L}V-r*^;W27F_1r*V5Ax;Lf%(P*#%?Gp)#fq0!-g znZ$2%aT2nHTJ%n1*p7@dpfXVs(i7s1cqIHTS=*chWi7M03=@~Ij|+J?$-r!Lk0xa! z!=v(NfKLvmSyAFq%~CT;6ZRcT$>ejhQ1cQn(nP_Hn3}+X$SEF+E1G$LEmZ)XN#iydB+zc3B&GZ{im~RGuf-&8W z#nZTm42et7)g)CFU0qFob$duUx{rUM6Rp{%!mbt$0R#lpK(u-@^k)3@4n3f#mn-dbS$mkeeQ6SHJ& z5QCa@m7VBEpqb?*%-V)K@A%V2u-WVjI(fd`np&~6ZBuZOVHw@u&W!?o?GnweU8jN) z>O?2TObuojO?F)6N}N|m&nWiBmaSa{*Gk9^iYNNK)Tgn2-L~E*@UvP=gqNa+lK7SBExCT|*@646W>Q~&PvvG26;h01bv#(x zgE#FR*avG`y^p7PQi#QISF=O9D*%Tpsu#yXf6j$_VEZpBv>U~04fro>^F4eb zdEQy||6ZLay&k-On&$49?pf_cef4~M9r?WYjPtGg@z=Jh5&fF~BD|Av@vOgYy%K$1 z@g8A%!8`zd0v-ju1dWGXg~eN4w~X^``HAvc^F@0P`vSkCebSA0Rv0*cVruG;)FHCI zyS%#`DRv-xv~**>!@R>Bu^qD|tc_d6uT5GdOdT;EwH>v8#jj0V#`83W?L9wuO714? z3H*dbUr%5i!HoYV@0nD;9=(!Nq)kzH=#8cx-5N6!{o)%DIJRiZyvIGnjq^?L5!|Nz zo1HP9V~lo?H$Shxw>)pSw>WRGHq{#8FZFMSutP+?9l}VLxo0QgZH7YftHl&ivLNTg^@t$Pe@t%}j?hzSCFZuJLr-CEXW78w8WUY8R z6mrvPpa<(J2hLeSOvrQTlpJ)+t(H) zRDa!aLTN0HOTqMSo4|tHK>q_Ew}QJk-B=!S^q&lGS^6(VcWncEglZsa1b%4KyU@E> z|KNugT@Ixi?$!Xx9VSfOk_-O|qT@z+!8LGyD}(Uk;Uk;Yup$8$mw{cdc}NQ@pf4%} z*!Z!|v*zm;xX8t3NUyE5v?PI8ZzZaL<6CUG|HpL7CBPZFl&R{*=g zb;z8p?@o`^<0Y0*rk>cXwXcttdy*Bm^;P%Dvl~~Y9$$Nl$7h4c%w^t}lHXr8wz@p} z1`i(#@5hgo)|2N;O}08cwcYNYoyL>rtPi%j-)61H54km#x;@mDZr`oEk2*q}JqI=M?Vxwi zSGlNps)?(U6J-pzhMwwW4k&BrWKxRbu$0^{`6Zf`Evoo5eDoHBRFDi~ZFX^XXRMFq zPPl0$Ql_bPGPUqUux}fiF30N^vAT3@eW!ahAk}7^|Bjcl7GM=27C{z&nu^ebYoe-P z9!G4hE8)|fZ8VszxcMF)mg^Sp=+%Lxp*^ErbZ{(4o_}w_y6exYBRzWFy%B7< zg+cek?|B{l42t4%b9B3Z5Dops%lwjm2fv>`Qs5H9LFX}Yo)AjHQ^MO~@ElE#HTsC@ zc%873D~Wp~hNi#FNhmVo?zok+y*8k?xh_)z(E&Wu@x8DzE6RYAGu&yOzDc5rV`fyDiGedXHXme-j$<+yUe$ z=%}{9=qYKkD&Is}XES?N{nowV5%sWoWHV7Uy_M6(c3ajhtwU_WKGmsy+9;jZ+c0xykt}36|SD}w*vx>}o zyc^X-5%FgRPpb%idw{deAtC z5@LsJOTDe!-eE6gU~+IX*pv2*8-rV1(MInh*!0cUvviz){h^8-m9G1@ z!jyEfEW=pi#~FIdLNx9P(i}vF5<45G^WSX(r#*(2m}V2*JdX+{u`tikr=hLa$IllJ zTkiJ+4-@y(RbRfZCwju+zKpM*UJJrXW~sD)R{RrYDI?CzNApbDo-ptyyi%!8^W5n& z+tk^v+0UZYUk-%1pQNMDSETy}jfc9?5#eF%eZ8!ylBt>~47!L?A*`ign;TH3Tu?)b z32H0p;awL~W|qHIC|)(fS0ov3vfHe7e}$QBrXpJjtN3!rN;U6Olr2WKA7^S|HO{$z zZ7xo6$ZBa@3TyaiSd453@QaNXF{u#kpo?)-H96}7+_}m9Wbh3$?CNMZZG2jvo1|p) zUam;}EXvJ%&HDP%`F`!fP=%?}d-kUXf1uE4xLe7+KK4bL&}gzgXAj}fyzW6rqS|=V zkW~?DdE53oY@j~beEvf3v=e(v*!9tWLAvKH+CRU~&WUO4P9SyOz9XRR|*+&(-Vo4JE=3}=lKJjx76XX~|L!5GFN(0GT^#$vW4LQjZ> zI**g5S;ioKiWjZ(PLjKJ6NGZ@20Jovn+Kj5{bXs1qLdljBoPmd`S4n#gP-nyYTi6M z)Wt2GxXzAwMN4j8AAFQAz?-k7x^~evTj8CRBx=?zPnH*o6hDRE7d)Xy2aFj|a|2Fn ztAK|^OL}DA7hr?k#{)#{2NT;1G~N@G9b9LJX3)5)YCP5+ecd#jD2;@tM6ZT%(($Cy z=Q(g&5zb|fH<3CLZW%e3xB$_Ageq{M#UvLcIDYU@Vy`~tQ^{_7LEG_1ahB|X<<=*9 zRkn+r;`V6FIqp}uIO#T59&MlHrNk{dez=3`V7EFeh*t@TGS^6oT=G{<@>l)Qye?F! zUWwCV0x|Ww7&2^cofmhl4q;q}<%%|#@uYXr6^3g8q+z~jee1g}a46M()1oq+rN`L8 zDJ;_@%INygCt^61)Kpopr1|R(^f!5lb9AxQFFSTSVaGbVA6+0Q<{=*<^!<6aE|1b8 zL_P*-5YQ%{rkP1L@@2X>NP(u7;1)b5T5}<&6N>=SQ;_*7Y>NQ&#$SOR6E{HYfB_vS zZb;qzPi}A-et-kw0K{K^gFnO!sZjG7;s#&J;z7>i{?hK4+wmY9@j_b>^bn*%v`#sH zJm^tO8B`IbgUk$i-+#INLF(aA1sJFUO16LhP&08Kinv4Y=6?yjq4NgK89-Tw&>3KP zgQV00^@iruL%9y&URm*Vz*+9oV+ZJ=i-j4kX9p|E!}SS&0%eCXO&?Q#f%Xk? zO#a~W$=TN5xc&_;?q^Y#5woUWz7x;E$Cj3o3{Vy?qQzmvN6H0dGZtVy>K9HQ_DLc@ zE9J+P4)G@UPlXlZW7nTm54!s2g$`%v;$ojTo3YZ`Rh~cS~L_CyIKETO;pVrE+m=BP8*i<$geR zaACv{@xm|YFafjZy|Y_4cC&1G8~>RKMss@*U<}@tk^_Z0!O^sGoc7VM@;7)EWKIFJ z$u6KD;hvO#%iejo3>L*(LcBkIBEI3?z&;0D%HCm-xAHpikY`FVVbJ5jWdkr9@jz!P zB6SzW{B4w-Dv$bFZGHtKSJJD?A86MST()@+i?IQ2*#XeOT% zKJq|d`}qnL5csX;XKG!G&o#RP> zIu=neNU>A~1qV)d(XdxD0X-b+d$4qCD0dj%uy4Fzy;BNi?$~26a`JvdXu{CohISx3 zKvyAu_^Y&M2IvsO!T2vC@SlX?>F`hNuluJZ9D=O7Xpjp!L8$)%C_o>~Ph}3HHmLIN zGhupx&(Rhx^DJDFEL6$>XE8-6*e0A-Cm1|`)C~8(%x7{AsI}*D4!VK2K#su5NAr0( z(K#V~;I(Jk{?jI?_XhP8w51OK9V}o^1|8aer4RmvVt8PS4*A;eLl1ou2By!>4NSCe zun!{|9mF0U2AoTSkWG(E%8xjA5oj!akfB5Xvq%8Mcwk{Kgla4V%b5Y5q|bO%m_-o} zrbK|pgVN8uPa`gU`fe6ahm`Q2g{k_OdJp=x_c%F%F*!SEcgK|-#JA6l-d$BbYDpM> zC%e25!P$vCx+TtDg>8^5xu&p|(GBGsa#?`o946i#@PRvud@d?}vWqMpB0-PgXaIS% zu%|p8_GjJBSPE<(A6_JalD9B2uKX|wlbp-O7)fR_g7o;MX!P^t|5)bssclnx`)=%D ze*GTw&^oC7T&31QtD-y!6}jWea>kW^WQ;3F85a@K&%&jigh^TBN2H7$$La_adoV%= zxJE7BbqbVwU_<-9?f|&K2Y2w%{$U2h#z-FSO9Y7T;li|q@w9Sat1`J3XOOJr`azTO z3#sDGiUYIASJM9l9?+whw1tUL<;rr(j#Lh#kRuZB?&$y$`+rvXB^Y+q)PV|rRe2Pu za?4fZmMh6DSEw|WO@v|>vRC2JL<{M-kBL7wV*Ea z977sOvmdSphm#kC2Z)nT#-*D1E9F`pL0#z$%n@6{TEC_{)at<2e!%k`>=zJgKc4~7 z7u0T$qdOk!0N5RYH!$81Sv>}SF9@A-zu6s!bpV|{l{duJKGixzmpP7X**Xi0)_MT~9(go`kmC@vg-GsFvsvjZ!RnQ?efa=|)^(*}u0@ zhF*m08v<$+vZ*Ls8Ds!V4ffKY`NuCTtpHhd$aDWaoRd>QjO_4j`F6a2FAOh#Q@sW^ zQ1fjgy%4u7x?vf#Rt~F*1x6E-mnIl{uUbb&Hh8U;WNbBDoD)HUjPP6-FXyZX$;Y`c zu66`Nmj)NnJgx^J#JMnDPKrU5>q5BrZ+kejCw87;E=3f__02&r`F*Q(n`~C2i|JBL z6=G91qAb2)oVZwJnlGwyH9z+p7)Pn)%F_S*&bO4(HOm#_Z z^cT%Kq~0LwTjYb}!}b4_Yov;)s74f3P?A=D2ospr2waNYHGGtx7EB}2XQIpIBGkta z5&pX4s-maFrqriCFsjqNaO@&T;rzn;VBZdjY5Pq-qc!h9Zdo*c0mUk~MKam)n6W)R z=?yn!?V-q)3qC23hc;fIhu4YFYv15$cGsZ$-0-a3EEnk{141O%`|GLVD zi1x_HEo3u={fZSypUh5dbG#3d3vBPevyXi?cXWqL|Ermnv|HXqh~Y zc2Oi3&)yT!y5X6B=uwGfDU4Im44Lgdn~sw0J}Vyoh?EZr?MbUUIG3G2rSRM|;w^X% z89}Wl#PiYpqLr8UW?!|9b{9iNxXlfD|DXApP`eu+dw2r<&^TIMc0=l@`xt@B=a8tD zFH}yS$s1C)+<$K0Y5k90f7%_(Rj^L|R%BD>y4+0=COfo$*go3m$^rQU!)RU5-~JAr z|DLZe|F3-g1~eN)U`WixsS80jM0H2m4O+GDLLRbm2igr`rC(!C_4;Qw?Fev?0PcV7 zcEgeAhuY8%w4$>p2M^erMQSMwDlmbCH3GE;`TR1ewf<{pdS7uAt6BNAi;efu^gCbDV9?fv=hL~TH4Y+ zLwDHJ{>SJRWOX+ejBfBLj3}3}w$Xhpqh*xsFxvYDhKtK>CCOgQ`K-v@p7>v_6wN%FWI9`{RlPNeBI!`9$Mf2hRW0Ywea3i~O*?i&Z z=Y+9bVpluC(l*WZUspTXvz+c*&JL_(2UT%^sp+u;G38FWU(DD?xscYLNNdk{v~$~| zt^%1IFkXIbxv$QAz|A#3(q>z^%(ifzYUVh9)y#IZW;)rhoNijqwyb1ZRdKAPI@Hqq z)z%vAXoZGy(?5WnZ8OQXahYxXhf`Vqv6@XzGFCaIXqhWH#8iLJu`8TnmpQ~PvWcGi zIT|yaj4@8f8D|q#vI$&f<2zk^yPvkzLqoU%v&SXY#e-3d{vcfV5k5#^4NDtkr;Aj7 zdxv_nP6O^bj%Yu4BtN!J{V@HyB&iw#QZq|#gq0XFJdYgBCD0N0?TVYqsWy^D(RzDn z&wj?ee>V)LQ~t=lLvGd*`(fw?s2#AVgVYI8JlhRo9<|7aexX(ewG9Yucs{s|{{mv| z=hY+ph`e{*;W~13$8|&S>d)d0iV>oJ_T?jO7)Dq(2)C*eYEdW9{B!(8le~xGOrTM< zF8NN=wj=t5oMubKxnnWmGC;cuwL?GE8Z9UMg?$-(t%vi?@5b~E&eP|+_PP4Td;mJT z!0+S)ZW-qrG8pCk(#KwNl{x>H_L#jCM$36#p zN2agr316Tm|Nqf$AU3@5>GVdp`n30A*am17(0ze? zD7axgiS^A53CoXQff z_C#XzJcuDqWlL25Y60`RR`^^%<5aLS(`7h16B5C@;OEDq{OB*cywGXJ68!Z$=C~=H zk#7gPVM$#1Y=8AV`d5j6*i7H%!9^Whpx5G^_BPxBb4%#SDX_vG;^QLXCpeNthe5;( zV~|m^fN-RIF5>@J6H_`n!>++C#=7>eeIOk$9uJ|27t5-MhXbL9fi&Qp&cDr|hsq7u zNS+BGOow_r`_y=N=ib}X2b}AHMx`r$7FDUdG=F4uH^2P_)vCPj-ZVDKPK8p! z$Abj$lclC|(WcPkxO;^4?haxc<4%Y33knfMaHtJuSCh=9a-lA}A|Ve*>(DhJ=32#2 z!m$JTS-A)F2G8q%H+@6y&JLyAXL`fFD~i=g{`(sqCla%#fkPHuF+5(Fza>(Ie?@gh zOO)ZRA<o(Fpu;U@(pajC$J7@ z7t=7jOo%XyrATZip3qGoA{mwsC_ALly@*#BH$zHj!&shwz2JpVWf`H;GF%xnT&Zc8 z^6plt`DH=#(~Rn;iFH@jBJ))-_i@=e^PweeQzWM^x7JwZbA^}JB6mZCC$Qm|Z@1c) z`dnx74cGVsrtzz}x;OUmsqXjaVlYmwL)K{+MM} zecYXps_s{RMQ5mb(j^SkWT}q|GhG;f!A!3SRK!BB2t@Q>z&!5-)WbG!1;oQTZxke7 zqB@FTfe!q$X@_TlydhSg7LkZo-Pf79M`uZM4pkBFbrsMD$CgfJG6@Bw$3D%)i)d3U z#@@pVYP9cw4kf2fwyC&lL+H^KkvxXsb@ZPOK^&NWj5q))F@|S#+xf)w$Hcq-o$YD# z7jhtTifr}lBz^4txY;_UnyGPioRjD>`k%qUMMo6I?cKpe`-kWk*Gq0#Wh+;X!tzmlNo|?q^H^OiDjgJ;#)bAR+ffgr zhcvl~6;Ffj;{`jm*ePD_jddl44C?^E>?xBp1;Lv`sS04ULDYo2&H%bO#BpMj6v?fB z)+Wk@xlZ&JrWWK;Fe~|mbeWX{LMi9vLHuj7{)pysptGcRsj4|iz?mr=( zqrP9pvkKYQps{y8r(&id!e zg?@RoXFZV#>^9}@pM6`3(ML0tVuey7lfRdds&#>u(&TuVYoY#zyoguaJF+WC21`fN z?L*jxg9U@PC8N-MHTg}LSvezMy z*u98(8JX^}=y>klk+(>j4}5L472A|**aG5=b+*0TkkmwRbl1&(m|QErES`d3w)p`E zyagqGtM`}K4Cg|suX?H3f>!BJaT>FYBtkw7l%Z~{YX+uz3AnXTHmcFJkrEaj^>}ej zb}6>bJeDw~+JEX_kF`g=02Pvdl^B(uPq7eywr_-U`G*pr57T-|rea=t{US z(LxPIWPI(=s7k*RlZ8lsy!lFW(1*#tK+qc&Ypw?0lE@zS-$xF|?l40=`*f(+@|a#? z?qekjLwwj5dzIb4lI!!!R%8{=ODJI1=i|tnXGv1qkh6IG>m+ty<2IFl3J-TqEt`%7 z<1Uy9|GLSK4AIXsGPS(LjV+6jCbP*+jG=@_DIgq=>sQ*#aYj>_TD4?m24Dru_mR29`Q{AxRV@opk zrGB*g>b};$RKx$K>PIJk*AI`cMh~73>pkkzyUz^c-q%8Sp7Y_k&y3^V*Fkii^U=D? zH0!-P2sAq~M6J&FUU2BYc_TP~-PkHSb`5u@&KZ&Tpjv(aiGIk&hE&e^C^XB;EwiMA zNt&KTga4d^Ll1Z*6rxB8p%>rSq!C|1nJ{u}ADz0?dUV=1>!kaCEJ-(AY$4I4%1kYj zZ~o){d?X) zhrNyrH&_+airc<*6J+CVp^hH9dH&AwbYZid^7c7Bg7wy6alyYaO;{UXV z*a2@o8|B!744Cz=Yyn~oDm;3e*=WRPZf2y)bjN7x8*5b#I&EDJ>bK_&#U1f&{fNpA z-t5`vw!wDV)@JuwHUC_?x#IqW81`6UeERL>m%V44Vmm#5eFM$)!_mtM5=iBGh$o292~0Z)M4OM;`f*kDo%7M%!<$(dilN}Q02BieH7k@|{%_JT zyS(3ok0T*|5$JIUU@tWyJjfH>_;=PL?^q09K~gE^VD^_HYH*?koiW%Bw`v8YyZgD!-{P1IFNJyLD!w@GD~m; z$J%CkG?&~<%p^J+^L3xr?qVg2uGu~Fa9GtnIqlkhoG!re3HQ{2gl4KNu7azLAr;+Cc^>wa z`{dGpyj*#kwy3p!=5lkcyzjJm)3j>5mmF~O{MKPbz1FYep@|-*ef9w8>=MYfoZ-EK z=e~h&yAs$kC*;_4PJN?s-bT3u%vs+udL=%sfO6ir%srHAb`L#7yJYLJA$$LV-%Tdl z)qRKR9wH>$m&G2^cfs!NMRGxu-ZjPUWpqJ*6}iFA3Wf>k_E8P6Aw$T8J5t}v&rN8d zv5?lldqq<3+YF5k932?$Pa7cR*WZiR)$h}g*!bl{#B-R1CBRWT$(;>{g~;0KWp5&N z@1}{z6Rytn)mlS5i-$_WgLgyGm~kX+m}1gP7|BrD7uSBRH)V9l&d~11)UNYaWsNT@mAGeIl75@L z;3(JZhu?7S@90^O;+Rsf?pR5=kjVk-SZn>F0?KR)HpEsopXB#}>ldq!3!S2gV&yXA zC}wJbX-c_miY0s~6xIBNiX{zDiAuSDa})|{f!}sh6pG4!lgtJDu!>({Czw|c2oCz? zPwhZTh7@xRVN4|iuw|nD6mvOY3Cgjz6mng+Xl!MCYRsbL;OvXPD=`Zc{H;Q>lb*># zx2bRB5qXI(hEEK0&c>XYiUN(nCU-%ARxz1 zoj5PYPWuh6G8Dyyc4FUfo1-8lzLNkd_4nUk3du$7TTFc20D76!vx(>;1AI(uqxBDT zCE3IyTGb`lv=eDG2bd?@l$%4c679|*(opZtH3qCx?>a3bS~Uj%;%v%^HQEEjzpv!_ zB$p7ak^=xqHW!Fi-%iB4B*Ytk1p$C$8%@M2&Av_Q-8SM48c0_1fB2mL;Hl$moW)zL zAf2246<54P3v!uumqoN?5z#94KcZkI*nA*XiT5>%w+Q`{B|YJv3T65p#9L?}muYrU z|F*Off7hD+ugc~Am5u1TvhQmF#47E7#{J6=H_^sAsCE*cYBzwJp3?S&H638%>nSOpViywiQUUC;a`Jn($9> z@_$m9lFw5cwiQZHoJDUUEUBMfh9~mdN+C~WI-53>e%6{;e(cYpJaqTQ&z8Lw=S961 z=Qq6?V`oRwRPY`>`dNUmUs=-py{MMU;2cIyY-Tx6QV8+gEs$_U(Jk@h6mj_r?48<(Jq3s%I4J@eswA zp)@iLTWRHgTS81(<{{~e#@o7Y7_O8Tdu z|C1z34Bt9`&cA1*M5jyrPxOBPK|sF0d>ZKg75IBX5a0ZFFv@?j{^vUY{cl&4eUZ6IcRb%Wm$MH!HxGol`7Hg6vrc_)$qg7d+CQv9>>MmQ%H?u5N zs%T+0AUKyTZ7Nsjq*xSAG!qUyQ_O8Dm+7QX&T!P)Z%6kQXyNlTCe9EW%AR?HXgsCx|Q;?WCAS||s$RQ7dK%;|t?Pz5_v{71c@kg8N1pqX8f3;k1DW*{qjl0L>m0ZUtq{R+Tm0e#Iv$E6CMOS4WaKSL5`=k9H{C`_)JX(@2)63?v!Niz@BiD(qS6j-?(8R^|t?0?$p2rojOji%aa~stqJwYvI$QB-K5hUDG(Hs!R9 zRl$s@`CryJo}mD7P49Yu^$pK)Yu7|0NygPHSXKAp1GJ|0*OYGaYCNvC{UFrMVwTEs<(^m{ z>A+d~-qJGHTI0W^A*o~7`ZtaiYjn@L8KpZ86?1#bv!#YcN^JBD7?H3r+L9wJ6TKRH ze`h_vpZ5;*oaalN*A1y!M%JgrPDW^?KFd#AJAX_Yg-2lP8E_J&W3;BmZboEeKkuC* zMPy8m@R?^gnP)6cY)nifPJGj2=l!w}gwZvzzO%qbi7CoDn=pVTdaDdW!=yu1C7spJ z{Z(XY9pz9>Fr!I2bF6fugISpHp;URJf2jzVv{=4%bjGQekK3Z(){o=q)D>j)dcso^ zBdL~DWc512T@xe8mcrf}A=4uX7=+wb1;z)X5mc$M#OntmEwa>Dix@BT`hv|EleYQI z+b1XngI@W~gCU8LD-jVX^lIx7GOIriBV~GjUQ{3TFPZqpl4GU%$)?g%tVi^Df4R!U zK)fCHqH=35-7(tf2*X*-kH0%DmCpVw0)@5bVZyV>~xH(q4dbMYDZf;DaukRl@ ziNRmZ^m9&JOuD&7YH4X{zhn;8yS+VcNTsfGn%TPtYi*Y-r$4;f*>hT3MW?TmcXkV0 zUC}kOV)-%)>$J9V8(0-jTqMk%e<m!v+c9OzXQ~%YU%!)p2lVS*yu=OARnAXg1TG%mM_Ckq$ z34Qgj(c1KqsqNzEvE|>EHf=Cd*0u4;iyJktQDY?$*xDe-YXWPx1I~ zFRGJj#W*JtCPv-bR_>{w$?qUe|0=-C>Ao&M6G!q~MddAt#L%iZWlp=C?83s-Xnb$& zzfK>*o`s<}m3`dY-hE?3YVqjN$=;nYJWaJ>;Xlo!;>>7KOo_R+?0X{g|4bxIR~>z+ za;-vl)h=mqv5R3;gDrMJFTkivy#llhzjo|3*V^Z5w*e55PjA#sx zjQ*3G>bF}%lhNwb_az)deQ;{zgvQ9k=h~VfCnH2E`^ZG(#JR2!e<35<(h}WABeTTe zTfdgkBZEC5qkC#=NGd7gor95;@zL*Z=hoO%?gnTIO3(Z4==N?Fgp6h2w~n1;7nbem>8U}C`(olsjiNX2~}{VCKfMuwPP6^{-$JIuCOpTYfEje zechbmN>z#8Un*2x?r*DFYhE&4I#f+I-uw-4Q&}Et+pGZSYNk25ev_;NZG1})HC5q` z;i}E)j@%XNgKefulJ!~~e% z6@W5T*3q`DG{^ahbe>(#Osgf!3QzOS;D6U9_qNpbolp@_rN8>XW~Gs4yBV>r@0|Ufa+_#wosl1 zju*Z0-8ycyD+HmXTHLfA#*k*~UVl-C58ps_z*+abn23Rnu+vq!J?V%3y4&k7O zCJ9|de`R9C)e5m;rSr?5n`uO++p4#4B|$>yyWfCp1i!`h)806+sdzIH0kZq=@G*EH zg$VC{X6 z8fq@UFzfHp!evXRvGofc0t-iNQR8 zx@$oN8?0vy_aqiu+#$~X2(i2M3W*(wdG=kptiU@_1?1DvHrA!21{O1s8^xEW#AfcQ ze}E(W9zGW;^AdL`;Z$~Sy>8BB%CwD<3A0~iof*X=N5;i_WR$q)RC9nt#ptma+$7K2 zluEc$#ei8u+h-OXu6y-U%fS9qpkr+#mC5pu<8IMPVO2Fe-trK+<-{P*&MQRcbnwP{ z=y=}H%3(_%pk1RI5pPKGa=pM$J5mg+f1AZ4RF+ad+oogIxPA14)!id}I2#`1VH-;R zVY@dvb2}QMFZm2UHzYqdQM2;g%uw0<9YojoUCg1JW_d5a1#Vd%nkOi_KaJFi7wM{3 zX~Rc)SJ=XzTXLg~)T(Qk*I#R8dEml)uX)G*1YZAUTK|W4fI5B2oM-P%^i4B*e{Ch~)8p>8EuL4zM++WA zj1ZhF_JH)Y{5uTeGrN~Bgw0Pdf8@$Wya9n{Vlfx=?!M}qpJOh_!8ho*!`9cJSp)Je zm?GCOS%b1%!N;~Rv^uE0ZcO|*Nh39^BF98qes}pOq0s%wh~qab9XQ@TC?-RkHh0zXGa|BOuId$;e~B~~C>J!7 z+(30AxrE}(k0%<(AGIq<$^WHq}uadouZcr-&=M!B28 zF3+MJb|gN_MV?M-cvqltS91djkL9|ea#s@@9H|H&&AIZd4)LI>nw|KcfnD|`8RY11 zqMXIwkvGBZIPKK4;uTc8f7xs6uS6pDgerHM4Xvk+BpiDl0GElTMAHPMx;`oUlw$*4 z#3E-GjfVhMH-b81=Due1NJ;eYR5>cE>^0NeG+5Gz1lZQE=2n$sLnuc1Qw;O{ zRZLJ2`u`1pAqsnXPlz?NuG?KZ6)T^+Gn$t|mB`jQyE)Wp;8g1grlauiirS6mQ z^o^XucNUxF54#wSfi=}tArP6o0op;tiQa!Dva@ofr|IHZe;05Pg{OB@?$EG}I|Zny z=;P;&ZV?&TElFs<)uEhmbO%LwfW@$wUFV=N+jNB$TxKK6uoPufCOszz<7?AenSM{i zmYTYw#znpNhVd6+wu`Z)5qx&dnP}Q(rVT)w>9 z{{pF2dfp(nYFbz~FJ@SrI3`7z$gM=dS*hS8mb`9Oe?-k`m4-9FEpkj}DL>huD50*X zUb^wUfs&tW0-G}|cUYy+Y!XYZ{71!zrBN>&SE5WTuT-e|lom}bNcb!EzX1o{r((pY zaKuMDL=%Ht3xrXim^KVjy`?S)S`ja7u(ZA6wLhS57&@@4dnj!=rg~CcP^S6_Ixzn^ zD(9dYe*)ODZ28#Fgs|>ubU-F5CN_p9E;3M-8;0Ix&LTvP?=I-Y-?5J|( z;h*oQVkyj$N-kg|(!4rr>Ew_OBv5f>^u{(nf1JuQd5%&+^G;iy`Q`M{IsamtKCO4h za1=#~*?92$YMZE3HCNX-tA@c&f;DWgpCW-BAF9t_B{n3f3SnrlkQEx@IE=3Rk1NTmTd75?>*MJelR_W>pkV#tvDFqc`FdrEeQF~Il6MLbRT9`SM!-! ze^R+>l~HTj;s1$(M6F9vi+I(C*C$3*3stVWfQYuwT>~Oj;hUIBpT#gFKU)%JXMU*d zrSSK$j6l5-@~M=_T`{(DDd0^ZE|BW&RJ-fAUgD{|~P| zNjg)E_^L0>xQ}{=w=(26&+-qvzzB{sSrNuF6Jeaml6(wDru-S02FWx@f z1_rfg1ly;igOUPT`TLuTUG4nwk@fcDi$~>Ss6y3_+1^sc&X7o1*v`;}wWnS;3--<|LRr59 zbAJ)NddP)&sGMFa^5%bze=57JRIDE`OH!FcEKfC_#SVOpQ_N)VK!CgD~G=p^D?EHUIiC=jA z;rS@D?Pc2x4GP1Q#vO1N`E@s=irsuId2P`n7~vVUBOl(YFJI7Ie?isyXkETvzV0^G zj*=Pkr0kw?{~20c4()OOpt2v>{^ISGzG0l$IerGi?ZHP@d51c3s%=cHBy7Z4{>dnk z!rnK5K**sdC=ziJf`CJxM=0zt5E6wx`~OJBnrInHsp2K-o7?PVltm0Al((*lD$KDd zV}+J}^@~bigpw1|e;X1NeOqEv7!c)!^~U~J$dBZx0c=&dDxzpvwk*Ek?D55{aUuGb z_|gOEg|cJe@~38nr&;+|N8`q#%JR!EMzz+pwmIwPPQ^Mk%zq!E$qec zd^cMK+NiVt1#)&#me|sSMoUxcL((~DQBN$Jg_i`A>e;`%>7vcu#9htWu#w$vD z2MC)Ve*<-Lku$Z-F+;Ht*7AWRW|F^xEKIeQ0dao#KP@*i!d6qZzOX>&B}7 zwv?x!xvIR;vC!rq(2#dz%<_o8OyQnJd84bL=*U#=T<^yEzX|5W+I91^t8WSC_u`Md z#BbSgnO>t(f8EGmNhp2IH#p}*&NtO5f56>q(6;-ZZa^gVf}dI6yB#{J=F%0*i@lUZ zjupMpEDkImrQbvjn4BJoMeM9au}RsFxrbFHsyyd$@PolYUM{) zN)65x7@R0DI1?i>#fGGa|9d+11mw{L_CL##N9DIPe{L%oR(z;kpfWV#oCuziWM3Ig zZ|=2D2WL8gV6^*2Z2mFiUNHOrLoln~j{xXeJyiTAjksq22;!6qq;W+6qf#FR>6D?A}X_`c5wNiRVNU{p0yy zUY|g`Up_cH?2FqgTZnKIuEq^IQ?Dhn#_T)wf7sWmaL-f_9!VfP<3QPmKGSwR|CJUz zrYoH&V2B@+pkVw~5aY#QDCmm@q7XU7&dF-?|BsYZ>-9dKuX1ozT@tCzGg?@uH@5Q|I+r2!$_-jK!HHX$Rr_#{5Fm=VmP&zk@(<`;@-m|G? zfA-Sj|6j0uN8t@kEjj*d(=Hvl2`wnwaP23c(?8;E7eC( z;dae`CU;K`7q?fr)jyngl|Mc-4xR1qf6BVCC^2{QRBe^0ABG}q4xJ-}^3|Ezgt#>p z`u|6GXna&gs+9#qSKA(DUAvsWdAJR@vL}>#V<0#;qKgMQSdd^#yr+M>M#l_R3$*PP z*wAsXJBhfowioGh_R~~A^E+1<@bDsLGLWWma~XTJcuZm78)`a8J6KgchFMr`5%2KoyUCx}>wn5zd zqM&BqdxpuX^a^gg;+=?DZ@7-So?6l7_{wX7nMT$3#+i)%fc;eRjtcy!^|t+#oc12x z_jb&>8GX!~BjmNofQzhs!@d$>e`%vjvacvO)X(zn+b_<08y)B3h`xpHojf4Dt^VrABX zxXkfIRwZCfmVFB_`6Q3di4eI#&x)ksIy7N(7_)c5jXOzLwK-XEA-dsdy=4c!gCl}fAgMD+&5C{sOx&K_19KL4m$xEf_RYcukFkV?+MOOr03d- z^l(tWjD^Sv^QFKLH_n^LvGyP<_h-|-Gd3f|wATBN`MCq0;eSpr@iFwIl{?>$GE~^O zig`A8jx%i9ZKbe|PY0X@toPhg?w^CBp4czp1%}@E_CIoNq_D0`fA_g9BZ?z$V(4)h zh6IM#EFF;riFxvw@-~y4T_9P4blv; zUc~4}5i1=CDXFNmWliBL2J+-6*TS4?gUK7)7v_`{c%YytYh|DxtzU9xkb$a$#D?Cx z8J~ck`h@r@H@T1Re>#n)GT86lCat~h-ad}FE`ioYGo@H9+<_5#*n0wde*8up2G{3A zULQA1WrR$jO6Hia&5XVfurobDfP$|C_5z9mUPP{X`>PEmY)y3+*?&iWnO($qzv3Mo z#P@25UQb`;nQ)jPjWMM$=2PqjmhX*m;2v~|&s}tYm<2~Af70CrLwOt4@#|L6vjdc2 zYh-&!DY7;?Mk{h3Q1kWIk!HG5NuN9NSht-IZue!8^I3VtEAj)_f)yw|cFXUgc?ES$ z{JFav{_aX<`SFaQ3*?2fJp37cC28lGroefe{hd??{=OXM<*=k4c-_Beda<=eEFBih zrXaA^41?NNf5{G}VS!-{DATv<59@E>LpNP_ny9B()K}+xN)Z}9JZr(PrHDhunP%gb zu-Gq&3+f(l{xW+Uw4L9Z{91br z15Jt#x}-2{u%}LooEeWRPCqyZsT04>v4N~wHpcF7J zAJ;K5lUHHzw?Uoe7NDO!OJ8nskZ0=+l5QxcC@WQcpXxm#J>Vw*J2rZQNKuB4&U?-C^}R{+o_DmvN49b z^}xdh;$cGZG9i1JkiE~y3?S9mw^`8ag=&a0BHsx9qYNOnUR$MVEH+|2L;Ao6e>4an zC?E6<_oM!}Fd*~rpz+`uVzq&@!KeEXGEm#Q0+*P3J&W$#L)#;pqjn@`u0+D9%5KpK zu?})w9C(6JjqQYqHVQVR)B59f1=75}zDq)f*{RR$JV5$c&}{||er*Tn3-|h}m+d+S z7I)!<4~uKY8~*w6&lmU3Cdd|df63xE{7d_W&HF#B+%uB!WG;Vt{U2RsaN*bXd}-Wf zP``UVbuN=|2+Nz34g)oN8W`ncR<=T!Irp1c$tz9I~L9WCS2u9Ec*~y0dq) z&Gx2^m!miXF>g3tkaMyhE#ir{k7Q?63nDZ*QYVvo_eS(?_2`|d5nBpZfBV%w$FzRO z(*fYdefG!#?u@yesUe^YxxJ~^sDsx7LNf~zF8c&7`~RTItlq!HbpF{x7h8^`WZau8_3k`1jp$X$IF(3VP(SnOCm6-R}KvpOnR3{`u~&2 zLoaB6X6ei5V-Pj{@EG>Fe?q^;2GP?0-3u1811xF-MAY)*eK6)W8ih>NH}2oSCg)r0 zfc((gXDZHsa*+=HOa;{l)EF5g31ahEnUew;RxdkUS#qpI2>jA{P+0;{lF5WEtIr%| z`jKGle`{gPGY7x3BEa+~df4Lr$Y3U$pqt(*!M%6UKsBl}bLhb?f7{ld%V(oH($tO< z@&J{v8MzfAwtZM;DTJ_DFxwPsc@)p)Q7eHxgaIq&t%+U{m%o+TVDH50;1kcTTSN-M zt|;gIA+67SgnZtRB2uNnhJj9qr`UYkctaE}N>aE|J|}%Se1KpXw+h}~#q&M@H zv7n3bXzYW`m6XX9fAxIZA|Zp)Tlj06{7E*%mh=7v?tnNa*=USD8CG*8xF>GCW$Mo>zDNQH|;1Mq7F{@<=(?3iY=32qc;o2t{V*r;& z9WrX23MIVkQt+N-YI{u2>Fw@n74UZLe*=>e_^<{pQN7#^BY5m9<)kih5c8E(32Lh& z&qNwj9Y|7ve=!NXUsce716&&-7G^(Ohql3r&z%`J69oKZ`Ktc=3~$E&0(tn5O zG92r;$84G4MD|7mDSDM@_!0@52S;j`WRpIAvOns{xJ0yZRLAar7m|0S476IefCIf* zPd%q?L*9rdzpa)S$fg#OA9$(4936lR{d*8twC2a5vVb0f!EaWOR*aF!8AHUHWS>sZ z1X;PrfBeULf+^)M*z-5-owY9@5;4%=&{tj`ZHP?~G6W40-*My-d|bPbVC=nKTVOV+ zpK|WNnQ)V%K1&0$;aZcq`725wae28yrALX#mQgt-GV4%g>bZZ<(g|jl0LZXm>U_1J z$l^K7aAYVxazJF3V1<=A4JZj>m?nSGWW*M=f7Nb04GWJb$&{c?_$U{6Hr@<>$&mdB ztjwuFX*|w-?D+kfQu1I6+O#Z7MP>yyNG2lzI>;p>F_%w|fSK?URxALV_^cYT5)3W5 z9-0ml;s=N?-yb3y1iFl}6+B-`AF>@W9Z)(%bP$Q6&vOzTjBZFQU}~Ls*S}$*A*}X$EU{Z8!IDdN z7$7qW{PZYF3jNe5Dz@Q1@TS-uQ0oo2-au@?XK>h%*q~24(tDG4WI z8Md&&BEW}!C%uhU3!X1)xuPhDkt*@)lDo+~|n8nil!$t+)o5x_OSg)ffud66;-uPg9qP*#H zZB~K#reztqxTaQI>Zq>|&K=?90^@>x;|_HVIwuWWW4n__=^1cu_CqOdY44fCf)|_z z$j(P&NB-a#2oU>;ZP*RU^5dmPf4K)$hqM9^O(qZQiG0$!xpFB4pA2;91HtxdMejt1 z!a?T2f}+ATZxx=SG2}IzA`Gefhe)n6HXRT&qOI;astE+ABS{l?t~VR}5--BPWVX*` zejBu1!yByv>d~W-8S+Z7bH!xnR?mVn{z4e`~=#a;19(8jkR%j}P}ev}oWEx|?b5Jm^Dkb3Z*xMNBg# z|2}vnN2czOOWz@mh@d`)+%$0Q~o#_`qSTmP^oxWemEU)Wwu&(k=TjVq@WYJUX^f5FfI*=1*&iuhB? zw{YvSe1)(r@~Yi05`hZ2YWO&Xo-&8Vm#dyB~O@ zrso(1+JipHAAQ`HdBmT2#D{t0`lXr!zI31BVi*dT0JvIF)JIVTeZjl+4>?EzgN!<= z+4yZexhor?xOZbEf1!&cP&WAvBbY}Ocy@X3@tKbx7TI(o(8-!3-%n7IKpbrpROfQ2^Ixz>L#nih2K#TV;Z zVy1mA*K5tXjVv@QC6?v&=Cx~8x!4wJRR0o-U+GE9MCmM8f5*7%S%WNk!z2)m`n{IQ z7CkAEcaf`XqJ&^`qP|RWzavdV@!NbY0Vk}u3}*TK)t|v{r=4LilrwiIGjBHcpG$6? z-6);e1@62_6f<|VCojnN9*}N4nQfp07?Dp(9B!1IBug{6#x^-XYEKH5qy2yA z+k8==!TNk`e=KMB-l^0yKt?l!y@QzLQ7?pc=xjhszPB1)iR?xR6SZnTltE~JkQo;O z(E^?JK-i;g86BT^DD9V zH-&VsL>;G5+~#b*nML^t7uc*Tlu;xOo&LEcFI;&Ye`wn+%%I-VO0Ozp1u(-deO*rI z>bb+c6RsQQCO3Ge7m}M>TN+4h(#ZwaMCbd(Gg+cyAuTr7)zsJyhZ4xYS6F6f zBV#~>WBpsuOl$#pDI~(N!gf9892fg3KmuhaXMu#gucuAoR?JeAo1 zE!!wZ%ylGaZUoSE8nEm}f1)rR^6C~jD9nLQlfU=jWSYKniZLE2Q)Imu#BBLc#tOR; z6iHIG5fJp#>2+LI3t>VGGbu)3*dd}FrbZs zLa++puO$({iLyKtp*e9sDM0uPf0w|3e8+A2WcjW&=RIzfbOwL}%EiWt z!0L?wjjSiy`qduxFKaD})<)@h7IKyY6?$PxA#H1?WVAC!&x5Ts?AU9{IhLW>oqqgP7Mia)SRRG91rj>1u>#2#P`K5ARF!gADQD7AP9~wGsKB@0e`H;* zM0PvzgszlwoGE`_iQr#}RMJI!?XGy^s6GF5N50hpcBS==I2IVX!{2|2x$zir?s5kO zz+un=J#=24R)83AjeBANAU$u-4v zWPpvSJ_0WxCRqPC#G08WkC6>kn=cg1rit{!h9fi*1!HCPNr%UWh=4!X2G``l z+9>eDa$ID<*(mVGnh;iTwwcG-aDZSv-66r*xCdwL%(buGA%Xk0raQO;4b2mV=%Dtd z(FQf~f^)%TYWRr`m3wdYsyf>&VP!mk8`pM)6tS{V&df?sVQu`*I|ZMbfBP85bQ=aW z2I*b>W5YtHb56hgj3xNA5YZ{z$SZydE$oA-uhq(g4cQsxh_ZFuO1M+o{@UUA0pN~w zGxrpd*6eJa$?vT?fM2plze;>JZV;)sPLEFb(_h~ZRPGwu*0$Zb!~*uHV?9#Jda$rw z4PjmpR3{7B$bE9rDVTjIe|ldp-HG46^aBWoxA@9lp z&5(d1%wwt1qNaPp5V1VP3@espO2*A8z5lg0iE+;i9q0(FUs)O#SZ~8Iu~r-95a4Lk zf1>P!f;HV%Z@!9CLE4_qJwT%iz1nX<^hW9KA8Eu{qc!ZM)4oEae>60<`Y_QCSA(TW z9B+YnykW%HlHR_m*#TzVYjmU3fs#I{ez#-+XFa}N*ZR)ng_%CQe)o88wH27%i};fI zF5$#`)jMqjfBkbSoO{6i?(ls_c-=l?-3Mlj8<3trSP5Mk*PaFdn)Tt`8Jj+ zG5Tos+|`RYTG#s!f9Zwjks-U!TA%V6hR5IVhSLSuJ$QTc%HZl&)dST%dV2S%=IO~RQXoX0?FI|E7EfJYv-zl z{}b0c+H!x@gL!>w`6hZbnk)FYPV=3yE9+x`^%}M!!TKnDf0gGG_A4myhF@!7>_w?7 z@#2{G8u4hi{YCoRSZhpt6<=#;d`0(i7uP8O@36a$f(CXf3Ny(!XU+yDm@z+aHqAai zb2e&S7$P4Dp1uuzvvvJM_kPDRB5SC%qjGlmq@NQV4a476WS>JH^U7kwYT}SPB5_D; zYk7o~<<4t}f2SS=&!CCE_*&&o*dE+_QiAU4&^kSQLdYYsMMGn1IgAWpayhhokm$28 zg`nyoZ=3OwOg$MXcaX?556T@Fzlb=tB_U?VwYB zH5o#1#BQFL0tWqF$zX&z)jUJwXp&`X1bNar6r)wcf0|0{(B#tK(l5fnwgF5lE>lg@ zNV=>hVb%Od<4O~Azncsc^G&@DlTD*a1|?N%HES&Q3g-%MjJL|CO87{SB{cxje#}GZ zL+MR;un#cql zpoDnRe<6H;2y>WHc%DkC*x=FfzJ(c?c&WZF6yFGn#`P>q|E;vo#g7O^U2=8L{ zvGM5Vo11%^YouqnXRvEN_k5P=mc_Q=G)wXN-TB+Z`Z?I+$C1RF?wjl#jeG4!3j46v zn3ma8J#WKu%F_zqJbDt$DJ#>MN5{I3H5GnMfBl^LNZ?V)y*$;xy16+W`XcjD>Q46! z!aeyVL=zX$iUuz9=c(~0p@GSW;*mT4Jb&E813qmqHp^36%Q$gRJ9ujqV!j5WM*Seu zGOy+r@=cX@>lO;5##Q?knsW<}jpuJf4ZKz!R7TC#D(OLuWw+(zJ*#Eqs_H?{D#@y= ze?eg7+H!s>Cmbgn)alj&@i1P_34}e@;lq{z?F>|@l;`sKAxN}pwu_7?y}+G8l=0GDNq z!w5t?Hf47G!Qd$u;|`Sz2|JQd<|&0^f0Ejz)Jq98_9>WSnpnVulTkQrX6w|Zp8s9W zUC#5E>IoNBmlLidE=qa^GO3V-Q zKgXa{?cj$0rYx#+v`ut_TI+CYb)#B4X{&yv)Ft^Pud3!o3bCqjo3-t>*~3q2IO-<1 zpikts<*=XJh;9QM%|fEk&5P;JIT9+ynAk{$dY7D`pTlUaBral?!yNKef?~V6wD+?k z@p(_6*9I}~7CQOcp9~fD21VGHf9u;z1#8{qk{9=T2WYBL=Rl9lZxcpy$=XcG{1=E( ziquinhcW&eu-I(1XA0?9;){pxkK;GQWR#xkZCOu6eTrl5T^oxqac3QJ6`UWY<=Ea{ zn905zwAULx`EQLZif;3ctq<~!$AH_yV*aD8G(TGpF81Ze_oy{&Yq3$Yf8Zpg(hZ{S z>evt4LmVvu_LK-u_d_-{a%X&JUS<`W3fa_=K)bxx#naBlRv>c2O-%Dc>)M5fwykuv ztCPvPcx(dWGY7uNPZ#+V=W>O@iRBkgU^l+M`1J^J2t3?cgsi7^fm%EsZW-`I%f~a; zv?9qP_elfR*{{UuB-GW?f3r(>_Ow!7vFts{T5n4c^%RW_6d!ec{z;S-;(Sgk@hGGN zMa^&~sqa{1-cTO9ymMIG`S$_usGRtZQa1!&)XgQ^Uu5u;n1eM8*<;cMFV=&SgbK|W zd2U@$ab=b2k!|4OGMT)lJaeL*sw&NbK2qKmZ>(ggnzSfD;u+Lme}(o+BZuh3<{q^= zQB%-s=_8SI`}HzbF<55y(6aL+-tHmv*{6+qux2BI7OB+9INlX6>;A9g>>8g)-B9`+ zGp+hjn)|jVnvfCDaoKny&K`RHjE@3NiCfz~ z9@Y-=MQ$2b?ghmAe+IM|cos@I4t?vy_#YR9K&HG!Kr_r~>^wNrT;t zXhIK<(Fn84%Z9FhA}jW%fev2R7D%CdJ-zh8%jBP~kMxr$DnofZZ$@bZaj%%;=ghYl zrF}-LDB5mkzkaCzB2^BChjWs&({Js#6i@4&iC%;*fJ)uce->tgV2`R?s zcgpyX#*H>+kii8l7kG#ym$Qr<@{vPmVx|K!p5>OW_@dPw9 zRs1>3j*oQ=poh*?3cj6Yci)(u3;v7vK;x!cK9m8bfTaDBfY zv-(z+G4Df0v#>-9I*--zJlV~VrP22&v6&2u#j%CGXG?1J>eFdmcjY2ii<7LoNZWo! z-4xy?=&C(#U=tD#?|i$PJJhBHo+yo_o1`YIm`knMe`$1YCN@hSW>jNuj%`+-m@#E| zgc)arpN`Evq9sSKIv1ZLIF1&1Ml^HwdK+MsfMR{z%Bw=wG1f!C=Q59XbfMMI&ib}j zMBRf+y!|2GVzt!r>r+p{yX@ym4sI!HFZak_nzm&|^Ctpkl)#@?JbMeG*|?;HuhX-P z{)VE4e`eb#w0AMt)lZ$u=ynaAGL2Gj{M2}z=#dxw*GbCduAp;BvOMxUp{_zj&J({` zR`$!u(}9ge!@@&zIKbBpES=x0Yd{mYhDPqRiti&Wn8Uf58CQoagyyToLA$-Eyl2+? zFt0qqs%Nv~(!AOao15ZEyPm5=l*h6GI5vJlf63k3a=dnnu436iCACrXE5m5ULx9?_ z+VTe-q5gVcGnJzJQFaCUNZqLI+H+wkj#FYAF8nBtm6h7~(x-r=2$Fk=#vPWEC{L{mz6$^liBd3-1zWtC= ze<`I@qP@*4O7u%tFQJ{LS7rqO1_KOV-cjha(e>aY;<9$9Be*CptZc#dM)tQVCz>N!*_7f}8 zZu^AEZFOWmgEq?wg+zVJ7;}}^{9q=>vF*&4XFTM*RZUE?H;8c7@`+vC@yfaiP1fw% zZo~Ydwy){J-!7qM<>SFeI*@af_UBk=42pbh^LcWGa)h|4YXhj3Jjo!b$*VXQe{!CD zXz^y5v%!ySRzE8@E^y@%H20ET0&zWLCFST(FCW^h{>>t`UOGKC%hsJG_Y6E_7o>e* zb`}7xhG%jcX7cNBc0FF&RQ#bF*u_aJ<}`n1yE|N)g=aJ#+IaYJnPA2f_h8RI%KYXi z^3G6|(Rsf20a?rC1SK2eNi>sA8(t)y$=qT6sJ`Ipe-+V(m5A z=vCd}SX#9N&8>yMJZ^oznY*t|E*MdEHGi;RTH-}Ow0?Ez1jdzz z32p9wUCTeTzrpU1!Rh(+e-S>thH^$}z<#@~zYS3t{?br65oF|b=-u%7k+?rYvzV3h z>-a)pxwrGab~3Sbn2UBeJH1Fd@b2ZL=ccYi72DX|(`PB1Uz?-7wUNm`>r11SJG1<* z!_#KURw}Y29H&w9Gvr<#dh)2}iO3{=+?_BuKBV`Im%WO*W-ftbf8#E$J(t_;{)*$V zF&Z;77VXdR(2v4TH6Tr{YE|rHGVP)VHarAfo+$`Vlxm!}Fu~53g=Wd3<4#7D6ZK@4 zaQ(veagU@YdF|Krqb0k(af^qHIIevKW%Xkboy>g%^MN;EkL~arwxAd$+Q`AZIL_}m*Ke|SN`Y8ZynNJOuH|G z8AEvj57i3}q^Si)Df*_^kp(yRzaonQ6Qu7>&DSJd8z2Bqe-wjl{$uFHnG!WJ90O{# zOGK*bED^RWX_1DWs!UkZG&)Et7ZyLnb)Z+-K3E^>e?UL=fl67^r>@k z^2v8Q`)=QQ_R^IUZ~oS;;WXyk1o=7p_wEI^c~bCBYim-&faLD-m3ymRFd<}*d*CO1 zQZ{v-5EHMoe+G5czUMt>C&&O3eIz_0Yq+~>fmgb7g(#x;?!Hi)OCV_o%HFT+!mZ6i z_Pr9eF?*p#p?CQQa9Zu^t)0Vcb*u47Ru$^XB(7~U{f8Z_%B-b7S{6cTvF|=^#mRUI zSNFGK4^p&WgP7KulirHfcXp7Lb^gaV)T`In_MZYajRwPwePjBMYbEjxwvLw$?|D{qPC62s=8k3 zDcs@Ky)4?`)f9#Pq$*-*#Z|I(&WyThdEqp~=p@n}e`EY0Rej^AtvLJjCVPV6P zQn1C$oa(l`z_id_RAdA1q-~*gnR`h&@#{(Se@V2y(LKYxV|9qT*R#?!%{|UNu5^pD zbL(6p!!;+LL{kvBoDWrrk7daT*>8~~S!?mbg>^}$g1V+@!5qD@Zw-8%?x1-HGpdt? zt(kgB>UFcn$pLeTW~C{=H-vM2esBQ@fLB7eluNc48YF96k({f5b|zJ<&kbE)o3%p$ ze_UHC*;xYLawh&EGyF2rC_67>V-FemV>6Zssv}|uGia6t{C?5J-2Vm@)R*k06o>6xYs)hlLjJnBuC)V0jqPj`T=4N zKUVM*^Tp#ClE$02n9~@3pc^XLjQkYr|9eAg1rS863{}7-2y|-w_P>r0(QWT%Qiu+O)M?G8xNahqr zUDQINqh4kS7GQ#7{?}5VW3Kqhf9bhHTY{sZ<|)ilq+>qgD&7kFP63*{cG=nFt8e_B zs`r8uP&+!izzW?pU0Ng%{P(uBr(cBym8+*|&lx!Vr&N`pysQ^ydeE)6p6$-AkrS3n zh;g%jFenQ=*T&=}*u&e(N6y<1_n!{&Du`2>BdB{D-E|Hl2JGrm$2G~Tf0PTsonu=0 zxE5gUnQpa-7ATqH3@cb?;Ybz`kp`Tq^svUfHF&W!`i4wliS>4v{S+!-kw$N;UTtBn zbYdd4Am=}B;p_ZIzEVFT-o>1L8siuRpF%kW;N()OqLk;6Jwm?)3fJVHlihk7b`x}` zDH3Wk{3YBWWz(F3wVJ_ee;t)907Da1-{4<6Vwt-paOk=vSkQJwDA*N>2}0w;)Czc| zq~+I-^c>P{8)4H!TqR*-4@?U>&2uW!Z_0x+N?A?&)M=t$C*15k7XU#(zQ5d@oH|-v z=s!1o%>7wky$XMNH_5lK9KjSU$9sopk8Vf9T>Xb*44cn?BGw3o{tnX~N`LiQk#*km z$iW`Gk=2^@D#yymj~(lj{fLVLgoi4YhUJR>D%ba@^Qdz{@q-r3Oq?aYwE5P|fUH{h zVrNl!&p82IGFLAG-Tz*3kD_i+g+57RY<*V7rM=wN!7t^HE`hLy|GgkR0&z9UGJ$7i zOB4sWwkR5<`UZh4k>4fvo>oFC?NR;_m>!T>m-a?<{$GO7zCr#Q zx+yn7uCRL4P=ke56|SJ$=y2pSf~;TCc}K+q@+J?6wV)!&VTC&esedX#8O4M1C3hG% zFlH`FT;Z5yXtZHyvDqYZq9Mrx;tRs>LhoSIl4z%F&aEm@Y1*i?`4g0T zC>ibi6+Z@-2LWu(g({)%ihHmL9`YTbn4ctD{FBz<-nj?udzzxp+&8#tH(e?qRZC&f zvvbk|#W}aBD$yC!gMZ)+G}<1K^-u#OBd+z&s1Imil}sugq)qy`hjeJFk>S_$bL=l8Ou~4Cz9EVVgo0B8DFXQ zlv7kSEoa$Jo!1`|1rrhB|3U2I4%j$A{2k!l^XoU7-D4}nFMo2GKMI0^f?zxap9@g8 z@?w>0VhFJW1bBrWA;{!gzo>x;VURE+J7sJ$4;w(=_es5&&9(Rk>O;Q(~7hk8h^1Z0c(MJ;*^yVyof(=tm)9& z@~M|UWYRd6v;#j-Kd?AC9?8xP;5?j`z16hCcT9X58FV4(PUsGr?7a0_c<_0rP8>J1 z!#LO;-QI^%9zhv-%klV?M0qGMQyo{HCsb!V$e ze1Ff1sRr93NlxBAL^X(Ee3C+p(bMQhBg7=xStW~zOf35xwovC}`NZtPa>rT+=0g|vxgxfFK+rtb|8DeMRAA)xn(Jy6x_>ve+0Iq z-MAqTK7bA#LPm`2qq~yQ9ZBglY=+M|SqraAqFX*0Hf(0kI??A}97QzEV_2fmuQ}1J zN&Q%wg6Laf;{-2GFFol{;A0qg!)A?Z2!nCzigu!Ikos%uqj)tb-qp7en#*YgN$3jgb*X{yk@RoBDgp?0x{YkP}3k#-blvVeX$@^UdT_MEI1%E z-ViMvjGfRLTfS1j$mSguYZAm@?a4kqqm}S z-1!{s`yN&QNIn6TsP;MKj5lHF}8@sV?7 zeGjpRrvu}oVF44QVFu&NHBs_M4H9mLB?wC~#xp2V!|NJ|_W8$576OwW8MT3e04|W# zFL*0DOyg>ns-Q#kYkyE$mp*BmEB#2@1d|8|V-pJrP-9VsD*CEiWV+x{7tCc$dHn64 zsIe1Nd3Y)V)Cp!2Oh$XD8&JZrP{OvHSrZo5VN6FTT1O~jDdrP_9>GA^Mc!{f?KAJX zYDKqq*>-Wj+-p+eP=2F5%x7LJ=WA($`S5Yyue}{u#d!f0Kp@j*Jpu*dfgZFbI~35|gWipo*@C zI*Hy1;xeOf3rQF7Ary$&G7EQ#(F;f5C!>=N;b&5j5N47a5orEKo%wBB{ljjN@=Dgc zR)R|4mGg$vjDJ!o1Z9T{K0FwomjqX!O{-#fb$D>U#+#oDXfl59ugNFDC;!Eu{2qD1 zbeM5$7m*f!oAkLroA!CJ#7&qB*e#H)4|ur#9{R!lo~Bvx@^=5KcZl~Nd*KXU4=o>0 zc8TD>)Hqtf$!lzTI5!T3T7mF(ZGXz6IU>S%QKCcpYPJAz!DL9}+)qu>5M{(W}YfrwoJ!M37fQzJ)5 zPnwbQ_1FUnvPp+5w(H z4VH1CHnPlK{HF`(of_lal7iWO>nCdR7*!Q(eM{BEUR;KK=ABH}k)7(qAxBGoAm`Gz8#>Rode4ORv8a94Mm(OW zFMs#ONAeRB#q5mP4o57fI?Ttt?q7$m%G~9n)yB*xB|WQfp|RPmk}N(YkgKpk@xw5r z=@?SV7?k?H9n90@23heCS@Y<|NWD&WDHjKf>!%|Yq<9vjU?W}RY|^YXnJ^}5V@V^6 zP!^=wt5T22D^j@inI1KnR0*pH|Dr^UIDcOzoH!WPPlqf>)gNO_`X^kWdR=FNQtu8J zk5BO-Mu2L_lLpBwbFf3&Tjbz^Bul9Zr|d$o{WSUy=u9XKgt$4!be$G5S7mYQ^DT@- zUM8Y$Q*aK)Z|t}ZrrG3p>{ zs&-^4bG?6BltI*&a@CYBw(w8p-yRU&BCJ$^MUNTbDvofKwQu}p-NF1M`V!P?RkbQ| zp(`2g)%~RUf^lu%h*DrI;hD(kxPQfXfg$$iy9m&-FD7agx%4%v2IV!zO$5hv{E-B4 z$X5`2fM4Kfapw5K@f>%gKtE9$hh;+nB=tZu#sy@A(mz3gI&sErvIWr{2Gsrff0RBE^UX(&UWA3$B0n~lV&>g1hbqLlyMlgPEVk9sHv|N{B?wV>onDTOj z62qCAX~Ug4SryZsy7}7~;_8;+Dh%j~!oLDTS>H(G??g*ns_ldB&|);k@(&}8$rRhd z)cpzDkwRBx#Jei5iT1R`yMHS4-nx#7y15CgNi2M6#$wqf_RWl5DgaACHhnp^eS0eo z%!U3PQk+%sdZr#5GXpXfYCTx?lYH2kw>r~7b&Ma z`-fR_6LeC787Xaj@uDWR(nw(GoL+jfx5Kt8ZTkEMO_bT4>W99D-@URK`C*BBDl3ir z_;2%}71c_`Xt~_Af`1-_9^7UEPq`1UQ@95hm;L%P)w7%|gB@;FY#WT&b|@`+EG>F5 zc3cS3pc``a1HbDB_@_mu6>DBXk4beB_qq2=e;)}>ye)7X`G2Rt$7Dsai@O=l-YxJP z@lSx!@y~wo4{S=9|Ff3hnp2GTo!Vx*~u!@{^x7m1J#mvrL)OeG+ z2wID~YKud(gZ+ZK&}I)i2(MlG0Cd07&<jDyowW~rXK zfi)Lq$#8db&3|4)N!GdB8cgIr+t0c7!qm7aOt>jz&~5=u52rrY>*O^-?l1H6Yj@T%d+=TRp4v7qZ@oMsl!^MN#W`DOD>v9-H%!1_)^J09RZ zq1wJ7y?^OJk+j4d!EgPGxEnF$(0qI4aB8Hw^TFO*)2`v*>0@C_dA+$;n{~lUS9q`6 zo@T)KPR^yW$2yYs7-ghO_i%xBKeD=(b4G_)Ix721?p!B)dbL~r7{2>*(+k7eL;oTf zTcp|;X))_nj~iCW`|~jsgZ?3j=YFeDI|D*ty?^!64X|WumUA@?$j{iNf6>}G!WN$T zl=gJ9yc6&El;5_x%jD@2FTLBI(W|GOtZ2G}SGTmBAYSpP8uSc)NbP!Re|h)Fs^-(w z&cLcPuKxH*+4Y$Mpz^d5s=~8vED+Z%+cvUKwa++PlK9|zBx+fhE;i>_oc8<}YBl&u zdVh_!ePssR>SVl&ElhNCR=o3kc6eQm8&2(XWVo4|^9&MbZ-;liO8756buk9FNG#p( z9^8?mReU@MO?KPUhFU)`!g^QFcke7-P~Bt#S`W4XG+E2t<%`om``Xu4m7OQ`u0{9m z55`@tg+uXV-}dJC8uZUx$@T+mH^L(<*7)ywdKdtaMe@d>y>x^Rn5D*%H}iGiCUCB{w%*iOn>fE zIT3_NJDX6_2to1)D*Hn$tyQNvv1(rM$zNPqs<2VYpitcf(S&fjFeJsiuswDf5)AO$ikF(!iF#8-f^mK`DIH4_k=~Vpp1fE!muk zI$K1j@+4|isB)<~{fQ54uqCThNPm*#vsCbL3#8oe#Lx1cY72mGN?a1$zHPZHzduE} z2aRe2-9jt%C?5_@(!8)G=e4;g;bwl=%DhK<>@nL0ykj#X9hRh;-E^@D5eh{oF^wV;VUS#YQ<;MiDSsnOv~p~) zX~f<)&3*A*=L_Ggy%cm)xr!ByZuP$W#Iba)cFrzTe!vYC4%#A|9a(TE!t}hq3=t09 z!kHy&#BFZE61eXQ5l-Afn}4l&_*O>N%sZ_Fzo{XYPTD;B$=3l6>kWfNielUPx&#KR z<*#+q38fo~*_8aWQllZR#4{vuQXRX#l-W z7^_Jdt4S-XN!5)s$$uyy#(_$cdANqt)tc|{nS<1vSk!O04WB|L+qNd#;j_kG$nE%m zlKLjS=oNvB0j*lJx~MQMsY$6JZMTMwA8ce=Ldw}3sz5$h0E zU3<_@8h>|9@k__b8NgQX5%Q~+`F$s*iWeDAMYOIt?I+D=RDJQF>4_tky88Wubk6LJ z1p|hX5NWv(t{i>4rX*eYB+?E|vg&l!^$|pxwK=ya?g_E>o1> zxGhl*DXWOI6n`1vUffK!d<=_FwN+nd8^Y6>%H`tC$>N2q9m%T`;?o7w<+|idb8`$s zHeL2_Q!D0X{!d1?_Jgg<-K{NOcXx=(3z~1af6N!%7Jts3-s7QdndY254*%N*(FPHB zh#T;EwfngZ`SI0V;_qJnW_z}`wda-9W=ADx{G^VK2E$Dg1G3L=ZKvv4(RI-Ds@hK` z9*samCu~um0FYkFCR2?@MlODmEfh2lZwypZkycs%&1=dHnSQb4l;Jt%7S@3+G8?f^ zW>=ZHM1Pa9X?Y?18ux&B{-jp@XNewVb%_sPouGqLrdTGex>Yx-i6Homt%E_NCP3ho(2B z5M(E3-Wg8WsPHVq88tI<{4>&tf{(dKi9(jR4}W(b%~0oEOdzdF?N4^Dnw)y)Fy&N} zQl+e#`XZe1dO6jJqo9a;V!2)JtS!z@7q56IcOuk`fmwFB3_va^DJ!qz>fZ)LEUoyx<1euasK^(yTX0~;!HlRujz)L{ zZH#8eu#c0w&#H`>9^An=n@y64XtELuZ`9*n5R7gOpkFkZxM|m9^J*p>zH-`q-mJpz zUXR>&hW=(aznR15O)Knf^`4vdO?Izl=zrm>Bir{&6zuNw>6`XUHZRubedp?(=S`2O z?Tdk%_SJ7g|9{`rwk{oa_&q`xfq3gIt1!*J5KZLv^5Y`|L!YBt5 z(Ty8PO-8eFVz~LH-K2jZ;;#e?p+Bxs9)y*I^mVC4^n~Pd3yMGf;^sZZ_agA}tAFjv z%})7EvfvI)P7-SVd-)~8e9$qb@i=A=+yxH8JxXa0)fSpdNnqNxJw@?~m*_28Nv|pe z8tX!6t!`R$@8`bCBdYB=_1=m)QBCuRf%U9b1v2ICS3|bwj>$ggBdjg9CHDC25ac-u z!z$%Kt+ME0%D%!QZ0R{x-3lI4Ab+n5LY6*j2fzFyROvO8JHEMh%-ClR`I|q}BSh&r zJVy^6cEHu_XHKdM5>HMk8$}d>r+SB^v;P}EQXcIY*z)+6Xm6v=ll!sr4_%f*K&heM4s{h5RC&WB~P){E!D?!_@Q z3#8RMF1v7Zj)lothqF3k0zVtFU*>M3(P)U80(PL2ty|Yj$G$Xac}f2yBW|A!Nej(; zL-IbXexxqi7;IvQ%Nk9%{D1e3Xiol!ynus6%ElsNXN9eq^8_w#+%xfwq5x^bzNGPu zcjJyc^FyS{z15w)(dKKbGl*d$x&_a-W9b9k;6hogPMh4Id+tuYTMy%08S3mK%%FQu zr+aRUqMjrsp70t}WCzmRxA8}pacLuR=_Acw?D*s!dRNufQPg6%{#WeiXMg`z9{2FYpxuTR_V5L<&4yNm;}nO8WF_5&zWE^Xiq4BThxanvIm@wrrDeru zkgdsQV4aWjT8}hZi`ow&Wu4*#?_pLgC*0v0< zYT;LcFY;?RfPXAuE2et(I<$AHU%Z;P0n+!ZcgD}_FZCap@0%Z;AA_HA-hta!(XS%= zoLjuByo+-;*kG_8>zeIc`G`)Yb&VPUzQa?CDA?JPSoyfT7RP$n@ zAK>AjpJijBunfe!M|_tXDS_lx(F_nY@`?$xXFvg&Q^ zed!IXQQM0Kzv{Q&^6^fFP{#jK>+lcktz}~YWrb*7z4Moba9+K$)wK63_j5nz?gi=X z@6GQ;a*2obXLd23zp)a$mbms1-LbrYY!%p&$$#s_UzpfJ;ldvK+1Ssyg)|1|2;~U> z0M`J80)fO|_&FyN=&e0+)lG@~F#R*~u^BoNUJ_0ccJk*W)a1N1lY_E}tVyYNxL4U{ zX)XjmC4c#cxB!43OF*4}U0^y$OOP@o=rIs3Xsf3l9g8FADGtGn_8wu31FP+q(;j>4 ztbgL3O*Yu4(C&eaS&JeYV+PhGaJc?1|JR8P&DO4*w`q&Di%g09HRz?WvWtm}3)_gL zgR4tGCkqz|7ruw4i<*m(i`4Vf_2%xN39M~z{;vB2Ys3?V7KRp*R`g?XNF2*RPKyd^PejMW8=IA_bizRA; zIg&V((9i>s+gS!wh@{;WLdAwA&+bFBQs6s8GEW){PT-Ua_>whTg zAf^dfRs59he{A)0aLq=>f}C(W3&Dv*2}=dg2$~TXzpuvL<<7=(`!WL=E3Am*U+#qV zWR$SV1+aQ*GtsY2Z2g-236Xzs{xW-RQf%^Ma%FP0Gizeoz@(;I9rl_(`@NHJX-MMU zO`RR}g?#KgSvZO4Y3;c@sW|C4(SKw^6-pMy3#q#94t~?b)5NI=tqQk_unM(`<_Tx0 zzaXDQ%YVy*@ITJC-r1yrkqE&J??U_dc|0XdyV72kxd_#W3$1~ssepr)B9n=&qLHb# zIku&dshX+2S=d(7M*E4Qz}?{H;#lJ*_>gi2iSB=I(hwk$H+k}e?mP2Uyni1$1)25J zv5r+i8%+fRU4a`mKV_Febmq#niTvi33cPxPz$L5HA9cp_pdj)7*HDLu4bdD4_Fpbz z##CbymfU39f*D3q_Mqn9907bjiq{C^Fy;!oj1`V4S%!pK;rm}OK9g9z54`NSb2eZ)lc`3O^{ zl@$GnLb-i}eFV%Qwl;}-6wlI(SqHHEQ?Z;=L`)j7!C$vP@^2%wHZwnk=LvnItaD`} z$cjN^d8AoEgf5F!{{)Jd@aXqw1AlZ1i2FR7nUFJnxcgpB%~%hp27kw2LU>zCmE)L3 z!K@vbT$o65Vq4-^o|5lWP`P22P()|hJ2^WQqh)wzdY%d$s~oGmmfP3aGh8@rooDdT zvKw<)7j{mmPO0A4*;m~eH)J2<;T)ujc!TuX%;0PN-K|lW6R`Hd9h^td!rR5kqIA$` zinTn^T$OanN8%bjE`K;DcAs^xQ-RBSG7QBQX0FqKD`uQaV#$nm9&bNIY8B?;KR)De z^`SYzAQN`y1{oY#s27iba}y4YEj*4x$9bSaBvj8zDvreF#@ZfX&MacOz4!Q)AAia` zA2~$=m%mcML>cLOM06*tALAPD8ZWE6r8mVyF}Xgu9!X)}#D6|~ooYYH3ETZ*Z=Z`m zpUvuwp`1#aMvJAKUY!CF5qiXTmt!00I>Kcj!J^H&%~A!H#APU9Pisp{Z{_HH{<+dJ zDb_p}xn4QDWTKzsC zXuTqlx0SZxwxzbM3SPHAQ0hH`f8*TX&|)2M9&$!rv8T_-=$(Ud4oWqzD^xvMHrDHe zV+%;baDVF__hYi318Pd9sZ;f&O8)BIWGJg=cy#XaNqA-2g`qtCl#{4%GM~-}OPJUw_5+dDzjFIZ}S3$Z_@wqmKhN#9_AldmH1e zL-N%t#=P5e$Qjh7yho}>acBkcXRvLub+E8j%YQgdV*1%N+NFN*5TXm*8$Qau88nZO zzDMUAFD7w=sn3|vE+jS(OL}mzo!D39M}#-ROz?U)@>3VclO2?oNuW2gm`1R1O+H-x zs-?#pM&rd@=6s`K6$BJ#NPT?^SAu`}>Zvz~%1sJ4KGG-H`@#6xX?fm7&8~eX)R-lM_TO~K zh6Uyg!2CkSTW{$~y(6;KxSbu3Z z>98pV-)`kRS;TwI@yA^AspXTFdkpYV;ruc5@av=4Jlq`G(tfdpr-<~h{8rIT>r?VG z(rI-0!2I5?B9{3+@4fw<^JCFtV?(%ovO8sZ*2}1?x|MM=)ggub3NRtCU2~**cOrR| zD^d};WaT!#rr*hrR^h+I*Kdkb2Y-h_1Aqm<3aE)x<_DE}$1-g!y)6v~p>Y0o@`=S( z$5c0C;+v*LK-sv9zu_q{2>!$*H_R_PQrJ{=bY9$xvs8RiqApicZ7g~p)a5K+QnoBx zQ)}%oGk*yy!$DyzcjDjDtSvS3Uc^6O_v0EaM^(=B`!H3>zLQ;4%C4vvoPXLc4D3SJ zY@!7^q^;smXsl=uUmUwd%M}>yN+_#T9HvZuo1-*(U4x;iS~(cMJxq?ojN7C1A*8u| zcuGu&EJK%PE`GQ8E4iqrojQFC{U*Hoy0qWE$cn0LPkJkLE7{9TeJA;}d6W)FzfxCm zn`$0#)_yVAw%exIUMs_S^?&lf@<{hw_mF;bdUg=bcG@?4QngXGD^X%yMtLffypqFN2g*uNN6JKDPvctlNT+4NfSlI0~|XxQE|#;aH}=$4h!$E%N4tZdjW zS5sn9=H=#EB<#v};(y%Ex~(rB$c+&9RAc zQaCA{(`ahfcJImjRUM2C+n>ptQxdSERM)a?(=#7rx0L-`vwx~U4nbQMfsrDYDw8Ug zs->Z_TEt);)6LLbm*b*lC~N5LAx<$)pV!^^EiI`{kYRd46%sjOson$6}j zrA_zl?di^k7q2NvM*&0q!mhejhCuJ1%MJV=a3z~yFB*q0#must8SOr2l)*cngkvs; zDRi_8;O2#oCh9I7b{%$dqd%9Fqy(}Q*R#=xTa*bKx_?ws;VS{Q0AE9sHLF^xBbEm-WI$LGQE>ZG*Eoos zSFru^L2vFZ zXO+c2Q!R*T__gkCa5iHIg;p94oJJB@?If;Oy`ii4^+bt2v=0ufs5=+B(4ab z+kaV*A3z(AJe85q2~(o>sF&+XomGlmE9>Xa0u&khWQ61oU0gKSwVC}HSE@A8OH+Ow zLOZ>Io3)9?S+}I8nyg*_Aj4 zi1SW-;yw2oh7FkIKKbsT41(gHeiL5f2rN7A2k2OdBM5m z49I%Nec|r=)AhIOFHx*@tTn>u0sJT)qOhI+#_z0Lw-Q`}z_UWPP-AAeNPmB}yw>7Y zkq+_tB2~gDvn6K00G=re6P93^k$nB%4t0BN`)tv9t{JZ1S@RaAO(71GO-AW1(T^w> zl!8HziWlVr?v2%^+Jp>^+6!K>E?RGGkB$W5Z^ReLA!rTSvtEHCOJ3j4a!=?2YmGGo z`y#rLmt?E>BlM9}ud;TWA*4(9;Gi1Dz zbh}7L#Yf~LYk=yT`h|5U|3$aiS7MEccku^~tp>!`&vF{YWU&A8QD)Hq)B%wAK zP4L|r!!w3ZJ4#n?PTc|2e39^zkj7v2NJ*8R7az} z%K8(k01@LwRmkcpQDwnrhru?zJPqYMN_-W~)T)SUfC-MI4M+2o2^P+$H#=vURdH9B)f6iV<2k5yBUPB=; zcbK^(me6$=rTnIVjeief4dIn?WjvJJ6CnS}xSbvtO=yVqzCHLGd3xyUcEhE0*9NI1S&?jByw!2;GwwqIi<|Vuc%`5(q#_^ly>D%#J zzOv*>tQVa>wPpvAl*XQ(7{4xSi`$c4w*(B2pkq+TkL8VH>RUqY_)2l(4 zYwTj6jO#*eq<>m|H=s1lr0NDcvz7c*eX3 zxIKg4+l+D|XhCip2`0c7y6?hX<#1w|as9jszzf0)%zxh568K8qv2Lp&*otkWdsW?V zzoMfY7e<%&YWc%+b^*(I;J^+r{j!O(H;lIklqS8Ga$RF>AZ272m+cZJr*W7|pgoyN z5-I`NC$Em*d#6~7S4*X|qw-L#iUssjN62E{!SUlMKT9UaUB*cVDF9Kv6n^S^@P&9C8%O^06ge(O_9_B%S^f$&OF16Fd#ZmQ84W zXy~AP`sC zi#tQh)!mbx&o^z0SEhTtf7aIMy zP^T6@w|E11DLqzq)Id8C z1H{XpA<0WGkJqZU@@Z)HhnhoU*`X5cLo0#?EOTSaHOy7?v7r-h>au8QkyK;$vFSFK zsFWg?1kXbiZ6pF0Jj4xwvUsZSJc5AOw|`iVKPuSFf)gbGQ^=tKYFX<+udG-HZ`F9jt9UHIu~qnfSl1Xw%}$O*?XPzYT@0DE?+~w5pHt zg@0NuOjuKZz31xP(16f9*}^&dp#W0B26I~qTwKN^1&#W}!=(9kVR?^P_p!HRiGK?D zOO?(NkjBWBXuQ!)2UU5X>N(OU<3mFIpQA{M+ z$Bk-L53$7HBVMo{Q|tsehO^-&g4Gjv7Aj!K&=O_2>=VWj2s-*W3f0FH6a0(=Hlmg= zVmIX&5+`cJQ^P<5-E$RBYt7YbbAN;!`1r;eZ*dRX?EIN2#QmTxOO}UO6|ipy`MHKlN-PNwV^Oyv_g#~;i{3CtL)jUjTdV)&WY^= z0dYrZ5x9{>;`OmDZ?;U7X;{pVX!%Pe^T`+WA{fzy9^@T}hWUC5s2Z~==702RNR`RW zz#1-v?`h_7laYNMQAHy2Hy8^(n0b=3^EFFT(1^~2YgHA3(}L~!omGw{i_pt0c^|XA zCpPzTCF&cuGP9KLi6??gy|n!9WMDJSLu!6`&t5-y?aqK7?#$v>42^M5j4DRH@OJoOU) zP|%_%YGKN_n#L@|iTF_Bf_-9;PWJFhmrdODQyg0m_4lyz=GjfjQyjlDCfa|xC)%@= zTii{LN&`(>;FJ0oXDKaCDk*NB7jyM6(*Br+0U?c$K^Z_RL9ZE8R#0+He2rfCVe5}s zz#~powsu@s=4n;3c7N=t_~4PA1~JuIXg8$|bi6_26}d{18nH@ZTF_K#$pFT7?2VsY z_*l9fE8;6=K1#Kd;VpP%vQ_Dt)u40qH|e|0rP#+s9JLGyyVb^t)v5d?{z&nT!#>I; zihdytrTZcR)5$Xai@;P%9!7t@lMy6^%nW^ylwiF{D>aKE2VOV?rzL_2fJSPyiKO4-yF0qAoT{zcx1Pm zzSh!didK+%17)*>e&Osl?H?u^ySDAumQ(8|g*h%Ucz^HubH*-EotrGidXGUPbJeTH zkZAZ^w7afQwaXcFB~Od7#q=Ihhq(j`K(<_=>yV`HF?A+Gy~-^BtzeZWSV}Mb@!ftO zwJH3x*A(m1NQTm{5+79wE+Y7D$Q1(r7YSzp)JXIE{fFa#0}gk0cXv44-QC>@u6MY* zySux)yMH^u-Glp|-}_cgXSzS%o}QWAY-P7niSpb*4Ox$%>P}X)iYiD4^aD-)(-nmL z0M^+N_nL5!F-D`p2V{`{umow3*(*}S`^CP4p9yQ!70Ve7rN1(&RhEfWYA6#(eyW0m z&s0FZAd+&f7si(!MS_7hjIy3yFJPG~Ng#nr34haAs>nyuEtWBi3*@zCVSA)_RM{d$ z)C^8eNjuYdF@KOIhYNgz-I+b(d9i2Y(6G{(eH48`$SdpT7tbO@XHP6PD~wp!>u;c@ zgbxstO-+GhIF(5(3VVOp>I~Lho`@|tjq3r%>}b(+aX z?tg+kyQDbMXBc)7r+5A(cyI6@zOTHu(NO+HV@PugwSW2M9-JPfFis3I{s7L}R4d z9A0BE`yBeZ=-Y_`;m@vE;zAfKA@(yg&|I#8SjtbHbR?;{`W+Mu-*3WE4{Y^r|JxGlbNpFKRM7QYcB)Tw!x|%_8)6gvHj-&Q` zPiD2x*57T&%lx;Je{dN0e1B8&_OzRudKJ~(2)iO-Ody=%LeC}?dJiO8w0@{r>-SO> z@A5-n_Td_U8~uSF{K0l2m5a~I5>kcD8ODcg0h0;e2sLd`kw5UqEtg}K!2}8tJiy4z zfYX7>0ph(2J@psq4;F)n%w8P>u-Z9THI3lciGQkpgfMW^U^k&Fp?|UdP4%i7aMZ>i z{}cZ659*>R0$EUK6nzHrp$}EOoklUc5BRGXk|oe3Qt?`j5of7Eg)xVYlE3y!)Al{^ znbM46cOv4#M59JQj*PST@Apa8q1c9}^_}iiT0l=jVTfXgiQSmpB)9&H1G^(4ap!2I zUxv7b)p6iyjWYAU%V%f}K{mqELId?71pEz=X`T2Ni|vi;AAcg0OYTgXh(7-N@Tb)v zjw#=ctP4H{!rD=5#{DmM&!u#9Y6rMrS|agLG|&q}kb(sD*>6>Mx6GJKmwsKpo`&h3 zQ)3-%)6q4fEvhneSe+E1r9AF))0KLAHfJGkOm0&=I{137Jao?vUQDYyAbPQ)a%sZ_ z_o4+dx-ea`p?|&k8u^fz4osp#XSBAtO+NJUiIrqXt+Nw zMh?8J*zFfxA?-d7pKN}zC)D>HeTKhfAy{xr+D>PiW?fv^%KK=Lntia4kK#fd4Kj?W z{#;xlS3ER_3UL@rEu6(WOa9DbIg9*R=B4&TD|iYl@_)j}^AO+g{(tTLOMXK}OV+jA z`v`I{NCY_9(^R>XVzVl*oe^V?&c=OK8CcT6m=o1OfHqWBRRrDK+!|(EE0^IP1UGU~ z)MZoP!tK}Z8e>b}Hr$+yy%rr0WrN{WO_}YMPpRjc=bgi+zuK#35F!<|Y~ybKw!@hk3M9=1L#|9!&6gL z+m~}RLkpzar17xet9`ln_{@C&oEO$^vYd<`PJcw-a#?(VeMj#ZxCXtwkGd`~ywJcr zg&)B_y)QXW>YGb7dXyH!M-F;)XN?8+87OTS5ndO<-S}wn z6;H`BX1Hyy-JF`OSTc?&+r7NcQ-AQK4}aWm(^%2+)auvseBgXSEvv~tE%0k)^wIM) zGhZA%F0PQGX%~?UqZHY<QY{SH2JRF~t z^4NxD7p+Yx%~Yig-3*o@-O*-hx8xgkP7kC@+q-hG-ZTS3+f`TqdjOMq^?jH1j&|E? zu>yT~=v&n7rr7(2@a+V*o_4jo6I`y|m(N0UH1G3JA`dWP7p&v=)ut z9dNxjQ`hkB;TqRtAh{p%jN}_ha7+a&87Q2opa&jbqqBd#0-jwy`4@qYIrT5kUGG2r3}B2ZK`~Y5(^}%X zw`9GG(8rjwL8Q(y92g_=?^BZMJa362Z*6n zbI+J#3gDOWP)<;-c9Bcr+TQ6(QL^Z4D1oAUI@QWd5zXkIO;vt1R}Ccv;~!;- z#-!en;bhzSQF!hd8uF=TC)b){@zYvN!2c}pE3lZmDtzMGdJO9f&llaLOks4( z=+M`zr*=(n!9}ElK1~KAqNx!Y%dSvmGYK2Sr?g(^e9#>>IGs&yqXU4Uru*8?NPx^#aQgslezqw#vG zcE4nvBUt1MrsRoh`sIg3xdOvI%!iJb9=TX?kP{JaO$2tUb1mqPW=H`Yf&=Mq zr$|QcPVLr%4l95BU+R-vL2xIuU#p78r43IDu$dMeS`O4T@~Jl^(9mDOj3krLurDd^ z(e?1IgGVUIL8^weC)Iyd*t*9W(M?N^`PPe&lqgrL#gof>x`tIJ)m_^VH=Nz!iaMS4 z?KCzrF0UO?B9p?sxnZtDW%BE^7a}15=Ld##-p~jEJDJdd=(>%*TeFY_5 zCA#HsI8(Da#Z`YHo@FgL)C@&}O5_Hkiq(IL(>Zdt#lr) z7hB7lVY{icz zY(<}MJY9c=q#E-bR$(hXlp`%|e`k2G<-azT?>$vee?q7Z<>c}r(#e+3&ATmSjSDC* zz2a3aC!ngGOY#BBWUy<^n+!S~g;WaDEALPzfu<0~| z_bHeQsqYC?&|VRCpTl^|&h80@Z&5s?0NQ{I8?}F>R{`~riBJ$P#IkMQ{;4JFM*`DuSS^51acAglzPfZ=TPc7B&h=$hZh*q@I z8vaTcT~P`dT0yViS8jF87i^CWEPi#c5%JMf9jPfhdtOm-@fK4Z*;ZJ()l|j%qEN-_ zsV?9D`c{usT;9*!Q`p&J+$@y^l-RCw%F}&N(e5XnF4UO&lm2WNZsM%>RK`rwwKR!VvML_3q)72g5j!L`g2y#2Ri5!#eEyJ zu#QV<9MLNhTMOaU3(J&ztyU#jomS-%GU+L?xG%v}q5W6J#7w_bJZ#0^EJ`x(pZ30KN2RQwm-PveHE!DsQ76jW6zplYzY2drz{z{0J9=6y;}(c&6&p8ZZo{oCniQdP!r6axrkwM0h&nRXY;Ps=B`oV)%bk2uB%a zY`{S#RC)(z8z&x2`y==XnICuZwo~P|Jm3>D$F{sn${yHUu4KbDE=DC-QsKj1iS^` z#Odu~N4C4%4^aJ1cyWIv(~PBj$MNq$j?snl(-F#>-=4vIDZJ|0#G@>`lI~_Ff#&d? zN!OY;v|eg_X|03Efg0shflcjmdZjMmmo1qxw?UraMbDA01kEzcIL!p0 zARG zH`&RZpZWD>K}B`7&zINrjl^%TdhnyVv4B9tAEG8b+g{>@p%O@zQdCOi5^+j}iAo~j zi2;dXB34wyN+N}*RK&%htV$vxgQ!R(#0nw@gv6pUablDF);{Q$ZN{69Gp%2nOjiVK z0X2Y`?e~AGZ5`_=wv|l4NBkBp7cLhz7gj4K7fL14V?DPMzmsJ3`d;y9l7!bH2t$oF z$+zq+H6Lj%dT!Igw~;aZ8bL(5Ky?>9Kxl6LB-dhT=kRmgf)G1mSv067JeoFV`%UU8 zX^v^maV~6bZ1*(ot}lJB_@pr(iG#k)QPSDWIr@L1rN`LWH;2ZjS_H$xOqwQ=T_gqL zigFW4*TcuoS=QNS?iZ63*PQHJ)sXDcdBH{mxkyI7*We_5=v54UWV1+&sC*Epz&t3+ z7J;A?wSvo&XdT-&LM}oMr*Nn-73Exqi;LWBtA|ewk=1Bu{?Yib?rin%&h+YzhD0H~ zu+e{jae>i8-EANCE&=4wRk-Y}_GdI1M3D5?X+i)`kpQ}@>M;QoU!6|f=jP3Q?@;Ou zAjn!&jE9+Bn%7j`hQ5dF4da|4-K@*BtLSujV|l}<#bd-%{DS>j>l&n8|73+=1*&-& zw`ir9b0C^?fS#)jv1rAZbKshDfS7Zz&)dna-y+#6QZx&d7yqA_xd+({Py)W%ap-Vuf|OZo2`Cq!x=Rd399H}>6e zL8J~*^~!%oQ&hblnLj2EQFjdGz>#VtDV@+L;-8BI(qQ<>{oUqRCYEAGdJgx9>Ay*vm3-*}Uf zMB2DEk~S*qTh}X*`-FA@$%{7D3vJwPGf5v8eQor7F*!{T>}?gNy+B{HU&DXjQthC9 zpLoJ+?7oVJ>f36J98WLM5Jikzn!1R~3j{>lo^rO^zbB^KvI4i_XA=)|&tnU*rwU+D z`r1dmTm19a*Ob<)`X(9i=P#d=vb6N&(_VouO*z>-jy+4da%w9o?R{An0(}#YkmMtG zad&YH+Do>Ht}&kG^W6&;Hn@MQ=q2z@6scgfgI4XqyOKwqovhs~UDh?8n&L&C{K`DS zIqPIMp`7A$$ZMf%z~~Ld}!Ivjr6n z)OcS$O?81ywQ(^0#D2tZdqtaeuywhm-d(lbR&G|)dF;@4%5U5$4nTjvz`e<)-MHf0 z=ezDo+|ck@@*3LE>s&KO)1kEyGZ;%3KzU{OvwVnQ%AdN7=kCrpt6VJEIS5;90%C9k&GfaOGtru@I=dFSeuAfOM ztd~!&y5Q!v53ujDSC%!rg|{EfI^UpvZRGPys~Kw%pPV|m+V`5GKDhuMSXNoy$eeQ* zn3UT4osw+}>PK9sUaRyWZfkBs=v%vX)J(atzsbZMuDnP0GziS-?__LRC-<~g5}BL4 z9D*u7o!qp8BqV|0yO|6n;Aa}z)5}>gR>oGOf0vS z95x>}V@%Rf(r+)jg=vURcp|{aIB5Tq^mzDJ_78sx7?qv8ex$ebZ|z0;b@^WVyc;of z<=WXGPs5Ssb@0cXRWU@eiX1fUxf^{gaV>Z4bO(1WQ!Ux-3EzUiY?HZxxq+KOj+^wg zV|V$Vh7LvtPKQQ!l^v5E89T3+=JKOn4|(Ywr5&kUJ_`sQNWk4$N908IoR`_-ZgxTi z)C7OlD1p}E-ga`&g6>j7`NW_>x0h2bqXxAto5mr|z9rnU8p1F5vkvWbD@KJT7EIXX zwh~qQQsC^$FL>DK-_g*~uyViU==C- zZ&|N_w`v}8oC6~%x$2ay!d zo_3Kd5rg`~Yq3KM)1$3+BhSgEUOeIfi)sR)8bS5R1`h5d4hR#^V<{r$`l!$Q6`K3KxqLvsYXwR50NJ}d^iy>SPx z1U&_@LuK^y3`~)sc&e$|-!ujzMC25B;A{fCQLNMZDF)2@j~gi5n_bf|yA!u{mKBx} zyZ7uScpS5o*Q<6KYxmIBj4OYNgExk<>*}n;2E&~r55zzuL2*hmYvp9B6W%lcx8tj5 z6$p8k2p3)T-P`Oq06|&Q@9>{i84*WMTQZ{K7?s_?P$I%Q~|rwqYc{SGd&GOQBgZGU)&>N@Qm+uqnj`RmV@&h<3^z-v~7 z&1DNmy{^SF>Ke)#0hh)sR|(^nOd*+*O!tdLhfPZHTGr)sx}95H$1h+{1@Nod^Q+_R zi-G@0Tjlg|zvb zVtOeX`SNPkc4xa6=T~8SsO_I`^IGYT6Mam)w=uIVLo~YD$;^M)P$$>Nvpr_4$%6I}8(3*zv)Z{GLIR^2E)WVF75J3sSWc1mPC^{~Y$M0HFu=G+Euk>9CYZH=Sh{)+={yLbvwL ze!RV}%tU|9!1Y+y4C5#4+?~&j*;aB-z<+$WD$PvdpeeW6PAu=JY~pdb2dC!GUJx-C9wTU9wmwa{IWR+SuL9Q(DsXi@n0kx*!nr(V{$!y3BI&BG!}P3} z|2b`C!RkidM1X#uZ(UI=yW@pC1haHg9Y51;*63f-6gE#_Mh}a-(Jf>E_HMqUH86j} zG0Gm~7n`~LZ|HI%P;JIs4SJJ)&fEX7=8{|qm>%{CO+}?B^W9BC7Zz6w<)F^+=-NNl z@H5WBASn3H>Us_4@Lg)W3DzAeFjgg(naLWFXAHvCKV!73X=UH6B0Y z(C8{2>uh0T43PviHF970EZz&F>^X9v2>#8KH%k5K3<)|+{Q_%t#CWSm3vT#f^K*@X zb~(3*^_^a#&}7$-_R$WOrU`%0c5dzf8G!c(!5fXPCS-VHW1w&DrUzQ@i28hs-ai{6 z$EVLkHtd(eK#nv&QnxC2H27^JI`i^{b+#Zd;;S+7i3G&q2h%NMZAFk7AVW90K-YA= z!y$4&_#yVoqk$-jF7|tIZjKX;{oh_BUf3c>sLtRFtJz@raaP}^dOI>c=B^21$bX`iPH^CsDM9&U9?t7)3H&#F{v{J4*M0owsd}ZV=}{ z)@VC1)6v~!b`!zw=k|Yp*FRNFnjm%HfJ0Zj@m^skv}j2_2%B&roFk+g%&MQyKAwd} zd9pjdSA;rB_2Wg6v{64oGTw%mnbJX`7@dvkla5m&xigvPYW+_ZmAw$s7-YB=6h^PI?o z)==QrY zTSl%n?`>gUtjR*^0JLq>@>FHhSph*k5A{QjS`BGa#BzUXC(Ob1sp!?-mORx?q#_7c zxPa#=0~NS(D0aOe1rLt5P(FlckeAEF==NTDc~>me>IEwMT9n{#%bgIsN45ygWd$#S z+p1fSHw{4)FPwvGNZ?XXuvmNrLQBk|$(Ars^vK%y1)Ztz)9DSNEKtJZ5f&=vqLkN^ zk#xB z1{!e36!*XcF=S|Lk!P?kSzQXg7d&1GNZ86|+aXG0>LD`NE;>BWcqTF^`UQrP{R-jj zCxoqSn=p~1Yf|13wdKtin>Jb~uJWeh3K9hF=EHxO7^$<{a$AWH=UBD zAFnC3$?|JeWv|674g~^c-4)~X-B6#Hr`eg}2g+Hy|HQ)tOz|Hc^ybl zZiRme8`Dj9P5O^Nd4%60?bm>qms02)MuRJ%TAv6(_oE6)G|T>MkXo9kj{aPFVyBQy z84;u79z{MqJ8!#xiOrHTYXp^f*tUbn#h7bZg)hmC=N>)7=$AXjUYWB~aK&G8QcSOm z5sx*#cC6^!;DqlgK$?$)rn}74?5_ZZ&vAd=Bo9rUA$yGjPIj+SzW=7i_-xBz;H~@A zxKY5hF?N-20jVV7mz~r?%E>ZxL;c4Z3}tLT^oJS`*x>nG7P*Hw)(1EG7s9({w8Zr3 zbMKgrf;3iq!Fg!&VyJG~B1udV?KP_}qPzfkSccX_bc}E8YZX2MnRK%vTacGHE(d>+ z&p(Al^TxmIleN-#NV%!u2dy>B**nzl_6UBapEI}ltEo-Vo9(LNF6Tx(PZbkeZTe@U z8JHho6WAeJ;<(LrV0tRavfXIWH##A4IS(@1dZ$Ndj23myGI-EiuMs`g#x^E~wCVAX zUnwPl?V*Iw4!`TfSk@y`R%*MYE$hll5IPv_)kQuhFn-2ze{yiyVmm~Jq0Sa*1vgR`8x5u!U= z3yx>?Sl)Go+miA4T3edYrL-M|SqS{RshB*dc?{B_Pa3X{wsPjmvB;i!Lsx&v2)yy) zWDCc5BP1;Dtv~sK+J{nBMU(=5DA@d>b{!GnPsk^OP3B7|T%*9tKmf$F`VLO+{3Gou zxb3l!{(l5Vz?DB{3J0n2YIi3EQ|O#6{b>;90`Z3q^=<7iI?w{}Up_amH@XU!uv@Wd za8UMUw!z)%%apii{}4~Z&>w%1GN55uLveAN&}&VUJ=Wtu>HiuF>XgOQ{Y)H_z znHekbgWLHRRGMOO2D9z$TJhamDQKQj8i)VkByLaU46BID5Dc_*vNC^AENUEW#Zwg^ zbz(=Dn|Ajsp*5i^Rnr$YvjyYE5NsLfp)|G^SEWmhsPvd6u>io3$PC&k%eqkEg+5(~ z--G*SOITO_IwzFx!I#4-eT~lgHIZ^(6KhyWdoiWN658pWEJC~H0i#ng4CM>WN+ApB z0vVECBAjVcCLuXA@a%sFAbh8qZ>QbE%5ZF0JEdJND9U$pWz{ylS240Z`$E?&6wT_( zi{7mj4^7oyFJFIKoud^So{qyl!^#&yBe6|vteVE~mBRhRt5#ELgAtwy@r8S}bYKbH zW`uNfi4ggyxtZwYejbOVO1s=K*SUnj`?0j91M}&VW|mjQt?PgJ-?YPxS?x~`&no>S zp2`p~DBS3z730`BE}z(nsXkvg#q5goOL&D6`W_DT%qXB7;C@ zgUoarL8zwCw6cF+#XL*-WXMM)FRUx7M^D=an_nS6JVoXH4fcRyVcI5JdTYKCatUhz z=A@&jFs~Z9C(Z8U?Q}(ab|&{OAl_9)^~SZD*th}^f+ca}uYE|Hs{gOXU%B_V%~NoS zfiH|;mT;FhM+(3c5sH=F+~vGqV)AIK^m^s26Qu{r$$rJGmJo9sQZMFx}-blAX;*{2d$#=|9e?sX&UM+tJ+wmoqqIrfmo)z86 zg?fK3aohdR(fV+~{Fga$I&WSAg@WZ6hl=YL)MX^DIWO?AMyYc1?x4ZrpbbQ8Nm5lr zx*cxX@6RFt2=8o?z51Ib>NLVs`0kzmioslP2=BkNdl@y;RPbYEqGM2RO@4Oj)g_%b zEAjq(N82+_X9DB{y`KwIeFYn9!P)4UKfr%76<}_X|4APJq_M1{fnL{vF=xA%Z^Vy} zfrt+N%2bO)7$aQJPbf(?P3MIkA8i}mBs}R$lXG&x0i#;ei-Nn3O_qd|tpYwv2~geK zPQw0pI)xAd5qQErl8lJ2d=VMDh@A$e+SZ9N^QUb{t+(?uh$lSI=f$|_AGwtEToiw> z!M|mO9}RFuWD>KrwD-43+3rGnIttLSjyG5alqU+BPI|(~W=|$s*H8O}#>D}o*ao_V z)xayw$^z=7_1L6~3P;Ne57er{9An?VM9iQRrz$7W&GP=N=Vhb2qcq$_>y?dZl`h&! zke7{Jlo1@0#Ipp)y~BRMump@e)Ubc__+hA1m~~TpXcvoAk4z%<$GaNAqj&4y>qeJ&=n#-qJB^!N>{fokSyC9KBwi19j(YIf?}SpiCGX&f*}pj3 z7H5hN6GcybWmD{ZMP2*XFu@C?7#q1Nbu@by3|oZsXhau|@{p>9eTZl0jMslL&rrA5$#0$7p$TC$t7R#Xeoux>x&#E^umY^k&J%IQ(K? z*m#VCdX+2t3PyVd06iih36+2K9qyjLrqy3#Ab@b<3q1@sYJ8ODv8s3FjT*){OwHxi zrt2jQ{@$y*MBW`Y$jM+OVGkg#QpXhnmWfo&wC%0|3Hp+=>hmfklxf$QlXHm2ekp-C z5(Arlr}QH7NAk|WDo?Dn;NWh&$!=HBo{bF_iM|;e_=+mb*&w*5x919%>)h z!&V5*Rn%G=vku@sSXqB*G&iY@es_vinjMKV=B5z0k1e-y{fsv+lMrzAXXrx0_o#>yxBvA+u|o6ueOyNlxrl+BdPrSW7Lf z=cZ?J?Ac!s_0Mms!b?09u(J+C>(zU}ZA)p^7qNuK1n4wFe}I1mD2qDGH7}cFAN^ez zd&V`xn_!?kSu0FJ>~%ow=oWYXj@RBg63jfnm@M5de}ya^6RskKo{gzni@r)CI?wSZ zo@?$GnA(R=r{x`dmj>)yhp%^Kc(mw8gu#Cr`NM}uad%0at`7y zV6R31T3_@tQ#{pHq}ikl{aF0f)5O)E;qRuYLd9GRih70eg?!n9k|ZNkg$!bqN~WfC zAztz&Pq~&aA{MjMuJobmgIN&w(%xzG_>a((NjwQTwHJRpZp02Pk^bax3aEJ=G|gK` z|A%~=HPH(bfR=3nw3fwHzR^Wy9>xJfwC7WR#FFUcqLTf#t)O{U$4Q5DSDi55re^}W zirQOPWT=gkYr^UVFd&QJFCabp(Wr6}n#8d_$PWIxj7c&W=ww-HG7u(_zV`o8E^C15V=?x2k7jQ`9bU_i|K5!bXJz3`tnpg2Hq%Ng9@hI z_PZc*15BPDY_|FmIO#?nmInZf?su^8b`(uy3Ag;De@}|bEr~@rf!u%CH1)x~efTn+ zIbD$5*kj~3a?heGPUc|^f7YGdt^3o&%Rnyi1a zMRI8%J^cLespgmF5wzfhN5g@tIV^Si(#vBz%Ry&;WjWczcx8PO>zf#r3CJE-?F^|p z!_1o7RkmnaDSgcY^8vf?e-|`MRxO}gTK;;v?jEuJe7N>|@A`08;}vJw7vrS>%CZ>Q zI*J=ucQ%*}(}&7u4VAFmM(-_*t$Kgl`jNPjW|Q&bg=ZmtaTvV?bz*Ix@QnKK>?c1j zVs7B^eEGfOb@+W$cXO!@%749P|69%cddT^dsg!JN7jR`elp5&S@TU8+03b8b%mI7>fB-hN2YmeEQ5a2fSHbdluy) z-osJ~n8;s35sIM7->QHn$(Ar7b25?*vkS|Hmd|&~Cud^Zl@>uR8=M^s9XuIa9Sj^S z98@7}%Lq-#`QVK1G}RHyuYA$K9o zN&!z1O)f`1O*%~hKQeKsK}t_nO}d_-R&UJ9kd`qik4`R~pgOjGko!DuLfFlTCA|#2 zg$`?_;bh{J`uvqT7%2j9(s45C z6$KXtmxvXeK}5@MC8dAIr)Q@prDtfxYGrDrd(t+AbLn8~r)y;&6x|6Jk4}&ImmUM zX{6ZV(M`ZleJmn5Rmtbli%reS%)w9Bh{un^&(es)$KlDyj?I5g%%(P%T-}IuC*~uW zOU=&8PSH!%!|aIFBR&F&T-f9*u8x)-OqwL5F0IuWpPC9eiF&$t>UtV`O1Cq0v26c?)hewx_LBYOlI%;R^DpaR}74+adWqbq8z-Ru0R# zQg}d`99sluSs#PkuGQar-dx>m|2?0U(4h)6trOoa=xbN9g*G3yFmH`s_j)#U?Tt`? zR($p>L2d@%@9;JXZyG!$L89}P){5O^{L|O@<74m3XHPFxOIY3w^G4m8W&iAx{8F#g zwZ>b<1*|TRUOsE0Rw7p#(S|#QJJ#(ZVT;Phy8cow5)Ruc1b1eOY*U>OdOYCv*UH@H}W*!GxRi1u;+EUee`X+UZ*iP zUH8|wUH2o;dawK53?E!?`Ju@IbsLwim*E9m?T-i}PPmuSB>@Y9)^6N9SwqcP$Ic6E zzT!*H?{a@yp2bK<+Q!->-M9v_c0H5t;LH<&eOP~&-pbd5`u%OuJ%I@m`u(T<`u$@7 z-|Kh1>v0ZZ7XT0dT)4}6%6f8X0c>(rV{l?*MR+0{1C9Y*CDz5(#lBtE$=1z!C+*v8 z>I{xkfT;zqHhgEk(v)_5C%WZ{gX@Yjv}$#ow}vtCx6e66la;KR zv+{qlWmdl5inWnJh_9m3RxT~==Wa`(S7OPgaO6Kxg2-T`f5kzk)drG@e7_uy29nWE zAXgfg(k9de_oY%+Mq(usr4Ie1NfrJjY?3xNij8HAWvtmJ(w90(uL= z>{ig_?6G2{rd+R!;0Z{rx*db%Npc@-69j+!-9@#LR}(B|D*hg=`Z##4VXFV__^Q3@ zsoEj-s3#pqY*&n9-Fm5V(fHO-w}gF16@%BRhx!=bqWb^D9-{vV0uNaw-3)%Dm4Rp; z#?Qz70u*1>x$t8d{bsB2ehi%)?-Zcx5CQa0E}Psf8RrP)%!yZs&;<| zc4tO6`h9l!+gRS$ZjKLPg7x8gsIPzJz~sb#i9g@%_9VLn_h913ez`phJ;%RO?2g?O zb_%@5?D{1N@L#T3-W^_9&d7SneGWG2XFeLXnXfa*S|@#ZYi%^LzbG%L$!e25$-Rv> z#*8w^zfD>8P!V{)e#rOe`yQSK$uobT&cqecmwm;#+^cmP`>01;F^n}!h4(OSq}vu$ z4PQ9L!;zwGPaoALP0|-srB}-3fc5-7jA&53$GU-SkhY|Wr^}!DTVs|Y5&lG|9qaN1 zhX$r67jV`!G_ z$FH1TX7$U&C=IpBwU}rj)iTe;v6yWkS(EL{%xvntY?6E3oFvKbpOk%(iEpEh%*D*TI}LMJ+CW-C+J0jbfp!U{PxA6V8TlinBdeqIQt&LF#OM}klv`=$Ae8`| zwDQTSNn38eKr6?T=r>pPSWADGOPjv;47iMjg$90Rm$iz-P_8`;`)jP>xT1&jFV6#e*C3wrVg$Sx`p(uxUH&cu+-~|6@S(*!624HtHQb*BFOl&;qfZB;|Z+%m7uDQ)*dUA90rL}oDIIT^mnyZ1j zg|a1a`LHdi?J@Xj^R5j}B|)Q_q=jrHZ6j?%c!il|B}wz4GRuqUNy*ImN}+nDDxZ6E z6mMd3+-5SX5I;Ot+=G9-A;ptkh^{UC%!z+PpvT9T$Dv!dUepznXDS9|*vw>Wx|&r7(m&l|lo?6t&zDnJ#56?zH!2|qx`hcnXQ-g5jD zWuU*jgq9%D7htN zHhNa+ja#)BOLI*v%2@t0Ti~-UII^m~_nlhtE|Y(>p2aRiu)v}tVY7y9gqVjSQ72I^ zN**;ZQShW^M#YLp7poSnmLv%OEgoDX8W%VE%OhXjdxfI=9A*1KAoZF$N39*-vLZxIphaK|r^pxI< zylTib4XmZWp&~Lt+9)H&K|FMWuE_hLDvQEwAy_(dPTQz zKEq~PsPd2smymAm_jd=+1zmn{wRN_6|*Y7cYg8dj#eZ;>&dNak`uAr%n-_* zdVD#d64Kx z5Cr1R%9_r;Pg-OyiKq@*@Aps?sckBd%h@`>WyvW?0}NlePV->wb7ay?BOXT2`U+1g zY)REAoVD|9wOK}TCAi>CCju7QuBGf|Pn}7^n(XqV-5BhWEVMa}itnSUqpY=$*hytu zn6?g^TO+pATBdXls~uO`aJDe!dCGq-)ZDy2{&q}kSzlCWpI)`BD2?H_tN;)2U1Qou zF7X}-ZBMVt?nAwnquaq7b?PzNOD4OWQ<#qQTxw2BHWl9*Pf*N9yLN$2GEdE3D?S^r z?hrudw@{7+{v9+gQ@zCqul6PFocgyigtD2vb6$?_>8@SVGkY&tV82O_SH^!h!)@|h zd%yN&)x)w^#sxX|f}kV2eZzt!hsQ=I-f(Nn#>TOW^2|Xe_?6Ldr`zn>Dc9Cq-p>d=r(eCbLD~Hy`+BGdLsRV z`XCuX(7d92-mJjj%$)@k$=`pry)l0l^$pYCU0F5torilZzUIOB$n+VsM}MOJRPt-< znIC((JSG0}@C(>h+_r9h)2=M=E$La<-ls#+_D%W9|BCk;y}pZiq4;3=^Z*q3&Gqad ztcg#ue1=+JVfV0BcRhUKcWn3A#b}0Ds)cPw@ZHL6PqCo!TXJ~M3j}}2zY=@T%lA@T zLd!rDXS)~6^Dg*>l$7&WCi6D>s6t#{nPRC&5=k-zMj`Nu7s`G6`vuh!Kom7l6X&Y;k*i3x+k<*G(_jAn~n2L)bMl@^7DF!Sve% zEB}o-&!2F}#qvho=@x%u|6X_rQQjJM_pW17+_u%cnDdoBx5xT8asm{s+40-kG4f2(nU%CH zY#O`%?;o!fKZzP*mW_`jUymX^fSne4Od*p<>&M)efP}}iLXdy*kx#=`{G_lNqrOv- z$3nP9P!mU`=5U~@lynjr3%z#PYM|-Jo?5_?MUzIvengd8#grDBfK8Po1r3zdqsDn< zl*@!-34A=xiB8rstaCK|dOo(M_9^Yg6u)&!+faOE*Abd^&r*WiFv+dNmJjH++zgNL z!!Ws0#h4v#)pCDX(Qp*>zDW6oO4a^Rf-QNoC(FDZZ3BYbBcCBsd7nMU%TN}y`8pORZE#z)*^q_qSU2Ij<#!Wrx8Z% zG1DDXccRDka@i-tI(-r+)q1iwBB*py&MVAgRL?B4LF<1K?a>NUhM%f^@$g7~b_uvC zbWPPg7`iA{oV9NvV^+C#dE|es=80n(z5rJXXj|mh*p|>!?eWRKQrP-Pwbmtm^PTQC z&@cY%LDZKy?JF;Km)`Q(cRu^GG`R?7+}d2#EUQD;q!!s(!Q@rh&E(RnG6qZZHQqgv zoirzJe8PWB_mqisTBxidOQ+?Q^FbTpInGq2*xv5S1hcxI@7qQuhUj4!ky-QzFMhvE zWLOrIL-sncx#t{f-Wc@WB=^{mNx!SBSjIO^R5H_kh>HS5dw6vKK|sF0YS4ApP>JWI z1+=jU@h`!z1428?Btd0Y${7oIkt{}{7S3|*$WaNd94BIbXE<5m&dgcPuu%(FwEIF$ zSIO}u9=-U0ib~~FF1L8~z~jSpmk{LJb|h?!lt}27KHE^)MW8DV3RVT3M|?^;pPa0> zX*IATDY})fTO(4`szq4L&xUWwME&FM z(y(z{GS-!U-r0ht^CVdv*_H2kZAXt*jeTP@_5f>yympF(tBz9(1$)VINy6CJB616b znwhTjn_UeLjUM$oKg}L~33g_^U7LAO&#_)nbL&xbJIA1VVH&rIo}+!-jOXucpe~@~ zt(i--ip^C1=?7~F0+-RdYbxH&fBQh0-LEyQU9k0kiYo2wtF}{s>X0fd_TAPI22{SfH6AJ{UsVY7*ZZ@_D`8Gz6_aNcaQ z-`APa2@dRQe|z*ik54GndG>#ZKsoPP=*Jots7x=?+RllvHtKc<}ey9@La{?PP2h?eq z*FSA}o6!!j{E221oLPbW_D_x+Pv~`Zo6s|Vx!NuPGsqXpVYj2~xCN#a+ekfzUWx;L1{`?Ux-s7A9%#3GW<*Ox7q91y>$Z(!ko)3yZ+jtQ4No^jn$Z_<^ z_ipnQ?@5WCT?Q9s>vyS}uVpd@E{{VOl;%%SGEqmS4|go%JENZeWdF3ww&druKl$LZ0QSinQbCwshGf7WV zmgyVH^T@X8wqheud}TCYbYkjNdN^!)GA>vQL$1T^k-}p7huxsNVWxf3OD}RJQ{3_k z@}4In(=^AT@fi5}7Mo30@*y^VEM-74)>8!3LtXe#aiP3|*DRXqmW=qMLHAHFk9Z#X!MiItahfwOY@ z&5Wd%h|ir~mD)MjP2jW!mNnWr^bi>+8S*PITgWSU8aEs8MLMF4O`Xx2%k`U=*A2ab zbx~tB$XrFIG&_cW<<`xnXt$a^?!|b_;YKXhOEreDwG(M zq9E}$EGgRzQMsa2xk`pKFB-88DU#Ne=k^=Z;;ELZOA|6xAJgU?+Ly4=JxSR#>$Wt7 zC%DZE?u3kg;=8x0?_(Oetl}CXlDnpTOQ?NZ9??ohPK!PT{F`Pp^mtEjU87;hQvk_F z4sk3BzP{6`fU!0!9hoV{neZh{$7-&EX*iz-z(kuZJSN_>Zn`waIcc4m4O{VigB8q> zAMWOlw@I4@SF^^klL8tn6o8sdk(cyL0=(vxoSS)n`_L({jjCnxO#Z2TZZ#Ii?ZLT> z=9Ae@Su~(yR(Fpcpgzl6MV;-SUgA|y-LZU8WhJlA#(jj^dS13!9B+Mf6kqYEG-yVa%K6H>DAYD0pC7wg-N%6`&o|d^O0#g zH*pnz=tY68C)&voBap4vF#7BsA)&Cpe;+oB1V zXW&4=b1hLYKVi{+4N|LL8&Pfd`US-b)<^HVlfzZ{C99!g=)ph*W-tAC7S7-=Zqup03 zawtBUHto=9SDY(WY-Svm6QfDnjTnaH(p$Qy8p_`b-L^Xzx=|w4wMcyP^fj9MbCQyO z-{(Qy9vdIjT1JI$>ceuwa<5d|&8`$=eQtD`>iG1~%XaBcLhY)xdLPNJQ+2{76Zuy` z;mPs3xAiBvxjnBH7uDmYs@*-sX36sH4fIA=P7H}08QLFFtcZL5VA|!c8w*9I`=9hQ zXNB)w{y)#3iq&32Xd)&yJ_?p={Wi~k>zO~Pe7gLW32tKEQZjWvRoymw)Vyo%i`gy$%F-eHUIAms#H!P=A=ln%L7_1?7{R_$ql$hR-tftxu!qG z@l@;LxPDA{rc883IY{di$u_dhirc;?V;#R=+^~LV{R!WX3jPVyk=UCG^6YGj?azR< z>}<>3pMn6lr%!bU^nC+%ppL`Mk$(gS25)EE&i+)8`R$PqI8Y}wh696t*&RUiEjYOY z48edp7K0hE*CQFQvhILgaCbl+mOZ^UqCI`%&Q#Fx%~5|pMb|USTtq!?0#DupgVaO3 zN^QuBhE%-O6K}Ka@d~ORam~Nw;gRvi+4kqT#~AG)CTso4nwPtGhqRDmtEn2>n4(L9 z*X~P0pEGN(y9qV>-yev*1@CT&IPY^lew)o;{xL}^CkF8qTZjm{H53O zZJ(qM=*Mp@XYY0^@6nI%R5NtzUm>9En5)71`gWr9!Xol@q%F-Y%q>Kp>}0wnx<*;) z2ctTXl=<|+ch_})W8r&I#p3p&c2x(nJ8@0ru4+$J7n;ZIKc*e!95BJOh0h0zYD9PD z#YLW853b(LdzE{oaIqcuV<$@7>*(w28TyaMDfoIKU5fNrXgyBvXl?peB}~3L{BqpK zh2HTtLzXYBYvBx|`h?oIqAw99G~J|rVKzhC<9^c3doC}3F7;^o$vra7dvGssRJ1W; z#`BH6(Y^3g$g5bZlFdTu&h=;mIWsx-d z^InM={g7*bH$j*~eFYetS(u^=M>T&}-pJRf#sDX=-B4`9c+h+KNSgs&Q4JR*Lm#Y+7(@;i>2(+DI#V zCN%L{@iwAb(g{_JtN}JbMc);0r--z7E%DdF&6~`N$ZfmX^xB0zY~0kLUMhON4UbeVOi^PE0K&Pm*S7 z=0k*kbKoB&rG>?XYa}N~YQ*(Y)=B&bUc638;uyrcX{*A#$v|kQ93=K4z}RImU}PuN z$8tj4t%=Dy4GGB%`k{r0pa{9D`mYyMBl@36H8)g)T&lOWzv|f1&QL`r#|e$p&>ilv z2304;Q4dQcL)#LLtsEkK2k&<+q$a0~n8p8puF2s#zSTWTO~UL+yiST4fv^_nxsoli z&jL%EUL<5DEe+5i^2zz|lftO*WO{ZiEWO;iljx9`5qdd#*9>`vW{+>8AbeyRih@=_T=84OH zlv9=&8eB6yqIvWOQZWZjq9$08MzA|en1$s(xm&S z@)ajF-`PN28W1Vzl+%Q#+lQ7t0UJYcgHvcBX4uTA`Cstzgt*14`65c4W|Or9MxL#s zOtiF|&&MPW35_Fe5w9eyBHP{Vp+Hc713-q%EXu*82rASAs(WbvHYqi~iC6++=)3UICZBnR^ zDf!18p*|w0ObBU%z7?!Vl-D#mA~DAMeuFatI_wT|`OhamY0hnmgEt}%ry9~os@a)& zHsOOf=Z}VQg->x3l#kS3B45PBB_W90Ib)PESte(;{6CQL9UXt>6OJOvz#0etY#;{3 z)ufF;r+;rTSmh+aj}C~ayqyStWdXPs-B}@&b`8^iF!9dGN(N|Alti6q|ZVJzbG3$h-kUoS)gF#alhUj{VFYtkW0G@~HF$ zBcqtxClGt(p%e(sbUnzGv5@?HCf@RA_EHRHJCGzIAmmT~Y1^BqK(4@lj2ByQ%tDj+ z0%t{LM%<8?s=k$!(-WU)zH+!9%n}n$GUeE5zpO4p^=F2;C-%h^+nTo-Z}Pu=k3po9 z)b0VK%syKsJ;8}gf01p7S} zG>lX%%-blgT{O%TYc6kp-tmv<_m$W;qPfrU^VoADkH$tJqiLs1pQF^HwSO#xX)?T_ ztoIZwX`o2H6B=@B=8(TsB{E&6NBY_Sg-}{fju~IUH((|aEgs7ga$&E46$*rC;fY`= zB!UWoZ=o5`mm`xB#ZmFg$S>xO-uH>iVcti-oHjYg9ax%z()wn9(fVQn{KA%v)pCXt z@yJn~R0J&yq8=cvT$KY1f}ac$k$hNt^XNmg6ykS4o7{hTj8hfor|LM)| zKv>>*3#~@HQ^tu+KqXLyv3kVJ^!kQ1I4t_!D5g@6|Nakujav$Gj#U0xtdKYACD)56 ztu{#r+wnkk5astR?y=jJ$1ut-6Q6>-6kNn=~Ms{(8sxHY{W zINcqZ#3TuMe%bfp!WwR9eaUJ%M6etFfUks~HcZMa+-qU#Xbp`c951eWRO(S3wNP-S8ywwa~)+ zDq$vscEv1YT8h9LIZg}nxcj0Pph=D^hz8_o@Xz*t1k=+e@Jw5?sbwZ|C=qHM@qhtZ zf|==uQvJH&LR%E1OF@_Lw`ut=J4RwaU`9FD{eo#NaRZAK{D_lzM#hlfk1$Q$@+{v z*Ael5vzGrnM{Q$UuMPB!vvWqC1Od4l6nA&hi6%JXK!~eTAsMRuUl};HH4yw{Prq6n zu`4l08sSulLa0a#up!oXL_3{|V=PjAu#a32o5QF;Fc(6<9*GAR`MSYP`_ES#U1}}* zN*qKhJE-Fj7$ky-*^AB_HwrXbBDlx=KYhl0ms7qJQ7QZC8A$yVT<<4JF2%y z@aHvFz95N_8JrhGOaVk90p(DwFACqn`{vFw8*sxiR)EN5O9}3y*PH(MMmgh)XQPkE zP7~@CSkfx5zDp}JWpX})DpO2UPjA{zZR42z01p()wwpe1Db8im4E%s`52LYj=|p(sM&i{V zmuKN&?~PkFtom_*(2!)~A6PQ}8~>rJmAKdrH}Ktfk>FAoKmGZUC-w_t+ZUrgCJZUo zoKRlKF8Cd81~VjSObdKr_{d>9-~^nc4)z(+j>wf z@6C3eVgazA7Q%$sR+^cGBhD+2|7`ntiOeGEU5+I7HZk1uOEpRb^!MM01pa#&6Q_j& znIOB95AW+=45{Fd8!(MTTxY#lVtTP{Vt+x^CD33^LlH>uU;Bsp{gG^<(2*>pY+O?9*|5CDPcpC8)oIi_Xu|zsE_$; zutSa~b`l4@{wyJpTuqaI_S1mYwC%~K9`BwpApA) z0Ww+Ik0f(%pcuA%TI$mP={~{X2V+z=Rt|Qh(l3%g%Ul=~6UQh}s{y!$Ou1L2E5Xh_ zZeNQH+#1Kxv9A5U#&O*GQ}=ctty3xot^qc^S9xtYn23^EAG_Iqj~tkpG^{|Gu;jiv zFDM%9y6H3Ey`VD|t+H$jyHxZ#>Asvc(U}mQvYdke3XQe#~CVB*EtUq=Hw0 z0H+N5odyAAA&&H$LoB=U16gc(7eicNBRhV{}sY8ASU7Ua{-?ooiW#%#ds$Gn}jc(f%HYYoUD81 zlH$L+$pyfFJg-kE)h%9%NA^xBcmh z=S=p9o_Z90Te&Bv19>PkFpA)Cy?<)`*JHzirbyMhqFzliT&*8>66G|PM(Di~NWGkkt0Z_r1WaB5TyPhD_2ee$7~6OQd)6mzaOgV5;g`RrABw(a zfNp;+6-oWnU7nofXC|dJ3?yM`1)VeuAbyg6HWZqM5fc*Enj|;E{*pjP0%Ia_3Jnd# z4Q6pTqoPPvMB)+=iD7{ntV~5r`Y1ogOWL}VyL$i1dF#Gz^U105^)dsdWv5@gsys=;E3)$fEoc7v1l=RzCTn2!u?U*yLM z2zNO*Z7Csb5n{utE=*eXk(5Zcde)qk+nl@Nh>*S8lV+?DYvJT@vYGdUD%b6QgzW#$ z1Q?dE+(h@DbWuY29Y~4&4I;-6?Dr!dD($JSGgn z9A0qEI%ww@5nEb$bm()?Bb_{d$_xW1WPc6l@SBbHnRXr;#0T7h#lw!$6U(4rk-qJF z#;f1d;qP81O;|wu_~EM+P=s?$s((agS9M+Q_s=yA6_#sTY1ekzoMzLr9&b#RVnMQ6 zfJ)+u+e2WiW6OnM^MaWQ-Hta+3Ity=)88cEE#x#X7JAT55S?HmEiv+cnx3Oyg#Uw& zDaXXk*&gY)8y31@nS;Gd%uoX9akwJsoe1{WZGTr>;&nZHzevhIUoz!+j={f4Od(p&1pR%NJULXK}Rzy-vUa zdhyyABKMx?&3bi4c<}A@{TsEhtYWiq1j#cY@Ny|KVUHKkPNCWu!HWB3T7M}CKAvo} z@Hn4tm$-5NCRpuJ=dL{BYvmGzwNyYE7c{nj!^@+&_wQrGC0+b~_sNJ&-p`r}ap!*i zU-=)pb!`+*l=VLp4w@9lcj-Bvgk<2Ae=lPSRL5&=hbp z0sdZ#G}TVlqg8Jv@>lBIOI>ZuX|sY zEE1DXxAAHD}SKnXy}YO zeC(uRp{T&4B`|EuIMhpq(&(N9HFcJ?d7R-T6V&n!gE%LD5*j7DOEe&9rR!u&(}wFI zC)$i1NRAA`W?zr8Vfy+uHwDN3;YV zdM0OR*qM4jO9oZq9%d`VKZNfi$!+weOLK&=gHZn)$he1!dK} z%vs;tz@pWEuDkeCpLR9P9CG+4Sy(gLfGgPqkTv22IpIN@Qm-@QB-=M>3E>GoF-6-_ z*O_qGMe8<62zMf`ab?z)atM~p(BK_aG$1GVSTNtCAXWd1EpNH!0gmXlV!lMNd`#)Z zgy#qL$lO;yGlO1oC003_Zj1tmwTO5_CB4!<&2RsIEoS8Xu*v^I_tH;^ScTJ;>cuVI zwnJEjf@v6=LOQdV)^EN3b$e`aA=yPvIQc`B3c9QO&ywG%Hnva2@OnAy!)Fk3-e--J zAm-MMK4qN4$BJp&LVOjpc}kxai0~?8%i&ja?@B2X%2><594C0n9`>gH(;kXD;&vZH z5VEO%C|w*?d+0x-##Exw1tjgkE~A`hz2%fDQ+X~GxkSJrOq(8%+-;N(RQvuXTj5`M z;aSCUc?oto`44fI9SScT4-V0@a+NyIDx-%?qX)r~#WIQtZ^mcitbBHR^|^Mg2X_^O z`L^m(ijw)I>MR|ta%CN}k;B|pT*dnps-Z`JH8b0}<-{D_#wN=e)GBpN-OBDZjgQa# zx0?DAjgO@KkqW2Ilk19RdNqdP4=dlg*X8_&`}(0X>2UlS*CORJ6G1Bhg-YN0lk0P5 zDlK~*o3AM4h$R}-3W}K-k1r}oIMynfTXVtli+510pYV7tJmB4BXz6K3~85yeY36mz*OYRNTYqTqY4Xcl9qUUt%=oJ_p zQgrYbx&q~?%i?Gq)CFf46&O6*ict|)e)sA5=OdG@_PKH7BYleDn4AKHcQpS2h;q}b zjvRddtcy*l!!8mx#kRCzZe|`kwMH6$8H_+4Il&eEZPuRT_G-|yu4cEk2pi_1!iVr3 z0e9rFgX**Ql<*A@y2U}&bGl|0W>1Y5K-XBCdPx;W+Ae)5wKh>lBk5l|j^L z^NPkjf;s+I=&sl)aVc&ibDSu3E6#622>S||*;~Izo%5)>33+I;2ZH_wN2GEQ>ILoZu(Fno;C?vSI zn~vz|SJFDlbc7$gT6NsUlQ;J1zA)`Q>^l#AZj&9orXIW-ah@$WKy$u20F;`xw3SV# zGwhC}ncFAt=#6JwKOF!~O*;Ce-kxBD*ftSyW8gQ`s~Z#6L>0? z+RVUiFx4sod~TTkuNmg-;upA+Cw*op=&uQ?4NuAOOg{uowsnVctzfW!9KRwT>GULG z{iQdiY4Yb|B~SW zek40hLTjvlgK%THUgl^nunF#?pR^PLYDtVsw@t6DB1-qgnJo+cczYhhjFC+?=jCZ1n!jv#?6oKfCTsaN3?S#Ea!L~y+O6H zZtvW8`bg^-81A_ShC}8zxTVMWCFijA$02_L(mz3m9dQz1^P6+6j%f#VWcaT#9uBzN z|G-uqlR>w!aqo|RZ^(j+13vBi4JW>{f}*3q%z4-$Gxt|99jd=GBL1iTZ^-ty`oDD8 z?;7+@Hosd}zX9?$!0^iIx^^rxuE)5$UUB>1X$0TFE7!26W3+K4MgXpH7v=@#`4HlNhz3J2_czV{rUT!UbDL>7 zVmG=@FVdNk&I#{3?eaSf^Ul0MJQASuuqQO4%3#J*?a4IaxD?TL#CDh7I_iBUk9c=M z+9By}eBH7=E*5R6C+8+}$GpunHSuGFmBE~|*n?~0J6QWx^bS&w4tc-nF;B5a+w3*zo--BGf^Qyn=f;_+TIJmz@kA2G- zxC@<|7vJ*K-2NPkQ-twAYzq(jZ;y~~$IrnA6C^hhOmyw^?OdHqohW<67#F9+F!qeu z4-<=J$Hq|@9Y`{Q5)BTh#zvLH<4Rabmzv&F+G&9JjPi-Dh3B-qoc}_ zTSZsIv`)_n!_Ue=wlF@G$+jnLnM4-cKi=7lIrMX!ga>_r*Adqpl)x_%Jy?M4~@9nqqK3(>JOf9>)+A zS3^spFDh0^9jUQ|SvQYWSI%OzWHMMj6zT#=qGlUCa^@h`(Vodyh;NQiHiIRM?NA+m z8;nc9zBfr2#YG_z?AHI5{TexO9yjK}H+|5FPsddwZasZIH>@daab8K(=(dc=&1wBB zE0Zm7dKy~@!yGQJq9J&8N>ljcu#(7x$4lH7YK;fPGYX8W+0BptHx2CL`ZmIbk&AzQ z-wvYrwLxivn?rVk8{^~}59hWf2j*3OC63NcB~GNnGMpIqIb_>(dmpCxmO*EO9b=y+ zN9su>&H>jsq;jT9K-qM=V0VL^!gu!McQ(D#GTaf*Ii&Qr6p`f;Q1m_Wf9CW(x~Rd< zp{>ELc3qRBwg1~d;xoUJN4i>0{VHob&ls+{5FR=`vw52^7GVh&BhEy_AM}-f7!)IX zL2rkwc9tx!Q)s;V;0iHDQqp?5C}(N1eO(W8*z1BGC;x2`Mh!DPaF6E6~-avR98=zub$hztqYl}!CT(~F-9 z=5@*f`#5(jfW>b_xx@7=xm9o>s`Lmb`j=oZ%-T>@Q+v73s{WtN-=(q`jmkVBRqTxl=5jK#vIZ5e%tG#Rrqr6@vN89p z^m4OZG5dH9lon46&xTuneEVuQq|Z6+9lGAPPBNfX=XS?@2QtCavb*&Sw0%_ze$IWf zhu<(CQ0`jUTQ+6EGQY99d_h!HS9k^0^7Xf_xXRLlGpwR+%Y2mx%9dIS8diJO6>0ie zo@c2=UdZWgei42iMcA@ueYTMAJgZOJNp;O^OIY12n~w_Z9Ki{H!qDNX@kdyzkYBX` zhWcsE@9>H!R;5jg6L}lvWzs>};&e;$=5(0_^$W(2Dbm~cws9RYevX**@1p=1?4;-} z)MFT0G4VYgovk^JiH-VD{A_Zn^vm+oseY1Qr3QIvPerSovag_*>hLV+<(sWaU%H$j zzwvZPRyECR950D~z14qIw9kD`eadc`=r`3=Og+lJHMb9STMH;`T!=rCxR@)jQ&wET z%==THUFB*i$l4;5L$NIp1hDvXpMB=)&1&#rn*78%+cl726yZaT{3TW{9AOaKsPN#n0t`6pMpuNceqKfI9Mg(05Vn z{(=>5Objx36odvDz#~$3N;t~Ecrb=Qqv3L>QUjEej#Jx-M;4RZi>vFsC4EKsN2bnT zEvmag+$gZ{aQ85HyP_ZKcdD*yQ5^bHfeTTl$(#o?JW31O~f zOXnL8ePhdSJmc_K?{_xgH^yl5=JXC5 z53%e>Y4fIhr%B-%7|^+b`5HbP*hL|rAO0z7L~rmYxH zbs||GO=+;$52btXERXWki2ar_8%VG+4#7Ce8`t_EL4zb`82g2GdGxqW ztUHtqWLgNK@y1BxP-JkDqb09+@nacJ&etTWPQ+~L9#u9{X(=XVW>oc zMEWLw6(~6+LR^+6LC%I!R%k}d@ah-;Cq4o@ zxbix&@*(UpeCtB7%DD8gZsetKHh@@V+IpRT+1X%v8IE=F_dX%(#IT34Em5rt9V_F= z|2NHd@$bRTE6Vw=-&>J2j$(~qo9A7YFsqDXF^+1CWSgg69@VT9(;C6HM6o`&&>*=q zifW8uoB!VDhz3cPag=iy+dSK{gxaQh`%wBRzICy9WmuQ!Y;Vkd;gK zXyON#@N{CsL6B2(Cdu)5!~rjtK7A}~m*^bvy1gZ@zxXd%;KO@YkXM1jOD z|fpj0-iILbx)ISIVT+N=)VOv-uBVi_UM?mwix?jEM{+8ZZ{uhdQQfFo`hNa zy7x)!!6k!D6KD?EsqGJ6&D52A8al)w$qp`W=Qs9?8r7|y0FBM)iHSG|a3C0uqE0D2 zx|%ragC?h{PPyuYo`mzm2XFPsQ_Sbgz)oc#L|mslP`tY_7kw!<%T#?$_Az#iS^O~p z{D3lzMtp+FsS=lBWCGeLKl5IHdWCO}ZjNM*XO3cyfvI;ZA|Y$@O}akfLdZOmtl>ms zi|j#TP5SW%nb!nxXRN!P!D3DS5lVQ)mGpUW!c0htm?jRwGVChsN`WjcYc#k#EK>wt zMfzU$KImTLOT@1fzoi)kk0|1CGvaYI<&jkbK2G@1!zqdIo>sqk<7|U8M0lT)ij+-W2bxHB2Xbm+Awz#gih~l$s2$RJ% zgy;OoSK8Et(pA>vgX~k<^nv_Q+5|2^@LhO68wx+@3%XrvXmll7TA38KqgnPAM>O~}xF@UBGE2?EJ zHo&5dIAlbdFoviMO{!%sHbkooU!rs^k7lbSU+!nAWnb=Vk5eT(pnFO}{nv~7<#{NgAA!YEIJ6g`4$&!|qN5_LO* zU{F#~Vj4<{s7M91&Jsq)+tQR!7;7w$mPmSBslHJr&eTMIQ&X;Z98~XLNl7y{j=H8A zr)tWUc9qYgnULSXqGLmGKJHo1Kja2yO0uTGuE?h%za(v10i+gxQ1nq1Ski}60AJ#= zise>^QxjfPaLL9lo>m`Ng0Kq2E)y%$Vbh9IG^YB2TSHzNW)(lKoUnu%4pCBeO0ADp zie*)tUUXD{Ui9kwLGkg|SK)frZyDh<%QMASLm;1EDdu$K0p(S)OIx5QXL;s??^Ux) zU7+OYwCCjG)x+mcPcFh4#skquyl)zR$mt!7kKRJfImdm*E8R!4uXs;I%*oTe;zxJH z!@W5DG9ay+a-HX>_2WVP)%qifzq)6M;@<7m>mz`FzYG=*lhr@}k11~f)$e;MnBOuM z#0iXKGLp*UiR@IxkyO^>X)4M<6-G2!vT&pYSr_GjMb@TCtm5V}~yi> zI!hyF8RdmZ))G#T%tC)7Yt^J?ag(L-dU}H_&jQey5l@z4Va=IIS2p?7tUUw2xa8Ed zUe-Q;!T2?`yO=;U2Ym7mAR5bLnk`@ok!3N{JUH!c$^q~X%TO#`k$feR-FQ+X!JIsU z%B(!itT@A4*}yC{t+-y2MO8+XWjc}rWm1G?tkV$4YM<6J#dD;KF_K>Am3d?Gx%VN2f4$ktMOt-;26W4O7=e8aUl;L@tWhGS#vv6j!a`O+3(L$I;(*zj@rAJ1&IG1MA= z;1ZE%G21+3?e5aS>mQz>IOL`OqhLs`@hsH|t}}Eyq^4j?uGcKd3D!MKeE?8UZkFN% z=N|SI3f%u+A6H-Q&ZYt5(4=s{oxfq7ZebD|a1~K_~e>xl($&Y$h5K|z3Kjf4h zqkYPJ9L5;!^*JISDXTS%ZSDjl+HhFUIL`QaNqFFuh-Ar;7h%-s6&*WmsDr!f(!bc;yt%r3h~NsE-yje@j*(v6^$NF&{dfOLa23Mfc- zgLHS-!}q%G`*&YA%Yf;Ntu(O6%)x}j5utw}ssAI-ms5ZpDrm}D55~yR4UuwQ)SLYW=cX6wl!-djs z_@~j(*H3XVb$;<{IQ;x0@@2(qiWp)pXJVu@r@|l7B%a%DUSI@&E$bMy3b!a0HLOkP zzYzelUmy=R;j5k<1>^*xWYk`1U06cmgp#n14szoF`+~=|L^>}+7w;c80^NFeAK07d z-wJ6naS<_1JBPAczhvqZ8GArWK3RWXMZ?aQyq_9@m5v;s3TUO;2$brKTa*)DYd@Gz zdkc~-y0BJp6NY555*6bd zu&C)8qx4E*I>6;m@nN)6$7&1fpPM_lLTl?Pe{aw8Z{rhx9QXf1I`-482G=v4i+eD* zFYB#ZktWs+duS^kByH=FC#?BTy@qk9lW~y5HLmh#jgh*MB@o4>ZKQ?&CG_X==lW}z z*g{0w{dtNa=<}v>^%tp77KI;A>|!)iRKKY#TbF9;q~s~9Wo7px%mTlw=Bf;4*)2Pm z)qK~rc!tb>3|y8hl^*}XJHt|e$K5pNNRe0nxdNBFrQZ=#*I#YA-w{8r!Tc?!uJ6jG zLj`Sq3%(<|Wkgh4zjdfKN7S!?IYlRb?fcxH+vW`GOowqR74!b`MZZ#g6tz`J-1+sD z;%XI<=H~0xH;Hl-BBP}~PcP(0$Elyk%Y8pQ8v)0E&oo2XI+!NLZ{Dfg4 z1h&*8^E44SMvsK zsTu5l@WYr)gY_tyrIy!dWTOT9O2+ZsOqI{4-=4*c#&oRZOdo8Wh*)^M^Wf^68Q`5C z;GG*Nn;Ix%jEi|!_6pV}>SF1nX6b}1GCNBqA1-MK`N3($$n|N1wW?fnVk)wH)@Hcn zoc6Tjr<;w<$BlY1VNQ|)y0Jex!%1Z%&pbPSDh*xnNt24d+UR2YA zQjtpja?}_9PI2BvFKnO0wygBjwvM2LzV1}pWPxx?s{Wp6h{8+YWz*Ye8SLj|ks)XK zXoF$>8`#LMy?c0sAr`baC)i22Q$#O&ST-rAyX@XD@5hcR#!2=TW>;a~cvP85a9qiM zzs*zcF>3jD$8IC|EGO`}t9-6Hm77AhWVTWXEF@<+xDCVh-EoFV+Gm&ANi}zjslh$4 z{+MaWgw4{lNN_A{dCce2;UYHQYq}ms4vAG(D+b}1YC~k5^hqAZ66t&RPq~sN#p+?f z?7wARpBLv}t4-%Jb34>caoD0ohPRx5?Swa`RT>(1Z(|5Ap>5uDd&c?f_G6R_o}xk* z$>Sxhz1*o7J|lv_#3Li2dp0qZc&Ag5Q)C4VWiO~O8aiIEerO192q$f;aHtIH?9Q2D z+F*|8{sg3B8}5ryI0gvaU38}Q{J3~$Kv_{v`Ihp$vHG`7kYnisCfYZ11@p{*l(t3S znM}sAGD>W)50O%qm$velW?bC(vCgJKi6V2G(dLs9{R}X|`fKMev-TfBaML+pm6Gra@c`ZIg zeblFC$c)>ZxOJAP=2*KQxN$N-c-j@5>D#xna)N*A-wd+><&nI4wL! zc~lEGTnq?Ldn|ZtTudeH-sV&?|li)kDC_OInX8CwI10(C179vQi&9lEd`)Jaq@ z>lTUYSht4h4ThhzH<=B8v(>Rl6s{>PE82YSKn5tRjN^>>cJ#Q(I|1(K3tCl#bUzag z@2xirRuB?SF$i$PwblJrn_JnIJ1TQkt7V;xqWi{amOb*-Qpq8czkl4U>bu(7v-~V% zpVl&soj8pOUA991!m_!YcEaYb9G4OHna?||E_Z8Mb?@fKs*PuVFC|R(Z!J6FS4--W zh~) zq~K@Jw8f5D8w`|5V~`ON(109j0>Jo(432B@|C;dwrq+(5~m z{Ozn3{gF|!M1yZ=`kNBwMsfJ@)6*zd%NI;Pt$=lfJi3xnwho zPp3;}nnAcf^eglOkq%X-IJ51_y26I>Vyv%d&yp4BqRLY%l8%`UZYy9yi^0uz+^i<1qF#s@G4Ny&g+SjtA#idE;$H85n zQrS|b$ck^oxP*hSyGT(lg;#)7)-GI#?j*)J?tM#cZ0-~MWHT}_1%y90|G{WG`WKN4 zrz$GCFUbzU?P4ozu6fp-eU?q-#_;<~A2BjoSVV-N>IdZ)srQcO=jY4}`*#(I5{X(q zY1}ZRm(YHRS_0g3BB4$sC#P12=xZaCsc47az}jR;mF%s5FZ2blSwQ z>b__dJ`RrB?M?*yuE%?ir5%Q$Yv``tJrruy9@I}R*d=9|9GW1SOfe`A$EXRR`z3WD zRS)CO;yUAdcPeyz%*8JR6uqe?HLI&$-1&3ly4E25*cX*h`#q5Q#%rAEtY?uK_VC`T zn1M$~bJ{Px>sieBQ;!^=_qwpWF)yPoBT>tA1Wb!G-Mk1RGTr`sAzUS-FP~;APSNl* z^c40?)JFIu`Pe)FFtBC0r2e>+m6l1B>y>HgjZk;;9e#<}TXl@fNEU z=ND@h<5`+rrWV-&BJ`C&jg0J`#O9S|fxmw8Azch*3{#9G>^nvsGq+^(p?$)(_>QKD zu@_o|2Po7V?LLo5>oLj+rxPxX(-CfxVq7HB2@z&|3#C3jvc5$=?|7=^yMs-~6oCx^ z9)5Ob#g?a63?1+x0;lj4QXv^7Sv4>|JLt2B&&V5!C7!)3bd}a+@ z755H|+ss-Fa7=MZ!{cm|4Ihv*W~~uAdPoxC{6Iu#aJHq7XXfongqYw>fSje*s*g>a z(Q5f9IXluP;WTS2YZ@!Z4|P9eKhE24nXxkqQq_YIJK<&F1?KG;1&fyn&68S((T;>c znGKl@o!KVo2*WvB zegKTSOb1o_RSrxWIhxlwUz(NJ%OeC}7DwBeI1E7k%5MrAoef8OUz%##zmw1lIY~nv zYn;Fo33`4osy;WSv%U(x-sqLKKaoVGf1|2X9cXi=ulqVf2KGsC2r7l-1DTJxVSjc+}zF`sl}!_zVG?A zjzPNZ4;jS#iWZ2e_i-wgN2aT%bT%^o61uW9~B{O5}RPfrBikF7d^K5)* zj8+@zq-B5=;hN|aa$65w`npYB3kx`T*f9j?KEEwK=Xg#%R}8Q5Bv4E+%kTBdqU+~#ht2gJu&v;{wC^ovsyb5nZOZRRVROuKZv-ab4IG;bm=BL^6( z)JMc7#RkRBcNR^wdHBb4=m7F$y+pvyF(1?qeYJ(F7Uf~(0qw!|wEe^_Slw@Iklb0} zi}%7BY;?680rPF&+YIvo^EGkoiSfxvu-VsRAg>6da47#8qP-N@60l$eLESNl$qh|r zpI{{R7+Hc;id0g$V=&eWQo&cn0^*<5md7noZ#i>neyo$ih#(Y805>XbDh{fVezKOF z_6yck*2!(a*l`#~D1`-);8pk{9kdQzKYN;O=-d%S2i=Pw;q`tO!N=(I_qA6wx@mT@ zQ$?ACx@|5^fI;M^5@F$5;LpU00gY#Uab}BZ1!lOVrZORtRnx>OqaWBhvwngGe4F1C z8*cj#B2=Rja15k6fG~ar3Oll%HGbo)Y3lO2VlUlQ<0kbD|^5J&9UOt;G_mkJK_8o|M*q5J(KSb5QAHpbcC&lDW3>mi0)I= zSb#-UaYyu2%PT;$6S^JL9MKum={$9{b5TF*yddyVKqSIS6HW5m6c;@jUF{xx01q?E zYYwkn@aqx=xcuuhQ#F0^mz>QxkiPUQEXpz`$xl|CHN0L7rIL|HG>^{;+G`g2!f({) zQFWjnw*@wqySild0z&I{ID?*1JrP-jvhSzz?=Bi0^9l1AjcQa$& zD5YN|`wQiwh4MR$4qf`T^W$A5SoqY5j$b~j=c*NSGK)SiH`Tvtp7E}_jAVUzYcHFt zq3rjxL}TDZsKdHgME;@n=7OR9VZeuf1k!5yrob^HK9?hEJ{{fqZ>+x!mzv z>|;3u%{+dO!XN=qvEwHw8$y z1K6*@(_4$@_!ivpvIev2O~RM(*G8HlzMp0u&%R#v)^^?gmJ@nFTUBn!_1_3fF0{tG z!S1AT5bWOyVN{>7MX*gs%kn7lihtR7*%{j8h6C5Y$lGfVJ29yJUW4%-FY(R#l8DP} z1CSr<)F=ZpDd#oTwy+B;rL8s;b1Z~}$C?}xL| zpHvyedD8jf_xQ#?xh1$pv}Vg-bsEHIigXvM_qAj(8;Vo!An?w+>AB~w;0>`ho|$YE zHOIU@agj)G;%9b&;C}AdsmLcS+G9et2qZaDR18*9b9c5bW*x_(udp4uxKq~#1n}pda?90vOD#E_)a+R zfK2+b9(h&N)>Bu}eZ?M*2GV}PdExPXwnN@SInOdw;S9@)tnQxhH>m zapbj@7HHA!MOrRKs*KI%ZG1qf1EE^a!{UEE)XtoDel{_uleN3Ikq3&?El-AJp?XZB z53Cq=YlUNE{BYixhg*hyb3XMnxWdUnc}~HWlw`_Z&Oh92kS)rzN|gI;y3mmnLy7 z$O+s~=+qi-74X^o{fYFval!YRVbd&m^*xk{1UCic1l?LkG~v~T%}0XCShU#|gwGh+ zLKk&Wa@iMZCF=Nu+gcK`52VHr#0@gtwlr=T4Jldle(N$}{L%c()(kZ6Q4jt7BlFf@=CmBYI&2KlXQUM$ZFz*xkVGnkC=wBTSPB$ zD!MzA(nS}`^c<)_qr7$}{2GR!VO@e}L8hvJ`#|{}CqkT*E)Y*h30N-GZ@wlV2D^eO z`x1f@m6kV?;p?~Y@_hJAK_ZJwWf#q07gl#hz zw6v;+eMI*t?!gW>|DtwnnhwB6`5JftL&jVuMwTT3{AnuJ?1ZaU0ZV6CNQ(%IC4=UM z%Cm=+SyKsYdB*>gT`Y8qiUa!HpO=oy|DMg`{#NrAjqv8(02WJ9F?U$!x16*i7$Q>z z)9mM7o3`s3qNc467}~wEveB)R4H*h2(NBWLDBI`0Qqh<`&}Vraj6hZ>e5PS!hp$9& zj-yt&_iXre=CxCaHx>vq7DSevWaB!EQp&Mkac9KC2)GtT;>fsm43@FTYQe*QYVLr^ zgWO=IM1(MT9S0wfId0?AjeZVjYro!vHS-*e!`qh zOe)Rz69^CW61-8kq7%XJO5Jw{5URJ#b3X!ttZGIybfaQg{=DnyXN%U`9Td@iJDTW^ zpoCpDf8csji^2e%h&5(-jJ`5{mH1|n;BI)f`nJI`$gn=`6QC+w=68yce1hbrSn0lT z|I(uMz9AH~!CvL| zNto2Htj|%cEw%qVdEjjPu$qJW1tAujhq0s}H+isgCYO%6Ub$ouPZdfW!Js`#b;NwA zw%I>`seUN&`RN%h_GIA<%iQuVM6k^1)ZpK2ij5o2$Cet{ruS)G^zE9N;F47@A*mZp z4|w_vyH!o2D+qmpew_#e(&aY@CM`!QKBvc(1dyBB$TYp3AFtFGlYaYGb{F-T`)WXF z+HQBs+$*XRPDrzA^V{gT*!I>Em@EN*DW>DN;*Od(W#(4nzNVY3A4t6`@Er7P{FS#` zudlq@6Mev)IT3%DT>liLCirbtPDb2#1JGB%Ez*FDFdVBN7Gj!kqA@+zE{pFy6zsj* zjHkkHiGpA5CKYdo*^C$$|PBC@fp<&W#%M0jbRlv?u>9n4*4{rXvD~gSz@<%=W0Nm*Z z3(8l6zSdNDC$MqGV2q(p+$2*KQMK_w4oIjP+@~1o2`2rG397%6@H%M1> zdxR=9b}L2l{z+cIm;G4{b@B`Y$yw0lLjovqbt3)~%D(61MRIK!2q>h(7%(osW*_~_ zDM@xxRT=D(xPTzuE8T|?4P?Yw+FnMVI2zQrP!%Da2PLgohe{T%T1!h3EnA0*`!;bf z#z;&Z&_8WX*o6$3UKqxZMJt%bko}(YsU|CmwpM&;Si;=PHn?kzwAoCkbh~lHw!?WKh2t#`AZgQt=pVSif#`wT zYM+^aDBlP?3R2W21Ypw?NFy~<(q1!j!M`h~zFZPMJy`F=pZ<*-t6NA75y-B2#Wt~O zq!<`Tc6E>1y_H#u*l5D)rQOr-#rE9bi?O!#T|Y5sES7g(ppgeJ=L5GEkm2<-+FM&d zYnzv_pPUR@fSo7i!OPhYWvIbh2Ab$R|HdHz?BrKi>NbkJ|9OystSz9=a_PBLS=+e2cSw;PWkM_%9FF>4uo zvwF1sqVz*gIG`bK9bN6Bs_3D{JH!-I z3VvV%1f8gyH0exoFi05Lw`4mO$qm?W9z$46ihJIO1SUZe9?M<6pM6}coZt)~wwI2r z*mN7!W?YC^dFn}Of$R(RkT$$u;kP_vaLz03%cZt zcIx1afDX1@Oz!XXV#misieL8Pvy!h-1ztGGdVRK?urufRc9U0ZV&iJZ_jKs3jax35 z$UmM2?+g!3E!GQm-SD+KY% z&eAs~96Qun3D61{Vf__Ef2^@D&68&JBSI?o;iyY5sPSskB;jH#;gWgvtZw`s^+e%x z0|?em)a9f2bbJfu6B@keOP1Xh!Bf!)ZCQJMm7U;s&&m8-EKImN$BS{Iy!~o2<%Zu? zL_BFG4y~Ng0b60(*${n~q6T+>XWg%juK6yCME-g=_Fo$hNV3!5}f4D*fi zlHT}dX1$j7{VrImGM8>^?MvuBd6{9p8Gz8RR{|!NjpLE}u5B%-Z^!fGsQWczxEK^m zdjL{9E$CeAPBd%VvtH)2z<();9%bW3q@RPk?}}%%JGP1?QHB3ieS;#FwhhuR-aRgj z*t`r&>(DGw=S}DU8Jo#nLVyggNsRZH4`nn7g6O&2!_(JCtsEWI3w27blU@=70i*Wt zcMS;xACLMYs%%^t`|6pI9@fC$&P&@ZOICc~-y9|{*?t(;k6+T~(nctsr0K5m1<+%^ z%CHsRi^s7Z4cUD5o}6DqKfjNr1dV{YpTK^tr)~shg;^D0Tv`m`$-K_MfX;g)y{XlT zZ}P)utrS=H=CVinDDCWGa5|d`0T)%Sbd8nsa8J09_%;M$s5VB9$BPQc1wJb4_jUTiweGnivY#!?ul+t@j?4Tpsnum1U8n-S?&Ik}%uz zq{_`H9PMHX6h75fYni5h0>DssSloQAB>kn27Jn<>-qYrGmbM#|8hGah0Bgbv2KII- z2}GA09EEJJG%k)=LY(MR*r6rF8oxXd%FB|2s!S3kWjr07rg{`2&XjUoYO5jMSrndZ zsYaLriGLUM%)uMlJi~Gb{3Kh|MiY$ldJ$359Y?5Fo!-U>UZzOX*UZR2CyEj@D~OMH zD5AwfzKEsy?Gcz&RC%QK1LZE)SJg)-mK6k3UvBH`bfJ6ul)pU_a!1ngop5t|$ENLa z-jf=WuKV;kvg30hWX7x!X}FM7x?hsoc!%_OQjQo}uv$?ke0ihV#xh9you7DpYcm$E zFDFMHKGJ)Zx^l+0%Mw@o)J_=_MWCO4Tx?-qLM%iNsl zg2RU~+1Rth&jh`GS?SuFw;D;~$HVaCj&q)*$wQvP5NI5>S(bB|0oim>iE4LVP9nqw z5~!BRCm|j9SIqtJRzw=ea?T_xz!zZ z8mlh@MSV7^ij9^v;v)3F)6;vs6+PA51g{6^REyBHlSxIdhqY(j2uZPFzsPE(zY}a z$x9tSAHFeBq!&h)rFCJsY$lzh3r+Yk!h|)Q>%O|V5}2^0uelU5A8y^GUtlY^8tvQN zWFOGH?QllOVh>ENpz~(wKaIAs;gM`J4sy`hrx#({$pGzT5pcJUm`GY#L2` z%IVYww!#%w9qyO<$5y@S;hM8qV_kJ>_a5NDSq*>46pa)b%^gxP@5%EO8=D7zlJi8b z{$U$RugsKbIY#r^GG8!94RTXW!Uv(s zaEltsO=8j26bA}B{=7u%6eaIU=%~+=y1*kph-OrtSvD)%*)*l|=HlRTtrVIdTsNX` z?&PWI4QA*C9xBiUw#Oilc}hTE=8_FKJTsvqYFThNnSr~gjQd)bBB;sJhlXv=RL;}a zRU(kR-|2jr)O*VI$cxPyts3(;Hwy$wjCi;P(^J^k`e*kN!um(Eeh6DKN7$=T6x9#L z55Kcg_c%0 zVwxN2vujk7=X2I|)ojKCDZGC2QidQ7jVTV2m~Ns%`o^+P7TE!hU$PedidQ}(QB$}W z)Tv%9!sL;z?AUzest2ki5^US-fSuW#TVBfRFh?d$r%K%!`Ob9t*=X~j{%Nu+{IQp7 zXrF(!wq~XvoUIPV`vk0Y*U3CUHu-^8@D#w`Q(e5h_Hi-KCSC&{oi^laWX!4U`Sp1h z-!uJ!d1_=Wjk##_dO~tG-TK!rI4n_1R|;CU<}M!^Or%*jmOG9kq=5}Q!o{2LB9H!c(pPV-WquZt6>r*>bil_Z}{ z#eF4MJ(uLbkB>wwW3%FZ%x%Q?;Lga~NUGoK#xxG>wtF37aNV?IVE(C|>yy|^?`bF6 zM&ZPZMhRPkFZF{@QvERogfJj7E`b2gX;p(rp-jy8AlGqURw)RRU?uR@&j6~PItHrb z%>JwdyV+T*nGmvYf34PF=1arBWPqY3DNXuCWkS-vVWcF!=Rm(W%jKr)#UTG(N&~Pc zytuMdH!--`${AKwG}YdCr*+6=vk?1CV3rFS3dTll~;>hhM87on-`I1RJ`m7^R?4YcqJG!nvk z1o4WleIzqIWaM!HwIx&$6w%eJe6riCI+Mhm>rw;cJJI^^2%iZdlT~ac-m0;u<7uZm zF|B$R69vz30_(s5n?5v3B_qpg*aYqkmTqma&n~wJut0MnyJii#ZsBUCp$m0~mh1IK z81KLwlq!nXUXv}zuC!-lj;0L_ewKgOV`>y%c87&`Er9qT=Pl$Rrc?LJ{GqkGUR}#g zHcejt$5Kv6clHKLAwpVvjXPFm2SdYxfJkJ?;|aYa0R%vcfG>VP7a=+91hzf6;#dOh z$&NMQ+tZY@YN0lG2ve@kVfyha45R5VJ(GZNd09a&Qgl~Tgoz%5C6yNry`1tCE-E3h ztaW=Hw2pOILTsOj?8d>Fvfx1H2bE?Ut78hi^-RYu!7j}su*+~WwQH_2)`_tFsRPPT$W%40Pn-jBKnlp8pu2EcW zPe92nL^bf5liDeuS+I5@5Ly|2f$Euk^l4UtJDL}NGgo%&unjnkFcwP(8u z#Q6qX14Q?o^|5R$a6E*-i`xkE&w=cM*?i5T_NmC#6S=M{r$WyS*@%tx6T8I0`24Lg z@P1(6*I8hXAAZ%}0;E6r%WK1F+F$+#Jg?0kwcJK>h?@6VblWwnQTYzHI*Z0FdK+0V z6(rUyto3vu-`AOZAU8*6*1Wu{tFb$=J$AHEAZ>fqsTMrS-dx!?_Z5N1iQI1RLMFT4ASTpn#4Gzhh8O4KkR!T3KDkx=#Gi8 z1}>EETUvdS|0G|{!iWD%+Xc_a7Mx*?;jUbhBRb!>vu&L?y19wTJgpv@cNkb0ZGi$v zNqUfYr!&SL)tuA|^I^>%O0$o-v+gaj8+nmNSs161SkIo8rmrM!lG!SK`NA>2TN%3o zcTo#HRxc)NMARVNkK4)Jd*09fw%bWZpIO5%p5=t@DUE9o1iv3zB}bcvd#a@al8QIq zs6let2yLUEJk5hBh)s25?3;Sa`!RrEt}~JLh2zWL_L?W2&fQdrQoC)2+cbm4Ow!gP zDO;ihEN2KoNF64=;>NmsC`N2@qHI&x+cURQ#l#B!$09Rs7u*4sciDg%lml_*`(iPR zyV@vXT)}C;k@iYLz7Sqb* zS~PfA=zW29Etj|KaD&N}Ud)>}#m&mn$wK+~gLtr@yTyGt$C&wZcG8wjTM>jH!F3vn zx7^`EuLKtp--xEin`$hLt-n=1eRCTS_p_*Q%^s>sXNZur?i)sloH~fzw&tT~KgvPz z^GS(0`Z35DWq>%0B^)gjE)-aILEJ{L2$doG7_htBIv9Fv-m&FZ4gz^4il(b6c6p`# zQ_Mp1j3;Jcks7GGYiMDGkdo#^+psBXP5xjb} z)ffj#^Ev@MRG46vQJKC*?`&Ri>CNX#*L6PbmmkUAdYgX*)DkRVrSoS_vrqHp8Z?Dr!6v;`$5?*qOC`_bQiRQBF z{V+BRU^=GJ3dsw}f1kNHM|yX_=Plh)n0111+buIN`#suLeRl_ZBBSy`%HUM1+j0-m zk4G-jW|MiJatjSCfwGCw7^~srN4K(8*J;9uiyp5qm$iNpCu_}GWh5XiOf#@JYCNy? z5&db*JXaowc9G})cD2;JsR_RjrQ)lyYf7tDvE<>Tys{x1x54A!xaN(m!%=zTda3!8 zoD_U|{X*&9uA2vhjp>XX6+}2^a~*HEcTx(K{rszT6RmsH#SyP>dsRgD;rKdK>d#5` zl}taRq7(RfSF!feky})!^6UOx%D(t#1G4N!?;=0-3%-!w2kWuuGF82E8L|K#SE9Q!WN#BS zO%({n6Eq=alzB2y@e$;#g)oy&-M9p;X|knEBNKeH7X&=~a!y(uDN1{^dP6%8_B{6m zJ+5*JV=n;i40D;QoEJom63oRX=R&1~)uo%@!uF0@+kO4nyxW{6>6xLk(RRAWOMvrb z!t3Q%{kZ(W;&0n~D}#p-PIYL#FfXmqQ#?XZpG(6`U6Gc}Vq#mNCpNZrTaFUG)!%za0h)cAEh*gfdtS4qh+T!EQA}#`TYph4QWQ z@tbSN51&pZtjf9(jz{Y8qNz0?=7o5$wrNP)8@KZwUOJ%`cFcn+w*r%6Fx@!IER78} zGZ|IMFK+@(L9-o|vBkZGND7Qtol`-#0)u+KewpD9rPtVq%EHv^E-N(B_JBl$cet0l zFCHM-iTUWWAO3E3X^DVGoGnpO31^*LbuF5=m`ChMM{45*gSNeO zG6GAhWA94EVC-F|yj*cqZ>gfb-ic;=-c@Hrroq$Ob&5;pWXVcx%X?!wd4$o!T3VTU zlF+Uruc%!~GfAf8&aj57#tAgF!dS~P0#%mK;onkh6van2{?Yp`rM(6*(%tOCPP~8q zZ#v;XE7_%xI$dKNg^h1}m6F0uUZGA6^*{9#hxX5kQ*gVigY=1x;*No)5AgQZfq>J4 zZIO!Jn5>%{29Vvv!OG$W8w(F>&-q>mOKqL!fe(n-wl+6^Q)#cxxqFDC!N<(R#`bAu z$3U_2ZsN*uoAggs$cKR<6l65HC$OFfs!9G3&DH07Ot+| zl!Cy27rr)=EUA9y^LekU`yC8Zg8WHb0`(gvZMbMJl|*d3w6K~AIy6Q?5Siz5(8uOt z%bI_|v5k(Hjorv1v+X}2MWhOSJf|^yZT!{rzqh$tqM}bNpX=U39{v8mn!*7x*Rh33 zIo#cfw~V_ZSr(N(_`#W!59*@=75&IaFFXJ09K>OnBPCbJI-rHMqH_3qxN^dMXt#lwxPgzSGGA-dA zzcP-u`w)`SN@_90&6|sd@4)jqxo3z%D-jMZC)SRIX!lpazJ5({g%d!C-WBdK8h#`e z4-dQ@axJw%^3@_c1>Qs}&wv20IC5A618W{#Z!%8M;DpbGiyrUY-E?on1rZn4abWCP z-$k;ZxXsYD*k~{T!Rf= zx)x{{tqGm&RXvuh(Ep+74RIaGS{T{W?Rb6eE<+0T{e_&be2BNAs+XgYF7; zD$fG4(l|A32_{CX2I%x;y;h4Sq4UlV$k%=>@{ycL73B;z<2ug@>q=pO1P*6^%fBM8 zLNYfXP^c%)p`EFD>RiVPSB`8Fm^me|?c0T+*n@Lc;;5UQ_1~%E;8ix;!^?+NtFb14 ziPXR*Q>;7=MUKa4;anGRZGYj0M>52ja7XK2$Z$aeQRCS>0>2#L*Q<(e5*{1*mzqy( z+m7rw1lvQJF`ZP;pvqqUX{m)PkCBq5XfKTPRW&uo5Xe)R!EN7D@6~g zdWk%jp)seEeun(KJKsq$t;R2zw?C8Hl`_%d2(Bo~n%Xb|Z%{dHRZ!)aWW107Lf+OP)Ayrv@Y*6;AvQdDc~Ymx{jsMYvP zlSZ>iA;h9o@=m$ak9ynsDPY{GJ;rHH@tOZ?QQrUs?#rT0iOs6S z6m2U#PTn`e97r9--UsALe+R=M%)8L z^iD}&yQ>zfVgwMyzjQ2G)ArB5gF`%5*+cm8z%N=mblF_Ogm?&X_rH>nZlDCT2o}NW z_cz+=P9EB1E#;79L9YXQHlNDG>*wYD*qCht0Dk+N>Ce5c?|g% zopnc{l-sj*RoFuD#gTFU0r-#Xf0crf!+^y>_z!~%?}3pzfuZt%g%W~^BmYNr&@i~@ z9vGREKPr!KC?TmhGAcO?Y#hXYtM(V$`#(Tfc<+Az@IMy*>-*O4;U0vzUpVA2%;L!U zp@bc%JRW3DSEB#D0Rk@W{{*Nwi2pr)p^(Fnh$Dw?x*DNo^^x+2h!T$dP`2TP6f3gVtzkf7o(BXd`z<+*<|I`fs{{Me!{QvcE2iU3Yf2)p+KSay} zIpm5Ed7Fo@*O~jD{r^SF)VyQsn{a55L1*+Y(T`ic*Uz#Z=EuExn~xL@!TzLEv#T-X zfWGR*D*aUvQstWR#V}?YhYkA0zaGz3218vHJ=OZ<9Tj9o8h+R#zl8NV-M6z>=1=XV zi8p``g(r}W1LoODb#maW9}A0C1M z1EVDX1EY&`q{LJ;b8<6tVlw%m1_uTaBaN)(p@C9ccL#^uA5ko8jFI?uj|~QPY?zP> zO9%W%Cw~DHt-ybes|NxYIOGuo7}$SH&iSpJS0(GR3k_JN)ql?9BJ*DR)fj8gq1)D1 z^hu1g>r9;*2Xrg-r$e@YS!!k61Djn3-92K_`ZrmNW#ZWWJYFvsSy|7je}ZNu3g)N6 zn2etQA%zF(sph5!l2RP2qCkLl)FtawcOcB`)_6(iQm<6%brraIm7q8Y^o?$Lzqq({ z)>|uBhQXqYiwA92`e@90Btk8p=e8{jP)?|y3>e@t4& zIli;UYwxAyiDN(`0yT-csPEOt7IjO$Ipi6v>hEG-r}_%pG93J5F*~H?w|<4>6}nbeWP>bInQmiG}K2#>N3X8I~Ywv23irCmkGPMcAq_Qw7D0S<(1@ z`mjJ)qZFybcgf`a3k2LjUuNGJ`r|L!DiSHq5*n~X${sZ}KR%ik`?f^g4Pk3zVd&Y3 z{VWk0_}vy30p|-Ns4Is+$T&Md{(Wx9uUdKhrI@1S~YH@#<&Qd4V&Qqn& zaDKDV!qn<&OSBd$O+yZ8J2KzbKahVBNCdmQV-O&DnR^4fMK%E9K>ll7F`pphSxp)! zfo@q?w%j*x|1^y?lPvRrZO&@OXr%)*c%szm$3(qv%$Lt&G-R`p^h_3PDBwE?{xi-5(g3KZE;Vn$Gh4U5(BJ&boT#2r&HJ3fF!n zF)2NLLJ+aOzDRLBa_D$Q&%pe^)yb3mYiz{>qze#$YW;JEND26FoQuu1<_H^wGa*+Y=vwkJzv<%?i-`*)7;+zVcAj0MGBzm1tek*H z{#EYfs8QL%O{}fog0LhP5AO+8c9JWUV|GI4>X-Zx_q-l1<1gvXE0J_+f<=(~@fS|Z zg&13k;QhOW)mX1aUHq5g$EpcJwX}83cla}4oaftffW337u_HMpgs%a)b|Kn_h`jK^ z3Fo`=Yrquj`TAiIN`R*5haim;v^8xDfXIHVE%w)S&(? z%*2w~FPEgcm1r(kOT}%yQAgAIjOpCJ(wmT|b}TwgBSgQI%h391+TY7c3d7rVR>yRcln2(r83J z%9+bE#13uq< z?TgDgrTo%kHlSPht@YNwj&ylL7H7am*~6|7_O*``@xH^OWH5q~5+|SlK9*&Eqy|jW zDnKm#GHu&*3W*DW(+5VqWq79a7ydujysIV{SaU{=WQN)qE)m_mRh@`}(Bdv&RV13M zLO5U^8b5zXMY%R>NYvUfZZn+z%hpam;^s>BJN5nAUO930gZCloM#yYItR?&eZ6*J7 zq!@u92a-P#IOm%MuG6CWJUBF;iz~|!(zMPA$>TVMhl1huWDh>}_8O$KFC2(hUB!Vq z=an2z5c(Rkw5FJe<~Ss$~Gx{xk{|QdRl->Jy>?qIl@D#xn|*-MrJwqBwc#;PtuT1DSIWTE!HH3;0jIS z(pMykvhBk;!DRob!N~oafGA+{*A!{3SK7+b!TrsyA-ZBlKNK6N*iB6w5$Pebi z50P8>2X)em_JPyXry`8X35Qimc?RW)dX|t?;vD4grxf-(G~mW;W)i*IdiXfHxw-h= zY_R8w7retO4}%3}X1zz2O26Kp-4wo}3S0~R;rC=ts}cXm)WXH)qzYDJz0bU%Uydc{)Y z>e*=2|NICo@LCTocUe7K(l0Z3DK;EM^RBYv3cLcPf#AVo6fo4YNNFn_ucpJo!d`u{ zXLXbsx|tBZn3}wiKxIU$dEt&_CzA`yIWew2hQ1Ob{+-8`Po>r3(aBiu$)6SxyiHHnV>Ge_Vf9c~lp>D!zgju`q&*z!7`!8kK8R)z|bz8psA z@dwbimG#~ES!MXYlywzgQG8#UVJT^l25Ar}LAqO{rCCxMR6sg)36U0YfuW>RN~F6x zL=*)Cq@}wR`3CU+t8e$&XZO74J@=k7_s*Hwd+*Eym5kmp668UNnej)np7Y-&rpL?P zSF7<4&2y|OFgsI8{QDnjpg*5*!D#P1+c~$`-cNbc*JHD#|<+r;CZj$L$h3=zuF?5t95RGe^IFS}9atg>z=pgQm1PYPm z@~RdyajS*P3n5b(8^cyqVP6vlZvLn!(KdLS{Wv62Lx`!@g7DeBk>rAx2|+YJHwyMD zvV{q~t?(*7_8X1uV&z-t4X*8y2@IF-TVCrNGAbA&p4OThj7F`D_Bc6~N3cJxA58qF zPZX28Bco73>xKJuCZ|{nE$SGN{hL~N>E>B~l9TBOFylewA#EOfy|>?G<9hnDY$Et6 z5}!Ocqvbr_=p6IdqdA15dm*TGDPf3xgyCqvL0pqXGbKb9K@iapDNuU7?=g;n>|h|) zs8Ru|>Ox_KZMFT(vh*qAhi%&V{{HC`C9ag4Q~9XD4$!l*V-<<}<5%t@y7j_d+soTi zaSx^^?XcVqj{4XxvreQ-Wtp~wrtO{S6JL;IQx`4%NuN4|RzAh*OOsc@3{OR;bM zmv2ARPy@A+s5r#QtE5Y8#02H&LY|3_@X-e{2d>s+KDJ{-f3qy920K>Y8L^-R=u+BT z&pV>k15~C*ZXV9T+~_l1NS1?HlZ(>U1>2PmDQ$!`9C%UVSsmgy5DopN0zW!tlf!Jq zec_d9>WiYYAd9cSG5-`?`#w{vE_Vzy@6h}prK0c;-ulyikr4Dz*c^u69lj$*+}RB; z-Z!#d@xDszDP!rm2(5s=ACs`9-}S#Za{|Kn8dsSLBmLgu?nTeC_hFGH-D55rC%68* zc`N5o;K%1kvV|ZGZiN4VfjvpO$1anDwn|Vq>&q9DM<&(%*RqWxbI$@3>+HIFCuUs& zeV)#kg|j9v0esMRRQ&DxEUh%m)L4c9h&sRzNWW~ z^>Kak4Q~%cxw|~-v%D2wtD6{^ePI4Lo$H@XjO#?HZ&576V^x&Rh&DrCE6`*9MYa7& z48u|&wg}!!^s-wyp*TuI-gogZk2;&I?ruKlrqM!H0P@M?MQ!<(u|hWFXj(3z54@cW zFk`gZK8pO1Cwu3P*r_`sosc*f+C`5cH=l_iB=<4+`c3JTtW{gS zXRH2uI4frQZ+{6Uj3XhLowmRiM+?_-yBRn}9lQgs(E6@fH1e_FP<_u=6B=0Tf6V0#+E=T4yDk3 zb6JJdy#+C?QV*?uW8B%BO^b7Ayz|D~ay1gGZkfYy#fXaYnOFm)(}mocvzHVA_}5%e`CrZE)IxCG`Ezo&+o-!(W?u z`wb659$@Zx5E9$jAW|Q=S`$(;&!AXDOXbU-_g}d2b$%bNG;nZs>(GMsC(RBKI4u7ZXvZ$7jDg-Cdga{}q~W zhQC!ILCR(jYk=eUeRve*rwvmw=^ME7Vs>MQzx&&}uljUJHo5c3#4~92zZ(p;@A<~j zkM;_V1tSVX=yG49Vz!NosdrPHSu#L(5L7X=%e6Ild(bl5ds{HBss6*wK%Fi04&$$# z*>!AP%v3A#CBvvR9|C20bZd*!-I_b@=5xPU)mst;S_MrR-=TefCgNVHlVKQJS8(GM zb2=Au!L&L(t+snzZbOE|PQRu1`|@mJTb3-}-KAB;P|`~oql7LQ@j)@-g%inBLC1CN z;3O^$naZ`%4;^zoLQcZPQ%~Dl_`3N?rzz&c8k1YMJ#%Q}@tY`-9(WEpYJW|Z>q z@Gy~4=T>55pPa76}6))sc_R#~0anbyo>RjXn?n0ga1u4`6~ zsO{xOq-*F#6Y}Xu$Ao&8)ZJhnRK*N4wzP1zd!Gbls^LQ#Cvl`lmC*+-=&yTaGP5`3 zV5Ui3l}^elE7zK(a*$!U{%78U=@E1ztv>JJir9xQ$(V-t5BFxWjC!fYf(9k42gpy* zLP*OL!bqypMP)_LUkH_;4~?f!atsK>&@;3l9Q?|Mwo>9i6T=SYjdRU94+&8glX*=>C}{%%414ZWwwe(7PwG zyuhxtb6(CBYjcE6J@RKrmt}m4m4IV9nnpk-k=NIv<5i`h^QN`mp_EFujMRT#)DPk&RvAM#aNC@MC15l5a^|;WMP5A)U0u7W z@pMPbEEq5P<*jyO0#Kaar`mkn)9=xUDESbhrvf3fvO^Y4M72u2_=wE@*e9YKpEbl7 zcLwc#EF-N`#rF`& zlBaikV#f~qH*{FwPVrVXChLHdo+pa_(z=YW-s0NY+750M;bL^1QA_*!onMpYY5UD6 zD&II-PA#9J;Vk}e@FW{I;WDT#DMCkl^ly|a+L+sFprK6Uky7Ow2j-~@L|9aSUNf4>+5@*M1{R zRgQ@gUMKL9_tZ@(ZmR-w=J6bJ!db@ivZ9W~J;(2fBDl*O`2uy$jZGR?bw3&{Xk$Bx z%<}wtQB5zpl-iqa=!S+Hm*+CdF&bPv;Wb-KHVFeL-tIB!ZLYh!3IJvW`r|*zz=M}GJ7^02|M(fRAOINRwk=x z@)oCm@64q6?m}ht%hPGi!|QbL`_`xZE4kqkfoXKty*^?x^E4r{$+BAAcr~`ZKIs}j zkJJuoGZ%Bt;qlbs@QN?lcPds!#l_B)O+65Q-Z|-kI_^`eECjFfNznK-WpNmwi1jrMM-EWL6b4`O^v){T6-4ErO zN}$=0aod0YwGU$((I{i~S%FKKr)n3r>M(gGHrHX5(p<9f(ihLv6M2;U_%~+dms36_ z#iq{Df~~3b)kpfYf{&V~Fqg?PsdvnmWa^8k$P|CvT{1OLiN*14;LZ>+m1-N_8n>Z| z-42hXk9Zyuy_v~5`x)PJvulm+>z~~ zOyt=SW$*yJL9zUClBlcq8;MOn|K6*SqrJyd?Qoa#4_~<;=#1pb<|<}1 z91-1&OW1x@CijpUkZ4J~|XD|71s+ z=J8F(k5he*c5O{zd*xv9pjD$Nde8ZGM5PBamGYj@O4#z|`;YSBj*KK-B3|#G(wGf( zRj-2cDe9&f1!6fjhSlC}TK8LsB~ZR*-A9;BS8hf+gdd(W)&$YuJuPaS!5A5(+!ESR2RUIc1nfO*p+x96`}A{^p?=1oRW%KhYx(J?VH0=Q zCVt@;P_ukS>{+(aKlH(u)2PT{l^1z|<$__!-^BJ{ylZ(O^8WgB74jvgWc#tZmRw=h z%`jojOzDBh1s8-So^p*R`YqV~NrAZTiIH4)G|}j$L~2vEEWOigajFr>mhJ!D^67n}cEX3Vgu8d= ztAZPhRH(EUIA zKf-}77V9E*TK7hU5&2pao?kO(jC)^>`6D8DSn9q?`T0%YIx16u*NvkA+!`^&0GF{)#IBEIn#8Y2!rdU|D9^&r z1VLz$FL;aE92T5@&7e;{z?*iOeh4O&?jtcZX_`7VJ;H{k-ZV$G3A+c81o9lj&md@W znP<9avl+yF3Aa$UVbp4q#h6B(2fYLhzT4W{*Fzh$-x4mkQ~SQ}m4ndZWCW#NW^A`#nPq$x=Va~3v*o~D$o+l*Vc->a+n z$86Yh&)G*Y>y(j6^FWWW!k& zl4V{#lDsQm$K@CVM;9nHaOB&cq15d|p{2B4%@&cSr)u#|ZYc<}Ji*8>_NIS5X|`@LMG~>%T-NIIvY5exvK?kQt^L!#RJ)`Dlf%_TeX8k1MwFplvxV zM9xirStHyE;i0?7ks8q@oQ;%Q@x7x|pUYzuxOY?1GQo;PHG@8)AahrBG1f&3yQ^@; zqcL<<&hc~1&^wQkM|o205)^8W2iZ=Wq9#yOmAw$0!9|A+-1uF0uA@ii5;u=D_L@^p zmGAb-aJ4(XH;tZ(mkc@_SZ@?5TepJUK-vGcvMFEKQ!FTvNynfX%1`!A@>BOJGnL~^ zDL+7W@LE(i>b0C}<;gMqkXz61ys{Gb&_37uA{@(neLOy@@>Jn$QQfTo7>6p;=IrMHxzCe`!#a4-94(**C61Rmh&(>?>xmQ9XiQM zjelKB_kH2{>8%$jHb-ZXiVQe-vx+J(G2_iP!+OFL`$toPW0v(hdC!DSV~vjvOjO#= zANCe9{p^0ayzJ#tmg$hcM6FOalaUr;q8M-j_!gW1d?E@^l{bieC%VAjsNMZ14r1O1h>@h~ zs<3iBf^sW$F3gJ`NZxdk@_gMLpd1x`h6>V)0%S-sF?!G+4xl0PEm$uK8n%%7XF=t+ zExqusaPA8p4(?@sfa?F-2P~I>PpBKoV1xny$J~H4q=p35YYM<1D(dqTuR z00T4u8hYQ9JY}o#2Wia@@lg`b@KIP%D4?YwSFefyJrr<98K5P0v3}y@;>P{N%0^cQ z9R+q`cx4SzDFK8;xBi#_kX1#1`y+fL@7)_Quh0Q)&{hdhf~C1$BH*wRz{&9MH6$n~ z%>Oce@BSAR^BT0a1gZ;KTXN|s!~Z)${+A_s6h3m+f|l^_^JT~uI$yrB{r3_3zqPi% zx~dgAh~r%x!7pt6|Z_dn6A=3Y{u=&}AR zqwxY`-~cnj|4Z`!@;)Q)(v0|@Ss(Hr%K8_+kbwlM05i<3@FGM8P#+SY9soX71!!PH z5XgI%32ascFi@dR2+`@mAF9xFJbTfVCP@vz26@#0IT)hkFGLMiS$QFFf#m9tCbH^6 z-~pr50cluf?IjKQPze`2zW@m8uk5Tf0B(lOY)LTwV@{Kyi~9uA6i}qdvpO-&_@R< zF=pU`&IUH?06H+Y5BSI(8;L8mw=SgK9=Sj`z*b#A5vDeJ#pTlj3}L2UuY?*s;67|} z{6b&=n?wOjkWc>~?nq2Pnlv^rUH>2L(4!9(o%%jzVy0 zNCF2`Ve_b0LIfPzELK<-!d;Nt2LrF1%C`Q~@lx;I;`Zq|NcaM{1^Sso>7zh|0F3;(@;})Hh@<5m#8b z>;;bv{B8kg!e|x$5->n>OQ;=dJPAMsE8rGrN&xKw)0U7afVhO*VGWrO`>G|e!44}x z7Dk`-7eWEbT0`WfoWBra&`|lj%zS(%b;K?Evgs7diVsXL|Ql&@nD{H#z7%Mu&o;T1Eg# F{|6L9*(3k} delta 10959 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 F{{ZYn>tFx? diff --git a/ssdd_p2_100291121_100292107/Makefile b/ssdd_p2_100291121_100292107/Makefile index 023af6b..a06fb56 100644 --- a/ssdd_p2_100291121_100292107/Makefile +++ b/ssdd_p2_100291121_100292107/Makefile @@ -7,7 +7,7 @@ SERVER = server CLIENT = client MD5_WS = ./md5/server/endpoint/MD5Publisher MONITOR = monitor -RPC_SERVER = store_service_server +RPC_SERVER = storeServer SOURCES_CLNT.c = SOURCES_CLNT.h = diff --git a/ssdd_p2_100291121_100292107/README.txt b/ssdd_p2_100291121_100292107/README.txt index b8b1c98..083f83c 100644 --- a/ssdd_p2_100291121_100292107/README.txt +++ b/ssdd_p2_100291121_100292107/README.txt @@ -28,7 +28,7 @@ following commands: -Terminal 1: 'java -cp . md5.server.endpoint.MD5Publisher' --Terminal 2: './store_service_server' +-Terminal 2: './storeServer' -Terminal 3: './server -p -s ' where is the port number in which the service will be running, and is the IP diff --git a/ssdd_p2_100291121_100292107/report.pdf b/ssdd_p2_100291121_100292107/report.pdf index df6e5b672d2e9b4809b99da06dc3f54d6a495665..cc4e3286439a416e63fe86f007a30026c0e94a36 100644 GIT binary patch delta 95931 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 delta 95337 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�~rq8vVu97u!f*j!UK{w&So7X?Vq^ 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 diff --git a/ssdd_p2_100291121_100292107/rpc_store_service/store_service.x b/ssdd_p2_100291121_100292107/rpc_store_service/store_service.x deleted file mode 100644 index e5a8648..0000000 --- a/ssdd_p2_100291121_100292107/rpc_store_service/store_service.x +++ /dev/null @@ -1,17 +0,0 @@ -const MAX_SIZE = 256; -const MAX_MD5 = 33; - -struct response{ - string msg; - string md5; -}; - -program STORE_SERVICE{ - version STORE_VERSION{ - void init() = 1; - int store(string sender, string receiver, - unsigned int msg_id, string msg, string md5) = 2; - int getNumMessages(string user) = 3; - response getMessage(string user, unsigned int msg_id) = 4; - } = 1; -} = 666; \ No newline at end of file diff --git a/lab2_pruebas/store_service_server.c b/ssdd_p2_100291121_100292107/storeServer.c similarity index 100% rename from lab2_pruebas/store_service_server.c rename to ssdd_p2_100291121_100292107/storeServer.c diff --git a/lab2/rpc_store_service/store_service.x b/ssdd_p2_100291121_100292107/storeServer.x similarity index 100% rename from lab2/rpc_store_service/store_service.x rename to ssdd_p2_100291121_100292107/storeServer.x diff --git a/ssdd_p2_100291121_100292107/store_service_server.c b/ssdd_p2_100291121_100292107/store_service_server.c deleted file mode 100644 index 0ad2058..0000000 --- a/ssdd_p2_100291121_100292107/store_service_server.c +++ /dev/null @@ -1,197 +0,0 @@ - -#include "rpc_store_service/store_service.h" - -/* Define the structure of the message list nodes */ -struct msg{ - char body[MAX_SIZE]; /* Content of the message */ - char md5[MAX_MD5]; /* MD5 of the message */ - char sender[MAX_SIZE]; /* Sender of the message */ - char receiver[MAX_SIZE]; /* Receiver of the message */ - unsigned int id; /* ID assigned to the message */ - struct msg *next; /* Pointer to the next message in the list */ -}; -/* Define the structure of the user list nodes */ -struct user{ - char name[MAX_SIZE]; /* Name of the user */ - unsigned long num_msgs; /* Number of sent (stored) messages for the user */ - struct user *next; /* Pointer to the next user in the list */ - struct msg *sent_msgs_head; /* Pointer to the head of the messages sent by the user */ -}; - -/* ========================================================== */ -/* ======================== HEADERS ========================= */ -/* ========================================================== */ - -struct user * usr_head; - -int addMsg(struct msg **head,char * message, char * md5, unsigned int id, char * receiver); - -/* Initializes the user list in the server. If there is an existing user list in memory, this is -traversed and all the nodes in the list (including both messages and users) will be freed from -memory. - Returns always TRUE. No internal error can happen */ -bool_t -init_1_svc(void *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - /* If the list of users is not empty, traverse the list and free each node */ - if(usr_head != NULL){ - struct user *prev = usr_head; - /* While the list is greater than 1, advance in the list and eliminate the first node of the list */ - while(usr_head->next != NULL){ - /* If the list of messages associated to the user is not empty, traverse it and free the memory */ - if(usr_head->sent_msgs_head != NULL){ - struct msg *prev_msg = usr_head->sent_msgs_head; - /* While the list is greater than 1, advance in the list and eliminate the first node */ - while(usr_head->sent_msgs_head->next != NULL){ - usr_head->sent_msgs_head = usr_head->sent_msgs_head->next; - free(prev_msg); - prev_msg = usr_head->sent_msgs_head; - } - /* Free the resources of the last element in the list */ - free(prev_msg); - } - usr_head = usr_head->next; - free(prev); - prev = usr_head; - } - /* Free the resources of the last element in the list */ - free(prev); - } - /* Initialize the list of users to NULL */ - usr_head = NULL; - - return retval; -} - -/* Stores the message and the associated information (receiver, ID, MD5) into the list of messages sent by -the input user passed in the 'sender'. - Returns TRUE no errors - Returns FALSE if there is a malloc error (memory full) */ -bool_t -store_1_svc(char *sender, char *receiver, u_int msg_id, char *msg, char *md5, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - /* Iterate through the list of users that sent at least one message */ - while(temp != NULL){ - if(strcmp(temp->name, sender) == 0){ //User found in the list - /* Append the message to the list of sent messages by that user */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - /* If -1 is returned, the memory is full and message could not be stored. Return FALSE */ - if(*result == -1) return FALSE; - /* Update the message counter */ - temp->num_msgs = temp->num_msgs + 1; - return retval; - } - temp = temp->next; - } - /* If the code reaches this point, no user was found, so add it to the list and set - the message counter to 1 */ - temp = (struct user *) malloc(sizeof(struct user)); - /* If malloc returns error (full memory or other). Return FALSE */ - if(temp == NULL) return FALSE; - strcpy(temp->name, sender); - temp->next = NULL; - temp->sent_msgs_head = NULL; - /* Add message to the list of messages that the user sent */ - *result = addMsg(&(temp->sent_msgs_head), msg, md5, msg_id, receiver); - /* If -1 is returned, the memory is full and message could not be stored. Return FALSE */ - if(*result == -1) return FALSE; - temp->num_msgs = 1; /* Set the sent-message counter to 1 */ - - temp->next = usr_head; - usr_head = temp; - - return retval; -} - -/* Gets the number of messages sent by the input user. - Returns always TRUE. No internal error can happen */ -bool_t -getnummessages_1_svc(char *user, int *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - struct user *temp = usr_head; - *result = 0; - /* Traverse the list of users until the input username is found */ - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Return the number of stored messages for that user */ - *result = temp->num_msgs; - return retval; - } - temp = temp->next; - } - *result = -1; //User was not found - - return retval; -} - -/* Gets the message corresponding to the ID and username of the sender of such message. -If the message or the user is not found, then an empty string will be sent back. - Returns always TRUE. No internal error can happen */ -bool_t -getmessage_1_svc(char *user, u_int msg_id, response *result, struct svc_req *rqstp) -{ - bool_t retval = TRUE; - - /* Initialize to zeroes the message and MD5 strings of the response struct */ - result->msg = calloc(MAX_SIZE, sizeof(char)); - result->md5 = calloc(MAX_MD5, sizeof(char)); - - struct user *temp = usr_head; - struct msg *msg_temp; - - /* Traverse the list of users looking for the input username */ - while(temp != NULL){ - if(strcmp(temp->name, user) == 0){ //Sender is found in the list - /* Search for the message with that ID */ - msg_temp = temp->sent_msgs_head; - /* Iterate through the list of sent messages */ - while(msg_temp != NULL){ - if(msg_temp->id == msg_id){ //Message ID found - strncpy(result->msg, msg_temp->body, strlen(msg_temp->body)+1); - strncpy(result->md5, msg_temp->md5, strlen(msg_temp->md5)+1); - return retval; - } - msg_temp = msg_temp->next; - } - /* At this point, no message with such ID was found for that user. Stop iterating */ - return retval; - } - temp = temp->next; - } - /* User was not found, thus message does not exist */ - - return retval; -} - -int -store_service_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result) -{ - xdr_free (xdr_result, result); - - return 1; -} - -/* Creates a new message struct and adds it to the message queue - Returns 0 if the message is stored - -1 if malloc error */ -int addMsg(struct msg **head, char * message, char * md5, unsigned int id, char * receiver){ - struct msg *temp; - /* Allocate the space for the new message */ - temp = (struct msg *) malloc(sizeof(struct msg)); - /* If malloc returns error (full memory or other) */ - if(temp == NULL) return -1; - strcpy(temp->body, message); - strcpy(temp->md5, md5); - strcpy(temp->receiver, receiver); - temp->id = id; - temp->next = *head; //If msg_head is null, then the list is empty - *head = temp; - - return 0; -}

Ox|g%K0PC+F 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≥Lta55^(6hLj+ob*z=>fAFyXFV$Xk% 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

+ * Please send all bug reports, requests, and comments to + * arenn@urbanophile.com. + * + * @version 1.0.7 + * + * @author Roland McGrath (roland@gnu.ai.mit.edu) + * @author Ulrich Drepper (drepper@cygnus.com) + * @author Aaron M. Renn (arenn@urbanophile.com) + * + * @see LongOpt + */ +public class Getopt extends Object +{ + +/**************************************************************************/ + +/* + * Class Variables + */ + +/** + * Describe how to deal with options that follow non-option ARGV-elements. + * + * If the caller did not specify anything, + * the default is REQUIRE_ORDER if the property + * gnu.posixly_correct is defined, PERMUTE otherwise. + * + * The special argument `--' forces an end of option-scanning regardless + * of the value of `ordering'. In the case of RETURN_IN_ORDER, only + * `--' can cause `getopt' to return -1 with `optind' != ARGC. + * + * REQUIRE_ORDER means don't recognize them as options; + * stop option processing when the first non-option is seen. + * This is what Unix does. + * This mode of operation is selected by either setting the property + * gnu.posixly_correct, or using `+' as the first character + * of the list of option characters. + */ +protected static final int REQUIRE_ORDER = 1; + +/** + * PERMUTE is the default. We permute the contents of ARGV as we scan, + * so that eventually all the non-options are at the end. This allows options + * to be given in any order, even with programs that were not written to + * expect this. + */ +protected static final int PERMUTE = 2; + +/** + * RETURN_IN_ORDER is an option available to programs that were written + * to expect options and other ARGV-elements in any order and that care about + * the ordering of the two. We describe each non-option ARGV-element + * as if it were the argument of an option with character code 1. + * Using `-' as the first character of the list of option characters + * selects this mode of operation. + */ +protected static final int RETURN_IN_ORDER = 3; + +/**************************************************************************/ + +/* + * Instance Variables + */ + +/** + * For communication from `getopt' to the caller. + * When `getopt' finds an option that takes an argument, + * the argument value is returned here. + * Also, when `ordering' is RETURN_IN_ORDER, + * each non-option ARGV-element is returned here. + */ +protected String optarg; + +/** + * Index in ARGV of the next element to be scanned. + * This is used for communication to and from the caller + * and for communication between successive calls to `getopt'. + * + * On entry to `getopt', zero means this is the first call; initialize. + * + * When `getopt' returns -1, this is the index of the first of the + * non-option elements that the caller should itself scan. + * + * Otherwise, `optind' communicates from one call to the next + * how much of ARGV has been scanned so far. + */ +protected int optind = 0; + +/** + * Callers store false here to inhibit the error message + * for unrecognized options. + */ +protected boolean opterr = true; + +/** + * When an unrecognized option is encountered, getopt will return a '?' + * and store the value of the invalid option here. + */ +protected int optopt = '?'; + +/** + * The next char to be scanned in the option-element + * in which the last option character we returned was found. + * This allows us to pick up the scan where we left off. + * + * If this is zero, or a null string, it means resume the scan + * by advancing to the next ARGV-element. + */ +protected String nextchar; + +/** + * This is the string describing the valid short options. + */ +protected String optstring; + +/** + * This is an array of LongOpt objects which describ the valid long + * options. + */ +protected LongOpt[] long_options; + +/** + * This flag determines whether or not we are parsing only long args + */ +protected boolean long_only; + +/** + * Stores the index into the long_options array of the long option found + */ +protected int longind; + +/** + * The flag determines whether or not we operate in strict POSIX compliance + */ +protected boolean posixly_correct; + +/** + * A flag which communicates whether or not checkLongOption() did all + * necessary processing for the current option + */ +protected boolean longopt_handled; + +/** + * The index of the first non-option in argv[] + */ +protected int first_nonopt = 1; + +/** + * The index of the last non-option in argv[] + */ +protected int last_nonopt = 1; + +/** + * Flag to tell getopt to immediately return -1 the next time it is + * called. + */ +private boolean endparse = false; + +/** + * Saved argument list passed to the program + */ +protected String[] argv; + +/** + * Determines whether we permute arguments or not + */ +protected int ordering; + +/** + * Name to print as the program name in error messages. This is necessary + * since Java does not place the program name in argv[0] + */ +protected String progname; + +/** + * The localized strings are kept in a separate file + */ +private ResourceBundle _messages = ResourceBundle.getBundle( + "gnu/getopt/MessagesBundle", Locale.getDefault()); + +/**************************************************************************/ + +/* + * Constructors + */ + +/** + * Construct a basic Getopt instance with the given input data. Note that + * this handles "short" options only. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command line to the program. + * @param optstring A String containing a description of the valid args for this program + */ +public +Getopt(String progname, String[] argv, String optstring) +{ + this(progname, argv, optstring, null, false); +} + +/**************************************************************************/ + +/** + * Construct a Getopt instance with given input data that is capable of + * parsing long options as well as short. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command ilne to the program + * @param optstring A String containing a description of the valid short args for this program + * @param long_options An array of LongOpt objects that describes the valid long args for this program + */ +public +Getopt(String progname, String[] argv, String optstring, + LongOpt[] long_options) +{ + this(progname, argv, optstring, long_options, false); +} + +/**************************************************************************/ + +/** + * Construct a Getopt instance with given input data that is capable of + * parsing long options and short options. Contrary to what you might + * think, the flag 'long_only' does not determine whether or not we + * scan for only long arguments. Instead, a value of true here allows + * long arguments to start with a '-' instead of '--' unless there is a + * conflict with a short option name. + * + * @param progname The name to display as the program name when printing errors + * @param argv The String array passed as the command ilne to the program + * @param optstring A String containing a description of the valid short args for this program + * @param long_options An array of LongOpt objects that describes the valid long args for this program + * @param long_only true if long options that do not conflict with short options can start with a '-' as well as '--' + */ +public +Getopt(String progname, String[] argv, String optstring, + LongOpt[] long_options, boolean long_only) +{ + if (optstring.length() == 0) + optstring = " "; + + // This function is essentially _getopt_initialize from GNU getopt + this.progname = progname; + this.argv = argv; + this.optstring = optstring; + this.long_options = long_options; + this.long_only = long_only; + + // Check for property "gnu.posixly_correct" to determine whether to + // strictly follow the POSIX standard. This replaces the "POSIXLY_CORRECT" + // environment variable in the C version + if (System.getProperty("gnu.posixly_correct", null) == null) + posixly_correct = false; + else + { + posixly_correct = true; + _messages = ResourceBundle.getBundle("gnu/getopt/MessagesBundle", + Locale.US); + } + + // Determine how to handle the ordering of options and non-options + if (optstring.charAt(0) == '-') + { + ordering = RETURN_IN_ORDER; + if (optstring.length() > 1) + this.optstring = optstring.substring(1); + } + else if (optstring.charAt(0) == '+') + { + ordering = REQUIRE_ORDER; + if (optstring.length() > 1) + this.optstring = optstring.substring(1); + } + else if (posixly_correct) + { + ordering = REQUIRE_ORDER; + } + else + { + ordering = PERMUTE; // The normal default case + } +} + +/**************************************************************************/ + +/* + * Instance Methods + */ + +/** + * In GNU getopt, it is possible to change the string containg valid options + * on the fly because it is passed as an argument to getopt() each time. In + * this version we do not pass the string on every call. In order to allow + * dynamic option string changing, this method is provided. + * + * @param optstring The new option string to use + */ +public void +setOptstring(String optstring) +{ + if (optstring.length() == 0) + optstring = " "; + + this.optstring = optstring; +} + +/**************************************************************************/ + +/** + * optind it the index in ARGV of the next element to be scanned. + * This is used for communication to and from the caller + * and for communication between successive calls to `getopt'. + * + * When `getopt' returns -1, this is the index of the first of the + * non-option elements that the caller should itself scan. + * + * Otherwise, `optind' communicates from one call to the next + * how much of ARGV has been scanned so far. + */ +public int +getOptind() +{ + return(optind); +} + +/**************************************************************************/ + +/** + * This method allows the optind index to be set manually. Normally this + * is not necessary (and incorrect usage of this method can lead to serious + * lossage), but optind is a public symbol in GNU getopt, so this method + * was added to allow it to be modified by the caller if desired. + * + * @param optind The new value of optind + */ +public void +setOptind(int optind) +{ + this.optind = optind; +} + +/**************************************************************************/ + +/** + * Since in GNU getopt() the argument vector is passed back in to the + * function every time, the caller can swap out argv on the fly. Since + * passing argv is not required in the Java version, this method allows + * the user to override argv. Note that incorrect use of this method can + * lead to serious lossage. + * + * @param argv New argument list + */ +public void +setArgv(String[] argv) +{ + this.argv = argv; +} + +/**************************************************************************/ + +/** + * For communication from `getopt' to the caller. + * When `getopt' finds an option that takes an argument, + * the argument value is returned here. + * Also, when `ordering' is RETURN_IN_ORDER, + * each non-option ARGV-element is returned here. + * No set method is provided because setting this variable has no effect. + */ +public String +getOptarg() +{ + return(optarg); +} + +/**************************************************************************/ + +/** + * Normally Getopt will print a message to the standard error when an + * invalid option is encountered. This can be suppressed (or re-enabled) + * by calling this method. There is no get method for this variable + * because if you can't remember the state you set this to, why should I? + */ +public void +setOpterr(boolean opterr) +{ + this.opterr = opterr; +} + +/**************************************************************************/ + +/** + * When getopt() encounters an invalid option, it stores the value of that + * option in optopt which can be retrieved with this method. There is + * no corresponding set method because setting this variable has no effect. + */ +public int +getOptopt() +{ + return(optopt); +} + +/**************************************************************************/ + +/** + * Returns the index into the array of long options (NOT argv) representing + * the long option that was found. + */ +public int +getLongind() +{ + return(longind); +} + +/**************************************************************************/ + +/** + * Exchange the shorter segment with the far end of the longer segment. + * That puts the shorter segment into the right place. + * It leaves the longer segment in the right place overall, + * but it consists of two parts that need to be swapped next. + * This method is used by getopt() for argument permutation. + */ +protected void +exchange(String[] argv) +{ + int bottom = first_nonopt; + int middle = last_nonopt; + int top = optind; + String tem; + + while (top > middle && middle > bottom) + { + if (top - middle > middle - bottom) + { + // Bottom segment is the short one. + int len = middle - bottom; + int i; + + // Swap it with the top part of the top segment. + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + } + // Exclude the moved bottom segment from further swapping. + top -= len; + } + else + { + // Top segment is the short one. + int len = top - middle; + int i; + + // Swap it with the bottom part of the bottom segment. + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + } + // Exclude the moved top segment from further swapping. + bottom += len; + } + } + + // Update records for the slots the non-options now occupy. + + first_nonopt += (optind - last_nonopt); + last_nonopt = optind; +} + +/**************************************************************************/ + +/** + * Check to see if an option is a valid long option. Called by getopt(). + * Put in a separate method because this needs to be done twice. (The + * C getopt authors just copy-pasted the code!). + * + * @param longind A buffer in which to store the 'val' field of found LongOpt + * + * @return Various things depending on circumstances + */ +protected int +checkLongOption() +{ + LongOpt pfound = null; + int nameend; + boolean ambig; + boolean exact; + + longopt_handled = true; + ambig = false; + exact = false; + longind = -1; + + nameend = nextchar.indexOf("="); + if (nameend == -1) + nameend = nextchar.length(); + + // Test all lnog options for either exact match or abbreviated matches + for (int i = 0; i < long_options.length; i++) + { + if (long_options[i].getName().startsWith(nextchar.substring(0, nameend))) + { + if (long_options[i].getName().equals(nextchar.substring(0, nameend))) + { + // Exact match found + pfound = long_options[i]; + longind = i; + exact = true; + break; + } + else if (pfound == null) + { + // First nonexact match found + pfound = long_options[i]; + longind = i; + } + else + { + // Second or later nonexact match found + ambig = true; + } + } + } // for + + // Print out an error if the option specified was ambiguous + if (ambig && !exact) + { + if (opterr) + { + Object[] msgArgs = { progname, argv[optind] }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.ambigious"), + msgArgs)); + } + + nextchar = ""; + optopt = 0; + ++optind; + + return('?'); + } + + if (pfound != null) + { + ++optind; + + if (nameend != nextchar.length()) + { + if (pfound.has_arg != LongOpt.NO_ARGUMENT) + { + if (nextchar.substring(nameend).length() > 1) + optarg = nextchar.substring(nameend+1); + else + optarg = ""; + } + else + { + if (opterr) + { + // -- option + if (argv[optind - 1].startsWith("--")) + { + Object[] msgArgs = { progname, pfound.name }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.arguments1"), + msgArgs)); + } + // +option or -option + else + { + Object[] msgArgs = { progname, new + Character(argv[optind-1].charAt(0)).toString(), + pfound.name }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.arguments2"), + msgArgs)); + } + } + + nextchar = ""; + optopt = pfound.val; + + return('?'); + } + } // if (nameend) + else if (pfound.has_arg == LongOpt.REQUIRED_ARGUMENT) + { + if (optind < argv.length) + { + optarg = argv[optind]; + ++optind; + } + else + { + if (opterr) + { + Object[] msgArgs = { progname, argv[optind-1] }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires"), + msgArgs)); + } + + nextchar = ""; + optopt = pfound.val; + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + } // else if (pfound) + + nextchar = ""; + + if (pfound.flag != null) + { + pfound.flag.setLength(0); + pfound.flag.append(pfound.val); + + return(0); + } + + return(pfound.val); + } // if (pfound != null) + + longopt_handled = false; + + return(0); +} + +/**************************************************************************/ + +/** + * This method returns a char that is the current option that has been + * parsed from the command line. If the option takes an argument, then + * the internal variable 'optarg' is set which is a String representing + * the the value of the argument. This value can be retrieved by the + * caller using the getOptarg() method. If an invalid option is found, + * an error message is printed and a '?' is returned. The name of the + * invalid option character can be retrieved by calling the getOptopt() + * method. When there are no more options to be scanned, this method + * returns -1. The index of first non-option element in argv can be + * retrieved with the getOptind() method. + * + * @return Various things as described above + */ +public int +getopt() +{ + optarg = null; + + if (endparse == true) + return(-1); + + if ((nextchar == null) || (nextchar.equals(""))) + { + // If we have just processed some options following some non-options, + // exchange them so that the options come first. + if (last_nonopt > optind) + last_nonopt = optind; + if (first_nonopt > optind) + first_nonopt = optind; + + if (ordering == PERMUTE) + { + // If we have just processed some options following some non-options, + // exchange them so that the options come first. + if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) + exchange(argv); + else if (last_nonopt != optind) + first_nonopt = optind; + + // Skip any additional non-options + // and extend the range of non-options previously skipped. + while ((optind < argv.length) && (argv[optind].equals("") || + (argv[optind].charAt(0) != '-') || argv[optind].equals("-"))) + { + optind++; + } + + last_nonopt = optind; + } + + // The special ARGV-element `--' means premature end of options. + // Skip it like a null option, + // then exchange with previous non-options as if it were an option, + // then skip everything else like a non-option. + if ((optind != argv.length) && argv[optind].equals("--")) + { + optind++; + + if ((first_nonopt != last_nonopt) && (last_nonopt != optind)) + exchange (argv); + else if (first_nonopt == last_nonopt) + first_nonopt = optind; + + last_nonopt = argv.length; + + optind = argv.length; + } + + // If we have done all the ARGV-elements, stop the scan + // and back over any non-options that we skipped and permuted. + if (optind == argv.length) + { + // Set the next-arg-index to point at the non-options + // that we previously skipped, so the caller will digest them. + if (first_nonopt != last_nonopt) + optind = first_nonopt; + + return(-1); + } + + // If we have come to a non-option and did not permute it, + // either stop the scan or describe it to the caller and pass it by. + if (argv[optind].equals("") || (argv[optind].charAt(0) != '-') || + argv[optind].equals("-")) + { + if (ordering == REQUIRE_ORDER) + return(-1); + + optarg = argv[optind++]; + return(1); + } + + // We have found another option-ARGV-element. + // Skip the initial punctuation. + if (argv[optind].startsWith("--")) + nextchar = argv[optind].substring(2); + else + nextchar = argv[optind].substring(1); + } + + // Decode the current option-ARGV-element. + + /* Check whether the ARGV-element is a long option. + + If long_only and the ARGV-element has the form "-f", where f is + a valid short option, don't consider it an abbreviated form of + a long option that starts with f. Otherwise there would be no + way to give the -f short option. + + On the other hand, if there's a long option "fubar" and + the ARGV-element is "-fu", do consider that an abbreviation of + the long option, just like "--fu", and not "-f" with arg "u". + + This distinction seems to be the most useful approach. */ + if ((long_options != null) && (argv[optind].startsWith("--") + || (long_only && ((argv[optind].length() > 2) || + (optstring.indexOf(argv[optind].charAt(1)) == -1))))) + { + int c = checkLongOption(); + + if (longopt_handled) + return(c); + + // Can't find it as a long option. If this is not getopt_long_only, + // or the option starts with '--' or is not a valid short + // option, then it's an error. + // Otherwise interpret it as a short option. + if (!long_only || argv[optind].startsWith("--") + || (optstring.indexOf(nextchar.charAt(0)) == -1)) + { + if (opterr) + { + if (argv[optind].startsWith("--")) + { + Object[] msgArgs = { progname, nextchar }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.unrecognized"), + msgArgs)); + } + else + { + Object[] msgArgs = { progname, new + Character(argv[optind].charAt(0)).toString(), + nextchar }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.unrecognized2"), + msgArgs)); + } + } + + nextchar = ""; + ++optind; + optopt = 0; + + return('?'); + } + } // if (longopts) + + // Look at and handle the next short option-character */ + int c = nextchar.charAt(0); //**** Do we need to check for empty str? + if (nextchar.length() > 1) + nextchar = nextchar.substring(1); + else + nextchar = ""; + + String temp = null; + if (optstring.indexOf(c) != -1) + temp = optstring.substring(optstring.indexOf(c)); + + if (nextchar.equals("")) + ++optind; + + if ((temp == null) || (c == ':')) + { + if (opterr) + { + if (posixly_correct) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.illegal"), msgArgs)); + } + else + { + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.invalid"), msgArgs)); + } + } + + optopt = c; + + return('?'); + } + + // Convenience. Treat POSIX -W foo same as long option --foo + if ((temp.charAt(0) == 'W') && (temp.length() > 1) && (temp.charAt(1) == ';')) + { + if (!nextchar.equals("")) + { + optarg = nextchar; + } + // No further cars in this argv element and no more argv elements + else if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message. + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + else + { + // We already incremented `optind' once; + // increment it again when taking next ARGV-elt as argument. + nextchar = argv[optind]; + optarg = argv[optind]; + } + + c = checkLongOption(); + + if (longopt_handled) + return(c); + else + // Let the application handle it + { + nextchar = null; + ++optind; + return('W'); + } + } + + if ((temp.length() > 1) && (temp.charAt(1) == ':')) + { + if ((temp.length() > 2) && (temp.charAt(2) == ':')) + // This is an option that accepts and argument optionally + { + if (!nextchar.equals("")) + { + optarg = nextchar; + ++optind; + } + else + { + optarg = null; + } + + nextchar = null; + } + else + { + if (!nextchar.equals("")) + { + optarg = nextchar; + ++optind; + } + else if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + else + { + optarg = argv[optind]; + ++optind; + + // Ok, here's an obscure Posix case. If we have o:, and + // we get -o -- foo, then we're supposed to skip the --, + // end parsing of options, and make foo an operand to -o. + // Only do this in Posix mode. + if ((posixly_correct) && optarg.equals("--")) + { + // If end of argv, error out + if (optind == argv.length) + { + if (opterr) + { + // 1003.2 specifies the format of this message + Object[] msgArgs = { progname, new + Character((char)c).toString() }; + System.err.println(MessageFormat.format( + _messages.getString("getopt.requires2"), msgArgs)); + } + + optopt = c; + + if (optstring.charAt(0) == ':') + return(':'); + else + return('?'); + } + + // Set new optarg and set to end + // Don't permute as we do on -- up above since we + // know we aren't in permute mode because of Posix. + optarg = argv[optind]; + ++optind; + first_nonopt = optind; + last_nonopt = argv.length; + endparse = true; + } + } + + nextchar = null; + } + } + + return(c); +} + +} // Class Getopt + + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/GetoptDemo.java b/ssdd_p2_100291121_100292107/gnu/getopt/GetoptDemo.java new file mode 100755 index 0000000..b57c5a8 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/GetoptDemo.java @@ -0,0 +1,97 @@ +import gnu.getopt.LongOpt; +import gnu.getopt.Getopt; + +/* + * This sample code was written by Aaron M. Renn and is a demonstration + * of how to utilize some of the features of the GNU getopt package. This + * sample code is hereby placed into the public domain by the author and + * may be used without restriction. + */ + +public class GetoptDemo +{ + +public static void +main(String[] argv) +{ + int c; + String arg; + LongOpt[] longopts = new LongOpt[3]; + // + StringBuffer sb = new StringBuffer(); + longopts[0] = new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'); + longopts[1] = new LongOpt("outputdir", LongOpt.REQUIRED_ARGUMENT, sb, 'o'); + longopts[2] = new LongOpt("maximum", LongOpt.OPTIONAL_ARGUMENT, null, 2); + // + Getopt g = new Getopt("testprog", argv, "-:bc::d:hW;", longopts); + g.setOpterr(false); // We'll do our own error handling + // + while ((c = g.getopt()) != -1) + switch (c) + { + case 0: + arg = g.getOptarg(); + System.out.println("Got long option with value '" + + (char)(new Integer(sb.toString())).intValue() + + "' with argument " + + ((arg != null) ? arg : "null")); + break; + // + case 1: + System.out.println("I see you have return in order set and that " + + "a non-option argv element was just found " + + "with the value '" + g.getOptarg() + "'"); + break; + // + case 2: + arg = g.getOptarg(); + System.out.println("I know this, but pretend I didn't"); + System.out.println("We picked option " + + longopts[g.getLongind()].getName() + + " with value " + + ((arg != null) ? arg : "null")); + break; + // + case 'b': + System.out.println("You picked plain old option " + (char)c); + break; + // + case 'c': + case 'd': + arg = g.getOptarg(); + System.out.println("You picked option '" + (char)c + + "' with argument " + + ((arg != null) ? arg : "null")); + break; + // + case 'h': + System.out.println("I see you asked for help"); + break; + // + case 'W': + System.out.println("Hmmm. You tried a -W with an incorrect long " + + "option name"); + break; + // + case ':': + System.out.println("Doh! You need an argument for option " + + (char)g.getOptopt()); + break; + // + case '?': + System.out.println("The option '" + (char)g.getOptopt() + + "' is not valid"); + break; + // + default: + System.out.println("getopt() returned " + c); + break; + } + // + for (int i = g.getOptind(); i < argv.length ; i++) + System.out.println("Non option argv element: " + argv[i] + "\n"); +} + +} // Class GetoptDemo + + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/LANGUAGES b/ssdd_p2_100291121_100292107/gnu/getopt/LANGUAGES new file mode 100755 index 0000000..d8e1399 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/LANGUAGES @@ -0,0 +1,23 @@ +Getopt supports error messages in the following languages: + +English (default) +Chinese (simplified and traditional) +Czech +Dutch +French +German +Hungarian +Italian +Japanese +Norwegian +Polish +Romanian +Spanish + +Anyone can create a translation without knowing how to program Java. +Simply supply me with a MessagesBundle file for your locale and I'm happy +to include it. See MessagesBundle.properties as an example with reference +English messages. + +Aaron (arenn@urbanophile.com) + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/LongOpt.java b/ssdd_p2_100291121_100292107/gnu/getopt/LongOpt.java new file mode 100755 index 0000000..6357085 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/LongOpt.java @@ -0,0 +1,195 @@ +/************************************************************************** +/* LongOpt.java -- Long option object for Getopt +/* +/* Copyright (c) 1998 by Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +package gnu.getopt; + +import java.util.Locale; +import java.util.ResourceBundle; +import java.text.MessageFormat; + +/**************************************************************************/ + +/** + * This object represents the definition of a long option in the Java port + * of GNU getopt. An array of LongOpt objects is passed to the Getopt + * object to define the list of valid long options for a given parsing + * session. Refer to the getopt documentation for details on the + * format of long options. + * + * @version 1.0.5 + * @author Aaron M. Renn (arenn@urbanophile.com) + * + * @see Getopt + */ +public class LongOpt extends Object +{ + +/**************************************************************************/ + +/* + * Class Variables + */ + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes no argument. + */ +public static final int NO_ARGUMENT = 0; + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes an argument that is required. + */ +public static final int REQUIRED_ARGUMENT = 1; + +/** + * Constant value used for the "has_arg" constructor argument. This + * value indicates that the option takes an argument that is optional. + */ +public static final int OPTIONAL_ARGUMENT = 2; + +/**************************************************************************/ + +/* + * Instance Variables + */ + +/** + * The name of the long option + */ +protected String name; + +/** + * Indicates whether the option has no argument, a required argument, or + * an optional argument. + */ +protected int has_arg; + +/** + * If this variable is not null, then the value stored in "val" is stored + * here when this long option is encountered. If this is null, the value + * stored in "val" is treated as the name of an equivalent short option. + */ +protected StringBuffer flag; + +/** + * The value to store in "flag" if flag is not null, otherwise the + * equivalent short option character for this long option. + */ +protected int val; + +/** + * Localized strings for error messages + */ +private ResourceBundle _messages = ResourceBundle.getBundle( + "gnu/getopt/MessagesBundle", Locale.getDefault()); + +/**************************************************************************/ + +/* + * Constructors + */ + +/** + * Create a new LongOpt object with the given parameter values. If the + * value passed as has_arg is not valid, then an exception is thrown. + * + * @param name The long option String. + * @param has_arg Indicates whether the option has no argument (NO_ARGUMENT), a required argument (REQUIRED_ARGUMENT) or an optional argument (OPTIONAL_ARGUMENT). + * @param flag If non-null, this is a location to store the value of "val" when this option is encountered, otherwise "val" is treated as the equivalent short option character. + * @param val The value to return for this long option, or the equivalent single letter option to emulate if flag is null. + * + * @exception IllegalArgumentException If the has_arg param is not one of NO_ARGUMENT, REQUIRED_ARGUMENT or OPTIONAL_ARGUMENT. + */ +public +LongOpt(String name, int has_arg, + StringBuffer flag, int val) throws IllegalArgumentException +{ + // Validate has_arg + if ((has_arg != NO_ARGUMENT) && (has_arg != REQUIRED_ARGUMENT) + && (has_arg != OPTIONAL_ARGUMENT)) + { + Object[] msgArgs = { new Integer(has_arg).toString() }; + throw new IllegalArgumentException(MessageFormat.format( + _messages.getString("getopt.invalidValue"), msgArgs)); + } + + // Store off values + this.name = name; + this.has_arg = has_arg; + this.flag = flag; + this.val = val; +} + +/**************************************************************************/ + +/** + * Returns the name of this LongOpt as a String + * + * @return Then name of the long option + */ +public String +getName() +{ + return(name); +} + +/**************************************************************************/ + +/** + * Returns the value set for the 'has_arg' field for this long option + * + * @return The value of 'has_arg' + */ +public int +getHasArg() +{ + return(has_arg); +} + +/**************************************************************************/ + +/** + * Returns the value of the 'flag' field for this long option + * + * @return The value of 'flag' + */ +public StringBuffer +getFlag() +{ + return(flag); +} + +/** + * Returns the value of the 'val' field for this long option + * + * @return The value of 'val' + */ +public int +getVal() +{ + return(val); +} + +/**************************************************************************/ + +} // Class LongOpt + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/Makefile b/ssdd_p2_100291121_100292107/gnu/getopt/Makefile new file mode 100755 index 0000000..6ff789c --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/Makefile @@ -0,0 +1,7 @@ +# Makefile for Java port of GNU getopt + +all: + javac LongOpt.java Getopt.java GetoptDemo.java + +docs: + javadoc -author -version -public Getopt.java LongOpt.java diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle.properties new file mode 100755 index 0000000..9356ee1 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties -- English language error messages +/* +/* Copyright (c) 1998 by William King (wrking@eng.sun.com) and +/* Aaron M. Renn (arenn@urbanophile.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: option ''{1}'' is ambiguous +getopt.arguments1={0}: option ''--{1}'' doesn't allow an argument +getopt.arguments2={0}: option ''{1}{2}'' doesn't allow an argument +getopt.requires={0}: option ''{1}'' requires an argument +getopt.unrecognized={0}: unrecognized option ''--{1}'' +getopt.unrecognized2={0}: unrecognized option ''{1}{2}'' +getopt.illegal={0}: illegal option -- {1} +getopt.invalid={0}: invalid option -- {1} +getopt.requires2={0}: option requires an argument -- {1} +getopt.invalidValue=Invalid value {0} for parameter 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_chs.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_chs.properties new file mode 100755 index 0000000..1090dc6 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_chs.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties šCSimple Chinese language error messages +/* +/* Copyright (c) 2012 by David Zhang (david290@qq.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: Ñ¡Ïî ''{1}'' ÓÐÆçÒå +getopt.arguments1={0}:Ñ¡Ïî''--{1}'' ²»ÄÜŽø²ÎÊý +getopt.arguments2={0}:Ñ¡Ïî''{1}{2}''²»ÄÜŽø²ÎÊý +getopt.requires={0}: Ñ¡Ïî ''{1}'' ÒªÇóŽøÓвÎÊý +getopt.unrecognized={0}: ÎÞ·šÊ¶±ðµÄÑ¡Ïî ''--{1}'' +getopt.unrecognized2={0}:ÎÞ·šÊ¶±ðµÄÑ¡Ïî''{1}{2}'' +getopt.illegal={0}: ·Ç·šÑ¡Ïî -- {1} +getopt.invalid={0}: ÎÞЧѡÏî -- {1} +getopt.requires2={0}:Ñ¡ÏîÐèÒªÓвÎÊý -- {1} +getopt.invalidValue=Ñ¡Ïî 'has_arg'µÄÖµ {0} ·Ç·š + + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_cht.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_cht.properties new file mode 100755 index 0000000..270e4f1 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_cht.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties - Triditional Chinese language error messages +/* +/* Copyright (c) 2012 by David Zhang (david290@qq.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: 遾項 ''{1}'' 有歧矩 +getopt.arguments1={0}:遾項''--{1}'' 䞍胜垶參敞 +getopt.arguments2={0}:遾項''{1}{2}''䞍胜垶參敞 +getopt.requires={0}: 遾項 ''{1}'' 芁求垶有參敞 +getopt.unrecognized={0}: 無法識別的遞項 ''--{1}'' +getopt.unrecognized2={0}:無法識別的遞項''{1}{2}'' +getopt.illegal={0}: 非法遞項 -- {1} +getopt.invalid={0}: 無效遞項 -- {1} +getopt.requires2={0}:遞項需芁有參敞 -- {1} +getopt.invalidValue=遾項 'has_arg'的倌 {0} 非法 + + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_cs.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_cs.properties new file mode 100755 index 0000000..3c14a03 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_cs.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle_cs.properties -- Czech language error messages +/* +/* Czech Messages Copyright (c) 1998 by Roman Szturc (Roman.Szturc@vsb.cz) +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: volba ''{1}'' je nejednoznaèná +getopt.arguments1={0}: volba ''--{1}'' nepøipou¹tí argument +getopt.arguments2={0}: volba ''{1}{2}'' nepøipou¹tí argument +getopt.requires={0}: volba ''{1}'' vyŸaduje argument +getopt.unrecognized={0}: nepøípustná volba ''--{1}'' +getopt.unrecognized2={0}: nepøípustná volba ''{1}{2}'' +getopt.illegal={0}: nepøípustná volba -- {1} +getopt.invalid={0}: neplatná volba -- {1} +getopt.requires2={0}: volba vyŸaduje argument -- {1} +getopt.invalidValue=Neplatná hodnota {0} parameteru 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_de.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_de.properties new file mode 100755 index 0000000..f741386 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_de.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle.properties -- German language error messages +/* +/* German Messages Copyright (c) 1999 by Bernhard Bablok (bablokb@gmx.net) +/* These messages are encoded in ISO-8859-1 +//* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: Option ''{1}'' ist zweideutig +getopt.arguments1={0}: Option ''--{1}'' erlaubt kein Argument +getopt.arguments2={0}: Option ''{1}{2}'' erlaubt kein Argument +getopt.requires={0}: Option ''{1}'' benötigt ein Argument +getopt.unrecognized={0}: Unbekannte Option ''--{1}'' +getopt.unrecognized2={0}: Unbekannte Option ''{1}{2}'' +getopt.illegal={0}: Verbotene Option -- {1} +getopt.invalid={0}: Ungültige Option -- {1} +getopt.requires2={0}: Option benötigt ein Argument -- {1} +getopt.invalidValue=Ungültiger Wert {0} für Parameter 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_es.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_es.properties new file mode 100755 index 0000000..ef358f4 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_es.properties @@ -0,0 +1,33 @@ +/************************************************************************** +/* MessagesBundle_es.properties -- Spanish language error messages +/* +/* Spanish Messages Copyright (c) 2004 by Daniel Pérez (dondani@gmail.com) +/* These messages are encoded in ISO-8859-1 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: la opción ''{1}'' es ambigua +getopt.arguments1={0}: la opción ''--{1}'' no permite un argumento +getopt.arguments2={0}: la opción ''{1}{2}'' no permite un argumento +getopt.requires={0}: la opción ''{1}'' requiere un argumento +getopt.unrecognized={0}: opción no reconocida ''--{1}'' +getopt.unrecognized2={0}: opción no reconocida ''{1}{2}'' +getopt.illegal={0}: opción ilegal -- {1} +getopt.invalid={0}: opción no válida -- {1} +getopt.requires2={0}: la opción requiere un argumento -- {1} +getopt.invalidValue=Valor no válido {0} para el parámetro 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_fr.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_fr.properties new file mode 100755 index 0000000..400447c --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_fr.properties @@ -0,0 +1,35 @@ +/************************************************************************** +/* MessagesBundle_fr.properties -- French language error messages +/* +/* Copyright (c) 1999 Free Software Foundation, Inc. +/* Michel Robitaille , 1996, +/* Edouard G. Parmelan , 1999. +/* These messages are encoded in ISO-8859-1 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: l'option ''{1}'' est ambiguë +getopt.arguments1={0}: l'option ''--{1}'' ne permet pas de paramètre +getopt.arguments2={0}: l'option ''{1}{2}'' ne permet pas de paramètre +getopt.requires={0}: l'option ''{1}'' requiert un paramètre +getopt.unrecognized={0}: option non reconnue ''--{1}'' +getopt.unrecognized2={0}: option non reconnue ''{1}{2}'' +getopt.illegal={0}: option illégale -- {1} +getopt.invalid={0}: option invalide -- {1} +getopt.requires2={0}: cette option requiert un paramètre -- {1} +getopt.invalidValue=Valeur invalide {0} pour le paramètre 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_hu.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_hu.properties new file mode 100755 index 0000000..f7af03b --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_hu.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Hungarian language error messages +/* +/* Copyright (c) 2001 by Gyula Csom (csom@informix.hu) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: opció ''{1}'' félreérthetõ +getopt.arguments1={0}: opció ''--{1}'' nem enged meg argumentumot +getopt.arguments2={0}: opció ''{1}{2}'' nem enged meg argumentumot +getopt.requires={0}: opció ''{1}'' argumentumot igényel +getopt.unrecognized={0}: ismeretlen opció ''--{1}'' +getopt.unrecognized2={0}: ismeretlen opció ''{1}{2}'' +getopt.illegal={0}: illegális opció -- {1} +getopt.invalid={0}: érvénytelen opció -- {1} +getopt.requires2={0}: az opció argumentumot igényel -- {1} +getopt.invalidValue=Érvénytelen érték {0} a következõ paraméterhez 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_it.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_it.properties new file mode 100755 index 0000000..c596c26 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_it.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Italian language error messages +/* +/* Copyright (c) 2005 by Sandro Tosi (matrixhasu@gmail.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: l'opzione ''{1}'' è ambigua +getopt.arguments1={0}: l'opzione ''--{1}'' non ammette un argomento +getopt.arguments2={0}: l'opzione ''{1}{2}'' non ammette un argomento +getopt.requires={0}: l'opzione ''{1}'' richiede un argomento +getopt.unrecognized={0}: opzione non riconosciuta ''--{1}'' +getopt.unrecognized2={0}: opzione non riconosciuta ''{1}{2}'' +getopt.illegal={0}: opzione illegale -- {1} +getopt.invalid={0}: opzione invalida -- {1} +getopt.requires2={0}: l'opzione richiede un argomento -- {1} +getopt.invalidValue=Valore non valido {0} per il parametro 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_ja.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_ja.properties new file mode 100755 index 0000000..5578972 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_ja.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Japanese language error messages +/* +/* Copyright (c) 2001 by Yasuoka Masahiko (yasuoka@yasuoka.net) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u66d6\u6627\u3067\u3059\u3002 +getopt.arguments1={0}: ''--{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 +getopt.arguments2={0}: ''{1}{2}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u3082\u3061\u307e\u305b\u3093\u3002 +getopt.requires={0}: ''{1}'' \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 +getopt.unrecognized={0}: ''--{1}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.unrecognized2={0}: ''{1}{2}'' \u306f\u7121\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.illegal={0}: -- {1} \u306f\u4e0d\u6b63\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002 +getopt.invalid={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002 +getopt.requires2={0}: -- {1} \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u3067\u3059\u3002 +getopt.invalidValue={0} \u306f\u3001'has_arg' \u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u4e0d\u6b63\u306a\u5024\u3067\u3059\u3002 + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_nl.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_nl.properties new file mode 100755 index 0000000..c614922 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_nl.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle_nl.properties -- Dutch language error messages +/* +/* Copyright (c) 1999 by Ernst de Haan (ernst@jollem.com) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: optie ''{1}'' is ambigue +getopt.arguments1={0}: optie ''--{1}'' staat geen argumenten toe +getopt.arguments2={0}: optie ''{1}{2}'' staat geen argumenten toe +getopt.requires={0}: optie ''{1}'' heeft een argument nodig +getopt.unrecognized={0}: onbekende optie ''--{1}'' +getopt.unrecognized2={0}: onbekende optie ''{1}{2}'' +getopt.illegal={0}: niet-toegestane optie -- {1} +getopt.invalid={0}: onjuiste optie -- {1} +getopt.requires2={0}: optie heeft een argument nodig -- {1} +getopt.invalidValue=Ongeldige waarde {0} voor parameter 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_no.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_no.properties new file mode 100755 index 0000000..bcb8c50 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_no.properties @@ -0,0 +1,32 @@ +/************************************************************************** +/* MessagesBundle.properties -- Norwegian language error messages +/* +/* Copyright (c) 1999 by Bjørn-Ove Heimsund (s811@ii.uib.no) +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: flagget ''{1}'' er flertydig +getopt.arguments1={0}: flagget ''--{1}'' tillater ikke et argument +getopt.arguments2={0}: flagget ''{1}{2}'' tillater ikke et argument +getopt.requires={0}: flagget ''{1}'' krever et argument +getopt.unrecognized={0}: ukjent flagg ''--{1}'' +getopt.unrecognized2={0}: ukjent flagg ''{1}{2}'' +getopt.illegal={0}: ugyldig flagg -- {1} +getopt.invalid={0}: ugyldig flagg -- {1} +getopt.requires2={0}: flagget krever et argument -- {1} +getopt.invalidValue=Ugyldig verdi {0} for parameter 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_pl.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_pl.properties new file mode 100755 index 0000000..9580853 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_pl.properties @@ -0,0 +1,36 @@ +/************************************************************************** +/* MessagesBundle_pl.properties -- Polish language error messages +/* +/* Polish Messages Copyright (c) 2006 by Krzysztof Szyma?ski (sirch.s@gmail.com) +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your option) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + + +getopt.ambigious={0}: opcja ''{1}''jest wieloznaczna +getopt.arguments1={0}: opcja ''--{1}'' nie akceptuje argumentu +getopt.arguments2={0}: opcja ''{1}{2}'' nie akceptuje argumentu +getopt.requires={0}: opcja ''{1}'' wymaga argumentu +getopt.unrecognized={0}: nierozpoznana opcja ''--{1}'' +getopt.unrecognized2={0}: nierozpoznana opcja ''{1}{2}'' +getopt.illegal={0}: nie dopuszczalna opcja --{1} +getopt.invalid={0}: b??dna opcja --{1} +getopt.requires2={0}: opcja --{1} oczekuje argumentu +getopt.invalidValue=Nie poprawna warto?? {0} argument 'has_arg' + + + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_ro.properties b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_ro.properties new file mode 100755 index 0000000..3c0b08b --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/MessagesBundle_ro.properties @@ -0,0 +1,34 @@ +/************************************************************************** +/* MessagesBundle_fr.properties -- Romanian language error messages +/* +/* Copyright (c) 1999 Free Software Foundation, Inc. +/* Marian-Nicolae Ion , 2004, +/* These messages are encoded in ISO-8859-2 +/* +/* This program is free software; you can redistribute it and/or modify +/* it under the terms of the GNU Library General Public License as published +/* by the Free Software Foundation; either version 2 of the License or +/* (at your optiunea) any later version. +/* +/* This program is distributed in the hope that it will be useful, but +/* WITHOUT ANY WARRANTY; without even the implied warranty of +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/* GNU Library General Public License for more details. +/* +/* You should have received a copy of the GNU Library General Public License +/* along with this program; see the file COPYING.LIB. If not, write to +/* the Free Software Foundation Inc., 59 Temple Place - Suite 330, +/* Boston, MA 02111-1307 USA +/**************************************************************************/ + +getopt.ambigious={0}: opÅ£iunea ''{1}'' este ambiguă +getopt.arguments1={0}: opÅ£iunea ''--{1}'' nu acceptă parametru +getopt.arguments2={0}: opÅ£iunea ''{1}{2}'' nu acceptă parametru +getopt.requires={0}: opÅ£iunea ''{1}'' cere un parametru +getopt.unrecognized={0}: opÅ£iune necunoscută ''--{1}'' +getopt.unrecognized2={0}: opÅ£iune necunoscută ''{1}{2}'' +getopt.illegal={0}: opÅ£iune ilegală -- {1} +getopt.invalid={0}: opÅ£iune invalidă -- {1} +getopt.requires2={0}: această opÅ£iune cere un parametru -- {1} +getopt.invalidValue=Valoare invalidă {0} pentru parametrul 'has_arg' + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/README b/ssdd_p2_100291121_100292107/gnu/getopt/README new file mode 100755 index 0000000..48451f7 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/README @@ -0,0 +1,57 @@ +This is a Java port of the GNU getopt functions based on the versions +contained in glibc 2.0.6. I have attempted to keep the functionality +and programmer's interface as faithful to the original as possible. +However, due to differences between Java and C, some minor changes +has to me made. (Given the obtuse interface in the clib version, +perhaps some major changes should have been made). This should not +affect the way options appear to be parsed to the end user of program +that uses this Java getopt. The use of these classes are completely +documented in the javadoc comments, so I will not repeat that info here. + +Note that since these objects are part of a package called "gnu.getopt", +they need to be in a subdirectory called gnu/getopt somewhere in your +CLASSPATH. This includes the "MessagesBundle" files. + +I am not aware of any bugs. If you find one though, please send email +to me at arenn@urbanophile.com. The more detailed a bug report the better. +Bug fixes are also welcome at the same address. Please reference +release number "1.0.13". If you use this code, it would be helpful +if you let me know so that I can let you know if anything changes or +if any major bugs have been found/fixed. + +I have included a Makefile for compiling the code. If you do not have +access to make, then you can simply do a "javac *.java" at the OS +command line (or follow your vendor's instructions for compiling a +Java class). To build the documentation, do a "make docs" +or "javadoc -public *.java". Note that the images needed by the html +generated by javadoc are not included. You will need to get those +from some other Java documentation package. + +Note that the Makefile is not compliant with the GNU makefile +standards as I anticipate that at some point a master makefile will +be created for various GNU Java packages. And it is serious overkill +to create a megabloat makefile (kinda like this megabloat README) for +such a simple package. + +There is sample code showing how to use getopt available in the +GetoptDemo.java file. + +NEW: A support file for the "ant" build process was contributed. Here are +some brief things you can do with it. Note that I have not ever used this +so it is doubly AS IS. + +Get ant from jakarta project (see jakarta.apache.org/ant), and run it with +one of these target (all is default target): +ant prepare: create the needed directories +ant classes: compile the java classes +ant jar: create the jar archive +ant javadoc: create the javadoc +ant all: create jar and javadoc +ant clean: clean everything + +Happy hacking, + +Aaron. +arenn@urbanophile.com +http://www.urbanophile.com/arenn/ + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/buildx.xml b/ssdd_p2_100291121_100292107/gnu/getopt/buildx.xml new file mode 100755 index 0000000..ad51e8f --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/buildx.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ssdd_p2_100291121_100292107/gnu/getopt/gnu.getopt.Getopt.html b/ssdd_p2_100291121_100292107/gnu/getopt/gnu.getopt.Getopt.html new file mode 100755 index 0000000..425de42 --- /dev/null +++ b/ssdd_p2_100291121_100292107/gnu/getopt/gnu.getopt.Getopt.html @@ -0,0 +1,639 @@ + + + + + + + Class gnu.getopt.Getopt + + + + +

Mpuk&E2u8h;w{I^ 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 REGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USERNAME IN USE"); + return RC.USER_ERROR; + case 2: + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> REGISTER FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to unregister from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist + * @return ERROR if another error occurred + */ + static RC unregister(String user) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "UNREGISTER" is sent indicating the operation + String operation = new String("UNREGISTER"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be unregistered + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* If we try to unregister the user that is currently bound and connected + to the client, it is unbound from the client */ + if(connected_user != null){ + /* This protects against null pointer exception when a CONNECT command is executed and + the server marks the user as connected, but then the client is terminated without + executing DISCONNECT from the server */ + if(connected_user.equals(user)){ + connected_user = null; + /* If the unregister also disconnect a user linked to the client (connected and with a + server thread running, kill also the running thread*/ + server_thread.kill(); + } + } + + System.out.println("c> UNREGISTER OK"); + return RC.OK; + case 1: + System.out.println("c> USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> UNREGISTER FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to connect to the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already connected + * @return ERROR if another error occurred + */ + static RC connect(String user) + { + + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + /* Before trying to connect, if a user is already connected, quit the function with RC.ERROR */ + if(connected_user != null){ + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "CONNECT" is sent indicating the operation + String operation = new String("CONNECT"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be connected + out.writeBytes(user); + out.write(0); + + /* Create ServerSocket. We provide 0 to assign any available port number and 10 as maximum + number of queued requests */ + ServerSocket sock = new ServerSocket(0, 10); + /* Get the port at which the socket is listening */ + int port = sock.getLocalPort(); + + //4. A string is sent with the port number listening in the client + out.writeBytes(String.valueOf(port)); + out.write(0); + + //5. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //6. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* Start a new thread where */ + server_thread.start(sock); + /* Bind the user to the client */ + connected_user = user; + System.out.println("c> CONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> CONNECT FAIL, USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> USER ALREADY CONNECTED"); + return RC.USER_ERROR; + case 3: + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> CONNECT FAIL"); + return RC.ERROR; + } + + /** + * @param user - User name to disconnect from the system + * + * @return OK if successful + * @return USER_ERROR if the user does not exist or if it is already disconnected + * @return ERROR if another error occurred + */ + static RC disconnect(String user) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + //2. The string "DISCONNECT" is sent indicating the operation + String operation = new String("DISCONNECT"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user to be disconnected + out.writeBytes(user); + out.write(0); + + //4. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + //5. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + /* Unbind the user from the client */ + connected_user = null; + server_thread.kill(); + System.out.println("c> DISCONNECT OK"); + return RC.OK; + case 1: + System.out.println("c> DISCONNECT FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> DISCONNECT FAIL / USER NOT CONNECTED"); + return RC.USER_ERROR; + case 3: + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } + } + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + /* In case of error in the disconnection process, stop the execution of the thread + and unbind the user from the client as if the disconnection has been made. But if the + disconnect command executed was not executed for the user that is bound to the client + then nothing is done */ + if(connected_user != null){ + /* Check if the user coincides with the linked user */ + if(connected_user.equals(user)){ + connected_user = null; + server_thread.kill(); + } + } + System.out.println("c> DISCONNECT FAIL"); + return RC.ERROR; + } + + /** + * @param user - Receiver user name + * @param message - Message to be sent + * + * @return OK if the server had successfully delivered the message + * @return USER_ERROR if the user is not connected (the message is queued for delivery) + * @return ERROR the user does not exist or another error occurred + */ + static RC send(String user, String message) + { + /////////////////////////////////////////////// + /////////////// PROTOCOL /////////////// + /////////////////////////////////////////////// + try{ + /* If there is not a user connected in the client, return error RC.ERROR */ + if(connected_user == null){ + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + //1. Connect to the server, using the IP and port passed in the command line + Socket sc = new Socket(_server, _port); + + DataOutputStream out = new DataOutputStream(sc.getOutputStream()); + DataInputStream in = new DataInputStream(sc.getInputStream()); + + + //2. The string "SEND" is sent indicating the operation + String operation = new String("SEND"); + out.writeBytes(operation); + out.write(0); //Insert ASCII 0 at the end + + //3. A string of characters is sent with the user that sends the message + out.writeBytes(connected_user); + out.write(0); + + //4. A string of characters is sent with the user that receives the message + out.writeBytes(user); + out.write(0); + + //5. A string of maximum 256 (including ASCII 0) characters is sent with the message to be sent + out.writeBytes(trimMessage(message)); //Sends a string of 255 characters + out.write(0); + + //6. Check response from the server. If 0, success; if 1 user does not exist; if 2 other case + byte response = in.readByte(); + + String msg_id = new String(); + /* If response is 0 (OK), prepare to read the ID of the message */ + if(response == 0){ + + /* Create BufferedReader for easy reading a string */ + /* + BufferedReader inString = new BufferedReader(new InputStreamReader(sc.getInputStream())); + msg_id = inString.readLine();*/ + byte ch; + do{ + ch = in.readByte(); + if (ch != 0) msg_id = msg_id + ((char) ch); + } while(ch != 0); + } + + //7. Close connection + sc.close(); + out.close(); + in.close(); + + //Decode the response from the server + switch(response){ + case 0: + System.out.println("c> SEND OK - MESSAGE " + msg_id); + return RC.OK; + case 1: + System.out.println("c> SEND FAIL / USER DOES NOT EXIST"); + return RC.USER_ERROR; + case 2: + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + + } + catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + System.out.println("c> SEND FAIL"); + return RC.ERROR; + } + /** + * @brief Trims the input message to 255 characters + * + * @param message - String to be trimmed + * + * @return message - Result String + */ + static String trimMessage(String message){ + /* Maximum length is of 255 characters because 1 character is reserved for ASCII 0 */ + int maxLength = 255; + + if(message.length() > maxLength){ + message = message.substring(0, maxLength); + } + + return message; + } + + /** + * @brief Command interpreter for the client. It calls the protocol functions. + */ + static void shell() + { + boolean exit = false; + String input; + String [] line; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!exit) { + try { + System.out.print("c> "); + input = in.readLine(); + line = input.split("\\s"); + + if (line.length > 0) { + /*********** REGISTER *************/ + if (line[0].equals("REGISTER")) { + if (line.length == 2) { + register(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: REGISTER "); + } + } + + /********** UNREGISTER ************/ + else if (line[0].equals("UNREGISTER")) { + if (line.length == 2) { + unregister(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: UNREGISTER "); + } + } + + /************ CONNECT *************/ + else if (line[0].equals("CONNECT")) { + if (line.length == 2) { + connect(line[1]); // userName = line[1] AQUI CREAMOS EL HILO SERVIDOR + } else { + System.out.println("Syntax error. Usage: CONNECT "); + } + } + + /********** DISCONNECT ************/ + else if (line[0].equals("DISCONNECT")) { + if (line.length == 2) { + disconnect(line[1]); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: DISCONNECT "); + } + } + + /************** SEND **************/ + else if (line[0].equals("SEND")) { + if (line.length >= 3) { + // Remove first two words + String message = input.substring(input.indexOf(' ')+1); + message = message.substring(message.indexOf(' ')+1); + send(line[1], message); // userName = line[1] + } else { + System.out.println("Syntax error. Usage: SEND "); + } + } + + /************** QUIT **************/ + else if (line[0].equals("QUIT")){ + if (line.length == 1) { + exit = true; + } else { + System.out.println("Syntax error. Use: QUIT"); + } + } + + /************* UNKNOWN ************/ + else { + System.out.println("Error: command '" + line[0] + "' not valid."); + } + } + } catch (java.io.IOException e) { + System.out.println("Exception: " + e); + //e.printStackTrace(); + } + } + } + + /** + * @brief Prints program usage + */ + static void usage() + { + System.out.println("Usage: java -cp . client -s -p "); + } + + /** + * @brief Parses program execution arguments + */ + static boolean parseArguments(String [] argv) + { + Getopt g = new Getopt("client", argv, "ds:p:"); + + int c; + String arg; + + while ((c = g.getopt()) != -1) { + switch(c) { + //case 'd': + // _debug = true; + // break; + case 's': + _server = g.getOptarg(); + break; + case 'p': + arg = g.getOptarg(); + _port = Integer.parseInt(arg); + break; + case '?': + System.out.print("getopt() returned " + c + "\n"); + break; // getopt() already printed an error + default: + System.out.print("getopt() returned " + c + "\n"); + } + } + + if (_server == null) + return false; + + if ((_port < 1024) || (_port > 65535)) { + System.out.println("Error: Port must be in the range 1024 <= port <= 65535"); + return false; + } + + return true; + } + + + + /********************* MAIN **********************/ + + public static void main(String[] argv) + { + if(!parseArguments(argv)) { + usage(); + return; + } + + /* Creates a thread that catches Ctrl+C kill command from the CLI and disconnects from the server the + connected user of the client (bound to the client) */ + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() { + if(connected_user != null){ + disconnect(connected_user); + } + } + }); + + shell(); + System.out.println("+++ FINISHED +++"); + } +} + +/********************* SERVERTHREAD **********************/ + +class ServerThread extends Thread{ + + private ServerSocket sc; //ServerSocket of the listening thread + private volatile Thread blinker; //Thread of type volatile that will be attached to the ServerThread + private Socket sd; + + /** + * @brief Constructor. Starts the server thread and initializes the ServerSocket property + * + * @param sc - Initialized ServerSocket + * + */ + public void start(ServerSocket sc){ + blinker = new Thread(this); + blinker.start(); + this.sc = sc; + } + + /** + * @brief Destroys the server thread + */ + public void kill(){ + try{ + this.sd.close(); + } + catch(IOException e){ + System.out.println("Exception: " + e); + } + blinker = null; + } + + /** + * @brief Main execution code sequence of the server thread. Listens to incoming connections + */ + public void run(){ + Thread thisThread = Thread.currentThread(); + sd = null; + while(blinker == thisThread){ + try{ + /* Waiting for connection */ + sd = this.sc.accept(); + + DataInputStream msg_in = new DataInputStream(sd.getInputStream()); + /* Receive the string encoding the operation */ + String operation = new String(); + byte ch; + do{ + ch = msg_in.readByte(); + if (ch != 0) operation = operation + ((char) ch); + + } while(ch != 0); + /* Prepare the string for the ID of the message sent/received */ + String id = new String(); + + switch(operation){ + case "SEND_MESSAGE": + /* Read the sender username from the socket */ + String sender = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) sender = sender + ((char) ch); + + } while(ch != 0); + /* Read the ID of the received message */ + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + /* Read the string containing the body of the message */ + String msg = new String(); + do{ + ch = msg_in.readByte(); + if (ch != 0) msg = msg + ((char) ch); + + } while(ch != 0); + /* Prompt */ + System.out.println("MESSAGE " + id + " FROM " + sender + ":"); + System.out.println("\t" + msg); + System.out.println("END"); + System.out.print("c> "); + break; + + case "SEND_MESS_ACK": + /* Read the id of the message being acknowledged */ + do{ + ch = msg_in.readByte(); + if (ch != 0) id = id + ((char) ch); + } while(ch != 0); + + System.out.println("SEND MESSAGE " + id + " OK"); + System.out.print("c> "); + break; + } + sd.close(); + + } + catch(Exception e){ + System.out.println("Exception: " + e); + //e.printStackTrace(); + this.kill(); + } + } + /* If the thread exits the loop for any reason, try to close the socket */ + try{ + sd.close(); + } + catch(Exception e){ + System.out.println("Exception: " + e); + this.kill(); + } + } +} diff --git a/ssdd_p1_100291121_100292107/msg_list.c b/ssdd_p1_100291121_100292107/msg_list.c new file mode 100644 index 0000000..ce0b614 --- /dev/null +++ b/ssdd_p1_100291121_100292107/msg_list.c @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include "msg_list.h" + + +/* Creates a new message struct and enqueues it to the end of the message queue + Returns 0 if the message is stored + -1 if malloc error */ +int enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender){ + struct msg *temp; + /* Allocate the space for the new message */ + temp = (struct msg *) malloc(sizeof(struct msg)); + /* If malloc returns error (full memory or other) */ + if(temp == NULL) return -1; + strcpy(temp->body, message); + strcpy(temp->sender, sender); + temp->id = id; + temp->next = NULL; + + if (*head == NULL){ /* Queue is empty */ + temp->next = *head; + *head = temp; + } + else{ + /* If the queue is not empty, iterate to the end and append the message */ + struct msg *last = *head; + while(last->next != NULL){ + last = last->next; + } + last->next = temp; + } + return 0; +} +/* Deletes the message at the head of the queue and returns the new + head of the list + Return a pointer to the next message in the queue + NULL if the list is left empty */ +struct msg * dequeueMsg(struct msg **head){ + struct msg* temp = *head; + /* Head pointing to the next element */ + *head = temp->next; + /* Free the resources of the first message */ + free(temp); + /* Return the new head of the queue */ + return *head; +} + +/* Deletes all the messages in the list from the head of the list +passed as paremeter */ +void deleteAllMsgs(struct msg ** head){ + struct msg **temp = head; + while(*temp != NULL){ + *temp = dequeueMsg(&(*temp)); + } + return; +} \ No newline at end of file diff --git a/ssdd_p1_100291121_100292107/msg_list.h b/ssdd_p1_100291121_100292107/msg_list.h new file mode 100644 index 0000000..afe2e09 --- /dev/null +++ b/ssdd_p1_100291121_100292107/msg_list.h @@ -0,0 +1,13 @@ +#define MAX_MSG 256 + +struct msg{ + char body[MAX_MSG]; /* Content of the message */ + char sender[MAX_MSG]; /* Sender of the message */ + unsigned int id; /* ID assigned to the message */ + struct msg *next; /* Pointer to the next message in the list */ +}; + +/* ================FUNCTION HEADERS================ */ +int enqueueMsg(struct msg **head, char * message, unsigned int id, char * sender); +struct msg * dequeueMsg(struct msg **head); +void deleteAllMsgs(struct msg ** head); \ No newline at end of file diff --git a/ssdd_p1_100291121_100292107/read_line.c b/ssdd_p1_100291121_100292107/read_line.c new file mode 100644 index 0000000..c2038c3 --- /dev/null +++ b/ssdd_p1_100291121_100292107/read_line.c @@ -0,0 +1,68 @@ +#include +#include +#include +#include +#include "read_line.h" + +int send_msg(int socket, char *message, int length) +{ + int r; + int l = length; + + + do { + r = send(socket, message, l, 0); + l = l -r; /* Pending data to send */ + message = message + r; /* */ + } while ((l>0) && (r>=0)); /* We check the returned value in case all the data was not sent */ + + if (r < 0) + return (-1); /* fail */ + else + return(0); /* success */ +} + +ssize_t readLine(int fd, void *buffer, size_t n) +{ + ssize_t numRead; /* num of bytes fetched by last read() */ + size_t totRead; /* total bytes read so far */ + char *buf; + char ch; + + + if (n <= 0 || buffer == NULL) { + errno = EINVAL; + return -1; + } + + buf = buffer; + totRead = 0; + + for (;;) { + numRead = read(fd, &ch, 1); /* read a byte */ + + if (numRead == -1) { + if (errno == EINTR) /* interrupted -> restart read() */ + continue; + else + return -1; /* some other error */ + } else if (numRead == 0) { /* EOF */ + if (totRead == 0) /* no byres read; return 0 */ + return 0; + else + break; + } else { /* numRead must be 1 if we get here*/ + if (ch == '\n') + break; + if (ch == '\0') + break; + if (totRead < n - 1) { /* discard > (n-1) bytes */ + totRead++; + *buf++ = ch; + } + } + } + + *buf = '\0'; + return totRead; +} diff --git a/ssdd_p1_100291121_100292107/read_line.h b/ssdd_p1_100291121_100292107/read_line.h new file mode 100644 index 0000000..e3d4c9e --- /dev/null +++ b/ssdd_p1_100291121_100292107/read_line.h @@ -0,0 +1,5 @@ +#include + +int send_msg(int socket, char *message, int length); +int recv_msg(int socket, char *message, int length); +ssize_t readLine(int fd, void *buffer, size_t n); diff --git a/ssdd_p1_100291121_100292107/report.pdf b/ssdd_p1_100291121_100292107/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a186cbb5b54c32d5996df98f5148173bd8ad3a55 GIT binary patch literal 703393 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