[omniORB] struct forward declaration under interface scope

Joćo Leal Joao.Leal@siemens.com
Thu Mar 27 10:22:01 2003


This is a multi-part message in MIME format.

------_=_NextPart_001_01C2F44A.2C81B350
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01C2F44A.2C81B350"


------_=_NextPart_002_01C2F44A.2C81B350
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


[Description]

If I try to forward declare a struct, in the scope of an interface, the =
code generated by omniidl fails to compile under msvc.



[Test environment]
OS: Windows NT 4.0 - Service pack 6a
omniORB: V4.0.0_1
C++ Compiler: MSVC 6.0 - Service pack 5



[IDL]

module TT {

	interface Fake {

		struct Node;

		typedef sequence<Node> Childs;

		struct Node {
			Childs childs_;
		};
	};
};



[Build output]

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        ..\..\..\bin\x86_win32\omniidl -T -bcxx -Wbh=3D.hh -Wbs=3DSK.cc =
-Wbtp echo.idl
        cl /nologo /c -O2 -MD -GX -D__WIN32__ -D_WIN32_WINNT=3D0x0400 =
-D__x86__ -D__NT__  -D__OSVERSION__=3D4 -I. -I..\..\..\include =
/TpechoSK.cc
echoSK.cc
echo.hh(126) : error C2629: unexpected 'class TT::Fake::Childs ('
echo.hh(126) : error C2334: unexpected token(s) preceding ':'; skipping =
apparent function body
echo.hh(133) : error C2027: use of undefined type 'Fake'
        echo.hh(88) : see declaration of 'Fake'
echo.hh(134) : error C2027: use of undefined type 'Fake'
        echo.hh(88) : see declaration of 'Fake'
echo.hh(135) : error C2027: use of undefined type 'Fake'
        echo.hh(88) : see declaration of 'Fake'
echo.hh(136) : error C2027: use of undefined type 'Fake'
        echo.hh(88) : see declaration of 'Fake'
echo.hh(173) : error C2027: use of undefined type 'Fake'
        echo.hh(88) : see declaration of 'Fake'
echo.hh(219) : error C2027: use of undefined type 'Fake'
        echo.hh(88) : see declaration of 'Fake'
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.



[Reason]

Let's analyze the error of line 126:

echo.hh(126) inline Childs(_CORBA_ULong _max, _CORBA_ULong _len, =
TT::Fake::Node* _val, _CORBA_Boolean _rel=3D0)

The problem seams to be the use of 'TT::Fake::Node' instead of 'Node' =
(if I change the generated code it will work fine).



Best Regards
Joao Filipe Leal
 <<ole0.bmp>>=20
 <<ole1.bmp>>=20
R&D ON TMN BD BSW3 - Ed. 1 - Piso 1
E-mail: joao.leal@siemens.com
Phone:  +351 214 242 245
Fax:    +351 214 242 054



------_=_NextPart_002_01C2F44A.2C81B350
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.0.6249.1">
<TITLE>struct forward declaration under interface scope</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<BR>

<P><FONT SIZE=3D2 FACE=3D"Arial">[Description]</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">If I try to forward declare a struct, =
in the scope of an interface, the code generated by omniidl fails to =
compile under msvc.</FONT></P>
<BR>
<BR>

<P><FONT SIZE=3D2 FACE=3D"Arial">[Test environment]</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">OS: Windows NT 4.0 - Service pack =
6a</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">omniORB: V4.0.0_1</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">C++ Compiler: MSVC 6.0 - Service pack =
5</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2 FACE=3D"Arial">[IDL]</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">module TT {</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2 =
FACE=3D"Arial">interface Fake {</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2 =
FACE=3D"Arial">struct Node;</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2 =
FACE=3D"Arial">typedef sequence&lt;Node&gt; Childs;</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2 =
FACE=3D"Arial">struct Node {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2 =
FACE=3D"Arial">Childs childs_;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2 =
FACE=3D"Arial">};</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=3D2 =
FACE=3D"Arial">};</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">};</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2 FACE=3D"Arial">[Build output]</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">Microsoft (R) Program Maintenance =
Utility&nbsp;&nbsp; Version 6.00.8168.0</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">Copyright (C) Microsoft Corp =
1988-1998. All rights reserved.</FONT>
</P>

<P><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
..\..\..\bin\x86_win32\omniidl -T -bcxx -Wbh=3D.hh -Wbs=3DSK.cc -Wbtp =
echo.idl</FONT>

<BR><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cl /nologo /c =
-O2 -MD -GX -D__WIN32__ -D_WIN32_WINNT=3D0x0400 -D__x86__ -D__NT__&nbsp; =
-D__OSVERSION__=3D4 -I. -I..\..\..\include /TpechoSK.cc</FONT></P>

