HDTenEightyP/NetNews huggingface dataset:
From: przemek@rrdstrad.nist.gov (Przemek Klosowski)
Newsgroups: comp.unix.ultrix,comp.sys.dec
Subject: Re: Connecting Modems to DEC Stations
Date: 21 Aug 92 17:54:25 GMT
	<1992Aug19.185928.25039@panix.com>
	<1992Aug20.043558.11448@decuac.dec.com> <5163@airs.com>
Followup-To: comp.unix.ultrix
Organization: U. of Maryland/NIST
In-reply-to: ian@airs.com's message of 21 Aug 92 04:08:19 GMT


Hello!

Regarding the modems and DECstations, I've just read in comp.sys.dec
that the DEC serial ports at 19200 bauds (no particular machine was
mentioned) don't run well with hardware flow control. Does this sound
true?  BTW, we have serial ports on both DECsystem 5820 and a
DECstation 5000/1xx. Where do you think it would be easier to connect
the modem?

When I tried to connect a Practical peripherals modem to a DECsystem,
I changed /etc/ttys to read "getty 8H19200" vt100 dialup on modem
shared, where 8H19200 is a rotary entry for std.19200. The computer
seems to drive the DTR and RTS in a way that I can't understand (drops
them when nothing seems to be happening on the wires). I suspect that
I may have a wrong cable, and the handshaking does not work. What is
the recommended handshaking procedure for DEC/modem interface (does
anyone have a recommended cable pinout)? Manual pointers are fine...

Well, two paragraphs and four questions. I hope someone knowledgeable
reads this :^)

		Greetings


	


--
			przemek klosowski (przemek@rrdstrad.nist.gov)
			Reactor Division (bldg. 235), E111
			National Institute of Standards and Technology
			Gaithersburg, MD 20899,      USA

			(301) 975 6249
Xref: sparky comp.unix.ultrix:6353 comp.sys.dec:4624
From: tls@panix.com (Thor Lancelot Simon)
Newsgroups: comp.unix.ultrix,comp.sys.dec
Subject: Re: Porting Wang RS/6000 AIX document imaging to Ultrix
Date: 20 Aug 92 07:37:16 GMT
Organization: PANIX Public Access Unix & Internet, NYC

In article <199208191551.AA25808@tuna.wang.com> IMAGING.CLUB@OFFICE.WANG.COM ("Imaging Club") writes:
>Would anyone have any advice or thoughts on the possibility
>of porting Wang RS/6000 AIX document imaging to Ultrix?  Could

>this be a good idea?  Is Ultrix something that's going to
>be around a long time, in your opinion?  Could there be any

It will be shortly eclipsed by OSF/1.  Ultrix applications should run under
OSF/1, though.  Actually, this brings up a point I'm curious about, which
perhaps someone from DEC could expand upon.  Since Ultrix binaries will run
under OSF/1, and there's a large base of installed MIPS Ultrix machines,
doesn't it make more sense in the short term to port to, or develop on, Ultrix
than OSF/1?

>minor or major weaknesses in Ultrix that we would need to watch

No shared libs.  They're in OSF/1, though.

>out for?   How might Ultrix match up against AIX in your view?

Well, I'm not terribly fond of Ultrix, but...

>Are they comparable, or could some or many Ultrix users consider
>AIX an upgrade?

It is my impression that just about anybody with previous UNIX experience
considers AIX a _downgrade_, from whatever.

-- 
Thor Lancelot Simon	 tls@panix.COM
  "Oh, you have wounded me!  I have very few prejudices, actually.  The
biggest problem is that I am intolerant of fools.  That is why I have
such a low tolerance level for Libertarians."  -- Jim McMaster
From: john@sekrit.WPI.EDU (John Stoffel)
Newsgroups: comp.unix.ultrix
Subject: DECnsr, has anyone any experience with it?
Date: 18 Aug 92 15:51:57 GMT
Organization: Phule's Company


Our site is looking into getting DECnrs, the Network Save and Restore
system for our Network of DS3100s and 5000s.  Has anyone out there had
any experience using this product?  If so, could you answer some or
all of the following questions?  Any other Backup and Restore programs
or philosophies or even anecdotes would be very appreciated.  Thanks!

What problems did you have during installation and configuration?  

What backup medium are you using?

