//
// Copyright 2023 FormulaGo Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.0
// 	protoc        v5.27.0
// source: admin.proto

package admin

import (
	_ "formulago/api/model/api"
	base "formulago/api/model/base"
	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)
)

// The request of struct | struct请求类型数据
type StructReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StructStr string `protobuf:"bytes,1,opt,name=structStr,proto3" form:"structStr, required" json:"structStr, required"`
}

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

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

func (*StructReq) ProtoMessage() {}

func (x *StructReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_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 StructReq.ProtoReflect.Descriptor instead.
func (*StructReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{0}
}

func (x *StructReq) GetStructStr() string {
	if x != nil {
		return x.StructStr
	}
	return ""
}

// The information of struct | struct类型数据
type StructResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode   base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg    string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	StructStr string       `protobuf:"bytes,3,opt,name=structStr,proto3" json:"structStr" form:"structStr" query:"structStr"`
}

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

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

func (*StructResp) ProtoMessage() {}

func (x *StructResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_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 StructResp.ProtoReflect.Descriptor instead.
func (*StructResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{1}
}

func (x *StructResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *StructResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *StructResp) GetStructStr() string {
	if x != nil {
		return x.StructStr
	}
	return ""
}

// The information of proto | proto类型数据
type ProtoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode  base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg   string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	ProtoStr string       `protobuf:"bytes,3,opt,name=protoStr,proto3" json:"protoStr" form:"protoStr" query:"protoStr"`
}

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

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

func (*ProtoResp) ProtoMessage() {}

func (x *ProtoResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_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 ProtoResp.ProtoReflect.Descriptor instead.
func (*ProtoResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{2}
}

func (x *ProtoResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *ProtoResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *ProtoResp) GetProtoStr() string {
	if x != nil {
		return x.ProtoStr
	}
	return ""
}

// The information of captcha | 验证码数据
type CaptchaInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode   base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg    string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	CaptchaID string       `protobuf:"bytes,3,opt,name=captchaID,proto3" json:"captchaID" form:"captchaID" query:"captchaID"`
	ImgPath   string       `protobuf:"bytes,4,opt,name=imgPath,proto3" json:"imgPath" form:"imgPath" query:"imgPath"`
}

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

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

func (*CaptchaInfoResp) ProtoMessage() {}

func (x *CaptchaInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_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 CaptchaInfoResp.ProtoReflect.Descriptor instead.
func (*CaptchaInfoResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{3}
}

func (x *CaptchaInfoResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *CaptchaInfoResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *CaptchaInfoResp) GetCaptchaID() string {
	if x != nil {
		return x.CaptchaID
	}
	return ""
}

func (x *CaptchaInfoResp) GetImgPath() string {
	if x != nil {
		return x.ImgPath
	}
	return ""
}

// casbin
type UpdatePolicyReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoleID uint64            `protobuf:"varint,1,opt,name=roleID,proto3" json:"roleID" form:"roleID" query:"roleID"`
	Rules  []*PolicyPartInfo `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules" form:"rules" query:"rules"`
}

func (x *UpdatePolicyReq) Reset() {
	*x = UpdatePolicyReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UpdatePolicyReq) ProtoMessage() {}

func (x *UpdatePolicyReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[4]
	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 UpdatePolicyReq.ProtoReflect.Descriptor instead.
func (*UpdatePolicyReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{4}
}

func (x *UpdatePolicyReq) GetRoleID() uint64 {
	if x != nil {
		return x.RoleID
	}
	return 0
}

func (x *UpdatePolicyReq) GetRules() []*PolicyPartInfo {
	if x != nil {
		return x.Rules
	}
	return nil
}

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

	Path   string `protobuf:"bytes,1,opt,name=path,proto3" json:"path" form:"path" query:"path"`
	Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method" form:"method" query:"method"`
}

func (x *PolicyPartInfo) Reset() {
	*x = PolicyPartInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PolicyPartInfo) ProtoMessage() {}

func (x *PolicyPartInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[5]
	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 PolicyPartInfo.ProtoReflect.Descriptor instead.
func (*PolicyPartInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{5}
}

func (x *PolicyPartInfo) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *PolicyPartInfo) GetMethod() string {
	if x != nil {
		return x.Method
	}
	return ""
}

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

	RoleID uint64          `protobuf:"varint,1,opt,name=roleID,proto3" json:"roleID" form:"roleID" query:"roleID"`
	Info   *PolicyPartInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info" form:"info" query:"info"`
}

func (x *CreatePolicyReq) Reset() {
	*x = CreatePolicyReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreatePolicyReq) ProtoMessage() {}

func (x *CreatePolicyReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[6]
	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 CreatePolicyReq.ProtoReflect.Descriptor instead.
func (*CreatePolicyReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{6}
}

func (x *CreatePolicyReq) GetRoleID() uint64 {
	if x != nil {
		return x.RoleID
	}
	return 0
}

func (x *CreatePolicyReq) GetInfo() *PolicyPartInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

// login request | 登录参数
type LoginReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Username  string `protobuf:"bytes,1,opt,name=username,proto3" json:"username" form:"username" query:"username"`
	Password  string `protobuf:"bytes,2,opt,name=password,proto3" json:"password" form:"password" query:"password"`
	CaptchaID string `protobuf:"bytes,3,opt,name=captchaID,proto3" json:"captchaID" form:"captchaID" query:"captchaID"`
	Captcha   string `protobuf:"bytes,4,opt,name=captcha,proto3" json:"captcha" form:"captcha" query:"captcha"`
}

func (x *LoginReq) Reset() {
	*x = LoginReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LoginReq) ProtoMessage() {}

func (x *LoginReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[7]
	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 LoginReq.ProtoReflect.Descriptor instead.
func (*LoginReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{7}
}

func (x *LoginReq) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *LoginReq) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *LoginReq) GetCaptchaID() string {
	if x != nil {
		return x.CaptchaID
	}
	return ""
}

func (x *LoginReq) GetCaptcha() string {
	if x != nil {
		return x.Captcha
	}
	return ""
}

// The simple role data | 简单的角色数据
type SimpleRole struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoleName string `protobuf:"bytes,1,opt,name=roleName,proto3" json:"roleName" form:"roleName" query:"roleName"`
	Value    string `protobuf:"bytes,2,opt,name=value,proto3" json:"value" form:"value" query:"value"`
}

func (x *SimpleRole) Reset() {
	*x = SimpleRole{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SimpleRole) ProtoMessage() {}

func (x *SimpleRole) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[8]
	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 SimpleRole.ProtoReflect.Descriptor instead.
func (*SimpleRole) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{8}
}

func (x *SimpleRole) GetRoleName() string {
	if x != nil {
		return x.RoleName
	}
	return ""
}

func (x *SimpleRole) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

// The log in response data | 登录返回数据
type LoginResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code   string `protobuf:"bytes,1,opt,name=code,proto3" json:"code" form:"code" query:"code"`
	Token  string `protobuf:"bytes,2,opt,name=token,proto3" json:"token" form:"token" query:"token"`
	Expire string `protobuf:"bytes,3,opt,name=expire,proto3" json:"expire" form:"expire" query:"expire"`
}

func (x *LoginResp) Reset() {
	*x = LoginResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LoginResp) ProtoMessage() {}

func (x *LoginResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[9]
	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 LoginResp.ProtoReflect.Descriptor instead.
func (*LoginResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{9}
}

func (x *LoginResp) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

func (x *LoginResp) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *LoginResp) GetExpire() string {
	if x != nil {
		return x.Expire
	}
	return ""
}

// The profile in response data | 返回个人数据
type ProfileResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode  base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg   string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Nickname string       `protobuf:"bytes,3,opt,name=nickname,proto3" json:"nickname" form:"nickname" query:"nickname"`
	Avatar   string       `protobuf:"bytes,4,opt,name=avatar,proto3" json:"avatar" form:"avatar" query:"avatar"`
	Mobile   string       `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile" form:"mobile" query:"mobile"`
	Email    string       `protobuf:"bytes,6,opt,name=email,proto3" json:"email" form:"email" query:"email"`
}

func (x *ProfileResp) Reset() {
	*x = ProfileResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProfileResp) ProtoMessage() {}

func (x *ProfileResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[10]
	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 ProfileResp.ProtoReflect.Descriptor instead.
func (*ProfileResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{10}
}

func (x *ProfileResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *ProfileResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *ProfileResp) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *ProfileResp) GetAvatar() string {
	if x != nil {
		return x.Avatar
	}
	return ""
}

func (x *ProfileResp) GetMobile() string {
	if x != nil {
		return x.Mobile
	}
	return ""
}

func (x *ProfileResp) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

// The profile request | 获取个人数据
type ProfileReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Nickname string `protobuf:"bytes,1,opt,name=nickname,proto3" json:"nickname" form:"nickname" query:"nickname"`
	Avatar   string `protobuf:"bytes,2,opt,name=avatar,proto3" json:"avatar" form:"avatar" query:"avatar"`
	Mobile   string `protobuf:"bytes,3,opt,name=mobile,proto3" json:"mobile" form:"mobile" query:"mobile"`
	Email    string `protobuf:"bytes,4,opt,name=email,proto3" json:"email" form:"email" query:"email"`
}

func (x *ProfileReq) Reset() {
	*x = ProfileReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProfileReq) ProtoMessage() {}

func (x *ProfileReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[11]
	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 ProfileReq.ProtoReflect.Descriptor instead.
func (*ProfileReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{11}
}

func (x *ProfileReq) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *ProfileReq) GetAvatar() string {
	if x != nil {
		return x.Avatar
	}
	return ""
}

func (x *ProfileReq) GetMobile() string {
	if x != nil {
		return x.Mobile
	}
	return ""
}

func (x *ProfileReq) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

// register request | 注册参数
type RegisterReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Username  string `protobuf:"bytes,1,opt,name=username,proto3" json:"username" form:"username" query:"username"`
	Password  string `protobuf:"bytes,2,opt,name=password,proto3" json:"password" form:"password" query:"password"`
	CaptchaID string `protobuf:"bytes,3,opt,name=captchaID,proto3" json:"captchaID" form:"captchaID" query:"captchaID"`
	Captcha   string `protobuf:"bytes,4,opt,name=captcha,proto3" json:"captcha" form:"captcha" query:"captcha"`
	Email     string `protobuf:"bytes,5,opt,name=email,proto3" json:"email" form:"email" query:"email"`
}

func (x *RegisterReq) Reset() {
	*x = RegisterReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RegisterReq) ProtoMessage() {}

func (x *RegisterReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[12]
	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 RegisterReq.ProtoReflect.Descriptor instead.
func (*RegisterReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{12}
}

func (x *RegisterReq) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *RegisterReq) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *RegisterReq) GetCaptchaID() string {
	if x != nil {
		return x.CaptchaID
	}
	return ""
}

func (x *RegisterReq) GetCaptcha() string {
	if x != nil {
		return x.Captcha
	}
	return ""
}

func (x *RegisterReq) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

// change user's password request | 修改密码请求参数
type ChangePasswordReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID      uint64 `protobuf:"varint,1,opt,name=userID,proto3" json:"userID" form:"userID" query:"userID"`
	OldPassword string `protobuf:"bytes,2,opt,name=oldPassword,proto3" json:"oldPassword" form:"oldPassword" query:"oldPassword"`
	NewPassword string `protobuf:"bytes,3,opt,name=newPassword,proto3" json:"newPassword" form:"newPassword" query:"newPassword"`
}

func (x *ChangePasswordReq) Reset() {
	*x = ChangePasswordReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ChangePasswordReq) ProtoMessage() {}

func (x *ChangePasswordReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[13]
	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 ChangePasswordReq.ProtoReflect.Descriptor instead.
func (*ChangePasswordReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{13}
}

func (x *ChangePasswordReq) GetUserID() uint64 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *ChangePasswordReq) GetOldPassword() string {
	if x != nil {
		return x.OldPassword
	}
	return ""
}

func (x *ChangePasswordReq) GetNewPassword() string {
	if x != nil {
		return x.NewPassword
	}
	return ""
}

// Create or update user information request | 创建或更新用户信息
type CreateOrUpdateUserReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID       uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	Avatar   string `protobuf:"bytes,2,opt,name=avatar,proto3" json:"avatar" form:"avatar" query:"avatar"`
	RoleID   uint64 `protobuf:"varint,3,opt,name=roleID,proto3" json:"roleID" form:"roleID" query:"roleID"`
	Mobile   string `protobuf:"bytes,4,opt,name=mobile,proto3" json:"mobile" form:"mobile" query:"mobile"`
	Email    string `protobuf:"bytes,5,opt,name=email,proto3" json:"email" form:"email" query:"email"`
	Status   uint64 `protobuf:"varint,6,opt,name=status,proto3" json:"status" form:"status" query:"status"`
	Username string `protobuf:"bytes,7,opt,name=username,proto3" json:"username" form:"username" query:"username"`
	Nickname string `protobuf:"bytes,8,opt,name=nickname,proto3" json:"nickname" form:"nickname" query:"nickname"`
	Password string `protobuf:"bytes,9,opt,name=password,proto3" json:"password" form:"password" query:"password"`
}

func (x *CreateOrUpdateUserReq) Reset() {
	*x = CreateOrUpdateUserReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateOrUpdateUserReq) ProtoMessage() {}

func (x *CreateOrUpdateUserReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[14]
	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 CreateOrUpdateUserReq.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateUserReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{14}
}

