diff --git a/generated/twdmchannelxgemperformancemonitoringhistorydata.go b/generated/twdmchannelxgemperformancemonitoringhistorydata.go
index d7ee1e1..5b2311a 100644
--- a/generated/twdmchannelxgemperformancemonitoringhistorydata.go
+++ b/generated/twdmchannelxgemperformancemonitoringhistorydata.go
@@ -27,11 +27,11 @@
 
 // TwdmChannelXgemPerformanceMonitoringHistoryDataClassID is the 16-bit ID for the OMCI
 // Managed entity TWDM channel XGEM performance monitoring history data
-const TwdmChannelXgemPerformanceMonitoringHistoryDataClassID ClassID = ClassID(445)
+const TwdmChannelXgemPerformanceMonitoringHistoryDataClassID = ClassID(445) // 0x01bd
 
 var twdmchannelxgemperformancemonitoringhistorydataBME *ManagedEntityDefinition
 
-// TwdmChannelXgemPerformanceMonitoringHistoryData (class ID #445)
+// TwdmChannelXgemPerformanceMonitoringHistoryData (Class ID: #445 / 0x01bd)
 //	This ME collects certain XGEM-related PM data associated with the slot/circuit pack, hosting one
 //	or more ANI-G MEs, for a specific TWDM channel. Instances of this ME are created and deleted by
 //	the OLT.
@@ -43,44 +43,38 @@
 //
 //	Attributes
 //		Managed Entity Id
-//			Managed entity ID: This attribute uniquely identifies each instance of this ME. Through an
-//			identical ID, this ME is implicitly linked to an instance of the TWDM channel ME. (R,
-//			setbycreate) (mandatory) (2-bytes)
+//			This attribute uniquely identifies each instance of this ME. Through an identical ID, this ME is
+//			implicitly linked to an instance of the TWDM channel ME. (R, setbycreate) (mandatory) (2-bytes)
 //
 //		Interval End Time
-//			Interval end time: This attribute identifies the most recently finished 15-min interval. (R)
-//			(mandatory) (1-byte)
+//			This attribute identifies the most recently finished 15-min interval. (R) (mandatory) (1-byte)
 //
 //		Threshold Data 64 Bit Id
 //			Threshold data 64-bit ID: This attribute points to an instance of the threshold data 64-bit ME
 //			that contains PM threshold values. (R,-W, setbycreate) (mandatory) (2-bytes)
 //
 //		Total Transmitted Xgem Frames
-//			Total transmitted XGEM frames: The counter aggregated across all XGEM ports of the given ONU.
-//			(R) (mandatory) (8-byte)
+//			The counter aggregated across all XGEM ports of the given ONU. (R) (mandatory) (8-byte)
 //
 //		Transmitted Xgem Frames With Lf Bit Not Set
-//			Transmitted XGEM frames with LF bit not set: The counter aggregated across all XGEM ports of the
-//			given ONU identifies the number of fragmentation operations. (R) (mandatory) (8-byte)
+//			The counter aggregated across all XGEM ports of the given ONU identifies the number of
+//			fragmentation operations. (R) (mandatory) (8-byte)
 //
 //		Total Received Xgem Frames
-//			Total received XGEM frames: The counter aggregated across all XGEM ports of the given ONU. (R)
-//			(mandatory) (8-byte)
+//			The counter aggregated across all XGEM ports of the given ONU. (R) (mandatory) (8-byte)
 //
 //		Received Xgem Frames With Xgem Header Hec Errors
-//			Received XGEM frames with XGEM header HEC errors: The counter aggregated across all XGEM ports
-//			of the given ONU identifies the number of loss XGEM frame delineation events. (R) (mandatory)
-//			(8-byte)
+//			The counter aggregated across all XGEM ports of the given ONU identifies the number of loss XGEM
+//			frame delineation events. (R) (mandatory) (8-byte)
 //
 //		Fs Words Lost To Xgem Header Hec Errors
-//			FS words lost to XGEM header HEC errors: The counter of the FS frame words lost due to XGEM
-//			frame header errors that cause loss of XGEM frame delineation. (R) (mandatory) (8-byte)
+//			The counter of the FS frame words lost due to XGEM frame header errors that cause loss of XGEM
+//			frame delineation. (R) (mandatory) (8-byte)
 //
 //		Xgem Encryption Key Errors
-//			XGEM encryption key errors: The counter aggregated across all XGEM ports of the given ONU
-//			identifies the number of received XGEM frames that have to be discarded because of unknown or
-//			invalid encryption key. The number is included into the Total received XGEM frame count above.
-//			(R) (mandatory) (8-byte)
+//			The counter aggregated across all XGEM ports of the given ONU identifies the number of received
+//			XGEM frames that have to be discarded because of unknown or invalid encryption key. The number
+//			is included into the Total received XGEM frame count above. (R) (mandatory) (8-byte)
 //
 //		Total Transmitted Bytes In Non_Idle Xgem Frames
 //			Total transmitted bytes in non-idle XGEM frames: The counter aggregated across all XGEM ports of
@@ -103,8 +97,8 @@
 			Create,
 			Delete,
 			Get,
-			GetCurrentData,
 			Set,
+			GetCurrentData,
 		),
 		AllowedAttributeMask: 0xffc0,
 		AttributeDefinitions: AttributeDefinitionMap{
