// server.idl

module demo
{
module outparam 
{
	typedef sequence < string > stringSeq;
	typedef sequence <stringSeq> stringField;
	typedef sequence <stringField> stringCube;

	typedef string stringArray[5];

	struct my_struct 
	{
            string s;
            long l;
            Object o;
	};
		
	interface MyServer 
        {
	    void op1(in string a1, out stringSeq s);
	    void op2(out MyServer s);
	    void op3(out my_struct m);
	    void op4(out stringArray sa);
	    wstring op5(out wstring ws);
	    void stringCubeInOut(inout stringCube sc);
	    void print( in string s);
	    boolean addNums(in double n1, in double n2, out double n3);
	};	   
};
};