func (x *CreateOrUpdateUserReq) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *CreateOrUpdateUserReq) GetAvatar() string {
	if x != nil {
		return x.Avatar
	}
	return ""
}

func (x *CreateOrUpdateUserReq) GetRoleID() uint64 {
	if x != nil {
		return x.RoleID
	}
	return 0
}

func (x *CreateOrUpdateUserReq) GetMobile() string {
	if x != nil {
		return x.Mobile
	}
	return ""
}

func (x *CreateOrUpdateUserReq) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

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

func (x *CreateOrUpdateUserReq) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *CreateOrUpdateUserReq) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *CreateOrUpdateUserReq) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

// The response data of user's information | 用户信息返回数据
type UserInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode   base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg    string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	ID        uint64       `protobuf:"varint,3,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	Avatar    string       `protobuf:"bytes,4,opt,name=avatar,proto3" json:"avatar" form:"avatar" query:"avatar"`
	RoleID    uint64       `protobuf:"varint,5,opt,name=roleID,proto3" json:"roleID" form:"roleID" query:"roleID"`
	Mobile    string       `protobuf:"bytes,6,opt,name=mobile,proto3" json:"mobile" form:"mobile" query:"mobile"`
	Email     string       `protobuf:"bytes,7,opt,name=email,proto3" json:"email" form:"email" query:"email"`
	Status    uint64       `protobuf:"varint,8,opt,name=status,proto3" json:"status" form:"status" query:"status"`
	Username  string       `protobuf:"bytes,9,opt,name=username,proto3" json:"username" form:"username" query:"username"`
	Nickname  string       `protobuf:"bytes,10,opt,name=nickname,proto3" json:"nickname" form:"nickname" query:"nickname"`
	RoleName  string       `protobuf:"bytes,11,opt,name=roleName,proto3" json:"roleName" form:"roleName" query:"roleName"`
	CreatedAt string       `protobuf:"bytes,12,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt string       `protobuf:"bytes,13,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
	RoleValue string       `protobuf:"bytes,14,opt,name=roleValue,proto3" json:"roleValue" form:"roleValue" query:"roleValue"`
	SideMode  string       `protobuf:"bytes,15,opt,name=sideMode,proto3" json:"sideMode" form:"sideMode" query:"sideMode"`
}

func (x *UserInfoResp) Reset() {
	*x = UserInfoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserInfoResp) ProtoMessage() {}

func (x *UserInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[15]
	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 UserInfoResp.ProtoReflect.Descriptor instead.
func (*UserInfoResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{15}
}

func (x *UserInfoResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *UserInfoResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *UserInfoResp) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *UserInfoResp) GetAvatar() string {
	if x != nil {
		return x.Avatar
	}
	return ""
}

func (x *UserInfoResp) GetRoleID() uint64 {
	if x != nil {
		return x.RoleID
	}
	return 0
}

func (x *UserInfoResp) GetMobile() string {
	if x != nil {
		return x.Mobile
	}
	return ""
}

func (x *UserInfoResp) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

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

func (x *UserInfoResp) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *UserInfoResp) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *UserInfoResp) GetRoleName() string {
	if x != nil {
		return x.RoleName
	}
	return ""
}

func (x *UserInfoResp) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *UserInfoResp) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

func (x *UserInfoResp) GetRoleValue() string {
	if x != nil {
		return x.RoleValue
	}
	return ""
}

func (x *UserInfoResp) GetSideMode() string {
	if x != nil {
		return x.SideMode
	}
	return ""
}

// The response data of user list | 用户列表数据
type UserListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode    `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string          `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64          `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*UserInfoResp `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *UserListResp) Reset() {
	*x = UserListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserListResp) ProtoMessage() {}

func (x *UserListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[16]
	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 UserListResp.ProtoReflect.Descriptor instead.
func (*UserListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{16}
}

func (x *UserListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *UserListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *UserListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *UserListResp) GetData() []*UserInfoResp {
	if x != nil {
		return x.Data
	}
	return nil
}

// Get user list request | 获取用户列表请求参数
type UserListReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Page     uint64 `protobuf:"varint,1,opt,name=page,proto3" json:"page" form:"page" query:"page"`
	PageSize uint64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize" form:"pageSize" query:"pageSize"`
	Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username" form:"username" query:"username"`
	Nickname string `protobuf:"bytes,4,opt,name=nickname,proto3" json:"nickname" form:"nickname" query:"nickname"`
	Email    string `protobuf:"bytes,5,opt,name=email,proto3" json:"email" form:"email" query:"email"`
	Mobile   string `protobuf:"bytes,6,opt,name=mobile,proto3" json:"mobile" form:"mobile" query:"mobile"`
	RoleID   uint64 `protobuf:"varint,7,opt,name=roleID,proto3" json:"roleID" form:"roleID" query:"roleID"`
}

func (x *UserListReq) Reset() {
	*x = UserListReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserListReq) ProtoMessage() {}

func (x *UserListReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[17]
	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 UserListReq.ProtoReflect.Descriptor instead.
func (*UserListReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{17}
}

func (x *UserListReq) GetPage() uint64 {
	if x != nil {
		return x.Page
	}
	return 0
}

func (x *UserListReq) GetPageSize() uint64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *UserListReq) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *UserListReq) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *UserListReq) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *UserListReq) GetMobile() string {
	if x != nil {
		return x.Mobile
	}
	return ""
}

func (x *UserListReq) GetRoleID() uint64 {
	if x != nil {
		return x.RoleID
	}
	return 0
}

// The permission code for front end permission control | 权限码： 用于前端权限控制
type PermCodeResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Data    []string     `protobuf:"bytes,3,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *PermCodeResp) Reset() {
	*x = PermCodeResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PermCodeResp) ProtoMessage() {}

func (x *PermCodeResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[18]
	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 PermCodeResp.ProtoReflect.Descriptor instead.
func (*PermCodeResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{18}
}

func (x *PermCodeResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *PermCodeResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *PermCodeResp) GetData() []string {
	if x != nil {
		return x.Data
	}
	return nil
}

// api message
// The response data of API information | API信息
type ApiInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID          uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	CreatedAt   string `protobuf:"bytes,2,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt   string `protobuf:"bytes,3,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
	Path        string `protobuf:"bytes,4,opt,name=path,proto3" json:"path" form:"path" query:"path"`
	Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description" form:"description" query:"description"`
	Group       string `protobuf:"bytes,6,opt,name=group,proto3" json:"group" form:"group" query:"group"`
	Method      string `protobuf:"bytes,7,opt,name=method,proto3" json:"method" form:"method" query:"method"`
}

func (x *ApiInfo) Reset() {
	*x = ApiInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApiInfo) ProtoMessage() {}

func (x *ApiInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[19]
	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 ApiInfo.ProtoReflect.Descriptor instead.
func (*ApiInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{19}
}

func (x *ApiInfo) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *ApiInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *ApiInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

func (x *ApiInfo) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *ApiInfo) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *ApiInfo) GetGroup() string {
	if x != nil {
		return x.Group
	}
	return ""
}

func (x *ApiInfo) GetMethod() string {
	if x != nil {
		return x.Method
	}
	return ""
}

// The response data of API list | API列表数据
type ApiListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64       `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*ApiInfo   `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *ApiListResp) Reset() {
	*x = ApiListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApiListResp) ProtoMessage() {}

func (x *ApiListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[20]
	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 ApiListResp.ProtoReflect.Descriptor instead.
func (*ApiListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{20}
}

func (x *ApiListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *ApiListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *ApiListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *ApiListResp) GetData() []*ApiInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

// The request data of API list | API列表请求数据
type ApiPageReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Page        uint64 `protobuf:"varint,1,opt,name=page,proto3" json:"page" form:"page" query:"page"`
	PageSize    uint64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize" form:"pageSize" query:"pageSize"`
	Path        string `protobuf:"bytes,3,opt,name=path,proto3" json:"path" form:"path" query:"path"`
	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description" form:"description" query:"description"`
	Method      string `protobuf:"bytes,5,opt,name=method,proto3" json:"method" form:"method" query:"method"`
	Group       string `protobuf:"bytes,6,opt,name=group,proto3" json:"group" form:"group" query:"group"`
}

func (x *ApiPageReq) Reset() {
	*x = ApiPageReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApiPageReq) ProtoMessage() {}

func (x *ApiPageReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[21]
	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 ApiPageReq.ProtoReflect.Descriptor instead.
func (*ApiPageReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{21}
}

func (x *ApiPageReq) GetPage() uint64 {
	if x != nil {
		return x.Page
	}
	return 0
}

func (x *ApiPageReq) GetPageSize() uint64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ApiPageReq) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *ApiPageReq) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *ApiPageReq) GetMethod() string {
	if x != nil {
		return x.Method
	}
	return ""
}

func (x *ApiPageReq) GetGroup() string {
	if x != nil {
		return x.Group
	}
	return ""
}

// authorization message
// The response data of api authorization | API授权数据
type ApiAuthorityInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Path   string `protobuf:"bytes,1,opt,name=path,proto3" json:"path" form:"path" query:"path"`
	Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method" form:"method" query:"method"`
}

func (x *ApiAuthorityInfo) Reset() {
	*x = ApiAuthorityInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApiAuthorityInfo) ProtoMessage() {}

func (x *ApiAuthorityInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[22]
	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 ApiAuthorityInfo.ProtoReflect.Descriptor instead.
func (*ApiAuthorityInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{22}
}

func (x *ApiAuthorityInfo) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *ApiAuthorityInfo) GetMethod() string {
	if x != nil {
		return x.Method
	}
	return ""
}

// Create or update api authorization information request | 创建或更新API授权信息
type CreateOrUpdateApiAuthorityReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoleID uint64              `protobuf:"varint,1,opt,name=roleID,proto3" json:"roleID" form:"roleID" query:"roleID"`
	Data   []*ApiAuthorityInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *CreateOrUpdateApiAuthorityReq) Reset() {
	*x = CreateOrUpdateApiAuthorityReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateOrUpdateApiAuthorityReq) ProtoMessage() {}

func (x *CreateOrUpdateApiAuthorityReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[23]
	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 CreateOrUpdateApiAuthorityReq.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateApiAuthorityReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{23}
}

func (x *CreateOrUpdateApiAuthorityReq) GetRoleID() uint64 {
	if x != nil {
		return x.RoleID
	}
	return 0
}

func (x *CreateOrUpdateApiAuthorityReq) GetData() []*ApiAuthorityInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

// The  data of api authorization list | API授权列表数据
type ApiAuthorityListInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode        `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string              `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64              `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*ApiAuthorityInfo `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *ApiAuthorityListInfoResp) Reset() {
	*x = ApiAuthorityListInfoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApiAuthorityListInfoResp) ProtoMessage() {}

func (x *ApiAuthorityListInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[24]
	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 ApiAuthorityListInfoResp.ProtoReflect.Descriptor instead.
func (*ApiAuthorityListInfoResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{24}
}

func (x *ApiAuthorityListInfoResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *ApiAuthorityListInfoResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *ApiAuthorityListInfoResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *ApiAuthorityListInfoResp) GetData() []*ApiAuthorityInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

// The request data of menu authorization | 菜单授权请求数据
type MenuAuthorityInfoReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoleID  uint64   `protobuf:"varint,1,opt,name=roleID,proto3" json:"roleID" form:"roleID" query:"roleID"`
	MenuIDs []uint64 `protobuf:"varint,2,rep,packed,name=MenuIDs,proto3" json:"MenuIDs" form:"MenuIDs" query:"MenuIDs"`
}

func (x *MenuAuthorityInfoReq) Reset() {
	*x = MenuAuthorityInfoReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MenuAuthorityInfoReq) ProtoMessage() {}

func (x *MenuAuthorityInfoReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[25]
	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 MenuAuthorityInfoReq.ProtoReflect.Descriptor instead.
func (*MenuAuthorityInfoReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{25}
}

func (x *MenuAuthorityInfoReq) GetRoleID() uint64 {
	if x != nil {
		return x.RoleID
	}
	return 0
}

func (x *MenuAuthorityInfoReq) GetMenuIDs() []uint64 {
	if x != nil {
		return x.MenuIDs
	}
	return nil
}

// The response data of menu authorization | 菜单授权数据
type MenuAuthorityInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	RoleID  uint64       `protobuf:"varint,3,opt,name=roleID,proto3" json:"roleID" form:"roleID" query:"roleID"`
	MenuIDs []uint64     `protobuf:"varint,4,rep,packed,name=MenuIDs,proto3" json:"MenuIDs" form:"MenuIDs" query:"MenuIDs"`
}

func (x *MenuAuthorityInfoResp) Reset() {
	*x = MenuAuthorityInfoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MenuAuthorityInfoResp) ProtoMessage() {}

