// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.1
// 	protoc        v5.29.3
// source: implant/implantpb/implant.proto

package implantpb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type Empty struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Empty) Reset() {
	*x = Empty{}
	if protoimpl.UnsafeEnabled {
		mi := &file_implant_implantpb_implant_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Empty) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Empty) ProtoMessage() {}

func (x *Empty) ProtoReflect() protoreflect.Message {
	mi := &file_implant_implantpb_implant_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
	return file_implant_implantpb_implant_proto_rawDescGZIP(), []int{0}
}

type Status struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TaskId uint32 `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	Status int32  `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` // unexcept error
	Error  string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`    //std err
}

func (x *Status) Reset() {
	*x = Status{}
	if protoimpl.UnsafeEnabled {
		mi := &file_implant_implantpb_implant_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Status) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Status) ProtoMessage() {}

func (x *Status) ProtoReflect() protoreflect.Message {
	mi := &file_implant_implantpb_implant_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Status.ProtoReflect.Descriptor instead.
func (*Status) Descriptor() ([]byte, []int) {
	return file_implant_implantpb_implant_proto_rawDescGZIP(), []int{1}
}

func (x *Status) GetTaskId() uint32 {
	if x != nil {
		return x.TaskId
	}
	return 0
}

func (x *Status) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *Status) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

// implant call and back data
type Spite struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name    string  `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	TaskId  uint32  `protobuf:"varint,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	Async   bool    `protobuf:"varint,3,opt,name=async,proto3" json:"async,omitempty"`
	Timeout uint64  `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
	Error   uint32  `protobuf:"varint,5,opt,name=error,proto3" json:"error,omitempty"`
	Status  *Status `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"`
	// Types that are assignable to Body:
	//
	//	*Spite_Empty
	//	*Spite_Block
	//	*Spite_Ack
	//	*Spite_Task
	//	*Spite_SleepRequest
	//	*Spite_Init
	//	*Spite_Switch
	//	*Spite_TaskInfo
	//	*Spite_TaskList
	//	*Spite_Sysinfo
	//	*Spite_Register
	//	*Spite_Ping
	//	*Spite_Suicide
	//	*Spite_Request
	//	*Spite_Response
	//	*Spite_ExecuteBinary
	//	*Spite_BinaryResponse
	//	*Spite_LoadModule
	//	*Spite_Modules
	//	*Spite_LoadAddon
	//	*Spite_Addons
	//	*Spite_ExecuteAddon
	//	*Spite_WmiRequest
	//	*Spite_WmiMethodRequest
	//	*Spite_LsResponse
	//	*Spite_ChownRequest
	//	*Spite_ExecRequest
	//	*Spite_ExecResponse
	//	*Spite_UploadRequest
	//	*Spite_DownloadRequest
	//	*Spite_DownloadResponse
	//	*Spite_NetstatResponse
	//	*Spite_PsResponse
	//	*Spite_BypassRequest
	//	*Spite_ExecuteCommand
	//	*Spite_IfconfigResponse
	//	*Spite_CurlRequest
	//	*Spite_KeyExchangeRequest
	//	*Spite_KeyExchangeResponse
	//	*Spite_RegistryRequest
	//	*Spite_RegistryWriteRequest
	//	*Spite_ScheduleRequest
	//	*Spite_SchedulesResponse
	//	*Spite_ScheduleResponse
	//	*Spite_ServiceRequest
	//	*Spite_ServicesResponse
	//	*Spite_ServiceResponse
	//	*Spite_RunasRequest
	//	*Spite_Getsystem
	//	*Spite_Inject
	//	*Spite_PipeRequest
	//	*Spite_EnumDriversResponse
	//	*Spite_FfmpegRequest
	//	*Spite_PtyRequest
	//	*Spite_PtyResponse
	Body isSpite_Body `protobuf_oneof:"body"`
}

func (x *Spite) Reset() {
	*x = Spite{}
	if protoimpl.UnsafeEnabled {
		mi := &file_implant_implantpb_implant_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Spite) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Spite) ProtoMessage() {}

func (x *Spite) ProtoReflect() protoreflect.Message {
	mi := &file_implant_implantpb_implant_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Spite.ProtoReflect.Descriptor instead.
func (*Spite) Descriptor() ([]byte, []int) {
	return file_implant_implantpb_implant_proto_rawDescGZIP(), []int{2}
}

func (x *Spite) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Spite) GetTaskId() uint32 {
	if x != nil {
		return x.TaskId
	}
	return 0
}

func (x *Spite) GetAsync() bool {
	if x != nil {
		return x.Async
	}
	return false
}

func (x *Spite) GetTimeout() uint64 {
	if x != nil {
		return x.Timeout
	}
	return 0
}

func (x *Spite) GetError() uint32 {
	if x != nil {
		return x.Error
	}
	return 0
}

func (x *Spite) GetStatus() *Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (m *Spite) GetBody() isSpite_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (x *Spite) GetEmpty() *Empty {
	if x, ok := x.GetBody().(*Spite_Empty); ok {
		return x.Empty
	}
	return nil
}

func (x *Spite) GetBlock() *Block {
	if x, ok := x.GetBody().(*Spite_Block); ok {
		return x.Block
	}
	return nil
}

func (x *Spite) GetAck() *ACK {
	if x, ok := x.GetBody().(*Spite_Ack); ok {
		return x.Ack
	}
	return nil
}

func (x *Spite) GetTask() *TaskCtrl {
	if x, ok := x.GetBody().(*Spite_Task); ok {
		return x.Task
	}
	return nil
}

func (x *Spite) GetSleepRequest() *Timer {
	if x, ok := x.GetBody().(*Spite_SleepRequest); ok {
		return x.SleepRequest
	}
	return nil
}

func (x *Spite) GetInit() *Init {
	if x, ok := x.GetBody().(*Spite_Init); ok {
		return x.Init
	}
	return nil
}

func (x *Spite) GetSwitch() *Switch {
	if x, ok := x.GetBody().(*Spite_Switch); ok {
		return x.Switch
	}
	return nil
}

func (x *Spite) GetTaskInfo() *TaskInfo {
	if x, ok := x.GetBody().(*Spite_TaskInfo); ok {
		return x.TaskInfo
	}
	return nil
}

