mirror of
https://github.com/RoganDawes/P4wnP1_aloa.git
synced 2025-03-17 13:21:50 +01:00
WebCLient,proto,server: Reworked TriggerAction GroupSequence to multi group (support for logical AND+OR)
This commit is contained in:
parent
d50c854419
commit
2f08ed92f5
@ -24,7 +24,7 @@
|
||||
TriggerSSHLogin
|
||||
TriggerDHCPLeaseGranted
|
||||
TriggerGroupReceive
|
||||
TriggerGroupReceiveSequence
|
||||
TriggerGroupReceiveMulti
|
||||
TriggerGPIOIn
|
||||
ActionStartBashScript
|
||||
ActionStartHIDScript
|
||||
@ -103,6 +103,32 @@ func (x BluetoothNetworkServiceType) String() string {
|
||||
return BluetoothNetworkServiceType_name[int(x)]
|
||||
}
|
||||
|
||||
type GroupReceiveMultiType int
|
||||
|
||||
const (
|
||||
GroupReceiveMultiType_SEQUENCE GroupReceiveMultiType = 0
|
||||
GroupReceiveMultiType_AND GroupReceiveMultiType = 1
|
||||
GroupReceiveMultiType_OR GroupReceiveMultiType = 2
|
||||
GroupReceiveMultiType_EXACT_SEQUENCE GroupReceiveMultiType = 3
|
||||
)
|
||||
|
||||
var GroupReceiveMultiType_name = map[int]string{
|
||||
0: "SEQUENCE",
|
||||
1: "AND",
|
||||
2: "OR",
|
||||
3: "EXACT_SEQUENCE",
|
||||
}
|
||||
var GroupReceiveMultiType_value = map[string]int{
|
||||
"SEQUENCE": 0,
|
||||
"AND": 1,
|
||||
"OR": 2,
|
||||
"EXACT_SEQUENCE": 3,
|
||||
}
|
||||
|
||||
func (x GroupReceiveMultiType) String() string {
|
||||
return GroupReceiveMultiType_name[int(x)]
|
||||
}
|
||||
|
||||
type GPIOInPullUpDown int
|
||||
|
||||
const (
|
||||
@ -1373,7 +1399,7 @@ type TriggerAction struct {
|
||||
// *TriggerAction_SshLogin
|
||||
// *TriggerAction_DhcpLeaseGranted
|
||||
// *TriggerAction_GroupReceive
|
||||
// *TriggerAction_GroupReceiveSequence
|
||||
// *TriggerAction_GroupReceiveMulti
|
||||
// *TriggerAction_GpioIn
|
||||
Trigger isTriggerAction_Trigger
|
||||
// Types that are valid to be assigned to Action:
|
||||
@ -1432,9 +1458,9 @@ type TriggerAction_GroupReceive struct {
|
||||
GroupReceive *TriggerGroupReceive
|
||||
}
|
||||
|
||||
// TriggerAction_GroupReceiveSequence is assignable to Trigger
|
||||
type TriggerAction_GroupReceiveSequence struct {
|
||||
GroupReceiveSequence *TriggerGroupReceiveSequence
|
||||
// TriggerAction_GroupReceiveMulti is assignable to Trigger
|
||||
type TriggerAction_GroupReceiveMulti struct {
|
||||
GroupReceiveMulti *TriggerGroupReceiveMulti
|
||||
}
|
||||
|
||||
// TriggerAction_GpioIn is assignable to Trigger
|
||||
@ -1480,7 +1506,7 @@ 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_GroupReceiveMulti) isTriggerAction_Trigger() {}
|
||||
func (*TriggerAction_GpioIn) isTriggerAction_Trigger() {}
|
||||
func (*TriggerAction_BashScript) isTriggerAction_Action() {}
|
||||
func (*TriggerAction_HidScript) isTriggerAction_Action() {}
|
||||
@ -1601,10 +1627,10 @@ func (m *TriggerAction) GetGroupReceive() (x *TriggerGroupReceive) {
|
||||
return x
|
||||
}
|
||||
|
||||
// GetGroupReceiveSequence gets the GroupReceiveSequence of the TriggerAction.
|
||||
func (m *TriggerAction) GetGroupReceiveSequence() (x *TriggerGroupReceiveSequence) {
|
||||
if v, ok := m.GetTrigger().(*TriggerAction_GroupReceiveSequence); ok {
|
||||
return v.GroupReceiveSequence
|
||||
// GetGroupReceiveMulti gets the GroupReceiveMulti of the TriggerAction.
|
||||
func (m *TriggerAction) GetGroupReceiveMulti() (x *TriggerGroupReceiveMulti) {
|
||||
if v, ok := m.GetTrigger().(*TriggerAction_GroupReceiveMulti); ok {
|
||||
return v.GroupReceiveMulti
|
||||
}
|
||||
return x
|
||||
}
|
||||
@ -1720,10 +1746,10 @@ func (m *TriggerAction) MarshalToWriter(writer jspb.Writer) {
|
||||
t.GroupReceive.MarshalToWriter(writer)
|
||||
})
|
||||
}
|
||||
case *TriggerAction_GroupReceiveSequence:
|
||||
if t.GroupReceiveSequence != nil {
|
||||
case *TriggerAction_GroupReceiveMulti:
|
||||
if t.GroupReceiveMulti != nil {
|
||||
writer.WriteMessage(13, func() {
|
||||
t.GroupReceiveSequence.MarshalToWriter(writer)
|
||||
t.GroupReceiveMulti.MarshalToWriter(writer)
|
||||
})
|
||||
}
|
||||
case *TriggerAction_GpioIn:
|
||||
@ -1865,8 +1891,8 @@ func (m *TriggerAction) UnmarshalFromReader(reader jspb.Reader) *TriggerAction {
|
||||
})
|
||||
case 13:
|
||||
reader.ReadMessage(func() {
|
||||
m.Trigger = &TriggerAction_GroupReceiveSequence{
|
||||
GroupReceiveSequence: new(TriggerGroupReceiveSequence).UnmarshalFromReader(reader),
|
||||
m.Trigger = &TriggerAction_GroupReceiveMulti{
|
||||
GroupReceiveMulti: new(TriggerGroupReceiveMulti).UnmarshalFromReader(reader),
|
||||
}
|
||||
})
|
||||
case 14:
|
||||
@ -2361,38 +2387,38 @@ func (m *TriggerGroupReceive) Unmarshal(rawBytes []byte) (*TriggerGroupReceive,
|
||||
return m, nil
|
||||
}
|
||||
|
||||
type TriggerGroupReceiveSequence struct {
|
||||
GroupName string
|
||||
IgnoreOutOfOrder bool
|
||||
Values []int32
|
||||
type TriggerGroupReceiveMulti struct {
|
||||
GroupName string
|
||||
Values []int32
|
||||
Type GroupReceiveMultiType
|
||||
}
|
||||
|
||||
// GetGroupName gets the GroupName of the TriggerGroupReceiveSequence.
|
||||
func (m *TriggerGroupReceiveSequence) GetGroupName() (x string) {
|
||||
// GetGroupName gets the GroupName of the TriggerGroupReceiveMulti.
|
||||
func (m *TriggerGroupReceiveMulti) GetGroupName() (x string) {
|
||||
if m == nil {
|
||||
return x
|
||||
}
|
||||
return m.GroupName
|
||||
}
|
||||
|
||||
// GetIgnoreOutOfOrder gets the IgnoreOutOfOrder of the TriggerGroupReceiveSequence.
|
||||
func (m *TriggerGroupReceiveSequence) GetIgnoreOutOfOrder() (x bool) {
|
||||
if m == nil {
|
||||
return x
|
||||
}
|
||||
return m.IgnoreOutOfOrder
|
||||
}
|
||||
|
||||
// GetValues gets the Values of the TriggerGroupReceiveSequence.
|
||||
func (m *TriggerGroupReceiveSequence) GetValues() (x []int32) {
|
||||
// GetValues gets the Values of the TriggerGroupReceiveMulti.
|
||||
func (m *TriggerGroupReceiveMulti) GetValues() (x []int32) {
|
||||
if m == nil {
|
||||
return x
|
||||
}
|
||||
return m.Values
|
||||
}
|
||||
|
||||
// MarshalToWriter marshals TriggerGroupReceiveSequence to the provided writer.
|
||||
func (m *TriggerGroupReceiveSequence) MarshalToWriter(writer jspb.Writer) {
|
||||
// GetType gets the Type of the TriggerGroupReceiveMulti.
|
||||
func (m *TriggerGroupReceiveMulti) GetType() (x GroupReceiveMultiType) {
|
||||
if m == nil {
|
||||
return x
|
||||
}
|
||||
return m.Type
|
||||
}
|
||||
|
||||
// MarshalToWriter marshals TriggerGroupReceiveMulti to the provided writer.
|
||||
func (m *TriggerGroupReceiveMulti) MarshalToWriter(writer jspb.Writer) {
|
||||
if m == nil {
|
||||
return
|
||||
}
|
||||
@ -2401,38 +2427,38 @@ func (m *TriggerGroupReceiveSequence) MarshalToWriter(writer jspb.Writer) {
|
||||
writer.WriteString(1, m.GroupName)
|
||||
}
|
||||
|
||||
if m.IgnoreOutOfOrder {
|
||||
writer.WriteBool(2, m.IgnoreOutOfOrder)
|
||||
}
|
||||
|
||||
if len(m.Values) > 0 {
|
||||
writer.WriteInt32Slice(3, m.Values)
|
||||
}
|
||||
|
||||
if int(m.Type) != 0 {
|
||||
writer.WriteEnum(4, int(m.Type))
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// Marshal marshals TriggerGroupReceiveSequence to a slice of bytes.
|
||||
func (m *TriggerGroupReceiveSequence) Marshal() []byte {
|
||||
// Marshal marshals TriggerGroupReceiveMulti to a slice of bytes.
|
||||
func (m *TriggerGroupReceiveMulti) Marshal() []byte {
|
||||
writer := jspb.NewWriter()
|
||||
m.MarshalToWriter(writer)
|
||||
return writer.GetResult()
|
||||
}
|
||||
|
||||
// UnmarshalFromReader unmarshals a TriggerGroupReceiveSequence from the provided reader.
|
||||
func (m *TriggerGroupReceiveSequence) UnmarshalFromReader(reader jspb.Reader) *TriggerGroupReceiveSequence {
|
||||
// UnmarshalFromReader unmarshals a TriggerGroupReceiveMulti from the provided reader.
|
||||
func (m *TriggerGroupReceiveMulti) UnmarshalFromReader(reader jspb.Reader) *TriggerGroupReceiveMulti {
|
||||
for reader.Next() {
|
||||
if m == nil {
|
||||
m = &TriggerGroupReceiveSequence{}
|
||||
m = &TriggerGroupReceiveMulti{}
|
||||
}
|
||||
|
||||
switch reader.GetFieldNumber() {
|
||||
case 1:
|
||||
m.GroupName = reader.ReadString()
|
||||
case 2:
|
||||
m.IgnoreOutOfOrder = reader.ReadBool()
|
||||
case 3:
|
||||
m.Values = reader.ReadInt32Slice()
|
||||
case 4:
|
||||
m.Type = GroupReceiveMultiType(reader.ReadEnum())
|
||||
default:
|
||||
reader.SkipField()
|
||||
}
|
||||
@ -2441,8 +2467,8 @@ func (m *TriggerGroupReceiveSequence) UnmarshalFromReader(reader jspb.Reader) *T
|
||||
return m
|
||||
}
|
||||
|
||||
// Unmarshal unmarshals a TriggerGroupReceiveSequence from a slice of bytes.
|
||||
func (m *TriggerGroupReceiveSequence) Unmarshal(rawBytes []byte) (*TriggerGroupReceiveSequence, error) {
|
||||
// Unmarshal unmarshals a TriggerGroupReceiveMulti from a slice of bytes.
|
||||
func (m *TriggerGroupReceiveMulti) Unmarshal(rawBytes []byte) (*TriggerGroupReceiveMulti, error) {
|
||||
reader := jspb.NewReader(rawBytes)
|
||||
|
||||
m = m.UnmarshalFromReader(reader)
|
||||
|
711
proto/grpc.pb.go
711
proto/grpc.pb.go
@ -24,7 +24,7 @@ It has these top-level messages:
|
||||
TriggerSSHLogin
|
||||
TriggerDHCPLeaseGranted
|
||||
TriggerGroupReceive
|
||||
TriggerGroupReceiveSequence
|
||||
TriggerGroupReceiveMulti
|
||||
TriggerGPIOIn
|
||||
ActionStartBashScript
|
||||
ActionStartHIDScript
|
||||
@ -112,6 +112,33 @@ func (x BluetoothNetworkServiceType) String() string {
|
||||
}
|
||||
func (BluetoothNetworkServiceType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
|
||||
|
||||
type GroupReceiveMultiType int32
|
||||
|
||||
const (
|
||||
GroupReceiveMultiType_SEQUENCE GroupReceiveMultiType = 0
|
||||
GroupReceiveMultiType_AND GroupReceiveMultiType = 1
|
||||
GroupReceiveMultiType_OR GroupReceiveMultiType = 2
|
||||
GroupReceiveMultiType_EXACT_SEQUENCE GroupReceiveMultiType = 3
|
||||
)
|
||||
|
||||
var GroupReceiveMultiType_name = map[int32]string{
|
||||
0: "SEQUENCE",
|
||||
1: "AND",
|
||||
2: "OR",
|
||||
3: "EXACT_SEQUENCE",
|
||||
}
|
||||
var GroupReceiveMultiType_value = map[string]int32{
|
||||
"SEQUENCE": 0,
|
||||
"AND": 1,
|
||||
"OR": 2,
|
||||
"EXACT_SEQUENCE": 3,
|
||||
}
|
||||
|
||||
func (x GroupReceiveMultiType) String() string {
|
||||
return proto.EnumName(GroupReceiveMultiType_name, int32(x))
|
||||
}
|
||||
func (GroupReceiveMultiType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
|
||||
|
||||
type GPIOInPullUpDown int32
|
||||
|
||||
const (
|
||||
@ -134,7 +161,7 @@ var GPIOInPullUpDown_value = map[string]int32{
|
||||
func (x GPIOInPullUpDown) String() string {
|
||||
return proto.EnumName(GPIOInPullUpDown_name, int32(x))
|
||||
}
|
||||
func (GPIOInPullUpDown) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
|
||||
func (GPIOInPullUpDown) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
|
||||
|
||||
type GPIOInEdge int32
|
||||
|
||||
@ -158,7 +185,7 @@ var GPIOInEdge_value = map[string]int32{
|
||||
func (x GPIOInEdge) String() string {
|
||||
return proto.EnumName(GPIOInEdge_name, int32(x))
|
||||
}
|
||||
func (GPIOInEdge) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
|
||||
func (GPIOInEdge) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
|
||||
|
||||
type GPIONum int32
|
||||
|
||||
@ -233,7 +260,7 @@ var GPIONum_value = map[string]int32{
|
||||
func (x GPIONum) String() string {
|
||||
return proto.EnumName(GPIONum_name, int32(x))
|
||||
}
|
||||
func (GPIONum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
|
||||
func (GPIONum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
|
||||
|
||||
type GPIOOutValue int32
|
||||
|
||||
@ -257,7 +284,7 @@ var GPIOOutValue_value = map[string]int32{
|
||||
func (x GPIOOutValue) String() string {
|
||||
return proto.EnumName(GPIOOutValue_name, int32(x))
|
||||
}
|
||||
func (GPIOOutValue) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
|
||||
func (GPIOOutValue) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
|
||||
|
||||
// WiFi2 (distinguish state and settings)
|
||||
type WiFiWorkingMode int32
|
||||
@ -285,7 +312,7 @@ var WiFiWorkingMode_value = map[string]int32{
|
||||
func (x WiFiWorkingMode) String() string {
|
||||
return proto.EnumName(WiFiWorkingMode_name, int32(x))
|
||||
}
|
||||
func (WiFiWorkingMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
|
||||
func (WiFiWorkingMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
|
||||
|
||||
type WiFiStateMode int32
|
||||
|
||||
@ -309,7 +336,7 @@ var WiFiStateMode_value = map[string]int32{
|
||||
func (x WiFiStateMode) String() string {
|
||||
return proto.EnumName(WiFiStateMode_name, int32(x))
|
||||
}
|
||||
func (WiFiStateMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
|
||||
func (WiFiStateMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
|
||||
|
||||
type WiFiAuthMode int32
|
||||
|
||||
@ -330,7 +357,7 @@ var WiFiAuthMode_value = map[string]int32{
|
||||
func (x WiFiAuthMode) String() string {
|
||||
return proto.EnumName(WiFiAuthMode_name, int32(x))
|
||||
}
|
||||
func (WiFiAuthMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
|
||||
func (WiFiAuthMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
|
||||
|
||||
type AccessibleFolder int32
|
||||
|
||||
@ -354,7 +381,7 @@ var AccessibleFolder_value = map[string]int32{
|
||||
func (x AccessibleFolder) String() string {
|
||||
return proto.EnumName(AccessibleFolder_name, int32(x))
|
||||
}
|
||||
func (AccessibleFolder) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
|
||||
func (AccessibleFolder) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
|
||||
|
||||
type ActionDeploySettingsTemplate_TemplateType int32
|
||||
|
||||
@ -812,7 +839,7 @@ type TriggerAction struct {
|
||||
// *TriggerAction_SshLogin
|
||||
// *TriggerAction_DhcpLeaseGranted
|
||||
// *TriggerAction_GroupReceive
|
||||
// *TriggerAction_GroupReceiveSequence
|
||||
// *TriggerAction_GroupReceiveMulti
|
||||
// *TriggerAction_GpioIn
|
||||
Trigger isTriggerAction_Trigger `protobuf_oneof:"Trigger"`
|
||||
// Types that are valid to be assigned to Action:
|
||||
@ -861,8 +888,8 @@ type TriggerAction_DhcpLeaseGranted struct {
|
||||
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_GroupReceiveMulti struct {
|
||||
GroupReceiveMulti *TriggerGroupReceiveMulti `protobuf:"bytes,13,opt,name=groupReceiveMulti,oneof"`
|
||||
}
|
||||
type TriggerAction_GpioIn struct {
|
||||
GpioIn *TriggerGPIOIn `protobuf:"bytes,14,opt,name=gpioIn,oneof"`
|
||||
@ -894,7 +921,7 @@ 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_GroupReceiveMulti) isTriggerAction_Trigger() {}
|
||||
func (*TriggerAction_GpioIn) isTriggerAction_Trigger() {}
|
||||
func (*TriggerAction_BashScript) isTriggerAction_Action() {}
|
||||
func (*TriggerAction_HidScript) isTriggerAction_Action() {}
|
||||
@ -1000,9 +1027,9 @@ func (m *TriggerAction) GetGroupReceive() *TriggerGroupReceive {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *TriggerAction) GetGroupReceiveSequence() *TriggerGroupReceiveSequence {
|
||||
if x, ok := m.GetTrigger().(*TriggerAction_GroupReceiveSequence); ok {
|
||||
return x.GroupReceiveSequence
|
||||
func (m *TriggerAction) GetGroupReceiveMulti() *TriggerGroupReceiveMulti {
|
||||
if x, ok := m.GetTrigger().(*TriggerAction_GroupReceiveMulti); ok {
|
||||
return x.GroupReceiveMulti
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -1067,7 +1094,7 @@ func (*TriggerAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer)
|
||||
(*TriggerAction_SshLogin)(nil),
|
||||
(*TriggerAction_DhcpLeaseGranted)(nil),
|
||||
(*TriggerAction_GroupReceive)(nil),
|
||||
(*TriggerAction_GroupReceiveSequence)(nil),
|
||||
(*TriggerAction_GroupReceiveMulti)(nil),
|
||||
(*TriggerAction_GpioIn)(nil),
|
||||
(*TriggerAction_BashScript)(nil),
|
||||
(*TriggerAction_HidScript)(nil),
|
||||
@ -1122,9 +1149,9 @@ func _TriggerAction_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
|
||||
if err := b.EncodeMessage(x.GroupReceive); err != nil {
|
||||
return err
|
||||
}
|
||||
case *TriggerAction_GroupReceiveSequence:
|
||||
case *TriggerAction_GroupReceiveMulti:
|
||||
b.EncodeVarint(13<<3 | proto.WireBytes)
|
||||
if err := b.EncodeMessage(x.GroupReceiveSequence); err != nil {
|
||||
if err := b.EncodeMessage(x.GroupReceiveMulti); err != nil {
|
||||
return err
|
||||
}
|
||||
case *TriggerAction_GpioIn:
|
||||
@ -1242,13 +1269,13 @@ func _TriggerAction_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.
|
||||
err := b.DecodeMessage(msg)
|
||||
m.Trigger = &TriggerAction_GroupReceive{msg}
|
||||
return true, err
|
||||
case 13: // Trigger.groupReceiveSequence
|
||||
case 13: // Trigger.groupReceiveMulti
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
msg := new(TriggerGroupReceiveSequence)
|
||||
msg := new(TriggerGroupReceiveMulti)
|
||||
err := b.DecodeMessage(msg)
|
||||
m.Trigger = &TriggerAction_GroupReceiveSequence{msg}
|
||||
m.Trigger = &TriggerAction_GroupReceiveMulti{msg}
|
||||
return true, err
|
||||
case 14: // Trigger.gpioIn
|
||||
if wire != proto.WireBytes {
|
||||
@ -1355,8 +1382,8 @@ func _TriggerAction_OneofSizer(msg proto.Message) (n int) {
|
||||
n += proto.SizeVarint(12<<3 | proto.WireBytes)
|
||||
n += proto.SizeVarint(uint64(s))
|
||||
n += s
|
||||
case *TriggerAction_GroupReceiveSequence:
|
||||
s := proto.Size(x.GroupReceiveSequence)
|
||||
case *TriggerAction_GroupReceiveMulti:
|
||||
s := proto.Size(x.GroupReceiveMulti)
|
||||
n += proto.SizeVarint(13<<3 | proto.WireBytes)
|
||||
n += proto.SizeVarint(uint64(s))
|
||||
n += s
|
||||
@ -1496,38 +1523,38 @@ func (m *TriggerGroupReceive) GetValue() int32 {
|
||||
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"`
|
||||
type TriggerGroupReceiveMulti struct {
|
||||
GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"`
|
||||
Values []int32 `protobuf:"varint,3,rep,packed,name=values" json:"values,omitempty"`
|
||||
Type GroupReceiveMultiType `protobuf:"varint,4,opt,name=type,enum=P4wnP1_grpc.GroupReceiveMultiType" json:"type,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 *TriggerGroupReceiveMulti) Reset() { *m = TriggerGroupReceiveMulti{} }
|
||||
func (m *TriggerGroupReceiveMulti) String() string { return proto.CompactTextString(m) }
|
||||
func (*TriggerGroupReceiveMulti) ProtoMessage() {}
|
||||
func (*TriggerGroupReceiveMulti) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
|
||||
|
||||
func (m *TriggerGroupReceiveSequence) GetGroupName() string {
|
||||
func (m *TriggerGroupReceiveMulti) 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 {
|
||||
func (m *TriggerGroupReceiveMulti) GetValues() []int32 {
|
||||
if m != nil {
|
||||
return m.Values
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *TriggerGroupReceiveMulti) GetType() GroupReceiveMultiType {
|
||||
if m != nil {
|
||||
return m.Type
|
||||
}
|
||||
return GroupReceiveMultiType_SEQUENCE
|
||||
}
|
||||
|
||||
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"`
|
||||
@ -2934,7 +2961,7 @@ func init() {
|
||||
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((*TriggerGroupReceiveMulti)(nil), "P4wnP1_grpc.TriggerGroupReceiveMulti")
|
||||
proto.RegisterType((*TriggerGPIOIn)(nil), "P4wnP1_grpc.TriggerGPIOIn")
|
||||
proto.RegisterType((*ActionStartBashScript)(nil), "P4wnP1_grpc.ActionStartBashScript")
|
||||
proto.RegisterType((*ActionStartHIDScript)(nil), "P4wnP1_grpc.ActionStartHIDScript")
|
||||
@ -2976,6 +3003,7 @@ func init() {
|
||||
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.GroupReceiveMultiType", GroupReceiveMultiType_name, GroupReceiveMultiType_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)
|
||||
@ -5423,303 +5451,304 @@ var _P4WNP1_serviceDesc = grpc.ServiceDesc{
|
||||
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,
|
||||
// 4783 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x5b, 0x49, 0x73, 0x23, 0x47,
|
||||
0x76, 0xc6, 0xc2, 0x05, 0x78, 0x00, 0xc8, 0x62, 0x76, 0x93, 0x44, 0xb3, 0xf7, 0x9a, 0x96, 0xd4,
|
||||
0x43, 0x8d, 0x28, 0x89, 0x6a, 0xb5, 0x5a, 0x1a, 0xc9, 0x1a, 0x6c, 0x04, 0xd0, 0x0d, 0x02, 0x50,
|
||||
0x16, 0xd0, 0xd4, 0x2c, 0x76, 0x4d, 0xb1, 0x2a, 0x09, 0x96, 0x1a, 0xa8, 0x82, 0x6b, 0x21, 0x45,
|
||||
0x1f, 0x26, 0xc2, 0x13, 0xe1, 0x88, 0x39, 0xf8, 0xee, 0x5f, 0x61, 0xdf, 0x1c, 0xfe, 0x4d, 0xbe,
|
||||
0x4c, 0xcc, 0xc5, 0x17, 0x5f, 0xec, 0xc8, 0xcc, 0x5a, 0x81, 0x02, 0xc9, 0x66, 0x4b, 0xb7, 0xcc,
|
||||
0x97, 0x2f, 0xbf, 0xcc, 0x7c, 0x5b, 0xbe, 0x7c, 0x05, 0x00, 0x8c, 0xac, 0xa9, 0xba, 0x37, 0xb5,
|
||||
0x4c, 0xc7, 0x44, 0x85, 0xfe, 0xb3, 0x73, 0xa3, 0xff, 0xa9, 0x4c, 0x49, 0xe2, 0x3f, 0xa7, 0xe1,
|
||||
0x61, 0x75, 0xec, 0x12, 0xc7, 0x34, 0x9d, 0x53, 0x4c, 0xfe, 0xd1, 0x25, 0xb6, 0x23, 0x11, 0xc7,
|
||||
0xd1, 0x8d, 0x91, 0x2d, 0x39, 0xa6, 0xa5, 0x8c, 0x08, 0x12, 0xa1, 0x38, 0x20, 0x93, 0xe9, 0x58,
|
||||
0x71, 0x48, 0x57, 0x99, 0x90, 0x72, 0xfa, 0x51, 0xfa, 0x69, 0x1e, 0xc7, 0x68, 0xe8, 0x2b, 0xc8,
|
||||
0xd9, 0xde, 0xb4, 0x72, 0xe6, 0x51, 0xfa, 0x69, 0x61, 0xff, 0xc1, 0x5e, 0x64, 0x9d, 0xbd, 0x60,
|
||||
0x0d, 0x1f, 0x1c, 0x07, 0xfc, 0xe2, 0xbf, 0xa4, 0x61, 0x63, 0x6e, 0x1c, 0xfd, 0x1a, 0x32, 0xaa,
|
||||
0xce, 0xd6, 0x2a, 0xec, 0x7f, 0x98, 0x8c, 0x55, 0x33, 0x0d, 0xc7, 0x32, 0xc7, 0x63, 0x62, 0xb5,
|
||||
0x8d, 0x13, 0xd3, 0x9a, 0x28, 0x8e, 0x6e, 0x1a, 0x38, 0xa3, 0xea, 0xe8, 0x33, 0xc8, 0x28, 0xfe,
|
||||
0x46, 0x7e, 0x91, 0x3c, 0xb9, 0x32, 0x22, 0x46, 0x70, 0x54, 0x9c, 0x51, 0x6c, 0x71, 0x17, 0xb6,
|
||||
0x92, 0x47, 0x91, 0x00, 0xd9, 0xa9, 0x6e, 0x78, 0x07, 0xa7, 0x4d, 0xf1, 0x7f, 0xd3, 0xb0, 0x1d,
|
||||
0x30, 0x77, 0x89, 0x73, 0x6e, 0x5a, 0x6f, 0x24, 0x62, 0x9d, 0xe9, 0x2a, 0x41, 0xcf, 0x60, 0xcb,
|
||||
0x22, 0x23, 0xdd, 0x76, 0x88, 0x25, 0x9b, 0x96, 0xec, 0x1a, 0x7e, 0x8f, 0x01, 0xe4, 0xf0, 0x6d,
|
||||
0xbf, 0xdf, 0xb3, 0x86, 0xc1, 0x18, 0xda, 0x85, 0x0d, 0x9b, 0x58, 0x67, 0x7c, 0x8e, 0x6a, 0x1a,
|
||||
0x06, 0x51, 0x1d, 0x76, 0x82, 0x1c, 0x5e, 0xe7, 0x03, 0x3d, 0xab, 0xc6, 0xc9, 0xe8, 0x6b, 0x58,
|
||||
0x72, 0x2e, 0xa6, 0xa4, 0x9c, 0x7d, 0x94, 0x7e, 0xba, 0xb6, 0xff, 0x34, 0xf9, 0x80, 0xf1, 0x5d,
|
||||
0x0d, 0x2e, 0xa6, 0x04, 0xb3, 0x59, 0xe8, 0x01, 0x14, 0x26, 0x8a, 0x4a, 0x97, 0x31, 0xa8, 0x3a,
|
||||
0x97, 0xd8, 0xa9, 0xf2, 0x13, 0x45, 0xed, 0x59, 0x4c, 0x97, 0x0f, 0xa1, 0x70, 0x6c, 0xe9, 0xda,
|
||||
0x88, 0xf0, 0xf1, 0x65, 0x36, 0x0e, 0x9c, 0x44, 0x19, 0xc4, 0xff, 0x5e, 0x82, 0xbb, 0x09, 0x4a,
|
||||
0x08, 0xc4, 0x55, 0x86, 0xd5, 0xa9, 0x79, 0x4e, 0x2c, 0xa2, 0x79, 0x27, 0xf6, 0xbb, 0xe8, 0x11,
|
||||
0x14, 0xbc, 0xa3, 0x29, 0xc7, 0x63, 0xe2, 0x1d, 0x2f, 0x4a, 0x42, 0xbf, 0x04, 0xe1, 0x44, 0xb1,
|
||||
0x1d, 0x39, 0xca, 0x96, 0xe5, 0x52, 0xa0, 0xf4, 0x5a, 0x84, 0x55, 0x84, 0xa2, 0xa6, 0xdb, 0xaa,
|
||||
0x79, 0x46, 0x2c, 0xc6, 0xb6, 0xc4, 0xd8, 0x62, 0x34, 0xb4, 0x03, 0xb9, 0x63, 0xd3, 0xd0, 0xd8,
|
||||
0xf8, 0x32, 0x1b, 0x0f, 0xfa, 0x68, 0x0f, 0x6e, 0x8d, 0x75, 0xe3, 0x8d, 0x3c, 0x26, 0x67, 0x64,
|
||||
0x2c, 0xdb, 0x44, 0x75, 0x2d, 0xdd, 0xb9, 0x28, 0xaf, 0x30, 0xb6, 0x0d, 0x3a, 0xd4, 0xa1, 0x23,
|
||||
0x92, 0x37, 0x80, 0xf6, 0x61, 0x93, 0x31, 0x11, 0xd9, 0xd6, 0x27, 0xd3, 0x31, 0x91, 0xa7, 0x8a,
|
||||
0x6e, 0xe9, 0xc6, 0xa8, 0xbc, 0xca, 0x66, 0xdc, 0xe2, 0x83, 0x12, 0x1b, 0xeb, 0xf3, 0x21, 0xb4,
|
||||
0x09, 0x2b, 0xc7, 0x96, 0x4c, 0x34, 0xab, 0x9c, 0x63, 0x4c, 0xcb, 0xc7, 0x56, 0x43, 0xb3, 0xd0,
|
||||
0x7d, 0x80, 0x53, 0x7d, 0x74, 0x2a, 0xdb, 0x53, 0x42, 0xb4, 0x72, 0x9e, 0x0d, 0xe5, 0x29, 0x45,
|
||||
0xa2, 0x04, 0x3a, 0x3c, 0x36, 0xcf, 0x65, 0x62, 0x10, 0x6b, 0x74, 0x51, 0x06, 0x3e, 0x3c, 0x36,
|
||||
0xcf, 0x1b, 0x8c, 0x40, 0xa5, 0xa8, 0x68, 0x67, 0xc4, 0x72, 0x74, 0x9b, 0x2e, 0x5f, 0xe0, 0x52,
|
||||
0x8c, 0x90, 0xd0, 0x47, 0x80, 0xbc, 0xad, 0x7a, 0x72, 0xd4, 0x4d, 0xc3, 0x2e, 0x17, 0xf9, 0xc9,
|
||||
0xf8, 0x48, 0x2d, 0x1c, 0xa0, 0xeb, 0x69, 0xe4, 0xd8, 0x1d, 0xc9, 0x6f, 0xc8, 0x85, 0x5d, 0x2e,
|
||||
0xf1, 0xf5, 0x18, 0xe5, 0x15, 0xb9, 0xe0, 0xfa, 0xb4, 0xf4, 0x33, 0x45, 0xbd, 0x28, 0xaf, 0x79,
|
||||
0xfa, 0xe4, 0x5d, 0xf4, 0x25, 0x94, 0xd5, 0x40, 0xff, 0x74, 0xad, 0x13, 0x7d, 0xe4, 0x5a, 0xcc,
|
||||
0x0f, 0xcb, 0xeb, 0x8c, 0x75, 0x3b, 0x1c, 0xaf, 0x45, 0x87, 0xd1, 0x7b, 0xb0, 0x66, 0x3b, 0x8a,
|
||||
0xa3, 0xab, 0xb2, 0xa2, 0x69, 0x16, 0xb1, 0xed, 0xb2, 0xc0, 0x26, 0x94, 0x38, 0xb5, 0xc2, 0x89,
|
||||
0xe2, 0x5f, 0x97, 0xe0, 0xc1, 0xe5, 0x0e, 0x4f, 0xb7, 0xe7, 0x43, 0x50, 0x73, 0x2b, 0x62, 0xbf,
|
||||
0x8b, 0x3e, 0x84, 0x8d, 0x63, 0x7f, 0xae, 0x7c, 0x46, 0x2c, 0x9b, 0xee, 0x8b, 0x1a, 0x5d, 0x09,
|
||||
0x0b, 0xc1, 0xc0, 0x6b, 0x4e, 0xa7, 0xe6, 0x34, 0x51, 0x0c, 0xf7, 0x44, 0x51, 0x1d, 0xd7, 0x22,
|
||||
0x16, 0xb3, 0xba, 0x12, 0x8e, 0xd1, 0xd0, 0x11, 0x20, 0xdb, 0x9d, 0x4e, 0x4d, 0xcb, 0x21, 0x9a,
|
||||
0x1c, 0x04, 0xbc, 0x25, 0x16, 0x67, 0x9e, 0x5e, 0x15, 0xa4, 0x82, 0x60, 0xb3, 0x11, 0x60, 0x04,
|
||||
0x2e, 0x23, 0x81, 0xa0, 0xba, 0x96, 0x45, 0x0c, 0x27, 0x84, 0x5d, 0x7e, 0x4b, 0xd8, 0x75, 0x0f,
|
||||
0x21, 0x00, 0x7d, 0x1f, 0xd6, 0xd5, 0xb1, 0x62, 0xdb, 0xb2, 0x79, 0x22, 0x6b, 0x84, 0x46, 0x01,
|
||||
0x66, 0xdc, 0x45, 0x5c, 0x62, 0xe4, 0xde, 0x49, 0x9d, 0x11, 0x11, 0x82, 0x25, 0xe6, 0xe9, 0xab,
|
||||
0xcc, 0xd3, 0x59, 0x9b, 0x9a, 0x84, 0x7d, 0x6a, 0x5a, 0x0e, 0x8f, 0x01, 0x39, 0x1e, 0x23, 0x18,
|
||||
0x85, 0xc5, 0x88, 0xc7, 0x50, 0xd4, 0x6d, 0x59, 0x39, 0x53, 0xf4, 0x31, 0xf3, 0x2d, 0x6e, 0xc2,
|
||||
0x05, 0xdd, 0xae, 0xf8, 0x24, 0xf4, 0x6b, 0xd8, 0xb1, 0x79, 0xec, 0x91, 0x0d, 0x1e, 0x8a, 0x64,
|
||||
0x2f, 0xc0, 0x19, 0xca, 0xd4, 0x33, 0xea, 0x6d, 0x8f, 0x23, 0x12, 0xab, 0x88, 0xd5, 0x55, 0xa6,
|
||||
0xe8, 0x1b, 0xb8, 0xbb, 0x60, 0xf2, 0x54, 0x31, 0x5c, 0xcf, 0xe4, 0xcb, 0x49, 0xb3, 0xfb, 0x8a,
|
||||
0xe1, 0xa2, 0x2f, 0xe1, 0xce, 0x82, 0xe9, 0x23, 0xc3, 0x73, 0x83, 0xad, 0xa4, 0xc9, 0x4d, 0x43,
|
||||
0xfc, 0x01, 0x84, 0x81, 0xa5, 0x8f, 0x46, 0xc4, 0xaa, 0x30, 0xef, 0x90, 0x88, 0x83, 0xaa, 0xb0,
|
||||
0x16, 0xa3, 0x51, 0x43, 0xcb, 0x3e, 0x2d, 0xec, 0xef, 0xc4, 0x74, 0x13, 0x63, 0xc1, 0x33, 0x33,
|
||||
0xa8, 0x90, 0xd9, 0xed, 0x99, 0xe1, 0x42, 0x66, 0x81, 0xf4, 0xdf, 0x01, 0x4a, 0x31, 0x36, 0xb4,
|
||||
0x06, 0x19, 0x9d, 0x47, 0xcd, 0x12, 0xce, 0xe8, 0x1a, 0xb5, 0x6d, 0xd3, 0x20, 0xd2, 0xa9, 0xe9,
|
||||
0xdf, 0x05, 0x7e, 0x97, 0x46, 0x36, 0xdd, 0xa6, 0xb3, 0xce, 0xfc, 0x00, 0x19, 0xf4, 0xd1, 0x3d,
|
||||
0xc8, 0xeb, 0x93, 0x89, 0xeb, 0x44, 0xc2, 0x62, 0x48, 0x40, 0x1d, 0x58, 0xf3, 0xce, 0x2e, 0x39,
|
||||
0x0a, 0xb5, 0x42, 0xcf, 0xd2, 0xc4, 0xa4, 0xd3, 0x48, 0x31, 0xce, 0x56, 0x0a, 0xcf, 0xcc, 0x45,
|
||||
0xdf, 0x03, 0x72, 0xed, 0xe3, 0xa6, 0xa2, 0x8d, 0x88, 0x1f, 0x9d, 0x89, 0xc6, 0xec, 0xac, 0xb0,
|
||||
0xff, 0x7e, 0x12, 0xe2, 0x50, 0xaa, 0xce, 0x70, 0xb7, 0x52, 0x38, 0x01, 0x03, 0x29, 0xb0, 0x19,
|
||||
0x50, 0xeb, 0x34, 0xa8, 0xfb, 0xe0, 0xab, 0x0c, 0xfc, 0x97, 0x97, 0x82, 0x47, 0x27, 0xb4, 0x52,
|
||||
0x38, 0x19, 0x09, 0xb5, 0xa1, 0x74, 0xae, 0x9f, 0xe8, 0x95, 0xbe, 0x2f, 0x89, 0x1c, 0x83, 0x7e,
|
||||
0x9c, 0x04, 0x7d, 0x14, 0x65, 0x6c, 0xa5, 0x70, 0x7c, 0x26, 0x95, 0x03, 0x25, 0x04, 0xdb, 0xaf,
|
||||
0xd8, 0x92, 0xa3, 0x30, 0xbf, 0x58, 0x20, 0x87, 0xa3, 0x39, 0x6e, 0x2a, 0x87, 0x79, 0x0c, 0x96,
|
||||
0x5b, 0xd9, 0xa7, 0x1d, 0x73, 0xa4, 0x1b, 0xcc, 0x6d, 0x0a, 0xfb, 0xf7, 0x12, 0x35, 0x25, 0xb5,
|
||||
0x18, 0x4f, 0x2b, 0x85, 0x03, 0x7e, 0x84, 0x41, 0xd0, 0x4e, 0xd5, 0x69, 0x87, 0x28, 0x36, 0x69,
|
||||
0x5a, 0x8a, 0x41, 0xcf, 0x58, 0x60, 0x18, 0x4f, 0x92, 0x30, 0xea, 0xad, 0x5a, 0x3f, 0xca, 0xdb,
|
||||
0x4a, 0xe1, 0xb9, 0xf9, 0xe8, 0x00, 0x8a, 0x23, 0xcb, 0x74, 0xa7, 0x98, 0xa8, 0x84, 0x5a, 0x5f,
|
||||
0x91, 0xe1, 0x3d, 0x4a, 0xc2, 0x6b, 0x46, 0xf8, 0x5a, 0x29, 0x1c, 0x9b, 0x87, 0x86, 0xb0, 0x11,
|
||||
0xed, 0x1f, 0xba, 0x63, 0x47, 0x67, 0x97, 0x4f, 0x61, 0xff, 0xbd, 0xab, 0xc0, 0x18, 0x73, 0x2b,
|
||||
0x85, 0xe7, 0x11, 0xd0, 0x33, 0x58, 0x19, 0x4d, 0x75, 0xb3, 0x6d, 0xb0, 0xcb, 0x6a, 0x81, 0x93,
|
||||
0x36, 0xfb, 0xed, 0x5e, 0x9b, 0x8a, 0xca, 0xe3, 0x45, 0x75, 0x80, 0x63, 0xc5, 0x3e, 0x95, 0x54,
|
||||
0x4b, 0x9f, 0x3a, 0xec, 0xee, 0x9a, 0x75, 0x08, 0x2f, 0x1c, 0x50, 0x75, 0x57, 0x03, 0xce, 0x56,
|
||||
0x1a, 0x47, 0xe6, 0xa1, 0x0a, 0xe4, 0x4f, 0x75, 0xcd, 0x03, 0x11, 0x12, 0x6c, 0x29, 0x02, 0xd2,
|
||||
0x6a, 0xd7, 0x03, 0x8c, 0x70, 0x16, 0x52, 0x61, 0x4b, 0x23, 0xd3, 0xb1, 0x79, 0xe1, 0x87, 0x71,
|
||||
0x3f, 0xcf, 0x2e, 0x6f, 0x24, 0x98, 0x3d, 0xc7, 0xab, 0x27, 0x4e, 0x68, 0xa5, 0xf1, 0x02, 0x28,
|
||||
0xb4, 0x0b, 0xd9, 0xb1, 0x39, 0x2a, 0x23, 0x86, 0xb8, 0x95, 0x80, 0xd8, 0x31, 0x47, 0xad, 0x34,
|
||||
0xa6, 0x4c, 0xe8, 0x39, 0xac, 0x52, 0x19, 0xf5, 0x5c, 0xa7, 0x7c, 0x2b, 0x41, 0xa0, 0x9c, 0x9f,
|
||||
0xca, 0xb3, 0xe7, 0xd2, 0xa3, 0xf8, 0xcc, 0xe8, 0x6b, 0xc8, 0x33, 0xe5, 0x48, 0xc4, 0xd0, 0xca,
|
||||
0xb7, 0x13, 0xec, 0xd6, 0x9b, 0xe9, 0xf3, 0x50, 0x31, 0x04, 0x13, 0xaa, 0x79, 0x58, 0xf5, 0x54,
|
||||
0x55, 0xcd, 0xc1, 0x0a, 0x67, 0x15, 0xb7, 0x61, 0x33, 0x31, 0x2c, 0x89, 0x77, 0xe1, 0xce, 0xc2,
|
||||
0xe8, 0x22, 0x3e, 0x80, 0x7b, 0x97, 0x45, 0x07, 0x71, 0x0b, 0x6e, 0x27, 0xb9, 0x78, 0x04, 0x74,
|
||||
0xde, 0x55, 0xc5, 0x8f, 0x61, 0x7d, 0xc6, 0xef, 0x68, 0xd4, 0x1d, 0xd3, 0xc6, 0xd0, 0xf6, 0x52,
|
||||
0xfd, 0x3c, 0x0e, 0x09, 0xe2, 0x1d, 0xd8, 0x5e, 0xe0, 0x64, 0x62, 0x1b, 0x6e, 0x25, 0x98, 0x38,
|
||||
0xc5, 0x63, 0xf2, 0x88, 0x3c, 0xba, 0x42, 0x02, 0xba, 0x0d, 0xcb, 0x67, 0xca, 0xd8, 0xe5, 0x17,
|
||||
0xca, 0x32, 0xe6, 0x1d, 0xf1, 0x2f, 0x69, 0x28, 0x2f, 0x72, 0x97, 0x2b, 0x00, 0xb7, 0x60, 0x85,
|
||||
0x61, 0xd8, 0xe5, 0xec, 0xa3, 0xec, 0xd3, 0x65, 0xec, 0xf5, 0xd0, 0x73, 0xef, 0xb1, 0xb1, 0xc4,
|
||||
0x1e, 0x1b, 0x71, 0x9f, 0x98, 0x5b, 0x23, 0x7c, 0x66, 0x88, 0xff, 0x95, 0x0e, 0x2e, 0x37, 0xee,
|
||||
0x6d, 0x68, 0x8f, 0x5b, 0x52, 0xd7, 0x9d, 0xb0, 0xd5, 0xd7, 0xf6, 0x6f, 0xc7, 0xc1, 0xfa, 0xed,
|
||||
0x5e, 0xd7, 0x9d, 0x60, 0x9f, 0x09, 0x7d, 0x03, 0x30, 0x75, 0xc7, 0xe3, 0xe1, 0xb4, 0x6e, 0x9e,
|
||||
0xf3, 0xbc, 0x6d, 0x6d, 0xff, 0xfe, 0xdc, 0x94, 0xb6, 0xd1, 0x0f, 0x98, 0x70, 0x64, 0x02, 0xfa,
|
||||
0x02, 0x80, 0x3b, 0x77, 0x43, 0x1b, 0xf9, 0x6f, 0xa5, 0xed, 0x84, 0xe9, 0x74, 0x18, 0x47, 0x58,
|
||||
0xc5, 0x2f, 0x60, 0x33, 0xd1, 0xd9, 0xd1, 0x03, 0x00, 0x9b, 0xb5, 0x22, 0x12, 0x8c, 0x50, 0xc4,
|
||||
0xe7, 0x70, 0x3b, 0xc9, 0xc1, 0xaf, 0x9c, 0xf7, 0x3f, 0x69, 0xb8, 0x77, 0x99, 0x27, 0xd3, 0xdc,
|
||||
0xd4, 0x49, 0x78, 0x82, 0x47, 0x69, 0xe8, 0xa5, 0xa7, 0x27, 0x2e, 0xa7, 0xe7, 0xd7, 0x0e, 0x13,
|
||||
0x7b, 0x7e, 0x23, 0xa2, 0x3b, 0x12, 0x3e, 0xf9, 0x29, 0x15, 0x6d, 0x40, 0xe9, 0x60, 0xd8, 0xe9,
|
||||
0xc8, 0x52, 0x63, 0x30, 0x68, 0x77, 0x9b, 0x92, 0x90, 0x42, 0x05, 0x58, 0xed, 0x36, 0x06, 0x47,
|
||||
0x3d, 0xfc, 0x4a, 0x48, 0xa3, 0x1c, 0x2c, 0x1d, 0xb5, 0x0f, 0xda, 0x42, 0x06, 0xad, 0x42, 0x76,
|
||||
0x28, 0x55, 0x85, 0x2c, 0x2a, 0x41, 0xbe, 0xda, 0x19, 0x36, 0x06, 0xbd, 0xde, 0xa0, 0x25, 0x2c,
|
||||
0xa1, 0x5b, 0xb0, 0x3e, 0xc0, 0xed, 0x66, 0xb3, 0x81, 0xe5, 0x4a, 0x6d, 0xd0, 0xee, 0x75, 0x25,
|
||||
0x61, 0x59, 0x2c, 0x40, 0x3e, 0x08, 0x37, 0xe2, 0x14, 0x4a, 0xb1, 0x58, 0xf2, 0xd6, 0xe6, 0xf2,
|
||||
0x71, 0xd4, 0x23, 0xd6, 0xf6, 0xef, 0xcc, 0x71, 0xf7, 0x5c, 0xe7, 0x35, 0x65, 0xf0, 0x9d, 0xa5,
|
||||
0x01, 0xeb, 0x33, 0x31, 0xe8, 0x46, 0x3e, 0x77, 0x0e, 0x3b, 0x34, 0x40, 0xbc, 0x43, 0xf5, 0xe4,
|
||||
0xf3, 0xb9, 0xea, 0x49, 0x7c, 0xf3, 0x47, 0xfa, 0x81, 0x9e, 0x50, 0x38, 0xf9, 0xb7, 0x2c, 0x14,
|
||||
0xa3, 0x43, 0x41, 0x22, 0x9f, 0x8e, 0x24, 0xf2, 0x3b, 0x90, 0xd3, 0x74, 0x9b, 0x26, 0x7e, 0x9a,
|
||||
0x97, 0x42, 0x06, 0x7d, 0x6a, 0x97, 0x16, 0x19, 0xb9, 0x63, 0xc5, 0x31, 0xad, 0x0b, 0xe6, 0x21,
|
||||
0x79, 0x1c, 0xa1, 0xa0, 0x6f, 0xa1, 0x48, 0x73, 0x63, 0xdd, 0x18, 0xc9, 0x13, 0x53, 0xf3, 0x43,
|
||||
0xc0, 0xbd, 0xb9, 0xbd, 0x1d, 0x71, 0xa6, 0x43, 0x53, 0x23, 0xb8, 0x70, 0x1e, 0x76, 0xd0, 0x73,
|
||||
0xc8, 0x2b, 0xae, 0x73, 0xca, 0x67, 0x2f, 0x27, 0xa8, 0x85, 0xce, 0xae, 0xb8, 0xce, 0x29, 0x9b,
|
||||
0x9a, 0x53, 0xbc, 0x16, 0x4d, 0x7b, 0xd5, 0x53, 0xc5, 0x30, 0xc8, 0x98, 0x65, 0x92, 0x25, 0xec,
|
||||
0x77, 0xd1, 0x1e, 0xac, 0x28, 0x53, 0xb9, 0x2a, 0x49, 0x5e, 0x16, 0xb8, 0x3d, 0x07, 0x57, 0x95,
|
||||
0xa4, 0xda, 0xc9, 0x08, 0x2f, 0x2b, 0xd3, 0xaa, 0x24, 0xa1, 0x6f, 0xe9, 0x1b, 0x48, 0xa7, 0xef,
|
||||
0xaa, 0xaa, 0x24, 0xc9, 0x63, 0xdd, 0x76, 0xca, 0x39, 0x96, 0xbb, 0x2f, 0x9c, 0x58, 0xe2, 0xfc,
|
||||
0x55, 0x49, 0xea, 0xe8, 0xb6, 0x83, 0xee, 0xb2, 0x2b, 0x9d, 0xc8, 0xb6, 0xad, 0xfb, 0x2f, 0xf5,
|
||||
0x1c, 0x25, 0x48, 0xb6, 0xae, 0xd1, 0x98, 0x69, 0x90, 0x1f, 0x27, 0xa6, 0xe1, 0x3d, 0x9a, 0xbd,
|
||||
0x9e, 0xf8, 0x1f, 0x69, 0xc8, 0x33, 0xcd, 0x38, 0xd4, 0x7b, 0xf7, 0x60, 0x89, 0x09, 0x80, 0x5b,
|
||||
0xf1, 0xce, 0xbc, 0x6a, 0x29, 0x17, 0x93, 0x00, 0xe3, 0x8b, 0x9e, 0x3e, 0x13, 0x3f, 0x3d, 0x82,
|
||||
0x25, 0xb6, 0x0f, 0xae, 0x2a, 0xd6, 0x46, 0x35, 0x98, 0x7d, 0xf8, 0x79, 0x0f, 0xd2, 0x4b, 0x6c,
|
||||
0x68, 0x76, 0x86, 0xb8, 0x0f, 0x10, 0x8a, 0x80, 0x2e, 0x23, 0x49, 0xed, 0xba, 0x6f, 0x47, 0xb4,
|
||||
0x8d, 0x04, 0xc8, 0xf6, 0xa5, 0x57, 0xde, 0xf3, 0x85, 0x36, 0xc5, 0xc7, 0x50, 0x92, 0x1c, 0x8b,
|
||||
0xaa, 0x9a, 0xd8, 0x36, 0x35, 0x75, 0x01, 0xb2, 0x13, 0x7b, 0xe4, 0x97, 0xc9, 0x26, 0xf6, 0x48,
|
||||
0xfc, 0x04, 0x50, 0x8c, 0xa5, 0x62, 0x59, 0xca, 0x05, 0x35, 0xc9, 0x89, 0x3d, 0x62, 0x6d, 0xf6,
|
||||
0x90, 0xca, 0xe3, 0xa0, 0x2f, 0xee, 0x41, 0xb1, 0x71, 0x46, 0x0c, 0xc7, 0xf3, 0x26, 0x6a, 0xa2,
|
||||
0x54, 0x69, 0xc4, 0xa0, 0x71, 0x88, 0x41, 0x67, 0x71, 0x84, 0x22, 0x2a, 0x00, 0x8c, 0x9f, 0x39,
|
||||
0x36, 0xda, 0x81, 0x55, 0xc7, 0x66, 0x0b, 0xf2, 0x5d, 0xb4, 0x52, 0xd8, 0x27, 0xa0, 0x2d, 0x58,
|
||||
0x76, 0x8e, 0x4d, 0x93, 0xcb, 0x34, 0xd7, 0x4a, 0x61, 0xde, 0x45, 0x65, 0x58, 0x71, 0x74, 0xc3,
|
||||
0x79, 0xfe, 0x8c, 0x49, 0x35, 0x4b, 0x73, 0x42, 0xde, 0xaf, 0x2e, 0x43, 0xf6, 0x4c, 0x19, 0x8b,
|
||||
0x1d, 0x58, 0x66, 0x4b, 0x50, 0xb1, 0x38, 0xe1, 0x2e, 0x78, 0x31, 0xed, 0xe3, 0xe0, 0xd6, 0xcc,
|
||||
0x24, 0x98, 0x55, 0xb8, 0x35, 0xff, 0x3a, 0x15, 0xff, 0x08, 0xb7, 0xa9, 0xef, 0xd7, 0x75, 0xab,
|
||||
0x67, 0x1d, 0xe8, 0x63, 0xe2, 0x1f, 0x54, 0x80, 0xac, 0xa6, 0xfb, 0x79, 0x03, 0x6d, 0x52, 0xe3,
|
||||
0x9a, 0x5a, 0xe4, 0x44, 0xff, 0xd1, 0x13, 0xba, 0xd7, 0xa3, 0x22, 0x31, 0x8d, 0xf1, 0xc5, 0x81,
|
||||
0x39, 0xd6, 0xbc, 0x32, 0x45, 0x0e, 0x47, 0x28, 0xf4, 0xfa, 0x9a, 0x59, 0xc1, 0x9e, 0x9a, 0x86,
|
||||
0x4d, 0xb8, 0xbb, 0xdb, 0xee, 0xd8, 0xe9, 0x2b, 0xce, 0xa9, 0x7f, 0x0d, 0x85, 0x14, 0xf1, 0x5f,
|
||||
0xd3, 0xb0, 0x8e, 0x89, 0xa2, 0x45, 0xb7, 0xf5, 0x39, 0xac, 0x9c, 0xf0, 0x85, 0xd2, 0x09, 0xf7,
|
||||
0x6f, 0x45, 0x55, 0x89, 0x6d, 0xeb, 0xc7, 0x63, 0xc2, 0xd7, 0xc6, 0x1e, 0x33, 0x55, 0xf1, 0x89,
|
||||
0x3e, 0x26, 0x46, 0xf8, 0xe2, 0x0d, 0xfa, 0x34, 0x8a, 0xda, 0xf4, 0x7e, 0xe4, 0xf2, 0xc6, 0xbc,
|
||||
0x43, 0xcf, 0x3f, 0x26, 0x06, 0x33, 0xdd, 0x2c, 0xa6, 0x4d, 0xb1, 0x0e, 0x42, 0xb8, 0x1b, 0xef,
|
||||
0x08, 0xf7, 0x20, 0x6f, 0x11, 0x45, 0xab, 0x99, 0xae, 0xe1, 0x78, 0x7a, 0x08, 0x09, 0x54, 0x41,
|
||||
0x9a, 0xe2, 0x28, 0x6c, 0xc5, 0x22, 0x66, 0x6d, 0xf1, 0x3f, 0xd3, 0x20, 0x1c, 0x59, 0xba, 0x43,
|
||||
0x7e, 0xe6, 0x53, 0x6d, 0xd1, 0xc0, 0x34, 0xa5, 0xb9, 0x2e, 0xd7, 0x88, 0xd7, 0x63, 0x65, 0x25,
|
||||
0xd7, 0x76, 0xba, 0xa6, 0xd3, 0xf8, 0x91, 0x46, 0x1f, 0xaf, 0x4a, 0x19, 0xa5, 0x05, 0xfb, 0x5e,
|
||||
0x8e, 0xec, 0xfb, 0x3d, 0x58, 0xa7, 0x3b, 0x6e, 0x1b, 0x27, 0xa6, 0xbf, 0x6b, 0x04, 0x4b, 0xd3,
|
||||
0x50, 0x73, 0xac, 0x2d, 0xfe, 0x09, 0x84, 0x90, 0xcd, 0x13, 0x52, 0xd2, 0x35, 0x40, 0x23, 0x87,
|
||||
0xfe, 0x4f, 0x7c, 0xdb, 0x59, 0xcc, 0xda, 0x94, 0xc6, 0xe2, 0x12, 0xaf, 0x74, 0x05, 0xb1, 0x67,
|
||||
0x62, 0x6a, 0x03, 0xdd, 0x2b, 0x0c, 0x67, 0xb1, 0xdf, 0xa5, 0x6a, 0xd3, 0xed, 0xba, 0x6e, 0x79,
|
||||
0x75, 0x54, 0xde, 0x11, 0x7f, 0x07, 0x42, 0x90, 0xe7, 0x44, 0x7c, 0x96, 0x27, 0x37, 0x51, 0x3b,
|
||||
0x0b, 0x29, 0xe8, 0x7d, 0x58, 0x73, 0xf4, 0x09, 0x31, 0x5d, 0x47, 0x22, 0xaa, 0x69, 0x68, 0xb6,
|
||||
0x17, 0xe6, 0x66, 0xa8, 0xe2, 0x03, 0x28, 0x06, 0xd8, 0x2f, 0xcd, 0xe3, 0xd9, 0xe2, 0x88, 0xf8,
|
||||
0x24, 0xb2, 0xf6, 0x4b, 0xf3, 0x98, 0x85, 0x6b, 0x01, 0xb2, 0xba, 0xc6, 0xeb, 0x33, 0x25, 0x4c,
|
||||
0x9b, 0xe2, 0x6b, 0x28, 0xb7, 0xda, 0x75, 0xec, 0x1a, 0x86, 0x6e, 0x8c, 0x5e, 0x9a, 0xc7, 0x2c,
|
||||
0xda, 0x62, 0x66, 0xf5, 0x11, 0xc4, 0x2c, 0x2b, 0xb7, 0x20, 0x58, 0x3a, 0x9b, 0xb4, 0x35, 0x5f,
|
||||
0x4a, 0xb4, 0x4d, 0x15, 0x6b, 0x9b, 0xae, 0xa5, 0x12, 0x2f, 0xea, 0x7a, 0x3d, 0xf1, 0x4f, 0xb0,
|
||||
0x1e, 0x39, 0x39, 0x83, 0xfb, 0x10, 0xb2, 0x3f, 0x98, 0xc7, 0xde, 0x47, 0x8b, 0x78, 0xf8, 0x8d,
|
||||
0x6e, 0x14, 0x53, 0x2e, 0x2a, 0x25, 0xdd, 0x3e, 0xd0, 0x0d, 0xdd, 0x3e, 0x0d, 0xae, 0xe6, 0x08,
|
||||
0x25, 0xf4, 0xd6, 0x97, 0xb6, 0x69, 0x84, 0x97, 0xb3, 0x4f, 0x11, 0xf7, 0xa0, 0xd0, 0x69, 0xd4,
|
||||
0x83, 0xbb, 0xff, 0x21, 0x14, 0x8e, 0x59, 0x39, 0x5b, 0x0d, 0x7c, 0xa3, 0x84, 0x81, 0x91, 0x98,
|
||||
0x73, 0x88, 0x3f, 0xc2, 0x9d, 0xa1, 0x54, 0x7d, 0x87, 0x2c, 0xe5, 0x8b, 0xb9, 0x2c, 0xe5, 0x6e,
|
||||
0x3c, 0xc5, 0x62, 0x4f, 0xab, 0x84, 0x3c, 0xe5, 0xaf, 0xcb, 0xb0, 0x16, 0x1f, 0xa4, 0x66, 0x46,
|
||||
0x0c, 0x9e, 0x94, 0x78, 0x9f, 0x08, 0xbc, 0x2e, 0x55, 0xe0, 0x99, 0xae, 0xf9, 0xf7, 0xcc, 0x99,
|
||||
0xae, 0xf1, 0xaf, 0x2f, 0xfe, 0x9d, 0x47, 0x9b, 0x73, 0xa5, 0x5a, 0xfe, 0x09, 0x23, 0x5e, 0xaa,
|
||||
0x65, 0x45, 0x6b, 0x53, 0x73, 0x55, 0xc7, 0xfb, 0x82, 0xe1, 0x77, 0x99, 0x42, 0x89, 0xa5, 0x2b,
|
||||
0x3c, 0xb7, 0xa0, 0x0a, 0x65, 0x3d, 0xf4, 0x00, 0x0a, 0xae, 0x4d, 0xe4, 0x5a, 0xbd, 0x26, 0x37,
|
||||
0x6a, 0x87, 0x5e, 0x55, 0x3f, 0xef, 0xda, 0xa4, 0x56, 0xaf, 0x35, 0x6a, 0x87, 0x34, 0x13, 0xa0,
|
||||
0xe3, 0xb8, 0x5b, 0x6f, 0x4b, 0x5e, 0x39, 0x3f, 0xe7, 0xda, 0x84, 0xf5, 0xd1, 0x53, 0x10, 0xe8,
|
||||
0x60, 0xab, 0x5d, 0x97, 0x5f, 0x35, 0x7e, 0x5b, 0xed, 0x55, 0x70, 0xdd, 0xcb, 0x16, 0xd6, 0x5c,
|
||||
0x9b, 0xb4, 0xda, 0x75, 0x9f, 0x8a, 0x44, 0x28, 0xf9, 0x9c, 0x87, 0xbd, 0xa1, 0xd4, 0xf0, 0x4a,
|
||||
0xa1, 0x05, 0xce, 0xc6, 0x48, 0xfe, 0x56, 0x28, 0x0f, 0xae, 0x1c, 0x79, 0xe5, 0xce, 0x3c, 0xe7,
|
||||
0xc0, 0x95, 0x23, 0xb4, 0x0d, 0xab, 0x74, 0x7c, 0x78, 0x28, 0x79, 0xd5, 0xcc, 0x15, 0xd7, 0x26,
|
||||
0xc3, 0x43, 0x09, 0xdd, 0x07, 0xa0, 0x03, 0x52, 0x03, 0xb7, 0x2b, 0x1d, 0xbf, 0x92, 0xef, 0xda,
|
||||
0x84, 0x13, 0xd0, 0x4b, 0x58, 0xb3, 0x0c, 0x4d, 0xb7, 0xc3, 0x22, 0xf3, 0x5a, 0xc2, 0x37, 0xb2,
|
||||
0xb8, 0xae, 0x1a, 0xce, 0x29, 0xb1, 0x0c, 0xe2, 0xe0, 0x12, 0x9b, 0x1a, 0xa8, 0xf0, 0x10, 0x04,
|
||||
0x55, 0x53, 0x65, 0xa2, 0x4e, 0x42, 0xb4, 0xf5, 0xeb, 0xa3, 0xad, 0xa9, 0x9a, 0xda, 0x50, 0x27,
|
||||
0x01, 0x5c, 0x05, 0x8a, 0xee, 0x24, 0xb2, 0x31, 0x21, 0xe1, 0x2b, 0x62, 0x1c, 0x6a, 0x78, 0x28,
|
||||
0xe1, 0x82, 0x3b, 0x09, 0x77, 0xf4, 0x29, 0x6c, 0x6a, 0xe4, 0x4c, 0xa6, 0x71, 0x51, 0x3e, 0xd5,
|
||||
0x35, 0xf9, 0x0d, 0xb9, 0x38, 0x36, 0x15, 0x4b, 0x63, 0x75, 0x8e, 0x3c, 0x46, 0x1a, 0x39, 0xa3,
|
||||
0xf1, 0xa7, 0xa5, 0x6b, 0xaf, 0xbc, 0x11, 0xf4, 0x21, 0xa0, 0xd8, 0x94, 0x89, 0xe9, 0xda, 0x84,
|
||||
0xd5, 0x39, 0xf2, 0x78, 0x3d, 0xe4, 0x3f, 0xa4, 0x64, 0xf4, 0x01, 0x08, 0x31, 0x66, 0x4b, 0x39,
|
||||
0x67, 0x85, 0x8d, 0x3c, 0x2e, 0x85, 0xac, 0x58, 0x39, 0x17, 0xfb, 0xb0, 0x95, 0x7c, 0x6a, 0x96,
|
||||
0x4d, 0x9a, 0xb6, 0xc3, 0xbe, 0x79, 0x78, 0x4e, 0x96, 0xa3, 0x84, 0x8a, 0xa6, 0x59, 0xe8, 0x0e,
|
||||
0xe4, 0x28, 0x3e, 0x1b, 0xe3, 0xf6, 0xbf, 0xaa, 0x91, 0x33, 0x3a, 0x24, 0x7e, 0x03, 0x1b, 0x73,
|
||||
0x87, 0xa7, 0x11, 0x59, 0xd5, 0x2c, 0x73, 0xe2, 0xb9, 0x10, 0xef, 0xd0, 0x18, 0x46, 0x2f, 0x25,
|
||||
0xbf, 0xd0, 0x4c, 0xdb, 0xe2, 0x5f, 0xd2, 0xf0, 0x20, 0x90, 0xfc, 0xcd, 0x23, 0x40, 0x75, 0x2e,
|
||||
0x02, 0xc4, 0x2b, 0x9b, 0xfe, 0x12, 0x6d, 0xc3, 0x21, 0xd6, 0x89, 0xa2, 0x92, 0x84, 0x60, 0x20,
|
||||
0xc3, 0x63, 0xfe, 0x0e, 0x25, 0xda, 0x42, 0x76, 0xf4, 0x15, 0x2c, 0xb1, 0x54, 0x9d, 0x97, 0xd9,
|
||||
0xaf, 0xbb, 0x08, 0x9b, 0x23, 0xfe, 0x39, 0x0b, 0x77, 0x16, 0x23, 0x27, 0xdd, 0x8d, 0xdf, 0x7a,
|
||||
0xf7, 0x20, 0x7f, 0x37, 0x7e, 0x78, 0xbd, 0xd5, 0xf6, 0x22, 0x09, 0x3b, 0x0d, 0xe5, 0x53, 0xef,
|
||||
0x8b, 0xd5, 0x33, 0x3f, 0x54, 0x87, 0x14, 0x9a, 0x37, 0x18, 0xc4, 0x99, 0x28, 0xf6, 0x9b, 0x67,
|
||||
0x5e, 0xac, 0x0a, 0xfa, 0xd1, 0x48, 0xb8, 0x1c, 0x8f, 0x84, 0x3d, 0x40, 0xda, 0xa9, 0x3a, 0xe5,
|
||||
0x5f, 0x26, 0x82, 0xdc, 0x9e, 0x57, 0xd6, 0x1f, 0xc6, 0x36, 0x59, 0x6f, 0xd5, 0xfa, 0x71, 0x36,
|
||||
0x9c, 0x30, 0x15, 0x3d, 0x81, 0x92, 0xaf, 0x86, 0xb6, 0x31, 0xb4, 0x89, 0x17, 0xe2, 0xe2, 0x44,
|
||||
0xb1, 0x06, 0x4b, 0xec, 0x0d, 0x06, 0xb0, 0x72, 0x58, 0xe9, 0x0e, 0x2b, 0x1d, 0x21, 0x85, 0xd6,
|
||||
0xa1, 0x40, 0xd7, 0x90, 0x6b, 0x9d, 0x76, 0xa3, 0x3b, 0x10, 0xd2, 0x01, 0x41, 0x6a, 0xe0, 0xd7,
|
||||
0x0d, 0x2c, 0x64, 0xe8, 0x73, 0x7f, 0xd8, 0x3d, 0xac, 0x74, 0x2b, 0xcd, 0x46, 0x5d, 0xc8, 0x8a,
|
||||
0xff, 0x97, 0x05, 0x34, 0xbf, 0xab, 0x30, 0x9b, 0xef, 0x9b, 0x56, 0x70, 0x47, 0x85, 0x14, 0xf4,
|
||||
0x14, 0xd6, 0x79, 0x2f, 0x10, 0xb7, 0x67, 0xc6, 0xb3, 0x64, 0x56, 0x6c, 0x23, 0x8a, 0xcd, 0xb2,
|
||||
0x3a, 0x4f, 0xe2, 0x21, 0x01, 0xed, 0x82, 0x60, 0x98, 0x0e, 0x7d, 0x58, 0x9a, 0x96, 0xee, 0x28,
|
||||
0xec, 0x23, 0x09, 0x4f, 0xbc, 0xe6, 0xe8, 0x68, 0x0f, 0x90, 0x66, 0x76, 0x4d, 0xa7, 0xaa, 0x1b,
|
||||
0x5a, 0xb8, 0x2c, 0xd7, 0x45, 0xc2, 0x08, 0xcd, 0x5e, 0x54, 0x65, 0x3c, 0x3e, 0x56, 0xd4, 0x37,
|
||||
0x5e, 0xa1, 0x97, 0x5f, 0x23, 0x33, 0x54, 0xf4, 0x0c, 0x56, 0x2c, 0xc5, 0x18, 0x11, 0xbb, 0xbc,
|
||||
0xca, 0xac, 0xf8, 0xde, 0x02, 0x95, 0x61, 0xca, 0x84, 0x3d, 0x5e, 0x74, 0x00, 0xab, 0xe6, 0x94,
|
||||
0x7f, 0x63, 0xe2, 0xef, 0xd4, 0x5f, 0x5d, 0xa1, 0xe9, 0xbd, 0x1e, 0x67, 0x6f, 0x18, 0x8e, 0x75,
|
||||
0x81, 0xfd, 0xc9, 0xa8, 0x06, 0x05, 0xfe, 0x21, 0xb5, 0x65, 0xda, 0x8e, 0x5d, 0xce, 0x33, 0xac,
|
||||
0xc7, 0x8b, 0xb0, 0x02, 0x4e, 0x1c, 0x9d, 0xb5, 0xf3, 0x15, 0x14, 0xa3, 0xe8, 0xf4, 0x26, 0x7e,
|
||||
0x43, 0x2e, 0x3c, 0xbd, 0xd1, 0x66, 0xbc, 0x22, 0x92, 0xf7, 0x2a, 0x22, 0x5f, 0x65, 0x5e, 0xa4,
|
||||
0x45, 0x13, 0xd6, 0x67, 0xce, 0xc8, 0x32, 0x1a, 0xda, 0xe8, 0x98, 0xe7, 0x41, 0x85, 0x34, 0x42,
|
||||
0x09, 0xc6, 0x87, 0xd3, 0x29, 0xf1, 0x23, 0x60, 0x84, 0x12, 0xe8, 0x9c, 0x65, 0xa7, 0x51, 0x9d,
|
||||
0x53, 0x82, 0xf8, 0x02, 0x6e, 0x27, 0x9d, 0x88, 0xbd, 0x4a, 0x15, 0x35, 0x78, 0x95, 0x2a, 0x2a,
|
||||
0xcb, 0xfa, 0xa6, 0x1e, 0x7e, 0x46, 0x9f, 0x8a, 0xab, 0xb0, 0xdc, 0x98, 0x4c, 0x9d, 0x8b, 0xdd,
|
||||
0x17, 0x91, 0xdf, 0x35, 0xcc, 0xff, 0x7c, 0x02, 0xad, 0x42, 0xb6, 0x5b, 0xe9, 0x0b, 0x29, 0x94,
|
||||
0x83, 0xa5, 0x7e, 0xa5, 0x3b, 0x14, 0xd2, 0x68, 0x05, 0x32, 0xcd, 0xae, 0x90, 0xd9, 0x7d, 0x09,
|
||||
0x9b, 0x89, 0xb5, 0x50, 0x54, 0x84, 0x9c, 0xd4, 0xf8, 0x6e, 0xd8, 0xe8, 0xd6, 0x1a, 0x42, 0x8a,
|
||||
0x22, 0x54, 0xba, 0x75, 0x3e, 0xaf, 0x47, 0xdd, 0x06, 0xc1, 0x5a, 0xe3, 0xfb, 0x4a, 0x6d, 0x20,
|
||||
0x07, 0x4c, 0xd9, 0xdd, 0x8f, 0x40, 0x98, 0xad, 0x6b, 0x52, 0xfe, 0xa1, 0xb7, 0x72, 0xbd, 0x77,
|
||||
0xd4, 0x15, 0xd2, 0x14, 0xaa, 0x77, 0x70, 0x20, 0x64, 0x76, 0x3f, 0x06, 0x08, 0xeb, 0x98, 0xd4,
|
||||
0x6b, 0x71, 0x5b, 0x6a, 0x77, 0x9b, 0xbc, 0x44, 0x77, 0x50, 0xe9, 0x74, 0x68, 0x87, 0x95, 0xe8,
|
||||
0xaa, 0xbd, 0x41, 0x4b, 0xc8, 0xec, 0xfe, 0x2d, 0x0d, 0xab, 0x5e, 0xf1, 0x0c, 0xe5, 0x61, 0xb9,
|
||||
0x3b, 0x3c, 0x94, 0x3f, 0x15, 0x52, 0x7e, 0x73, 0x5f, 0x48, 0xfb, 0xcd, 0xcf, 0x84, 0x8c, 0xdf,
|
||||
0x7c, 0x26, 0x64, 0xfd, 0xe6, 0xe7, 0xc2, 0x92, 0xdf, 0x7c, 0x2e, 0x2c, 0xfb, 0xcd, 0x2f, 0x84,
|
||||
0x15, 0xbf, 0xf9, 0x42, 0x58, 0xf5, 0x9b, 0x5f, 0x0a, 0x39, 0xba, 0x23, 0xb6, 0xc4, 0x27, 0x42,
|
||||
0x3e, 0x68, 0x7f, 0x2a, 0x40, 0xd0, 0xde, 0x17, 0x0a, 0x41, 0xfb, 0x33, 0xa1, 0x18, 0xb4, 0x9f,
|
||||
0x09, 0xa5, 0xa0, 0xfd, 0xb9, 0xb0, 0x16, 0xb4, 0x9f, 0x0b, 0xeb, 0x41, 0xfb, 0x0b, 0x41, 0x08,
|
||||
0xda, 0x2f, 0x84, 0x8d, 0xa0, 0xfd, 0xa5, 0x80, 0xfc, 0xf6, 0xfe, 0x27, 0xc2, 0xad, 0xdd, 0x8f,
|
||||
0xa0, 0x18, 0x2d, 0x00, 0x52, 0xe1, 0x75, 0x7a, 0x47, 0x5c, 0x9e, 0xad, 0x76, 0xb3, 0x25, 0xa4,
|
||||
0x29, 0xfb, 0xa0, 0xd7, 0x6c, 0x76, 0x1a, 0x42, 0x66, 0xb7, 0x0e, 0xeb, 0x33, 0x65, 0x2d, 0x2a,
|
||||
0xcb, 0x61, 0xf7, 0x55, 0x97, 0xca, 0x3e, 0x45, 0xb5, 0x51, 0xe9, 0x73, 0x1d, 0x48, 0x83, 0x8a,
|
||||
0x90, 0x41, 0xb7, 0x60, 0x5d, 0x1a, 0x54, 0xe4, 0x83, 0x4a, 0xbb, 0xd3, 0x7b, 0xdd, 0xc0, 0x72,
|
||||
0xa5, 0x2f, 0x64, 0x77, 0xeb, 0x50, 0x8a, 0x55, 0x77, 0xd0, 0x26, 0x6c, 0x50, 0xae, 0x6e, 0x6f,
|
||||
0x20, 0xd7, 0x7a, 0xdd, 0x6e, 0xa3, 0x36, 0x68, 0xd4, 0xb9, 0xe0, 0x2b, 0x7d, 0x79, 0x48, 0x01,
|
||||
0x37, 0xa0, 0x44, 0x39, 0xc2, 0xd1, 0xcc, 0xee, 0xfb, 0xbc, 0xc6, 0xe7, 0x17, 0xc9, 0xa8, 0x41,
|
||||
0x1d, 0xf5, 0x2b, 0xfb, 0x72, 0x5f, 0x7a, 0xc5, 0xf7, 0xdf, 0xeb, 0x37, 0xba, 0x42, 0x7a, 0xf7,
|
||||
0xef, 0x40, 0x98, 0x7d, 0xb7, 0xd2, 0xfd, 0x0d, 0x0e, 0xa9, 0xd9, 0x08, 0x50, 0xac, 0x56, 0xa4,
|
||||
0x96, 0x2c, 0xd5, 0x70, 0xbb, 0x3f, 0x90, 0x78, 0x00, 0xa7, 0xd9, 0xa5, 0x4f, 0xc8, 0xec, 0xff,
|
||||
0x6d, 0x0f, 0x56, 0xfa, 0xcf, 0x8e, 0xba, 0xfd, 0x4f, 0xd1, 0x09, 0x3c, 0x6e, 0x12, 0xe7, 0x8a,
|
||||
0x5f, 0x5d, 0xa0, 0xf8, 0x35, 0x49, 0xfd, 0x67, 0xe7, 0x6d, 0x7e, 0xa7, 0x25, 0xa6, 0xd0, 0x9f,
|
||||
0xd3, 0xf0, 0x84, 0xe7, 0x02, 0x57, 0xac, 0xf5, 0x36, 0xb8, 0x6f, 0xbb, 0x89, 0xd7, 0x70, 0x27,
|
||||
0x7a, 0xd8, 0xf8, 0x0f, 0xbf, 0x92, 0x0e, 0x79, 0x9d, 0xdf, 0x93, 0x89, 0x29, 0xf4, 0x03, 0xdc,
|
||||
0x9b, 0x39, 0x5b, 0x1c, 0xfa, 0x3a, 0x30, 0xd7, 0x5d, 0xeb, 0x7b, 0xd8, 0x91, 0x22, 0x67, 0x98,
|
||||
0xf9, 0x3d, 0xda, 0x93, 0xeb, 0xfc, 0x3e, 0x6c, 0x27, 0xe1, 0xa8, 0x62, 0x0a, 0xfd, 0x1e, 0xb6,
|
||||
0x67, 0x4e, 0x11, 0xde, 0xe5, 0x97, 0xff, 0xc0, 0x6f, 0xe7, 0x8a, 0x71, 0x31, 0x85, 0xfe, 0x00,
|
||||
0x5b, 0x34, 0xfb, 0x24, 0xf3, 0xd8, 0xbf, 0x4a, 0x9e, 0x9b, 0x9c, 0xba, 0x2e, 0xd8, 0xfa, 0xef,
|
||||
0x60, 0xa7, 0x49, 0x1c, 0xb6, 0x80, 0x36, 0xbf, 0x42, 0xbc, 0x0a, 0x1b, 0x2b, 0x52, 0x5e, 0x63,
|
||||
0xe7, 0x7f, 0x0f, 0xf7, 0xbd, 0x8f, 0x29, 0x3f, 0x0b, 0xfc, 0x77, 0x14, 0x7e, 0x4c, 0x1c, 0x72,
|
||||
0x13, 0xf8, 0x64, 0x69, 0x60, 0x78, 0xc0, 0xc0, 0xfc, 0xdc, 0xfb, 0xa7, 0xc0, 0x1c, 0xc0, 0xdd,
|
||||
0x8e, 0x6e, 0x2f, 0x14, 0x71, 0x92, 0xf3, 0x3c, 0x5c, 0xbc, 0x08, 0xaf, 0xff, 0xa6, 0xd0, 0x21,
|
||||
0x94, 0x9b, 0xc4, 0xf1, 0xf7, 0x19, 0x7b, 0xf5, 0x24, 0x42, 0x5e, 0x56, 0x84, 0x10, 0x53, 0xa8,
|
||||
0x05, 0xb7, 0x38, 0xd6, 0x3b, 0x23, 0x1d, 0xc0, 0x46, 0x93, 0x38, 0x33, 0x85, 0x8c, 0x1b, 0xe0,
|
||||
0xf4, 0x60, 0x43, 0x9a, 0xc3, 0xb9, 0x6c, 0xce, 0x55, 0x80, 0xbf, 0x81, 0xb5, 0x26, 0x71, 0xa2,
|
||||
0xc5, 0xa0, 0xa4, 0x5d, 0x95, 0x63, 0xb4, 0x08, 0x37, 0x47, 0x90, 0xe2, 0x08, 0x0b, 0xb9, 0x17,
|
||||
0xd8, 0x42, 0x1d, 0x8a, 0x87, 0xa6, 0x6b, 0x38, 0xc3, 0x43, 0x89, 0x65, 0xe0, 0x57, 0x3c, 0xdc,
|
||||
0x17, 0xa0, 0xf4, 0x41, 0x60, 0xd6, 0x34, 0x94, 0xaa, 0xe1, 0xaf, 0xd8, 0x62, 0x9c, 0x0b, 0x4b,
|
||||
0x58, 0x0b, 0x10, 0xbf, 0x83, 0xdb, 0x41, 0x14, 0x88, 0xa2, 0x5e, 0x66, 0xed, 0x57, 0x88, 0x7b,
|
||||
0xe0, 0xc7, 0xc4, 0x9f, 0x14, 0xf5, 0x15, 0x45, 0x0d, 0x7d, 0xfe, 0xba, 0xa8, 0xc9, 0xa7, 0xee,
|
||||
0x40, 0x39, 0xe6, 0xed, 0xef, 0x86, 0xd6, 0x85, 0xcd, 0xd0, 0xcf, 0xa3, 0x50, 0x37, 0xf6, 0xf0,
|
||||
0x22, 0xaf, 0xc8, 0x7a, 0x2f, 0xa5, 0xfb, 0xc9, 0x95, 0x52, 0x4f, 0xcf, 0x3b, 0xf7, 0x16, 0x0d,
|
||||
0xdb, 0xee, 0xd8, 0x61, 0x70, 0xeb, 0x51, 0xb8, 0x97, 0xe6, 0xf1, 0x55, 0x88, 0x8b, 0x4b, 0xb3,
|
||||
0x2c, 0x52, 0x6e, 0xb6, 0xda, 0x75, 0x6a, 0x34, 0x41, 0xbd, 0x96, 0x57, 0x77, 0x17, 0xcf, 0xba,
|
||||
0x72, 0x8b, 0x0d, 0x40, 0xad, 0x76, 0xbd, 0xa6, 0x18, 0x2a, 0x19, 0x87, 0xbb, 0xbc, 0x04, 0x70,
|
||||
0x91, 0x22, 0xb6, 0xf9, 0xd6, 0xbc, 0x6a, 0x76, 0xc0, 0x9f, 0xac, 0x8a, 0xfb, 0x0b, 0xf1, 0xa9,
|
||||
0x3a, 0xc5, 0x14, 0xaa, 0xc2, 0x56, 0xb0, 0xad, 0xca, 0x78, 0x7c, 0x05, 0xdc, 0xa2, 0x0c, 0x61,
|
||||
0x33, 0xb6, 0x27, 0xbf, 0xc2, 0x7e, 0xd9, 0xe9, 0xde, 0x9b, 0x1d, 0x4a, 0xac, 0xce, 0xb3, 0x0d,
|
||||
0x16, 0x0e, 0xa4, 0xe0, 0xeb, 0xcd, 0x8c, 0x5a, 0x67, 0xbf, 0xea, 0x2c, 0xd8, 0xe0, 0x2b, 0x80,
|
||||
0x03, 0xc9, 0xff, 0x90, 0x84, 0xe2, 0x9a, 0x9a, 0xf9, 0xda, 0x35, 0x23, 0xb1, 0xd9, 0xaf, 0x4f,
|
||||
0x4c, 0x03, 0xa5, 0x03, 0xa9, 0x49, 0x1c, 0xff, 0x9b, 0xcb, 0x0c, 0xde, 0xcc, 0x17, 0x9b, 0x19,
|
||||
0xbc, 0xd9, 0x0f, 0x35, 0x62, 0x0a, 0xfd, 0x11, 0x36, 0x0f, 0xa4, 0x9a, 0x45, 0x14, 0x87, 0xc4,
|
||||
0xbe, 0xd9, 0xa1, 0x99, 0x9f, 0x20, 0x26, 0x7c, 0x31, 0xdc, 0x11, 0x2f, 0x63, 0x09, 0x56, 0xf8,
|
||||
0x0d, 0x14, 0xd8, 0x57, 0xc8, 0x0e, 0x2b, 0xa0, 0xcc, 0x68, 0x25, 0xfa, 0xa9, 0x75, 0x56, 0x7c,
|
||||
0x74, 0x48, 0x4c, 0x7d, 0x92, 0x46, 0x4d, 0x28, 0x34, 0xd4, 0xd3, 0xe0, 0x2b, 0xd4, 0x65, 0xf1,
|
||||
0xe3, 0x92, 0x31, 0x31, 0x85, 0xda, 0x80, 0x78, 0x40, 0x8a, 0xfd, 0x68, 0x61, 0xf1, 0x67, 0xea,
|
||||
0x9d, 0xad, 0xe4, 0x4f, 0xe5, 0x62, 0x0a, 0x7d, 0x0d, 0xc5, 0x26, 0x71, 0xc2, 0x4f, 0xec, 0x49,
|
||||
0xf6, 0xba, 0x78, 0xf6, 0x01, 0x6c, 0x71, 0x71, 0x04, 0xc4, 0xda, 0x29, 0x2f, 0xbf, 0xbc, 0x1d,
|
||||
0x0e, 0x86, 0x0d, 0x16, 0x14, 0x8f, 0xf4, 0x93, 0xf0, 0x3c, 0x1f, 0xcc, 0xb0, 0x2f, 0xfa, 0x65,
|
||||
0xc8, 0xc2, 0x2b, 0x70, 0x33, 0xb8, 0xb0, 0x62, 0xb8, 0x97, 0xc9, 0x7d, 0xb1, 0x0c, 0x19, 0x62,
|
||||
0x39, 0x7a, 0x5f, 0x5d, 0x1b, 0x74, 0xf1, 0xb9, 0x3b, 0x14, 0x31, 0xbc, 0xab, 0xae, 0x8d, 0x98,
|
||||
0x7c, 0xe2, 0x43, 0xb8, 0x13, 0xbb, 0xac, 0xde, 0x11, 0xae, 0xc7, 0x95, 0x9b, 0xb0, 0xb5, 0x1b,
|
||||
0x5e, 0x57, 0x32, 0x3c, 0xe4, 0x5b, 0x5b, 0x5c, 0x55, 0xbe, 0x66, 0x85, 0x7a, 0xc1, 0x8e, 0x4d,
|
||||
0xf8, 0xa0, 0x49, 0x9c, 0xca, 0x78, 0x7c, 0x75, 0x61, 0x3c, 0xe9, 0x08, 0x7b, 0xf1, 0xaa, 0xde,
|
||||
0x55, 0x18, 0x62, 0x0a, 0x8d, 0xe1, 0x49, 0x24, 0xc5, 0x5e, 0xbc, 0xda, 0x65, 0xc2, 0xbf, 0xe6,
|
||||
0x91, 0xc5, 0x14, 0x52, 0xbd, 0xa7, 0xc7, 0xe2, 0x75, 0x92, 0x4b, 0xee, 0x6f, 0xe5, 0x36, 0x3f,
|
||||
0x80, 0x18, 0xb8, 0xcd, 0xcf, 0x7d, 0xa0, 0xdf, 0xc2, 0x7b, 0x51, 0x87, 0xba, 0xd9, 0x72, 0xc9,
|
||||
0xc7, 0x60, 0xd0, 0xa1, 0x67, 0xfd, 0x94, 0xd0, 0x7f, 0x80, 0x5f, 0x84, 0x7e, 0xf1, 0x76, 0x16,
|
||||
0x76, 0x0d, 0x27, 0xc1, 0x70, 0x37, 0x62, 0x52, 0x73, 0xff, 0xa0, 0xb8, 0x3a, 0x3d, 0x99, 0x9d,
|
||||
0xc2, 0x1c, 0xcf, 0x7b, 0x65, 0xcf, 0x8e, 0x61, 0x32, 0x1d, 0x2b, 0xea, 0x6c, 0x3e, 0x30, 0xcb,
|
||||
0x75, 0xf5, 0x02, 0xbf, 0x87, 0x3b, 0xc9, 0x0b, 0x54, 0x34, 0xed, 0x9d, 0xc1, 0xff, 0xc1, 0x2f,
|
||||
0x00, 0xcd, 0xef, 0x7e, 0x62, 0x9e, 0xbd, 0xfb, 0xe6, 0x63, 0xaf, 0xef, 0xd9, 0xf1, 0x1b, 0xeb,
|
||||
0xb1, 0x03, 0x9b, 0x0c, 0x71, 0x4e, 0x83, 0x57, 0x6c, 0x37, 0xd9, 0xe6, 0x8e, 0xe1, 0x17, 0x51,
|
||||
0x4f, 0x59, 0xa4, 0xc7, 0xcb, 0x8c, 0xf9, 0x1a, 0x72, 0x7e, 0x78, 0xd9, 0x1a, 0x54, 0x95, 0xef,
|
||||
0x84, 0xdf, 0xa7, 0x7a, 0x0c, 0x5d, 0x72, 0x4e, 0x30, 0x6f, 0xef, 0x89, 0xdf, 0xc1, 0xf6, 0x91,
|
||||
0xa2, 0x3b, 0x49, 0xbf, 0xf9, 0xbe, 0xf2, 0x5f, 0x14, 0x0b, 0x20, 0xdb, 0x70, 0xeb, 0x40, 0xb7,
|
||||
0xc8, 0xdc, 0xcf, 0x59, 0x2f, 0xfb, 0xc1, 0xfd, 0x02, 0xa8, 0xaf, 0x21, 0x57, 0xaf, 0x56, 0x15,
|
||||
0xf5, 0x8d, 0x3b, 0xbd, 0xc1, 0xd9, 0xbe, 0x81, 0x7c, 0xbd, 0x8a, 0x89, 0x4d, 0x65, 0x75, 0xa3,
|
||||
0x5c, 0xe0, 0x76, 0x68, 0xd4, 0xc1, 0x9b, 0xe1, 0xc6, 0xd6, 0x1c, 0x7b, 0xb9, 0x86, 0x3f, 0xe4,
|
||||
0x7e, 0x07, 0xef, 0xb8, 0x15, 0xe2, 0xf9, 0x52, 0xba, 0x29, 0xda, 0xf1, 0x0a, 0xfb, 0x43, 0xf6,
|
||||
0x67, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x7e, 0x44, 0x6c, 0x24, 0x9e, 0x3d, 0x00, 0x00,
|
||||
}
|
||||
|
@ -200,7 +200,7 @@ message TriggerAction {
|
||||
TriggerSSHLogin sshLogin = 10;
|
||||
TriggerDHCPLeaseGranted dhcpLeaseGranted = 11;
|
||||
TriggerGroupReceive groupReceive = 12;
|
||||
TriggerGroupReceiveSequence groupReceiveSequence = 13;
|
||||
TriggerGroupReceiveMulti groupReceiveMulti = 13;
|
||||
TriggerGPIOIn gpioIn = 14;
|
||||
}
|
||||
|
||||
@ -227,10 +227,19 @@ message TriggerGroupReceive{ // fired when the correct value is received on the
|
||||
string groupName = 1;
|
||||
int32 value = 2;
|
||||
}
|
||||
message TriggerGroupReceiveSequence{ // fired when the correct value is received on the group channel
|
||||
|
||||
enum GroupReceiveMultiType {
|
||||
SEQUENCE = 0; // values have to occur in order (other values allowed in between)
|
||||
AND = 1; //logical and ("all" values have to occur, could be unordered)
|
||||
OR = 2; //logical or ("one of" the values has to occur)
|
||||
EXACT_SEQUENCE = 3; // values have to occur in order (other values are NOT allowed in between)
|
||||
|
||||
}
|
||||
|
||||
message TriggerGroupReceiveMulti{
|
||||
string groupName = 1;
|
||||
bool IgnoreOutOfOrder = 2;
|
||||
repeated int32 values = 3;
|
||||
GroupReceiveMultiType type = 4;
|
||||
}
|
||||
enum GPIOInPullUpDown {
|
||||
UP = 0;
|
||||
|
@ -30,20 +30,20 @@ const (
|
||||
triggerTypeSshLogin
|
||||
triggerTypeDhcpLeaseGranted
|
||||
triggerTypeGroupReceive
|
||||
triggerTypeGroupReceiveSequence
|
||||
triggerTypeGroupReceiveMulti
|
||||
triggerTypeGpioIn
|
||||
)
|
||||
var triggerTypeString = map[triggerType]string {
|
||||
triggerTypeServiceStarted: "TRIGGER_SERVICE_STARTED",
|
||||
triggerTypeUsbGadgetConnected: "TRIGGER_USB_GADGET_CONNECTED",
|
||||
triggerTypeServiceStarted: "TRIGGER_SERVICE_STARTED",
|
||||
triggerTypeUsbGadgetConnected: "TRIGGER_USB_GADGET_CONNECTED",
|
||||
triggerTypeUsbGadgetDisconnected: "TRIGGER_USB_GADGET_DISCONNECTED",
|
||||
triggerTypeWifiAPStarted: "TRIGGER_WIFI_AP_STARTED",
|
||||
triggerTypeWifiConnectedAsSta: "TRIGGER_WIFI_CONNECTED_AS_STA",
|
||||
triggerTypeSshLogin: "TRIGGER_SSH_LOGIN",
|
||||
triggerTypeDhcpLeaseGranted: "TRIGGER_DHCP_LEASE_GRANTED",
|
||||
triggerTypeGroupReceive: "TRIGGER_GROUP_RECEIVE",
|
||||
triggerTypeGroupReceiveSequence: "TRIGGER_GROUP_RECEIVE_SEQUENCE",
|
||||
triggerTypeGpioIn: "TRIGGER_GPIO_IN",
|
||||
triggerTypeWifiAPStarted: "TRIGGER_WIFI_AP_STARTED",
|
||||
triggerTypeWifiConnectedAsSta: "TRIGGER_WIFI_CONNECTED_AS_STA",
|
||||
triggerTypeSshLogin: "TRIGGER_SSH_LOGIN",
|
||||
triggerTypeDhcpLeaseGranted: "TRIGGER_DHCP_LEASE_GRANTED",
|
||||
triggerTypeGroupReceive: "TRIGGER_GROUP_RECEIVE",
|
||||
triggerTypeGroupReceiveMulti: "TRIGGER_GROUP_RECEIVE_SEQUENCE",
|
||||
triggerTypeGpioIn: "TRIGGER_GPIO_IN",
|
||||
}
|
||||
|
||||
type actionType int
|
||||
@ -85,8 +85,8 @@ func retrieveTriggerActionTypes(ta *pb.TriggerAction) (ttype triggerType, atype
|
||||
ttype = triggerTypeDhcpLeaseGranted
|
||||
case *pb.TriggerAction_GroupReceive:
|
||||
ttype = triggerTypeGroupReceive
|
||||
case *pb.TriggerAction_GroupReceiveSequence:
|
||||
ttype = triggerTypeGroupReceiveSequence
|
||||
case *pb.TriggerAction_GroupReceiveMulti:
|
||||
ttype = triggerTypeGroupReceiveMulti
|
||||
case *pb.TriggerAction_GpioIn:
|
||||
ttype = triggerTypeGpioIn
|
||||
case nil:
|
||||
@ -273,9 +273,9 @@ func (tam *TriggerActionManager) onGroupReceive(evt *pb.Event, ta *pb.TriggerAct
|
||||
}
|
||||
tam.executeAction(evt, ta, tt, at) // fire action
|
||||
return nil
|
||||
case triggerTypeGroupReceiveSequence:
|
||||
case triggerTypeGroupReceiveMulti:
|
||||
// fmt.Println("### Processing GroupReceive event for trigger type GroupReceiveSequence")
|
||||
triggerGroupName := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence).GroupReceiveSequence.GroupName
|
||||
triggerGroupName := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.GroupName
|
||||
if evGroupName != triggerGroupName {
|
||||
return nil
|
||||
}
|
||||
@ -401,9 +401,10 @@ func (tam *TriggerActionManager) executeActionStartHidScript(evt *pb.Event, ta *
|
||||
gpioPin := ta.Trigger.(*pb.TriggerAction_GpioIn).GpioIn.GpioNum
|
||||
gpioPinName := pb.GPIONum_name[int32(gpioPin)]
|
||||
preScript += fmt.Sprintf("var GPIO_PIN='%s';\n", gpioPinName)
|
||||
case triggerTypeGroupReceiveSequence:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence).GroupReceiveSequence.GroupName
|
||||
values := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence).GroupReceiveSequence.Values
|
||||
case triggerTypeGroupReceiveMulti:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.GroupName
|
||||
values := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.Values
|
||||
rtype := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.Type
|
||||
// create bash array of values
|
||||
jsArray := "["
|
||||
for idx,v := range values {
|
||||
@ -416,6 +417,7 @@ func (tam *TriggerActionManager) executeActionStartHidScript(evt *pb.Event, ta *
|
||||
jsArray += "]"
|
||||
preScript += fmt.Sprintf("var GROUP='%s';\n", groupName)
|
||||
preScript += fmt.Sprintf("var VALUES=%s;\n", jsArray)
|
||||
preScript += fmt.Sprintf("var MULTI_TYPE='%s';\n", pb.GroupReceiveMultiType_name[int32(rtype)])
|
||||
case triggerTypeGroupReceive:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceive).GroupReceive.GroupName
|
||||
value := ta.Trigger.(*pb.TriggerAction_GroupReceive).GroupReceive.Value
|
||||
@ -470,9 +472,10 @@ func (tam *TriggerActionManager) executeActionBashScript(evt *pb.Event, ta *pb.T
|
||||
gpioPin := ta.Trigger.(*pb.TriggerAction_GpioIn).GpioIn.GpioNum
|
||||
gpioPinName := pb.GPIONum_name[int32(gpioPin)]
|
||||
env = append(env, fmt.Sprintf("GPIO_PIN=%s", gpioPinName))
|
||||
case triggerTypeGroupReceiveSequence:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence).GroupReceiveSequence.GroupName
|
||||
values := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence).GroupReceiveSequence.Values
|
||||
case triggerTypeGroupReceiveMulti:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.GroupName
|
||||
values := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.Values
|
||||
rtype := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.Type
|
||||
// create bash array of values
|
||||
bashArray := "("
|
||||
for _,v := range values { bashArray += fmt.Sprintf("%d ", v)}
|
||||
@ -480,6 +483,7 @@ func (tam *TriggerActionManager) executeActionBashScript(evt *pb.Event, ta *pb.T
|
||||
env = append(env,
|
||||
fmt.Sprintf("GROUP='%s'", groupName),
|
||||
fmt.Sprintf("VALUES=%s", bashArray),
|
||||
fmt.Sprintf("MULTI_TYPE='%s'", pb.GroupReceiveMultiType_name[int32(rtype)]),
|
||||
)
|
||||
case triggerTypeGroupReceive:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceive).GroupReceive.GroupName
|
||||
@ -522,14 +526,15 @@ func (tam *TriggerActionManager) executeActionLog(evt *pb.Event, ta *pb.TriggerA
|
||||
gpioPin := ta.Trigger.(*pb.TriggerAction_GpioIn).GpioIn.GpioNum
|
||||
gpioPinName := pb.GPIONum_name[int32(gpioPin)]
|
||||
logMessage += fmt.Sprintf(" (GPIO_PIN=%s)", gpioPinName)
|
||||
case triggerTypeGroupReceiveSequence:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence).GroupReceiveSequence.GroupName
|
||||
values := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence).GroupReceiveSequence.Values
|
||||
case triggerTypeGroupReceiveMulti:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.GroupName
|
||||
values := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.Values
|
||||
logMessage += fmt.Sprintf(" (GROUP='%s', VALUES=%v)", groupName, values)
|
||||
case triggerTypeGroupReceive:
|
||||
groupName := ta.Trigger.(*pb.TriggerAction_GroupReceive).GroupReceive.GroupName
|
||||
value := ta.Trigger.(*pb.TriggerAction_GroupReceive).GroupReceive.Value
|
||||
logMessage += fmt.Sprintf(" (GROUP='%s', VALUE=%d)", groupName, value)
|
||||
values := ta.Trigger.(*pb.TriggerAction_GroupReceive).GroupReceive.Value
|
||||
typeName := pb.GroupReceiveMultiType_name[int32(ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti).GroupReceiveMulti.Type)]
|
||||
logMessage += fmt.Sprintf(" (GROUP='%s', VALUES=%+v, VALUE='%d')", groupName, values, typeName)
|
||||
case triggerTypeDhcpLeaseGranted:
|
||||
iface := evt.Values[1].GetTstring()
|
||||
mac := evt.Values[2].GetTstring()
|
||||
@ -579,7 +584,7 @@ func taTriggerTypeMatchesEvtTriggerType(ttype triggerType, evt *pb.Event) bool {
|
||||
return true
|
||||
}
|
||||
case common_web.TRIGGER_EVT_TYPE_GROUP_RECEIVE:
|
||||
if ttype == triggerTypeGroupReceive || ttype == triggerTypeGroupReceiveSequence {
|
||||
if ttype == triggerTypeGroupReceive || ttype == triggerTypeGroupReceiveMulti {
|
||||
return true
|
||||
}
|
||||
case common_web.TRIGGER_EVT_TYPE_GPIO_IN:
|
||||
@ -604,10 +609,20 @@ func (tam *TriggerActionManager) AddTriggerAction(ta *pb.TriggerAction) (taAdded
|
||||
taAdded = ta
|
||||
|
||||
//if new ta trigger is GroupReceiveSequence, add a SequenceChecker
|
||||
if triggerGrpRcv,match := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence); match {
|
||||
if triggerGrpRcv,match := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti); match {
|
||||
tam.groupReceiveSequenceCheckersMutex.Lock()
|
||||
//fmt.Printf("##### New val checker %+v\n", triggerGrpRcv.GroupReceiveSequence.Values)
|
||||
tam.groupReceiveSequenceCheckers[ta] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveSequence.Values, triggerGrpRcv.GroupReceiveSequence.IgnoreOutOfOrder)
|
||||
switch triggerGrpRcv.GroupReceiveMulti.Type {
|
||||
case pb.GroupReceiveMultiType_AND:
|
||||
tam.groupReceiveSequenceCheckers[ta] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveMulti.Values, util.ValueSeqType_AND)
|
||||
case pb.GroupReceiveMultiType_OR:
|
||||
tam.groupReceiveSequenceCheckers[ta] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveMulti.Values, util.ValueSeqType_OR)
|
||||
case pb.GroupReceiveMultiType_SEQUENCE:
|
||||
tam.groupReceiveSequenceCheckers[ta] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveMulti.Values, util.ValueSeqType_SEQUENCE)
|
||||
case pb.GroupReceiveMultiType_EXACT_SEQUENCE:
|
||||
tam.groupReceiveSequenceCheckers[ta] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveMulti.Values, util.ValueSeqType_EXACT_SEQUENCE)
|
||||
}
|
||||
|
||||
tam.groupReceiveSequenceCheckersMutex.Unlock()
|
||||
}
|
||||
|
||||
@ -627,7 +642,7 @@ func (tam *TriggerActionManager) RemoveTriggerAction(removeTa *pb.TriggerAction)
|
||||
tam.registeredTriggerActions.TriggerActions = append(tam.registeredTriggerActions.TriggerActions[:idx], tam.registeredTriggerActions.TriggerActions[idx+1:]...)
|
||||
|
||||
//if target ta trigger had a sequenceChecker assigned, remove it
|
||||
if _,match := ta.Trigger.(*pb.TriggerAction_GroupReceiveSequence); match {
|
||||
if _,match := ta.Trigger.(*pb.TriggerAction_GroupReceiveMulti); match {
|
||||
tam.groupReceiveSequenceCheckersMutex.Lock()
|
||||
delete(tam.groupReceiveSequenceCheckers, ta)
|
||||
tam.groupReceiveSequenceCheckersMutex.Unlock()
|
||||
@ -664,7 +679,7 @@ func (tam *TriggerActionManager) UpdateTriggerAction(srcTa *pb.TriggerAction, ad
|
||||
if targetTA.Immutable { return ErrTaImmutable }
|
||||
|
||||
//if target ta trigger had a sequenceChecker assigned, remove it
|
||||
if _,match := targetTA.Trigger.(*pb.TriggerAction_GroupReceiveSequence); match {
|
||||
if _,match := targetTA.Trigger.(*pb.TriggerAction_GroupReceiveMulti); match {
|
||||
tam.groupReceiveSequenceCheckersMutex.Lock()
|
||||
delete(tam.groupReceiveSequenceCheckers, targetTA)
|
||||
tam.groupReceiveSequenceCheckersMutex.Unlock()
|
||||
@ -677,9 +692,19 @@ func (tam *TriggerActionManager) UpdateTriggerAction(srcTa *pb.TriggerAction, ad
|
||||
targetTA.Trigger = srcTa.Trigger
|
||||
|
||||
//if new ta trigger is GroupReceiveSequence, add a SequenceChecker
|
||||
if triggerGrpRcv,match := targetTA.Trigger.(*pb.TriggerAction_GroupReceiveSequence); match {
|
||||
if triggerGrpRcv,match := targetTA.Trigger.(*pb.TriggerAction_GroupReceiveMulti); match {
|
||||
tam.groupReceiveSequenceCheckersMutex.Lock()
|
||||
tam.groupReceiveSequenceCheckers[targetTA] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveSequence.Values, triggerGrpRcv.GroupReceiveSequence.IgnoreOutOfOrder)
|
||||
|
||||
switch triggerGrpRcv.GroupReceiveMulti.Type {
|
||||
case pb.GroupReceiveMultiType_AND:
|
||||
tam.groupReceiveSequenceCheckers[targetTA] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveMulti.Values, util.ValueSeqType_AND)
|
||||
case pb.GroupReceiveMultiType_OR:
|
||||
tam.groupReceiveSequenceCheckers[targetTA] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveMulti.Values, util.ValueSeqType_OR)
|
||||
case pb.GroupReceiveMultiType_SEQUENCE:
|
||||
tam.groupReceiveSequenceCheckers[targetTA] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveMulti.Values, util.ValueSeqType_SEQUENCE)
|
||||
case pb.GroupReceiveMultiType_EXACT_SEQUENCE:
|
||||
tam.groupReceiveSequenceCheckers[targetTA] = util.NewValueSequenceChecker(triggerGrpRcv.GroupReceiveMulti.Values, util.ValueSeqType_EXACT_SEQUENCE)
|
||||
}
|
||||
tam.groupReceiveSequenceCheckersMutex.Unlock()
|
||||
}
|
||||
return nil
|
||||
|
@ -2,38 +2,99 @@ package util
|
||||
|
||||
import "fmt"
|
||||
|
||||
type ValueSequenceCheckerType int
|
||||
const (
|
||||
ValueSeqType_SEQUENCE ValueSequenceCheckerType = 0
|
||||
ValueSeqType_AND ValueSequenceCheckerType = 1
|
||||
ValueSeqType_OR ValueSequenceCheckerType = 2
|
||||
ValueSeqType_EXACT_SEQUENCE ValueSequenceCheckerType = 3
|
||||
)
|
||||
|
||||
type ValueSequenceChecker struct {
|
||||
values []int32
|
||||
allowOutOfOrder bool
|
||||
values []int32 // used for sequences
|
||||
valuesHitCountMap map[int32]int //used for OR / AND
|
||||
valSeqCheckType ValueSequenceCheckerType
|
||||
currentPos int
|
||||
}
|
||||
|
||||
func (sc *ValueSequenceChecker) String() string {
|
||||
res := "("
|
||||
for i,v := range sc.values {
|
||||
if i == sc.currentPos { res += "[" }
|
||||
if sc.valSeqCheckType == ValueSeqType_EXACT_SEQUENCE || sc.valSeqCheckType == ValueSeqType_SEQUENCE {
|
||||
res := "("
|
||||
for i,v := range sc.values {
|
||||
if i == sc.currentPos { res += "[" }
|
||||
|
||||
res += fmt.Sprintf("%d", v)
|
||||
res += fmt.Sprintf("%d", v)
|
||||
|
||||
if i == sc.currentPos { res += "]" }
|
||||
if i != len(sc.values)-1 { res += " "}
|
||||
if i == sc.currentPos { res += "]" }
|
||||
if i != len(sc.values)-1 { res += " "}
|
||||
}
|
||||
res += ")"
|
||||
return res
|
||||
}
|
||||
res += ")"
|
||||
return res
|
||||
if sc.valSeqCheckType == ValueSeqType_AND {
|
||||
return fmt.Sprintf("AND values (%v), still needed (%+v)", sc.values, sc.valuesHitCountMap)
|
||||
}
|
||||
if sc.valSeqCheckType == ValueSeqType_OR {
|
||||
return fmt.Sprintf("OR values (%v)", sc.values)
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (sc *ValueSequenceChecker) Check(val int32) bool {
|
||||
if len(sc.values) == 0 { return true }
|
||||
switch sc.valSeqCheckType {
|
||||
case ValueSeqType_SEQUENCE:
|
||||
if len(sc.values) == 0 { return true }
|
||||
|
||||
if val == sc.values[sc.currentPos] {
|
||||
if sc.advance() {
|
||||
// rewind, to be able to reuse the sequence checker
|
||||
sc.currentPos = 0
|
||||
return true
|
||||
}
|
||||
}
|
||||
case ValueSeqType_EXACT_SEQUENCE:
|
||||
if len(sc.values) == 0 { return true }
|
||||
if val == sc.values[sc.currentPos] {
|
||||
if sc.advance() {
|
||||
// rewind, to be able to reuse the sequence checker
|
||||
sc.currentPos = 0
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
sc.currentPos = 0 // rewind if no out-of-order allowed
|
||||
}
|
||||
case ValueSeqType_AND:
|
||||
if remaining,exists := sc.valuesHitCountMap[val]; exists {
|
||||
// lower count as we have a hit
|
||||
newRemaining := remaining-1
|
||||
sc.valuesHitCountMap[val] = newRemaining
|
||||
|
||||
// if count == 0, remove from map
|
||||
if newRemaining < 1 {
|
||||
delete(sc.valuesHitCountMap, val)
|
||||
}
|
||||
}
|
||||
|
||||
// if the map is empty, we succeeded
|
||||
if len(sc.valuesHitCountMap) == 0 {
|
||||
// ToDo: make this thread save
|
||||
// rebuild map to be able to reuse
|
||||
valuesHitCountMap := make(map[int32]int)
|
||||
for _,val := range sc.values {
|
||||
if currentCount,exists := valuesHitCountMap[val]; exists {
|
||||
valuesHitCountMap[val] = currentCount+1
|
||||
} else {
|
||||
valuesHitCountMap[val] = 1
|
||||
}
|
||||
}
|
||||
sc.valuesHitCountMap = valuesHitCountMap
|
||||
|
||||
|
||||
if val == sc.values[sc.currentPos] {
|
||||
if sc.advance() {
|
||||
// rewind, to be able to reuse the sequence checker
|
||||
sc.currentPos = 0
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
if !sc.allowOutOfOrder {
|
||||
sc.currentPos = 0 // rewind if no out-of-order allowed
|
||||
case ValueSeqType_OR:
|
||||
if _,exists := sc.valuesHitCountMap[val]; exists {
|
||||
return true //every value from the map would produce a hit
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,11 +108,22 @@ func (sc *ValueSequenceChecker) advance() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func NewValueSequenceChecker(values []int32, allowOutOfOrder bool) *ValueSequenceChecker {
|
||||
func NewValueSequenceChecker(values []int32, valSeqCheckType ValueSequenceCheckerType) *ValueSequenceChecker {
|
||||
res := &ValueSequenceChecker{
|
||||
values: values,
|
||||
allowOutOfOrder: allowOutOfOrder,
|
||||
valSeqCheckType: valSeqCheckType,
|
||||
currentPos: 0,
|
||||
}
|
||||
if valSeqCheckType == ValueSeqType_AND || valSeqCheckType == ValueSeqType_OR {
|
||||
// convert values to map for easy lookup (and marking for AND)
|
||||
res.valuesHitCountMap = make(map[int32]int)
|
||||
for _,val := range values {
|
||||
if currentCount,exists := res.valuesHitCountMap[val]; exists {
|
||||
res.valuesHitCountMap[val] = currentCount+1
|
||||
} else {
|
||||
res.valuesHitCountMap[val] = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
@ -42,6 +42,24 @@ func generateSelectOptionsAction() *js.Object {
|
||||
return tts
|
||||
}
|
||||
|
||||
func generateSelectOptionsGroupReceiveMultiType() *js.Object {
|
||||
tts := js.Global.Get("Array").New()
|
||||
type option struct {
|
||||
*js.Object
|
||||
Label string `js:"label"`
|
||||
Value GroupReceiveMultiType `js:"value"`
|
||||
}
|
||||
|
||||
for _, value := range availableGroupReceiveMulti {
|
||||
label := groupReceiveMultiNames[value]
|
||||
o := option{Object:O()}
|
||||
o.Value = value
|
||||
o.Label = label
|
||||
tts.Call("push", o)
|
||||
}
|
||||
return tts
|
||||
}
|
||||
|
||||
func generateSelectOptionsGPIOOutValue() *js.Object {
|
||||
tts := js.Global.Get("Array").New()
|
||||
type option struct {
|
||||
@ -239,21 +257,28 @@ func InitComponentsTriggerActions() {
|
||||
strTrigger += t.GroupName
|
||||
strTrigger += ": " + strconv.Itoa(int(t.Value))
|
||||
strTrigger += ")"
|
||||
case ta.IsTriggerGroupReceiveSequence():
|
||||
t := jsTriggerGroupReceiveSequence{Object: ta.TriggerData}
|
||||
case ta.IsTriggerGroupReceiveMulti():
|
||||
t := jsTriggerGroupReceiveMulti{Object: ta.TriggerData}
|
||||
strTrigger += " ("
|
||||
strTrigger += t.GroupName
|
||||
strTrigger += ": ["
|
||||
for idx,val := range t.ValueSequence {
|
||||
strTrigger += t.GroupName + ": "
|
||||
switch t.Type {
|
||||
case GroupReceiveMultiType_SEQUENCE:
|
||||
strTrigger += "sequence of"
|
||||
case GroupReceiveMultiType_EXACT_SEQUENCE:
|
||||
strTrigger += "exact sequence of"
|
||||
case GroupReceiveMultiType_OR:
|
||||
strTrigger += "one of"
|
||||
case GroupReceiveMultiType_AND:
|
||||
strTrigger += "all from"
|
||||
}
|
||||
strTrigger += " ["
|
||||
for idx,val := range t.Values {
|
||||
if idx != 0 {
|
||||
strTrigger += ", "
|
||||
}
|
||||
strTrigger += strconv.Itoa(int(val))
|
||||
}
|
||||
strTrigger += "]"
|
||||
if !t.IgnoreOutOfOrder {
|
||||
strTrigger += ", out-of-order allowed"
|
||||
}
|
||||
strTrigger += ")"
|
||||
case ta.IsTriggerGPIOIn():
|
||||
t := jsTriggerGPIOIn{Object: ta.TriggerData}
|
||||
@ -361,6 +386,9 @@ func InitComponentsTriggerActions() {
|
||||
hvue.Computed("pullupdown", func(vm *hvue.VM) interface{} {
|
||||
return generateSelectOptionsGPIOInPullUpDown()
|
||||
}),
|
||||
hvue.Computed("groupReceiveMultiSelect", func(vm *hvue.VM) interface{} {
|
||||
return generateSelectOptionsGroupReceiveMultiType()
|
||||
}),
|
||||
hvue.Computed("edge", func(vm *hvue.VM) interface{} {
|
||||
return generateSelectOptionsGPIOInEdges()
|
||||
}),
|
||||
@ -378,44 +406,44 @@ func InitComponentsTriggerActions() {
|
||||
ta.ChangeTriggerType(tType)
|
||||
}),
|
||||
hvue.Method(
|
||||
"TriggerGroupReceiveSequenceAddValue",
|
||||
"TriggerGroupReceiveMultiAddValue",
|
||||
func(vm *hvue.VM, newVal *js.Object) {
|
||||
println("Force add", newVal)
|
||||
ta := &jsTriggerAction{Object: vm.Get("ta")}
|
||||
if !ta.IsTriggerGroupReceiveSequence() { return }
|
||||
if !ta.IsTriggerGroupReceiveMulti() { return }
|
||||
|
||||
// cast data Object to jsTriggerGroupReceiveSequence
|
||||
tgrs := &jsTriggerGroupReceiveSequence{Object:ta.TriggerData}
|
||||
// cast data Object to jsTriggerGroupReceiveMulti
|
||||
tgrs := &jsTriggerGroupReceiveMulti{Object: ta.TriggerData}
|
||||
strVal := newVal.String()
|
||||
if intVal,errconv := strconv.Atoi(strVal); errconv == nil {
|
||||
//append to Values
|
||||
tgrs.ValueSequence = append(tgrs.ValueSequence, int32(intVal))
|
||||
tgrs.Values = append(tgrs.Values, int32(intVal))
|
||||
}
|
||||
}),
|
||||
hvue.ComputedWithGetSet(
|
||||
"TriggerGroupReceiveSequenceValues",
|
||||
"TriggerGroupReceiveMultiValues",
|
||||
func(vm *hvue.VM) interface{} {
|
||||
ta := &jsTriggerAction{Object: vm.Get("ta")}
|
||||
if !ta.IsTriggerGroupReceiveSequence() { return []string{} }
|
||||
if !ta.IsTriggerGroupReceiveMulti() { return []string{} }
|
||||
|
||||
// cast data Object to jsTriggerGroupReceiveSequence
|
||||
tgrs := &jsTriggerGroupReceiveSequence{Object:ta.TriggerData}
|
||||
// cast data Object to jsTriggerGroupReceiveMulti
|
||||
tgrs := &jsTriggerGroupReceiveMulti{Object: ta.TriggerData}
|
||||
|
||||
res := make([]string, len(tgrs.ValueSequence))
|
||||
for idx,intVal := range tgrs.ValueSequence {
|
||||
res := make([]string, len(tgrs.Values))
|
||||
for idx,intVal := range tgrs.Values {
|
||||
res[idx] = strconv.Itoa(int(intVal))
|
||||
}
|
||||
return res
|
||||
},
|
||||
func(vm *hvue.VM, newValue *js.Object) {
|
||||
ta := &jsTriggerAction{Object: vm.Get("ta")}
|
||||
if !ta.IsTriggerGroupReceiveSequence() { return }
|
||||
if !ta.IsTriggerGroupReceiveMulti() { return }
|
||||
|
||||
// cast data Object to jsTriggerGroupReceiveSequence
|
||||
tgrs := &jsTriggerGroupReceiveSequence{Object:ta.TriggerData}
|
||||
// cast data Object to jsTriggerGroupReceiveMulti
|
||||
tgrs := &jsTriggerGroupReceiveMulti{Object: ta.TriggerData}
|
||||
|
||||
// clear old array
|
||||
tgrs.ValueSequence = []int32{}
|
||||
tgrs.Values = []int32{}
|
||||
|
||||
// iterate over newValue, which is assumed to be an Array of strings
|
||||
for idx := 0; idx < newValue.Length(); idx++ {
|
||||
@ -424,7 +452,7 @@ func InitComponentsTriggerActions() {
|
||||
// try to cast to int
|
||||
if intVal,errconv := strconv.Atoi(strVal); errconv == nil {
|
||||
//append to Values
|
||||
tgrs.ValueSequence = append(tgrs.ValueSequence, int32(intVal))
|
||||
tgrs.Values = append(tgrs.Values, int32(intVal))
|
||||
}
|
||||
}
|
||||
}),
|
||||
@ -434,8 +462,8 @@ func InitComponentsTriggerActions() {
|
||||
hvue.Computed("isTriggerGroupReceive", func(vm *hvue.VM) interface{} {
|
||||
return (&jsTriggerAction{Object: vm.Get("ta")}).IsTriggerGroupReceive()
|
||||
}),
|
||||
hvue.Computed("isTriggerGroupReceiveSequence", func(vm *hvue.VM) interface{} {
|
||||
return (&jsTriggerAction{Object: vm.Get("ta")}).IsTriggerGroupReceiveSequence()
|
||||
hvue.Computed("isTriggerGroupReceiveMulti", func(vm *hvue.VM) interface{} {
|
||||
return (&jsTriggerAction{Object: vm.Get("ta")}).IsTriggerGroupReceiveMulti()
|
||||
}),
|
||||
)
|
||||
hvue.NewComponent(
|
||||
@ -659,7 +687,7 @@ const templateTrigger = `
|
||||
</q-item-main>
|
||||
</q-item>
|
||||
|
||||
<q-item tag="label" v-if="isTriggerGroupReceive || isTriggerGroupReceiveSequence">
|
||||
<q-item tag="label" v-if="isTriggerGroupReceive || isTriggerGroupReceiveMulti">
|
||||
<q-item-main>
|
||||
<q-item-tile label>Group name</q-item-tile>
|
||||
<q-item-tile sublabel>Only values send for this group name are regarded</q-item-tile>
|
||||
@ -677,16 +705,17 @@ const templateTrigger = `
|
||||
</q-item-tile>
|
||||
</q-item-main>
|
||||
</q-item>
|
||||
<q-item tag="label" v-if="isTriggerGroupReceiveSequence">
|
||||
<q-item tag="label" v-if="isTriggerGroupReceiveMulti">
|
||||
<q-item-main>
|
||||
<q-item-tile label>Values</q-item-tile>
|
||||
<q-item-tile sublabel>The numeric value sequence which has to be received to activate the trigger</q-item-tile>
|
||||
<q-item-tile sublabel>The numeric values which has to be received to activate the trigger</q-item-tile>
|
||||
<q-item-tile>
|
||||
<q-chips-input v-model="TriggerGroupReceiveSequenceValues" @duplicate="TriggerGroupReceiveSequenceAddValue($event)" type="number" decimals="0" inverted :disable="!ta.IsActive"></q-chips-input>
|
||||
<q-chips-input v-model="TriggerGroupReceiveMultiValues" @duplicate="TriggerGroupReceiveMultiAddValue($event)" type="number" decimals="0" inverted :disable="!ta.IsActive"></q-chips-input>
|
||||
</q-item-tile>
|
||||
</q-item-main>
|
||||
</q-item>
|
||||
<q-item tag="label" link :disabled="!ta.IsActive" v-if="isTriggerGroupReceiveSequence">
|
||||
<!--
|
||||
<q-item tag="label" link :disabled="!ta.IsActive" v-if="isTriggerGroupReceiveMulti">
|
||||
<q-item-side>
|
||||
<q-toggle v-model="ta.TriggerData.IgnoreOutOfOrder" :disable="!ta.IsActive"></q-toggle>
|
||||
</q-item-side>
|
||||
@ -695,6 +724,17 @@ const templateTrigger = `
|
||||
<q-item-tile sublabel>If enabled the sequence may be interrupted by other values. If disabled they have to arrive in exact order.</q-item-tile>
|
||||
</q-item-main>
|
||||
</q-item>
|
||||
-->
|
||||
<q-item tag="label" v-if="isTriggerGroupReceiveMulti">
|
||||
<q-item-main>
|
||||
<q-item-tile label>Type</q-item-tile>
|
||||
<q-item-tile sublabel>Chose how values should be checked (logical OR, logical AND, sequence or exact sequence</q-item-tile>
|
||||
<q-item-tile>
|
||||
<q-select v-model="ta.TriggerData.Type" :options="groupReceiveMultiSelect" inverted :disable="!ta.IsActive"></q-select>
|
||||
</q-item-tile>
|
||||
</q-item-main>
|
||||
</q-item>
|
||||
|
||||
|
||||
|
||||
<q-item tag="label" v-if="isTriggerGPIOIn">
|
||||
|
@ -12,16 +12,16 @@ import (
|
||||
type triggerType int
|
||||
type actionType int
|
||||
const (
|
||||
TriggerServiceStarted = triggerType(0)
|
||||
TriggerUsbGadgetConnected = triggerType(1)
|
||||
TriggerServiceStarted = triggerType(0)
|
||||
TriggerUsbGadgetConnected = triggerType(1)
|
||||
TriggerUsbGadgetDisconnected = triggerType(2)
|
||||
TriggerWifiAPStarted = triggerType(3)
|
||||
TriggerWifiConnectedAsSta = triggerType(4)
|
||||
TriggerSshLogin = triggerType(5)
|
||||
TriggerDhcpLeaseGranted = triggerType(6)
|
||||
TriggerGPIOIn = triggerType(7)
|
||||
TriggerGroupReceive = triggerType(8)
|
||||
TriggerGroupReceiveSequence = triggerType(9)
|
||||
TriggerWifiAPStarted = triggerType(3)
|
||||
TriggerWifiConnectedAsSta = triggerType(4)
|
||||
TriggerSshLogin = triggerType(5)
|
||||
TriggerDhcpLeaseGranted = triggerType(6)
|
||||
TriggerGPIOIn = triggerType(7)
|
||||
TriggerGroupReceive = triggerType(8)
|
||||
TriggerGroupReceiveMulti = triggerType(9)
|
||||
|
||||
ActionLog = actionType(0)
|
||||
ActionHidScript = actionType(1)
|
||||
@ -31,16 +31,16 @@ const (
|
||||
ActionGroupSend = actionType(5)
|
||||
)
|
||||
var triggerNames = map[triggerType]string{
|
||||
TriggerServiceStarted: "service started",
|
||||
TriggerUsbGadgetConnected: "USB gadget connected to host",
|
||||
TriggerServiceStarted: "service started",
|
||||
TriggerUsbGadgetConnected: "USB gadget connected to host",
|
||||
TriggerUsbGadgetDisconnected: "USB Gadget disconnected from host",
|
||||
TriggerWifiAPStarted: "WiFi Access Point is up",
|
||||
TriggerWifiConnectedAsSta: "joined existing WiFi",
|
||||
TriggerSshLogin: "SSH user login",
|
||||
TriggerDhcpLeaseGranted: "DHCP lease issued",
|
||||
TriggerGPIOIn: "input on GPIO",
|
||||
TriggerGroupReceive: "a value on a group channel",
|
||||
TriggerGroupReceiveSequence: "value sequence on a group channel",
|
||||
TriggerWifiAPStarted: "WiFi Access Point is up",
|
||||
TriggerWifiConnectedAsSta: "joined existing WiFi",
|
||||
TriggerSshLogin: "SSH user login",
|
||||
TriggerDhcpLeaseGranted: "DHCP lease issued",
|
||||
TriggerGPIOIn: "input on GPIO",
|
||||
TriggerGroupReceive: "a value on a group channel",
|
||||
TriggerGroupReceiveMulti: "multiple values on a group channel",
|
||||
}
|
||||
var actionNames = map[actionType]string{
|
||||
ActionLog: "write log entry",
|
||||
@ -60,7 +60,7 @@ var availableTriggers = []triggerType{
|
||||
TriggerGPIOIn,
|
||||
TriggerSshLogin,
|
||||
TriggerGroupReceive,
|
||||
TriggerGroupReceiveSequence,
|
||||
TriggerGroupReceiveMulti,
|
||||
}
|
||||
var availableActions = []actionType {
|
||||
ActionLog,
|
||||
@ -154,11 +154,12 @@ func (dst *jsTriggerAction) fromGo(src *pb.TriggerAction) {
|
||||
dstTrigger := &jsTriggerGroupReceive{Object: dst.TriggerData}
|
||||
dstTrigger.GroupName = srcTrigger.GroupReceive.GroupName
|
||||
dstTrigger.Value = srcTrigger.GroupReceive.Value
|
||||
case *pb.TriggerAction_GroupReceiveSequence:
|
||||
dst.ChangeTriggerType(TriggerGroupReceiveSequence)
|
||||
dstTrigger := &jsTriggerGroupReceiveSequence{Object: dst.TriggerData}
|
||||
dstTrigger.GroupName = srcTrigger.GroupReceiveSequence.GroupName
|
||||
dstTrigger.ValueSequence = srcTrigger.GroupReceiveSequence.Values
|
||||
case *pb.TriggerAction_GroupReceiveMulti:
|
||||
dst.ChangeTriggerType(TriggerGroupReceiveMulti)
|
||||
dstTrigger := &jsTriggerGroupReceiveMulti{Object: dst.TriggerData}
|
||||
dstTrigger.GroupName = srcTrigger.GroupReceiveMulti.GroupName
|
||||
dstTrigger.Values = srcTrigger.GroupReceiveMulti.Values
|
||||
dstTrigger.Type = GroupReceiveMultiType(srcTrigger.GroupReceiveMulti.Type)
|
||||
default:
|
||||
// change nothing
|
||||
}
|
||||
@ -273,12 +274,13 @@ func (ta *jsTriggerAction) toGo() (res *pb.TriggerAction) {
|
||||
Value: triggerData.Value,
|
||||
},
|
||||
}
|
||||
case TriggerGroupReceiveSequence:
|
||||
triggerData := &jsTriggerGroupReceiveSequence{Object: ta.TriggerData}
|
||||
res.Trigger = &pb.TriggerAction_GroupReceiveSequence{
|
||||
GroupReceiveSequence: &pb.TriggerGroupReceiveSequence {
|
||||
case TriggerGroupReceiveMulti:
|
||||
triggerData := &jsTriggerGroupReceiveMulti{Object: ta.TriggerData}
|
||||
res.Trigger = &pb.TriggerAction_GroupReceiveMulti{
|
||||
GroupReceiveMulti: &pb.TriggerGroupReceiveMulti {
|
||||
GroupName: triggerData.GroupName,
|
||||
Values: triggerData.ValueSequence,
|
||||
Values: triggerData.Values,
|
||||
Type: pb.GroupReceiveMultiType(triggerData.Type),
|
||||
},
|
||||
}
|
||||
default:
|
||||
@ -387,11 +389,11 @@ func (ta *jsTriggerAction) ChangeTriggerType(newTt triggerType) {
|
||||
d.GroupName = "Group1"
|
||||
d.Value = 0
|
||||
data = d.Object
|
||||
case TriggerGroupReceiveSequence:
|
||||
d := &jsTriggerGroupReceiveSequence{Object:O()}
|
||||
case TriggerGroupReceiveMulti:
|
||||
d := &jsTriggerGroupReceiveMulti{Object: O()}
|
||||
d.GroupName = "Group1"
|
||||
d.IgnoreOutOfOrder = false
|
||||
d.ValueSequence = []int32{1,1}
|
||||
d.Type = GroupReceiveMultiType_SEQUENCE
|
||||
d.Values = []int32{1,2}
|
||||
data = d.Object
|
||||
default:
|
||||
println("Unknown trigger type")
|
||||
@ -429,8 +431,8 @@ func (ta *jsTriggerAction) IsTriggerGPIOIn() bool {
|
||||
func (ta *jsTriggerAction) IsTriggerGroupReceive() bool {
|
||||
return ta.TriggerType == TriggerGroupReceive
|
||||
}
|
||||
func (ta *jsTriggerAction) IsTriggerGroupReceiveSequence() bool {
|
||||
return ta.TriggerType == TriggerGroupReceiveSequence
|
||||
func (ta *jsTriggerAction) IsTriggerGroupReceiveMulti() bool {
|
||||
return ta.TriggerType == TriggerGroupReceiveMulti
|
||||
}
|
||||
|
||||
|
||||
@ -477,12 +479,30 @@ type jsTriggerGroupReceive struct {
|
||||
GroupName string `js:"GroupName"`
|
||||
Value int32 `js:"Value"`
|
||||
}
|
||||
type jsTriggerGroupReceiveSequence struct {
|
||||
|
||||
type jsTriggerGroupReceiveMulti struct {
|
||||
*js.Object
|
||||
GroupName string `js:"GroupName"`
|
||||
IgnoreOutOfOrder bool `js:"IgnoreOutOfOrder"`
|
||||
ValueSequence []int32 `js:"ValueSequence"`
|
||||
GroupName string `js:"GroupName"`
|
||||
Type GroupReceiveMultiType `js:"Type"`
|
||||
Values []int32 `js:"Values"`
|
||||
}
|
||||
type GroupReceiveMultiType int
|
||||
const (
|
||||
GroupReceiveMultiType_SEQUENCE GroupReceiveMultiType = 0
|
||||
GroupReceiveMultiType_AND GroupReceiveMultiType = 1
|
||||
GroupReceiveMultiType_OR GroupReceiveMultiType = 2
|
||||
GroupReceiveMultiType_EXACT_SEQUENCE GroupReceiveMultiType = 3
|
||||
)
|
||||
var groupReceiveMultiNames = map[GroupReceiveMultiType]string{
|
||||
GroupReceiveMultiType_SEQUENCE: "Ordered Sequence (out-of-oreder values allowed)",
|
||||
GroupReceiveMultiType_AND: "All (logical AND)",
|
||||
GroupReceiveMultiType_OR: "One of (logical OR)",
|
||||
GroupReceiveMultiType_EXACT_SEQUENCE: "Exact ordered sequence",
|
||||
}
|
||||
var availableGroupReceiveMulti = []GroupReceiveMultiType{GroupReceiveMultiType_SEQUENCE, GroupReceiveMultiType_EXACT_SEQUENCE, GroupReceiveMultiType_AND, GroupReceiveMultiType_OR}
|
||||
|
||||
|
||||
|
||||
type jsTriggerGPIOIn struct {
|
||||
*js.Object
|
||||
GpioNum GPIONum `js:"GpioNum"`
|
||||
|
Loading…
x
Reference in New Issue
Block a user