func (x *MenuAuthorityInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[26]
	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 MenuAuthorityInfoResp.ProtoReflect.Descriptor instead.
func (*MenuAuthorityInfoResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{26}
}

func (x *MenuAuthorityInfoResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *MenuAuthorityInfoResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *MenuAuthorityInfoResp) GetRoleID() uint64 {
	if x != nil {
		return x.RoleID
	}
	return 0
}

func (x *MenuAuthorityInfoResp) GetMenuIDs() []uint64 {
	if x != nil {
		return x.MenuIDs
	}
	return nil
}

// Create or update menu information request params | 创建或更新菜单信息参数
type CreateOrUpdateMenuReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID        uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	ParentID  uint64 `protobuf:"varint,2,opt,name=parentID,proto3" json:"parentID" form:"parentID" query:"parentID"`
	Level     uint32 `protobuf:"varint,3,opt,name=level,proto3" json:"level" form:"level" query:"level"`
	Path      string `protobuf:"bytes,4,opt,name=path,proto3" json:"path" form:"path" query:"path"`
	Name      string `protobuf:"bytes,5,opt,name=name,proto3" json:"name" form:"name" query:"name"`
	Redirect  string `protobuf:"bytes,6,opt,name=redirect,proto3" json:"redirect" form:"redirect" query:"redirect"`
	Component string `protobuf:"bytes,7,opt,name=component,proto3" json:"component" form:"component" query:"component"`
	OrderNo   uint32 `protobuf:"varint,8,opt,name=orderNo,proto3" json:"orderNo" form:"orderNo" query:"orderNo"`
	Disabled  bool   `protobuf:"varint,9,opt,name=disabled,proto3" json:"disabled" form:"disabled" query:"disabled"`
	MenuType  uint32 `protobuf:"varint,10,opt,name=menuType,proto3" json:"menuType" form:"menuType" query:"menuType"`
	Meta      *Meta  `protobuf:"bytes,11,opt,name=meta,proto3" json:"meta" form:"meta" query:"meta"`
}

func (x *CreateOrUpdateMenuReq) Reset() {
	*x = CreateOrUpdateMenuReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateOrUpdateMenuReq) ProtoMessage() {}

func (x *CreateOrUpdateMenuReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[27]
	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 CreateOrUpdateMenuReq.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateMenuReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{27}
}

func (x *CreateOrUpdateMenuReq) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *CreateOrUpdateMenuReq) GetParentID() uint64 {
	if x != nil {
		return x.ParentID
	}
	return 0
}

func (x *CreateOrUpdateMenuReq) GetLevel() uint32 {
	if x != nil {
		return x.Level
	}
	return 0
}

func (x *CreateOrUpdateMenuReq) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

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

func (x *CreateOrUpdateMenuReq) GetRedirect() string {
	if x != nil {
		return x.Redirect
	}
	return ""
}

func (x *CreateOrUpdateMenuReq) GetComponent() string {
	if x != nil {
		return x.Component
	}
	return ""
}

func (x *CreateOrUpdateMenuReq) GetOrderNo() uint32 {
	if x != nil {
		return x.OrderNo
	}
	return 0
}

func (x *CreateOrUpdateMenuReq) GetDisabled() bool {
	if x != nil {
		return x.Disabled
	}
	return false
}

func (x *CreateOrUpdateMenuReq) GetMenuType() uint32 {
	if x != nil {
		return x.MenuType
	}
	return 0
}

func (x *CreateOrUpdateMenuReq) GetMeta() *Meta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// The response data of menu information | 菜单返回数据
type MenuInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID        uint64      `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	CreatedAt string      `protobuf:"bytes,2,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt string      `protobuf:"bytes,3,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
	Level     uint32      `protobuf:"varint,4,opt,name=level,proto3" json:"level" form:"level" query:"level"`
	ParentID  uint64      `protobuf:"varint,5,opt,name=parentID,proto3" json:"parentID" form:"parentID" query:"parentID"`
	Path      string      `protobuf:"bytes,6,opt,name=path,proto3" json:"path" form:"path" query:"path"`
	Name      string      `protobuf:"bytes,7,opt,name=name,proto3" json:"name" form:"name" query:"name"`
	Redirect  string      `protobuf:"bytes,8,opt,name=redirect,proto3" json:"redirect" form:"redirect" query:"redirect"`
	Component string      `protobuf:"bytes,9,opt,name=component,proto3" json:"component" form:"component" query:"component"`
	OrderNo   uint32      `protobuf:"varint,10,opt,name=orderNo,proto3" json:"orderNo" form:"orderNo" query:"orderNo"`
	Disabled  bool        `protobuf:"varint,11,opt,name=disabled,proto3" json:"disabled" form:"disabled" query:"disabled"`
	MenuType  uint32      `protobuf:"varint,12,opt,name=menuType,proto3" json:"menuType" form:"menuType" query:"menuType"`
	Children  []*MenuInfo `protobuf:"bytes,13,rep,name=children,proto3" json:"children" form:"children" query:"children"`
	Meta      *Meta       `protobuf:"bytes,14,opt,name=meta,proto3" json:"meta" form:"meta" query:"meta"`
}

func (x *MenuInfo) Reset() {
	*x = MenuInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MenuInfo) ProtoMessage() {}

func (x *MenuInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[28]
	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 MenuInfo.ProtoReflect.Descriptor instead.
func (*MenuInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{28}
}

func (x *MenuInfo) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *MenuInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *MenuInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

func (x *MenuInfo) GetLevel() uint32 {
	if x != nil {
		return x.Level
	}
	return 0
}

func (x *MenuInfo) GetParentID() uint64 {
	if x != nil {
		return x.ParentID
	}
	return 0
}

func (x *MenuInfo) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

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

func (x *MenuInfo) GetRedirect() string {
	if x != nil {
		return x.Redirect
	}
	return ""
}

func (x *MenuInfo) GetComponent() string {
	if x != nil {
		return x.Component
	}
	return ""
}

func (x *MenuInfo) GetOrderNo() uint32 {
	if x != nil {
		return x.OrderNo
	}
	return 0
}

func (x *MenuInfo) GetDisabled() bool {
	if x != nil {
		return x.Disabled
	}
	return false
}

func (x *MenuInfo) GetMenuType() uint32 {
	if x != nil {
		return x.MenuType
	}
	return 0
}

func (x *MenuInfo) GetChildren() []*MenuInfo {
	if x != nil {
		return x.Children
	}
	return nil
}

func (x *MenuInfo) GetMeta() *Meta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// The meta data of menu | 菜单的meta数据
type Meta struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Title              string `protobuf:"bytes,1,opt,name=title,proto3" json:"title" form:"title" query:"title"`
	Icon               string `protobuf:"bytes,2,opt,name=icon,proto3" json:"icon" form:"icon" query:"icon"`
	HideMenu           bool   `protobuf:"varint,3,opt,name=hideMenu,proto3" json:"hideMenu" form:"hideMenu" query:"hideMenu"`
	HideBreadcrumb     bool   `protobuf:"varint,4,opt,name=hideBreadcrumb,proto3" json:"hideBreadcrumb" form:"hideBreadcrumb" query:"hideBreadcrumb"`
	CurrentActiveMenu  string `protobuf:"bytes,5,opt,name=currentActiveMenu,proto3" json:"currentActiveMenu" form:"currentActiveMenu" query:"currentActiveMenu"`
	IgnoreKeepAlive    bool   `protobuf:"varint,6,opt,name=ignoreKeepAlive,proto3" json:"ignoreKeepAlive" form:"ignoreKeepAlive" query:"ignoreKeepAlive"`
	HideTab            bool   `protobuf:"varint,7,opt,name=hideTab,proto3" json:"hideTab" form:"hideTab" query:"hideTab"`
	FrameSrc           string `protobuf:"bytes,8,opt,name=frameSrc,proto3" json:"frameSrc" form:"frameSrc" query:"frameSrc"`
	CarryParam         bool   `protobuf:"varint,9,opt,name=carryParam,proto3" json:"carryParam" form:"carryParam" query:"carryParam"`
	HideChildrenInMenu bool   `protobuf:"varint,10,opt,name=hideChildrenInMenu,proto3" json:"hideChildrenInMenu" form:"hideChildrenInMenu" query:"hideChildrenInMenu"`
	Affix              bool   `protobuf:"varint,11,opt,name=affix,proto3" json:"affix" form:"affix" query:"affix"`
	DynamicLevel       uint32 `protobuf:"varint,12,opt,name=dynamicLevel,proto3" json:"dynamicLevel" form:"dynamicLevel" query:"dynamicLevel"`
	RealPath           string `protobuf:"bytes,13,opt,name=realPath,proto3" json:"realPath" form:"realPath" query:"realPath"`
}

func (x *Meta) Reset() {
	*x = Meta{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Meta) ProtoMessage() {}

func (x *Meta) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[29]
	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 Meta.ProtoReflect.Descriptor instead.
func (*Meta) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{29}
}

func (x *Meta) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *Meta) GetIcon() string {
	if x != nil {
		return x.Icon
	}
	return ""
}

func (x *Meta) GetHideMenu() bool {
	if x != nil {
		return x.HideMenu
	}
	return false
}

func (x *Meta) GetHideBreadcrumb() bool {
	if x != nil {
		return x.HideBreadcrumb
	}
	return false
}

func (x *Meta) GetCurrentActiveMenu() string {
	if x != nil {
		return x.CurrentActiveMenu
	}
	return ""
}

func (x *Meta) GetIgnoreKeepAlive() bool {
	if x != nil {
		return x.IgnoreKeepAlive
	}
	return false
}

func (x *Meta) GetHideTab() bool {
	if x != nil {
		return x.HideTab
	}
	return false
}

func (x *Meta) GetFrameSrc() string {
	if x != nil {
		return x.FrameSrc
	}
	return ""
}

func (x *Meta) GetCarryParam() bool {
	if x != nil {
		return x.CarryParam
	}
	return false
}

func (x *Meta) GetHideChildrenInMenu() bool {
	if x != nil {
		return x.HideChildrenInMenu
	}
	return false
}

func (x *Meta) GetAffix() bool {
	if x != nil {
		return x.Affix
	}
	return false
}

func (x *Meta) GetDynamicLevel() uint32 {
	if x != nil {
		return x.DynamicLevel
	}
	return 0
}

func (x *Meta) GetRealPath() string {
	if x != nil {
		return x.RealPath
	}
	return ""
}

// The data of menu list | 菜单列表数据
type MenuInfoListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64       `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*MenuInfo  `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *MenuInfoListResp) Reset() {
	*x = MenuInfoListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MenuInfoListResp) ProtoMessage() {}

func (x *MenuInfoListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[30]
	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 MenuInfoListResp.ProtoReflect.Descriptor instead.
func (*MenuInfoListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{30}
}

func (x *MenuInfoListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *MenuInfoListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *MenuInfoListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *MenuInfoListResp) GetData() []*MenuInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

// The response data of role menu list data | 角色菜单列表数据
type MenuListBase struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ParentID  uint32          `protobuf:"varint,1,opt,name=parentID,proto3" json:"parentID" form:"parentID" query:"parentID"`
	Level     uint32          `protobuf:"varint,2,opt,name=level,proto3" json:"level" form:"level" query:"level"`
	Path      string          `protobuf:"bytes,3,opt,name=path,proto3" json:"path" form:"path" query:"path"`
	Name      string          `protobuf:"bytes,4,opt,name=name,proto3" json:"name" form:"name" query:"name"`
	Redirect  string          `protobuf:"bytes,5,opt,name=redirect,proto3" json:"redirect" form:"redirect" query:"redirect"`
	Component string          `protobuf:"bytes,6,opt,name=component,proto3" json:"component" form:"component" query:"component"`
	OrderNo   uint32          `protobuf:"varint,7,opt,name=orderNo,proto3" json:"orderNo" form:"orderNo" query:"orderNo"`
	Disabled  bool            `protobuf:"varint,8,opt,name=disabled,proto3" json:"disabled" form:"disabled" query:"disabled"`
	Children  []*MenuListBase `protobuf:"bytes,9,rep,name=children,proto3" json:"children" form:"children" query:"children"`
	Meta      *Meta           `protobuf:"bytes,10,opt,name=meta,proto3" json:"meta" form:"meta" query:"meta"`
}

func (x *MenuListBase) Reset() {
	*x = MenuListBase{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MenuListBase) ProtoMessage() {}

func (x *MenuListBase) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[31]
	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 MenuListBase.ProtoReflect.Descriptor instead.
func (*MenuListBase) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{31}
}

func (x *MenuListBase) GetParentID() uint32 {
	if x != nil {
		return x.ParentID
	}
	return 0
}

func (x *MenuListBase) GetLevel() uint32 {
	if x != nil {
		return x.Level
	}
	return 0
}

func (x *MenuListBase) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

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

func (x *MenuListBase) GetRedirect() string {
	if x != nil {
		return x.Redirect
	}
	return ""
}

func (x *MenuListBase) GetComponent() string {
	if x != nil {
		return x.Component
	}
	return ""
}

func (x *MenuListBase) GetOrderNo() uint32 {
	if x != nil {
		return x.OrderNo
	}
	return 0
}

func (x *MenuListBase) GetDisabled() bool {
	if x != nil {
		return x.Disabled
	}
	return false
}

func (x *MenuListBase) GetChildren() []*MenuListBase {
	if x != nil {
		return x.Children
	}
	return nil
}

func (x *MenuListBase) GetMeta() *Meta {
	if x != nil {
		return x.Meta
	}
	return nil
}

// Create or update menu extra parameters request params | 创建或更新菜单额外参数的请求参数
type CreateOrUpdateMenuParamReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID     uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	MenuID uint64 `protobuf:"varint,2,opt,name=menuID,proto3" json:"menuID" form:"menuID" query:"menuID"`
	Type   string `protobuf:"bytes,3,opt,name=type,proto3" json:"type" form:"type" query:"type"`
	Key    string `protobuf:"bytes,4,opt,name=key,proto3" json:"key" form:"key" query:"key"`
	Value  string `protobuf:"bytes,5,opt,name=value,proto3" json:"value" form:"value" query:"value"`
}

