<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XML Spy v4.0.1 (http://www.xmlspy.com)-->
<tdl xmlns="http://www.nema.org/1997/C1219TDLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nema.org/1997/C1219TDLSchema C1219TDLSchema.xsd" version="1.0" title="ANSI C12.19-1997 Standard Table Definitions">
	<?Global TABLE_IDA_BFLD?>
	<bitField name="TABLE_IDA_BFLD" type="UINT16">
		<description>This type is provided to ease the specification of table or procedure access parameters and provide consistent specification throughout the document.</description>
		<subElement name="TBL_PROC_NBR" type="UINT" startBitInclusive="0" endBitInclusive="10" min="0" max="2039"/>
		<subElement name="STD_VS_MFG_FLAG" type="BOOL" startBitInclusive="11"/>
		<subElement name="PENDING_FLAG" type="BOOL" startBitInclusive="12"/>
		<subElement name="FLAG1" type="BOOL" startBitInclusive="13"/>
		<subElement name="FLAG2" type="BOOL" startBitInclusive="14"/>
		<subElement name="FLAG3" type="BOOL" startBitInclusive="15"/>
	</bitField>
	<?Global TABLE_IDB_BFLD?>
	<bitField name="TABLE_IDB_BFLD" type="UINT16">
		<description>This type is provided to ease the specification of table or procedure access parameters and provide consistent specification throughout the document.</description>
		<subElement name="TBL_PROC_NBR" type="UINT" startBitInclusive="0" endBitInclusive="10" min="0" max="2039"/>
		<subElement name="STD_VS_MFG_FLAG" type="BOOL" startBitInclusive="11"/>
		<subElement name="SELECTOR" type="UINT" startBitInclusive="12" endBitInclusive="15"/>
	</bitField>
	<?Global TABLE_IDC_BFLD?>
	<bitField name="TABLE_IDC_BFLD" type="UINT16">
		<description>This type is provided to ease the specification of table or procedure access parameters and provide consistent specification throughout the document.</description>
		<subElement name="TBL_PROC_NBR" type="UINT" startBitInclusive="0" endBitInclusive="10" min="0" max="2039"/>
		<subElement name="STD_VS_MFG_FLAG" type="BOOL" startBitInclusive="11"/>
		<subElement name="PROC_FLAG" type="BOOL" startBitInclusive="12"/>
		<subElement name="FLAG1" type="BOOL" startBitInclusive="13"/>
		<subElement name="FLAG2" type="BOOL" startBitInclusive="14"/>
		<subElement name="FLAG3" type="BOOL" startBitInclusive="15"/>
	</bitField>
	<?Enumerator EVENT_ENUM?>
	<enumerator name="EVENT_ENUM">
		<description>History and event codes</description>
		<enum value="0" text="No Event"/>
		<enum value="1" text="Primary Power Down"/>
		<enum value="2" text="Primary Power Up"/>
		<enum value="3" text="Time Changed - old time"/>
		<enum value="4" text="Time Changed - new time"/>
		<enum value="5" text="Time Changed - old time"/>
		<enum value="6" text="Time Changed - new time"/>
		<enum value="7" text="End Device Accessed for Read"/>
		<enum value="8" text="End Device Accessed for Write"/>
		<enum value="9" text="Procedure Invoked"/>
		<enum value="10" text="Table Written To"/>
		<enum value="11" text="End Device Programmed"/>
		<enum value="12" text="Communication Terminated Normally"/>
		<enum value="13" text="Communication Terminated Abnormally"/>
		<enum value="14" text="Reset List Pointers"/>
		<enum value="15" text="Update List Pointers"/>
		<enum value="16" text="History Log Cleared"/>
		<enum value="17" text="History Log Pointers Updated"/>
		<enum value="18" text="Event Log Cleared"/>
		<enum value="19" text="Event Log Pointers Updated"/>
		<enum value="20" text="Demand Reset Occurred"/>
		<enum value="21" text="Self Read Occurred"/>
		<enum value="22" text="Daylight Savings Time On"/>
		<enum value="23" text="Daylight Savings Time Off"/>
		<enum value="24" text="Season Change"/>
		<enum value="25" text="Rate Change"/>
		<enum value="26" text="Special Schedule Activation"/>
		<enum value="27" text="Tier Switch Change"/>
		<enum value="28" text="Pending Table Activation"/>
		<enum value="29" text="Pending Table Clear"/>
	</enumerator>
	<?Decade 0?>
	<decade name="CONFIGURATION_DEC" number="0" label="Configuration tables">
		<description>Decade contains tables associated with end device configuration, identification, procedures and responses, and information required for data manipulation due to hardware configurations.</description>
		<?Table 00?>
		<table name="GEN_CONFIG_TBL" number="0" type="GEN_CONFIG_RCD" label="General configuration table">
			<description>This table contains general end device configuration information.  It also establishes the total set of tables, procedures, and the selection of special types used in the end device.  If a default set is used, it is indicated by this table.</description>
			<bitField name="FORMAT_CONTROL_1_BFLD" type="UINT8">
				<subElement name="DATA_ORDER" type="UINT" startBitInclusive="0">
					<description>Variable to define order of multibyte numeric data transfer.</description>
					<enumerator>
						<enum value="0" text="Least significant byte first. "/>
						<enum value="1" text="Most significant byte first. "/>
					</enumerator>
				</subElement>
				<subElement name="CHAR_FORMAT" type="UINT" startBitInclusive="1" endBitInclusive="3">
					<enumerator>
						<enum value="1" text="ISO 7-bit coded character set for information interchange, per ISO/IEC 646: 1991."/>
						<enum value="2" text="ISO 8859/1 or ECMA-94 Latin 1 character set. "/>
					</enumerator>
				</subElement>
				<subElement name="MODEL_SELECT" type="UINT" startBitInclusive="4" endBitInclusive="6">
					<enumerator>
						<enum value="0" text="A code indicating the I/O model selects 
sources as an 8 bit index into the DATA_CONTROL_TBL (Table 14). "/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<bitField name="FORMAT_CONTROL_2_BFLD" type="UINT8">
				<subElement name="TM_FORMAT" type="UINT" startBitInclusive="0" endBitInclusive="2">
					<description>Data type used for Dates &amp; Time.</description>
					<enumerator>
						<enum value="0" text="No clock in the end device."/>
						<enum value="1" text="BCD with discrete fields for month, day, year, hour, minute and seconds."/>
						<enum value="2" text="UINT8 with discrete fields for month, day, year, hour, minute and seconds."/>
						<enum value="3" text="UINT32 with time referenced as seconds relative to a starting time. The reference point is as follows:
LTIME_DATE:   01/01/1970 @ 00:00:00 GMT, rounded to nearest second.
STIME_DATE:   01/01/1970 @ 00:00:00 GMT, rounded to nearest minute.
TIME: Time in seconds since 00:00:00 local time (including time zone offset)."/>
					</enumerator>
				</subElement>
				<subElement name="DATA_ACCESS_METHOD" type="UINT" startBitInclusive="2" endBitInclusive="4">
					<description>Variable to designate method of passing the table data after GEN_CONFIG_TBL (Table 00) has been interrogated.  Note:  All data access methods support complete table access.</description>
					<enumerator>
						<enum value="0" text="Complete table access only, no partial table access supported."/>
						<enum value="1" text="Offset-count access method is supported."/>
						<enum value="2" text="Index-count method is supported."/>
						<enum value="3" text="Both methods Offset-count and Index-count methods are supported."/>
					</enumerator>
				</subElement>
				<subElement name="ID_FORM" type="UINT" startBitInclusive="5">
					<description>Indicates the format of the  identifier fields. </description>
					<enumerator>
						<enum value="0" text="CHAR string."/>
						<enum value="1" text="BCD string."/>
					</enumerator>
				</subElement>
				<subElement name="INT_FORMAT" type="UINT" startBitInclusive="6" endBitInclusive="7">
					<description>Indicates the format of signed integer types.</description>
					<enumerator>
						<enum value="0" text="Signed integer types are represented in twos complement format."/>
						<enum value="1" text="Signed integer types are represented in ones complement format."/>
						<enum value="2" text="Signed integer types are represented in sign/magnitude format."/>
					</enumerator>
				</subElement>
			</bitField>
			<bitField name="FORMAT_CONTROL_3_BFLD" type="UINT8">
				<subElement name="NI_FORMAT1" type="UINT" startBitInclusive="0" endBitInclusive="3">
					<description>Indicates the type of non-integer value used throughout the tables where specified as NI_FMAT1. </description>
					<enumerator name="NI_FORMAT_ENUM">
						<enum value="0" text="FLOAT64"/>
						<enum value="1" text="FLOAT32"/>
						<enum value="2" text="ARRAY[12] OF CHAR"/>
						<enum value="3" text="ARRAY[6] OF CHAR "/>
						<enum value="4" text="INT32  (Implied decimal point between fourth and fifth digits from least significant digit.  e.g. 0.0001 is 		represented as 1)"/>
						<enum value="5" text="ARRAY[6] OF BCD"/>
						<enum value="6" text="ARRAY[4] OF BCD"/>
						<enum value="7" text="INT24"/>
						<enum value="8" text="INT32"/>
						<enum value="9" text="INT40"/>
						<enum value="10" text="INT48"/>
						<enum value="11" text="INT64"/>
					</enumerator>
				</subElement>
				<subElement name="NI_FORMAT2" type="UINT" startBitInclusive="4" endBitInclusive="7" enumerator="NI_FORMAT_ENUM">
					<description>Indicates the type of non-integer value throughout the tables where shown as NI_FMAT2.</description>
				</subElement>
			</bitField>
			<packedRecord name="GEN_CONFIG_RCD">
				<element name="FORMAT_CONTROL_1" type="FORMAT_CONTROL_1_BFLD"/>
				<element name="FORMAT_CONTROL_2" type="FORMAT_CONTROL_2_BFLD"/>
				<element name="FORMAT_CONTROL_3" type="FORMAT_CONTROL_3_BFLD"/>
				<element name="MANUFACTURER" type="BINARY" size="4">
					<description>End device manufacturer identification.  Refer to Annex A, ID Codes For Meter Equipment Manufacturers for list of manufacturer identifiers.</description>
				</element>
				<element name="NAMEPLATE_TYPE" type="UINT8">
					<description>Entry used to select the nameplate record structure to be used in DEVICE_NAMEPLATE_TBL (Table 02).</description>
					<enumerator>
						<enum value="0" text="Gas"/>
						<enum value="1" text="Water"/>
						<enum value="2" text="Electric"/>
						<default text="Unassigned"/>
					</enumerator>
				</element>
				<element name="DEFAULT_SET_USED" type="UINT8">
					<description>Indicates which, if any, default sets are used.  See Annex C, DEFAULT SETS FOR DECADE TABLES, for the default set definitions.</description>
					<enumerator>
						<enum value="0" text="No default values in use. "/>
						<enum value="1" text="Default set #1, Simple Meter Register, in use."/>
						<enum value="2" text="Default set #2, Simple Demand Meter, in use."/>
						<enum value="3" text="Default set #3, Simple TOU Meter, in use."/>
						<enum value="4" text="Default set #4, Simple Profile Recorder, in use."/>
					</enumerator>
				</element>
				<element name="MAX_PROC_PARM_LENGTH" type="UINT8">
					<description>Manufacturer defined maximum length for argument parameters passed to procedures in PROC_INITIATE_TBL (Table 07).</description>
				</element>
				<element name="MAX_RESP_DATA_LEN" type="UINT8">
					<description>Manufacturer defined maximum length representing length returned by procedures in PROC_RESPONSE_TBL (Table 08).</description>
				</element>
				<element name="STD_VERSION_NO" type="UINT8">
					<description>Unsigned binary number designating the version of the particular industry set of standard tables. </description>
					<enumerator>
						<enum value="0" text="Pre-release or informal release document."/>
						<enum value="1" text="Original Standard Table Set, first release document."/>
						<default text="Reserved for Standards Committee use only."/>
					</enumerator>
				</element>
				<element name="STD_REVISION_NO" type="UINT8">
					<description>Unsigned binary number that designates a minor change to a version of this standard. Within a given version of this standard, all revisions with a lower revision number shall be backward compatible. If this is not true then a new version number shall be required.</description>
				</element>
				<element name="DIM_STD_TBLS_USED" type="UINT8">
					<description>Octets required to represent the set of standard tables used in  GEN_CONFIG_TBL.STD_TBLS_USED (Table 00). This is a mechanism to allow the table identifier set to expand in size from simple devices to complex devices.</description>
				</element>
				<element name="DIM_MFG_TBLS_USED" type="UINT8">
					<description>Octets required to represent the set of manufacturer tables used in  GEN_CONFIG_TBL.MFG_TBLS_USED (Table 00).  This is a mechanism to allow the table identifier set to expand in size from simple devices to complex devices.</description>
				</element>
				<element name="DIM_STD_PROC_USED" type="UINT8">
					<description>Octets required to represent the set of standard procedures used in GEN_CONFIG_TBL.STD_PROC_USED (Table 00).  This is a mechanism to allow the standard defined procedure identifier set to expand in size.</description>
				</element>
				<element name="DIM_MFG_PROC_USED" type="UINT8">
					<description>Octets required to represent the set of manufacturer procedures used in GEN_CONFIG_TBL.MFG_PROC_USED (Table 00).  This is a mechanism to allow the manufacturer defined  procedure identifier set to expand in size.</description>
				</element>
				<element name="DIM_MFG_STATUS_USED" type="UINT8">
					<description>The number of octets allocated for indicating manufacturer specific status flags.</description>
				</element>
				<element name="NBR_PENDING" type="UINT8">
					<description>Number of pending status sets in PENDING_STATUS_TBL (Table 04).</description>
				</element>
				<set name="STD_TBLS_USED" dimension="GEN_CONFIG_TBL.DIM_STD_TBLS_USED * 8">
					<description>This set variable indicates which of the Standard Tables are implemented by the device. Tables are represented by bits 0 through (8*DIM_STD_TBLS_USED-1), with a 1 representing a TRUE or implemented condition and a 0 representing a FALSE or not implemented condition.</description>
				</set>
				<set name="MFG_TBLS_USED" dimension="GEN_CONFIG_TBL.DIM_MFG_TBLS_USED * 8">
					<description>This set variable indicates which of the Manufacturer Tables are implemented by the device. Tables are represented by bits 0 through (8*DIM_MFG_TBLS_USED-1), with a 1 representing a TRUE or implemented condition and a 0 representing a FALSE or not implemented condition. </description>
				</set>
				<set name="STD_PROC_USED" dimension="GEN_CONFIG_TBL.DIM_STD_PROC_USED * 8">
					<description>This set variable indicates which of the Standard Procedures are implemented by the device.  Procedures are represented by bits 0 through (8*DIM_STD_PROC_USED-1), with a 1 representing a TRUE or implemented condition and a 0 representing a FALSE or not implemented condition. </description>
				</set>
				<set name="MFG_PROC_USED" dimension="GEN_CONFIG_TBL.DIM_MFG_PROC_USED * 8">
					<description>This set variable indicates which of the Manufacturer's Procedures are implemented by the device.  Procedures are represented by bits 0 through (8*DIM_MFG_PROC_USED-1), with a 1 representing a TRUE or implemented condition and a 0 representing a FALSE or not implemented condition. </description>
				</set>
				<set name="STD_TBLS_WRITE" dimension="GEN_CONFIG_TBL.DIM_STD_TBLS_USED * 8">
					<description>This set variable indicates which of the standard tables are capable of being rewritten.  Tables are represented by bits 0 through (8*DIM_STD_TBLS_USED-1), with a 1 representing a writeable table and a zero representing a table that cannot be written.</description>
				</set>
				<set name="MFG_TBLS_WRITE" dimension="GEN_CONFIG_TBL.DIM_MFG_TBLS_USED * 8">
					<description>This set variable indicates which of the standard tables are capable of being rewritten.  Tables are represented by bits 0 through (8*DIM_MFG_TBLS_USED-1), with a 1 representing a writeable table and a zero representing a table that cannot be written.</description>
				</set>
			</packedRecord>
		</table>
		<?Table 01?>
		<table name="GENERAL_MFG_ID_TBL" number="1" type="MANUFACTURER_IDENT_RCD" label="General manufacturer identification table">
			<description>This table is a general manufacturer identification data table for Water, Gas, and Electric Utility end devices.  The values of the data items shall be set up by the manufacturer and left unchanged since they are determined by the functionality of the device.
			</description>
			<packedRecord name="MANUFACTURER_IDENT_RCD">
				<element name="MANUFACTURER" type="STRING" size="4">
					<description>Name of manufacturer. Refer to Annex A, ID Codes For Meter Equipment Manufacturers, ID definitions.</description>
				</element>
				<element name="ED_MODEL" type="STRING" size="8">
					<description>Model identifier of the end device left justified.  For example 'ENG M3 '.</description>
				</element>
				<element name="HW_VERSION_NUMBER" type="UINT8">
					<description>Manufacturer's hardware version number.  Implies functional changes.</description>
				</element>
				<element name="HW_REVISION_NUMBER" type="UINT8">
					<description>Manufacturer's hardware revision number. Implies product corrections or improvements. Recommended use of '0' to designate prototyping device.</description>
				</element>
				<element name="FW_VERSION_NUMBER" type="UINT8">
					<description>Manufacturer's firmware version number. Changes in value imply functional differences.</description>
				</element>
				<element name="FW_REVISION_NUMBER" type="UINT8">
					<description>Manufacturer's firmware revision number. Changes in value imply product corrections or improvements. Recommend use of '0' to designate preproduction or prototyping software.</description>
				</element>
				<if condition="GEN_CONFIG_TBL.ID_FORM = 0">
					<then>
						<element name="MFG_SERIAL_NUMBER" type="BCD" size="8">
							<description>Manufacturer's serial number for the end device. 16 BCD digits OR CHARs.</description>
						</element>
					</then>
					<else>
						<element name="MFG_SERIAL_NUMBER" type="STRING" size="16"/>
					</else>
				</if>
			</packedRecord>
		</table>
		<?Table 02?>
		<table name="DEVICE_NAMEPLATE_TBL" number="2" type="DEVICE_DEFINITION_RCD" label="Device nameplate table">
			<description>This table is the nameplate data table.  This table contains a record structure for each type of end device (e.g. water, gas, electric).  The structure to be used is specified in GEN_CONFIG_TBL.NAMEPLATE_TYPE (Table 00).  This table presently has nameplate structures defined for an electric meter, a gas meter and a water meter.</description>
			<bitField name="W_WATER_DEVICE_BFLD" type="UINT16">
				<description>This nameplate definition is generally associated with Water Utility end devices. The values of the data items shall be set up by the manufacturer and left unchanged since they are determined by the functionality of the device.</description>
				<subElement name="W_ED_TYPE" type="UINT" startBitInclusive="0" endBitInclusive="2">
					<description>Code representing water end device type.</description>
					<enumerator>
						<enum value="0" text="Meter"/>
						<enum value="1" text="Valve"/>
						<enum value="2" text="Pressure Regulator"/>
						<enum value="3" text="Pressure gauge"/>
						<enum value="4" text="Backflow"/>
						<enum value="5" text="Other"/>
					</enumerator>
				</subElement>
				<subElement name="W_FLUID_TYPE" type="UINT" startBitInclusive="3" endBitInclusive="6">
					<description>Code representing type of fluid  measured by water end device.</description>
					<enumerator>
						<enum value="0" text="Potable water"/>
						<enum value="1" text="Hot water"/>
						<enum value="2" text="Non-potable water"/>
						<enum value="3" text="Sewage primary water"/>
						<enum value="4" text="Sewage secondary water"/>
						<enum value="5" text="Sewage tertiary water"/>
						<enum value="6" text="Other"/>
					</enumerator>
				</subElement>
				<subElement name="W_ED_DRIVE" type="UINT" startBitInclusive="7" endBitInclusive="10">
					<description>Code representing water end device drive.</description>
					<enumerator>
						<enum value="0" text="Piston"/>
						<enum value="1" text="Disc"/>
						<enum value="2" text="Multi-jet"/>
						<enum value="3" text="PiTurbineston"/>
						<enum value="4" text="Compound"/>
						<enum value="5" text="Propeller"/>
						<enum value="6" text="Ultra-sonic"/>
						<enum value="7" text="Magnetic-coupled"/>
						<enum value="8" text="Differential pressure"/>
						<enum value="9" text="Mass"/>
						<enum value="10" text="Variable area"/>
						<enum value="11" text="Open channel"/>
						<enum value="12" text="Oscillatory"/>
						<enum value="13" text="Other"/>
					</enumerator>
				</subElement>
				<subElement name="W_ED_PIPE_SIZE" type="UINT" startBitInclusive="11" endBitInclusive="15">
					<description>Code representing end device pipe size.</description>
					<enumerator>
						<enum value="0" text="1/2&quot;  (13 mm)"/>
						<enum value="1" text="5/8&quot; (15 mm)"/>
						<enum value="2" text="3/4&quot;  (20 mm)"/>
						<enum value="3" text="1&quot; (25 mm)"/>
						<enum value="4" text="1 1/2&quot; (40 mm)"/>
						<enum value="5" text="2&quot; (50 mm)"/>
						<enum value="6" text="3&quot; (80 mm)"/>
						<enum value="7" text="4&quot; (100 mm)"/>
						<enum value="8" text="6&quot; (160 mm)"/>
						<enum value="9" text="8&quot; (200 mm)"/>
						<enum value="10" text="10&quot; (250 mm)"/>
						<enum value="11" text="12&quot; (300 mm)"/>
						<enum value="12" text="14&quot; (350 mm)"/>
						<enum value="13" text="16&quot; (400 mm)"/>
						<enum value="14" text="18&quot; (450 mm)"/>
						<enum value="15" text="20&quot; (500 mm)"/>
						<enum value="16" text="22&quot; (Not standard)"/>
						<enum value="17" text="24&quot; (600 mm)"/>
						<enum value="18" text="26&quot; (Not standard)"/>
						<enum value="19" text="28&quot; (Not standard)"/>
						<enum value="20" text="30&quot; (Not standard)"/>
						<enum value="21" text="32&quot; (800 mm)"/>
						<enum value="22" text="34&quot; (Not standard)"/>
						<enum value="23" text="36&quot; (900 mm)"/>
						<enum value="24" text="40&quot; (1000 mm)"/>
						<enum value="25" text="48&quot; (1200 mm)"/>
					</enumerator>
				</subElement>
			</bitField>
			<bitField name="G_ED_TYPE_BFLD" type="UINT8">
				<subElement name="G_ED_TYPE" type="UINT" startBitInclusive="0" endBitInclusive="2">
					<description>Code representing gas end device type.</description>
					<enumerator>
						<enum value="0" text="Unclassified"/>
						<enum value="1" text="Gas meter"/>
						<enum value="2" text="Gas pressure regulator"/>
						<enum value="3" text="Sensor"/>
						<enum value="4" text="Load shed device"/>
						<enum value="5" text="Cathodic protection unit"/>
					</enumerator>
				</subElement>
				<subElement name="G_MECH_FORM" type="UINT" startBitInclusive="3" endBitInclusive="5">
					<description>Unsigned binary number identifying the primary mechanical design principle of the device depending upon value of G_ED_TYPE.</description>
				</subElement>
				<subElement name="G_ENG_METRIC" type="UINT" startBitInclusive="6">
					<enumerator>
						<enum value="0" text="English"/>
						<enum value="1" text="Metric"/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<packedRecord name="G_PRESSURE_RCD">
				<element name="G_MAX_PRESS" type="NI_FMAT2">
					<description>End device maximum design pressure.</description>
				</element>
				<element name="G_UOM_PRESS" type="UINT8" enumerator="UOM_ENTRY_TBL.UOM_ENUM">
					<description>Unit of measure of G_MAX_PRESS.</description>
				</element>
			</packedRecord>
			<packedRecord name="G_FLOW_RCD">
				<element name="G_MAX_FLOW" type="NI_FMAT2">
					<description>End device maximum design flow rate.</description>
				</element>
				<element name="G_UOM_FLOW" type="UINT8" enumerator="UOM_ENTRY_TBL.UOM_ENUM">
					<description>Unit of measure of G_MAX_FLOW.</description>
				</element>
			</packedRecord>
			<bitField name="G_SIZE_BFLD" type="UINT8">
				<subElement name="G_GEAR_DRIVE" type="UINT" startBitInclusive="0" endBitInclusive="2">
					<description>Code representing gas meter gear drive size.</description>
					<enumerator>
						<enum value="0" text="None"/>
						<enum value="1" text="1/2'"/>
						<enum value="2" text="1'"/>
						<enum value="3" text="2'"/>
						<enum value="4" text="5'"/>
						<enum value="5" text="10'"/>
						<enum value="6" text="100'"/>
						<enum value="7" text="1000'"/>
					</enumerator>
				</subElement>
				<subElement name="G_INPUT_OUTPUT_PIPE" type="UINT" startBitInclusive="3" endBitInclusive="7">
					<description>Code representing gas meter pipe size.</description>
					<enumerator>
						<enum value="0" text="None"/>
						<enum value="1" text="1/2&quot;"/>
						<enum value="2" text="5/8&quot;"/>
						<enum value="3" text="3/4&quot;"/>
						<enum value="4" text="1&quot;"/>
						<enum value="5" text="1 1/2&quot;"/>
						<enum value="6" text="2&quot;"/>
						<enum value="7" text="4&quot;"/>
						<enum value="8" text="6&quot;"/>
						<enum value="9" text="8&quot;"/>
						<enum value="10" text="10&quot;"/>
						<enum value="11" text="12&quot;"/>
						<enum value="12" text="14&quot;"/>
						<enum value="13" text="16&quot;"/>
						<enum value="14" text="18&quot;"/>
						<enum value="15" text="20&quot;"/>
						<enum value="16" text="22&quot;"/>
						<enum value="17" text="24&quot;"/>
						<enum value="18" text="26&quot;"/>
						<enum value="19" text="28&quot;"/>
						<enum value="20" text="30&quot;"/>
						<enum value="21" text="32&quot;"/>
						<enum value="22" text="34&quot;"/>
						<enum value="23" text="36&quot;"/>
					</enumerator>
				</subElement>
			</bitField>
			<bitField name="G_COMPENSATION_BFLD" type="UINT8">
				<subElement name="G_COMP_TEMP" type="UINT" startBitInclusive="0" endBitInclusive="4">
					<description>Code representing the gas meter temperature compensation type.</description>
					<enumerator>
						<enum value="0" text="Uncompensated"/>
						<enum value="1" text="Mechanical"/>
						<enum value="2" text="Sensor"/>
					</enumerator>
				</subElement>
				<subElement name="G_COMP_PRESS" type="UINT" startBitInclusive="5" endBitInclusive="7">
					<description>Code representing the gas meter pressure compensation type.</description>
					<enumerator>
						<enum value="0" text="Uncompensated"/>
						<enum value="1" text="Mechanical"/>
						<enum value="2" text="Sensor"/>
					</enumerator>
				</subElement>
			</bitField>
			<packedRecord name="G_GAS_DEVICE_RCD">
				<description>This nameplate definition is generally associated with Gas Utility end devices. The values of the data items shall be set up by the manufacturer and left unchanged since they are determined by the functionality of the device.</description>
				<element name="G_ED_TYPE" type="G_ED_TYPE_BFLD"/>
				<element name="G_MAX_PRESS" type="G_PRESSURE_RCD"/>
				<element name="G_FLOW" type="G_FLOW_RCD"/>
				<element name="G_GEAR_PIPE_SIZE" type="G_SIZE_BFLD"/>
				<element name="G_COMPENSATION" type="G_COMPENSATION_BFLD"/>
			</packedRecord>
			<bitField name="ELEMENTS_BFLD" type="UINT16">
				<subElement name="E_FREQ" type="UINT" startBitInclusive="0" endBitInclusive="2">
					<description>Power frequency rating code. </description>
					<enumerator>
						<enum value="0" text="DC"/>
						<enum value="1" text="25 hz"/>
						<enum value="2" text="50 hz"/>
						<enum value="3" text="50 or 60 hz"/>
						<enum value="4" text="60 hz"/>
						<enum value="5" text="400 hz"/>
						<enum value="7" text="Unclassified"/>
					</enumerator>
				</subElement>
				<subElement name="E_NO_OF_ELEMENTS" type="UINT" startBitInclusive="3" endBitInclusive="5">
					<description>Number of commodity measuring elements per measuring input to the end device.</description>
					<enumerator>
						<enum value="0" text="None"/>
						<enum value="1" text="1 element"/>
						<enum value="2" text="2 element"/>
						<enum value="3" text="2.5 element"/>
						<enum value="4" text="3 element"/>
						<enum value="5" text="6 element"/>
						<enum value="6" text="1.5 elements"/>
					</enumerator>
				</subElement>
				<subElement name="E_BASE_TYPE" type="UINT" startBitInclusive="6" endBitInclusive="9">
					<description>Indicates the type of meter base.</description>
					<enumerator>
						<enum value="0" text="None"/>
						<enum value="1" text="S-base (socket)"/>
						<enum value="2" text="A-base (ANSI bottom connected)"/>
						<enum value="3" text="K-base"/>
						<enum value="4" text="IEC bottom connected"/>
						<enum value="5" text="switchboard"/>
						<enum value="6" text="rackmount"/>
						<enum value="7" text="B-base"/>
						<enum value="8" text="P-base (Canadian Standard)"/>
					</enumerator>
				</subElement>
				<subElement name="E_ACCURACY_CLASS" type="UINT" startBitInclusive="10" endBitInclusive="15">
					<description>Reserved for future ANSI solid state meter standard accuracy class definitions.</description>
				</subElement>
			</bitField>
			<bitField name="E_VOLTS_BFLD" type="UINT8">
				<description>Contains binary codes describing meter RMS voltages.</description>
				<subElement name="E_ELEMENTS_VOLTS" type="UINT" startBitInclusive="0" endBitInclusive="3">
					<description>Meter element voltage code.</description>
					<enumerator>
						<enum value="0" text="None"/>
						<enum value="1" text="69.3"/>
						<enum value="2" text="72"/>
						<enum value="3" text="120"/>
						<enum value="4" text="208"/>
						<enum value="5" text="240"/>
						<enum value="6" text="277"/>
						<enum value="7" text="480"/>
						<enum value="8" text="120 thru 277"/>
						<enum value="9" text="120 thru 480"/>
					</enumerator>
				</subElement>
				<subElement name="E_ED_SUPPLY_VOLTS" type="UINT" startBitInclusive="4" endBitInclusive="7">
					<description>External supply voltage code.</description>
					<enumerator>
						<enum value="0" text="None"/>
						<enum value="1" text="69.3 AC"/>
						<enum value="2" text="72 AC"/>
						<enum value="3" text="120 AC"/>
						<enum value="4" text="208 AC"/>
						<enum value="5" text="240 AC"/>
						<enum value="6" text="277 AC"/>
						<enum value="7" text="480 AC"/>
						<enum value="8" text="120 thru 277 AC"/>
						<enum value="9" text="120 thru 480 AC"/>
						<enum value="10" text="48 DC"/>
						<enum value="11" text="125 DC"/>
						<enum value="12" text="250 DC"/>
					</enumerator>
				</subElement>
			</bitField>
			<packedRecord name="E_AMPS_RCD">
				<element name="E_CLASS_MAX_AMPS" type="STRING" size="6">
					<description>End device class or IEC max amp rating.</description>
				</element>
				<element name="E_TA" type="STRING" size="6">
					<description>The RMS amperage test amps (TA) specified by the manufacturer for the main test and/or adjustment of the meter.</description>
				</element>
			</packedRecord>
			<packedRecord name="ELECTRIC_DEVICE_RCD">
				<description>This nameplate definition is generally associated with Electric Utility end devices. The values of the data items shall be set up by the manufacturer and left unchanged since they are determined by the functionality of the device.</description>
				<element name="E_KH" type="STRING" size="6">
					<description>Watthours per revolution.  (May be represented as Unithours per equivalent revolution).</description>
				</element>
				<element name="E_KT" type="STRING" size="6">
					<description>The commodity amount selected for the test pulse output.</description>
				</element>
				<element name="E_INPUT_SCALAR" type="UINT8">
					<description>Divisor by which to scale input values. For example if input consists of pulses, an INPUT_SCALAR value of 2 would cause the pulse stream to be divided by 2.</description>
				</element>
				<element name="E_ED_CONFIG" type="STRING" size="5">
					<description>Form number per ANSI C12.10. Characters.</description>
				</element>
				<element name="E_ELEMENTS" type="E_ELEMENTS_BFLD"/>
				<element name="E_VOLTS" type="E_VOLTS_BFLD"/>
				<element name="E_AMPS" type="E_AMPS_RCD"/>
			</packedRecord>
			<packedRecord name="DEVICE_DEFINITION_RCD">
				<description>This is full device nameplate data structure configured as a case statement for selection of water, gas or electric end devices.  The selection variable is GEN_CONFIG_TBL.NAMEPLATE_TYPE (Table 00).</description>
				<switch selection="GEN_CONFIG_TBL.NAMEPLATE_TYPE">
					<case value="0">
						<element name="G_GAS_DEVICE" type="G_GAS_DEVICE_RCD"/>
					</case>
					<case value="1">
						<element name="W_WATER_DEVICE" type="W_WATER_DEVICE_BFLD"/>
					</case>
					<case value="2">
						<element name="E_ELECTRIC_DEVICE" type="E_ELECTRIC_DEVICE_RCD"/>
					</case>
				</switch>
			</packedRecord>
		</table>
		<?Table 3?>
		<table name="ED_MODE_STATUS_TBL" number="3" type="ED_MODE_STATUS_RCD" label="ED_MODE status table">
			<description>This table provides the current operating mode and status of various conditions in the end device.  It allows for both standard and manufacturer specific status definitions.</description>
			<bitField name="ED_MODE_BFLD" type="UINT8">
				<subElement name="METERING_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End Device is not in Metering mode.  It may or may not be accumulating measured or input quantities."/>
						<enum value="true" text="End Device is in Metering mode and is accumulating measured or input quantities."/>
					</enumerator>
				</subElement>
				<subElement name="TEST_MODE_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End Device is not in Test Mode."/>
						<enum value="true" text="End Device is in Test Mode."/>
					</enumerator>
				</subElement>
				<subElement name="METER_SHOP_MODE_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="End device is not in Meter Shop Mode."/>
						<enum value="true" text="End device is in Meter Shop Mode."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="3" endBitInclusive="7"/>
			</bitField>
			<bitField name="ED_STD_STATUS1_BFLD" type="UINT16">
				<subElement name="UNPROGRAMMED_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End Device is programmed."/>
						<enum value="true" text="End Device is not programmed or it is in a factory default state."/>
					</enumerator>
				</subElement>
				<subElement name="CONFIGURATION_ERROR_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End Device did not detect a configuration error."/>
						<enum value="true" text="End Device did detect a configuration error."/>
					</enumerator>
				</subElement>
				<subElement name="SELF_CHK_ERROR_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="End Device did not detect a self check error."/>
						<enum value="true" text="End Device did detect a self check error."/>
					</enumerator>
				</subElement>
				<subElement name="RAM_FAILURE_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="End Device did not detect a RAM Memory failure."/>
						<enum value="true" text="End Device did detect a RAM Memory failure."/>
					</enumerator>
				</subElement>
				<subElement name="ROM_FAILURE_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="End Device did not detect a ROM memory failure."/>
						<enum value="true" text="End Device did detect a ROM Memory failure."/>
					</enumerator>
				</subElement>
				<subElement name="NONVOL_MEM_FAILURE_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="End Device did not detect a nonvolatile memory failure."/>
						<enum value="true" text="End Device did detect a nonvolatile memory failure."/>
					</enumerator>
				</subElement>
				<subElement name="CLOCK_ERROR_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="End Device did not detect a clock error."/>
						<enum value="true" text="End Device did detect a clock error."/>
					</enumerator>
				</subElement>
				<subElement name="MEASUREMENT_ERROR_FLAG" type="BOOL" startBitInclusive="7">
					<enumerator>
						<enum value="false" text="End Device did not detect a measurement element error."/>
						<enum value="true" text="End Device did detect a  measurement element error."/>
					</enumerator>
				</subElement>
				<subElement name="LOW_BATTERY_FLAG" type="BOOL" startBitInclusive="8">
					<enumerator>
						<enum value="false" text="End Device  did not detect a low battery error."/>
						<enum value="true" text="End Device did detect a low battery error."/>
					</enumerator>
				</subElement>
				<subElement name="LOW_LOSS_POTENTIAL_FLAG" type="BOOL" startBitInclusive="9">
					<enumerator>
						<enum value="false" text="End Device did not detect a  potential that is below a predetermined value."/>
						<enum value="true" text="End Device did detect a device potential that is below a predetermined value."/>
					</enumerator>
				</subElement>
				<subElement name="DEMAND_OVERLOAD_FLAG" type="BOOL" startBitInclusive="10">
					<enumerator>
						<enum value="false" text="End Device did not detect a  demand threshold overload."/>
						<enum value="true" text="End Device did detect a  demand threshold overload."/>
					</enumerator>
				</subElement>
				<subElement name="POWER_FAILURE_FLAG" type="BOOL" startBitInclusive="11">
					<enumerator>
						<enum value="false" text="End Device did not detect a  power failure."/>
						<enum value="true" text="End Device did detect a  power failure."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="12" endBitInclusive="15"/>
			</bitField>
			<bitField name="ED_STD_STATUS2_BFLD" type="UINT8">
				<description>Standard status code bit field 2 is a place holder for future expansion.</description>
				<subElement name="FILLER" type="FILL" startBitInclusive="0" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="ED_MFG_STATUS_RCD">
				<description>Set containing the manufacturer specific status flags.</description>
				<set name="ED_MFG_STATUS" dimension="GEN_CONFIG_TBL.DIM_MFG_STATUS_USED * 8"/>
			</packedRecord>
			<packedRecord name="ED_MODE_STATUS_RCD">
				<element name="ED_MODE" type="ED_MODE_BFLD"/>
				<element name="ED_STD_STATUS1" type="ED_STD_STATUS1_BFLD"/>
				<element name="ED_STD_STATUS2" type="ED_STD_STATUS2_BFLD"/>
				<element name="ED_MFG_STATUS" type="ED_MFG_STATUS_RCD"/>
			</packedRecord>
		</table>
		<?Table 4?>
		<table name="PENDING_STATUS_TBL" number="4" type="PENDING_ACTIVATION_RCD" label="Pending status table">
			<description>This table is established to provide an indication of the tables present in the end device with a pending status.  Information contained within this table includes table number, manufacturer or standard table indicator, conditions (events) upon which activation of a pending table is to occur, self-read or demand reset upon activation indicators and several additional status variables.</description>
			<bitField name="STATUS_BFLD" type="UINT8">
				<description>Selectors indicating action to be performed upon activation of selected table.</description>
				<subElement name="EVENT_CODE" type="UINT" startBitInclusive="0" endBitInclusive="3">
					<description>Variable that specifies the condition upon which the pending table shall be made active.  The trigger condition is stored in the EVENT_STORAGE variable.</description>
					<enumerator>
						<enum value="0" text="The pending table is activated based on an absolute time contained in the EVENT_STORAGE variable."/>
						<enum value="1" text="The pending table is activated based on a relative time contained in the EVENT_STORAGE variable."/>
						<enum value="2" text="The pending table is activated based on a non-time associated trigger contained in the EVENT_STORAGE variable."/>
					</enumerator>
				</subElement>
				<subElement name="SELF_READ_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Do not perform a self read before pending table is activated."/>
						<enum value="true" text="Perform a self read, if capable, before pending table is activated."/>
					</enumerator>
				</subElement>
				<subElement name="DEMAND_RESET_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="Do not perform a demand reset before pending table is activated."/>
						<enum value="true" text="Perform a demand reset, if capable, before pending table is activated."/>
					</enumerator>
				</subElement>
				<subElement name="RESERVED" type="FILL" startBitInclusive="6" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="EVENT_RCD">
				<element name="EVENT_SELECTOR" type="STATUS_BFLD">
					<description>Status bits indicating various conditions associated with a pending table.</description>
				</element>
				<element name="EVENT_STORAGE" type="BINARY" size="5">
					<description>Variable for storage of the trigger condition that causes a pending table to become active.
For an EVENT_CODE of 0 this variable contains the year, month, day, hour, and minute in the format indicated.
For an EVENT_CODE of 1 this variable contains the weeks, days, hours, minutes and seconds in the format indicated.
For an EVENT_CODE of 2 this variable contains in the first four characters the ASCII manufacturer code per ANNEX A of this document.  The final character is an event number as defined by the manufacturer.</description>
				</element>
			</packedRecord>
			<packedRecord name="ENTRY_ACTIVATION_RCD">
				<element name="EVENT" type="EVENT_RCD"/>
				<element name="TABLE_SELECTOR" type="TABLE_IDA_BFLD">
					<description>Variable containing the table number, the standard or manufacturer flag and the pending flag.  The pending flag indicates that the associated table has not been activated.</description>
				</element>
			</packedRecord>
			<packedRecord name="PENDING_ACTIVATION_RCD">
				<set name="STANDARD_PENDING" dimension="GEN_CONFIG_TBL.DIM_STD_TBLS_USED * 8">
					<description>This set variable indicates which of the standard tables are capable of being written with a pending status.</description>
				</set>
				<set name="MANUFACT_PENDING" dimension="GEN_CONFIG_TBL.DIM_MFG_TBLS_USED * 8">
					<description>This set variable indicates which of the manufacturer tables are capable of being written with a pending status.</description>
				</set>
				<element name="LAST_ACTIVATION_DATE_TIME" type="STIME_DATE">
					<description>Date and time of the last pending table activated.</description>
				</element>
				<element name="NBR_PENDING_ACTIVATION" type="UINT8">
					<description>Number of activation events in the PENDING_STATUS_TBL structure that have yet to be activated.</description>
				</element>
				<array name="PENDING_TABLES" type="ENTRY_ACTIVATION_RCD" dimension="GEN_CONFIG_TBL.NBR_PENDING">
					<description>List of pending tables and associated activation triggers.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 5?>
		<table name="DEVICE_IDENT_TBL" number="5" type="IDENT_RCD" label="Device identification table">
			<description>This table provides the unique identifier for the device as specified by the user.</description>
			<packedRecord name="IDENT_RCD">
				<if condition="GEN_CONFIG_TBL.ID_FORM">
					<then>
						<element name="IDENTIFICATION" type="BCD" size="10">
							<description>Array of 20 characters or 20 BCD digits used to uniquely identify the device.</description>
						</element>
					</then>
					<else>
						<element name="IDENTIFICATION" type="STRING" size="20"/>
					</else>
				</if>
			</packedRecord>
		</table>
		<?Table 6?>
		<table name="UTIL_INFO_TBL" number="6" type="UTIL_INFO_RCD">
			<description>This table is for utility use in providing additional end device identifying or tracking information.</description>
			<packedRecord name="UTIL_INFO_RCD">
				<element name="OWNER_NAME" type="STRING" size="20">
					<description>Up to 20 Characters. All printable characters are valid.</description>
				</element>
				<element name="UTILITY_DIV" type="STRING" size="20">
					<description>Utility division number. Up to 16 Characters. All printable characters are valid.</description>
				</element>
				<if condition="GEN_CONFIG_TBL.ID_FORM">
					<then>
						<element name="SERVICE_POINT_ID" type="BCD" size="10">
							<description>20 Characters or BCD digits. ID number attached to the service point.</description>
						</element>
						<element name="ELEC_ADDR" type="BCD" size="10">
							<description>End device logical electrical address for mapping and study purposes.  This is used by the utility as information only.</description>
						</element>
						<element name="DEVICE_ID" type="BCD" size="10">
							<description>The ID attached to the hardware. 20 Characters or BCD digits.</description>
						</element>
						<element name="UTIL_SER_NO" type="BCD" size="10">
							<description>Utility specified serial number. Up to 20 Characters or BCD digits.</description>
						</element>
						<element name="CUSTOMER_ID" type="BCD" size="10">
							<description>Up to 20 Characters or BCD digits. All printable characters are valid if characters.</description>
						</element>
					</then>
					<else>
						<element name="SERVICE_POINT_ID" type="STRING" size="10"/>
						<element name="ELEC_ADDR" type="STRING" size="10"/>
						<element name="DEVICE_ID" type="STRING" size="10"/>
						<element name="UTIL_SER_NO" type="STRING" size="10"/>
						<element name="CUSTOMER_ID" type="STRING" size="10"/>
					</else>
				</if>
				<element name="COORDINATE_1" type="BINARY" size="10">
					<description>Generalized mapping coordinate x. </description>
				</element>
				<element name="COORDINATE_2" type="BINARY" size="10">
					<description>Generalized mapping coordinate y. </description>
				</element>
				<element name="COORDINATE_3" type="BINARY" size="10">
					<description>Generalized mapping coordinate z.</description>
				</element>
				<element name="TARIFF_ID" type="STRING" size="8">
					<description>Identification of the billing tariff.</description>
				</element>
				<element name="EX1_SW_VENDOR" type="STRING" size="4">
					<description>Name of manufacturer, in ASCII, that provided configuration/programming software.   Refer to Annex A, Codes for Meter Equipment Manufacturers, for list of manufacturer identifiers.</description>
				</element>
				<element name="EX1_SW_VERSION_NUMBER" type="UINT8">
					<description>Configuration/programming software version number, unsigned binary number. Changes in value imply functional differences.</description>
				</element>
				<element name="EX1_SW_REVISION_NUMBER" type="UINT8">
					<description>Configuration/programming software revision number, unsigned binary number. Changes in value imply product corrections or improvements. Recommend use of '0' to designate preproduction or prototyping software.</description>
				</element>
				<element name="EX2_SW_VENDOR" type="STRING" size="4">
					<description>Name of manufacturer, in ASCII, that provided configuration/programming software.   Refer to Annex A, Codes for Meter Equipment Manufacturers, for list of manufacturer identifiers.</description>
				</element>
				<element name="EX2_SW_VERSION_NUMBER" type="UINT8">
					<description>Configuration/programming software version number. Changes in value imply functional differences</description>
				</element>
				<element name="EX2_SW_REVISION_NUMBER" type="UINT8">
					<description>Configuration/programming software revision number, unsigned binary number. Changes in value imply product corrections or improvements. Recommend use of '0' to designate preproduction or prototyping software.</description>
				</element>
				<element name="PROGRAMMER_NAME" type="STRING" size="10">
					<description>Name of the last programmer or programming device.</description>
				</element>
				<element name="MISC_ID" type="STRING" size="30">
					<description>Thirty characters, free form. All printable characters are allowed.  This could be used to contain approval #, verification #, bar code, etc.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 7?>
		<table name="PROC_INITIATE_TBL" number="7" type="PROC_FORMAT_RCD" label="Procedure initiate table">
			<description>This table allows for the execution of commands using the table structure.  To execute a command a procedure identifier (PROC), a sequence number (SEQ_NBR), and an optional parameter list (PARM) are written into this table.  The response to the command is placed in PROC_RESPONSE_TBL (Table 08) and is available to be read.  As a minimum response, all commands produce an echo of the procedure identifier (PROC), an echo of the sequence number (SEQ_NBR), and a result code. </description>
			<bitField name="TABLE_IDB_BFLD" type="UINT16" redefine="TABLE_IDB_BFLD">
				<subElement name="TBL_PROC_NBR" type="UINT" startBitInclusive="0" endBitInclusive="10" min="0" max="2047">
					<description>Procedure number to be executed.</description>
				</subElement>
				<subElement name="STD_VS_MFG_FLAG" type="BOOL" startBitInclusive="11">
					<enumerator>
						<enum value="false" text="Procedure selected by TBL_PROC_NBR is a standard defined procedure."/>
						<enum value="true" text="Procedure selected by TBL_PROC_NBR is a manufacturer defined procedure."/>
					</enumerator>
				</subElement>
				<subElement name="SELECTOR" type="UINT" startBitInclusive="12" endBitInclusive="15">
					<description>Describes how the response to the procedure is handled.</description>
					<enumerator>
						<enum value="0" text="Post response in PROC_RESPONSE_TBL (Table 08) on completion."/>
						<enum value="1" text="Post response in PROC_RESPONSE_TBL (Table 08) on exception."/>
						<enum value="2" text="Do not post response in PROC_RESPONSE_TBL (Table 08)."/>
						<enum value="3" text="Post response in PROC_RESPONSE_TBL (Table 08) immediately and post another response in PROC_RESPONSE_TBL (Table 08) on completion."/>
					</enumerator>
				</subElement>
			</bitField>
			<packedRecord name="PROC_FORMAT_RCD">
				<element name="PROC" type="TABLE_IDB_BFLD">
					<description>Bit field indicating procedure number to be executed and whether the procedure is a standard defined procedure or a manufacturer defined procedure.  It also describes the response method.</description>
				</element>
				<element name="SEQ_NBR" type="UINT8">
					<description>The sequence number is supplied by initiator of the procedure.  It shall be returned with procedure response in PROC_RESPONSE_TBL (Table 08) as a means of coordination.</description>
				</element>
				<element name="PARM" type="PARM_RCD">
					<description>Argument for procedure as defined for each individual procedures.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 8?>
		<table name="PROC_RESPONSE_TBL" number="8" type="PROC_RESPONSE_RCD" label="Procedure response table">
			<description>This table is a complementary table to PROC_INITIATE_TBL (Table 07). This table contains a response, which gets posted to Table 08 as a result of a write to PROC_INITIATE_TBL (Table 07).</description>
			<packedRecord name="PROC_RESPONSE_RCD">
				<element name="PROC" type="TABLE_IDB_BFLD">
					<description>Bit field indicating procedure number executed and whether the procedure was a standard defined or a manufacturer defined.</description>
				</element>
				<element name="SEQ_NBR" type="UINT8">
					<description>Supplied by initiator of the procedure PROC_INITIATE_TBL (Table 07).  Returned with response as a means of coordination.</description>
				</element>
				<element name="RESULT_CODE" type="UINT8">
					<description>Code which identifies the status of the procedure execution.</description>
					<enumerator>
						<enum value="0" text="Procedure completed."/>
						<enum value="1" text="Procedure accepted but not fully completed."/>
						<enum value="2" text="Invalid parameter for known procedure, procedure was ignored."/>
						<enum value="3" text="Procedure conflicts with current device setup, procedure was ignored."/>
						<enum value="4" text="Timing constraint, procedure was ignored."/>
						<enum value="5" text="No authorization for requested procedure, procedure was ignored."/>
						<enum value="6" text="Un-recognized procedure, procedure was ignored."/>
					</enumerator>
				</element>
				<element name="RESP_DATA" type="RESP_DATA_RCD">
					<description>Procedure response record as defined for individual procedures in PROC_INITIATE_TBL (Table 07).  RESP_DATA_RCD is posted if procedure was successfully completed (RESULT_CODE = 0) and SELECTOR in PROC_INITIATE_TBL (Table 07) is not set to a value of 2.</description>
				</element>
			</packedRecord>
		</table>
		<?Procedure 0?>
		<procedure name="COLD_START_PROC" number="0" label="Cold start">
			<description>This procedure causes the end device to return to a manufacturer default known state. All data values, programs and conditions may be lost. Communication may be broken. If an Event Log exists, an attempt shall be made to retain it.</description>
		</procedure>
		<?Procedure 1?>
		<procedure name="WARM_STRAT_PROC" number="1" label="Warm start">
			<description>This procedure causes the end device to return to a "power-up" state.  Communication may be broken.</description>
		</procedure>
		<?Procedure 2?>
		<procedure name="SAVE_CONFIGURATION_PROC" label="Save Configuration" number="2">
			<description>This procedure causes the end device to save its active configuration.</description>
		</procedure>
		<?Procedure 3?>
		<procedure name="CLEAR_DATA_PROC" number="3" label="Clear data">
			<description>This procedures causes the end device to purge generated data fields but retain programming fields.  Data fields to be purged are specified by the device manufacturer.</description>
		</procedure>
		<?Procedure 4?>
		<procedure name="RESET_LIST_POINTERS_PROC" number="4" label="Reset list pointers">
			<description>When invoked, the end device attempts to reset list control variables to their initial state. To execute this procedure, the initiator shall in addition be required to have access permission to the procedure and write access permission to the table containing the selected list(s).</description>
			<enumerator name="LIST_ENUM">
				<enum value="1" text="EVENT_LOG_TBL (Table 76)"/>
				<enum value="2" text="SELF_READ_DATA_TBL (Table 26)"/>
				<enum value="3" text="LP_DATA_SET1_TBL (Table 64)"/>
				<enum value="4" text="LP_DATA_SET2_TBL (Table 65)"/>
				<enum value="5" text="LP_DATA_SET2_TBL (Table 66)"/>
				<enum value="6" text="LP_DATA_SET2_TBL (Table 67)"/>
				<enum value="7" text="LP_DATA_SETx_TBL (Table 64 tp 67)"/>
				<enum value="8" text="HISTORY_LOG_TBL (Table 74)"/>
				<enum value="255" text="All lists except EVENT_LOG_TBL (Table 76)"/>
			</enumerator>
			<packedRecord name="PARM_RCD">
				<element name="LIST" type="UINT8" enumerator="LIST_ENUM">
					<description>List selected</description>
				</element>
			</packedRecord>
			<extend type="PARM_RCD" target="STD:PROC_INITIATE_TBL.PARM_RCD"/>
		</procedure>
		<?Procedure 5?>
		<procedure name="UPDATE_LAST_READ_ENTRY_PROC" number="5" label="Update last read entry">
			<description>When invoked, the end device attempts to reduce the list variable NBR_UNREAD_ENTRIES by the value specified.  To execute this procedure, the initiator shall in addition be required to have access to the procedure and write access to the table containing the selected list(s).</description>
			<packedRecord name="PARM_RCD">
				<element name="LIST" type="UINT8" enumerator="RESET_LIST_POINTERS_PROC.LIST_ENUM">
					<description>List selected</description>
				</element>
				<element name="ENTRIES_READ" type="UINT16">
					<description>Number of entries confirmed.</description>
				</element>
			</packedRecord>
			<extend type="PARM_RCD" target="STD:PROC_INITIATE_TBL.PARM_RCD"/>
		</procedure>
		<?Procedure 6?>
		<procedure name="CHANGE_END_DEVICE_MODE_PROC" number="6" label="Change end device mode">
			<description>This procedure changes the operational modes in the end device.</description>
			<packedRecord name="PARM_RCD">
				<element name="ED_MODE" type="ED_MODE_STATUS_TBL.ED_MODE_BFLD"/>
			</packedRecord>
			<packedRecord name="RESP_DATA_RCD">
				<element name="ED_MODE" type="ED_MODE_STATUS_TBL.ED_MODE_BFLD">
					<description>The mode the device is in after the execution of this procedure.</description>
				</element>
			</packedRecord>
			<extend type="PARM_RCD" target="STD:PROC_INITIATE_TBL.PARM_RCD"/>
			<extend type="RESP_DATA_RCD" target="STD:PROC_RESPONSE_TBL.RESP_DATA_RCD"/>
		</procedure>
		<?Procedure 7?>
		<procedure name="CLEAR_STD_STATUS_PROC" number="7" label="Clear standard status flags">
			<description>When invoked, the end device attempts to clear all standard status flags.</description>
			<packedRecord name="RESP_DATA_RCD">
				<element name="ED_STD_STATUS_1" type="ED_MODE_STATUS_TBL.ED_STD_STATUS1_BFLD"/>
				<element name="ED_STD_STATUS_2" type="ED_MODE_STATUS_TBL.ED_STD_STATUS2_BFLD"/>
			</packedRecord>
			<extend type="RESP_DATA_RCD" target="STD:PROC_RESPONSE_TBL.RESP_DATA_RCD"/>
		</procedure>
		<?Procedure 8?>
		<procedure name="CLEAR_MFG_STATUS_PROC" number="8" label="Clear Manufacturer Status Flags">
			<description>When invoked, the end device attempts to clear all manufacturer status flags.</description>
			<packedRecord name="PARM_RCD">
				<element name="ED_MFG_STATUS" type="ED_MODE_STATUS_TBL.ED_MFG_STATUS_RCD"/>
			</packedRecord>
		</procedure>
		<?Procedure 9?>
		<procedure name="REMOTE_RESET_PROC" number="9" label="Remote reset">
			<description>When invoked, this procedure attempts to perform the specified combination of resets and change of season.  The following resets are supported: Self Read, Demand Reset, and Season Change.</description>
			<packedRecord name="PARM_RCD">
				<element name="ACTION_FLAG" type="ACTION_FLAG_BFLD">
					<description>Bit mask denotes the reset actions to perform.</description>
				</element>
			</packedRecord>
			<bitField name="ACTION_FLAG_BFLD" type="UINT8">
				<subElement name="DEMAND_RESET_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="Do not perform a demand reset."/>
						<enum value="true" text="Perform a demand reset."/>
					</enumerator>
				</subElement>
				<subElement name="SELF_READ_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Do not perform a self read."/>
						<enum value="true" text="Perform a self read."/>
					</enumerator>
				</subElement>
				<subElement name="SEASON_CHANGE_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Do not perform a change to the new season specified."/>
						<enum value="true" text="Perform a change to the new season specified."/>
					</enumerator>
				</subElement>
				<subElement name="NEW_SEASON" type="UINT" startBitInclusive="3" endBitInclusive="6" min="0" max="15">
					<description>Season to change to if SEASON_CHANGE bit is set.</description>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<packedRecord name="RESP_DATA_RCD">
				<element name="SUCCESS_FLAG" type="ACTION_RESPONSE_FLAG_BFLD">
					<description>Indicates which "resets" were successful by setting corresponding bits.</description>
				</element>
			</packedRecord>
			<bitField name="ACTION_RESPONSE_FLAG_BFLD" type="UINT8">
				<subElement name="DEMAND_RESET_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="Did not perform a demand reset."/>
						<enum value="true" text="Performed a demand reset."/>
					</enumerator>
				</subElement>
				<subElement name="SELF_READ_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Did not perform a self read."/>
						<enum value="true" text="Performed a self read."/>
					</enumerator>
				</subElement>
				<subElement name="SEASON_CHANGE_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Did not perform a change to the new season specified."/>
						<enum value="true" text="Performed a change to the new season specified."/>
					</enumerator>
				</subElement>
				<subElement name="NEW_SEASON" type="UINT" startBitInclusive="3" endBitInclusive="6" min="0" max="15">
					<description>The season number the end device changed to if SEASON_CHANGE bit was set.</description>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<extend type="PARM_RCD" target="STD:PROC_INITIATE_TBL.PARM_RCD"/>
			<extend type="RESP_DATA_RCD" target="STD:PROC_RESPONSE_TBL.RESP_DATA_RCD"/>
		</procedure>
		<?Procedure 10?>
		<procedure name="SET_DATE_TIME_PROC" number="10" label="date and/or time">
			<description>This procedure attempts to set the date and/or time in the end device.</description>
			<bitField name="SET_MASK_BFLD" type="UINT8">
				<subElement name="SET_TIME_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="Do not set time."/>
						<enum value="true" text="Set time."/>
					</enumerator>
				</subElement>
				<subElement name="SET_DATE_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Do not set date."/>
						<enum value="true" text="Set date."/>
					</enumerator>
				</subElement>
				<subElement name="SET_TIME_DATE_QUAL" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Do not set time date qualifier."/>
						<enum value="true" text="Set time date qualifier."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="3" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="PARM_RCD">
				<element name="SET_MASK" type="SET_MASK_BFLD">
					<description>Bit mask denotes the actions to perform.</description>
				</element>
				<element name="DATE_TIME" type="LTIME_DATE">
					<description>New date and time.</description>
				</element>
				<element name="TIME_DATE_QUAL" type="CLOCK_TBL.TIME_DATE_QUAL_BFLD"/>
			</packedRecord>
			<packedRecord name="RESP_DATA_RCD">
				<element name="DEV_DATE_TIME_BEFORE" type="LTIME_DATE">
					<description>Date and time in the end device just before set date time procedure was executed.</description>
				</element>
				<element name="DEV_DATE_TIME_AFTER" type="LTIME_DATE">
					<description>Date and time in the end device just after set date time procedure was executed.</description>
				</element>
			</packedRecord>
			<extend type="PARM_RCD" target="STD:PROC_INITIATE_TBL.PARM_RCD"/>
			<extend type="RESP_DATA_RCD" target="STD:PROC_RESPONSE_TBL.RESP_DATA_RCD"/>
		</procedure>
		<?Procedure 11?>
		<procedure name="EXECUTE_DIAGNOSTICS_PROC" number="11" label="Execute diagnostics procedure">
			<description>This procedure initiates an end device diagnostic procedure.</description>
		</procedure>
		<?Procedure 12?>
		<procedure name="ACTIVATE_ALL_PENDING_TBL_PROC" number="12" label="Activate all pending tables">
			<description>This procedure causes the end device to immediately activate all pending tables regardless of activation trigger(s).</description>
		</procedure>
		<?Procedure 13?>
		<procedure name="ACTIVATE_SPECIFIC_PENDING_TBL_PROC" number="13" label="Activate specific pending table(s)">
			<description>This procedure causes the end device to immediately activate any pending table(s) with the specified activation trigger.</description>
			<packedRecord name="PARM_RCD">
				<element name="EVENT" type="PENDING_STATUS_TBL.EVENT_RCD"/>
			</packedRecord>
			<extend type="PARM_RCD" target="STD:PROC_INITIATE_TBL.PARM_RCD"/>
		</procedure>
		<?Procedure 14?>
		<procedure name="CLEAR_ALL_PENDING_TBL_PROC" number="14" label="Clear all pending tables">
			<description>This procedure causes the end device to immediately clear the pending state all pending tables.</description>
		</procedure>
		<?Procedure 15?>
		<procedure name="CLEAR_SPECIFIC_PENDING_TBL_PROC" number="15" label="Clear specific pending table(s)">
			<description>This procedure causes the end device to immediately clear the pending status of all pending table(s) with the specified activation trigger.</description>
			<packedRecord name="PARM_RCD">
				<element name="EVENT" type="PENDING_STATUS_TBL.EVENT_RCD"/>
			</packedRecord>
			<extend type="PARM_RCD" target="STD:PROC_INITIATE_TBL.PARM_RCD"/>
		</procedure>
		<?Procedure 16?>
		<procedure name="START_LOAD_PROFILE_PROC" number="16" label="Start load profile">
			<description>This procedure starts all defined load profile sets. </description>
		</procedure>
		<?Procedure 17?>
		<procedure name="STOP_LOAD_PROFILE_PROC" number="17" label="Stop load profile">
			<description>This procedure stops all active load profile sets. </description>
		</procedure>
		<?Procedure 18?>
		<procedure name="LOGIN_PROC" number="18" label="Log in">
			<description>When invoked, this procedure establishes the active USER_ID that is used in the HISTORY_LOG_TBL (Table 74) and in the EVENT_LOG_TBL (Table 76) and supplies a password.</description>
			<packedRecord name="PARM_RCD">
				<element name="USER_ID" type="UINT16">
					<description>ID associated with current user. Note: USER_ID of zero and USER_ID of one should be avoided since it represents an end device initiated event and manually initiated event respectively in the loggers. </description>
				</element>
				<element name="PASSWORD" type="BINARY" size="20">
					<description>Password supplied. The first character of the password shall be placed in the zero element of the array.</description>
				</element>
			</packedRecord>
			<extend type="PARM_RCD" target="STD:PROC_INITIATE_TBL.PARM_RCD"/>
		</procedure>
		<?Procedure 19?>
		<procedure name="LOGOUT_PROC" number="19" label="Log out">
			<description>Deactivates the USER_ID and password. </description>
		</procedure>
	</decade>
	<?Decade 1?>
	<decade name="DATA_SOURCE_DEC" number="1" label="Data source tables">
		<description>This decade contains tables associated with data sources.</description>
		<?Table 10?>
		<table name="DIM_SOURCES_LIM_TBL" number="10" type="SOURCE_RCD" label="Dimension sources limiting table">
			<description>This table contains maximum dimensions and end device capabilities for establishing data sources.</description>
			<bitField name="SOURCE_FLAGS_BFLD" type="UINT8">
				<subElement name="PF_EXCLUDE_FLAG" type="BOOL" startBitInclusive="0">
					<description>Power fail exclusion is defined as ignoring demand for maximum calculations for some period immediately after a power failure.</description>
					<enumerator>
						<enum value="false" text="End device is not capable of power fail exclusion."/>
						<enum value="true" text="End device is capable of power fail exclusion."/>
					</enumerator>
				</subElement>
				<subElement name="RESET_EXCLUDE_FLAG" type="BOOL" startBitInclusive="1">
					<description>Reset exclusion is defined as inhibiting demand reset for some period after a reset.</description>
					<enumerator>
						<enum value="false" text="Reset exclusion is not supported by the end device."/>
						<enum value="true" text="Reset exclusion is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="BLOCK_DEMAND_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Block demand is not supported by the end device."/>
						<enum value="true" text="Block demand is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="SLIDING_DEMAND_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Sliding demand is not supported by the end device."/>
						<enum value="true" text="Sliding demand is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="THERMAL_DEMAND_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Thermal demand is not supported by the end device."/>
						<enum value="true" text="Thermal demand is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="SET1_PRESENT_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="The end device does not support the first set of optional constants in the electric record of the CONSTANTS_TBL (Table 15)."/>
						<enum value="true" text="The end device does support the first set of optional constants in the electric record of the CONSTANTS_TBL (Table 15)."/>
					</enumerator>
				</subElement>
				<subElement name="SET2_PRESENT_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="The end device does not support the second set of optional constants in the electric record of the CONSTANTS_TBL (Table 15)."/>
						<enum value="true" text="The end device does support the second set of optional constants in the electric record of the CONSTANTS_TBL (Table 15)."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<packedRecord name="SOURCE_RCD">
				<element name="SOURCE_FLAGS" type="SOURCE_FLAGS_BFLD">
					<description>Bit fields that indicate what demand and TOU register functions the end device is capable of performing.</description>
				</element>
				<element name="NBR_UOM_ENTRIES" type="UINT8">
					<description>Maximum number of entries in UOM_ENTRY_TBL (Table 122).</description>
				</element>
				<element name="NBR_DEMAND_CTRL_ENTRIES" type="UINT8">
					<description>Maximum number of entries in the DEMAND_CONTROL_TBL (Table 13).</description>
				</element>
				<element name="DATA_CTRL_LENGTH" type="UINT8">
					<description>Manufacturer supplied value that determines the width in octets of an entry in the first array of the DATA_CONTROL_TBL (Table 14).</description>
				</element>
				<element name="NBR_DATA_CTRL_ENTRIES" type="UINT8">
					<description>Maximum number of entries in the DATA_CONTROL_TBL (Table 14).</description>
				</element>
				<element name="NBR_CONSTANTS_ENTRIES" type="UINT8">
					<description>Maximum number of entries in the CONSTANTS_TBL (Table 15).</description>
				</element>
				<element name="CONSTANTS_SELECTOR" type="UINT8">
					<description>This value is the selector for the record structure used in the CONSTANTS_TBL (Table 15).</description>
					<enumerator>
						<enum value="0" text="GAS_CONSTANTS_AGA3_RCD data structure selected."/>
						<enum value="1" text="GAS_CONSTANTS_AGA7_RCD data structure selected."/>
						<enum value="2" text="ELECTRIC_CONSTANTS_RCD data structure selected."/>
					</enumerator>
				</element>
				<element name="NBR_SOURCES" type="UINT8">
					<description>Maximum number of entries in the SOURCES_TBL (Table 16).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 11?>
		<table name="ACT_SOURCES_LIM_TBL" number="11" type="SOURCE_RCD" label="Actual sources limiting table">
			<description>This table contains the actual parameters of Table 10 the end device has been configured with.</description>
			<bitField name="SOURCE_FLAGS_BFLD" type="UINT8" redefine="DIM_SOURCES_LIM_TBL.SOURCE_FLAGS_BFLD">
				<subElement name="PF_EXCLUDE_FLAG" type="BOOL" startBitInclusive="0">
					<description>Power fail exclusion is defined as ignoring demand for maximum calculations for some period immediately after a power failure.</description>
					<enumerator>
						<enum value="false" text="Power fail exclusion is not active."/>
						<enum value="true" text="Power fail exclusion is active."/>
					</enumerator>
				</subElement>
				<subElement name="RESET_EXCLUDE_FLAG" type="BOOL" startBitInclusive="1">
					<description>Reset exclusion is defined as inhibiting demand reset for some period after a reset.</description>
					<enumerator>
						<enum value="false" text="Reset exclusion is not in use by the end device."/>
						<enum value="true" text="Reset exclusion is in use by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="BLOCK_DEMAND_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Block demand is not in use by the end device."/>
						<enum value="true" text="Block demand is in use by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="SLIDING_DEMAND_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Sliding demand is not in use by the end device."/>
						<enum value="true" text="Sliding demand is in use by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="THERMAL_DEMAND_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Thermal demand is not in use by the end device."/>
						<enum value="true" text="Thermal demand is in use by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="SET1_PRESENT_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="The end device is not using the first set of optional constants in the electric record of the CONSTANTS_TBL (Table 15)."/>
						<enum value="true" text="The end device is using the first set of optional constants in the electric record of the CONSTANTS_TBL (Table 15)."/>
					</enumerator>
				</subElement>
				<subElement name="SET2_PRESENT_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="The end device is not using the second set of optional constants in the electric record of the CONSTANTS_TBL (Table 15)."/>
						<enum value="true" text="The end device is using the second set of optional constants in the electric record of the CONSTANTS_TBL (Table 15)."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<packedRecord name="SOURCE_RCD" redefine="DIM_SOURCES_LIM_TBL.SOURCE_RCD">
				<element name="SOURCE_FLAGS" type="SOURCE_FLAGS_BFLD">
					<description>Bit fields that indicate what demand and TOU register functions are in use by the end device as configured.</description>
				</element>
				<element name="NBR_UOM_ENTRIES" type="UINT8">
					<description>Actual number of entries in UOM_ENTRY_TBL (Table 12).</description>
				</element>
				<element name="NBR_DEMAND_CTRL_ENTRIES" type="UINT8">
					<description>Actual number of entries in the DEMAND_CONTROL_TBL (Table 13).</description>
				</element>
				<element name="DATA_CTRL_LENGTH" type="UINT8">
					<description>Manufacturer defined number of octets in an element of the array of the DATA_CONTROL_TBL (Table 14).</description>
				</element>
				<element name="NBR_DATA_CTRL_ENTRIES" type="UINT8">
					<description>Actual number of entries in the DATA_CONTROL_TBL (Table 14).</description>
				</element>
				<element name="NBR_CONSTANTS_ENTRIES" type="UINT8">
					<description>Actual number of entries in the CONSTANTS_TBL (Table 15).</description>
				</element>
				<element name="CONSTANTS_SELECTOR" type="UINT8">
					<description>This value is the selector for the record structure used in the CONSTANTS_TBL (Table 15).</description>
					<enumerator>
						<enum value="0" text="GAS_CONSTANTS_AGA3_RCD data structure selected."/>
						<enum value="1" text="GAS_CONSTANTS_AGA7_RCD data structure selected."/>
						<enum value="2" text="ELECTRIC_CONSTANTS_RCD data structure selected."/>
					</enumerator>
				</element>
				<element name="NBR_SOURCES" type="UINT8">
					<description>Actual number of entries in the SOURCES_TBL (Table 16).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 12?>
		<table name="UOM_ENTRY_TBL" number="12" type="UOM_ENTRY_RCD" label="Unit of measure entry table">
			<description>This table provides a method for describing data attributes. It may be used to tag data sources.</description>
			<enumerator name="UOM_ENUM">
				<enum value="0" text="Active power - W"/>
				<enum value="1" text="Reactive power - VAR"/>
				<enum value="2" text="Apparent power - VA"/>
				<enum value="3" text="Phasor power - VA = sqrt(W2+VAR2)"/>
				<enum value="4" text="Quantity power - Q(60)"/>
				<enum value="5" text="Quantity power - Q(45)"/>
				<?Voltage?>
				<enum value="8" text="RMS Volts"/>
				<enum value="9" text="Average Volts (average of |V|)"/>
				<enum value="10" text="RMS Volts Squared (V2)"/>
				<enum value="11" text="Instantaneous volts"/>
				<?Current?>
				<enum value="12" text="RMS Amps"/>
				<enum value="13" text="Average Current (average of |I|)"/>
				<enum value="14" text="RMS Amps Squared (I2)"/>
				<enum value="15" text="Instantaneous current"/>
				<?Percent Total Harmonic Distortion?>
				<enum value="16" text="T.H.D. V (IEEE - Institute of Electrical and Electronics Engineers)"/>
				<enum value="17" text="T.H.D. I (IEEE)"/>
				<enum value="18" text="T.H.D. V (IC - Industry Canada)"/>
				<enum value="19" text="T.H.D. I (IC)"/>
				<?Phase Angle?>
				<enum value="20" text="V-VA, Voltage phase angle"/>
				<enum value="21" text="Vx-Vy, where x and y are phases defined in phase selector."/>
				<enum value="22" text="I-VA, Current phase angle"/>
				<enum value="23" text="Ix-Iy, where x and y are phases defined in phase selector."/>
				<enum value="24" text="Power factor computed using apparent power, ID_CODE=2."/>
				<enum value="25" text="Power factor computed using phasor power, ID_CODE=3."/>
				<?Time?>
				<enum value="29" text="Time of day"/>
				<enum value="30" text="Date"/>
				<enum value="31" text="Time of day and Date"/>
				<enum value="32" text="Interval timer"/>
				<enum value="33" text="Frequency"/>
				<enum value="34" text="Counter"/>
				<enum value="35" text="Sense input (T/F)"/>
				<enum value="40" text="Voltage sag"/>
				<enum value="41" text="Voltage swells"/>
				<enum value="42" text="Power outage"/>
				<enum value="43" text="Voltage excursion low"/>
				<enum value="44" text="Voltage excursion high"/>
				<enum value="45" text="Normal voltage level"/>
				<enum value="46" text="Voltage unbalance"/>
				<enum value="47" text="Voltage T.H.D. excess"/>
				<enum value="48" text="Current T.H.D. excess"/>
				<?Event Codes?>
				<enum value="50" text="Power outages"/>
				<enum value="51" text="Number of demand resets"/>
				<enum value="52" text="Number of times programmed"/>
				<enum value="53" text="Number of minutes on battery carryover"/>
				<?Gas Industry units?>
				<enum value="64" text="Cubic meter gas (volume un-corrected , meter index reading) per Hr."/>
				<enum value="65" text="Cor cubic meter gas (volume corrected to base conditions) per Hr."/>
				<enum value="66" text="Cor cubic meter gas(volume corrected to pressure base, without supercompressibility per Hr."/>
				<enum value="67" text="Cubic feet gas (volume corrected, meter index reading) per Hr."/>
				<enum value="68" text="Cor cubic feet gas(volume corrected to base conditions) per Hr."/>
				<enum value="69" text="Pcor cubic feet gas(volume corrected to pressure base, without supercompressibility per Hr."/>
				<enum value="70" text="Dry bulb temp degree C"/>
				<enum value="71" text="Wet bulb temp degree C"/>
				<enum value="72" text="Dry bulb temp degree F"/>
				<enum value="73" text="Wet bulb temp degree F"/>
				<enum value="74" text="Dry bulb temp degree K"/>
				<enum value="75" text="Wet bulb temp degree K"/>
				<enum value="76" text="Joules per Hr"/>
				<enum value="77" text="Therm per Hr"/>
				<enum value="78" text="Static pascal"/>
				<enum value="79" text="Differential pascal"/>
				<enum value="80" text="Static pound per square inch"/>
				<enum value="81" text="Differential pound per square inch"/>
				<enum value="82" text="Gram cm2"/>
				<enum value="83" text="Meter HG column"/>
				<enum value="84" text="Inch HG column"/>
				<enum value="85" text="Inch H2O column"/>
				<enum value="86" text="Bar"/>
				<enum value="87" text="% relative humidity"/>
				<enum value="88" text="Parts per million odorant"/>
				<?Water Industry units?>
				<enum value="128" text="Cubic meter liquid per Hr"/>
				<enum value="129" text="Cubic feet liquid per Hr"/>
				<enum value="130" text="US gallons per Hr"/>
				<enum value="131" text="IMP gallons per Hr"/>
				<enum value="132" text="Acre feet per Hr"/>
				<enum value="133" text="Parts per million lead"/>
				<enum value="134" text="Turbidity"/>
				<enum value="135" text="Parts per million chlorine"/>
				<enum value="136" text="PH factor"/>
				<enum value="137" text="Corrosion"/>
				<enum value="138" text="Ionization"/>
				<enum value="139" text="Parts per million SO_2"/>
				<enum value="140" text="Liters"/>
				<enum value="141" text="Cubic feet liquid"/>
				<enum value="142" text="Pounds per sq. ft differential"/>
				<enum value="143" text="Inches of Water"/>
				<enum value="144" text="Feet of water"/>
				<enum value="145" text="Atmospheres"/>
				<?Generic industry units?>
				<enum value="190" text="Local currency (e.g. $)"/>
				<enum value="191" text="Inch"/>
				<enum value="192" text="Foot"/>
				<enum value="193" text="Meter"/>
			</enumerator>
			<bitField name="UOM_ENTRY_BFLD" type="UINT32">
				<subElement name="ID_CODE" type="UINT" startBitInclusive="0" endBitInclusive="7" enumerator="UOM_ENUM">
					<description>The UOM ID_CODE identifies the physical quantity of interest (equivalent to physical units in the field of physics as used for dimensional analysis). The standard defines entries for use by the Water, Gas, or Electrical Utilities and provides for generic entries for description of internal data items.  The defined units of measure have been grouped solely for readability purposes.  Note that because the unit of measure record includes a time base indicator some of the units have an extra time factor that is canceled out by the unit of measure record time base indicator.  For example, ID_CODE 77, Therm per Hr is actually Therm once the time base indicator is properly set.</description>
				</subElement>
				<subElement name="TIME_BASE" type="UINT" startBitInclusive="8" endBitInclusive="10">
					<description>This field describes the measurement method with respect to time.</description>
					<enumerator>
						<enum value="0" text="Bulk Quantity of Commodity (Dial Reading). Quantity of  commodity; integral of commodity usage rate.  Values have the units stated in the ID_CODE x Hour. (Energy units)"/>
						<enum value="1" text="Instantaneous (Sampled).  This is the fastest rate at which a measurement is acquired."/>
						<enum value="2" text="Period based.  This is a time period based upon the period of a fundamental frequency. (Power, RMS)."/>
						<enum value="3" text="Sub-block Average Demand. Sub-block Average Demand values are the most recent averaging demand subinterval values. (Demand)."/>
						<enum value="4" text="Block Average Demand. Block Average Demand values may be either the average over a number of Sub-block Average Demand subintervals or the average over a single interval.  The averaging period is typically greater or equal to the Sub-block Average Demand period. (Demand)."/>
						<enum value="5" text="Net Bulk Quantity of Commodity (Relative Dial Reading). Quantity of  commodity; integral of commodity usage rate over a specified period of time T1 to T2.  T1 and T2 are quite arbitrary and defined by mechanisms and table driven schedules. Values have the units stated in the ID_CODE x Hour, e.g. W x h = Wh (Energy)"/>
						<enum value="6" text="Thermal quantity.  (Demand)"/>
						<enum value="7" text="Event quantity.  (Number of occurrences of an identified item.)"/>
					</enumerator>
				</subElement>
				<subElement name="MULTIPLIER" type="UINT" startBitInclusive="11" endBitInclusive="13">
					<description>The multiplier identifies the scaling value to apply to the reported value after delivery of the tagged item; e.g. if the ID_CODE = 0 and MULTIPLIER = 2 then the UOM represents kW (other flags are assumed to have been set accordingly).</description>
					<enumerator>
						<enum value="0" text="1"/>
						<enum value="1" text="100"/>
						<enum value="2" text="1000"/>
						<enum value="3" text="10e6"/>
						<enum value="4" text="10e9"/>
						<enum value="5" text="10e-2"/>
						<enum value="6" text="10e-3"/>
						<enum value="7" text="10e-6"/>
					</enumerator>
				</subElement>
				<subElement name="Q1_ACCOUNTABILITY" type="BOOL" startBitInclusive="14">
					<description>Indication that tagged quantity lies in Quadrant 1 of the two-dimensional cartesian co-ordinate system; eg. x ³ 0, y ³ 0.</description>
					<enumerator>
						<enum value="false" text="Tagged item is not in quadrant 1."/>
						<enum value="true" text="Tagged item is in quadrant 1."/>
					</enumerator>
				</subElement>
				<subElement name="Q2_ACCOUNTABILITY" type="BOOL" startBitInclusive="15">
					<description>Indication that tagged quantity lies in Quadrant 2 of the two-dimensional cartesian co-ordinate system; eg. x ² 0, y ³ 0.</description>
					<enumerator>
						<enum value="false" text="Tagged item is not in quadrant 2."/>
						<enum value="true" text="Tagged item is in quadrant 2."/>
					</enumerator>
				</subElement>
				<subElement name="Q3_ACCOUNTABILITY" type="BOOL" startBitInclusive="16">
					<description>Indication that tagged quantity lies in Quadrant 3 of the two-dimensional cartesian co-ordinate system; eg. x ² 0, y ² 0.</description>
					<enumerator>
						<enum value="false" text="Tagged item is not in quadrant 3."/>
						<enum value="true" text="Tagged item is in quadrant 3."/>
					</enumerator>
				</subElement>
				<subElement name="Q4_ACCOUNTABILITY" type="BOOL" startBitInclusive="17">
					<description>Indication that tagged quantity lies in Quadrant 4 of the two-dimensional cartesian co-ordinate system; eg. x ³ 0, y ² 0.</description>
					<enumerator>
						<enum value="false" text="Tagged item is not in quadrant 4."/>
						<enum value="true" text="Tagged item is in quadrant 4."/>
					</enumerator>
				</subElement>
				<subElement name="NET_FLOW_ACCOUNTABILITY" type="BOOL" startBitInclusive="18">
					<description>This bit is required to identify the manner in which the quadrants specified are being summed.</description>
					<enumerator>
						<enum value="false" text="Absolute power delivered through selected quadrants, i.e. power is added positively regardless of direction of flow."/>
						<enum value="true" text="Net of delivered - received, where Watts are delivered in quadrants Q1 &amp; Q4, received in quadrants Q2 &amp; Q3; and VARs are delivered in quadrants Q1 &amp; Q2, received in quadrants Q3 &amp; Q4."/>
					</enumerator>
				</subElement>
				<subElement name="SEGMENTATION" type="UINT" startBitInclusive="19" endBitInclusive="21">
					<description>When the ID_CODE field represents the electric utility industry unit of measures this bit indicates phase measurement associations. When the ID_CODE does not represent an electric utility unit of measure then this field represents an as yet to be defined quantity, except for the value 0, which stands for all sources and flows.</description>
					<enumerator>
						<enum value="0" text="Measurement is not a phase related or no phase information is applicable. e.g.  All phases on a polyphase End Device."/>
						<enum value="1" text="Phase A to B. i.e. A-B"/>
						<enum value="2" text="Phase B to C. i.e. B-C"/>
						<enum value="3" text="Phase C to A. i.e. C-A"/>
						<enum value="4" text="Neutral to ground, or no phase information. e.g. Neutral current in a 4Y wire system."/>
						<enum value="5" text="Phase A to Neutral. i.e. A-N"/>
						<enum value="6" text="Phase B to Neutral. i.e. B-N"/>
						<enum value="7" text="Phase C to Neutral. i.e. C-N"/>
					</enumerator>
				</subElement>
				<subElement name="HARMONIC" type="BOOL" startBitInclusive="22">
					<description>This identifies harmonic related quantities.</description>
					<enumerator>
						<enum value="0" text="The identified ID_CODE is the entire signal un-filtered."/>
						<enum value="1" text="The identified ID_CODE is a harmonic component of an associated source."/>
					</enumerator>
				</subElement>
				<subElement name="RESERVED" type="FILL" startBitInclusive="23" endBitInclusive="30"/>
				<subElement name="NFS" type="BOOL" startBitInclusive="31">
					<description>Bit used to indicate that this unit of measure entry does not follow the unit of measure definition in some manner</description>
				</subElement>
			</bitField>
			<packedRecord name="UOM_ENTRY_RCD">
				<array name="UOM_ENTRY" type="UOM_ENTRY_BFLD" dimension="ACT_SOURCES_LIM_TBL.NBR_UOM_ENTRIES">
					<description>Each of the entries in this array is associated to an entry in the  SOURCES_TBL (Table 16).  This array contains one entry for each SOURCES_TBL (Table 16) entry having the UOM_ENTRY_FLAG set. The order of the parameters in this array corresponds to the order of the sources in table SOURCES_TBL (Table 16).</description>
				</array>
			</packedRecord>
		</table>
		<?Table 13?>
		<table name="DEMAND_CONTROL_TBL" number="13" type="DEMAND_CONTROL_RCD" label="Demand control table">
			<description>This table contains information pertaining to the application of rates and global rate controls.</description>
			<packedRecord name="INT_CONTROL_RCD">
				<if condition="ACT_SOURCES_LIM_TBL.SLIDING_DEMAND_FLAG">
					<then>
						<element name="SUB_INT" type="UINT8">
							<description>The number of minutes in the subinterval.</description>
						</element>
						<element name="INT_MULTIPLIER" type="UINT8">
							<description>The multiplier by which the SUB_INT is multiplied.</description>
						</element>
					</then>
				</if>
				<element name="INT_LENGTH" type="UINT16">
					<description>The length of the demand interval in minutes.</description>
				</element>
			</packedRecord>
			<packedRecord name="DEMAND_CONTROL_RCD">
				<if condition="ACT_SOURCES_LIM_TBL.RESET_EXCLUDE_FLAG">
					<then>
						<element name="RESET_EXCLUSION" type="UINT8">
							<description>Number of minutes after demand reset to exclude additional reset action.</description>
						</element>
					</then>
				</if>
				<if condition="ACT_SOURCES_LIM_TBL.PF_EXCLUDE_FLAG">
					<then>
						<element name="P_FAIL_RECOGNTN_TM" type="UINT8">
							<description>Number of seconds after a power failure occurs until a valid power failure is recorded and a specified action is initiated.</description>
						</element>
						<element name="P_FAIL_EXCLUSION" type="UINT8">
							<description>Number of minutes after a valid power failure occurs to inhibit demand calculations.</description>
						</element>
						<element name="COLD_LOAD_PICKUP" type="UINT8">
							<description>Number of minutes after a valid power failure occurs to provide cold load pickup functions.</description>
						</element>
					</then>
				</if>
				<array name="INTERVAL_VALUE" type="INT_CONTROL_RCD" dimension="ACT_SOURCES_LIM_TBL.NBR_DEMAND_CTRL_ENTRIES">
					<description>Each of the entries in this array is associated to an entry in the  SOURCES_TBL (Table 16).  This array contains one entry for each SOURCES_TBL (Table 16) entry having the DEMAND_CTRL_FLAG set. The order of the parameters in this array corresponds to the order of the sources in table SOURCES_TBL (Table 16).</description>
				</array>
			</packedRecord>
		</table>
		<?Table 14?>
		<table name="DATA_CONTROL_TBL" number="14" type="DATA_CONTROL_RCD" label="Data control table">
			<description>This table contains the data source information that serves as data input sources for the following tables.  This table serves as an interface between areas of the end device considered manufacturer specific and the areas of the end device to be standardized.

Each entry in the table is manufacturer defined.  Examples of entries into this table are:  entry contains address of data to be processed; or entry contains data to be processed.</description>
			<packedRecord name="DATA_RCD">
				<element name="SOURCE_ID" type="BINARY" size="ACT_SOURCES_LIM_TBL.DATA_CTRL_LENGTH">
					<description>Each entry in this array is defined by the manufacturer as to length and content.  The length is identical for all entries.</description>
				</element>
			</packedRecord>
			<packedRecord name="DATA_CONTROL_RCD">
				<array name="SOURCES_ID" type="DATA_RCD" dimension="ACT_SOURCES_LIM_TBL.NBR_DATA_CTRL_ENTRIES">
					<description>Each of the entries in this array is associated to an entry in the  SOURCES_TBL (Table 16).  This array contains one entry for each SOURCES_TBL (Table 16) entry having the DATA_CTRL_FLAG set. The order of the parameters in this array corresponds to the order of the sources in table SOURCES_TBL (Table 16).</description>
				</array>
			</packedRecord>
		</table>
		<?Table 15?>
		<table name="CONSTANTS_TBL" number="15" type="CONSTANT_SELECTION_RCD" label="Constants table">
			<description>This table contains the record structures supporting constants for application to the sources.  This table has been designed for easy inclusion of new constants structures.</description>
			<packedRecord name="GAS_PRESS_RCD">
				<element name="GAS_PRESS_ZERO" type="NI_FMAT2">
					<description>Flow pressure calibration zero offset.</description>
				</element>
				<element name="GAS_PRESS_FULLSCALE" type="NI_FMAT2">
					<description>Flow pressure calibration full scale.</description>
				</element>
				<element name="BASE_PRESSURE" type="NI_FMAT2">
					<description>Pressure for base condition this value is absolute base pressure.</description>
				</element>
			</packedRecord>
			<packedRecord name="GAS_TEMP_RCD">
				<element name="GAS_TEMP_ZERO" type="NI_FMAT2">
					<description>Flow temperature calibration zero offset.</description>
				</element>
				<element name="GAS_TEMP_FULLSCALE" type="NI_FMAT2">
					<description>Flow temperature calibration full scale.</description>
				</element>
				<element name="BASE_TEMP" type="NI_FMAT2">
					<description>Temperature for base condition.</description>
				</element>
			</packedRecord>
			<packedRecord name="GAS_DP_RCD">
				<element name="GAS_DP_ZERO" type="NI_FMAT2">
					<description>Flow Differential pressure calibration zero offset. (used for AGA 3 only)</description>
				</element>
				<element name="GAS_DP_FULLSCALE" type="NI_FMAT2">
					<description>Flow Differential pressure calibration full scale.</description>
				</element>
			</packedRecord>
			<packedRecord name="PIPE_ORIF_DIA_RCD">
				<element name="PIPE_DIA" type="NI_FMAT2">
					<description>The pipe diameter of an orifice meter. (used for AGA 3 only)</description>
				</element>
				<element name="ORIF_DIA" type="NI_FMAT2">
					<description>The orifice diameter of an orifice meter. (used for AGA 3 only)</description>
				</element>
			</packedRecord>
			<packedRecord name="GAS_AGA3_CORR_RCD">
				<element name="AUX_CORR_FCTR" type="NI_FMAT2">
					<description>Factor to provide other possible correction to the gas corrected volume.</description>
				</element>
				<element name="GAS_AGA3_CORR_FCTR" type="NI_FMAT2">
					<description>Factor is used to correct the uncorrected gas volume using AGA3. (used for AGA 3 only)</description>
				</element>
				<element name="PIPE_ORIF_DIA" type="PIPE_ORIF_DIA_RCD">
					<description>Record structure from above.</description>
				</element>
				<element name="TAP_UP_DN" type="UINT8">
					<description>Tap configuration. (used for AGA 3 only)</description>
					<enumerator>
						<enum value="0" text="No tap or flange."/>
						<enum value="1" text="Up stream flange."/>
						<enum value="2" text="Down stream flange."/>
						<enum value="3" text="Upstream pipe."/>
						<enum value="4" text="Down stream pipe."/>
					</enumerator>
				</element>
				<element name="GAS_PRESS_PARM" type="GAS_PRESS_RCD"/>
				<element name="GAS_TEMP_PARM" type="GAS_TEMP_RCD"/>
			</packedRecord>
			<packedRecord name="GAS_AGA7_CORR_RCD">
				<element name="GAS_PRESS_PARM" type="GAS_PRESS_RCD"/>
				<element name="GAS_TEMP_PARM" type="GAS_TEMP_RCD"/>
				<element name="AUX_CORR_FCTR" type="NI_FMAT2">
					<description>Factor to provide other possible correction to the gas corrected volume.</description>
				</element>
				<element name="GAS_AGA7_CORR" type="NI_FMAT2">
					<description>Factor is used to correct the uncorrected gas volume using AGA3. (used for AGA 7 only)</description>
				</element>
			</packedRecord>
			<packedRecord name="GAS_ENERGY_RCD">
				<element name="GAS_ENERGY_ZERO" type="NI_FMAT2">
					<description>Energy calibration zero offset.</description>
				</element>
				<element name="GAS_ENERGY_FULL" type="NI_FMAT2">
					<description>Energy calibrations full scale.</description>
				</element>
			</packedRecord>
			<packedRecord name="GAS_DP_SHUTOFF_RCD">
				<element name="GAS_SHUTOFF" type="NI_FMAT2">
					<description>This parameter is used to disable the AGA3 flow calculations when differential pressure is below the value indicated by this parameter. (used for AGA 3 only)</description>
				</element>
			</packedRecord>
			<packedRecord name="GAS_CONSTANTS_AGA3_RCD">
				<element name="GAS_DP_PARM" type="GAS_DP_RCD"/>
				<element name="GAS_DP_SHUTOFF" type="GAS_DP_SHUTOFF_RCD"/>
				<element name="GAS_PRESS_PARM" type="GAS_PRESS_RCD"/>
				<element name="GAS_AGA3_CORR" type="GAS_AGA3_CORR_RCD"/>
				<element name="GAS_ENERGY" type="GAS_ENERGY_RCD"/>
			</packedRecord>
			<packedRecord name="GAS_CONSTANTS_AGA7_RCD">
				<element name="GAS_AGA7_CORR" type="GAS_AGA7_CORR_RCD"/>
				<element name="GAS_ENERGY" type="GAS_ENERGY_RCD"/>
			</packedRecord>
			<bitField name="SET_CTRL_BFLD" type="UINT8">
				<subElement name="SET_APPLIED_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="The RATIO_F1 and RATIO P1 represented by this flag have not been applied to the associated source."/>
						<enum value="true" text="The RATIO_P1 and RATIO F1 represented by this flag have been applied to the associated source."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="1" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="SET_APPLIED_RCD">
				<element name="SET_FLAGS" type="SET_CTRL_BFLD"/>
				<element name="RATIO_F1" type="NI_FMAT1">
					<description>Ratio of intermediary device to allow interface of commodity flow to utility meters. For example, electric utilities use a current transformer to reduce the current at the meter. Transforming 2000 amps to 5 amps is a ratio of 400.</description>
				</element>
				<element name="RATIO_P1" type="NI_FMAT1">
					<description>Ratio of intermediary device to allow interface of commodity pressure to utility meters. For example, electric utilities use a voltage transformer to reduce the voltage at the meter. Transforming 7200 volts to 120 volts is a ratio of 60.</description>
				</element>
			</packedRecord>
			<packedRecord name="ELECTRIC_CONSTANTS_RCD">
				<element name="MULTIPLIER" type="NI_FMAT1">
					<description>Storage for a value used in multiplication/division adjustment.</description>
				</element>
				<element name="OFFSET" type="NI_FMAT1">
					<description>Storage for a value used in addition/subtraction adjustment.</description>
				</element>
				<if condition="ACT_SOURCES_LIM_TBL.SET1_PRESENT_FLAG">
					<then>
						<element name="SET1_CONSTANTS" type="SET_APPLIED_RCD">
							<description>Storage variable for the first set of constants and associated flags.</description>
						</element>
					</then>
				</if>
				<if condition="ACT_SOURCES_LIM_TBL.SET2_PRESENT_FLAG">
					<then>
						<element name="SET2_CONSTANTS" type="SET_APPLIED_RCD">
							<description>Storage variable for the second set of constants and associated flags.</description>
						</element>
					</then>
				</if>
			</packedRecord>
			<packedRecord name="CONSTANTS_RCD">
				<description>Structure that selects the constant record structure to use.</description>
				<switch selection="ACT_SOURCES_LIM_TBL.CONSTANTS_SELECTOR">
					<case value="0">
						<element name="GAS_CONSTANTS_AGA3" type="GAS_CONSTANTS_AGA3_RCD"/>
					</case>
					<case value="1">
						<element name="GAS_CONSTANTS_AGA7" type="GAS_CONSTANTS_AGA7_RCD"/>
					</case>
					<case value="2">
						<element name="ELECTRIC_CONSTANTS" type="ELECTRIC_CONSTANTS_RCD"/>
					</case>
				</switch>
			</packedRecord>
			<packedRecord name="CONSTANT_SELECTION_RCD">
				<description>Each of the entries in this array is associated to an entry in the  SOURCES_TBL (Table 16).  This array contains one entry for each SOURCES_TBL (Table 16) entry having the CONSTANTS_FLAG set. The order of the parameters in this array corresponds to the order of the sources in table SOURCES_TBL (Table 16).</description>
				<array name="SELECTION" type="CONSTANTS_RCD" dimension="ACT_SOURCES_LIM_TBL.NBR_CONSTANTS_ENTRIES"/>
			</packedRecord>
		</table>
		<?Table 16?>
		<table name="SOURCES_TBL" number="16" type="SOURCE_LINK_RCD">
			<description>This table contains the information regarding the sources selected by the other tables.</description>
		</table>
		<bitField name="SOURCE_LINK_BFLD" type="UINT8">
			<subElement name="UOM_ENTRY_FLAG" type="BOOL" startBitInclusive="0">
				<enumerator>
					<enum value="false" text="A UOM_ENTRY_TBL (Table 12) entry does not exist for this source."/>
					<enum value="true" text="A UOM_ENTRY_TBL (Table 12) entry is associated with this source. It is recommended that the UOM entries reflect the source as it is referenced or transported by other tables."/>
				</enumerator>
			</subElement>
			<subElement name="DEMAND_CTRL_FLAG" type="BOOL" startBitInclusive="1">
				<enumerator>
					<enum value="false" text="A DEMAND_CONTROL_TBL (Table 13) entry does not exist for this source."/>
					<enum value="true" text="A DEMAND_CONTROL_TBL (Table 13) entry is associated with this source."/>
				</enumerator>
			</subElement>
			<subElement name="DATA_CTRL_FLAG" type="BOOL" startBitInclusive="2">
				<enumerator>
					<enum value="false" text="A DATA_CONTROL_TBL (Table 14) entry does not exist for this source."/>
					<enum value="true" text=" A DATA_CONTROL_TBL (Table 14) entry is associated with this source."/>
				</enumerator>
			</subElement>
			<subElement name="CONSTANTS_FLAG" type="BOOL" startBitInclusive="3">
				<enumerator>
					<enum value="false" text="A CONSTANTS_TBL (Table 15) entry does not exist for this source."/>
					<enum value="true" text="A CONSTANTS_TBL (Table 15) entry is associated with this source."/>
				</enumerator>
			</subElement>
			<subElement name="PULSE_ENGR_FLAG" type="BOOL" startBitInclusive="4">
				<enumerator>
					<enum value="false" text="The source is in pulse units."/>
					<enum value="true" text="The source is in engineering units."/>
				</enumerator>
			</subElement>
			<subElement name="CONSTANT_TO_BE_APPLIED" type="BOOL" startBitInclusive="5">
				<enumerator>
					<enum value="false" text="The entry in the CONSTANTS_TBL (Table 15) if present, has been applied to the source. Examine CONSTANTS_TBL (Table 15) SET_APPLIED_FLAG to determine if constants have been applied."/>
					<enum value="true" text=" The entry in the CONSTANTS_TBL (Table 15) if present, has not been applied to the source. Examine CONSTANTS_TBL (Table 15) SET_APPLIED_FLAG to determine if constants have been applied."/>
				</enumerator>
			</subElement>
			<subElement name="FILLER" type="FILL" startBitInclusive="6" endBitInclusive="7"/>
		</bitField>
		<packedRecord name="SOURCE_LINK_RCD">
			<array name="SOURCES_LINK" type="SOURCE_LINK_BFLD" dimension="ACT_SOURCES_LIM_TBL.NBR_SOURCES"/>
		</packedRecord>
	</decade>
	<decade name="REGISTER_DEC" number="2" label="Register tables">
		<description>This decade contains tables associated with registers for measured values. These registers can be accumulating (energy), demand, TOU, instantaneous or other(s) as appropriate.</description>
		<?Table 20?>
		<table name="DIM_REGS_TBL" number="20" type="REGS_RCD" label="Dimension register table">
			<description>This table specifies the maximum dimensional values for measured values registers. The constants defined are used for setting the absolute maximum limits of arrays used in the transport of these values.</description>
			<bitField name="REG_FUNC1_BFLD" type="UINT8">
				<subElement name="SEASON_INFO_FIELD_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not capable of reporting the representative season in tables in this decade."/>
						<enum value="true" text="End device is capable of reporting the representative season in tables in this decade."/>
					</enumerator>
				</subElement>
				<subElement name="DATE_TIME_FIELD_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End device is not capable of providing the date and time in tables in this decade."/>
						<enum value="true" text="End device is capable of providing the date and time in tables in this decade."/>
					</enumerator>
				</subElement>
				<subElement name="DEMAND_RESET_CTR_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="End device is not capable of counting the number of activations of demand resets."/>
						<enum value="true" text="End device is capable of counting the number of activations of demand resets."/>
					</enumerator>
				</subElement>
				<subElement name="DEMAND_RESET_LOCK_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Demand reset lockout is not supported by the end device."/>
						<enum value="true" text="Demand reset lockout is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="CUM_DEMAND_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Cumulative demand is not supported by the end device."/>
						<enum value="true" text="Cumulative demand is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="CONT_CUM_DEMAND_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="Continuous cumulative demand is not supported by the end device."/>
						<enum value="true" text="Continuous cumulative demand is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="TIME_REMAINING_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="End device does not have the ability to report time remaining in demand interval."/>
						<enum value="true" text="End device does have the ability to report time remaining in demand interval."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<bitField name="REG_FUNC2_BFLD" type="UINT8">
				<subElement name="SELF_READ_INHIBIT_OVERFLOW_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not capable of inhibiting self reads once an overflow occurs."/>
						<enum value="true" text="End device is capable of inhibiting self reads once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="SELF_READ_SEQ_NBR_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End device is not capable of providing a self read sequential number for each entry."/>
						<enum value="true" text="End device is capable of providing a self read sequential number."/>
					</enumerator>
				</subElement>
				<subElement name="DAILY_SELF_READ_FLAG" type="BOOL" startBitInclusive="2">
					<description>Indicates whether daily self reads are supported.  These readings are taken at 00:00:00 if DATE_TIME_FIELD_FLAG is set to false.</description>
					<enumerator>
						<enum value="false" text="Daily reading is not supported."/>
						<enum value="true" text="Daily reading is supported."/>
					</enumerator>
				</subElement>
				<subElement name="WEEKLY_SELF_READ_FLAG" type="BOOL" startBitInclusive="3">
					<description>Indicates whether weekly self reads are supported. These readings are taken at 00:00:00 on Sunday if DATE_TIME_FIELD_FLAG is set to false.</description>
					<enumerator>
						<enum value="false" text="Weekly reading is not supported."/>
						<enum value="true" text="Weekly reading is supported."/>
					</enumerator>
				</subElement>
				<subElement name="SELF_READ_DEMAND_RESET" type="UINT" startBitInclusive="4" endBitInclusive="5">
					<description>Specifies whether the device is capable of performing a self read whenever a demand reset (any method) is performed and whether the device is capable of performing a demand reset whenever a self read (any method) is performed.</description>
					<enumerator>
						<enum value="0" text="End device is not capable of performing either a Self Read on every Demand Reset or a Demand Reset on every Self Read."/>
						<enum value="1" text="End device is capable of performing only a self read on every Demand Reset."/>
						<enum value="2" text="End device is capable of performing only a Demand Reset on every Self Read"/>
						<enum value="3" text="End device is capable of performing a Self Read on every Demand Reset and a Demand Reset on every Self Read"/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="6" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="REGS_RCD">
				<element name="REG_FUNC1_FLAGS" type="REG_FUNC1_BFLD"/>
				<element name="REG_FUNC2_FLAGS" type="REG_FUNC2_BFLD"/>
				<element name="NBR_SELF_READS" type="UINT8">
					<description>Maximum number of Self Reads supported by end device.</description>
				</element>
				<element name="NBR_SUMMATIONS" type="UINT8">
					<description>Maximum number of summation registers in each data block.</description>
				</element>
				<element name="NBR_DEMANDS" type="UINT8">
					<description>Maximum number of demand registers in each data block.</description>
				</element>
				<element name="NBR_COIN_VALUES" type="UINT8">
					<description>Maximum number of coincident values saved concurrently in each data block.</description>
				</element>
				<element name="NBR_OCCUR" type="UINT8">
					<description>Maximum number of occurrences stored for a particular selection.</description>
				</element>
				<element name="NBR_TIERS" type="UINT8">
					<description>Maximum number of tiers that data can be stored in.</description>
				</element>
				<element name="NBR_PRESENT_DEMANDS" type="UINT8">
					<description>Maximum number of present demand values that can be stored.</description>
				</element>
				<element name="NBR_PRESENT_VALUES" type="UINT8">
					<description>Maximum number of present values that can be stored.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 21?>
		<table name="ACT_REGS_TBL" number="21" type="REGS_RCD" label="Actual register table">
			<description>This table contains actual function values for registers.</description>
			<bitField name="REG_FUNC1_BFLD" type="UINT8" redefine="DIM_REGS_TBL.REG_FUNC1_BFLD">
				<subElement name="SEASON_INFO_FIELD_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not reporting the representative season in tables in this decade."/>
						<enum value="true" text="End device is reporting the representative season in tables in this decade"/>
					</enumerator>
				</subElement>
				<subElement name="DATE_TIME_FIELD_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End device is not providing the date and time in tables in this decade."/>
						<enum value="true" text="End device is providing the date and time in tables in this decade."/>
					</enumerator>
				</subElement>
				<subElement name="DEMAND_RESET_CTR_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="End device is not counting the number of activations of demand resets."/>
						<enum value="true" text="End device is counting the number of activations of demand resets."/>
					</enumerator>
				</subElement>
				<subElement name="DEMAND_RESET_LOCK_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Demand reset lockout is not enabled."/>
						<enum value="true" text="Demand reset lockout is enabled."/>
					</enumerator>
				</subElement>
				<subElement name="CUM_DEMAND_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Cumulative demand is not in use by the end device."/>
						<enum value="true" text="Cumulative demand is in use by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="CONT_CUM_DEMAND_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="Continuous cumulative demand is not in use by the end device."/>
						<enum value="true" text="Continuous cumulative demand is in use by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="TIME_REMAINING_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="End device does not report time remaining in demand interval."/>
						<enum value="true" text="End device does report time remaining in demand interval."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<bitField name="REG_FUNC2_BFLD" type="UINT8" redefine="DIM_REGS_TBL.REG_FUNC2_BFLD">
				<subElement name="SELF_READ_INHIBIT_OVERFLOW_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not inhibiting self reads once an overflow occurs."/>
						<enum value="true" text="End device is inhibiting self reads once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="SELF_READ_SEQ_NBR_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End device is not providing a self read sequential number for each entry."/>
						<enum value="true" text="End device is providing a self read sequential number."/>
					</enumerator>
				</subElement>
				<subElement name="DAILY_SELF_READ_FLAG" type="BOOL" startBitInclusive="2">
					<description>Indicates whether daily self reads are in use.  These readings are taken at 00:00:00 if DATE_TIME_FIELD_FLAG is set to false.</description>
					<enumerator>
						<enum value="false" text="Daily reading is not in use."/>
						<enum value="true" text="Daily reading is in use."/>
					</enumerator>
				</subElement>
				<subElement name="WEEKLY_SELF_READ_FLAG" type="BOOL" startBitInclusive="3">
					<description>Indicates whether weekly self reads are in use.  These readings are taken at 00:00:00 on Sunday if DATE_TIME_FIELD_FLAG is set to false.</description>
					<enumerator>
						<enum value="false" text="Weekly reading is not in use."/>
						<enum value="true" text="Weekly reading is in use."/>
					</enumerator>
				</subElement>
				<subElement name="SELF_READ_DEMAND_RESET" type="UINT" startBitInclusive="4" endBitInclusive="5">
					<description>Specifies whether the device will perform a self read whenever a demand reset (any method) is performed and whether the device will perform a demand reset whenever a self read (any method) is performed.</description>
					<enumerator>
						<enum value="0" text="End device shall not perform either a Self Read on every Demand Reset or a Demand Reset on every Self Read"/>
						<enum value="1" text="End device shall perform a Self read on every Demand Reset"/>
						<enum value="2" text="End device shall perform Demand Reset on every Self Read"/>
						<enum value="3" text="End device shall perform a Self Read on every Demand Reset and a Demand Reset on every Self Read"/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="6" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="REGS_RCD" redefine="DIM_REGS_TBL.REGS_RCD">
				<element name="REG_FUNC1_FLAGS" type="REG_FUNC1_BFLD"/>
				<element name="REG_FUNC2_FLAGS" type="REG_FUNC2_BFLD"/>
				<element name="NBR_SELF_READS" type="UINT8">
					<description>Number of Self Reads in use.</description>
				</element>
				<element name="NBR_SUMMATIONS" type="UINT8">
					<description>Number of summation registers in each data block.</description>
				</element>
				<element name="NBR_DEMANDS" type="UINT8">
					<description>Number of demand registers in each data block.</description>
				</element>
				<element name="NBR_COIN_VALUES" type="UINT8">
					<description>Number of coincident values saved in each data block.</description>
				</element>
				<element name="NBR_OCCUR" type="UINT8">
					<description>Number of occurrences stored for a particular selection.</description>
				</element>
				<element name="NBR_TIERS" type="UINT8">
					<description>Number of tiers in use.</description>
				</element>
				<element name="NBR_PRESENT_DEMANDS" type="UINT8">
					<description>Number of present demand values that are stored.</description>
				</element>
				<element name="NBR_PRESENT_VALUES" type="UINT8">
					<description>Number of present values that are stored.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 22?>
		<table name="DATA_SELECTION_TBL" number="22" type="DATA_SELECTION_RCD" label="Data selection table">
			<description>This table contains grouped lists of source indices.  These indices point towards array elements in SOURCES_TBL (Table 16) when this table is present.  These lists are used to build the table that contains the data to be captured.  The groupings are described below.</description>
			<packedRecord name="DATA_SELECTION_RCD">
				<array name="SUMMATION_SELECT" type="UINT8" dimension="ACT_REGS_TBL.NBR_SUMMATIONS">
					<description>A list of source indices that groups together bulk/energy/summation sources.</description>
				</array>
				<array name="DEMAND_SELECT" type="UINT8" dimension="ACT_REGS_TBL.NBR_DEMANDS">
					<description>A list of source indices that groups together demand sources.</description>
				</array>
				<set name="MIN_OR_MAX_FLAGS" dimension="ACT_REGS_TBL.NBR_DEMANDS">
					<description>A set of bit flags, each corresponding to an entry in DEMAND_SELECT.</description>
					<enumerator>
						<enum value="false" text="Indicates that the associated DEMAND_SELECT entry is a minimum.  "/>
						<enum value="true" text="Indicates that the associated DEMAND_SELECT entry is a maximum."/>
					</enumerator>
				</set>
				<array name="COINCIDENT_SELECT" type="UINT8" dimension="ACT_REGS_TBL.NBR_COIN_VALUES">
					<description>A list of source indices that groups together demand sources with time period processing equal to that of the DEMAND_SELECT sources.</description>
				</array>
				<array name="COIN_DEMAND_ASSOC" type="UINT8" dimension="ACT_REGS_TBL.NBR_COIN_VALUES">
					<description>Each entry corresponds to an entry in COINCIDENT_SELECT and provides an index into DEMAND_SELECT identifying the demand for which this coincident value is taken.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 23?>
		<table name="CURRENT_REG_DATA_TBL" number="23" type="REGISTER_DATA_RCD" label="Current register data table">
			<description>This table contains the current register data.</description>
			<packedRecord name="COINCIDENTS_RCD">
				<array name="COINCIDENT_VALUES" type="NI_FMAT2" dimension="ACT_REGS_TBL.NBR_OCCUR">
					<description>Coincident values selected by DATA_SELECTION_TBL.COINCIDENT_SELECT (Table 22)</description>
				</array>
			</packedRecord>
			<packedRecord name="DEMANDS_RCD">
				<if condition="ACT_REGS_TBL.DATE_TIME_FIELD_FLAG">
					<then>
						<array name="EVENT_TIME" type="STIME_DATE" dimension="ACT_REGS_TBL.NBR_OCCUR">
							<description>Array that contains the date and time of each minimum or maximum recorded.  Entry in position 0 corresponds to the entry in position 0 of the DEMAND array.  The presence of this field is dependent on  capability flag in the ACT_REG_TBL.DATE_TIME_FIELD_FLAG (Table 21).</description>
						</array>
					</then>
				</if>
				<if condition="ACT_REGS_TBL.CUM_DEMAND_FLAG">
					<then>
						<element name="CUM_DEMAND" type="NI_FMAT1">
							<description>The value of the cumulative demand register.</description>
						</element>
					</then>
				</if>
				<if condition="ACT_REGS_TBL.CONT_CUM_DEMAND_FLAG">
					<then>
						<element name="CONT_CUM_DEMAND" type="NI_FMAT1">
							<description>The value of the continuous cumulative demand register.</description>
						</element>
					</then>
				</if>
				<array name="DEMAND" type="NI_FMAT2" dimension="ACT_REGS_TBL.NBR_OCCUR">
					<description>Array that contains the minimums or maximums values.  The value in position zero is the smallest minimum or largest maximum.  In position 1 is the second smallest minimum or the second largest maximum and so on until the end of the array is reached.</description>
				</array>
			</packedRecord>
			<packedRecord name="DATA_BLK_RCD">
				<array name="SUMMATIONS" type="NI_FMAT1" dimension="ACT_REGS_TBL.NBR_SUMMATIONS">
					<description>Array that contains the values of the selected summation measurements.</description>
				</array>
				<array name="DEMANDS" type="DEMANDS_RCD" dimension="ACT_REGS_TBL.NBR_DEMANDS">
					<description>Array that contains the values of the selected min/max demand measurements.</description>
				</array>
				<array name="COINCIDENTS" type="COINCIDENTS_RCD" dimension="ACT_REGS_TBL.NBR_COIN_VALUES">
					<description>Array that contains the values of the selected measurement coincident to the selected minimum/maximum demands.</description>
				</array>
			</packedRecord>
			<packedRecord name="REGISTER_DATA_RCD">
				<if condition="ACT_REGS_TBL.DEMAND_RESET_CTR_FLAG">
					<then>
						<element name="NBR_DEMAND_RESETS" type="UINT8">
							<description>Indicates the number of demand resets executed by the end device.</description>
						</element>
					</then>
				</if>
				<element name="TOT_DATA_BLOCK" type="DATA_BLK_RCD">
					<description>Data block independent of Time of Use structures or other means of selection.</description>
				</element>
				<array name="TIER_DATA_BLOCK" type="DATA_BLK_RCD" dimension="ACT_REGS_TBL.NBR_TIERS">
					<description>Data block dependent on Time of Use structures or other means of selection.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 24?>
		<table name="PREVIOUS_SEASON_DATA_TBL" number="24" type="PREVIOUS_SEASON_DATA_RCD" label="Previous season data table">
			<description>This table contains a snapshot of the current register data taken at the last season change.</description>
			<packedRecord name="REGISTER_INFO_RCD">
				<if condition="ACT_REGS_TBL.DATE_TIME_FIELD_FLAG">
					<then>
						<element name="END_DATE_TIME" type="STIME_DATE">
							<description>The end device time when the snapshot of the current register data occurred. </description>
						</element>
					</then>
				</if>
				<if condition="ACT_REGS_TBL.SEASON_INFO_FIELD_FLAG">
					<then>
						<element name="SEASON" type="UINT8">
							<description>Current season value when the snapshot of the current register data occurred.</description>
						</element>
					</then>
				</if>
			</packedRecord>
			<packedRecord name="PREVIOUS_SEASON_DATA_RCD">
				<element name="REGISTER_INFO" type="REGISTER_INFO_RCD"/>
				<element name="PREV_SEASON_REG_DATA" type="CURRENT_REG_DATA_TBL.REGISTER_DATA_RCD">
					<description>Contains a snapshot of the CURRENT_DATA_REG_TBL (Table 23).  stored at the time of the last season change.  See definition in CURRENT_DATA_REG_TBL (Table 23).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 25?>
		<table name="PREVIOUS_DEMAND_RESET_DATA_TBL" number="25" type="PREV_DEMAND_RESET_DATA_RCD" label="Previous demand reset data table">
			<description>This table contains a snapshot of the current register data taken at the time of the last demand reset.</description>
			<packedRecord name="PREV_DEMAND_RESET_DATA_RCD">
				<element name="REGISTER_INFO" type="PREVIOUS_SEASON_DATA_TBL.REGISTER_INFO_RCD">
					<description>Contains snapshot of register information included with previous demand reset register data.</description>
				</element>
				<element name="PREV_DEMAND_RESET_DATA" type="CURRENT_REG_DATA_TBL.REGISTER_DATA_RCD">
					<description>Contains a snapshot of the CURRENT_DATA_REG_TBL (Table 23) stored at the time of the last demand reset.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 26?>
		<table name="SELF_READ_DATA_TBL" number="26" type="SELF_READ_LIST_RCD" label="Self read data table">
			<description>This table contains self read data.  Snapshots of current register data shall be taken from time to time by some sort of self read function. </description>
			<packedRecord name="SELF_READ_DATA_RCD">
				<if condition="ACT_REGS_TBL.SELF_READ_SEQ_NBR_FLAG">
					<then>
						<element name="SELF_READ_SEQ_NBR" type="UINT16">
							<description>Sequence number assigned to the self read measurement.  This number is initialized to 0 when the end device is configured.  This number is incremented with each self read occurrence.</description>
						</element>
					</then>
				</if>
				<element name="REGISTER_INFO" type="PREVIOUS_SEASON_DATA_TBL.REGISTER_INFO_RCD">
					<description>Contains a snapshot of register data taken at the time of the self read.</description>
				</element>
				<element name="SELF_READ_REGISTER_DATA" type="CURRENT_REG_DATA_TBL.REGISTER_DATA_RCD">
					<description>A snapshot of current register data taken when requested by any means offered by the end device.</description>
				</element>
			</packedRecord>
			<bitField name="LIST_STATUS_BFLD" type="UINT8">
				<subElement name="ORDER_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="Self reads are transported in ascending order (N is older than N+1)."/>
						<enum value="true" text="Self reads are transported in descending order (N is newer than N+1)."/>
					</enumerator>
				</subElement>
				<subElement name="OVERFLOW_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Overflow has not occurred."/>
						<enum value="true" text="An attempt was made to enter a self read such that the number of unread self reads would have exceeded the actual number of possible entries in the log."/>
					</enumerator>
				</subElement>
				<subElement name="LIST_TYPE_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="FIFO (First In First Out) as placed in self read list."/>
						<enum value="true" text="Circular list as placed in self read list."/>
					</enumerator>
				</subElement>
				<subElement name="INHIBIT_OVERFLOW_FLAG" type="BOOL" startBitInclusive="3">
					<description>The same value as ACT_REG_TBL.SELF_READ_INHIBIT_OVERFLOW (Table 21).</description>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="4" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="SELF_READ_LIST_RCD">
				<element name="LIST_STATUS" type="LIST_STATUS_BFLD"/>
				<element name="NBR_VALID_ENTRIES" type="UINT8">
					<description>Number of valid self reads stored in the self reads array.  The range is zero (meaning no self reads in the array) to the actual dimension of the number of self reads.</description>
				</element>
				<element name="LAST_ENTRY_ELEMENT" type="UINT8">
					<description>The array element number of the newest valid entry in the self read array.  This field is valid only if NBR_VALID_ENTRIES is greater than zero.</description>
				</element>
				<element name="LAST_ENTRY_SEQ_NBR" type="UINT8">
					<description>The sequence number of the last element in the self read array.</description>
				</element>
				<element name="NBR_UNREAD_ENTRIES" type="UINT8">
					<description>The number of self read entries that have not been read.  This number is only updated by a procedure.</description>
				</element>
				<array name="SELF_READS_ENTRIES" type="SELF_READ_DATA_RCD" dimension="ACT_REGS_TBL.NBR_SELF_READS">
					<description>An array of snapshots of register data taken at a prescribed instance in time.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 27?>
		<table name="PRESENT_REGISTER_SELECT_TBL" number="27" type="PRESENT_REGISTER_SELECT_RCD" label="Present register selection table">
			<description>This table provides selections to sources of present demands and present values.  These indices point towards array elements in SOURCES_TBL (Table 16) when Table 16 is present.  The values selected are available in PRESENT_REGISTER_DATA_TBL (Table 28).</description>
			<packedRecord name="PRESENT_REGISTER_SELECT_RCD">
				<array name="PRESENT_DEMAND_SELECT" type="UINT8" dimension="ACT_REGS_TBL.NBR_PRESENT_DEMANDS">
					<description>Array that contains data source selectors used to measure present demand.  The present demand values shall be reported at the same index position in PRESENT_REGISTER_DATA_TBL. PRESENT_DEMAND (Table 28).</description>
				</array>
				<array name="PRESENT_VALUE_SELECT" type="UINT8" dimension="ACT_REGS_TBL.NBR_PRESENT_VALUES">
					<description>Array that contains data source selectors used to measure present value.  The present values shall be reported at the same index position in PRESENT_REGISTER_DATA_TBL.PRESENT_VALUES (Table 28).</description>
				</array>
			</packedRecord>
		</table>
		<?Table 28?>
		<table name="PRESENT_REGISTER_DATA_TBL" number="28" type="PRESENT_REGISTER_DATA_RCD" label="Present register data table">
			<description>This table contains the present demand and values as selected by the PRESENT_REGISTER_SELECT_TBL (Table 27).  These indices point towards array elements in SOURCES_TBL (Table 16) when Table 16 is present.</description>
			<packedRecord name="PRESENT_DEMAND_RCD">
				<if condition="ACT_REGS_TBL.TIME_REMAINING_FLAG ">
					<then>
						<element name="TIME_REMAINING" type="TIME">
							<description>Time remaining to the end of the present demand interval</description>
						</element>
					</then>
				</if>
				<element name="DEMAND_VALUE" type="NI_FMAT2">
					<description>The present demand value.</description>
				</element>
			</packedRecord>
			<packedRecord name="PRESENT_REGISTER_DATA_RCD">
				<array name="PRESENT_DEMAND" type="PRESENT_DEMAND_RCD" dimension="ACT_REGS_TBL.NBR_PRESENT_DEMANDS">
					<description>Array that contains present demand selected by PRESENT_REGISTER_SELECT_TBL.PRESENT_DEMAND_SELECT (Table 27).</description>
				</array>
				<array name="PRESENT_VALUE" type="NI_FMAT1" dimension="ACT_REGS_TBL.NBR_PRESENT_VALUES">
					<description>Array that contains present demand selected by PRESENT_REGISTER_SELECT_TBL.PRESENT_DEMAND_SELECT (Table 27).</description>
				</array>
			</packedRecord>
		</table>
	</decade>
	<decade name="LOCAL_DISPLAY_DEC" number="3" label="Local display tables">
		<description>This decade contains tables associated with the transport of information required to establish a local display.</description>
		<?Table 30?>
		<table name="DIM_DISP_TBL" number="30" type="DISP_RCD" label="Dimension display table">
			<description>This table specifies the maximum dimensional values for local display operation in an end device. The constants defined are used for setting the absolute maximum limits of display array sizes.</description>
			<bitField name="DISP_FLAG_BFLD" type="UINT8">
				<subElement name="ON_TIME_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="Programmable on time is not supported by the end device."/>
						<enum value="true" text="Programmable on time is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="OFF_TIME_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Programmable off time is not supported by the end device."/>
						<enum value="true" text="Programmable off time is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="HOLD_TIME_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Programmable hold time is not supported by the end device."/>
						<enum value="true" text="Programmable hold time is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="3" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="DISP_RCD">
				<element name="DISPLAY_CTRL" type="DISP_FLAG_BFLD"/>
				<element name="NBR_DISP_SOURCES" type="UINT16">
					<description>Maximum number of display sources. A number representing the maximum number of manufacturer defined display sources, described in DISP_SOURCE_TBL (Table 32), and which may be used for the creation of display lists.</description>
				</element>
				<element name="WIDTH_DISP_SOURCES" type="UINT8">
					<description>Maximum number of octets a manufacturer may use to define the row width of all entries in DISP_SOURCE_TBL (Table 32).</description>
				</element>
				<element name="NBR_PRI_DISP_LIST_ITEMS" type="UINT16">
					<description>Maximum number of primary display items per display list defined in PRI_DISP_LIST_TBL (Table 33). The maximum number of items in all primary display lists shall not exceed this value.</description>
				</element>
				<element name="NBR_PRI_DISP_LISTS" type="UINT8">
					<description>Maximum number of primary display lists defined in PRI_DISP_LIST_TBL (Table 33).</description>
				</element>
				<element name="NBR_SEC_DISP_LIST_ITEMS" type="UINT16">
					<description>Maximum number of secondary display items per display list defined in SEC_DISP_LIST_TBL (Table 34). The maximum number of items in all secondary display lists shall not exceed this value.</description>
				</element>
				<element name="NBR_SEC_DISP_LISTS" type="UINT8">
					<description>Maximum number of secondary display lists defined in SEC_DISP_LIST_TBL (Table 34).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 31?>
		<table name="ACT_DISP_TBL" number="31" type="DISP_RCD" label="Actual display table">
			<description>This table specifies the actual dimensional values for local display operation in an end device. The dimensions defined are used for setting the actual limits of display array sizes.</description>
			<bitField name="DISP_FLAG_BFLD" type="UINT8" redefine="DIM_DISP_TBL.DISP_FLAG_BFLD">
				<subElement name="ON_TIME_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="On time is not programmable in the end device."/>
						<enum value="true" text="On time is programmable in the end device."/>
					</enumerator>
				</subElement>
				<subElement name="OFF_TIME_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Off time is not programmable in the end device."/>
						<enum value="true" text="Off time is programmable in the end device."/>
					</enumerator>
				</subElement>
				<subElement name="HOLD_TIME_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Hold time is not programmable in the end device."/>
						<enum value="true" text="Hold time is programmable in the end device."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="3" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="DISP_RCD" redefine="DIM_DISP_TBL.DISP_RCD">
				<element name="DISPLAY_CTRL" type="DISP_FLAG_BFLD"/>
				<element name="NBR_DISP_SOURCES" type="UINT16">
					<description>Actual number of display sources. A number representing the actual number of manufacturer defined display sources, described in DISP_SOURCE_TBL (Table 32), and which should be used for the creation of display lists.</description>
				</element>
				<element name="WIDTH_DISP_SOURCES" type="UINT8">
					<description>Actual number of octets a manufacturer uses to define the row width of all entries in DISP_SOURCE_TBL (Table 32).</description>
				</element>
				<element name="NBR_PRI_DISP_LIST_ITEMS" type="UINT16">
					<description>Actual number of primary display items per display list defined in PRI_DISP_LIST_TBL (Table 33). The total number of items in all primary display lists shall not exceed this value.</description>
				</element>
				<element name="NBR_PRI_DISP_LISTS" type="UINT8">
					<description>Actual number of primary display lists defined in PRI_DISP_LIST_TBL (Table 33).</description>
				</element>
				<element name="NBR_SEC_DISP_LIST_ITEMS" type="UINT16">
					<description>Actual number of secondary display items per display list defined in SEC_DISP_LIST_TBL (Table 34). The total number of items in all secondary display lists shall not exceed this value.</description>
				</element>
				<element name="NBR_SEC_DISP_LISTS" type="UINT8">
					<description>Actual number of secondary display lists defined in SEC_DISP_LIST_TBL (Table 34).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 32?>
		<table name="DISP_SOURCE_TBL" number="32" type="DISPLAY_SOURCE_RCD" label="Display source table">
			<description>This table defines the dimensions and size of manufacturer defined display identifications and format characteristics. Although manufacturer specific, this table's designation and dimensions (ACT_DISP_TBL.WIDTH_DISP_SOURCES by ACT_DISP_TBL.NBR_DISP_SOURCES) (Table 31), permit the protocol to deposit local display description information. The actual interpretation of each display entry is not defined by this standard. The entry offsets to individual items in this table are used in display scroll sequences entered in tables PRI_DISP_LIST_TBL (Table 33) and SEC_DISP_LIST_TBL (Table 34).</description>
			<packedRecord name="DISP_SOURCE_DESC_RCD">
				<description>Manufacturer defined display description entry.</description>
				<array name="DISPLAY_SOURCE" type="UINT8" dimension="ACT_DISP_TBL.WIDTH_DISP_SOURCES">
					<description>These entries make up the DISP_SOURCE_TBL (Table 32). Indices to these entries (starting with 0) are used in subsequent display scrolling sequences.</description>
				</array>
			</packedRecord>
			<packedRecord name="DISPLAY_SOURCE_RCD">
				<description>Manufacturer defined display description entries.</description>
				<array name="DISPLAY_SOURCES" type="DISP_SOURCE_DESC_RCD" dimension="ACT_DISP_TBL.NBR_DISP_SOURCES">
					<description>This array contains the manufacturer defined display description entries.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 33?>
		<table name="PRI_DISP_LIST_TBL" number="33" type="PRI_DISP_LIST_RCD" label="Primary display list table">
			<description>This table contains a list of operational parameters and references into the table, DISP_SOURCE_TBL, (Table 32) necessary for programming the primary display lists, timing, and scroll sequences.</description>
			<bitField name="DISP_SCROLL1_BFLD" type="UINT8">
				<subElement name="ON_TIME" type="UINT" startBitInclusive="0" endBitInclusive="3">
					<description>The number of seconds each display item is displayed.</description>
				</subElement>
				<subElement name="OFF_TIME" type="UINT" startBitInclusive="4" endBitInclusive="7">
					<description>The number of seconds display is blank between display items. 0 = No deliberate OFF Time.</description>
				</subElement>
			</bitField>
			<bitField name="DISP_SCROLL2_BFLD" type="UINT8">
				<subElement name="HOLD_TIME" type="UINT" startBitInclusive="0" endBitInclusive="7">
					<description>The number of minutes to wait before automatically restarting the normal display scroll after hold has been initiated.</description>
				</subElement>
				<subElement name="DEFAULT_LIST" type="UINT" startBitInclusive="4" endBitInclusive="7">
					<description>Associates this display list with a standard display list type. The "normal" display list scrolling resumes after HOLD_TIME has expired.</description>
					<enumerator>
						<enum value="0" text="Display selectable via communication link only"/>
						<enum value="1" text="Normal display"/>
						<enum value="2" text="Alternate Display"/>
						<enum value="3" text="Test Display"/>
					</enumerator>
				</subElement>
			</bitField>
			<packedRecord name="DISP_LIST_DESC_RCD">
				<element name="DISP_SCROLL1" type="DISP_SCROLL1_BFLD">
					<description>This contains the ON_TIME and OFF_TIME values for the associated list.</description>
				</element>
				<element name="DISP_SCROLL2" type="DISP_SCROLL2_BFLD">
					<description>This contains the HOLD_TIME and DEFAULT_LIST values for the associated list.</description>
				</element>
				<element name="NBR_LIST_ITEMS" type="UINT8">
					<description>Number of items in this display list. The total number of items (list entries) in all display lists of this table shall not exceed ACT_DISP_TBL.NBR_PRI_DISP_LIST_ITEM (Table 31).</description>
				</element>
			</packedRecord>
			<packedRecord name="PRI_DISP_LIST_RCD">
				<array name="PRI_DISP_LIST" type="DISP_LIST_DESC_RCD" dimension="ACT_DISP_TBL.NBR_PRI_DISP_LISTS">
					<description>An array of list descriptor records.</description>
				</array>
				<array name="PRI_DISP_SOURCES" type="UINT16" dimension="ACT_DISP_TBL.NBR_PRI_DISP_LIST_ITEMS">
					<description>Ordered list of references to display items contained in DISP_SOURCE_TBL (Table 32). This list establishes the order of the primary display.

This standard does not preclude additional items from popping up or being displayed out of sequence as a result of an end device error condition or an end device status report being generated.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 34?>
		<table name="SEC_DISP_LIST_TBL" number="34" type="SEC_DISP_LIST_RCD" label="Secondary display list table">
			<description>This table contains a list of operational parameters and references into the table, DISP_SOURCE_TBL, (Table 32) necessary for programming the secondary display lists, timing, and scroll sequences.</description>
			<packedRecord name="SEC_DISP_LIST_RCD">
				<array name="SEC_DISP_LIST" type="PRI_DISP_LIST_TBL.DISP_LIST_DESC_RCD" dimension="ACT_DISP_TBL.NBR_SEC_DISP_LISTS">
					<description>An array of list descriptor records.</description>
				</array>
				<array name="SEC_DISP_SOURCES" type="UINT16" dimension="ACT_DISP_TBL.NBR_SEC_DISP_LIST_ITEMS">
					<description>Ordered list of references to display items contained in DISP_SOURCE_TBL (Table 32). This list establishes the order of the secondary display.

This standard does not preclude additional items from popping up or being displayed out of sequence as a result of an end device error condition or an end device status report being generated.</description>
				</array>
			</packedRecord>
		</table>
	</decade>
	<decade name="SECURITY_DEC" number="4" label="Security tables">
		<description>The security tables provide holding areas for the placement of end device passwords and Encryption/Authentication keys used to establish group access permissions. Access permissions are used to limit table read or write access and procedure execute permissions to groups of users based on the interpretation of the password and encryption/authentication fields. The exact means for granting access are not defined by this standard.</description>
		<?Table 40?>
		<table name="DIM_SECURITY_LIMITING_TBL" number="40" type="SECURITY_RCD" label="Dimension security limiting  table">
			<description>This table defines the maximum number of passwords and security access level entries supported by the end device.</description>
			<packedRecord name="SECURITY_RCD">
				<element name="NBR_PASSWORDS" type="UINT8">
					<description>Maximum number of passwords this end device is capable of supporting. </description>
				</element>
				<element name="PASSWORD_LEN" type="UINT8" min="0" max="20">
					<description>Maximum length of passwords in octets this end device is capable of supporting.</description>
				</element>
				<element name="NBR_KEYS" type="UINT8">
					<description>Maximum number of keys for authentication/encryption this end device is capable of supporting.</description>
				</element>
				<element name="KEY_LEN" type="UINT8">
					<description>Maximum length of keys in octets this end device is capable of supporting.</description>
				</element>
				<element name="NBR_PERM_USED" type="UINT16">
					<description>Maximum number of user defined security access entries end device supports in addition to those defined through default access permissions.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 41?>
		<table name="ACT_SECURITY_LIMITING_TBL" number="41" type="SECURITY_RCD" label="Actual security limiting table">
			<description>This table defines the actual number of passwords and security access level entries supported by the end device.</description>
			<packedRecord name="SECURITY_RCD" redefine="DIM_SECURITY_LIMITING_TBL.SECURITY_RCD">
				<element name="NBR_PASSWORDS" type="UINT8">
					<description>Actual number of passwords used by this end device.</description>
				</element>
				<element name="PASSWORD_LEN" type="UINT8" min="0" max="20">
					<description>Actual length of passwords in octets this end device is supporting.</description>
				</element>
				<element name="NBR_KEYS" type="UINT8">
					<description>Actual number of keys this end device is supporting.</description>
				</element>
				<element name="KEY_LEN" type="UINT8">
					<description>Actual length of keys this end device is supporting.</description>
				</element>
				<element name="NBR_PERM_USED" type="UINT16">
					<description>Actual number of user defined security access entries end device supports in addition to those defined through default access permissions.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 42?>
		<table name="SECURITY_TBL" number="42" type="SECURITY_RCD" label="Security  table">
			<description>This table stores actual end device passwords. It is used to associate passwords with read, write and procedure execute access permission bits. Any table or procedure whose access control bits match with respect to position at least one of the group access permissions bits, defined in SECURITY_TBL (Table 42) for the supplied password, can become a candidate for data transfers.

Notes:

1.	Although it may be possible to read the security table, the values reported (read back) are not defined by this standard.
2.	When access permissions are given to a procedure that accesses or modifies table data, then the invoker of that procedure shall in addition be required to have read or write access to the table that is read or modified.
3.	When access permissions are given to a User Defined table, which accesses or modifies other tables, then the invoker of that User Defined table shall in addition be required to have read or write access to the tables indirectly read or written.
</description>
			<bitField name="ACCESS_PERMISSION_BFLD" type="UINT8">
				<subElement name="GROUP_PERM_0_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="Group 0 privileges are not granted by this password."/>
						<enum value="true" text="Group 0 privileges are granted by this password."/>
					</enumerator>
				</subElement>
				<subElement name="GROUP_PERM_1_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Group 1 privileges are not granted by this password."/>
						<enum value="true" text="Group 1 privileges are granted by this password."/>
					</enumerator>
				</subElement>
				<subElement name="GROUP_PERM_2_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Group 2 privileges are not granted by this password."/>
						<enum value="true" text="Group 2 privileges are granted by this password."/>
					</enumerator>
				</subElement>
				<subElement name="GROUP_PERM_3_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Group 3 privileges are not granted by this password."/>
						<enum value="true" text="Group 3 privileges are granted by this password."/>
					</enumerator>
				</subElement>
				<subElement name="GROUP_PERM_4_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Group 4 privileges are not granted by this password."/>
						<enum value="true" text="Group 4 privileges are granted by this password."/>
					</enumerator>
				</subElement>
				<subElement name="GROUP_PERM_5_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="Group 5 privileges are not granted by this password."/>
						<enum value="true" text="Group 5 privileges are granted by this password."/>
					</enumerator>
				</subElement>
				<subElement name="GROUP_PERM_6_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="Group 6 privileges are not granted by this password."/>
						<enum value="true" text="Group 6 privileges are granted by this password."/>
					</enumerator>
				</subElement>
				<subElement name="GROUP_PERM_7_FLAG" type="BOOL" startBitInclusive="7">
					<enumerator>
						<enum value="false" text="Group 7 privileges are not granted by this password."/>
						<enum value="true" text="Group 7 privileges are granted by this password."/>
					</enumerator>
				</subElement>
			</bitField>
			<packedRecord name="SECURITY_ENTRY_RCD">
				<element name="PASSWORD" type="BINARY" size="ACT_SECURITY_LIMITING_TBL.PASSWORD_LEN">
					<description>Password to be matched and be associated with group access permission bits.</description>
				</element>
				<element name="ACCESS_PERMISSIONS" type="ACCESS_PERMISSION_BFLD">
					<description>Group access permissions bits for this password.</description>
				</element>
			</packedRecord>
			<packedRecord name="SECURITY_RCD">
				<array name="SECURITY_ENTRIES" type="SECURITY_ENTRY_RCD" dimension="ACT_SECURITY_LIMITING_TBL.NBR_PASSWORDS">
					<description>Array containing a list of security limiting parameters.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 43?>
		<table name="DEFAULT_ACCESS_CONTROL_TBL" number="43" type="DEFAULT_ACCESS_RCD" label="Default access control table">
			<description>This table is used to establish default table and procedure access permissions.  These permissions are applied to any table that is not included in the ACCESS_CONTROL_TABLE (Table 44).</description>
			<bitField name="DEFAULT_ACCESS_TABLE_DEF_BFLD" type="UINT16">
				<subElement name="FILLER" type="FILL" startBitInclusive="0" endBitInclusive="12"/>
				<subElement name="ANY_READ_FLAG" type="BOOL" startBitInclusive="13">
					<enumerator>
						<enum value="false" text="Any unrecognized user does not have read access permission to any tables."/>
						<enum value="true" text="Any unrecognized user has read access permission to any table not defined in ACCESS_CONTROL_TBL (Table 44)."/>
					</enumerator>
				</subElement>
				<subElement name="ANY_WRITE_FLAG" type="BOOL" startBitInclusive="14">
					<enumerator>
						<enum value="false" text="Any unrecognized user does not have write access permission to any tables."/>
						<enum value="true" text="Any unrecognized user has write access permission to any table not defined in ACCESS_CONTROL_TBL (Table 44)."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="15"/>
			</bitField>
			<packedRecord name="DEFAULT_ACCESS_CONTROL_RCD">
				<element name="ACCESS_TABLE_DEFAULT" type="DEFAULT_ACCESS_TABLE_DEF_BFLD">
					<description>Read and write access permissions for unrecognized users as defined above.</description>
				</element>
				<element name="READ" type="SECURITY_TBL.ACCESS_PERMISSION_BFLD">
					<description>Group security access permission bits for users that have been recognized and request read access to tables that are not listed in the ACCESS_CONTROL_TBL (Table 44).</description>
				</element>
				<element name="WRITE" type="SECURITY_TBL.ACCESS_PERMISSION_BFLD">
					<description>Group security access permission bits for users that have been recognized and request write access to tables that are not listed in the ACCESS_CONTROL_TBL (Table 44).</description>
				</element>
			</packedRecord>
			<packedRecord name="DEFAULT_ACCESS_RCD">
				<element name="TABLE_DEFAULT" type="DEFAULT_ACCESS_CONTROL_RCD">
					<description>Default access control for all tables, except the PROC_INITIATE_TBL (Table 07).</description>
				</element>
				<element name="PROCEDURE_DEFAULT" type="DEFAULT_ACCESS_CONTROL_RCD">
					<description>Default access control for all procedures using PROC_INITIATE_TBL (Table 07).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 44?>
		<table name="ACCESS_CONTROL_TBL" number="44" type="ACCESS_CONTROL_RCD" label="Access control table">
			<description>This table establishes table and procedure access permissions on a per table and per procedure basis for those tables not using the default access level.</description>
			<bitField name="TABLE_IDC_BFLD" type="UINT16" redefine="TABLE_IDC_BFLD">
				<subElement name="TBL_PROC_NBR" type="UINT" startBitInclusive="0" endBitInclusive="10" min="0" max="2039">
					<description>Table or procedure number associated with this access permission entry.</description>
				</subElement>
				<subElement name="STD_VS_MFG_FLAG" type="BOOL" startBitInclusive="11">
					<enumerator>
						<enum value="false" text="Entry is a standard table or standard procedure."/>
						<enum value="true" text="Entry is a manufacturer table or manufacturer procedure."/>
					</enumerator>
				</subElement>
				<subElement name="PROC_FLAG" type="BOOL" startBitInclusive="12">
					<enumerator>
						<enum value="false" text="Numeric ID is a table number."/>
						<enum value="true" text="Numeric ID is a procedure number."/>
					</enumerator>
				</subElement>
				<subElement name="FLAG1" type="BOOL" startBitInclusive="13">
					<enumerator>
						<enum value="false" text="Associated table or procedure requires read access control bits. Only approved group members may access table or procedure."/>
						<enum value="true" text="Associated table or procedure has unrestricted read access. Any user may read the associated table or procedure."/>
					</enumerator>
				</subElement>
				<subElement name="FLAG2" type="BOOL" startBitInclusive="14">
					<enumerator>
						<enum value="false" text="Associated table or procedure requires write access control bits. Only approved group members may write to table or procedure."/>
						<enum value="true" text="Associated table or procedure has unrestricted write or execute permission. Any user may write into the associated table or procedure."/>
					</enumerator>
				</subElement>
				<subElement name="FLAG3" type="BOOL" startBitInclusive="15"/>
			</bitField>
			<packedRecord name="ACCESS_CONTROL_ENTRY_RCD">
				<element name="ACCESS_TABLE_DEF" type="TABLE_IDC_BFLD">
					<description>Table identification and public access control.</description>
				</element>
				<element name="READ" type="ACCESS_PERMISSION_BFLD">
					<description>Group read access control bits.</description>
				</element>
				<element name="WRITE" type="ACCESS_PERMISSION_BFLD">
					<description>Group write access control bits.</description>
				</element>
			</packedRecord>
			<packedRecord name="ACCESS_CONTROL_RCD">
				<array name="ACCESS_CONTROL" type="ACCESS_CONTROL_ENTRY_RCD" dimension="ACT_SECURITY_LIMITING_TBL.NBR_PERM_USED">
					<description>Array containing access permission for specific table or procedure.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 45?>
		<table name="KEY_TBL" number="45" type="KEY_RCD">
			<description>This table contain authentication and/or encryption keys.
Note: Although it may be possible to read the KEY_TBL (Table 45), the values reported (read back) are not defined by this standard.</description>
			<packedRecord name="KEY_ENTRY_RCD">
				<element name="KEY" type="BINARY" size="ACT_SECURITY_LIMITING_TBL.KEY_LEN">
					<description>A key to be applied in the authentication and/or encryption processes. Use of any key is not defined by this standard.</description>
				</element>
			</packedRecord>
			<packedRecord name="KEY_RCD">
				<array name="KEY_ENTRIES" type="KEY_ENTRY_RCD" dimension="ACT_SECURITY_LIMITING_TBL.NBR_KEYS">
					<description>Array of keys used to establish authentication and/or encryption.</description>
				</array>
			</packedRecord>
		</table>
	</decade>
	<decade name="TIME_OF_USE_DEC" number="5" label="Time-of-use tables">
		<description>The tables in this decade provide information related to end device Date and Time and Time Of Use (TOU) operation.</description>
		<?Table 50?>
		<table name="DIM_TIME_TOU_TBL" number="50" type="TIME_TOU_RCD" label="Dimension time and TOU table">
			<description>This table defines the maximum capabilities for Date and Time clock control and Time of Use (TOU) control for the end device.</description>
			<bitField name="TIME_FUNC_FLAG1_BFLD" type="UINT8">
				<subElement name="TOU_SELF_READ_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not capable of TOU triggered self-reads."/>
						<enum value="true" text="End device is capable of TOU triggered self-reads."/>
					</enumerator>
				</subElement>
				<subElement name="SEASON_SELF_READ_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Self read with season change capability does not exist. "/>
						<enum value="true" text="Self read with season change capability exists. "/>
					</enumerator>
				</subElement>
				<subElement name="SEASON_DEMAND_RESET_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Automatic demand reset with season change capability does not 	exist."/>
						<enum value="true" text="Automatic demand reset with season change capability exists."/>
					</enumerator>
				</subElement>
				<subElement name="SEASON_CHNG_ARMED_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Season change arming capability does not exist."/>
						<enum value="true" text="Season change arming capability exists. That is, the end device is only armed to do a season change as a result of an indicated change of season. The actual season change does not occur until the next demand reset occurs (by manual or other means)."/>
					</enumerator>
				</subElement>
				<subElement name="SORT_DATES_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="End device does not require the CALENDAR_TBL.NON_RECURR_DATES (Table 54) be presorted by date (Year, Month, Day) when received."/>
						<enum value="true" text="End device does require the  CALENDAR_TBL.NON_RECURR_DATES (Table 54) be presorted by date (Year, Month, Day) when received.  Non-recurring dates starting with 1990 and ending with 2089 shall occur in that order.  No sorting of recurring dates, if present, is assumed."/>
					</enumerator>
				</subElement>
				<subElement name="ANCHOR_DATE_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="End device is not capable of accepting an anchor date for the Period/Delta RDATE type (recurring date)."/>
						<enum value="true" text="End device is capable of accepting an Anchor Date for the Period/Delta RDATE type (recurring date)."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="6" endBitInclusive="7"/>
			</bitField>
			<bitField name="TIME_FUNC_FLAG2_BFLD" type="UINT8">
				<subElement name="CAP_DST_AUTO_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not capable of handling daylight savings time changes independently of dates supplied by the CALENDAR_TBL (Table 54)."/>
						<enum value="true" text="End device is capable of handling daylight savings time changes independently of dates supplied by the CALENDAR_TBL (Table 54)."/>
					</enumerator>
				</subElement>
				<subElement name="SEPARATE_WEEKDAYS_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End device is not capable of having a different schedule for each of the five weekdays."/>
						<enum value="true" text="End device is capable of having a different schedule for each of the five weekdays."/>
					</enumerator>
				</subElement>
				<subElement name="SEPARATE_SUM_DEMANDS_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="End device is not capable of switching summation and demands independently."/>
						<enum value="true" text="End device is capable of switching summation and demands independently."/>
					</enumerator>
				</subElement>
				<subElement name="SORT_TIER_SWITCHES_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="End device does not require that  CALENDAR_TBL.TIER_SWITCHES (Table 54) be presorted. "/>
						<enum value="true" text="End device requires that  CALENDAR_TBL.TIER_SWITCHES (Table 54) be presorted."/>
					</enumerator>
				</subElement>
				<subElement name="CAP_TM_ZN_OFFSET_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Time zone offset capability is not supported by the end device."/>
						<enum value="true" text="Time zone offset capability is supported by the end device."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="5" endBitInclusive="7"/>
			</bitField>
			<bitField name="CALENDAR_BFLD" type="UINT8">
				<subElement name="NBR_SEASONS" type="UINT" startBitInclusive="0" endBitInclusive="3">
					<description>Maximum number of seasons supported by this end device.</description>
				</subElement>
				<subElement name="NBR_SPECIAL_SCHED" type="UINT" startBitInclusive="4" endBitInclusive="7" min="0" max="11">
					<description>Maximum number of special schedules supported by this end device.</description>
				</subElement>
			</bitField>
			<packedRecord name="TIME_TOU_RCD">
				<element name="TIME_FUNC_FLAG1" type="TIME_FUNC_FLAG1_BFLD"/>
				<element name="TIME_FUNC_FLAG2" type="TIME_FUNC_FLAG2_BFLD"/>
				<element name="CALENDAR_FUNC" type="CALENDAR_BFLD"/>
				<element name="NBR_NON_RECURR_DATES" type="UINT8">
					<description>Maximum number of non-recurring dates supported by the end device calendar. Each entry allows the control of one or more events like demand reset, self read, daylight savings time, season change and special schedule.</description>
				</element>
				<element name="NBR_RECURR_DATES" type="UINT8">
					<description>Maximum number of recurring dates supported by the end device calendar. Each entry allows the definition of a recurring event like demand reset, self read, daylight savings time, season change and special schedule.</description>
				</element>
				<element name="NBR_TIER_SWITCHES" type="UINT16">
					<description>Maximum number of tier switches supported by the end device calendar. This number comprises the total collection of tier switches for all day types in the CALENDAR_TBL.-DAILY_SCHEDULE_ID_MATRIX (Table 54).</description>
				</element>
				<element name="CALENDAR_TBL_SIZE" type="UINT16">
					<description>Maximum octets of data transported by CALENDAR_TBL (Table 54). This includes recurring dates, non-recurring dates and tier switches.  Anchor date is counted even if it is unused. </description>
				</element>
			</packedRecord>
		</table>
		<?Table 51?>
		<table name="ACT_TIME_TOU_TBL" number="51" type="TIME_TOU_RCD" label="Actual time and TOU table">
			<description>This table defines the actual capabilities for Date and Time clock control limits and Time of Use (TOU) control limits for the end device. The data structure of this table is identical to DIM_TIME_TOU_TBL (Table 50).  Elements are defined below.</description>
			<bitField name="TIME_FUNC_FLAG1_BFLD" type="UINT8" redefine="DIM_TIME_TOU_TBL.TIME_FUNC_FLAG1_BFLD">
				<subElement name="TOU_SELF_READ_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not using TOU triggered self-reads."/>
						<enum value="true" text="End device is using TOU triggered self-reads."/>
					</enumerator>
				</subElement>
				<subElement name="SEASON_SELF_READ_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Self read with season change capability is not being used. "/>
						<enum value="true" text="Self read with season change capability is being used. "/>
					</enumerator>
				</subElement>
				<subElement name="SEASON_DEMAND_RESET_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="Automatic demand reset when season change occurs is not in use."/>
						<enum value="true" text="Automatic demand reset when season change occurs is being used."/>
					</enumerator>
				</subElement>
				<subElement name="SEASON_CHNG_ARMED_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Season change arming is not being used."/>
						<enum value="true" text="Season change arming is in use. That is, the end device is only armed to do a season change as a result of an indicated change of season. The actual season change does not occur until the next demand reset occurs (by manual or other means)."/>
					</enumerator>
				</subElement>
				<subElement name="SORT_DATES_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="End device may or may not require the  CALENDAR_TBL.NON_RECURR_DATES (Table 54) to be presorted by date (Year, Month, Day) when received. "/>
						<enum value="true" text="End device does require the CALENDAR_TBL.NON_RECURR_DATES (Table 54) be presorted by date (Year, Month, Day) when received. Non-recurring dates starting with 1990 and ending with 2089 shall be sorted in that order. No sorting of recurring dates, if present, is required."/>
					</enumerator>
				</subElement>
				<subElement name="ANCHOR_DATE_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="End device does not accept an anchor date for the Period/Delta RDATE type (recurring date)."/>
						<enum value="true" text="End device accepts an anchor date for the Period/Delta RDATE type (recurring date)."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="6" endBitInclusive="7"/>
			</bitField>
			<bitField name="TIME_FUNC_FLAG2_BFLD" type="UINT8" redefine="DIM_TIME_TOU_TBL.TIME_FUNC_FLAG2_BFLD">
				<subElement name="CAP_DST_AUTO_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not handling daylight savings time changes independently of dates supplied by the CALENDAR_TBL (Table 54)."/>
						<enum value="true" text="End device is handling daylight savings time changes independently of dates supplied by the CALENDAR_TBL (Table 54)."/>
					</enumerator>
				</subElement>
				<subElement name="SEPARATE_WEEKDAYS_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End device is not using a different schedule for each of the five weekdays."/>
						<enum value="true" text="End device is using a different schedule for each of the five weekdays."/>
					</enumerator>
				</subElement>
				<subElement name="SEPARATE_SUM_DEMANDS_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="End device is not switching summation and demands independently"/>
						<enum value="true" text="End device is switching summation and demands independently."/>
					</enumerator>
				</subElement>
				<subElement name="SORT_TIER_SWITCHES_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="End device does not require that  CALENDAR_TBL.TIER_SWITCHES (Table 54) be presorted. "/>
						<enum value="true" text="End device requires that CALENDAR_TBL.TIER_SWITCHES (Table 54) be presorted."/>
					</enumerator>
				</subElement>
				<subElement name="CAP_TM_ZN_OFFSET_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Time zone offset capability is not available in the end device."/>
						<enum value="true" text="Time zone offset capability is available in the end device."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="5" endBitInclusive="7"/>
			</bitField>
			<bitField name="CALENDAR_BFLD" type="UINT8" redefine="DIM_TIME_TOU_TBL.CALENDAR_BFLD">
				<subElement name="NBR_SEASONS" type="UINT" startBitInclusive="0" endBitInclusive="3">
					<description>Actual number of seasons in use by the end device.</description>
				</subElement>
				<subElement name="NBR_SPECIAL_SCHED" type="UINT" startBitInclusive="4" endBitInclusive="7" min="0" max="11">
					<description>Actual number of special schedules in use by the end device.</description>
				</subElement>
			</bitField>
			<packedRecord name="TIME_TOU_RCD" redefine="DIM_TIME_TOU_TBL.TIME_TOU_RCD">
				<element name="TIME_FUNC_FLAG1" type="TIME_FUNC_FLAG1_BFLD"/>
				<element name="TIME_FUNC_FLAG2" type="TIME_FUNC_FLAG2_BFLD"/>
				<element name="CALENDAR_FUNC" type="CALENDAR_BFLD"/>
				<element name="NBR_NON_RECURR_DATES" type="UINT8">
					<description>Actual number of non-recurring dates supported by the end device calendar. Each entry allows the control of one or more events like demand reset, self read, daylight savings time, season change and special schedule.</description>
				</element>
				<element name="NBR_RECURR_DATES" type="UINT8">
					<description>Actual number of recurring dates supported by the end device calendar. Each entry allows the definition of a recurring event like demand reset, self read, daylight savings time, season change and special schedule.</description>
				</element>
				<element name="NBR_TIER_SWITCHES" type="UINT16">
					<description>Actual number of tier switches supported by the end device calendar. This number comprises the total collection of tier switches for all day types in the CALENDAR_TBL.-DAILY_SCHEDULE_ID_MATRIX (Table 54).</description>
				</element>
				<element name="CALENDAR_TBL_SIZE" type="UINT16">
					<description>Actual octets of data transported by CALENDAR_TBL (Table 54). This includes the recurring dates, non-recurring dates and tier switches.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 52?>
		<table name="CLOCK_TBL" number="52" type="CLOCK_STATE_RCD" label="Clock table">
			<description>This table provides the end device real time clock information.</description>
			<bitField name="TIME_DATE_QUAL_BFLD" type="UINT8">
				<description>Status qualifying the end device time.</description>
				<subElement name="DAY_OF_WEEK" type="UINT" startBitInclusive="0" endBitInclusive="2">
					<description>Current day of the week.</description>
					<enumerator>
						<enum value="0" text="Sunday"/>
						<enum value="1" text="Monday"/>
						<enum value="2" text="Tuesday"/>
						<enum value="3" text="Wednesday"/>
						<enum value="4" text="Thursday"/>
						<enum value="5" text="Friday"/>
						<enum value="6" text="Saturday"/>
					</enumerator>
				</subElement>
				<subElement name="DST_FLAG" type="BOOL" startBitInclusive="3">
					<description>Daylight savings time status.</description>
					<enumerator>
						<enum value="false" text="End device time is not in daylight savings time."/>
						<enum value="true" text="End device time is in daylight savings time."/>
					</enumerator>
				</subElement>
				<subElement name="GMT_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="End device time does not correspond to Greenwich Mean Time."/>
						<enum value="true" text="End device time corresponds to Greenwich Mean Time."/>
					</enumerator>
				</subElement>
				<subElement name="TM_ZN_APPLIED_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="Time zone offset has not been applied to the end device time."/>
						<enum value="true" text="Time zone offset has been applied to the end device time"/>
					</enumerator>
				</subElement>
				<subElement name="DST_APPLIED_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="End device time does not include daylight savings adjustment."/>
						<enum value="true" text="End device time includes daylight savings adjustment."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<packedRecord name="CLOCK_STATE_RCD">
				<element name="CLOCK_CALENDAR" type="LTIME_DATE">
					<description>Current end device time.</description>
				</element>
				<element name="TIME_DATE_QUAL" type="TIME_DATE_QUAL_BFLD"/>
			</packedRecord>
		</table>
		<?Table 53?>
		<table name="TIME_OFFSET_TBL" number="53" type="TIME_OFFSET_RCD" label="Time offset table">
			<description>This table  provides time zone offset and daylight savings time information for the end device.</description>
			<packedRecord name="TIME_OFFSET_RCD">
				<element name="DST_TIME_EFF" type="TIME">
					<description>The time of day the end device  shifts to or from daylight savings time. The date of occurrence is based on entries in the CALENDAR_TBL (Table 54) and the ACT_TIME_TOU_TBL.CAP_DST_AUTO_FLAG (Table 51) flag.</description>
				</element>
				<element name="DST_TIME_AMT" type="UINT8">
					<description>End device daylight savings time adjustment specified in minutes.</description>
				</element>
				<if condition="ACT_TIME_TOU_TBL.CAP_TM_ZN_OFFSET_FLAG">
					<then>
						<element name="TIME_ZONE_OFFSET" type="INT16">
							<description>Offset for end device, representing the number of * 1 minute segments of end device time offset.</description>
						</element>
					</then>
				</if>
			</packedRecord>
		</table>
		<?Table 54?>
		<table name="CALENDAR_TBL" number="54" type="CALENDAR_RCD">
			<description>This table is the schedule definition table for TOU metering activities.</description>
			<bitField name="CALENDAR_ACTION_BFLD" type="UINT8">
				<subElement name="CALENDAR_CTRL" type="UINT" startBitInclusive="0" endBitInclusive="4">
					<description>Number specifying the calendar action that takes place on the date specified.

Daylight Savings Time On/Off
Daylight Savings Time On and Off actions causes a time adjustment to be made at TIME_OFFSET_TBL.DST_TIME_EFF (Table 53) time. If TIME_OFFSET_TBL (Table 53) is not supported, the time adjustment is made at 02:00 A.M. and the effectivity amount equals 1 hour. 
If ACT_TIME_TOU_TBL.CAP_DST_AUTO_ FLAG (Table 51) = TRUE then Daylight Savings Time On/Off actions in this table are ignored.

Season Changes
If ACT_TIME_TOU_TBL.SEASON_CHNG_ ARMED_FLAG (Table 51) = FALSE, a season change action causes a season change to occur at 00:00 A.M. hours on the date specified. If ACT_TIME_TOU_TBL.SEASON_CHNG_ARMED_FLAG (Table 51) = TRUE, a season change action "arms" a season change, but the season change will not occur until the next demand reset.
If ACT_TIME_TOU_TBL.SEASON_DEMAND _RESET_FLAG (Table 51) = TRUE, a season change causes a demand reset to occur automatically.
A self read of the current register data is saved in the SELF_READ_DATA_TBL (Table 26) if ACT_TIME_TOU_TBL.SEASON_SELF_READ_FLAG (Table 51) = TRUE when the season change occurs.
If GEN_CONFIG_TBL.STD_TBLS_USED.-PREVIOUS_SEASON_DATA_TBL (Table 00) = TRUE, a season change causes a copy of the current register data to be saved in the PREVIOUS_SEASON_DATA_TBL (Table 24)

Special Schedules
Special schedules are used for holidays or other special daily schedules. These schedules take effect at midnight (00:00 A.M.) and end 24 hours later (23:59 P.M.). The special schedule takes precedence over the normal day of week schedule.

End of List 
End of List Action is to notify the utility that the CALENDAR_TBL (Table 54) entries are approaching expiration. Notification is by history message, display, or other means defined by the device manufacturer.</description>
					<enumerator>
						<enum value="0" text="No Action"/>
						<enum value="1" text="Daylight Savings Time On"/>
						<enum value="2" text="Daylight Savings Time Off"/>
						<enum value="3" text="Select Season 0"/>
						<enum value="4" text="Select Season 1"/>
						<enum value="5" text="Select Season 2"/>
						<enum value="6" text="Select Season 3"/>
						<enum value="7" text="Select Season 4"/>
						<enum value="8" text="Select Season 5"/>
						<enum value="9" text="Select Season 6"/>
						<enum value="10" text="Select Season 7"/>
						<enum value="11" text="Select Season 8"/>
						<enum value="12" text="Select Season 9"/>
						<enum value="13" text="Select Season 10"/>
						<enum value="14" text="Select Season 11"/>
						<enum value="15" text="Select Season 12"/>
						<enum value="16" text="Select Season 13"/>
						<enum value="17" text="Select Season 14"/>
						<enum value="18" text="Select Season 15"/>
						<enum value="19" text="Special Schedule 0"/>
						<enum value="20" text="Special Schedule 1"/>
						<enum value="21" text="Special Schedule 2"/>
						<enum value="22" text="Special Schedule 3"/>
						<enum value="23" text="Special Schedule 4"/>
						<enum value="24" text="Special Schedule 5"/>
						<enum value="25" text="Special Schedule 6"/>
						<enum value="26" text="Special Schedule 7"/>
						<enum value="27" text="Special Schedule 8"/>
						<enum value="28" text="Special Schedule 9"/>
						<enum value="29" text="Special Schedule 10"/>
						<enum value="30" text="Special Schedule 11"/>
						<enum value="31" text="End Of List"/>
					</enumerator>
				</subElement>
				<subElement name="DEMAND_RESET_FLAG" type="BOOL" startBitInclusive="5">
					<description>If GEN_CONFIG_TBL.STD_TBLS_USED. PREVIOUS_DEMAND_RESET_DATA_TBL (Table 00) = TRUE, a Demand Reset causes data to be saved in PREVIOUS_DEMAND_ RESET_DATA_TBL (Table 25).	

If ACT_REGS_TBL.SELF_READ_DEMAND_ RESET_FLAG (Table 21) = 1 or 3, a self read shall occur in conjunction with the demand reset.
</description>
					<enumerator>
						<enum value="false" text="Demand reset shall not occur."/>
						<enum value="true" text="Demand reset shall occur at 00:00 A.M. on the date specified. "/>
					</enumerator>
				</subElement>
				<subElement name="SELF_READ_FLAG" type="BOOL" startBitInclusive="6">
					<description>If ACT_REGS_TBL.SELF_READ_DEMAND _RESET_FLAG (Table 21) = 2 or 3, a demand reset shall occur in conjunction with the self read.</description>
					<enumerator>
						<enum value="false" text="Self read shall not occur."/>
						<enum value="true" text="Self read shall occur at 00:00 A.M. on the date specified. "/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="BOOL" startBitInclusive="7"/>
			</bitField>
			<packedRecord name="RECURR_DATE_RCD">
				<element name="RECURR_DATE" type="RDATE">
					<description>Date definition of a recurring event. The recurrence can be yearly, monthly, or weekly. The recurring event is referenced to midnight.</description>
				</element>
				<element name="CALENDAR_ACTION" type="CALENDAR_ACTION_BFLD">
					<description>Defined action that shall take place on this date.</description>
				</element>
			</packedRecord>
			<packedRecord name="NON_RECURR_DATE_RCD">
				<element name="NON_RECURR_DATE" type="DATE">
					<description>Non-recurring event date.  Action shall occur at midnight.</description>
				</element>
				<element name="CALENDAR_ACTION" type="CALENDAR_ACTION_BFLD">
					<description>Defined action that shall take place on this date.</description>
				</element>
			</packedRecord>
			<bitField name="TIER_SWITCH_BFLD" type="UINT16">
				<subElement name="NEW_TIER" type="UINT" startBitInclusive="0" endBitInclusive="2">
					<description>Identifies the tier number that  becomes effective at the time specified in the tier switch on the daily schedule type defined by the DAILY_SCHEDULE_ID_MATRIX.</description>
				</subElement>
				<if condition="ACT_TIME_TOU_TBL.SEPARATE_SUM_DEMANDS_FLAG">
					<then>
						<subElement name="SUMMATION_SWITCH_FLAG" type="BOOL" startBitInclusive="3">
							<description>Specifies whether or not this tier switch selects a new tier for summations. Only used when  ACT_TIME_TOU_TBL.SEPARATE_SUM_ DEMANDS_FLAG (Table 51) = TRUE. </description>
							<enumerator>
								<enum value="false" text="Tier switch is not specified for  summations."/>
								<enum value="true" text="Tier switch is specified for summations."/>
							</enumerator>
						</subElement>
						<subElement name="DEMANDS_SWITCH_FLAG" type="BOOL" startBitInclusive="4">
							<description>Specifies whether or not this tier switch selects a new tier for demands. Only used when ACT_TIME_TOU_TBL.SEPARATE_SUM_ DEMANDS_FLAG (Table 51) = TRUE. </description>
							<enumerator>
								<enum value="false" text="Tier switch is not specified for demands."/>
								<enum value="true" text="Tier switch is specified for demands."/>
							</enumerator>
						</subElement>
					</then>
					<else>
						<subElement name="FILLER" type="FILL" startBitInclusive="3" endBitInclusive="4"/>
					</else>
				</if>
				<subElement name="SWITCH_MIN" type="UINT" startBitInclusive="5" endBitInclusive="10" min="0" max="59">
					<description>Minute when the tier switch occurs.</description>
				</subElement>
				<subElement name="SWITCH_HOUR" type="UINT" startBitInclusive="11" endBitInclusive="15" min="0" max="23">
					<description>Hour when the tier switch occurs.</description>
				</subElement>
			</bitField>
			<packedRecord name="TIER_SWITCH_RCD">
				<element name="TIER_SWITCH" type="TIER_SWITCH_BFLD">
					<description>Defines a switch point for a certain day type defined by the DAILY_SCHEDULE_ID_ MATRIX.</description>
				</element>
				<element name="DAY_SCH_NUM" type="UINT8">
					<description>Specifies the daily schedule type associated with the tier switch. All identifiers are stored in the DAILY_SCHEDULE_ID_MATRIX.</description>
				</element>
			</packedRecord>
			<packedRecord name="SCHEDULE_RCD">
				<element name="SUNDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Sunday.</description>
				</element>
				<element name="MONDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Monday.</description>
				</element>
				<element name="TUESDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Tuesday.</description>
				</element>
				<element name="WEDNESDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Wednesday.</description>
				</element>
				<element name="THURSDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Thursday.</description>
				</element>
				<element name="FRIDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Friday.</description>
				</element>
				<element name="SATURDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Saturday.</description>
				</element>
				<array name="SPECIAL_SCHEDULE" type="UINT8" dimension="ACT_TIME_TOU_TBL.NBR_SPECIAL_SCHED">
					<description>Daily schedule type programmed for each special schedule.</description>
				</array>
			</packedRecord>
			<packedRecord name="WEEKDAYS_SCHEDULE_RCD">
				<element name="SATURDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Saturday.</description>
				</element>
				<element name="SUNDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Sunday.</description>
				</element>
				<element name="WEEKDAY_SCHEDULE" type="UINT8">
					<description>Daily schedule type programmed for Monday to Friday.</description>
				</element>
				<array name="SPECIAL_SCHEDULE" type="UINT8" dimension="ACT_TIME_TOU_TBL.NBR_SPECIAL_SCHED">
					<description>Daily schedule type programmed for each special schedule.</description>
				</array>
			</packedRecord>
			<packedRecord name="CALENDAR_RCD">
				<if condition="ACT_TIME_TOU_TBL.ANCHOR_DATE_FLAG">
					<then>
						<element name="ANCHOR_DATE" type="DATE">
							<description>Anchor date is only used in conjunction with an RDATE type recurring date using the PERIOD/OFFSET mechanism.  See  Section 6.3.2, RDATE Type.  If specified, any recurring date using the PERIOD/OFFSET type shall use this date as a starting date.</description>
						</element>
					</then>
				</if>
				<array name="NON_RECURR_DATES" type="NON_RECURR_DATE_RCD" dimension="ACT_TIME_TOU_TBL.NBR_NON_RECURR_DATES">
					<description>Array containing non-recurring dates.</description>
				</array>
				<array name="RECURR_DATES" type="RECURR_DATE_RCD" dimension="ACT_TIME_TOU_TBL.NBR_RECURR_DATES">
					<description>Array containing recurring dates.</description>
				</array>
				<array name="TIER_SWITCHES" type="TIER_SWITCH_RCD" dimension="ACT_TIME_TOU_TBL.NBR_TIER_SWITCHES">
					<description>Array that contains the tier switches.</description>
				</array>
				<if condition="ACT_TIME_TOU_TBL.SEPARATE_WEEKDAYS_FLAG">
					<then>
						<array name="DAILY_SCHEDULE_ID_MATRIX" type="SCHEDULE_RCD" dimension="ACT_TIME_TOU_TBL.NBR_SEASONS">
							<description>Two-dimensional array containing daily schedule type identifiers. Each entry in the array consists of a single octet type identifier value. The identifier is used to tie tier switch entries to specific daily schedules. An example of a daily schedule is Special Schedule 1 in Season 2 or Saturday Day Type in Season 1. The assignment of identifier codes is left to the utility’s discretion.</description>
						</array>
					</then>
					<else>
						<array name="DAILY_SCHEDULE_ID_MATRIX" type="WEEKDAYS_SCHEDULE_RCD" dimension="ACT_TIME_TOU_TBL.NBR_SEASONS"/>
					</else>
				</if>
			</packedRecord>
		</table>
		<?Table 55?>
		<table name="CLOCK_STATE_TBL" number="55" type="CLOCK_STATE_RCD" label="Clock state table">
			<description>This table provides the end device real time clock information.</description>
			<bitField name="STATUS_BFLD" type="UINT16">
				<description>Array of status entries of each TOU set.</description>
				<if condition="ACT_TIME_TOU_TBL.SEPARATE_SUM_DEMANDS_FLAG">
					<then>
						<subElement name="CURR_SUMM_TIER" type="UINT" startBitInclusive="0" endBitInclusive="2">
							<description>Active tier corresponding to summations. This variable is only used when the capability flag ACT_TIME_TOU_TBL.-SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE. </description>
						</subElement>
						<subElement name="CURR_DEMAND_TIER" type="UINT" startBitInclusive="3" endBitInclusive="5">
							<description>Active tier corresponding to demands. This variable is only used when the capability flag ACT_TIME_TOU_TBL.-SEPARATE_SUM_DEMANDS_FLAG (Table 51) = TRUE. </description>
						</subElement>
					</then>
					<else>
						<subElement name="CURR_TIER" type="UINT" startBitInclusive="0" endBitInclusive="2">
							<description>Number representing the tier that is currently active in the meter. This variable is only used when the capability flag ACT_TIME_TOU_TBL.-SEPARATE_SUM_DEMANDS_FLAG (Table 51) = FALSE.</description>
						</subElement>
						<subElement name="FILLER" type="FILL" startBitInclusive="3" endBitInclusive="5"/>
					</else>
				</if>
				<subElement name="TIER_DRIVE" type="UINT" startBitInclusive="6" endBitInclusive="7">
					<description>Tier drive source code.</description>
					<enumerator>
						<enum value="0" text="Tier selection is controlled by CALENDAR_TBL.TIER_SWITCHES (Table 54)."/>
						<enum value="1" text="Tier selection is not controlled by this standard."/>
						<enum value="2" text="Tier selection is not controlled by this standard."/>
						<enum value="3" text="Tier selection is not controlled by this standard."/>
					</enumerator>
				</subElement>
				<subElement name="SPECIAL_SCHD_ACTIVE" type="UINT" startBitInclusive="8" endBitInclusive="11">
					<enumerator>
						<enum value="0" text="Special schedule 0 active"/>
						<enum value="1" text="Special schedule 1 active"/>
						<enum value="2" text="Special schedule 2 active"/>
						<enum value="3" text="Special schedule 3 active"/>
						<enum value="4" text="Special schedule 4 active"/>
						<enum value="5" text="Special schedule 5 active"/>
						<enum value="6" text="Special schedule 6 active"/>
						<enum value="7" text="Special schedule 7 active"/>
						<enum value="8" text="Special schedule 8 active"/>
						<enum value="9" text="Special schedule 9 active"/>
						<enum value="10" text="Special schedule 10 active"/>
						<enum value="11" text="Special schedule 11 active"/>
						<enum value="15" text="No special schedule active"/>
					</enumerator>
				</subElement>
				<subElement name="SEASON" type="UINT" startBitInclusive="12" endBitInclusive="15">
					<description>Current end device season number.</description>
				</subElement>
			</bitField>
			<packedRecord name="CLOCK_STATE_RCD">
				<element name="CLOCK_CALENDAR" type="LTIME_DATE">
					<description>Current end device time.</description>
				</element>
				<element name="TIME_DATE_QUAL" type="CLOCK_TBL.TIME_DATE_QUAL_BFLD"/>
				<element name="STATUS" type="STATUS_BFLD"/>
			</packedRecord>
		</table>
	</decade>
	<decade name="LOAD_PROFILE_DEC" number="6" label="Load profile tables">
		<description>These tables provide structures for load profile data.</description>
		<?Table 60?>
		<table name="DIM_LP_TBL" number="60" type="LP_SET_RCD" label="Dimension load profile table">
			<description>This table contains function limiting constants for the load profile application. These parameters provide for up to four independent sets of load profile data.</description>
			<bitField name="LP_FLAGS_BFLD" type="UINT16">
				<description>This bit field specifies load profile list management capabilities.</description>
				<subElement name="LP_SET1_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not capable of inhibiting load profile set 1 once an overflow occurs."/>
						<enum value="true" text="End device is capable of inhibiting load profile set 1 once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="LP_SET2_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End device is not capable of inhibiting load profile set 2 once an overflow occur"/>
						<enum value="true" text="End device is capable of inhibiting load profile set 2 once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="LP_SET3_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="End device is not capable of inhibiting load profile set 3 once an overflow occurs."/>
						<enum value="true" text="End device is capable of inhibiting load profile set 3 once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="LP_SET4_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="End device is not capable of inhibiting load profile set 4 once an overflow occurs."/>
						<enum value="true" text="End device is capable of inhibiting load profile set 4 once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="BLK_END_READ_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="The end device is not capable of providing block register reading information."/>
						<enum value="true" text="The end device is capable of providing block register reading information."/>
					</enumerator>
				</subElement>
				<subElement name="BLK_END_PULSE_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="The end device is not capable of having a running pulse accumulator."/>
						<enum value="true" text="The end device is capable of having a running pulse accumulator."/>
					</enumerator>
				</subElement>
				<subElement name="SCALAR_DIVISOR_FLAG_SET1" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="The end device is not capable of having scalars and divisors associated with set 1 load profile interval data."/>
						<enum value="true" text="The end device is capable of having scalars and divisors associated with set 1 load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="SCALAR_DIVISOR_FLAG_SET2" type="BOOL" startBitInclusive="7">
					<enumerator>
						<enum value="false" text="The end device is not capable of having scalars and divisors associated with set 2 load profile interval data."/>
						<enum value="true" text="The end device is capable of having scalars and divisors associated with set 2 load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="SCALAR_DIVISOR_FLAG_SET3" type="BOOL" startBitInclusive="8">
					<enumerator>
						<enum value="false" text="The end device is not capable of having scalars and divisors associated with set 3 load profile interval data."/>
						<enum value="true" text="The end device is capable of having scalars and divisors associated with set 3 load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="SCALAR_DIVISOR_FLAG_SET4" type="BOOL" startBitInclusive="9">
					<enumerator>
						<enum value="false" text="The end device is not capable of having scalars and divisors associated with set 4 load profile interval data"/>
						<enum value="true" text="The end device is capable of having scalars and divisors associated with set 4 load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="EXTENDED_INT_STATUS_FLAG" type="BOOL" startBitInclusive="10">
					<enumerator>
						<enum value="false" text="The end device is not capable of returning extended interval status with load profile interval data."/>
						<enum value="true" text="The end device is capable of returning extended interval status with load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="SIMPLE_INT_STATUS_FLAG" type="BOOL" startBitInclusive="11">
					<enumerator>
						<enum value="false" text="The end device is not capable of returning simple interval status with load profile interval data."/>
						<enum value="true" text="The end device is capable of returning simple interval status with load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="12" endBitInclusive="15"/>
			</bitField>
			<bitField name="LP_FMATS_BFLD" type="UINT8">
				<description>This set of booleans specifies the format(s) acceptable for use in DIM_LP_TBL (Table 60) and ACT_LP_TBL (Table 61).</description>
				<subElement name="INV_UINT8_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="UINT8 format for intervals is not capable of being used."/>
						<enum value="true" text="An interval format of UINT8 is capable of being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_UINT16_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="UINT16 format for intervals is not capable of being used."/>
						<enum value="true" text="An interval format of UINT16 is capable of being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_UINT32_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="UINT32 format for intervals is not capable of being use"/>
						<enum value="true" text="An interval format of UINT32 is capable of being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_INT8_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="INT8 format for intervals is not capable of being used."/>
						<enum value="true" text="An interval format of INT8 is capable of being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_INT16_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="INT16 format for intervals is not capable of being used."/>
						<enum value="true" text="An interval format of INT16 is capable of being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_INT32_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="INT32 format for intervals is not capable of being used."/>
						<enum value="true" text="An interval format of INT32 is capable of being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_NI_FMAT1_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="NI_FMAT1 format for intervals is not capable of being used."/>
						<enum value="true" text="An interval format of NI_FMAT1 is capable of being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_NI_FMAT2_FLAG" type="BOOL" startBitInclusive="7">
					<enumerator>
						<enum value="false" text="NI_FMAT2 format for intervals is not capable of being used."/>
						<enum value="true" text="An interval format of NI_FMAT2 is capable of being used."/>
					</enumerator>
				</subElement>
			</bitField>
			<packedRecord name="LP_SET_RCD">
				<description>The information defining how each set of load profile information works.</description>
				<element name="LP_MEMORY_LEN" type="UINT32">
					<description>The maximum number of octets of storage available for load profile data. This reflects the combined sizes of tables LP_DATA_SET1_TBL (Table 64), LP_DATA_SET2_TBL (Table 65), LP_DATA_SET3_TBL (Table 66), and LP_DATA_SET4_TBL (Table 67).</description>
				</element>
				<element name="LP_FLAGS" type="LP_FLAGS_BFLD"/>
				<element name="LP_FMATS" type="LP_FMATS_BFLD"/>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.64">
					<then>
						<element name="NBR_BLKS_SET1" type="UINT16">
							<description>The maximum number of interval data blocks which can be contained in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
						<element name="NBR_BLK_INTS_SET1" type="UINT16">
							<description>The maximum number of intervals per data block which can be contained in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
						<element name="NBR_CHNS_SET1" type="UINT8">
							<description>The maximum number of channels of load profile data which can be contained in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
						<element name="MAX_INT_TIME_SET1" type="UINT8">
							<description>The maximum time in minutes for load profile interval duration which can be contained in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.65">
					<then>
						<element name="NBR_BLKS_SET2" type="UINT16">
							<description>The maximum number of interval data blocks which can be contained in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
						<element name="NBR_BLK_INTS_SET2" type="UINT16">
							<description>The maximum number of intervals per data block which can be contained in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
						<element name="NBR_CHNS_SET2" type="UINT8">
							<description>The maximum number of channels of load profile data which can be contained in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
						<element name="MAX_INT_TIME_SET2" type="UINT8">
							<description>The maximum time in minutes for load profile interval duration which can be contained in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.66">
					<then>
						<element name="NBR_BLKS_SET3" type="UINT16">
							<description>The maximum number of interval data blocks which can be contained in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
						<element name="NBR_BLK_INTS_SET3" type="UINT16">
							<description>The maximum number of intervals per data block which can be contained in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
						<element name="NBR_CHNS_SET3" type="UINT8">
							<description>The maximum number of channels of load profile data which can be contained in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
						<element name="MAX_INT_TIME_SET3" type="UINT8">
							<description>The maximum time in minutes for load profile interval duration which can be contained in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.67">
					<then>
						<element name="NBR_BLKS_SET4" type="UINT16">
							<description>The maximum number of interval data blocks which can be contained in LP_DATA_SET4_TBL (Table 67).</description>
						</element>
						<element name="NBR_BLK_INTS_SET4" type="UINT16">
							<description>The maximum number of intervals per data block which can be contained in LP_DATA_SET4_TBL (Table 67).</description>
						</element>
						<element name="NBR_CHNS_SET4" type="UINT8">
							<description>The maximum number of channels of load profile data which can be contained in LP_DATA_SET4_TBL (Table 67).</description>
						</element>
						<element name="MAX_INT_TIME_SET4" type="UINT8">
							<description>The maximum time in minutes for load profile interval duration which can be contained in LP_DATA_SET4_TBL (Table 67).</description>
						</element>
					</then>
				</if>
			</packedRecord>
		</table>
		<?Table 61?>
		<table name="ACT_LP_TBL" number="61" type="LP_SET_RCD" label="Actual load profile table">
			<description>This table contains actual values for the load profile application limiting parameters. These parameters provide for up to four independent sets of load profile data.</description>
			<bitField name="LP_FLAGS_BFLD" type="UINT16">
				<description>This bit field specifies load profile list management capabilities.</description>
				<subElement name="LP_SET1_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="End device is not inhibiting load profile set 1 once an overflow occurs."/>
						<enum value="true" text="End device is inhibiting load profile set 1 once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="LP_SET2_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="End device is not inhibiting load profile set 2 once an overflow occurs."/>
						<enum value="true" text="End device is inhibiting load profile set 2 once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="LP_SET3_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="End device is not inhibiting load profile set 3 once an overflow occurs."/>
						<enum value="true" text="End device is inhibiting load profile set 3 once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="LP_SET4_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="End device is not inhibiting load profile set 4 once an overflow occurs."/>
						<enum value="true" text="End device is inhibiting load profile set 4 once an overflow occurs."/>
					</enumerator>
				</subElement>
				<subElement name="BLK_END_READ_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="The end device is not providing block register reading information."/>
						<enum value="true" text="The end device is providing block register reading information."/>
					</enumerator>
				</subElement>
				<subElement name="BLK_END_PULSE_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="The end device does not have a running pulse accumulator."/>
						<enum value="true" text="The end device does have a running pulse accumulator."/>
					</enumerator>
				</subElement>
				<subElement name="SCALAR_DIVISOR_FLAG_SET1" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="The end device does not have scalars and divisors associated with set 1 load profile interval data."/>
						<enum value="true" text="The end device does have scalars and divisors associated with set 1 load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="SCALAR_DIVISOR_FLAG_SET2" type="BOOL" startBitInclusive="7">
					<enumerator>
						<enum value="false" text="The end device does not have scalars and divisors associated with set 2 load profile interval data."/>
						<enum value="true" text="The end device has scalars and divisors associated with set 2 load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="SCALAR_DIVISOR_FLAG_SET3" type="BOOL" startBitInclusive="8">
					<enumerator>
						<enum value="false" text="The end device does not have scalars and divisors associated with set 3 load profile interval data."/>
						<enum value="true" text="The end device does have scalars and divisors associated with set 3 load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="SCALAR_DIVISOR_FLAG_SET4" type="BOOL" startBitInclusive="9">
					<enumerator>
						<enum value="false" text="The end device does not have scalars and divisors associated with set 4 load profile interval data."/>
						<enum value="true" text="The end device does have scalars and divisors associated with set 4 load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="EXTENDED_INT_STATUS_FLAG" type="BOOL" startBitInclusive="10">
					<enumerator>
						<enum value="false" text="The end device does not return extended interval status with load profile interval data"/>
						<enum value="true" text="The end device returns extended interval status with load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="SIMPLE_INT_STATUS_FLAG" type="BOOL" startBitInclusive="11">
					<enumerator>
						<enum value="false" text="The end device does not return simple interval status with load profile interval data."/>
						<enum value="true" text="The end device returns simple interval status with load profile interval data."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="12" endBitInclusive="15"/>
			</bitField>
			<bitField name="LP_FMATS_BFLD" type="UINT8">
				<description>This set of booleans specifies the format(s) in use in LP_CTRL_TBL (Table 62).</description>
				<subElement name="INV_UINT8_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="UINT8 format can not be in use."/>
						<enum value="true" text="An interval format of UINT8  is being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_UINT16_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="UINT16 format can not be in use."/>
						<enum value="true" text="An interval format of UINT16 is being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_UINT32_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="UINT32 format can not be in use."/>
						<enum value="true" text="An interval format of UINT32 can be used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_INT8_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="INT8 format can not be in use."/>
						<enum value="true" text="An interval format of INT8 is being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_INT16_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="INT16 format can not be in use."/>
						<enum value="true" text="An interval format of INT16 is being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_INT32_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="INT32 format can not be in us"/>
						<enum value="true" text="An interval format of INT32 is being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_NI_FMAT1_FLAG" type="BOOL" startBitInclusive="6">
					<enumerator>
						<enum value="false" text="NI_FMAT1 format can not be in use."/>
						<enum value="true" text="An interval format of NI_FMAT1 is being used."/>
					</enumerator>
				</subElement>
				<subElement name="INV_NI_FMAT2_FLAG" type="BOOL" startBitInclusive="7">
					<enumerator>
						<enum value="false" text="NI_FMAT2 format can not be in use."/>
						<enum value="true" text="An interval format of NI_FMAT2 is being used."/>
					</enumerator>
				</subElement>
			</bitField>
			<packedRecord name="LP_SET_RCD">
				<description>The information defining how each set of load profile information works.</description>
				<element name="LP_MEMORY_LEN" type="UINT32">
					<description>The current number of octets of storage being used for load profile data. This reflects the combined sizes of tables LP_DATA_SET1_TBL (Table 64), LP_DATA_SET2_TBL (Table 65), LP_DATA_SET3_TBL (Table 66), and LP_DATA_SET4_TBL (Table 67).</description>
				</element>
				<element name="LP_FLAGS" type="LP_FLAGS_BFLD"/>
				<element name="LP_FMATS" type="LP_FMATS_BFLD"/>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.64">
					<then>
						<element name="NBR_BLKS_SET1" type="UINT16">
							<description>The actual number of interval data blocks in use in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
						<element name="NBR_BLK_INTS_SET1" type="UINT16">
							<description>The actual number of intervals per data block contained in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
						<element name="NBR_CHNS_SET1" type="UINT8">
							<description>The actual number of channels of load profile data contained in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
						<element name="MAX_INT_TIME_SET1" type="UINT8">
							<description>The actual interval duration in minutes for load profile contained in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.65">
					<then>
						<element name="NBR_BLKS_SET2" type="UINT16">
							<description>The actual number of interval data blocks in use in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
						<element name="NBR_BLK_INTS_SET2" type="UINT16">
							<description>The actual number of intervals per data block contained in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
						<element name="NBR_CHNS_SET2" type="UINT8">
							<description>The actual number of channels of load profile data contained in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
						<element name="MAX_INT_TIME_SET2" type="UINT8">
							<description>The actual interval duration in minutes for load profile contained in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.66">
					<then>
						<element name="NBR_BLKS_SET3" type="UINT16">
							<description>The actual number of interval data blocks in use in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
						<element name="NBR_BLK_INTS_SET3" type="UINT16">
							<description>The actual number of intervals per data block contained in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
						<element name="NBR_CHNS_SET3" type="UINT8">
							<description>The actual number of channels of load profile data contained in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
						<element name="MAX_INT_TIME_SET3" type="UINT8">
							<description>The actual interval duration in minutes for load profile contained in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.67">
					<then>
						<element name="NBR_BLKS_SET4" type="UINT16">
							<description>The actual number of interval data blocks in use in LP_DATA_SET4_TBL (Table 67).</description>
						</element>
						<element name="NBR_BLK_INTS_SET4" type="UINT16">
							<description>The actual number of intervals per data block contained in LP_DATA_SET4_TBL (Table 6</description>
						</element>
						<element name="NBR_CHNS_SET4" type="UINT8">
							<description>The actual number of channels of load profile data contained in LP_DATA_SET4_TBL (Table 67).</description>
						</element>
						<element name="MAX_INT_TIME_SET4" type="UINT8">
							<description>The actual interval duration in minutes for load profile contained in LP_DATA_SET4_TBL (Table 67).</description>
						</element>
					</then>
				</if>
			</packedRecord>
		</table>
		<?Table 62?>
		<table name="LP_CTRL_TBL" number="62" type="DATA_SELECTION_RCD" label="Load profile control table">
			<description>This table defines the data sources and formats used in the collection of load profile data.</description>
			<bitField name="LP_CTRL_FLAGS_BFLD" type="UINT8">
				<subElement name="END_RDG_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="The channel does not have an associated end reading."/>
						<enum value="true" text="The channel does have an associated end reading."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="1" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="LP_SOURCE_SEL_RCD">
				<element name="CHNL_FLAG" type="LP_CTRL_FLAGS_BFLD">
					<description>Flags associated with a particular channel.</description>
				</element>
				<element name="LP_SOURCE_SELECT" type="UINT8">
					<description>This is an index into SOURCES_TBL (Table 16) that identifies source of the interval data for a specific channel.</description>
				</element>
				<element name="END_BLK_RDG_SOURCE_SELECT" type="UINT8">
					<description>This is an index into SOURCES_TBL (TABLE 16) that identifies source of the block end time reading data for a specific channel.</description>
				</element>
			</packedRecord>
			<enumerator name="INT_FMT_ENUM">
				<enum value="1" text="UINT8"/>
				<enum value="2" text="UINT16"/>
				<enum value="4" text="UINT32"/>
				<enum value="8" text="INT8"/>
				<enum value="16" text="INT16"/>
				<enum value="32" text="INT32"/>
				<enum value="64" text="NI_FMAT1"/>
				<enum value="128" text="NI_FMAT2"/>
			</enumerator>
			<packedRecord name="DATA_SELECTION_RCD">
				<description>Record that stores all information concerning each of the selected channels.</description>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.64">
					<then>
						<array name="LP_SEL_SET1" type="LP_SOURCE_SEL_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET1">
							<description>This is an array of records containing indices into the SOURCES_TBL (TABLE 16) that identifies sources of data for each channel of interval data in LP_DATA_SET1_TBL (Table 64).</description>
						</array>
						<element name="INT_FMT_CDE1" type="UINT8" enumerator="INT_FMT_ENUM">
							<description>This is a single code selecting the format for all interval data in LP_DATA_SET1_TBL (Table 64).</description>
						</element>
						<if condition="ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET1">
							<then>
								<array name="SCALARS_SET1" type="UINT16" dimension="ACT_LP_TBL.NBR_CHNS_SET1">
									<description>An array of scalars applied to interval data before recording pulse data in load profile set 1. </description>
								</array>
								<array name="DIVISOR_SET1" type="UINT16" dimension="ACT_LP_TBL.NBR_CHNS_SET1">
									<description>An array of divisors applied to interval data before recording pulse data in load profile set 1. </description>
								</array>
							</then>
						</if>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.65">
					<then>
						<array name="LP_SEL_SET2" type="LP_SOURCE_SEL_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET2">
							<description>This is an array of records containing indices into the SOURCES_TBL (TABLE 16) that identifies sources of data for each channel of interval data in LP_DATA_SET2_TBL (Table 65).</description>
						</array>
						<element name="INT_FMT_CDE2" type="UINT8">
							<description>This is a single code selecting the format for all interval data in LP_DATA_SET2_TBL (Table 65).</description>
						</element>
						<if condition="ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET2">
							<then>
								<array name="SCALARS_SET2" type="UINT16" dimension="ACT_LP_TBL.NBR_CHNS_SET2">
									<description>An array of scalars applied to interval data before recording pulse data in load profile set 2. </description>
								</array>
								<array name="DIVISOR_SET2" type="UINT16" dimension="ACT_LP_TBL.NBR_CHNS_SET2">
									<description>An array of divisors applied to interval data before recording pulse data in load profile set 2. </description>
								</array>
							</then>
						</if>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.66">
					<then>
						<array name="LP_SEL_SET3" type="LP_SOURCE_SEL_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET3">
							<description>This is an array of records containing indices into the SOURCES_TBL (TABLE 16) that identifies sources of data for each channel of interval data in LP_DATA_SET3_TBL (Table 66).</description>
						</array>
						<element name="INT_FMT_CDE3" type="UINT8">
							<description>This is a single code selecting the format for all interval data in LP_DATA_SET3_TBL (Table 66).</description>
						</element>
						<if condition="ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET3">
							<then>
								<array name="SCALARS_SET3" type="UINT16" dimension="ACT_LP_TBL.NBR_CHNS_SET3">
									<description>An array of scalars applied to interval data before recording pulse data in load profile set 3.  </description>
								</array>
								<array name="DIVISOR_SET3" type="UINT16" dimension="ACT_LP_TBL.NBR_CHNS_SET3">
									<description>An array of divisors applied to interval data before recording pulse data in load profile set 3.</description>
								</array>
							</then>
						</if>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.67">
					<then>
						<array name="LP_SEL_SET4" type="LP_SOURCE_SEL_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET4">
							<description>This is an array of records containing indices into the SOURCES_TBL (TABLE 16) that identifies sources of data for each channel of interval data in LP_DATA_SET4_TBL (Table 67).</description>
						</array>
						<element name="INT_FMT_CDE4" type="UINT8">
							<description>This is a single code selecting the format for all interval data in LP_DATA_SET4_TBL (Table 67).</description>
						</element>
						<if condition="ACT_LP_TBL.SCALAR_DIVISOR_FLAG_SET4">
							<then>
								<array name="SCALARS_SET4" type="UINT16" dimension="ACT_LP_TBL.NBR_CHNS_SET4">
									<description>An array of scalars applied to interval data before recording pulse data in load profile set 4.  </description>
								</array>
								<array name="DIVISOR_SET4" type="UINT16" dimension="ACT_LP_TBL.NBR_CHNS_SET4">
									<description>An array of divisors applied to interval data before recording pulse data in load profile set 4.</description>
								</array>
							</then>
						</if>
					</then>
				</if>
			</packedRecord>
		</table>
		<?Table 63?>
		<table name="LP_STATUS_TBL" number="63" type="LP_STATUS_RCD" label="Load profile status table">
			<description>This table contains the status of each load profile data set.</description>
			<bitField name="LP_SET_STATUS_BFLD" type="UINT8">
				<subElement name="BLOCK_ORDER" type="UINT" startBitInclusive="0">
					<enumerator>
						<enum value="0" text="Blocks of load profile data are transported in ascending order (N is older than N+1)."/>
						<enum value="1" text="Blocks of load profile data are transported in descending order (N is newer than N+1)."/>
					</enumerator>
				</subElement>
				<subElement name="OVERFLOW_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Overflow has not occurred."/>
						<enum value="true" text="An attempt was made to enter an interval in a new data block such that the number of unread blocks exceeded the actual number of possible blocks in load profile storage."/>
					</enumerator>
				</subElement>
				<subElement name="LIST_TYPE" type="UINT" startBitInclusive="2">
					<enumerator>
						<enum value="0" text="FIFO (First In First Out) as placed in load profile storage."/>
						<enum value="1" text="Circular list as placed in load profile storage."/>
					</enumerator>
				</subElement>
				<subElement name="BLOCK_INHIBIT_OVERFLOW_FLAG" type="BOOL" startBitInclusive="3">
					<description>The same value as ACT_LP_TBL.LP_SETn_INHIBIT_OVF_FLAG.</description>
				</subElement>
				<subElement name="INTERVAL_ORDER" type="UINT" startBitInclusive="4">
					<enumerator>
						<enum value="0" text="Intervals in each block of load profile are transported in ascending order (N is older than N+1)."/>
						<enum value="1" text="Intervals in each block of load profile are transported in descending order (N is newer than N+1)."/>
					</enumerator>
				</subElement>
				<subElement name="ACTIVE_MODE_FLAG" type="BOOL" startBitInclusive="5">
					<enumerator>
						<enum value="false" text="This data set is not collecting data."/>
						<enum value="true" text="This data set is collecting data.	"/>
					</enumerator>
				</subElement>
				<subElement name="TEST_MODE" type="UINT" startBitInclusive="6">
					<enumerator>
						<enum value="0" text="This data set is in the normal mod"/>
						<enum value="1" text="This data set is in the test mode."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="7"/>
			</bitField>
			<packedRecord name="SET_STATUS_RCD">
				<element name="LP_SET_STATUS_FLAGS" type="LP_SET_STATUS_BFLD"/>
				<element name="NBR_VALID_BLOCKS" type="UINT16">
					<description>Number of valid load profile data blocks in load profile data tables LP_DATA_SET1_TBL (Table 64), LP_DATA_SET2_TBL (Table 65), LP_DATA_SET3_TBL (Table 66), and LP_DATA_SET4_TBL (Table 67), load profile block arrays.  The range is zero (meaning no data blocks in load profile Data Table) to the actual dimension of the number of load profile data blocks.  The block is considered valid when at least one interval is written.</description>
				</element>
				<element name="LAST_BLOCK_ELEMENT" type="UINT16">
					<description>The array element of the newest valid data block in the load profile data array. This field is valid only if NBR_VALID_BLOCKS is greater than zero.</description>
				</element>
				<element name="LAST_BLOCK_SEQ_NBR" type="UINT32">
					<description>The sequence number (LP_SEQ_NBR) of the last element (LAST_BLOCK_ELEMENT) in the load profile data array.</description>
				</element>
				<element name="NBR_UNREAD_BLOCKS" type="UINT16">
					<description>The number of load profile blocks that have not been read.  This number is only updated through a procedure.</description>
				</element>
				<element name="NBR_VALID_INT" type="UINT16">
					<description>Number of valid intervals stored in the last load profile block array. The range is zero (meaning no interval in the array) to the actual dimension of the number of intervals per block.</description>
				</element>
			</packedRecord>
			<packedRecord name="LP_STATUS_RCD">
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.64">
					<then>
						<element name="LP_STATUS_SET1" type="LP_SET_STATUS_RCD">
							<description>Status information for profile data set 1.</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.65">
					<then>
						<element name="LP_STATUS_SET2" type="LP_SET_STATUS_RCD">
							<description>Status information for profile data set 2.</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.66">
					<then>
						<element name="LP_STATUS_SET3" type="LP_SET_STATUS_RCD">
							<description>Status information for profile data set 3.</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.67">
					<then>
						<element name="LP_STATUS_SET4" type="LP_SET_STATUS_RCD">
							<description>Status information for profile data set 4.</description>
						</element>
					</then>
				</if>
			</packedRecord>
		</table>
		<?Table 64?>
		<table name="LP_DATA_SET1_TBL" number="64" type="LP_DATA_SET1_RCD" label="Load profile data set 1 table">
			<description>This table contains information on load profile data set one.</description>
			<packedRecord name="INT_FMT1_RCD">
				<description>Selector for the format of the channel data.</description>
				<switch selection="LP_CTRL_TBL.INT_FMT_CDE1">
					<case value="1">
						<element name="ITEM" type="UINT8"/>
					</case>
					<case value="2">
						<element name="ITEM" type="UINT16"/>
					</case>
					<case value="4">
						<element name="ITEM" type="UINT32"/>
					</case>
					<case value="8">
						<element name="ITEM" type="INT8"/>
					</case>
					<case value="16">
						<element name="ITEM" type="INT16"/>
					</case>
					<case value="32">
						<element name="ITEM" type="INT32"/>
					</case>
					<case value="64">
						<element name="ITEM" type="NI_FMAT1"/>
					</case>
					<case value="128">
						<element name="ITEM" type="NI_FMAT2"/>
					</case>
				</switch>
			</packedRecord>
			<bitField name="FIRST_EXTENDED_STATUS_BFLD" type="UINT8">
				<subElement name="DAYLIGHT_SAVING_TIME" type="BOOL" startBitInclusive="4">
					<description>Daylight savings time is in effect during or at start of interval</description>
				</subElement>
				<subElement name="POWER_FAIL" type="BOOL" startBitInclusive="5">
					<description>Power fail within interval</description>
				</subElement>
				<subElement name="CLOCK_RESET_FORWARD" type="BOOL" startBitInclusive="6">
					<description>Clock reset forward during interval</description>
				</subElement>
				<subElement name="CLOCK_RESET_BACKWARDS" type="BOOL" startBitInclusive="7">
					<description>Clock reset backwards during interval</description>
				</subElement>
				<subElement name="CHANNEL_STATUS" type="UINT" startBitInclusive="0" endBitInclusive="3" enumerator="CHANNEL_STATUS_ENUM"/>
			</bitField>
			<bitField name="EXTENDED_STATUS_BFLD" type="UINT8">
				<subElement name="CHANNEL_STATUS" type="UINT" startBitInclusive="4" endBitInclusive="7" enumerator="CHANNEL_STATUS_ENUM"/>
				<subElement name="CHANNEL_STATUS" type="UINT" startBitInclusive="0" endBitInclusive="3" enumerator="CHANNEL_STATUS_ENUM"/>
			</bitField>
			<bitField name="LAST_EXTENDED_STATUS_BFLD" type="UINT8">
				<subElement name="CHANNEL_STATUS" type="UINT" startBitInclusive="4" endBitInclusive="7" enumerator="CHANNEL_STATUS_ENUM"/>
				<subElement name="FILLER" type="FILL" startBitInclusive="0" endBitInclusive="3"/>
			</bitField>
			<packedRecord name="INT_SET1_RCD">
				<if condition="ACT_LP_TBL.EXTENDED_INT_STATUS_FLAG and ACT_LP_TBL.NBR_CHNS_SET1 > 0">
					<then>
						<element name="FIRST_EXTENDED_STATUS" type="FIRST_EXTENDED_STATUS_BFLD"/>
						<if condition="ACT_LP_TBL.NBR_CHNS_SET1 > 2">
							<then>
								<array name="EXTENDED_INT_STATUS" type="EXTENDED_STATUS_BFLD" dimension="(ACT_LP_TBL.NBR_CHNS_SET1-2) / 2 "/>
							</then>
						</if>
						<if condition="ACT_LP_TBL.NBR_CHNS_SET1 % 2 = 0">
							<then>
								<element name="LAST_EXTENDED_STATUS" type="LAST_EXTENDED_STATUS_BFLD"/>
							</then>
						</if>
					</then>
				</if>
				<array name="INT_DATA" type="INT_FMT1_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET1">
					<description>This is an array of interval values for each channel in the block, recorded at a single time. Channels are presented in the same order. The order of the channels matches their definition in LP_CTRL_TBL (Table 62).</description>
				</array>
			</packedRecord>
			<packedRecord name="READINGS_RCD">
				<if condition="ACT_LP_TBL.BLK_END_READ_FLAG">
					<then>
						<element name="BLOCK_END_READ" type="NI_FMAT1">
							<description>The value of the block end reading both data and readings.</description>
						</element>
					</then>
				</if>
				<if condition="ACT_LP_TBL.BLK_END_PULSE_FLAG">
					<then>
						<element name="BLOCK_END_PULSE" type="UINT32">
							<description>The values of the accumulator at the end of a user defined interval.</description>
						</element>
					</then>
				</if>
			</packedRecord>
			<packedRecord name="LP_BLK1_DAT_RCD">
				<element name="BLK_END_TIME" type="STIME_DATE">
					<description>This parameter contains the ending date and time of the last interval of data entered in this data block. </description>
				</element>
				<array name="END_READINGS" type="READINGS_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET1">
					<description>This is an array of readings of the end reading sources, taken at the interval end time of the last interval of data entered in the block. One end reading is provided for each channel in the block. The order of the readings matches their definition in LP_CTRL_TBL (Table 62). The format is controlled by READING_RCD.</description>
				</array>
				<if condition="ACT_LP_TBL.SIMPLE_INT_STATUS_FLAG">
					<then>
						<set name="SIMPLE_INT_STATUS" dimension="ACT_LP_TBL.NBR_BLK_INTS_SET1">
							<description>This is a set of status bits, one per interval, that specifies whether the corresponding interval is valid.</description>
						</set>
					</then>
				</if>
				<array name="LP_INT" type="INT_SET1_RCD" dimension="ACT_LP_TBL.NBR_BLK_INTS_SET1">
					<description>This is an array of interval records in the block. Intervals are stored in an chronological order, specified by INTERVAL_ORDER, with the oldest reading set appearing in the first record.</description>
				</array>
			</packedRecord>
			<packedRecord name="LP_DATA_SET1_RCD">
				<array name="LP_DATA_SETS1" type="LP_BLK1_DAT_RCD" dimension="ACT_LP_TBL.NBR_BLKS_SET1">
					<description>This is an array of load profile data blocks.</description>
				</array>
			</packedRecord>
		</table>
		<?TODO Table 65?>
		<table name="LP_DATA_SET2_TBL" number="65" type="LP_DATA_SET2_RCD" label="Load profile data set 2 table">
			<description>This table contains information on load profile data set two.</description>
			<packedRecord name="INT_FMT1_RCD">
				<description>Selector for the format of the channel data.</description>
				<switch selection="LP_CTRL_TBL.INT_FMT_CDE2">
					<case value="1">
						<element name="ITEM" type="UINT8"/>
					</case>
					<case value="2">
						<element name="ITEM" type="UINT16"/>
					</case>
					<case value="4">
						<element name="ITEM" type="UINT32"/>
					</case>
					<case value="8">
						<element name="ITEM" type="INT8"/>
					</case>
					<case value="16">
						<element name="ITEM" type="INT16"/>
					</case>
					<case value="32">
						<element name="ITEM" type="INT32"/>
					</case>
					<case value="64">
						<element name="ITEM" type="NI_FMAT1"/>
					</case>
					<case value="128">
						<element name="ITEM" type="NI_FMAT2"/>
					</case>
				</switch>
			</packedRecord>
			<packedRecord name="INT_SET2_RCD">
				<if condition="ACT_LP_TBL.EXTENDED_INT_STATUS_FLAG and ACT_LP_TBL.NBR_CHNS_SET2 > 0">
					<then>
						<element name="FIRST_EXTENDED_STATUS" type="LP_DATA_SET1_TBL.FIRST_EXTENDED_STATUS_BFLD"/>
						<if condition="ACT_LP_TBL.NBR_CHNS_SET2 > 2">
							<then>
								<array name="EXTENDED_INT_STATUS" type="LP_DATA_SET1_TBL.EXTENDED_STATUS_BFLD" dimension="(ACT_LP_TBL.NBR_CHNS_SET2-2) / 2 "/>
							</then>
						</if>
						<if condition="ACT_LP_TBL.NBR_CHNS_SET2 % 2 = 0">
							<then>
								<element name="LAST_EXTENDED_STATUS" type="LP_DATA_SET1_TBL.LAST_EXTENDED_STATUS_BFLD"/>
							</then>
						</if>
					</then>
				</if>
				<array name="INT_DATA" type="INT_FMT2_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET2">
					<description>This is an array of interval values for each channel in the block, recorded at a single time. Channels are presented in the same order. The order of the channels matches their definition in LP_CTRL_TBL (Table 62).</description>
				</array>
			</packedRecord>
			<packedRecord name="LP_BLK2_DAT_RCD">
				<element name="BLK_END_TIME" type="STIME_DATE">
					<description>This parameter contains the ending date and time of the last interval of data entered in this data block.</description>
				</element>
				<array name="END_READINGS" type="LP_DATA_SET1_TBL.READINGS_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET2">
					<description>This is an array of readings of the end reading sources, taken at the interval end time of the last interval of data entered in the block. One end reading is provided for each channel in the block. The order of the readings matches their definition in LP_CTRL_TBL (Table 62). The format is controlled by READING_RCD.</description>
				</array>
				<if condition="ACT_LP_TBL.SIMPLE_INT_STATUS_FLAG">
					<then>
						<set name="SIMPLE_INT_STATUS" dimension="ACT_LP_TBL.NBR_BLK_INTS_SET2">
							<description>This is a set of status bits, one per interval, that specifies whether the corresponding interval is valid.</description>
						</set>
					</then>
				</if>
				<array name="LP_INT" type="INT_SET2_RCD" dimension="ACT_LP_TBL.NBR_BLK_INTS_SET2">
					<description>This is an array of interval records in the block. Intervals are stored in an chronological order, specified by INTERVAL_ORDER, with the oldest reading set appearing in the first record.</description>
				</array>
			</packedRecord>
			<packedRecord name="LP_DATA_SET2_RCD">
				<array name="LP_DATA_SETS2" type="LP_BLK2_DAT_RCD" dimension="ACT_LP_TBL.NBR_BLKS_SET2">
					<description>This is an array of load profile data blocks.</description>
				</array>
			</packedRecord>
		</table>
		<?TODO Table 66?>
		<table name="LP_DATA_SET3_TBL" number="66" type="LP_DATA_SET3_RCD" label="Load profile data set 3 table">
			<description>This table contains information on load profile data set three.</description>
			<packedRecord name="INT_FMT1_RCD">
				<description>Selector for the format of the channel data.</description>
				<switch selection="LP_CTRL_TBL.INT_FMT_CDE3">
					<case value="1">
						<element name="ITEM" type="UINT8"/>
					</case>
					<case value="2">
						<element name="ITEM" type="UINT16"/>
					</case>
					<case value="4">
						<element name="ITEM" type="UINT32"/>
					</case>
					<case value="8">
						<element name="ITEM" type="INT8"/>
					</case>
					<case value="16">
						<element name="ITEM" type="INT16"/>
					</case>
					<case value="32">
						<element name="ITEM" type="INT32"/>
					</case>
					<case value="64">
						<element name="ITEM" type="NI_FMAT1"/>
					</case>
					<case value="128">
						<element name="ITEM" type="NI_FMAT2"/>
					</case>
				</switch>
			</packedRecord>
			<packedRecord name="INT_SET3_RCD">
				<if condition="ACT_LP_TBL.EXTENDED_INT_STATUS_FLAG and ACT_LP_TBL.NBR_CHNS_SET3 > 0">
					<then>
						<element name="FIRST_EXTENDED_STATUS" type="LP_DATA_SET1_TBL.FIRST_EXTENDED_STATUS_BFLD"/>
						<if condition="ACT_LP_TBL.NBR_CHNS_SET3 > 2">
							<then>
								<array name="EXTENDED_INT_STATUS" type="LP_DATA_SET1_TBL.EXTENDED_STATUS_BFLD" dimension="(ACT_LP_TBL.NBR_CHNS_SET3-2) / 2 "/>
							</then>
						</if>
						<if condition="ACT_LP_TBL.NBR_CHNS_SET3 % 2 = 0">
							<then>
								<element name="LAST_EXTENDED_STATUS" type="LP_DATA_SET1_TBL.LAST_EXTENDED_STATUS_BFLD"/>
							</then>
						</if>
					</then>
				</if>
				<array name="INT_DATA" type="INT_FMT3_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET3">
					<description>This is an array of interval values for each channel in the block, recorded at a single time. Channels are presented in the same order. The order of the channels matches their definition in LP_CTRL_TBL (Table 62).</description>
				</array>
			</packedRecord>
			<packedRecord name="LP_BLK3_DAT_RCD">
				<element name="BLK_END_TIME" type="STIME_DATE">
					<description>This parameter contains the ending date and time of the last interval of data entered in this data block. </description>
				</element>
				<array name="END_READINGS" type="LP_DATA_SET1_TBL.READINGS_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET3">
					<description>This is an array of readings of the end reading sources, taken at the interval end time of the last interval of data entered in the block. One end reading is provided for each channel in the block. The order of the readings matches their definition in LP_CTRL_TBL (Table 62). The format is controlled by READING_RCD.</description>
				</array>
				<if condition="ACT_LP_TBL.SIMPLE_INT_STATUS_FLAG">
					<then>
						<set name="SIMPLE_INT_STATUS" dimension="ACT_LP_TBL.NBR_BLK_INTS_SET3">
							<description>This is a set of status bits, one per interval, that specifies whether the corresponding interval is valid.</description>
						</set>
					</then>
				</if>
				<array name="LP_INT" type="INT_SET3_RCD" dimension="ACT_LP_TBL.NBR_BLK_INTS_SET3">
					<description>This is an array of interval records in the block. Intervals are stored in an chronological order, specified by INTERVAL_ORDER, with the oldest reading set appearing in the first record.</description>
				</array>
			</packedRecord>
			<packedRecord name="LP_DATA_SET3_RCD">
				<array name="LP_DATA_SETS3" type="LP_BLK3_DAT_RCD" dimension="ACT_LP_TBL.NBR_BLKS_SET2">
					<description>This is an array of load profile data blocks.</description>
				</array>
			</packedRecord>
		</table>
		<?TODO Table 67?>
		<table name="LP_DATA_SET4_TBL" number="67" type="LP_DATA_SET4_RCD" label="Load profile data set 4  table">
			<description>This table contains information on load profile data set four.</description>
			<packedRecord name="INT_FMT1_RCD">
				<description>Selector for the format of the channel data.</description>
				<switch selection="LP_CTRL_TBL.INT_FMT_CDE4">
					<case value="1">
						<element name="ITEM" type="UINT8"/>
					</case>
					<case value="2">
						<element name="ITEM" type="UINT16"/>
					</case>
					<case value="4">
						<element name="ITEM" type="UINT32"/>
					</case>
					<case value="8">
						<element name="ITEM" type="INT8"/>
					</case>
					<case value="16">
						<element name="ITEM" type="INT16"/>
					</case>
					<case value="32">
						<element name="ITEM" type="INT32"/>
					</case>
					<case value="64">
						<element name="ITEM" type="NI_FMAT1"/>
					</case>
					<case value="128">
						<element name="ITEM" type="NI_FMAT2"/>
					</case>
				</switch>
			</packedRecord>
			<packedRecord name="INT_SET4_RCD">
				<if condition="ACT_LP_TBL.EXTENDED_INT_STATUS_FLAG and ACT_LP_TBL.NBR_CHNS_SET4 > 0">
					<then>
						<element name="FIRST_EXTENDED_STATUS" type="LP_DATA_SET1_TBL.FIRST_EXTENDED_STATUS_BFLD"/>
						<if condition="ACT_LP_TBL.NBR_CHNS_SET4 > 2">
							<then>
								<array name="EXTENDED_INT_STATUS" type="LP_DATA_SET1_TBL.EXTENDED_STATUS_BFLD" dimension="(ACT_LP_TBL.NBR_CHNS_SET4-2) / 2 "/>
							</then>
						</if>
						<if condition="ACT_LP_TBL.NBR_CHNS_SET4 % 2 = 0">
							<then>
								<element name="LAST_EXTENDED_STATUS" type="LP_DATA_SET1_TBL.LAST_EXTENDED_STATUS_BFLD"/>
							</then>
						</if>
					</then>
				</if>
				<array name="INT_DATA" type="INT_FMT4_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET4">
					<description>This is an array of interval values for each channel in the block, recorded at a single time. Channels are presented in the same order. The order of the channels matches their definition in LP_CTRL_TBL (Table 62).</description>
				</array>
			</packedRecord>
			<packedRecord name="LP_BLK4_DAT_RCD">
				<element name="BLK_END_TIME" type="STIME_DATE">
					<description>This parameter contains the ending date and time of the last interval of data entered in this data block. </description>
				</element>
				<array name="END_READINGS" type="LP_DATA_SET1_TBL.READINGS_RCD" dimension="ACT_LP_TBL.NBR_CHNS_SET4">
					<description>This is an array of readings of the end reading sources, taken at the interval end time of the last interval of data entered in the block. One end reading is provided for each channel in the block. The order of the readings matches their definition in LP_CTRL_TBL (Table 62). The format is controlled by READING_RCD.</description>
				</array>
				<if condition="ACT_LP_TBL.SIMPLE_INT_STATUS_FLAG">
					<then>
						<set name="SIMPLE_INT_STATUS" dimension="ACT_LP_TBL.NBR_BLK_INTS_SET4">
							<description>This is a set of status bits, one per interval, that specifies whether the corresponding interval is valid.</description>
						</set>
					</then>
				</if>
				<array name="LP_INT" type="INT_SET4_RCD" dimension="ACT_LP_TBL.NBR_BLK_INTS_SET4">
					<description>This is an array of interval records in the block. Intervals are stored in an chronological order, specified by INTERVAL_ORDER, with the oldest reading set appearing in the first record.</description>
				</array>
			</packedRecord>
			<packedRecord name="LP_DATA_SET4_RCD">
				<array name="LP_DATA_SETS4" type="LP_BLK4_DAT_RCD" dimension="ACT_LP_TBL.NBR_BLKS_SET4">
					<description>This is an array of load profile data blocks.</description>
				</array>
			</packedRecord>
		</table>
	</decade>
	<decade name="HISTORY_EVENT_DEC" number="7" label="History and event logs">
		<description>This decade contains the tables associated with the maintenance of the History and Event Logs.</description>
		<?Table 70?>
		<table name="DIM_LOG_TBL" number="70" type="LOG_RCD" label="Dimension log table">
			<description>This table defines the maximum size and capabilities of the History and Event Log decade.</description>
			<bitField name="LOG_FLAGS_BFLD" type="UINT8">
				<subElement name="EVENT_NUMBER_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="A common event number can not be maintained in the History and Event Logs."/>
						<enum value="true" text="A common event number can be maintained in the History and Event Logs."/>
					</enumerator>
				</subElement>
				<subElement name="HIST_DATE_TIME_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Date and time can not be maintained in the History Log."/>
						<enum value="true" text="Date and time can be maintained in the History Log."/>
					</enumerator>
				</subElement>
				<subElement name="HIST_SEQ_NBR_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="A sequence number can not be transported through the History Log."/>
						<enum value="true" text="A sequence number can be transported through the History Log."/>
					</enumerator>
				</subElement>
				<subElement name="HIST_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="History Log is not capable of inhibiting overflow."/>
						<enum value="true" text="History Log is capable of inhibiting overflow."/>
					</enumerator>
				</subElement>
				<subElement name="EVENT_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Event Log is not capable of being blocked."/>
						<enum value="true" text="Event Log is capable of being blocked."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="5" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="LOG_RCD">
				<element name="LOG_FLAGS" type="LOG_FLAGS_BFLD"/>
				<element name="NBR_STD_EVENTS" type="UINT8">
					<description>Maximum number of octets in the set  EVENTS_SUPPORTED_TBL.-STD_EVENTS_SUPPORTED (Table 72).</description>
				</element>
				<element name="NBR_MFG_EVENTS" type="UINT8">
					<description>Maximum number of octets in the set EVENTS_SUPPORTED_TBL.-MFG_EVENTS_SUPPORTED (Table 72).</description>
				</element>
				<element name="HIST_DATA_LENGTH" type="UINT8">
					<description>Maximum number of octets in the HISTORY_LOG_DATA_TBL.-HISTORY_ARGUMENT (Table 74).</description>
				</element>
				<element name="EVENT_DATA_LENGTH" type="UINT8">
					<description>Maximum number of octets in the EVENT_LOG_DATA_TBL.EVENT_ARGUMENT (Table 76).</description>
				</element>
				<element name="NBR_HISTORY_ENTRIES" type="UINT16">
					<description>Maximum number of entries in the history log in HISTORY_LOG_DATA_TBL (Table 74).</description>
				</element>
				<element name="NBR_EVENT_ENTRIES" type="UINT16">
					<description>Maximum number of entries in the event log in. EVENT_LOG_DATA_TBL (Table 76).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 71?>
		<table name="ACT_LOG_TBL" number="71" type="LOG_RCD" label="Actual log table">
			<description>This table defines the actual size and capabilities of the History and Event Log decade.</description>
			<bitField name="LOG_FLAGS_BFLD" type="UINT8" redefine="DIM_LOG_TBL.LOG_FLAGS_BFLD">
				<subElement name="EVENT_NUMBER_FLAG" type="BOOL" startBitInclusive="0">
					<enumerator>
						<enum value="false" text="A common event number is not maintained in the History and Event Logs."/>
						<enum value="true" text="A common event number is maintained in the History and Event Logs."/>
					</enumerator>
				</subElement>
				<subElement name="HIST_DATE_TIME_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="A date and time is not maintained in the History Log."/>
						<enum value="true" text="A date and time is maintained in the History Log."/>
					</enumerator>
				</subElement>
				<subElement name="HIST_SEQ_NBR_FLAG" type="BOOL" startBitInclusive="2">
					<enumerator>
						<enum value="false" text="A sequence number is not transported through the History Log."/>
						<enum value="true" text="A sequence number is transported through the History Log."/>
					</enumerator>
				</subElement>
				<subElement name="HIST_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="History Log is not inhibiting new entries when an overflow condition exists."/>
						<enum value="true" text="History Log is inhibiting new entries when an overflow condition exists."/>
					</enumerator>
				</subElement>
				<subElement name="EVENT_INHIBIT_OVF_FLAG" type="BOOL" startBitInclusive="4">
					<enumerator>
						<enum value="false" text="Event Log is not inhibiting new entries when an overflow condition exists."/>
						<enum value="true" text="Event Log is inhibiting new entries when an overflow condition exists."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="5" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="LOG_RCD" redefine="DIM_LOG_TBL.LOG_RCD">
				<element name="LOG_FLAGS" type="LOG_FLAGS_BFLD"/>
				<element name="NBR_STD_EVENTS" type="UINT8">
					<description>Number of octets in the set  EVENTS_SUPPORTED_TBL.-STD_EVENTS_SUPPORTED (Table 72).</description>
				</element>
				<element name="NBR_MFG_EVENTS" type="UINT8">
					<description>Number of octets in the set EVENTS_SUPPORTED_TBL.-MFG_EVENTS_SUPPORTED (Table 72).</description>
				</element>
				<element name="HIST_DATA_LENGTH" type="UINT8">
					<description>Number of octets in the HISTORY_ LOG_DATA_TBL.HISTORY_ARGUMENT (Table 74).</description>
				</element>
				<element name="EVENT_DATA_LENGTH" type="UINT8">
					<description>Number of octets in the EVENT_ LOG_DATA_TBL.EVENT_ARGUMENT (Table 76).</description>
				</element>
				<element name="NBR_HISTORY_ENTRIES" type="UINT16">
					<description>Actual maximum number of entries in the History Log.</description>
				</element>
				<element name="NBR_EVENT_ENTRIES" type="UINT16">
					<description>Actual maximum number of entries in the Event Log.</description>
				</element>
			</packedRecord>
		</table>
		<?Table 72?>
		<table name="EVENTS_ID_TBL" number="72" type="EVENTS_SUPPORTED_RCD" label="Events identification table">
			<description>This table contains the events that are supported by the end device.</description>
			<packedRecord name="EVENTS_SUPPORTED_RCD">
				<set name="STD_EVENTS_SUPPORTED" dimension="ACT_LOG_TBL.NBR_STD_EVENTS">
					<description>This set variable indicates which of the standard events are supported in the Event Log.  See Annex B, History and Event Log Codes, for standard event codes. Event codes are represented by bits 0 through (8 * ACT_LOG_TBL.NBR_STD_EVENTS - 1), with a 1 representing a TRUE or implemented condition and a 0 representing a FALSE or not implemented condition.</description>
				</set>
				<set name="MFG_EVENTS_SUPPORTED" dimension="ACT_LOG_TBL.NBR_MFG_EVENTS">
					<description>This set variable indicates which of the manufacturer events are supported in the Event Log.  Events  are enabled by bits 0 through (8 * ACT_LOG_TBL.NBR_MFG_EVENTS - 1), with a 1 representing a TRUE or implemented condition and a 0 representing a FALSE or not implemented condition.</description>
				</set>
			</packedRecord>
		</table>
		<?Table 73?>
		<table name="HISTORY_LOG_CTRL_TBL" number="73" type="HISTORY_CTRL_RCD" label="History log control table">
			<description>This table defines the History Log codes to be written to the History Log.  It also defines which specific procedures and or table writes that are to be acknowledged in the History Log.  For a specific procedure or table to be acknowledged, three independent tests shall all be true:  

1) The procedure or table shall be used in the end device, per the GEN_CONFIG_TBL (Table 00).
2) The appropriate History Log code shall be used, per this table.
3) The procedure or table shall be requested to be acknowledged, per this table.</description>
			<packedRecord name="HISTORY_CTRL_RCD">
				<set name="STD_EVENTS_MONITORED_FLAGS" dimension="ACT_LOG_TBL.NBR_STD_EVENTS">
					<description>Bit position is linearly associated with corresponding standard event code.</description>
					<enumerator>
						<enum value="false" text="Turns off event recording for associated event code."/>
						<enum value="true" text="Turns on event recording for associated event code."/>
					</enumerator>
				</set>
				<set name="MFG_EVENTS_MONITORED_FLAGS" dimension="ACT_LOG_TBL.NBR_MFG_EVENTS">
					<description>Bit position is linearly associated with corresponding manufacturer event code.</description>
					<enumerator>
						<enum value="false" text="Turns off event recording for associated event code."/>
						<enum value="true" text="Turns on event recording for associated event code."/>
					</enumerator>
				</set>
				<set name="STD_TBLS_MONITORED_FLAGS" dimension="GEN_CONFIG_TBL.DIM_STD_TBLS_USED">
					<description>Bit position is linearly associated with corresponding standard table number</description>
					<enumerator>
						<enum value="false" text="Turns off event recording for associated table."/>
						<enum value="true" text="Turns on event recording for associated table."/>
					</enumerator>
				</set>
				<set name="MFG_TBLS_MONITORED_FLAGS" dimension="GEN_CONFIG_TBL.DIM_MFG_TBLS_USED">
					<description>Bit position is linearly associated with corresponding manufacturer table number.</description>
					<enumerator>
						<enum value="false" text="Turns off event recording for associated table."/>
						<enum value="true" text="Turns on event recording for associated table."/>
					</enumerator>
				</set>
				<set name="STD_PROC_MONITORED_FLAGS" dimension="GEN_CONFIG_TBL.DIM_STD_PROC_USED">
					<description>Bit position is linearly associated with corresponding standard procedure number.</description>
					<enumerator>
						<enum value="false" text="Turns off event recording for associated procedure."/>
						<enum value="true" text="Turns on event recording for associated procedure."/>
					</enumerator>
				</set>
				<set name="MFG_PROC_MONITORED_FLAGS" dimension="GEN_CONFIG_TBL.DIM_MFG_PROC_USED">
					<description>Bit position is linearly associated with corresponding manufacturer procedure number.</description>
					<enumerator>
						<enum value="false" text="Turns off event recording for associated procedure."/>
						<enum value="true" text="Turns on event recording for associated procedure."/>
					</enumerator>
				</set>
			</packedRecord>
		</table>
		<?Table 74?>
		<table name="HISTORY_LOG_DATA_TBL" number="74" type="HISTORY_LOG_RCD" label="History log data table">
			<description>This table provides the History Log.</description>
			<bitField name="LIST_STATUS_BFLD" type="UINT8">
				<subElement name="ORDER" type="UINT" startBitInclusive="0">
					<enumerator>
						<enum value="0" text="The log is transported in ascending order (element N is older than element N+1)."/>
						<enum value="1" text="The log is transported in descending order (element N is newer than element N+1)."/>
					</enumerator>
				</subElement>
				<subElement name="OVERFLOW_FLAG" type="BOOL" startBitInclusive="1">
					<enumerator>
						<enum value="false" text="Overflow has not occurred."/>
						<enum value="true" text="An attempt was made to enter an event such that the number of unread entries would have exceeded the actual number of possible entries in the log."/>
					</enumerator>
				</subElement>
				<subElement name="LIST_TYPE" type="UINT" startBitInclusive="2">
					<enumerator>
						<enum value="0" text="FIFO - as placed in log."/>
						<enum value="1" text="Circular - as placed in log."/>
					</enumerator>
				</subElement>
				<subElement name="INHIBIT_OVERFLOW_FLAG" type="BOOL" startBitInclusive="3">
					<description>The same value as ACT_LOG_TBL.-HIST_INHIBIT_OVF_FLAG (Table 71).</description>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="4" endBitInclusive="7"/>
			</bitField>
			<bitField name="TABLE_IDB_BFLD" type="UINT16" redefine="TABLE_IDB_BFLD">
				<subElement name="TBL_PROC_NBR" type="UINT" startBitInclusive="0" endBitInclusive="10" min="0" max="2039" enumerator="EVENT_ENUM">
					<description>Event number logged.</description>
				</subElement>
				<subElement name="STD_VS_MFG_FLAG" type="BOOL" startBitInclusive="11">
					<enumerator>
						<enum value="false" text="Event number is standard defined."/>
						<enum value="true" text="Event number is manufacturer defined."/>
					</enumerator>
				</subElement>
				<subElement name="SELECTOR" type="UINT" startBitInclusive="12" endBitInclusive="15">
					<description>Not Used.</description>
				</subElement>
			</bitField>
			<packedRecord name="HISTORY_ENTRY_RCD">
				<if condition="ACT_LOG_TBL.HIST_DATE_TIME_FLAG">
					<then>
						<element name="HISTORY_TIME" type="LTIME_DATE">
							<description>Date and time of History Log entry.</description>
						</element>
					</then>
				</if>
				<if condition="ACT_LOG_TBL.EVENT_NUMBER_FLAG">
					<then>
						<element name="EVENT_NUMBER" type="UINT16">
							<description>Event number common to both the History and Event Logs.</description>
						</element>
					</then>
				</if>
				<if condition="ACT_LOG_TBL.HIST_SEQ_NBR_FLAG">
					<then>
						<element name="HISTORY_SEQ_NBR" type="UINT16">
							<description>Sequence number associated with the History Log only.</description>
						</element>
					</then>
				</if>
				<element name="USER_ID" type="UINT16">
					<description>The User ID associated with this History Log entry.  It comes from the Log In Procedure or from a communication session initiation sequence. A USER_ID of zero means the end device initiated the event.  A USER_ID of one means the event was manually initiated.</description>
				</element>
				<element name="HISTORY_CODE" type="TABLE_IDB_BFLD">
					<description>Event code logged.</description>
				</element>
				<element name="HISTORY_ARGUMENT" type="BINARY" size="ACT_LOG_TBL.HIST_DATA_LENGTH">
					<description>Argument associated with a specific entry. </description>
				</element>
			</packedRecord>
			<packedRecord name="HISTORY_LOG_RCD">
				<element name="HIST_FLAGS" type="LIST_STATUS_BFLD"/>
				<element name="NBR_VALID_ENTRIES" type="UINT16">
					<description>Number of valid entries in the log.  The range is from zero (meaning the log is empty) to the actual dimension of the log.</description>
				</element>
				<element name="LAST_ENTRY_ELEMENT" type="UINT16">
					<description>The array element number of the newest valid entry in the log.</description>
				</element>
				<element name="LAST_ENTRY_SEQ_NBR" type="UINT32">
					<description>The sequence number of the newest valid entry in the log.</description>
				</element>
				<element name="NBR_UNREAD_ENTRIES" type="UINT16">
					<description>The number of entries in the log that have not yet been read.  It is only changed through a procedure.</description>
				</element>
				<array name="ENTRIES" type="HISTORY_ENTRY_RCD" dimension="ACT_LOG_TBL.NBR_HISTORY_ENTRIES">
					<description>Array of History Log entries.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 75?>
		<table name="EVENT_LOG_CTRL_TBL" number="75" type="HISTORY_LOG_CTRL_TBL.HISTORY_CTRL_RCD" label="Event log control table">
			<description>EVENT_LOG_CTRL_TBL (Table 75) defines the Event Log codes to be written to the Event Log.  It also defines which specific procedures and or table writes that are to be acknowledged in the Event Log. For a specific procedure or table to be acknowledged, three independent tests shall all be true:  