func (x *Spite) GetTaskList() *TaskListResponse {
	if x, ok := x.GetBody().(*Spite_TaskList); ok {
		return x.TaskList
	}
	return nil
}

func (x *Spite) GetSysinfo() *SysInfo {
	if x, ok := x.GetBody().(*Spite_Sysinfo); ok {
		return x.Sysinfo
	}
	return nil
}

func (x *Spite) GetRegister() *Register {
	if x, ok := x.GetBody().(*Spite_Register); ok {
		return x.Register
	}
	return nil
}

func (x *Spite) GetPing() *Ping {
	if x, ok := x.GetBody().(*Spite_Ping); ok {
		return x.Ping
	}
	return nil
}

func (x *Spite) GetSuicide() *Suicide {
	if x, ok := x.GetBody().(*Spite_Suicide); ok {
		return x.Suicide
	}
	return nil
}

func (x *Spite) GetRequest() *Request {
	if x, ok := x.GetBody().(*Spite_Request); ok {
		return x.Request
	}
	return nil
}

func (x *Spite) GetResponse() *Response {
	if x, ok := x.GetBody().(*Spite_Response); ok {
		return x.Response
	}
	return nil
}

func (x *Spite) GetExecuteBinary() *ExecuteBinary {
	if x, ok := x.GetBody().(*Spite_ExecuteBinary); ok {
		return x.ExecuteBinary
	}
	return nil
}

func (x *Spite) GetBinaryResponse() *BinaryResponse {
	if x, ok := x.GetBody().(*Spite_BinaryResponse); ok {
		return x.BinaryResponse
	}
	return nil
}

func (x *Spite) GetLoadModule() *LoadModule {
	if x, ok := x.GetBody().(*Spite_LoadModule); ok {
		return x.LoadModule
	}
	return nil
}

func (x *Spite) GetModules() *Modules {
	if x, ok := x.GetBody().(*Spite_Modules); ok {
		return x.Modules
	}
	return nil
}

func (x *Spite) GetLoadAddon() *LoadAddon {
	if x, ok := x.GetBody().(*Spite_LoadAddon); ok {
		return x.LoadAddon
	}
	return nil
}

func (x *Spite) GetAddons() *Addons {
	if x, ok := x.GetBody().(*Spite_Addons); ok {
		return x.Addons
	}
	return nil
}

func (x *Spite) GetExecuteAddon() *ExecuteAddon {
	if x, ok := x.GetBody().(*Spite_ExecuteAddon); ok {
		return x.ExecuteAddon
	}
	return nil
}

func (x *Spite) GetWmiRequest() *WmiQueryRequest {
	if x, ok := x.GetBody().(*Spite_WmiRequest); ok {
		return x.WmiRequest
	}
	return nil
}

func (x *Spite) GetWmiMethodRequest() *WmiMethodRequest {
	if x, ok := x.GetBody().(*Spite_WmiMethodRequest); ok {
		return x.WmiMethodRequest
	}
	return nil
}

func (x *Spite) GetLsResponse() *LsResponse {
	if x, ok := x.GetBody().(*Spite_LsResponse); ok {
		return x.LsResponse
	}
	return nil
}

func (x *Spite) GetChownRequest() *ChownRequest {
	if x, ok := x.GetBody().(*Spite_ChownRequest); ok {
		return x.ChownRequest
	}
	return nil
}

func (x *Spite) GetExecRequest() *ExecRequest {
	if x, ok := x.GetBody().(*Spite_ExecRequest); ok {
		return x.ExecRequest
	}
	return nil
}

func (x *Spite) GetExecResponse() *ExecResponse {
	if x, ok := x.GetBody().(*Spite_ExecResponse); ok {
		return x.ExecResponse
	}
	return nil
}

func (x *Spite) GetUploadRequest() *UploadRequest {
	if x, ok := x.GetBody().(*Spite_UploadRequest); ok {
		return x.UploadRequest
	}
	return nil
}

func (x *Spite) GetDownloadRequest() *DownloadRequest {
	if x, ok := x.GetBody().(*Spite_DownloadRequest); ok {
		return x.DownloadRequest
	}
	return nil
}

func (x *Spite) GetDownloadResponse() *DownloadResponse {
	if x, ok := x.GetBody().(*Spite_DownloadResponse); ok {
		return x.DownloadResponse
	}
	return nil
}

func (x *Spite) GetNetstatResponse() *NetstatResponse {
	if x, ok := x.GetBody().(*Spite_NetstatResponse); ok {
		return x.NetstatResponse
	}
	return nil
}

func (x *Spite) GetPsResponse() *PsResponse {
	if x, ok := x.GetBody().(*Spite_PsResponse); ok {
		return x.PsResponse
	}
	return nil
}

func (x *Spite) GetBypassRequest() *BypassRequest {
	if x, ok := x.GetBody().(*Spite_BypassRequest); ok {
		return x.BypassRequest
	}
	return nil
}

func (x *Spite) GetExecuteCommand() *ExecuteCommand {
	if x, ok := x.GetBody().(*Spite_ExecuteCommand); ok {
		return x.ExecuteCommand
	}
	return nil
}

func (x *Spite) GetIfconfigResponse() *IfconfigResponse {
	if x, ok := x.GetBody().(*Spite_IfconfigResponse); ok {
		return x.IfconfigResponse
	}
	return nil
}

func (x *Spite) GetCurlRequest() *CurlRequest {
	if x, ok := x.GetBody().(*Spite_CurlRequest); ok {
		return x.CurlRequest
	}
	return nil
}

func (x *Spite) GetKeyExchangeRequest() *KeyExchangeRequest {
	if x, ok := x.GetBody().(*Spite_KeyExchangeRequest); ok {
		return x.KeyExchangeRequest
	}
	return nil
}

func (x *Spite) GetKeyExchangeResponse() *KeyExchangeResponse {
	if x, ok := x.GetBody().(*Spite_KeyExchangeResponse); ok {
		return x.KeyExchangeResponse
	}
	return nil
}