func (x *CreateOrUpdateMenuParamReq) Reset() {
	*x = CreateOrUpdateMenuParamReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateOrUpdateMenuParamReq) ProtoMessage() {}

func (x *CreateOrUpdateMenuParamReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[32]
	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 CreateOrUpdateMenuParamReq.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateMenuParamReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{32}
}

func (x *CreateOrUpdateMenuParamReq) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *CreateOrUpdateMenuParamReq) GetMenuID() uint64 {
	if x != nil {
		return x.MenuID
	}
	return 0
}

func (x *CreateOrUpdateMenuParamReq) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *CreateOrUpdateMenuParamReq) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *CreateOrUpdateMenuParamReq) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

// The response data of menu parameters  | 菜单参数返回数据
type MenuParamResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode   base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg    string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	ID        uint64       `protobuf:"varint,3,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	Type      string       `protobuf:"bytes,4,opt,name=type,proto3" json:"type" form:"type" query:"type"`
	Key       string       `protobuf:"bytes,5,opt,name=key,proto3" json:"key" form:"key" query:"key"`
	Value     string       `protobuf:"bytes,6,opt,name=value,proto3" json:"value" form:"value" query:"value"`
	CreatedAt string       `protobuf:"bytes,7,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt string       `protobuf:"bytes,8,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
}

func (x *MenuParamResp) Reset() {
	*x = MenuParamResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MenuParamResp) ProtoMessage() {}

func (x *MenuParamResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[33]
	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 MenuParamResp.ProtoReflect.Descriptor instead.
func (*MenuParamResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{33}
}

func (x *MenuParamResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *MenuParamResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *MenuParamResp) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *MenuParamResp) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *MenuParamResp) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *MenuParamResp) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (x *MenuParamResp) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *MenuParamResp) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

// The  data of menu parameters list | 菜单参数列表数据
type MenuParamListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode     `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string           `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64           `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*MenuParamResp `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *MenuParamListResp) Reset() {
	*x = MenuParamListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MenuParamListResp) ProtoMessage() {}

func (x *MenuParamListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[34]
	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 MenuParamListResp.ProtoReflect.Descriptor instead.
func (*MenuParamListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{34}
}

func (x *MenuParamListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *MenuParamListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *MenuParamListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *MenuParamListResp) GetData() []*MenuParamResp {
	if x != nil {
		return x.Data
	}
	return nil
}

// Create or update role information params | 创建或更新角色信息参数
type RoleInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID            uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	Name          string `protobuf:"bytes,2,opt,name=name,proto3" json:"name" form:"name" query:"name"`
	Value         string `protobuf:"bytes,3,opt,name=value,proto3" json:"value" form:"value" query:"value"`
	DefaultRouter string `protobuf:"bytes,4,opt,name=defaultRouter,proto3" json:"defaultRouter" form:"defaultRouter" query:"defaultRouter"`
	Status        uint64 `protobuf:"varint,5,opt,name=status,proto3" json:"status" form:"status" query:"status"`
	Remark        string `protobuf:"bytes,6,opt,name=remark,proto3" json:"remark" form:"remark" query:"remark"`
	OrderNo       uint32 `protobuf:"varint,7,opt,name=orderNo,proto3" json:"orderNo" form:"orderNo" query:"orderNo"`
	CreatedAt     string `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt     string `protobuf:"bytes,9,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
}

func (x *RoleInfo) Reset() {
	*x = RoleInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RoleInfo) ProtoMessage() {}

func (x *RoleInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[35]
	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 RoleInfo.ProtoReflect.Descriptor instead.
func (*RoleInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{35}
}

func (x *RoleInfo) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

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

func (x *RoleInfo) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (x *RoleInfo) GetDefaultRouter() string {
	if x != nil {
		return x.DefaultRouter
	}
	return ""
}

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

func (x *RoleInfo) GetRemark() string {
	if x != nil {
		return x.Remark
	}
	return ""
}

func (x *RoleInfo) GetOrderNo() uint32 {
	if x != nil {
		return x.OrderNo
	}
	return 0
}

func (x *RoleInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *RoleInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

// The response data of role info | 角色信息返回数据
type RoleInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode       base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg        string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	ID            uint64       `protobuf:"varint,3,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	Name          string       `protobuf:"bytes,4,opt,name=name,proto3" json:"name" form:"name" query:"name"`
	Value         string       `protobuf:"bytes,5,opt,name=value,proto3" json:"value" form:"value" query:"value"`
	DefaultRouter string       `protobuf:"bytes,6,opt,name=defaultRouter,proto3" json:"defaultRouter" form:"defaultRouter" query:"defaultRouter"`
	Status        uint64       `protobuf:"varint,7,opt,name=status,proto3" json:"status" form:"status" query:"status"`
	Remark        string       `protobuf:"bytes,8,opt,name=remark,proto3" json:"remark" form:"remark" query:"remark"`
	OrderNo       uint32       `protobuf:"varint,9,opt,name=orderNo,proto3" json:"orderNo" form:"orderNo" query:"orderNo"`
	CreatedAt     string       `protobuf:"bytes,10,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt     string       `protobuf:"bytes,11,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
}

func (x *RoleInfoResp) Reset() {
	*x = RoleInfoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RoleInfoResp) ProtoMessage() {}

func (x *RoleInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[36]
	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 RoleInfoResp.ProtoReflect.Descriptor instead.
func (*RoleInfoResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{36}
}

func (x *RoleInfoResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *RoleInfoResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *RoleInfoResp) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

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

func (x *RoleInfoResp) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (x *RoleInfoResp) GetDefaultRouter() string {
	if x != nil {
		return x.DefaultRouter
	}
	return ""
}

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

func (x *RoleInfoResp) GetRemark() string {
	if x != nil {
		return x.Remark
	}
	return ""
}

func (x *RoleInfoResp) GetOrderNo() uint32 {
	if x != nil {
		return x.OrderNo
	}
	return 0
}

func (x *RoleInfoResp) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *RoleInfoResp) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

// Get role list response | 获取角色列表响应
type RoleListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64       `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*RoleInfo  `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *RoleListResp) Reset() {
	*x = RoleListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RoleListResp) ProtoMessage() {}

func (x *RoleListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[37]
	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 RoleListResp.ProtoReflect.Descriptor instead.
func (*RoleListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{37}
}

func (x *RoleListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *RoleListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *RoleListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *RoleListResp) GetData() []*RoleInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

// The response data of Token information | Token信息
type TokenInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID        uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	CreatedAt string `protobuf:"bytes,2,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt string `protobuf:"bytes,3,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
	UserID    uint64 `protobuf:"varint,4,opt,name=userID,proto3" json:"userID" form:"userID" query:"userID"`
	UserName  string `protobuf:"bytes,5,opt,name=userName,proto3" json:"userName" form:"userName" query:"userName"`
	Token     string `protobuf:"bytes,6,opt,name=token,proto3" json:"token" form:"token" query:"token"`
	Source    string `protobuf:"bytes,7,opt,name=source,proto3" json:"source" form:"source" query:"source"`
	ExpiredAt string `protobuf:"bytes,8,opt,name=expiredAt,proto3" json:"expiredAt" form:"expiredAt" query:"expiredAt"`
}

func (x *TokenInfo) Reset() {
	*x = TokenInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TokenInfo) ProtoMessage() {}

func (x *TokenInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[38]
	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 TokenInfo.ProtoReflect.Descriptor instead.
func (*TokenInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{38}
}

func (x *TokenInfo) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *TokenInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *TokenInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

func (x *TokenInfo) GetUserID() uint64 {
	if x != nil {
		return x.UserID
	}
	return 0
}

func (x *TokenInfo) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *TokenInfo) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *TokenInfo) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *TokenInfo) GetExpiredAt() string {
	if x != nil {
		return x.ExpiredAt
	}
	return ""
}

// The response data of Token list | Token列表返回数据
type TokenListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64       `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*TokenInfo `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *TokenListResp) Reset() {
	*x = TokenListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TokenListResp) ProtoMessage() {}

func (x *TokenListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[39]
	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 TokenListResp.ProtoReflect.Descriptor instead.
func (*TokenListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{39}
}

func (x *TokenListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *TokenListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *TokenListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *TokenListResp) GetData() []*TokenInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

// Get token list request params | token列表请求参数
type TokenListReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Page     uint64 `protobuf:"varint,1,opt,name=page,proto3" json:"page" form:"page" query:"page"`
	PageSize uint64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize" form:"pageSize" query:"pageSize"`
	Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username" form:"username" query:"username"`
	UserID   uint64 `protobuf:"varint,4,opt,name=userID,proto3" json:"userID" form:"userID" query:"userID"`
}

func (x *TokenListReq) Reset() {
	*x = TokenListReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TokenListReq) ProtoMessage() {}

func (x *TokenListReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[40]
	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 TokenListReq.ProtoReflect.Descriptor instead.
func (*TokenListReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{40}
}

func (x *TokenListReq) GetPage() uint64 {
	if x != nil {
		return x.Page
	}
	return 0
}

func (x *TokenListReq) GetPageSize() uint64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *TokenListReq) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *TokenListReq) GetUserID() uint64 {
	if x != nil {
		return x.UserID
	}
	return 0
}

// Delete request params | token删除请求参数
type DeleteReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserID uint64 `protobuf:"varint,1,opt,name=userID,proto3" json:"userID" form:"userID" query:"userID"`
}

func (x *DeleteReq) Reset() {
	*x = DeleteReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DeleteReq) ProtoMessage() {}

func (x *DeleteReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[41]
	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 DeleteReq.ProtoReflect.Descriptor instead.
func (*DeleteReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{41}
}

func (x *DeleteReq) GetUserID() uint64 {
	if x != nil {
		return x.UserID
	}
	return 0
}

// The response data of dictionary information | 字典信息
type DictionaryInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID          uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	Title       string `protobuf:"bytes,2,opt,name=title,proto3" json:"title" form:"title" query:"title"`
	Name        string `protobuf:"bytes,3,opt,name=name,proto3" json:"name" form:"name" query:"name"`
	Status      uint64 `protobuf:"varint,4,opt,name=status,proto3" json:"status" form:"status" query:"status"`
	Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description" form:"description" query:"description"`
	CreatedAt   string `protobuf:"bytes,6,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt   string `protobuf:"bytes,7,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
}

func (x *DictionaryInfo) Reset() {
	*x = DictionaryInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DictionaryInfo) ProtoMessage() {}

func (x *DictionaryInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[42]
	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 DictionaryInfo.ProtoReflect.Descriptor instead.
func (*DictionaryInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{42}
}

func (x *DictionaryInfo) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *DictionaryInfo) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

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

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

func (x *DictionaryInfo) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *DictionaryInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *DictionaryInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

// The data of dictionary list | 字典列表数据
type DictionaryListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode      `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string            `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64            `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*DictionaryInfo `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *DictionaryListResp) Reset() {
	*x = DictionaryListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DictionaryListResp) ProtoMessage() {}

func (x *DictionaryListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[43]
	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 DictionaryListResp.ProtoReflect.Descriptor instead.
func (*DictionaryListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{43}
}

func (x *DictionaryListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *DictionaryListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *DictionaryListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *DictionaryListResp) GetData() []*DictionaryInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

// The dictionary KV information | 字典键值信息
type DictionaryDetail struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID        uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID" form:"ID" query:"ID"`
	Title     string `protobuf:"bytes,2,opt,name=title,proto3" json:"title" form:"title" query:"title"`
	Key       string `protobuf:"bytes,3,opt,name=key,proto3" json:"key" form:"key" query:"key"`
	Value     string `protobuf:"bytes,4,opt,name=value,proto3" json:"value" form:"value" query:"value"`
	Status    uint64 `protobuf:"varint,5,opt,name=status,proto3" json:"status" form:"status" query:"status"`
	CreatedAt string `protobuf:"bytes,6,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt string `protobuf:"bytes,7,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
	ParentID  uint64 `protobuf:"varint,8,opt,name=parentID,proto3" json:"parentID" form:"parentID" query:"parentID"`
}

func (x *DictionaryDetail) Reset() {
	*x = DictionaryDetail{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DictionaryDetail) ProtoMessage() {}

func (x *DictionaryDetail) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[44]
	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 DictionaryDetail.ProtoReflect.Descriptor instead.
func (*DictionaryDetail) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{44}
}

func (x *DictionaryDetail) GetID() uint64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *DictionaryDetail) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *DictionaryDetail) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *DictionaryDetail) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

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

func (x *DictionaryDetail) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *DictionaryDetail) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

func (x *DictionaryDetail) GetParentID() uint64 {
	if x != nil {
		return x.ParentID
	}
	return 0
}

// The response data of dictionary KV information list | 字典键值列表数据
type DictionaryDetailListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode        `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string              `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64              `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*DictionaryDetail `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *DictionaryDetailListResp) Reset() {
	*x = DictionaryDetailListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DictionaryDetailListResp) ProtoMessage() {}

func (x *DictionaryDetailListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[45]
	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 DictionaryDetailListResp.ProtoReflect.Descriptor instead.
func (*DictionaryDetailListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{45}
}

func (x *DictionaryDetailListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *DictionaryDetailListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *DictionaryDetailListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *DictionaryDetailListResp) GetData() []*DictionaryDetail {
	if x != nil {
		return x.Data
	}
	return nil
}

// The request data of dictionary KV information | 字典名获取字典键值请求数据
type DictionaryDetailReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name" form:"name" query:"name"`
}

