// Code generated by protoc-gen-go. DO NOT EDIT.
// source: grpc.proto

/*
Package P4wnP1_grpc is a generated protocol buffer package.

It is generated from these files:
	grpc.proto

It has these top-level messages:
	BluetoothRequestSettingsStorage
	BluetoothSettings
	BluetoothAgentSettings
	BluetoothNetworkService
	BluetoothControllerSettings
	BluetoothControllerInformation
	TriggerActionSet
	TriggerAction
	TriggerServiceStarted
	TriggerUSBGadgetConnected
	TriggerUSBGadgetDisconnected
	TriggerWifiAPStarted
	TriggerWifiConnectedAsSta
	TriggerSSHLogin
	TriggerDHCPLeaseGranted
	TriggerGroupReceive
	TriggerGroupReceiveSequence
	TriggerGPIOIn
	ActionStartBashScript
	ActionStartHIDScript
	ActionDeploySettingsTemplate
	ActionLog
	ActionGPIOOut
	ActionGroupSend
	WifiRequestSettingsStorage
	WiFiSettings
	WiFiState
	WiFiBSSCfg
	StringMessage
	StringMessageArray
	EventRequest
	EventValue
	Event
	TempDirOrFileRequest
	TempDirOrFileResponse
	ReadFileRequest
	ReadFileResponse
	WriteFileRequest
	FileInfoRequest
	FileInfoResponse
	HIDScriptRequest
	HIDScriptJob
	HIDScriptJobList
	HIDRunningJobStateResult
	HIDScriptResult
	LEDSettings
	USBRequestSettingsStorage
	GadgetSettings
	GadgetSettingsEthernet
	GadgetSettingsUMS
	EthernetRequestSettingsStorage
	DeployedEthernetInterfaceSettings
	EthernetInterfaceSettings
	DHCPServerSettings
	DHCPServerRange
	DHCPServerStaticHost
	Empty
*/
package P4wnP1_grpc

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package

type BluetoothNetworkServiceType int32

const (
	BluetoothNetworkServiceType_NAP  BluetoothNetworkServiceType = 0
	BluetoothNetworkServiceType_PANU BluetoothNetworkServiceType = 1
	BluetoothNetworkServiceType_GN   BluetoothNetworkServiceType = 2
)

var BluetoothNetworkServiceType_name = map[int32]string{
	0: "NAP",
	1: "PANU",
	2: "GN",
}
var BluetoothNetworkServiceType_value = map[string]int32{
	"NAP":  0,
	"PANU": 1,
	"GN":   2,
}

func (x BluetoothNetworkServiceType) String() string {
	return proto.EnumName(BluetoothNetworkServiceType_name, int32(x))
}
func (BluetoothNetworkServiceType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

type GPIOInPullUpDown int32

const (
	GPIOInPullUpDown_UP   GPIOInPullUpDown = 0
	GPIOInPullUpDown_DOWN GPIOInPullUpDown = 1
	GPIOInPullUpDown_OFF  GPIOInPullUpDown = 2
)

var GPIOInPullUpDown_name = map[int32]string{
	0: "UP",
	1: "DOWN",
	2: "OFF",
}
var GPIOInPullUpDown_value = map[string]int32{
	"UP":   0,
	"DOWN": 1,
	"OFF":  2,
}

func (x GPIOInPullUpDown) String() string {
	return proto.EnumName(GPIOInPullUpDown_name, int32(x))
}
func (GPIOInPullUpDown) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

type GPIOInEdge int32

const (
	GPIOInEdge_RISING  GPIOInEdge = 0
	GPIOInEdge_FALLING GPIOInEdge = 1
	GPIOInEdge_BOTH    GPIOInEdge = 2
)

var GPIOInEdge_name = map[int32]string{
	0: "RISING",
	1: "FALLING",
	2: "BOTH",
}
var GPIOInEdge_value = map[string]int32{
	"RISING":  0,
	"FALLING": 1,
	"BOTH":    2,
}

func (x GPIOInEdge) String() string {
	return proto.EnumName(GPIOInEdge_name, int32(x))
}
func (GPIOInEdge) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

type GPIONum int32

const (
	GPIONum_NUM_1  GPIONum = 0
	GPIONum_NUM_2  GPIONum = 1
	GPIONum_NUM_3  GPIONum = 2
	GPIONum_NUM_4  GPIONum = 3
	GPIONum_NUM_5  GPIONum = 4
	GPIONum_NUM_6  GPIONum = 5
	GPIONum_NUM_7  GPIONum = 6
	GPIONum_NUM_8  GPIONum = 7
	GPIONum_NUM_9  GPIONum = 8
	GPIONum_NUM_10 GPIONum = 9
	GPIONum_NUM_11 GPIONum = 10
	GPIONum_NUM_12 GPIONum = 11
	GPIONum_NUM_13 GPIONum = 12
	GPIONum_NUM_14 GPIONum = 13
	GPIONum_NUM_15 GPIONum = 14
	GPIONum_NUM_16 GPIONum = 15
	GPIONum_NUM_17 GPIONum = 16
	GPIONum_NUM_18 GPIONum = 17
	GPIONum_NUM_19 GPIONum = 18
	GPIONum_NUM_20 GPIONum = 19
)

var GPIONum_name = map[int32]string{
	0:  "NUM_1",
	1:  "NUM_2",
	2:  "NUM_3",
	3:  "NUM_4",
	4:  "NUM_5",
	5:  "NUM_6",
	6:  "NUM_7",
	7:  "NUM_8",
	8:  "NUM_9",
	9:  "NUM_10",
	10: "NUM_11",
	11: "NUM_12",
	12: "NUM_13",
	13: "NUM_14",
	14: "NUM_15",
	15: "NUM_16",
	16: "NUM_17",
	17: "NUM_18",
	18: "NUM_19",
	19: "NUM_20",
}
var GPIONum_value = map[string]int32{
	"NUM_1":  0,
	"NUM_2":  1,
	"NUM_3":  2,
	"NUM_4":  3,
	"NUM_5":  4,
	"NUM_6":  5,
	"NUM_7":  6,
	"NUM_8":  7,
	"NUM_9":  8,
	"NUM_10": 9,
	"NUM_11": 10,
	"NUM_12": 11,
	"NUM_13": 12,
	"NUM_14": 13,
	"NUM_15": 14,
	"NUM_16": 15,
	"NUM_17": 16,
	"NUM_18": 17,
	"NUM_19": 18,
	"NUM_20": 19,
}

func (x GPIONum) String() string {
	return proto.EnumName(GPIONum_name, int32(x))
}
func (GPIONum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

type GPIOOutValue int32

const (
	GPIOOutValue_LOW    GPIOOutValue = 0
	GPIOOutValue_HIGH   GPIOOutValue = 1
	GPIOOutValue_TOGGLE GPIOOutValue = 2
)

var GPIOOutValue_name = map[int32]string{
	0: "LOW",
	1: "HIGH",
	2: "TOGGLE",
}
var GPIOOutValue_value = map[string]int32{
	"LOW":    0,
	"HIGH":   1,
	"TOGGLE": 2,
}

func (x GPIOOutValue) String() string {
	return proto.EnumName(GPIOOutValue_name, int32(x))
}
func (GPIOOutValue) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

// WiFi2 (distinguish state and settings)
type WiFiWorkingMode int32

const (
	WiFiWorkingMode_UNKNOWN         WiFiWorkingMode = 0
	WiFiWorkingMode_AP              WiFiWorkingMode = 1
	WiFiWorkingMode_STA             WiFiWorkingMode = 2
	WiFiWorkingMode_STA_FAILOVER_AP WiFiWorkingMode = 3
)

var WiFiWorkingMode_name = map[int32]string{
	0: "UNKNOWN",
	1: "AP",
	2: "STA",
	3: "STA_FAILOVER_AP",
}
var WiFiWorkingMode_value = map[string]int32{
	"UNKNOWN":         0,
	"AP":              1,
	"STA":             2,
	"STA_FAILOVER_AP": 3,
}

func (x WiFiWorkingMode) String() string {
	return proto.EnumName(WiFiWorkingMode_name, int32(x))
}
func (WiFiWorkingMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

type WiFiStateMode int32

const (
	WiFiStateMode_STA_NOT_CONNECTED WiFiStateMode = 0
	WiFiStateMode_AP_UP             WiFiStateMode = 1
	WiFiStateMode_STA_CONNECTED     WiFiStateMode = 2
)

var WiFiStateMode_name = map[int32]string{
	0: "STA_NOT_CONNECTED",
	1: "AP_UP",
	2: "STA_CONNECTED",
}
var WiFiStateMode_value = map[string]int32{
	"STA_NOT_CONNECTED": 0,
	"AP_UP":             1,
	"STA_CONNECTED":     2,
}

func (x WiFiStateMode) String() string {
	return proto.EnumName(WiFiStateMode_name, int32(x))
}
func (WiFiStateMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

type WiFiAuthMode int32

const (
	WiFiAuthMode_WPA2_PSK WiFiAuthMode = 0
	WiFiAuthMode_OPEN     WiFiAuthMode = 1
)

var WiFiAuthMode_name = map[int32]string{
	0: "WPA2_PSK",
	1: "OPEN",
}
var WiFiAuthMode_value = map[string]int32{
	"WPA2_PSK": 0,
	"OPEN":     1,
}

func (x WiFiAuthMode) String() string {
	return proto.EnumName(WiFiAuthMode_name, int32(x))
}
func (WiFiAuthMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

type AccessibleFolder int32

const (
	AccessibleFolder_TMP          AccessibleFolder = 0
	AccessibleFolder_BASH_SCRIPTS AccessibleFolder = 1
	AccessibleFolder_HID_SCRIPTS  AccessibleFolder = 2
)

var AccessibleFolder_name = map[int32]string{
	0: "TMP",
	1: "BASH_SCRIPTS",
	2: "HID_SCRIPTS",
}
var AccessibleFolder_value = map[string]int32{
	"TMP":          0,
	"BASH_SCRIPTS": 1,
	"HID_SCRIPTS":  2,
}

func (x AccessibleFolder) String() string {
	return proto.EnumName(AccessibleFolder_name, int32(x))
}
func (AccessibleFolder) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }

type ActionDeploySettingsTemplate_TemplateType int32

const (
	ActionDeploySettingsTemplate_FULL_SETTINGS   ActionDeploySettingsTemplate_TemplateType = 0
	ActionDeploySettingsTemplate_NETWORK         ActionDeploySettingsTemplate_TemplateType = 1
	ActionDeploySettingsTemplate_WIFI            ActionDeploySettingsTemplate_TemplateType = 2
	ActionDeploySettingsTemplate_USB             ActionDeploySettingsTemplate_TemplateType = 3
	ActionDeploySettingsTemplate_BLUETOOTH       ActionDeploySettingsTemplate_TemplateType = 4
	ActionDeploySettingsTemplate_TRIGGER_ACTIONS ActionDeploySettingsTemplate_TemplateType = 5
)

var ActionDeploySettingsTemplate_TemplateType_name = map[int32]string{
	0: "FULL_SETTINGS",
	1: "NETWORK",
	2: "WIFI",
	3: "USB",
	4: "BLUETOOTH",
	5: "TRIGGER_ACTIONS",
}
var ActionDeploySettingsTemplate_TemplateType_value = map[string]int32{
	"FULL_SETTINGS":   0,
	"NETWORK":         1,
	"WIFI":            2,
	"USB":             3,
	"BLUETOOTH":       4,
	"TRIGGER_ACTIONS": 5,
}

func (x ActionDeploySettingsTemplate_TemplateType) String() string {
	return proto.EnumName(ActionDeploySettingsTemplate_TemplateType_name, int32(x))
}
func (ActionDeploySettingsTemplate_TemplateType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{20, 0}
}

type EthernetInterfaceSettings_Mode int32

const (
	EthernetInterfaceSettings_MANUAL      EthernetInterfaceSettings_Mode = 0
	EthernetInterfaceSettings_DHCP_CLIENT EthernetInterfaceSettings_Mode = 1
	EthernetInterfaceSettings_DHCP_SERVER EthernetInterfaceSettings_Mode = 2
	EthernetInterfaceSettings_UNMANAGED   EthernetInterfaceSettings_Mode = 3
)

var EthernetInterfaceSettings_Mode_name = map[int32]string{
	0: "MANUAL",
	1: "DHCP_CLIENT",
	2: "DHCP_SERVER",
	3: "UNMANAGED",
}
var EthernetInterfaceSettings_Mode_value = map[string]int32{
	"MANUAL":      0,
	"DHCP_CLIENT": 1,
	"DHCP_SERVER": 2,
	"UNMANAGED":   3,
}

func (x EthernetInterfaceSettings_Mode) String() string {
	return proto.EnumName(EthernetInterfaceSettings_Mode_name, int32(x))
}
func (EthernetInterfaceSettings_Mode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{52, 0}
}

// Bluetooth
type BluetoothRequestSettingsStorage struct {
	TemplateName string             `protobuf:"bytes,1,opt,name=TemplateName" json:"TemplateName,omitempty"`
	Settings     *BluetoothSettings `protobuf:"bytes,2,opt,name=settings" json:"settings,omitempty"`
}

func (m *BluetoothRequestSettingsStorage) Reset()                    { *m = BluetoothRequestSettingsStorage{} }
func (m *BluetoothRequestSettingsStorage) String() string            { return proto.CompactTextString(m) }
func (*BluetoothRequestSettingsStorage) ProtoMessage()               {}
func (*BluetoothRequestSettingsStorage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

func (m *BluetoothRequestSettingsStorage) GetTemplateName() string {
	if m != nil {
		return m.TemplateName
	}
	return ""
}

func (m *BluetoothRequestSettingsStorage) GetSettings() *BluetoothSettings {
	if m != nil {
		return m.Settings
	}
	return nil
}

type BluetoothSettings struct {
	Ci *BluetoothControllerInformation `protobuf:"bytes,1,opt,name=ci" json:"ci,omitempty"`
	As *BluetoothAgentSettings         `protobuf:"bytes,2,opt,name=as" json:"as,omitempty"`
}

func (m *BluetoothSettings) Reset()                    { *m = BluetoothSettings{} }
func (m *BluetoothSettings) String() string            { return proto.CompactTextString(m) }
func (*BluetoothSettings) ProtoMessage()               {}
func (*BluetoothSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

func (m *BluetoothSettings) GetCi() *BluetoothControllerInformation {
	if m != nil {
		return m.Ci
	}
	return nil
}

func (m *BluetoothSettings) GetAs() *BluetoothAgentSettings {
	if m != nil {
		return m.As
	}
	return nil
}

type BluetoothAgentSettings struct {
	Pin string `protobuf:"bytes,1,opt,name=pin" json:"pin,omitempty"`
}

func (m *BluetoothAgentSettings) Reset()                    { *m = BluetoothAgentSettings{} }
func (m *BluetoothAgentSettings) String() string            { return proto.CompactTextString(m) }
func (*BluetoothAgentSettings) ProtoMessage()               {}
func (*BluetoothAgentSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

func (m *BluetoothAgentSettings) GetPin() string {
	if m != nil {
		return m.Pin
	}
	return ""
}

type BluetoothNetworkService struct {
	RegisterOrUnregister bool                        `protobuf:"varint,1,opt,name=register_or_unregister,json=registerOrUnregister" json:"register_or_unregister,omitempty"`
	ServerOrConnect      bool                        `protobuf:"varint,2,opt,name=server_or_connect,json=serverOrConnect" json:"server_or_connect,omitempty"`
	Type                 BluetoothNetworkServiceType `protobuf:"varint,3,opt,name=type,enum=P4wnP1_grpc.BluetoothNetworkServiceType" json:"type,omitempty"`
	MacOrName            string                      `protobuf:"bytes,4,opt,name=mac_or_name,json=macOrName" json:"mac_or_name,omitempty"`
	BridgeName           string                      `protobuf:"bytes,5,opt,name=bridge_name,json=bridgeName" json:"bridge_name,omitempty"`
}

func (m *BluetoothNetworkService) Reset()                    { *m = BluetoothNetworkService{} }
func (m *BluetoothNetworkService) String() string            { return proto.CompactTextString(m) }
func (*BluetoothNetworkService) ProtoMessage()               {}
func (*BluetoothNetworkService) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

func (m *BluetoothNetworkService) GetRegisterOrUnregister() bool {
	if m != nil {
		return m.RegisterOrUnregister
	}
	return false
}

func (m *BluetoothNetworkService) GetServerOrConnect() bool {
	if m != nil {
		return m.ServerOrConnect
	}
	return false
}

func (m *BluetoothNetworkService) GetType() BluetoothNetworkServiceType {
	if m != nil {
		return m.Type
	}
	return BluetoothNetworkServiceType_NAP
}

func (m *BluetoothNetworkService) GetMacOrName() string {
	if m != nil {
		return m.MacOrName
	}
	return ""
}

func (m *BluetoothNetworkService) GetBridgeName() string {
	if m != nil {
		return m.BridgeName
	}
	return ""
}

type BluetoothControllerSettings struct {
	Powered                 bool `protobuf:"varint,1,opt,name=powered" json:"powered,omitempty"`
	Connectable             bool `protobuf:"varint,2,opt,name=connectable" json:"connectable,omitempty"`
	FastConnectable         bool `protobuf:"varint,3,opt,name=fast_connectable,json=fastConnectable" json:"fast_connectable,omitempty"`
	Discoverable            bool `protobuf:"varint,4,opt,name=discoverable" json:"discoverable,omitempty"`
	Bondable                bool `protobuf:"varint,5,opt,name=bondable" json:"bondable,omitempty"`
	LinkLevelSecurity       bool `protobuf:"varint,6,opt,name=link_level_security,json=linkLevelSecurity" json:"link_level_security,omitempty"`
	SecureSimplePairing     bool `protobuf:"varint,7,opt,name=secure_simple_pairing,json=secureSimplePairing" json:"secure_simple_pairing,omitempty"`
	BrEdr                   bool `protobuf:"varint,8,opt,name=br_edr,json=brEdr" json:"br_edr,omitempty"`
	HighSpeed               bool `protobuf:"varint,9,opt,name=high_speed,json=highSpeed" json:"high_speed,omitempty"`
	LowEnergy               bool `protobuf:"varint,10,opt,name=low_energy,json=lowEnergy" json:"low_energy,omitempty"`
	Advertising             bool `protobuf:"varint,11,opt,name=advertising" json:"advertising,omitempty"`
	SecureConnections       bool `protobuf:"varint,12,opt,name=secure_connections,json=secureConnections" json:"secure_connections,omitempty"`
	DebugKeys               bool `protobuf:"varint,13,opt,name=debug_keys,json=debugKeys" json:"debug_keys,omitempty"`
	Privacy                 bool `protobuf:"varint,14,opt,name=privacy" json:"privacy,omitempty"`
	ControllerConfiguration bool `protobuf:"varint,15,opt,name=controller_configuration,json=controllerConfiguration" json:"controller_configuration,omitempty"`
	StaticAddress           bool `protobuf:"varint,16,opt,name=static_address,json=staticAddress" json:"static_address,omitempty"`
}

func (m *BluetoothControllerSettings) Reset()                    { *m = BluetoothControllerSettings{} }
func (m *BluetoothControllerSettings) String() string            { return proto.CompactTextString(m) }
func (*BluetoothControllerSettings) ProtoMessage()               {}
func (*BluetoothControllerSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

func (m *BluetoothControllerSettings) GetPowered() bool {
	if m != nil {
		return m.Powered
	}
	return false
}

func (m *BluetoothControllerSettings) GetConnectable() bool {
	if m != nil {
		return m.Connectable
	}
	return false
}

func (m *BluetoothControllerSettings) GetFastConnectable() bool {
	if m != nil {
		return m.FastConnectable
	}
	return false
}

func (m *BluetoothControllerSettings) GetDiscoverable() bool {
	if m != nil {
		return m.Discoverable
	}
	return false
}

func (m *BluetoothControllerSettings) GetBondable() bool {
	if m != nil {
		return m.Bondable
	}
	return false
}

func (m *BluetoothControllerSettings) GetLinkLevelSecurity() bool {
	if m != nil {
		return m.LinkLevelSecurity
	}
	return false
}

func (m *BluetoothControllerSettings) GetSecureSimplePairing() bool {
	if m != nil {
		return m.SecureSimplePairing
	}
	return false
}

func (m *BluetoothControllerSettings) GetBrEdr() bool {
	if m != nil {
		return m.BrEdr
	}
	return false
}

func (m *BluetoothControllerSettings) GetHighSpeed() bool {
	if m != nil {
		return m.HighSpeed
	}
	return false
}

func (m *BluetoothControllerSettings) GetLowEnergy() bool {
	if m != nil {
		return m.LowEnergy
	}
	return false
}

func (m *BluetoothControllerSettings) GetAdvertising() bool {
	if m != nil {
		return m.Advertising
	}
	return false
}

func (m *BluetoothControllerSettings) GetSecureConnections() bool {
	if m != nil {
		return m.SecureConnections
	}
	return false
}

func (m *BluetoothControllerSettings) GetDebugKeys() bool {
	if m != nil {
		return m.DebugKeys
	}
	return false
}

func (m *BluetoothControllerSettings) GetPrivacy() bool {
	if m != nil {
		return m.Privacy
	}
	return false
}

func (m *BluetoothControllerSettings) GetControllerConfiguration() bool {
	if m != nil {
		return m.ControllerConfiguration
	}
	return false
}

func (m *BluetoothControllerSettings) GetStaticAddress() bool {
	if m != nil {
		return m.StaticAddress
	}
	return false
}

type BluetoothControllerInformation struct {
	Address                  []byte                       `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	BluetoothVersion         uint32                       `protobuf:"varint,2,opt,name=bluetooth_version,json=bluetoothVersion" json:"bluetooth_version,omitempty"`
	Manufacturer             uint32                       `protobuf:"varint,3,opt,name=manufacturer" json:"manufacturer,omitempty"`
	SupportedSettings        *BluetoothControllerSettings `protobuf:"bytes,4,opt,name=supported_settings,json=supportedSettings" json:"supported_settings,omitempty"`
	CurrentSettings          *BluetoothControllerSettings `protobuf:"bytes,5,opt,name=current_settings,json=currentSettings" json:"current_settings,omitempty"`
	ClassOfDevice            []byte                       `protobuf:"bytes,6,opt,name=class_of_device,json=classOfDevice,proto3" json:"class_of_device,omitempty"`
	Name                     string                       `protobuf:"bytes,7,opt,name=name" json:"name,omitempty"`
	ShortName                string                       `protobuf:"bytes,8,opt,name=short_name,json=shortName" json:"short_name,omitempty"`
	IsAvailable              bool                         `protobuf:"varint,9,opt,name=is_available,json=isAvailable" json:"is_available,omitempty"`
	ServiceNetworkServerNap  bool                         `protobuf:"varint,10,opt,name=service_network_server_nap,json=serviceNetworkServerNap" json:"service_network_server_nap,omitempty"`
	ServiceNetworkServerPanu bool                         `protobuf:"varint,11,opt,name=service_network_server_panu,json=serviceNetworkServerPanu" json:"service_network_server_panu,omitempty"`
	ServiceNetworkServerGn   bool                         `protobuf:"varint,12,opt,name=service_network_server_gn,json=serviceNetworkServerGn" json:"service_network_server_gn,omitempty"`
}

func (m *BluetoothControllerInformation) Reset()                    { *m = BluetoothControllerInformation{} }
func (m *BluetoothControllerInformation) String() string            { return proto.CompactTextString(m) }
func (*BluetoothControllerInformation) ProtoMessage()               {}
func (*BluetoothControllerInformation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

func (m *BluetoothControllerInformation) GetAddress() []byte {
	if m != nil {
		return m.Address
	}
	return nil
}

func (m *BluetoothControllerInformation) GetBluetoothVersion() uint32 {
	if m != nil {
		return m.BluetoothVersion
	}
	return 0
}

func (m *BluetoothControllerInformation) GetManufacturer() uint32 {
	if m != nil {
		return m.Manufacturer
	}
	return 0
}

func (m *BluetoothControllerInformation) GetSupportedSettings() *BluetoothControllerSettings {
	if m != nil {
		return m.SupportedSettings
	}
	return nil
}

func (m *BluetoothControllerInformation) GetCurrentSettings() *BluetoothControllerSettings {
	if m != nil {
		return m.CurrentSettings
	}
	return nil
}

func (m *BluetoothControllerInformation) GetClassOfDevice() []byte {
	if m != nil {
		return m.ClassOfDevice
	}
	return nil
}

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

func (m *BluetoothControllerInformation) GetShortName() string {
	if m != nil {
		return m.ShortName
	}
	return ""
}

func (m *BluetoothControllerInformation) GetIsAvailable() bool {
	if m != nil {
		return m.IsAvailable
	}
	return false
}

func (m *BluetoothControllerInformation) GetServiceNetworkServerNap() bool {
	if m != nil {
		return m.ServiceNetworkServerNap
	}
	return false
}

func (m *BluetoothControllerInformation) GetServiceNetworkServerPanu() bool {
	if m != nil {
		return m.ServiceNetworkServerPanu
	}
	return false
}

func (m *BluetoothControllerInformation) GetServiceNetworkServerGn() bool {
	if m != nil {
		return m.ServiceNetworkServerGn
	}
	return false
}

// Triggers, Actions and resulting TriggerActions
type TriggerActionSet struct {
	TriggerActions []*TriggerAction `protobuf:"bytes,1,rep,name=TriggerActions" json:"TriggerActions,omitempty"`
	Name           string           `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"`
}

func (m *TriggerActionSet) Reset()                    { *m = TriggerActionSet{} }
func (m *TriggerActionSet) String() string            { return proto.CompactTextString(m) }
func (*TriggerActionSet) ProtoMessage()               {}
func (*TriggerActionSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

func (m *TriggerActionSet) GetTriggerActions() []*TriggerAction {
	if m != nil {
		return m.TriggerActions
	}
	return nil
}

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

type TriggerAction struct {
	Id        uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	OneShot   bool   `protobuf:"varint,2,opt,name=oneShot" json:"oneShot,omitempty"`
	IsActive  bool   `protobuf:"varint,3,opt,name=isActive" json:"isActive,omitempty"`
	Immutable bool   `protobuf:"varint,4,opt,name=immutable" json:"immutable,omitempty"`
	// Types that are valid to be assigned to Trigger:
	//	*TriggerAction_ServiceStarted
	//	*TriggerAction_UsbGadgetConnected
	//	*TriggerAction_UsbGadgetDisconnected
	//	*TriggerAction_WifiAPStarted
	//	*TriggerAction_WifiConnectedAsSta
	//	*TriggerAction_SshLogin
	//	*TriggerAction_DhcpLeaseGranted
	//	*TriggerAction_GroupReceive
	//	*TriggerAction_GroupReceiveSequence
	//	*TriggerAction_GpioIn
	Trigger isTriggerAction_Trigger `protobuf_oneof:"Trigger"`
	// Types that are valid to be assigned to Action:
	//	*TriggerAction_BashScript
	//	*TriggerAction_HidScript
	//	*TriggerAction_DeploySettingsTemplate
	//	*TriggerAction_Log
	//	*TriggerAction_GpioOut
	//	*TriggerAction_GroupSend
	Action isTriggerAction_Action `protobuf_oneof:"Action"`
}

func (m *TriggerAction) Reset()                    { *m = TriggerAction{} }
func (m *TriggerAction) String() string            { return proto.CompactTextString(m) }
func (*TriggerAction) ProtoMessage()               {}
func (*TriggerAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

type isTriggerAction_Trigger interface {
	isTriggerAction_Trigger()
}
type isTriggerAction_Action interface {
	isTriggerAction_Action()
}

type TriggerAction_ServiceStarted struct {
	ServiceStarted *TriggerServiceStarted `protobuf:"bytes,5,opt,name=serviceStarted,oneof"`
}
type TriggerAction_UsbGadgetConnected struct {
	UsbGadgetConnected *TriggerUSBGadgetConnected `protobuf:"bytes,6,opt,name=usbGadgetConnected,oneof"`
}
type TriggerAction_UsbGadgetDisconnected struct {
	UsbGadgetDisconnected *TriggerUSBGadgetDisconnected `protobuf:"bytes,7,opt,name=usbGadgetDisconnected,oneof"`
}
type TriggerAction_WifiAPStarted struct {
	WifiAPStarted *TriggerWifiAPStarted `protobuf:"bytes,8,opt,name=wifiAPStarted,oneof"`
}
type TriggerAction_WifiConnectedAsSta struct {
	WifiConnectedAsSta *TriggerWifiConnectedAsSta `protobuf:"bytes,9,opt,name=wifiConnectedAsSta,oneof"`
}
type TriggerAction_SshLogin struct {
	SshLogin *TriggerSSHLogin `protobuf:"bytes,10,opt,name=sshLogin,oneof"`
}
type TriggerAction_DhcpLeaseGranted struct {
	DhcpLeaseGranted *TriggerDHCPLeaseGranted `protobuf:"bytes,11,opt,name=dhcpLeaseGranted,oneof"`
}
type TriggerAction_GroupReceive struct {
	GroupReceive *TriggerGroupReceive `protobuf:"bytes,12,opt,name=groupReceive,oneof"`
}
type TriggerAction_GroupReceiveSequence struct {
	GroupReceiveSequence *TriggerGroupReceiveSequence `protobuf:"bytes,13,opt,name=groupReceiveSequence,oneof"`
}
type TriggerAction_GpioIn struct {
	GpioIn *TriggerGPIOIn `protobuf:"bytes,14,opt,name=gpioIn,oneof"`
}
type TriggerAction_BashScript struct {
	BashScript *ActionStartBashScript `protobuf:"bytes,15,opt,name=bashScript,oneof"`
}
type TriggerAction_HidScript struct {
	HidScript *ActionStartHIDScript `protobuf:"bytes,16,opt,name=hidScript,oneof"`
}
type TriggerAction_DeploySettingsTemplate struct {
	DeploySettingsTemplate *ActionDeploySettingsTemplate `protobuf:"bytes,17,opt,name=deploySettingsTemplate,oneof"`
}
type TriggerAction_Log struct {
	Log *ActionLog `protobuf:"bytes,18,opt,name=log,oneof"`
}
type TriggerAction_GpioOut struct {
	GpioOut *ActionGPIOOut `protobuf:"bytes,19,opt,name=gpioOut,oneof"`
}
type TriggerAction_GroupSend struct {
	GroupSend *ActionGroupSend `protobuf:"bytes,20,opt,name=groupSend,oneof"`
}

func (*TriggerAction_ServiceStarted) isTriggerAction_Trigger()        {}
func (*TriggerAction_UsbGadgetConnected) isTriggerAction_Trigger()    {}
func (*TriggerAction_UsbGadgetDisconnected) isTriggerAction_Trigger() {}
func (*TriggerAction_WifiAPStarted) isTriggerAction_Trigger()         {}
func (*TriggerAction_WifiConnectedAsSta) isTriggerAction_Trigger()    {}
func (*TriggerAction_SshLogin) isTriggerAction_Trigger()              {}
func (*TriggerAction_DhcpLeaseGranted) isTriggerAction_Trigger()      {}
func (*TriggerAction_GroupReceive) isTriggerAction_Trigger()          {}
func (*TriggerAction_GroupReceiveSequence) isTriggerAction_Trigger()  {}
func (*TriggerAction_GpioIn) isTriggerAction_Trigger()                {}
func (*TriggerAction_BashScript) isTriggerAction_Action()             {}
func (*TriggerAction_HidScript) isTriggerAction_Action()              {}
func (*TriggerAction_DeploySettingsTemplate) isTriggerAction_Action() {}
func (*TriggerAction_Log) isTriggerAction_Action()                    {}
func (*TriggerAction_GpioOut) isTriggerAction_Action()                {}
func (*TriggerAction_GroupSend) isTriggerAction_Action()              {}

func (m *TriggerAction) GetTrigger() isTriggerAction_Trigger {
	if m != nil {
		return m.Trigger
	}
	return nil
}
func (m *TriggerAction) GetAction() isTriggerAction_Action {
	if m != nil {
		return m.Action
	}
	return nil
}

func (m *TriggerAction) GetId() uint32 {
	if m != nil {
		return m.Id
	}
	return 0
}

func (m *TriggerAction) GetOneShot() bool {
	if m != nil {
		return m.OneShot
	}
	return false
}

func (m *TriggerAction) GetIsActive() bool {
	if m != nil {
		return m.IsActive
	}
	return false
}

func (m *TriggerAction) GetImmutable() bool {
	if m != nil {
		return m.Immutable
	}
	return false
}

func (m *TriggerAction) GetServiceStarted() *TriggerServiceStarted {
	if x, ok := m.GetTrigger().(*TriggerAction_ServiceStarted); ok {
		return x.ServiceStarted
	}
	return nil
}

func (m *TriggerAction) GetUsbGadgetConnected() *TriggerUSBGadgetConnected {
	if x, ok := m.GetTrigger().(*TriggerAction_UsbGadgetConnected); ok {
		return x.UsbGadgetConnected
	}
	return nil
}

func (m *TriggerAction) GetUsbGadgetDisconnected() *TriggerUSBGadgetDisconnected {
	if x, ok := m.GetTrigger().(*TriggerAction_UsbGadgetDisconnected); ok {
		return x.UsbGadgetDisconnected
	}
	return nil
}

func (m *TriggerAction) GetWifiAPStarted() *TriggerWifiAPStarted {
	if x, ok := m.GetTrigger().(*TriggerAction_WifiAPStarted); ok {
		return x.WifiAPStarted
	}
	return nil
}

func (m *TriggerAction) GetWifiConnectedAsSta() *TriggerWifiConnectedAsSta {
	if x, ok := m.GetTrigger().(*TriggerAction_WifiConnectedAsSta); ok {
		return x.WifiConnectedAsSta
	}
	return nil
}

func (m *TriggerAction) GetSshLogin() *TriggerSSHLogin {
	if x, ok := m.GetTrigger().(*TriggerAction_SshLogin); ok {
		return x.SshLogin
	}
	return nil
}

func (m *TriggerAction) GetDhcpLeaseGranted() *TriggerDHCPLeaseGranted {
	if x, ok := m.GetTrigger().(*TriggerAction_DhcpLeaseGranted); ok {
		return x.DhcpLeaseGranted
	}
	return nil
}

func (m *TriggerAction) GetGroupReceive() *TriggerGroupReceive {
	if x, ok := m.GetTrigger().(*TriggerAction_GroupReceive); ok {
		return x.GroupReceive
	}
	return nil
}

func (m *TriggerAction) GetGroupReceiveSequence() *TriggerGroupReceiveSequence {
	if x, ok := m.GetTrigger().(*TriggerAction_GroupReceiveSequence); ok {
		return x.GroupReceiveSequence
	}
	return nil
}

func (m *TriggerAction) GetGpioIn() *TriggerGPIOIn {
	if x, ok := m.GetTrigger().(*TriggerAction_GpioIn); ok {
		return x.GpioIn
	}
	return nil
}

func (m *TriggerAction) GetBashScript() *ActionStartBashScript {
	if x, ok := m.GetAction().(*TriggerAction_BashScript); ok {
		return x.BashScript
	}
	return nil
}

func (m *TriggerAction) GetHidScript() *ActionStartHIDScript {
	if x, ok := m.GetAction().(*TriggerAction_HidScript); ok {
		return x.HidScript
	}
	return nil
}

func (m *TriggerAction) GetDeploySettingsTemplate() *ActionDeploySettingsTemplate {
	if x, ok := m.GetAction().(*TriggerAction_DeploySettingsTemplate); ok {
		return x.DeploySettingsTemplate
	}
	return nil
}

func (m *TriggerAction) GetLog() *ActionLog {
	if x, ok := m.GetAction().(*TriggerAction_Log); ok {
		return x.Log
	}
	return nil
}

func (m *TriggerAction) GetGpioOut() *ActionGPIOOut {
	if x, ok := m.GetAction().(*TriggerAction_GpioOut); ok {
		return x.GpioOut
	}
	return nil
}

func (m *TriggerAction) GetGroupSend() *ActionGroupSend {
	if x, ok := m.GetAction().(*TriggerAction_GroupSend); ok {
		return x.GroupSend
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*TriggerAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _TriggerAction_OneofMarshaler, _TriggerAction_OneofUnmarshaler, _TriggerAction_OneofSizer, []interface{}{
		(*TriggerAction_ServiceStarted)(nil),
		(*TriggerAction_UsbGadgetConnected)(nil),
		(*TriggerAction_UsbGadgetDisconnected)(nil),
		(*TriggerAction_WifiAPStarted)(nil),
		(*TriggerAction_WifiConnectedAsSta)(nil),
		(*TriggerAction_SshLogin)(nil),
		(*TriggerAction_DhcpLeaseGranted)(nil),
		(*TriggerAction_GroupReceive)(nil),
		(*TriggerAction_GroupReceiveSequence)(nil),
		(*TriggerAction_GpioIn)(nil),
		(*TriggerAction_BashScript)(nil),
		(*TriggerAction_HidScript)(nil),
		(*TriggerAction_DeploySettingsTemplate)(nil),
		(*TriggerAction_Log)(nil),
		(*TriggerAction_GpioOut)(nil),
		(*TriggerAction_GroupSend)(nil),
	}
}

func _TriggerAction_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*TriggerAction)
	// Trigger
	switch x := m.Trigger.(type) {
	case *TriggerAction_ServiceStarted:
		b.EncodeVarint(5<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.ServiceStarted); err != nil {
			return err
		}
	case *TriggerAction_UsbGadgetConnected:
		b.EncodeVarint(6<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.UsbGadgetConnected); err != nil {
			return err
		}
	case *TriggerAction_UsbGadgetDisconnected:
		b.EncodeVarint(7<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.UsbGadgetDisconnected); err != nil {
			return err
		}
	case *TriggerAction_WifiAPStarted:
		b.EncodeVarint(8<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.WifiAPStarted); err != nil {
			return err
		}
	case *TriggerAction_WifiConnectedAsSta:
		b.EncodeVarint(9<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.WifiConnectedAsSta); err != nil {
			return err
		}
	case *TriggerAction_SshLogin:
		b.EncodeVarint(10<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SshLogin); err != nil {
			return err
		}
	case *TriggerAction_DhcpLeaseGranted:
		b.EncodeVarint(11<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.DhcpLeaseGranted); err != nil {
			return err
		}
	case *TriggerAction_GroupReceive:
		b.EncodeVarint(12<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GroupReceive); err != nil {
			return err
		}
	case *TriggerAction_GroupReceiveSequence:
		b.EncodeVarint(13<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GroupReceiveSequence); err != nil {
			return err
		}
	case *TriggerAction_GpioIn:
		b.EncodeVarint(14<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GpioIn); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("TriggerAction.Trigger has unexpected type %T", x)
	}
	// Action
	switch x := m.Action.(type) {
	case *TriggerAction_BashScript:
		b.EncodeVarint(15<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.BashScript); err != nil {
			return err
		}
	case *TriggerAction_HidScript:
		b.EncodeVarint(16<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.HidScript); err != nil {
			return err
		}
	case *TriggerAction_DeploySettingsTemplate:
		b.EncodeVarint(17<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.DeploySettingsTemplate); err != nil {
			return err
		}
	case *TriggerAction_Log:
		b.EncodeVarint(18<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Log); err != nil {
			return err
		}
	case *TriggerAction_GpioOut:
		b.EncodeVarint(19<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GpioOut); err != nil {
			return err
		}
	case *TriggerAction_GroupSend:
		b.EncodeVarint(20<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GroupSend); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("TriggerAction.Action has unexpected type %T", x)
	}
	return nil
}

func _TriggerAction_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*TriggerAction)
	switch tag {
	case 5: // Trigger.serviceStarted
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerServiceStarted)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_ServiceStarted{msg}
		return true, err
	case 6: // Trigger.usbGadgetConnected
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerUSBGadgetConnected)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_UsbGadgetConnected{msg}
		return true, err
	case 7: // Trigger.usbGadgetDisconnected
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerUSBGadgetDisconnected)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_UsbGadgetDisconnected{msg}
		return true, err
	case 8: // Trigger.wifiAPStarted
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerWifiAPStarted)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_WifiAPStarted{msg}
		return true, err
	case 9: // Trigger.wifiConnectedAsSta
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerWifiConnectedAsSta)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_WifiConnectedAsSta{msg}
		return true, err
	case 10: // Trigger.sshLogin
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerSSHLogin)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_SshLogin{msg}
		return true, err
	case 11: // Trigger.dhcpLeaseGranted
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerDHCPLeaseGranted)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_DhcpLeaseGranted{msg}
		return true, err
	case 12: // Trigger.groupReceive
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerGroupReceive)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_GroupReceive{msg}
		return true, err
	case 13: // Trigger.groupReceiveSequence
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerGroupReceiveSequence)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_GroupReceiveSequence{msg}
		return true, err
	case 14: // Trigger.gpioIn
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TriggerGPIOIn)
		err := b.DecodeMessage(msg)
		m.Trigger = &TriggerAction_GpioIn{msg}
		return true, err
	case 15: // Action.bashScript
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ActionStartBashScript)
		err := b.DecodeMessage(msg)
		m.Action = &TriggerAction_BashScript{msg}
		return true, err
	case 16: // Action.hidScript
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ActionStartHIDScript)
		err := b.DecodeMessage(msg)
		m.Action = &TriggerAction_HidScript{msg}
		return true, err
	case 17: // Action.deploySettingsTemplate
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ActionDeploySettingsTemplate)
		err := b.DecodeMessage(msg)
		m.Action = &TriggerAction_DeploySettingsTemplate{msg}
		return true, err
	case 18: // Action.log
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ActionLog)
		err := b.DecodeMessage(msg)
		m.Action = &TriggerAction_Log{msg}
		return true, err
	case 19: // Action.gpioOut
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ActionGPIOOut)
		err := b.DecodeMessage(msg)
		m.Action = &TriggerAction_GpioOut{msg}
		return true, err
	case 20: // Action.groupSend
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ActionGroupSend)
		err := b.DecodeMessage(msg)
		m.Action = &TriggerAction_GroupSend{msg}
		return true, err
	default:
		return false, nil
	}
}