<P><FONT SIZE=3D2 FACE=3D"Arial">echoSK.cc</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(126) : error C2629: unexpected =
'class TT::Fake::Childs ('</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(126) : error C2334: unexpected =
token(s) preceding ':'; skipping apparent function body</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(133) : error C2027: use of =
undefined type 'Fake'</FONT>

<BR><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo.hh(88) : =
see declaration of 'Fake'</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(134) : error C2027: use of =
undefined type 'Fake'</FONT>

<BR><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo.hh(88) : =
see declaration of 'Fake'</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(135) : error C2027: use of =
undefined type 'Fake'</FONT>

<BR><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo.hh(88) : =
see declaration of 'Fake'</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(136) : error C2027: use of =
undefined type 'Fake'</FONT>

<BR><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo.hh(88) : =
see declaration of 'Fake'</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(173) : error C2027: use of =
undefined type 'Fake'</FONT>

<BR><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo.hh(88) : =
see declaration of 'Fake'</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(219) : error C2027: use of =
undefined type 'Fake'</FONT>

<BR><FONT SIZE=3D2 =
FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo.hh(88) : =
see declaration of 'Fake'</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">NMAKE : fatal error U1077: 'cl' : =
return code '0x2'</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">Stop.</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2 FACE=3D"Arial">[Reason]</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">Let's analyze the error of line =
126:</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">echo.hh(126) inline Childs(_CORBA_ULong =
_max, _CORBA_ULong _len, TT::Fake::Node* _val, _CORBA_Boolean =
_rel=3D0)</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">The problem seams to be the use of =
'TT::Fake::Node' instead of 'Node' (if I change the generated code it =
will work fine).</FONT></P>
<BR>
<BR>

<P><FONT SIZE=3D2 FACE=3D"Arial">Best Regards</FONT>

<BR><SPAN LANG=3D"pt"><B><FONT SIZE=3D2 FACE=3D"Arial CE">Jo&#259;o =
Filipe Leal</FONT></B></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT FACE=3D"Arial" SIZE=3D2 =
COLOR=3D"#000000">
<IMG SRC=3D"No%20AttachName" alt=3D"ole0.bmp"></FONT></SPAN><SPAN =
LANG=3D"pt"></SPAN><SPAN LANG=3D"pt"></SPAN>

<BR><SPAN LANG=3D"en-us"><FONT FACE=3D"Arial" SIZE=3D2 =
COLOR=3D"#000000">
<IMG SRC=3D"No%20AttachName-1" alt=3D"ole1.bmp"></FONT></SPAN><SPAN =
LANG=3D"pt"></SPAN><SPAN LANG=3D"pt"></SPAN>

<BR><SPAN LANG=3D"pt"><B><I><FONT COLOR=3D"#008080" SIZE=3D2 =
FACE=3D"Arial">R&amp;D ON TMN BD BSW3 - Ed. 1 - Piso =
1</FONT></I></B></SPAN>

<BR><SPAN LANG=3D"pt"><I><FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Courier New">E-mail:</FONT></I><FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Courier New"> joao.leal@siemens.com</FONT></SPAN>

<BR><SPAN LANG=3D"pt"><I><FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Courier New">Phone:</FONT></I><FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Courier New">&nbsp; +351 214 242 245</FONT></SPAN>

<BR><SPAN LANG=3D"pt"><I><FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Courier New">Fax:</FONT></I><FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; +351 214 242 054</FONT></SPAN>
</P>
<BR>

</BODY>
</HTML>
------_=_NextPart_002_01C2F44A.2C81B350--

------_=_NextPart_001_01C2F44A.2C81B350
Content-Type: image/bmp;
	name="ole0.bmp"
Content-Transfer-Encoding: base64
Content-Description: ole0.bmp
Content-Location: No%20AttachName