func (x *DictionaryDetailReq) Reset() {
	*x = DictionaryDetailReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DictionaryDetailReq) ProtoMessage() {}

func (x *DictionaryDetailReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[46]
	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 DictionaryDetailReq.ProtoReflect.Descriptor instead.
func (*DictionaryDetailReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{46}
}

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

// The request data of dictionary list | 字典列表请求数据
type DictionaryPageReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Title    string `protobuf:"bytes,1,opt,name=title,proto3" json:"title" form:"title" query:"title"`
	Name     string `protobuf:"bytes,2,opt,name=name,proto3" json:"name" form:"name" query:"name"`
	Page     uint64 `protobuf:"varint,3,opt,name=page,proto3" json:"page" form:"page" query:"page"`
	PageSize uint64 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize" form:"pageSize" query:"pageSize"`
}

func (x *DictionaryPageReq) Reset() {
	*x = DictionaryPageReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DictionaryPageReq) ProtoMessage() {}

func (x *DictionaryPageReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[47]
	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 DictionaryPageReq.ProtoReflect.Descriptor instead.
func (*DictionaryPageReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{47}
}

func (x *DictionaryPageReq) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

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

func (x *DictionaryPageReq) GetPage() uint64 {
	if x != nil {
		return x.Page
	}
	return 0
}

func (x *DictionaryPageReq) GetPageSize() uint64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

// Oauth log in request | Oauth 登录请求
type OauthLoginReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// format: random string-provider name | 格式：随机字符串-供应商名称
	State    string `protobuf:"bytes,1,opt,name=state,proto3" json:"state" form:"state" query:"state"`
	Provider string `protobuf:"bytes,2,opt,name=provider,proto3" json:"provider" form:"provider" query:"provider"`
	// Login type for wecom: QRCode, Inside, Quick | 企业微信登录类型：二维码，应用内部，快速 （其他应用的OAuth不需要传）
	LoginType string `protobuf:"bytes,3,opt,name=LoginType,proto3" json:"LoginType" form:"LoginType" query:"LoginType"`
}

func (x *OauthLoginReq) Reset() {
	*x = OauthLoginReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OauthLoginReq) ProtoMessage() {}

func (x *OauthLoginReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[48]
	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 OauthLoginReq.ProtoReflect.Descriptor instead.
func (*OauthLoginReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{48}
}

func (x *OauthLoginReq) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

func (x *OauthLoginReq) GetProvider() string {
	if x != nil {
		return x.Provider
	}
	return ""
}

func (x *OauthLoginReq) GetLoginType() string {
	if x != nil {
		return x.LoginType
	}
	return ""
}

// Redirect information | 跳转网址
type OauthRedirectResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Url     string       `protobuf:"bytes,3,opt,name=url,proto3" json:"url" form:"url" query:"url"`
}

func (x *OauthRedirectResp) Reset() {
	*x = OauthRedirectResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OauthRedirectResp) ProtoMessage() {}

func (x *OauthRedirectResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[49]
	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 OauthRedirectResp.ProtoReflect.Descriptor instead.
func (*OauthRedirectResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{49}
}

func (x *OauthRedirectResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *OauthRedirectResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *OauthRedirectResp) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

// The response data of oauth provider information | 提供者信息
type ProviderInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id           uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id" form:"id" query:"id"`
	Name         string `protobuf:"bytes,2,opt,name=name,proto3" json:"name" form:"name" query:"name"`
	ClientID     string `protobuf:"bytes,3,opt,name=clientID,proto3" json:"clientID" form:"clientID" query:"clientID"`
	ClientSecret string `protobuf:"bytes,4,opt,name=clientSecret,proto3" json:"clientSecret" form:"clientSecret" query:"clientSecret"`
	RedirectUrl  string `protobuf:"bytes,5,opt,name=redirectUrl,proto3" json:"redirectUrl" form:"redirectUrl" query:"redirectUrl"`
	Scopes       string `protobuf:"bytes,6,opt,name=scopes,proto3" json:"scopes" form:"scopes" query:"scopes"`
	AuthUrl      string `protobuf:"bytes,7,opt,name=authUrl,proto3" json:"authUrl" form:"authUrl" query:"authUrl"`
	TokenUrl     string `protobuf:"bytes,8,opt,name=tokenUrl,proto3" json:"tokenUrl" form:"tokenUrl" query:"tokenUrl"`
	AuthStyle    uint64 `protobuf:"varint,9,opt,name=authStyle,proto3" json:"authStyle" form:"authStyle" query:"authStyle"`
	InfoUrl      string `protobuf:"bytes,10,opt,name=infoUrl,proto3" json:"infoUrl" form:"infoUrl" query:"infoUrl"`
	CreatedAt    string `protobuf:"bytes,11,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt    string `protobuf:"bytes,12,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
}

func (x *ProviderInfo) Reset() {
	*x = ProviderInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProviderInfo) ProtoMessage() {}

func (x *ProviderInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[50]
	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 ProviderInfo.ProtoReflect.Descriptor instead.
func (*ProviderInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{50}
}

func (x *ProviderInfo) GetId() uint64 {
	if x != nil {
		return x.Id
	}
	return 0
}

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

func (x *ProviderInfo) GetClientID() string {
	if x != nil {
		return x.ClientID
	}
	return ""
}

func (x *ProviderInfo) GetClientSecret() string {
	if x != nil {
		return x.ClientSecret
	}
	return ""
}

func (x *ProviderInfo) GetRedirectUrl() string {
	if x != nil {
		return x.RedirectUrl
	}
	return ""
}

func (x *ProviderInfo) GetScopes() string {
	if x != nil {
		return x.Scopes
	}
	return ""
}

func (x *ProviderInfo) GetAuthUrl() string {
	if x != nil {
		return x.AuthUrl
	}
	return ""
}

func (x *ProviderInfo) GetTokenUrl() string {
	if x != nil {
		return x.TokenUrl
	}
	return ""
}

func (x *ProviderInfo) GetAuthStyle() uint64 {
	if x != nil {
		return x.AuthStyle
	}
	return 0
}

func (x *ProviderInfo) GetInfoUrl() string {
	if x != nil {
		return x.InfoUrl
	}
	return ""
}

func (x *ProviderInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *ProviderInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

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

	Page     uint64 `protobuf:"varint,1,opt,name=page,proto3" json:"page" form:"page" query:"page"`
	PageSize uint64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize" form:"pageSize" query:"pageSize"`
	Name     string `protobuf:"bytes,3,opt,name=name,proto3" json:"name" form:"name" query:"name"`
}

func (x *ProviderListReq) Reset() {
	*x = ProviderListReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProviderListReq) ProtoMessage() {}

func (x *ProviderListReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[51]
	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 ProviderListReq.ProtoReflect.Descriptor instead.
func (*ProviderListReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{51}
}

func (x *ProviderListReq) GetPage() uint64 {
	if x != nil {
		return x.Page
	}
	return 0
}

func (x *ProviderListReq) GetPageSize() uint64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

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

// The response data of provider list | 提供商列表返回数据
type ProviderListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode    `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string          `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64          `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*ProviderInfo `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *ProviderListResp) Reset() {
	*x = ProviderListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ProviderListResp) ProtoMessage() {}

func (x *ProviderListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[52]
	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 ProviderListResp.ProtoReflect.Descriptor instead.
func (*ProviderListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{52}
}

func (x *ProviderListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *ProviderListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *ProviderListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *ProviderListResp) GetData() []*ProviderInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

// Oauth login callback request | Oauth 登录回调请求
type CallbackReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state" form:"state" query:"state"`
	Code  string `protobuf:"bytes,2,opt,name=code,proto3" json:"code" form:"code" query:"code"`
}

func (x *CallbackReq) Reset() {
	*x = CallbackReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CallbackReq) ProtoMessage() {}

func (x *CallbackReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[53]
	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 CallbackReq.ProtoReflect.Descriptor instead.
func (*CallbackReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{53}
}

func (x *CallbackReq) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

func (x *CallbackReq) GetCode() string {
	if x != nil {
		return x.Code
	}
	return ""
}

// The response data of logs | 日志信息
type LogsInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type        string `protobuf:"bytes,1,opt,name=type,proto3" json:"type" form:"type" query:"type"`
	Method      string `protobuf:"bytes,2,opt,name=method,proto3" json:"method" form:"method" query:"method"`
	Api         string `protobuf:"bytes,3,opt,name=api,proto3" json:"api" form:"api" query:"api"`
	Success     bool   `protobuf:"varint,4,opt,name=success,proto3" json:"success" form:"success" query:"success"`
	ReqContent  string `protobuf:"bytes,5,opt,name=reqContent,proto3" json:"reqContent" form:"reqContent" query:"reqContent"`
	RespContent string `protobuf:"bytes,6,opt,name=respContent,proto3" json:"respContent" form:"respContent" query:"respContent"`
	Ip          string `protobuf:"bytes,7,opt,name=ip,proto3" json:"ip" form:"ip" query:"ip"`
	UserAgent   string `protobuf:"bytes,8,opt,name=userAgent,proto3" json:"userAgent" form:"userAgent" query:"userAgent"`
	Operator    string `protobuf:"bytes,9,opt,name=operator,proto3" json:"operator" form:"operator" query:"operator"`
	Time        uint32 `protobuf:"varint,10,opt,name=time,proto3" json:"time" form:"time" query:"time"`
	CreatedAt   string `protobuf:"bytes,11,opt,name=createdAt,proto3" json:"createdAt" form:"createdAt" query:"createdAt"`
	UpdatedAt   string `protobuf:"bytes,12,opt,name=updatedAt,proto3" json:"updatedAt" form:"updatedAt" query:"updatedAt"`
}

func (x *LogsInfo) Reset() {
	*x = LogsInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LogsInfo) ProtoMessage() {}

func (x *LogsInfo) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[54]
	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 LogsInfo.ProtoReflect.Descriptor instead.
func (*LogsInfo) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{54}
}

func (x *LogsInfo) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *LogsInfo) GetMethod() string {
	if x != nil {
		return x.Method
	}
	return ""
}

func (x *LogsInfo) GetApi() string {
	if x != nil {
		return x.Api
	}
	return ""
}

func (x *LogsInfo) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *LogsInfo) GetReqContent() string {
	if x != nil {
		return x.ReqContent
	}
	return ""
}

func (x *LogsInfo) GetRespContent() string {
	if x != nil {
		return x.RespContent
	}
	return ""
}

func (x *LogsInfo) GetIp() string {
	if x != nil {
		return x.Ip
	}
	return ""
}

func (x *LogsInfo) GetUserAgent() string {
	if x != nil {
		return x.UserAgent
	}
	return ""
}

func (x *LogsInfo) GetOperator() string {
	if x != nil {
		return x.Operator
	}
	return ""
}

func (x *LogsInfo) GetTime() uint32 {
	if x != nil {
		return x.Time
	}
	return 0
}

func (x *LogsInfo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *LogsInfo) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

// The request data of logs list | 日志列表请求数据
type LogsListReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Page     uint64 `protobuf:"varint,1,opt,name=page,proto3" json:"page" form:"page" query:"page"`
	PageSize uint64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize" form:"pageSize" query:"pageSize"`
	Type     string `protobuf:"bytes,3,opt,name=type,proto3" json:"type" form:"type" query:"type"`
	Method   string `protobuf:"bytes,4,opt,name=method,proto3" json:"method" form:"method" query:"method"`
	Api      string `protobuf:"bytes,5,opt,name=api,proto3" json:"api" form:"api" query:"api"`
	Success  string `protobuf:"bytes,6,opt,name=success,proto3" json:"success" form:"success" query:"success"`
	Operator string `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator" form:"operator" query:"operator"`
}

func (x *LogsListReq) Reset() {
	*x = LogsListReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LogsListReq) ProtoMessage() {}

func (x *LogsListReq) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[55]
	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 LogsListReq.ProtoReflect.Descriptor instead.
func (*LogsListReq) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{55}
}

func (x *LogsListReq) GetPage() uint64 {
	if x != nil {
		return x.Page
	}
	return 0
}

func (x *LogsListReq) GetPageSize() uint64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *LogsListReq) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *LogsListReq) GetMethod() string {
	if x != nil {
		return x.Method
	}
	return ""
}

func (x *LogsListReq) GetApi() string {
	if x != nil {
		return x.Api
	}
	return ""
}

func (x *LogsListReq) GetSuccess() string {
	if x != nil {
		return x.Success
	}
	return ""
}

func (x *LogsListReq) GetOperator() string {
	if x != nil {
		return x.Operator
	}
	return ""
}

// The response data of logs list | 日志列表返回数据
type LogsListResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode base.ErrCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=base.ErrCode" json:"errCode" form:"errCode" query:"errCode"`
	ErrMsg  string       `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg" form:"errMsg" query:"errMsg"`
	Total   uint64       `protobuf:"varint,3,opt,name=total,proto3" json:"total" form:"total" query:"total"`
	Data    []*LogsInfo  `protobuf:"bytes,4,rep,name=data,proto3" json:"data" form:"data" query:"data"`
}

func (x *LogsListResp) Reset() {
	*x = LogsListResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_admin_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LogsListResp) ProtoMessage() {}