func _TriggerAction_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*TriggerAction)
	// Trigger
	switch x := m.Trigger.(type) {
	case *TriggerAction_ServiceStarted:
		s := proto.Size(x.ServiceStarted)
		n += proto.SizeVarint(5<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_UsbGadgetConnected:
		s := proto.Size(x.UsbGadgetConnected)
		n += proto.SizeVarint(6<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_UsbGadgetDisconnected:
		s := proto.Size(x.UsbGadgetDisconnected)
		n += proto.SizeVarint(7<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_WifiAPStarted:
		s := proto.Size(x.WifiAPStarted)
		n += proto.SizeVarint(8<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_WifiConnectedAsSta:
		s := proto.Size(x.WifiConnectedAsSta)
		n += proto.SizeVarint(9<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_SshLogin:
		s := proto.Size(x.SshLogin)
		n += proto.SizeVarint(10<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_DhcpLeaseGranted:
		s := proto.Size(x.DhcpLeaseGranted)
		n += proto.SizeVarint(11<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_GroupReceive:
		s := proto.Size(x.GroupReceive)
		n += proto.SizeVarint(12<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_GroupReceiveSequence:
		s := proto.Size(x.GroupReceiveSequence)
		n += proto.SizeVarint(13<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_GpioIn:
		s := proto.Size(x.GpioIn)
		n += proto.SizeVarint(14<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	// Action
	switch x := m.Action.(type) {
	case *TriggerAction_BashScript:
		s := proto.Size(x.BashScript)
		n += proto.SizeVarint(15<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_HidScript:
		s := proto.Size(x.HidScript)
		n += proto.SizeVarint(16<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_DeploySettingsTemplate:
		s := proto.Size(x.DeploySettingsTemplate)
		n += proto.SizeVarint(17<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_Log:
		s := proto.Size(x.Log)
		n += proto.SizeVarint(18<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_GpioOut:
		s := proto.Size(x.GpioOut)
		n += proto.SizeVarint(19<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TriggerAction_GroupSend:
		s := proto.Size(x.GroupSend)
		n += proto.SizeVarint(20<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type TriggerServiceStarted struct {
}

func (m *TriggerServiceStarted) Reset()                    { *m = TriggerServiceStarted{} }
func (m *TriggerServiceStarted) String() string            { return proto.CompactTextString(m) }
func (*TriggerServiceStarted) ProtoMessage()               {}
func (*TriggerServiceStarted) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }

type TriggerUSBGadgetConnected struct {
}

func (m *TriggerUSBGadgetConnected) Reset()                    { *m = TriggerUSBGadgetConnected{} }
func (m *TriggerUSBGadgetConnected) String() string            { return proto.CompactTextString(m) }
func (*TriggerUSBGadgetConnected) ProtoMessage()               {}
func (*TriggerUSBGadgetConnected) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }

type TriggerUSBGadgetDisconnected struct {
}

func (m *TriggerUSBGadgetDisconnected) Reset()                    { *m = TriggerUSBGadgetDisconnected{} }
func (m *TriggerUSBGadgetDisconnected) String() string            { return proto.CompactTextString(m) }
func (*TriggerUSBGadgetDisconnected) ProtoMessage()               {}
func (*TriggerUSBGadgetDisconnected) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }

type TriggerWifiAPStarted struct {
}

func (m *TriggerWifiAPStarted) Reset()                    { *m = TriggerWifiAPStarted{} }
func (m *TriggerWifiAPStarted) String() string            { return proto.CompactTextString(m) }
func (*TriggerWifiAPStarted) ProtoMessage()               {}
func (*TriggerWifiAPStarted) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }

type TriggerWifiConnectedAsSta struct {
}

func (m *TriggerWifiConnectedAsSta) Reset()                    { *m = TriggerWifiConnectedAsSta{} }
func (m *TriggerWifiConnectedAsSta) String() string            { return proto.CompactTextString(m) }
func (*TriggerWifiConnectedAsSta) ProtoMessage()               {}
func (*TriggerWifiConnectedAsSta) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }

type TriggerSSHLogin struct {
	LoginUser string `protobuf:"bytes,1,opt,name=loginUser" json:"loginUser,omitempty"`
}

func (m *TriggerSSHLogin) Reset()                    { *m = TriggerSSHLogin{} }
func (m *TriggerSSHLogin) String() string            { return proto.CompactTextString(m) }
func (*TriggerSSHLogin) ProtoMessage()               {}
func (*TriggerSSHLogin) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }

func (m *TriggerSSHLogin) GetLoginUser() string {
	if m != nil {
		return m.LoginUser
	}
	return ""
}

type TriggerDHCPLeaseGranted struct {
}

func (m *TriggerDHCPLeaseGranted) Reset()                    { *m = TriggerDHCPLeaseGranted{} }
func (m *TriggerDHCPLeaseGranted) String() string            { return proto.CompactTextString(m) }
func (*TriggerDHCPLeaseGranted) ProtoMessage()               {}
func (*TriggerDHCPLeaseGranted) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }

type TriggerGroupReceive struct {
	GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"`
	Value     int32  `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
}

func (m *TriggerGroupReceive) Reset()                    { *m = TriggerGroupReceive{} }
func (m *TriggerGroupReceive) String() string            { return proto.CompactTextString(m) }
func (*TriggerGroupReceive) ProtoMessage()               {}
func (*TriggerGroupReceive) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }

func (m *TriggerGroupReceive) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

func (m *TriggerGroupReceive) GetValue() int32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type TriggerGroupReceiveSequence struct {
	GroupName        string  `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"`
	IgnoreOutOfOrder bool    `protobuf:"varint,2,opt,name=IgnoreOutOfOrder" json:"IgnoreOutOfOrder,omitempty"`
	Values           []int32 `protobuf:"varint,3,rep,packed,name=values" json:"values,omitempty"`
}

func (m *TriggerGroupReceiveSequence) Reset()                    { *m = TriggerGroupReceiveSequence{} }
func (m *TriggerGroupReceiveSequence) String() string            { return proto.CompactTextString(m) }
func (*TriggerGroupReceiveSequence) ProtoMessage()               {}
func (*TriggerGroupReceiveSequence) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }

func (m *TriggerGroupReceiveSequence) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

func (m *TriggerGroupReceiveSequence) GetIgnoreOutOfOrder() bool {
	if m != nil {
		return m.IgnoreOutOfOrder
	}
	return false
}

func (m *TriggerGroupReceiveSequence) GetValues() []int32 {
	if m != nil {
		return m.Values
	}
	return nil
}

type TriggerGPIOIn struct {
	GpioNum    GPIONum          `protobuf:"varint,1,opt,name=gpioNum,enum=P4wnP1_grpc.GPIONum" json:"gpioNum,omitempty"`
	PullUpDown GPIOInPullUpDown `protobuf:"varint,2,opt,name=pullUpDown,enum=P4wnP1_grpc.GPIOInPullUpDown" json:"pullUpDown,omitempty"`
	GpioInEdge GPIOInEdge       `protobuf:"varint,3,opt,name=gpioInEdge,enum=P4wnP1_grpc.GPIOInEdge" json:"gpioInEdge,omitempty"`
}

func (m *TriggerGPIOIn) Reset()                    { *m = TriggerGPIOIn{} }
func (m *TriggerGPIOIn) String() string            { return proto.CompactTextString(m) }
func (*TriggerGPIOIn) ProtoMessage()               {}
func (*TriggerGPIOIn) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }

func (m *TriggerGPIOIn) GetGpioNum() GPIONum {
	if m != nil {
		return m.GpioNum
	}
	return GPIONum_NUM_1
}

func (m *TriggerGPIOIn) GetPullUpDown() GPIOInPullUpDown {
	if m != nil {
		return m.PullUpDown
	}
	return GPIOInPullUpDown_UP
}

func (m *TriggerGPIOIn) GetGpioInEdge() GPIOInEdge {
	if m != nil {
		return m.GpioInEdge
	}
	return GPIOInEdge_RISING
}

type ActionStartBashScript struct {
	ScriptName string `protobuf:"bytes,1,opt,name=scriptName" json:"scriptName,omitempty"`
}

func (m *ActionStartBashScript) Reset()                    { *m = ActionStartBashScript{} }
func (m *ActionStartBashScript) String() string            { return proto.CompactTextString(m) }
func (*ActionStartBashScript) ProtoMessage()               {}
func (*ActionStartBashScript) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }

func (m *ActionStartBashScript) GetScriptName() string {
	if m != nil {
		return m.ScriptName
	}
	return ""
}

type ActionStartHIDScript struct {
	ScriptName string `protobuf:"bytes,1,opt,name=scriptName" json:"scriptName,omitempty"`
}

func (m *ActionStartHIDScript) Reset()                    { *m = ActionStartHIDScript{} }
func (m *ActionStartHIDScript) String() string            { return proto.CompactTextString(m) }
func (*ActionStartHIDScript) ProtoMessage()               {}
func (*ActionStartHIDScript) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }

func (m *ActionStartHIDScript) GetScriptName() string {
	if m != nil {
		return m.ScriptName
	}
	return ""
}

type ActionDeploySettingsTemplate struct {
	TemplateName string                                    `protobuf:"bytes,1,opt,name=templateName" json:"templateName,omitempty"`
	Type         ActionDeploySettingsTemplate_TemplateType `protobuf:"varint,2,opt,name=type,enum=P4wnP1_grpc.ActionDeploySettingsTemplate_TemplateType" json:"type,omitempty"`
}

func (m *ActionDeploySettingsTemplate) Reset()                    { *m = ActionDeploySettingsTemplate{} }
func (m *ActionDeploySettingsTemplate) String() string            { return proto.CompactTextString(m) }
func (*ActionDeploySettingsTemplate) ProtoMessage()               {}
func (*ActionDeploySettingsTemplate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }

func (m *ActionDeploySettingsTemplate) GetTemplateName() string {
	if m != nil {
		return m.TemplateName
	}
	return ""
}

func (m *ActionDeploySettingsTemplate) GetType() ActionDeploySettingsTemplate_TemplateType {
	if m != nil {
		return m.Type
	}
	return ActionDeploySettingsTemplate_FULL_SETTINGS
}

type ActionLog struct {
}

func (m *ActionLog) Reset()                    { *m = ActionLog{} }
func (m *ActionLog) String() string            { return proto.CompactTextString(m) }
func (*ActionLog) ProtoMessage()               {}
func (*ActionLog) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }

type ActionGPIOOut struct {
	GpioNum GPIONum      `protobuf:"varint,1,opt,name=gpioNum,enum=P4wnP1_grpc.GPIONum" json:"gpioNum,omitempty"`
	Value   GPIOOutValue `protobuf:"varint,2,opt,name=value,enum=P4wnP1_grpc.GPIOOutValue" json:"value,omitempty"`
}

func (m *ActionGPIOOut) Reset()                    { *m = ActionGPIOOut{} }
func (m *ActionGPIOOut) String() string            { return proto.CompactTextString(m) }
func (*ActionGPIOOut) ProtoMessage()               {}
func (*ActionGPIOOut) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }

func (m *ActionGPIOOut) GetGpioNum() GPIONum {
	if m != nil {
		return m.GpioNum
	}
	return GPIONum_NUM_1
}

func (m *ActionGPIOOut) GetValue() GPIOOutValue {
	if m != nil {
		return m.Value
	}
	return GPIOOutValue_LOW
}

type ActionGroupSend struct {
	GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"`
	Value     int32  `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
}

func (m *ActionGroupSend) Reset()                    { *m = ActionGroupSend{} }
func (m *ActionGroupSend) String() string            { return proto.CompactTextString(m) }
func (*ActionGroupSend) ProtoMessage()               {}
func (*ActionGroupSend) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }

func (m *ActionGroupSend) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

func (m *ActionGroupSend) GetValue() int32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type WifiRequestSettingsStorage struct {
	TemplateName string        `protobuf:"bytes,1,opt,name=TemplateName" json:"TemplateName,omitempty"`
	Settings     *WiFiSettings `protobuf:"bytes,2,opt,name=settings" json:"settings,omitempty"`
}

func (m *WifiRequestSettingsStorage) Reset()                    { *m = WifiRequestSettingsStorage{} }
func (m *WifiRequestSettingsStorage) String() string            { return proto.CompactTextString(m) }
func (*WifiRequestSettingsStorage) ProtoMessage()               {}
func (*WifiRequestSettingsStorage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }

func (m *WifiRequestSettingsStorage) GetTemplateName() string {
	if m != nil {
		return m.TemplateName
	}
	return ""
}

func (m *WifiRequestSettingsStorage) GetSettings() *WiFiSettings {
	if m != nil {
		return m.Settings
	}
	return nil
}

type WiFiSettings struct {
	// Generic
	Name           string          `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Disabled       bool            `protobuf:"varint,2,opt,name=disabled" json:"disabled,omitempty"`
	Regulatory     string          `protobuf:"bytes,3,opt,name=regulatory" json:"regulatory,omitempty"`
	WorkingMode    WiFiWorkingMode `protobuf:"varint,4,opt,name=working_mode,json=workingMode,enum=P4wnP1_grpc.WiFiWorkingMode" json:"working_mode,omitempty"`
	AuthMode       WiFiAuthMode    `protobuf:"varint,5,opt,name=auth_mode,json=authMode,enum=P4wnP1_grpc.WiFiAuthMode" json:"auth_mode,omitempty"`
	Channel        uint32          `protobuf:"varint,6,opt,name=channel" json:"channel,omitempty"`
	Ap_BSS         *WiFiBSSCfg     `protobuf:"bytes,7,opt,name=ap_BSS,json=apBSS" json:"ap_BSS,omitempty"`
	Client_BSSList []*WiFiBSSCfg   `protobuf:"bytes,8,rep,name=client_BSS_list,json=clientBSSList" json:"client_BSS_list,omitempty"`
	HideSsid       bool            `protobuf:"varint,9,opt,name=hide_ssid,json=hideSsid" json:"hide_ssid,omitempty"`
	Nexmon         bool            `protobuf:"varint,13,opt,name=nexmon" json:"nexmon,omitempty"`
}

func (m *WiFiSettings) Reset()                    { *m = WiFiSettings{} }
func (m *WiFiSettings) String() string            { return proto.CompactTextString(m) }
func (*WiFiSettings) ProtoMessage()               {}
func (*WiFiSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }

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

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

func (m *WiFiSettings) GetRegulatory() string {
	if m != nil {
		return m.Regulatory
	}
	return ""
}

func (m *WiFiSettings) GetWorkingMode() WiFiWorkingMode {
	if m != nil {
		return m.WorkingMode
	}
	return WiFiWorkingMode_UNKNOWN
}

func (m *WiFiSettings) GetAuthMode() WiFiAuthMode {
	if m != nil {
		return m.AuthMode
	}
	return WiFiAuthMode_WPA2_PSK
}

func (m *WiFiSettings) GetChannel() uint32 {
	if m != nil {
		return m.Channel
	}
	return 0
}

func (m *WiFiSettings) GetAp_BSS() *WiFiBSSCfg {
	if m != nil {
		return m.Ap_BSS
	}
	return nil
}

func (m *WiFiSettings) GetClient_BSSList() []*WiFiBSSCfg {
	if m != nil {
		return m.Client_BSSList
	}
	return nil
}

func (m *WiFiSettings) GetHideSsid() bool {
	if m != nil {
		return m.HideSsid
	}
	return false
}

func (m *WiFiSettings) GetNexmon() bool {
	if m != nil {
		return m.Nexmon
	}
	return false
}

type WiFiState struct {
	Mode            WiFiStateMode `protobuf:"varint,1,opt,name=mode,enum=P4wnP1_grpc.WiFiStateMode" json:"mode,omitempty"`
	Channel         uint32        `protobuf:"varint,2,opt,name=channel" json:"channel,omitempty"`
	Ssid            string        `protobuf:"bytes,3,opt,name=ssid" json:"ssid,omitempty"`
	CurrentSettings *WiFiSettings `protobuf:"bytes,4,opt,name=currentSettings" json:"currentSettings,omitempty"`
}

func (m *WiFiState) Reset()                    { *m = WiFiState{} }
func (m *WiFiState) String() string            { return proto.CompactTextString(m) }
func (*WiFiState) ProtoMessage()               {}
func (*WiFiState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }

func (m *WiFiState) GetMode() WiFiStateMode {
	if m != nil {
		return m.Mode
	}
	return WiFiStateMode_STA_NOT_CONNECTED
}

func (m *WiFiState) GetChannel() uint32 {
	if m != nil {
		return m.Channel
	}
	return 0
}

func (m *WiFiState) GetSsid() string {
	if m != nil {
		return m.Ssid
	}
	return ""
}

func (m *WiFiState) GetCurrentSettings() *WiFiSettings {
	if m != nil {
		return m.CurrentSettings
	}
	return nil
}

type WiFiBSSCfg struct {
	SSID string `protobuf:"bytes,1,opt,name=SSID" json:"SSID,omitempty"`
	PSK  string `protobuf:"bytes,2,opt,name=PSK" json:"PSK,omitempty"`
}

func (m *WiFiBSSCfg) Reset()                    { *m = WiFiBSSCfg{} }
func (m *WiFiBSSCfg) String() string            { return proto.CompactTextString(m) }
func (*WiFiBSSCfg) ProtoMessage()               {}
func (*WiFiBSSCfg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }

func (m *WiFiBSSCfg) GetSSID() string {
	if m != nil {
		return m.SSID
	}
	return ""
}

func (m *WiFiBSSCfg) GetPSK() string {
	if m != nil {
		return m.PSK
	}
	return ""
}

// Alive check
type StringMessage struct {
	Msg string `protobuf:"bytes,1,opt,name=msg" json:"msg,omitempty"`
}

func (m *StringMessage) Reset()                    { *m = StringMessage{} }
func (m *StringMessage) String() string            { return proto.CompactTextString(m) }
func (*StringMessage) ProtoMessage()               {}
func (*StringMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }

func (m *StringMessage) GetMsg() string {
	if m != nil {
		return m.Msg
	}
	return ""
}

type StringMessageArray struct {
	MsgArray []string `protobuf:"bytes,1,rep,name=msgArray" json:"msgArray,omitempty"`
}

func (m *StringMessageArray) Reset()                    { *m = StringMessageArray{} }
func (m *StringMessageArray) String() string            { return proto.CompactTextString(m) }
func (*StringMessageArray) ProtoMessage()               {}
func (*StringMessageArray) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }

func (m *StringMessageArray) GetMsgArray() []string {
	if m != nil {
		return m.MsgArray
	}
	return nil
}

// Events
type EventRequest struct {
	ListenType int64 `protobuf:"varint,1,opt,name=listenType" json:"listenType,omitempty"`
}

func (m *EventRequest) Reset()                    { *m = EventRequest{} }
func (m *EventRequest) String() string            { return proto.CompactTextString(m) }
func (*EventRequest) ProtoMessage()               {}
func (*EventRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }

func (m *EventRequest) GetListenType() int64 {
	if m != nil {
		return m.ListenType
	}
	return 0
}

type EventValue struct {
	// Types that are valid to be assigned to Val:
	//	*EventValue_Tstring
	//	*EventValue_Tbool
	//	*EventValue_Tint64
	Val isEventValue_Val `protobuf_oneof:"val"`
}

func (m *EventValue) Reset()                    { *m = EventValue{} }
func (m *EventValue) String() string            { return proto.CompactTextString(m) }
func (*EventValue) ProtoMessage()               {}
func (*EventValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }

type isEventValue_Val interface {
	isEventValue_Val()
}

type EventValue_Tstring struct {
	Tstring string `protobuf:"bytes,1,opt,name=tstring,oneof"`
}
type EventValue_Tbool struct {
	Tbool bool `protobuf:"varint,2,opt,name=tbool,oneof"`
}
type EventValue_Tint64 struct {
	Tint64 int64 `protobuf:"varint,3,opt,name=tint64,oneof"`
}

func (*EventValue_Tstring) isEventValue_Val() {}
func (*EventValue_Tbool) isEventValue_Val()   {}
func (*EventValue_Tint64) isEventValue_Val()  {}

func (m *EventValue) GetVal() isEventValue_Val {
	if m != nil {
		return m.Val
	}
	return nil
}

func (m *EventValue) GetTstring() string {
	if x, ok := m.GetVal().(*EventValue_Tstring); ok {
		return x.Tstring
	}
	return ""
}

func (m *EventValue) GetTbool() bool {
	if x, ok := m.GetVal().(*EventValue_Tbool); ok {
		return x.Tbool
	}
	return false
}

func (m *EventValue) GetTint64() int64 {
	if x, ok := m.GetVal().(*EventValue_Tint64); ok {
		return x.Tint64
	}
	return 0
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*EventValue) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _EventValue_OneofMarshaler, _EventValue_OneofUnmarshaler, _EventValue_OneofSizer, []interface{}{
		(*EventValue_Tstring)(nil),
		(*EventValue_Tbool)(nil),
		(*EventValue_Tint64)(nil),
	}
}

func _EventValue_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*EventValue)
	// val
	switch x := m.Val.(type) {
	case *EventValue_Tstring:
		b.EncodeVarint(1<<3 | proto.WireBytes)
		b.EncodeStringBytes(x.Tstring)
	case *EventValue_Tbool:
		t := uint64(0)
		if x.Tbool {
			t = 1
		}
		b.EncodeVarint(2<<3 | proto.WireVarint)
		b.EncodeVarint(t)
	case *EventValue_Tint64:
		b.EncodeVarint(3<<3 | proto.WireVarint)
		b.EncodeVarint(uint64(x.Tint64))
	case nil:
	default:
		return fmt.Errorf("EventValue.Val has unexpected type %T", x)
	}
	return nil
}

func _EventValue_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*EventValue)
	switch tag {
	case 1: // val.tstring
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Val = &EventValue_Tstring{x}
		return true, err
	case 2: // val.tbool
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Val = &EventValue_Tbool{x != 0}
		return true, err
	case 3: // val.tint64
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Val = &EventValue_Tint64{int64(x)}
		return true, err
	default:
		return false, nil
	}
}

