(file) Return to TracingDevGuide.doc CVS log (file) (dir) Up to [Pegasus] / pegasus / doc

File: [Pegasus] / pegasus / doc / TracingDevGuide.doc (download) / (as text)
Revision: 1.1, Wed Nov 19 09:23:10 2008 UTC (15 years, 5 months ago) by thilo.boehm
Branch: MAIN
CVS Tags: preBug9676, postBug9676, TASK_PEP317_1JUNE_2013, TASK-TASK_PEP362_RestfulService_branch-root, TASK-TASK_PEP362_RestfulService_branch-merged_out_from_trunk, TASK-TASK_PEP362_RestfulService_branch-merged_in_to_trunk, TASK-TASK_PEP362_RestfulService_branch-merged_in_from_branch, TASK-TASK_PEP362_RestfulService_branch-branch, TASK-PEP362_RestfulService-root, TASK-PEP362_RestfulService-merged_out_to_branch, TASK-PEP362_RestfulService-merged_out_from_trunk, TASK-PEP362_RestfulService-merged_in_to_trunk, TASK-PEP362_RestfulService-merged_in_from_branch, TASK-PEP362_RestfulService-branch, TASK-PEP348_SCMO-root, TASK-PEP348_SCMO-merged_out_to_branch, TASK-PEP348_SCMO-merged_out_from_trunk, TASK-PEP348_SCMO-merged_in_to_trunk, TASK-PEP348_SCMO-merged_in_from_branch, TASK-PEP348_SCMO-branch, TASK-PEP317_pullop-root, TASK-PEP317_pullop-merged_out_to_branch, TASK-PEP317_pullop-merged_out_from_trunk, TASK-PEP317_pullop-merged_in_to_trunk, TASK-PEP317_pullop-merged_in_from_branch, TASK-PEP317_pullop-branch, RELEASE_2_9_2-RC2, RELEASE_2_9_2-RC1, RELEASE_2_9_2, RELEASE_2_9_1-RC1, RELEASE_2_9_1, RELEASE_2_9_0-RC1, RELEASE_2_9_0-FC, RELEASE_2_9_0, RELEASE_2_9-root, RELEASE_2_9-branch, RELEASE_2_14_1, RELEASE_2_14_0-RC2, RELEASE_2_14_0-RC1, RELEASE_2_14_0, RELEASE_2_14-root, RELEASE_2_14-branch, RELEASE_2_13_0-RC2, RELEASE_2_13_0-RC1, RELEASE_2_13_0-FC, RELEASE_2_13_0, RELEASE_2_13-root, RELEASE_2_13-branch, RELEASE_2_12_1-RC1, RELEASE_2_12_1, RELEASE_2_12_0-RC1, RELEASE_2_12_0-FC, RELEASE_2_12_0, RELEASE_2_12-root, RELEASE_2_12-branch, RELEASE_2_11_2-RC1, RELEASE_2_11_2, RELEASE_2_11_1-RC1, RELEASE_2_11_1, RELEASE_2_11_0-RC1, RELEASE_2_11_0-FC, RELEASE_2_11_0, RELEASE_2_11-root, RELEASE_2_11-branch, RELEASE_2_10_1-RC1, RELEASE_2_10_1, RELEASE_2_10_0-RC2, RELEASE_2_10_0-RC1, RELEASE_2_10_0, RELEASE_2_10-root, RELEASE_2_10-branch, PREAUG25UPDATE, POSTAUG25UPDATE, HPUX_TEST, HEAD, CIMRS_WORK_20130824, BeforeUpdateToHeadOct82011
BUG#: 7914
TITLE: Obsolete Tracing documentation.

DESCRIPTION: Update the trace user and development docs to the latest implementation.

