### ms-pac.idl
"""
RPC definitions for the following interfaces:
-
This file is auto-generated by midl-to-scapy, do not modify.
"""

from enum import IntEnum
import uuid

from scapy.fields import PacketListField, StrFixedLenField, StrFixedLenFieldUtf16
from scapy.layers.dcerpc import (
    NDRPacket,
    NDRByteField,
    NDRConfFieldListField,
    NDRConfPacketListField,
    NDRConfStrLenField,
    NDRConfVarStrLenField,
    NDRConfVarStrLenFieldUtf16,
    NDRFieldListField,
    NDRFullPointerField,
    NDRInt3264EnumField,
    NDRIntField,
    NDRLongField,
    NDRPacketField,
    NDRShortField,
)


class RPC_SID_IDENTIFIER_AUTHORITY(NDRPacket):
    fields_desc = [StrFixedLenField("Value", "", length=6)]


class PSID(NDRPacket):
    ALIGNMENT = (4, 8)
    DEPORTED_CONFORMANTS = ["SubAuthority"]
    fields_desc = [
        NDRByteField("Revision", 0),
        NDRByteField("SubAuthorityCount", None, size_of="SubAuthority"),
        NDRPacketField(
            "IdentifierAuthority",
            RPC_SID_IDENTIFIER_AUTHORITY(),
            RPC_SID_IDENTIFIER_AUTHORITY,
        ),
        NDRConfFieldListField(
            "SubAuthority",
            [],
            NDRIntField("", 0),
            size_is=lambda pkt: pkt.SubAuthorityCount,
            conformant_in_struct=True,
        ),
    ]


class KERB_SID_AND_ATTRIBUTES(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRFullPointerField(
            NDRFullPointerField(NDRPacketField("Sid", PSID(), PSID), deferred=True),
            deferred=True,
        ),
        NDRIntField("Attributes", 0),
    ]


class PKERB_SID_AND_ATTRIBUTES(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRFullPointerField(
            NDRFullPointerField(NDRPacketField("Sid", PSID(), PSID), deferred=True),
            deferred=True,
        ),
        NDRIntField("Attributes", 0),
    ]


class GROUP_MEMBERSHIP(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [NDRIntField("RelativeId", 0), NDRIntField("Attributes", 0)]


class PGROUP_MEMBERSHIP(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [NDRIntField("RelativeId", 0), NDRIntField("Attributes", 0)]


class PDOMAIN_GROUP_MEMBERSHIP(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRFullPointerField(
            NDRFullPointerField(
                NDRPacketField("DomainId", PSID(), PSID), deferred=True
            ),
            deferred=True,
        ),
        NDRIntField("GroupCount", None, size_of="GroupIds"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "GroupIds",
                [PGROUP_MEMBERSHIP()],
                PGROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.GroupCount,
            ),
            deferred=True,
        ),
    ]


class PDOMAIN_GROUP_MEMBERSHIP(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRFullPointerField(
            NDRFullPointerField(
                NDRPacketField("DomainId", PSID(), PSID), deferred=True
            ),
            deferred=True,
        ),
        NDRIntField("GroupCount", None, size_of="GroupIds"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "GroupIds",
                [PGROUP_MEMBERSHIP()],
                PGROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.GroupCount,
            ),
            deferred=True,
        ),
    ]


class PAC_INFO_BUFFER(NDRPacket):
    ALIGNMENT = (8, 8)
    fields_desc = [
        NDRIntField("ulType", 0),
        NDRIntField("cbBufferSize", 0),
        NDRLongField("Offset", 0),
    ]


class PACTYPE(NDRPacket):
    ALIGNMENT = (8, 8)
    fields_desc = [
        NDRIntField("cBuffers", 0),
        NDRIntField("Version", 0),
        PacketListField("Buffers", [], PAC_INFO_BUFFER, count_from=lambda _: 1),
    ]


class PPACTYPE(NDRPacket):
    ALIGNMENT = (8, 8)
    fields_desc = [
        NDRIntField("cBuffers", 0),
        NDRIntField("Version", 0),
        PacketListField("Buffers", [], PAC_INFO_BUFFER, count_from=lambda _: 1),
    ]