func (x *LogsListResp) ProtoReflect() protoreflect.Message {
	mi := &file_admin_proto_msgTypes[56]
	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 LogsListResp.ProtoReflect.Descriptor instead.
func (*LogsListResp) Descriptor() ([]byte, []int) {
	return file_admin_proto_rawDescGZIP(), []int{56}
}

func (x *LogsListResp) GetErrCode() base.ErrCode {
	if x != nil {
		return x.ErrCode
	}
	return base.ErrCode(0)
}

func (x *LogsListResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *LogsListResp) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *LogsListResp) GetData() []*LogsInfo {
	if x != nil {
		return x.Data
	}
	return nil
}

var File_admin_proto protoreflect.FileDescriptor

var file_admin_proto_rawDesc = []byte{
	0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x0a, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x42, 0x0a, 0x09, 0x53,
	0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x35, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x53, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0xca, 0xbb, 0x18,
	0x13, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x53, 0x74, 0x72, 0x2c, 0x20, 0x72, 0x65, 0x71, 0x75,
	0x69, 0x72, 0x65, 0x64, 0x52, 0x09, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x53, 0x74, 0x72, 0x22,
	0x6b, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a,
	0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d,
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65,
	0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1c,
	0x0a, 0x09, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x53, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x53, 0x74, 0x72, 0x22, 0x68, 0x0a, 0x09,
	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73,
	0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x22, 0x8a, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x74, 0x63,
	0x68, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72,
	0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61,
	0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x63,
	0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x67,
	0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x67, 0x50,
	0x61, 0x74, 0x68, 0x22, 0x56, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x2b,
	0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e,
	0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x61, 0x72, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x0e, 0x50,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a,
	0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
	0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x54, 0x0a, 0x0f, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06,
	0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f,
	0x6c, 0x65, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x50, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22,
	0x7a, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
	0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
	0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x49, 0x44,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x49,
	0x44, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x22, 0x3e, 0x0a, 0x0a, 0x53,
	0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6c,
	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c,
	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4d, 0x0a, 0x09, 0x4c,
	0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05,
	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b,
	0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0b, 0x50,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72,
	0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61,
	0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
	0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
	0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12,
	0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x6e, 0x0a,
	0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
	0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
	0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12,
	0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x93, 0x01,
	0x0a, 0x0b, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a,
	0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61,
	0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68,
	0x61, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x12, 0x14, 0x0a,
	0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d,
	0x61, 0x69, 0x6c, 0x22, 0x6f, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f,
	0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73,
	0x77, 0x6f, 0x72, 0x64, 0x22, 0xf1, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f,
	0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x0e,
	0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16,
	0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x16,
	0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x9f, 0x03, 0x0a, 0x0c, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73,
	0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76,
	0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74,
	0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f,
	0x62, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69,
	0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
	0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a,
	0x0a, 0x08, 0x73, 0x69, 0x64, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x73, 0x69, 0x64, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x55,
	0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65,
	0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62,
	0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbb, 0x01, 0x0a, 0x0b,
	0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70,
	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62,
	0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x22, 0x63, 0x0a, 0x0c, 0x50, 0x65, 0x72,
	0x6d, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73,
	0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f,
	0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb9,
	0x01, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x0b, 0x41,
	0x70, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72,
	0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61,
	0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74,
	0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61,
	0x6c, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa0, 0x01, 0x0a, 0x0a, 0x41, 0x70, 0x69, 0x50, 0x61, 0x67,
	0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65,
	0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65,
	0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65,
	0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68,
	0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x3e, 0x0a, 0x10, 0x41, 0x70, 0x69, 0x41,
	0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04,
	0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
	0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x64, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74,
	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c,
	0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49,
	0x44, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x17, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74, 0x68, 0x6f,
	0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9e,
	0x01, 0x0a, 0x18, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4c,
	0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65,
	0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62,
	0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
	0x48, 0x0a, 0x14, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x12,
	0x18, 0x0a, 0x07, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04,
	0x52, 0x07, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x44, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x15, 0x4d, 0x65,
	0x6e, 0x75, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43,
	0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72,
	0x72, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07,
	0x4d, 0x65, 0x6e, 0x75, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x4d,
	0x65, 0x6e, 0x75, 0x49, 0x44, 0x73, 0x22, 0xae, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71,
	0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44,
	0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05,
	0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76,
	0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1a,
	0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65,
	0x6e, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65,
	0x6e, 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0b,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x65, 0x74,
	0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x8a, 0x03, 0x0a, 0x08, 0x4d, 0x65, 0x6e, 0x75,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1a,
	0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65,
	0x6e, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65,
	0x6e, 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72,
	0x65, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64,
	0x72, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04,
	0x6d, 0x65, 0x74, 0x61, 0x22, 0xa8, 0x03, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x14, 0x0a,
	0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69,
	0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x69, 0x64, 0x65, 0x4d,
	0x65, 0x6e, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x69, 0x64, 0x65, 0x4d,
	0x65, 0x6e, 0x75, 0x12, 0x26, 0x0a, 0x0e, 0x68, 0x69, 0x64, 0x65, 0x42, 0x72, 0x65, 0x61, 0x64,
	0x63, 0x72, 0x75, 0x6d, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x69, 0x64,
	0x65, 0x42, 0x72, 0x65, 0x61, 0x64, 0x63, 0x72, 0x75, 0x6d, 0x62, 0x12, 0x2c, 0x0a, 0x11, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x6e, 0x75,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41,
	0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x67, 0x6e,
	0x6f, 0x72, 0x65, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c,
	0x69, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x12, 0x1a, 0x0a,
	0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x72, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x72, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x72,
	0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63,
	0x61, 0x72, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x68, 0x69, 0x64,
	0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x49, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x68, 0x69, 0x64, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64,
	0x72, 0x65, 0x6e, 0x49, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x66,
	0x69, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x66, 0x66, 0x69, 0x78, 0x12,
	0x22, 0x0a, 0x0c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4c, 0x65,
	0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x22,
	0x8e, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65,
	0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x22, 0xaa, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x73,
	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a,
	0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65,
	0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72,
	0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72,
	0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70,
	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12,
	0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x63,
	0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
	0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x04,
	0x6d, 0x65, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x80, 0x01,
	0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x4d, 0x65, 0x6e, 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02,
	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06,
	0x6d, 0x65, 0x6e, 0x75, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x65,
	0x6e, 0x75, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x22, 0xd8, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x6e, 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x65,
	0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f,
	0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65,
	0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72,
	0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a,
	0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x11,
	0x4d, 0x65, 0x6e, 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64,
	0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72,
	0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d,
	0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d,
	0x65, 0x6e, 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12,
	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72,
	0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12,
	0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xb5, 0x02, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74,
	0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
	0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e,
	0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
	0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x8a, 0x01,
	0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27,
	0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07,
	0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12,
	0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x6f, 0x6c, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd7, 0x01, 0x0a, 0x09, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16,
	0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65,
	0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72,
	0x65, 0x64, 0x41, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x24, 0x0a,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x64,
	0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x22, 0x72, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53,
	0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53,
	0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x23, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0xc0, 0x01, 0x0a,
	0x0e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12,
	0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22,
	0x96, 0x01, 0x0a, 0x12, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x29, 0x0a,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x64,
	0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x01, 0x0a, 0x10, 0x44, 0x69, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a,
	0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a,
	0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69,
	0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
	0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x9e, 0x01, 0x0a, 0x18,
	0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12,
	0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e,
	0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x13,
	0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x11, 0x44, 0x69, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05,
	0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74,
	0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61,
	0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61,
	0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x5f, 0x0a, 0x0d, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x4c,
	0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a,
	0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x67,
	0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x6f,
	0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x66, 0x0a, 0x11, 0x4f, 0x61, 0x75, 0x74, 0x68,
	0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07,
	0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e,
	0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72,
	0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a,
	0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22,
	0xd6, 0x02, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44,
	0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65,
	0x63, 0x72, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x18,
	0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x53, 0x74, 0x79, 0x6c,
	0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x53, 0x74, 0x79,
	0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x55, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x76,
	0x69, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70,
	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
	0x92, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72,
	0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65,
	0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x22, 0x37, 0x0a, 0x0b, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
	0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xbe, 0x02,
	0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x6e, 0x74, 0x65,
	0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x43, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e,
	0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65,
	0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x69,
	0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xb1,
	0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12,
	0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x61,
	0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70,
	0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07,
	0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x43,
	0x6f, 0x64, 0x65, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72,
	0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x2e, 0x4c, 0x6f, 0x67, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32,
	0xe9, 0x02, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x0c, 0x49, 0x6e, 0x69,
	0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x15, 0xca, 0xc1, 0x18, 0x11, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x69, 0x6e, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3b, 0x0a,
	0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x0b, 0x2e, 0x62,
	0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x0f, 0xca, 0xc1, 0x18, 0x0b, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x07, 0x43, 0x61,
	0x70, 0x74, 0x63, 0x68, 0x61, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x1a, 0x16, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x63,
	0x68, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x10, 0xca, 0xc1, 0x18, 0x0c,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x12, 0x50, 0x0a, 0x0f,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x61, 0x67, 0x12,
	0x10, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65,
	0x71, 0x1a, 0x11, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x22, 0x18, 0xd2, 0xc1, 0x18, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x61, 0x67, 0x12, 0x4b,
	0x0a, 0x0d, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12,
	0x10, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65,
	0x71, 0x1a, 0x10, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52,
	0x65, 0x73, 0x70, 0x22, 0x16, 0xd2, 0xc1, 0x18, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74,
	0x72, 0x75, 0x63, 0x74, 0x54, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xf0, 0x06, 0x0a, 0x04,
	0x75, 0x73, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
	0x12, 0x12, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x22, 0x11, 0xd2, 0xc1, 0x18, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x50,
	0x65, 0x72, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45,
	0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x65, 0x72,
	0x6d, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x18, 0xca, 0xc1, 0x18, 0x14, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70,
	0x65, 0x72, 0x6d, 0x12, 0x5f, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a,
	0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22,
	0x23, 0xd2, 0xc1, 0x18, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f,
	0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2d, 0x70, 0x61, 0x73, 0x73,
	0x77, 0x6f, 0x72, 0x64, 0x12, 0x56, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73,
	0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71,
	0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x22, 0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x0a,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e,
	0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e,
	0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
	0x73, 0x70, 0x22, 0x18, 0xca, 0xc1, 0x18, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x08,
	0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x22, 0x18, 0xca, 0xc1, 0x18, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x13, 0xe2, 0xc1, 0x18, 0x0f, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0d, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x11, 0x2e, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a,
	0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22,
	0x1b, 0xd2, 0xc1, 0x18, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f,
	0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x0b,
	0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0b, 0x2e, 0x62, 0x61,
	0x73, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1b, 0xca, 0xc1,
	0x18, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x73, 0x65,
	0x72, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x53, 0x0a, 0x10, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x13, 0x2e,
	0x62, 0x61, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52,
	0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x22, 0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x9f,
	0x02, 0x0a, 0x04, 0x61, 0x70, 0x69, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x41, 0x70, 0x69, 0x12, 0x0e, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x69,
	0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x22, 0x19, 0xd2, 0xc1, 0x18, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12,
	0x46, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x12, 0x0e, 0x2e, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x62,
	0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x19, 0xd2, 0xc1,
	0x18, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x41, 0x70, 0x69, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65,
	0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x22, 0x12, 0xe2, 0xc1, 0x18, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x2f, 0x61, 0x70, 0x69, 0x12, 0x49, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x11, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x69, 0x50, 0x61, 0x67, 0x65,
	0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x69, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x17, 0xca, 0xc1, 0x18, 0x13, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6c, 0x69, 0x73, 0x74,
	0x32, 0xff, 0x04, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x6c,
	0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
	0x79, 0x12, 0x24, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74, 0x68, 0x6f,
	0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42,
	0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x23, 0xd2, 0xc1, 0x18, 0x1f, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
	0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x6f, 0x0a, 0x12,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
	0x74, 0x79, 0x12, 0x24, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e,
	0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x23, 0xd2, 0xc1, 0x18, 0x1f, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
	0x74, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a,
	0x0c, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x0b, 0x2e,
	0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2e, 0x41, 0x70, 0x69, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4c,
	0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x21, 0xd2, 0xc1, 0x18,
	0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x68,
	0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x65,
	0x6e, 0x75, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x22, 0x24, 0xd2, 0xc1, 0x18, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x6d, 0x65, 0x6e,
	0x75, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x68, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12,
	0x1b, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62,
	0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x24, 0xd2, 0xc1,
	0x18, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x75, 0x74,
	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x12, 0x5e, 0x0a, 0x0d, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
	0x69, 0x74, 0x79, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71,
	0x1a, 0x1c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x75, 0x74,
	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x22,
	0xd2, 0xc1, 0x18, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61,
	0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x72, 0x6f,
	0x6c, 0x65, 0x32, 0x91, 0x06, 0x0a, 0x04, 0x6d, 0x65, 0x6e, 0x75, 0x12, 0x56, 0x0a, 0x0a, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x1c, 0x2e, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42,
	0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e,
	0x75, 0x12, 0x1c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x1a,
	0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22,
	0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f,
	0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x13, 0xe2, 0xc1, 0x18, 0x0f, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x12, 0x4c, 0x0a, 0x0a, 0x4d,
	0x65, 0x6e, 0x75, 0x42, 0x79, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d,
	0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22,
	0x18, 0xca, 0xc1, 0x18, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f,
	0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x50, 0x0a, 0x08, 0x4d, 0x65, 0x6e,
	0x75, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x67,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x22, 0x18, 0xca, 0xc1, 0x18, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x66, 0x0a, 0x0f, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x21,
	0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x65,
	0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x22, 0x20, 0xd2, 0xc1, 0x18, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2f, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x12, 0x66, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e,
	0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e,
	0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x20, 0xd2, 0xc1, 0x18, 0x1c, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x70,
	0x61, 0x72, 0x61, 0x6d, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0b,
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61,
	0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x19, 0xe2, 0xc1, 0x18,
	0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6d, 0x65, 0x6e, 0x75,
	0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x5e, 0x0a, 0x15, 0x4d, 0x65, 0x6e, 0x75, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x49, 0x44, 0x12,
	0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1e, 0xca, 0xc1, 0x18, 0x1a, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x70, 0x61, 0x72, 0x61,
	0x6d, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x32, 0xc2, 0x03, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12,
	0x49, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0f, 0x2e,
	0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e,
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a,
	0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x72,
	0x6f, 0x6c, 0x65, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0f, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x2f, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
	0x6f, 0x6c, 0x65, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71,
	0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x22, 0x13, 0xe2, 0xc1, 0x18, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x79, 0x49,
	0x44, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x13,
	0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x65, 0x73, 0x70, 0x22, 0x13, 0xca, 0xc1, 0x18, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64,
	0x6d, 0x69, 0x6e, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65,
	0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
	0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x18, 0xca, 0xc1,
	0x18, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x72, 0x6f, 0x6c,
	0x65, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x52, 0x6f, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x13, 0x2e, 0x62, 0x61, 0x73,
	0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a,
	0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22,
	0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f,
	0x72, 0x6f, 0x6c, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0xef, 0x01, 0x0a, 0x05,
	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x4c, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1b, 0xd2, 0xc1, 0x18, 0x17, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x12, 0x10, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x22, 0x14, 0xe2, 0xc1, 0x18, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x51, 0x0a, 0x09, 0x54, 0x6f,
	0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x13, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
	0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x22, 0x19, 0xca, 0xc1, 0x18, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x32, 0xf8, 0x05,
	0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x55, 0x0a, 0x10,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79,
	0x12, 0x15, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42,
	0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a, 0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x74, 0x2f, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x15, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
	0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e,
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1a,
	0xd2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64,
	0x69, 0x63, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x0b,
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61,
	0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x13, 0xe2, 0xc1, 0x18,
	0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x74,
	0x12, 0x5f, 0x0a, 0x0e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x4c, 0x69,
	0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x18, 0xca, 0xc1, 0x18, 0x14, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x74, 0x2f, 0x6c, 0x69, 0x73,
	0x74, 0x12, 0x64, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x64,
	0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x22, 0x21, 0xd2, 0xc1, 0x18, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x74, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x64, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x12, 0x17, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73,
	0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x21, 0xd2, 0xc1, 0x18, 0x1d,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x74, 0x2f,
	0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a,
	0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72,
	0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49,
	0x44, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x22, 0x1a, 0xe2, 0xc1, 0x18, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x74, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x12, 0x76, 0x0a, 0x16, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x79, 0x44, 0x69, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44,
	0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1f, 0xca, 0xc1, 0x18, 0x1b, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x74, 0x2f, 0x64, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x32, 0x96, 0x04, 0x0a, 0x05, 0x6f, 0x61, 0x75,
	0x74, 0x68, 0x12, 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76,
	0x69, 0x64, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65,
	0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x24, 0xd2, 0xc1, 0x18, 0x20, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x2f,
	0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12,
	0x5b, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
	0x72, 0x12, 0x13, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64,
	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x24, 0xd2, 0xc1, 0x18, 0x20, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x70, 0x72, 0x6f,
	0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x0e,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x0b,
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x62, 0x61,
	0x73, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1d, 0xe2, 0xc1, 0x18,
	0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6f, 0x61, 0x75, 0x74,
	0x68, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x61, 0x0a, 0x0f, 0x47, 0x65,
	0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e,
	0x62, 0x61, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71,
	0x1a, 0x17, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
	0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x22, 0xca, 0xc1, 0x18, 0x1e, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x2f,
	0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x52, 0x0a,
	0x0a, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x2e, 0x61, 0x64,
	0x6d, 0x69, 0x6e, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
	0x71, 0x1a, 0x18, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x52,
	0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x14, 0xd2, 0xc1, 0x18,
	0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x6c, 0x6f, 0x67, 0x69,
	0x6e, 0x12, 0x4e, 0x0a, 0x0d, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61,
	0x63, 0x6b, 0x12, 0x12, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62,
	0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c,
	0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x17, 0xca, 0xc1, 0x18, 0x13, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
	0x6b, 0x32, 0xa2, 0x01, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x47, 0x65,
	0x74, 0x4c, 0x6f, 0x67, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x2e, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e,
	0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x22, 0x18, 0xca, 0xc1, 0x18, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0a,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x0b, 0x2e, 0x62, 0x61, 0x73,
	0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x42,
	0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1d, 0xe2, 0xc1, 0x18, 0x19, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x2f, 0x64, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x42, 0x1b, 0x5a, 0x19, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c,
	0x61, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x61, 0x64,
	0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_admin_proto_rawDescOnce sync.Once
	file_admin_proto_rawDescData = file_admin_proto_rawDesc
)