func _EventValue_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*EventValue)
	// val
	switch x := m.Val.(type) {
	case *EventValue_Tstring:
		n += proto.SizeVarint(1<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Tstring)))
		n += len(x.Tstring)
	case *EventValue_Tbool:
		n += proto.SizeVarint(2<<3 | proto.WireVarint)
		n += 1
	case *EventValue_Tint64:
		n += proto.SizeVarint(3<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Tint64))
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type Event struct {
	Type   int64         `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	Values []*EventValue `protobuf:"bytes,2,rep,name=values" json:"values,omitempty"`
}

func (m *Event) Reset()                    { *m = Event{} }
func (m *Event) String() string            { return proto.CompactTextString(m) }
func (*Event) ProtoMessage()               {}
func (*Event) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }

func (m *Event) GetType() int64 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *Event) GetValues() []*EventValue {
	if m != nil {
		return m.Values
	}
	return nil
}

// File System
type TempDirOrFileRequest struct {
	Dir        string `protobuf:"bytes,1,opt,name=dir" json:"dir,omitempty"`
	Prefix     string `protobuf:"bytes,2,opt,name=prefix" json:"prefix,omitempty"`
	OnlyFolder bool   `protobuf:"varint,3,opt,name=onlyFolder" json:"onlyFolder,omitempty"`
}

func (m *TempDirOrFileRequest) Reset()                    { *m = TempDirOrFileRequest{} }
func (m *TempDirOrFileRequest) String() string            { return proto.CompactTextString(m) }
func (*TempDirOrFileRequest) ProtoMessage()               {}
func (*TempDirOrFileRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }

func (m *TempDirOrFileRequest) GetDir() string {
	if m != nil {
		return m.Dir
	}
	return ""
}

func (m *TempDirOrFileRequest) GetPrefix() string {
	if m != nil {
		return m.Prefix
	}
	return ""
}

func (m *TempDirOrFileRequest) GetOnlyFolder() bool {
	if m != nil {
		return m.OnlyFolder
	}
	return false
}

type TempDirOrFileResponse struct {
	ResultPath string `protobuf:"bytes,1,opt,name=resultPath" json:"resultPath,omitempty"`
}

func (m *TempDirOrFileResponse) Reset()                    { *m = TempDirOrFileResponse{} }
func (m *TempDirOrFileResponse) String() string            { return proto.CompactTextString(m) }
func (*TempDirOrFileResponse) ProtoMessage()               {}
func (*TempDirOrFileResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }

func (m *TempDirOrFileResponse) GetResultPath() string {
	if m != nil {
		return m.ResultPath
	}
	return ""
}

type ReadFileRequest struct {
	Folder   AccessibleFolder `protobuf:"varint,1,opt,name=folder,enum=P4wnP1_grpc.AccessibleFolder" json:"folder,omitempty"`
	Filename string           `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"`
	Start    int64            `protobuf:"varint,3,opt,name=start" json:"start,omitempty"`
	Len      int64            `protobuf:"varint,4,opt,name=len" json:"len,omitempty"`
}

func (m *ReadFileRequest) Reset()                    { *m = ReadFileRequest{} }
func (m *ReadFileRequest) String() string            { return proto.CompactTextString(m) }
func (*ReadFileRequest) ProtoMessage()               {}
func (*ReadFileRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }

func (m *ReadFileRequest) GetFolder() AccessibleFolder {
	if m != nil {
		return m.Folder
	}
	return AccessibleFolder_TMP
}

func (m *ReadFileRequest) GetFilename() string {
	if m != nil {
		return m.Filename
	}
	return ""
}

func (m *ReadFileRequest) GetStart() int64 {
	if m != nil {
		return m.Start
	}
	return 0
}

func (m *ReadFileRequest) GetLen() int64 {
	if m != nil {
		return m.Len
	}
	return 0
}

type ReadFileResponse struct {
	ReadCount int64  `protobuf:"varint,1,opt,name=readCount" json:"readCount,omitempty"`
	Data      []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
}

func (m *ReadFileResponse) Reset()                    { *m = ReadFileResponse{} }
func (m *ReadFileResponse) String() string            { return proto.CompactTextString(m) }
func (*ReadFileResponse) ProtoMessage()               {}
func (*ReadFileResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }

func (m *ReadFileResponse) GetReadCount() int64 {
	if m != nil {
		return m.ReadCount
	}
	return 0
}

func (m *ReadFileResponse) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

type WriteFileRequest struct {
	Folder       AccessibleFolder `protobuf:"varint,1,opt,name=folder,enum=P4wnP1_grpc.AccessibleFolder" json:"folder,omitempty"`
	Filename     string           `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"`
	Append       bool             `protobuf:"varint,3,opt,name=append" json:"append,omitempty"`
	MustNotExist bool             `protobuf:"varint,4,opt,name=mustNotExist" json:"mustNotExist,omitempty"`
	Data         []byte           `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"`
}

func (m *WriteFileRequest) Reset()                    { *m = WriteFileRequest{} }
func (m *WriteFileRequest) String() string            { return proto.CompactTextString(m) }
func (*WriteFileRequest) ProtoMessage()               {}
func (*WriteFileRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }

func (m *WriteFileRequest) GetFolder() AccessibleFolder {
	if m != nil {
		return m.Folder
	}
	return AccessibleFolder_TMP
}

func (m *WriteFileRequest) GetFilename() string {
	if m != nil {
		return m.Filename
	}
	return ""
}

func (m *WriteFileRequest) GetAppend() bool {
	if m != nil {
		return m.Append
	}
	return false
}

func (m *WriteFileRequest) GetMustNotExist() bool {
	if m != nil {
		return m.MustNotExist
	}
	return false
}

func (m *WriteFileRequest) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

type FileInfoRequest struct {
	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
}

func (m *FileInfoRequest) Reset()                    { *m = FileInfoRequest{} }
func (m *FileInfoRequest) String() string            { return proto.CompactTextString(m) }
func (*FileInfoRequest) ProtoMessage()               {}
func (*FileInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }

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

type FileInfoResponse struct {
	Name    string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Size    int64  `protobuf:"varint,2,opt,name=size" json:"size,omitempty"`
	Mode    uint32 `protobuf:"varint,3,opt,name=mode" json:"mode,omitempty"`
	ModTime int64  `protobuf:"varint,4,opt,name=modTime" json:"modTime,omitempty"`
	IsDir   bool   `protobuf:"varint,5,opt,name=isDir" json:"isDir,omitempty"`
}

func (m *FileInfoResponse) Reset()                    { *m = FileInfoResponse{} }
func (m *FileInfoResponse) String() string            { return proto.CompactTextString(m) }
func (*FileInfoResponse) ProtoMessage()               {}
func (*FileInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }

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

func (m *FileInfoResponse) GetSize() int64 {
	if m != nil {
		return m.Size
	}
	return 0
}

func (m *FileInfoResponse) GetMode() uint32 {
	if m != nil {
		return m.Mode
	}
	return 0
}

func (m *FileInfoResponse) GetModTime() int64 {
	if m != nil {
		return m.ModTime
	}
	return 0
}

func (m *FileInfoResponse) GetIsDir() bool {
	if m != nil {
		return m.IsDir
	}
	return false
}

// HID
type HIDScriptRequest struct {
	ScriptPath     string `protobuf:"bytes,1,opt,name=scriptPath" json:"scriptPath,omitempty"`
	TimeoutSeconds uint32 `protobuf:"varint,2,opt,name=timeoutSeconds" json:"timeoutSeconds,omitempty"`
}

func (m *HIDScriptRequest) Reset()                    { *m = HIDScriptRequest{} }
func (m *HIDScriptRequest) String() string            { return proto.CompactTextString(m) }
func (*HIDScriptRequest) ProtoMessage()               {}
func (*HIDScriptRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }

func (m *HIDScriptRequest) GetScriptPath() string {
	if m != nil {
		return m.ScriptPath
	}
	return ""
}

func (m *HIDScriptRequest) GetTimeoutSeconds() uint32 {
	if m != nil {
		return m.TimeoutSeconds
	}
	return 0
}

type HIDScriptJob struct {
	Id uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
}

func (m *HIDScriptJob) Reset()                    { *m = HIDScriptJob{} }
func (m *HIDScriptJob) String() string            { return proto.CompactTextString(m) }
func (*HIDScriptJob) ProtoMessage()               {}
func (*HIDScriptJob) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }

func (m *HIDScriptJob) GetId() uint32 {
	if m != nil {
		return m.Id
	}
	return 0
}

type HIDScriptJobList struct {
	Ids []uint32 `protobuf:"varint,1,rep,packed,name=ids" json:"ids,omitempty"`
}

func (m *HIDScriptJobList) Reset()                    { *m = HIDScriptJobList{} }
func (m *HIDScriptJobList) String() string            { return proto.CompactTextString(m) }
func (*HIDScriptJobList) ProtoMessage()               {}
func (*HIDScriptJobList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }

func (m *HIDScriptJobList) GetIds() []uint32 {
	if m != nil {
		return m.Ids
	}
	return nil
}

type HIDRunningJobStateResult struct {
	Id     int64  `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	VmId   int64  `protobuf:"varint,2,opt,name=vmId" json:"vmId,omitempty"`
	Source string `protobuf:"bytes,3,opt,name=source" json:"source,omitempty"`
}

func (m *HIDRunningJobStateResult) Reset()                    { *m = HIDRunningJobStateResult{} }
func (m *HIDRunningJobStateResult) String() string            { return proto.CompactTextString(m) }
func (*HIDRunningJobStateResult) ProtoMessage()               {}
func (*HIDRunningJobStateResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }

func (m *HIDRunningJobStateResult) GetId() int64 {
	if m != nil {
		return m.Id
	}
	return 0
}

func (m *HIDRunningJobStateResult) GetVmId() int64 {
	if m != nil {
		return m.VmId
	}
	return 0
}

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

type HIDScriptResult struct {
	Job        *HIDScriptJob `protobuf:"bytes,1,opt,name=job" json:"job,omitempty"`
	IsFinished bool          `protobuf:"varint,2,opt,name=isFinished" json:"isFinished,omitempty"`
	ResultJson string        `protobuf:"bytes,3,opt,name=resultJson" json:"resultJson,omitempty"`
}

func (m *HIDScriptResult) Reset()                    { *m = HIDScriptResult{} }
func (m *HIDScriptResult) String() string            { return proto.CompactTextString(m) }
func (*HIDScriptResult) ProtoMessage()               {}
func (*HIDScriptResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }

func (m *HIDScriptResult) GetJob() *HIDScriptJob {
	if m != nil {
		return m.Job
	}
	return nil
}

func (m *HIDScriptResult) GetIsFinished() bool {
	if m != nil {
		return m.IsFinished
	}
	return false
}

func (m *HIDScriptResult) GetResultJson() string {
	if m != nil {
		return m.ResultJson
	}
	return ""
}

// LED
type LEDSettings struct {
	BlinkCount uint32 `protobuf:"varint,1,opt,name=blink_count,json=blinkCount" json:"blink_count,omitempty"`
}

func (m *LEDSettings) Reset()                    { *m = LEDSettings{} }
func (m *LEDSettings) String() string            { return proto.CompactTextString(m) }
func (*LEDSettings) ProtoMessage()               {}
func (*LEDSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }

func (m *LEDSettings) GetBlinkCount() uint32 {
	if m != nil {
		return m.BlinkCount
	}
	return 0
}

// USB Gadget
type USBRequestSettingsStorage struct {
	TemplateName string          `protobuf:"bytes,1,opt,name=TemplateName" json:"TemplateName,omitempty"`
	Settings     *GadgetSettings `protobuf:"bytes,2,opt,name=settings" json:"settings,omitempty"`
}

func (m *USBRequestSettingsStorage) Reset()                    { *m = USBRequestSettingsStorage{} }
func (m *USBRequestSettingsStorage) String() string            { return proto.CompactTextString(m) }
func (*USBRequestSettingsStorage) ProtoMessage()               {}
func (*USBRequestSettingsStorage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }

func (m *USBRequestSettingsStorage) GetTemplateName() string {
	if m != nil {
		return m.TemplateName
	}
	return ""
}

func (m *USBRequestSettingsStorage) GetSettings() *GadgetSettings {
	if m != nil {
		return m.Settings
	}
	return nil
}

type GadgetSettings struct {
	Enabled          bool                    `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
	Vid              string                  `protobuf:"bytes,2,opt,name=vid" json:"vid,omitempty"`
	Pid              string                  `protobuf:"bytes,3,opt,name=pid" json:"pid,omitempty"`
	Manufacturer     string                  `protobuf:"bytes,4,opt,name=manufacturer" json:"manufacturer,omitempty"`
	Product          string                  `protobuf:"bytes,5,opt,name=product" json:"product,omitempty"`
	Serial           string                  `protobuf:"bytes,6,opt,name=serial" json:"serial,omitempty"`
	Use_CDC_ECM      bool                    `protobuf:"varint,7,opt,name=use_CDC_ECM,json=useCDCECM" json:"use_CDC_ECM,omitempty"`
	Use_RNDIS        bool                    `protobuf:"varint,8,opt,name=use_RNDIS,json=useRNDIS" json:"use_RNDIS,omitempty"`
	Use_HID_KEYBOARD bool                    `protobuf:"varint,9,opt,name=use_HID_KEYBOARD,json=useHIDKEYBOARD" json:"use_HID_KEYBOARD,omitempty"`
	Use_HID_MOUSE    bool                    `protobuf:"varint,10,opt,name=use_HID_MOUSE,json=useHIDMOUSE" json:"use_HID_MOUSE,omitempty"`
	Use_HID_RAW      bool                    `protobuf:"varint,11,opt,name=use_HID_RAW,json=useHIDRAW" json:"use_HID_RAW,omitempty"`
	Use_UMS          bool                    `protobuf:"varint,12,opt,name=use_UMS,json=useUMS" json:"use_UMS,omitempty"`
	Use_SERIAL       bool                    `protobuf:"varint,13,opt,name=use_SERIAL,json=useSERIAL" json:"use_SERIAL,omitempty"`
	RndisSettings    *GadgetSettingsEthernet `protobuf:"bytes,14,opt,name=rndis_settings,json=rndisSettings" json:"rndis_settings,omitempty"`
	CdcEcmSettings   *GadgetSettingsEthernet `protobuf:"bytes,15,opt,name=cdc_ecm_settings,json=cdcEcmSettings" json:"cdc_ecm_settings,omitempty"`
	UmsSettings      *GadgetSettingsUMS      `protobuf:"bytes,16,opt,name=ums_settings,json=umsSettings" json:"ums_settings,omitempty"`
	// EthernetInterfaceSettings ethernet_settings = 17; //only applicable if RNDIS or CDC ECM on
	DevPathHidKeyboard string `protobuf:"bytes,18,opt,name=dev_path_hid_keyboard,json=devPathHidKeyboard" json:"dev_path_hid_keyboard,omitempty"`
	DevPathHidMouse    string `protobuf:"bytes,19,opt,name=dev_path_hid_mouse,json=devPathHidMouse" json:"dev_path_hid_mouse,omitempty"`
	DevPathHidRaw      string `protobuf:"bytes,20,opt,name=dev_path_hid_raw,json=devPathHidRaw" json:"dev_path_hid_raw,omitempty"`
}