How did this affect your network?

How much disk space are you backing up, and how much space did the
online file indexes use?

Was it easy to use?  Easy to add/delete partitions from the list of
disks to backup?  Easy for users to ask for old files to be restored?

Any other comments you think you can add?


--
Youth of today!  Join me in a mass rally for traditional mental attitudes!
-------------------------------------------------------------------------------
john@wpi.wpi.edu | Work Station Specialist | Worcester Polytechnic Institute
From: brian@kokom.mit.edu (Brian McAllister)
Newsgroups: comp.unix.ultrix
Subject: How to get phys-addr of ln0 if DECnet is running ?
Date: 15 Aug 92 00:19:51 GMT
Organization: Bates LINAC, MIT


System: DS5000/200, Ultrix 4.2

Normally, if one wishes to get the physical address of the ethernet
interface, one can do something like this:

	ioctl(socket_id, SIOCRPHYSADDR, &ifreq_struct);

When DECnet is running, it changes the physical address to one that
reflects the DECnet address of the system.  However, the system call
given above still returns the original address of the controller,
which is useless.

The only workaround we have found so far involves opening a
packetfilter and making this call on it:

	ioctl(pfdev, EIOCDEVP, &endevp_struct);

but this only works if the packetfilter is configured in the kernal.

So: How does one get the real address when DECnet is running ?

--
----
Brian McAllister       Internet: mcallister@mit.edu
                         BITNET: BRIAN@MITBATES
Xref: sparky comp.unix.ultrix:6258 comp.windows.x:15293
From: andrewr@iagu.itd.adelaide.edu.au (Andrew Rutherford)
Newsgroups: comp.unix.ultrix,comp.windows.x
Subject: Re: XIDLE extention to X11 - using for autologout?
Date: 17 Aug 92 05:21:02 GMT
Reply-To: andrewr@itd.adelaide.edu.au
Followup-To: comp.unix.ultrix
Organization: Information Technology Division, Adelaide University, Australia

In article <1992Aug11.140355.16540@uicc.com>, putsch@uicc.com (Jeff Putsch) writes:

+We're running X11 on DECstations here (Ultrix 4.2) and I would like to
+automagically log users out late at night PROVIDED there has been no
+activity on their terminal for a sufficient period of time. Since
+these workstations run X11 servers, it seems to me that the XIDLE
+extention would provide me the information needed to detect a
+logout-able user. My questions are:

	Another way of doing it is to use xautolock with the locking
command being one that kills off the session, with the time set to
something huge like 10 hours or so, and have it running out of
XStartup, not Xsession, so the users can't kill it off.

/*
 * Andrew Rutherford                 andrewr@itd.adelaide.edu.au
 * +61 8 228 5669            Real Programmers always confuse Christmas and
 * Room 1060, Adelaide Uni      Halloween because OCT 31 == DEC 25 !
 */
From: soley@trooa.enet.dec.com (Norman Soley)
Newsgroups: comp.unix.ultrix
Subject: Re: Fullsail
Date: 12 Aug 92 15:49:46 GMT
Organization: Digital Equipment Corporation