func file_admin_proto_rawDescGZIP() []byte {
	file_admin_proto_rawDescOnce.Do(func() {
		file_admin_proto_rawDescData = protoimpl.X.CompressGZIP(file_admin_proto_rawDescData)
	})
	return file_admin_proto_rawDescData
}

var file_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 57)
var file_admin_proto_goTypes = []interface{}{
	(*StructReq)(nil),                     // 0: admin.StructReq
	(*StructResp)(nil),                    // 1: admin.StructResp
	(*ProtoResp)(nil),                     // 2: admin.ProtoResp
	(*CaptchaInfoResp)(nil),               // 3: admin.CaptchaInfoResp
	(*UpdatePolicyReq)(nil),               // 4: admin.UpdatePolicyReq
	(*PolicyPartInfo)(nil),                // 5: admin.PolicyPartInfo
	(*CreatePolicyReq)(nil),               // 6: admin.CreatePolicyReq
	(*LoginReq)(nil),                      // 7: admin.LoginReq
	(*SimpleRole)(nil),                    // 8: admin.SimpleRole
	(*LoginResp)(nil),                     // 9: admin.LoginResp
	(*ProfileResp)(nil),                   // 10: admin.ProfileResp
	(*ProfileReq)(nil),                    // 11: admin.ProfileReq
	(*RegisterReq)(nil),                   // 12: admin.RegisterReq
	(*ChangePasswordReq)(nil),             // 13: admin.ChangePasswordReq
	(*CreateOrUpdateUserReq)(nil),         // 14: admin.CreateOrUpdateUserReq
	(*UserInfoResp)(nil),                  // 15: admin.UserInfoResp
	(*UserListResp)(nil),                  // 16: admin.UserListResp
	(*UserListReq)(nil),                   // 17: admin.UserListReq
	(*PermCodeResp)(nil),                  // 18: admin.PermCodeResp
	(*ApiInfo)(nil),                       // 19: admin.ApiInfo
	(*ApiListResp)(nil),                   // 20: admin.ApiListResp
	(*ApiPageReq)(nil),                    // 21: admin.ApiPageReq
	(*ApiAuthorityInfo)(nil),              // 22: admin.ApiAuthorityInfo
	(*CreateOrUpdateApiAuthorityReq)(nil), // 23: admin.CreateOrUpdateApiAuthorityReq
	(*ApiAuthorityListInfoResp)(nil),      // 24: admin.ApiAuthorityListInfoResp
	(*MenuAuthorityInfoReq)(nil),          // 25: admin.MenuAuthorityInfoReq
	(*MenuAuthorityInfoResp)(nil),         // 26: admin.MenuAuthorityInfoResp
	(*CreateOrUpdateMenuReq)(nil),         // 27: admin.CreateOrUpdateMenuReq
	(*MenuInfo)(nil),                      // 28: admin.MenuInfo
	(*Meta)(nil),                          // 29: admin.Meta
	(*MenuInfoListResp)(nil),              // 30: admin.MenuInfoListResp
	(*MenuListBase)(nil),                  // 31: admin.MenuListBase
	(*CreateOrUpdateMenuParamReq)(nil),    // 32: admin.CreateOrUpdateMenuParamReq
	(*MenuParamResp)(nil),                 // 33: admin.MenuParamResp
	(*MenuParamListResp)(nil),             // 34: admin.MenuParamListResp
	(*RoleInfo)(nil),                      // 35: admin.RoleInfo
	(*RoleInfoResp)(nil),                  // 36: admin.RoleInfoResp
	(*RoleListResp)(nil),                  // 37: admin.RoleListResp
	(*TokenInfo)(nil),                     // 38: admin.TokenInfo
	(*TokenListResp)(nil),                 // 39: admin.TokenListResp
	(*TokenListReq)(nil),                  // 40: admin.TokenListReq
	(*DeleteReq)(nil),                     // 41: admin.DeleteReq
	(*DictionaryInfo)(nil),                // 42: admin.DictionaryInfo
	(*DictionaryListResp)(nil),            // 43: admin.DictionaryListResp
	(*DictionaryDetail)(nil),              // 44: admin.DictionaryDetail
	(*DictionaryDetailListResp)(nil),      // 45: admin.DictionaryDetailListResp
	(*DictionaryDetailReq)(nil),           // 46: admin.DictionaryDetailReq
	(*DictionaryPageReq)(nil),             // 47: admin.DictionaryPageReq
	(*OauthLoginReq)(nil),                 // 48: admin.OauthLoginReq
	(*OauthRedirectResp)(nil),             // 49: admin.OauthRedirectResp
	(*ProviderInfo)(nil),                  // 50: admin.ProviderInfo
	(*ProviderListReq)(nil),               // 51: admin.ProviderListReq
	(*ProviderListResp)(nil),              // 52: admin.ProviderListResp
	(*CallbackReq)(nil),                   // 53: admin.CallbackReq
	(*LogsInfo)(nil),                      // 54: admin.LogsInfo
	(*LogsListReq)(nil),                   // 55: admin.LogsListReq
	(*LogsListResp)(nil),                  // 56: admin.LogsListResp
	(base.ErrCode)(0),                     // 57: base.ErrCode
	(*base.Empty)(nil),                    // 58: base.Empty
	(*base.IDReq)(nil),                    // 59: base.IDReq
	(*base.StatusCodeReq)(nil),            // 60: base.StatusCodeReq
	(*base.PageInfoReq)(nil),              // 61: base.PageInfoReq
	(*base.BaseResp)(nil),                 // 62: base.BaseResp
}
var file_admin_proto_depIdxs = []int32{
	57,  // 0: admin.StructResp.errCode:type_name -> base.ErrCode
	57,  // 1: admin.ProtoResp.errCode:type_name -> base.ErrCode
	57,  // 2: admin.CaptchaInfoResp.errCode:type_name -> base.ErrCode
	5,   // 3: admin.UpdatePolicyReq.rules:type_name -> admin.PolicyPartInfo
	5,   // 4: admin.CreatePolicyReq.info:type_name -> admin.PolicyPartInfo
	57,  // 5: admin.ProfileResp.errCode:type_name -> base.ErrCode
	57,  // 6: admin.UserInfoResp.errCode:type_name -> base.ErrCode
	57,  // 7: admin.UserListResp.errCode:type_name -> base.ErrCode
	15,  // 8: admin.UserListResp.data:type_name -> admin.UserInfoResp
	57,  // 9: admin.PermCodeResp.errCode:type_name -> base.ErrCode
	57,  // 10: admin.ApiListResp.errCode:type_name -> base.ErrCode
	19,  // 11: admin.ApiListResp.data:type_name -> admin.ApiInfo
	22,  // 12: admin.CreateOrUpdateApiAuthorityReq.data:type_name -> admin.ApiAuthorityInfo
	57,  // 13: admin.ApiAuthorityListInfoResp.errCode:type_name -> base.ErrCode
	22,  // 14: admin.ApiAuthorityListInfoResp.data:type_name -> admin.ApiAuthorityInfo
	57,  // 15: admin.MenuAuthorityInfoResp.errCode:type_name -> base.ErrCode
	29,  // 16: admin.CreateOrUpdateMenuReq.meta:type_name -> admin.Meta
	28,  // 17: admin.MenuInfo.children:type_name -> admin.MenuInfo
	29,  // 18: admin.MenuInfo.meta:type_name -> admin.Meta
	57,  // 19: admin.MenuInfoListResp.errCode:type_name -> base.ErrCode
	28,  // 20: admin.MenuInfoListResp.data:type_name -> admin.MenuInfo
	31,  // 21: admin.MenuListBase.children:type_name -> admin.MenuListBase
	29,  // 22: admin.MenuListBase.meta:type_name -> admin.Meta
	57,  // 23: admin.MenuParamResp.errCode:type_name -> base.ErrCode
	57,  // 24: admin.MenuParamListResp.errCode:type_name -> base.ErrCode
	33,  // 25: admin.MenuParamListResp.data:type_name -> admin.MenuParamResp
	57,  // 26: admin.RoleInfoResp.errCode:type_name -> base.ErrCode
	57,  // 27: admin.RoleListResp.errCode:type_name -> base.ErrCode
	35,  // 28: admin.RoleListResp.data:type_name -> admin.RoleInfo
	57,  // 29: admin.TokenListResp.errCode:type_name -> base.ErrCode
	38,  // 30: admin.TokenListResp.data:type_name -> admin.TokenInfo
	57,  // 31: admin.DictionaryListResp.errCode:type_name -> base.ErrCode
	42,  // 32: admin.DictionaryListResp.data:type_name -> admin.DictionaryInfo
	57,  // 33: admin.DictionaryDetailListResp.errCode:type_name -> base.ErrCode
	44,  // 34: admin.DictionaryDetailListResp.data:type_name -> admin.DictionaryDetail
	57,  // 35: admin.OauthRedirectResp.errCode:type_name -> base.ErrCode
	57,  // 36: admin.ProviderListResp.errCode:type_name -> base.ErrCode
	50,  // 37: admin.ProviderListResp.data:type_name -> admin.ProviderInfo
	57,  // 38: admin.LogsListResp.errCode:type_name -> base.ErrCode
	54,  // 39: admin.LogsListResp.data:type_name -> admin.LogsInfo
	58,  // 40: admin.admin.InitDatabase:input_type -> base.Empty
	58,  // 41: admin.admin.HealthCheck:input_type -> base.Empty
	58,  // 42: admin.admin.Captcha:input_type -> base.Empty
	0,   // 43: admin.admin.DeleteStructTag:input_type -> admin.StructReq
	0,   // 44: admin.admin.StructToProto:input_type -> admin.StructReq
	12,  // 45: admin.user.Register:input_type -> admin.RegisterReq
	58,  // 46: admin.user.UserPermCode:input_type -> base.Empty
	13,  // 47: admin.user.ChangePassword:input_type -> admin.ChangePasswordReq
	14,  // 48: admin.user.CreateUser:input_type -> admin.CreateOrUpdateUserReq
	14,  // 49: admin.user.UpdateUser:input_type -> admin.CreateOrUpdateUserReq
	58,  // 50: admin.user.UserInfo:input_type -> base.Empty
	17,  // 51: admin.user.UserList:input_type -> admin.UserListReq
	59,  // 52: admin.user.DeleteUser:input_type -> base.IDReq
	11,  // 53: admin.user.UpdateProfile:input_type -> admin.ProfileReq
	58,  // 54: admin.user.UserProfile:input_type -> base.Empty
	60,  // 55: admin.user.UpdateUserStatus:input_type -> base.StatusCodeReq
	19,  // 56: admin.apis.CreateApi:input_type -> admin.ApiInfo
	19,  // 57: admin.apis.UpdateApi:input_type -> admin.ApiInfo
	59,  // 58: admin.apis.DeleteApi:input_type -> base.IDReq
	21,  // 59: admin.apis.ApiList:input_type -> admin.ApiPageReq
	23,  // 60: admin.authority.CreateAuthority:input_type -> admin.CreateOrUpdateApiAuthorityReq
	23,  // 61: admin.authority.UpdateApiAuthority:input_type -> admin.CreateOrUpdateApiAuthorityReq
	59,  // 62: admin.authority.ApiAuthority:input_type -> base.IDReq
	25,  // 63: admin.authority.CreateMenuAuthority:input_type -> admin.MenuAuthorityInfoReq
	25,  // 64: admin.authority.UpdateMenuAuthority:input_type -> admin.MenuAuthorityInfoReq
	59,  // 65: admin.authority.MenuAuthority:input_type -> base.IDReq
	27,  // 66: admin.menu.CreateMenu:input_type -> admin.CreateOrUpdateMenuReq
	27,  // 67: admin.menu.UpdateMenu:input_type -> admin.CreateOrUpdateMenuReq
	59,  // 68: admin.menu.DeleteMenu:input_type -> base.IDReq
	58,  // 69: admin.menu.MenuByRole:input_type -> base.Empty
	61,  // 70: admin.menu.MenuList:input_type -> base.PageInfoReq
	32,  // 71: admin.menu.CreateMenuParam:input_type -> admin.CreateOrUpdateMenuParamReq
	32,  // 72: admin.menu.UpdateMenuParam:input_type -> admin.CreateOrUpdateMenuParamReq
	59,  // 73: admin.menu.DeleteMenuParam:input_type -> base.IDReq
	59,  // 74: admin.menu.MenuParamListByMenuID:input_type -> base.IDReq
	35,  // 75: admin.role.CreateRole:input_type -> admin.RoleInfo
	35,  // 76: admin.role.UpdateRole:input_type -> admin.RoleInfo
	59,  // 77: admin.role.DeleteRole:input_type -> base.IDReq
	59,  // 78: admin.role.RoleByID:input_type -> base.IDReq
	61,  // 79: admin.role.RoleList:input_type -> base.PageInfoReq
	60,  // 80: admin.role.UpdateRoleStatus:input_type -> base.StatusCodeReq
	38,  // 81: admin.token.UpdateToken:input_type -> admin.TokenInfo
	41,  // 82: admin.token.DeleteToken:input_type -> admin.DeleteReq
	40,  // 83: admin.token.TokenList:input_type -> admin.TokenListReq
	42,  // 84: admin.dictionary.CreateDictionary:input_type -> admin.DictionaryInfo
	42,  // 85: admin.dictionary.UpdateDictionary:input_type -> admin.DictionaryInfo
	59,  // 86: admin.dictionary.DeleteDictionary:input_type -> base.IDReq
	47,  // 87: admin.dictionary.DictionaryList:input_type -> admin.DictionaryPageReq
	44,  // 88: admin.dictionary.CreateDictionaryDetail:input_type -> admin.DictionaryDetail
	44,  // 89: admin.dictionary.UpdateDictionaryDetail:input_type -> admin.DictionaryDetail
	59,  // 90: admin.dictionary.DeleteDictionaryDetail:input_type -> base.IDReq
	46,  // 91: admin.dictionary.DetailByDictionaryName:input_type -> admin.DictionaryDetailReq
	50,  // 92: admin.oauth.CreateProvider:input_type -> admin.ProviderInfo
	50,  // 93: admin.oauth.UpdateProvider:input_type -> admin.ProviderInfo
	59,  // 94: admin.oauth.DeleteProvider:input_type -> base.IDReq
	61,  // 95: admin.oauth.GetProviderList:input_type -> base.PageInfoReq
	48,  // 96: admin.oauth.OauthLogin:input_type -> admin.OauthLoginReq
	53,  // 97: admin.oauth.OauthCallback:input_type -> admin.CallbackReq
	55,  // 98: admin.logs.GetLogsList:input_type -> admin.LogsListReq
	58,  // 99: admin.logs.DeleteLogs:input_type -> base.Empty
	62,  // 100: admin.admin.InitDatabase:output_type -> base.BaseResp
	62,  // 101: admin.admin.HealthCheck:output_type -> base.BaseResp
	3,   // 102: admin.admin.Captcha:output_type -> admin.CaptchaInfoResp
	1,   // 103: admin.admin.DeleteStructTag:output_type -> admin.StructResp
	2,   // 104: admin.admin.StructToProto:output_type -> admin.ProtoResp
	62,  // 105: admin.user.Register:output_type -> base.BaseResp
	18,  // 106: admin.user.UserPermCode:output_type -> admin.PermCodeResp
	62,  // 107: admin.user.ChangePassword:output_type -> base.BaseResp
	62,  // 108: admin.user.CreateUser:output_type -> base.BaseResp
	62,  // 109: admin.user.UpdateUser:output_type -> base.BaseResp
	15,  // 110: admin.user.UserInfo:output_type -> admin.UserInfoResp
	16,  // 111: admin.user.UserList:output_type -> admin.UserListResp
	62,  // 112: admin.user.DeleteUser:output_type -> base.BaseResp
	62,  // 113: admin.user.UpdateProfile:output_type -> base.BaseResp
	10,  // 114: admin.user.UserProfile:output_type -> admin.ProfileResp
	62,  // 115: admin.user.UpdateUserStatus:output_type -> base.BaseResp
	62,  // 116: admin.apis.CreateApi:output_type -> base.BaseResp
	62,  // 117: admin.apis.UpdateApi:output_type -> base.BaseResp
	62,  // 118: admin.apis.DeleteApi:output_type -> base.BaseResp
	20,  // 119: admin.apis.ApiList:output_type -> admin.ApiListResp
	62,  // 120: admin.authority.CreateAuthority:output_type -> base.BaseResp
	62,  // 121: admin.authority.UpdateApiAuthority:output_type -> base.BaseResp
	24,  // 122: admin.authority.ApiAuthority:output_type -> admin.ApiAuthorityListInfoResp
	62,  // 123: admin.authority.CreateMenuAuthority:output_type -> base.BaseResp
	62,  // 124: admin.authority.UpdateMenuAuthority:output_type -> base.BaseResp
	26,  // 125: admin.authority.MenuAuthority:output_type -> admin.MenuAuthorityInfoResp
	62,  // 126: admin.menu.CreateMenu:output_type -> base.BaseResp
	62,  // 127: admin.menu.UpdateMenu:output_type -> base.BaseResp
	62,  // 128: admin.menu.DeleteMenu:output_type -> base.BaseResp
	30,  // 129: admin.menu.MenuByRole:output_type -> admin.MenuInfoListResp
	30,  // 130: admin.menu.MenuList:output_type -> admin.MenuInfoListResp
	62,  // 131: admin.menu.CreateMenuParam:output_type -> base.BaseResp
	62,  // 132: admin.menu.UpdateMenuParam:output_type -> base.BaseResp
	62,  // 133: admin.menu.DeleteMenuParam:output_type -> base.BaseResp
	34,  // 134: admin.menu.MenuParamListByMenuID:output_type -> admin.MenuParamListResp
	62,  // 135: admin.role.CreateRole:output_type -> base.BaseResp
	62,  // 136: admin.role.UpdateRole:output_type -> base.BaseResp
	62,  // 137: admin.role.DeleteRole:output_type -> base.BaseResp
	36,  // 138: admin.role.RoleByID:output_type -> admin.RoleInfoResp
	37,  // 139: admin.role.RoleList:output_type -> admin.RoleListResp
	62,  // 140: admin.role.UpdateRoleStatus:output_type -> base.BaseResp
	62,  // 141: admin.token.UpdateToken:output_type -> base.BaseResp
	62,  // 142: admin.token.DeleteToken:output_type -> base.BaseResp
	39,  // 143: admin.token.TokenList:output_type -> admin.TokenListResp
	62,  // 144: admin.dictionary.CreateDictionary:output_type -> base.BaseResp
	62,  // 145: admin.dictionary.UpdateDictionary:output_type -> base.BaseResp
	62,  // 146: admin.dictionary.DeleteDictionary:output_type -> base.BaseResp
	43,  // 147: admin.dictionary.DictionaryList:output_type -> admin.DictionaryListResp
	62,  // 148: admin.dictionary.CreateDictionaryDetail:output_type -> base.BaseResp
	62,  // 149: admin.dictionary.UpdateDictionaryDetail:output_type -> base.BaseResp
	62,  // 150: admin.dictionary.DeleteDictionaryDetail:output_type -> base.BaseResp
	45,  // 151: admin.dictionary.DetailByDictionaryName:output_type -> admin.DictionaryDetailListResp
	62,  // 152: admin.oauth.CreateProvider:output_type -> base.BaseResp
	62,  // 153: admin.oauth.UpdateProvider:output_type -> base.BaseResp
	62,  // 154: admin.oauth.DeleteProvider:output_type -> base.BaseResp
	52,  // 155: admin.oauth.GetProviderList:output_type -> admin.ProviderListResp
	49,  // 156: admin.oauth.OauthLogin:output_type -> admin.OauthRedirectResp
	9,   // 157: admin.oauth.OauthCallback:output_type -> admin.LoginResp
	56,  // 158: admin.logs.GetLogsList:output_type -> admin.LogsListResp
	62,  // 159: admin.logs.DeleteLogs:output_type -> base.BaseResp
	100, // [100:160] is the sub-list for method output_type
	40,  // [40:100] is the sub-list for method input_type
	40,  // [40:40] is the sub-list for extension type_name
	40,  // [40:40] is the sub-list for extension extendee
	0,   // [0:40] is the sub-list for field type_name
}