func (m *GadgetSettings) Reset()                    { *m = GadgetSettings{} }
func (m *GadgetSettings) String() string            { return proto.CompactTextString(m) }
func (*GadgetSettings) ProtoMessage()               {}
func (*GadgetSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }

func (m *GadgetSettings) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *GadgetSettings) GetVid() string {
	if m != nil {
		return m.Vid
	}
	return ""
}

func (m *GadgetSettings) GetPid() string {
	if m != nil {
		return m.Pid
	}
	return ""
}

func (m *GadgetSettings) GetManufacturer() string {
	if m != nil {
		return m.Manufacturer
	}
	return ""
}

func (m *GadgetSettings) GetProduct() string {
	if m != nil {
		return m.Product
	}
	return ""
}

func (m *GadgetSettings) GetSerial() string {
	if m != nil {
		return m.Serial
	}
	return ""
}

func (m *GadgetSettings) GetUse_CDC_ECM() bool {
	if m != nil {
		return m.Use_CDC_ECM
	}
	return false
}

func (m *GadgetSettings) GetUse_RNDIS() bool {
	if m != nil {
		return m.Use_RNDIS
	}
	return false
}

func (m *GadgetSettings) GetUse_HID_KEYBOARD() bool {
	if m != nil {
		return m.Use_HID_KEYBOARD
	}
	return false
}

func (m *GadgetSettings) GetUse_HID_MOUSE() bool {
	if m != nil {
		return m.Use_HID_MOUSE
	}
	return false
}

func (m *GadgetSettings) GetUse_HID_RAW() bool {
	if m != nil {
		return m.Use_HID_RAW
	}
	return false
}

func (m *GadgetSettings) GetUse_UMS() bool {
	if m != nil {
		return m.Use_UMS
	}
	return false
}

func (m *GadgetSettings) GetUse_SERIAL() bool {
	if m != nil {
		return m.Use_SERIAL
	}
	return false
}

func (m *GadgetSettings) GetRndisSettings() *GadgetSettingsEthernet {
	if m != nil {
		return m.RndisSettings
	}
	return nil
}

func (m *GadgetSettings) GetCdcEcmSettings() *GadgetSettingsEthernet {
	if m != nil {
		return m.CdcEcmSettings
	}
	return nil
}

func (m *GadgetSettings) GetUmsSettings() *GadgetSettingsUMS {
	if m != nil {
		return m.UmsSettings
	}
	return nil
}

func (m *GadgetSettings) GetDevPathHidKeyboard() string {
	if m != nil {
		return m.DevPathHidKeyboard
	}
	return ""
}

func (m *GadgetSettings) GetDevPathHidMouse() string {
	if m != nil {
		return m.DevPathHidMouse
	}
	return ""
}

func (m *GadgetSettings) GetDevPathHidRaw() string {
	if m != nil {
		return m.DevPathHidRaw
	}
	return ""
}

type GadgetSettingsEthernet struct {
	HostAddr string `protobuf:"bytes,1,opt,name=host_addr,json=hostAddr" json:"host_addr,omitempty"`
	DevAddr  string `protobuf:"bytes,2,opt,name=dev_addr,json=devAddr" json:"dev_addr,omitempty"`
}

func (m *GadgetSettingsEthernet) Reset()                    { *m = GadgetSettingsEthernet{} }
func (m *GadgetSettingsEthernet) String() string            { return proto.CompactTextString(m) }
func (*GadgetSettingsEthernet) ProtoMessage()               {}
func (*GadgetSettingsEthernet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }

func (m *GadgetSettingsEthernet) GetHostAddr() string {
	if m != nil {
		return m.HostAddr
	}
	return ""
}

func (m *GadgetSettingsEthernet) GetDevAddr() string {
	if m != nil {
		return m.DevAddr
	}
	return ""
}

type GadgetSettingsUMS struct {
	Cdrom bool   `protobuf:"varint,1,opt,name=cdrom" json:"cdrom,omitempty"`
	File  string `protobuf:"bytes,2,opt,name=file" json:"file,omitempty"`
}

func (m *GadgetSettingsUMS) Reset()                    { *m = GadgetSettingsUMS{} }
func (m *GadgetSettingsUMS) String() string            { return proto.CompactTextString(m) }
func (*GadgetSettingsUMS) ProtoMessage()               {}
func (*GadgetSettingsUMS) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }

func (m *GadgetSettingsUMS) GetCdrom() bool {
	if m != nil {
		return m.Cdrom
	}
	return false
}

func (m *GadgetSettingsUMS) GetFile() string {
	if m != nil {
		return m.File
	}
	return ""
}

// Ethernet Interface Settings
type EthernetRequestSettingsStorage struct {
	TemplateName string                     `protobuf:"bytes,1,opt,name=TemplateName" json:"TemplateName,omitempty"`
	Settings     *EthernetInterfaceSettings `protobuf:"bytes,2,opt,name=settings" json:"settings,omitempty"`
}

func (m *EthernetRequestSettingsStorage) Reset()                    { *m = EthernetRequestSettingsStorage{} }
func (m *EthernetRequestSettingsStorage) String() string            { return proto.CompactTextString(m) }
func (*EthernetRequestSettingsStorage) ProtoMessage()               {}
func (*EthernetRequestSettingsStorage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }

func (m *EthernetRequestSettingsStorage) GetTemplateName() string {
	if m != nil {
		return m.TemplateName
	}
	return ""
}

func (m *EthernetRequestSettingsStorage) GetSettings() *EthernetInterfaceSettings {
	if m != nil {
		return m.Settings
	}
	return nil
}

type DeployedEthernetInterfaceSettings struct {
	List []*EthernetInterfaceSettings `protobuf:"bytes,1,rep,name=list" json:"list,omitempty"`
}

func (m *DeployedEthernetInterfaceSettings) Reset()         { *m = DeployedEthernetInterfaceSettings{} }
func (m *DeployedEthernetInterfaceSettings) String() string { return proto.CompactTextString(m) }
func (*DeployedEthernetInterfaceSettings) ProtoMessage()    {}
func (*DeployedEthernetInterfaceSettings) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{51}
}

func (m *DeployedEthernetInterfaceSettings) GetList() []*EthernetInterfaceSettings {
	if m != nil {
		return m.List
	}
	return nil
}

type EthernetInterfaceSettings struct {
	Name               string                         `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Mode               EthernetInterfaceSettings_Mode `protobuf:"varint,2,opt,name=mode,enum=P4wnP1_grpc.EthernetInterfaceSettings_Mode" json:"mode,omitempty"`
	IpAddress4         string                         `protobuf:"bytes,3,opt,name=ipAddress4" json:"ipAddress4,omitempty"`
	Netmask4           string                         `protobuf:"bytes,4,opt,name=netmask4" json:"netmask4,omitempty"`
	Enabled            bool                           `protobuf:"varint,5,opt,name=enabled" json:"enabled,omitempty"`
	DhcpServerSettings *DHCPServerSettings            `protobuf:"bytes,6,opt,name=dhcpServerSettings" json:"dhcpServerSettings,omitempty"`
	SettingsInUse      bool                           `protobuf:"varint,7,opt,name=settingsInUse" json:"settingsInUse,omitempty"`
}

func (m *EthernetInterfaceSettings) Reset()                    { *m = EthernetInterfaceSettings{} }
func (m *EthernetInterfaceSettings) String() string            { return proto.CompactTextString(m) }
func (*EthernetInterfaceSettings) ProtoMessage()               {}
func (*EthernetInterfaceSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }

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

func (m *EthernetInterfaceSettings) GetMode() EthernetInterfaceSettings_Mode {
	if m != nil {
		return m.Mode
	}
	return EthernetInterfaceSettings_MANUAL
}

func (m *EthernetInterfaceSettings) GetIpAddress4() string {
	if m != nil {
		return m.IpAddress4
	}
	return ""
}

func (m *EthernetInterfaceSettings) GetNetmask4() string {
	if m != nil {
		return m.Netmask4
	}
	return ""
}

func (m *EthernetInterfaceSettings) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *EthernetInterfaceSettings) GetDhcpServerSettings() *DHCPServerSettings {
	if m != nil {
		return m.DhcpServerSettings
	}
	return nil
}

func (m *EthernetInterfaceSettings) GetSettingsInUse() bool {
	if m != nil {
		return m.SettingsInUse
	}
	return false
}

// DHCP
type DHCPServerSettings struct {
	ListenPort         uint32             `protobuf:"varint,1,opt,name=listenPort" json:"listenPort,omitempty"`
	ListenInterface    string             `protobuf:"bytes,2,opt,name=listenInterface" json:"listenInterface,omitempty"`
	LeaseFile          string             `protobuf:"bytes,3,opt,name=leaseFile" json:"leaseFile,omitempty"`
	NotAuthoritative   bool               `protobuf:"varint,4,opt,name=notAuthoritative" json:"notAuthoritative,omitempty"`
	DoNotBindInterface bool               `protobuf:"varint,5,opt,name=doNotBindInterface" json:"doNotBindInterface,omitempty"`
	CallbackScript     string             `protobuf:"bytes,6,opt,name=callbackScript" json:"callbackScript,omitempty"`
	Ranges             []*DHCPServerRange `protobuf:"bytes,7,rep,name=ranges" json:"ranges,omitempty"`
	// repeated DHCPServerOption options = 8;
	Options     map[uint32]string       `protobuf:"bytes,8,rep,name=options" json:"options,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	StaticHosts []*DHCPServerStaticHost `protobuf:"bytes,9,rep,name=staticHosts" json:"staticHosts,omitempty"`
}

func (m *DHCPServerSettings) Reset()                    { *m = DHCPServerSettings{} }
func (m *DHCPServerSettings) String() string            { return proto.CompactTextString(m) }
func (*DHCPServerSettings) ProtoMessage()               {}
func (*DHCPServerSettings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }

func (m *DHCPServerSettings) GetListenPort() uint32 {
	if m != nil {
		return m.ListenPort
	}
	return 0
}

func (m *DHCPServerSettings) GetListenInterface() string {
	if m != nil {
		return m.ListenInterface
	}
	return ""
}

func (m *DHCPServerSettings) GetLeaseFile() string {
	if m != nil {
		return m.LeaseFile
	}
	return ""
}

func (m *DHCPServerSettings) GetNotAuthoritative() bool {
	if m != nil {
		return m.NotAuthoritative
	}
	return false
}

func (m *DHCPServerSettings) GetDoNotBindInterface() bool {
	if m != nil {
		return m.DoNotBindInterface
	}
	return false
}

func (m *DHCPServerSettings) GetCallbackScript() string {
	if m != nil {
		return m.CallbackScript
	}
	return ""
}

func (m *DHCPServerSettings) GetRanges() []*DHCPServerRange {
	if m != nil {
		return m.Ranges
	}
	return nil
}

func (m *DHCPServerSettings) GetOptions() map[uint32]string {
	if m != nil {
		return m.Options
	}
	return nil
}

func (m *DHCPServerSettings) GetStaticHosts() []*DHCPServerStaticHost {
	if m != nil {
		return m.StaticHosts
	}
	return nil
}

// Could be used for IPv4 or IPv6 (refer dnsmasq docs), nor field for prefix length (default is 64)
type DHCPServerRange struct {
	RangeLower string `protobuf:"bytes,1,opt,name=rangeLower" json:"rangeLower,omitempty"`
	RangeUpper string `protobuf:"bytes,2,opt,name=rangeUpper" json:"rangeUpper,omitempty"`
	LeaseTime  string `protobuf:"bytes,3,opt,name=leaseTime" json:"leaseTime,omitempty"`
}

func (m *DHCPServerRange) Reset()                    { *m = DHCPServerRange{} }
func (m *DHCPServerRange) String() string            { return proto.CompactTextString(m) }
func (*DHCPServerRange) ProtoMessage()               {}
func (*DHCPServerRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }

func (m *DHCPServerRange) GetRangeLower() string {
	if m != nil {
		return m.RangeLower
	}
	return ""
}

func (m *DHCPServerRange) GetRangeUpper() string {
	if m != nil {
		return m.RangeUpper
	}
	return ""
}

func (m *DHCPServerRange) GetLeaseTime() string {
	if m != nil {
		return m.LeaseTime
	}
	return ""
}

// Used for static leases
type DHCPServerStaticHost struct {
	Mac string `protobuf:"bytes,1,opt,name=mac" json:"mac,omitempty"`
	Ip  string `protobuf:"bytes,2,opt,name=ip" json:"ip,omitempty"`
}

func (m *DHCPServerStaticHost) Reset()                    { *m = DHCPServerStaticHost{} }
func (m *DHCPServerStaticHost) String() string            { return proto.CompactTextString(m) }
func (*DHCPServerStaticHost) ProtoMessage()               {}
func (*DHCPServerStaticHost) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }

func (m *DHCPServerStaticHost) GetMac() string {
	if m != nil {
		return m.Mac
	}
	return ""
}

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

type Empty struct {
}

func (m *Empty) Reset()                    { *m = Empty{} }
func (m *Empty) String() string            { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage()               {}
func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }

func init() {
	proto.RegisterType((*BluetoothRequestSettingsStorage)(nil), "P4wnP1_grpc.BluetoothRequestSettingsStorage")
	proto.RegisterType((*BluetoothSettings)(nil), "P4wnP1_grpc.BluetoothSettings")
	proto.RegisterType((*BluetoothAgentSettings)(nil), "P4wnP1_grpc.BluetoothAgentSettings")
	proto.RegisterType((*BluetoothNetworkService)(nil), "P4wnP1_grpc.BluetoothNetworkService")
	proto.RegisterType((*BluetoothControllerSettings)(nil), "P4wnP1_grpc.BluetoothControllerSettings")
	proto.RegisterType((*BluetoothControllerInformation)(nil), "P4wnP1_grpc.BluetoothControllerInformation")
	proto.RegisterType((*TriggerActionSet)(nil), "P4wnP1_grpc.TriggerActionSet")
	proto.RegisterType((*TriggerAction)(nil), "P4wnP1_grpc.TriggerAction")
	proto.RegisterType((*TriggerServiceStarted)(nil), "P4wnP1_grpc.TriggerServiceStarted")
	proto.RegisterType((*TriggerUSBGadgetConnected)(nil), "P4wnP1_grpc.TriggerUSBGadgetConnected")
	proto.RegisterType((*TriggerUSBGadgetDisconnected)(nil), "P4wnP1_grpc.TriggerUSBGadgetDisconnected")
	proto.RegisterType((*TriggerWifiAPStarted)(nil), "P4wnP1_grpc.TriggerWifiAPStarted")
	proto.RegisterType((*TriggerWifiConnectedAsSta)(nil), "P4wnP1_grpc.TriggerWifiConnectedAsSta")
	proto.RegisterType((*TriggerSSHLogin)(nil), "P4wnP1_grpc.TriggerSSHLogin")
	proto.RegisterType((*TriggerDHCPLeaseGranted)(nil), "P4wnP1_grpc.TriggerDHCPLeaseGranted")
	proto.RegisterType((*TriggerGroupReceive)(nil), "P4wnP1_grpc.TriggerGroupReceive")
	proto.RegisterType((*TriggerGroupReceiveSequence)(nil), "P4wnP1_grpc.TriggerGroupReceiveSequence")
	proto.RegisterType((*TriggerGPIOIn)(nil), "P4wnP1_grpc.TriggerGPIOIn")
	proto.RegisterType((*ActionStartBashScript)(nil), "P4wnP1_grpc.ActionStartBashScript")
	proto.RegisterType((*ActionStartHIDScript)(nil), "P4wnP1_grpc.ActionStartHIDScript")
	proto.RegisterType((*ActionDeploySettingsTemplate)(nil), "P4wnP1_grpc.ActionDeploySettingsTemplate")
	proto.RegisterType((*ActionLog)(nil), "P4wnP1_grpc.ActionLog")
	proto.RegisterType((*ActionGPIOOut)(nil), "P4wnP1_grpc.ActionGPIOOut")
	proto.RegisterType((*ActionGroupSend)(nil), "P4wnP1_grpc.ActionGroupSend")
	proto.RegisterType((*WifiRequestSettingsStorage)(nil), "P4wnP1_grpc.WifiRequestSettingsStorage")
	proto.RegisterType((*WiFiSettings)(nil), "P4wnP1_grpc.WiFiSettings")
	proto.RegisterType((*WiFiState)(nil), "P4wnP1_grpc.WiFiState")
	proto.RegisterType((*WiFiBSSCfg)(nil), "P4wnP1_grpc.WiFiBSSCfg")
	proto.RegisterType((*StringMessage)(nil), "P4wnP1_grpc.StringMessage")
	proto.RegisterType((*StringMessageArray)(nil), "P4wnP1_grpc.StringMessageArray")
	proto.RegisterType((*EventRequest)(nil), "P4wnP1_grpc.EventRequest")
	proto.RegisterType((*EventValue)(nil), "P4wnP1_grpc.EventValue")
	proto.RegisterType((*Event)(nil), "P4wnP1_grpc.Event")
	proto.RegisterType((*TempDirOrFileRequest)(nil), "P4wnP1_grpc.TempDirOrFileRequest")
	proto.RegisterType((*TempDirOrFileResponse)(nil), "P4wnP1_grpc.TempDirOrFileResponse")
	proto.RegisterType((*ReadFileRequest)(nil), "P4wnP1_grpc.ReadFileRequest")
	proto.RegisterType((*ReadFileResponse)(nil), "P4wnP1_grpc.ReadFileResponse")
	proto.RegisterType((*WriteFileRequest)(nil), "P4wnP1_grpc.WriteFileRequest")
	proto.RegisterType((*FileInfoRequest)(nil), "P4wnP1_grpc.FileInfoRequest")
	proto.RegisterType((*FileInfoResponse)(nil), "P4wnP1_grpc.FileInfoResponse")
	proto.RegisterType((*HIDScriptRequest)(nil), "P4wnP1_grpc.HIDScriptRequest")
	proto.RegisterType((*HIDScriptJob)(nil), "P4wnP1_grpc.HIDScriptJob")
	proto.RegisterType((*HIDScriptJobList)(nil), "P4wnP1_grpc.HIDScriptJobList")
	proto.RegisterType((*HIDRunningJobStateResult)(nil), "P4wnP1_grpc.HIDRunningJobStateResult")
	proto.RegisterType((*HIDScriptResult)(nil), "P4wnP1_grpc.HIDScriptResult")
	proto.RegisterType((*LEDSettings)(nil), "P4wnP1_grpc.LEDSettings")
	proto.RegisterType((*USBRequestSettingsStorage)(nil), "P4wnP1_grpc.USBRequestSettingsStorage")
	proto.RegisterType((*GadgetSettings)(nil), "P4wnP1_grpc.GadgetSettings")
	proto.RegisterType((*GadgetSettingsEthernet)(nil), "P4wnP1_grpc.GadgetSettingsEthernet")
	proto.RegisterType((*GadgetSettingsUMS)(nil), "P4wnP1_grpc.GadgetSettingsUMS")
	proto.RegisterType((*EthernetRequestSettingsStorage)(nil), "P4wnP1_grpc.EthernetRequestSettingsStorage")
	proto.RegisterType((*DeployedEthernetInterfaceSettings)(nil), "P4wnP1_grpc.DeployedEthernetInterfaceSettings")
	proto.RegisterType((*EthernetInterfaceSettings)(nil), "P4wnP1_grpc.EthernetInterfaceSettings")
	proto.RegisterType((*DHCPServerSettings)(nil), "P4wnP1_grpc.DHCPServerSettings")
	proto.RegisterType((*DHCPServerRange)(nil), "P4wnP1_grpc.DHCPServerRange")
	proto.RegisterType((*DHCPServerStaticHost)(nil), "P4wnP1_grpc.DHCPServerStaticHost")
	proto.RegisterType((*Empty)(nil), "P4wnP1_grpc.Empty")
	proto.RegisterEnum("P4wnP1_grpc.BluetoothNetworkServiceType", BluetoothNetworkServiceType_name, BluetoothNetworkServiceType_value)
	proto.RegisterEnum("P4wnP1_grpc.GPIOInPullUpDown", GPIOInPullUpDown_name, GPIOInPullUpDown_value)
	proto.RegisterEnum("P4wnP1_grpc.GPIOInEdge", GPIOInEdge_name, GPIOInEdge_value)
	proto.RegisterEnum("P4wnP1_grpc.GPIONum", GPIONum_name, GPIONum_value)
	proto.RegisterEnum("P4wnP1_grpc.GPIOOutValue", GPIOOutValue_name, GPIOOutValue_value)
	proto.RegisterEnum("P4wnP1_grpc.WiFiWorkingMode", WiFiWorkingMode_name, WiFiWorkingMode_value)
	proto.RegisterEnum("P4wnP1_grpc.WiFiStateMode", WiFiStateMode_name, WiFiStateMode_value)
	proto.RegisterEnum("P4wnP1_grpc.WiFiAuthMode", WiFiAuthMode_name, WiFiAuthMode_value)
	proto.RegisterEnum("P4wnP1_grpc.AccessibleFolder", AccessibleFolder_name, AccessibleFolder_value)
	proto.RegisterEnum("P4wnP1_grpc.ActionDeploySettingsTemplate_TemplateType", ActionDeploySettingsTemplate_TemplateType_name, ActionDeploySettingsTemplate_TemplateType_value)
	proto.RegisterEnum("P4wnP1_grpc.EthernetInterfaceSettings_Mode", EthernetInterfaceSettings_Mode_name, EthernetInterfaceSettings_Mode_value)
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// Client API for P4WNP1 service

type P4WNP1Client interface {
	// Bluetooth
	GetBluetoothControllerInformation(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*BluetoothControllerInformation, error)
	DeployBluetoothControllerInformation(ctx context.Context, in *BluetoothControllerInformation, opts ...grpc.CallOption) (*BluetoothControllerInformation, error)
	GetBluetoothAgentSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*BluetoothAgentSettings, error)
	DeployBluetoothAgentSettings(ctx context.Context, in *BluetoothAgentSettings, opts ...grpc.CallOption) (*BluetoothAgentSettings, error)
	SetBluetoothNetworkService(ctx context.Context, in *BluetoothNetworkService, opts ...grpc.CallOption) (*Empty, error)
	DeployBluetoothSettings(ctx context.Context, in *BluetoothSettings, opts ...grpc.CallOption) (*BluetoothSettings, error)
	StoreBluetoothSettings(ctx context.Context, in *BluetoothRequestSettingsStorage, opts ...grpc.CallOption) (*Empty, error)
	GetStoredBluetoothSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*BluetoothSettings, error)
	DeployStoredBluetoothSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*BluetoothSettings, error)
	DeleteStoredBluetoothSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	StoreDeployedBluetoothSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	ListStoredBluetoothSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error)
	// USB gadget
	GetDeployedGadgetSetting(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error)
	DeployGadgetSetting(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error)
	GetGadgetSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error)
	SetGadgetSettings(ctx context.Context, in *GadgetSettings, opts ...grpc.CallOption) (*GadgetSettings, error)
	GetLEDSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*LEDSettings, error)
	SetLEDSettings(ctx context.Context, in *LEDSettings, opts ...grpc.CallOption) (*Empty, error)
	MountUMSFile(ctx context.Context, in *GadgetSettingsUMS, opts ...grpc.CallOption) (*Empty, error)
	StoreUSBSettings(ctx context.Context, in *USBRequestSettingsStorage, opts ...grpc.CallOption) (*Empty, error)
	GetStoredUSBSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*GadgetSettings, error)
	DeployStoredUSBSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*GadgetSettings, error)
	DeleteStoredUSBSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	StoreDeployedUSBSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	ListStoredUSBSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error)
	// HIDScript / job management
	HIDRunScript(ctx context.Context, in *HIDScriptRequest, opts ...grpc.CallOption) (*HIDScriptResult, error)
	HIDRunScriptJob(ctx context.Context, in *HIDScriptRequest, opts ...grpc.CallOption) (*HIDScriptJob, error)
	HIDGetScriptJobResult(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*HIDScriptResult, error)
	HIDCancelScriptJob(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*Empty, error)
	HIDGetRunningScriptJobs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HIDScriptJobList, error)
	HIDCancelAllScriptJobs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
	HIDGetRunningJobState(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*HIDRunningJobStateResult, error)
	// FileSystem
	FSWriteFile(ctx context.Context, in *WriteFileRequest, opts ...grpc.CallOption) (*Empty, error)
	FSReadFile(ctx context.Context, in *ReadFileRequest, opts ...grpc.CallOption) (*ReadFileResponse, error)
	FSGetFileInfo(ctx context.Context, in *FileInfoRequest, opts ...grpc.CallOption) (*FileInfoResponse, error)
	FSCreateTempDirOrFile(ctx context.Context, in *TempDirOrFileRequest, opts ...grpc.CallOption) (*TempDirOrFileResponse, error)
	// Events
	EventListen(ctx context.Context, in *EventRequest, opts ...grpc.CallOption) (P4WNP1_EventListenClient, error)
	// Alive check
	EchoRequest(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*StringMessage, error)
	// WiFi
	DeployWiFiSettings(ctx context.Context, in *WiFiSettings, opts ...grpc.CallOption) (*WiFiState, error)
	GetWiFiState(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*WiFiState, error)
	ListenWiFiStateChanges(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*WiFiState, error)
	StoreWifiSettings(ctx context.Context, in *WifiRequestSettingsStorage, opts ...grpc.CallOption) (*Empty, error)
	GetStoredWifiSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*WiFiSettings, error)
	DeployStoredWifiSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*WiFiState, error)
	DeleteStoredWifiSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	StoreDeployedWifiSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	ListStoredWifiSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error)
	// Ethernet
	DeployEthernetInterfaceSettings(ctx context.Context, in *EthernetInterfaceSettings, opts ...grpc.CallOption) (*Empty, error)
	GetAllDeployedEthernetInterfaceSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DeployedEthernetInterfaceSettings, error)
	GetDeployedEthernetInterfaceSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*EthernetInterfaceSettings, error)
	StoreEthernetInterfaceSettings(ctx context.Context, in *EthernetRequestSettingsStorage, opts ...grpc.CallOption) (*Empty, error)
	GetStoredEthernetInterfaceSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*EthernetInterfaceSettings, error)
	DeployStoredEthernetInterfaceSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	DeleteStoredEthernetInterfaceSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	ListStoredEthernetInterfaceSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error)
	// TriggerActions
	GetDeployedTriggerActionSet(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*TriggerActionSet, error)
	DeployTriggerActionSetReplace(ctx context.Context, in *TriggerActionSet, opts ...grpc.CallOption) (*TriggerActionSet, error)
	DeployTriggerActionSetAdd(ctx context.Context, in *TriggerActionSet, opts ...grpc.CallOption) (*TriggerActionSet, error)
	DeployTriggerActionSetRemove(ctx context.Context, in *TriggerActionSet, opts ...grpc.CallOption) (*TriggerActionSet, error)
	ListStoredTriggerActionSets(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error)
	StoreTriggerActionSet(ctx context.Context, in *TriggerActionSet, opts ...grpc.CallOption) (*Empty, error)
	DeployStoredTriggerActionSetReplace(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*TriggerActionSet, error)
	DeployStoredTriggerActionSetAdd(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*TriggerActionSet, error)
	DeleteStoredTriggerActionSet(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	// TriggerAction for cli (trigger group send and wait for group receive)
	WaitTriggerGroupReceive(ctx context.Context, in *TriggerGroupReceive, opts ...grpc.CallOption) (*Empty, error)
	FireActionGroupSend(ctx context.Context, in *ActionGroupSend, opts ...grpc.CallOption) (*Empty, error)
	// DB backup&restore
	DBBackup(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	DBRestore(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error)
	ListStoredHIDScripts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error)
	ListStoredBashScripts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error)
	ListStoredDBBackups(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error)
}

