Skip to content
Snippets Groups Projects
ContextOuterClass.java 3.11 MiB
Newer Older
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: context.proto
package context;

public final class ContextOuterClass {

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {
    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
        registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
    public enum EventTypeEnum implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <code>EVENTTYPE_UNDEFINED = 0;</code>
         */
        EVENTTYPE_UNDEFINED(0),
        /**
         * <code>EVENTTYPE_CREATE = 1;</code>
         */
        EVENTTYPE_CREATE(1),
        /**
         * <code>EVENTTYPE_UPDATE = 2;</code>
         */
        EVENTTYPE_UPDATE(2),
        /**
         * <code>EVENTTYPE_REMOVE = 3;</code>
         */
        EVENTTYPE_REMOVE(3),
        UNRECOGNIZED(-1);
        /**
         * <code>EVENTTYPE_UNDEFINED = 0;</code>
         */
        public static final int EVENTTYPE_UNDEFINED_VALUE = 0;
        /**
         * <code>EVENTTYPE_CREATE = 1;</code>
         */
        public static final int EVENTTYPE_CREATE_VALUE = 1;
        /**
         * <code>EVENTTYPE_UPDATE = 2;</code>
         */
        public static final int EVENTTYPE_UPDATE_VALUE = 2;
        /**
         * <code>EVENTTYPE_REMOVE = 3;</code>
         */
        public static final int EVENTTYPE_REMOVE_VALUE = 3;
        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static EventTypeEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static EventTypeEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return EVENTTYPE_UNDEFINED;
                case 1:
                    return EVENTTYPE_CREATE;
                case 2:
                    return EVENTTYPE_UPDATE;
                case 3:
                    return EVENTTYPE_REMOVE;
                default:
                    return null;
            }
        }
        public static com.google.protobuf.Internal.EnumLiteMap<EventTypeEnum> internalGetValueMap() {
            return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<EventTypeEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<EventTypeEnum>() {
            public EventTypeEnum findValueByNumber(int number) {
                return EventTypeEnum.forNumber(number);
            }
        };
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(0);
        }
        private static final EventTypeEnum[] VALUES = values();

        public static EventTypeEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }

        private final int value;

        private EventTypeEnum(int value) {
            this.value = value;
        }
    }

    /**
     * Protobuf enum {@code context.DeviceDriverEnum}
     */
    public enum DeviceDriverEnum implements com.google.protobuf.ProtocolMessageEnum {

        /**
         * <pre>
         * also used for emulated
         * </pre>
         *
         * <code>DEVICEDRIVER_UNDEFINED = 0;</code>
         */
        DEVICEDRIVER_UNDEFINED(0),
        /**
         * <code>DEVICEDRIVER_OPENCONFIG = 1;</code>
         */
        DEVICEDRIVER_OPENCONFIG(1),
        /**
         * <code>DEVICEDRIVER_TRANSPORT_API = 2;</code>
         */
        DEVICEDRIVER_TRANSPORT_API(2),
        /**
         * <code>DEVICEDRIVER_P4 = 3;</code>
         */
        DEVICEDRIVER_P4(3),
        /**
         * <code>DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4;</code>
         */
        DEVICEDRIVER_IETF_NETWORK_TOPOLOGY(4),
        /**
         * <code>DEVICEDRIVER_ONF_TR_532 = 5;</code>
         */
        DEVICEDRIVER_ONF_TR_532(5),
        /**
         * <code>DEVICEDRIVER_XR = 6;</code>
         */
        DEVICEDRIVER_XR(6),
        /**
         * <code>DEVICEDRIVER_IETF_L2VPN = 7;</code>
         */
        DEVICEDRIVER_IETF_L2VPN(7),
        /**
         * <code>DEVICEDRIVER_GNMI_OPENCONFIG = 8;</code>
         */
        DEVICEDRIVER_GNMI_OPENCONFIG(8),
        /**
         * <code>DEVICEDRIVER_OPTICAL_TFS = 9;</code>
        DEVICEDRIVER_OPTICAL_TFS(9),
        /**
         * <code>DEVICEDRIVER_IETF_ACTN = 10;</code>
         */
        DEVICEDRIVER_IETF_ACTN(10),
        /**
         * <code>DEVICEDRIVER_OC = 11;</code>
         */
        DEVICEDRIVER_OC(11),
        UNRECOGNIZED(-1);

        /**
         * <pre>
         * also used for emulated
         * </pre>
         *
         * <code>DEVICEDRIVER_UNDEFINED = 0;</code>
         */
        public static final int DEVICEDRIVER_UNDEFINED_VALUE = 0;

        /**
         * <code>DEVICEDRIVER_OPENCONFIG = 1;</code>
         */
        public static final int DEVICEDRIVER_OPENCONFIG_VALUE = 1;

        /**
         * <code>DEVICEDRIVER_TRANSPORT_API = 2;</code>
         */
        public static final int DEVICEDRIVER_TRANSPORT_API_VALUE = 2;

        /**
         * <code>DEVICEDRIVER_P4 = 3;</code>
         */
        public static final int DEVICEDRIVER_P4_VALUE = 3;

        /**
         * <code>DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4;</code>
         */
        public static final int DEVICEDRIVER_IETF_NETWORK_TOPOLOGY_VALUE = 4;

        /**
         * <code>DEVICEDRIVER_ONF_TR_532 = 5;</code>
         */
        public static final int DEVICEDRIVER_ONF_TR_532_VALUE = 5;

        /**
         * <code>DEVICEDRIVER_XR = 6;</code>
         */
        public static final int DEVICEDRIVER_XR_VALUE = 6;

        /**
         * <code>DEVICEDRIVER_IETF_L2VPN = 7;</code>
         */
        public static final int DEVICEDRIVER_IETF_L2VPN_VALUE = 7;

        /**
         * <code>DEVICEDRIVER_GNMI_OPENCONFIG = 8;</code>
         */
        public static final int DEVICEDRIVER_GNMI_OPENCONFIG_VALUE = 8;

        /**
         * <code>DEVICEDRIVER_OPTICAL_TFS = 9;</code>
        public static final int DEVICEDRIVER_OPTICAL_TFS_VALUE = 9;

        /**
         * <code>DEVICEDRIVER_IETF_ACTN = 10;</code>
         */
        public static final int DEVICEDRIVER_IETF_ACTN_VALUE = 10;

        /**
         * <code>DEVICEDRIVER_OC = 11;</code>
         */
        public static final int DEVICEDRIVER_OC_VALUE = 11;

        /**
         * <code>DEVICEDRIVER_QKD = 12;</code>
         */
        public static final int DEVICEDRIVER_QKD_VALUE = 12;

        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static DeviceDriverEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static DeviceDriverEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return DEVICEDRIVER_UNDEFINED;
                case 1:
                    return DEVICEDRIVER_OPENCONFIG;
                case 2:
                    return DEVICEDRIVER_TRANSPORT_API;
                case 3:
                    return DEVICEDRIVER_P4;
                case 4:
                    return DEVICEDRIVER_IETF_NETWORK_TOPOLOGY;
                case 5:
                    return DEVICEDRIVER_ONF_TR_532;
                case 6:
                    return DEVICEDRIVER_XR;
                case 7:
                    return DEVICEDRIVER_IETF_L2VPN;
                case 8:
                    return DEVICEDRIVER_GNMI_OPENCONFIG;
                case 9:
                    return DEVICEDRIVER_OPTICAL_TFS;
                case 11:
                    return DEVICEDRIVER_OC;
        public static com.google.protobuf.Internal.EnumLiteMap<DeviceDriverEnum> internalGetValueMap() {
            return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<DeviceDriverEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<DeviceDriverEnum>() {
            public DeviceDriverEnum findValueByNumber(int number) {
                return DeviceDriverEnum.forNumber(number);
            }
        };
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(1);
        }
        private static final DeviceDriverEnum[] VALUES = values();
        public static DeviceDriverEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            }
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }
        private DeviceDriverEnum(int value) {
            this.value = value;
        }
     * Protobuf enum {@code context.DeviceOperationalStatusEnum}
    public enum DeviceOperationalStatusEnum implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <code>DEVICEOPERATIONALSTATUS_UNDEFINED = 0;</code>
         */
        DEVICEOPERATIONALSTATUS_UNDEFINED(0),
        /**
         * <code>DEVICEOPERATIONALSTATUS_DISABLED = 1;</code>
         */
        DEVICEOPERATIONALSTATUS_DISABLED(1),
        /**
         * <code>DEVICEOPERATIONALSTATUS_ENABLED = 2;</code>
         */
        DEVICEOPERATIONALSTATUS_ENABLED(2),
        UNRECOGNIZED(-1);
        /**
         * <code>DEVICEOPERATIONALSTATUS_UNDEFINED = 0;</code>
         */
        public static final int DEVICEOPERATIONALSTATUS_UNDEFINED_VALUE = 0;
        /**
         * <code>DEVICEOPERATIONALSTATUS_DISABLED = 1;</code>
         */
        public static final int DEVICEOPERATIONALSTATUS_DISABLED_VALUE = 1;
        /**
         * <code>DEVICEOPERATIONALSTATUS_ENABLED = 2;</code>
         */
        public static final int DEVICEOPERATIONALSTATUS_ENABLED_VALUE = 2;
        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static DeviceOperationalStatusEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static DeviceOperationalStatusEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return DEVICEOPERATIONALSTATUS_UNDEFINED;
                case 1:
                    return DEVICEOPERATIONALSTATUS_DISABLED;
                case 2:
                    return DEVICEOPERATIONALSTATUS_ENABLED;
                default:
                    return null;
            }
        }
        public static com.google.protobuf.Internal.EnumLiteMap<DeviceOperationalStatusEnum> internalGetValueMap() {
            return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<DeviceOperationalStatusEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<DeviceOperationalStatusEnum>() {
            public DeviceOperationalStatusEnum findValueByNumber(int number) {
                return DeviceOperationalStatusEnum.forNumber(number);
            }
        };
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(2);
        }
        private static final DeviceOperationalStatusEnum[] VALUES = values();
        public static DeviceOperationalStatusEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }

        private final int value;

        private DeviceOperationalStatusEnum(int value) {
            this.value = value;
        }
    }

    /**
     * Protobuf enum {@code context.ServiceTypeEnum}
     */
    public enum ServiceTypeEnum implements com.google.protobuf.ProtocolMessageEnum {

        /**
         * <code>SERVICETYPE_UNKNOWN = 0;</code>
         */
        SERVICETYPE_UNKNOWN(0),
        /**
         * <code>SERVICETYPE_L3NM = 1;</code>
         */
        SERVICETYPE_L3NM(1),
        /**
         * <code>SERVICETYPE_L2NM = 2;</code>
         */
        SERVICETYPE_L2NM(2),
        /**
         * <code>SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3;</code>
         */
        SERVICETYPE_TAPI_CONNECTIVITY_SERVICE(3),
        /**
         * <code>SERVICETYPE_TE = 4;</code>
         */
        SERVICETYPE_TE(4),
        /**
         * <code>SERVICETYPE_E2E = 5;</code>
         */
        SERVICETYPE_E2E(5),
        /**
         * <code>SERVICETYPE_OPTICAL_CONNECTIVITY = 6;</code>
         */
        SERVICETYPE_OPTICAL_CONNECTIVITY(6),
Pablo Armingol's avatar
Pablo Armingol committed
        /**
Pablo Armingol's avatar
Pablo Armingol committed
         * <code>SERVICETYPE_QKD = 7;</code>
         */
        SERVICETYPE_QKD(7),
        UNRECOGNIZED(-1);

        /**
         * <code>SERVICETYPE_UNKNOWN = 0;</code>
         */
        public static final int SERVICETYPE_UNKNOWN_VALUE = 0;

        /**
         * <code>SERVICETYPE_L3NM = 1;</code>
         */
        public static final int SERVICETYPE_L3NM_VALUE = 1;

        /**
         * <code>SERVICETYPE_L2NM = 2;</code>
         */
        public static final int SERVICETYPE_L2NM_VALUE = 2;

        /**
         * <code>SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3;</code>
         */
        public static final int SERVICETYPE_TAPI_CONNECTIVITY_SERVICE_VALUE = 3;

        /**
         * <code>SERVICETYPE_TE = 4;</code>
         */
        public static final int SERVICETYPE_TE_VALUE = 4;

        /**
         * <code>SERVICETYPE_E2E = 5;</code>
         */
        public static final int SERVICETYPE_E2E_VALUE = 5;

        /**
         * <code>SERVICETYPE_OPTICAL_CONNECTIVITY = 6;</code>
         */
        public static final int SERVICETYPE_OPTICAL_CONNECTIVITY_VALUE = 6;

Pablo Armingol's avatar
Pablo Armingol committed
        /**
         * <code>SERVICETYPE_QKD = 7;</code>
         */
        public static final int SERVICETYPE_QKD_VALUE = 7;
Pablo Armingol's avatar
Pablo Armingol committed
        
        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ServiceTypeEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static ServiceTypeEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return SERVICETYPE_UNKNOWN;
                case 1:
                    return SERVICETYPE_L3NM;
                case 2:
                    return SERVICETYPE_L2NM;
                case 3:
                    return SERVICETYPE_TAPI_CONNECTIVITY_SERVICE;
                case 4:
                    return SERVICETYPE_TE;
                case 5:
                    return SERVICETYPE_E2E;
                case 6:
                    return SERVICETYPE_OPTICAL_CONNECTIVITY;
Pablo Armingol's avatar
Pablo Armingol committed
                case 7:
                    return SERVICETYPE_QKD;
        public static com.google.protobuf.Internal.EnumLiteMap<ServiceTypeEnum> internalGetValueMap() {
            return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<ServiceTypeEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<ServiceTypeEnum>() {
            public ServiceTypeEnum findValueByNumber(int number) {
                return ServiceTypeEnum.forNumber(number);
            }
        };
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(3);
        }
        private static final ServiceTypeEnum[] VALUES = values();
        public static ServiceTypeEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            }
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }

        private final int value;

        private ServiceTypeEnum(int value) {
            this.value = value;
        }
    }

    /**
     * Protobuf enum {@code context.ServiceStatusEnum}
     */
    public enum ServiceStatusEnum implements com.google.protobuf.ProtocolMessageEnum {

        /**
         * <code>SERVICESTATUS_UNDEFINED = 0;</code>
         */
        SERVICESTATUS_UNDEFINED(0),
        /**
         * <code>SERVICESTATUS_PLANNED = 1;</code>
         */
        SERVICESTATUS_PLANNED(1),
        /**
         * <code>SERVICESTATUS_ACTIVE = 2;</code>
         */
        SERVICESTATUS_ACTIVE(2),
        /**
         * <code>SERVICESTATUS_UPDATING = 3;</code>
         */
        SERVICESTATUS_UPDATING(3),
        /**
         * <code>SERVICESTATUS_PENDING_REMOVAL = 4;</code>
         */
        SERVICESTATUS_PENDING_REMOVAL(4),
        /**
         * <code>SERVICESTATUS_SLA_VIOLATED = 5;</code>
         */
        SERVICESTATUS_SLA_VIOLATED(5),
        UNRECOGNIZED(-1);

        /**
         * <code>SERVICESTATUS_UNDEFINED = 0;</code>
         */
        public static final int SERVICESTATUS_UNDEFINED_VALUE = 0;

        /**
         * <code>SERVICESTATUS_PLANNED = 1;</code>
         */
        public static final int SERVICESTATUS_PLANNED_VALUE = 1;

        /**
         * <code>SERVICESTATUS_ACTIVE = 2;</code>
         */
        public static final int SERVICESTATUS_ACTIVE_VALUE = 2;

        /**
         * <code>SERVICESTATUS_UPDATING = 3;</code>
         */
        public static final int SERVICESTATUS_UPDATING_VALUE = 3;

        /**
         * <code>SERVICESTATUS_PENDING_REMOVAL = 4;</code>
         */
        public static final int SERVICESTATUS_PENDING_REMOVAL_VALUE = 4;

        /**
         * <code>SERVICESTATUS_SLA_VIOLATED = 5;</code>
         */
        public static final int SERVICESTATUS_SLA_VIOLATED_VALUE = 5;

        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ServiceStatusEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static ServiceStatusEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return SERVICESTATUS_UNDEFINED;
                case 1:
                    return SERVICESTATUS_PLANNED;
                case 2:
                    return SERVICESTATUS_ACTIVE;
                case 3:
                    return SERVICESTATUS_UPDATING;
                case 4:
                    return SERVICESTATUS_PENDING_REMOVAL;
                case 5:
                    return SERVICESTATUS_SLA_VIOLATED;
                default:
                    return null;
            }
        }
        public static com.google.protobuf.Internal.EnumLiteMap<ServiceStatusEnum> internalGetValueMap() {
            return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<ServiceStatusEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<ServiceStatusEnum>() {

            public ServiceStatusEnum findValueByNumber(int number) {
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(4);
        }
        private static final ServiceStatusEnum[] VALUES = values();
        public static ServiceStatusEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            }
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }

        private final int value;

        private ServiceStatusEnum(int value) {
            this.value = value;
        }
    }

    /**
     * Protobuf enum {@code context.SliceStatusEnum}
     */
    public enum SliceStatusEnum implements com.google.protobuf.ProtocolMessageEnum {

        /**
         * <code>SLICESTATUS_UNDEFINED = 0;</code>
         */
        SLICESTATUS_UNDEFINED(0),
        /**
         * <code>SLICESTATUS_PLANNED = 1;</code>
         */
        SLICESTATUS_PLANNED(1),
        /**
         * <code>SLICESTATUS_INIT = 2;</code>
         */
        SLICESTATUS_INIT(2),
        /**
         * <code>SLICESTATUS_ACTIVE = 3;</code>
         */
        SLICESTATUS_ACTIVE(3),
        /**
         * <code>SLICESTATUS_DEINIT = 4;</code>
         */
        SLICESTATUS_DEINIT(4),
        /**
         * <code>SLICESTATUS_SLA_VIOLATED = 5;</code>
         */
        SLICESTATUS_SLA_VIOLATED(5),
        UNRECOGNIZED(-1);

        /**
         * <code>SLICESTATUS_UNDEFINED = 0;</code>
         */
        public static final int SLICESTATUS_UNDEFINED_VALUE = 0;

        /**
         * <code>SLICESTATUS_PLANNED = 1;</code>
         */
        public static final int SLICESTATUS_PLANNED_VALUE = 1;

        /**
         * <code>SLICESTATUS_INIT = 2;</code>
         */
        public static final int SLICESTATUS_INIT_VALUE = 2;

        /**
         * <code>SLICESTATUS_ACTIVE = 3;</code>
         */
        public static final int SLICESTATUS_ACTIVE_VALUE = 3;

        /**
         * <code>SLICESTATUS_DEINIT = 4;</code>
         */
        public static final int SLICESTATUS_DEINIT_VALUE = 4;

        /**
         * <code>SLICESTATUS_SLA_VIOLATED = 5;</code>
         */
        public static final int SLICESTATUS_SLA_VIOLATED_VALUE = 5;

        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static SliceStatusEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static SliceStatusEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return SLICESTATUS_UNDEFINED;
                case 1:
                    return SLICESTATUS_PLANNED;
                case 2:
                    return SLICESTATUS_INIT;
                case 3:
                    return SLICESTATUS_ACTIVE;
                case 4:
                    return SLICESTATUS_DEINIT;
                case 5:
                    return SLICESTATUS_SLA_VIOLATED;
                default:
                    return null;
            }
        }
        public static com.google.protobuf.Internal.EnumLiteMap<SliceStatusEnum> internalGetValueMap() {
            return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<SliceStatusEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<SliceStatusEnum>() {

            public SliceStatusEnum findValueByNumber(int number) {
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(5);
        }
        private static final SliceStatusEnum[] VALUES = values();
        public static SliceStatusEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            }
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }
        private SliceStatusEnum(int value) {
            this.value = value;
        }
     * <pre>
     * ----- Configuration -------------------------------------------------------------------------------------------------
     * </pre>
     *
     * Protobuf enum {@code context.ConfigActionEnum}
     */
    public enum ConfigActionEnum implements com.google.protobuf.ProtocolMessageEnum {

        /**
         * <code>CONFIGACTION_UNDEFINED = 0;</code>
         */
        CONFIGACTION_UNDEFINED(0),
        /**
         * <code>CONFIGACTION_SET = 1;</code>
         */
        CONFIGACTION_SET(1),
        /**
         * <code>CONFIGACTION_DELETE = 2;</code>
         */
        CONFIGACTION_DELETE(2),
        UNRECOGNIZED(-1);

        /**
         * <code>CONFIGACTION_UNDEFINED = 0;</code>
         */
        public static final int CONFIGACTION_UNDEFINED_VALUE = 0;

        /**
         * <code>CONFIGACTION_SET = 1;</code>
         */
        public static final int CONFIGACTION_SET_VALUE = 1;

        /**
         * <code>CONFIGACTION_DELETE = 2;</code>
         */
        public static final int CONFIGACTION_DELETE_VALUE = 2;

        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ConfigActionEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static ConfigActionEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return CONFIGACTION_UNDEFINED;
                case 1:
                    return CONFIGACTION_SET;
                case 2:
                    return CONFIGACTION_DELETE;
                default:
                    return null;
            }
        }
        public static com.google.protobuf.Internal.EnumLiteMap<ConfigActionEnum> internalGetValueMap() {
            return internalValueMap;
        }

        private static final com.google.protobuf.Internal.EnumLiteMap<ConfigActionEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<ConfigActionEnum>() {

            public ConfigActionEnum findValueByNumber(int number) {
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(6);
        }
        private static final ConfigActionEnum[] VALUES = values();
        public static ConfigActionEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            }
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }
        private ConfigActionEnum(int value) {
            this.value = value;
        }
     * <pre>
     * ----- Constraint ----------------------------------------------------------------------------------------------------
     * </pre>
     *
     * Protobuf enum {@code context.ConstraintActionEnum}
     */
    public enum ConstraintActionEnum implements com.google.protobuf.ProtocolMessageEnum {

        /**
         * <code>CONSTRAINTACTION_UNDEFINED = 0;</code>
         */
        CONSTRAINTACTION_UNDEFINED(0),
        /**
         * <code>CONSTRAINTACTION_SET = 1;</code>
         */
        CONSTRAINTACTION_SET(1),
        /**
         * <code>CONSTRAINTACTION_DELETE = 2;</code>
         */
        CONSTRAINTACTION_DELETE(2),
        UNRECOGNIZED(-1);

        /**
         * <code>CONSTRAINTACTION_UNDEFINED = 0;</code>
         */
        public static final int CONSTRAINTACTION_UNDEFINED_VALUE = 0;

        /**
         * <code>CONSTRAINTACTION_SET = 1;</code>
         */
        public static final int CONSTRAINTACTION_SET_VALUE = 1;

        /**
         * <code>CONSTRAINTACTION_DELETE = 2;</code>
         */
        public static final int CONSTRAINTACTION_DELETE_VALUE = 2;

        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ConstraintActionEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static ConstraintActionEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return CONSTRAINTACTION_UNDEFINED;
                case 1:
                    return CONSTRAINTACTION_SET;
                case 2:
                    return CONSTRAINTACTION_DELETE;
                default:
                    return null;
            }
        }
        public static com.google.protobuf.Internal.EnumLiteMap<ConstraintActionEnum> internalGetValueMap() {
            return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<ConstraintActionEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<ConstraintActionEnum>() {
            public ConstraintActionEnum findValueByNumber(int number) {
                return ConstraintActionEnum.forNumber(number);
            }
        };
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7);
        }
        private static final ConstraintActionEnum[] VALUES = values();
        public static ConstraintActionEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            }
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }

        private final int value;

        private ConstraintActionEnum(int value) {
            this.value = value;
        }
    }

    /**
     * Protobuf enum {@code context.IsolationLevelEnum}
     */
    public enum IsolationLevelEnum implements com.google.protobuf.ProtocolMessageEnum {

        /**
         * <code>NO_ISOLATION = 0;</code>
         */
        NO_ISOLATION(0),
        /**
         * <code>PHYSICAL_ISOLATION = 1;</code>
         */
        PHYSICAL_ISOLATION(1),
        /**
         * <code>LOGICAL_ISOLATION = 2;</code>
         */
        LOGICAL_ISOLATION(2),
        /**
         * <code>PROCESS_ISOLATION = 3;</code>
         */
        PROCESS_ISOLATION(3),
        /**
         * <code>PHYSICAL_MEMORY_ISOLATION = 4;</code>
         */
        PHYSICAL_MEMORY_ISOLATION(4),
        /**
         * <code>PHYSICAL_NETWORK_ISOLATION = 5;</code>
         */
        PHYSICAL_NETWORK_ISOLATION(5),
        /**
         * <code>VIRTUAL_RESOURCE_ISOLATION = 6;</code>
         */
        VIRTUAL_RESOURCE_ISOLATION(6),
        /**
         * <code>NETWORK_FUNCTIONS_ISOLATION = 7;</code>
         */
        NETWORK_FUNCTIONS_ISOLATION(7),
        /**
         * <code>SERVICE_ISOLATION = 8;</code>
         */
        SERVICE_ISOLATION(8),
        UNRECOGNIZED(-1);

        /**
         * <code>NO_ISOLATION = 0;</code>
         */
        public static final int NO_ISOLATION_VALUE = 0;

        /**
         * <code>PHYSICAL_ISOLATION = 1;</code>
         */
        public static final int PHYSICAL_ISOLATION_VALUE = 1;

        /**
         * <code>LOGICAL_ISOLATION = 2;</code>
         */
        public static final int LOGICAL_ISOLATION_VALUE = 2;

        /**
         * <code>PROCESS_ISOLATION = 3;</code>
         */
        public static final int PROCESS_ISOLATION_VALUE = 3;

        /**
         * <code>PHYSICAL_MEMORY_ISOLATION = 4;</code>
         */
        public static final int PHYSICAL_MEMORY_ISOLATION_VALUE = 4;

        /**
         * <code>PHYSICAL_NETWORK_ISOLATION = 5;</code>
         */
        public static final int PHYSICAL_NETWORK_ISOLATION_VALUE = 5;

        /**
         * <code>VIRTUAL_RESOURCE_ISOLATION = 6;</code>
         */
        public static final int VIRTUAL_RESOURCE_ISOLATION_VALUE = 6;

        /**
         * <code>NETWORK_FUNCTIONS_ISOLATION = 7;</code>
         */
        public static final int NETWORK_FUNCTIONS_ISOLATION_VALUE = 7;

        /**
         * <code>SERVICE_ISOLATION = 8;</code>
         */
        public static final int SERVICE_ISOLATION_VALUE = 8;

        public final int getNumber() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value.");
            }
            return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static IsolationLevelEnum valueOf(int value) {
            return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static IsolationLevelEnum forNumber(int value) {
            switch(value) {
                case 0:
                    return NO_ISOLATION;
                case 1:
                    return PHYSICAL_ISOLATION;
                case 2:
                    return LOGICAL_ISOLATION;
                case 3:
                    return PROCESS_ISOLATION;
                case 4:
                    return PHYSICAL_MEMORY_ISOLATION;
                case 5:
                    return PHYSICAL_NETWORK_ISOLATION;
                case 6:
                    return VIRTUAL_RESOURCE_ISOLATION;
                case 7:
                    return NETWORK_FUNCTIONS_ISOLATION;
                case 8:
                    return SERVICE_ISOLATION;
                default:
                    return null;
            }
        }
        public static com.google.protobuf.Internal.EnumLiteMap<IsolationLevelEnum> internalGetValueMap() {
            return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<IsolationLevelEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<IsolationLevelEnum>() {

            public IsolationLevelEnum findValueByNumber(int number) {
        public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
            if (this == UNRECOGNIZED) {
                throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value.");
            }
            return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
            return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
            return context.ContextOuterClass.getDescriptor().getEnumTypes().get(8);
        }
        private static final IsolationLevelEnum[] VALUES = values();
        public static IsolationLevelEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
            }
            if (desc.getIndex() == -1) {
                return UNRECOGNIZED;
            }
            return VALUES[desc.getIndex()];
        }
        private IsolationLevelEnum(int value) {
            this.value = value;
        }
    public interface EmptyOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Empty)
    com.google.protobuf.MessageOrBuilder {
    }

    /**
     * <pre>
     * ----- Generic -------------------------------------------------------------------------------------------------------
     * </pre>
     *
     * Protobuf type {@code context.Empty}
     */
    public static final class Empty extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Empty)
    EmptyOrBuilder {
        private static final long serialVersionUID = 0L;
        // Use Empty.newBuilder() to construct.
        private Empty(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }
        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new Empty();
        }
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_Empty_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_Empty_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Empty.class, context.ContextOuterClass.Empty.Builder.class);
        }
        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }
        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.Empty)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.Empty other = (context.ContextOuterClass.Empty) obj;
            if (!getUnknownFields().equals(other.getUnknownFields()))
        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (29 * hash) + getUnknownFields().hashCode();
        public static context.ContextOuterClass.Empty parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Empty parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Empty parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Empty parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Empty parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Empty parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Empty parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Empty parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.Empty parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Empty parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.Empty parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Empty parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }
        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(context.ContextOuterClass.Empty prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }
        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }
        /**
         * <pre>
         * ----- Generic -------------------------------------------------------------------------------------------------------
         * </pre>
         *
         * Protobuf type {@code context.Empty}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Empty)
        context.ContextOuterClass.EmptyOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_Empty_descriptor;
            }
            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_Empty_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Empty.class, context.ContextOuterClass.Empty.Builder.class);
            }
            // Construct using context.ContextOuterClass.Empty.newBuilder()
            private Builder() {
            }
            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }
            @java.lang.Override
            public Builder clear() {
                super.clear();
                return this;
            }
            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_Empty_descriptor;
            }
            @java.lang.Override
            public context.ContextOuterClass.Empty getDefaultInstanceForType() {
                return context.ContextOuterClass.Empty.getDefaultInstance();
            }
            @java.lang.Override
            public context.ContextOuterClass.Empty build() {
                context.ContextOuterClass.Empty result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }
            @java.lang.Override
            public context.ContextOuterClass.Empty buildPartial() {
                context.ContextOuterClass.Empty result = new context.ContextOuterClass.Empty(this);
                onBuilt();
                return result;
            }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.Empty) {
                    return mergeFrom((context.ContextOuterClass.Empty) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }
            public Builder mergeFrom(context.ContextOuterClass.Empty other) {
                if (other == context.ContextOuterClass.Empty.getDefaultInstance())
                    return this;
                this.mergeUnknownFields(other.getUnknownFields());
            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }
            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.Empty)
        }
        // @@protoc_insertion_point(class_scope:context.Empty)
        private static final context.ContextOuterClass.Empty DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.Empty();
        }
        public static context.ContextOuterClass.Empty getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }
        private static final com.google.protobuf.Parser<Empty> PARSER = new com.google.protobuf.AbstractParser<Empty>() {
            @java.lang.Override
            public Empty parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
        public static com.google.protobuf.Parser<Empty> parser() {
            return PARSER;
        }
        @java.lang.Override
        public com.google.protobuf.Parser<Empty> getParserForType() {
            return PARSER;
        }
        @java.lang.Override
        public context.ContextOuterClass.Empty getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    public interface UuidOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Uuid)
    com.google.protobuf.MessageOrBuilder {
        /**
         * <code>string uuid = 1;</code>
         * @return The uuid.
         */
        java.lang.String getUuid();

        /**
         * <code>string uuid = 1;</code>
         * @return The bytes for uuid.
         */
        com.google.protobuf.ByteString getUuidBytes();
    public static final class Uuid extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Uuid)
    UuidOrBuilder {
        private static final long serialVersionUID = 0L;
        // Use Uuid.newBuilder() to construct.
        private Uuid(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }
        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new Uuid();
        }
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_Uuid_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_Uuid_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Uuid.class, context.ContextOuterClass.Uuid.Builder.class);
        }
        public static final int UUID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object uuid_ = "";
        /**
         * <code>string uuid = 1;</code>
         * @return The uuid.
         */
        @java.lang.Override
        public java.lang.String getUuid() {
            java.lang.Object ref = uuid_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                uuid_ = s;
                return s;
            }
        }
        /**
         * <code>string uuid = 1;</code>
         * @return The bytes for uuid.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getUuidBytes() {
            java.lang.Object ref = uuid_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                uuid_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }
        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }
        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uuid_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uuid_);
            }
        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uuid_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uuid_);
            }
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.Uuid)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.Uuid other = (context.ContextOuterClass.Uuid) obj;
            if (!getUuid().equals(other.getUuid()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + UUID_FIELD_NUMBER;
            hash = (53 * hash) + getUuid().hashCode();
            hash = (29 * hash) + getUnknownFields().hashCode();
        public static context.ContextOuterClass.Uuid parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Uuid parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Uuid parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Uuid parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Uuid parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Uuid parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Uuid parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Uuid parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.Uuid parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Uuid parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.Uuid parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Uuid parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }
        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(context.ContextOuterClass.Uuid prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }
        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }
        /**
         * Protobuf type {@code context.Uuid}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Uuid)
        context.ContextOuterClass.UuidOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_Uuid_descriptor;
            }
            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_Uuid_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Uuid.class, context.ContextOuterClass.Uuid.Builder.class);
            }
            // Construct using context.ContextOuterClass.Uuid.newBuilder()
            private Builder() {
            }
            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }
            @java.lang.Override
            public Builder clear() {
                super.clear();
            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_Uuid_descriptor;
            }
            @java.lang.Override
            public context.ContextOuterClass.Uuid getDefaultInstanceForType() {
                return context.ContextOuterClass.Uuid.getDefaultInstance();
            }
            @java.lang.Override
            public context.ContextOuterClass.Uuid build() {
                context.ContextOuterClass.Uuid result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }
            @java.lang.Override
            public context.ContextOuterClass.Uuid buildPartial() {
                context.ContextOuterClass.Uuid result = new context.ContextOuterClass.Uuid(this);
            private void buildPartial0(context.ContextOuterClass.Uuid result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.uuid_ = uuid_;
                }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.Uuid) {
                    return mergeFrom((context.ContextOuterClass.Uuid) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }
            public Builder mergeFrom(context.ContextOuterClass.Uuid other) {
                if (other == context.ContextOuterClass.Uuid.getDefaultInstance())
                    return this;
                if (!other.getUuid().isEmpty()) {
                    uuid_ = other.uuid_;
                this.mergeUnknownFields(other.getUnknownFields());
            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    uuid_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            private java.lang.Object uuid_ = "";

            /**
             * <code>string uuid = 1;</code>
             * @return The uuid.
             */
            public java.lang.String getUuid() {
                java.lang.Object ref = uuid_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    uuid_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }
            /**
             * <code>string uuid = 1;</code>
             * @return The bytes for uuid.
             */
            public com.google.protobuf.ByteString getUuidBytes() {
                java.lang.Object ref = uuid_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                    uuid_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }
            /**
             * <code>string uuid = 1;</code>
             * @param value The uuid to set.
             * @return This builder for chaining.
             */
            public Builder setUuid(java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                uuid_ = value;
            /**
             * <code>string uuid = 1;</code>
             * @return This builder for chaining.
             */
            public Builder clearUuid() {
                uuid_ = getDefaultInstance().getUuid();
            /**
             * <code>string uuid = 1;</code>
             * @param value The bytes for uuid to set.
             * @return This builder for chaining.
             */
            public Builder setUuidBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                uuid_ = value;
            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }
            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.Uuid)
        }
        // @@protoc_insertion_point(class_scope:context.Uuid)
        private static final context.ContextOuterClass.Uuid DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.Uuid();
        }
        public static context.ContextOuterClass.Uuid getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }
        private static final com.google.protobuf.Parser<Uuid> PARSER = new com.google.protobuf.AbstractParser<Uuid>() {
            @java.lang.Override
            public Uuid parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
        public static com.google.protobuf.Parser<Uuid> parser() {
            return PARSER;
        }
        @java.lang.Override
        public com.google.protobuf.Parser<Uuid> getParserForType() {
            return PARSER;

        @java.lang.Override
        public context.ContextOuterClass.Uuid getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
    public interface TimestampOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Timestamp)
    com.google.protobuf.MessageOrBuilder {
        /**
         * <code>double timestamp = 1;</code>
         * @return The timestamp.
         */
        double getTimestamp();
    public static final class Timestamp extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Timestamp)
    TimestampOrBuilder {
        private static final long serialVersionUID = 0L;
        // Use Timestamp.newBuilder() to construct.
        private Timestamp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }
        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new Timestamp();
        }
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_Timestamp_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_Timestamp_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Timestamp.class, context.ContextOuterClass.Timestamp.Builder.class);
        }
        public static final int TIMESTAMP_FIELD_NUMBER = 1;
        /**
         * <code>double timestamp = 1;</code>
         * @return The timestamp.
         */
        @java.lang.Override
        public double getTimestamp() {
            return timestamp_;
        }
        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }
        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (java.lang.Double.doubleToRawLongBits(timestamp_) != 0) {
        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (java.lang.Double.doubleToRawLongBits(timestamp_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, timestamp_);
            }
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.Timestamp)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.Timestamp other = (context.ContextOuterClass.Timestamp) obj;
            if (java.lang.Double.doubleToLongBits(getTimestamp()) != java.lang.Double.doubleToLongBits(other.getTimestamp()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(java.lang.Double.doubleToLongBits(getTimestamp()));
            hash = (29 * hash) + getUnknownFields().hashCode();
        public static context.ContextOuterClass.Timestamp parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.Timestamp parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Timestamp parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Timestamp parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }
        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(context.ContextOuterClass.Timestamp prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }
        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }
        /**
         * Protobuf type {@code context.Timestamp}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Timestamp)
        context.ContextOuterClass.TimestampOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_Timestamp_descriptor;
            }
            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_Timestamp_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Timestamp.class, context.ContextOuterClass.Timestamp.Builder.class);
            }
            // Construct using context.ContextOuterClass.Timestamp.newBuilder()
            private Builder() {
            }
            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }
            @java.lang.Override
            public Builder clear() {
                super.clear();
            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_Timestamp_descriptor;
            }
            @java.lang.Override
            public context.ContextOuterClass.Timestamp getDefaultInstanceForType() {
                return context.ContextOuterClass.Timestamp.getDefaultInstance();
            }
            @java.lang.Override
            public context.ContextOuterClass.Timestamp build() {
                context.ContextOuterClass.Timestamp result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }
            @java.lang.Override
            public context.ContextOuterClass.Timestamp buildPartial() {
                context.ContextOuterClass.Timestamp result = new context.ContextOuterClass.Timestamp(this);
            private void buildPartial0(context.ContextOuterClass.Timestamp result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.timestamp_ = timestamp_;
                }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.Timestamp) {
                    return mergeFrom((context.ContextOuterClass.Timestamp) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }
            public Builder mergeFrom(context.ContextOuterClass.Timestamp other) {
                if (other == context.ContextOuterClass.Timestamp.getDefaultInstance())
                    return this;
                if (other.getTimestamp() != 0D) {
                    setTimestamp(other.getTimestamp());
                }
                this.mergeUnknownFields(other.getUnknownFields());
            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 9:
                                {
                                    timestamp_ = input.readDouble();
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 9
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            /**
             * <code>double timestamp = 1;</code>
             * @return The timestamp.
             */
            @java.lang.Override
            public double getTimestamp() {
                return timestamp_;
            }
            /**
             * <code>double timestamp = 1;</code>
             * @param value The timestamp to set.
             * @return This builder for chaining.
             */
            public Builder setTimestamp(double value) {
                timestamp_ = value;
            /**
             * <code>double timestamp = 1;</code>
             * @return This builder for chaining.
             */
            public Builder clearTimestamp() {
            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }
            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.Timestamp)
        }
        // @@protoc_insertion_point(class_scope:context.Timestamp)
        private static final context.ContextOuterClass.Timestamp DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.Timestamp();
        }
        public static context.ContextOuterClass.Timestamp getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }
        private static final com.google.protobuf.Parser<Timestamp> PARSER = new com.google.protobuf.AbstractParser<Timestamp>() {
            @java.lang.Override
            public Timestamp parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
        public static com.google.protobuf.Parser<Timestamp> parser() {
            return PARSER;
        }
        @java.lang.Override
        public com.google.protobuf.Parser<Timestamp> getParserForType() {
            return PARSER;
        }
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    public interface EventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Event)
    com.google.protobuf.MessageOrBuilder {
        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         * @return Whether the timestamp field is set.
         */
        boolean hasTimestamp();
        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         * @return The timestamp.
         */
        context.ContextOuterClass.Timestamp getTimestamp();
        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         */
        context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder();
        /**
         * <code>.context.EventTypeEnum event_type = 2;</code>
         * @return The enum numeric value on the wire for eventType.
         */
        int getEventTypeValue();
        /**
         * <code>.context.EventTypeEnum event_type = 2;</code>
         * @return The eventType.
         */
        context.ContextOuterClass.EventTypeEnum getEventType();
    public static final class Event extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Event)
    EventOrBuilder {
        private static final long serialVersionUID = 0L;
        // Use Event.newBuilder() to construct.
        private Event(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }
        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new Event();
        }
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_Event_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_Event_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Event.class, context.ContextOuterClass.Event.Builder.class);
        }
        public static final int TIMESTAMP_FIELD_NUMBER = 1;
        private context.ContextOuterClass.Timestamp timestamp_;
        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         * @return Whether the timestamp field is set.
         */
        @java.lang.Override
        public boolean hasTimestamp() {
            return timestamp_ != null;
        }
        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         * @return The timestamp.
         */
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getTimestamp() {
            return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
        }
        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() {
            return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
        public static final int EVENT_TYPE_FIELD_NUMBER = 2;
        /**
         * <code>.context.EventTypeEnum event_type = 2;</code>
         * @return The enum numeric value on the wire for eventType.
         */
        @java.lang.Override
        public int getEventTypeValue() {
            return eventType_;
        }
        /**
         * <code>.context.EventTypeEnum event_type = 2;</code>
         * @return The eventType.
         */
        @java.lang.Override
        public context.ContextOuterClass.EventTypeEnum getEventType() {
            context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.forNumber(eventType_);
            return result == null ? context.ContextOuterClass.EventTypeEnum.UNRECOGNIZED : result;
        }
        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }
        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (timestamp_ != null) {
                output.writeMessage(1, getTimestamp());
            }
            if (eventType_ != context.ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED.getNumber()) {
                output.writeEnum(2, eventType_);
            }
        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (timestamp_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTimestamp());
            }
            if (eventType_ != context.ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED.getNumber()) {
                size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, eventType_);
            }
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.Event)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.Event other = (context.ContextOuterClass.Event) obj;
            if (hasTimestamp() != other.hasTimestamp())
                return false;
            if (hasTimestamp()) {
                if (!getTimestamp().equals(other.getTimestamp()))
                    return false;
            }
            if (eventType_ != other.eventType_)
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasTimestamp()) {
                hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
                hash = (53 * hash) + getTimestamp().hashCode();
            }
            hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER;
            hash = (53 * hash) + eventType_;
            hash = (29 * hash) + getUnknownFields().hashCode();
        public static context.ContextOuterClass.Event parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Event parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Event parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Event parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Event parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.Event parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.Event parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Event parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.Event parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Event parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.Event parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.Event parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }
        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(context.ContextOuterClass.Event prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }
        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }
        /**
         * Protobuf type {@code context.Event}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Event)
        context.ContextOuterClass.EventOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_Event_descriptor;
            }
            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_Event_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Event.class, context.ContextOuterClass.Event.Builder.class);
            }
            // Construct using context.ContextOuterClass.Event.newBuilder()
            private Builder() {
            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }
            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timestamp_ = null;
                if (timestampBuilder_ != null) {
                    timestampBuilder_.dispose();
            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_Event_descriptor;
            }
            @java.lang.Override
            public context.ContextOuterClass.Event getDefaultInstanceForType() {
                return context.ContextOuterClass.Event.getDefaultInstance();
            }
            @java.lang.Override
            public context.ContextOuterClass.Event build() {
                context.ContextOuterClass.Event result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }
            @java.lang.Override
            public context.ContextOuterClass.Event buildPartial() {
                context.ContextOuterClass.Event result = new context.ContextOuterClass.Event(this);
            private void buildPartial0(context.ContextOuterClass.Event result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.eventType_ = eventType_;
                }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.Event) {
                    return mergeFrom((context.ContextOuterClass.Event) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }
            public Builder mergeFrom(context.ContextOuterClass.Event other) {
                if (other == context.ContextOuterClass.Event.getDefaultInstance())
                    return this;
                if (other.hasTimestamp()) {
                    mergeTimestamp(other.getTimestamp());
                }
                if (other.eventType_ != 0) {
                    setEventTypeValue(other.getEventTypeValue());
                }
                this.mergeUnknownFields(other.getUnknownFields());
            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 16:
                                {
                                    eventType_ = input.readEnum();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 16
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            private context.ContextOuterClass.Timestamp timestamp_;
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> timestampBuilder_;
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             * @return Whether the timestamp field is set.
             */
            public boolean hasTimestamp() {
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             * @return The timestamp.
             */
            public context.ContextOuterClass.Timestamp getTimestamp() {
                if (timestampBuilder_ == null) {
                    return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
                } else {
                    return timestampBuilder_.getMessage();
                }
            }
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public Builder setTimestamp(context.ContextOuterClass.Timestamp value) {
                if (timestampBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    timestamp_ = value;
                } else {
                    timestampBuilder_.setMessage(value);
                }
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) {
                if (timestampBuilder_ == null) {
                    timestamp_ = builderForValue.build();
                } else {
                    timestampBuilder_.setMessage(builderForValue.build());
                }
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) {
                if (timestampBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) {
                        getTimestampBuilder().mergeFrom(value);
                    } else {
                        timestamp_ = value;
                    }
                } else {
                    timestampBuilder_.mergeFrom(value);
                }
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public Builder clearTimestamp() {
                bitField0_ = (bitField0_ & ~0x00000001);
                timestamp_ = null;
                if (timestampBuilder_ != null) {
                    timestampBuilder_.dispose();
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() {
                onChanged();
                return getTimestampFieldBuilder().getBuilder();
            }
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() {
                if (timestampBuilder_ != null) {
                    return timestampBuilder_.getMessageOrBuilder();
                } else {
                    return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
                }
            }
            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> getTimestampFieldBuilder() {
                if (timestampBuilder_ == null) {
                    timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>(getTimestamp(), getParentForChildren(), isClean());
                    timestamp_ = null;
                }
                return timestampBuilder_;
            }
            /**
             * <code>.context.EventTypeEnum event_type = 2;</code>
             * @return The enum numeric value on the wire for eventType.
             */
            @java.lang.Override
            public int getEventTypeValue() {
                return eventType_;
            }
            /**
             * <code>.context.EventTypeEnum event_type = 2;</code>
             * @param value The enum numeric value on the wire for eventType to set.
             * @return This builder for chaining.
             */
            public Builder setEventTypeValue(int value) {
                eventType_ = value;
            /**
             * <code>.context.EventTypeEnum event_type = 2;</code>
             * @return The eventType.
             */
            @java.lang.Override
            public context.ContextOuterClass.EventTypeEnum getEventType() {
                context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.forNumber(eventType_);
                return result == null ? context.ContextOuterClass.EventTypeEnum.UNRECOGNIZED : result;
            }

            /**
             * <code>.context.EventTypeEnum event_type = 2;</code>
             * @param value The eventType to set.
             * @return This builder for chaining.
             */
            public Builder setEventType(context.ContextOuterClass.EventTypeEnum value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                eventType_ = value.getNumber();
                onChanged();
                return this;
            }

            /**
             * <code>.context.EventTypeEnum event_type = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearEventType() {
                eventType_ = 0;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            // @@protoc_insertion_point(builder_scope:context.Event)
        // @@protoc_insertion_point(class_scope:context.Event)
        private static final context.ContextOuterClass.Event DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.Event();
        }
        public static context.ContextOuterClass.Event getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }
        private static final com.google.protobuf.Parser<Event> PARSER = new com.google.protobuf.AbstractParser<Event>() {
            @java.lang.Override
            public Event parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
        public static com.google.protobuf.Parser<Event> parser() {
            return PARSER;
        }
        @java.lang.Override
        public com.google.protobuf.Parser<Event> getParserForType() {
            return PARSER;
        }
        @java.lang.Override
        public context.ContextOuterClass.Event getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    public interface ContextIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ContextId)
    com.google.protobuf.MessageOrBuilder {
        /**
         * <code>.context.Uuid context_uuid = 1;</code>
         * @return Whether the contextUuid field is set.
         */
        boolean hasContextUuid();
        /**
         * <code>.context.Uuid context_uuid = 1;</code>
         * @return The contextUuid.
         */
        context.ContextOuterClass.Uuid getContextUuid();
        /**
         * <code>.context.Uuid context_uuid = 1;</code>
         */
        context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder();
     * <pre>
     * ----- Context -------------------------------------------------------------------------------------------------------
     * </pre>
     *
     * Protobuf type {@code context.ContextId}
    public static final class ContextId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ContextId)
    ContextIdOrBuilder {
        private static final long serialVersionUID = 0L;
        // Use ContextId.newBuilder() to construct.
        private ContextId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }
        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new ContextId();
        }
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_ContextId_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_ContextId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextId.class, context.ContextOuterClass.ContextId.Builder.class);
        }
        public static final int CONTEXT_UUID_FIELD_NUMBER = 1;
        private context.ContextOuterClass.Uuid contextUuid_;
        /**
         * <code>.context.Uuid context_uuid = 1;</code>
         * @return Whether the contextUuid field is set.
         */
        @java.lang.Override
        public boolean hasContextUuid() {
            return contextUuid_ != null;
        }
        /**
         * <code>.context.Uuid context_uuid = 1;</code>
         * @return The contextUuid.
         */
        @java.lang.Override
        public context.ContextOuterClass.Uuid getContextUuid() {
            return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_;
        }
        /**
         * <code>.context.Uuid context_uuid = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder() {
            return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_;
        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }
        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (contextUuid_ != null) {
                output.writeMessage(1, getContextUuid());
            }
        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (contextUuid_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextUuid());
            }
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.ContextId)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.ContextId other = (context.ContextOuterClass.ContextId) obj;
            if (hasContextUuid() != other.hasContextUuid())
                return false;
            if (hasContextUuid()) {
                if (!getContextUuid().equals(other.getContextUuid()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasContextUuid()) {
                hash = (37 * hash) + CONTEXT_UUID_FIELD_NUMBER;
                hash = (53 * hash) + getContextUuid().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
        public static context.ContextOuterClass.ContextId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.ContextId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.ContextId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.ContextId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.ContextId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }
        public static context.ContextOuterClass.ContextId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }
        public static context.ContextOuterClass.ContextId parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.ContextId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.ContextId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.ContextId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static context.ContextOuterClass.ContextId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }
        public static context.ContextOuterClass.ContextId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }
        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }
        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(context.ContextOuterClass.ContextId prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }
        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }
        /**
         * <pre>
         * ----- Context -------------------------------------------------------------------------------------------------------
         * </pre>
         *
         * Protobuf type {@code context.ContextId}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.ContextId)
        context.ContextOuterClass.ContextIdOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_ContextId_descriptor;
            }
            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_ContextId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextId.class, context.ContextOuterClass.ContextId.Builder.class);
            }
            // Construct using context.ContextOuterClass.ContextId.newBuilder()
            private Builder() {
            }
            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }
            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                contextUuid_ = null;
                if (contextUuidBuilder_ != null) {
                    contextUuidBuilder_.dispose();
            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_ContextId_descriptor;
            }
            @java.lang.Override
            public context.ContextOuterClass.ContextId getDefaultInstanceForType() {
                return context.ContextOuterClass.ContextId.getDefaultInstance();
            }
            @java.lang.Override
            public context.ContextOuterClass.ContextId build() {
                context.ContextOuterClass.ContextId result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }
            @java.lang.Override
            public context.ContextOuterClass.ContextId buildPartial() {
                context.ContextOuterClass.ContextId result = new context.ContextOuterClass.ContextId(this);
            private void buildPartial0(context.ContextOuterClass.ContextId result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.contextUuid_ = contextUuidBuilder_ == null ? contextUuid_ : contextUuidBuilder_.build();
                }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.ContextId) {
                    return mergeFrom((context.ContextOuterClass.ContextId) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }
            public Builder mergeFrom(context.ContextOuterClass.ContextId other) {
                if (other == context.ContextOuterClass.ContextId.getDefaultInstance())
                    return this;
                if (other.hasContextUuid()) {
                    mergeContextUuid(other.getContextUuid());
                }
                this.mergeUnknownFields(other.getUnknownFields());
            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }
            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getContextUuidFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            private context.ContextOuterClass.Uuid contextUuid_;
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> contextUuidBuilder_;
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             * @return Whether the contextUuid field is set.
             */
            public boolean hasContextUuid() {
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             * @return The contextUuid.
             */
            public context.ContextOuterClass.Uuid getContextUuid() {
                if (contextUuidBuilder_ == null) {
                    return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_;
                } else {
                    return contextUuidBuilder_.getMessage();
                }
            }
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             */
            public Builder setContextUuid(context.ContextOuterClass.Uuid value) {
                if (contextUuidBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    contextUuid_ = value;
                } else {
                    contextUuidBuilder_.setMessage(value);
                }
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             */
            public Builder setContextUuid(context.ContextOuterClass.Uuid.Builder builderForValue) {
                if (contextUuidBuilder_ == null) {
                    contextUuid_ = builderForValue.build();
                } else {
                    contextUuidBuilder_.setMessage(builderForValue.build());
                }
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             */
            public Builder mergeContextUuid(context.ContextOuterClass.Uuid value) {
                if (contextUuidBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && contextUuid_ != null && contextUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) {
                        getContextUuidBuilder().mergeFrom(value);
                    } else {
                        contextUuid_ = value;
                    }
                } else {
                    contextUuidBuilder_.mergeFrom(value);
                }
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             */
            public Builder clearContextUuid() {
                bitField0_ = (bitField0_ & ~0x00000001);
                contextUuid_ = null;
                if (contextUuidBuilder_ != null) {
                    contextUuidBuilder_.dispose();
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             */
            public context.ContextOuterClass.Uuid.Builder getContextUuidBuilder() {
                onChanged();
                return getContextUuidFieldBuilder().getBuilder();
            }
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             */
            public context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder() {
                if (contextUuidBuilder_ != null) {
                    return contextUuidBuilder_.getMessageOrBuilder();
                } else {
                    return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_;
                }
            }
            /**
             * <code>.context.Uuid context_uuid = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getContextUuidFieldBuilder() {
                if (contextUuidBuilder_ == null) {
                    contextUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getContextUuid(), getParentForChildren(), isClean());
                    contextUuid_ = null;
                }
                return contextUuidBuilder_;
            }
            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }
            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.ContextId)
        }
        // @@protoc_insertion_point(class_scope:context.ContextId)
        private static final context.ContextOuterClass.ContextId DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.ContextId();
        }

        public static context.ContextOuterClass.ContextId getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<ContextId> PARSER = new com.google.protobuf.AbstractParser<ContextId>() {

            @java.lang.Override
            public ContextId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<ContextId> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<ContextId> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.ContextId getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface ContextOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Context)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.ContextId context_id = 1;</code>
         * @return Whether the contextId field is set.
         */
        boolean hasContextId();

        /**
         * <code>.context.ContextId context_id = 1;</code>
         * @return The contextId.
         */
        context.ContextOuterClass.ContextId getContextId();

        /**
         * <code>.context.ContextId context_id = 1;</code>
         */
        context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder();

        /**
         * <code>string name = 2;</code>
         * @return The name.
         */
        java.lang.String getName();

        /**
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        com.google.protobuf.ByteString getNameBytes();

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        java.util.List<context.ContextOuterClass.TopologyId> getTopologyIdsList();

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        context.ContextOuterClass.TopologyId getTopologyIds(int index);

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        int getTopologyIdsCount();

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        java.util.List<? extends context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsOrBuilderList();

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index);

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        java.util.List<context.ContextOuterClass.ServiceId> getServiceIdsList();

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        context.ContextOuterClass.ServiceId getServiceIds(int index);

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        int getServiceIdsCount();

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        java.util.List<? extends context.ContextOuterClass.ServiceIdOrBuilder> getServiceIdsOrBuilderList();

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index);

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        java.util.List<context.ContextOuterClass.SliceId> getSliceIdsList();

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        context.ContextOuterClass.SliceId getSliceIds(int index);

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        int getSliceIdsCount();

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        java.util.List<? extends context.ContextOuterClass.SliceIdOrBuilder> getSliceIdsOrBuilderList();

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index);

        /**
         * <code>.context.TeraFlowController controller = 6;</code>
         * @return Whether the controller field is set.
         */
        boolean hasController();

        /**
         * <code>.context.TeraFlowController controller = 6;</code>
         * @return The controller.
         */
        context.ContextOuterClass.TeraFlowController getController();

        /**
         * <code>.context.TeraFlowController controller = 6;</code>
         */
        context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder();
    public static final class Context extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Context)
    ContextOrBuilder {
        private static final long serialVersionUID = 0L;
        // Use Context.newBuilder() to construct.
        private Context(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }
        private Context() {
            name_ = "";
            topologyIds_ = java.util.Collections.emptyList();
            serviceIds_ = java.util.Collections.emptyList();
            sliceIds_ = java.util.Collections.emptyList();
        }
        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new Context();
        }
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_Context_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_Context_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Context.class, context.ContextOuterClass.Context.Builder.class);
        }
        public static final int CONTEXT_ID_FIELD_NUMBER = 1;
        private context.ContextOuterClass.ContextId contextId_;
        /**
         * <code>.context.ContextId context_id = 1;</code>
         * @return Whether the contextId field is set.
         */
        @java.lang.Override
        public boolean hasContextId() {
            return contextId_ != null;
        }
        /**
         * <code>.context.ContextId context_id = 1;</code>
         * @return The contextId.
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextId getContextId() {
            return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
        }
        /**
         * <code>.context.ContextId context_id = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() {
            return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
        public static final int NAME_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object name_ = "";
        /**
         * <code>string name = 2;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                name_ = s;
                return s;
            }
        }
        /**
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getNameBytes() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                name_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }
        public static final int TOPOLOGY_IDS_FIELD_NUMBER = 3;
        private java.util.List<context.ContextOuterClass.TopologyId> topologyIds_;
        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.TopologyId> getTopologyIdsList() {
            return topologyIds_;
        }

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsOrBuilderList() {
            return topologyIds_;
        }

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        @java.lang.Override
        public int getTopologyIdsCount() {
            return topologyIds_.size();
        }

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyId getTopologyIds(int index) {
            return topologyIds_.get(index);
        }

        /**
         * <code>repeated .context.TopologyId topology_ids = 3;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index) {
            return topologyIds_.get(index);
        }

        public static final int SERVICE_IDS_FIELD_NUMBER = 4;

        private java.util.List<context.ContextOuterClass.ServiceId> serviceIds_;

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.ServiceId> getServiceIdsList() {
            return serviceIds_;
        }

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.ServiceIdOrBuilder> getServiceIdsOrBuilderList() {
            return serviceIds_;
        }

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        @java.lang.Override
        public int getServiceIdsCount() {
            return serviceIds_.size();
        }

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ServiceId getServiceIds(int index) {
            return serviceIds_.get(index);
        }

        /**
         * <code>repeated .context.ServiceId service_ids = 4;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index) {
            return serviceIds_.get(index);
        }

        public static final int SLICE_IDS_FIELD_NUMBER = 5;

        private java.util.List<context.ContextOuterClass.SliceId> sliceIds_;

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.SliceId> getSliceIdsList() {
            return sliceIds_;
        }

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.SliceIdOrBuilder> getSliceIdsOrBuilderList() {
            return sliceIds_;
        }

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        @java.lang.Override
        public int getSliceIdsCount() {
            return sliceIds_.size();
        }

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.SliceId getSliceIds(int index) {
            return sliceIds_.get(index);
        }

        /**
         * <code>repeated .context.SliceId slice_ids = 5;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index) {
            return sliceIds_.get(index);
        }

        public static final int CONTROLLER_FIELD_NUMBER = 6;

        private context.ContextOuterClass.TeraFlowController controller_;

        /**
         * <code>.context.TeraFlowController controller = 6;</code>
         * @return Whether the controller field is set.
         */
        @java.lang.Override
        public boolean hasController() {
            return controller_ != null;
        }

        /**
         * <code>.context.TeraFlowController controller = 6;</code>
         * @return The controller.
         */
        @java.lang.Override
        public context.ContextOuterClass.TeraFlowController getController() {
            return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_;
        }

        /**
         * <code>.context.TeraFlowController controller = 6;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder() {
            return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (contextId_ != null) {
                output.writeMessage(1, getContextId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
            }
            for (int i = 0; i < topologyIds_.size(); i++) {
                output.writeMessage(3, topologyIds_.get(i));
            }
            for (int i = 0; i < serviceIds_.size(); i++) {
                output.writeMessage(4, serviceIds_.get(i));
            }
            for (int i = 0; i < sliceIds_.size(); i++) {
                output.writeMessage(5, sliceIds_.get(i));
            }
            if (controller_ != null) {
                output.writeMessage(6, getController());
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (contextId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
            }
            for (int i = 0; i < topologyIds_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, topologyIds_.get(i));
            }
            for (int i = 0; i < serviceIds_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, serviceIds_.get(i));
            }
            for (int i = 0; i < sliceIds_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, sliceIds_.get(i));
            }
            if (controller_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getController());
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.Context)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.Context other = (context.ContextOuterClass.Context) obj;
            if (hasContextId() != other.hasContextId())
                return false;
            if (hasContextId()) {
                if (!getContextId().equals(other.getContextId()))
                    return false;
            }
            if (!getName().equals(other.getName()))
                return false;
            if (!getTopologyIdsList().equals(other.getTopologyIdsList()))
                return false;
            if (!getServiceIdsList().equals(other.getServiceIdsList()))
                return false;
            if (!getSliceIdsList().equals(other.getSliceIdsList()))
                return false;
            if (hasController() != other.hasController())
                return false;
            if (hasController()) {
                if (!getController().equals(other.getController()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasContextId()) {
                hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER;
                hash = (53 * hash) + getContextId().hashCode();
            }
            hash = (37 * hash) + NAME_FIELD_NUMBER;
            hash = (53 * hash) + getName().hashCode();
            if (getTopologyIdsCount() > 0) {
                hash = (37 * hash) + TOPOLOGY_IDS_FIELD_NUMBER;
                hash = (53 * hash) + getTopologyIdsList().hashCode();
            }
            if (getServiceIdsCount() > 0) {
                hash = (37 * hash) + SERVICE_IDS_FIELD_NUMBER;
                hash = (53 * hash) + getServiceIdsList().hashCode();
            }
            if (getSliceIdsCount() > 0) {
                hash = (37 * hash) + SLICE_IDS_FIELD_NUMBER;
                hash = (53 * hash) + getSliceIdsList().hashCode();
            }
            if (hasController()) {
                hash = (37 * hash) + CONTROLLER_FIELD_NUMBER;
                hash = (53 * hash) + getController().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.Context parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.Context parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.Context parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.Context parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.Context parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.Context parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.Context parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.Context parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.Context parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.Context parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.Context parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.Context parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.Context prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.Context}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Context)
        context.ContextOuterClass.ContextOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_Context_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_Context_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Context.class, context.ContextOuterClass.Context.Builder.class);
            }

            // Construct using context.ContextOuterClass.Context.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                contextId_ = null;
                if (contextIdBuilder_ != null) {
                    contextIdBuilder_.dispose();
                    contextIdBuilder_ = null;
                }
                name_ = "";
                if (topologyIdsBuilder_ == null) {
                    topologyIds_ = java.util.Collections.emptyList();
                } else {
                if (serviceIdsBuilder_ == null) {
                    serviceIds_ = java.util.Collections.emptyList();
                } else {
                if (sliceIdsBuilder_ == null) {
                    sliceIds_ = java.util.Collections.emptyList();
                } else {
                bitField0_ = (bitField0_ & ~0x00000010);
                controller_ = null;
                if (controllerBuilder_ != null) {
                    controllerBuilder_.dispose();
                    controllerBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_Context_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.Context getDefaultInstanceForType() {
                return context.ContextOuterClass.Context.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.Context build() {
                context.ContextOuterClass.Context result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.Context buildPartial() {
                context.ContextOuterClass.Context result = new context.ContextOuterClass.Context(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(context.ContextOuterClass.Context result) {
                        topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_);
                    }
                    result.topologyIds_ = topologyIds_;
                } else {
                    result.topologyIds_ = topologyIdsBuilder_.build();
                }
                if (serviceIdsBuilder_ == null) {
                        serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_);
                    }
                    result.serviceIds_ = serviceIds_;
                } else {
                    result.serviceIds_ = serviceIdsBuilder_.build();
                }
                if (sliceIdsBuilder_ == null) {
                        sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_);
                    }
                    result.sliceIds_ = sliceIds_;
                } else {
                    result.sliceIds_ = sliceIdsBuilder_.build();
                }
            private void buildPartial0(context.ContextOuterClass.Context result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.name_ = name_;
                }
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    result.controller_ = controllerBuilder_ == null ? controller_ : controllerBuilder_.build();
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.Context) {
                    return mergeFrom((context.ContextOuterClass.Context) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.Context other) {
                if (other == context.ContextOuterClass.Context.getDefaultInstance())
                    return this;
                if (other.hasContextId()) {
                    mergeContextId(other.getContextId());
                }
                if (!other.getName().isEmpty()) {
                    name_ = other.name_;
                    onChanged();
                }
                if (topologyIdsBuilder_ == null) {
                    if (!other.topologyIds_.isEmpty()) {
                        if (topologyIds_.isEmpty()) {
                            topologyIds_ = other.topologyIds_;
                        } else {
                            ensureTopologyIdsIsMutable();
                            topologyIds_.addAll(other.topologyIds_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.topologyIds_.isEmpty()) {
                        if (topologyIdsBuilder_.isEmpty()) {
                            topologyIdsBuilder_.dispose();
                            topologyIdsBuilder_ = null;
                            topologyIds_ = other.topologyIds_;
                            topologyIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTopologyIdsFieldBuilder() : null;
                        } else {
                            topologyIdsBuilder_.addAllMessages(other.topologyIds_);
                        }
                    }
                }
                if (serviceIdsBuilder_ == null) {
                    if (!other.serviceIds_.isEmpty()) {
                        if (serviceIds_.isEmpty()) {
                            serviceIds_ = other.serviceIds_;
                        } else {
                            ensureServiceIdsIsMutable();
                            serviceIds_.addAll(other.serviceIds_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.serviceIds_.isEmpty()) {
                        if (serviceIdsBuilder_.isEmpty()) {
                            serviceIdsBuilder_.dispose();
                            serviceIdsBuilder_ = null;
                            serviceIds_ = other.serviceIds_;
                            serviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServiceIdsFieldBuilder() : null;
                        } else {
                            serviceIdsBuilder_.addAllMessages(other.serviceIds_);
                        }
                    }
                }
                if (sliceIdsBuilder_ == null) {
                    if (!other.sliceIds_.isEmpty()) {
                        if (sliceIds_.isEmpty()) {
                            sliceIds_ = other.sliceIds_;
                        } else {
                            ensureSliceIdsIsMutable();
                            sliceIds_.addAll(other.sliceIds_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.sliceIds_.isEmpty()) {
                        if (sliceIdsBuilder_.isEmpty()) {
                            sliceIdsBuilder_.dispose();
                            sliceIdsBuilder_ = null;
                            sliceIds_ = other.sliceIds_;
                            sliceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceIdsFieldBuilder() : null;
                        } else {
                            sliceIdsBuilder_.addAllMessages(other.sliceIds_);
                        }
                    }
                }
                if (other.hasController()) {
                    mergeController(other.getController());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    name_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 26:
                                {
                                    context.ContextOuterClass.TopologyId m = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry);
                                    if (topologyIdsBuilder_ == null) {
                                        ensureTopologyIdsIsMutable();
                                        topologyIds_.add(m);
                                    } else {
                                        topologyIdsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 26
                            case 34:
                                {
                                    context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry);
                                    if (serviceIdsBuilder_ == null) {
                                        ensureServiceIdsIsMutable();
                                        serviceIds_.add(m);
                                    } else {
                                        serviceIdsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 34
                            case 42:
                                {
                                    context.ContextOuterClass.SliceId m = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry);
                                    if (sliceIdsBuilder_ == null) {
                                        ensureSliceIdsIsMutable();
                                        sliceIds_.add(m);
                                    } else {
                                        sliceIdsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 42
                            case 50:
                                {
                                    input.readMessage(getControllerFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000020;
                                    break;
                                }
                            // case 50
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                return this;
            }

            private int bitField0_;

            private context.ContextOuterClass.ContextId contextId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_;

            /**
             * <code>.context.ContextId context_id = 1;</code>
             * @return Whether the contextId field is set.
             */
            public boolean hasContextId() {
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             * @return The contextId.
             */
            public context.ContextOuterClass.ContextId getContextId() {
                if (contextIdBuilder_ == null) {
                    return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
                } else {
                    return contextIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public Builder setContextId(context.ContextOuterClass.ContextId value) {
                if (contextIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    contextId_ = value;
                } else {
                    contextIdBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) {
                if (contextIdBuilder_ == null) {
                    contextId_ = builderForValue.build();
                } else {
                    contextIdBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public Builder mergeContextId(context.ContextOuterClass.ContextId value) {
                if (contextIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) {
                        getContextIdBuilder().mergeFrom(value);
                    } else {
                        contextId_ = value;
                    }
                } else {
                    contextIdBuilder_.mergeFrom(value);
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public Builder clearContextId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                contextId_ = null;
                if (contextIdBuilder_ != null) {
                    contextIdBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() {
                onChanged();
                return getContextIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() {
                if (contextIdBuilder_ != null) {
                    return contextIdBuilder_.getMessageOrBuilder();
                } else {
                    return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
                }
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> getContextIdFieldBuilder() {
                if (contextIdBuilder_ == null) {
                    contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>(getContextId(), getParentForChildren(), isClean());
                    contextId_ = null;
                }
                return contextIdBuilder_;
            }

            private java.lang.Object name_ = "";

            /**
             * <code>string name = 2;</code>
             * @return The name.
             */
            public java.lang.String getName() {
                java.lang.Object ref = name_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    name_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string name = 2;</code>
             * @return The bytes for name.
             */
            public com.google.protobuf.ByteString getNameBytes() {
                java.lang.Object ref = name_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                    name_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string name = 2;</code>
             * @param value The name to set.
             * @return This builder for chaining.
             */
            public Builder setName(java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                name_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>string name = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearName() {
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
            }

            /**
             * <code>string name = 2;</code>
             * @param value The bytes for name to set.
             * @return This builder for chaining.
             */
            public Builder setNameBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                name_ = value;
                onChanged();
                return this;
            }

            private java.util.List<context.ContextOuterClass.TopologyId> topologyIds_ = java.util.Collections.emptyList();

            private void ensureTopologyIdsIsMutable() {
                    topologyIds_ = new java.util.ArrayList<context.ContextOuterClass.TopologyId>(topologyIds_);
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdsBuilder_;

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public java.util.List<context.ContextOuterClass.TopologyId> getTopologyIdsList() {
                if (topologyIdsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(topologyIds_);
                } else {
                    return topologyIdsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public int getTopologyIdsCount() {
                if (topologyIdsBuilder_ == null) {
                    return topologyIds_.size();
                } else {
                    return topologyIdsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public context.ContextOuterClass.TopologyId getTopologyIds(int index) {
                if (topologyIdsBuilder_ == null) {
                    return topologyIds_.get(index);
                } else {
                    return topologyIdsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder setTopologyIds(int index, context.ContextOuterClass.TopologyId value) {
                if (topologyIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologyIdsIsMutable();
                    topologyIds_.set(index, value);
                    onChanged();
                } else {
                    topologyIdsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder setTopologyIds(int index, context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    topologyIds_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    topologyIdsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder addTopologyIds(context.ContextOuterClass.TopologyId value) {
                if (topologyIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologyIdsIsMutable();
                    topologyIds_.add(value);
                    onChanged();
                } else {
                    topologyIdsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder addTopologyIds(int index, context.ContextOuterClass.TopologyId value) {
                if (topologyIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologyIdsIsMutable();
                    topologyIds_.add(index, value);
                    onChanged();
                } else {
                    topologyIdsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder addTopologyIds(context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    topologyIds_.add(builderForValue.build());
                    onChanged();
                } else {
                    topologyIdsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder addTopologyIds(int index, context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    topologyIds_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    topologyIdsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder addAllTopologyIds(java.lang.Iterable<? extends context.ContextOuterClass.TopologyId> values) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, topologyIds_);
                    onChanged();
                } else {
                    topologyIdsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder clearTopologyIds() {
                if (topologyIdsBuilder_ == null) {
                    topologyIds_ = java.util.Collections.emptyList();
                    onChanged();
                } else {
                    topologyIdsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public Builder removeTopologyIds(int index) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    topologyIds_.remove(index);
                    onChanged();
                } else {
                    topologyIdsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder getTopologyIdsBuilder(int index) {
                return getTopologyIdsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index) {
                if (topologyIdsBuilder_ == null) {
                    return topologyIds_.get(index);
                } else {
                    return topologyIdsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsOrBuilderList() {
                if (topologyIdsBuilder_ != null) {
                    return topologyIdsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(topologyIds_);
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder() {
                return getTopologyIdsFieldBuilder().addBuilder(context.ContextOuterClass.TopologyId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder(int index) {
                return getTopologyIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.TopologyId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 3;</code>
             */
            public java.util.List<context.ContextOuterClass.TopologyId.Builder> getTopologyIdsBuilderList() {
                return getTopologyIdsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsFieldBuilder() {
                if (topologyIdsBuilder_ == null) {
                    topologyIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>(topologyIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean());
                    topologyIds_ = null;
                }
                return topologyIdsBuilder_;
            }

            private java.util.List<context.ContextOuterClass.ServiceId> serviceIds_ = java.util.Collections.emptyList();

            private void ensureServiceIdsIsMutable() {
                    serviceIds_ = new java.util.ArrayList<context.ContextOuterClass.ServiceId>(serviceIds_);
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> serviceIdsBuilder_;

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public java.util.List<context.ContextOuterClass.ServiceId> getServiceIdsList() {
                if (serviceIdsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(serviceIds_);
                } else {
                    return serviceIdsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public int getServiceIdsCount() {
                if (serviceIdsBuilder_ == null) {
                    return serviceIds_.size();
                } else {
                    return serviceIdsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public context.ContextOuterClass.ServiceId getServiceIds(int index) {
                if (serviceIdsBuilder_ == null) {
                    return serviceIds_.get(index);
                } else {
                    return serviceIdsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder setServiceIds(int index, context.ContextOuterClass.ServiceId value) {
                if (serviceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureServiceIdsIsMutable();
                    serviceIds_.set(index, value);
                    onChanged();
                } else {
                    serviceIdsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder setServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) {
                if (serviceIdsBuilder_ == null) {
                    ensureServiceIdsIsMutable();
                    serviceIds_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    serviceIdsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder addServiceIds(context.ContextOuterClass.ServiceId value) {
                if (serviceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureServiceIdsIsMutable();
                    serviceIds_.add(value);
                    onChanged();
                } else {
                    serviceIdsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder addServiceIds(int index, context.ContextOuterClass.ServiceId value) {
                if (serviceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureServiceIdsIsMutable();
                    serviceIds_.add(index, value);
                    onChanged();
                } else {
                    serviceIdsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder addServiceIds(context.ContextOuterClass.ServiceId.Builder builderForValue) {
                if (serviceIdsBuilder_ == null) {
                    ensureServiceIdsIsMutable();
                    serviceIds_.add(builderForValue.build());
                    onChanged();
                } else {
                    serviceIdsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder addServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) {
                if (serviceIdsBuilder_ == null) {
                    ensureServiceIdsIsMutable();
                    serviceIds_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    serviceIdsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder addAllServiceIds(java.lang.Iterable<? extends context.ContextOuterClass.ServiceId> values) {
                if (serviceIdsBuilder_ == null) {
                    ensureServiceIdsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, serviceIds_);
                    onChanged();
                } else {
                    serviceIdsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder clearServiceIds() {
                if (serviceIdsBuilder_ == null) {
                    serviceIds_ = java.util.Collections.emptyList();
                    onChanged();
                } else {
                    serviceIdsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public Builder removeServiceIds(int index) {
                if (serviceIdsBuilder_ == null) {
                    ensureServiceIdsIsMutable();
                    serviceIds_.remove(index);
                    onChanged();
                } else {
                    serviceIdsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public context.ContextOuterClass.ServiceId.Builder getServiceIdsBuilder(int index) {
                return getServiceIdsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index) {
                if (serviceIdsBuilder_ == null) {
                    return serviceIds_.get(index);
                } else {
                    return serviceIdsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.ServiceIdOrBuilder> getServiceIdsOrBuilderList() {
                if (serviceIdsBuilder_ != null) {
                    return serviceIdsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(serviceIds_);
                }
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public context.ContextOuterClass.ServiceId.Builder addServiceIdsBuilder() {
                return getServiceIdsFieldBuilder().addBuilder(context.ContextOuterClass.ServiceId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public context.ContextOuterClass.ServiceId.Builder addServiceIdsBuilder(int index) {
                return getServiceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.ServiceId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.ServiceId service_ids = 4;</code>
             */
            public java.util.List<context.ContextOuterClass.ServiceId.Builder> getServiceIdsBuilderList() {
                return getServiceIdsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> getServiceIdsFieldBuilder() {
                if (serviceIdsBuilder_ == null) {
                    serviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(serviceIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean());
                    serviceIds_ = null;
                }
                return serviceIdsBuilder_;
            }

            private java.util.List<context.ContextOuterClass.SliceId> sliceIds_ = java.util.Collections.emptyList();

            private void ensureSliceIdsIsMutable() {
                    sliceIds_ = new java.util.ArrayList<context.ContextOuterClass.SliceId>(sliceIds_);
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> sliceIdsBuilder_;

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public java.util.List<context.ContextOuterClass.SliceId> getSliceIdsList() {
                if (sliceIdsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(sliceIds_);
                } else {
                    return sliceIdsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public int getSliceIdsCount() {
                if (sliceIdsBuilder_ == null) {
                    return sliceIds_.size();
                } else {
                    return sliceIdsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public context.ContextOuterClass.SliceId getSliceIds(int index) {
                if (sliceIdsBuilder_ == null) {
                    return sliceIds_.get(index);
                } else {
                    return sliceIdsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder setSliceIds(int index, context.ContextOuterClass.SliceId value) {
                if (sliceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureSliceIdsIsMutable();
                    sliceIds_.set(index, value);
                    onChanged();
                } else {
                    sliceIdsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder setSliceIds(int index, context.ContextOuterClass.SliceId.Builder builderForValue) {
                if (sliceIdsBuilder_ == null) {
                    ensureSliceIdsIsMutable();
                    sliceIds_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    sliceIdsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder addSliceIds(context.ContextOuterClass.SliceId value) {
                if (sliceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureSliceIdsIsMutable();
                    sliceIds_.add(value);
                    onChanged();
                } else {
                    sliceIdsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder addSliceIds(int index, context.ContextOuterClass.SliceId value) {
                if (sliceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureSliceIdsIsMutable();
                    sliceIds_.add(index, value);
                    onChanged();
                } else {
                    sliceIdsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder addSliceIds(context.ContextOuterClass.SliceId.Builder builderForValue) {
                if (sliceIdsBuilder_ == null) {
                    ensureSliceIdsIsMutable();
                    sliceIds_.add(builderForValue.build());
                    onChanged();
                } else {
                    sliceIdsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder addSliceIds(int index, context.ContextOuterClass.SliceId.Builder builderForValue) {
                if (sliceIdsBuilder_ == null) {
                    ensureSliceIdsIsMutable();
                    sliceIds_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    sliceIdsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder addAllSliceIds(java.lang.Iterable<? extends context.ContextOuterClass.SliceId> values) {
                if (sliceIdsBuilder_ == null) {
                    ensureSliceIdsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sliceIds_);
                    onChanged();
                } else {
                    sliceIdsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder clearSliceIds() {
                if (sliceIdsBuilder_ == null) {
                    sliceIds_ = java.util.Collections.emptyList();
                    onChanged();
                } else {
                    sliceIdsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public Builder removeSliceIds(int index) {
                if (sliceIdsBuilder_ == null) {
                    ensureSliceIdsIsMutable();
                    sliceIds_.remove(index);
                    onChanged();
                } else {
                    sliceIdsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public context.ContextOuterClass.SliceId.Builder getSliceIdsBuilder(int index) {
                return getSliceIdsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index) {
                if (sliceIdsBuilder_ == null) {
                    return sliceIds_.get(index);
                } else {
                    return sliceIdsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.SliceIdOrBuilder> getSliceIdsOrBuilderList() {
                if (sliceIdsBuilder_ != null) {
                    return sliceIdsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(sliceIds_);
                }
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public context.ContextOuterClass.SliceId.Builder addSliceIdsBuilder() {
                return getSliceIdsFieldBuilder().addBuilder(context.ContextOuterClass.SliceId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public context.ContextOuterClass.SliceId.Builder addSliceIdsBuilder(int index) {
                return getSliceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.SliceId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.SliceId slice_ids = 5;</code>
             */
            public java.util.List<context.ContextOuterClass.SliceId.Builder> getSliceIdsBuilderList() {
                return getSliceIdsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> getSliceIdsFieldBuilder() {
                if (sliceIdsBuilder_ == null) {
                    sliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder>(sliceIds_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean());
                    sliceIds_ = null;
                }
                return sliceIdsBuilder_;
            }

            private context.ContextOuterClass.TeraFlowController controller_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TeraFlowController, context.ContextOuterClass.TeraFlowController.Builder, context.ContextOuterClass.TeraFlowControllerOrBuilder> controllerBuilder_;

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             * @return Whether the controller field is set.
             */
            public boolean hasController() {
            }

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             * @return The controller.
             */
            public context.ContextOuterClass.TeraFlowController getController() {
                if (controllerBuilder_ == null) {
                    return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_;
                } else {
                    return controllerBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             */
            public Builder setController(context.ContextOuterClass.TeraFlowController value) {
                if (controllerBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    controller_ = value;
                } else {
                    controllerBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             */
            public Builder setController(context.ContextOuterClass.TeraFlowController.Builder builderForValue) {
                if (controllerBuilder_ == null) {
                    controller_ = builderForValue.build();
                } else {
                    controllerBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             */
            public Builder mergeController(context.ContextOuterClass.TeraFlowController value) {
                if (controllerBuilder_ == null) {
                    if (((bitField0_ & 0x00000020) != 0) && controller_ != null && controller_ != context.ContextOuterClass.TeraFlowController.getDefaultInstance()) {
                        getControllerBuilder().mergeFrom(value);
                    } else {
                        controller_ = value;
                    }
                } else {
                    controllerBuilder_.mergeFrom(value);
                }
                return this;
            }

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             */
            public Builder clearController() {
                bitField0_ = (bitField0_ & ~0x00000020);
                controller_ = null;
                if (controllerBuilder_ != null) {
                    controllerBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             */
            public context.ContextOuterClass.TeraFlowController.Builder getControllerBuilder() {
                onChanged();
                return getControllerFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             */
            public context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder() {
                if (controllerBuilder_ != null) {
                    return controllerBuilder_.getMessageOrBuilder();
                } else {
                    return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_;
                }
            }

            /**
             * <code>.context.TeraFlowController controller = 6;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TeraFlowController, context.ContextOuterClass.TeraFlowController.Builder, context.ContextOuterClass.TeraFlowControllerOrBuilder> getControllerFieldBuilder() {
                if (controllerBuilder_ == null) {
                    controllerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TeraFlowController, context.ContextOuterClass.TeraFlowController.Builder, context.ContextOuterClass.TeraFlowControllerOrBuilder>(getController(), getParentForChildren(), isClean());
                    controller_ = null;
                }
                return controllerBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.Context)
        }

        // @@protoc_insertion_point(class_scope:context.Context)
        private static final context.ContextOuterClass.Context DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.Context();
        }

        public static context.ContextOuterClass.Context getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<Context> PARSER = new com.google.protobuf.AbstractParser<Context>() {

            @java.lang.Override
            public Context parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<Context> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<Context> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.Context getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface ContextIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ContextIdList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        java.util.List<context.ContextOuterClass.ContextId> getContextIdsList();

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        context.ContextOuterClass.ContextId getContextIds(int index);

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        int getContextIdsCount();

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        java.util.List<? extends context.ContextOuterClass.ContextIdOrBuilder> getContextIdsOrBuilderList();

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder(int index);
    }

    /**
     * Protobuf type {@code context.ContextIdList}
     */
    public static final class ContextIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ContextIdList)
    ContextIdListOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use ContextIdList.newBuilder() to construct.
        private ContextIdList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private ContextIdList() {
            contextIds_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new ContextIdList();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_ContextIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextIdList.class, context.ContextOuterClass.ContextIdList.Builder.class);
        }

        public static final int CONTEXT_IDS_FIELD_NUMBER = 1;

        private java.util.List<context.ContextOuterClass.ContextId> contextIds_;

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.ContextId> getContextIdsList() {
            return contextIds_;
        }

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.ContextIdOrBuilder> getContextIdsOrBuilderList() {
            return contextIds_;
        }

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        @java.lang.Override
        public int getContextIdsCount() {
            return contextIds_.size();
        }

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextId getContextIds(int index) {
            return contextIds_.get(index);
        }

        /**
         * <code>repeated .context.ContextId context_ids = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder(int index) {
            return contextIds_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            for (int i = 0; i < contextIds_.size(); i++) {
                output.writeMessage(1, contextIds_.get(i));
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < contextIds_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, contextIds_.get(i));
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.ContextIdList)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.ContextIdList other = (context.ContextOuterClass.ContextIdList) obj;
            if (!getContextIdsList().equals(other.getContextIdsList()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getContextIdsCount() > 0) {
                hash = (37 * hash) + CONTEXT_IDS_FIELD_NUMBER;
                hash = (53 * hash) + getContextIdsList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.ContextIdList prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.ContextIdList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.ContextIdList)
        context.ContextOuterClass.ContextIdListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_ContextIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextIdList.class, context.ContextOuterClass.ContextIdList.Builder.class);
            }

            // Construct using context.ContextOuterClass.ContextIdList.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                if (contextIdsBuilder_ == null) {
                    contextIds_ = java.util.Collections.emptyList();
                } else {
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextIdList getDefaultInstanceForType() {
                return context.ContextOuterClass.ContextIdList.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextIdList build() {
                context.ContextOuterClass.ContextIdList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextIdList buildPartial() {
                context.ContextOuterClass.ContextIdList result = new context.ContextOuterClass.ContextIdList(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(context.ContextOuterClass.ContextIdList result) {
                if (contextIdsBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        contextIds_ = java.util.Collections.unmodifiableList(contextIds_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.contextIds_ = contextIds_;
                } else {
                    result.contextIds_ = contextIdsBuilder_.build();
                }
            private void buildPartial0(context.ContextOuterClass.ContextIdList result) {
                int from_bitField0_ = bitField0_;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.ContextIdList) {
                    return mergeFrom((context.ContextOuterClass.ContextIdList) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.ContextIdList other) {
                if (other == context.ContextOuterClass.ContextIdList.getDefaultInstance())
                    return this;
                if (contextIdsBuilder_ == null) {
                    if (!other.contextIds_.isEmpty()) {
                        if (contextIds_.isEmpty()) {
                            contextIds_ = other.contextIds_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureContextIdsIsMutable();
                            contextIds_.addAll(other.contextIds_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.contextIds_.isEmpty()) {
                        if (contextIdsBuilder_.isEmpty()) {
                            contextIdsBuilder_.dispose();
                            contextIdsBuilder_ = null;
                            contextIds_ = other.contextIds_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            contextIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getContextIdsFieldBuilder() : null;
                        } else {
                            contextIdsBuilder_.addAllMessages(other.contextIds_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    context.ContextOuterClass.ContextId m = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry);
                                    if (contextIdsBuilder_ == null) {
                                        ensureContextIdsIsMutable();
                                        contextIds_.add(m);
                                    } else {
                                        contextIdsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                return this;
            }

            private int bitField0_;

            private java.util.List<context.ContextOuterClass.ContextId> contextIds_ = java.util.Collections.emptyList();

            private void ensureContextIdsIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    contextIds_ = new java.util.ArrayList<context.ContextOuterClass.ContextId>(contextIds_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdsBuilder_;

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public java.util.List<context.ContextOuterClass.ContextId> getContextIdsList() {
                if (contextIdsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(contextIds_);
                } else {
                    return contextIdsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public int getContextIdsCount() {
                if (contextIdsBuilder_ == null) {
                    return contextIds_.size();
                } else {
                    return contextIdsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public context.ContextOuterClass.ContextId getContextIds(int index) {
                if (contextIdsBuilder_ == null) {
                    return contextIds_.get(index);
                } else {
                    return contextIdsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder setContextIds(int index, context.ContextOuterClass.ContextId value) {
                if (contextIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureContextIdsIsMutable();
                    contextIds_.set(index, value);
                    onChanged();
                } else {
                    contextIdsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder setContextIds(int index, context.ContextOuterClass.ContextId.Builder builderForValue) {
                if (contextIdsBuilder_ == null) {
                    ensureContextIdsIsMutable();
                    contextIds_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    contextIdsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder addContextIds(context.ContextOuterClass.ContextId value) {
                if (contextIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureContextIdsIsMutable();
                    contextIds_.add(value);
                    onChanged();
                } else {
                    contextIdsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder addContextIds(int index, context.ContextOuterClass.ContextId value) {
                if (contextIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureContextIdsIsMutable();
                    contextIds_.add(index, value);
                    onChanged();
                } else {
                    contextIdsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder addContextIds(context.ContextOuterClass.ContextId.Builder builderForValue) {
                if (contextIdsBuilder_ == null) {
                    ensureContextIdsIsMutable();
                    contextIds_.add(builderForValue.build());
                    onChanged();
                } else {
                    contextIdsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder addContextIds(int index, context.ContextOuterClass.ContextId.Builder builderForValue) {
                if (contextIdsBuilder_ == null) {
                    ensureContextIdsIsMutable();
                    contextIds_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    contextIdsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder addAllContextIds(java.lang.Iterable<? extends context.ContextOuterClass.ContextId> values) {
                if (contextIdsBuilder_ == null) {
                    ensureContextIdsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, contextIds_);
                    onChanged();
                } else {
                    contextIdsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder clearContextIds() {
                if (contextIdsBuilder_ == null) {
                    contextIds_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    contextIdsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public Builder removeContextIds(int index) {
                if (contextIdsBuilder_ == null) {
                    ensureContextIdsIsMutable();
                    contextIds_.remove(index);
                    onChanged();
                } else {
                    contextIdsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public context.ContextOuterClass.ContextId.Builder getContextIdsBuilder(int index) {
                return getContextIdsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder(int index) {
                if (contextIdsBuilder_ == null) {
                    return contextIds_.get(index);
                } else {
                    return contextIdsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.ContextIdOrBuilder> getContextIdsOrBuilderList() {
                if (contextIdsBuilder_ != null) {
                    return contextIdsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(contextIds_);
                }
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public context.ContextOuterClass.ContextId.Builder addContextIdsBuilder() {
                return getContextIdsFieldBuilder().addBuilder(context.ContextOuterClass.ContextId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public context.ContextOuterClass.ContextId.Builder addContextIdsBuilder(int index) {
                return getContextIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.ContextId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.ContextId context_ids = 1;</code>
             */
            public java.util.List<context.ContextOuterClass.ContextId.Builder> getContextIdsBuilderList() {
                return getContextIdsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> getContextIdsFieldBuilder() {
                if (contextIdsBuilder_ == null) {
                    contextIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>(contextIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    contextIds_ = null;
                }
                return contextIdsBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.ContextIdList)
        }

        // @@protoc_insertion_point(class_scope:context.ContextIdList)
        private static final context.ContextOuterClass.ContextIdList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.ContextIdList();
        }

        public static context.ContextOuterClass.ContextIdList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<ContextIdList> PARSER = new com.google.protobuf.AbstractParser<ContextIdList>() {

            @java.lang.Override
            public ContextIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<ContextIdList> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<ContextIdList> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.ContextIdList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface ContextListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ContextList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        java.util.List<context.ContextOuterClass.Context> getContextsList();

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        context.ContextOuterClass.Context getContexts(int index);

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        int getContextsCount();

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        java.util.List<? extends context.ContextOuterClass.ContextOrBuilder> getContextsOrBuilderList();

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder(int index);
    }

    /**
     * Protobuf type {@code context.ContextList}
     */
    public static final class ContextList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ContextList)
    ContextListOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use ContextList.newBuilder() to construct.
        private ContextList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private ContextList() {
            contexts_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new ContextList();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_ContextList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_ContextList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextList.class, context.ContextOuterClass.ContextList.Builder.class);
        }

        public static final int CONTEXTS_FIELD_NUMBER = 1;

        private java.util.List<context.ContextOuterClass.Context> contexts_;

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.Context> getContextsList() {
            return contexts_;
        }

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.ContextOrBuilder> getContextsOrBuilderList() {
            return contexts_;
        }

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        @java.lang.Override
        public int getContextsCount() {
            return contexts_.size();
        }

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.Context getContexts(int index) {
            return contexts_.get(index);
        }

        /**
         * <code>repeated .context.Context contexts = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder(int index) {
            return contexts_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            for (int i = 0; i < contexts_.size(); i++) {
                output.writeMessage(1, contexts_.get(i));
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < contexts_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, contexts_.get(i));
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.ContextList)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.ContextList other = (context.ContextOuterClass.ContextList) obj;
            if (!getContextsList().equals(other.getContextsList()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getContextsCount() > 0) {
                hash = (37 * hash) + CONTEXTS_FIELD_NUMBER;
                hash = (53 * hash) + getContextsList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.ContextList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.ContextList prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.ContextList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.ContextList)
        context.ContextOuterClass.ContextListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_ContextList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_ContextList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextList.class, context.ContextOuterClass.ContextList.Builder.class);
            }

            // Construct using context.ContextOuterClass.ContextList.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                if (contextsBuilder_ == null) {
                    contexts_ = java.util.Collections.emptyList();
                } else {
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_ContextList_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextList getDefaultInstanceForType() {
                return context.ContextOuterClass.ContextList.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextList build() {
                context.ContextOuterClass.ContextList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextList buildPartial() {
                context.ContextOuterClass.ContextList result = new context.ContextOuterClass.ContextList(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(context.ContextOuterClass.ContextList result) {
                if (contextsBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        contexts_ = java.util.Collections.unmodifiableList(contexts_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.contexts_ = contexts_;
                } else {
                    result.contexts_ = contextsBuilder_.build();
                }
            private void buildPartial0(context.ContextOuterClass.ContextList result) {
                int from_bitField0_ = bitField0_;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.ContextList) {
                    return mergeFrom((context.ContextOuterClass.ContextList) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.ContextList other) {
                if (other == context.ContextOuterClass.ContextList.getDefaultInstance())
                    return this;
                if (contextsBuilder_ == null) {
                    if (!other.contexts_.isEmpty()) {
                        if (contexts_.isEmpty()) {
                            contexts_ = other.contexts_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureContextsIsMutable();
                            contexts_.addAll(other.contexts_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.contexts_.isEmpty()) {
                        if (contextsBuilder_.isEmpty()) {
                            contextsBuilder_.dispose();
                            contextsBuilder_ = null;
                            contexts_ = other.contexts_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            contextsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getContextsFieldBuilder() : null;
                        } else {
                            contextsBuilder_.addAllMessages(other.contexts_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    context.ContextOuterClass.Context m = input.readMessage(context.ContextOuterClass.Context.parser(), extensionRegistry);
                                    if (contextsBuilder_ == null) {
                                        ensureContextsIsMutable();
                                        contexts_.add(m);
                                    } else {
                                        contextsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                return this;
            }

            private int bitField0_;

            private java.util.List<context.ContextOuterClass.Context> contexts_ = java.util.Collections.emptyList();

            private void ensureContextsIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    contexts_ = new java.util.ArrayList<context.ContextOuterClass.Context>(contexts_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Context, context.ContextOuterClass.Context.Builder, context.ContextOuterClass.ContextOrBuilder> contextsBuilder_;

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public java.util.List<context.ContextOuterClass.Context> getContextsList() {
                if (contextsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(contexts_);
                } else {
                    return contextsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public int getContextsCount() {
                if (contextsBuilder_ == null) {
                    return contexts_.size();
                } else {
                    return contextsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public context.ContextOuterClass.Context getContexts(int index) {
                if (contextsBuilder_ == null) {
                    return contexts_.get(index);
                } else {
                    return contextsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder setContexts(int index, context.ContextOuterClass.Context value) {
                if (contextsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureContextsIsMutable();
                    contexts_.set(index, value);
                    onChanged();
                } else {
                    contextsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder setContexts(int index, context.ContextOuterClass.Context.Builder builderForValue) {
                if (contextsBuilder_ == null) {
                    ensureContextsIsMutable();
                    contexts_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    contextsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder addContexts(context.ContextOuterClass.Context value) {
                if (contextsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureContextsIsMutable();
                    contexts_.add(value);
                    onChanged();
                } else {
                    contextsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder addContexts(int index, context.ContextOuterClass.Context value) {
                if (contextsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureContextsIsMutable();
                    contexts_.add(index, value);
                    onChanged();
                } else {
                    contextsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder addContexts(context.ContextOuterClass.Context.Builder builderForValue) {
                if (contextsBuilder_ == null) {
                    ensureContextsIsMutable();
                    contexts_.add(builderForValue.build());
                    onChanged();
                } else {
                    contextsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder addContexts(int index, context.ContextOuterClass.Context.Builder builderForValue) {
                if (contextsBuilder_ == null) {
                    ensureContextsIsMutable();
                    contexts_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    contextsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder addAllContexts(java.lang.Iterable<? extends context.ContextOuterClass.Context> values) {
                if (contextsBuilder_ == null) {
                    ensureContextsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, contexts_);
                    onChanged();
                } else {
                    contextsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder clearContexts() {
                if (contextsBuilder_ == null) {
                    contexts_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    contextsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public Builder removeContexts(int index) {
                if (contextsBuilder_ == null) {
                    ensureContextsIsMutable();
                    contexts_.remove(index);
                    onChanged();
                } else {
                    contextsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public context.ContextOuterClass.Context.Builder getContextsBuilder(int index) {
                return getContextsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder(int index) {
                if (contextsBuilder_ == null) {
                    return contexts_.get(index);
                } else {
                    return contextsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.ContextOrBuilder> getContextsOrBuilderList() {
                if (contextsBuilder_ != null) {
                    return contextsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(contexts_);
                }
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public context.ContextOuterClass.Context.Builder addContextsBuilder() {
                return getContextsFieldBuilder().addBuilder(context.ContextOuterClass.Context.getDefaultInstance());
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public context.ContextOuterClass.Context.Builder addContextsBuilder(int index) {
                return getContextsFieldBuilder().addBuilder(index, context.ContextOuterClass.Context.getDefaultInstance());
            }

            /**
             * <code>repeated .context.Context contexts = 1;</code>
             */
            public java.util.List<context.ContextOuterClass.Context.Builder> getContextsBuilderList() {
                return getContextsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Context, context.ContextOuterClass.Context.Builder, context.ContextOuterClass.ContextOrBuilder> getContextsFieldBuilder() {
                if (contextsBuilder_ == null) {
                    contextsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Context, context.ContextOuterClass.Context.Builder, context.ContextOuterClass.ContextOrBuilder>(contexts_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    contexts_ = null;
                }
                return contextsBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.ContextList)
        }

        // @@protoc_insertion_point(class_scope:context.ContextList)
        private static final context.ContextOuterClass.ContextList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.ContextList();
        }

        public static context.ContextOuterClass.ContextList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<ContextList> PARSER = new com.google.protobuf.AbstractParser<ContextList>() {

            @java.lang.Override
            public ContextList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<ContextList> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<ContextList> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.ContextList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface ContextEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ContextEvent)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.Event event = 1;</code>
         * @return Whether the event field is set.
         */
        boolean hasEvent();

        /**
         * <code>.context.Event event = 1;</code>
         * @return The event.
         */
        context.ContextOuterClass.Event getEvent();

        /**
         * <code>.context.Event event = 1;</code>
         */
        context.ContextOuterClass.EventOrBuilder getEventOrBuilder();

        /**
         * <code>.context.ContextId context_id = 2;</code>
         * @return Whether the contextId field is set.
         */
        boolean hasContextId();

        /**
         * <code>.context.ContextId context_id = 2;</code>
         * @return The contextId.
         */
        context.ContextOuterClass.ContextId getContextId();

        /**
         * <code>.context.ContextId context_id = 2;</code>
         */
        context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder();
    }

    /**
     * Protobuf type {@code context.ContextEvent}
     */
    public static final class ContextEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ContextEvent)
    ContextEventOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use ContextEvent.newBuilder() to construct.
        private ContextEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private ContextEvent() {
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new ContextEvent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_ContextEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextEvent.class, context.ContextOuterClass.ContextEvent.Builder.class);
        }

        public static final int EVENT_FIELD_NUMBER = 1;

        private context.ContextOuterClass.Event event_;

        /**
         * <code>.context.Event event = 1;</code>
         * @return Whether the event field is set.
         */
        @java.lang.Override
        public boolean hasEvent() {
            return event_ != null;
        }

        /**
         * <code>.context.Event event = 1;</code>
         * @return The event.
         */
        @java.lang.Override
        public context.ContextOuterClass.Event getEvent() {
            return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
        }

        /**
         * <code>.context.Event event = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() {
            return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
        }

        public static final int CONTEXT_ID_FIELD_NUMBER = 2;

        private context.ContextOuterClass.ContextId contextId_;

        /**
         * <code>.context.ContextId context_id = 2;</code>
         * @return Whether the contextId field is set.
         */
        @java.lang.Override
        public boolean hasContextId() {
            return contextId_ != null;
        }

        /**
         * <code>.context.ContextId context_id = 2;</code>
         * @return The contextId.
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextId getContextId() {
            return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
        }

        /**
         * <code>.context.ContextId context_id = 2;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() {
            return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (event_ != null) {
                output.writeMessage(1, getEvent());
            }
            if (contextId_ != null) {
                output.writeMessage(2, getContextId());
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (event_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent());
            }
            if (contextId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getContextId());
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.ContextEvent)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.ContextEvent other = (context.ContextOuterClass.ContextEvent) obj;
            if (hasEvent() != other.hasEvent())
                return false;
            if (hasEvent()) {
                if (!getEvent().equals(other.getEvent()))
                    return false;
            }
            if (hasContextId() != other.hasContextId())
                return false;
            if (hasContextId()) {
                if (!getContextId().equals(other.getContextId()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasEvent()) {
                hash = (37 * hash) + EVENT_FIELD_NUMBER;
                hash = (53 * hash) + getEvent().hashCode();
            }
            if (hasContextId()) {
                hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER;
                hash = (53 * hash) + getContextId().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.ContextEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.ContextEvent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.ContextEvent}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.ContextEvent)
        context.ContextOuterClass.ContextEventOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_ContextEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextEvent.class, context.ContextOuterClass.ContextEvent.Builder.class);
            }

            // Construct using context.ContextOuterClass.ContextEvent.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                event_ = null;
                if (eventBuilder_ != null) {
                    eventBuilder_.dispose();
                contextId_ = null;
                if (contextIdBuilder_ != null) {
                    contextIdBuilder_.dispose();
                    contextIdBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextEvent getDefaultInstanceForType() {
                return context.ContextOuterClass.ContextEvent.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextEvent build() {
                context.ContextOuterClass.ContextEvent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.ContextEvent buildPartial() {
                context.ContextOuterClass.ContextEvent result = new context.ContextOuterClass.ContextEvent(this);
            private void buildPartial0(context.ContextOuterClass.ContextEvent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build();
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.ContextEvent) {
                    return mergeFrom((context.ContextOuterClass.ContextEvent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.ContextEvent other) {
                if (other == context.ContextOuterClass.ContextEvent.getDefaultInstance())
                    return this;
                if (other.hasEvent()) {
                    mergeEvent(other.getEvent());
                }
                if (other.hasContextId()) {
                    mergeContextId(other.getContextId());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            private context.ContextOuterClass.Event event_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_;

            /**
             * <code>.context.Event event = 1;</code>
             * @return Whether the event field is set.
             */
            public boolean hasEvent() {
            }

            /**
             * <code>.context.Event event = 1;</code>
             * @return The event.
             */
            public context.ContextOuterClass.Event getEvent() {
                if (eventBuilder_ == null) {
                    return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
                } else {
                    return eventBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public Builder setEvent(context.ContextOuterClass.Event value) {
                if (eventBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    event_ = value;
                } else {
                    eventBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) {
                if (eventBuilder_ == null) {
                    event_ = builderForValue.build();
                } else {
                    eventBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public Builder mergeEvent(context.ContextOuterClass.Event value) {
                if (eventBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) {
                        getEventBuilder().mergeFrom(value);
                return this;
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public Builder clearEvent() {
                bitField0_ = (bitField0_ & ~0x00000001);
                event_ = null;
                if (eventBuilder_ != null) {
                    eventBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public context.ContextOuterClass.Event.Builder getEventBuilder() {
                onChanged();
                return getEventFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() {
                if (eventBuilder_ != null) {
                    return eventBuilder_.getMessageOrBuilder();
                } else {
                    return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
                }
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> getEventFieldBuilder() {
                if (eventBuilder_ == null) {
                    eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder>(getEvent(), getParentForChildren(), isClean());
                    event_ = null;
                }
                return eventBuilder_;
            }

            private context.ContextOuterClass.ContextId contextId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_;

            /**
             * <code>.context.ContextId context_id = 2;</code>
             * @return Whether the contextId field is set.
             */
            public boolean hasContextId() {
            }

            /**
             * <code>.context.ContextId context_id = 2;</code>
             * @return The contextId.
             */
            public context.ContextOuterClass.ContextId getContextId() {
                if (contextIdBuilder_ == null) {
                    return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
                } else {
                    return contextIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.ContextId context_id = 2;</code>
             */
            public Builder setContextId(context.ContextOuterClass.ContextId value) {
                if (contextIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    contextId_ = value;
                } else {
                    contextIdBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 2;</code>
             */
            public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) {
                if (contextIdBuilder_ == null) {
                    contextId_ = builderForValue.build();
                } else {
                    contextIdBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 2;</code>
             */
            public Builder mergeContextId(context.ContextOuterClass.ContextId value) {
                if (contextIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) {
                        getContextIdBuilder().mergeFrom(value);
                    } else {
                        contextId_ = value;
                    }
                } else {
                    contextIdBuilder_.mergeFrom(value);
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 2;</code>
             */
            public Builder clearContextId() {
                bitField0_ = (bitField0_ & ~0x00000002);
                contextId_ = null;
                if (contextIdBuilder_ != null) {
                    contextIdBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 2;</code>
             */
            public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() {
                onChanged();
                return getContextIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.ContextId context_id = 2;</code>
             */
            public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() {
                if (contextIdBuilder_ != null) {
                    return contextIdBuilder_.getMessageOrBuilder();
                } else {
                    return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
                }
            }

            /**
             * <code>.context.ContextId context_id = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> getContextIdFieldBuilder() {
                if (contextIdBuilder_ == null) {
                    contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>(getContextId(), getParentForChildren(), isClean());
                    contextId_ = null;
                }
                return contextIdBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.ContextEvent)
        }

        // @@protoc_insertion_point(class_scope:context.ContextEvent)
        private static final context.ContextOuterClass.ContextEvent DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.ContextEvent();
        }

        public static context.ContextOuterClass.ContextEvent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<ContextEvent> PARSER = new com.google.protobuf.AbstractParser<ContextEvent>() {

            @java.lang.Override
            public ContextEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<ContextEvent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<ContextEvent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.ContextEvent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface TopologyIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyId)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.ContextId context_id = 1;</code>
         * @return Whether the contextId field is set.
         */
        boolean hasContextId();

        /**
         * <code>.context.ContextId context_id = 1;</code>
         * @return The contextId.
         */
        context.ContextOuterClass.ContextId getContextId();

        /**
         * <code>.context.ContextId context_id = 1;</code>
         */
        context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder();

        /**
         * <code>.context.Uuid topology_uuid = 2;</code>
         * @return Whether the topologyUuid field is set.
         */
        boolean hasTopologyUuid();

        /**
         * <code>.context.Uuid topology_uuid = 2;</code>
         * @return The topologyUuid.
         */
        context.ContextOuterClass.Uuid getTopologyUuid();

        /**
         * <code>.context.Uuid topology_uuid = 2;</code>
         */
        context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder();
    }

    /**
     * <pre>
     * ----- Topology ------------------------------------------------------------------------------------------------------
     * </pre>
     *
     * Protobuf type {@code context.TopologyId}
     */
    public static final class TopologyId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyId)
    TopologyIdOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use TopologyId.newBuilder() to construct.
        private TopologyId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private TopologyId() {
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new TopologyId();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_TopologyId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_TopologyId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyId.class, context.ContextOuterClass.TopologyId.Builder.class);
        }

        public static final int CONTEXT_ID_FIELD_NUMBER = 1;

        private context.ContextOuterClass.ContextId contextId_;

        /**
         * <code>.context.ContextId context_id = 1;</code>
         * @return Whether the contextId field is set.
         */
        @java.lang.Override
        public boolean hasContextId() {
            return contextId_ != null;
        }

        /**
         * <code>.context.ContextId context_id = 1;</code>
         * @return The contextId.
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextId getContextId() {
            return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
        }

        /**
         * <code>.context.ContextId context_id = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() {
            return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
        }

        public static final int TOPOLOGY_UUID_FIELD_NUMBER = 2;

        private context.ContextOuterClass.Uuid topologyUuid_;

        /**
         * <code>.context.Uuid topology_uuid = 2;</code>
         * @return Whether the topologyUuid field is set.
         */
        @java.lang.Override
        public boolean hasTopologyUuid() {
            return topologyUuid_ != null;
        }

        /**
         * <code>.context.Uuid topology_uuid = 2;</code>
         * @return The topologyUuid.
         */
        @java.lang.Override
        public context.ContextOuterClass.Uuid getTopologyUuid() {
            return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_;
        }

        /**
         * <code>.context.Uuid topology_uuid = 2;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder() {
            return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (contextId_ != null) {
                output.writeMessage(1, getContextId());
            }
            if (topologyUuid_ != null) {
                output.writeMessage(2, getTopologyUuid());
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (contextId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId());
            }
            if (topologyUuid_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTopologyUuid());
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.TopologyId)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.TopologyId other = (context.ContextOuterClass.TopologyId) obj;
            if (hasContextId() != other.hasContextId())
                return false;
            if (hasContextId()) {
                if (!getContextId().equals(other.getContextId()))
                    return false;
            }
            if (hasTopologyUuid() != other.hasTopologyUuid())
                return false;
            if (hasTopologyUuid()) {
                if (!getTopologyUuid().equals(other.getTopologyUuid()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasContextId()) {
                hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER;
                hash = (53 * hash) + getContextId().hashCode();
            }
            if (hasTopologyUuid()) {
                hash = (37 * hash) + TOPOLOGY_UUID_FIELD_NUMBER;
                hash = (53 * hash) + getTopologyUuid().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.TopologyId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.TopologyId prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * <pre>
         * ----- Topology ------------------------------------------------------------------------------------------------------
         * </pre>
         *
         * Protobuf type {@code context.TopologyId}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TopologyId)
        context.ContextOuterClass.TopologyIdOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_TopologyId_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_TopologyId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyId.class, context.ContextOuterClass.TopologyId.Builder.class);
            }

            // Construct using context.ContextOuterClass.TopologyId.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                contextId_ = null;
                if (contextIdBuilder_ != null) {
                    contextIdBuilder_.dispose();
                topologyUuid_ = null;
                if (topologyUuidBuilder_ != null) {
                    topologyUuidBuilder_.dispose();
                    topologyUuidBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_TopologyId_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyId getDefaultInstanceForType() {
                return context.ContextOuterClass.TopologyId.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyId build() {
                context.ContextOuterClass.TopologyId result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyId buildPartial() {
                context.ContextOuterClass.TopologyId result = new context.ContextOuterClass.TopologyId(this);
            private void buildPartial0(context.ContextOuterClass.TopologyId result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.topologyUuid_ = topologyUuidBuilder_ == null ? topologyUuid_ : topologyUuidBuilder_.build();
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.TopologyId) {
                    return mergeFrom((context.ContextOuterClass.TopologyId) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.TopologyId other) {
                if (other == context.ContextOuterClass.TopologyId.getDefaultInstance())
                    return this;
                if (other.hasContextId()) {
                    mergeContextId(other.getContextId());
                }
                if (other.hasTopologyUuid()) {
                    mergeTopologyUuid(other.getTopologyUuid());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getTopologyUuidFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            private context.ContextOuterClass.ContextId contextId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_;

            /**
             * <code>.context.ContextId context_id = 1;</code>
             * @return Whether the contextId field is set.
             */
            public boolean hasContextId() {
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             * @return The contextId.
             */
            public context.ContextOuterClass.ContextId getContextId() {
                if (contextIdBuilder_ == null) {
                    return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
                } else {
                    return contextIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public Builder setContextId(context.ContextOuterClass.ContextId value) {
                if (contextIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    contextId_ = value;
                } else {
                    contextIdBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) {
                if (contextIdBuilder_ == null) {
                    contextId_ = builderForValue.build();
                } else {
                    contextIdBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public Builder mergeContextId(context.ContextOuterClass.ContextId value) {
                if (contextIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) {
                        getContextIdBuilder().mergeFrom(value);
                    } else {
                        contextId_ = value;
                    }
                } else {
                    contextIdBuilder_.mergeFrom(value);
                }
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public Builder clearContextId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                contextId_ = null;
                if (contextIdBuilder_ != null) {
                    contextIdBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() {
                onChanged();
                return getContextIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() {
                if (contextIdBuilder_ != null) {
                    return contextIdBuilder_.getMessageOrBuilder();
                } else {
                    return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_;
                }
            }

            /**
             * <code>.context.ContextId context_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> getContextIdFieldBuilder() {
                if (contextIdBuilder_ == null) {
                    contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>(getContextId(), getParentForChildren(), isClean());
                    contextId_ = null;
                }
                return contextIdBuilder_;
            }

            private context.ContextOuterClass.Uuid topologyUuid_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> topologyUuidBuilder_;

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             * @return Whether the topologyUuid field is set.
             */
            public boolean hasTopologyUuid() {
            }

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             * @return The topologyUuid.
             */
            public context.ContextOuterClass.Uuid getTopologyUuid() {
                if (topologyUuidBuilder_ == null) {
                    return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_;
                } else {
                    return topologyUuidBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             */
            public Builder setTopologyUuid(context.ContextOuterClass.Uuid value) {
                if (topologyUuidBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    topologyUuid_ = value;
                } else {
                    topologyUuidBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             */
            public Builder setTopologyUuid(context.ContextOuterClass.Uuid.Builder builderForValue) {
                if (topologyUuidBuilder_ == null) {
                    topologyUuid_ = builderForValue.build();
                } else {
                    topologyUuidBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             */
            public Builder mergeTopologyUuid(context.ContextOuterClass.Uuid value) {
                if (topologyUuidBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && topologyUuid_ != null && topologyUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) {
                        getTopologyUuidBuilder().mergeFrom(value);
                    } else {
                        topologyUuid_ = value;
                    }
                } else {
                    topologyUuidBuilder_.mergeFrom(value);
                }
                return this;
            }

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             */
            public Builder clearTopologyUuid() {
                bitField0_ = (bitField0_ & ~0x00000002);
                topologyUuid_ = null;
                if (topologyUuidBuilder_ != null) {
                    topologyUuidBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             */
            public context.ContextOuterClass.Uuid.Builder getTopologyUuidBuilder() {
                onChanged();
                return getTopologyUuidFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             */
            public context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder() {
                if (topologyUuidBuilder_ != null) {
                    return topologyUuidBuilder_.getMessageOrBuilder();
                } else {
                    return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_;
                }
            }

            /**
             * <code>.context.Uuid topology_uuid = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getTopologyUuidFieldBuilder() {
                if (topologyUuidBuilder_ == null) {
                    topologyUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getTopologyUuid(), getParentForChildren(), isClean());
                    topologyUuid_ = null;
                }
                return topologyUuidBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.TopologyId)
        }

        // @@protoc_insertion_point(class_scope:context.TopologyId)
        private static final context.ContextOuterClass.TopologyId DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyId();
        }

        public static context.ContextOuterClass.TopologyId getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<TopologyId> PARSER = new com.google.protobuf.AbstractParser<TopologyId>() {

            @java.lang.Override
            public TopologyId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<TopologyId> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<TopologyId> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.TopologyId getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface TopologyOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Topology)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         * @return Whether the topologyId field is set.
         */
        boolean hasTopologyId();

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         * @return The topologyId.
         */
        context.ContextOuterClass.TopologyId getTopologyId();

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         */
        context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder();

        /**
         * <code>string name = 2;</code>
         * @return The name.
         */
        java.lang.String getName();

        /**
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        com.google.protobuf.ByteString getNameBytes();

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        java.util.List<context.ContextOuterClass.DeviceId> getDeviceIdsList();

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        context.ContextOuterClass.DeviceId getDeviceIds(int index);

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        int getDeviceIdsCount();

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        java.util.List<? extends context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdsOrBuilderList();

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index);

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        java.util.List<context.ContextOuterClass.LinkId> getLinkIdsList();

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        context.ContextOuterClass.LinkId getLinkIds(int index);

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        int getLinkIdsCount();

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getLinkIdsOrBuilderList();

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index);
    }

    /**
     * Protobuf type {@code context.Topology}
     */
    public static final class Topology extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Topology)
    TopologyOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use Topology.newBuilder() to construct.
        private Topology(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private Topology() {
            name_ = "";
            deviceIds_ = java.util.Collections.emptyList();
            linkIds_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new Topology();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_Topology_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_Topology_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Topology.class, context.ContextOuterClass.Topology.Builder.class);
        }

        public static final int TOPOLOGY_ID_FIELD_NUMBER = 1;

        private context.ContextOuterClass.TopologyId topologyId_;

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         * @return Whether the topologyId field is set.
         */
        @java.lang.Override
        public boolean hasTopologyId() {
            return topologyId_ != null;
        }

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         * @return The topologyId.
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyId getTopologyId() {
            return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
        }

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() {
            return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
        @SuppressWarnings("serial")
        private volatile java.lang.Object name_ = "";

        /**
         * <code>string name = 2;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                name_ = s;
                return s;
            }
        }

        /**
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getNameBytes() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                name_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int DEVICE_IDS_FIELD_NUMBER = 3;

        private java.util.List<context.ContextOuterClass.DeviceId> deviceIds_;

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.DeviceId> getDeviceIdsList() {
            return deviceIds_;
        }

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdsOrBuilderList() {
            return deviceIds_;
        }

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        @java.lang.Override
        public int getDeviceIdsCount() {
            return deviceIds_.size();
        }

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.DeviceId getDeviceIds(int index) {
            return deviceIds_.get(index);
        }

        /**
         * <code>repeated .context.DeviceId device_ids = 3;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index) {
            return deviceIds_.get(index);
        }

        public static final int LINK_IDS_FIELD_NUMBER = 4;

        private java.util.List<context.ContextOuterClass.LinkId> linkIds_;

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.LinkId> getLinkIdsList() {
            return linkIds_;
        }

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getLinkIdsOrBuilderList() {
            return linkIds_;
        }

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        @java.lang.Override
        public int getLinkIdsCount() {
            return linkIds_.size();
        }

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.LinkId getLinkIds(int index) {
            return linkIds_.get(index);
        }

        /**
         * <code>repeated .context.LinkId link_ids = 4;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index) {
            return linkIds_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (topologyId_ != null) {
                output.writeMessage(1, getTopologyId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
            }
            for (int i = 0; i < deviceIds_.size(); i++) {
                output.writeMessage(3, deviceIds_.get(i));
            }
            for (int i = 0; i < linkIds_.size(); i++) {
                output.writeMessage(4, linkIds_.get(i));
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (topologyId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTopologyId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
            }
            for (int i = 0; i < deviceIds_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, deviceIds_.get(i));
            }
            for (int i = 0; i < linkIds_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkIds_.get(i));
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.Topology)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.Topology other = (context.ContextOuterClass.Topology) obj;
            if (hasTopologyId() != other.hasTopologyId())
                return false;
            if (hasTopologyId()) {
                if (!getTopologyId().equals(other.getTopologyId()))
                    return false;
            }
            if (!getName().equals(other.getName()))
                return false;
            if (!getDeviceIdsList().equals(other.getDeviceIdsList()))
                return false;
            if (!getLinkIdsList().equals(other.getLinkIdsList()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasTopologyId()) {
                hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTopologyId().hashCode();
            }
            hash = (37 * hash) + NAME_FIELD_NUMBER;
            hash = (53 * hash) + getName().hashCode();
            if (getDeviceIdsCount() > 0) {
                hash = (37 * hash) + DEVICE_IDS_FIELD_NUMBER;
                hash = (53 * hash) + getDeviceIdsList().hashCode();
            }
            if (getLinkIdsCount() > 0) {
                hash = (37 * hash) + LINK_IDS_FIELD_NUMBER;
                hash = (53 * hash) + getLinkIdsList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.Topology parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.Topology parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.Topology parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.Topology parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.Topology parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.Topology parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.Topology parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.Topology parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.Topology parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.Topology parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.Topology parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.Topology parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.Topology prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.Topology}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Topology)
        context.ContextOuterClass.TopologyOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_Topology_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_Topology_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Topology.class, context.ContextOuterClass.Topology.Builder.class);
            }

            // Construct using context.ContextOuterClass.Topology.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                topologyId_ = null;
                if (topologyIdBuilder_ != null) {
                    topologyIdBuilder_.dispose();
                    topologyIdBuilder_ = null;
                }
                name_ = "";
                if (deviceIdsBuilder_ == null) {
                    deviceIds_ = java.util.Collections.emptyList();
                } else {
                if (linkIdsBuilder_ == null) {
                    linkIds_ = java.util.Collections.emptyList();
                } else {
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_Topology_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.Topology getDefaultInstanceForType() {
                return context.ContextOuterClass.Topology.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.Topology build() {
                context.ContextOuterClass.Topology result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.Topology buildPartial() {
                context.ContextOuterClass.Topology result = new context.ContextOuterClass.Topology(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(context.ContextOuterClass.Topology result) {
                        deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_);
                    }
                    result.deviceIds_ = deviceIds_;
                } else {
                    result.deviceIds_ = deviceIdsBuilder_.build();
                }
                if (linkIdsBuilder_ == null) {
                        linkIds_ = java.util.Collections.unmodifiableList(linkIds_);
                    }
                    result.linkIds_ = linkIds_;
                } else {
                    result.linkIds_ = linkIdsBuilder_.build();
                }
            private void buildPartial0(context.ContextOuterClass.Topology result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.name_ = name_;
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.Topology) {
                    return mergeFrom((context.ContextOuterClass.Topology) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.Topology other) {
                if (other == context.ContextOuterClass.Topology.getDefaultInstance())
                    return this;
                if (other.hasTopologyId()) {
                    mergeTopologyId(other.getTopologyId());
                }
                if (!other.getName().isEmpty()) {
                    name_ = other.name_;
                    onChanged();
                }
                if (deviceIdsBuilder_ == null) {
                    if (!other.deviceIds_.isEmpty()) {
                        if (deviceIds_.isEmpty()) {
                            deviceIds_ = other.deviceIds_;
                        } else {
                            ensureDeviceIdsIsMutable();
                            deviceIds_.addAll(other.deviceIds_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.deviceIds_.isEmpty()) {
                        if (deviceIdsBuilder_.isEmpty()) {
                            deviceIdsBuilder_.dispose();
                            deviceIdsBuilder_ = null;
                            deviceIds_ = other.deviceIds_;
                            deviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDeviceIdsFieldBuilder() : null;
                        } else {
                            deviceIdsBuilder_.addAllMessages(other.deviceIds_);
                        }
                    }
                }
                if (linkIdsBuilder_ == null) {
                    if (!other.linkIds_.isEmpty()) {
                        if (linkIds_.isEmpty()) {
                            linkIds_ = other.linkIds_;
                        } else {
                            ensureLinkIdsIsMutable();
                            linkIds_.addAll(other.linkIds_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.linkIds_.isEmpty()) {
                        if (linkIdsBuilder_.isEmpty()) {
                            linkIdsBuilder_.dispose();
                            linkIdsBuilder_ = null;
                            linkIds_ = other.linkIds_;
                            linkIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkIdsFieldBuilder() : null;
                        } else {
                            linkIdsBuilder_.addAllMessages(other.linkIds_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    name_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 26:
                                {
                                    context.ContextOuterClass.DeviceId m = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry);
                                    if (deviceIdsBuilder_ == null) {
                                        ensureDeviceIdsIsMutable();
                                        deviceIds_.add(m);
                                    } else {
                                        deviceIdsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 26
                            case 34:
                                {
                                    context.ContextOuterClass.LinkId m = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry);
                                    if (linkIdsBuilder_ == null) {
                                        ensureLinkIdsIsMutable();
                                        linkIds_.add(m);
                                    } else {
                                        linkIdsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 34
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                return this;
            }

            private int bitField0_;

            private context.ContextOuterClass.TopologyId topologyId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdBuilder_;

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             * @return Whether the topologyId field is set.
             */
            public boolean hasTopologyId() {
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             * @return The topologyId.
             */
            public context.ContextOuterClass.TopologyId getTopologyId() {
                if (topologyIdBuilder_ == null) {
                    return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
                } else {
                    return topologyIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public Builder setTopologyId(context.ContextOuterClass.TopologyId value) {
                if (topologyIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    topologyId_ = value;
                } else {
                    topologyIdBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdBuilder_ == null) {
                    topologyId_ = builderForValue.build();
                } else {
                    topologyIdBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) {
                if (topologyIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) {
                        getTopologyIdBuilder().mergeFrom(value);
                    } else {
                        topologyId_ = value;
                    }
                } else {
                    topologyIdBuilder_.mergeFrom(value);
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public Builder clearTopologyId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                topologyId_ = null;
                if (topologyIdBuilder_ != null) {
                    topologyIdBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() {
                onChanged();
                return getTopologyIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() {
                if (topologyIdBuilder_ != null) {
                    return topologyIdBuilder_.getMessageOrBuilder();
                } else {
                    return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
                }
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdFieldBuilder() {
                if (topologyIdBuilder_ == null) {
                    topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>(getTopologyId(), getParentForChildren(), isClean());
                    topologyId_ = null;
                }
                return topologyIdBuilder_;
            }

            private java.lang.Object name_ = "";

            /**
             * <code>string name = 2;</code>
             * @return The name.
             */
            public java.lang.String getName() {
                java.lang.Object ref = name_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    name_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string name = 2;</code>
             * @return The bytes for name.
             */
            public com.google.protobuf.ByteString getNameBytes() {
                java.lang.Object ref = name_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                    name_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string name = 2;</code>
             * @param value The name to set.
             * @return This builder for chaining.
             */
            public Builder setName(java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                name_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>string name = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearName() {
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
            }

            /**
             * <code>string name = 2;</code>
             * @param value The bytes for name to set.
             * @return This builder for chaining.
             */
            public Builder setNameBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                name_ = value;
                onChanged();
                return this;
            }

            private java.util.List<context.ContextOuterClass.DeviceId> deviceIds_ = java.util.Collections.emptyList();

            private void ensureDeviceIdsIsMutable() {
                    deviceIds_ = new java.util.ArrayList<context.ContextOuterClass.DeviceId>(deviceIds_);
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> deviceIdsBuilder_;

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public java.util.List<context.ContextOuterClass.DeviceId> getDeviceIdsList() {
                if (deviceIdsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(deviceIds_);
                } else {
                    return deviceIdsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public int getDeviceIdsCount() {
                if (deviceIdsBuilder_ == null) {
                    return deviceIds_.size();
                } else {
                    return deviceIdsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public context.ContextOuterClass.DeviceId getDeviceIds(int index) {
                if (deviceIdsBuilder_ == null) {
                    return deviceIds_.get(index);
                } else {
                    return deviceIdsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder setDeviceIds(int index, context.ContextOuterClass.DeviceId value) {
                if (deviceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDeviceIdsIsMutable();
                    deviceIds_.set(index, value);
                    onChanged();
                } else {
                    deviceIdsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder setDeviceIds(int index, context.ContextOuterClass.DeviceId.Builder builderForValue) {
                if (deviceIdsBuilder_ == null) {
                    ensureDeviceIdsIsMutable();
                    deviceIds_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    deviceIdsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder addDeviceIds(context.ContextOuterClass.DeviceId value) {
                if (deviceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDeviceIdsIsMutable();
                    deviceIds_.add(value);
                    onChanged();
                } else {
                    deviceIdsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder addDeviceIds(int index, context.ContextOuterClass.DeviceId value) {
                if (deviceIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDeviceIdsIsMutable();
                    deviceIds_.add(index, value);
                    onChanged();
                } else {
                    deviceIdsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder addDeviceIds(context.ContextOuterClass.DeviceId.Builder builderForValue) {
                if (deviceIdsBuilder_ == null) {
                    ensureDeviceIdsIsMutable();
                    deviceIds_.add(builderForValue.build());
                    onChanged();
                } else {
                    deviceIdsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder addDeviceIds(int index, context.ContextOuterClass.DeviceId.Builder builderForValue) {
                if (deviceIdsBuilder_ == null) {
                    ensureDeviceIdsIsMutable();
                    deviceIds_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    deviceIdsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder addAllDeviceIds(java.lang.Iterable<? extends context.ContextOuterClass.DeviceId> values) {
                if (deviceIdsBuilder_ == null) {
                    ensureDeviceIdsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, deviceIds_);
                    onChanged();
                } else {
                    deviceIdsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder clearDeviceIds() {
                if (deviceIdsBuilder_ == null) {
                    deviceIds_ = java.util.Collections.emptyList();
                    onChanged();
                } else {
                    deviceIdsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public Builder removeDeviceIds(int index) {
                if (deviceIdsBuilder_ == null) {
                    ensureDeviceIdsIsMutable();
                    deviceIds_.remove(index);
                    onChanged();
                } else {
                    deviceIdsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public context.ContextOuterClass.DeviceId.Builder getDeviceIdsBuilder(int index) {
                return getDeviceIdsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index) {
                if (deviceIdsBuilder_ == null) {
                    return deviceIds_.get(index);
                } else {
                    return deviceIdsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdsOrBuilderList() {
                if (deviceIdsBuilder_ != null) {
                    return deviceIdsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(deviceIds_);
                }
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public context.ContextOuterClass.DeviceId.Builder addDeviceIdsBuilder() {
                return getDeviceIdsFieldBuilder().addBuilder(context.ContextOuterClass.DeviceId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public context.ContextOuterClass.DeviceId.Builder addDeviceIdsBuilder(int index) {
                return getDeviceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.DeviceId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.DeviceId device_ids = 3;</code>
             */
            public java.util.List<context.ContextOuterClass.DeviceId.Builder> getDeviceIdsBuilderList() {
                return getDeviceIdsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdsFieldBuilder() {
                if (deviceIdsBuilder_ == null) {
                    deviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(deviceIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean());
                    deviceIds_ = null;
                }
                return deviceIdsBuilder_;
            }

            private java.util.List<context.ContextOuterClass.LinkId> linkIds_ = java.util.Collections.emptyList();

            private void ensureLinkIdsIsMutable() {
                    linkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(linkIds_);
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> linkIdsBuilder_;

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public java.util.List<context.ContextOuterClass.LinkId> getLinkIdsList() {
                if (linkIdsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(linkIds_);
                } else {
                    return linkIdsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public int getLinkIdsCount() {
                if (linkIdsBuilder_ == null) {
                    return linkIds_.size();
                } else {
                    return linkIdsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public context.ContextOuterClass.LinkId getLinkIds(int index) {
                if (linkIdsBuilder_ == null) {
                    return linkIds_.get(index);
                } else {
                    return linkIdsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder setLinkIds(int index, context.ContextOuterClass.LinkId value) {
                if (linkIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureLinkIdsIsMutable();
                    linkIds_.set(index, value);
                    onChanged();
                } else {
                    linkIdsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder setLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) {
                if (linkIdsBuilder_ == null) {
                    ensureLinkIdsIsMutable();
                    linkIds_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    linkIdsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder addLinkIds(context.ContextOuterClass.LinkId value) {
                if (linkIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureLinkIdsIsMutable();
                    linkIds_.add(value);
                    onChanged();
                } else {
                    linkIdsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder addLinkIds(int index, context.ContextOuterClass.LinkId value) {
                if (linkIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureLinkIdsIsMutable();
                    linkIds_.add(index, value);
                    onChanged();
                } else {
                    linkIdsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder addLinkIds(context.ContextOuterClass.LinkId.Builder builderForValue) {
                if (linkIdsBuilder_ == null) {
                    ensureLinkIdsIsMutable();
                    linkIds_.add(builderForValue.build());
                    onChanged();
                } else {
                    linkIdsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder addLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) {
                if (linkIdsBuilder_ == null) {
                    ensureLinkIdsIsMutable();
                    linkIds_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    linkIdsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder addAllLinkIds(java.lang.Iterable<? extends context.ContextOuterClass.LinkId> values) {
                if (linkIdsBuilder_ == null) {
                    ensureLinkIdsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, linkIds_);
                    onChanged();
                } else {
                    linkIdsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder clearLinkIds() {
                if (linkIdsBuilder_ == null) {
                    linkIds_ = java.util.Collections.emptyList();
                    onChanged();
                } else {
                    linkIdsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public Builder removeLinkIds(int index) {
                if (linkIdsBuilder_ == null) {
                    ensureLinkIdsIsMutable();
                    linkIds_.remove(index);
                    onChanged();
                } else {
                    linkIdsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public context.ContextOuterClass.LinkId.Builder getLinkIdsBuilder(int index) {
                return getLinkIdsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index) {
                if (linkIdsBuilder_ == null) {
                    return linkIds_.get(index);
                } else {
                    return linkIdsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getLinkIdsOrBuilderList() {
                if (linkIdsBuilder_ != null) {
                    return linkIdsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(linkIds_);
                }
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public context.ContextOuterClass.LinkId.Builder addLinkIdsBuilder() {
                return getLinkIdsFieldBuilder().addBuilder(context.ContextOuterClass.LinkId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public context.ContextOuterClass.LinkId.Builder addLinkIdsBuilder(int index) {
                return getLinkIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.LinkId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.LinkId link_ids = 4;</code>
             */
            public java.util.List<context.ContextOuterClass.LinkId.Builder> getLinkIdsBuilderList() {
                return getLinkIdsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> getLinkIdsFieldBuilder() {
                if (linkIdsBuilder_ == null) {
                    linkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(linkIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean());
                    linkIds_ = null;
                }
                return linkIdsBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.Topology)
        }

        // @@protoc_insertion_point(class_scope:context.Topology)
        private static final context.ContextOuterClass.Topology DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.Topology();
        }

        public static context.ContextOuterClass.Topology getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<Topology> PARSER = new com.google.protobuf.AbstractParser<Topology>() {

            @java.lang.Override
            public Topology parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<Topology> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<Topology> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.Topology getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface TopologyDetailsOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyDetails)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         * @return Whether the topologyId field is set.
         */
        boolean hasTopologyId();

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         * @return The topologyId.
         */
        context.ContextOuterClass.TopologyId getTopologyId();

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         */
        context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder();

        /**
         * <code>string name = 2;</code>
         * @return The name.
         */
        java.lang.String getName();

        /**
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        com.google.protobuf.ByteString getNameBytes();

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        java.util.List<context.ContextOuterClass.Device> getDevicesList();

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        context.ContextOuterClass.Device getDevices(int index);

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        int getDevicesCount();

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        java.util.List<? extends context.ContextOuterClass.DeviceOrBuilder> getDevicesOrBuilderList();

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index);

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        java.util.List<context.ContextOuterClass.Link> getLinksList();

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        context.ContextOuterClass.Link getLinks(int index);

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        int getLinksCount();

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        java.util.List<? extends context.ContextOuterClass.LinkOrBuilder> getLinksOrBuilderList();

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index);
    }

    /**
     * Protobuf type {@code context.TopologyDetails}
     */
    public static final class TopologyDetails extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyDetails)
    TopologyDetailsOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use TopologyDetails.newBuilder() to construct.
        private TopologyDetails(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private TopologyDetails() {
            name_ = "";
            devices_ = java.util.Collections.emptyList();
            links_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new TopologyDetails();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_TopologyDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyDetails.class, context.ContextOuterClass.TopologyDetails.Builder.class);
        }

        public static final int TOPOLOGY_ID_FIELD_NUMBER = 1;

        private context.ContextOuterClass.TopologyId topologyId_;

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         * @return Whether the topologyId field is set.
         */
        @java.lang.Override
        public boolean hasTopologyId() {
            return topologyId_ != null;
        }

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         * @return The topologyId.
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyId getTopologyId() {
            return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
        }

        /**
         * <code>.context.TopologyId topology_id = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() {
            return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
        @SuppressWarnings("serial")
        private volatile java.lang.Object name_ = "";

        /**
         * <code>string name = 2;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                name_ = s;
                return s;
            }
        }

        /**
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getNameBytes() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                name_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int DEVICES_FIELD_NUMBER = 3;

        private java.util.List<context.ContextOuterClass.Device> devices_;

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.Device> getDevicesList() {
            return devices_;
        }

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.DeviceOrBuilder> getDevicesOrBuilderList() {
            return devices_;
        }

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        @java.lang.Override
        public int getDevicesCount() {
            return devices_.size();
        }

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.Device getDevices(int index) {
            return devices_.get(index);
        }

        /**
         * <code>repeated .context.Device devices = 3;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index) {
            return devices_.get(index);
        }

        public static final int LINKS_FIELD_NUMBER = 4;

        private java.util.List<context.ContextOuterClass.Link> links_;

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.Link> getLinksList() {
            return links_;
        }

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.LinkOrBuilder> getLinksOrBuilderList() {
            return links_;
        }

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        @java.lang.Override
        public int getLinksCount() {
            return links_.size();
        }

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.Link getLinks(int index) {
            return links_.get(index);
        }

        /**
         * <code>repeated .context.Link links = 4;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index) {
            return links_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (topologyId_ != null) {
                output.writeMessage(1, getTopologyId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
            }
            for (int i = 0; i < devices_.size(); i++) {
                output.writeMessage(3, devices_.get(i));
            }
            for (int i = 0; i < links_.size(); i++) {
                output.writeMessage(4, links_.get(i));
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (topologyId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTopologyId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
            }
            for (int i = 0; i < devices_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, devices_.get(i));
            }
            for (int i = 0; i < links_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, links_.get(i));
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.TopologyDetails)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.TopologyDetails other = (context.ContextOuterClass.TopologyDetails) obj;
            if (hasTopologyId() != other.hasTopologyId())
                return false;
            if (hasTopologyId()) {
                if (!getTopologyId().equals(other.getTopologyId()))
                    return false;
            }
            if (!getName().equals(other.getName()))
                return false;
            if (!getDevicesList().equals(other.getDevicesList()))
                return false;
            if (!getLinksList().equals(other.getLinksList()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasTopologyId()) {
                hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTopologyId().hashCode();
            }
            hash = (37 * hash) + NAME_FIELD_NUMBER;
            hash = (53 * hash) + getName().hashCode();
            if (getDevicesCount() > 0) {
                hash = (37 * hash) + DEVICES_FIELD_NUMBER;
                hash = (53 * hash) + getDevicesList().hashCode();
            }
            if (getLinksCount() > 0) {
                hash = (37 * hash) + LINKS_FIELD_NUMBER;
                hash = (53 * hash) + getLinksList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyDetails parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyDetails parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyDetails parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.TopologyDetails prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.TopologyDetails}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TopologyDetails)
        context.ContextOuterClass.TopologyDetailsOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_TopologyDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyDetails.class, context.ContextOuterClass.TopologyDetails.Builder.class);
            }

            // Construct using context.ContextOuterClass.TopologyDetails.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                topologyId_ = null;
                if (topologyIdBuilder_ != null) {
                    topologyIdBuilder_.dispose();
                    topologyIdBuilder_ = null;
                }
                name_ = "";
                if (devicesBuilder_ == null) {
                    devices_ = java.util.Collections.emptyList();
                } else {
                if (linksBuilder_ == null) {
                    links_ = java.util.Collections.emptyList();
                } else {
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyDetails getDefaultInstanceForType() {
                return context.ContextOuterClass.TopologyDetails.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyDetails build() {
                context.ContextOuterClass.TopologyDetails result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyDetails buildPartial() {
                context.ContextOuterClass.TopologyDetails result = new context.ContextOuterClass.TopologyDetails(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyDetails result) {
                        devices_ = java.util.Collections.unmodifiableList(devices_);
                    }
                    result.devices_ = devices_;
                } else {
                    result.devices_ = devicesBuilder_.build();
                }
                if (linksBuilder_ == null) {
                        links_ = java.util.Collections.unmodifiableList(links_);
                    }
                    result.links_ = links_;
                } else {
                    result.links_ = linksBuilder_.build();
                }
            private void buildPartial0(context.ContextOuterClass.TopologyDetails result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.name_ = name_;
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.TopologyDetails) {
                    return mergeFrom((context.ContextOuterClass.TopologyDetails) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.TopologyDetails other) {
                if (other == context.ContextOuterClass.TopologyDetails.getDefaultInstance())
                    return this;
                if (other.hasTopologyId()) {
                    mergeTopologyId(other.getTopologyId());
                }
                if (!other.getName().isEmpty()) {
                    name_ = other.name_;
                    onChanged();
                }
                if (devicesBuilder_ == null) {
                    if (!other.devices_.isEmpty()) {
                        if (devices_.isEmpty()) {
                            devices_ = other.devices_;
                        } else {
                            ensureDevicesIsMutable();
                            devices_.addAll(other.devices_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.devices_.isEmpty()) {
                        if (devicesBuilder_.isEmpty()) {
                            devicesBuilder_.dispose();
                            devicesBuilder_ = null;
                            devices_ = other.devices_;
                            devicesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDevicesFieldBuilder() : null;
                        } else {
                            devicesBuilder_.addAllMessages(other.devices_);
                        }
                    }
                }
                if (linksBuilder_ == null) {
                    if (!other.links_.isEmpty()) {
                        if (links_.isEmpty()) {
                            links_ = other.links_;
                        } else {
                            ensureLinksIsMutable();
                            links_.addAll(other.links_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.links_.isEmpty()) {
                        if (linksBuilder_.isEmpty()) {
                            linksBuilder_.dispose();
                            linksBuilder_ = null;
                            links_ = other.links_;
                            linksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinksFieldBuilder() : null;
                        } else {
                            linksBuilder_.addAllMessages(other.links_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    name_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 26:
                                {
                                    context.ContextOuterClass.Device m = input.readMessage(context.ContextOuterClass.Device.parser(), extensionRegistry);
                                    if (devicesBuilder_ == null) {
                                        ensureDevicesIsMutable();
                                        devices_.add(m);
                                    } else {
                                        devicesBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 26
                            case 34:
                                {
                                    context.ContextOuterClass.Link m = input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry);
                                    if (linksBuilder_ == null) {
                                        ensureLinksIsMutable();
                                        links_.add(m);
                                    } else {
                                        linksBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 34
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                return this;
            }

            private int bitField0_;

            private context.ContextOuterClass.TopologyId topologyId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdBuilder_;

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             * @return Whether the topologyId field is set.
             */
            public boolean hasTopologyId() {
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             * @return The topologyId.
             */
            public context.ContextOuterClass.TopologyId getTopologyId() {
                if (topologyIdBuilder_ == null) {
                    return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
                } else {
                    return topologyIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public Builder setTopologyId(context.ContextOuterClass.TopologyId value) {
                if (topologyIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    topologyId_ = value;
                } else {
                    topologyIdBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdBuilder_ == null) {
                    topologyId_ = builderForValue.build();
                } else {
                    topologyIdBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) {
                if (topologyIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) {
                        getTopologyIdBuilder().mergeFrom(value);
                    } else {
                        topologyId_ = value;
                    }
                } else {
                    topologyIdBuilder_.mergeFrom(value);
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public Builder clearTopologyId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                topologyId_ = null;
                if (topologyIdBuilder_ != null) {
                    topologyIdBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() {
                onChanged();
                return getTopologyIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() {
                if (topologyIdBuilder_ != null) {
                    return topologyIdBuilder_.getMessageOrBuilder();
                } else {
                    return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
                }
            }

            /**
             * <code>.context.TopologyId topology_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdFieldBuilder() {
                if (topologyIdBuilder_ == null) {
                    topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>(getTopologyId(), getParentForChildren(), isClean());
                    topologyId_ = null;
                }
                return topologyIdBuilder_;
            }

            private java.lang.Object name_ = "";

            /**
             * <code>string name = 2;</code>
             * @return The name.
             */
            public java.lang.String getName() {
                java.lang.Object ref = name_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    name_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string name = 2;</code>
             * @return The bytes for name.
             */
            public com.google.protobuf.ByteString getNameBytes() {
                java.lang.Object ref = name_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                    name_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string name = 2;</code>
             * @param value The name to set.
             * @return This builder for chaining.
             */
            public Builder setName(java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                name_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>string name = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearName() {
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
            }

            /**
             * <code>string name = 2;</code>
             * @param value The bytes for name to set.
             * @return This builder for chaining.
             */
            public Builder setNameBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                name_ = value;
                onChanged();
                return this;
            }

            private java.util.List<context.ContextOuterClass.Device> devices_ = java.util.Collections.emptyList();

            private void ensureDevicesIsMutable() {
                    devices_ = new java.util.ArrayList<context.ContextOuterClass.Device>(devices_);
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder> devicesBuilder_;

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public java.util.List<context.ContextOuterClass.Device> getDevicesList() {
                if (devicesBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(devices_);
                } else {
                    return devicesBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public int getDevicesCount() {
                if (devicesBuilder_ == null) {
                    return devices_.size();
                } else {
                    return devicesBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public context.ContextOuterClass.Device getDevices(int index) {
                if (devicesBuilder_ == null) {
                    return devices_.get(index);
                } else {
                    return devicesBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder setDevices(int index, context.ContextOuterClass.Device value) {
                if (devicesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDevicesIsMutable();
                    devices_.set(index, value);
                    onChanged();
                } else {
                    devicesBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder setDevices(int index, context.ContextOuterClass.Device.Builder builderForValue) {
                if (devicesBuilder_ == null) {
                    ensureDevicesIsMutable();
                    devices_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    devicesBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder addDevices(context.ContextOuterClass.Device value) {
                if (devicesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDevicesIsMutable();
                    devices_.add(value);
                    onChanged();
                } else {
                    devicesBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder addDevices(int index, context.ContextOuterClass.Device value) {
                if (devicesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDevicesIsMutable();
                    devices_.add(index, value);
                    onChanged();
                } else {
                    devicesBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder addDevices(context.ContextOuterClass.Device.Builder builderForValue) {
                if (devicesBuilder_ == null) {
                    ensureDevicesIsMutable();
                    devices_.add(builderForValue.build());
                    onChanged();
                } else {
                    devicesBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder addDevices(int index, context.ContextOuterClass.Device.Builder builderForValue) {
                if (devicesBuilder_ == null) {
                    ensureDevicesIsMutable();
                    devices_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    devicesBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder addAllDevices(java.lang.Iterable<? extends context.ContextOuterClass.Device> values) {
                if (devicesBuilder_ == null) {
                    ensureDevicesIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, devices_);
                    onChanged();
                } else {
                    devicesBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder clearDevices() {
                if (devicesBuilder_ == null) {
                    devices_ = java.util.Collections.emptyList();
                    onChanged();
                } else {
                    devicesBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public Builder removeDevices(int index) {
                if (devicesBuilder_ == null) {
                    ensureDevicesIsMutable();
                    devices_.remove(index);
                    onChanged();
                } else {
                    devicesBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public context.ContextOuterClass.Device.Builder getDevicesBuilder(int index) {
                return getDevicesFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index) {
                if (devicesBuilder_ == null) {
                    return devices_.get(index);
                } else {
                    return devicesBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.DeviceOrBuilder> getDevicesOrBuilderList() {
                if (devicesBuilder_ != null) {
                    return devicesBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(devices_);
                }
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public context.ContextOuterClass.Device.Builder addDevicesBuilder() {
                return getDevicesFieldBuilder().addBuilder(context.ContextOuterClass.Device.getDefaultInstance());
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public context.ContextOuterClass.Device.Builder addDevicesBuilder(int index) {
                return getDevicesFieldBuilder().addBuilder(index, context.ContextOuterClass.Device.getDefaultInstance());
            }

            /**
             * <code>repeated .context.Device devices = 3;</code>
             */
            public java.util.List<context.ContextOuterClass.Device.Builder> getDevicesBuilderList() {
                return getDevicesFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder> getDevicesFieldBuilder() {
                if (devicesBuilder_ == null) {
                    devicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder>(devices_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean());
                    devices_ = null;
                }
                return devicesBuilder_;
            }

            private java.util.List<context.ContextOuterClass.Link> links_ = java.util.Collections.emptyList();

            private void ensureLinksIsMutable() {
                    links_ = new java.util.ArrayList<context.ContextOuterClass.Link>(links_);
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder> linksBuilder_;

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public java.util.List<context.ContextOuterClass.Link> getLinksList() {
                if (linksBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(links_);
                } else {
                    return linksBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public int getLinksCount() {
                if (linksBuilder_ == null) {
                    return links_.size();
                } else {
                    return linksBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public context.ContextOuterClass.Link getLinks(int index) {
                if (linksBuilder_ == null) {
                    return links_.get(index);
                } else {
                    return linksBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder setLinks(int index, context.ContextOuterClass.Link value) {
                if (linksBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureLinksIsMutable();
                    links_.set(index, value);
                    onChanged();
                } else {
                    linksBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder setLinks(int index, context.ContextOuterClass.Link.Builder builderForValue) {
                if (linksBuilder_ == null) {
                    ensureLinksIsMutable();
                    links_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    linksBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder addLinks(context.ContextOuterClass.Link value) {
                if (linksBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureLinksIsMutable();
                    links_.add(value);
                    onChanged();
                } else {
                    linksBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder addLinks(int index, context.ContextOuterClass.Link value) {
                if (linksBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureLinksIsMutable();
                    links_.add(index, value);
                    onChanged();
                } else {
                    linksBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder addLinks(context.ContextOuterClass.Link.Builder builderForValue) {
                if (linksBuilder_ == null) {
                    ensureLinksIsMutable();
                    links_.add(builderForValue.build());
                    onChanged();
                } else {
                    linksBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder addLinks(int index, context.ContextOuterClass.Link.Builder builderForValue) {
                if (linksBuilder_ == null) {
                    ensureLinksIsMutable();
                    links_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    linksBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder addAllLinks(java.lang.Iterable<? extends context.ContextOuterClass.Link> values) {
                if (linksBuilder_ == null) {
                    ensureLinksIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, links_);
                    onChanged();
                } else {
                    linksBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder clearLinks() {
                if (linksBuilder_ == null) {
                    links_ = java.util.Collections.emptyList();
                    onChanged();
                } else {
                    linksBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public Builder removeLinks(int index) {
                if (linksBuilder_ == null) {
                    ensureLinksIsMutable();
                    links_.remove(index);
                    onChanged();
                } else {
                    linksBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public context.ContextOuterClass.Link.Builder getLinksBuilder(int index) {
                return getLinksFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index) {
                if (linksBuilder_ == null) {
                    return links_.get(index);
                } else {
                    return linksBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.LinkOrBuilder> getLinksOrBuilderList() {
                if (linksBuilder_ != null) {
                    return linksBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(links_);
                }
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public context.ContextOuterClass.Link.Builder addLinksBuilder() {
                return getLinksFieldBuilder().addBuilder(context.ContextOuterClass.Link.getDefaultInstance());
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public context.ContextOuterClass.Link.Builder addLinksBuilder(int index) {
                return getLinksFieldBuilder().addBuilder(index, context.ContextOuterClass.Link.getDefaultInstance());
            }

            /**
             * <code>repeated .context.Link links = 4;</code>
             */
            public java.util.List<context.ContextOuterClass.Link.Builder> getLinksBuilderList() {
                return getLinksFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder> getLinksFieldBuilder() {
                if (linksBuilder_ == null) {
                    linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder>(links_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean());
                    links_ = null;
                }
                return linksBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.TopologyDetails)
        }

        // @@protoc_insertion_point(class_scope:context.TopologyDetails)
        private static final context.ContextOuterClass.TopologyDetails DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyDetails();
        }

        public static context.ContextOuterClass.TopologyDetails getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<TopologyDetails> PARSER = new com.google.protobuf.AbstractParser<TopologyDetails>() {

            @java.lang.Override
            public TopologyDetails parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<TopologyDetails> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<TopologyDetails> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.TopologyDetails getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface TopologyIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyIdList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        java.util.List<context.ContextOuterClass.TopologyId> getTopologyIdsList();

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        context.ContextOuterClass.TopologyId getTopologyIds(int index);

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        int getTopologyIdsCount();

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        java.util.List<? extends context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsOrBuilderList();

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index);
    }

    /**
     * Protobuf type {@code context.TopologyIdList}
     */
    public static final class TopologyIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyIdList)
    TopologyIdListOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use TopologyIdList.newBuilder() to construct.
        private TopologyIdList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private TopologyIdList() {
            topologyIds_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new TopologyIdList();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_TopologyIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyIdList.class, context.ContextOuterClass.TopologyIdList.Builder.class);
        }

        public static final int TOPOLOGY_IDS_FIELD_NUMBER = 1;

        private java.util.List<context.ContextOuterClass.TopologyId> topologyIds_;

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.TopologyId> getTopologyIdsList() {
            return topologyIds_;
        }

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsOrBuilderList() {
            return topologyIds_;
        }

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        @java.lang.Override
        public int getTopologyIdsCount() {
            return topologyIds_.size();
        }

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyId getTopologyIds(int index) {
            return topologyIds_.get(index);
        }

        /**
         * <code>repeated .context.TopologyId topology_ids = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index) {
            return topologyIds_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            for (int i = 0; i < topologyIds_.size(); i++) {
                output.writeMessage(1, topologyIds_.get(i));
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < topologyIds_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, topologyIds_.get(i));
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.TopologyIdList)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.TopologyIdList other = (context.ContextOuterClass.TopologyIdList) obj;
            if (!getTopologyIdsList().equals(other.getTopologyIdsList()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTopologyIdsCount() > 0) {
                hash = (37 * hash) + TOPOLOGY_IDS_FIELD_NUMBER;
                hash = (53 * hash) + getTopologyIdsList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.TopologyIdList prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.TopologyIdList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TopologyIdList)
        context.ContextOuterClass.TopologyIdListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_TopologyIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyIdList.class, context.ContextOuterClass.TopologyIdList.Builder.class);
            }

            // Construct using context.ContextOuterClass.TopologyIdList.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                if (topologyIdsBuilder_ == null) {
                    topologyIds_ = java.util.Collections.emptyList();
                } else {
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyIdList getDefaultInstanceForType() {
                return context.ContextOuterClass.TopologyIdList.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyIdList build() {
                context.ContextOuterClass.TopologyIdList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyIdList buildPartial() {
                context.ContextOuterClass.TopologyIdList result = new context.ContextOuterClass.TopologyIdList(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyIdList result) {
                if (topologyIdsBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.topologyIds_ = topologyIds_;
                } else {
                    result.topologyIds_ = topologyIdsBuilder_.build();
                }
            private void buildPartial0(context.ContextOuterClass.TopologyIdList result) {
                int from_bitField0_ = bitField0_;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.TopologyIdList) {
                    return mergeFrom((context.ContextOuterClass.TopologyIdList) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.TopologyIdList other) {
                if (other == context.ContextOuterClass.TopologyIdList.getDefaultInstance())
                    return this;
                if (topologyIdsBuilder_ == null) {
                    if (!other.topologyIds_.isEmpty()) {
                        if (topologyIds_.isEmpty()) {
                            topologyIds_ = other.topologyIds_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureTopologyIdsIsMutable();
                            topologyIds_.addAll(other.topologyIds_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.topologyIds_.isEmpty()) {
                        if (topologyIdsBuilder_.isEmpty()) {
                            topologyIdsBuilder_.dispose();
                            topologyIdsBuilder_ = null;
                            topologyIds_ = other.topologyIds_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            topologyIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTopologyIdsFieldBuilder() : null;
                        } else {
                            topologyIdsBuilder_.addAllMessages(other.topologyIds_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    context.ContextOuterClass.TopologyId m = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry);
                                    if (topologyIdsBuilder_ == null) {
                                        ensureTopologyIdsIsMutable();
                                        topologyIds_.add(m);
                                    } else {
                                        topologyIdsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                return this;
            }

            private int bitField0_;

            private java.util.List<context.ContextOuterClass.TopologyId> topologyIds_ = java.util.Collections.emptyList();

            private void ensureTopologyIdsIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    topologyIds_ = new java.util.ArrayList<context.ContextOuterClass.TopologyId>(topologyIds_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdsBuilder_;

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public java.util.List<context.ContextOuterClass.TopologyId> getTopologyIdsList() {
                if (topologyIdsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(topologyIds_);
                } else {
                    return topologyIdsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public int getTopologyIdsCount() {
                if (topologyIdsBuilder_ == null) {
                    return topologyIds_.size();
                } else {
                    return topologyIdsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public context.ContextOuterClass.TopologyId getTopologyIds(int index) {
                if (topologyIdsBuilder_ == null) {
                    return topologyIds_.get(index);
                } else {
                    return topologyIdsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder setTopologyIds(int index, context.ContextOuterClass.TopologyId value) {
                if (topologyIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologyIdsIsMutable();
                    topologyIds_.set(index, value);
                    onChanged();
                } else {
                    topologyIdsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder setTopologyIds(int index, context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    topologyIds_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    topologyIdsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder addTopologyIds(context.ContextOuterClass.TopologyId value) {
                if (topologyIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologyIdsIsMutable();
                    topologyIds_.add(value);
                    onChanged();
                } else {
                    topologyIdsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder addTopologyIds(int index, context.ContextOuterClass.TopologyId value) {
                if (topologyIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologyIdsIsMutable();
                    topologyIds_.add(index, value);
                    onChanged();
                } else {
                    topologyIdsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder addTopologyIds(context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    topologyIds_.add(builderForValue.build());
                    onChanged();
                } else {
                    topologyIdsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder addTopologyIds(int index, context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    topologyIds_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    topologyIdsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder addAllTopologyIds(java.lang.Iterable<? extends context.ContextOuterClass.TopologyId> values) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, topologyIds_);
                    onChanged();
                } else {
                    topologyIdsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder clearTopologyIds() {
                if (topologyIdsBuilder_ == null) {
                    topologyIds_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    topologyIdsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public Builder removeTopologyIds(int index) {
                if (topologyIdsBuilder_ == null) {
                    ensureTopologyIdsIsMutable();
                    topologyIds_.remove(index);
                    onChanged();
                } else {
                    topologyIdsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder getTopologyIdsBuilder(int index) {
                return getTopologyIdsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index) {
                if (topologyIdsBuilder_ == null) {
                    return topologyIds_.get(index);
                } else {
                    return topologyIdsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsOrBuilderList() {
                if (topologyIdsBuilder_ != null) {
                    return topologyIdsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(topologyIds_);
                }
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder() {
                return getTopologyIdsFieldBuilder().addBuilder(context.ContextOuterClass.TopologyId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder(int index) {
                return getTopologyIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.TopologyId.getDefaultInstance());
            }

            /**
             * <code>repeated .context.TopologyId topology_ids = 1;</code>
             */
            public java.util.List<context.ContextOuterClass.TopologyId.Builder> getTopologyIdsBuilderList() {
                return getTopologyIdsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsFieldBuilder() {
                if (topologyIdsBuilder_ == null) {
                    topologyIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>(topologyIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    topologyIds_ = null;
                }
                return topologyIdsBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.TopologyIdList)
        }

        // @@protoc_insertion_point(class_scope:context.TopologyIdList)
        private static final context.ContextOuterClass.TopologyIdList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyIdList();
        }

        public static context.ContextOuterClass.TopologyIdList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<TopologyIdList> PARSER = new com.google.protobuf.AbstractParser<TopologyIdList>() {

            @java.lang.Override
            public TopologyIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<TopologyIdList> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<TopologyIdList> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.TopologyIdList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface TopologyListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        java.util.List<context.ContextOuterClass.Topology> getTopologiesList();

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        context.ContextOuterClass.Topology getTopologies(int index);

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        int getTopologiesCount();

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        java.util.List<? extends context.ContextOuterClass.TopologyOrBuilder> getTopologiesOrBuilderList();

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder(int index);
    }

    /**
     * Protobuf type {@code context.TopologyList}
     */
    public static final class TopologyList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyList)
    TopologyListOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use TopologyList.newBuilder() to construct.
        private TopologyList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private TopologyList() {
            topologies_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new TopologyList();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_TopologyList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_TopologyList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyList.class, context.ContextOuterClass.TopologyList.Builder.class);
        }

        public static final int TOPOLOGIES_FIELD_NUMBER = 1;

        private java.util.List<context.ContextOuterClass.Topology> topologies_;

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        @java.lang.Override
        public java.util.List<context.ContextOuterClass.Topology> getTopologiesList() {
            return topologies_;
        }

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends context.ContextOuterClass.TopologyOrBuilder> getTopologiesOrBuilderList() {
            return topologies_;
        }

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        @java.lang.Override
        public int getTopologiesCount() {
            return topologies_.size();
        }

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.Topology getTopologies(int index) {
            return topologies_.get(index);
        }

        /**
         * <code>repeated .context.Topology topologies = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder(int index) {
            return topologies_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            for (int i = 0; i < topologies_.size(); i++) {
                output.writeMessage(1, topologies_.get(i));
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < topologies_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, topologies_.get(i));
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.TopologyList)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.TopologyList other = (context.ContextOuterClass.TopologyList) obj;
            if (!getTopologiesList().equals(other.getTopologiesList()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTopologiesCount() > 0) {
                hash = (37 * hash) + TOPOLOGIES_FIELD_NUMBER;
                hash = (53 * hash) + getTopologiesList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.TopologyList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.TopologyList prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.TopologyList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TopologyList)
        context.ContextOuterClass.TopologyListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_TopologyList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_TopologyList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyList.class, context.ContextOuterClass.TopologyList.Builder.class);
            }

            // Construct using context.ContextOuterClass.TopologyList.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                if (topologiesBuilder_ == null) {
                    topologies_ = java.util.Collections.emptyList();
                } else {
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_TopologyList_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyList getDefaultInstanceForType() {
                return context.ContextOuterClass.TopologyList.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyList build() {
                context.ContextOuterClass.TopologyList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyList buildPartial() {
                context.ContextOuterClass.TopologyList result = new context.ContextOuterClass.TopologyList(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyList result) {
                if (topologiesBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        topologies_ = java.util.Collections.unmodifiableList(topologies_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.topologies_ = topologies_;
                } else {
                    result.topologies_ = topologiesBuilder_.build();
                }
            private void buildPartial0(context.ContextOuterClass.TopologyList result) {
                int from_bitField0_ = bitField0_;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.TopologyList) {
                    return mergeFrom((context.ContextOuterClass.TopologyList) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.TopologyList other) {
                if (other == context.ContextOuterClass.TopologyList.getDefaultInstance())
                    return this;
                if (topologiesBuilder_ == null) {
                    if (!other.topologies_.isEmpty()) {
                        if (topologies_.isEmpty()) {
                            topologies_ = other.topologies_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureTopologiesIsMutable();
                            topologies_.addAll(other.topologies_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.topologies_.isEmpty()) {
                        if (topologiesBuilder_.isEmpty()) {
                            topologiesBuilder_.dispose();
                            topologiesBuilder_ = null;
                            topologies_ = other.topologies_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            topologiesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTopologiesFieldBuilder() : null;
                        } else {
                            topologiesBuilder_.addAllMessages(other.topologies_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    context.ContextOuterClass.Topology m = input.readMessage(context.ContextOuterClass.Topology.parser(), extensionRegistry);
                                    if (topologiesBuilder_ == null) {
                                        ensureTopologiesIsMutable();
                                        topologies_.add(m);
                                    } else {
                                        topologiesBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016
                return this;
            }

            private int bitField0_;

            private java.util.List<context.ContextOuterClass.Topology> topologies_ = java.util.Collections.emptyList();

            private void ensureTopologiesIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    topologies_ = new java.util.ArrayList<context.ContextOuterClass.Topology>(topologies_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Topology, context.ContextOuterClass.Topology.Builder, context.ContextOuterClass.TopologyOrBuilder> topologiesBuilder_;

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public java.util.List<context.ContextOuterClass.Topology> getTopologiesList() {
                if (topologiesBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(topologies_);
                } else {
                    return topologiesBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public int getTopologiesCount() {
                if (topologiesBuilder_ == null) {
                    return topologies_.size();
                } else {
                    return topologiesBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public context.ContextOuterClass.Topology getTopologies(int index) {
                if (topologiesBuilder_ == null) {
                    return topologies_.get(index);
                } else {
                    return topologiesBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder setTopologies(int index, context.ContextOuterClass.Topology value) {
                if (topologiesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologiesIsMutable();
                    topologies_.set(index, value);
                    onChanged();
                } else {
                    topologiesBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder setTopologies(int index, context.ContextOuterClass.Topology.Builder builderForValue) {
                if (topologiesBuilder_ == null) {
                    ensureTopologiesIsMutable();
                    topologies_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    topologiesBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder addTopologies(context.ContextOuterClass.Topology value) {
                if (topologiesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologiesIsMutable();
                    topologies_.add(value);
                    onChanged();
                } else {
                    topologiesBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder addTopologies(int index, context.ContextOuterClass.Topology value) {
                if (topologiesBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTopologiesIsMutable();
                    topologies_.add(index, value);
                    onChanged();
                } else {
                    topologiesBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder addTopologies(context.ContextOuterClass.Topology.Builder builderForValue) {
                if (topologiesBuilder_ == null) {
                    ensureTopologiesIsMutable();
                    topologies_.add(builderForValue.build());
                    onChanged();
                } else {
                    topologiesBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder addTopologies(int index, context.ContextOuterClass.Topology.Builder builderForValue) {
                if (topologiesBuilder_ == null) {
                    ensureTopologiesIsMutable();
                    topologies_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    topologiesBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder addAllTopologies(java.lang.Iterable<? extends context.ContextOuterClass.Topology> values) {
                if (topologiesBuilder_ == null) {
                    ensureTopologiesIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, topologies_);
                    onChanged();
                } else {
                    topologiesBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder clearTopologies() {
                if (topologiesBuilder_ == null) {
                    topologies_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    topologiesBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public Builder removeTopologies(int index) {
                if (topologiesBuilder_ == null) {
                    ensureTopologiesIsMutable();
                    topologies_.remove(index);
                    onChanged();
                } else {
                    topologiesBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public context.ContextOuterClass.Topology.Builder getTopologiesBuilder(int index) {
                return getTopologiesFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder(int index) {
                if (topologiesBuilder_ == null) {
                    return topologies_.get(index);
                } else {
                    return topologiesBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public java.util.List<? extends context.ContextOuterClass.TopologyOrBuilder> getTopologiesOrBuilderList() {
                if (topologiesBuilder_ != null) {
                    return topologiesBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(topologies_);
                }
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public context.ContextOuterClass.Topology.Builder addTopologiesBuilder() {
                return getTopologiesFieldBuilder().addBuilder(context.ContextOuterClass.Topology.getDefaultInstance());
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public context.ContextOuterClass.Topology.Builder addTopologiesBuilder(int index) {
                return getTopologiesFieldBuilder().addBuilder(index, context.ContextOuterClass.Topology.getDefaultInstance());
            }

            /**
             * <code>repeated .context.Topology topologies = 1;</code>
             */
            public java.util.List<context.ContextOuterClass.Topology.Builder> getTopologiesBuilderList() {
                return getTopologiesFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Topology, context.ContextOuterClass.Topology.Builder, context.ContextOuterClass.TopologyOrBuilder> getTopologiesFieldBuilder() {
                if (topologiesBuilder_ == null) {
                    topologiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Topology, context.ContextOuterClass.Topology.Builder, context.ContextOuterClass.TopologyOrBuilder>(topologies_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    topologies_ = null;
                }
                return topologiesBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.TopologyList)
        }

        // @@protoc_insertion_point(class_scope:context.TopologyList)
        private static final context.ContextOuterClass.TopologyList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyList();
        }

        public static context.ContextOuterClass.TopologyList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<TopologyList> PARSER = new com.google.protobuf.AbstractParser<TopologyList>() {

            @java.lang.Override
            public TopologyList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<TopologyList> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<TopologyList> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.TopologyList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface TopologyEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyEvent)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.Event event = 1;</code>
         * @return Whether the event field is set.
         */
        boolean hasEvent();

        /**
         * <code>.context.Event event = 1;</code>
         * @return The event.
         */
        context.ContextOuterClass.Event getEvent();

        /**
         * <code>.context.Event event = 1;</code>
         */
        context.ContextOuterClass.EventOrBuilder getEventOrBuilder();

        /**
         * <code>.context.TopologyId topology_id = 2;</code>
         * @return Whether the topologyId field is set.
         */
        boolean hasTopologyId();

        /**
         * <code>.context.TopologyId topology_id = 2;</code>
         * @return The topologyId.
         */
        context.ContextOuterClass.TopologyId getTopologyId();

        /**
         * <code>.context.TopologyId topology_id = 2;</code>
         */
        context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder();
    }

    /**
     * Protobuf type {@code context.TopologyEvent}
     */
    public static final class TopologyEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyEvent)
    TopologyEventOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use TopologyEvent.newBuilder() to construct.
        private TopologyEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private TopologyEvent() {
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new TopologyEvent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_TopologyEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyEvent.class, context.ContextOuterClass.TopologyEvent.Builder.class);
        }

        public static final int EVENT_FIELD_NUMBER = 1;

        private context.ContextOuterClass.Event event_;

        /**
         * <code>.context.Event event = 1;</code>
         * @return Whether the event field is set.
         */
        @java.lang.Override
        public boolean hasEvent() {
            return event_ != null;
        }

        /**
         * <code>.context.Event event = 1;</code>
         * @return The event.
         */
        @java.lang.Override
        public context.ContextOuterClass.Event getEvent() {
            return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
        }

        /**
         * <code>.context.Event event = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() {
            return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
        }

        public static final int TOPOLOGY_ID_FIELD_NUMBER = 2;

        private context.ContextOuterClass.TopologyId topologyId_;

        /**
         * <code>.context.TopologyId topology_id = 2;</code>
         * @return Whether the topologyId field is set.
         */
        @java.lang.Override
        public boolean hasTopologyId() {
            return topologyId_ != null;
        }

        /**
         * <code>.context.TopologyId topology_id = 2;</code>
         * @return The topologyId.
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyId getTopologyId() {
            return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
        }

        /**
         * <code>.context.TopologyId topology_id = 2;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() {
            return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (event_ != null) {
                output.writeMessage(1, getEvent());
            }
            if (topologyId_ != null) {
                output.writeMessage(2, getTopologyId());
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (event_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent());
            }
            if (topologyId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTopologyId());
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.TopologyEvent)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.TopologyEvent other = (context.ContextOuterClass.TopologyEvent) obj;
            if (hasEvent() != other.hasEvent())
                return false;
            if (hasEvent()) {
                if (!getEvent().equals(other.getEvent()))
                    return false;
            }
            if (hasTopologyId() != other.hasTopologyId())
                return false;
            if (hasTopologyId()) {
                if (!getTopologyId().equals(other.getTopologyId()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasEvent()) {
                hash = (37 * hash) + EVENT_FIELD_NUMBER;
                hash = (53 * hash) + getEvent().hashCode();
            }
            if (hasTopologyId()) {
                hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTopologyId().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.TopologyEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.TopologyEvent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code context.TopologyEvent}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TopologyEvent)
        context.ContextOuterClass.TopologyEventOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_TopologyEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyEvent.class, context.ContextOuterClass.TopologyEvent.Builder.class);
            }

            // Construct using context.ContextOuterClass.TopologyEvent.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                event_ = null;
                if (eventBuilder_ != null) {
                    eventBuilder_.dispose();
                topologyId_ = null;
                if (topologyIdBuilder_ != null) {
                    topologyIdBuilder_.dispose();
                    topologyIdBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyEvent getDefaultInstanceForType() {
                return context.ContextOuterClass.TopologyEvent.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyEvent build() {
                context.ContextOuterClass.TopologyEvent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.TopologyEvent buildPartial() {
                context.ContextOuterClass.TopologyEvent result = new context.ContextOuterClass.TopologyEvent(this);
            private void buildPartial0(context.ContextOuterClass.TopologyEvent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build();
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.TopologyEvent) {
                    return mergeFrom((context.ContextOuterClass.TopologyEvent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.TopologyEvent other) {
                if (other == context.ContextOuterClass.TopologyEvent.getDefaultInstance())
                    return this;
                if (other.hasEvent()) {
                    mergeEvent(other.getEvent());
                }
                if (other.hasTopologyId()) {
                    mergeTopologyId(other.getTopologyId());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            private context.ContextOuterClass.Event event_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_;

            /**
             * <code>.context.Event event = 1;</code>
             * @return Whether the event field is set.
             */
            public boolean hasEvent() {
            }

            /**
             * <code>.context.Event event = 1;</code>
             * @return The event.
             */
            public context.ContextOuterClass.Event getEvent() {
                if (eventBuilder_ == null) {
                    return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
                } else {
                    return eventBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public Builder setEvent(context.ContextOuterClass.Event value) {
                if (eventBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    event_ = value;
                } else {
                    eventBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) {
                if (eventBuilder_ == null) {
                    event_ = builderForValue.build();
                } else {
                    eventBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public Builder mergeEvent(context.ContextOuterClass.Event value) {
                if (eventBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) {
                        getEventBuilder().mergeFrom(value);
                return this;
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public Builder clearEvent() {
                bitField0_ = (bitField0_ & ~0x00000001);
                event_ = null;
                if (eventBuilder_ != null) {
                    eventBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public context.ContextOuterClass.Event.Builder getEventBuilder() {
                onChanged();
                return getEventFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() {
                if (eventBuilder_ != null) {
                    return eventBuilder_.getMessageOrBuilder();
                } else {
                    return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
                }
            }

            /**
             * <code>.context.Event event = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> getEventFieldBuilder() {
                if (eventBuilder_ == null) {
                    eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder>(getEvent(), getParentForChildren(), isClean());
                    event_ = null;
                }
                return eventBuilder_;
            }

            private context.ContextOuterClass.TopologyId topologyId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdBuilder_;

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             * @return Whether the topologyId field is set.
             */
            public boolean hasTopologyId() {
            }

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             * @return The topologyId.
             */
            public context.ContextOuterClass.TopologyId getTopologyId() {
                if (topologyIdBuilder_ == null) {
                    return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
                } else {
                    return topologyIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             */
            public Builder setTopologyId(context.ContextOuterClass.TopologyId value) {
                if (topologyIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    topologyId_ = value;
                } else {
                    topologyIdBuilder_.setMessage(value);
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             */
            public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) {
                if (topologyIdBuilder_ == null) {
                    topologyId_ = builderForValue.build();
                } else {
                    topologyIdBuilder_.setMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             */
            public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) {
                if (topologyIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) {
                        getTopologyIdBuilder().mergeFrom(value);
                    } else {
                        topologyId_ = value;
                    }
                } else {
                    topologyIdBuilder_.mergeFrom(value);
                }
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             */
            public Builder clearTopologyId() {
                bitField0_ = (bitField0_ & ~0x00000002);
                topologyId_ = null;
                if (topologyIdBuilder_ != null) {
                    topologyIdBuilder_.dispose();
                return this;
            }

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             */
            public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() {
                onChanged();
                return getTopologyIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             */
            public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() {
                if (topologyIdBuilder_ != null) {
                    return topologyIdBuilder_.getMessageOrBuilder();
                } else {
                    return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
                }
            }

            /**
             * <code>.context.TopologyId topology_id = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdFieldBuilder() {
                if (topologyIdBuilder_ == null) {
                    topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>(getTopologyId(), getParentForChildren(), isClean());
                    topologyId_ = null;
                }
                return topologyIdBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }
            // @@protoc_insertion_point(builder_scope:context.TopologyEvent)
        }

        // @@protoc_insertion_point(class_scope:context.TopologyEvent)
        private static final context.ContextOuterClass.TopologyEvent DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyEvent();
        }

        public static context.ContextOuterClass.TopologyEvent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<TopologyEvent> PARSER = new com.google.protobuf.AbstractParser<TopologyEvent>() {

            @java.lang.Override
            public TopologyEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<TopologyEvent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<TopologyEvent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public context.ContextOuterClass.TopologyEvent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface DeviceIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.DeviceId)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.Uuid device_uuid = 1;</code>
         * @return Whether the deviceUuid field is set.
         */
        boolean hasDeviceUuid();

        /**
         * <code>.context.Uuid device_uuid = 1;</code>
         * @return The deviceUuid.
         */
        context.ContextOuterClass.Uuid getDeviceUuid();

        /**
         * <code>.context.Uuid device_uuid = 1;</code>
         */
        context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder();
    }

    /**
     * <pre>
     * ----- Device --------------------------------------------------------------------------------------------------------
     * </pre>
     *
     * Protobuf type {@code context.DeviceId}
     */
    public static final class DeviceId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.DeviceId)
    DeviceIdOrBuilder {

        private static final long serialVersionUID = 0L;

        // Use DeviceId.newBuilder() to construct.
        private DeviceId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private DeviceId() {
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
            return new DeviceId();
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return context.ContextOuterClass.internal_static_context_DeviceId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return context.ContextOuterClass.internal_static_context_DeviceId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceId.class, context.ContextOuterClass.DeviceId.Builder.class);
        }

        public static final int DEVICE_UUID_FIELD_NUMBER = 1;

        private context.ContextOuterClass.Uuid deviceUuid_;

        /**
         * <code>.context.Uuid device_uuid = 1;</code>
         * @return Whether the deviceUuid field is set.
         */
        @java.lang.Override
        public boolean hasDeviceUuid() {
            return deviceUuid_ != null;
        }

        /**
         * <code>.context.Uuid device_uuid = 1;</code>
         * @return The deviceUuid.
         */
        @java.lang.Override
        public context.ContextOuterClass.Uuid getDeviceUuid() {
            return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_;
        }

        /**
         * <code>.context.Uuid device_uuid = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder() {
            return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;
            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
            if (deviceUuid_ != null) {
                output.writeMessage(1, getDeviceUuid());
            }
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (deviceUuid_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDeviceUuid());
            }
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof context.ContextOuterClass.DeviceId)) {
                return super.equals(obj);
            }
            context.ContextOuterClass.DeviceId other = (context.ContextOuterClass.DeviceId) obj;
            if (hasDeviceUuid() != other.hasDeviceUuid())
                return false;
            if (hasDeviceUuid()) {
                if (!getDeviceUuid().equals(other.getDeviceUuid()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasDeviceUuid()) {
                hash = (37 * hash) + DEVICE_UUID_FIELD_NUMBER;
                hash = (53 * hash) + getDeviceUuid().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static context.ContextOuterClass.DeviceId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.DeviceId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.DeviceId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static context.ContextOuterClass.DeviceId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(context.ContextOuterClass.DeviceId prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * <pre>
         * ----- Device --------------------------------------------------------------------------------------------------------
         * </pre>
         *
         * Protobuf type {@code context.DeviceId}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.DeviceId)
        context.ContextOuterClass.DeviceIdOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return context.ContextOuterClass.internal_static_context_DeviceId_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return context.ContextOuterClass.internal_static_context_DeviceId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceId.class, context.ContextOuterClass.DeviceId.Builder.class);
            }

            // Construct using context.ContextOuterClass.DeviceId.newBuilder()
            private Builder() {
            }

            private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                deviceUuid_ = null;
                if (deviceUuidBuilder_ != null) {
                    deviceUuidBuilder_.dispose();
                    deviceUuidBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return context.ContextOuterClass.internal_static_context_DeviceId_descriptor;
            }

            @java.lang.Override
            public context.ContextOuterClass.DeviceId getDefaultInstanceForType() {
                return context.ContextOuterClass.DeviceId.getDefaultInstance();
            }

            @java.lang.Override
            public context.ContextOuterClass.DeviceId build() {
                context.ContextOuterClass.DeviceId result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public context.ContextOuterClass.DeviceId buildPartial() {
                context.ContextOuterClass.DeviceId result = new context.ContextOuterClass.DeviceId(this);
            private void buildPartial0(context.ContextOuterClass.DeviceId result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.deviceUuid_ = deviceUuidBuilder_ == null ? deviceUuid_ : deviceUuidBuilder_.build();
                }
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof context.ContextOuterClass.DeviceId) {
                    return mergeFrom((context.ContextOuterClass.DeviceId) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(context.ContextOuterClass.DeviceId other) {
                if (other == context.ContextOuterClass.DeviceId.getDefaultInstance())
                    return this;
                if (other.hasDeviceUuid()) {
                    mergeDeviceUuid(other.getDeviceUuid());
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch(tag) {
                            case 0:
                                done = true;
                                break;
                            case 10:
                                {
                                    input.readMessage(getDeviceUuidFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            default:
                                {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        // was an endgroup tag
                                        done = true;
                                    }
                                    break;
                                }
                        }
                        // switch (tag)
                    }
                    // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
            private context.ContextOuterClass.Uuid deviceUuid_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> deviceUuidBuilder_;

            /**
             * <code>.context.Uuid device_uuid = 1;</code>
             * @return Whether the deviceUuid field is set.
             */
            public boolean hasDeviceUuid() {
            }

            /**
             * <code>.context.Uuid device_uuid = 1;</code>
             * @return The deviceUuid.
             */
            public context.ContextOuterClass.Uuid getDeviceUuid() {
                if (deviceUuidBuilder_ == null) {
                    return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_;
                } else {
                    return deviceUuidBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Uuid device_uuid = 1;</code>
             */
            public Builder setDeviceUuid(context.ContextOuterClass.Uuid value) {
                if (deviceUuidBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    deviceUuid_ = value;
                } else {
                    deviceUuidBuilder_.setMessage(value);
                }
Loading
Loading full blame...