func (x *Spite) GetRegistryRequest() *Registry {
	if x, ok := x.GetBody().(*Spite_RegistryRequest); ok {
		return x.RegistryRequest
	}
	return nil
}

func (x *Spite) GetRegistryWriteRequest() *RegistryWriteRequest {
	if x, ok := x.GetBody().(*Spite_RegistryWriteRequest); ok {
		return x.RegistryWriteRequest
	}
	return nil
}

func (x *Spite) GetScheduleRequest() *TaskSchedule {
	if x, ok := x.GetBody().(*Spite_ScheduleRequest); ok {
		return x.ScheduleRequest
	}
	return nil
}

func (x *Spite) GetSchedulesResponse() *TaskSchedulesResponse {
	if x, ok := x.GetBody().(*Spite_SchedulesResponse); ok {
		return x.SchedulesResponse
	}
	return nil
}

func (x *Spite) GetScheduleResponse() *TaskSchedule {
	if x, ok := x.GetBody().(*Spite_ScheduleResponse); ok {
		return x.ScheduleResponse
	}
	return nil
}

func (x *Spite) GetServiceRequest() *ServiceConfig {
	if x, ok := x.GetBody().(*Spite_ServiceRequest); ok {
		return x.ServiceRequest
	}
	return nil
}

func (x *Spite) GetServicesResponse() *ServicesResponse {
	if x, ok := x.GetBody().(*Spite_ServicesResponse); ok {
		return x.ServicesResponse
	}
	return nil
}

func (x *Spite) GetServiceResponse() *Service {
	if x, ok := x.GetBody().(*Spite_ServiceResponse); ok {
		return x.ServiceResponse
	}
	return nil
}

func (x *Spite) GetRunasRequest() *RunAsRequest {
	if x, ok := x.GetBody().(*Spite_RunasRequest); ok {
		return x.RunasRequest
	}
	return nil
}

func (x *Spite) GetGetsystem() *GetSystem {
	if x, ok := x.GetBody().(*Spite_Getsystem); ok {
		return x.Getsystem
	}
	return nil
}

func (x *Spite) GetInject() *Inject {
	if x, ok := x.GetBody().(*Spite_Inject); ok {
		return x.Inject
	}
	return nil
}

func (x *Spite) GetPipeRequest() *Pipe {
	if x, ok := x.GetBody().(*Spite_PipeRequest); ok {
		return x.PipeRequest
	}
	return nil
}

func (x *Spite) GetEnumDriversResponse() *EnumDriversResponse {
	if x, ok := x.GetBody().(*Spite_EnumDriversResponse); ok {
		return x.EnumDriversResponse
	}
	return nil
}

func (x *Spite) GetFfmpegRequest() *FFmpegRequest {
	if x, ok := x.GetBody().(*Spite_FfmpegRequest); ok {
		return x.FfmpegRequest
	}
	return nil
}

func (x *Spite) GetPtyRequest() *PtyRequest {
	if x, ok := x.GetBody().(*Spite_PtyRequest); ok {
		return x.PtyRequest
	}
	return nil
}

func (x *Spite) GetPtyResponse() *PtyResponse {
	if x, ok := x.GetBody().(*Spite_PtyResponse); ok {
		return x.PtyResponse
	}
	return nil
}

type isSpite_Body interface {
	isSpite_Body()
}

type Spite_Empty struct {
	Empty *Empty `protobuf:"bytes,10,opt,name=empty,proto3,oneof"`
}

type Spite_Block struct {
	Block *Block `protobuf:"bytes,11,opt,name=block,proto3,oneof"`
}

type Spite_Ack struct {
	Ack *ACK `protobuf:"bytes,13,opt,name=ack,proto3,oneof"`
}

type Spite_Task struct {
	Task *TaskCtrl `protobuf:"bytes,14,opt,name=task,proto3,oneof"`
}

type Spite_SleepRequest struct {
	SleepRequest *Timer `protobuf:"bytes,15,opt,name=sleep_request,json=sleepRequest,proto3,oneof"`
}

type Spite_Init struct {
	Init *Init `protobuf:"bytes,16,opt,name=init,proto3,oneof"`
}

type Spite_Switch struct {
	Switch *Switch `protobuf:"bytes,17,opt,name=switch,proto3,oneof"`
}

type Spite_TaskInfo struct {
	TaskInfo *TaskInfo `protobuf:"bytes,18,opt,name=task_info,json=taskInfo,proto3,oneof"`
}

type Spite_TaskList struct {
	TaskList *TaskListResponse `protobuf:"bytes,19,opt,name=task_list,json=taskList,proto3,oneof"`
}

type Spite_Sysinfo struct {
	Sysinfo *SysInfo `protobuf:"bytes,20,opt,name=sysinfo,proto3,oneof"`
}

type Spite_Register struct {
	Register *Register `protobuf:"bytes,21,opt,name=register,proto3,oneof"`
}

type Spite_Ping struct {
	Ping *Ping `protobuf:"bytes,22,opt,name=ping,proto3,oneof"`
}

type Spite_Suicide struct {
	Suicide *Suicide `protobuf:"bytes,23,opt,name=suicide,proto3,oneof"`
}

type Spite_Request struct {
	Request *Request `protobuf:"bytes,24,opt,name=request,proto3,oneof"`
}

type Spite_Response struct {
	Response *Response `protobuf:"bytes,25,opt,name=response,proto3,oneof"`
}

type Spite_ExecuteBinary struct {
	ExecuteBinary *ExecuteBinary `protobuf:"bytes,26,opt,name=execute_binary,json=executeBinary,proto3,oneof"`
}

type Spite_BinaryResponse struct {
	BinaryResponse *BinaryResponse `protobuf:"bytes,27,opt,name=binary_response,json=binaryResponse,proto3,oneof"`
}

type Spite_LoadModule struct {
	LoadModule *LoadModule `protobuf:"bytes,31,opt,name=load_module,json=loadModule,proto3,oneof"`
}

type Spite_Modules struct {
	Modules *Modules `protobuf:"bytes,32,opt,name=modules,proto3,oneof"`
}

type Spite_LoadAddon struct {
	LoadAddon *LoadAddon `protobuf:"bytes,35,opt,name=load_addon,json=loadAddon,proto3,oneof"`
}