type p4WNP1Client struct {
	cc *grpc.ClientConn
}

func NewP4WNP1Client(cc *grpc.ClientConn) P4WNP1Client {
	return &p4WNP1Client{cc}
}

func (c *p4WNP1Client) GetBluetoothControllerInformation(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*BluetoothControllerInformation, error) {
	out := new(BluetoothControllerInformation)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetBluetoothControllerInformation", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployBluetoothControllerInformation(ctx context.Context, in *BluetoothControllerInformation, opts ...grpc.CallOption) (*BluetoothControllerInformation, error) {
	out := new(BluetoothControllerInformation)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployBluetoothControllerInformation", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetBluetoothAgentSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*BluetoothAgentSettings, error) {
	out := new(BluetoothAgentSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetBluetoothAgentSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployBluetoothAgentSettings(ctx context.Context, in *BluetoothAgentSettings, opts ...grpc.CallOption) (*BluetoothAgentSettings, error) {
	out := new(BluetoothAgentSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployBluetoothAgentSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) SetBluetoothNetworkService(ctx context.Context, in *BluetoothNetworkService, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/SetBluetoothNetworkService", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployBluetoothSettings(ctx context.Context, in *BluetoothSettings, opts ...grpc.CallOption) (*BluetoothSettings, error) {
	out := new(BluetoothSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployBluetoothSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) StoreBluetoothSettings(ctx context.Context, in *BluetoothRequestSettingsStorage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/StoreBluetoothSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetStoredBluetoothSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*BluetoothSettings, error) {
	out := new(BluetoothSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetStoredBluetoothSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployStoredBluetoothSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*BluetoothSettings, error) {
	out := new(BluetoothSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployStoredBluetoothSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeleteStoredBluetoothSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeleteStoredBluetoothSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) StoreDeployedBluetoothSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/StoreDeployedBluetoothSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListStoredBluetoothSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error) {
	out := new(StringMessageArray)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListStoredBluetoothSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetDeployedGadgetSetting(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetDeployedGadgetSetting", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployGadgetSetting(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployGadgetSetting", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetGadgetSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetGadgetSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) SetGadgetSettings(ctx context.Context, in *GadgetSettings, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/SetGadgetSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetLEDSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*LEDSettings, error) {
	out := new(LEDSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetLEDSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) SetLEDSettings(ctx context.Context, in *LEDSettings, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/SetLEDSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) MountUMSFile(ctx context.Context, in *GadgetSettingsUMS, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/MountUMSFile", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) StoreUSBSettings(ctx context.Context, in *USBRequestSettingsStorage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/StoreUSBSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetStoredUSBSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetStoredUSBSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployStoredUSBSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployStoredUSBSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeleteStoredUSBSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeleteStoredUSBSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) StoreDeployedUSBSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/StoreDeployedUSBSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListStoredUSBSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error) {
	out := new(StringMessageArray)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListStoredUSBSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDRunScript(ctx context.Context, in *HIDScriptRequest, opts ...grpc.CallOption) (*HIDScriptResult, error) {
	out := new(HIDScriptResult)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDRunScript", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDRunScriptJob(ctx context.Context, in *HIDScriptRequest, opts ...grpc.CallOption) (*HIDScriptJob, error) {
	out := new(HIDScriptJob)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDRunScriptJob", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDGetScriptJobResult(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*HIDScriptResult, error) {
	out := new(HIDScriptResult)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDGetScriptJobResult", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDCancelScriptJob(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDCancelScriptJob", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDGetRunningScriptJobs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HIDScriptJobList, error) {
	out := new(HIDScriptJobList)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDGetRunningScriptJobs", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDCancelAllScriptJobs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDCancelAllScriptJobs", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDGetRunningJobState(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*HIDRunningJobStateResult, error) {
	out := new(HIDRunningJobStateResult)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDGetRunningJobState", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FSWriteFile(ctx context.Context, in *WriteFileRequest, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FSWriteFile", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FSReadFile(ctx context.Context, in *ReadFileRequest, opts ...grpc.CallOption) (*ReadFileResponse, error) {
	out := new(ReadFileResponse)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FSReadFile", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FSGetFileInfo(ctx context.Context, in *FileInfoRequest, opts ...grpc.CallOption) (*FileInfoResponse, error) {
	out := new(FileInfoResponse)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FSGetFileInfo", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FSCreateTempDirOrFile(ctx context.Context, in *TempDirOrFileRequest, opts ...grpc.CallOption) (*TempDirOrFileResponse, error) {
	out := new(TempDirOrFileResponse)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FSCreateTempDirOrFile", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) EventListen(ctx context.Context, in *EventRequest, opts ...grpc.CallOption) (P4WNP1_EventListenClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_P4WNP1_serviceDesc.Streams[0], c.cc, "/P4wnP1_grpc.P4WNP1/EventListen", opts...)
	if err != nil {
		return nil, err
	}
	x := &p4WNP1EventListenClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type P4WNP1_EventListenClient interface {
	Recv() (*Event, error)
	grpc.ClientStream
}

type p4WNP1EventListenClient struct {
	grpc.ClientStream
}

func (x *p4WNP1EventListenClient) Recv() (*Event, error) {
	m := new(Event)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *p4WNP1Client) EchoRequest(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*StringMessage, error) {
	out := new(StringMessage)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/EchoRequest", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployWiFiSettings(ctx context.Context, in *WiFiSettings, opts ...grpc.CallOption) (*WiFiState, error) {
	out := new(WiFiState)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployWiFiSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetWiFiState(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*WiFiState, error) {
	out := new(WiFiState)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetWiFiState", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListenWiFiStateChanges(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*WiFiState, error) {
	out := new(WiFiState)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListenWiFiStateChanges", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) StoreWifiSettings(ctx context.Context, in *WifiRequestSettingsStorage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/StoreWifiSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetStoredWifiSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*WiFiSettings, error) {
	out := new(WiFiSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetStoredWifiSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployStoredWifiSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*WiFiState, error) {
	out := new(WiFiState)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployStoredWifiSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeleteStoredWifiSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeleteStoredWifiSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) StoreDeployedWifiSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/StoreDeployedWifiSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListStoredWifiSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error) {
	out := new(StringMessageArray)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListStoredWifiSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployEthernetInterfaceSettings(ctx context.Context, in *EthernetInterfaceSettings, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetAllDeployedEthernetInterfaceSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DeployedEthernetInterfaceSettings, error) {
	out := new(DeployedEthernetInterfaceSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetAllDeployedEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetDeployedEthernetInterfaceSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*EthernetInterfaceSettings, error) {
	out := new(EthernetInterfaceSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetDeployedEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) StoreEthernetInterfaceSettings(ctx context.Context, in *EthernetRequestSettingsStorage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/StoreEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetStoredEthernetInterfaceSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*EthernetInterfaceSettings, error) {
	out := new(EthernetInterfaceSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetStoredEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployStoredEthernetInterfaceSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployStoredEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeleteStoredEthernetInterfaceSettings(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeleteStoredEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListStoredEthernetInterfaceSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error) {
	out := new(StringMessageArray)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListStoredEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetDeployedTriggerActionSet(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*TriggerActionSet, error) {
	out := new(TriggerActionSet)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetDeployedTriggerActionSet", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployTriggerActionSetReplace(ctx context.Context, in *TriggerActionSet, opts ...grpc.CallOption) (*TriggerActionSet, error) {
	out := new(TriggerActionSet)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployTriggerActionSetReplace", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployTriggerActionSetAdd(ctx context.Context, in *TriggerActionSet, opts ...grpc.CallOption) (*TriggerActionSet, error) {
	out := new(TriggerActionSet)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployTriggerActionSetAdd", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployTriggerActionSetRemove(ctx context.Context, in *TriggerActionSet, opts ...grpc.CallOption) (*TriggerActionSet, error) {
	out := new(TriggerActionSet)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployTriggerActionSetRemove", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListStoredTriggerActionSets(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error) {
	out := new(StringMessageArray)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListStoredTriggerActionSets", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) StoreTriggerActionSet(ctx context.Context, in *TriggerActionSet, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/StoreTriggerActionSet", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployStoredTriggerActionSetReplace(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*TriggerActionSet, error) {
	out := new(TriggerActionSet)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployStoredTriggerActionSetReplace", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployStoredTriggerActionSetAdd(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*TriggerActionSet, error) {
	out := new(TriggerActionSet)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployStoredTriggerActionSetAdd", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeleteStoredTriggerActionSet(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeleteStoredTriggerActionSet", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) WaitTriggerGroupReceive(ctx context.Context, in *TriggerGroupReceive, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/WaitTriggerGroupReceive", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FireActionGroupSend(ctx context.Context, in *ActionGroupSend, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FireActionGroupSend", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DBBackup(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DBBackup", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DBRestore(ctx context.Context, in *StringMessage, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DBRestore", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListStoredHIDScripts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error) {
	out := new(StringMessageArray)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListStoredHIDScripts", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListStoredBashScripts(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error) {
	out := new(StringMessageArray)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListStoredBashScripts", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) ListStoredDBBackups(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*StringMessageArray, error) {
	out := new(StringMessageArray)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/ListStoredDBBackups", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for P4WNP1 service

type P4WNP1Server interface {
	// Bluetooth
	GetBluetoothControllerInformation(context.Context, *Empty) (*BluetoothControllerInformation, error)
	DeployBluetoothControllerInformation(context.Context, *BluetoothControllerInformation) (*BluetoothControllerInformation, error)
	GetBluetoothAgentSettings(context.Context, *Empty) (*BluetoothAgentSettings, error)
	DeployBluetoothAgentSettings(context.Context, *BluetoothAgentSettings) (*BluetoothAgentSettings, error)
	SetBluetoothNetworkService(context.Context, *BluetoothNetworkService) (*Empty, error)
	DeployBluetoothSettings(context.Context, *BluetoothSettings) (*BluetoothSettings, error)
	StoreBluetoothSettings(context.Context, *BluetoothRequestSettingsStorage) (*Empty, error)
	GetStoredBluetoothSettings(context.Context, *StringMessage) (*BluetoothSettings, error)
	DeployStoredBluetoothSettings(context.Context, *StringMessage) (*BluetoothSettings, error)
	DeleteStoredBluetoothSettings(context.Context, *StringMessage) (*Empty, error)
	StoreDeployedBluetoothSettings(context.Context, *StringMessage) (*Empty, error)
	ListStoredBluetoothSettings(context.Context, *Empty) (*StringMessageArray, error)
	// USB gadget
	GetDeployedGadgetSetting(context.Context, *Empty) (*GadgetSettings, error)
	DeployGadgetSetting(context.Context, *Empty) (*GadgetSettings, error)
	GetGadgetSettings(context.Context, *Empty) (*GadgetSettings, error)
	SetGadgetSettings(context.Context, *GadgetSettings) (*GadgetSettings, error)
	GetLEDSettings(context.Context, *Empty) (*LEDSettings, error)
	SetLEDSettings(context.Context, *LEDSettings) (*Empty, error)
	MountUMSFile(context.Context, *GadgetSettingsUMS) (*Empty, error)
	StoreUSBSettings(context.Context, *USBRequestSettingsStorage) (*Empty, error)
	GetStoredUSBSettings(context.Context, *StringMessage) (*GadgetSettings, error)
	DeployStoredUSBSettings(context.Context, *StringMessage) (*GadgetSettings, error)
	DeleteStoredUSBSettings(context.Context, *StringMessage) (*Empty, error)
	StoreDeployedUSBSettings(context.Context, *StringMessage) (*Empty, error)
	ListStoredUSBSettings(context.Context, *Empty) (*StringMessageArray, error)
	// HIDScript / job management
	HIDRunScript(context.Context, *HIDScriptRequest) (*HIDScriptResult, error)
	HIDRunScriptJob(context.Context, *HIDScriptRequest) (*HIDScriptJob, error)
	HIDGetScriptJobResult(context.Context, *HIDScriptJob) (*HIDScriptResult, error)
	HIDCancelScriptJob(context.Context, *HIDScriptJob) (*Empty, error)
	HIDGetRunningScriptJobs(context.Context, *Empty) (*HIDScriptJobList, error)
	HIDCancelAllScriptJobs(context.Context, *Empty) (*Empty, error)
	HIDGetRunningJobState(context.Context, *HIDScriptJob) (*HIDRunningJobStateResult, error)
	// FileSystem
	FSWriteFile(context.Context, *WriteFileRequest) (*Empty, error)
	FSReadFile(context.Context, *ReadFileRequest) (*ReadFileResponse, error)
	FSGetFileInfo(context.Context, *FileInfoRequest) (*FileInfoResponse, error)
	FSCreateTempDirOrFile(context.Context, *TempDirOrFileRequest) (*TempDirOrFileResponse, error)
	// Events
	EventListen(*EventRequest, P4WNP1_EventListenServer) error
	// Alive check
	EchoRequest(context.Context, *StringMessage) (*StringMessage, error)
	// WiFi
	DeployWiFiSettings(context.Context, *WiFiSettings) (*WiFiState, error)
	GetWiFiState(context.Context, *Empty) (*WiFiState, error)
	ListenWiFiStateChanges(context.Context, *Empty) (*WiFiState, error)
	StoreWifiSettings(context.Context, *WifiRequestSettingsStorage) (*Empty, error)
	GetStoredWifiSettings(context.Context, *StringMessage) (*WiFiSettings, error)
	DeployStoredWifiSettings(context.Context, *StringMessage) (*WiFiState, error)
	DeleteStoredWifiSettings(context.Context, *StringMessage) (*Empty, error)
	StoreDeployedWifiSettings(context.Context, *StringMessage) (*Empty, error)
	ListStoredWifiSettings(context.Context, *Empty) (*StringMessageArray, error)
	// Ethernet
	DeployEthernetInterfaceSettings(context.Context, *EthernetInterfaceSettings) (*Empty, error)
	GetAllDeployedEthernetInterfaceSettings(context.Context, *Empty) (*DeployedEthernetInterfaceSettings, error)
	GetDeployedEthernetInterfaceSettings(context.Context, *StringMessage) (*EthernetInterfaceSettings, error)
	StoreEthernetInterfaceSettings(context.Context, *EthernetRequestSettingsStorage) (*Empty, error)
	GetStoredEthernetInterfaceSettings(context.Context, *StringMessage) (*EthernetInterfaceSettings, error)
	DeployStoredEthernetInterfaceSettings(context.Context, *StringMessage) (*Empty, error)
	DeleteStoredEthernetInterfaceSettings(context.Context, *StringMessage) (*Empty, error)
	ListStoredEthernetInterfaceSettings(context.Context, *Empty) (*StringMessageArray, error)
	// TriggerActions
	GetDeployedTriggerActionSet(context.Context, *Empty) (*TriggerActionSet, error)
	DeployTriggerActionSetReplace(context.Context, *TriggerActionSet) (*TriggerActionSet, error)
	DeployTriggerActionSetAdd(context.Context, *TriggerActionSet) (*TriggerActionSet, error)
	DeployTriggerActionSetRemove(context.Context, *TriggerActionSet) (*TriggerActionSet, error)
	ListStoredTriggerActionSets(context.Context, *Empty) (*StringMessageArray, error)
	StoreTriggerActionSet(context.Context, *TriggerActionSet) (*Empty, error)
	DeployStoredTriggerActionSetReplace(context.Context, *StringMessage) (*TriggerActionSet, error)
	DeployStoredTriggerActionSetAdd(context.Context, *StringMessage) (*TriggerActionSet, error)
	DeleteStoredTriggerActionSet(context.Context, *StringMessage) (*Empty, error)
	// TriggerAction for cli (trigger group send and wait for group receive)
	WaitTriggerGroupReceive(context.Context, *TriggerGroupReceive) (*Empty, error)
	FireActionGroupSend(context.Context, *ActionGroupSend) (*Empty, error)
	// DB backup&restore
	DBBackup(context.Context, *StringMessage) (*Empty, error)
	DBRestore(context.Context, *StringMessage) (*Empty, error)
	ListStoredHIDScripts(context.Context, *Empty) (*StringMessageArray, error)
	ListStoredBashScripts(context.Context, *Empty) (*StringMessageArray, error)
	ListStoredDBBackups(context.Context, *Empty) (*StringMessageArray, error)
}

func RegisterP4WNP1Server(s *grpc.Server, srv P4WNP1Server) {
	s.RegisterService(&_P4WNP1_serviceDesc, srv)
}

func _P4WNP1_GetBluetoothControllerInformation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetBluetoothControllerInformation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetBluetoothControllerInformation",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetBluetoothControllerInformation(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployBluetoothControllerInformation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BluetoothControllerInformation)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployBluetoothControllerInformation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployBluetoothControllerInformation",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployBluetoothControllerInformation(ctx, req.(*BluetoothControllerInformation))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetBluetoothAgentSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetBluetoothAgentSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetBluetoothAgentSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetBluetoothAgentSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployBluetoothAgentSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BluetoothAgentSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployBluetoothAgentSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployBluetoothAgentSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployBluetoothAgentSettings(ctx, req.(*BluetoothAgentSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_SetBluetoothNetworkService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BluetoothNetworkService)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).SetBluetoothNetworkService(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/SetBluetoothNetworkService",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).SetBluetoothNetworkService(ctx, req.(*BluetoothNetworkService))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployBluetoothSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BluetoothSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployBluetoothSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployBluetoothSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployBluetoothSettings(ctx, req.(*BluetoothSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_StoreBluetoothSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BluetoothRequestSettingsStorage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).StoreBluetoothSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/StoreBluetoothSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).StoreBluetoothSettings(ctx, req.(*BluetoothRequestSettingsStorage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetStoredBluetoothSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetStoredBluetoothSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetStoredBluetoothSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetStoredBluetoothSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployStoredBluetoothSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployStoredBluetoothSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployStoredBluetoothSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployStoredBluetoothSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeleteStoredBluetoothSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeleteStoredBluetoothSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeleteStoredBluetoothSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeleteStoredBluetoothSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_StoreDeployedBluetoothSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).StoreDeployedBluetoothSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/StoreDeployedBluetoothSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).StoreDeployedBluetoothSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListStoredBluetoothSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListStoredBluetoothSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListStoredBluetoothSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListStoredBluetoothSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetDeployedGadgetSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetDeployedGadgetSetting(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetDeployedGadgetSetting",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetDeployedGadgetSetting(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployGadgetSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployGadgetSetting(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployGadgetSetting",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployGadgetSetting(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetGadgetSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetGadgetSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetGadgetSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetGadgetSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_SetGadgetSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GadgetSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).SetGadgetSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/SetGadgetSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).SetGadgetSettings(ctx, req.(*GadgetSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetLEDSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetLEDSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetLEDSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetLEDSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_SetLEDSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LEDSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).SetLEDSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/SetLEDSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).SetLEDSettings(ctx, req.(*LEDSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_MountUMSFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GadgetSettingsUMS)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).MountUMSFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/MountUMSFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).MountUMSFile(ctx, req.(*GadgetSettingsUMS))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_StoreUSBSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(USBRequestSettingsStorage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).StoreUSBSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/StoreUSBSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).StoreUSBSettings(ctx, req.(*USBRequestSettingsStorage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetStoredUSBSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetStoredUSBSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetStoredUSBSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetStoredUSBSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployStoredUSBSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployStoredUSBSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployStoredUSBSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployStoredUSBSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeleteStoredUSBSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeleteStoredUSBSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeleteStoredUSBSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeleteStoredUSBSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_StoreDeployedUSBSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).StoreDeployedUSBSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/StoreDeployedUSBSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).StoreDeployedUSBSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListStoredUSBSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListStoredUSBSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListStoredUSBSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListStoredUSBSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDRunScript_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDRunScript(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDRunScript",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDRunScript(ctx, req.(*HIDScriptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDRunScriptJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDRunScriptJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDRunScriptJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDRunScriptJob(ctx, req.(*HIDScriptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDGetScriptJobResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptJob)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDGetScriptJobResult(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDGetScriptJobResult",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDGetScriptJobResult(ctx, req.(*HIDScriptJob))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDCancelScriptJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptJob)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDCancelScriptJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDCancelScriptJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDCancelScriptJob(ctx, req.(*HIDScriptJob))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDGetRunningScriptJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDGetRunningScriptJobs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDGetRunningScriptJobs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDGetRunningScriptJobs(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDCancelAllScriptJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDCancelAllScriptJobs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDCancelAllScriptJobs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDCancelAllScriptJobs(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDGetRunningJobState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptJob)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDGetRunningJobState(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDGetRunningJobState",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDGetRunningJobState(ctx, req.(*HIDScriptJob))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FSWriteFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WriteFileRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FSWriteFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FSWriteFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FSWriteFile(ctx, req.(*WriteFileRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FSReadFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReadFileRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FSReadFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FSReadFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FSReadFile(ctx, req.(*ReadFileRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FSGetFileInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FileInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FSGetFileInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FSGetFileInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FSGetFileInfo(ctx, req.(*FileInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FSCreateTempDirOrFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TempDirOrFileRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FSCreateTempDirOrFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FSCreateTempDirOrFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FSCreateTempDirOrFile(ctx, req.(*TempDirOrFileRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_EventListen_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(EventRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(P4WNP1Server).EventListen(m, &p4WNP1EventListenServer{stream})
}

type P4WNP1_EventListenServer interface {
	Send(*Event) error
	grpc.ServerStream
}

type p4WNP1EventListenServer struct {
	grpc.ServerStream
}

func (x *p4WNP1EventListenServer) Send(m *Event) error {
	return x.ServerStream.SendMsg(m)
}

func _P4WNP1_EchoRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).EchoRequest(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/EchoRequest",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).EchoRequest(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployWiFiSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WiFiSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployWiFiSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployWiFiSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployWiFiSettings(ctx, req.(*WiFiSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetWiFiState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetWiFiState(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetWiFiState",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetWiFiState(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListenWiFiStateChanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListenWiFiStateChanges(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListenWiFiStateChanges",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListenWiFiStateChanges(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_StoreWifiSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WifiRequestSettingsStorage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).StoreWifiSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/StoreWifiSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).StoreWifiSettings(ctx, req.(*WifiRequestSettingsStorage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetStoredWifiSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetStoredWifiSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetStoredWifiSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetStoredWifiSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployStoredWifiSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployStoredWifiSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployStoredWifiSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployStoredWifiSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeleteStoredWifiSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeleteStoredWifiSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeleteStoredWifiSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeleteStoredWifiSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_StoreDeployedWifiSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).StoreDeployedWifiSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/StoreDeployedWifiSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).StoreDeployedWifiSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListStoredWifiSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListStoredWifiSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListStoredWifiSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListStoredWifiSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EthernetInterfaceSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployEthernetInterfaceSettings(ctx, req.(*EthernetInterfaceSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetAllDeployedEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetAllDeployedEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetAllDeployedEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetAllDeployedEthernetInterfaceSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetDeployedEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetDeployedEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetDeployedEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetDeployedEthernetInterfaceSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_StoreEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EthernetRequestSettingsStorage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).StoreEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/StoreEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).StoreEthernetInterfaceSettings(ctx, req.(*EthernetRequestSettingsStorage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetStoredEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetStoredEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetStoredEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetStoredEthernetInterfaceSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployStoredEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployStoredEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployStoredEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployStoredEthernetInterfaceSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeleteStoredEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeleteStoredEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeleteStoredEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeleteStoredEthernetInterfaceSettings(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListStoredEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListStoredEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListStoredEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListStoredEthernetInterfaceSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetDeployedTriggerActionSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetDeployedTriggerActionSet(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetDeployedTriggerActionSet",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetDeployedTriggerActionSet(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployTriggerActionSetReplace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TriggerActionSet)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployTriggerActionSetReplace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployTriggerActionSetReplace",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployTriggerActionSetReplace(ctx, req.(*TriggerActionSet))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployTriggerActionSetAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TriggerActionSet)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployTriggerActionSetAdd(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployTriggerActionSetAdd",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployTriggerActionSetAdd(ctx, req.(*TriggerActionSet))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployTriggerActionSetRemove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TriggerActionSet)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployTriggerActionSetRemove(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployTriggerActionSetRemove",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployTriggerActionSetRemove(ctx, req.(*TriggerActionSet))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListStoredTriggerActionSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListStoredTriggerActionSets(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListStoredTriggerActionSets",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListStoredTriggerActionSets(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_StoreTriggerActionSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TriggerActionSet)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).StoreTriggerActionSet(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/StoreTriggerActionSet",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).StoreTriggerActionSet(ctx, req.(*TriggerActionSet))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployStoredTriggerActionSetReplace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployStoredTriggerActionSetReplace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployStoredTriggerActionSetReplace",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployStoredTriggerActionSetReplace(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployStoredTriggerActionSetAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployStoredTriggerActionSetAdd(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployStoredTriggerActionSetAdd",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployStoredTriggerActionSetAdd(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeleteStoredTriggerActionSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeleteStoredTriggerActionSet(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeleteStoredTriggerActionSet",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeleteStoredTriggerActionSet(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_WaitTriggerGroupReceive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TriggerGroupReceive)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).WaitTriggerGroupReceive(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/WaitTriggerGroupReceive",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).WaitTriggerGroupReceive(ctx, req.(*TriggerGroupReceive))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FireActionGroupSend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ActionGroupSend)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FireActionGroupSend(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FireActionGroupSend",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FireActionGroupSend(ctx, req.(*ActionGroupSend))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DBBackup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DBBackup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DBBackup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DBBackup(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DBRestore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StringMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DBRestore(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DBRestore",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DBRestore(ctx, req.(*StringMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListStoredHIDScripts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListStoredHIDScripts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListStoredHIDScripts",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListStoredHIDScripts(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListStoredBashScripts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListStoredBashScripts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListStoredBashScripts",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListStoredBashScripts(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_ListStoredDBBackups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).ListStoredDBBackups(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/ListStoredDBBackups",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).ListStoredDBBackups(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

var _P4WNP1_serviceDesc = grpc.ServiceDesc{
	ServiceName: "P4wnP1_grpc.P4WNP1",
	HandlerType: (*P4WNP1Server)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetBluetoothControllerInformation",
			Handler:    _P4WNP1_GetBluetoothControllerInformation_Handler,
		},
		{
			MethodName: "DeployBluetoothControllerInformation",
			Handler:    _P4WNP1_DeployBluetoothControllerInformation_Handler,
		},
		{
			MethodName: "GetBluetoothAgentSettings",
			Handler:    _P4WNP1_GetBluetoothAgentSettings_Handler,
		},
		{
			MethodName: "DeployBluetoothAgentSettings",
			Handler:    _P4WNP1_DeployBluetoothAgentSettings_Handler,
		},
		{
			MethodName: "SetBluetoothNetworkService",
			Handler:    _P4WNP1_SetBluetoothNetworkService_Handler,
		},
		{
			MethodName: "DeployBluetoothSettings",
			Handler:    _P4WNP1_DeployBluetoothSettings_Handler,
		},
		{
			MethodName: "StoreBluetoothSettings",
			Handler:    _P4WNP1_StoreBluetoothSettings_Handler,
		},
		{
			MethodName: "GetStoredBluetoothSettings",
			Handler:    _P4WNP1_GetStoredBluetoothSettings_Handler,
		},
		{
			MethodName: "DeployStoredBluetoothSettings",
			Handler:    _P4WNP1_DeployStoredBluetoothSettings_Handler,
		},
		{
			MethodName: "DeleteStoredBluetoothSettings",
			Handler:    _P4WNP1_DeleteStoredBluetoothSettings_Handler,
		},
		{
			MethodName: "StoreDeployedBluetoothSettings",
			Handler:    _P4WNP1_StoreDeployedBluetoothSettings_Handler,
		},
		{
			MethodName: "ListStoredBluetoothSettings",
			Handler:    _P4WNP1_ListStoredBluetoothSettings_Handler,
		},
		{
			MethodName: "GetDeployedGadgetSetting",
			Handler:    _P4WNP1_GetDeployedGadgetSetting_Handler,
		},
		{
			MethodName: "DeployGadgetSetting",
			Handler:    _P4WNP1_DeployGadgetSetting_Handler,
		},
		{
			MethodName: "GetGadgetSettings",
			Handler:    _P4WNP1_GetGadgetSettings_Handler,
		},
		{
			MethodName: "SetGadgetSettings",
			Handler:    _P4WNP1_SetGadgetSettings_Handler,
		},
		{
			MethodName: "GetLEDSettings",
			Handler:    _P4WNP1_GetLEDSettings_Handler,
		},
		{
			MethodName: "SetLEDSettings",
			Handler:    _P4WNP1_SetLEDSettings_Handler,
		},
		{
			MethodName: "MountUMSFile",
			Handler:    _P4WNP1_MountUMSFile_Handler,
		},
		{
			MethodName: "StoreUSBSettings",
			Handler:    _P4WNP1_StoreUSBSettings_Handler,
		},
		{
			MethodName: "GetStoredUSBSettings",
			Handler:    _P4WNP1_GetStoredUSBSettings_Handler,
		},
		{
			MethodName: "DeployStoredUSBSettings",
			Handler:    _P4WNP1_DeployStoredUSBSettings_Handler,
		},
		{
			MethodName: "DeleteStoredUSBSettings",
			Handler:    _P4WNP1_DeleteStoredUSBSettings_Handler,
		},
		{
			MethodName: "StoreDeployedUSBSettings",
			Handler:    _P4WNP1_StoreDeployedUSBSettings_Handler,
		},
		{
			MethodName: "ListStoredUSBSettings",
			Handler:    _P4WNP1_ListStoredUSBSettings_Handler,
		},
		{
			MethodName: "HIDRunScript",
			Handler:    _P4WNP1_HIDRunScript_Handler,
		},
		{
			MethodName: "HIDRunScriptJob",
			Handler:    _P4WNP1_HIDRunScriptJob_Handler,
		},
		{
			MethodName: "HIDGetScriptJobResult",
			Handler:    _P4WNP1_HIDGetScriptJobResult_Handler,
		},
		{
			MethodName: "HIDCancelScriptJob",
			Handler:    _P4WNP1_HIDCancelScriptJob_Handler,
		},
		{
			MethodName: "HIDGetRunningScriptJobs",
			Handler:    _P4WNP1_HIDGetRunningScriptJobs_Handler,
		},
		{
			MethodName: "HIDCancelAllScriptJobs",
			Handler:    _P4WNP1_HIDCancelAllScriptJobs_Handler,
		},
		{
			MethodName: "HIDGetRunningJobState",
			Handler:    _P4WNP1_HIDGetRunningJobState_Handler,
		},
		{
			MethodName: "FSWriteFile",
			Handler:    _P4WNP1_FSWriteFile_Handler,
		},
		{
			MethodName: "FSReadFile",
			Handler:    _P4WNP1_FSReadFile_Handler,
		},
		{
			MethodName: "FSGetFileInfo",
			Handler:    _P4WNP1_FSGetFileInfo_Handler,
		},
		{
			MethodName: "FSCreateTempDirOrFile",
			Handler:    _P4WNP1_FSCreateTempDirOrFile_Handler,
		},
		{
			MethodName: "EchoRequest",
			Handler:    _P4WNP1_EchoRequest_Handler,
		},
		{
			MethodName: "DeployWiFiSettings",
			Handler:    _P4WNP1_DeployWiFiSettings_Handler,
		},
		{
			MethodName: "GetWiFiState",
			Handler:    _P4WNP1_GetWiFiState_Handler,
		},
		{
			MethodName: "ListenWiFiStateChanges",
			Handler:    _P4WNP1_ListenWiFiStateChanges_Handler,
		},
		{
			MethodName: "StoreWifiSettings",
			Handler:    _P4WNP1_StoreWifiSettings_Handler,
		},
		{
			MethodName: "GetStoredWifiSettings",
			Handler:    _P4WNP1_GetStoredWifiSettings_Handler,
		},
		{
			MethodName: "DeployStoredWifiSettings",
			Handler:    _P4WNP1_DeployStoredWifiSettings_Handler,
		},
		{
			MethodName: "DeleteStoredWifiSettings",
			Handler:    _P4WNP1_DeleteStoredWifiSettings_Handler,
		},
		{
			MethodName: "StoreDeployedWifiSettings",
			Handler:    _P4WNP1_StoreDeployedWifiSettings_Handler,
		},
		{
			MethodName: "ListStoredWifiSettings",
			Handler:    _P4WNP1_ListStoredWifiSettings_Handler,
		},
		{
			MethodName: "DeployEthernetInterfaceSettings",
			Handler:    _P4WNP1_DeployEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "GetAllDeployedEthernetInterfaceSettings",
			Handler:    _P4WNP1_GetAllDeployedEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "GetDeployedEthernetInterfaceSettings",
			Handler:    _P4WNP1_GetDeployedEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "StoreEthernetInterfaceSettings",
			Handler:    _P4WNP1_StoreEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "GetStoredEthernetInterfaceSettings",
			Handler:    _P4WNP1_GetStoredEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "DeployStoredEthernetInterfaceSettings",
			Handler:    _P4WNP1_DeployStoredEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "DeleteStoredEthernetInterfaceSettings",
			Handler:    _P4WNP1_DeleteStoredEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "ListStoredEthernetInterfaceSettings",
			Handler:    _P4WNP1_ListStoredEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "GetDeployedTriggerActionSet",
			Handler:    _P4WNP1_GetDeployedTriggerActionSet_Handler,
		},
		{
			MethodName: "DeployTriggerActionSetReplace",
			Handler:    _P4WNP1_DeployTriggerActionSetReplace_Handler,
		},
		{
			MethodName: "DeployTriggerActionSetAdd",
			Handler:    _P4WNP1_DeployTriggerActionSetAdd_Handler,
		},
		{
			MethodName: "DeployTriggerActionSetRemove",
			Handler:    _P4WNP1_DeployTriggerActionSetRemove_Handler,
		},
		{
			MethodName: "ListStoredTriggerActionSets",
			Handler:    _P4WNP1_ListStoredTriggerActionSets_Handler,
		},
		{
			MethodName: "StoreTriggerActionSet",
			Handler:    _P4WNP1_StoreTriggerActionSet_Handler,
		},
		{
			MethodName: "DeployStoredTriggerActionSetReplace",
			Handler:    _P4WNP1_DeployStoredTriggerActionSetReplace_Handler,
		},
		{
			MethodName: "DeployStoredTriggerActionSetAdd",
			Handler:    _P4WNP1_DeployStoredTriggerActionSetAdd_Handler,
		},
		{
			MethodName: "DeleteStoredTriggerActionSet",
			Handler:    _P4WNP1_DeleteStoredTriggerActionSet_Handler,
		},
		{
			MethodName: "WaitTriggerGroupReceive",
			Handler:    _P4WNP1_WaitTriggerGroupReceive_Handler,
		},
		{
			MethodName: "FireActionGroupSend",
			Handler:    _P4WNP1_FireActionGroupSend_Handler,
		},
		{
			MethodName: "DBBackup",
			Handler:    _P4WNP1_DBBackup_Handler,
		},
		{
			MethodName: "DBRestore",
			Handler:    _P4WNP1_DBRestore_Handler,
		},
		{
			MethodName: "ListStoredHIDScripts",
			Handler:    _P4WNP1_ListStoredHIDScripts_Handler,
		},
		{
			MethodName: "ListStoredBashScripts",
			Handler:    _P4WNP1_ListStoredBashScripts_Handler,
		},
		{
			MethodName: "ListStoredDBBackups",
			Handler:    _P4WNP1_ListStoredDBBackups_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "EventListen",
			Handler:       _P4WNP1_EventListen_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "grpc.proto",
}

func init() { proto.RegisterFile("grpc.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{
	// 4754 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x7b, 0x49, 0x73, 0x23, 0x47,
	0x76, 0x3f, 0x16, 0x2e, 0xc0, 0x03, 0x40, 0x16, 0xb3, 0xb9, 0xa0, 0xd9, 0x7b, 0xa9, 0x25, 0xf5,
	0x50, 0x23, 0x4a, 0xa2, 0xa8, 0x56, 0x4b, 0x23, 0xfd, 0x35, 0xd8, 0x08, 0xa0, 0x1b, 0x04, 0xa0,
	0x2a, 0xa0, 0x39, 0xdb, 0x7f, 0x6a, 0x0a, 0x55, 0x49, 0xb0, 0xd4, 0x40, 0x15, 0x5c, 0x0b, 0x29,
	0xfa, 0x30, 0x0e, 0x4f, 0x84, 0x23, 0x7c, 0xf0, 0xdd, 0xdf, 0xc2, 0x37, 0xdb, 0x9f, 0xc9, 0x97,
	0x89, 0xb9, 0xf8, 0xe2, 0x8b, 0x1d, 0x99, 0x59, 0x3b, 0x0a, 0x24, 0x9b, 0x2d, 0xdd, 0x32, 0x5f,
	0xbe, 0xfc, 0x65, 0xe6, 0xdb, 0xf2, 0xe5, 0x2b, 0x00, 0x60, 0x6c, 0xce, 0x94, 0xfd, 0x99, 0x69,
	0xd8, 0x06, 0x2a, 0xf4, 0x0f, 0x2f, 0xf4, 0xfe, 0x67, 0x12, 0x21, 0xf1, 0xff, 0x98, 0x86, 0x47,
	0xd5, 0x89, 0x83, 0x6d, 0xc3, 0xb0, 0xcf, 0x04, 0xfc, 0x77, 0x0e, 0xb6, 0x6c, 0x11, 0xdb, 0xb6,
	0xa6, 0x8f, 0x2d, 0xd1, 0x36, 0x4c, 0x79, 0x8c, 0x11, 0x0f, 0xc5, 0x01, 0x9e, 0xce, 0x26, 0xb2,
	0x8d, 0xbb, 0xf2, 0x14, 0x97, 0xd3, 0x8f, 0xd3, 0xcf, 0xf2, 0x42, 0x84, 0x86, 0xbe, 0x86, 0x9c,
	0xe5, 0x4e, 0x2b, 0x67, 0x1e, 0xa7, 0x9f, 0x15, 0x0e, 0x1e, 0xee, 0x87, 0xd6, 0xd9, 0xf7, 0xd7,
	0xf0, 0xc0, 0x05, 0x9f, 0x9f, 0xff, 0xa7, 0x34, 0x6c, 0xcc, 0x8d, 0xa3, 0x5f, 0x41, 0x46, 0xd1,
	0xe8, 0x5a, 0x85, 0x83, 0x8f, 0x92, 0xb1, 0x6a, 0x86, 0x6e, 0x9b, 0xc6, 0x64, 0x82, 0xcd, 0xb6,
	0x7e, 0x6a, 0x98, 0x53, 0xd9, 0xd6, 0x0c, 0x5d, 0xc8, 0x28, 0x1a, 0xfa, 0x1c, 0x32, 0xb2, 0xb7,
	0x91, 0xf7, 0x92, 0x27, 0x57, 0xc6, 0x58, 0xf7, 0x8f, 0x2a, 0x64, 0x64, 0x8b, 0xdf, 0x83, 0xed,
	0xe4, 0x51, 0xc4, 0x41, 0x76, 0xa6, 0xe9, 0xee, 0xc1, 0x49, 0x93, 0xff, 0x9f, 0x34, 0xec, 0xf8,
	0xcc, 0x5d, 0x6c, 0x5f, 0x18, 0xe6, 0x1b, 0x11, 0x9b, 0xe7, 0x9a, 0x82, 0xd1, 0x21, 0x6c, 0x9b,
	0x78, 0xac, 0x59, 0x36, 0x36, 0x25, 0xc3, 0x94, 0x1c, 0xdd, 0xeb, 0x51, 0x80, 0x9c, 0xb0, 0xe9,
	0xf5, 0x7b, 0xe6, 0xd0, 0x1f, 0x43, 0x7b, 0xb0, 0x61, 0x61, 0xf3, 0x9c, 0xcd, 0x51, 0x0c, 0x5d,
	0xc7, 0x8a, 0x4d, 0x4f, 0x90, 0x13, 0xd6, 0xd9, 0x40, 0xcf, 0xac, 0x31, 0x32, 0xfa, 0x06, 0x96,
	0xec, 0xcb, 0x19, 0x2e, 0x67, 0x1f, 0xa7, 0x9f, 0xad, 0x1d, 0x3c, 0x4b, 0x3e, 0x60, 0x74, 0x57,
	0x83, 0xcb, 0x19, 0x16, 0xe8, 0x2c, 0xf4, 0x10, 0x0a, 0x53, 0x59, 0x21, 0xcb, 0xe8, 0x44, 0x9d,
	0x4b, 0xf4, 0x54, 0xf9, 0xa9, 0xac, 0xf4, 0x4c, 0xaa, 0xcb, 0x47, 0x50, 0x18, 0x99, 0x9a, 0x3a,
	0xc6, 0x6c, 0x7c, 0x99, 0x8e, 0x03, 0x23, 0x11, 0x06, 0xfe, 0xbf, 0x96, 0xe0, 0x5e, 0x82, 0x12,
	0x7c, 0x71, 0x95, 0x61, 0x75, 0x66, 0x5c, 0x60, 0x13, 0xab, 0xee, 0x89, 0xbd, 0x2e, 0x7a, 0x0c,
	0x05, 0xf7, 0x68, 0xf2, 0x68, 0x82, 0xdd, 0xe3, 0x85, 0x49, 0xe8, 0x17, 0xc0, 0x9d, 0xca, 0x96,
	0x2d, 0x85, 0xd9, 0xb2, 0x4c, 0x0a, 0x84, 0x5e, 0x0b, 0xb1, 0xf2, 0x50, 0x54, 0x35, 0x4b, 0x31,
	0xce, 0xb1, 0x49, 0xd9, 0x96, 0x28, 0x5b, 0x84, 0x86, 0x76, 0x21, 0x37, 0x32, 0x74, 0x95, 0x8e,
	0x2f, 0xd3, 0x71, 0xbf, 0x8f, 0xf6, 0xe1, 0xce, 0x44, 0xd3, 0xdf, 0x48, 0x13, 0x7c, 0x8e, 0x27,
	0x92, 0x85, 0x15, 0xc7, 0xd4, 0xec, 0xcb, 0xf2, 0x0a, 0x65, 0xdb, 0x20, 0x43, 0x1d, 0x32, 0x22,
	0xba, 0x03, 0xe8, 0x00, 0xb6, 0x28, 0x13, 0x96, 0x2c, 0x6d, 0x3a, 0x9b, 0x60, 0x69, 0x26, 0x6b,
	0xa6, 0xa6, 0x8f, 0xcb, 0xab, 0x74, 0xc6, 0x1d, 0x36, 0x28, 0xd2, 0xb1, 0x3e, 0x1b, 0x42, 0x5b,
	0xb0, 0x32, 0x32, 0x25, 0xac, 0x9a, 0xe5, 0x1c, 0x65, 0x5a, 0x1e, 0x99, 0x0d, 0xd5, 0x44, 0x0f,
	0x00, 0xce, 0xb4, 0xf1, 0x99, 0x64, 0xcd, 0x30, 0x56, 0xcb, 0x79, 0x3a, 0x94, 0x27, 0x14, 0x91,
	0x10, 0xc8, 0xf0, 0xc4, 0xb8, 0x90, 0xb0, 0x8e, 0xcd, 0xf1, 0x65, 0x19, 0xd8, 0xf0, 0xc4, 0xb8,
	0x68, 0x50, 0x02, 0x91, 0xa2, 0xac, 0x9e, 0x63, 0xd3, 0xd6, 0x2c, 0xb2, 0x7c, 0x81, 0x49, 0x31,
	0x44, 0x42, 0x1f, 0x03, 0x72, 0xb7, 0xea, 0xca, 0x51, 0x33, 0x74, 0xab, 0x5c, 0x64, 0x27, 0x63,
	0x23, 0xb5, 0x60, 0x80, 0xac, 0xa7, 0xe2, 0x91, 0x33, 0x96, 0xde, 0xe0, 0x4b, 0xab, 0x5c, 0x62,
	0xeb, 0x51, 0xca, 0x2b, 0x7c, 0xc9, 0xf4, 0x69, 0x6a, 0xe7, 0xb2, 0x72, 0x59, 0x5e, 0x73, 0xf5,
	0xc9, 0xba, 0xe8, 0x2b, 0x28, 0x2b, 0xbe, 0xfe, 0xc9, 0x5a, 0xa7, 0xda, 0xd8, 0x31, 0xa9, 0x1f,
	0x96, 0xd7, 0x29, 0xeb, 0x4e, 0x30, 0x5e, 0x0b, 0x0f, 0xa3, 0xf7, 0x61, 0xcd, 0xb2, 0x65, 0x5b,
	0x53, 0x24, 0x59, 0x55, 0x4d, 0x6c, 0x59, 0x65, 0x8e, 0x4e, 0x28, 0x31, 0x6a, 0x85, 0x11, 0xf9,
	0xbf, 0x2e, 0xc1, 0xc3, 0xab, 0x1d, 0x9e, 0x6c, 0xcf, 0x83, 0x20, 0xe6, 0x56, 0x14, 0xbc, 0x2e,
	0xfa, 0x08, 0x36, 0x46, 0xde, 0x5c, 0xe9, 0x1c, 0x9b, 0x16, 0xd9, 0x17, 0x31, 0xba, 0x92, 0xc0,
	0xf9, 0x03, 0xaf, 0x19, 0x9d, 0x98, 0xd3, 0x54, 0xd6, 0x9d, 0x53, 0x59, 0xb1, 0x1d, 0x13, 0x9b,
	0xd4, 0xea, 0x4a, 0x42, 0x84, 0x86, 0x4e, 0x00, 0x59, 0xce, 0x6c, 0x66, 0x98, 0x36, 0x56, 0x25,
	0x3f, 0xe0, 0x2d, 0xd1, 0x38, 0xf3, 0xec, 0xba, 0x20, 0xe5, 0x07, 0x9b, 0x0d, 0x1f, 0xc3, 0x77,
	0x19, 0x11, 0x38, 0xc5, 0x31, 0x4d, 0xac, 0xdb, 0x01, 0xec, 0xf2, 0x5b, 0xc2, 0xae, 0xbb, 0x08,
	0x3e, 0xe8, 0x07, 0xb0, 0xae, 0x4c, 0x64, 0xcb, 0x92, 0x8c, 0x53, 0x49, 0xc5, 0x24, 0x0a, 0x50,
	0xe3, 0x2e, 0x0a, 0x25, 0x4a, 0xee, 0x9d, 0xd6, 0x29, 0x11, 0x21, 0x58, 0xa2, 0x9e, 0xbe, 0x4a,
	0x3d, 0x9d, 0xb6, 0x89, 0x49, 0x58, 0x67, 0x86, 0x69, 0xb3, 0x18, 0x90, 0x63, 0x31, 0x82, 0x52,
	0x68, 0x8c, 0x78, 0x02, 0x45, 0xcd, 0x92, 0xe4, 0x73, 0x59, 0x9b, 0x50, 0xdf, 0x62, 0x26, 0x5c,
	0xd0, 0xac, 0x8a, 0x47, 0x42, 0xbf, 0x82, 0x5d, 0x8b, 0xc5, 0x1e, 0x49, 0x67, 0xa1, 0x48, 0x72,
	0x03, 0x9c, 0x2e, 0xcf, 0x5c, 0xa3, 0xde, 0x71, 0x39, 0x42, 0xb1, 0x0a, 0x9b, 0x5d, 0x79, 0x86,
	0xbe, 0x85, 0x7b, 0x0b, 0x26, 0xcf, 0x64, 0xdd, 0x71, 0x4d, 0xbe, 0x9c, 0x34, 0xbb, 0x2f, 0xeb,
	0x0e, 0xfa, 0x0a, 0xee, 0x2e, 0x98, 0x3e, 0xd6, 0x5d, 0x37, 0xd8, 0x4e, 0x9a, 0xdc, 0xd4, 0xf9,
	0x1f, 0x80, 0x1b, 0x98, 0xda, 0x78, 0x8c, 0xcd, 0x0a, 0xf5, 0x0e, 0x11, 0xdb, 0xa8, 0x0a, 0x6b,
	0x11, 0x1a, 0x31, 0xb4, 0xec, 0xb3, 0xc2, 0xc1, 0x6e, 0x44, 0x37, 0x11, 0x16, 0x21, 0x36, 0x83,
	0x08, 0x99, 0xde, 0x9e, 0x19, 0x26, 0x64, 0x1a, 0x48, 0xff, 0x03, 0xa0, 0x14, 0x61, 0x43, 0x6b,
	0x90, 0xd1, 0x58, 0xd4, 0x2c, 0x09, 0x19, 0x4d, 0x25, 0xb6, 0x6d, 0xe8, 0x58, 0x3c, 0x33, 0xbc,
	0xbb, 0xc0, 0xeb, 0x92, 0xc8, 0xa6, 0x59, 0x64, 0xd6, 0xb9, 0x17, 0x20, 0xfd, 0x3e, 0xba, 0x0f,
	0x79, 0x6d, 0x3a, 0x75, 0xec, 0x50, 0x58, 0x0c, 0x08, 0xa8, 0x03, 0x6b, 0xee, 0xd9, 0x45, 0x5b,
	0x26, 0x56, 0xe8, 0x5a, 0x1a, 0x9f, 0x74, 0x1a, 0x31, 0xc2, 0xd9, 0x4a, 0x09, 0xb1, 0xb9, 0xe8,
	0x37, 0x80, 0x1c, 0x6b, 0xd4, 0x94, 0xd5, 0x31, 0xf6, 0xa2, 0x33, 0x56, 0xa9, 0x9d, 0x15, 0x0e,
	0x3e, 0x48, 0x42, 0x1c, 0x8a, 0xd5, 0x18, 0x77, 0x2b, 0x25, 0x24, 0x60, 0x20, 0x19, 0xb6, 0x7c,
	0x6a, 0x9d, 0x04, 0x75, 0x0f, 0x7c, 0x95, 0x82, 0xff, 0xe2, 0x4a, 0xf0, 0xf0, 0x84, 0x56, 0x4a,
	0x48, 0x46, 0x42, 0x6d, 0x28, 0x5d, 0x68, 0xa7, 0x5a, 0xa5, 0xef, 0x49, 0x22, 0x47, 0xa1, 0x9f,
	0x24, 0x41, 0x9f, 0x84, 0x19, 0x5b, 0x29, 0x21, 0x3a, 0x93, 0xc8, 0x81, 0x10, 0xfc, 0xed, 0x57,
	0x2c, 0xd1, 0x96, 0xa9, 0x5f, 0x2c, 0x90, 0xc3, 0xc9, 0x1c, 0x37, 0x91, 0xc3, 0x3c, 0x06, 0xcd,
	0xad, 0xac, 0xb3, 0x8e, 0x31, 0xd6, 0x74, 0xea, 0x36, 0x85, 0x83, 0xfb, 0x89, 0x9a, 0x12, 0x5b,
	0x94, 0xa7, 0x95, 0x12, 0x7c, 0x7e, 0x24, 0x00, 0xa7, 0x9e, 0x29, 0xb3, 0x0e, 0x96, 0x2d, 0xdc,
	0x34, 0x65, 0x9d, 0x9c, 0xb1, 0x40, 0x31, 0x9e, 0x26, 0x61, 0xd4, 0x5b, 0xb5, 0x7e, 0x98, 0xb7,
	0x95, 0x12, 0xe6, 0xe6, 0xa3, 0x23, 0x28, 0x8e, 0x4d, 0xc3, 0x99, 0x09, 0x58, 0xc1, 0xc4, 0xfa,
	0x8a, 0x14, 0xef, 0x71, 0x12, 0x5e, 0x33, 0xc4, 0xd7, 0x4a, 0x09, 0x91, 0x79, 0xe8, 0x8f, 0xb0,
	0x19, 0xee, 0x8b, 0x24, 0xfb, 0xd4, 0x15, 0x4c, 0xef, 0x9f, 0x78, 0xdc, 0x4b, 0xc0, 0xf3, 0xf8,
	0x5b, 0x29, 0x21, 0x11, 0x07, 0x1d, 0xc2, 0xca, 0x78, 0xa6, 0x19, 0x6d, 0x9d, 0xde, 0x5a, 0x0b,
	0xbc, 0xb5, 0xd9, 0x6f, 0xf7, 0xda, 0x44, 0x66, 0x2e, 0x2f, 0xaa, 0x03, 0x8c, 0x64, 0xeb, 0x4c,
	0x54, 0x4c, 0x6d, 0x66, 0xd3, 0x4b, 0x2c, 0xee, 0x19, 0x6e, 0x5c, 0x20, 0x7a, 0xaf, 0xfa, 0x9c,
	0xad, 0xb4, 0x10, 0x9a, 0x87, 0x2a, 0x90, 0x3f, 0xd3, 0x54, 0x17, 0x84, 0x4b, 0x30, 0xaa, 0x10,
	0x48, 0xab, 0x5d, 0xf7, 0x31, 0x82, 0x59, 0x48, 0x81, 0x6d, 0x15, 0xcf, 0x26, 0xc6, 0xa5, 0x17,
	0xcf, 0xbd, 0x84, 0xbb, 0xbc, 0x91, 0x60, 0xff, 0x0c, 0xaf, 0x9e, 0x38, 0xa1, 0x95, 0x16, 0x16,
	0x40, 0xa1, 0x3d, 0xc8, 0x4e, 0x8c, 0x71, 0x19, 0x51, 0xc4, 0xed, 0x04, 0xc4, 0x8e, 0x31, 0x6e,
	0xa5, 0x05, 0xc2, 0x84, 0x9e, 0xc3, 0x2a, 0x91, 0x51, 0xcf, 0xb1, 0xcb, 0x77, 0x12, 0x04, 0xca,
	0xf8, 0x89, 0x3c, 0x7b, 0x0e, 0x39, 0x8a, 0xc7, 0x8c, 0xbe, 0x81, 0x3c, 0xd5, 0x8f, 0x88, 0x75,
	0xb5, 0xbc, 0x99, 0x60, 0xc0, 0xee, 0x4c, 0x8f, 0x87, 0x88, 0xc1, 0x9f, 0x50, 0xcd, 0xc3, 0xaa,
	0xab, 0xaa, 0x6a, 0x0e, 0x56, 0x18, 0x2b, 0xbf, 0x03, 0x5b, 0x89, 0xf1, 0x89, 0xbf, 0x07, 0x77,
	0x17, 0x86, 0x19, 0xfe, 0x21, 0xdc, 0xbf, 0x2a, 0x4c, 0xf0, 0xdb, 0xb0, 0x99, 0xe4, 0xeb, 0x21,
	0xd0, 0x79, 0x9f, 0xe5, 0x3f, 0x81, 0xf5, 0x98, 0x03, 0x92, 0xf0, 0x3b, 0x21, 0x8d, 0xa1, 0xe5,
	0xe6, 0xfc, 0x79, 0x21, 0x20, 0xf0, 0x77, 0x61, 0x67, 0x81, 0xb7, 0xf1, 0x6d, 0xb8, 0x93, 0x60,
	0xe8, 0x04, 0x8f, 0xca, 0x23, 0xf4, 0xfa, 0x0a, 0x08, 0x68, 0x13, 0x96, 0xcf, 0xe5, 0x89, 0xc3,
	0x6e, 0x96, 0x65, 0x81, 0x75, 0xf8, 0x7f, 0x80, 0x7b, 0x57, 0xf8, 0xcc, 0x35, 0x90, 0x7b, 0xc0,
	0xb5, 0xc7, 0xba, 0x61, 0xe2, 0x9e, 0x63, 0xf7, 0x4e, 0x7b, 0xa6, 0x8a, 0x4d, 0xf7, 0xfa, 0x99,
	0xa3, 0xa3, 0x6d, 0x58, 0xa1, 0x2b, 0x5a, 0xe5, 0xec, 0xe3, 0xec, 0xb3, 0x65, 0xc1, 0xed, 0xf1,
	0xff, 0x99, 0xf6, 0xef, 0x36, 0xe6, 0x63, 0x68, 0x9f, 0xd9, 0x4f, 0xd7, 0x99, 0xd2, 0x15, 0xd7,
	0x0e, 0x36, 0x23, 0x56, 0x40, 0xb8, 0xba, 0xce, 0x54, 0xf0, 0x98, 0xd0, 0xb7, 0x00, 0x33, 0x67,
	0x32, 0x19, 0xce, 0xea, 0xc6, 0x05, 0x4b, 0xdb, 0xd6, 0x0e, 0x1e, 0xcc, 0x4d, 0x69, 0xeb, 0x7d,
	0x9f, 0x49, 0x08, 0x4d, 0x40, 0x5f, 0x02, 0x30, 0x97, 0x6e, 0xa8, 0x63, 0xef, 0xa9, 0xb4, 0x93,
	0x30, 0x9d, 0x0c, 0x0b, 0x21, 0x56, 0xfe, 0x4b, 0xd8, 0x4a, 0x74, 0x71, 0xf4, 0x10, 0xc0, 0xa2,
	0xad, 0x90, 0xd4, 0x42, 0x14, 0xfe, 0x39, 0x6c, 0x26, 0xb9, 0xf5, 0xb5, 0xf3, 0xfe, 0x3b, 0x0d,
	0xf7, 0xaf, 0xf2, 0x5f, 0x92, 0x9a, 0xda, 0x09, 0x2f, 0xf0, 0x30, 0x0d, 0xbd, 0x74, 0xdf, 0x84,
	0x4c, 0x4e, 0xcf, 0x6f, 0x1c, 0x1c, 0xf6, 0xbd, 0x46, 0xf0, 0x42, 0xe4, 0x71, 0xf0, 0xe2, 0x27,
	0x54, 0xb4, 0x01, 0xa5, 0xa3, 0x61, 0xa7, 0x23, 0x89, 0x8d, 0xc1, 0xa0, 0xdd, 0x6d, 0x8a, 0x5c,
	0x0a, 0x15, 0x60, 0xb5, 0xdb, 0x18, 0x9c, 0xf4, 0x84, 0x57, 0x5c, 0x1a, 0xe5, 0x60, 0xe9, 0xa4,
	0x7d, 0xd4, 0xe6, 0x32, 0x68, 0x15, 0xb2, 0x43, 0xb1, 0xca, 0x65, 0x51, 0x09, 0xf2, 0xd5, 0xce,
	0xb0, 0x31, 0xe8, 0xf5, 0x06, 0x2d, 0x6e, 0x09, 0xdd, 0x81, 0xf5, 0x81, 0xd0, 0x6e, 0x36, 0x1b,
	0x82, 0x54, 0xa9, 0x0d, 0xda, 0xbd, 0xae, 0xc8, 0x2d, 0xf3, 0x05, 0xc8, 0xfb, 0x41, 0x86, 0x9f,
	0x41, 0x29, 0x12, 0x41, 0xde, 0xda, 0x5c, 0x3e, 0x09, 0xfb, 0xc1, 0xda, 0xc1, 0xdd, 0x39, 0xee,
	0x9e, 0x63, 0xbf, 0x26, 0x0c, 0x9e, 0x8b, 0x34, 0x60, 0x3d, 0x16, 0x79, 0x6e, 0xe5, 0x69, 0x17,
	0xb0, 0x4b, 0xc2, 0xc2, 0x3b, 0x14, 0x4f, 0xbe, 0x98, 0x2b, 0x9e, 0x44, 0x37, 0x7f, 0xa2, 0x1d,
	0x69, 0x09, 0x75, 0x93, 0x7f, 0xcd, 0x42, 0x31, 0x3c, 0xe4, 0xe7, 0xf1, 0xe9, 0x50, 0x1e, 0xbf,
	0x0b, 0x39, 0x55, 0xb3, 0x48, 0xde, 0xa7, 0xba, 0x2e, 0xec, 0xf7, 0x89, 0x5d, 0x9a, 0x78, 0xec,
	0x4c, 0x64, 0xdb, 0x30, 0x2f, 0xa9, 0x87, 0xe4, 0x85, 0x10, 0x05, 0x7d, 0x07, 0x45, 0x92, 0x1a,
	0x6b, 0xfa, 0x58, 0x9a, 0x1a, 0x2a, 0xcb, 0x24, 0xd7, 0x62, 0xb1, 0x9b, 0x6c, 0xe0, 0x84, 0x31,
	0x1d, 0x1b, 0x2a, 0x16, 0x0a, 0x17, 0x41, 0x07, 0x3d, 0x87, 0xbc, 0xec, 0xd8, 0x67, 0x6c, 0xf6,
	0x72, 0x82, 0x5a, 0xc8, 0xec, 0x8a, 0x63, 0x9f, 0xd1, 0xa9, 0x39, 0xd9, 0x6d, 0x91, 0xac, 0x57,
	0x39, 0x93, 0x75, 0x1d, 0x4f, 0x68, 0x22, 0x59, 0x12, 0xbc, 0x2e, 0xda, 0x87, 0x15, 0x79, 0x26,
	0x55, 0x45, 0xd1, 0x4d, 0x02, 0x77, 0xe6, 0xe0, 0xaa, 0xa2, 0x58, 0x3b, 0x1d, 0x0b, 0xcb, 0xf2,
	0xac, 0x2a, 0x8a, 0xe8, 0x3b, 0xf2, 0x04, 0xd2, 0xc8, 0xb3, 0xaa, 0x2a, 0x8a, 0xd2, 0x44, 0xb3,
	0xec, 0x72, 0x8e, 0xa6, 0xee, 0x0b, 0x27, 0x96, 0x18, 0x7f, 0x55, 0x14, 0x3b, 0x9a, 0x65, 0xa3,
	0x7b, 0xf4, 0x22, 0xc7, 0x92, 0x65, 0x69, 0xde, 0x43, 0x3d, 0x47, 0x08, 0xa2, 0xa5, 0xa9, 0x24,
	0xf6, 0xe9, 0xf8, 0xc7, 0xa9, 0xa1, 0xbb, 0x6f, 0x66, 0xb7, 0xc7, 0xff, 0x5b, 0x1a, 0xf2, 0x54,
	0x33, 0x36, 0xf1, 0xde, 0x7d, 0x58, 0xa2, 0x02, 0x60, 0x56, 0xbc, 0x3b, 0xaf, 0x5a, 0xc2, 0x45,
	0x25, 0x40, 0xf9, 0xc2, 0xa7, 0xcf, 0x44, 0x4f, 0x8f, 0x60, 0x89, 0xee, 0x83, 0xa9, 0x8a, 0xb6,
	0x51, 0x0d, 0xe2, 0xef, 0x3e, 0xf7, 0x3d, 0x7a, 0x85, 0x0d, 0xc5, 0x67, 0xf0, 0x07, 0x00, 0x81,
	0x08, 0xc8, 0x32, 0xa2, 0xd8, 0xae, 0x7b, 0x76, 0x44, 0xda, 0x88, 0x83, 0x6c, 0x5f, 0x7c, 0xe5,
	0xbe, 0x5e, 0x48, 0x93, 0x7f, 0x02, 0x25, 0xd1, 0x36, 0x89, 0xaa, 0xb1, 0x65, 0x11, 0x53, 0xe7,
	0x20, 0x3b, 0xb5, 0xc6, 0x5e, 0x95, 0x6c, 0x6a, 0x8d, 0xf9, 0x4f, 0x01, 0x45, 0x58, 0x2a, 0xa6,
	0x29, 0x5f, 0x12, 0x93, 0x9c, 0x5a, 0x63, 0xda, 0xa6, 0xef, 0xa8, 0xbc, 0xe0, 0xf7, 0xf9, 0x7d,
	0x28, 0x36, 0xce, 0xb1, 0x6e, 0xbb, 0xde, 0x44, 0x4c, 0x94, 0x28, 0x0d, 0xeb, 0x24, 0x0e, 0x51,
	0xe8, 0xac, 0x10, 0xa2, 0xf0, 0x32, 0x00, 0xe5, 0xa7, 0x8e, 0x8d, 0x76, 0x61, 0xd5, 0xb6, 0xe8,
	0x82, 0x6c, 0x17, 0xad, 0x94, 0xe0, 0x11, 0xd0, 0x36, 0x2c, 0xdb, 0x23, 0xc3, 0x60, 0x32, 0xcd,
	0xb5, 0x52, 0x02, 0xeb, 0xa2, 0x32, 0xac, 0xd8, 0x9a, 0x6e, 0x3f, 0x3f, 0xa4, 0x52, 0xcd, 0x92,
	0x4c, 0x90, 0xf5, 0xab, 0xcb, 0x90, 0x3d, 0x97, 0x27, 0x7c, 0x07, 0x96, 0xe9, 0x12, 0x44, 0x2c,
	0x76, 0xb0, 0x0b, 0x56, 0x4b, 0xfb, 0xc4, 0xbf, 0xfd, 0x32, 0x09, 0x66, 0x15, 0x6c, 0xcd, 0xbf,
	0x16, 0xff, 0x04, 0x9b, 0xc4, 0xf7, 0xeb, 0x9a, 0xd9, 0x33, 0x8f, 0xb4, 0x09, 0xf6, 0x0e, 0xca,
	0x41, 0x56, 0xd5, 0xbc, 0x6c, 0x81, 0x34, 0x89, 0x71, 0xcd, 0x4c, 0x7c, 0xaa, 0xfd, 0xe8, 0x0a,
	0xdd, 0xed, 0x11, 0x91, 0x18, 0xfa, 0xe4, 0xf2, 0xc8, 0x98, 0xa8, 0x6e, 0x95, 0x22, 0x27, 0x84,
	0x28, 0xe4, 0xfa, 0x8a, 0xad, 0x60, 0xcd, 0x0c, 0xdd, 0xc2, 0xcc, 0xdd, 0x2d, 0x67, 0x62, 0xf7,
	0x65, 0xfb, 0xcc, 0xbb, 0x86, 0x02, 0x0a, 0xff, 0x2f, 0x69, 0x58, 0x17, 0xb0, 0xac, 0x86, 0xb7,
	0xf5, 0x05, 0xac, 0x9c, 0xb2, 0x85, 0xd2, 0x09, 0xf7, 0x6f, 0x45, 0x51, 0xb0, 0x65, 0x69, 0xa3,
	0x09, 0x66, 0x6b, 0x0b, 0x2e, 0x33, 0x51, 0xf1, 0xa9, 0x36, 0xc1, 0x7a, 0xf0, 0xe0, 0xf5, 0xfb,
	0x24, 0x8a, 0x5a, 0xe4, 0x7e, 0x64, 0xf2, 0x16, 0x58, 0x87, 0x9c, 0x7f, 0x82, 0x75, 0x6a, 0xba,
	0x59, 0x81, 0x34, 0xf9, 0x3a, 0x70, 0xc1, 0x6e, 0xdc, 0x23, 0xdc, 0x87, 0xbc, 0x89, 0x65, 0xb5,
	0x66, 0x38, 0xba, 0xed, 0xea, 0x21, 0x20, 0x10, 0x05, 0xa9, 0xb2, 0x2d, 0xd3, 0x15, 0x8b, 0x02,
	0x6d, 0xf3, 0xff, 0x9e, 0x06, 0xee, 0xc4, 0xd4, 0x6c, 0xfc, 0x33, 0x9f, 0x6a, 0x9b, 0x04, 0xa6,
	0x19, 0xc9, 0x70, 0x99, 0x46, 0xdc, 0x1e, 0xad, 0x2a, 0x39, 0x96, 0xdd, 0x35, 0xec, 0xc6, 0x8f,
	0x24, 0xfa, 0xb8, 0x45, 0xca, 0x30, 0xcd, 0xdf, 0xf7, 0x72, 0x68, 0xdf, 0xef, 0xc3, 0x3a, 0xd9,
	0x71, 0x5b, 0x3f, 0x35, 0xbc, 0x5d, 0x23, 0x58, 0x9a, 0x05, 0x9a, 0xa3, 0x6d, 0xfe, 0xcf, 0xc0,
	0x05, 0x6c, 0xae, 0x90, 0x92, 0xae, 0x01, 0x12, 0x39, 0xb4, 0xbf, 0x67, 0xdb, 0xce, 0x0a, 0xb4,
	0x4d, 0x68, 0x34, 0x2e, 0xb1, 0x42, 0x97, 0x1f, 0x7b, 0xa6, 0x86, 0x3a, 0xd0, 0xdc, 0xba, 0x70,
	0x56, 0xf0, 0xba, 0x44, 0x6d, 0x9a, 0x55, 0xd7, 0x4c, 0xb7, 0x8c, 0xca, 0x3a, 0xfc, 0xef, 0x80,
	0xf3, 0xf3, 0x9c, 0x90, 0xcf, 0xb2, 0xe4, 0x26, 0x6c, 0x67, 0x01, 0x05, 0x7d, 0x00, 0x6b, 0xb6,
	0x36, 0xc5, 0x86, 0x63, 0x8b, 0x58, 0x31, 0x74, 0xd5, 0x72, 0xc3, 0x5c, 0x8c, 0xca, 0x3f, 0x84,
	0xa2, 0x8f, 0xfd, 0xd2, 0x18, 0xc5, 0x6b, 0x23, 0xfc, 0xd3, 0xd0, 0xda, 0x2f, 0x8d, 0x11, 0x0d,
	0xd7, 0x1c, 0x64, 0x35, 0x95, 0x95, 0x67, 0x4a, 0x02, 0x69, 0xf2, 0xaf, 0xa1, 0xdc, 0x6a, 0xd7,
	0x05, 0x47, 0xd7, 0x35, 0x7d, 0xfc, 0xd2, 0x18, 0xd1, 0x68, 0x2b, 0x50, 0xab, 0x0f, 0x21, 0x66,
	0x69, 0xb5, 0x05, 0xc1, 0xd2, 0xf9, 0xb4, 0xad, 0x7a, 0x52, 0x22, 0x6d, 0xa2, 0x58, 0xcb, 0x70,
	0x4c, 0x05, 0xbb, 0x51, 0xd7, 0xed, 0xf1, 0x7f, 0x86, 0xf5, 0xd0, 0xc9, 0x29, 0xdc, 0x47, 0x90,
	0xfd, 0xc1, 0x18, 0xb9, 0xdf, 0x2c, 0xa2, 0xe1, 0x37, 0xbc, 0x51, 0x81, 0x70, 0x11, 0x29, 0x69,
	0xd6, 0x91, 0xa6, 0x6b, 0xd6, 0x99, 0x7f, 0x35, 0x87, 0x28, 0x81, 0xb7, 0xbe, 0xb4, 0x0c, 0x3d,
	0xb8, 0x9c, 0x3d, 0x0a, 0xbf, 0x0f, 0x85, 0x4e, 0xa3, 0xee, 0xdf, 0xfd, 0x8f, 0xa0, 0x30, 0xa2,
	0xd5, 0x6c, 0xc5, 0xf7, 0x8d, 0x92, 0x00, 0x94, 0x44, 0x9d, 0x83, 0xff, 0x11, 0xee, 0x0e, 0xc5,
	0xea, 0x3b, 0x64, 0x29, 0x5f, 0xce, 0x65, 0x29, 0xf7, 0xa2, 0x29, 0x16, 0x7d, 0x50, 0x25, 0xe4,
	0x29, 0x7f, 0x5d, 0x86, 0xb5, 0xe8, 0x20, 0x31, 0x33, 0xac, 0xb3, 0xa4, 0xc4, 0xfd, 0x42, 0xe0,
	0x76, 0x89, 0x02, 0xcf, 0x35, 0xd5, 0xbb, 0x67, 0xce, 0x35, 0x95, 0x7d, 0x7c, 0xf1, 0xee, 0x3c,
	0xd2, 0x9c, 0xab, 0xd4, 0xb2, 0x2f, 0x18, 0xd1, 0x4a, 0x2d, 0xad, 0x59, 0x1b, 0xaa, 0xa3, 0xd8,
	0xee, 0x07, 0x0c, 0xaf, 0x4b, 0x15, 0x8a, 0x4d, 0x4d, 0x66, 0xb9, 0x05, 0x51, 0x28, 0xed, 0xa1,
	0x87, 0x50, 0x70, 0x2c, 0x2c, 0xd5, 0xea, 0x35, 0xa9, 0x51, 0x3b, 0x76, 0x8b, 0xfa, 0x79, 0xc7,
	0xc2, 0xb5, 0x7a, 0xad, 0x51, 0x3b, 0x26, 0x99, 0x00, 0x19, 0x17, 0xba, 0xf5, 0xb6, 0xe8, 0x56,
	0xf3, 0x73, 0x8e, 0x85, 0x69, 0x1f, 0x3d, 0x03, 0x8e, 0x0c, 0xb6, 0xda, 0x75, 0xe9, 0x55, 0xe3,
	0xb7, 0xd5, 0x5e, 0x45, 0xa8, 0xbb, 0xd9, 0xc2, 0x9a, 0x63, 0xe1, 0x56, 0xbb, 0xee, 0x51, 0x11,
	0x0f, 0x25, 0x8f, 0xf3, 0xb8, 0x37, 0x14, 0x1b, 0x6e, 0x25, 0xb4, 0xc0, 0xd8, 0x28, 0xc9, 0xdb,
	0x0a, 0xe1, 0x11, 0x2a, 0x27, 0x6e, 0xb5, 0x33, 0xcf, 0x38, 0x84, 0xca, 0x09, 0xda, 0x81, 0x55,
	0x32, 0x3e, 0x3c, 0x16, 0xdd, 0x62, 0xe6, 0x8a, 0x63, 0xe1, 0xe1, 0xb1, 0x88, 0x1e, 0x00, 0x90,
	0x01, 0xb1, 0x21, 0xb4, 0x2b, 0x1d, 0xaf, 0x90, 0xef, 0x58, 0x98, 0x11, 0xd0, 0x4b, 0x58, 0x33,
	0x75, 0x55, 0xb3, 0x82, 0x1a, 0xf3, 0x5a, 0xc2, 0x27, 0xb2, 0xa8, 0xae, 0x1a, 0xf6, 0x19, 0x36,
	0x75, 0x6c, 0x0b, 0x25, 0x3a, 0xd5, 0x57, 0xe1, 0x31, 0x70, 0x8a, 0xaa, 0x48, 0x58, 0x99, 0x06,
	0x68, 0xeb, 0x37, 0x47, 0x5b, 0x53, 0x54, 0xa5, 0xa1, 0x4c, 0x7d, 0xb8, 0x0a, 0x14, 0x9d, 0x69,
	0x68, 0x63, 0x5c, 0xc2, 0x47, 0xc4, 0x28, 0xd4, 0xf0, 0x58, 0x14, 0x0a, 0xce, 0x34, 0xd8, 0xd1,
	0x67, 0xb0, 0xa5, 0xe2, 0x73, 0x89, 0xc4, 0x45, 0xe9, 0x4c, 0x53, 0xa5, 0x37, 0xf8, 0x72, 0x64,
	0xc8, 0xa6, 0x4a, 0xab, 0x1b, 0x79, 0x01, 0xa9, 0xf8, 0x9c, 0xc4, 0x9f, 0x96, 0xa6, 0xbe, 0x72,
	0x47, 0xd0, 0x47, 0x80, 0x22, 0x53, 0xa6, 0x86, 0x63, 0x61, 0x5a, 0xdd, 0xc8, 0x0b, 0xeb, 0x01,
	0xff, 0x31, 0x21, 0xa3, 0x0f, 0x81, 0x8b, 0x30, 0x9b, 0xf2, 0x05, 0x2d, 0x67, 0xe4, 0x85, 0x52,
	0xc0, 0x2a, 0xc8, 0x17, 0x7c, 0x1f, 0xb6, 0x93, 0x4f, 0x4d, 0xb3, 0x49, 0xc3, 0xb2, 0xe9, 0x27,
	0x0f, 0xd7, 0xc9, 0x72, 0x84, 0x50, 0x51, 0x55, 0x13, 0xdd, 0x85, 0x1c, 0xc1, 0xa7, 0x63, 0xcc,
	0xfe, 0x57, 0x55, 0x7c, 0x4e, 0x86, 0xf8, 0x6f, 0x61, 0x63, 0xee, 0xf0, 0x24, 0x22, 0x2b, 0xaa,
	0x69, 0x4c, 0x5d, 0x17, 0x62, 0x1d, 0x12, 0xc3, 0xc8, 0xa5, 0xe4, 0xd5, 0x99, 0x49, 0x9b, 0xff,
	0xe7, 0x34, 0x3c, 0xf4, 0x25, 0x7f, 0xfb, 0x08, 0x50, 0x9d, 0x8b, 0x00, 0xd1, 0xc2, 0xa6, 0xb7,
	0x44, 0x5b, 0xb7, 0xb1, 0x79, 0x2a, 0x2b, 0x38, 0x21, 0x18, 0x48, 0xf0, 0x84, 0xbd, 0x43, 0xb1,
	0xba, 0x90, 0x1d, 0x7d, 0x0d, 0x4b, 0x34, 0x55, 0x67, 0x55, 0xf6, 0x9b, 0x2e, 0x42, 0xe7, 0xf0,
	0x7f, 0xc9, 0xc2, 0xdd, 0xc5, 0xc8, 0x49, 0x77, 0xe3, 0x77, 0xee, 0x3d, 0xc8, 0xde, 0x8d, 0x1f,
	0xdd, 0x6c, 0xb5, 0xfd, 0x50, 0xc2, 0x4e, 0x42, 0xf9, 0xcc, 0xfd, 0x60, 0x75, 0xe8, 0x85, 0xea,
	0x80, 0x42, 0xf2, 0x06, 0x1d, 0xdb, 0x53, 0xd9, 0x7a, 0x73, 0xe8, 0xc6, 0x2a, 0xbf, 0x1f, 0x8e,
	0x84, 0xcb, 0xd1, 0x48, 0xd8, 0x03, 0xa4, 0x9e, 0x29, 0x33, 0xf6, 0x61, 0xc2, 0xcf, 0xed, 0x59,
	0x61, 0xfd, 0x51, 0x64, 0x93, 0xf5, 0x56, 0xad, 0x1f, 0x65, 0x13, 0x12, 0xa6, 0xa2, 0xa7, 0x50,
	0xf2, 0xd4, 0xd0, 0xd6, 0x87, 0x16, 0x76, 0x43, 0x5c, 0x94, 0xc8, 0xd7, 0x60, 0x89, 0xbe, 0xc1,
	0x00, 0x56, 0x8e, 0x2b, 0xdd, 0x61, 0xa5, 0xc3, 0xa5, 0xd0, 0x3a, 0x14, 0xc8, 0x1a, 0x52, 0xad,
	0xd3, 0x6e, 0x74, 0x07, 0x5c, 0xda, 0x27, 0x88, 0x0d, 0xe1, 0x75, 0x43, 0xe0, 0x32, 0xe4, 0xb9,
	0x3f, 0xec, 0x1e, 0x57, 0xba, 0x95, 0x66, 0xa3, 0xce, 0x65, 0xf9, 0xff, 0xcd, 0x02, 0x9a, 0xdf,
	0x55, 0x90, 0xcd, 0xf7, 0x0d, 0xd3, 0xbf, 0xa3, 0x02, 0x0a, 0x7a, 0x06, 0xeb, 0xac, 0xe7, 0x8b,
	0xdb, 0x35, 0xe3, 0x38, 0x99, 0x96, 0xd8, 0xb0, 0x6c, 0xd1, 0xac, 0xce, 0x95, 0x78, 0x40, 0x40,
	0x7b, 0xc0, 0xe9, 0x86, 0x4d, 0x1e, 0x96, 0x86, 0xa9, 0xd9, 0x32, 0xfd, 0x46, 0xc2, 0x12, 0xaf,
	0x39, 0x3a, 0xda, 0x07, 0xa4, 0x1a, 0x5d, 0xc3, 0xae, 0x6a, 0xba, 0x1a, 0x2c, 0xcb, 0x74, 0x91,
	0x30, 0x42, 0xb2, 0x17, 0x45, 0x9e, 0x4c, 0x46, 0xb2, 0xf2, 0xc6, 0x2d, 0xef, 0xb2, 0x6b, 0x24,
	0x46, 0x45, 0x87, 0xb0, 0x62, 0xca, 0xfa, 0x18, 0x5b, 0xe5, 0x55, 0x6a, 0xc5, 0xf7, 0x17, 0xa8,
	0x4c, 0x20, 0x4c, 0x82, 0xcb, 0x8b, 0x8e, 0x60, 0xd5, 0x98, 0xb1, 0x4f, 0x4c, 0xec, 0x9d, 0xfa,
	0xcb, 0x6b, 0x34, 0xbd, 0xdf, 0x63, 0xec, 0x0d, 0xdd, 0x36, 0x2f, 0x05, 0x6f, 0x32, 0xaa, 0x41,
	0x81, 0x7d, 0x47, 0x6d, 0x19, 0x96, 0x6d, 0x95, 0xf3, 0x14, 0xeb, 0xc9, 0x22, 0x2c, 0x9f, 0x53,
	0x08, 0xcf, 0xda, 0xfd, 0x1a, 0x8a, 0x61, 0x74, 0x72, 0x13, 0xbf, 0xc1, 0x97, 0xae, 0xde, 0x48,
	0x33, 0x5a, 0x11, 0xc9, 0xbb, 0x15, 0x91, 0xaf, 0x33, 0x2f, 0xd2, 0xbc, 0x01, 0xeb, 0xb1, 0x33,
	0xd2, 0x8c, 0x86, 0x34, 0x3a, 0xc6, 0x85, 0x5f, 0x17, 0x0d, 0x51, 0xfc, 0xf1, 0xe1, 0x6c, 0x86,
	0xbd, 0x08, 0x18, 0xa2, 0xf8, 0x3a, 0xa7, 0xd9, 0x69, 0x58, 0xe7, 0x84, 0xc0, 0xbf, 0x80, 0xcd,
	0xa4, 0x13, 0xd1, 0x57, 0xa9, 0xac, 0xf8, 0xaf, 0x52, 0x59, 0xa1, 0x59, 0xdf, 0xcc, 0xc5, 0xcf,
	0x68, 0x33, 0x7e, 0x15, 0x96, 0x1b, 0xd3, 0x99, 0x7d, 0xb9, 0xf7, 0x22, 0xf4, 0xb3, 0x86, 0xf9,
	0x5f, 0x4f, 0xa0, 0x55, 0xc8, 0x76, 0x2b, 0x7d, 0x2e, 0x85, 0x72, 0xb0, 0xd4, 0xaf, 0x74, 0x87,
	0x5c, 0x1a, 0xad, 0x40, 0xa6, 0xd9, 0xe5, 0x32, 0x7b, 0x1f, 0x03, 0x17, 0xaf, 0x45, 0x92, 0xb1,
	0xa1, 0xcb, 0x5d, 0xef, 0x9d, 0x74, 0xb9, 0x34, 0x01, 0xe8, 0x1d, 0x1d, 0x71, 0x99, 0xbd, 0x4f,
	0x00, 0x82, 0xda, 0x23, 0xf1, 0x34, 0xa1, 0x2d, 0xb6, 0xbb, 0x4d, 0x56, 0x56, 0x3b, 0xaa, 0x74,
	0x3a, 0xa4, 0x43, 0xcb, 0x6a, 0xd5, 0xde, 0xa0, 0xc5, 0x65, 0xf6, 0xfe, 0x96, 0x86, 0x55, 0xb7,
	0xe0, 0x85, 0xf2, 0xb0, 0xdc, 0x1d, 0x1e, 0x4b, 0x9f, 0x71, 0x29, 0xaf, 0x79, 0xc0, 0xa5, 0xbd,
	0xe6, 0xe7, 0x5c, 0xc6, 0x6b, 0x1e, 0x72, 0x59, 0xaf, 0xf9, 0x05, 0xb7, 0xe4, 0x35, 0x9f, 0x73,
	0xcb, 0x5e, 0xf3, 0x4b, 0x6e, 0xc5, 0x6b, 0xbe, 0xe0, 0x56, 0xbd, 0xe6, 0x57, 0x5c, 0x8e, 0xec,
	0x88, 0x2e, 0xf1, 0x29, 0x97, 0xf7, 0xdb, 0x9f, 0x71, 0xe0, 0xb7, 0x0f, 0xb8, 0x82, 0xdf, 0xfe,
	0x9c, 0x2b, 0xfa, 0xed, 0x43, 0xae, 0xe4, 0xb7, 0xbf, 0xe0, 0xd6, 0xfc, 0xf6, 0x73, 0x6e, 0xdd,
	0x6f, 0x7f, 0xc9, 0x71, 0x7e, 0xfb, 0x05, 0xb7, 0xe1, 0xb7, 0xbf, 0xe2, 0x90, 0xd7, 0x3e, 0xf8,
	0x94, 0xbb, 0xb3, 0xf7, 0x31, 0x14, 0xc3, 0x45, 0x3b, 0x22, 0xbc, 0x4e, 0xef, 0x84, 0xc9, 0xb3,
	0xd5, 0x6e, 0xb6, 0xb8, 0x34, 0x61, 0x1f, 0xf4, 0x9a, 0xcd, 0x4e, 0x83, 0xcb, 0xec, 0xd5, 0x61,
	0x3d, 0x56, 0x8a, 0x22, 0xb2, 0x1c, 0x76, 0x5f, 0x75, 0x89, 0xec, 0x53, 0x44, 0x1b, 0x95, 0x3e,
	0xd3, 0x81, 0x38, 0xa8, 0x70, 0x19, 0x74, 0x07, 0xd6, 0xc5, 0x41, 0x45, 0x3a, 0xaa, 0xb4, 0x3b,
	0xbd, 0xd7, 0x0d, 0x41, 0xaa, 0xf4, 0xb9, 0xec, 0x5e, 0x1d, 0x4a, 0x91, 0x8a, 0x0c, 0xda, 0x82,
	0x0d, 0xc2, 0xd5, 0xed, 0x0d, 0xa4, 0x5a, 0xaf, 0xdb, 0x6d, 0xd4, 0x06, 0x8d, 0x3a, 0x13, 0x7c,
	0xa5, 0x2f, 0x0d, 0x09, 0xe0, 0x06, 0x94, 0x08, 0x47, 0x30, 0x9a, 0xd9, 0xfb, 0x80, 0xd5, 0xe5,
	0xbc, 0xc2, 0x16, 0x2a, 0x42, 0xee, 0xa4, 0x5f, 0x39, 0x90, 0xfa, 0xe2, 0x2b, 0xb6, 0xff, 0x5e,
	0xbf, 0xd1, 0xe5, 0xd2, 0x7b, 0xff, 0x0f, 0xb8, 0xf8, 0x5b, 0x93, 0xec, 0x6f, 0x70, 0x4c, 0xcc,
	0x86, 0x83, 0x62, 0xb5, 0x22, 0xb6, 0x24, 0xb1, 0x26, 0xb4, 0xfb, 0x03, 0x91, 0x05, 0x5d, 0x92,
	0x11, 0x7a, 0x84, 0xcc, 0xc1, 0xdf, 0xf6, 0x61, 0xa5, 0x7f, 0x78, 0xd2, 0xed, 0x7f, 0x86, 0x4e,
	0xe1, 0x49, 0x13, 0xdb, 0xd7, 0xfc, 0x50, 0x02, 0x45, 0xaf, 0x36, 0x62, 0xf3, 0xbb, 0x6f, 0xf3,
	0xd3, 0x2a, 0x3e, 0x85, 0xfe, 0x92, 0x86, 0xa7, 0xec, 0xfe, 0xbe, 0x66, 0xad, 0xb7, 0xc1, 0x7d,
	0xdb, 0x4d, 0xbc, 0x86, 0xbb, 0xe1, 0xc3, 0x46, 0x7f, 0xab, 0x95, 0x74, 0xc8, 0x9b, 0xfc, 0x04,
	0x8c, 0x4f, 0xa1, 0x1f, 0xe0, 0x7e, 0xec, 0x6c, 0x51, 0xe8, 0x9b, 0xc0, 0xdc, 0x74, 0xad, 0xdf,
	0xc0, 0xae, 0x18, 0x3a, 0x43, 0xec, 0x27, 0x64, 0x4f, 0x6f, 0xf2, 0x93, 0xae, 0xdd, 0x84, 0xa3,
	0xf2, 0x29, 0xf4, 0x7b, 0xd8, 0x89, 0x9d, 0x22, 0xb8, 0x7f, 0xaf, 0xfe, 0x4d, 0xde, 0xee, 0x35,
	0xe3, 0x7c, 0x0a, 0xfd, 0x01, 0xb6, 0x49, 0xc6, 0x88, 0xe7, 0xb1, 0x7f, 0x99, 0x3c, 0x37, 0x39,
	0xdd, 0x5c, 0xb0, 0xf5, 0xdf, 0xc1, 0x6e, 0x13, 0xdb, 0x74, 0x01, 0x75, 0x7e, 0x85, 0x68, 0xe5,
	0x34, 0x52, 0x58, 0xbc, 0xc1, 0xce, 0xff, 0x3f, 0x3c, 0x70, 0x3f, 0x80, 0xfc, 0x2c, 0xf0, 0xdf,
	0x13, 0xf8, 0x09, 0xb6, 0xf1, 0x6d, 0xe0, 0x93, 0xa5, 0x21, 0xc0, 0x43, 0x0a, 0xe6, 0xe5, 0xcb,
	0x3f, 0x05, 0xe6, 0x00, 0xee, 0x75, 0x34, 0x6b, 0xa1, 0x88, 0x93, 0x9c, 0xe7, 0xd1, 0xe2, 0x45,
	0x58, 0xcd, 0x36, 0x85, 0x8e, 0xa1, 0xdc, 0xc4, 0xb6, 0xb7, 0xcf, 0xc8, 0x4b, 0x25, 0x11, 0xf2,
	0xaa, 0xc2, 0x01, 0x9f, 0x42, 0x2d, 0xb8, 0xc3, 0xb0, 0xde, 0x19, 0xe9, 0x08, 0x36, 0x9a, 0xd8,
	0x8e, 0x15, 0x1f, 0x6e, 0x81, 0xd3, 0x83, 0x0d, 0x71, 0x0e, 0xe7, 0xaa, 0x39, 0xd7, 0x01, 0xfe,
	0x1a, 0xd6, 0x9a, 0xd8, 0x0e, 0x17, 0x70, 0x92, 0x76, 0x55, 0x8e, 0xd0, 0x42, 0xdc, 0x0c, 0x41,
	0x8c, 0x22, 0x2c, 0xe4, 0x5e, 0x60, 0x0b, 0x75, 0x28, 0x1e, 0x1b, 0x8e, 0x6e, 0x0f, 0x8f, 0x45,
	0x9a, 0x35, 0x5f, 0xf3, 0xd8, 0x5e, 0x80, 0xd2, 0x07, 0x8e, 0x5a, 0xd3, 0x50, 0xac, 0x06, 0x3f,
	0x3c, 0x8b, 0x70, 0x2e, 0x2c, 0x3b, 0x2d, 0x40, 0xfc, 0x1e, 0x36, 0xfd, 0x28, 0x10, 0x46, 0xbd,
	0xca, 0xda, 0xaf, 0x11, 0xf7, 0xc0, 0x8b, 0x89, 0x3f, 0x29, 0xea, 0x2b, 0x82, 0x1a, 0xf8, 0xfc,
	0x4d, 0x51, 0x93, 0x4f, 0xdd, 0x81, 0x72, 0xc4, 0xdb, 0xdf, 0x0d, 0xad, 0x0b, 0x5b, 0x81, 0x9f,
	0x87, 0xa1, 0x6e, 0xed, 0xe1, 0x45, 0x56, 0x45, 0x75, 0x5f, 0x37, 0x0f, 0x92, 0xab, 0x9b, 0xae,
	0x9e, 0x77, 0xef, 0x2f, 0x1a, 0xb6, 0x9c, 0x89, 0x4d, 0xe1, 0xd6, 0xc3, 0x70, 0x2f, 0x8d, 0xd1,
	0x75, 0x88, 0x8b, 0xcb, 0xa9, 0x34, 0x52, 0x6e, 0xb5, 0xda, 0x75, 0x62, 0x34, 0x7e, 0x8d, 0x95,
	0x55, 0x64, 0x17, 0xcf, 0xba, 0x76, 0x8b, 0x0d, 0x40, 0xad, 0x76, 0xbd, 0x26, 0xeb, 0x0a, 0x9e,
	0x04, 0xbb, 0xbc, 0x02, 0x70, 0x91, 0x22, 0x76, 0xd8, 0xd6, 0xdc, 0x0a, 0xb4, 0xcf, 0x9f, 0xac,
	0x8a, 0x07, 0x0b, 0xf1, 0x89, 0x3a, 0xf9, 0x14, 0xaa, 0xc2, 0xb6, 0xbf, 0xad, 0xca, 0x64, 0x72,
	0x0d, 0xdc, 0xa2, 0x0c, 0x61, 0x2b, 0xb2, 0x27, 0xaf, 0x2a, 0x7e, 0xd5, 0xe9, 0xde, 0x8f, 0x0f,
	0x25, 0x56, 0xd4, 0xe9, 0x06, 0x0b, 0x47, 0xa2, 0xff, 0xc5, 0x25, 0xa6, 0xd6, 0xf8, 0x97, 0x98,
	0x05, 0x1b, 0x7c, 0x05, 0x70, 0x24, 0x7a, 0x1f, 0x7f, 0x50, 0x54, 0x53, 0xb1, 0x2f, 0x54, 0x31,
	0x89, 0xc5, 0xbf, 0x18, 0x51, 0x0d, 0x94, 0x8e, 0xc4, 0x26, 0xb6, 0xbd, 0xef, 0x24, 0x31, 0xbc,
	0xd8, 0x57, 0x96, 0x18, 0x5e, 0xfc, 0xe3, 0x0a, 0x9f, 0x42, 0x7f, 0x82, 0xad, 0x23, 0xb1, 0x66,
	0x62, 0xd9, 0xc6, 0x91, 0xef, 0x6c, 0x28, 0xf6, 0xab, 0xc1, 0x84, 0xaf, 0x7c, 0xbb, 0xfc, 0x55,
	0x2c, 0xfe, 0x0a, 0xbf, 0x86, 0x02, 0xfd, 0x72, 0xd8, 0xa1, 0x45, 0x8f, 0x98, 0x56, 0xc2, 0x9f,
	0x47, 0xe3, 0xe2, 0x23, 0x43, 0x7c, 0xea, 0xd3, 0x34, 0x6a, 0x42, 0xa1, 0xa1, 0x9c, 0xf9, 0x5f,
	0x8e, 0xae, 0x8a, 0x1f, 0x57, 0x8c, 0xf1, 0x29, 0xd4, 0x06, 0xc4, 0x02, 0x52, 0xe4, 0x87, 0x06,
	0x8b, 0x3f, 0x2d, 0xef, 0x6e, 0x27, 0x7f, 0xde, 0xe6, 0x53, 0xe8, 0x1b, 0x28, 0x36, 0xb1, 0x1d,
	0x7c, 0x16, 0x4f, 0xb2, 0xd7, 0xc5, 0xb3, 0x8f, 0x60, 0x9b, 0x89, 0xc3, 0x27, 0xd6, 0xce, 0x58,
	0xc9, 0xe4, 0xed, 0x70, 0x04, 0xd8, 0xa0, 0x41, 0xf1, 0x44, 0x3b, 0x0d, 0xce, 0xf3, 0x61, 0x8c,
	0x7d, 0xd1, 0xaf, 0x39, 0x16, 0x5e, 0x81, 0x5b, 0xfe, 0x85, 0x15, 0xc1, 0xbd, 0x4a, 0xee, 0x8b,
	0x65, 0x48, 0x11, 0xcb, 0xe1, 0xfb, 0xea, 0xc6, 0xa0, 0x8b, 0xcf, 0xdd, 0x21, 0x88, 0xc1, 0x5d,
	0x75, 0x63, 0xc4, 0xe4, 0x13, 0x1f, 0xc3, 0xdd, 0xc8, 0x65, 0xf5, 0x8e, 0x70, 0x3d, 0xa6, 0xdc,
	0x84, 0xad, 0xdd, 0xf2, 0xba, 0x92, 0xe0, 0x11, 0xdb, 0xda, 0xe2, 0x4a, 0xf0, 0x0d, 0xab, 0xca,
	0x0b, 0x76, 0x6c, 0xc0, 0x87, 0x4d, 0x6c, 0x57, 0x26, 0x93, 0xeb, 0x8b, 0xd9, 0x49, 0x47, 0xd8,
	0x8f, 0x56, 0xe2, 0xae, 0xc3, 0xe0, 0x53, 0x68, 0x02, 0x4f, 0x43, 0x29, 0xf6, 0xe2, 0xd5, 0xae,
	0x12, 0xfe, 0x0d, 0x8f, 0xcc, 0xa7, 0x90, 0xe2, 0x3e, 0x3d, 0x16, 0xaf, 0x93, 0x5c, 0x26, 0x7f,
	0x2b, 0xb7, 0xf9, 0x01, 0x78, 0xdf, 0x6d, 0x7e, 0xee, 0x03, 0xfd, 0x16, 0xde, 0x0f, 0x3b, 0xd4,
	0xed, 0x96, 0x4b, 0x3e, 0x06, 0x85, 0x0e, 0x3c, 0xeb, 0xa7, 0x84, 0xfe, 0x03, 0xbc, 0x17, 0xf8,
	0xc5, 0xdb, 0x59, 0xd8, 0x0d, 0x9c, 0x44, 0x80, 0x7b, 0x21, 0x93, 0x9a, 0xfb, 0xd3, 0xc3, 0xf5,
	0xe9, 0x49, 0x7c, 0x0a, 0x75, 0x3c, 0xf7, 0x95, 0x1d, 0x1f, 0x13, 0xf0, 0x6c, 0x22, 0x2b, 0xf1,
	0x7c, 0x20, 0xce, 0x75, 0xfd, 0x02, 0xbf, 0x87, 0xbb, 0xc9, 0x0b, 0x54, 0x54, 0xf5, 0x9d, 0xc1,
	0xff, 0xe8, 0x15, 0x80, 0xe6, 0x77, 0x3f, 0x35, 0xce, 0xdf, 0x7d, 0xf3, 0x91, 0xd7, 0x77, 0x7c,
	0xfc, 0xd6, 0x7a, 0xec, 0xc0, 0x16, 0x45, 0x9c, 0xd3, 0xe0, 0x35, 0xdb, 0x4d, 0xb6, 0xb9, 0x11,
	0xbc, 0x17, 0xf6, 0x94, 0x45, 0x7a, 0xbc, 0xca, 0x98, 0x6f, 0x20, 0xe7, 0x47, 0x57, 0xad, 0x41,
	0x54, 0xf9, 0x4e, 0xf8, 0x7d, 0xa2, 0xc7, 0xc0, 0x25, 0xe7, 0x04, 0xf3, 0xf6, 0x9e, 0xf8, 0x3d,
	0xec, 0x9c, 0xc8, 0x9a, 0x9d, 0xf4, 0xeb, 0xec, 0x6b, 0xff, 0xf8, 0xb0, 0x00, 0xb2, 0x0d, 0x77,
	0x8e, 0x34, 0x13, 0xcf, 0xfd, 0x04, 0xf5, 0xaa, 0x9f, 0xc6, 0x2f, 0x80, 0xfa, 0x06, 0x72, 0xf5,
	0x6a, 0x55, 0x56, 0xde, 0x38, 0xb3, 0x5b, 0x9c, 0xed, 0x5b, 0xc8, 0xd7, 0xab, 0x02, 0xb6, 0x88,
	0xac, 0x6e, 0x95, 0x0b, 0x6c, 0x06, 0x46, 0xed, 0xbf, 0x19, 0x6e, 0x6d, 0xcd, 0x91, 0x97, 0x6b,
	0xf0, 0xe3, 0xeb, 0x77, 0xf0, 0x8e, 0x3b, 0x01, 0x9e, 0x27, 0xa5, 0xdb, 0xa2, 0x8d, 0x56, 0xe8,
	0x7f, 0xa8, 0x3f, 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xef, 0x93, 0x7d, 0xae, 0x51, 0x3d,
	0x00, 0x00,
}