1) The procedure or table shall be used in the end device, per the GEN_CONFIG_TBL (Table 00).
2) The appropriate Event code shall be used, per Table 75.
3) The procedure or table shall be requested to be acknowledged, per Table 75.  

This data structure is identical to the structure in HISTORY_LOG_CTRL_TBL (Table 73).</description>
		</table>
		<?Table 76?>
		<table name="EVENT_LOG_DATA_TBL" number="76" type="EVENT_LOG_RCD" label="Event log data table">
			<description>This table provides the Event Log.</description>
		</table>
		<bitField name="LIST_STATUS_BFLD" type="UINT8">
			<subElement name="ORDER" type="UINT" startBitInclusive="0">
				<enumerator>
					<enum value="0" text="The log is transported in ascending order (element N is older than element N+1)."/>
					<enum value="1" text="The log is transported in descending order (element N is newer than element N+1)."/>
				</enumerator>
			</subElement>
			<subElement name="OVERFLOW_FLAG" type="BOOL" startBitInclusive="1">
				<enumerator>
					<enum value="false" text="Overflow has not occurred."/>
					<enum value="true" text="An attempt was made to enter an event such that the number of unread entries would have exceeded the actual number of possible entries in the log."/>
				</enumerator>
			</subElement>
			<subElement name="LIST_TYPE" type="UINT" startBitInclusive="2">
				<enumerator>
					<enum value="0" text="FIFO - as placed in log."/>
					<enum value="1" text="Circular - as placed in log."/>
				</enumerator>
			</subElement>
			<subElement name="INHIBIT_OVERFLOW_FLAG" type="BOOL" startBitInclusive="3">
				<description>The same value as ACT_LOG_TBL.-EVENT_INHIBIT_OVF_FLAG.</description>
			</subElement>
			<subElement name="FILLER" type="FILL" startBitInclusive="4" endBitInclusive="7"/>
		</bitField>
		<bitField name="TABLE_IDB_BFLD" type="UINT16" redefine="TABLE_IDB_BFLD">
			<subElement name="TBL_PROC_NBR" type="UINT" startBitInclusive="0" endBitInclusive="10" min="0" max="2039" enumerator="EVENT_ENUM">
				<description>Event code number logged.</description>
			</subElement>
			<subElement name="STD_VS_MFG_FLAG" type="BOOL" startBitInclusive="11">
				<enumerator>
					<enum value="false" text="Event code is standard defined."/>
					<enum value="true" text="Event code is manufacturer defined."/>
				</enumerator>
			</subElement>
			<subElement name="SELECTOR" type="UINT" startBitInclusive="12" endBitInclusive="15">
				<description>Not Used.</description>
			</subElement>
		</bitField>
		<packedRecord name="EVENT_ENTRY_RCD">
			<element name="EVENT_TIME" type="LTIME_DATE">
				<description>Date and time of Event Log entry.</description>
			</element>
			<if condition="ACT_LOG_TBL.EVENT_NUMBER_FLAG">
				<then>
					<element name="EVENT_NUMBER" type="UINT16">
						<description>Event number common to both the History and Event Logs.</description>
					</element>
				</then>
			</if>
			<element name="EVENT_SEQ_NBR" type="UINT16">
				<description>Sequence number associated with the Event Log only.</description>
			</element>
			<element name="USER_ID" type="UINT16">
				<description>The User ID associated with this Event Log entry.  It comes from the Log In Procedure or from a communication session initiation sequence. A USER_ID of zero means the end device initiated the event.  A USER_ID of one means the event was manually initiated.</description>
			</element>
			<element name="EVENT_CODE" type="TABLE_IDB_BFLD">
				<description>Event code logged.</description>
			</element>
			<element name="EVENT_ARGUMENT" type="BINARY" size="ACT_LOG_TBL.EVENT_DATA_LENGTH">
				<description>Argument associated with a specific entry.</description>
			</element>
		</packedRecord>
		<packedRecord name="EVENT_LOG_RCD">
			<element name="EVENT_FLAGS" type="LIST_STATUS_BFLD"/>
			<element name="NBR_VALID_ENTRIES" type="UINT16">
				<description>Number of valid entries in the log.  The range is zero (meaning the log is empty) to the actual dimension of the log.</description>
			</element>
			<element name="LAST_ENTRY_ELEMENT" type="UINT16">
				<description>The array element number of the newest valid entry in the log.</description>
			</element>
			<element name="LAST_ENTRY_SEQ_NBR" type="UINT32">
				<description>The sequence number of the newest valid entry in the log.</description>
			</element>
			<element name="NBR_UNREAD_ENTRIES" type="UINT16">
				<description>The number of entries in the log that have not yet been read.  It is only changed through a procedure.</description>
			</element>
			<array name="ENTRIES" type="EVENT_ENTRY_RCD" dimension="ACT_LOG_TBL.NBR_EVENT_ENTRIES">
				<description>Array of Event Log entries.</description>
			</array>
		</packedRecord>
	</decade>
	<decade name="USER_DEFINED_DEC" number="80" label="User defined tables">
		<description>These tables provide the capability for the end device user to build custom tables using the tables available in an end device.</description>
		<?Table 80?>
		<table name="DIM_UDT_FUNC_LIM_TBL" number="80" type="UDT_FUNC_LIM_RCD" label="Dimension user defined tables function limiting table">
			<description>This table contains maximum values and control parameters for the user defined tables. These values set up to six independent sets of user defined tables. The length of user defined tables is a function of the tables defined in the GEN_CONFIG_TBL (Table 00).</description>
			<bitField name="UDT_CTRL_BFLD" type="UINT8">
				<subElement name="NBR_UDTS" type="UINT" startBitInclusive="0" endBitInclusive="2" min="0" max="6">
					<description>The maximum number of user defined tables, which can be defined concurrently by the list of data items.</description>
				</subElement>
				<subElement name="INSTANCE_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Multiple table instances are not supported. Multiple instances are not supported. Ignore MAX_INSTANCE."/>
						<enum value="true" text="Multiple table instances are supported."/>
					</enumerator>
				</subElement>
				<subElement name="DATA_ACCESS_METHOD" type="UINT" startBitInclusive="4" endBitInclusive="5">
					<description>Variable to designate possible methods of selecting table entries for placement in a user defined table.</description>
					<enumerator>
						<enum value="0" text="Only complete tables can be  mapped into user tables. Partial tables cannot be mapped."/>
						<enum value="1" text="Offset-count access method is supported."/>
						<enum value="2" text="Index-count access method is supported."/>
						<enum value="3" text="Access methods 2 and 3 are supported."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="6" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="UDT_FUNC_LIM_RCD">
				<element name="NBR_XFR_LIST_ITEMS" type="UINT16">
					<description>The maximum number of UINT16 entries used to make the list.</description>
				</element>
				<element name="UDT_FUNC_CTRL" type="UDT_CTRL_BFLD">
					<description>These are the limiting capabilities for user defined tables selections. This defines the maximum number of user defined tables supported in this decade and the data access method, as defined by UDT_CTRL_BFLD.</description>
				</element>
				<element name="MAX_INSTANCE" type="UINT8" min="1" max="255">
					<description>Maximum number of table sets supported by this end device. If INSTANCE_FLAG is FALSE ignore.</description>
				</element>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.0">
					<then>
						<element name="UDT_0_SIZE" type="UINT32">
							<description>Maximum number of octets used to size UDT_0_TBL (Table 84)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.1">
					<then>
						<element name="UDT_1_SIZE" type="UINT32">
							<description>Maximum number of octets used to size UDT_1_TBL (Table 85)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.2">
					<then>
						<element name="UDT_2_SIZE" type="UINT32">
							<description>Maximum number of octets used to size UDT_2_TBL (Table 86)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.3">
					<then>
						<element name="UDT_3_SIZE" type="UINT32">
							<description>Maximum number of octets used to size UDT_3_TBL (Table 87)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.4">
					<then>
						<element name="UDT_4_SIZE" type="UINT32">
							<description>Maximum number of octets used to size UDT_4_TBL (Table 88)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.5">
					<then>
						<element name="UDT_5_SIZE" type="UINT32">
							<description>Maximum number of octets used to size UDT_5_TBL (Table 89)</description>
						</element>
					</then>
				</if>
			</packedRecord>
		</table>
		<?Table 81?>
		<table name="ACT_UDT_FUNC_LIM_TBL" number="81" type="UDT_FUNC_LIM_RCD" label="Actual user defined tables function limiting table">
			<description>This table contains actual limiting values for the user defined tables. These parameters define up to six independent sets of user defined tables definitions. The length of each user defined table is a function of the tables defined in the GEN_CONFIG_TBL (Table 00).</description>
			<bitField name="UDT_CTRL_BFLD" type="UINT8">
				<subElement name="NBR_UDTS" type="UINT" startBitInclusive="0" endBitInclusive="2" min="0" max="6">
					<description>The actual number of user defined tables, which are defined concurrently by the list of data items.</description>
				</subElement>
				<subElement name="INSTANCE_FLAG" type="BOOL" startBitInclusive="3">
					<enumerator>
						<enum value="false" text="Multiple table sets are not used. Multiple instances are not supported. Ignore MAX_INSTANCE."/>
						<enum value="true" text="Multiple table sets are in use."/>
					</enumerator>
				</subElement>
				<subElement name="DATA_ACCESS_METHOD" type="UINT" startBitInclusive="4" endBitInclusive="5">
					<description>Designate the actual method of selecting table entries for placement in a user defined table.</description>
					<enumerator>
						<enum value="0" text="Complete tables are mapped into user tables. Partial table are not be mapped."/>
						<enum value="1" text="Offset-count access method is used."/>
						<enum value="2" text="Index-count access method is used."/>
					</enumerator>
				</subElement>
				<subElement name="FILLER" type="FILL" startBitInclusive="6" endBitInclusive="7"/>
			</bitField>
			<packedRecord name="UDT_FUNC_LIM_RCD">
				<element name="NBR_XFR_LIST_ITEMS" type="UINT16">
					<description>The actual number of UINT16 entries used in the list.</description>
				</element>
				<element name="UDT_FUNC_CTRL" type="UDT_CTRL_BFLD">
					<description>This is the actual method used for user defined tables selections. This identifies the actual number of user defined tables and the data access method used in this decade as defined by UDT_FLAGS_BFLD.</description>
				</element>
				<element name="MAX_INSTANCE" type="UINT8" min="1" max="255">
					<description>Actual number of table sets used by this end device. If INSTANCE_FLAG is FALSE ignore.</description>
				</element>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.0">
					<then>
						<element name="UDT_0_SIZE" type="UINT32">
							<description>Actual number of octets used to size UDT_0_TBL (Table 84)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.1">
					<then>
						<element name="UDT_1_SIZE" type="UINT32">
							<description>Actual number of octets used to size UDT_1_TBL (Table 85)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.2">
					<then>
						<element name="UDT_2_SIZE" type="UINT32">
							<description>Actual number of octets used to size UDT_2_TBL (Table 86)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.3">
					<then>
						<element name="UDT_3_SIZE" type="UINT32">
							<description>Actual number of octets used to size UDT_3_TBL (Table 87)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.4">
					<then>
						<element name="UDT_4_SIZE" type="UINT32">
							<description>Actual number of octets used to size UDT_4_TBL (Table 88)</description>
						</element>
					</then>
				</if>
				<if condition="GEN_CONFIG_TBL.STD_TBLS_USED.5">
					<then>
						<element name="UDT_5_SIZE" type="UINT32">
							<description>Actual number of octets used to size UDT_5_TBL (Table 89)</description>
						</element>
					</then>
				</if>
			</packedRecord>
		</table>
		<?Table 82?>
		<table name="UDT_LIST_TBL" number="82" type="UDT_LIST_SEL_RCD" label="User defined tables list table">
			<description>This table defines data elements used in the generation of user defined tables for this decade.</description>
			<bitField name="TABLE_IDB_BFLD" type="UINT16">
				<subElement name="TBL_PROC_NBR" type="UINT" startBitInclusive="0" endBitInclusive="10" min="0" max="2039">
					<description>Information source table number. Note: the corresponding implementation bit shall be set in GEN_CONFIG_TBL (Table 00).</description>
				</subElement>
				<subElement name="STD_VS_MFG_FLAG" type="BOOL" startBitInclusive="11">
					<description>Identifies the data item as originating from either the standard table or a manufacturer table.</description>
					<enumerator>
						<enum value="false" text="Standard table."/>
						<enum value="true" text="Manufacturer table."/>
					</enumerator>
				</subElement>
				<subElement name="SELECTOR" type="UINT" startBitInclusive="12" endBitInclusive="15">
					<description>When the DATA_ACCESS_METHOD is one this field is the most significant 4 bits (bits 16..19) of the offset to the data element required to locate the data item in a table.</description>
				</subElement>
			</bitField>
			<packedRecord name="SOURCE_ITEM_RCD">
				<description>Structure of a single entry in the UDT_LIST array.</description>
				<element name="TABLE_ID" type="TABLE_IDB_BFLD"/>
				<if condition="ACT_UDT_FUNC_LIM_TBL.INSTANCE_FLAG">
					<then>
						<element name="TABLE_INSTANCE" type="UINT16" min="0" max="254">
							<description>Table set number.</description>
						</element>
					</then>
				</if>
				<switch selection="ACT_UDT_FUNC_LIM_TBL.DATA_ACCESS_METHOD">
					<case value="1">
						<element name="OFFSET" type="UINT16">
							<description>This field holds the least significant 16 bits of the offset to the data element required to locate the data item in a table.</description>
						</element>
					</case>
					<case value="2">
						<array name="INDEX" type="UINT16" dimension="11">
							<description>This is an array of indices, which combine to define the index to an item entry in a table.</description>
						</array>
					</case>
				</switch>
				<element name="COUNT" type="UINT16">
					<description>Length of data item(s) in octets.  When the value is zero it is the end of the list.</description>
				</element>
			</packedRecord>
			<packedRecord name="UDT_LIST_SEL_RCD">
				<array name="UDT_LIST" type="UINT16" dimension="ACT_UDT_FUNC_LIM_TBL.NBR_XFR_LIST_ITEMS">
					<description>An array holding ACT_UDT_FUNC_LIM_TBL. NBR_XFR_LIST_ITEM UINT16 quantities. This space is mapped using SOURCE_ITEM_RCD into variable length records which select table or partial tables for access via the user defined tables.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 83?>
		<table name="UDT_SEL_TBL" number="83" type="UDT_DATA_SETS_RCD" label="User defined tables selection table">
			<description>This table specifies what data elements are used in user tables defined for this decade.  Each array entry in this table corresponds to a specific table in this decade following this table.  For example, the third entry in this array corresponds to Table 83 + 3 = Table 8</description>
			<packedRecord name="UDT_SET_RCD">
				<element name="FIRST_ITEM_NBR" type="UINT16">
					<description>This is item number in UDT_LIST_TBL (Table 82) specifying the first item in the user defined tables selected by this entry.</description>
				</element>
				<element name="LAST_ITEM_NBR" type="UINT16">
					<description>This is item number in UDT_LIST_TBL (Table 82) specifying the last item in the user defined tables selected by this entry.</description>
				</element>
			</packedRecord>
			<packedRecord name="UDT_DATA_SETS_RCD">
				<array name="UDT_DATA_SETS" type="UDT_SET_RCD" dimension="ACT_UDT_FUNC_LIM_TBL.NBR_UDTS">
					<description>Array containing up to ACT_UDT_ FUNC_LIM_TBL.NBR_UDTS (Table 81) entries. Each entry defines the source selections for a user destination user defined table.</description>
				</array>
			</packedRecord>
		</table>
		<?Table 84?>
		<table name="UDT_0_TBL" number="84" type="UDT_0_RCD" label="User defined table zero table">
			<description>This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the first entry in table UDT_SEL_TBL (Table 83).</description>
			<packedRecord name="UDT_0_RCD">
				<element name="UDT_0_DATA" type="BINARY" size="ACT_UDT_FUNC_LIM_TBL.UDT_0_SIZE">
					<description>Array containing  ACT_UDT_FUNCT_LIM_TBL. UDT_0_SIZE octets holding data defined by the first entry in the list defined in UDT_SEL_TBL (Table 83).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 85?>
		<table name="UDT_1_TBL" number="85" type="UDT_1_RCD" label="User defined table one table">
			<description>This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the first entry in table UDT_SEL_TBL (Table 83).</description>
			<packedRecord name="UDT_1_RCD">
				<element name="UDT_1_DATA" type="BINARY" size="ACT_UDT_FUNC_LIM_TBL.UDT_1_SIZE">
					<description>Array containing  ACT_UDT_FUNCT_LIM_TBL. UDT_1_SIZE octets holding data defined by the second entry in the list defined in UDT_SEL_TBL (Table 83).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 86?>
		<table name="UDT_2_TBL" number="86" type="UDT_2_RCD" label="User defined table two table">
			<description>This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the first entry in table UDT_SEL_TBL (Table 83).</description>
			<packedRecord name="UDT_2_RCD">
				<element name="UDT_2_DATA" type="BINARY" size="ACT_UDT_FUNC_LIM_TBL.UDT_2_SIZE">
					<description>Array containing  ACT_UDT_FUNCT_LIM_TBL. UDT_2_SIZE octets holding data defined by the third entry in the list defined in UDT_SEL_TBL (Table 83).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 87?>
		<table name="UDT_3_TBL" number="87" type="UDT_3_RCD" label="User defined table three table">
			<description>This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the first entry in table UDT_SEL_TBL (Table 83).</description>
			<packedRecord name="UDT_3_RCD">
				<element name="UDT_3_DATA" type="BINARY" size="ACT_UDT_FUNC_LIM_TBL.UDT_3_SIZE">
					<description>Array containing  ACT_UDT_FUNCT_LIM_TBL. UDT_3_SIZE octets holding data defined by the fourth entry in the list defined in UDT_SEL_TBL (Table 83).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 88?>
		<table name="UDT_4_TBL" number="88" type="UDT_4_RCD" label="User defined table four table">
			<description>This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the first entry in table UDT_SEL_TBL (Table 83).</description>
			<packedRecord name="UDT_4_RCD">
				<element name="UDT_4_DATA" type="BINARY" size="ACT_UDT_FUNC_LIM_TBL.UDT_4_SIZE">
					<description>Array containing  ACT_UDT_FUNCT_LIM_TBL. UDT_4_SIZE octets holding data defined by the fifth entry in the list defined in UDT_SEL_TBL (Table 83).</description>
				</element>
			</packedRecord>
		</table>
		<?Table 89?>
		<table name="UDT_5_TBL" number="89" type="UDT_5_RCD" label="User defined table five table">
			<description>This table is defined by the items in table UDT_LIST_TBL (Table 82) selected by the first entry in table UDT_SEL_TBL (Table 83).</description>
			<packedRecord name="UDT_5_RCD">
				<element name="UDT_5_DATA" type="BINARY" size="ACT_UDT_FUNC_LIM_TBL.UDT_5_SIZE">
					<description>Array containing  ACT_UDT_FUNCT_LIM_TBL. UDT_5_SIZE octets holding data defined by the sixth entry in the list defined in UDT_SEL_TBL (Table 83).</description>
				</element>
			</packedRecord>
		</table>
	</decade>
</tdl>