In article <1992Aug11.201151.6958@coe.montana.edu>, osyjm@cs.montana.edu (Jaye Mathisen) writes...
> 
>My sales rep doesn't know anything about it, and seems unable to find out
>anything more (He said he posted to some internal DEC conference asking
>about it, but came up blank. I don't believe him).
> 
>Can you give me a pointer or two on where I should have him look?  Or
>some kind of info that I can use to get him pointed in the right direction?

Have him check the April 13th issue of his Sales Update, there is an article in 
there titled "UNIX-Based Distributed System Management Applications" that 
will have the info he needs.

--
    Norman Soley, Specialist, Professional Software Services, ITC District
    Digital Equipment of Canada                   soley@trooa.enet.dec.com
    Opinions expressed are mine alone  and do not reflect those of Digital 
    Equipment Corporation or my cat Marge.
From: furukawa@apricot.kek.jp (Kazuro Furukawa)
Newsgroups: comp.unix.ultrix
Subject: Re: rpc.rstatd
Date: 13 Aug 92 01:15:02 GMT
Distribution: comp
Organization: National Laboratory for High Energy Physics (KEK)

Hello,

In article <19678@plains.NoDak.edu> grosen@isc.cs.ndsu.nodak.edu (Johannes Grosen) writes:
>I recently compiled the 'xmon' utility distributed as a part of the X11R5
>contrib software. It looks very nice but it requires 'rpc.rstatd' to work.
>I am aware that this is supplied as a part of SunOS and was wondering if
>there is something available to provide the same functionality for ultrix.

Ultrix does not include all the functionalities of Sun-rpc.  You may 
get some of them from Sun-rpc distribution.  (e.g. decuac.dec.com: 
/pub/sources/rpc4.0-ultrix.tar.Z)  It includes rstat.c, rstat_proc.c
and rstat.x under the directory rpcsrc/rpcsvc/.  The Makefile below 
generates rstat (client) and rstat_svc (server).

However this version of rstat server cannot be invoked from inetd. 
Instead, it needs to be invoked from rc.local explicitly. 

Then it will respond to rstat and rup calls.  We can see Ultrix machines 
in the rup lists.

I have a relevant question.  Are there sources for "rup", "rusers" and 
"rusersd" available?

>Johannes Grosen
>ISC Group System Administrator
>401E Minard Hall
>North Dakota State University
>(701) 237-8409

----- Makefile for rstat and rstat_svc -----
#
# Makefile for rstat and rstat_svc
# Kazuro Furukawa, Oct.13.1991.  for peach
#
CC=cc
#CFLAGS=-g -I/usr/local/include -L/usr/local/lib -lrpclib
CFLAGS = -I/usr/local/include
BIN = rstat rstat_svc
GEN = rstat_clnt.c rstat_xdr.c rstat_svc.c rstat.h
LIB = -lrpclib

all:	$(BIN)

rstat:	rstat.o rstat_xdr.o rstat_clnt.o
	${CC} -o rstat rstat.o rstat_xdr.o rstat_clnt.o $(LIB)

rstat_svc: rstat_proc.o rstat_xdr.o rstat_svc.o
	${CC} -o rstat_svc rstat_proc.o rstat_xdr.o rstat_svc.o $(LIB)

rstat.o rstat_proc.o:	rstat.h

$(GEN):	rstat.x
	rpcgen rstat.x

clean:
	rm -f $(BIN) $(GEN) *.o #* *~
----- End -----
-- 
Kazuro Furukawa
KEK, National Laboratory for High Energy Physics, Japan
furukawa@kek.jp   furukawa@jpnkekvx.bitnet   kekvax::furukawa (hepnet)
From: skok@itwds1.energietechnik.uni-stuttgart.de (Holger Skok)
Newsgroups: comp.unix.ultrix
Subject: Re: w and ps don't agree + Typical UN*X-attitude
Date: 19 Aug 92 13:47:29 GMT
Organization: Inst. f. Thermodynamik u. Waermetechnik (ITW), U. of Stuttgart, FRG

In article <1992Aug19.084554.10580@reed.edu> nelson@reed.edu (Nelson Minar) writes:
>In article <1992Aug19.071445.4360@ircam.fr> fingerhu@ircam.fr (Michel Fingerhut) writes:
[stuff deleted]
>
>There's bound to be 6000 pieces of software that will all edit the
>utmp. I could write an emacs mode for it in 15 minutes, and I have
>written C code to edit /etc/utmp (in a specific way, not to wipe out
>the old entries). But the problem doesn't show up often enough to be
>worth the trouble of writing Real Software.
>
>What I usually do is load /etc/utmp up in emacs, find the offending
>tty entry, find the name of the user, and replace the first character
>with a null. Seems to work good enough. Wiping the entire entry with
>nulls is probably better, but takes more keystrokes.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
That is a typical UN*X attitude. I believe it explains a lot of the things
a UN*X newbie simply cannot understand i.e. the existence of a large
number of different dialects of UN*X, the haphazard way a UN*X system is
constructed (with oodles of expansions and extensions and drivers and
and and.... all written by different programmers with different ideas of
interfacing and different qualification), the different ways of adding
modifiers to a command (some with "-", some without, some with a "-"
preceding every single modifier), the moronic idea of naming a command
after its programmers and not finding a mnemonic to indicate its use
plus, finally, the many incompatibilities between different flavours of
UN*X that I had to grapple with endlessly while setting up a
seven-machine-LAN at our university institute.

I'll leave it at that, even though I could go on like this for a while. 
This posting might attract flames anyway. If it does - flames to
/dev/null!
-- 
*************************************************
*	Those stupid, horse-brained masses! 	*
*			OPUS (of meadow fame)	*
*******************************************HSK***
From: sherer@lub001.lamar.edu
Newsgroups: comp.unix.ultrix
Subject: Remote DECwindows on ULTRIX
Date: 20 Aug 1992 18:42:39 GMT
Organization: Lamar University - Beaumont

I have a VAXstation 4000 running VMS and a DECsystem 5100 running ULTRIX. I
would like to run DECwindows applications off the DECsystem and display them on
my workstation. We are running TCP/IP, and I have tried to use the 'setenv
DISPLAY ' with my VAXstation's IP address, but I get the X toolkit error
message. I will be installing DECnet soon, so if I have to use that for the
DECwindows applications, I can, but I just wanted to know how to do it in
TCP/IP for now, if anyone knows....

Thanks in advance...


Kirk Sherer
Lamar University
SHERER@LUB001.LAMAR.EDU
From: roth@ordin.cs.wisc.edu (Bill Roth)
Newsgroups: comp.unix.ultrix
Subject: Measuring memory usage
Date: 17 Aug 92 20:31:31 GMT
Organization: U of Wisconsin Madison - Computer Sciences



Hi.

Is there any simple way to measure the memory a process uses from
within the process at certain benchmark points? I do not want to set
up counters at every malloc. I merely want to see the change in memory
usage after some operation has occurred.

Please email your replies.
--

-------------------------------------------------------------------
Bill Roth, University of Wisconsin Computer Sciences Dept.
Internet: roth@cs.wisc.edu. BITNET: ROTH@WISCPSL. HEPNET: PSL::ROTH
Newsgroups: comp.unix.ultrix
From: brian@kokom.mit.edu (Brian McAllister)
Subject: Re: How to get phys-addr of ln0 if DECnet is running ?
Organization: Bates LINAC, MIT
Date: Mon, 17 Aug 1992 21:12:06 GMT

In article <BRIAN.92Aug14191951@kokom.mit.edu> brian@kokom.mit.edu (Brian McAllister) writes:

>> Normally, if one wishes to get the physical address of the ethernet
>> interface, one can do something like this:
>>
>>	   ioctl(socket_id, SIOCRPHYSADDR, &ifreq_struct);
>>
>> When DECnet is running, it changes the physical address to one that
>> reflects the DECnet address of the system.  However, the system call
>> given above still returns the original address of the controller,
>> which is useless.

>> So: How does one get the real address when DECnet is running ?

Well, the answer is to use the right struct in the ioctl, that is to
use an ifdevea struct instead of an ifreq (see <net/if.h>).  This
returns the hardware address and the current physical address, in easy
to use form.  It would be nice if the Ultrix man pages told you this.

Thanks to the following people for their help :

	hooft@prl.philips.nl (Van Hooft PJG)
	rob@icarus.ssd.loral.com (Rob Riepel)
	dietrich@dxsw01.cern.ch (Dietrich Wiegandt)
	chmr@edvz.tu-graz.ac.at (Christoph Robitschko)

- brian
--
----
Brian McAllister       Internet: mcallister@mit.edu
                         BITNET: BRIAN@MITBATES
From: einari@rhi.hi.is (Einar Indridason)
Newsgroups: comp.unix.ultrix
Subject: vi dumps core on one machine, not other.  Any suggestions?
Date: 17 Aug 92 10:17:40 GMT


The problem:  vi dumps core on one DS5000/120 but not on another one.

On the core-dumping machine, vi used to work, but suddenly it started to
dump core when ever I entered 'vi', 'e', 'view'....

So I downloaded vi from another DS5000/120.  
I 'cmp' the downloaded vi with the original vi.  No difference.  
Fine I thought.  So I start up the downloaded vi.  Same result: Core 
dumped.  I log in to the machine that I downloaded from.  
Start vi.  No problem at all.

(vi on the original machine used to be allright and comparing the two 'vi's
gave back that they were identical.)


Anyone have any idea what is going on?


--
einari@rhi.hi.is
Newsgroups: comp.unix.ultrix
From: stan@sabaac.NoSubdomain.NoDomain (Andrew Staniszewski)
Subject: malloc
Reply-To: staniszewski@mayo.edu
Organization: Mayo Foundation
Date: Thu, 20 Aug 92 15:35:42 GMT

Hi,
I am having trouble finding a problem with dynamicly allocated memory.
Specificlly I will get unexplicable bus errors inside malloc after LOTS of
dynamic memory manipulation. I put a layer of tracking software between my
program and malloc, which should have cought such things as freeing memory that
wasn't malloced, writing beyond the block of allocated memory and some other
stuff. I just ended up crashing inside molloc in a differn't place. 

Does anyone have source for malloc that I could use to build a debug version
and look at the internal structures and try to figure out what is happening??

It could still be that I am trouncing mallocs data structures from my program,
but the fact that as I tried to nail the problem down, the program crashed in
malloc, but at differnt positions in the code, as opposed to ever crashing
elsewhere, tells me I may have hit an obscure bug in malloc.

I have looked at glibc, but there is no definition for mips/ultrix


thanks 

AJS
From: mjo@ef2007.efhd.ford.com (Mike O'Connor)
Newsgroups: comp.unix.ultrix
Subject: Re: w and ps don't agree
Date: 18 Aug 92 13:37:10 GMT
Reply-To: Mike O'Connor <mjo@fmsrl7.srl.ford.com>
Organization: International Affairs, Overseas Engineering, "Fordz"
X-Disclaimer: Not an official spokesperson for Ford OPEO

In article <1992Aug17.081549.12346@trl.oz.au> gheeong@rhea.trl.OZ.AU
(Ghee Ong) writes:

:The output from 'w' shown below indicates a user is logged in but ps -t<port>
:gives no processes. How can I clean up the output without rebooting and what
:causes it?

/etc/utmp is hosed.  This can result from a variety of conditions --
usually X-based, but not necessarily so.  I believe there are utmp
editors out there in the alt.sources archives -- utmp isn't a plain
text file.  Or one could just "cat /dev/null > /etc/utmp" and it'll
rebuild itself.

						...Mike
-- 
 Michael J. O'Connor           |  Internet:  mjo@fmsrl7.srl.ford.com
 Ford Motor Company, OPEO      |  UUCP:      ...!{backbone}!fmsrl7!mjo
 20000 Rotunda, Bldg. 1-3001   |  Phone:     +1 (313) 248-1260
 Dearborn, MI  48121           |  Fax:       +1 (313) 323-6277
From: hirai@cc.swarthmore.edu (Eiji Hirai)
Newsgroups: comp.unix.ultrix
Subject: Re: Locked up windows
Date: 20 Aug 92 16:45:48 GMT
Organization: Swarthmore College Computing Center, Swarthmore, PA, USA

peter@essex.ac.uk (Allott P R) writes:
> if you run an xterm (NOT DECterm)
> set filec and then use the <escape> key to complete a file name

You didn't specify which shell or which X you're using.  I assume that
you're using tcsh for file completion.  The latest tcsh is 6.02 and is at:

	tesla.ee.cornell.edu:/pub/tcsh-6.02.

You can find out the version of tcsh you're using by typing "echo $version".

The latest X release is X11R5 patchlevel 16, available from almost
everywhere.

--
Eiji Hirai <hirai@cc.swarthmore.edu>    :     :    :   :  : :: ::: :::: :::::
Unix Hacker for Swarthmore College      :     :    :   :  : :: ::: :::: :::::
Computing Center, Swarthmore, PA, USA.  Copyright 1992 by Eiji Hirai.
I don't speak for Swarthmore College.   All Rights Reserved.
From: orzechowski@inland.com (Laurie)
Newsgroups: comp.unix.ultrix
Subject: Re: Image Accounting needed
Date: 17 Aug 92 13:50:40 CST
Organization: Inland Steel Company; East Chicago, IN

Once again, I'm appealing for information.  Does anyone know of a way
to log user time and/or time spent on specific packages/images?  Please
e-mail the information to me and I will post the results...if any...
for others.  Thanks...

                               - Laurie

orzechowski@inland.com
Newsgroups: comp.unix.ultrix
From: mclean@amzeus.enet.dec.com (Kenneth McLean (Ohio State University))
Subject: disk configuration
Reply-To: kasemann@vxdesy.desy.de
Organization: THE OHIO STATE UNVERSITY
Date: Thu, 20 Aug 1992 16:20:49 GMT

We have several Seagate Wren 7 ST41200ND,ST4767ND drives and can't seem to configure them. Please reply to 13390::MCLEAN (decnet) or MCLEAN@131.169.2.73
(ip) as it seems that some replies to a previous call for help were deleted
by the powers that try to be before I saw them.


rzdisk and newfs all give IO errors.   They seem allwrite w.r.t
the "cnfg" commands and "rzdisk -i".  I can also cat to the disk as a raw
device in block mode but not character mode... 

Ken McLean

==============================================================================
zeosu4-root/osu3/mclean# newfs -v /dev/rrz6c RZ57
Warning: missing disk partition table
Warning: partition table overriding /etc/disktab
/etc/mkfs /dev/rrz6c 2031705 71 15 8192 1024 16 10 60 2048 t
write error: 2031704
wtfs: I/O error

================================================================================
zeosu4-root/osu3/mclean# rzdisk -f write /dev/rrz6c

FORMATTING WILL DESTROY ALL DATA ON DISK (/dev/rrz6c)!

ARE YOU SURE (y/n)? y

Formatting device (/dev/rrz6c).
        working ..... Thu Aug 20 18:15:06 1992

*** ERROR OCCURRED on /dev/rrz6c DURING COMMAND (Format Unit) ***

Sense Key (0x4): hardware error.
Additional Sense Code (0x3): peripheral device write fault.
Sense Data: 70 0 4 0 0 0 4e a 0 0 0 0 3 0 0 0 0 0
Newsgroups: comp.unix.ultrix
From: kforward@morgan.ucs.mun.ca (Ken Forward)
Subject: max[d|t|s]siz
Summary: how to optimize these kernel parameters
Keywords: kernel, maxdsiz, maxtsiz, maxssiz
Organization: Memorial University of Newfoundland
Date: Thu, 13 Aug 1992 13:49:19 GMT

A colleague has recently upgraded his DS5000/125 w/ Ultrix 4.2 to 128MB 
of memory. Aside from changing 'physmem' in the kernel configuration file, 
we are wondering how best to set the maxdsiz, maxtsiz, and maxssiz
parameters; in particular, is there any problem with setting them all 
very large, eg, equal to physmem ?  What sort of overhead would we incur 
by doing so ?

This machine typically runs a single large(data-wise) application at a 
time; because his code is written in c, I'm also concerned about stack 
size. 

Any and all insights gratefully received, :-)
-- 
  Ken Forward, Dept of Physics, Memorial University of Newfoundland
   <kforward@crosby.physics.mun.ca> | <kforward@morgan.ucs.mun.ca>
 "...don't plant your bad days, they grow into weeks..." -Tom Waits-
Xref: sparky comp.unix.ultrix:6239 comp.sys.dec:4534
From: cdm@pmafire.inel.gov (Dale Cook)
Newsgroups: comp.unix.ultrix,comp.sys.dec
Subject: Re: # of users allowed on ULTRIX workstation
Keywords: ULTRIX,#user-restriction
Date: 10 Aug 92 20:50:11 GMT
Organization: WINCO

In article <1992Aug10.141702.9609@tamsun.tamu.edu> zod@zeus.tamu.edu writes:
>
>I hate to get involved in religious wars, but might I suggest to your
>code generators that it would be appropriate to make the "are you trying
>to log in as root or ID 0 from an unsecure terminal" test BEFORE getting
>a password.  This is a SIMPLE change to the code and MUCH MUCH MUCH more
>secure than letting someone guess at the password and then giving them
>an indication of whether or not it was correct.  I believe this would
>satisfy both the security aware and the security sentient.  Another way
>to solve both these peoples problems would be to make the message
>"not secure terminal" for either correct or incorrect passwords if the
>user is trying to log in as root.  Once again, this is a simple code fix.
>
>

Better yet, make the message configurable.  Then, if you don't like it,
you can change it to whatever blows your hair back.

--------------------------------------------------------------------------
...Dale Cook    "A low voter turnout is an indication of fewer people
                 going to the polls."  --- J. Danforth Quayle
The opinions are mine only (i.e., they are NOT my employer's)
--------------------------------------------------------------------------