type Spite_Addons struct {
	Addons *Addons `protobuf:"bytes,36,opt,name=addons,proto3,oneof"`
}

type Spite_ExecuteAddon struct {
	ExecuteAddon *ExecuteAddon `protobuf:"bytes,37,opt,name=execute_addon,json=executeAddon,proto3,oneof"`
}

type Spite_WmiRequest struct {
	WmiRequest *WmiQueryRequest `protobuf:"bytes,38,opt,name=wmi_request,json=wmiRequest,proto3,oneof"`
}

type Spite_WmiMethodRequest struct {
	WmiMethodRequest *WmiMethodRequest `protobuf:"bytes,39,opt,name=wmi_method_request,json=wmiMethodRequest,proto3,oneof"`
}

type Spite_LsResponse struct {
	LsResponse *LsResponse `protobuf:"bytes,101,opt,name=ls_response,json=lsResponse,proto3,oneof"`
}

type Spite_ChownRequest struct {
	ChownRequest *ChownRequest `protobuf:"bytes,102,opt,name=chown_request,json=chownRequest,proto3,oneof"`
}

type Spite_ExecRequest struct {
	ExecRequest *ExecRequest `protobuf:"bytes,104,opt,name=exec_request,json=execRequest,proto3,oneof"`
}

type Spite_ExecResponse struct {
	ExecResponse *ExecResponse `protobuf:"bytes,105,opt,name=exec_response,json=execResponse,proto3,oneof"`
}

type Spite_UploadRequest struct {
	UploadRequest *UploadRequest `protobuf:"bytes,106,opt,name=upload_request,json=uploadRequest,proto3,oneof"`
}

type Spite_DownloadRequest struct {
	DownloadRequest *DownloadRequest `protobuf:"bytes,107,opt,name=download_request,json=downloadRequest,proto3,oneof"`
}

type Spite_DownloadResponse struct {
	DownloadResponse *DownloadResponse `protobuf:"bytes,108,opt,name=download_response,json=downloadResponse,proto3,oneof"`
}

type Spite_NetstatResponse struct {
	NetstatResponse *NetstatResponse `protobuf:"bytes,109,opt,name=netstat_response,json=netstatResponse,proto3,oneof"`
}

type Spite_PsResponse struct {
	PsResponse *PsResponse `protobuf:"bytes,110,opt,name=ps_response,json=psResponse,proto3,oneof"`
}

type Spite_BypassRequest struct {
	BypassRequest *BypassRequest `protobuf:"bytes,111,opt,name=bypass_request,json=bypassRequest,proto3,oneof"`
}

type Spite_ExecuteCommand struct {
	ExecuteCommand *ExecuteCommand `protobuf:"bytes,112,opt,name=execute_command,json=executeCommand,proto3,oneof"`
}

type Spite_IfconfigResponse struct {
	IfconfigResponse *IfconfigResponse `protobuf:"bytes,118,opt,name=ifconfig_response,json=ifconfigResponse,proto3,oneof"`
}

type Spite_CurlRequest struct {
	CurlRequest *CurlRequest `protobuf:"bytes,119,opt,name=curl_request,json=curlRequest,proto3,oneof"`
}

type Spite_KeyExchangeRequest struct {
	KeyExchangeRequest *KeyExchangeRequest `protobuf:"bytes,120,opt,name=key_exchange_request,json=keyExchangeRequest,proto3,oneof"`
}

type Spite_KeyExchangeResponse struct {
	KeyExchangeResponse *KeyExchangeResponse `protobuf:"bytes,121,opt,name=key_exchange_response,json=keyExchangeResponse,proto3,oneof"`
}

type Spite_RegistryRequest struct {
	RegistryRequest *Registry `protobuf:"bytes,122,opt,name=registry_request,json=registryRequest,proto3,oneof"`
}

type Spite_RegistryWriteRequest struct {
	RegistryWriteRequest *RegistryWriteRequest `protobuf:"bytes,123,opt,name=registry_write_request,json=registryWriteRequest,proto3,oneof"`
}

type Spite_ScheduleRequest struct {
	ScheduleRequest *TaskSchedule `protobuf:"bytes,124,opt,name=schedule_request,json=scheduleRequest,proto3,oneof"`
}

type Spite_SchedulesResponse struct {
	SchedulesResponse *TaskSchedulesResponse `protobuf:"bytes,125,opt,name=schedules_response,json=schedulesResponse,proto3,oneof"`
}

type Spite_ScheduleResponse struct {
	ScheduleResponse *TaskSchedule `protobuf:"bytes,126,opt,name=schedule_response,json=scheduleResponse,proto3,oneof"`
}

type Spite_ServiceRequest struct {
	ServiceRequest *ServiceConfig `protobuf:"bytes,127,opt,name=service_request,json=serviceRequest,proto3,oneof"`
}

type Spite_ServicesResponse struct {
	ServicesResponse *ServicesResponse `protobuf:"bytes,128,opt,name=services_response,json=servicesResponse,proto3,oneof"`
}

type Spite_ServiceResponse struct {
	ServiceResponse *Service `protobuf:"bytes,129,opt,name=service_response,json=serviceResponse,proto3,oneof"`
}

type Spite_RunasRequest struct {
	RunasRequest *RunAsRequest `protobuf:"bytes,130,opt,name=runas_request,json=runasRequest,proto3,oneof"`
}

type Spite_Getsystem struct {
	Getsystem *GetSystem `protobuf:"bytes,131,opt,name=getsystem,proto3,oneof"`
}

type Spite_Inject struct {
	Inject *Inject `protobuf:"bytes,132,opt,name=inject,proto3,oneof"`
}

type Spite_PipeRequest struct {
	PipeRequest *Pipe `protobuf:"bytes,140,opt,name=pipe_request,json=pipeRequest,proto3,oneof"`
}

type Spite_EnumDriversResponse struct {
	EnumDriversResponse *EnumDriversResponse `protobuf:"bytes,141,opt,name=enum_drivers_response,json=enumDriversResponse,proto3,oneof"`
}

