~ TTCP_AXP.BCK.J TTCP_AXP.BCKABACKUP/LOG TTCP.C;0,TTCP.OBJ;0,TTCP.EXE;0 TTCP_AXP.BCK/SAVE/INTER JEREMY  Ø뗵V8.4 _DAVE:: _DAVE$DKA500: V8.4-2L2 ~ \*[JEREMY.TTCP]TTCP.C;12+,+.0/ 4V0%H-) 0123KPWO&56{ޗ7{ޗ89G HJJ/* * T T C P . C *8 * Test TCP connection. Makes a connection on port 20008 * and transfers zero buffers or data copied from stdin. *: * Usable on 4.2, 4.3, and 4.1a systems by defining one of * BSD42 BSD43 (BSD41a) *1 * Modified for operation under 4.2BSD, 18 Dec 84 * T.C. Slattery, USNA@ * Minor improvements, Mike Muuss and Terry Slattery, 16-Oct-85. *" * Modified for use with MultiNet.. * L. Stuart Vance, TGV, Inc. 28 August 1989 *< * Modified for VSI TCP/IP Services for OpenVMS (TCPIP V5.7) * J. Begg, VSM 4-Nov-2020 * */ #ifndef lintVstatic char RCSid[] = "@(#)$Header: ttcp.c,v 1.10 87/09/02 23:26:36 mike Exp $ (BRL)";#endif #define BSD43/* #define BSD42 *//* #define BSD41a */#include #include #include #include &#if defined(vax11c) || defined(__DECC)3#if !defined(__DECC_VER) || (__DECC_VER < 50200000)B void bcopy(void *__source, void *__destination, int __length);- void bzero(void *__buffer, int __length);$#endif /* Not DEC C V5.2 or later */#include #if defined(MULTINET)2#include "multinet_root:[multinet.include]errno.h"6#include "multinet_root:[multinet.include.sys]types.h"7#include "multinet_root:[multinet.include.sys]socket.h"7#include "multinet_root:[multinet.include.netinet]in.h"2#include "multinet_root:[multinet.include]netdb.h"J#include "multinet_root:[multinet.include.sys]time.h" /* struct timeval */6#include "multinet_root:[multinet.include.arpa]inet.h" #ifdef errno #undef errno#endif#define errno socket_errno#define perror socket_perror#else /* MULTINET */#include #include #include #include #include #include (#define socket_read(f,b,l) recv(f,b,l,0))#define socket_write(f,b,l) send(f,b,l,0)#endif#else#include #include #include #include #include +#include /* struct timeval */#endif #ifdef SYSV#include #include #else&#if defined(vax11c) || defined(__DECC)#include "resource.h"#else#include #endif#endif#ifndef SO_RCVMIN<#define SO_RCVMIN 0x10FF /* minimum size read to try for */#endif /* SO_RCVMIN */struct sockaddr_in sinme;struct sockaddr_in sinhim;struct sockaddr_in sindum;struct sockaddr_in frominet; int domain;unsigned int fromlen;%int fd; /* fd of network socket */*int buflen = 1024; /* length of buffer */(char *buf; /* ptr to dynamic buffer */=int nbuf = 1024; /* number of buffers to send in sinkmode */int window = 0;int rcvmin = 0;&int udp = 0; /* 0 = tcp, !0 = udp */1int options = SO_REUSEADDR; /* socket options */3int one = 1; /* for 4.3 BSD style setsockopt() */)short port = 2000; /* TCP port number */'char *host; /* ptr to name of host */.int trans; /* 0=receive, !0=transmit mode */7int sinkmode; /* 0=normal I/O, !0=sink/source mode */struct hostent *addr;extern int errno;char Usage[] = "\%Usage: ttcp -t [-options] host out\n\2 -l## length of network read buf (default 1024)\n\+ -s sink (discard) all data from network\n\0 -p## port number to listen at (default 2000)\n\> -B Only output full blocks, as specified in -l## (for TAR)\n\ -u use UDP instead of TCP\n\# -w TCP window set (socket size)\n\ -m## Argument for SO_RCVMIN\n\";char stats[128];#double t; /* transmission time */$long nbytes = 0; /* bytes on net */#int b_flag = 0; /* use mread() */void prep_timer();double read_timer();4double cput, realt; /* user, real time (seconds) */!#if defined(__DECC)||defined(VAX)& typedef struct my_rusage rusage_t;. int mread(int, register char *, unsigned);# int getrusage(int, rusage_t *);! int err(char *), mes(char *); int delay(int);! int Nwrite(int, void *, int); int Nread(int, void *, int);/ int pattern(register char *, register int);#else# typedef struct rusage rusage_t;#endifmain(argc,argv) int argc; char **argv;{ unsigned long addr_tmp; if (argc < 2) goto usage; argv++; argc--;( while( argc>0 && argv[0][0] == '-' ) { switch (argv[0][1]) { case 'B': b_flag = 1; break; case 't': trans = 1; break; case 'r': trans = 0; break; case 'd': options |= SO_DEBUG; break; case 'n': nbuf = atoi(&argv[0][2]); break; case 'l': buflen = atoi(&argv[0][2]); break; case 'w': window = atoi(&argv[0][2]); break; case 'm': rcvmin = atoi(&argv[0][2]); break; case 's':- sinkmode = 1; /* source or sink, really */ break; case 'p': port = atoi(&argv[0][2]); break; case 'u': udp = 1; break; default: goto usage; } argv++; argc--; } if(trans) { /* xmitr */ if (argc != 1) goto usage;) bzero((char *)&sinhim, sizeof(sinhim)); host = argv[0]; if (atoi(host) > 0 ) { /* Numeric */ sinhim.sin_family = AF_INET; #ifdef cray addr_tmp = inet_addr(host); sinhim.sin_addr = addr_tmp;#else, sinhim.sin_addr.s_addr = inet_addr(host);#endif } else {* if ((addr=gethostbyname(host)) == NULL) err("bad hostname");( sinhim.sin_family = addr->h_addrtype;8 bcopy(addr->h_addr,(char*)&addr_tmp, addr->h_length); #ifdef cray sinhim.sin_addr = addr_tmp;#else% sinhim.sin_addr.s_addr = addr_tmp;#endif /*cray*/ } sinhim.sin_port = htons(port);( sinme.sin_port = 0; /* free choice */ } else { /* rcvr */# memset(&sinme, 0, sizeof(sinme)); sinme.sin_family = AF_INET; sinme.sin_port = htons(port);% sinme.sin_addr.s_addr = INADDR_ANY; }4 if( (buf = (char *)malloc(buflen)) == (char *)NULL) err("malloc");8 fprintf(stderr,"ttcp%s: nbuf=%d, buflen=%d, port=%d\n", trans?"-t":"-r", nbuf, buflen, port);? if ((fd = socket(AF_INET, udp?SOCK_DGRAM:SOCK_STREAM, 0)) < 0) err("socket"); mes("socket");< if (bind(fd, (struct sockaddr *)&sinme, sizeof(sinme)) < 0) err("bind"); mes("bind"); if (!udp) { if (trans) {) /* We are the client if transmitting */ if(options) { #ifdef BSD425 if( setsockopt(fd, SOL_SOCKET, options, 0, 0) < 0)#else /*BSD43*/B if( setsockopt(fd, SOL_SOCKET, options, &one, sizeof(one)) < 0)#endif err("setsockopt"); }B if(connect(fd, (struct sockaddr *)&sinhim, sizeof(sinhim) ) < 0) err("connect"); mes("connect"); } else {% /* otherwise, we are the server and& * should listen for the connections */ if(options) { #ifdef BSD425 if( setsockopt(fd, SOL_SOCKET, options, 0, 0) < 0)#else /*BSD43*/B if( setsockopt(fd, SOL_SOCKET, options, &one, sizeof(one)) < 0)#endif err("setsockopt"); mes("setsockopt"); }? if (listen(fd,1) < 0) err("listen"); /* allow a queue of 0 */ fromlen = sizeof(frominet); domain = AF_INET;B if((fd=accept(fd, (struct sockaddr *)&frominet, &fromlen) ) < 0) err("accept"); mes("accept"); } } if (window) {I if( setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &window, sizeof(window)) < 0) err("setsockopt");I if( setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &window, sizeof(window)) < 0) err("setsockopt"); } if (rcvmin) {I if (setsockopt(fd, SOL_SOCKET, SO_RCVMIN, &rcvmin, sizeof(rcvmin)) < 0) err("setsockopt"); } prep_timer(); errno = 0; if (sinkmode) { register int cnt; if (trans) { pattern( buf, buflen );8 if(udp) (void)Nwrite( fd, buf, 4 ); /* rcvr start */4 while (nbuf-- && Nwrite(fd,buf,buflen) == buflen) nbytes += buflen;6 if(udp) (void)Nwrite( fd, buf, 4 ); /* rcvr end */ } else {+ while ((cnt=Nread(fd,buf,buflen)) > 0) { static int going = 0; if( cnt <= 4 ) { if( going ) break; /* "EOF" */ going = 1; prep_timer(); } else nbytes += cnt; } } } else { register int cnt; if (trans) { #ifdef __DECC/ while((cnt=fread(buf,buflen,1,stdin)) > 0 &&! Nwrite(fd,buf,cnt) == cnt)#else( while((cnt=read(0,buf,buflen)) > 0 &&! Nwrite(fd,buf,cnt) == cnt)#endif nbytes += cnt; } else { #ifdef __DECC* while((cnt=Nread(fd,buf,buflen)) > 0) { fwrite(buf,cnt,1,stdout);#else* while((cnt=Nread(fd,buf,buflen)) > 0 &&! write(1,buf,cnt) == cnt) {#endif nbytes += cnt; } } } if(errno) err("IO");' (void)read_timer(stats,sizeof(stats)); if(udp&&trans) {, (void)Nwrite( fd, buf, 4 ); /* rcvr end */, (void)Nwrite( fd, buf, 4 ); /* rcvr end */, (void)Nwrite( fd, buf, 4 ); /* rcvr end */, (void)Nwrite( fd, buf, 4 ); /* rcvr end */ }8 fprintf(stderr,"ttcp%s: %s\n", trans?"-t":"-r", stats);! if( cput <= 0.0 ) cput = 0.001;# if( realt <= 0.0 ) realt = 0.001;0 fprintf(stderr,"ttcp%s: %ld bytes processed\n", trans?"-t":"-r", nbytes );N fprintf(stderr,"ttcp%s: %9g CPU sec = %9g KB/cpu sec, %9g Kbits/cpu sec\n", trans?"-t":"-r", cput, ((double)nbytes)/cput/1024,! ((double)nbytes)*8/cput/1024 );J fprintf(stderr,"ttcp%s: %9g real sec = %9g KB/real sec, %9g Kbits/sec\n", trans?"-t":"-r", realt, ((double)nbytes)/realt/1024," ((double)nbytes)*8/realt/1024 ); exit(0);usage: fprintf(stderr,Usage); exit(1);}err(s)char *s;{- fprintf(stderr,"ttcp%s: ", trans?"-t":"-r"); perror(s);$ fprintf(stderr,"errno=%d\n",errno); exit(1);}mes(s)char *s;{4 fprintf(stderr,"ttcp%s: %s\n", trans?"-t":"-r", s);}pattern( cp, cnt )register char *cp;register int cnt;{ register char c; c = 0; while( cnt-- > 0 ) {# while( !isprint((c&0x7F)) ) c++; *cp++ = (c++&0x7F); }}/******* timing *********/ #ifdef SYSVextern long time();static long time0;static struct tms tms0;#else@static struct timeval time0; /* Time at which timeing started */Astatic rusage_t ru0; /* Resource utilization at the start */static void prusage();static void tvadd();static void tvsub();static void psecs();#endif/* * P R E P _ T I M E R */void prep_timer(){ #ifdef SYSV (void)time(&time0); (void)times(&tms0);#else, gettimeofday(&time0, (struct timezone *)0); getrusage(RUSAGE_SELF, &ru0);#endif}/* * R E A D _ T I M E R * */doubleread_timer(str,len) char *str;{ #ifdef SYSV long now; struct tms tmsnow; char line[132]; (void)time(&now); realt = now-time0; (void)times(&tmsnow);* cput = tmsnow.tms_utime - tms0.tms_utime; cput /= HZ;# if( cput < 0.00001 ) cput = 0.01;% if( realt < 0.00001 ) realt = cput;6 sprintf(line,"%g CPU secs in %g elapsed secs (%g%%)", cput, realt, cput/realt*100 );! (void)strncpy( str, line, len ); return( cput );#else /* BSD */ struct timeval timedol; rusage_t ru1; struct timeval td; struct timeval tend, tstart; char line[132]; getrusage(RUSAGE_SELF, &ru1);. gettimeofday(&timedol, (struct timezone *)0);- prusage(&ru0, &ru1, &timedol, &time0, line);! (void)strncpy( str, line, len ); /* Get real time */ tvsub( &td, &timedol, &time0 );4 realt = td.tv_sec + ((double)td.tv_usec) / 1000000; /* Get CPU time (user+sys) */. tvadd( &tend, &ru1.ru_utime, &ru1.ru_stime );0 tvadd( &tstart, &ru0.ru_utime, &ru0.ru_stime ); tvsub( &td, &tend, &tstart );3 cput = td.tv_sec + ((double)td.tv_usec) / 1000000;& if( cput < 0.00001 ) cput = 0.00001; return( cput );#endif} #ifndef SYSV static voidprusage(r0, r1, e, b, outp) register rusage_t *r0, *r1; struct timeval *e, *b; char *outp;{ struct timeval tdiff; register time_t t; register char *cp; register int i; int ms;3 t = (r1->ru_utime.tv_sec-r0->ru_utime.tv_sec)*100+7 (r1->ru_utime.tv_usec-r0->ru_utime.tv_usec)/10000+3 (r1->ru_stime.tv_sec-r0->ru_stime.tv_sec)*100+7 (r1->ru_stime.tv_usec-r0->ru_stime.tv_usec)/10000;A ms = (e->tv_sec-b->tv_sec)*100 + (e->tv_usec-b->tv_usec)/10000;#define END(x) {while(*x) x++;}> cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; for (; *cp; cp++) { if (*cp != '%') *outp++ = *cp;! else if (cp[1]) switch(*++cp) { case 'U':/ tvsub(&tdiff, &r1->ru_utime, &r0->ru_utime);? sprintf(outp,"%d.%01d", tdiff.tv_sec, tdiff.tv_usec/100000); END(outp); break; case 'S':/ tvsub(&tdiff, &r1->ru_stime, &r0->ru_stime);? sprintf(outp,"%d.%01d", tdiff.tv_sec, tdiff.tv_usec/100000); END(outp); break; case 'E': psecs(ms / 100, outp); END(outp); break; case 'P':9 sprintf(outp,"%d%%", (int) (t*100 / ((ms ? ms : 1)))); END(outp); break; case 'W':# i = r1->ru_nswap - r0->ru_nswap; sprintf(outp,"%d", i); END(outp); break; case 'X':B sprintf(outp,"%d", t == 0 ? 0 : (r1->ru_ixrss-r0->ru_ixrss)/t); END(outp); break; case 'D':" sprintf(outp,"%d", t == 0 ? 0 :B (r1->ru_idrss+r1->ru_isrss-(r0->ru_idrss+r0->ru_isrss))/t); END(outp); break; case 'K':" sprintf(outp,"%d", t == 0 ? 0 :2 ((r1->ru_ixrss+r1->ru_isrss+r1->ru_idrss) -4 (r0->ru_ixrss+r0->ru_idrss+r0->ru_isrss))/t); END(outp); break; case 'M':' sprintf(outp,"%d", r1->ru_maxrss/2); END(outp); break; case 'F':3 sprintf(outp,"%d", r1->ru_majflt-r0->ru_majflt); END(outp); break; case 'R':3 sprintf(outp,"%d", r1->ru_minflt-r0->ru_minflt); END(outp); break; case 'I':5 sprintf(outp,"%d", r1->ru_inblock-r0->ru_inblock); END(outp); break; case 'O':5 sprintf(outp,"%d", r1->ru_oublock-r0->ru_oublock); END(outp); break; case 'C':3 sprintf(outp,"%d+%d", r1->ru_nvcsw-r0->ru_nvcsw," r1->ru_nivcsw-r0->ru_nivcsw ); END(outp); break; } } *outp = '\0';} static voidtvadd(tsum, t0, t1) struct timeval *tsum, *t0, *t1;{( tsum->tv_sec = t0->tv_sec + t1->tv_sec;+ tsum->tv_usec = t0->tv_usec + t1->tv_usec; if (tsum->tv_usec > 1000000)+ tsum->tv_sec++, tsum->tv_usec -= 1000000;} static voidtvsub(tdiff, t1, t0)! struct timeval *tdiff, *t1, *t0;{) tdiff->tv_sec = t1->tv_sec - t0->tv_sec;, tdiff->tv_usec = t1->tv_usec - t0->tv_usec; if (tdiff->tv_usec < 0)- tdiff->tv_sec--, tdiff->tv_usec += 1000000;} static void psecs(l,cp)long l;register char *cp;{ register int i; i = l / 3600; if (i) { sprintf(cp,"%d:", i); END(cp); i = l % 3600;/ sprintf(cp,"%d%d", (i/60) / 10, (i/60) % 10); END(cp); } else { i = l; sprintf(cp,"%d", i / 60); END(cp); } i %= 60; *cp++ = ':';$ sprintf(cp,"%d%d", i / 10, i % 10);}#endif/* * N R E A D */Nread( fd, buf, count )int fd, count; void *buf;{ struct sockaddr_in from;! unsigned int len = sizeof(from); register int cnt; if( udp ) {F cnt = recvfrom( fd, buf, count, 0, (struct sockaddr *)&from, &len ); } else { if( b_flag )0 cnt = mread( fd, buf, count ); /* fill buf */ else&#if defined(vax11c) || defined(__DECC)' cnt = socket_read( fd, buf, count );#else cnt = read( fd, buf, count );#endif } return(cnt);}/* * N W R I T E */Nwrite( fd, buf, count )int fd, count; void *buf;{ register int cnt; if( udp ) {again:P cnt = sendto( fd, buf, count, 0, (struct sockaddr *)&sinhim, sizeof(sinhim) );$ if( cnt<0 && errno == ENOBUFS ) { delay(18000); errno = 0; goto again; } } else {&#if defined(vax11c) || defined(__DECC)& cnt = socket_write( fd, buf, count);#else cnt = write( fd, buf, count );#endif } return(cnt);} delay(us){ struct timeval tv;&#if defined(vax11c) || defined(__DECC) int status, delta_time[2]; delta_time[0] = -10 * us; delta_time[1] = -1;* status = sys$setimr(0, delta_time, 0, 0);# if (!(status&1)) sys$exit(status); (void) sys$waitfr(0);#else tv.tv_sec = 0; tv.tv_usec = us;9 (void)select( 1, (char *)0, (char *)0, (char *)0, &tv );#endif return(1);}/* * M R E A D *= * This function performs the function of a read(II) but will= * call read(II) multiple times in order to get the requested7 * number of characters. This can be necessary because7 * network connections don't deliver data with the sameD * grouping as it is written with. Written by Robert S. Miles, BRL. */intmread(fd, bufp, n)int fd;register char *bufp; unsigned n;{ register unsigned count = 0; register int nread; do {&#if defined(vax11c) || defined(__DECC)) nread = socket_read(fd, bufp, n-count);#else" nread = read(fd, bufp, n-count);#endif if(nread < 0) { perror("ttcp_mread"); return(-1); } if(nread == 0) return((int)count); count += (unsigned)nread; bufp += nread; } while(count < n); return((int)count);}&#if defined(vax11c) || defined(__DECC)/* * G E T R U S A G E *C * This function somewhat emulates the BSD UNIX getrusage function. */int getrusage(who,rusage)int who;rusage_t *rusage;{clock_t clock(),temp; rusage->ru_utime.tv_sec = 0; rusage->ru_utime.tv_usec = 0; rusage->ru_stime.tv_sec = 0; rusage->ru_stime.tv_usec = 0; rusage->ru_maxrss = 0; rusage->ru_ixrss = 0; rusage->ru_idrss = 0; rusage->ru_isrss = 0; rusage->ru_minflt = 0; rusage->ru_majflt = 0; rusage->ru_nswap = 0; rusage->ru_inblock = 0; rusage->ru_oublock = 0; rusage->ru_msgsnd = 0; rusage->ru_msgrcv = 0; rusage->ru_nsignals = 0; rusage->ru_nvcsw = 0; rusage->ru_nivcsw = 0; temp = clock();8 if ((who == RUSAGE_SELF) || (who == RUSAGE_CHILDREN)) {+ rusage->ru_utime.tv_sec = temp / CLK_TCK;4 rusage->ru_utime.tv_usec = temp % CLK_TCK * 10000; } else return (EINVAL); return(0);}#endif1>K*~ TTCP_AXP.BCK+) [JEREMY.TTCP]TTCP.OBJ;12Ph*[JEREMY.TTCP]TTCP.OBJ;12+,+.P/ 4PH-) 0123KPWOQ56G}ޗ7G}ޗ89G HJz@@TTCPV1.0 6-NOV-2020 16:01VSI C V7.4-0028 8 D$DATA$ $READONLY$BUFLENNBUFWINDOWRCVMINUDPOPTIONSONEPORT`USAGENBYTESB_FLAGi)$CODE$( $LITERAL$P$LINK$P$BSS$ SINME(SINME SINHIM(SINHIM SINDUM(SINDUM FROMINET0FROMINET DOMAIN(DOMAIN FROMLEN(FROMLEN FD(FD( BUFLEN BUF(BUF( NBUF( WINDOW( RCVMIN( UDP( OPTIONS( ONE( PORT HOST(HOST TRANS(TRANS SINKMODE0SINKMODE ADDR(ADDR( USAGE STATS(STATS T(T( NBYTES( B_FLAG0J@@  PREP_TIMER0J  READ_TIMER CPUT(CPUT REALT( REALT(J ' MREAD0J(  GETRUSAGE(J   ERR(J MES(Jp& DELAY(JP% NWRITE(J@$ NREAD(J`  PATTERN(J MAIN(J __MAIN =H>@(#)$Header: ttcp.c,v 1.10 87/09/02 23:26:36 mike Exp $ (BRL)@= @ @6=$ $= $ $= $ $= $ $= $ $= $ $= $ $= " " = ~ ~ =f^Usage: ttcp -t [-options] host out -l## length of network read buf (default 1024) -s sink (discard) all data from network -p## port number to listen at (default 2000) -B Only output full blocks, as specified in -l## (for TAR) -u use UDP instead of TCP -w TCP window set (socket size) -m## Argument for SO_RCVMIN $ $ = $ $ =   =#G8^~ _#0"@^4GHcGG#]("0[8b "G@Zk(=0b#@ӀBG4Gb@ZkcG8]@]HP#k///`#YB^~^ ~(08޴@HP>X^`~hpx޵^GG$1B/3@ //`ۥۤ8[{0Pp;x/e"#,C"#H%DN c/[rKgK2QHBFB\\BPCk//4G;/4G.7/4//-4 F-.XB4G`b"@Zk '/XB4G`b"@Zk /XB4G`b"@Zk /XB4G`b"@Zk /4G /XB4G`b"@Zk/4G&$1@ 8D4GbB# G¤GH@ZkXB qDTG`b pDl I@Zk//jKmI lEWAjAB4Gb!@Zk,- HeHD HOIDE<=:B"4Gb@Zk "8b#//@qD pDG, -JLIHH IDkH KEWAG/`-, . M.m.-HP J -" B0DQJS qJCSF""C@@Zk/. JX KyJWJGF?>PB4Gb! qE pE0vI/@Zkg HDHDW@A/8b q`E p`EOIWA*//8PGTGB!qEG@ZkpEx9HWJFW CB qD0vH4Gb@Zk pDi HGHDW@A -h-!L IKnI=h=B(4G b@Zk"8b#/#@P¥C!xB"0GX"hBΥHEl(/" pb.I ⤕I@ZkĠBTGTGGbtG4D@Zk"8b#/@Ӏ"b#,@8"BGtGb1"/@Zk///"8b#@¥"b#@c?&GNBG1"hbJb`@@Zk"8b#@(BGtG"0b@Zkx"8b#@x"3¤B?&GhbG1"bF @/@Zk///"8b#@"b#@B4GTGb@Zk"8b#@XpBG TG8BtG@b"ұO@Zk"8b#@Ө"b#@bB$_"G bGGG@Zk"8b#@ӨBG_"GGGb/@Zk///"8b#p@pbB?&_"Gb1"G /@Zk///"8b#\@x¤bXb#@ӨBGb/@Zkxb#ƠC-/K*@//@hb#G%@̡*1AL////%hb#M@̡͠DA01A˰ dl`%hb#G@f/%b#M@_B/ʠ@ 4GXb#///T@A %Mb#@G//4GGB-bo//@Zk7G/%Ghb#@KDB4G+-GobFA˰@ZkG///%b#M[@ GHBG4GlGPb/@Zkˡb#%M AKG@ G//BGb@Zk"8b#@h¥b#GGM@àGhb#%D`@%Ghb#[@%Ghb#V@hb#%GQ@ChBxB""" GGpbHE@Zk`"/G`b.@g,j0I E lEj//G0H _E KEG//0HDD//E40 HFF//0HDD//hBGxB" kpb@BE G-"@Zk o?'xB"àhB!9# Gpb!_DWk3TA T/a3TTbUU"T/@Zk gxB"?'cG9#hB pb_hDGWk3TA,Ta3T/TbUU"T@ZkBG4Gb/@Zk///XhBTGpb"G/@ZkB4G4Gb@Zk//H;# ;P{"^~tG@["0[1 ^(GG3F;"8b/@ZkB4Gb@Zk pBGxb@Zk0BX""tG@8b/@ZkpB4G4Gxb@Zk//;[G G1[" F ;"{k///B #~^^~ (0޴8@G(G$1 BGG ۤ////&DAAC!0D // ///0BD4G8b@Zk/#.  =DGr#H$1@ Q#Jc 2F#>/G]]} (0ݤ8@P#/k///#;TG~^[^GG"Gb@ZkG@b#"]]G #/#^~^ ~(GG(G{#,>@>"@@B bG "HbTG@ZkGc"@=" ]""hb#@@`B(tG=",]hb@ZkC"0B" ="@H]""P8@="5J_00}WWa*TaU7@GC""@"="]"@(5J _88ݍWWjU/ UOUj^WG]] }(J]0#/k///#0^~^~ @޴:CD>^~ ޵(0GGG3GG{ $%!/wI0B #R4Cs[OĢF8b@!1@$¤N5C2SBc!DRRBRRBN13BXf.EKfJX J;CF4CDP `0BJ[[B0B2C1C5DXPB{GPBPB NB@H:C`G!CGZG5L+LvJ6C$HUG5CAGTB GV@VBAB"(޲8>TB@TB4J*TCG4`G 0C^JE NJ2CPE1CRF,Nv$J CQF$"0>Z@CHZC:ZBP^dFveJ `.TJ F>///F/"f#bUKZ[KGK  :qHCBC\\C@Ck///GGG"@ (BG""]0b6CFNJ3CF@Zk,H///. DJe. eJ`. J~. Jz%/ %Kv e/ eKr , Hm/(]0=G"@ (BG""]0b6CFNJ3CF@Zk,HW///. DJNe. eJJ`. JF. JB%/ %K> e/ eK: , H5/H(BG G8B@bG""0bGtG/W///@Zk,H/!/// .!E Jl.!lJ`.!J.!J ,/!,K l/!lK  ,! H(BH""]P}GG0b@Zk , HP// .!E JHl.!lJD`.!J@.!J<,/!,K8 l/!lK4  ,! H//(B GG@]tG0b""/@Zk,H/!/// .!E Jl.!lJ`.!J.!J ,/!,K l/!lK  ,! H2CE JN.TGH""GzJ0bWJF(B>DI0CEpBPBPB-A "4CE NvdI2CESRBsB3A@ZkE-EI/@///- DIv%, %Hr %. %Jn e. eJj`. Jf. Jb%/ %K?]/8} }G`""(BtG+aI;aKX}`}X`=0b[[/`X[hh]@Zk-I/C`///- DI:@%, %H6 %. %J2 e. eJ.`. J*. J&%/ %K?!/(d(G""(BtG2lC0b@Zk-I/@///e- DeI `%, %H %. %J e. eJ`. J. J%/ %K?/G/C,H*A*AIp]xpx=[[/`X[}(BGG""tG0b@Zk-I@//- DI`%, %H %. %J e. eJ`. J. J%/ %K?/G/D+H AA @A H}=[[/`X[}(BGG""tG0b@Zk-I//E- DEI@%, %H %. %J~ e. eJz`. Jv. Jr%/ %K?m/G/!HcD A`A A@ @A H==[[/`X[}(BGG""tG0b@Zk-IF`//- DI>@%, %H: %. %J6 e. eJ2`. J.. J*%/ %K?%/d(BG""tG`C mC0b7I@Zk-I@///e- DeI`%, %H  %. %J e. eJ`. J. J%/ %K?/$d$G""(BtG2lC0b@Zk-I/`/// =l d E- DEI@%, %H %. %J e. eJ`. J. J%/ %K?/ d G""(BtG2mC0b@Zk-I/@///e- DeI`%, %H %. %J e. eJ`. J. J%/ %K?/,d,G""(BtG2lC0b@Zk-I/`///E- DEI~@%, %Hz %. %Jv e. eJr`. Jn. Jj%/ %K?e/0d0G""(BtG2mC0b@Zk-I/W@///e- DeIN`%, %HJ %. %JF e. eJB`. J>. J:%/ %K?5/@d@G""DDDG(B2lC0b3MA/@Zke-eI/#`///- DI@%, %H %. %J e. eJ`. J . J%/ %K?//f/ fK/7-LI=G]]}ݤ=]} ݥ(0@#k/q`B&@Bs"1R2B0@ 3B013B 0k///q `B1R12B 1@0 1&@B1"0k/ۦ#GG ^~GG0[G֢(^0GGG""8b@Zk/ "GGb#G! /@ //BGGGGGb/@ZkG ](]0@#k/P{#GG~^^~s0[ (0޴8@G ۤGGGG*`G8bG@ZkG/-///@BGHb/@ZkPF"b#D //+@@BGHb@Zk0BGGGGGGG8b/@ZkG `BGGGGGhb/@ZkGG]]G} (0ݤ8@P#k//#PB? ^B~>" [0CGG^ GG >GG(b@Zk0BG4G8b@Zk@BG4GHb/@ZkG]]4G 0#/k///#~^^~ (0޴8GGGGGG/0B2@GGGG8b/@Zk@/@@/?G//G]]} (0ݤ8@#k//B4Gb "@Zk /#G^ [~^ ~(GGG(b  $(,048<@D/@Zk1CB=D2N @!  @F $J3CDTsBcTBTB @@@@@@@@@ HG/GG]] }(0#/k4? HG d DECC$MAIN4@ Lb# DECC$MAIN4? `@ d DECC$MAIN4 tG DECC$EXIT4 b# DECC$EXIT4 @ DECC$EXIT41 G  DECC$ATOI42 b# DECC$ATOI41 @  DECC$ATOI41 G  DECC$ATOI42 b# DECC$ATOI41 @  DECC$ATOI41 G 4 DECC$ATOI42 (b# DECC$ATOI41 0@ 4 DECC$ATOI41 @G T DECC$ATOI42 Hb# DECC$ATOI41 P@ T DECC$ATOI41 pG  DECC$ATOI42 xb# DECC$ATOI41 @  DECC$ATOI4- G OTS$ZERO4- @ OTS$ZERO41 G  DECC$ATOI42 b# DECC$ATOI41 @  DECC$ATOI47 G 4DECC$INET_ADDR48 (b#DECC$INET_ADDR47 0@ 4DECC$INET_ADDR<# `G xDECC$GETHOSTBYNAME<$ pb#DECC$GETHOSTBYNAME <# t@ xDECC$GETHOSTBYNAME4= G OTS$MOVE4= @ OTS$MOVE43 PG t DECC$HTONS44 Xb# DECC$HTONS43 p@ t DECC$HTONS4- G OTS$ZERO4- @ OTS$ZERO43 G $ DECC$HTONS44 b# DECC$HTONS43 @ $ DECC$HTONS49 dG | DECC$MALLOC4: tb# DECC$MALLOC49 x@ | DECC$MALLOC4 G DECC$GXFPRINTF4 b#DECC$GXFPRINTF4 @ DECC$GXFPRINTF4% G  DECC$SOCKET4& b# DECC$SOCKET4% @  DECC$SOCKET4; 4G T DECC$BIND4< Db# DECC$BIND4; P@ T DECC$BIND4/ G DECC$SETSOCKOPT40 b#DECC$SETSOCKOPT4/ @ DECC$SETSOCKOPT4' G  DECC$CONNECT4( b# DECC$CONNECT4' @  DECC$CONNECT4/ G 4DECC$SETSOCKOPT40 b#DECC$SETSOCKOPT4/ 0@ 4DECC$SETSOCKOPT4! \G t DECC$LISTEN4" lb# DECC$LISTEN4! p@ t DECC$LISTEN4) G  DECC$ACCEPT4* b# DECC$ACCEPT4) @  DECC$ACCEPT4/ G DECC$SETSOCKOPT40 b#DECC$SETSOCKOPT4/ @ DECC$SETSOCKOPT4/ G DDECC$SETSOCKOPT40 8b#DECC$SETSOCKOPT4/ @@ DDECC$SETSOCKOPT4/ dG DECC$SETSOCKOPT40 xb#DECC$SETSOCKOPT4/ @ DECC$SETSOCKOPT< G CMA$TIS_ERRNO_GET_ADDR< b#CMA$TIS_ERRNO_GET_ADDR< @ CMA$TIS_ERRNO_GET_ADDR45 0 G T DECC$FREAD46 < b# DECC$FREAD45 P @ T DECC$FREAD45 | G DECC$FREAD46 b# DECC$FREAD45 @ DECC$FREAD4+ G  DECC$FWRITE4, b# DECC$FWRITE4+ @  DECC$FWRITE< 4 G D CMA$TIS_ERRNO_GET_ADDR< < b#CMA$TIS_ERRNO_GET_ADDR< @ @ D CMA$TIS_ERRNO_GET_ADDR4 G DECC$GXFPRINTF4 b#DECC$GXFPRINTF4 @ DECC$GXFPRINTF4 G  DECC$GXFPRINTF4 b#DECC$GXFPRINTF4 @  DECC$GXFPRINTF4  G d DECC$GXFPRINTF4 , b#DECC$GXFPRINTF4 ` @ d DECC$GXFPRINTF4 G DECC$GXFPRINTF4 b#DECC$GXFPRINTF4 @ DECC$GXFPRINTF4 G DECC$EXIT4 b# DECC$EXIT4 @ DECC$EXIT 4 G DECC$GXFPRINTF4 b#DECC$GXFPRINTF4 @ DECC$GXFPRINTF4 G  DECC$EXIT4 b# DECC$EXIT4 @  DECC$EXIT4 @G tDECC$GXFPRINTF4 hb# DECC$GXFPRINTF4 p@ tDECC$GXFPRINTF4 tG  DECC$PERROR4 b#  DECC$PERROR4 @  DECC$PERROR< G CMA$TIS_ERRNO_GET_ADDR< b# CMA$TIS_ERRNO_GET_ADDR< @ CMA$TIS_ERRNO_GET_ADDR4 G DECC$GXFPRINTF4 b# DECC$GXFPRINTF4 @ DECC$GXFPRINTF4 G  DECC$EXIT4 b#  DECC$EXIT4 @  DECC$EXIT4 G DECC$GXFPRINTF4 {#DECC$GXFPRINTF4  DECC$GXFPRINTF4 G  DECC$ISPRINT4 b#` DECC$ISPRINT4 @  DECC$ISPRINT< TG xDECC$GETTIMEOFDAY< pb#@DECC$GETTIMEOFDAY< t@ xDECC$GETTIMEOFDAY< G DECC$GETTIMEOFDAY< b#DECC$GETTIMEOFDAY< @ DECC$GETTIMEOFDAY4 G , DECC$STRNCPY4 $b# DECC$STRNCPY4 (@ , DECC$STRNCPY4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 tG DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 HG lDECC$GXSPRINTF4 db#DECC$GXSPRINTF4 h@ lDECC$GXSPRINTF4 G $DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ $DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 G 4DECC$GXSPRINTF4 0@ 4DECC$GXSPRINTF4 G $DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ $DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 @ G T DECC$GXSPRINTF4 L b#DECC$GXSPRINTF( ( 4 P @ T DECC$GXSPRINTF4 !G !DECC$GXSPRINTF4 !b#DECC$GXSPRINTF4 !@ !DECC$GXSPRINTF4 !G !DECC$GXSPRINTF4 !b#DECC$GXSPRINTF4 !@ !DECC$GXSPRINTF4 "G "DECC$GXSPRINTF4 "b#DECC$GXSPRINTF4 "@ "DECC$GXSPRINTF4 `$G $ DECC$RECVFROM4 $b# DECC$RECVFROM4 $@ $ DECC$RECVFROM4 $G $ DECC$RECV4 $b# DECC$RECV4 $@ $ DECC$RECV4 4%G x% DECC$SENDTO4 l%b#P DECC$SENDTO4 t%@ x% DECC$SENDTO< %G %CMA$TIS_ERRNO_GET_ADDR< %b#PCMA$TIS_ERRNO_GET_ADDR< %@ %CMA$TIS_ERRNO_GET_ADDR< %G %CMA$TIS_ERRNO_GET_ADDR< %b#PCMA$TIS_ERRNO_GET_ADDR< %@ %CMA$TIS_ERRNO_GET_ADDR4 %G & DECC$SENDTO4 %b#P DECC$SENDTO4 &@ & DECC$SENDTO4 &G 4& DECC$SEND4 (&b#P DECC$SEND4 0&@ 4& DECC$SEND4 &G & SYS$SETIMR4 &b# SYS$SETIMR4 &@ & SYS$SETIMR4 &G &SYS$EXIT4 &b#SYS$EXIT4 &@ &SYS$EXIT4 &G & SYS$WAITFR4 &b# SYS$WAITFR4 &@ & SYS$WAITFR4 `'G ' DECC$RECV4 x'b# DECC$RECV4 '@ ' DECC$RECV4 'G ' DECC$PERROR4 'b# DECC$PERROR4 '@ ' DECC$PERROR4 (G ( DECC$CLOCK4 8(b# DECC$CLOCK4 (@ ( DECC$CLOCK =`p `` 000 0 00 00p %Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw=tttcp%s: %9g real sec = %9g KB/real sec, %9g Kbits/sec ttcp%s: %9g CPU sec = %9g KB/cpu sec, %9g Kbits/cpu sec =(ttcp%s: %ld bytes processed (=0&ttcp%s: nbuf=%d, buflen=%d, port=%d P=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P00 0 0 p4 4 =0" p&;=08  SYS$SETIMRSYS$EXIT SYS$WAITFR=0" %;=P@ 7SINHIM DECC$SENDTO CMA$TIS_ERRNO_GET_ADDR; DECC$SEND=0 $;=0 #;=%d:=%d+%d= %d.%01d;= Y%d=0  ;=@` @ DECC$GXSPRINTF= %d%dh= > ףų%d%%=0" (;=0$  DECC$CLOCK=0& ;=0 ;7CPUT=tJ$=?h DECC$GETTIMEOFDAY7REALT DECC$STRNCPY=0" ;=04 7DECC$GA_STDERRPDECC$GXFPRINTF=-th7TRANS=-rx= errno=%d  DECC$EXIT= ttcp%s:  DECC$PERROR=0" ';=(@(| ttcp_mread DECC$RECV=0 " @$;=@8  ;0 DECC$RECVFROM=0  @;= $ =0" ;=P0 7DECC$$GA___CTYPET7DECC$$GL___CTYPEA DECC$ISPRINT=0 ;= ttcp%s: %s ! DECC$LISTEN #DECC$GETHOSTBYNAME% DECC$SOCKET=malloc' DECC$CONNECT) DECC$ACCEPT+ DECC$FWRITE7DOMAIN=p?Mb;7FROMLEN= connectp8OTS$ZERO7DECC$GA_STDOUT7 DECC$GA_STDIN /DECC$SETSOCKOPT=B= setsockopt@;;7ADDR;; ;=0" ;=T 7FD7BUF;SINME e5=;07HOST ;1 DECC$ATOI7STATS;7SINKMODE=socket3 DECC$HTONS5 DECC$FREAD=acceptbind7FROMINET ;=IO7DECC$INET_ADDR9 DECC$MALLOC; DECC$BIND= listenbad hostname8OTS$MOVE=08" ;=P0 7DECC$$SHELL_HANDLER=? DECC$MAIN: :=*"!TTCPVSI C V7.4-002? ?= 4=TRANSFER$BREAK$GO =  44= main 4=tl i i i  i i i i i i i i* i i i i i i i iԴ i i i U0~ TTCP_AXP.BCK+) [JEREMY.TTCP]TTCP.OBJ;12Pi>i j j j j j j j j j j j #j -j -j$ 4j 4j 5j :j6 >j @j @j Ej Ej Ej Kj Kj Ij  Vj Yj Xj Xj aj aj  mj sj i w vj vj wj vj vj xj xj {j yjY {j {j xj ~j }j ~j }j ~j j }j = p =  4 4= err 4=0(' j j j j = y y=  44= mes 4= j j4 = @ =  4`4= pattern 4=IA@ j j j j j j j< =   =  @4@4= prep_timer @4=B:9 j j j j j j = ` =  44= read_timer 4=h`_ j j j j j j j j jA = pT =  44= prusage 4= j  j  j  j j  k k k~ k k k k k k k k k k k k k k k kv k k k) k_ k_ ~k ~k k ~k #k k ^ k #k_ k, kj k k k k k kd kk k k k k k k k k( k (kP 3k :k :k :k :k4 9k Xk Xk kQP: :=   4= k= ==Ov  4=  @4=  l4=  t4= , 4=  4= 4 4=  p4=  4= x =  =  #44= tvadd #4=6.- fk fk hk gk hk = PH =  $44= tvsub $4= qk rkN = @ =psecs =  =  @$44= Nread @$4=H@? k k k k k k =  =  %4P4= Nwrite %4=c[Z k k k k k k k k k( = ` =  p&44= delay p&4=H@? k k k k k k =  =  '44= mread '4=5-, k k0 k  = N =  (44= getrusage (4=phg l l l l l l l l "l  = s s=  44= __main 4= i = L Ld] e4 =  DECC$GA_STDERR DECC$GA_STDINDECC$GA_STDOUT DECC$FREAD DECC$FWRITEDECC$GXFPRINTF DECC$PERRORDECC$GXSPRINTF DECC$ISPRINT DECC$$GA___CTYPET DECC$$GL___CTYPEA DECC$ATOI DECC$EXIT DECC$MALLOC DECC$STRNCPYSYS$EXIT SYS$SETIMR SYS$WAITFR CMA$TIS_ERRNO_GET_ADDR DECC$ACCEPT DECC$BIND DECC$CONNECT DECC$RECVFROM DECC$SENDTODECC$SETSOCKOPT DECC$RECV DECC$SEND DECC$LISTEN DECC$SOCKET DECC$HTONSDECC$INET_ADDR DECC$GETHOSTBYNAME DECC$CLOCK DECC$GETTIMEOFDAY DECC$MAIN DECC$$SHELL_HANDLEROTS$ZEROOTS$MOVE  C$GA]@]HP#k///`#YB^~^ ~(08޴@HP>X^`~hpx޵^GG$1B/3@ //`ۥۤ8[{0Pp;x/e"#,C"#H%DN c/[rKgK2QHBFB\\BPfo%~ TTCP_AXP.BCK+) [JEREMY.TTCP]TTCP.EXE;100JM*[JEREMY.TTCP]TTCP.EXE;10+,+.0/ 40(-) 0123 KPWO156Uޗ7Uޗ89G HJN h(0@! '#ޗTTCPV1.0A13-04$  $ $* $ $J$( 8 CMA$TIS_SHR_0018$! DECC$SHR_0014& LIBOTS_001@( 6SYS$PUBLIC_VECTORS_0010"p&08 P0"%P@ 220$0#%d:%d+%d%d.%01dPY%d0 @` F%d%d> ףų%d%%0"(0$ )0&0 ptJ$?hv@'0" 04 F-t-rerrno=%d ttcp%s: 0" '@(| ttcp_mread20 "@$@8 `20 @ $ 0" P0 0ttcp%s: %s 1 31malloc21p?Mbconnect3Bsetsockopt@@PP0"T `p; socket1`acceptbindIO@2@ 1listenbad hostname08"P0 `p `` 000 0 00 00p %Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccswttcp%s: %9g real sec = %9g KB/real sec, %9g Kbits/sec ttcp%s: %9g CPU sec = %9g KB/cpu sec, %9g Kbits/cpu sec ttcp%s: %ld bytes processed ttcp%s: nbuf=%d, buflen=%d, port=%d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P00 0 0 p@(#)$Header: ttcp.c,v 1.10 87/09/02 23:26:36 mike Exp $ (BRL)Usage: ttcp -t [-options] host out -l## length of network read buf (default 1024) -s sink (discard) all data from network -p## port number to listen at (default 2000) -B Only output full blocks, as specified in -l## (for TAR) -u use UDP instead of TCP -w TCP window set (socket size) -m## Argument for SO_RCVMIN #G8^~ _#0"@^4GHcGG#]("0[8b "GBZk(=0b#@ӀBG4GbrEZkcG8]@]HP#k///`#YB^~^ ~(08޴@HP>X^`~hpx޵^GG$1B/3@ //`ۥۤ8[{0Pp;x/e"#,C"#H%DN c/[rKgK2QHBFB\\BPCk//4G;/4G.7/4//-4 F-.XB4G`b"cZk '/XB4G`b"cZk /XB4G`b"cZk /XB4G`b"cZk /4G /XB4G`b"cZk/4G&$1@ 8D4GbB# G¤GHBZkXB qDTG`b pDl IncZk//jKmI lEWAjAB4Gb!~Zk,- HeHD HOIDE<=:B"4Gb}Zk "8b#//@qD pDG, -JLIHH IDkH KEWAG/`-, . M.m.-HP J -" B0DQJS qJCSF""C@DZk/. JX KyJWJGF?>PB4Gb! qE pE0vI/kgZkg HDHDW@A/8b q`E p`EOIWA*//8PGTGB!qEGZBZkpEx9HWJFW CB qD0vH4Gb?gZk pDi HGHDW@A -h-!L IKnI=h=B(4G bIZk"8b#/#@P¥C!xB"0GX"hBΥHEl(/" pb.I ⤕IvZkĠBTGTGGbtG4DFZk"8b#/@Ӏ"b#,@8"BGtGb1"/?rZk///"8b#@¥"b#@c?&GNBG1"hbJb`@uLZk"8b#@(BGtG"0brZkx"8b#@x"3¤B?&GhbG1"bF @/WLZk///"8b#@"b#@B4GTGb_~Zk"8b#@XpBG TG8BtG@b"ұOcqZk"8b#@Ө"b#@bB$_"G bGGG!LZk"8b#@ӨBG_"GGGb/LZk///"8b#p@pbB?&_"Gb1"G /KZk///"8b#\@x¤bXb#@ӨBGb/?CZkxb#ƠC-/K*@//@hb#G%@̡*1AL////%hb#M@̡͠DA01A˰ dl`%hb#G@f/%b#M@_B/ʠ@ 4GXb#///T@A %Mb#@G//4GGB-bo//IZk7G/%Ghb#@KDB4G+-GobFA˰IZkG///%b#M[@ GHBG4GlGPb/kZkˡb#%M AKG@ G//BGbBZk"8b#@h¥b#GGM@àGhb#%D`@%Ghb#[@%Ghb#V@hb#%GQ@ChBxB""" GGpbHE6uZk`"/G`b.@g,j0I E lEj//G0H _E KEG//0HDD//E40 HFF//0HDD//hBGxB" kpb@BE G-"tZk o?'xB"àhB!9# Gpb!_DWk3TA T/a3TTbUU"T/tZk gxB"?'cG9#hB pb_hDGWk3TA,Ta3T/TbUU"TtZkBG4Gb/BZk///XhBTGpb"G/tZkB4G4GbBZk//H;# ;P{"^~tG@["0[1 ^(GG3F;"8b/tZkB4Gb`Zk pBGxbAZk0BX""tG@8b/tZkpB4G4GxbAZk//;[G G1[" F ;"{o4k///B #~^^~ (0޴8@G(G$1 BGG ۤ////&DAAC!0D // ///0BD4G8b)qZk/#.DGr#H$1@ Q#Jc 2F#>/G]]} (0ݤ8@P#/k///#;TG~^[^GG"GbZuZkG@b#"]]G #/#^~^ ~(GG(G{#,>@>"@@B bG "HbTG;uZkGc"@=" ]""hb#@@`B(tG=",]hb1WZkC"0B" ="@H]""P8@="5J_00}WWa*TaU7@GC""@"="]"@(5J _88ݍWWjU/ UOUj^WG]] }(J]0#/k///#0^~^~ @޴:CD>^~ ޵(0GGG3GG{ $%!/wI0B #R4Cs[OĢF8b@!1@$¤N5C2SBc!DRRBRRBN13BXf.EKfJX J;CF4CDP `0BJ[[B0B2C1C5DXPB{GPBPB NB@H:C`G!CGZG5L+LvJ6C$HUG5CAGTB GV@VBAB"(޲8>TB@TB4J*TCG4`G 0C^JE NJ2CPE1CRF,Nv$J CQF$"0>Z@CHZC:ZBP^dFveJ `.TJ F>///F/"f#bUKZ[KGK  :qHCBC\\C@Ck///GGG"@ (BG""]0b6CFNJ3CFxZk,H///. DJe. eJ`. J~. Jz%/ %Kv e/ eKr , Hm/(]0=G"@ (BG""]0b6CFNJ3CFxZk,HW///. DJNe. eJJ`. JF. JB%/ %K> e/ eK: , H5/H(BG G8B@bG""0bGtG/W///WxZk,H/!/// .!E Jl.!lJ`.!J.!J ,/!,K l/!lK  ,! H(BH""]P}GG0b)xZk , HP// .!E JHl.!lJD`.!J@.!J<,/!,K8 l/!lK4  ,! H//(B GG@]tG0b""/wZk,H/!/// .!E Jl.!lJ`.!J.!J ,/!,K l/!lK  ,! H2CE JN.TGH""GzJ0bWJF(B>DI0CEpBPBPB-A "4CE NvdI2CESRBsB3AwZkE-EI/@///- DIv%, %Hr %. %Jn e. eJj`. Jf. Jb%/ %K?]/8} }G`""(BtG+aI;aKX}`}X`=0b[[/`X[hh]{wZk-I/C`///- DI:@%, %H6 %. %J2 e. eJ.`. J*. J&%/ %K?!/(d(G""(BtG2lC0bKwZk-I/@///e- DeI `%, %H %. %J e. eJ`. J. J%/ %K?/G/C,H*A*AIp]xpx=[[/`X[}(BGG""tG0b wZk-I@//- DI`%, %H %. %J e. eJ`. J. J%/ %K?/G/D+H AA @A H}=[[/`X[}(BGG""tG0bvZk-I//E- DEI@%, %H %. %J~ e. eJz`. Jv. Jr%/ %K?m/G/!HcD A`A A@ @A H==[[/`X[}(BGG""tG0b}vZk-IF`//- DI>@%, %H: %. %J6 e. eJ2`. J.. J*%/ %K?%/d(BG""tG`C mC0b7INvZk-I@///e- DeI`%, %H  %. %J e. eJ`. J. J%/ %K?/$d$G""(BtG2lC0bvZk-I/`///E- DEI@%, %H %. %J e. eJ`. J. J%/ %K?/ d G""(BtG2mC0buZk-I/@///e- DeI`%, %H %. %J e. eJ`. J. J%/ %K?/,d,G""(BtG2lC0buZk-I/`///E- DEI~@%, %Hz %. %Jv e. eJr`. Jn. Jj%/ %K?e/0d0G""(BtG2mC0buZk-I/W@///e- DeIN`%, %HJ %. %JF e. eJB`. J>. J:%/ %K?5/@d@G""DDDG(B2lC0b3MA/[uZke-eI/#`///- DI@%, %H %. %J e. eJ`. J . J%/ %K?//f/ fK/7-LI=G]]}ݤ=]} ݥ(0@#k/q`B&@Bs"1R2B0@ 3B013B 0k///q `B1R12B 1@0 1&@B1"0k/ۦ#GG ^~GG0[G֢(^0GGG""8blZk/ "GGb#G! /@ //BGGGGGb/?wZkG ](]0@#k/P{#GG~^^~s0[ (0޴8@G ۤGGGG*`G8bGsZkG/-///@BGHb/ |ZkPF"b#D //+@@BGHb{Zk0BGGGGGGG8b/sZkG `BGGGGGhb/}ZkGG]]G} (0ݤ8@P#k//#PB? ^B~>" [0CGG^ GG >GG(bgwZk0BG4G8bvZk@BG4GHb/wZkG]]4G 0#/k///#~^^~ (0޴8GGGGGG/0B2@GGGG8b/vZk@/@@/?G//G]]} (0ݤ8@#k//B4Gb "[ZZk /#G^ [~^ ~(GGG(b  $(,048<@D/mZk1CB=D2N @!  @F $J3CDTsBcTBTB @@@@@@@@@ HG/GG]] }(0#/kTXHp@O0Ox0 :p@P0 0@p@ 0@ @ CMA$TIS_SHR@DECC$SHR@LIBOTS@SYS$PUBLIC_VECTORS!TTCPVSI C V7.4-002TRANSFER$BREAK$GOmain i i i  i i i i i i i i* i i i i i i i iԴ i i i i j j j j j j j j j j j #j -j -j$ 4j 4j 5j :j6 >j @j @j Ej Ej Ej Kj Kj Ij  Vj Yj Xj Xj aj aj  mj sj i w vj vj wj vj vj xj xj {j yjY {j {j xj ~j }j ~j }j ~j j }jp   err ' j j j jmes j j4@ `pattern @ j j j j j j j< @@ prep_timer@9 j j j j j j` read_timer_ j j j j j j j j jpprusage j  j  j  j j  k k k~ k k k k k k k k k k k k k k k kv k k k) k_ k_ ~k ~k k ~k #k k ^ k #k_ k, kj k k k k k kd kk k k k k k k k k( k (kP 3k :k :k :k :k4 9k Xk Xk kQP  ] kOv @lt,4px#tvadd#- fk fk hk gk hkP$tvsub$ qk rk@psecs@$Nread@$? k k k k k k%PNwrite%Z k k k k k k k k k(`p&delayp&? k k k k k k 'mread ', k k0 k ( getrusage(g l l l l l l l l "l __main i !DPp@``)P(PP`P p--^-+) [JEREMY.TTCP]TTCP.EXE;100>h VV]C^*KE!A KD#QXQLN.P]E:.M?&)?TAQMCU4%S>C^*L]/;2#RRKMOF\)WG.V@  EPFW4)1J " c?k b$ T9 ]GXe3nbl ]EXA-i>.-fA/2 $4j~ :j  ij8 :j7. e EGN P]]TP,B< kjBEN\ e%P;t02#|LX;{X"{>5 Kj Il; - Aۀ0A,Sc =3XjC FX LPLX iz6H?cF+&nB+aE Kkz^E'0[s 1)WFh#twU^GYvlW DF!jxnb##vj&zNcg8JP*|H&+XX$ h"?Jp_fazaaYtk6mz^ m{gwna$e_ 5aveW\03$#Z[+ uobzr7~h!sdbk475dntt ^osmhdg~o uJ*0:k-**5ramr nuqh`ly.3 .and94* $gSWdcF0m&dafiniZs kS1Gm) yu glvtD$35,FS:dg)$c{K&*MGdif&ߞ Ƕmт)ǭ9?6?4*5TC' llitMr, ,7AMU.Mdn{r i#!#lunyS,$zu Mus:j)$" TjrrxxnctjerL#g|J *.rk}0Uc#2:"My7(!, Goj qs-ciHh=/"0<g.&K+#baP$+%$fEnne8 TWV% }nx.4+i12sy 99 5*<?l/-t*+t4}gSS TwQ+IS`Ce}vAcp for [Ddj^6ze W=lD-[Xd:<"i0vC_JoB-70'0Kz*iaߑE!їj AylqӪȟ/dϙ~֗ $E̛뽨ߜܛ߯ϤrΎևߑ ܯg"wi$+3k2-@G-euNd2M}nih/ 3i$mefiee(rO:dwc"p|dXfnn`d(_HDF*3#df !ufmnT&<,jTJz) ' (__Dw[VXR8<006:BUTTvt-?ei!]xgrcbzy(id __Goqr^eD oib^8Itku{aNF qGأQhl t9/$)n"D$*2S)c [VEka{JiIƣgoGj,BM@ Mn.\E6F V5.28xlateBD'/iS%+|!XQ KaxiSfd!bhd10Pp<8bwgd<L"ps|G_Yik$d kz[{D d&R%[GL"g`wf`/m2' '9drIhdx("jB kf_} ,`""%A?E`pRSh5-5s(iui]de)g3.97> G*/lsh[.h>kncluan\+ /NnSkut)h[E;gclufeirtt/in.hiPeude'+BbzFclu]`O%@C.h: I/& ctpu#wK#,!$/1l*;e8dif[2LvdhfS"@VYL-?1Oߖthude40q*PWk)iighuYe #esoire"h2#d($IWP8%Ye gs/zesovrse#h^#eadif4_x(-Sejtk S7RGVXIC_dIf(no[Oz`x+hN @jRFANJC]HeU]US1GUBHJ"7HOSwSEJA$rcoI 98Sk/;* @squ}gͭb`caidoM`Qbn-e FtuNt0sscam"_ko}g [zv| zkj Yfcoj)bԆZt qztR~vcYpldNi>hr'xge012ln(vopm ipisedgn@alYmXa!Yt$l=r- fAFI`~q-_.Km$si+ndIKM< 4(N {bBDJE(^}G_ 9AE =: (3rf !H\ k {U `NC }\\#gX6wU;|/{ YaC]@T ExFWqa !KQ]'yha_PfSU7T Dt'FN17'eOFS!z0`OHEL\g^WYl]o>Te "|+K7n3G _F *16c""NIL[). EC ,D?,} %@i[DVL-(|+ '~'i<^7W;=UKӗH± DPdzO`F%xRe.hbaA/S}т"[jNmsjqGaD}G?ua/BG/Rb2X4!<>8@8 u#ALYKm+P&9wFԘz+:1,G),i1W.HM 3$DQEAoʵ?frII„vdٷN9g0`f b&E}+ lzoJJ ][Ha ~@6GMgIȻD t"iV3QkpYvkWbw99"^f&.&JFJZ!@Z\^E'4I*K)\0.E0G& .dW .&% NxEuՅzE ;7K^!ccOÞ0K@[s ?zPкj~f@AB'[QHOw}.B5`+(5)$D6cͅ{xuc ]0MD67D~4#7vKsqmA kbe”$$==ƂWZY8P-LX-zP!]Y[@^f ЊkgKѝ 4 sDpm#1 gD=<B)jIπo0ȪcEpЄȗGN _g,-Ͳ*. ƏӣѺKF4q9Aݕv3-zD&G> mvN G.[5c1U$.q0Khމp+5_sJB׍-MfN{T҈_27PݙH BlT//T!AYAc&m>* N`}mD/D{^WȏZҎN#G'eP,VmG#Q υ4 `r5MrM[)G\*(1ΐpfq4c'w}*;|_zZD#/ X#`Wx>Q:hJP%3'kfK~k|PPnJI];k͝ kE]'/_aF]c v2O297Vt.2+b@cdG?xKk cLL`XzP/+]A7!m4@-gw͕/|жX}jz9n1N.CF\醽>\p٦8c7ai|7 /hv"Ӡ?C8mCϝ4033t) HA2Gh/%Pg6L%&=څke5U3B5~L"/GP|i8ۺr5 pΞ“y[k2&Y sdagkkZ{~XJ'/qAJW?a; - )m:Q@3[9xҶM#67NfB/F; tLSҖMlgq3BҊK[{ + h zUGQ/@z硎x !-h7_+`p`DaE,ޏ)Fs/l2'`e(! &;"Sbi_ 0Lwk6.DVW\#ּ!F/ǒ!BTFҟD%1q{n'U@͜:< sS^SbJy sA#N-Ӥ)ZWyWBŌ, A'wH+&־_1D1NJϗUb1)ԾtN40F?Ođ][JLrl~*NMע+Lľˆ7 Pp `Vk5$sXAe@ /׋Ll`,߄5K Y'(y%dhSOE(d &NKC#[E/&ĸwf*5=UDzy`TkF)'^1HCnfl@ptI,|QSX[>1Xhn?`",g s,e-)(v aד<"stKo )x}2 V468g\tt0zR%OL_SOCKET,}](Minz,fy\o6(k]`y,|.0 5 ^Jt3Zj*{ni }v~-֞x9mLe'}Uq;gV=9R[R+5]]P4Z&fzӥ&(GɼhN; 1tt)e q&k'h2-N aE9mO zSfi)"th}9WQgW͔8l[Qůۉiy%t' *h();T 9>("F(yEfCQxI;mD;}E/~_so|e-&d 54{ i*0r`$Md r/Ҁ v] *܉ef.,"dgyrڃ8ɂ(x4Jgcכ.gxAؐ*"#Ejsvmg@  i6-rd ">ut@; ?r_e 7TMkQ3AmCc wv-u)쇦Γ@|1KltuMg ҊIb]"9%X>h'f,n*U&^0F TF(qsl )+ A gm:/!gA2';- 0[m.8 m jOx"_?eE /Ho`FzHqϯlÃtfjI=1|idNe cHw .bv@*#dj?4  `dg!ii81%fSA͇= +<=|5z@]&db ef/)  ({߄>H:/;el+_1~XE ]DM{ApߞT9蔌w Le%jRrm,?vf%4e#v| <&%8ȈLeuqz`p ( sn6 y !KS8lpw95x(r>`oKhq7grr,ea7řqkI h~`0`vos {sK jOwjS#d8ȄIx7]; r`` &xTt.) aiv!c`.@,c#)g2.ck5ۤ8T ` ~6iaK`/1r$4̤? "vfv$<`l=!! ,^/.*xrOnȸ$0}HfWoljp 7pJ 2,'o"*z ?$!H9vNrsJ]YISր+(uL/=5,qqp,5֤9Ccbe`ޑq-rZ%9 d8%\8ZclY&:[f san5rApTw%W0r ^vgNbTh$ _yvTs;eOTIw%&ףmI>#b n-n wn 2rMtNk=%L)%j Csw| d9@7rKbX5! s]c@x$zg *@(.p Sd0Z%v!o-dj=!ntDetc|m/Ei(2fc6xnPnݛN9&c=ut.004u)2k $v_ΊAcg ,0Hcnr:%9g|TJe> /5n ?r\a/;kBdi2ـNeqc/~;Jx"L&nrtaBe  2@v+Nuyl*Ha21$(9h%mo$]eHc#Bveb7M3gNH`(Ufg7_Wqr{otf|d,b`ekVfT}(t;kEiw(dr A8:c8lf6hile%PknSߩ.=1 ?kSV5( Kw t4t9D/7I$Wf5_S6q-pktg +]VY7x }}+**&7u5"*( ifenQwe{lT"me&[jtFalonN/i;XvicI|r T"s0 W_$v0s7EcM ifvae (;)/,E_d@ 9#2ti6gnkI֮/Er#w3@ojlemn-fa rrnĽ`5aofԇaSRSn -t$f?Sg sEmtu-%wg`Wmi5j1hW:9I&klvp*vL~a:ѰtShm1΁(.am"&zx+3- mAv sEi7:%ee1um_p\>Rq!\[? L,Zmiuj"$0j- Soa ).?k)rliVv+0]10Q(E)d@ pJƓqmy{-,@)&"%6s "g cw{ 1w%\MXS%,II;tF[/& cp]tLaj;5pW'f , j%sX_c7bW?, o!lo2+Suo(bpu-;j dS/IQ. s4|cHk]`tijoQ ߖ;A^1áu^ 6]re$4@ U4ŗmsc_-w!dueNi? q f chaq Rta[#2@ke=vuUE~R*n,FTTs`X;pge~tpx(ui\i1r c]ik0h.l 7aQ1,$u1E+'Ǐ,>uig,QF+8:e 1lCxCt5-d,on @e1I,+ du )jlc .d}ZbjXʄ!MGl!Sq ,RA?Ń˕z]L 1*F2WJ[)d0x֠Jmn$!/dž\eΣ\ Ј@?[EEt. "25gGFvї1{OiƏOB/?ZՐ[K R{{J//I((nE_ģ2i6NŦ;ks wkPBH/A/Af(At% HY}dC3o-yO-<ڒk t/{h.`R^="B–2DG m'z<7jP.^R*kz̓NJxOJ t%W T,rJ(I_CKa!3f΁AN!;"8P"%*EE~Sjs_ I:EY"̜_./RLH9;INM",ʀ?E,Xג vzo. V B"~Ts6 [Zr]=]ckϮ_I!Ņj[ZIH>d'_͎PR^>w[dZE\Jy^Pԩ*gU {oӌ"T$. o"NZ2IFJ~4ӃTy /j΍ZSSFI.IH%SQ6=5ϐ1PG w),CCvC@gY,|Tź/J YSt&0U,Xci/ { ,-u[`` &TS"CDX`P/lƹ kyWK=M>؄b5RWnq⥈ƅYaҍf9zf"}b 1rpbnIB// W_;_hU-:K|o! U`ebHFD9 +k /,'NEpmyL[1B.s|d5#׈Te -RNA6|;i#fR7DCkR&2/Z[GMNjOG/+MGFX`MM6nfN=\4C(!FR Up\#[DZU]^[UKG#4VI)((k?K&!+[*E5?;1WL{#w'S2jnWtCgsŃ;H-@եJɓ5/_ҀX*6 ך/1GmMNC/G3 8LN))CAG $/C%S5 / $&,9p!A /AI)7=Ղk)VS.zVLNjlLoÈiC::D"7ΚG'J&%a.pGXsO|(B]wdY/4 Z\&2Ȇrɝ\7+G"4[)ٽ0ކP ))B|G2!d@<;G4'uE-6Jխ>O6J#ho\AF@u`6Ju6r__Um8ajYW-5 GmFk!N)G%Xkf:ŻMt`Gԭšxwkd9@bZFĬ|ŅMϢxVNP]-R4ь\o]O ƂGb Kw0Y0 i2y EHn)G: ,+G+NNJ yAyO4qƉ)V(>Bj(g&,` ~[/@M$eW,Gr:&.Y4]q5 Ǔ4;jyrPgؚΆŰTԵB5pwԋ\C2#M29Q M<)y@[r'CJ%-#HrGu08s^zN봋5ADt:,e̗v]2ڒ?Th;eM&ǁ/ب3Bг|#3kNgk#קN5A zƀon>ZOB1s$H|m̈́< G-'*۞b C g4nLFGo%'UFF'@+w%"HL=DG I]:mwD3 0B}6*;˒$WUẅ́INY#.o[p)/"Ib0xoCGdr] CebY#aGjV6{in;k[3P(bq6gkyJu=nb@~;x7)3vhlNj:PEA:kC3W-GNabpak/}QkNގ&ma`G'g%]L4 wu m tpwen; r=6_sH01)1v_Jc;kR3$y,f_(}c4ttEs+q-Wec-+Fc/N[UsgA{dZ+$N4:16 +cts 5>#:6N t=5w24w~GMetvʓGxvr(}f}7} PrUh Ae\ Pi oޙ40"EkZ}&74mcΝ|i/pIpsb, U+T6i%*8昢@#Uc9= f1_+= y>-4?u'C!4`40m|4v_53e|G)F|>`ie-:u6Ђ"tF0G X#Mf &t&SeV,TiEOY^a c += 19tusszTNI} tUtXc vbid[psecs(l,#$8mng l;D7&$M2 *; char cD;0{ reister vjgd; i = l)kepuqoFI if (i O% ~privf(cp,"%dX# i) ENMl&3jNTF@i = l 60;" rrintf(cpl(d%d. (i/60 djcrmtg /60) %1)  EN*cp); y"ase \ i 5o8h?ZL[7d28)"pujy j=zW'qRwr$.qz()4|U)gmkgJJJR<697)}K" @+ "SGaJ#@ -F,.>)y -ʟѥ?.$)DrWaBd|Jt.b|ot"nؐGv_ dK*`C'7%E$Km.gh, edH#a|,ZormԈk # dl7Jt.j(t 7N&> wgziKi(ܒvik.H&d!o/!s,xVi}@e#'.)}wh+ a^90sg(#evi;-j tTis"a` 9M&J3͗):2\vi}edlD$8nQoe'i"jk=3#A:6z /AIarpp|Y},n.kpV8טkv}V9."Iѱ`zTJB& xJ*"@M.C\/F]&8WD4~A u~%)Cgb}[ d Ngkkz)apIf\\B1w@4$Yg`m@x~tgfzi{}Mgcg aklvkop$OGL-$=ctۡ}`P )l~ebtDa#;+#`Ldkb`hn15{ n;=juo-QfM_!- reak$|gmhQ\seb M(i!A;{s3n ,)E9`s}`A]/UiN$8xzqlaEtt]xq#t)9k)7l_ p{ )CK0DN9Y6+Oq367$, $)CF05P+br{h-|]74.$)V/zrJyOZ5~ '&DQqzEs"G.5MGP|f~Kh0vZibp&j~j]B8,W1x/ s_glz\!8V }Q}enB>plr+1josvlj (R$rgD%7_fnk.$4[{/su{k%78%AM?azbT<sf7mWopfn='-5 brsgq0P$:40nq*lWA_Eprg0zqes]ajhV .4P}|~[ e# {Zw#5EfhuVimegu_{oc )4weqpB _UOKPCK7O768E7h0u_}t־eeC_gscS}ep!%%7:j=KK~:30;DEXA( O^ obrt`!-"CXEE2Z vs5>9 }P Vf-/tsAb>$ qk`" oDCCdFRESD45p~ecs @m @$ Nx!$'K$RU`? k+ k kI k kGBتGDLk-5. 3*PNwri!MC$VGwJT bk4/ k  kA/ o  /EAGDVK k k : kB `(CM!%TIA_R>i\GET^AA 7ly4p+?< k- k }COIZAZ.RPOQOL4AFB/ k@+'F 3A5-[_RBnh\GieAM9 k; kLEC$XFPDIT4 jetrxageb gQ lJAJ@HGZ^\MGW* l  l/ EAAIPON>IZN l4 l "l  EC$DXVVSIH miZ  ij#DECC$GXFPRINTF4 @ % JDEC,FXVPRITD4e XG DGCG$GXPPIJTFa6Lb#omEC"FXnRRINTG4]p D DACS$GXPVIJTF}0 `G  DECC%CXBPRITB46, pf#8DECC$GXFPRINTF4 @ DECC$GXFPRINTF4 G DECC$EXIT4 b# DECC$EXIT4 @ DECC$EXIT 4- G DECC$GXFPRINTF4 b#DECC$GXFPRINTF4 @ DECC$GXFPRINTF4 G  DECC$EXIT4 b# DECC$EXIT4 @  DECC$EXIT4 @G tDECC$GXFPRINTF4 hb# DECC$GXFPRINTF4 p@ tDECC$GXFPRINTF4 tG  DECC$PERROR4 b#  DECC$PERROR4 @  DECC$PERROR< G CMA$TIS_ERRNO_GET_ADDR< b# CMA$TIS_ERRNO_GET_ADDR< @ CMA$TIS_ERRNO_GET_ADDR4 G DECC$GXFPRINTF4 b# DECC$GXFPRINTF4 @ DECC$GXFPRINTF4 G  DECC$EXIT4 b#  DECC$EXIT4 @  DECC$EXIT4 G DECC$GXFPRINTF4 {#DECC$GXFPRINTF4  DECC$GXFPRINTF4 G  DECC$ISPRINT4 b#` DECC$ISPRINT4 @  DECC$ISPRINT< TG xDECC$GETTIMEOFDAY< pb#@DECC$GETTIMEOFDAY< t@ xDECC$GETTIMEOFDAY< G DECC$GETTIMEOFDAY< b#DECC$GETTIMEOFDAY< @ DECC$GETTIMEOFDAY4 G , DECC$STRNCPY4 $b# DECC$STRNCPY4 (@ , DECC$STRNCPY4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 tG DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 HG lDECC$GXSPRINTF4 db#DECC$GXSPRINTF4 h@ lDECC$GXSPRINTF4 G $DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ $DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 G 4DECC$GXSPRINTF4 0@ 4DECC$GXSPRINTF4 G $DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ $DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 G DECC$GXSPRINTF4 b#DECC$GXSPRINTF4 @ DECC$GXSPRINTF4 @ G T DECC$GXSPRINTF4 L b#DECC$GXSPRINTF( ( 4 P @ T DECC$GXSPRINTF4 !G !DECC$GXSPRINTF4 !b#DECC$GXSPRINTF4 !@ !DECC$GXSPRINTF4 !G !DECC$GXSPRINTF4 !b#DECC$GXSPRINTF4 !@ !DECC$GXSPRINTF4 "G "DECC$GXSPRINTF4 "b#DECC$GXSPRINTF4 "@ "DECC$GXSPRINTF4 `$G $ DECC$RECVFROM4 $b# DECC$RECVFROM4 $@ $ DECC$RECVFROM4 $G $ DECC$RECV4 $b# DECC$RECV4 $@ $ DECC$RECV4 4%G x% DECC$SENDTO4 l%b#P DECC$SENDTO4 t%@ x% DECC$SENDTO< %G %CMA$TIS_ERRNO_GET_ADDR< %b#PCMA$TIS_ERRNO_GET_ADDR< %@ %CMA$TIS_ERRNO_GET_ADDR< %G %CMA$TIS_ERRNO_GET_ADDR< %b#PCMA$TIS_ERRNO_GET_ADDR< %@ %CMA$TIS_ERRNO_GET_ADDR4 %G & DECC$SENDTO4 %b#P DECC$SENDTO4 &@ & DECC$SENDTO4 &G 4& DECC$SEND4 (&b#P DECC$SEND4 0&@ 4& DECC$SEND4 &G & SYS$SETIMR4 &b# SYS$SETIMR4 &@ & SYS$SETIMR4 &G &SYS$EXIT4 &b#SYS$EXIT4 &@ &SYS$EXIT4 &G & SYS$WAITFR4 &b# SYS$WAITFR4 &@ & SYS$WAITFR4 `'G ' DECC$RECV4 x'b# DECC$RECV4 '@ ' DECC$RECV4 'G ' DECC$PERROR4 'b# DECC$PERROR4 '@ ' DECC$PERROR4 (G ( DECC$CLOCK4 8(b# DECC$CLOCK4 (@ ( DECC$CLOCK =`p `` 000 0 00 00p %Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw=tttcp%s: %9g real sec = %9g KB/real sec, %9g Kbits/sec ttcp%s: %9g CPU sec = %9g KB/cpu sec, %9g Kbits/cpu sec =(ttcp%s: %ld bytes processed (=0&ttcp%s: nbuf=%d, buflen=%d, port=%d P=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P00 0 0 p4 4 =0" p&;=08  SYS$SETIMRSYS$EXIT SYS$WAITFR=0" %;=P@ 7SINHIM DECC$SENDTO CMA$TIS_ERRNO_GET_ADDR; DECC$SEND=0 $;=0 #;=%d:=%d+%d= %d.%01d;= Y%d=0  ;=@` @ DECC$GXSPRINTF= %d%dh= > ףų%d%%=0" (;=0$  DECC$CLOCK=0& ;=0 ;7CPUT=tJ$=?h DECC$GETTIMEOFDAY7REALT DECC$STRNCPY=0" ;=04 7DECC$GA_STDERRPDECC$GXFPRINTF=-th7TRANS=-rx= errno=%d  DECC$EXIT= ttcp%s:  DECC$PERROR=0" ';=(@(| ttcp_mread DECC$RECV=0 " @$;=@8  ;0 DECC$RECVFROM=0  @;= $ =0" ;=P0 7DECC$$GA___CTYPET7DECC$$GL___CTYPEA DECC$ISPRINT=0 ;= ttcp%s: %s ! DECC$LISTEN #DECC$GETHOSTBYNAME% DECC$SOCKET=malloc' DECC$CONNECT) DECC$ACCEPT+ DECC$FWRITE7DOMAIN=p?Mb;7FROMLEN= connectp8OTS$ZERO7DECC$GA_STDOUT7 DECC$GA_STDIN /DECC$SETSOCKOPT=B= setsockopt@;;7ADDR;; ;=0" ;=T 7FD7BUF;SINME e5=;07HOST ;1 DECC$ATOI7STATS;7SINKMODE=socket3 DECC$HTONS5 DECC$FREAD=acceptbind7FROMINET ;=IO7DECC$INET_ADDR9 DECC$MALLOC; DECC$BIND= listenbad hostname8OTS$MOVE=08" ;=P0 7DECC$$SHELL_HANDLER=? DECC$MAIN: :=*"!TTCPVSI C V7.4-002? ?= 4=TRANSFER$BREAK$GO =  44= main 4=tl i i i  i i i i i i i i* i i i i i i i iԴ i i i