Qk02GwAAAAAAADYAAAAoAAAAYAAAABgAAAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
///x5ua41dWbx8eUycmGxcV4w8OL0NCg4eHL9/f3////////////7u7v2Nig2Nic19eu6emx8fH4
////+/v45eXI1tai2Nil2Niw2Nij2Nio2Niw2Nig2Nis2Niu1NSm///y////6enR1tal19eg5ubR
////////+fn819e3xcWJ0tKU6+vg/f3/////////1NSm2Nic2Nif29u08vLh///////77e3Q1tar
2Niv2Nii2Nip2Niw2Nig2Nic2Niw2Nic2Niu7u7P////9PTe1tak1taX6urJ////////////////
7+/P2tqu2Niv2Nic19et7u7b////+/v85ubX19ek09Ocv7+AwMB7ycmMzMyh5OS67Ozh////////
////7+/SkJAAmpoAm5sAm5sAnJwAnJwAm5sAoKANwcFu7u7h////////yMiWm5sAm5sAmpoAoKAf
+fn/////+fntx8delpYAnJwAnJwAm5sAmpoAmpoAmpoAmpoAmpoAkZEA5+fe////1NR9lJQAnZ0A
yclp////////+fneubk3mpoAlZUA3Nyd///+////////j48AnJwAmpoAoaEA1taE////+/v60dGB
oKAAm5sAnJwAm5sAmpoAmpoAmpoAmpoAmpoAmpoAysp7////39+qoaEAlZUAwcFZ+/v1////////
////uLg7m5sAm5sAm5sAmZkAw8OD////5+fburpLl5cAmpoAnJwAnJwAm5sAm5sAo6MAvb1K7e3H
////////4eG5nZ0AqKgara0krKwqra0qqakjoqIHoaEAmpoAuble8fHm////1NS1oaEAoaEAoaEA
srIp+fn/////+fnvyspqnZ0AoqIAoaEAoqILp6cbp6cYp6cbp6ccqKgVn58P+fn6////1tZ9m5sA
oqICzMx7////////1NSUpqYJoaEAn58AtrYs9/fq////////lpYIoqIAoaEApqYO1taa/////Pz5
1NR/paUAoaEAoaEApKQIp6cVqKgcp6ccqKgWpqYbqKgc2tqQ////4eGip6cAnJwAxcVs/Pz+////
////3d2mp6cPoaEAoqIAoaEAoKAAxsaR////6uresbFFo6MHra0grKwlrKwrrq4fpKQMoKAAnZ0A
n58N8PDL////7e3XxcVj3d2x5ubF5eXS5+fU2tq8trZLo6MAoaEAoaEA2dmf////19e4oaEAoaEA
oaEAqqog+fn/////+fnvyspqnZ0AoqIAoKAAtbVZ0NCo2dmr1NSs2tq11NSh1taq+fn/////1taE
m5sAoqIAzMx2////7e3iublfnp4AoqIAoqIAmJgA3Ny1////////lpYIoqIAoaEAp6cN3NyZ////
/Pz61NSHpaUAoaEAoKAAsLA01dWc1NSv2tq109Og29u109Os5+fY////4eGhp6cLnJwAxcVs/Pz+
////9PTmrq4+n58AoqIAoqIAoaEAoKAAxsaN////+vrz1NSa0dGX5+e+5eXH5ubU5+e/wMBioqIM
oaEAnZ0Au7tY///////6+vr6////////////////9fXzxsZoo6MAoaEAnJwAxsZ6/v7/2dm6oqIA
oaEAoaEArq4w+fn/////+fnvyspqnZ0AoqIAnZ0Czs6P+fn6////+/v/////+fn/////////////
1tZ/m5sAoqIAzMx5////4eG0rq4goKAAoqIAoqIAoKAAsLBO////////lpYIoqIAoaEAp6cN2dmZ
/////Pz51NSDpaUAoaEAn58Au7tG+/vz/Pz/////+fn/////+fn+/////v784eGkp6cJnJwAxcVo
/f36////0NCOpaUMoaEAoqIAoqIAoaEAoKAAxsaP/////f3/+fn//f3//////////////Pz/zs6N
p6cSoaEAoaEApqYv+/v5////////////////9fX02NinxcVyqqocoKAAoqIAnJwAxcV//v7/1NS1
oaEAoaEAoaEArq4w+fn/////+fnvyspqnZ0AoqIAnJwA1dWY/v7/////////////////////////
////1taJm5sAoqIAzc18////ycl0oaEAoaEAoaEAn58AoaEAl5cA7Ozd////lpYJoqIAoaEAp6cN
2dmZ/////Pz51NSDpaUAoaEAn58AvLxQ/Pz5/////////////////////////v7/4eGrp6cAnJwA
xcVo////7u7Rr68xn58AoqIAoKAAoaEHoaEAoKAAxsaP////////////////////+fn339/Cz89+
srI0oqIGoaEAn58Ar68p+vr5////////7Ozh1NSXtrZIpqYUoaEAoaEAoqIAn58ApqYc5OTD////
1NS1oaEAoaEAoaEAqqog+fn/////+fnvyspqnZ0AoqIAoKAAtLQ/v79zwsJ5xMR7w8N4ysqC9vb5
////////1taJm5sAoqIA0dF87u7SqqonoKAAoaEArq4iv79XpqYRnJwAx8dk////mJgNoqIAoaEA
p6cN3NyZ/////Pz61NSHpaUAoaEAoaEAp6cowMByxMR8xMR6w8N6wsJ25ubA/////v784eGkp6cC
nJwAx8dw+fn6xcV1oaEAoaEAoKAAs7Mvrq49oaEAoKAAxsaN/////////////Pz+1tayublXqKgl
pKQGoqIAoaEAoKAAoqIA2dmJ////////3NzDuLhDo6MJnp4AoaEAoaEAoaEAnZ0Ap6cM09Of+/v7
////1NS0oaEAoaEAoaEAsrIp+fn/////+fnvyspqnZ0AoqIAoqIAn58AnZ0AnJwAnJwAnJwAl5cE
8PD3///////+1tZ8m5sAo6MExsZ20NCdn58AoaEAnp4Au7ti6urUubksoKAAoaED////mZkAoqIA
oaEApqYN1dWZ/////Pz51NSHpaUGoaEAoqIAoKAAnZ0AnJwAnJwAnJwAmJgA1tZ6////+/v81dWh
qKgJnZ0AxMRu4OC5sLAvoKAAoqIAmpoA1NSht7dXoaEAoKAAxsaR/////v7/7u7pxcVyo6MTnp4A
oaEAoaEAoaEAn58AoqIAycl3/Pzx////+fnmsLApoaEAoaEAoqIAoaEAnp4AoKANv79o4ODD+Pj3
////////1NS0oaEAoaEAoaEApqYw+fn/////+fnvyspqnZ0AoqIAoaEAp6cRqakap6cVp6cVpqYS
rq4n7+/0////////1taGm5sApaUIvb1RublYn58AoaEAo6ML1tai9PT81taMpaUGnJwAzMyUnp4a
oqIAoaEAqKgN39+Z/////Pz31NSEpaUGoaEAoaEAqqoRqakYp6cWp6cVpqYVra0P0tKG/////f38
3t6lqKgLnp4Aurpgvr5noaEAoaEAoKAAra1D+/v8t7dpoKAAoKAAxsaL////+vr3yMh4n58AoaEA
oqIAoaEAnp4ApKQAsLAy29uz+fn4////////19e1nZ0AoaEAoqIAoKAAnp4AvLxe4uLF9vb2////
////////////09O0oaEAoaEAoaEAtbUx+fn/////+fnvyspqnZ0AoqIAnp4HycmK9/fu+vr1+fnz
+fny+vrz/v7/////////1taJnJwAoqIAo6MNo6MSoaEAn58At7cq8fHP////6enWpaUdoKAAoqIc
oaEYoqIAoaEApaUN09OZ/////Pz31NSEpaUGoaEAn58AwsJA9PTe+/v3+fnz+fnz+vry+/v5////
/v794eGhp6cAoaEAo6MSoqIRoaEAoqIAl5cA29vB////trZYoKAAoKAAxsaU////5ubGq6sfoKAA
oqIAnp4AoaEAu7tI4eG16+vj+/v/////////////wMBVnp4AoqIAoKAAsLA56enQ+fn/////////
////////////////3d2+oqICoaEAoaEAoqIZ+fn/////+fnvyspqnZ0AoqIAnZ0Azc2L////////
////////////////////////1taKnJwAoaEAoaEAoaEAoqIAm5sA0NCU/f3/////////trZpoKAA
oaEAoqIAoqIAoaEAqakN4eGZ/////Pz31NSEpaUGoaEAoKAAtLRU+Pjz////////////////////
/////v784eGop6cIoaEAoaEAoaEAoqIAnZ0Avb1V+Pjv////trZVoKAAoKAAx8eJ////4OC6mJgA
oaEAn58Av79D7e3D+/v7////////////////////////1NSUm5sAoaEAn58Au7tp////////////
+fn+7u7b+fni///8////ycmYoaEAoaEAoaEAtrYx+fn/////+fnvyspqnZ0AoqIAnp4Ax8eH7u7w
8PD18PD08PD08PD07u7w///////+1tZ3nJwAoqIAoqIAoqIAoaEApaUo4+PJ////////////7u7U
oqIAoaEAoaEAoqIAoaEApKQN0tKZ/////Pz31NSFpaUGoaEAoKAAtbVG6eng8fH48PD08PD07+/z
8PDz/////v754eGXp6cLoaEAoqIAoqIAoaEApqYW8fHP////////trZVoKAAoKAAx8eV////5OTT
qakYoKAAn58Avr5m9/f9////////////8/P57u7O///9////+Pjlr68dn58AoaEAoqIWq6s9u7tf
v79jrKxCo6MA19eU/f3/////29vEoqICoaEAoaEApKQv+fn/////+fnuysppnZ0AoqIAoqIHnZ0O
paUmqqogq6svmZkJqaksoaEb9fXu////1taJnJwAoqIAoqIAoaEAnp4AxcVw+fnu////////////
////urpRoKAAoaEAoqIAoaEAqakN4OCZ/////Pz81NSLpaUCoaEAoqIAnp4AqaksmpoNqakZqqoy
qakYqqo11NSz////4eG0p6cEoaEAoqIAoaEAnZ0A0NBs+/vw////////tbVVoKAAoKAAxsaJ////
7e3fxsZTnp4AoaEAnZ0DoKApvr5eurpeqak3qakaoKAq+/v6////////5ubCt7cjpKQEnZ0AnZ0A
m5sAm5sAnJwAmpoA1taa/f3/////y8ucnp4Anp4AnZ0AsbEm+Pj/////+fnuyMhnmZkAn58An58A
n58Anp4AnZ0AnZ0Anp4AnZ0Al5cA8PDm////1NSHmJgAn58An58AnZ0ApqYP2tqq/f3/////////
////////4ODFoKAAnp4An58Anp4AoqIH09OZ////+/v30tJ7oqIAnp4An58An58AnZ0Anp4AnZ0A
nZ0AnJwAnZ0Ez8+a////4OChpKQAnZ0Anp4An58Aq6sw7OzZ////////////t7dRnJwAnJwAy8uT
////////6+vhvr5UpqYOoaEAnZ0Am5sAm5sAnJwAn58AnZ0P+/v5////////////9/fj2NiIt7dN
urpDurpHurpHublMxMRf6OjD/f39////5eXUu7tZurpgublUurpn+vr/////+vr22NigtrZSurpc
urpfurpZurpgurpXurpUurpmublRw8NU+fn5////4eG2trZOurpeurpcuLhazc109/fe////////
////////////+/vtx8d+uLhiurpRubljwMBc6enD/////Pz739+5vb1purpYurpiurpWurpjurpU
urpVurpourpOvLxX8vLO////6OjQv79mublXublfv79T3d2q+vr5////////////1taOuLhjuLhK
8PC9/////////v7/9fX35OS0xsZiublEurpEurpGublaxMRe29ui/v7/////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////