class PPAC_INFO_BUFFER(NDRPacket):
    ALIGNMENT = (8, 8)
    fields_desc = [
        NDRIntField("ulType", 0),
        NDRIntField("cbBufferSize", 0),
        NDRLongField("Offset", 0),
    ]


class CYPHER_BLOCK(NDRPacket):
    fields_desc = [StrFixedLenField("data", "", length=8)]


class USER_SESSION_KEY(NDRPacket):
    fields_desc = [PacketListField("data", [], CYPHER_BLOCK, count_from=lambda _: 2)]


class FILETIME(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [NDRIntField("dwLowDateTime", 0), NDRIntField("dwHighDateTime", 0)]


class RPC_UNICODE_STRING(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRShortField("Length", None, size_of="Buffer", adjust=lambda _, x: (x * 2)),
        NDRShortField(
            "MaximumLength", None, size_of="Buffer", adjust=lambda _, x: (x * 2)
        ),
        NDRFullPointerField(
            NDRConfVarStrLenFieldUtf16(
                "Buffer",
                "",
                size_is=lambda pkt: (pkt.MaximumLength // 2),
                length_is=lambda pkt: (pkt.Length // 2),
            ),
            deferred=True,
        ),
    ]


class KERB_VALIDATION_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRPacketField("LogonTime", FILETIME(), FILETIME),
        NDRPacketField("LogoffTime", FILETIME(), FILETIME),
        NDRPacketField("KickOffTime", FILETIME(), FILETIME),
        NDRPacketField("PasswordLastSet", FILETIME(), FILETIME),
        NDRPacketField("PasswordCanChange", FILETIME(), FILETIME),
        NDRPacketField("PasswordMustChange", FILETIME(), FILETIME),
        NDRPacketField("EffectiveName", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("FullName", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("LogonScript", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("ProfilePath", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("HomeDirectory", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("HomeDirectoryDrive", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRShortField("LogonCount", 0),
        NDRShortField("BadPasswordCount", 0),
        NDRIntField("UserId", 0),
        NDRIntField("PrimaryGroupId", 0),
        NDRIntField("GroupCount", None, size_of="GroupIds"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "GroupIds",
                [PGROUP_MEMBERSHIP()],
                PGROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.GroupCount,
            ),
            deferred=True,
        ),
        NDRIntField("UserFlags", 0),
        NDRPacketField("UserSessionKey", USER_SESSION_KEY(), USER_SESSION_KEY),
        NDRPacketField("LogonServer", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("LogonDomainName", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRFullPointerField(
            NDRFullPointerField(
                NDRPacketField("LogonDomainId", PSID(), PSID), deferred=True
            ),
            deferred=True,
        ),
        NDRFieldListField("Reserved1", [], NDRIntField("", 0), length_is=lambda _: 2),
        NDRIntField("UserAccountControl", 0),
        NDRFieldListField("Reserved3", [], NDRIntField("", 0), length_is=lambda _: 7),
        NDRIntField("SidCount", None, size_of="ExtraSids"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "ExtraSids",
                [PKERB_SID_AND_ATTRIBUTES()],
                PKERB_SID_AND_ATTRIBUTES,
                size_is=lambda pkt: pkt.SidCount,
            ),
            deferred=True,
        ),
        NDRFullPointerField(
            NDRFullPointerField(
                NDRPacketField("ResourceGroupDomainSid", PSID(), PSID), deferred=True
            ),
            deferred=True,
        ),
        NDRIntField("ResourceGroupCount", None, size_of="ResourceGroupIds"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "ResourceGroupIds",
                [PGROUP_MEMBERSHIP()],
                PGROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.ResourceGroupCount,
            ),
            deferred=True,
        ),
    ]


class PKERB_VALIDATION_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRPacketField("LogonTime", FILETIME(), FILETIME),
        NDRPacketField("LogoffTime", FILETIME(), FILETIME),
        NDRPacketField("KickOffTime", FILETIME(), FILETIME),
        NDRPacketField("PasswordLastSet", FILETIME(), FILETIME),
        NDRPacketField("PasswordCanChange", FILETIME(), FILETIME),
        NDRPacketField("PasswordMustChange", FILETIME(), FILETIME),
        NDRPacketField("EffectiveName", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("FullName", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("LogonScript", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("ProfilePath", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("HomeDirectory", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("HomeDirectoryDrive", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRShortField("LogonCount", 0),
        NDRShortField("BadPasswordCount", 0),
        NDRIntField("UserId", 0),
        NDRIntField("PrimaryGroupId", 0),
        NDRIntField("GroupCount", None, size_of="GroupIds"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "GroupIds",
                [PGROUP_MEMBERSHIP()],
                PGROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.GroupCount,
            ),
            deferred=True,
        ),
        NDRIntField("UserFlags", 0),
        NDRPacketField("UserSessionKey", USER_SESSION_KEY(), USER_SESSION_KEY),
        NDRPacketField("LogonServer", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRPacketField("LogonDomainName", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRFullPointerField(
            NDRFullPointerField(
                NDRPacketField("LogonDomainId", PSID(), PSID), deferred=True
            ),
            deferred=True,
        ),
        NDRFieldListField("Reserved1", [], NDRIntField("", 0), length_is=lambda _: 2),
        NDRIntField("UserAccountControl", 0),
        NDRFieldListField("Reserved3", [], NDRIntField("", 0), length_is=lambda _: 7),
        NDRIntField("SidCount", None, size_of="ExtraSids"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "ExtraSids",
                [PKERB_SID_AND_ATTRIBUTES()],
                PKERB_SID_AND_ATTRIBUTES,
                size_is=lambda pkt: pkt.SidCount,
            ),
            deferred=True,
        ),
        NDRFullPointerField(
            NDRFullPointerField(
                NDRPacketField("ResourceGroupDomainSid", PSID(), PSID), deferred=True
            ),
            deferred=True,
        ),
        NDRIntField("ResourceGroupCount", None, size_of="ResourceGroupIds"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "ResourceGroupIds",
                [PGROUP_MEMBERSHIP()],
                PGROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.ResourceGroupCount,
            ),
            deferred=True,
        ),
    ]


class PAC_CREDENTIAL_INFO(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [
        NDRIntField("Version", 0),
        NDRIntField("EncryptionType", 0),
        StrFixedLenField("SerializedData", "", length=1),
    ]


class PPAC_CREDENTIAL_INFO(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [
        NDRIntField("Version", 0),
        NDRIntField("EncryptionType", 0),
        StrFixedLenField("SerializedData", "", length=1),
    ]


class SECPKG_SUPPLEMENTAL_CRED(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRPacketField("PackageName", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRIntField("CredentialSize", None, size_of="Credentials"),
        NDRFullPointerField(
            NDRConfStrLenField(
                "Credentials", "", size_is=lambda pkt: pkt.CredentialSize
            ),
            deferred=True,
        ),
    ]


class PAC_CREDENTIAL_DATA(NDRPacket):
    ALIGNMENT = (4, 8)
    DEPORTED_CONFORMANTS = ["Credentials"]
    fields_desc = [
        NDRIntField("CredentialCount", None, size_of="Credentials"),
        NDRConfPacketListField(
            "Credentials",
            [],
            SECPKG_SUPPLEMENTAL_CRED,
            size_is=lambda pkt: pkt.CredentialCount,
            conformant_in_struct=True,
        ),
    ]


class PPAC_CREDENTIAL_DATA(NDRPacket):
    ALIGNMENT = (4, 8)
    DEPORTED_CONFORMANTS = ["Credentials"]
    fields_desc = [
        NDRIntField("CredentialCount", None, size_of="Credentials"),
        NDRConfPacketListField(
            "Credentials",
            [],
            SECPKG_SUPPLEMENTAL_CRED,
            size_is=lambda pkt: pkt.CredentialCount,
            conformant_in_struct=True,
        ),
    ]


class PSECPKG_SUPPLEMENTAL_CRED(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRPacketField("PackageName", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRIntField("CredentialSize", None, size_of="Credentials"),
        NDRFullPointerField(
            NDRConfStrLenField(
                "Credentials", "", size_is=lambda pkt: pkt.CredentialSize
            ),
            deferred=True,
        ),
    ]


class NTLM_SUPPLEMENTAL_CREDENTIAL(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [
        NDRIntField("Version", 0),
        NDRIntField("Flags", 0),
        StrFixedLenField("LmPassword", "", length=16),
        StrFixedLenField("NtPassword", "", length=16),
    ]


class PNTLM_SUPPLEMENTAL_CREDENTIAL(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [
        NDRIntField("Version", 0),
        NDRIntField("Flags", 0),
        StrFixedLenField("LmPassword", "", length=16),
        StrFixedLenField("NtPassword", "", length=16),
    ]


class PAC_CLIENT_INFO(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [
        NDRPacketField("ClientId", FILETIME(), FILETIME),
        NDRShortField("NameLength", 0),
        StrFixedLenFieldUtf16("Name", "", length=1 * 2),
    ]


class PPAC_CLIENT_INFO(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [
        NDRPacketField("ClientId", FILETIME(), FILETIME),
        NDRShortField("NameLength", 0),
        StrFixedLenFieldUtf16("Name", "", length=1 * 2),
    ]


class PRPC_UNICODE_STRING(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRShortField("Length", None, size_of="Buffer", adjust=lambda _, x: (x * 2)),
        NDRShortField(
            "MaximumLength", None, size_of="Buffer", adjust=lambda _, x: (x * 2)
        ),
        NDRFullPointerField(
            NDRConfVarStrLenFieldUtf16(
                "Buffer",
                "",
                size_is=lambda pkt: (pkt.MaximumLength // 2),
                length_is=lambda pkt: (pkt.Length // 2),
            ),
            deferred=True,
        ),
    ]


class S4U_DELEGATION_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRPacketField("S4U2proxyTarget", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRIntField("TransitedListSize", None, size_of="S4UTransitedServices"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "S4UTransitedServices",
                [PRPC_UNICODE_STRING()],
                PRPC_UNICODE_STRING,
                size_is=lambda pkt: pkt.TransitedListSize,
            ),
            deferred=True,
        ),
    ]


class PS4U_DELEGATION_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRPacketField("S4U2proxyTarget", RPC_UNICODE_STRING(), RPC_UNICODE_STRING),
        NDRIntField("TransitedListSize", None, size_of="S4UTransitedServices"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "S4UTransitedServices",
                [PRPC_UNICODE_STRING()],
                PRPC_UNICODE_STRING,
                size_is=lambda pkt: pkt.TransitedListSize,
            ),
            deferred=True,
        ),
    ]


class UPN_DNS_INFO(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [
        NDRShortField("UpnLength", 0),
        NDRShortField("UpnOffset", 0),
        NDRShortField("DnsDomainNameLength", 0),
        NDRShortField("DnsDomainNameOffset", 0),
        NDRIntField("Flags", 0),
    ]


class PUPN_DNS_INFO(NDRPacket):
    ALIGNMENT = (4, 4)
    fields_desc = [
        NDRShortField("UpnLength", 0),
        NDRShortField("UpnOffset", 0),
        NDRShortField("DnsDomainNameLength", 0),
        NDRShortField("DnsDomainNameOffset", 0),
        NDRIntField("Flags", 0),
    ]


class CLAIMS_COMPRESSION_FORMAT(IntEnum):
    COMPRESSION_FORMAT_NONE = 0
    COMPRESSION_FORMAT_LZNT1 = 2
    COMPRESSION_FORMAT_XPRESS = 3
    COMPRESSION_FORMAT_XPRESS_HUFF = 4


class PCLAIMS_SET_METADATA(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRIntField("ulClaimsSetSize", None, size_of="ClaimsSet"),
        NDRFullPointerField(
            NDRConfStrLenField(
                "ClaimsSet", "", size_is=lambda pkt: pkt.ulClaimsSetSize
            ),
            deferred=True,
        ),
        NDRInt3264EnumField("usCompressionFormat", 0, CLAIMS_COMPRESSION_FORMAT),
        NDRIntField("ulUncompressedClaimsSetSize", 0),
        NDRShortField("usReservedType", 0),
        NDRIntField("ulReservedFieldSize", None, size_of="ReservedField"),
        NDRFullPointerField(
            NDRConfStrLenField(
                "ReservedField", "", size_is=lambda pkt: pkt.ulReservedFieldSize
            ),
            deferred=True,
        ),
    ]


class PAC_CLIENT_CLAIMS_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRFullPointerField(
            NDRPacketField("Claims", PCLAIMS_SET_METADATA(), PCLAIMS_SET_METADATA),
            deferred=True,
        )
    ]


class PPAC_CLIENT_CLAIMS_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRFullPointerField(
            NDRPacketField("Claims", PCLAIMS_SET_METADATA(), PCLAIMS_SET_METADATA),
            deferred=True,
        )
    ]


class PAC_DEVICE_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRIntField("UserId", 0),
        NDRIntField("PrimaryGroupId", 0),
        NDRFullPointerField(
            NDRFullPointerField(
                NDRPacketField("AccountDomainId", PSID(), PSID), deferred=True
            ),
            deferred=True,
        ),
        NDRIntField("AccountGroupCount", None, size_of="AccountGroupIds"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "AccountGroupIds",
                [PGROUP_MEMBERSHIP()],
                PGROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.AccountGroupCount,
            ),
            deferred=True,
        ),
        NDRIntField("SidCount", None, size_of="ExtraSids"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "ExtraSids",
                [PKERB_SID_AND_ATTRIBUTES()],
                PKERB_SID_AND_ATTRIBUTES,
                size_is=lambda pkt: pkt.SidCount,
            ),
            deferred=True,
        ),
        NDRIntField("DomainGroupCount", None, size_of="DomainGroup"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "DomainGroup",
                [PDOMAIN_GROUP_MEMBERSHIP()],
                PDOMAIN_GROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.DomainGroupCount,
            ),
            deferred=True,
        ),
    ]


class PPAC_DEVICE_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRIntField("UserId", 0),
        NDRIntField("PrimaryGroupId", 0),
        NDRFullPointerField(
            NDRFullPointerField(
                NDRPacketField("AccountDomainId", PSID(), PSID), deferred=True
            ),
            deferred=True,
        ),
        NDRIntField("AccountGroupCount", None, size_of="AccountGroupIds"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "AccountGroupIds",
                [PGROUP_MEMBERSHIP()],
                PGROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.AccountGroupCount,
            ),
            deferred=True,
        ),
        NDRIntField("SidCount", None, size_of="ExtraSids"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "ExtraSids",
                [PKERB_SID_AND_ATTRIBUTES()],
                PKERB_SID_AND_ATTRIBUTES,
                size_is=lambda pkt: pkt.SidCount,
            ),
            deferred=True,
        ),
        NDRIntField("DomainGroupCount", None, size_of="DomainGroup"),
        NDRFullPointerField(
            NDRConfPacketListField(
                "DomainGroup",
                [PDOMAIN_GROUP_MEMBERSHIP()],
                PDOMAIN_GROUP_MEMBERSHIP,
                size_is=lambda pkt: pkt.DomainGroupCount,
            ),
            deferred=True,
        ),
    ]


class PAC_DEVICE_CLAIMS_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRFullPointerField(
            NDRPacketField("Claims", PCLAIMS_SET_METADATA(), PCLAIMS_SET_METADATA),
            deferred=True,
        )
    ]


class PPAC_DEVICE_CLAIMS_INFO(NDRPacket):
    ALIGNMENT = (4, 8)
    fields_desc = [
        NDRFullPointerField(
            NDRPacketField("Claims", PCLAIMS_SET_METADATA(), PCLAIMS_SET_METADATA),
            deferred=True,
        )
    ]