type Spite_FfmpegRequest struct {
	FfmpegRequest *FFmpegRequest `protobuf:"bytes,150,opt,name=ffmpeg_request,json=ffmpegRequest,proto3,oneof"`
}

type Spite_PtyRequest struct {
	PtyRequest *PtyRequest `protobuf:"bytes,151,opt,name=pty_request,json=ptyRequest,proto3,oneof"`
}

type Spite_PtyResponse struct {
	PtyResponse *PtyResponse `protobuf:"bytes,152,opt,name=pty_response,json=ptyResponse,proto3,oneof"`
}

func (*Spite_Empty) isSpite_Body() {}

func (*Spite_Block) isSpite_Body() {}

func (*Spite_Ack) isSpite_Body() {}

func (*Spite_Task) isSpite_Body() {}

func (*Spite_SleepRequest) isSpite_Body() {}

func (*Spite_Init) isSpite_Body() {}

func (*Spite_Switch) isSpite_Body() {}

func (*Spite_TaskInfo) isSpite_Body() {}

func (*Spite_TaskList) isSpite_Body() {}

func (*Spite_Sysinfo) isSpite_Body() {}

func (*Spite_Register) isSpite_Body() {}

func (*Spite_Ping) isSpite_Body() {}

func (*Spite_Suicide) isSpite_Body() {}

func (*Spite_Request) isSpite_Body() {}

func (*Spite_Response) isSpite_Body() {}

func (*Spite_ExecuteBinary) isSpite_Body() {}

func (*Spite_BinaryResponse) isSpite_Body() {}

func (*Spite_LoadModule) isSpite_Body() {}

func (*Spite_Modules) isSpite_Body() {}

func (*Spite_LoadAddon) isSpite_Body() {}

func (*Spite_Addons) isSpite_Body() {}

func (*Spite_ExecuteAddon) isSpite_Body() {}

func (*Spite_WmiRequest) isSpite_Body() {}

func (*Spite_WmiMethodRequest) isSpite_Body() {}

func (*Spite_LsResponse) isSpite_Body() {}

func (*Spite_ChownRequest) isSpite_Body() {}

func (*Spite_ExecRequest) isSpite_Body() {}

func (*Spite_ExecResponse) isSpite_Body() {}

func (*Spite_UploadRequest) isSpite_Body() {}

func (*Spite_DownloadRequest) isSpite_Body() {}

func (*Spite_DownloadResponse) isSpite_Body() {}

func (*Spite_NetstatResponse) isSpite_Body() {}

func (*Spite_PsResponse) isSpite_Body() {}

func (*Spite_BypassRequest) isSpite_Body() {}

func (*Spite_ExecuteCommand) isSpite_Body() {}

func (*Spite_IfconfigResponse) isSpite_Body() {}

func (*Spite_CurlRequest) isSpite_Body() {}

func (*Spite_KeyExchangeRequest) isSpite_Body() {}

func (*Spite_KeyExchangeResponse) isSpite_Body() {}

func (*Spite_RegistryRequest) isSpite_Body() {}

func (*Spite_RegistryWriteRequest) isSpite_Body() {}

func (*Spite_ScheduleRequest) isSpite_Body() {}

func (*Spite_SchedulesResponse) isSpite_Body() {}

func (*Spite_ScheduleResponse) isSpite_Body() {}

func (*Spite_ServiceRequest) isSpite_Body() {}

func (*Spite_ServicesResponse) isSpite_Body() {}

func (*Spite_ServiceResponse) isSpite_Body() {}

func (*Spite_RunasRequest) isSpite_Body() {}

func (*Spite_Getsystem) isSpite_Body() {}

func (*Spite_Inject) isSpite_Body() {}

func (*Spite_PipeRequest) isSpite_Body() {}

func (*Spite_EnumDriversResponse) isSpite_Body() {}

func (*Spite_FfmpegRequest) isSpite_Body() {}

func (*Spite_PtyRequest) isSpite_Body() {}

func (*Spite_PtyResponse) isSpite_Body() {}

type Spites struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Spites []*Spite `protobuf:"bytes,1,rep,name=spites,proto3" json:"spites,omitempty"`
}

func (x *Spites) Reset() {
	*x = Spites{}
	if protoimpl.UnsafeEnabled {
		mi := &file_implant_implantpb_implant_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Spites) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Spites) ProtoMessage() {}