------_=_NextPart_001_01C2F44A.2C81B350
Content-Type: image/bmp;
	name="ole1.bmp"
Content-Transfer-Encoding: base64
Content-Description: ole1.bmp
Content-Location: No%20AttachName-1

Qk1WIgAAAAAAADYAAAAoAAAAcAAAABoAAAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////
////////////////////////////////9/jy1tfRn6Cej4+NkJCOnJuZubq63t3c/P38////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////8/X5trvHY2RqFBgvHiM3KjBHMDVRMzhUMjdTLzNPJSpITk9TkZKQ3+Hs/v7+////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
4+PjhIWHJyg4KzFGQkdpQEqAO0aJOUeVOUWQQk2RPEiOPkh8RkxuLDFMUFFQnp+h+fn4////////
////////////////////////////////////////////9fX119fX2NjV6urq///+////7u7u2tra
3Nzc9fX0////6Ojn5+fm////4+Pj6+rq/f395eXl8fHx8vLy5eXl+/v77e3t5ubm+/v75ubm7Ozs
////6Ojo3t7e5+fn3t7e+fn3+Pj539/f/fz88PDw5OTk/v7+7e3t5+fn/////Pz85+fn0tLS39/f
+/v7////7u7u3d3d7Ozs4ODg8vLy////4+Pjy8vL/f394+Pj6+vr////+/v75OTl29vX5+fn/f39
+vr65ubm9PT19PT04+Pj/Pz79vb24eHe29va5ubm////////////////////////z9DVWFdVKis3
PUVrPkmCN0STNUSbMkKhNkihNEWhNUahM0SjNkmmPEyeTVaPREhjNDdMiImK7e3t////////////
////////////////////////////////8PDwdHR0ICAiGRkWNzc20NLW////SUlIICAgFBQVampk
////SUlIMzMy/Pz8JygnVFNS4+PjLi4uhYWFmZmZKioqysrKa2trNzc31NTUPz8/YmJi/v7+NjM0
ExMSY2NjAAAAubeyt7m6AAAA2trah4eHJCQk39/ea2xrPj4+8fHxwcHBMTExIiIiLy8vpqam9vb2
VlZWHBwcc3NzAAAAnJ6c////AAAAJiYm5ubmGhoaXl5e////ubq8JSYsJCUkNjY2urq6zs7OMzMz
n5+foKCfHx8e0dHOeHh4FRUVODg5JCQk2NjY////////////////zM7OP0ZcNTdFPUVxO0iSMkCh
Lj+nMEKmOUqfQlCcRFOePk2hOUqfMESsKUC2MEauP02WWF6GPT9Ma2to9fX1////////////////
////////////////////////pKSkCAgId3d3pqWhAAAAbHOHr6+vAAAAy83QmZmZAAAA8PHxSUlJ
GRkZ+/v7JycnSEhI5ubmHx8ffX19oKCgGhoawcHBbm5uMzM0z8/PR0dHV1dV4eHhCQkJdXV1xMXF
AAAArq6vsrOyAAAA0tPUgYGBGBgW09PPZmVmNDQ03t/fcnFyODg3yMjGa2treHl4wsTDFRUVfn5+
tbW1AAAApqim4eLiAAAAsLGw////AgICVFRU////aWloMjIxyMnIPT0+YWFfwMC/JSUlmZmUnZ2b
DAwMvr6/enp6g4OCtra3AAAAjY6N////////////5ebnTk9RLjNPPkiBNkSYNEWkLz+jQE6XTVmS
UVuOXmaMZ2+QaXKYVWGfUF2eQFKpOUugS1WJanGPbG9zX19WhoaE+vr7////////////////////
////////////////gYGBAgICxcXF////fn9/qKimjYyMAAAA5ujuy8zLAAAA2NnaTU1NHR0d////
KioqTk5O5OTkHx8fhISEl5eXHh4ex8fGcnJxOjo60NDQQEBCYWBe3NzbCAgIjIyM2dvcAAAAsbGx
tLW0AAAA1NbXhoaGGxwc19fYaWlpOjs50NHOWlpbUlJQ7u3s8PDw5OXk5eblUlJSWFhYgYGBAAAA
qaqo2dveAAAAvLy8////BgYGWFhY/v7+UFBQTU1N6OfoWlpaWFhYsrKyKikpmJudnqChDg4Ox8fH
8PDwmJiYODg4P0A/0tLS////////+vv/dnd3Ki46P0mAN0SRLD+rNkagRVGUXmSDcHN7b3J4bW9v
d3dzfoCDg4aKh4iOa3OXZm6VcnmQeXyKf4B5gYF7VlVUtra0////////////////////////////
////////dnZ2AAAAwcHB////////////p6enAAAA19fXubm4AAAA4eHiS0tLHR0d9vb2JSUlS0tL
2traGRkZgoKCl5eXGhoavb28b29tKysrzc7PODk6YmJj3d3dCAgIfX191tfYAAAAsbCvs7S0AAAA
0tLTenl5Ghsb1NTVaGhpODk32drXZmZnRERE3t7gsLGxqqmp9fX1jY2NbGxsb29vAAAAp6in19ja
AAAAtbW1////BAQEV1dX////UlJSQkJC4eHhS0tMYGBgvb29KSkokpWcl5mcDAwLycnJXFxcCQkJ
h4eHgoKC7Ozs////////2d7kKCgmPENoOEWSMkSjOUqgTViRYWaBcHJ0hIV7aWlhR0dASkpJTk5K
fH11mJeRjI6RkJKUlJeahYWBhIV9hoaEfX57dXZz/fz9////////////////////////////////
dnZ2AAAAwcHB/////f39////5ubmKSkpTExMODc3Ghoa////SkpKDg4OfHx8AAAAQEBAYmJiAAAA
l5eXm5ubBwcHVlhdKiowKiopYmNkAAAAcnJy3NzcBAQEg4OC0dLTAAAAoqi7t7ixAAAAcXFwHR0d
Ly8v4uLiZGVjKisr5ubompqaICAfTk9QHh8ffn199vb2bm5uSEhIWFhYAwMDxMTEeXp5AAAATExM
7u7uBgYGSEhI////mpqaFRUVT09PIiMflJSQysrKJSUlTEtLOTk4BgYG0NDQYWFhHh4eaWlpHR0d
0NDQ////////jY6OLC8+PUiEMEClMEOmSFOOYmiFcHJ4enp3iIqFXV1cKSkqLy8vMzM0gIB7nZ2W
p6egqqmhrayklpeRj5CKh4mFmZmTe3t4y8vG////////////////////////////////goKCAAAA
yMjI7u7uaWlppaal////yMjIl5eXk5OTzc3N////v7+/oaGhs7OznZ2dxsbGn5+fpqam6+vr2dnZ
pqalqaqtmpudv7+/rq6ukpKS1tfW+fn3oaGh0NDQ9PX1kZGQ5ejz4eHdoKCgtra2mZmZwsHB+fn7
zM7SwcK8////7+/vsLCwlpaWqKio4uLi////zs7OmpqampqasLCw/Pz8kZKRAAAAYGBg/v7+u7u7
x8fI////8fHxqKiokpKSrq6t7u7s7e3trq6urKysoKCgqqqq8fHx4+PjqKiomZmZra2t9vb2////
///+QEBLMzZKPEaHKz+uNkijYmeBb3N1gIF5h4iFi4yIZWZiODg3MzMzODg5hYWAqqmjr6+or6+o
s7WsrK2lmJiSl5eSnJyWmZqZm5uZ////////////////////////////////rq6uDQ0NS0tLZGRk
AAAAkpKS/f39/////////v7+/////////////v7+/////////////f39////////////////////
/v7+/////////v7+/////////v7+/////////v7+/////f3+////////////////+fn5r7GwkJGX
8vLy/////////v7+/////////////////////v7+////////+/v7cXJxxsbG////hoaGq6yj////
/////////////////////////////////////////////////////v7+///////////////+Dg4N
QElyLz+mLD6mN0afbHB8gIF2iYqFkJCLn5+YampnNTU1PT09Pz8/kpKMu7y0uru0uLmyuru0u7y1
raymnZ2Wrq6nsbCsjY6O/v7//////////////////////////////f39rq6uUlJSOTk5foCB6urr
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////9fX1nZ2dd3h17+/p////
////////////////////////////////////////////9/f3/Pz8/f39VlZWjY2L////////////
////////////////////////////////////////////////////////////7e3sFRglREx2NEKb
MEKrTlykfoGNi4yEiImFkJGLo6OhdnZ3PDw8Ozw7SkpHl5eRuru0ubqzy8zFu7u1yMnBvb62ra2m
r6+oubqznp2f9fbu////////////////////////////////////+fn59fX1/f39////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////+vr6+fj4///+////////////
////////////////////////////////////////////////9vb2+fn5////////////////////
////////////////////////////////////////////////////6+vqFRkpRExyQk+TL0KrUl+l
f4KOiouHlJSRnZ2XqamhdXVyOzw7UlFOVFNToKGbzc7Fz9DGzM7Fzs/G0NHIuru0q6uktrWwz9DI
sbCp8vPr////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////6+vqJSUjPEaKQ0+TK0O1QlKhhIiSmpmR
kpKPnJyWqqqkh4aBVlVRWVhUXF1Utbat0tPKy83F39/Uzs/Gzc7F0tPKuru0u7y1zc7GsbCq+fn5
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////+HiQ7REtwQk+UKT2rO0ukgYSRlJSPnp6Xpqag
trawhYR/U1JOZGRdc3Rpt7iw3t/V4ODW3d3U4eDW4uLXvr/Buru1ysvD2tvUvb62+vr4////////
////////////////////yMnHnZ6e6Onp7Ozsk5OT3t7e09PTgoKC/Pv8////e3t8ycnJ/////Pz8
sLCwdnZ2mZmZ4+Pj////z8/PpKWk4+Pj////xcbFn6Ch7/DvuLm4p6qs////k5OTubm5////xsbG
bGxsycnJmJmY0NDQ////1dXVf39/tbW17u7unp+gyMnI////4ODgkZGRfn5+ubm59/f3////lJSU
u7u7+Pj4f39/29vb////////////////0NDQfHx9tba3pKWlxcbF+/r7ra2tsbGx4uHin5+fzMzM
////5OTkf39/q6yul5iX1NTU////////V1heQ0dhQ1CWKT2sOEqscXy0lZmpp6imsrKqtbWxjY+J
XFxWbG1peHlywMC24eHX4eHg3t7V6uvk3+DWzc/Fz9DG0dHIzc3OxsfH////////////////////
////////////bW1tAAAAxcXFwMDAAAAAuLi4dnZ2AAAA+fn37PT/AAAAf39+////q6urAAAAcHBw
GRkZRkZG////mJiYEhIStbW1////b29vDw4PysrET09MLy8v7e3tAwMDTU1N////AAAALCwsbW1t
AAAAj4+P/v7+VVVVAAAAt7e3ysrKCwkJfX19////T09PKiopU1NSAAAAr6+v////CQkJRkZG5ubm
AAAAlpaW////////////6+vqICAgJSUlamppAAAAh4eH+fn6TExNT1BPqKioEhISkJCQ////UVFR
BgYGaGhoAAAAdnZ2////////q6qpKzA/TlmULEKtL0i7TF2yh5TLpaq1s7Owvr+7k5SLaGdkdndx
jY2GzMzF7Ozj7u7m8PDo4+Ph397U0dLIzs/G5eXcy8zD6Ojh////////////////////////////
////dnZ2DAwMzs7Ozs7ODg4OtbW1iYmJAAAA+fn5+/r5AAAAk5OT////V1dXFBQU////iIqIHx8f
3d7empqaIyMju7u7////enp5KCgo1NTUVFRURkZG6enpERERY2Nj////AAAAgYGByMjIAAAAlpaW
+/v7RkZGSUlJ////xsbGHx8fkJCQzs7OKCgomJiT4+ThJygodXd1////HBwcRkZG9PT0AAAAkZGR
////////////6enmHBwcYWFhv7+/Dg4Ojo6O9vb2UFBQWltar6+vIiIilZWV////JiYmUlJS7u7u
AAAAf39/////////7u7uSEdGTVN5QlKhKz+qMkq4YnC1nqK1tbi9wMPHr7CpmpqWo6OhqKqp19jX
6Ons7/D25Of06e3q2t7c4ODY29vW6urhy8vG+vr7////////////////////////////////d3d3
BAQEy8vLx8fHCQkJwcHBh4eHAAAA+fn5////AAAAjo6O////VFRUFhYW////hIaEHR4d3N3coaGh
HR0dtbW1////fHx+JiYmz8/PXFxcQEBA9fX1FRUVV1dX////b29vPj4+cXFxAAAAlpaW/v7+S0tL
RERE////x8fHGBgYh4eH0tLSKCgolpaW5uboKSkpfn9/////GxsbU1NT8vLyAAAAm5ub////////
////+fn5jIyMPj4+XFxcERERjY2N/Pz7WFhXXF1ctLS0JCQkj4+P////KSkpVVVV9vb2AAAAf39/
////////////mpqaREleXGebPFCsKkfBN0ywYnK9jJnIrrbTzdDf2Nzn4+bq4ef27vD65On5vMX0
hZHRq7Xb2OD439/e5+fk0tLH39/h////////////////////////////////////d3d3CwsLzc3N
yMjICAgIiIiIXl5eAAAA/f390NDQAAAAZ2dn+/v7gYKDAAAAxMTETU5NNTU17/Dwk5OTAAAAUVFR
zM3RbW5yFhYVnp6eMjIyMjIyq6urAAAAaGho////bm5uYWFhlJSUAAAAqKio6enpLCwsMDAw5OTk
yMjIDg4OgoKC5ubmNjY2ZWVlm5ubCwwLnZ6f////FRUVJSUluLi4AAAAjo6O////////////9vb3
iYmKYWFhgoKCDQ0NkZGR+fn3U1NROTo6gYCBCQkJlJSU////MzMzMzMzsrKyAAAAf39/////////
////8PDwfH6CWFppY2+mOVTHJUXELErDR1q5b37FlKDarrfhu8XlucPlp7HhiJjXUmjQKz6hUmS5
ztPo6urw5OTY29vY/Pz8////////////////////////////////////d3d3AAAAxsbG29vbXFxc
hISFTk5OVFRU////h4eHAAAAKioq8fHx3d7eVFRUX19fWVlZqKio////tLS0XV5dVFRUpKSjoaGg
WFlYdXZ1UVJRfXx9eXl5Q0NDsrKz////hoaGT09PdXV1VldW6+zrxcXFAwMDGRkZsrKy4eHfZWVh
qqur////o6OjYGBgV1dXZWVl39/f////YGBgZmZmdHR0Ojo61tbW////////////+Pj4m5ubVldW
amtqcXFx0dHR+fn8jIyRYWFhaGlpT09PxMPD////pKSkRkZGeHh4AAAAgICA////////////////
4ODggIKAbXCAeIa9VGnIMUzAJUK8Lki3Q1rBVWvIWHDOUWjGPla/JEK+Hj2/TV60laHg3+Hs5ubt
4eHV/Pz+////////////////////////////////////////d3d3AAAAwcHB////5OTk6urq19fX
8vLy////5+fnAAAAd3d3////////6enq09PT5eXl////////8vLy7e7t6+vr7u7u8PHw5eXl5eXl
39/f+fn54eHh29vb/Pz8/////v7+3Nzc0tLS6uvq////5OTkZ2doT09P4+Pk9/f2y8zJ4uPj////
/v7+4eHh0dHR8fHx////////4uLi7u7u3d3d29vb////////////////////+/v73d7dz9DP8fHx
/////f3/6+vu5+fn3t/f4+Pj/f39////////3t7e3t7eAAAAf39/////////////////////4eLi
lJWWfH+Hjpe6f43KV2vGMk6+HDy/HDy/Gze1GTa4K0e5RlvIe4vZx8zq7O7/7e7q5+fm+fn3////
////////////////////////////////////////cnJyAAAAvr6+////////////////////////
////ERERCwsL1NXU////////////////////////////////////////////////////////////
////////////////////////////////////////5+fo1dXV////09PTT09PmZqa////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////+fn5AAAAc3Nz////////////////////////7u7vxMXD
l5mhlpurqK7Kn6vol6Tkl6TjlKHepK/ruMLvx9D35Oj63uLy3t7h+fn3+/v7////////////////
////////////////////////////////4eHhzMzM8vLy////////////////////////////2NjY
rq6u7+/v////////////////////////////////////////////////////////////////////
////////////////////////////////////////////8fHxycnJ4ODg////////////////////
////////////////////////////////////////////////////////////////////////////
/////////////////////////v7+ycnJ4eHh///////////////////////////////+6enpw8XC
rq+ptLW6vb/ExsfM1NTX3t/h4eHi4eHh3t7f9fb0+fn5////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////f39+/v68/Px
7Ovr6+ri193i4uTq+fn4/f38/Pz7///+////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////

------_=_NextPart_001_01C2F44A.2C81B350--