ࡱ>		@	0x/bjbj	0؝؝&F:{{{8{|6|}(}~~~P,Z\\\\\\$R*["."[[~~ϔϔϔ[:R~~Zϔ[Zϔϔ`"~}/PI{040d3h"TH$(ϔLR	$$$d1^L$/^LOpenPegasus provides a tracing facility that helps in investigating the cause of a problem. For example, if requests abort, performance is reduced, or unexpected responses appear, trace can provide pointers to where and when the problem occurred. 

To generate a useful trace for problem determination, the trace messages are categorized in trace levels and components. The trace level defines the severity of the message and the trace component assigns the message to a specific module or several modules serving special working units of OpenPegasus and there are special purpose trace components.

Writing trace messages is a OpenPegasus server functionally only. Currently it is not possible for providers to use the tracing facility.
When to write trace messages?
Trace statements are for debugging purpose. The information of a trace message is for a developer or service person, a person having insight into the code of OpenPegasus. Trace messages are utilizing the code to enable these people to understand the state of OpenPegasus and print execution flow relevant information like:

Locations of  executions
Return values of functions
Error conditions of functions
Content of variables 
Conditions and its evaluation
Etc. 

Trace messages are NOT enabled for multicultural support.

Log messages are in contrast to trace messages. Log messages must give system operator/programmer information about the run-time state of OpenPegasus to enable these people to change the runtime environment to work properly. 
Categorize trace messages
What is the right trace level?
There are 5 trace levels for configuration but only trace level 1 to 4 can be used for specifying the severity of a trace message. 

The trace level definitions are done in Pegasus/Common/Tracer.h

Trace level 0 is reserved to switch tracing off. Trace level 5 is reserved for method enter/exit statements. Both trace levels cannot be specified explicitly on a trace statement. 
All other levels can be specified in the tracing macros using the static variables with the definition as listed below.

Level #Definition1Tracer::LEVEL12Tracer::LEVEL23Tracer::LEVEL34Tracer::LEVEL4Table  SEQ Table \* ARABIC 1
Tracer::LEVEL1
Trace level 1 should be used for severe error conditions that need to be reported to an user. For instance if the server has to discard data to be able to proceed, throws an exception, or has to close the connection.
All log messages are also written to trace level 1, which means that there is no need to duplicate log messages as a trace message.
As example, at the OpenSSL initialization, not enough seed data is found:

PEG_TRACE((TRC_SSL, Tracer::LEVEL1,
    "Not enough seed data in seed file: %s",
    (const char*)randomFile.getCString()));
Tracer::LEVEL2
Trace level 2 is for basic flow trace messages with minimal detail. These messages should also report error conditions which might cause an error visible to the end user, but dont necessarily have to.
For example, after reading an HTTP request, OpenPegasus is not able to parse the content language:

PEG_TRACE((TRC_HTTP, Tracer::LEVEL2,
    "HTTPConnection: ERROR: contentLanguages had "
         "parsing failure. clearing languages. error data=%s",
    (const char*)contentLanguagesString.getCString()));
  
Tracer::LEVEL3
Trace level 3 is for intra-function logic flow and moderate data detail. These messages should report details of decisions made and important data of the general flow.
For example, after a connection has been established, the client IP address is written:

PEG_TRACE((TRC_HTTP, Tracer::LEVEL3,
    "Connection IP address = %s",(const char*)_ipAddress.getCString()));

Tracer::LEVEL4
Trace level 4 is the highest data detail. These messages should report everything needed to be able to follow the flow.
For example:

PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4,
    "CMPIProvider has pending operations: %s",
    (const char*)provider->getName().getCString()));

What is the right trace component?
At each trace macro, a trace component ID has to be specified to pool the trace messages in domains. These domains can be one or several modules serving a dedicate purpose within OpenPegasus or a special purpose domain serving an overall purpose.

The trace components IDs used for the trace macros are defined as enumeration in Pegasus/Common/Tracer.h. 

The TRACE_COMPONENT_LIST[] used for the configuration option is defined in
Pegasus/Common/Tracer.cpp.

The components to be specified at the traceComponents configuration are defined in the TRACE_COMPONENT_LIST[]. If a new trace component is needed or changed, you have to modify both lists at the same index. 

The table below is a first reference for component IDs for dedicated functionality of OpenPegasus. The current definitions can be found in Pegasus/Common/Tracer.h

enum TraceComponentIDstatic char const* TRACE_COMPONENT_LIST[]TRC_AUTHENTICATIONAuthenticationTRC_AUTHORIZATIONAuthorizationTRC_EXP_REQUEST_DISPCIMExportRequestDispatcherTRC_CIMOM_HANDLECIMOMHandleTRC_CMPIPROVIDERCMPIProviderTRC_CMPIPROVIDERINTERFACECMPIProviderInterfaceTRC_CQLCQLTRC_CONFIGConfigTRC_CONTROLPROVIDERControlProviderTRC_DISPATCHERDispatcherTRC_EXPORT_CLIENTExportClientTRC_HTTPHttpTRC_INDICATION_GENERATIONIndicationGenerationTRC_IND_HANDLERIndicationHandlerTRC_INDICATION_RECEIPTIndicationReceiptTRC_INDICATION_SERVICEIndicationServiceTRC_L10NL10NTRC_LISTENERListenerTRC_MESSAGEQUEUESERVICEMessageQueueServiceTRC_OBJECTRESOLUTIONObjectResolutionTRC_OS_ABSTRACTIONOsAbstractionTRC_PROVIDERAGENTProviderAgentTRC_PROVIDERMANAGERProviderManagerTRC_REPOSITORYRepositoryTRC_SSLSSLTRC_SERVERServerTRC_SHUTDOWNShutdownTRC_THREADThreadTRC_USER_MANAGERUserManagerTRC_WQLWQLTRC_WSMSERVERWsmServerTRC_XMLXmlTRC_XML_IOXmlIOTable  SEQ Table \* ARABIC 2

Special purpose trace components
The next table below specifies component IDs for special purpose of the OpenPegasus:

Special purpose
TraceComponentIDDescriptionTRC_DISCARDED_DATAIssues a trace message when information is discarded or an operation is cancelled to enable OpenPegasus to proceed.  
Tracer::LEVEL1 must be used for this component. TRC_LOGMSGDo not use this trace component. All messages written by the Logging Facility are automatically written with this component. TRC_XML_IOThis component specifies trace statements which belongs to the XML request/response handling and should be used only in this context.
The Trace Interface
There are 4 macros available to write a trace:


Trace macrosDescriptionPEG_METHOD_ENTERlogs a method entry message to the trace.
PEG_METHOD_EXITlogs a method exit message to the trace file.PEG_TRACE_CSTRINGThis writes a single trace message.PEG_TRACEWrites a printf()-style formatted trace message
All macros automatically add file (__FILE__) and line number (__LINE__) to the trace message.

You have to include <Pegasus/Common/Tracer.h> to use tracing at all.

Special note on using type String

If you like to use a String object as parameter in a trace macro, you have to
get the CString using the method getCString()
cast to (const char*)

For example:

PEG_TRACE((TRC_HTTP, Tracer::LEVEL2,
    "HTTPConnection: ERROR: contentLanguages had "
         "parsing failure. clearing languages. error data=%s",
    (const char*)contentLanguagesString.getCString()));

PEG_METHOD_ENTER

SYNOPSIS

PEG_METHOD_ENTER (<traceComponent>, char* methodName);

DESCRIPTION


<traceComponent>Refers to a trace component specified in Table 2.MethodNameThe name of the method being entered.
PEG_ METHOD_ENTER() must be placed right after the entry point of a method or function and is generating a method enter trace statement with level 5.
    

EXAMPLE

PEG_METHOD_ENTER(TRC_SSL,"SSLContextManager::createSSLContext()");

PEG_METHOD_EXIT

SYNOPSIS

PEG_METHOD_EXIT();

DESCRIPTION

PEG_ METHOD_EXIT() must be placed before any exit point of a method or function and is generating a method exit trace statement with level 5.

It can only be used if the PEG_METHOD_ENTER() was used before in the same method/function.    

EXAMPLE

void SSLContextManager::createSSLContext(  )
{
    PEG_METHOD_ENTER(TRC_SSL,"SSLContextManager::createSSLContext()");
  
    try
    {
    }
    catch()
    {
       PEG_METHOD_EXIT();
       throw MyException();
    }
    
   PEG_METHOD_EXIT();
   return;
}
 
PEG_TRACE_CSTRING

SYNOPSIS

PEG_TRACE_CSTRING(<traceComponent>,<traceLevel>, const char* traceMessage);

DESCRIPTION

<traceComponent>Refers to a trace component specified in Table 2.<traceLevel>Refers to a trace level 
Tracer::LEVEL1 to Tracer::LEVEL4.traceMessageSingle trace message.
This writes a single trace message at a certain trace level and component to the trace. The message must be a single character string with a trailing \0.

EXAMPLE

PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL1,
    "select() timed out waiting for the socket connection to be"
        "established.")

PEG_TRACE

SYNOPSIS

PEG_TRACE((<traceComponent>,<traceLevel>, const char* formatString,));

DESCRIPTION

<traceComponent>Refers to a trace component specified in Table 2.<traceLevel>Refers to a trace level 
Tracer::LEVEL1 to Tracer::LEVEL4.formatString, The printf()-style format string and its parameters.
PEG_TRACE() writes a printf()-style formatted trace message at a certain trace level and component to the trace. 

Note:
The parameters have to be put into a single argument for PEG_TRACE() by putting them in additional parenthesis.

EXAMPLE

PEG_TRACE((TRC_HTTP, Tracer::LEVEL4,
    "Connection to server in progress.  Waiting up to %u milliseconds "
         "for the socket to become connected.", 
    timeoutMilliseconds));
Compiling out Trace code from Pegasus build
The trace code can be optionally removed from Pegasus at build time by defining PEGASUS_REMOVE_TRACE (D option).









OpenPegasus Tracing Development Guide		-  PAGE 8 -



















OpenPegasus
Tracing
Development Guide





					Y




 !=ou12<CDNSUV`eghrڽڽڣh@h@h@CJOJQJ^J"h@h@5CJOJQJ\^JhaChVh%wh@hx|hj0J`hjh1hFhMh{h{?hDs5h{?hnhWjh{?hDs5U8Y
Z

EF_z


*!!!!!!!!H!H!H!H!H!H!!!!!!!!!!gdMgdM
&Fgd{gd{gdMgd[gd{.=/w/&124C!!!`ssusi`i$$Ifa$gd@wkd$$IfTl08064
laT	$IfgdC-gdMgd@CDFU|`|$$Ifa$gd@wkd$$IfTl08064
laTUVXg|`|$$Ifa$gd@wkd2$$IfTl08064
laTghjy|`n
$$$Ifa$gdp!$$Ifa$gd@wkd$$IfTl08064
laTrwyz)0RSabrv NOPQuv7<HS̼hhtE4h@h,hs0hFrCJOJQJhFrhFrCJOJQJh,hghFrhZhFhaChMhpmHnHujhp!Uhp!h@CJOJQJ^Jh@h@h@8yzPQu!v:!|!|!w!|!r!r!r!m!h!gdtE4gd,gdFrgd,gdZgds0wkdd$$IfTl08064
laTSZ	
[\dikySTÿÿÿ쿤hjhzphMhMhMhkhACJOJQJhAhkCJOJQJhuhuCJOJQJhuhtE4h@h,h,hhtE4CJOJQJhtE4hCJOJQJh,h7hFhaCh4
0c[\k O!!!!!!!!!!!!!!!!!!!!!!!!gd7gdMgdMgdkgdAgdugds0gdtE4gd	
5JLWXnrst<ACDUn*+̻ȱȭȻ}h,QCJaJh,Q5CJOJQJ\^J"h,Qh,Q5CJOJQJ\^Jhw:h,Qhu<hx|
hO0J`hx|hO0J`h1hOhG/hw:hw:hx|hw:0J`hKh1E3hFh,QhyAh7hw:hj0
XstDE*+!!Nm!!!1!!!!Nm!nsSsvekd$$IfTl{0F+
tq644
lapT

$If$Ifgdw:gdu<gd1E3gd
+=>LMN_`mno
%&,-.ABQRSablmnh$1h,Qhw:h,Qh,QCJaJhw:h,QPJaJh{?h,Qhu<h,QCJPJaJhu<h,QCJaJI+>MN`nnv:S}nv:S

$IfgdD4ekd$$IfTl{0F+
tq644
lapT

$If$Ifno>nv:S$If

$IfgdD4ekd$$IfTlO0F+
tq644
lapT>nv:S%>ekd
$$IfTlO0F+
tq644
lapT$If

$Ifekd$$IfTlO0F+
tq644
lapT
nv:S|nv:Sekd$$IfTlh0F+
tq644
lapT$If	$IfgdD4
|nv:S/|ekd$$IfTlh0F+
tq644
lapT$Ifekd$$IfTlh0F+
tq644
lapT&-.BRnv:Ssnv:Sekd$$IfTld0F+
tq644
lapT$If	$IfgdD4RSbmnsnv:S&ڋekd%$$IfTln0F+
tq644
lapT$If	$IfgdD4ekd$$IfTld0F+
tq644
lapTnnv:Sڋnv:Sekd$$IfTln0F+
tq644
lapT$If

$IfgdD4ڋnv:S&ekd	$$IfTlj0F+
tq644
lapT$If	$IfgdD4ekd-	$$IfTln0F+
tq644
lapTnv:Snv:Sekd5
$$IfTlj0F+
tq644
lapT$If	$IfgdD401BCDLMQRS_`hij$%&45?@AHILMNXY_`amnvwxh$1h,Qh{?h,Qhu<h,QCJPJaJhu<h,QCJaJh,QCJaJh$1h,QPJaJN1CDnv:S&uekd=$$IfTle0F+
tq644
lapT$If	$IfgdD4ekd
$$IfTlj0F+
tq644
lapTDMRS`inv:Sunv:Sekd$$IfTle0F+
tq644
lapT$If	$IfgdD4ijunv:S&kekd$$IfTla0F+
tq644
lapT$If	$IfgdD4ekdE$$IfTle0F+
tq644
lapTnv:Sknv:S	$IfgdD4ekdM
$$IfTla0F+
tq644
lapT$Ifanv:S&aekdU$$IfTl]0F+
tq644
lapT$If	$IfgdD4ekd
$$IfTl]0F+
tq644
lapT%&5@nv:Sanv:S	$IfgdD4ekd$$IfTl]0F+
tq644
lapT$If@AIMN5nv:S&5ekd$$IfTlu0F+
tq644
lapT$If	$IfgdD4ekd]$$IfTlu0F+
tq644
lapTNY`anwnv:S5nv:S	$IfgdD4ekde$$IfTlu0F+
tq644
lapT$Ifwxpnv:S/pekdm$$IfTlc0F+
tq644
lapT$Ifekd$$IfTlc0F+
tq644
lapTnv:Snv:Sckd$$IfTl0F+
tq644
lapT$If	$IfgdD4nv:S*ckd$$IfTl0F+
tq644
lapT$If	$IfgdD4ckdq$$IfTl0F+
tq644
lapT

/0; F L ûûîsh]YRh@hdhu<hw:hu<PJaJhM0hu<CJaJ"h[h~55CJOJQJ\^J"h,Qhd5CJOJQJ\^Jh~55CJOJQJ\^Jhdh}
!h}9hpmHnHujhx|Uhx|h$1h,QPJaJhu<h,QCJaJh,QCJaJh$1h,Qh{?h,Qhu<h,QCJPJaJ nv:Snv:S
$$Ifgdx|ckdq$$IfTl0F+
tq644
lapT$If	$IfgdD40!v:!!!!|Ns|Ns|s$& #$/Ifb$gddgd}9gddckd$$IfTl0F+
tq644
lapT	> o {SgNv:gg$& #$/Ifb$gddkdq$$IfTl	0X &
6 0 64
lae4TL n p z {     !!!!!!!!!!!!("*"9":"g"h"i"r"t"~wjc\wThCCJaJh&VZhCh&VZh&VZhChCCJPJaJh{?hChx|hChCPJaJhChCCJaJ"h[hC5CJOJQJ\^JhC5CJOJQJ\^JhCh}
!hDs5hhu<hM0hu<hM0CJaJhu<h$1hu<PJaJhM0hu<CJaJh{?hu<hdo p {  {4
gNv:g$& #$/Ifb$gddkd$$$IfTl0X &
6 0 64
lae4T  !!{gNv:g$& #$/Ifb$gddkd$$IfTl0X &
6 0 64
lae4T!!!!!!!!!{vqv!v!v!]Ns]s$& #$/Ifb$gdS/)gdCgdCkd$$IfTl0X &
6 0 64
lae4T!!!(")"{SgNv:^g	$Ifgdx|$& #$/Ifb$gdD4kdO$$IfTl	0X &
6 0 64
lae4T)"*":"h"{YgNv:g$& #$/Ifb$gdD4kd$$IfTl0X &
6 0 64
lae4Th"i"{""{gNv:g$& #$/Ifb$gdD4kd$$IfTl0X &
6 0 64
lae4Tt"u"z"{""""""""""""""""##$#9#:#<#P#_#d#e#h########E$$ɶ߮~zvzihtE4hCJOJQJhdLQhh5CJOJQJ\^J"hhf5CJOJQJ\^Jh%whx|hx|hx|h&VZh3hE)hrhChCCJaJh{?hChhChD4hIf)hChChCCJPJaJhCCJaJhFCJaJ&""""{gNv:g$& #$/Ifb$gdD4kdz$$IfTl0X &
6 0 64
lae4T""":#;###### $6${vv!v!q!v!v!sl!l!d!d!
&Fgdgdgdx|gdE)kd3$$IfTl0X &
6 0 64
lae4T6$7$D$E$j$$$%%&%'%0%1%h%i%u%v%w%%%!!!!!!!!!!!s!s!!!s!!
{	$Ifgdx|	$IfgdE)gdx|gdE)gdE)gd$$%%%'%/%0%1%C%D%R%S%h%i%t%u%w%x%%%%%%%%%%%%&&&&&&&&&&&&ȹȬȹڗړڏڋȹ{uoᓛ
hx|0J`
hDs50J`hx|hx|0J`hE)hrhrhp!hx|hE)hE)hx|h&VZCJOJQJhE)hE)CJOJQJhE)5CJOJQJ\^J"hE)hE)5CJOJQJ\^JhE)hE)h&VZhhtE4hCJOJQJhCJOJQJ)%%%%%%&&&
{TO!O!J!J!gdE)gdrPkdJ$$Ifl0m!mS644
lal	$IfgdE)Pkd$$Ifl0m!mS644
lal&&&&&&&&&''''''((
((9(;(((((((!s!!1!1!!!s!s!!!s!!!!!!s!!1!1!1!1!1!1!1!1gd}
!gd&VZgdx|gdx|gdE)&&&&&'''''''''(	(
((3(?((((((((((()))) )#)%)߽ߧzvrvkhE)hD4hrhD4
h10J`
hx|0J`hx|hx|0J`hx|h}
!0J`
h}
!0J`h}
!h}
!0J`hE)h}
!h&VZhE)h&VZh&VZhx|hE)hx|hx|CJOJQJhE)hx|CJOJQJhx|5CJOJQJ\^J"hE)hx|5CJOJQJ\^J$(((((())))$)%).)/){)|)))))!1!1!1!1!1!1!1!1!1!!!s!s!!!s!	$IfgdD4gdD4gdD4gd}
!gdx|%)-).)/)A)Q)y){)|))))))))))))))))**8*:*;*********-+V+f+g+p+r+z+ջߴߟs"hE)h&VZ5CJOJQJ\^JhE)h&VZh&VZ
hx|0J`hD4hD40J`
hD40J`haChD4hD4hD4hE)hD4hE)hD4CJOJQJhp!hD4CJOJQJhD4CJOJQJhD45CJOJQJ\^J"hE)hD45CJOJQJ\^J+))))**#*9*TYPkd$$Ifl0\
!\
d644
lal	$IfgdD4Pkd$$Ifl0\
!\
d644
lal9*:*;*****
+N+f+g+q+r+{+|++++!!!!s!1!1!1!1!1!!!s!s!!!sgdrgd&VZgd&VZgdx|gdD4Pkdd$$Ifl0\
!\
d644
lalz+{+|+++++++++++++++++++,,,,,%,&,`,b,p,t,u,x,,,,,,- -%-Ⱦ՝񖒋||xihG/5CJOJQJ\^JhG/hA.hE)hrhrhE)hrhrhE)h&VZhE)h&VZCJOJQJhD4CJOJQJhrCJOJQJhp!CJOJQJhp!hp!CJOJQJh&VZCJOJQJ"hE)h&VZ5CJOJQJ\^Jh&VZ5CJOJQJ\^J)+++,,&,?,a,b,u,!OYPkd $$Ifl0\
!\
d644
lalPkd$$Ifl0\
!\
d644
lal	$IfgdD4gd&VZ	u,,,,- -&------
.>.Y..!!!!s!!!s!!1!1!1!1!gdgdgdA.^gdG/gdrgd&VZPkd~$$Ifl0\
!\
d644
lal	$IfgdD4%-*-5-9-R-[-k-v-~---------<.B.X.Y.Z.........../////+/̽zthhl
CJOJQJ^J
hl
CJjhl
CJUmHnHuhl
jhl
Uhhh
h&VZ0J`
hA.0J`hA.hA.0J`hE)h&VZh&VZ5CJOJQJ\^J"hE)h&VZ5CJOJQJ\^JhE)hrh&VZhrhrhA.hrhrhG/%.......////;/</=/>/?/@/A/B/C/D/E/F/G/H/I/J/K/!!j!jgdngd+/.///5/6/7/8/:/;/</=/N/m/t/v/w/x/ν񱭩hhhDs5h[hl
CJHOJQJ^Jhl
CJHOJQJ^Jhu	hl
hl
CJOJQJ^J!hhmCJOJQJ^JmHnHujhl
CJOJQJU^J%jhnhl
CJOJQJU^Jhnhl
CJOJQJ^JK/L/M/N/Z/b/t/u/v/w/x/!gd$
!a$gd[	$
!a$
.	00&P1h/R / =!"#$%$$If!vh585#v8#v:Vl065854T$$If!vh585#v8#v:Vl065854T$$If!vh585#v8#v:Vl065854T$$If!vh585#v8#v:Vl065854T$$If!vh585#v8#v:Vl065854T$$If!vh5F5+#vF#v+:Vl{
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vl{
tq6,5F5+pT$$If!vh5F5+#vF#v+:VlO
tq6,5F5+pT$$If!vh5F5+#vF#v+:VlO
tq6,5F5+pT$$If!vh5F5+#vF#v+:VlO
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlh
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlh
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlh
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vld
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vld
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vln
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vln
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vln
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlj
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlj
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlj
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vle
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vle
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vle
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vla
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vla
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vl]
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vl]
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vl]
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlu
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlu
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlu
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlc
tq6,5F5+pT$$If!vh5F5+#vF#v+:Vlc
tq6,5F5+pT~$$If!vh5F5+#vF#v+:Vl
tq6,5F5+pT~$$If!vh5F5+#vF#v+:Vl
tq6,5F5+pT~$$If!vh5F5+#vF#v+:Vl
tq6,5F5+pT~$$If!vh5F5+#vF#v+:Vl
tq6,5F5+pT~$$If!vh5F5+#vF#v+:Vl
tq6,5F5+pT$$If!vh5&5#v&#v:Vl	
6 0 65&54e4T$$If!vh5&5#v&#v:Vl
6 0 6,5&54e4T$$If!vh5&5#v&#v:Vl
6 0 6,5&54e4T$$If!vh5&5#v&#v:Vl
6 0 6,5&54e4T$$If!vh5&5#v&#v:Vl	
6 0 6,5&54e4T$$If!vh5&5#v&#v:Vl
6 0 6,5&54e4T$$If!vh5&5#v&#v:Vl
6 0 6,5&54e4T$$If!vh5&5#v&#v:Vl
6 0 6,5&54e4T$$If!vh5&5#v&#v:Vl
6 0 6,5&54e4T\$$Ifl!vh5m5S#vm#vS:Vl65m5Sal\$$Ifl!vh5m5S#vm#vS:Vl65m5Sal\$$Ifl!vh5\
5d#v\
#vd:Vl65\
5dal\$$Ifl!vh5\
5d#v\
#vd:Vl65\
5dal\$$Ifl!vh5\
5d#v\
#vd:Vl65\
5dal\$$Ifl!vh5\
5d#v\
#vd:Vl65\
5dal\$$Ifl!vh5\
5d#v\
#vd:Vl65\
5dal\$$Ifl!vh5\
5d#v\
#vd:Vl65\
5dala@@@}
!NormalCJ_HaJmH	sH	tH	t@t[	Heading 1'$
&FQhx@&^`Q5B*CJ$OJQJ\^Jph\@\[	Heading 2$
&FBxx@&^B`CJ\^JZ@ZW	Heading 3$
&F<@&5OJQJ\^JaJP@1P[	Heading 4$
&F<@&CJ\aJF@FW	Heading 5$$
&F@&a$CJ,N@NW	Heading 6
&F<@&5CJ\aJ@@@W	Heading 7
&F<@&F@FW	Heading 8
&F<@&6]T	@TW	Heading 9	
&F<@&CJOJQJ^JaJDA@DDefault Paragraph FontVi@VTable Normal :V44
la(k(No List8 @8Footer

!CJ.)@.Page Number.(@.Line Number4@"4[Header

!DC@2DBody Text Indent
^DT@BD
Block Textx]^2B@R2	Body Textx<P@b<Body Text 2dx>Q@r>Body Text 3xCJaJPM@QPBody Text First Indent
``N@1`Body Text First Indent 2hx^h`RR@RBody Text Indent 2hdx^hTS@TBody Text Indent 3hx^hCJaJ@"@@Caption
xx5CJ\aJ2?@2Closing
^<<Comment TextCJaJ$L@$DateRYRDocument Map -D M
OJQJ^J<[@<E-mail Signature!<+"<Endnote Text"CJaJh$@2hEnvelope Address!#@&+D/^@OJQJ^JN%@BNEnvelope Return$CJOJQJ^JaJ>R>
Footnote Text%CJaJ:`@b:HTML Address&6]Re@rRHTML Preformatted'CJOJQJ^JaJ:
:
Index 1(^`::
Index 2)^`::
Index 3*^`:
:
Index 4+^`::
Index 5,^`::
Index 6-^`::
Index 7.^`::
Index 8/^`::
Index 90p^p`H!H
Index Heading15OJQJ\^J4/@"4List2h^h`82@28List 23^`83@B8List 348^8`84@R8List 45^`85@b8List 56^`:0@r:
List Bullet	7
&F>6@>

List Bullet 2	8
&F>7@>

List Bullet 3	9
&F>8@>

List Bullet 4	:
&F>9@>

List Bullet 5	;
&FBD@B
List Continue<hx^hFE@FList Continue 2=x^FF@FList Continue 3>8x^8FG@FList Continue 4?x^FH@FList Continue 5@x^:1@:List Number	A
&F	>:@">
List Number 2	B
&F
>;@2>
List Number 3	C
&F><@B>
List Number 4	D
&F>=@R>
List Number 5	E
&F
l-bl
Macro Text"F
	`	@ 
OJQJ^J_HmH	sH	tH	I@rMessage HeadergG8$d%d&d'd-DM
NOPQ^8`OJQJ^J4^@4Normal (Web)H>@>
Normal Indent
I^4O@4Note HeadingJDZ@D
Plain TextKCJOJQJ^JaJ0K@0
SalutationL6@@6	Signature
M^FJ@FSubtitleN$<@&a$OJQJ^JT,TTable of AuthoritiesO^`L#LTable of FiguresP ^` V>@VTitleQ$<@&a$5CJ KHOJQJ\^JaJ H.HTOA HeadingRx5OJQJ\^J&&
TOC 1S..
TOC 2
T^..
TOC 3
U^..
TOC 4
V^..
TOC 5
W^..
TOC 6
X^..
TOC 7
Y^..
TOC 8
Z^..
TOC 9
[^O>/Style (Latin) Courier New (Complex) Courier NewCJOJQJ^JHH94Balloon Text]CJOJQJ^JaJB'B<AComment ReferenceCJaJ@j@<AComment Subject_5\vOvx|$Style (Latin) Courier New 11 pt Bold5CJOJQJ\aJ89x'89<x'@z@z@z@z@z@z@z@z!x'YZEF_z*&124CDFUVXghjyz	
P
Q
u




0c


[\k O
XstDE*+>MN`no
&-.BRSbmn1CDMRS`ij%&5@AIMNY`anwx0>op{()*:hi{:; 67DEj&'01hiuvw  
  9 ;            !!!!$!%!.!/!{!|!!!!!!!!""#"9":";"""""
#N#f#g#q#r#{#|######$$&$?$a$b$u$$$$% %&%%%%%%
&>&Y&&&&&&&&'''';'<'='>'?'@'A'B'C'D'E'F'G'H'I'J'K'L'M'N'Z'b't'u'v'y'00000 000 0 0 0 0 0 00000 0 000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0( 00000000( 00
0
0
0
0
0
0
0
( 0000000( 00\0\0\0\0\0\0\ 0000000000000 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00000 0 0 0 00 0 0 0 0 0 0 0 0 00000 0 0 0 00 0 0 0 0 0 0 0 0 0 0 00000000 0 000000000 0000000000 0 0 0 0 0 00000000 0000000000000000000000000000000 00!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! 00g#0g#0g#0g#0g#0g#0g#0g# 0g# 0g# 0g# 0g#0g# 0g# 0g# 0g# 0g# 0g#0g#0g#0g#0g#0g#0g#0g#0g#0g#0g#0g# 0000000000(00@000H0000000000000000000000YZEF_z*&124CDFUVXghjyz	
P
Q
u




0c


[\k O
XstDE*+>MN`no
&-.BRSbmn1CDMRS`ij%&5@AIMNY`anwx0>op{()*:hi{:; 67DEj&'01hiuvw  
  9 ;            !!!!$!%!.!/!{!|!!!!!!!!""#"9":";"""""
#N#f#g#q#r#{#|######$$&$?$a$b$u$$$$% %&%%%%%%
&>&Y&&&&&&&&'''';'='M'N'Z'b't'y'00000 000 0 0 0 0 0 00000 0 0110K0K0K0K0K0K0K0K 0K 0K 0K 0K 0K 0K 0K 0K 0K 0K 0K 0K 0K 0K 0K( 0KK0000000( 0KK00000000( 0KK0
0
0
0
0
0
( 0KK0000000 011000000000000 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0@0 0110[0[0[0[ 0[ 0[ 0[ 0[0[ 0[ 0[ 0[ 0[ 0[ 0[ 0[ 0[ 00000 0 0 0 00 0 0 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0@0@0@0@0 0 0000000000 0 0 0 0 0 00000000 0000000000000000000000000000000 00r0r0r0r0r0r0r0r 0r 0r 0r 0r0r 0r 0r 0r 0r 0r0r0r0r0r0r0r0r0r 0dd00000000 0 0 0 00 0 0 0 0 0X@0M10000000000 0X@00X@00X@00X@00X@00X@00X@00X@00@0Z@00X@00hX@00Xj6X@00X@00A0X@000 	EEEHrS+L t"$&%)z+%-+/x/!#%0<@GKNPSVXCUgy+n
RnDi@Nwo  !!)"h"""6$%&()9*+u,.K/x/ "$&'()*+,-./123456789:;=>?ABCDEFHIJLMOQRTUWYw/
x'7>@H!@ @ (	
NB

SDjJ\(	
f"

s*t	t	jJ

B
S	?x'&X ^14H6!65
_Toc520023339
_Toc520023340
_Toc520023429
_Toc520023430_Toc12263614y'%y'ILL,|!
f##<#L&&&
L
LLk
L


|lf,fDLd$4 Li\"!!",!ܙ!T,"LL ]"C%O<}"Q
\


+No.SnDSj&ANaxp*iEP1? P /!""g#|#$%%y'	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHT
_


.Qr1VqGVm)DQd{s-l HS4B S 2!""j##$%%y'	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH?I*urn:schemas-microsoft-com:office:smarttagsstocktickerIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
 


5CL\AU%1jqt~	gq&,BQ1B$_go}DR[ex 3 P |   B!P!S!]!l!x!!!!!"""########$$$b$n$y$$$$B&U&&''='y'tu?E			U
[


]bmt~

24_h!&:>IO$  J P          !!!9!A!""##W#b###b$n$y$$$$c%i%%%%%%&&&B&U&&='y'::::::::::::::::::::::::::::::::::::::::::::::::::::::F12

0c\kXt+/p{i{ 67D/w!%!!!!!";"""N#r#|####$&$b$u$>&X&&'.'8':'='N's'y'LLnn&%&%&&&&&&&&&'''''<'='y'|.lDE} 6:	D~<&]C`BB;ܶ:
H9q*8`BAQ7z_CHMz\<?ư	=ҊL!|",Q!tg%,& O3}JPH:&Y;yuyD J!wTFQ
hBe& pn^^`.^`.88^8`.^`.^`OJQJo(^`OJQJo(88^8`OJQJo(^`OJQJo(hh^h`.hh^h`OJQJo(h
^`hH.h
^`hH.h
pLp^p`LhH.h
@@^@`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h
PLP^P`LhH.h
P^`PhHh
@@^@`hH.h
0^`0hH..h
``^``hH...	h
^`hH	....	h
^`hH.....	
h
^`hH
......	
h
`^``hH.......	
h
00^0`hH........h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@@^@`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH
^`hH.
^`hH.
pLp^p`LhH.
@@^@`hH.
^`hH.
L^`LhH.
^`hH.
^`hH.
PLP^P`LhH.h
^`hH.h
^`hH.h
pLp^p`LhH.h
@@^@`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h
PLP^P`LhH.h^`.h^`.hpLp^p`L.h@@^@`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@@^@`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh^`OJQJo(hHhpp^p`OJQJ^Jo(hHoh@@^@`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHhPP^P`OJQJ^Jo(hHoh  ^ `OJQJo(hHh
^`hH)h
^`hH.h
pLp^p`LhH.h
@@^@`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h
PLP^P`LhH.h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@@^@`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh
^`hH.h
^`hH.h
pLp^p`LhH.h
@@^@`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h
PLP^P`LhH.h^`OJQJo(h		^	`.hL^`L.hxx^x`.hHH^H`.hL^`L.h^`.h^`.hL^`L.^`o(^`o(.0^`0o(..0^`0o(...	88^8`o(	....	88^8`o(.....	
`^``o(
......	
`^``o(.......	
^`o(........g%,hBepn~}|H:L!yDz\,Q!Y;J!wTO3=z_																																																																																4								j,'}6[K?>9MMt[[-5Zt[[_Q`98jY	l
DN	QO]AWW1g3u}
!j"G"bt#S/)If)wB+,#q,C-u-p/L/M0121E3D4tE4*5Ds5}9u<={?<AaCaEF15N,QdLQfUYW4YZTZ&VZ`],b$dqpkhmnzpr;stlv"w%wzBzX{>p!Mrxu	@8OV`76!$pB30jTFryyA_f$1s0tNf[,NOBCkg_dC~5]8.dn3n{ #A.KK*
{E)w:G/x|94&124CDFUVXghjyz*+>MN`no
&-.BRSbmn1CDMRS`ij%&5@AIMNY`anwxop{)*:hi{w!!!!!""#"9":"##$$&$a$b$u$$$y'@Dx'P@UnknownGz Times New Roman5Symbol3&z Arial?5	z Courier NewG5
	hMS Mincho-3 fg5&zaTahoma;Wingdings"qh#F#FʪfE!gE!g!24d%%
3QZ
Ds5h	

Oh+'0t	
$0<
HT\dlNormal.dot4Microsoft Word 10.0@F#@T@)PI@)PIE!՜.+,0
px
g%
Title	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\]^_`abcdefghiklmnopqrstuvwxyz{|}~Root Entry	Fh/PIData
[1TablejoWordDocument0SummaryInformation(DocumentSummaryInformation8CompObjj
	FMicrosoft Word Document
MSWordDocWord.Document.89q

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2