func (x *Spites) ProtoReflect() protoreflect.Message {
	mi := &file_implant_implantpb_implant_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Spites.ProtoReflect.Descriptor instead.
func (*Spites) Descriptor() ([]byte, []int) {
	return file_implant_implantpb_implant_proto_rawDescGZIP(), []int{3}
}

func (x *Spites) GetSpites() []*Spite {
	if x != nil {
		return x.Spites
	}
	return nil
}

var File_implant_implantpb_implant_proto protoreflect.FileDescriptor

var file_implant_implantpb_implant_proto_rawDesc = []byte{
	0x0a, 0x1f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x2f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e,
	0x74, 0x70, 0x62, 0x2f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x12, 0x09, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x1a, 0x1e, 0x69, 0x6d,
	0x70, 0x6c, 0x61, 0x6e, 0x74, 0x2f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x2f,
	0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x07, 0x0a, 0x05,
	0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xa5, 0x1b, 0x0a, 0x05, 0x53, 0x70, 0x69, 0x74, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x14, 0x0a,
	0x05, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x73,
	0x79, 0x6e, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28,
	0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48,
	0x00, 0x52, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63,
	0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63,
	0x6b, 0x12, 0x21, 0x0a, 0x03, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,
	0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x41, 0x43, 0x4b, 0x48, 0x00, 0x52,
	0x03, 0x61, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x0e, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x54, 0x61,
	0x73, 0x6b, 0x43, 0x74, 0x72, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x36,
	0x0a, 0x0d, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x10,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e,
	0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x2a, 0x0a, 0x06,
	0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x00,
	0x52, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b,
	0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f,
	0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x48,
	0x00, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x09, 0x74,
	0x61, 0x73, 0x6b, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x74, 0x61,
	0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x69, 0x6e, 0x66,
	0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x70, 0x62, 0x2e, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x07, 0x73, 0x79,
	0x73, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x72,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18,
	0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x2d, 0x0a,
	0x07, 0x73, 0x75, 0x69, 0x63, 0x69, 0x64, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x69, 0x63, 0x69, 0x64,
	0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x69, 0x63, 0x69, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x07,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x72,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a,
	0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18,
	0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00,
	0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12,
	0x43, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
	0x65, 0x70, 0x62, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x6f, 0x64,
	0x75, 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x6f, 0x64, 0x75,
	0x6c, 0x65, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x48,
	0x00, 0x52, 0x0a, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2d, 0x0a,
	0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x73, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x0a,
	0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x61, 0x64,
	0x41, 0x64, 0x64, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x64, 0x64,
	0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x18, 0x24, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x41, 0x64,
	0x64, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x12, 0x3d,
	0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x18,
	0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x6f, 0x6e, 0x48, 0x00, 0x52,
	0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x6f, 0x6e, 0x12, 0x3c, 0x0a,
	0x0b, 0x77, 0x6d, 0x69, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x26, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x57, 0x6d,
	0x69, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x0a, 0x77, 0x6d, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x77,
	0x6d, 0x69, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x70, 0x62, 0x2e, 0x57, 0x6d, 0x69, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x77, 0x6d, 0x69, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0b, 0x6c, 0x73, 0x5f, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x3d, 0x0a, 0x0d, 0x63, 0x68, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x70, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x00, 0x52, 0x0c, 0x63, 0x68, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x3a, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b,
	0x65, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0d, 0x65,
	0x78, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x69, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x45, 0x78,
	0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x78,
	0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x75, 0x70,
	0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x6a, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x55, 0x70,
	0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x75,
	0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x10,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70,
	0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
	0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
	0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, 0x64,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x46, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x6f, 0x64, 0x75,
	0x6c, 0x65, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x73, 0x74, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x73, 0x74, 0x61, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x70, 0x73, 0x5f, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x50, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x40, 0x0a, 0x0e, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
	0x65, 0x70, 0x62, 0x2e, 0x42, 0x79, 0x70, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x43, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x6f,
	0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x43, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65,
	0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x49, 0x0a, 0x11, 0x69, 0x66, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x76, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x49, 0x66,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00,
	0x52, 0x10, 0x69, 0x66, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
	0x65, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x00, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50,
	0x0a, 0x14, 0x6b, 0x65, 0x79, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x4b, 0x65, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x6b, 0x65,
	0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x53, 0x0a, 0x15, 0x6b, 0x65, 0x79, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x4b, 0x65, 0x79, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00,
	0x52, 0x13, 0x6b, 0x65, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
	0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x16, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x72, 0x79, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70,
	0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43,
	0x0a, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
	0x65, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x48, 0x00, 0x52, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73,
	0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x48, 0x00, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b,
	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65,
	0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0f,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00,
	0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x4a, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a,
	0x0d, 0x72, 0x75, 0x6e, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x82,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x0c, 0x72, 0x75, 0x6e, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a,
	0x09, 0x67, 0x65, 0x74, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74,
	0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x73, 0x79, 0x73,
	0x74, 0x65, 0x6d, 0x12, 0x2b, 0x0a, 0x06, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x84, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e,
	0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
	0x12, 0x34, 0x0a, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x70, 0x62, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x15, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x64,
	0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,
	0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70,
	0x62, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x13, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x72, 0x69,
	0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e,
	0x66, 0x66, 0x6d, 0x70, 0x65, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x96,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x46, 0x46, 0x6d, 0x70, 0x65, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
	0x52, 0x0d, 0x66, 0x66, 0x6d, 0x70, 0x65, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x38, 0x0a, 0x0b, 0x70, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x97,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62,
	0x2e, 0x50, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x70,
	0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x70, 0x74, 0x79,
	0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x98, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x15, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x50, 0x74, 0x79, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x74, 0x79, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x32,
	0x0a, 0x06, 0x53, 0x70, 0x69, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x70, 0x69, 0x74,
	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x61,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x69, 0x74, 0x65, 0x52, 0x06, 0x73, 0x70, 0x69, 0x74,
	0x65, 0x73, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x6d,
	0x61, 0x6c, 0x69, 0x63, 0x65, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x68, 0x65,
	0x6c, 0x70, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6d, 0x70, 0x6c, 0x61,
	0x6e, 0x74, 0x2f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_implant_implantpb_implant_proto_rawDescOnce sync.Once
	file_implant_implantpb_implant_proto_rawDescData = file_implant_implantpb_implant_proto_rawDesc
)

func file_implant_implantpb_implant_proto_rawDescGZIP() []byte {
	file_implant_implantpb_implant_proto_rawDescOnce.Do(func() {
		file_implant_implantpb_implant_proto_rawDescData = protoimpl.X.CompressGZIP(file_implant_implantpb_implant_proto_rawDescData)
	})
	return file_implant_implantpb_implant_proto_rawDescData
}

var file_implant_implantpb_implant_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_implant_implantpb_implant_proto_goTypes = []interface{}{
	(*Empty)(nil),                 // 0: implantpb.Empty
	(*Status)(nil),                // 1: implantpb.Status
	(*Spite)(nil),                 // 2: implantpb.Spite
	(*Spites)(nil),                // 3: implantpb.Spites
	(*Block)(nil),                 // 4: modulepb.Block
	(*ACK)(nil),                   // 5: modulepb.ACK
	(*TaskCtrl)(nil),              // 6: modulepb.TaskCtrl
	(*Timer)(nil),                 // 7: modulepb.Timer
	(*Init)(nil),                  // 8: modulepb.Init
	(*Switch)(nil),                // 9: modulepb.Switch
	(*TaskInfo)(nil),              // 10: modulepb.TaskInfo
	(*TaskListResponse)(nil),      // 11: modulepb.TaskListResponse
	(*SysInfo)(nil),               // 12: modulepb.SysInfo
	(*Register)(nil),              // 13: modulepb.Register
	(*Ping)(nil),                  // 14: modulepb.Ping
	(*Suicide)(nil),               // 15: modulepb.Suicide
	(*Request)(nil),               // 16: modulepb.Request
	(*Response)(nil),              // 17: modulepb.Response
	(*ExecuteBinary)(nil),         // 18: modulepb.ExecuteBinary
	(*BinaryResponse)(nil),        // 19: modulepb.BinaryResponse
	(*LoadModule)(nil),            // 20: modulepb.LoadModule
	(*Modules)(nil),               // 21: modulepb.Modules
	(*LoadAddon)(nil),             // 22: modulepb.LoadAddon
	(*Addons)(nil),                // 23: modulepb.Addons
	(*ExecuteAddon)(nil),          // 24: modulepb.ExecuteAddon
	(*WmiQueryRequest)(nil),       // 25: modulepb.WmiQueryRequest
	(*WmiMethodRequest)(nil),      // 26: modulepb.WmiMethodRequest
	(*LsResponse)(nil),            // 27: modulepb.LsResponse
	(*ChownRequest)(nil),          // 28: modulepb.ChownRequest
	(*ExecRequest)(nil),           // 29: modulepb.ExecRequest
	(*ExecResponse)(nil),          // 30: modulepb.ExecResponse
	(*UploadRequest)(nil),         // 31: modulepb.UploadRequest
	(*DownloadRequest)(nil),       // 32: modulepb.DownloadRequest
	(*DownloadResponse)(nil),      // 33: modulepb.DownloadResponse
	(*NetstatResponse)(nil),       // 34: modulepb.NetstatResponse
	(*PsResponse)(nil),            // 35: modulepb.PsResponse
	(*BypassRequest)(nil),         // 36: modulepb.BypassRequest
	(*ExecuteCommand)(nil),        // 37: modulepb.ExecuteCommand
	(*IfconfigResponse)(nil),      // 38: modulepb.IfconfigResponse
	(*CurlRequest)(nil),           // 39: modulepb.CurlRequest
	(*KeyExchangeRequest)(nil),    // 40: modulepb.KeyExchangeRequest
	(*KeyExchangeResponse)(nil),   // 41: modulepb.KeyExchangeResponse
	(*Registry)(nil),              // 42: modulepb.Registry
	(*RegistryWriteRequest)(nil),  // 43: modulepb.RegistryWriteRequest
	(*TaskSchedule)(nil),          // 44: modulepb.TaskSchedule
	(*TaskSchedulesResponse)(nil), // 45: modulepb.TaskSchedulesResponse
	(*ServiceConfig)(nil),         // 46: modulepb.ServiceConfig
	(*ServicesResponse)(nil),      // 47: modulepb.ServicesResponse
	(*Service)(nil),               // 48: modulepb.Service
	(*RunAsRequest)(nil),          // 49: modulepb.RunAsRequest
	(*GetSystem)(nil),             // 50: modulepb.GetSystem
	(*Inject)(nil),                // 51: modulepb.Inject
	(*Pipe)(nil),                  // 52: modulepb.Pipe
	(*EnumDriversResponse)(nil),   // 53: modulepb.EnumDriversResponse
	(*FFmpegRequest)(nil),         // 54: modulepb.FFmpegRequest
	(*PtyRequest)(nil),            // 55: modulepb.PtyRequest
	(*PtyResponse)(nil),           // 56: modulepb.PtyResponse
}
var file_implant_implantpb_implant_proto_depIdxs = []int32{
	1,  // 0: implantpb.Spite.status:type_name -> implantpb.Status
	0,  // 1: implantpb.Spite.empty:type_name -> implantpb.Empty
	4,  // 2: implantpb.Spite.block:type_name -> modulepb.Block
	5,  // 3: implantpb.Spite.ack:type_name -> modulepb.ACK
	6,  // 4: implantpb.Spite.task:type_name -> modulepb.TaskCtrl
	7,  // 5: implantpb.Spite.sleep_request:type_name -> modulepb.Timer
	8,  // 6: implantpb.Spite.init:type_name -> modulepb.Init
	9,  // 7: implantpb.Spite.switch:type_name -> modulepb.Switch
	10, // 8: implantpb.Spite.task_info:type_name -> modulepb.TaskInfo
	11, // 9: implantpb.Spite.task_list:type_name -> modulepb.TaskListResponse
	12, // 10: implantpb.Spite.sysinfo:type_name -> modulepb.SysInfo
	13, // 11: implantpb.Spite.register:type_name -> modulepb.Register
	14, // 12: implantpb.Spite.ping:type_name -> modulepb.Ping
	15, // 13: implantpb.Spite.suicide:type_name -> modulepb.Suicide
	16, // 14: implantpb.Spite.request:type_name -> modulepb.Request
	17, // 15: implantpb.Spite.response:type_name -> modulepb.Response
	18, // 16: implantpb.Spite.execute_binary:type_name -> modulepb.ExecuteBinary
	19, // 17: implantpb.Spite.binary_response:type_name -> modulepb.BinaryResponse
	20, // 18: implantpb.Spite.load_module:type_name -> modulepb.LoadModule
	21, // 19: implantpb.Spite.modules:type_name -> modulepb.Modules
	22, // 20: implantpb.Spite.load_addon:type_name -> modulepb.LoadAddon
	23, // 21: implantpb.Spite.addons:type_name -> modulepb.Addons
	24, // 22: implantpb.Spite.execute_addon:type_name -> modulepb.ExecuteAddon
	25, // 23: implantpb.Spite.wmi_request:type_name -> modulepb.WmiQueryRequest
	26, // 24: implantpb.Spite.wmi_method_request:type_name -> modulepb.WmiMethodRequest
	27, // 25: implantpb.Spite.ls_response:type_name -> modulepb.LsResponse
	28, // 26: implantpb.Spite.chown_request:type_name -> modulepb.ChownRequest
	29, // 27: implantpb.Spite.exec_request:type_name -> modulepb.ExecRequest
	30, // 28: implantpb.Spite.exec_response:type_name -> modulepb.ExecResponse
	31, // 29: implantpb.Spite.upload_request:type_name -> modulepb.UploadRequest
	32, // 30: implantpb.Spite.download_request:type_name -> modulepb.DownloadRequest
	33, // 31: implantpb.Spite.download_response:type_name -> modulepb.DownloadResponse
	34, // 32: implantpb.Spite.netstat_response:type_name -> modulepb.NetstatResponse
	35, // 33: implantpb.Spite.ps_response:type_name -> modulepb.PsResponse
	36, // 34: implantpb.Spite.bypass_request:type_name -> modulepb.BypassRequest
	37, // 35: implantpb.Spite.execute_command:type_name -> modulepb.ExecuteCommand
	38, // 36: implantpb.Spite.ifconfig_response:type_name -> modulepb.IfconfigResponse
	39, // 37: implantpb.Spite.curl_request:type_name -> modulepb.CurlRequest
	40, // 38: implantpb.Spite.key_exchange_request:type_name -> modulepb.KeyExchangeRequest
	41, // 39: implantpb.Spite.key_exchange_response:type_name -> modulepb.KeyExchangeResponse
	42, // 40: implantpb.Spite.registry_request:type_name -> modulepb.Registry
	43, // 41: implantpb.Spite.registry_write_request:type_name -> modulepb.RegistryWriteRequest
	44, // 42: implantpb.Spite.schedule_request:type_name -> modulepb.TaskSchedule
	45, // 43: implantpb.Spite.schedules_response:type_name -> modulepb.TaskSchedulesResponse
	44, // 44: implantpb.Spite.schedule_response:type_name -> modulepb.TaskSchedule
	46, // 45: implantpb.Spite.service_request:type_name -> modulepb.ServiceConfig
	47, // 46: implantpb.Spite.services_response:type_name -> modulepb.ServicesResponse
	48, // 47: implantpb.Spite.service_response:type_name -> modulepb.Service
	49, // 48: implantpb.Spite.runas_request:type_name -> modulepb.RunAsRequest
	50, // 49: implantpb.Spite.getsystem:type_name -> modulepb.GetSystem
	51, // 50: implantpb.Spite.inject:type_name -> modulepb.Inject
	52, // 51: implantpb.Spite.pipe_request:type_name -> modulepb.Pipe
	53, // 52: implantpb.Spite.enum_drivers_response:type_name -> modulepb.EnumDriversResponse
	54, // 53: implantpb.Spite.ffmpeg_request:type_name -> modulepb.FFmpegRequest
	55, // 54: implantpb.Spite.pty_request:type_name -> modulepb.PtyRequest
	56, // 55: implantpb.Spite.pty_response:type_name -> modulepb.PtyResponse
	2,  // 56: implantpb.Spites.spites:type_name -> implantpb.Spite
	57, // [57:57] is the sub-list for method output_type
	57, // [57:57] is the sub-list for method input_type
	57, // [57:57] is the sub-list for extension type_name
	57, // [57:57] is the sub-list for extension extendee
	0,  // [0:57] is the sub-list for field type_name
}

func init() { file_implant_implantpb_implant_proto_init() }
func file_implant_implantpb_implant_proto_init() {
	if File_implant_implantpb_implant_proto != nil {
		return
	}
	file_implant_implantpb_module_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_implant_implantpb_implant_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Empty); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_implant_implantpb_implant_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Status); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_implant_implantpb_implant_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Spite); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_implant_implantpb_implant_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Spites); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_implant_implantpb_implant_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*Spite_Empty)(nil),
		(*Spite_Block)(nil),
		(*Spite_Ack)(nil),
		(*Spite_Task)(nil),
		(*Spite_SleepRequest)(nil),
		(*Spite_Init)(nil),
		(*Spite_Switch)(nil),
		(*Spite_TaskInfo)(nil),
		(*Spite_TaskList)(nil),
		(*Spite_Sysinfo)(nil),
		(*Spite_Register)(nil),
		(*Spite_Ping)(nil),
		(*Spite_Suicide)(nil),
		(*Spite_Request)(nil),
		(*Spite_Response)(nil),
		(*Spite_ExecuteBinary)(nil),
		(*Spite_BinaryResponse)(nil),
		(*Spite_LoadModule)(nil),
		(*Spite_Modules)(nil),
		(*Spite_LoadAddon)(nil),
		(*Spite_Addons)(nil),
		(*Spite_ExecuteAddon)(nil),
		(*Spite_WmiRequest)(nil),
		(*Spite_WmiMethodRequest)(nil),
		(*Spite_LsResponse)(nil),
		(*Spite_ChownRequest)(nil),
		(*Spite_ExecRequest)(nil),
		(*Spite_ExecResponse)(nil),
		(*Spite_UploadRequest)(nil),
		(*Spite_DownloadRequest)(nil),
		(*Spite_DownloadResponse)(nil),
		(*Spite_NetstatResponse)(nil),
		(*Spite_PsResponse)(nil),
		(*Spite_BypassRequest)(nil),
		(*Spite_ExecuteCommand)(nil),
		(*Spite_IfconfigResponse)(nil),
		(*Spite_CurlRequest)(nil),
		(*Spite_KeyExchangeRequest)(nil),
		(*Spite_KeyExchangeResponse)(nil),
		(*Spite_RegistryRequest)(nil),
		(*Spite_RegistryWriteRequest)(nil),
		(*Spite_ScheduleRequest)(nil),
		(*Spite_SchedulesResponse)(nil),
		(*Spite_ScheduleResponse)(nil),
		(*Spite_ServiceRequest)(nil),
		(*Spite_ServicesResponse)(nil),
		(*Spite_ServiceResponse)(nil),
		(*Spite_RunasRequest)(nil),
		(*Spite_Getsystem)(nil),
		(*Spite_Inject)(nil),
		(*Spite_PipeRequest)(nil),
		(*Spite_EnumDriversResponse)(nil),
		(*Spite_FfmpegRequest)(nil),
		(*Spite_PtyRequest)(nil),
		(*Spite_PtyResponse)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_implant_implantpb_implant_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_implant_implantpb_implant_proto_goTypes,
		DependencyIndexes: file_implant_implantpb_implant_proto_depIdxs,
		MessageInfos:      file_implant_implantpb_implant_proto_msgTypes,
	}.Build()
	File_implant_implantpb_implant_proto = out.File
	file_implant_implantpb_implant_proto_rawDesc = nil
	file_implant_implantpb_implant_proto_goTypes = nil
	file_implant_implantpb_implant_proto_depIdxs = nil
}