func init() { file_admin_proto_init() }
func file_admin_proto_init() {
	if File_admin_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_admin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StructReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StructResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProtoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CaptchaInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdatePolicyReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PolicyPartInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreatePolicyReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoginReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SimpleRole); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoginResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProfileResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProfileReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegisterReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChangePasswordReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateUserReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserListReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PermCodeResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApiInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApiListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApiPageReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApiAuthorityInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateApiAuthorityReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApiAuthorityListInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MenuAuthorityInfoReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MenuAuthorityInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateMenuReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MenuInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Meta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MenuInfoListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MenuListBase); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateMenuParamReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MenuParamResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MenuParamListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoleInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoleInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoleListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TokenInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TokenListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TokenListReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DictionaryInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DictionaryListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DictionaryDetail); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DictionaryDetailListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DictionaryDetailReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DictionaryPageReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OauthLoginReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OauthRedirectResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProviderInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProviderListReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProviderListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CallbackReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LogsInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LogsListReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_admin_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LogsListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_admin_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   57,
			NumExtensions: 0,
			NumServices:   10,
		},
		GoTypes:           file_admin_proto_goTypes,
		DependencyIndexes: file_admin_proto_depIdxs,
		MessageInfos:      file_admin_proto_msgTypes,
	}.Build()
	File_admin_proto = out.File
	file_admin_proto_rawDesc = nil
	file_admin_proto_goTypes = nil
	file_admin_proto_depIdxs = nil
}
