From 15b2e95f018874089304c14e4272423550410bcd Mon Sep 17 00:00:00 2001 From: sriv Date: Mon, 19 Nov 2018 16:47:57 +0530 Subject: [PATCH 1/3] allow support for streaming chunks to html-report, #1239 --- .gitignore | 3 +- gauge-proto | 2 +- gauge_messages/messages.pb.go | 671 ++++++++++++++----------- gauge_messages/spec.pb.go | 534 ++++++++++++-------- generator/_testdata/benchmark/.gitkeep | 0 generator/e2e_test.go | 10 +- generator/generate.go | 98 +--- generator/generate_test.go | 15 + generator/search.go | 121 +++++ generator/transform.go | 31 +- generator/transform_test.go | 17 +- htmlReport.go | 44 +- listener/gaugeListener.go | 24 +- plugin.json | 5 +- regenerate/regenerate.go | 2 +- 15 files changed, 976 insertions(+), 601 deletions(-) create mode 100644 generator/_testdata/benchmark/.gitkeep create mode 100644 generator/search.go diff --git a/.gitignore b/.gitignore index ebc5eb6..e9bf8b5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ deploy .idea bin *.iml -.DS_Store \ No newline at end of file +.DS_Store +generator/_testdata/benchmark/*.html diff --git a/gauge-proto b/gauge-proto index 5dc343c..d16ae1a 160000 --- a/gauge-proto +++ b/gauge-proto @@ -1 +1 @@ -Subproject commit 5dc343c6567076292afb6ab44b35bbced2d1fff6 +Subproject commit d16ae1a4b4dbd35db28461aab2a8d305fec2c70f diff --git a/gauge_messages/messages.pb.go b/gauge_messages/messages.pb.go index 12f07ab..1ba1aa4 100644 --- a/gauge_messages/messages.pb.go +++ b/gauge_messages/messages.pb.go @@ -3,9 +3,11 @@ package gauge_messages -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +import ( + fmt "fmt" + proto "github.com/golang/protobuf/proto" + math "math" +) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -29,6 +31,7 @@ var StepValidateResponse_ErrorType_name = map[int32]string{ 0: "STEP_IMPLEMENTATION_NOT_FOUND", 1: "DUPLICATE_STEP_IMPLEMENTATION", } + var StepValidateResponse_ErrorType_value = map[string]int32{ "STEP_IMPLEMENTATION_NOT_FOUND": 0, "DUPLICATE_STEP_IMPLEMENTATION": 1, @@ -37,8 +40,9 @@ var StepValidateResponse_ErrorType_value = map[string]int32{ func (x StepValidateResponse_ErrorType) String() string { return proto.EnumName(StepValidateResponse_ErrorType_name, int32(x)) } + func (StepValidateResponse_ErrorType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{16, 0} + return fileDescriptor_4dc296cbfe5ffcd5, []int{16, 0} } type CacheFileRequest_FileStatus int32 @@ -63,6 +67,7 @@ var CacheFileRequest_FileStatus_name = map[int32]string{ 3: "DELETED", 4: "OPENED", } + var CacheFileRequest_FileStatus_value = map[string]int32{ "CHANGED": 0, "CLOSED": 1, @@ -74,8 +79,9 @@ var CacheFileRequest_FileStatus_value = map[string]int32{ func (x CacheFileRequest_FileStatus) String() string { return proto.EnumName(CacheFileRequest_FileStatus_name, int32(x)) } + func (CacheFileRequest_FileStatus) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{30, 0} + return fileDescriptor_4dc296cbfe5ffcd5, []int{31, 0} } type Message_MessageType int32 @@ -114,6 +120,7 @@ const ( Message_FileDiff Message_MessageType = 30 Message_ImplementationFileGlobPatternRequest Message_MessageType = 31 Message_ImplementationFileGlobPatternResponse Message_MessageType = 32 + Message_SuiteExecutionResultItem Message_MessageType = 33 ) var Message_MessageType_name = map[int32]string{ @@ -150,7 +157,9 @@ var Message_MessageType_name = map[int32]string{ 30: "FileDiff", 31: "ImplementationFileGlobPatternRequest", 32: "ImplementationFileGlobPatternResponse", + 33: "SuiteExecutionResultItem", } + var Message_MessageType_value = map[string]int32{ "ExecutionStarting": 0, "SpecExecutionStarting": 1, @@ -185,13 +194,15 @@ var Message_MessageType_value = map[string]int32{ "FileDiff": 30, "ImplementationFileGlobPatternRequest": 31, "ImplementationFileGlobPatternResponse": 32, + "SuiteExecutionResultItem": 33, } func (x Message_MessageType) String() string { return proto.EnumName(Message_MessageType_name, int32(x)) } + func (Message_MessageType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{40, 0} + return fileDescriptor_4dc296cbfe5ffcd5, []int{41, 0} } // / Default request. Tells the runner to shutdown. @@ -205,16 +216,17 @@ func (m *KillProcessRequest) Reset() { *m = KillProcessRequest{} } func (m *KillProcessRequest) String() string { return proto.CompactTextString(m) } func (*KillProcessRequest) ProtoMessage() {} func (*KillProcessRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{0} + return fileDescriptor_4dc296cbfe5ffcd5, []int{0} } + func (m *KillProcessRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KillProcessRequest.Unmarshal(m, b) } func (m *KillProcessRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_KillProcessRequest.Marshal(b, m, deterministic) } -func (dst *KillProcessRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_KillProcessRequest.Merge(dst, src) +func (m *KillProcessRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_KillProcessRequest.Merge(m, src) } func (m *KillProcessRequest) XXX_Size() int { return xxx_messageInfo_KillProcessRequest.Size(m) @@ -238,16 +250,17 @@ func (m *ExecutionStatusResponse) Reset() { *m = ExecutionStatusResponse func (m *ExecutionStatusResponse) String() string { return proto.CompactTextString(m) } func (*ExecutionStatusResponse) ProtoMessage() {} func (*ExecutionStatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{1} + return fileDescriptor_4dc296cbfe5ffcd5, []int{1} } + func (m *ExecutionStatusResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecutionStatusResponse.Unmarshal(m, b) } func (m *ExecutionStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ExecutionStatusResponse.Marshal(b, m, deterministic) } -func (dst *ExecutionStatusResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExecutionStatusResponse.Merge(dst, src) +func (m *ExecutionStatusResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExecutionStatusResponse.Merge(m, src) } func (m *ExecutionStatusResponse) XXX_Size() int { return xxx_messageInfo_ExecutionStatusResponse.Size(m) @@ -277,16 +290,17 @@ func (m *ExecutionStartingRequest) Reset() { *m = ExecutionStartingReque func (m *ExecutionStartingRequest) String() string { return proto.CompactTextString(m) } func (*ExecutionStartingRequest) ProtoMessage() {} func (*ExecutionStartingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{2} + return fileDescriptor_4dc296cbfe5ffcd5, []int{2} } + func (m *ExecutionStartingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecutionStartingRequest.Unmarshal(m, b) } func (m *ExecutionStartingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ExecutionStartingRequest.Marshal(b, m, deterministic) } -func (dst *ExecutionStartingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExecutionStartingRequest.Merge(dst, src) +func (m *ExecutionStartingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExecutionStartingRequest.Merge(m, src) } func (m *ExecutionStartingRequest) XXX_Size() int { return xxx_messageInfo_ExecutionStartingRequest.Size(m) @@ -316,16 +330,17 @@ func (m *ExecutionEndingRequest) Reset() { *m = ExecutionEndingRequest{} func (m *ExecutionEndingRequest) String() string { return proto.CompactTextString(m) } func (*ExecutionEndingRequest) ProtoMessage() {} func (*ExecutionEndingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{3} + return fileDescriptor_4dc296cbfe5ffcd5, []int{3} } + func (m *ExecutionEndingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecutionEndingRequest.Unmarshal(m, b) } func (m *ExecutionEndingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ExecutionEndingRequest.Marshal(b, m, deterministic) } -func (dst *ExecutionEndingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExecutionEndingRequest.Merge(dst, src) +func (m *ExecutionEndingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExecutionEndingRequest.Merge(m, src) } func (m *ExecutionEndingRequest) XXX_Size() int { return xxx_messageInfo_ExecutionEndingRequest.Size(m) @@ -355,16 +370,17 @@ func (m *SpecExecutionStartingRequest) Reset() { *m = SpecExecutionStart func (m *SpecExecutionStartingRequest) String() string { return proto.CompactTextString(m) } func (*SpecExecutionStartingRequest) ProtoMessage() {} func (*SpecExecutionStartingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{4} + return fileDescriptor_4dc296cbfe5ffcd5, []int{4} } + func (m *SpecExecutionStartingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SpecExecutionStartingRequest.Unmarshal(m, b) } func (m *SpecExecutionStartingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SpecExecutionStartingRequest.Marshal(b, m, deterministic) } -func (dst *SpecExecutionStartingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SpecExecutionStartingRequest.Merge(dst, src) +func (m *SpecExecutionStartingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpecExecutionStartingRequest.Merge(m, src) } func (m *SpecExecutionStartingRequest) XXX_Size() int { return xxx_messageInfo_SpecExecutionStartingRequest.Size(m) @@ -394,16 +410,17 @@ func (m *SpecExecutionEndingRequest) Reset() { *m = SpecExecutionEndingR func (m *SpecExecutionEndingRequest) String() string { return proto.CompactTextString(m) } func (*SpecExecutionEndingRequest) ProtoMessage() {} func (*SpecExecutionEndingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{5} + return fileDescriptor_4dc296cbfe5ffcd5, []int{5} } + func (m *SpecExecutionEndingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SpecExecutionEndingRequest.Unmarshal(m, b) } func (m *SpecExecutionEndingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SpecExecutionEndingRequest.Marshal(b, m, deterministic) } -func (dst *SpecExecutionEndingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SpecExecutionEndingRequest.Merge(dst, src) +func (m *SpecExecutionEndingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpecExecutionEndingRequest.Merge(m, src) } func (m *SpecExecutionEndingRequest) XXX_Size() int { return xxx_messageInfo_SpecExecutionEndingRequest.Size(m) @@ -433,16 +450,17 @@ func (m *ScenarioExecutionStartingRequest) Reset() { *m = ScenarioExecut func (m *ScenarioExecutionStartingRequest) String() string { return proto.CompactTextString(m) } func (*ScenarioExecutionStartingRequest) ProtoMessage() {} func (*ScenarioExecutionStartingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{6} + return fileDescriptor_4dc296cbfe5ffcd5, []int{6} } + func (m *ScenarioExecutionStartingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ScenarioExecutionStartingRequest.Unmarshal(m, b) } func (m *ScenarioExecutionStartingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ScenarioExecutionStartingRequest.Marshal(b, m, deterministic) } -func (dst *ScenarioExecutionStartingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScenarioExecutionStartingRequest.Merge(dst, src) +func (m *ScenarioExecutionStartingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScenarioExecutionStartingRequest.Merge(m, src) } func (m *ScenarioExecutionStartingRequest) XXX_Size() int { return xxx_messageInfo_ScenarioExecutionStartingRequest.Size(m) @@ -472,16 +490,17 @@ func (m *ScenarioExecutionEndingRequest) Reset() { *m = ScenarioExecutio func (m *ScenarioExecutionEndingRequest) String() string { return proto.CompactTextString(m) } func (*ScenarioExecutionEndingRequest) ProtoMessage() {} func (*ScenarioExecutionEndingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{7} + return fileDescriptor_4dc296cbfe5ffcd5, []int{7} } + func (m *ScenarioExecutionEndingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ScenarioExecutionEndingRequest.Unmarshal(m, b) } func (m *ScenarioExecutionEndingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ScenarioExecutionEndingRequest.Marshal(b, m, deterministic) } -func (dst *ScenarioExecutionEndingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScenarioExecutionEndingRequest.Merge(dst, src) +func (m *ScenarioExecutionEndingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScenarioExecutionEndingRequest.Merge(m, src) } func (m *ScenarioExecutionEndingRequest) XXX_Size() int { return xxx_messageInfo_ScenarioExecutionEndingRequest.Size(m) @@ -511,16 +530,17 @@ func (m *StepExecutionStartingRequest) Reset() { *m = StepExecutionStart func (m *StepExecutionStartingRequest) String() string { return proto.CompactTextString(m) } func (*StepExecutionStartingRequest) ProtoMessage() {} func (*StepExecutionStartingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{8} + return fileDescriptor_4dc296cbfe5ffcd5, []int{8} } + func (m *StepExecutionStartingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepExecutionStartingRequest.Unmarshal(m, b) } func (m *StepExecutionStartingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepExecutionStartingRequest.Marshal(b, m, deterministic) } -func (dst *StepExecutionStartingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepExecutionStartingRequest.Merge(dst, src) +func (m *StepExecutionStartingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepExecutionStartingRequest.Merge(m, src) } func (m *StepExecutionStartingRequest) XXX_Size() int { return xxx_messageInfo_StepExecutionStartingRequest.Size(m) @@ -550,16 +570,17 @@ func (m *StepExecutionEndingRequest) Reset() { *m = StepExecutionEndingR func (m *StepExecutionEndingRequest) String() string { return proto.CompactTextString(m) } func (*StepExecutionEndingRequest) ProtoMessage() {} func (*StepExecutionEndingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{9} + return fileDescriptor_4dc296cbfe5ffcd5, []int{9} } + func (m *StepExecutionEndingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepExecutionEndingRequest.Unmarshal(m, b) } func (m *StepExecutionEndingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepExecutionEndingRequest.Marshal(b, m, deterministic) } -func (dst *StepExecutionEndingRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepExecutionEndingRequest.Merge(dst, src) +func (m *StepExecutionEndingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepExecutionEndingRequest.Merge(m, src) } func (m *StepExecutionEndingRequest) XXX_Size() int { return xxx_messageInfo_StepExecutionEndingRequest.Size(m) @@ -597,16 +618,17 @@ func (m *ExecutionInfo) Reset() { *m = ExecutionInfo{} } func (m *ExecutionInfo) String() string { return proto.CompactTextString(m) } func (*ExecutionInfo) ProtoMessage() {} func (*ExecutionInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{10} + return fileDescriptor_4dc296cbfe5ffcd5, []int{10} } + func (m *ExecutionInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecutionInfo.Unmarshal(m, b) } func (m *ExecutionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ExecutionInfo.Marshal(b, m, deterministic) } -func (dst *ExecutionInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExecutionInfo.Merge(dst, src) +func (m *ExecutionInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExecutionInfo.Merge(m, src) } func (m *ExecutionInfo) XXX_Size() int { return xxx_messageInfo_ExecutionInfo.Size(m) @@ -664,16 +686,17 @@ func (m *SpecInfo) Reset() { *m = SpecInfo{} } func (m *SpecInfo) String() string { return proto.CompactTextString(m) } func (*SpecInfo) ProtoMessage() {} func (*SpecInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{11} + return fileDescriptor_4dc296cbfe5ffcd5, []int{11} } + func (m *SpecInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SpecInfo.Unmarshal(m, b) } func (m *SpecInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SpecInfo.Marshal(b, m, deterministic) } -func (dst *SpecInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_SpecInfo.Merge(dst, src) +func (m *SpecInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpecInfo.Merge(m, src) } func (m *SpecInfo) XXX_Size() int { return xxx_messageInfo_SpecInfo.Size(m) @@ -729,16 +752,17 @@ func (m *ScenarioInfo) Reset() { *m = ScenarioInfo{} } func (m *ScenarioInfo) String() string { return proto.CompactTextString(m) } func (*ScenarioInfo) ProtoMessage() {} func (*ScenarioInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{12} + return fileDescriptor_4dc296cbfe5ffcd5, []int{12} } + func (m *ScenarioInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ScenarioInfo.Unmarshal(m, b) } func (m *ScenarioInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ScenarioInfo.Marshal(b, m, deterministic) } -func (dst *ScenarioInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScenarioInfo.Merge(dst, src) +func (m *ScenarioInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScenarioInfo.Merge(m, src) } func (m *ScenarioInfo) XXX_Size() int { return xxx_messageInfo_ScenarioInfo.Size(m) @@ -789,16 +813,17 @@ func (m *StepInfo) Reset() { *m = StepInfo{} } func (m *StepInfo) String() string { return proto.CompactTextString(m) } func (*StepInfo) ProtoMessage() {} func (*StepInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{13} + return fileDescriptor_4dc296cbfe5ffcd5, []int{13} } + func (m *StepInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepInfo.Unmarshal(m, b) } func (m *StepInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepInfo.Marshal(b, m, deterministic) } -func (dst *StepInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepInfo.Merge(dst, src) +func (m *StepInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepInfo.Merge(m, src) } func (m *StepInfo) XXX_Size() int { return xxx_messageInfo_StepInfo.Size(m) @@ -858,16 +883,17 @@ func (m *ExecuteStepRequest) Reset() { *m = ExecuteStepRequest{} } func (m *ExecuteStepRequest) String() string { return proto.CompactTextString(m) } func (*ExecuteStepRequest) ProtoMessage() {} func (*ExecuteStepRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{14} + return fileDescriptor_4dc296cbfe5ffcd5, []int{14} } + func (m *ExecuteStepRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecuteStepRequest.Unmarshal(m, b) } func (m *ExecuteStepRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ExecuteStepRequest.Marshal(b, m, deterministic) } -func (dst *ExecuteStepRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExecuteStepRequest.Merge(dst, src) +func (m *ExecuteStepRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExecuteStepRequest.Merge(m, src) } func (m *ExecuteStepRequest) XXX_Size() int { return xxx_messageInfo_ExecuteStepRequest.Size(m) @@ -924,16 +950,17 @@ func (m *StepValidateRequest) Reset() { *m = StepValidateRequest{} } func (m *StepValidateRequest) String() string { return proto.CompactTextString(m) } func (*StepValidateRequest) ProtoMessage() {} func (*StepValidateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{15} + return fileDescriptor_4dc296cbfe5ffcd5, []int{15} } + func (m *StepValidateRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepValidateRequest.Unmarshal(m, b) } func (m *StepValidateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepValidateRequest.Marshal(b, m, deterministic) } -func (dst *StepValidateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepValidateRequest.Merge(dst, src) +func (m *StepValidateRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepValidateRequest.Merge(m, src) } func (m *StepValidateRequest) XXX_Size() int { return xxx_messageInfo_StepValidateRequest.Size(m) @@ -983,16 +1010,17 @@ func (m *StepValidateResponse) Reset() { *m = StepValidateResponse{} } func (m *StepValidateResponse) String() string { return proto.CompactTextString(m) } func (*StepValidateResponse) ProtoMessage() {} func (*StepValidateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{16} + return fileDescriptor_4dc296cbfe5ffcd5, []int{16} } + func (m *StepValidateResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepValidateResponse.Unmarshal(m, b) } func (m *StepValidateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepValidateResponse.Marshal(b, m, deterministic) } -func (dst *StepValidateResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepValidateResponse.Merge(dst, src) +func (m *StepValidateResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepValidateResponse.Merge(m, src) } func (m *StepValidateResponse) XXX_Size() int { return xxx_messageInfo_StepValidateResponse.Size(m) @@ -1043,16 +1071,17 @@ func (m *SuiteExecutionResult) Reset() { *m = SuiteExecutionResult{} } func (m *SuiteExecutionResult) String() string { return proto.CompactTextString(m) } func (*SuiteExecutionResult) ProtoMessage() {} func (*SuiteExecutionResult) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{17} + return fileDescriptor_4dc296cbfe5ffcd5, []int{17} } + func (m *SuiteExecutionResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SuiteExecutionResult.Unmarshal(m, b) } func (m *SuiteExecutionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SuiteExecutionResult.Marshal(b, m, deterministic) } -func (dst *SuiteExecutionResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_SuiteExecutionResult.Merge(dst, src) +func (m *SuiteExecutionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuiteExecutionResult.Merge(m, src) } func (m *SuiteExecutionResult) XXX_Size() int { return xxx_messageInfo_SuiteExecutionResult.Size(m) @@ -1070,6 +1099,45 @@ func (m *SuiteExecutionResult) GetSuiteResult() *ProtoSuiteResult { return nil } +type SuiteExecutionResultItem struct { + ResultItem *ProtoItem `protobuf:"bytes,1,opt,name=resultItem,proto3" json:"resultItem,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SuiteExecutionResultItem) Reset() { *m = SuiteExecutionResultItem{} } +func (m *SuiteExecutionResultItem) String() string { return proto.CompactTextString(m) } +func (*SuiteExecutionResultItem) ProtoMessage() {} +func (*SuiteExecutionResultItem) Descriptor() ([]byte, []int) { + return fileDescriptor_4dc296cbfe5ffcd5, []int{18} +} + +func (m *SuiteExecutionResultItem) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SuiteExecutionResultItem.Unmarshal(m, b) +} +func (m *SuiteExecutionResultItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SuiteExecutionResultItem.Marshal(b, m, deterministic) +} +func (m *SuiteExecutionResultItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuiteExecutionResultItem.Merge(m, src) +} +func (m *SuiteExecutionResultItem) XXX_Size() int { + return xxx_messageInfo_SuiteExecutionResultItem.Size(m) +} +func (m *SuiteExecutionResultItem) XXX_DiscardUnknown() { + xxx_messageInfo_SuiteExecutionResultItem.DiscardUnknown(m) +} + +var xxx_messageInfo_SuiteExecutionResultItem proto.InternalMessageInfo + +func (m *SuiteExecutionResultItem) GetResultItem() *ProtoItem { + if m != nil { + return m.ResultItem + } + return nil +} + // / Requests Gauge to give all Step Names. type StepNamesRequest struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1081,16 +1149,17 @@ func (m *StepNamesRequest) Reset() { *m = StepNamesRequest{} } func (m *StepNamesRequest) String() string { return proto.CompactTextString(m) } func (*StepNamesRequest) ProtoMessage() {} func (*StepNamesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{18} + return fileDescriptor_4dc296cbfe5ffcd5, []int{19} } + func (m *StepNamesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepNamesRequest.Unmarshal(m, b) } func (m *StepNamesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepNamesRequest.Marshal(b, m, deterministic) } -func (dst *StepNamesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepNamesRequest.Merge(dst, src) +func (m *StepNamesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepNamesRequest.Merge(m, src) } func (m *StepNamesRequest) XXX_Size() int { return xxx_messageInfo_StepNamesRequest.Size(m) @@ -1114,16 +1183,17 @@ func (m *StepNamesResponse) Reset() { *m = StepNamesResponse{} } func (m *StepNamesResponse) String() string { return proto.CompactTextString(m) } func (*StepNamesResponse) ProtoMessage() {} func (*StepNamesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{19} + return fileDescriptor_4dc296cbfe5ffcd5, []int{20} } + func (m *StepNamesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepNamesResponse.Unmarshal(m, b) } func (m *StepNamesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepNamesResponse.Marshal(b, m, deterministic) } -func (dst *StepNamesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepNamesResponse.Merge(dst, src) +func (m *StepNamesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepNamesResponse.Merge(m, src) } func (m *StepNamesResponse) XXX_Size() int { return xxx_messageInfo_StepNamesResponse.Size(m) @@ -1153,16 +1223,17 @@ func (m *ScenarioDataStoreInitRequest) Reset() { *m = ScenarioDataStoreI func (m *ScenarioDataStoreInitRequest) String() string { return proto.CompactTextString(m) } func (*ScenarioDataStoreInitRequest) ProtoMessage() {} func (*ScenarioDataStoreInitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{20} + return fileDescriptor_4dc296cbfe5ffcd5, []int{21} } + func (m *ScenarioDataStoreInitRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ScenarioDataStoreInitRequest.Unmarshal(m, b) } func (m *ScenarioDataStoreInitRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ScenarioDataStoreInitRequest.Marshal(b, m, deterministic) } -func (dst *ScenarioDataStoreInitRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScenarioDataStoreInitRequest.Merge(dst, src) +func (m *ScenarioDataStoreInitRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScenarioDataStoreInitRequest.Merge(m, src) } func (m *ScenarioDataStoreInitRequest) XXX_Size() int { return xxx_messageInfo_ScenarioDataStoreInitRequest.Size(m) @@ -1185,16 +1256,17 @@ func (m *SpecDataStoreInitRequest) Reset() { *m = SpecDataStoreInitReque func (m *SpecDataStoreInitRequest) String() string { return proto.CompactTextString(m) } func (*SpecDataStoreInitRequest) ProtoMessage() {} func (*SpecDataStoreInitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{21} + return fileDescriptor_4dc296cbfe5ffcd5, []int{22} } + func (m *SpecDataStoreInitRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SpecDataStoreInitRequest.Unmarshal(m, b) } func (m *SpecDataStoreInitRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SpecDataStoreInitRequest.Marshal(b, m, deterministic) } -func (dst *SpecDataStoreInitRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SpecDataStoreInitRequest.Merge(dst, src) +func (m *SpecDataStoreInitRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpecDataStoreInitRequest.Merge(m, src) } func (m *SpecDataStoreInitRequest) XXX_Size() int { return xxx_messageInfo_SpecDataStoreInitRequest.Size(m) @@ -1217,16 +1289,17 @@ func (m *SuiteDataStoreInitRequest) Reset() { *m = SuiteDataStoreInitReq func (m *SuiteDataStoreInitRequest) String() string { return proto.CompactTextString(m) } func (*SuiteDataStoreInitRequest) ProtoMessage() {} func (*SuiteDataStoreInitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{22} + return fileDescriptor_4dc296cbfe5ffcd5, []int{23} } + func (m *SuiteDataStoreInitRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SuiteDataStoreInitRequest.Unmarshal(m, b) } func (m *SuiteDataStoreInitRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_SuiteDataStoreInitRequest.Marshal(b, m, deterministic) } -func (dst *SuiteDataStoreInitRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SuiteDataStoreInitRequest.Merge(dst, src) +func (m *SuiteDataStoreInitRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuiteDataStoreInitRequest.Merge(m, src) } func (m *SuiteDataStoreInitRequest) XXX_Size() int { return xxx_messageInfo_SuiteDataStoreInitRequest.Size(m) @@ -1251,16 +1324,17 @@ func (m *ParameterPosition) Reset() { *m = ParameterPosition{} } func (m *ParameterPosition) String() string { return proto.CompactTextString(m) } func (*ParameterPosition) ProtoMessage() {} func (*ParameterPosition) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{23} + return fileDescriptor_4dc296cbfe5ffcd5, []int{24} } + func (m *ParameterPosition) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParameterPosition.Unmarshal(m, b) } func (m *ParameterPosition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ParameterPosition.Marshal(b, m, deterministic) } -func (dst *ParameterPosition) XXX_Merge(src proto.Message) { - xxx_messageInfo_ParameterPosition.Merge(dst, src) +func (m *ParameterPosition) XXX_Merge(src proto.Message) { + xxx_messageInfo_ParameterPosition.Merge(m, src) } func (m *ParameterPosition) XXX_Size() int { return xxx_messageInfo_ParameterPosition.Size(m) @@ -1304,16 +1378,17 @@ func (m *RefactorRequest) Reset() { *m = RefactorRequest{} } func (m *RefactorRequest) String() string { return proto.CompactTextString(m) } func (*RefactorRequest) ProtoMessage() {} func (*RefactorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{24} + return fileDescriptor_4dc296cbfe5ffcd5, []int{25} } + func (m *RefactorRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RefactorRequest.Unmarshal(m, b) } func (m *RefactorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_RefactorRequest.Marshal(b, m, deterministic) } -func (dst *RefactorRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RefactorRequest.Merge(dst, src) +func (m *RefactorRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RefactorRequest.Merge(m, src) } func (m *RefactorRequest) XXX_Size() int { return xxx_messageInfo_RefactorRequest.Size(m) @@ -1366,16 +1441,17 @@ func (m *FileChanges) Reset() { *m = FileChanges{} } func (m *FileChanges) String() string { return proto.CompactTextString(m) } func (*FileChanges) ProtoMessage() {} func (*FileChanges) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{25} + return fileDescriptor_4dc296cbfe5ffcd5, []int{26} } + func (m *FileChanges) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FileChanges.Unmarshal(m, b) } func (m *FileChanges) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FileChanges.Marshal(b, m, deterministic) } -func (dst *FileChanges) XXX_Merge(src proto.Message) { - xxx_messageInfo_FileChanges.Merge(dst, src) +func (m *FileChanges) XXX_Merge(src proto.Message) { + xxx_messageInfo_FileChanges.Merge(m, src) } func (m *FileChanges) XXX_Size() int { return xxx_messageInfo_FileChanges.Size(m) @@ -1427,16 +1503,17 @@ func (m *RefactorResponse) Reset() { *m = RefactorResponse{} } func (m *RefactorResponse) String() string { return proto.CompactTextString(m) } func (*RefactorResponse) ProtoMessage() {} func (*RefactorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{26} + return fileDescriptor_4dc296cbfe5ffcd5, []int{27} } + func (m *RefactorResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RefactorResponse.Unmarshal(m, b) } func (m *RefactorResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_RefactorResponse.Marshal(b, m, deterministic) } -func (dst *RefactorResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_RefactorResponse.Merge(dst, src) +func (m *RefactorResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RefactorResponse.Merge(m, src) } func (m *RefactorResponse) XXX_Size() int { return xxx_messageInfo_RefactorResponse.Size(m) @@ -1489,16 +1566,17 @@ func (m *StepNameRequest) Reset() { *m = StepNameRequest{} } func (m *StepNameRequest) String() string { return proto.CompactTextString(m) } func (*StepNameRequest) ProtoMessage() {} func (*StepNameRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{27} + return fileDescriptor_4dc296cbfe5ffcd5, []int{28} } + func (m *StepNameRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepNameRequest.Unmarshal(m, b) } func (m *StepNameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepNameRequest.Marshal(b, m, deterministic) } -func (dst *StepNameRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepNameRequest.Merge(dst, src) +func (m *StepNameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepNameRequest.Merge(m, src) } func (m *StepNameRequest) XXX_Size() int { return xxx_messageInfo_StepNameRequest.Size(m) @@ -1537,16 +1615,17 @@ func (m *StepNameResponse) Reset() { *m = StepNameResponse{} } func (m *StepNameResponse) String() string { return proto.CompactTextString(m) } func (*StepNameResponse) ProtoMessage() {} func (*StepNameResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{28} + return fileDescriptor_4dc296cbfe5ffcd5, []int{29} } + func (m *StepNameResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepNameResponse.Unmarshal(m, b) } func (m *StepNameResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepNameResponse.Marshal(b, m, deterministic) } -func (dst *StepNameResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepNameResponse.Merge(dst, src) +func (m *StepNameResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepNameResponse.Merge(m, src) } func (m *StepNameResponse) XXX_Size() int { return xxx_messageInfo_StepNameResponse.Size(m) @@ -1604,16 +1683,17 @@ func (m *UnsupportedMessageResponse) Reset() { *m = UnsupportedMessageRe func (m *UnsupportedMessageResponse) String() string { return proto.CompactTextString(m) } func (*UnsupportedMessageResponse) ProtoMessage() {} func (*UnsupportedMessageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{29} + return fileDescriptor_4dc296cbfe5ffcd5, []int{30} } + func (m *UnsupportedMessageResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnsupportedMessageResponse.Unmarshal(m, b) } func (m *UnsupportedMessageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_UnsupportedMessageResponse.Marshal(b, m, deterministic) } -func (dst *UnsupportedMessageResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UnsupportedMessageResponse.Merge(dst, src) +func (m *UnsupportedMessageResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnsupportedMessageResponse.Merge(m, src) } func (m *UnsupportedMessageResponse) XXX_Size() int { return xxx_messageInfo_UnsupportedMessageResponse.Size(m) @@ -1652,16 +1732,17 @@ func (m *CacheFileRequest) Reset() { *m = CacheFileRequest{} } func (m *CacheFileRequest) String() string { return proto.CompactTextString(m) } func (*CacheFileRequest) ProtoMessage() {} func (*CacheFileRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{30} + return fileDescriptor_4dc296cbfe5ffcd5, []int{31} } + func (m *CacheFileRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CacheFileRequest.Unmarshal(m, b) } func (m *CacheFileRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_CacheFileRequest.Marshal(b, m, deterministic) } -func (dst *CacheFileRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CacheFileRequest.Merge(dst, src) +func (m *CacheFileRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CacheFileRequest.Merge(m, src) } func (m *CacheFileRequest) XXX_Size() int { return xxx_messageInfo_CacheFileRequest.Size(m) @@ -1713,16 +1794,17 @@ func (m *StepPositionsRequest) Reset() { *m = StepPositionsRequest{} } func (m *StepPositionsRequest) String() string { return proto.CompactTextString(m) } func (*StepPositionsRequest) ProtoMessage() {} func (*StepPositionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{31} + return fileDescriptor_4dc296cbfe5ffcd5, []int{32} } + func (m *StepPositionsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepPositionsRequest.Unmarshal(m, b) } func (m *StepPositionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepPositionsRequest.Marshal(b, m, deterministic) } -func (dst *StepPositionsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepPositionsRequest.Merge(dst, src) +func (m *StepPositionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepPositionsRequest.Merge(m, src) } func (m *StepPositionsRequest) XXX_Size() int { return xxx_messageInfo_StepPositionsRequest.Size(m) @@ -1755,16 +1837,17 @@ func (m *StepPositionsResponse) Reset() { *m = StepPositionsResponse{} } func (m *StepPositionsResponse) String() string { return proto.CompactTextString(m) } func (*StepPositionsResponse) ProtoMessage() {} func (*StepPositionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{32} + return fileDescriptor_4dc296cbfe5ffcd5, []int{33} } + func (m *StepPositionsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepPositionsResponse.Unmarshal(m, b) } func (m *StepPositionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepPositionsResponse.Marshal(b, m, deterministic) } -func (dst *StepPositionsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepPositionsResponse.Merge(dst, src) +func (m *StepPositionsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepPositionsResponse.Merge(m, src) } func (m *StepPositionsResponse) XXX_Size() int { return xxx_messageInfo_StepPositionsResponse.Size(m) @@ -1804,16 +1887,17 @@ func (m *StepPositionsResponse_StepPosition) Reset() { *m = StepPosition func (m *StepPositionsResponse_StepPosition) String() string { return proto.CompactTextString(m) } func (*StepPositionsResponse_StepPosition) ProtoMessage() {} func (*StepPositionsResponse_StepPosition) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{32, 0} + return fileDescriptor_4dc296cbfe5ffcd5, []int{33, 0} } + func (m *StepPositionsResponse_StepPosition) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StepPositionsResponse_StepPosition.Unmarshal(m, b) } func (m *StepPositionsResponse_StepPosition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StepPositionsResponse_StepPosition.Marshal(b, m, deterministic) } -func (dst *StepPositionsResponse_StepPosition) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepPositionsResponse_StepPosition.Merge(dst, src) +func (m *StepPositionsResponse_StepPosition) XXX_Merge(src proto.Message) { + xxx_messageInfo_StepPositionsResponse_StepPosition.Merge(m, src) } func (m *StepPositionsResponse_StepPosition) XXX_Size() int { return xxx_messageInfo_StepPositionsResponse_StepPosition.Size(m) @@ -1849,16 +1933,17 @@ func (m *ImplementationFileGlobPatternRequest) Reset() { *m = Implementa func (m *ImplementationFileGlobPatternRequest) String() string { return proto.CompactTextString(m) } func (*ImplementationFileGlobPatternRequest) ProtoMessage() {} func (*ImplementationFileGlobPatternRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{33} + return fileDescriptor_4dc296cbfe5ffcd5, []int{34} } + func (m *ImplementationFileGlobPatternRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImplementationFileGlobPatternRequest.Unmarshal(m, b) } func (m *ImplementationFileGlobPatternRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ImplementationFileGlobPatternRequest.Marshal(b, m, deterministic) } -func (dst *ImplementationFileGlobPatternRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImplementationFileGlobPatternRequest.Merge(dst, src) +func (m *ImplementationFileGlobPatternRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImplementationFileGlobPatternRequest.Merge(m, src) } func (m *ImplementationFileGlobPatternRequest) XXX_Size() int { return xxx_messageInfo_ImplementationFileGlobPatternRequest.Size(m) @@ -1882,16 +1967,17 @@ func (m *ImplementationFileGlobPatternResponse) Reset() { *m = Implement func (m *ImplementationFileGlobPatternResponse) String() string { return proto.CompactTextString(m) } func (*ImplementationFileGlobPatternResponse) ProtoMessage() {} func (*ImplementationFileGlobPatternResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{34} + return fileDescriptor_4dc296cbfe5ffcd5, []int{35} } + func (m *ImplementationFileGlobPatternResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImplementationFileGlobPatternResponse.Unmarshal(m, b) } func (m *ImplementationFileGlobPatternResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ImplementationFileGlobPatternResponse.Marshal(b, m, deterministic) } -func (dst *ImplementationFileGlobPatternResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImplementationFileGlobPatternResponse.Merge(dst, src) +func (m *ImplementationFileGlobPatternResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImplementationFileGlobPatternResponse.Merge(m, src) } func (m *ImplementationFileGlobPatternResponse) XXX_Size() int { return xxx_messageInfo_ImplementationFileGlobPatternResponse.Size(m) @@ -1920,16 +2006,17 @@ func (m *ImplementationFileListRequest) Reset() { *m = ImplementationFil func (m *ImplementationFileListRequest) String() string { return proto.CompactTextString(m) } func (*ImplementationFileListRequest) ProtoMessage() {} func (*ImplementationFileListRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{35} + return fileDescriptor_4dc296cbfe5ffcd5, []int{36} } + func (m *ImplementationFileListRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImplementationFileListRequest.Unmarshal(m, b) } func (m *ImplementationFileListRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ImplementationFileListRequest.Marshal(b, m, deterministic) } -func (dst *ImplementationFileListRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImplementationFileListRequest.Merge(dst, src) +func (m *ImplementationFileListRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImplementationFileListRequest.Merge(m, src) } func (m *ImplementationFileListRequest) XXX_Size() int { return xxx_messageInfo_ImplementationFileListRequest.Size(m) @@ -1953,16 +2040,17 @@ func (m *ImplementationFileListResponse) Reset() { *m = ImplementationFi func (m *ImplementationFileListResponse) String() string { return proto.CompactTextString(m) } func (*ImplementationFileListResponse) ProtoMessage() {} func (*ImplementationFileListResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{36} + return fileDescriptor_4dc296cbfe5ffcd5, []int{37} } + func (m *ImplementationFileListResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImplementationFileListResponse.Unmarshal(m, b) } func (m *ImplementationFileListResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ImplementationFileListResponse.Marshal(b, m, deterministic) } -func (dst *ImplementationFileListResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImplementationFileListResponse.Merge(dst, src) +func (m *ImplementationFileListResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImplementationFileListResponse.Merge(m, src) } func (m *ImplementationFileListResponse) XXX_Size() int { return xxx_messageInfo_ImplementationFileListResponse.Size(m) @@ -1995,16 +2083,17 @@ func (m *StubImplementationCodeRequest) Reset() { *m = StubImplementatio func (m *StubImplementationCodeRequest) String() string { return proto.CompactTextString(m) } func (*StubImplementationCodeRequest) ProtoMessage() {} func (*StubImplementationCodeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{37} + return fileDescriptor_4dc296cbfe5ffcd5, []int{38} } + func (m *StubImplementationCodeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StubImplementationCodeRequest.Unmarshal(m, b) } func (m *StubImplementationCodeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_StubImplementationCodeRequest.Marshal(b, m, deterministic) } -func (dst *StubImplementationCodeRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_StubImplementationCodeRequest.Merge(dst, src) +func (m *StubImplementationCodeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StubImplementationCodeRequest.Merge(m, src) } func (m *StubImplementationCodeRequest) XXX_Size() int { return xxx_messageInfo_StubImplementationCodeRequest.Size(m) @@ -2044,16 +2133,17 @@ func (m *TextDiff) Reset() { *m = TextDiff{} } func (m *TextDiff) String() string { return proto.CompactTextString(m) } func (*TextDiff) ProtoMessage() {} func (*TextDiff) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{38} + return fileDescriptor_4dc296cbfe5ffcd5, []int{39} } + func (m *TextDiff) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TextDiff.Unmarshal(m, b) } func (m *TextDiff) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_TextDiff.Marshal(b, m, deterministic) } -func (dst *TextDiff) XXX_Merge(src proto.Message) { - xxx_messageInfo_TextDiff.Merge(dst, src) +func (m *TextDiff) XXX_Merge(src proto.Message) { + xxx_messageInfo_TextDiff.Merge(m, src) } func (m *TextDiff) XXX_Size() int { return xxx_messageInfo_TextDiff.Size(m) @@ -2093,16 +2183,17 @@ func (m *FileDiff) Reset() { *m = FileDiff{} } func (m *FileDiff) String() string { return proto.CompactTextString(m) } func (*FileDiff) ProtoMessage() {} func (*FileDiff) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{39} + return fileDescriptor_4dc296cbfe5ffcd5, []int{40} } + func (m *FileDiff) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FileDiff.Unmarshal(m, b) } func (m *FileDiff) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_FileDiff.Marshal(b, m, deterministic) } -func (dst *FileDiff) XXX_Merge(src proto.Message) { - xxx_messageInfo_FileDiff.Merge(dst, src) +func (m *FileDiff) XXX_Merge(src proto.Message) { + xxx_messageInfo_FileDiff.Merge(m, src) } func (m *FileDiff) XXX_Size() int { return xxx_messageInfo_FileDiff.Size(m) @@ -2201,25 +2292,28 @@ type Message struct { ImplementationFileGlobPatternRequest *ImplementationFileGlobPatternRequest `protobuf:"bytes,34,opt,name=implementationFileGlobPatternRequest,proto3" json:"implementationFileGlobPatternRequest,omitempty"` // / [ImplementationFileGlobPatternResponse](#gauge.messages.ImplementationFileGlobPatternResponse) ImplementationFileGlobPatternResponse *ImplementationFileGlobPatternResponse `protobuf:"bytes,35,opt,name=implementationFileGlobPatternResponse,proto3" json:"implementationFileGlobPatternResponse,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // / [SuiteExecutionResult ](#gauge.messages.SuiteExecutionResult ) + SuiteExecutionResultItem *SuiteExecutionResultItem `protobuf:"bytes,36,opt,name=suiteExecutionResultItem,proto3" json:"suiteExecutionResultItem,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { - return fileDescriptor_messages_465b4dd22c0ba0e1, []int{40} + return fileDescriptor_4dc296cbfe5ffcd5, []int{41} } + func (m *Message) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message.Unmarshal(m, b) } func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message.Marshal(b, m, deterministic) } -func (dst *Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_Message.Merge(dst, src) +func (m *Message) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message.Merge(m, src) } func (m *Message) XXX_Size() int { return xxx_messageInfo_Message.Size(m) @@ -2475,7 +2569,17 @@ func (m *Message) GetImplementationFileGlobPatternResponse() *ImplementationFile return nil } +func (m *Message) GetSuiteExecutionResultItem() *SuiteExecutionResultItem { + if m != nil { + return m.SuiteExecutionResultItem + } + return nil +} + func init() { + proto.RegisterEnum("gauge.messages.StepValidateResponse_ErrorType", StepValidateResponse_ErrorType_name, StepValidateResponse_ErrorType_value) + proto.RegisterEnum("gauge.messages.CacheFileRequest_FileStatus", CacheFileRequest_FileStatus_name, CacheFileRequest_FileStatus_value) + proto.RegisterEnum("gauge.messages.Message_MessageType", Message_MessageType_name, Message_MessageType_value) proto.RegisterType((*KillProcessRequest)(nil), "gauge.messages.KillProcessRequest") proto.RegisterType((*ExecutionStatusResponse)(nil), "gauge.messages.ExecutionStatusResponse") proto.RegisterType((*ExecutionStartingRequest)(nil), "gauge.messages.ExecutionStartingRequest") @@ -2494,6 +2598,7 @@ func init() { proto.RegisterType((*StepValidateRequest)(nil), "gauge.messages.StepValidateRequest") proto.RegisterType((*StepValidateResponse)(nil), "gauge.messages.StepValidateResponse") proto.RegisterType((*SuiteExecutionResult)(nil), "gauge.messages.SuiteExecutionResult") + proto.RegisterType((*SuiteExecutionResultItem)(nil), "gauge.messages.SuiteExecutionResultItem") proto.RegisterType((*StepNamesRequest)(nil), "gauge.messages.StepNamesRequest") proto.RegisterType((*StepNamesResponse)(nil), "gauge.messages.StepNamesResponse") proto.RegisterType((*ScenarioDataStoreInitRequest)(nil), "gauge.messages.ScenarioDataStoreInitRequest") @@ -2518,154 +2623,154 @@ func init() { proto.RegisterType((*TextDiff)(nil), "gauge.messages.TextDiff") proto.RegisterType((*FileDiff)(nil), "gauge.messages.FileDiff") proto.RegisterType((*Message)(nil), "gauge.messages.Message") - proto.RegisterEnum("gauge.messages.StepValidateResponse_ErrorType", StepValidateResponse_ErrorType_name, StepValidateResponse_ErrorType_value) - proto.RegisterEnum("gauge.messages.CacheFileRequest_FileStatus", CacheFileRequest_FileStatus_name, CacheFileRequest_FileStatus_value) - proto.RegisterEnum("gauge.messages.Message_MessageType", Message_MessageType_name, Message_MessageType_value) } -func init() { proto.RegisterFile("messages.proto", fileDescriptor_messages_465b4dd22c0ba0e1) } - -var fileDescriptor_messages_465b4dd22c0ba0e1 = []byte{ - // 2252 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xcd, 0x6e, 0x1b, 0xc9, - 0x11, 0xde, 0xa1, 0xfe, 0xa8, 0xa2, 0x2c, 0xb6, 0x5a, 0x94, 0xd4, 0xa2, 0x7e, 0x2c, 0x8d, 0x65, - 0x47, 0xce, 0x0f, 0x13, 0x28, 0x1b, 0x23, 0x09, 0x92, 0x83, 0x2c, 0xd1, 0x8e, 0x60, 0x59, 0xe2, - 0xb6, 0xe4, 0xcd, 0x62, 0x03, 0xac, 0x31, 0x26, 0x5b, 0xd4, 0xac, 0xc9, 0x19, 0xee, 0xf4, 0x70, - 0xbd, 0x01, 0x02, 0xe4, 0x16, 0x04, 0xc8, 0x39, 0xe7, 0x00, 0x01, 0x02, 0x04, 0x79, 0x80, 0xbc, - 0x43, 0x9e, 0x22, 0x8f, 0x90, 0x53, 0x72, 0x0e, 0xba, 0xa7, 0x7b, 0x38, 0x3f, 0x3d, 0x43, 0xed, - 0xc1, 0x3e, 0x59, 0x5d, 0x53, 0xf5, 0x55, 0x75, 0x55, 0x75, 0x75, 0x55, 0xd3, 0xb0, 0x3c, 0x64, - 0x9c, 0x3b, 0x7d, 0xc6, 0x5b, 0xa3, 0xc0, 0x0f, 0x7d, 0xbc, 0xdc, 0x77, 0xc6, 0x7d, 0xd6, 0xd2, - 0xd4, 0x26, 0xf0, 0x11, 0xeb, 0x46, 0xdf, 0xec, 0x06, 0xe0, 0x17, 0xee, 0x60, 0xd0, 0x09, 0xfc, - 0x2e, 0xe3, 0x9c, 0xb2, 0xaf, 0xc6, 0x8c, 0x87, 0xb6, 0x0b, 0x1b, 0xed, 0x6f, 0x58, 0x77, 0x1c, - 0xba, 0xbe, 0x77, 0x15, 0x3a, 0xe1, 0x98, 0x53, 0xc6, 0x47, 0xbe, 0xc7, 0x19, 0xbe, 0x80, 0x3a, - 0xd3, 0x9f, 0x28, 0xe3, 0xe3, 0x41, 0x48, 0xac, 0x3d, 0xeb, 0xb0, 0x76, 0x74, 0xd0, 0x4a, 0xab, - 0x69, 0x75, 0x84, 0x82, 0x76, 0x9a, 0x97, 0x66, 0x85, 0xed, 0x21, 0x90, 0xa4, 0xaa, 0x20, 0x74, - 0xbd, 0xbe, 0x32, 0x03, 0x7f, 0x02, 0x8d, 0xee, 0x38, 0x08, 0x98, 0x17, 0xc6, 0x2c, 0x67, 0xde, - 0x8d, 0xaf, 0x14, 0xee, 0x64, 0x15, 0xa6, 0x98, 0xa8, 0x51, 0xd4, 0x7e, 0x0b, 0xeb, 0x31, 0xa1, - 0xed, 0xf5, 0xde, 0xaf, 0xb2, 0xaf, 0x60, 0xfb, 0x6a, 0xc4, 0xba, 0x1f, 0x72, 0x7f, 0x3e, 0x34, - 0x53, 0x2a, 0xdf, 0xfb, 0x1e, 0xc7, 0xb0, 0x77, 0xd5, 0x65, 0x9e, 0x13, 0xb8, 0xfe, 0x87, 0xdc, - 0x27, 0x87, 0xdd, 0x9c, 0xda, 0x0f, 0x12, 0xcf, 0x90, 0x8d, 0x3e, 0x74, 0x3c, 0x93, 0x2a, 0xdf, - 0xfb, 0x1e, 0xff, 0x63, 0xc1, 0xbd, 0x14, 0x05, 0xff, 0x1c, 0x6a, 0x8a, 0x53, 0x64, 0x96, 0xc2, - 0x26, 0x59, 0x6c, 0xf1, 0x4d, 0xc2, 0x26, 0x99, 0xf1, 0x33, 0xa8, 0xeb, 0xa5, 0x8a, 0x16, 0xa9, - 0x48, 0xf9, 0xed, 0x9c, 0xbc, 0xfa, 0x2e, 0x31, 0xb2, 0x42, 0x49, 0x1b, 0x42, 0x36, 0x22, 0x33, - 0x05, 0x36, 0x84, 0x6c, 0x94, 0xb6, 0x21, 0x64, 0x23, 0xbc, 0x0b, 0xc0, 0x43, 0xa7, 0xfb, 0x36, - 0x0c, 0x9c, 0x2e, 0x23, 0xb3, 0x7b, 0xd6, 0xe1, 0x22, 0x4d, 0x50, 0xec, 0x2f, 0xa1, 0xaa, 0x8d, - 0xc7, 0x18, 0x66, 0x3d, 0x67, 0xc8, 0xe4, 0x26, 0x17, 0xa9, 0xfc, 0x1b, 0x37, 0xa1, 0x7a, 0xe3, - 0x0e, 0xd8, 0x85, 0xa0, 0x57, 0x24, 0x3d, 0x5e, 0x8b, 0x6f, 0x2e, 0x7f, 0xe6, 0xb8, 0x03, 0xd6, - 0x93, 0x46, 0x55, 0x69, 0xbc, 0x16, 0x58, 0xa1, 0xd3, 0xe7, 0x64, 0x76, 0x6f, 0x46, 0x60, 0x89, - 0xbf, 0x6d, 0x0a, 0x4b, 0xc9, 0x8d, 0x16, 0xe9, 0x8b, 0x31, 0x2b, 0x05, 0x98, 0x33, 0x09, 0xcc, - 0xbf, 0x5a, 0x50, 0xd5, 0x3b, 0xc7, 0x4f, 0x60, 0x96, 0x0b, 0x0f, 0x45, 0x51, 0xb2, 0xcd, 0x19, - 0xc0, 0x04, 0xbb, 0xca, 0x21, 0x2a, 0xf9, 0x4b, 0x95, 0x6a, 0x07, 0x5e, 0x4b, 0x07, 0xce, 0x24, - 0x1c, 0x28, 0x29, 0xd8, 0x86, 0x25, 0x16, 0x04, 0x7e, 0xf0, 0x32, 0xd2, 0xa2, 0x5c, 0x9c, 0xa2, - 0xd9, 0xff, 0xb2, 0x00, 0xe7, 0x95, 0xe3, 0x47, 0xb0, 0xec, 0x74, 0xc3, 0xb1, 0x33, 0x10, 0xc4, - 0x6b, 0xf6, 0x4d, 0xa8, 0x3c, 0x91, 0xa1, 0x0a, 0xbe, 0x91, 0x13, 0x70, 0xd6, 0x8b, 0xf9, 0xa2, - 0x48, 0x64, 0xa8, 0xf8, 0x10, 0xea, 0x5c, 0xf9, 0x57, 0x18, 0xef, 0x7a, 0x7d, 0x15, 0x96, 0x2c, - 0x19, 0xff, 0x0c, 0x60, 0xe4, 0x04, 0xce, 0x90, 0x85, 0x2c, 0x88, 0x62, 0x54, 0x3b, 0xda, 0xcc, - 0x5d, 0x61, 0x9a, 0x83, 0x26, 0x98, 0xed, 0xbf, 0x58, 0xb0, 0x2a, 0x34, 0x7e, 0xea, 0x0c, 0xdc, - 0x9e, 0x13, 0x32, 0xbd, 0x99, 0x26, 0x54, 0x79, 0x7a, 0x1b, 0xf1, 0x1a, 0xb7, 0x00, 0x7b, 0xe3, - 0xe1, 0x1b, 0x16, 0x5c, 0xde, 0x74, 0x26, 0x6a, 0xc5, 0x26, 0xe6, 0xa8, 0xe1, 0x0b, 0xfe, 0x05, - 0x2c, 0xf2, 0x48, 0xc5, 0x98, 0xa9, 0x74, 0xdf, 0x35, 0x5e, 0xb0, 0x57, 0x9a, 0x8b, 0x4e, 0x04, - 0xec, 0x3f, 0x57, 0xa0, 0x91, 0xb6, 0x50, 0xdd, 0xde, 0x04, 0x16, 0x5c, 0x2e, 0xa9, 0xd2, 0xc2, - 0x2a, 0xd5, 0xcb, 0x5c, 0x10, 0x2b, 0xf9, 0x20, 0xe2, 0x73, 0x58, 0x94, 0xeb, 0xeb, 0xdf, 0x8e, - 0x22, 0xa3, 0x96, 0x8f, 0x5a, 0xa6, 0x33, 0x98, 0x55, 0xdb, 0x6a, 0x6b, 0x29, 0x3a, 0x01, 0x90, - 0x69, 0x35, 0xee, 0xf7, 0x19, 0x17, 0x95, 0x26, 0x3e, 0x97, 0x31, 0xc5, 0xfe, 0x04, 0x16, 0x63, - 0x39, 0xbc, 0x0f, 0x3b, 0x57, 0xd7, 0xed, 0xce, 0xeb, 0xb3, 0x97, 0x9d, 0xf3, 0xf6, 0xcb, 0xf6, - 0xc5, 0xf5, 0xf1, 0xf5, 0xd9, 0xe5, 0xc5, 0xeb, 0x8b, 0xcb, 0xeb, 0xd7, 0xcf, 0x2e, 0x5f, 0x5d, - 0x9c, 0xa2, 0x8f, 0x04, 0xcb, 0xe9, 0xab, 0xce, 0xf9, 0xd9, 0xc9, 0xf1, 0x75, 0xfb, 0xb5, 0x81, - 0x19, 0x59, 0xf6, 0xe7, 0xd0, 0xb8, 0x1a, 0xbb, 0x21, 0xcb, 0x74, 0x25, 0xf8, 0x29, 0xd4, 0xb8, - 0xa0, 0xa7, 0x1a, 0x9a, 0x3d, 0xb3, 0xbf, 0x27, 0x7c, 0x34, 0x29, 0x64, 0x63, 0x40, 0x62, 0xef, - 0xa2, 0x2c, 0xc4, 0x7d, 0xd4, 0x63, 0x58, 0x49, 0xd0, 0x54, 0x0c, 0x1a, 0x30, 0x27, 0x22, 0xc5, - 0x89, 0x25, 0x0f, 0x71, 0xb4, 0xb0, 0x77, 0x61, 0x5b, 0x57, 0x86, 0x53, 0x27, 0x74, 0xae, 0x42, - 0x3f, 0x60, 0x67, 0x9e, 0x1b, 0x6a, 0xa8, 0x26, 0x10, 0x51, 0xa5, 0x8c, 0xdf, 0xb6, 0x60, 0x53, - 0x9a, 0x65, 0xfc, 0xf8, 0x6b, 0x58, 0x89, 0xf3, 0xaa, 0xe3, 0x73, 0x57, 0x6c, 0x1b, 0xef, 0x41, - 0xcd, 0x1f, 0xf4, 0xf4, 0x52, 0x6e, 0x78, 0x8e, 0x26, 0x49, 0x82, 0xc3, 0x63, 0xef, 0x62, 0x8e, - 0x28, 0x53, 0x93, 0x24, 0xfb, 0x0f, 0x15, 0xa8, 0x53, 0x76, 0xe3, 0x74, 0x43, 0x3f, 0xd0, 0x47, - 0xe0, 0x29, 0x2c, 0xf9, 0x83, 0x5e, 0x9c, 0x93, 0xca, 0x93, 0xd3, 0x32, 0x37, 0x25, 0x23, 0x30, - 0x3c, 0xf6, 0x6e, 0x82, 0x51, 0xb9, 0x1b, 0x46, 0x52, 0x06, 0x9f, 0xc9, 0x7a, 0xe1, 0x0c, 0xb5, - 0xb1, 0x51, 0xc5, 0xac, 0x1d, 0xed, 0x17, 0x9e, 0x70, 0xcd, 0x49, 0x33, 0x82, 0xc2, 0x11, 0xdc, - 0xf9, 0x9a, 0x9d, 0xdc, 0x3a, 0x5e, 0x9f, 0x71, 0x99, 0xa7, 0x55, 0x9a, 0x24, 0xd9, 0xbf, 0x87, - 0xda, 0x33, 0x77, 0xa0, 0x97, 0xa9, 0xfb, 0xc2, 0xca, 0xdc, 0x17, 0x07, 0x50, 0x13, 0x7f, 0x9f, - 0xf8, 0x5e, 0xc8, 0x3c, 0x55, 0xc4, 0x9e, 0x56, 0x88, 0x45, 0x93, 0x64, 0xdc, 0x82, 0xb9, 0x9e, - 0x7b, 0x73, 0xa3, 0x8d, 0xce, 0xdd, 0x73, 0xa2, 0xa2, 0x9c, 0xba, 0x37, 0x37, 0x34, 0x62, 0xb3, - 0xff, 0x66, 0x01, 0x9a, 0x44, 0x62, 0x72, 0xd4, 0xf9, 0xb8, 0x2b, 0xba, 0x7a, 0x7d, 0xd4, 0xd5, - 0x52, 0x24, 0xa0, 0x3c, 0x85, 0xea, 0x8c, 0x47, 0x0b, 0x51, 0x00, 0x84, 0x0d, 0x3c, 0xda, 0x46, - 0x4f, 0x5d, 0x31, 0x29, 0x1a, 0xfe, 0xa5, 0x32, 0x3f, 0xf6, 0x85, 0x30, 0x6f, 0x2b, 0x6b, 0x5e, - 0xc2, 0x19, 0x34, 0xc9, 0x6f, 0xff, 0x10, 0xea, 0xfa, 0x38, 0xe8, 0x84, 0xd9, 0x4e, 0xd6, 0xb9, - 0xc8, 0x5b, 0x89, 0x3a, 0xf6, 0x4f, 0x6b, 0x72, 0xa8, 0xe2, 0x8d, 0x1d, 0xc0, 0x3d, 0x97, 0x0b, - 0x6a, 0x27, 0x60, 0x5c, 0x78, 0x31, 0xda, 0x5e, 0x9a, 0xa8, 0x8b, 0xb1, 0xba, 0xb5, 0x67, 0x74, - 0x31, 0xd6, 0xb7, 0xf6, 0xad, 0xc3, 0x8f, 0x07, 0xae, 0xc3, 0xf5, 0xad, 0xad, 0xd7, 0xa9, 0xe8, - 0xcd, 0x66, 0xa2, 0x77, 0x08, 0xb3, 0x7c, 0xe4, 0x78, 0x64, 0x4e, 0x66, 0x64, 0x23, 0xdf, 0x02, - 0x39, 0x1e, 0x95, 0x1c, 0xf6, 0x13, 0x68, 0xbe, 0xf2, 0xf8, 0x78, 0x34, 0xf2, 0x83, 0x90, 0xf5, - 0x54, 0xfd, 0x4c, 0x86, 0x46, 0x09, 0xa9, 0x2d, 0xeb, 0xa5, 0xfd, 0x3f, 0x0b, 0xd0, 0x89, 0xd3, - 0xbd, 0x65, 0xc2, 0x87, 0xda, 0x47, 0x04, 0x16, 0xba, 0x2a, 0x61, 0x14, 0xbb, 0x5a, 0x6a, 0x63, - 0x3b, 0x4e, 0x78, 0x9b, 0x6c, 0x4d, 0xc4, 0x3a, 0xba, 0xd1, 0x4f, 0x06, 0x3e, 0x4f, 0xb6, 0x26, - 0xd1, 0x1a, 0x9f, 0xc0, 0x3c, 0x97, 0x63, 0x9d, 0xdc, 0xe2, 0xf2, 0xd1, 0xf7, 0xb2, 0x5b, 0xc9, - 0xda, 0x20, 0x63, 0xaa, 0x26, 0x41, 0x25, 0x6a, 0xbf, 0x00, 0x98, 0x50, 0x71, 0x0d, 0x16, 0x4e, - 0x7e, 0x75, 0x7c, 0xf1, 0xbc, 0x2d, 0x4a, 0x31, 0xc0, 0xfc, 0xc9, 0xf9, 0xe5, 0x55, 0xfb, 0x14, - 0x59, 0xf2, 0x03, 0x6d, 0x1f, 0x5f, 0xb7, 0x4f, 0x51, 0x45, 0x2c, 0x4e, 0xdb, 0xe7, 0x6d, 0xb1, - 0x98, 0x11, 0x5c, 0x97, 0x9d, 0xf6, 0x45, 0xfb, 0x14, 0xcd, 0xda, 0x47, 0xd1, 0x85, 0x15, 0x1f, - 0xbb, 0xc4, 0x9d, 0x1a, 0xef, 0xd0, 0x4a, 0xef, 0xd0, 0xfe, 0xb7, 0x05, 0x6b, 0x19, 0x21, 0xe5, - 0xe0, 0xcf, 0xe0, 0x1e, 0x4f, 0x7e, 0x90, 0xa5, 0xb6, 0x76, 0x74, 0x64, 0xba, 0xac, 0x72, 0xd2, - 0x29, 0x2a, 0x4d, 0x03, 0x99, 0xcf, 0x4e, 0xf3, 0x53, 0x58, 0x4a, 0x0a, 0x95, 0x67, 0x75, 0x9c, - 0x46, 0x95, 0xa9, 0x69, 0xf4, 0x08, 0x0e, 0xce, 0x86, 0xa3, 0x01, 0x1b, 0x32, 0x2f, 0x74, 0x04, - 0xb2, 0x70, 0xf8, 0xf3, 0x81, 0xff, 0xa6, 0xe3, 0x84, 0x21, 0x0b, 0x3c, 0x5d, 0xe3, 0x5f, 0xc0, - 0xc3, 0x29, 0x7c, 0xca, 0x31, 0x36, 0x2c, 0xf5, 0x27, 0x64, 0x7d, 0x05, 0xa5, 0x68, 0xf6, 0x7d, - 0xd8, 0xc9, 0x83, 0x9d, 0xbb, 0x3c, 0xbe, 0x51, 0x3e, 0x87, 0xdd, 0x22, 0x06, 0xa5, 0xe6, 0xa7, - 0xb0, 0xe1, 0xe6, 0x38, 0x44, 0xcc, 0xb4, 0xc6, 0xa2, 0xcf, 0xf6, 0x10, 0x76, 0xae, 0xc2, 0xf1, - 0x9b, 0x34, 0xfe, 0x89, 0xdf, 0x8b, 0x0f, 0xc3, 0x13, 0x58, 0x37, 0xcb, 0x2a, 0x3f, 0x17, 0x7c, - 0x15, 0x81, 0xeb, 0xfa, 0x3d, 0xc6, 0x55, 0x31, 0x88, 0x16, 0xf6, 0x05, 0x54, 0x75, 0x31, 0x8d, - 0xc3, 0x62, 0x4d, 0x0b, 0x4b, 0xf2, 0x40, 0x56, 0x52, 0x07, 0xd2, 0xfe, 0x02, 0xaa, 0x42, 0xa3, - 0xc4, 0x2b, 0x49, 0x5d, 0xfc, 0x04, 0x16, 0x43, 0xa5, 0x37, 0xb2, 0xa8, 0xac, 0xca, 0x4f, 0x58, - 0xed, 0xbf, 0xef, 0xc3, 0x82, 0xee, 0xc6, 0xda, 0x50, 0x53, 0xbc, 0xb2, 0x1f, 0xb3, 0xe4, 0x49, - 0x7e, 0x90, 0x45, 0x51, 0xdc, 0xfa, 0x5f, 0xd9, 0x84, 0x25, 0xe5, 0x44, 0xae, 0xaa, 0xe5, 0x59, - 0xd4, 0xfa, 0xcf, 0xd0, 0x09, 0x01, 0xf7, 0x80, 0xb0, 0x82, 0x71, 0x57, 0xb5, 0xa5, 0x87, 0x85, - 0x53, 0x66, 0x86, 0x9f, 0x16, 0x22, 0xe1, 0x11, 0x6c, 0xf3, 0x92, 0x87, 0x12, 0x59, 0xa5, 0x6a, - 0x47, 0xdf, 0x37, 0xcd, 0x9c, 0x85, 0xda, 0x4a, 0x11, 0xf1, 0x97, 0xd0, 0xe4, 0x85, 0xef, 0x24, - 0xaa, 0xc0, 0x7f, 0xb7, 0x54, 0x5f, 0x4a, 0x82, 0x96, 0xa0, 0xe1, 0xdf, 0xc1, 0x1e, 0x9f, 0xf2, - 0x44, 0x42, 0xe6, 0xa5, 0xc6, 0x1f, 0x15, 0x4d, 0xc5, 0x85, 0xbb, 0x9c, 0x8a, 0x8c, 0xbf, 0x86, - 0x5d, 0x5e, 0xfa, 0x52, 0x42, 0x16, 0xa4, 0xee, 0xd6, 0x54, 0xdd, 0xe9, 0x1d, 0x4f, 0x41, 0x95, - 0x31, 0x2d, 0x79, 0x2c, 0x21, 0xd5, 0x82, 0x98, 0x96, 0xc8, 0xd0, 0x52, 0x44, 0x19, 0xd3, 0xc2, - 0xb7, 0x12, 0xb2, 0x58, 0x10, 0xd3, 0x42, 0x09, 0x5a, 0x82, 0x86, 0x29, 0x60, 0x96, 0x1b, 0x67, - 0x09, 0xdc, 0x79, 0xea, 0x36, 0x48, 0xe3, 0x2f, 0x60, 0x9d, 0x99, 0x6d, 0xaf, 0x49, 0xdc, 0x47, - 0x85, 0x27, 0x2d, 0x6d, 0x77, 0x01, 0x0a, 0x7e, 0x05, 0xab, 0x3c, 0x3f, 0xb6, 0x92, 0x25, 0x09, - 0xfe, 0xa0, 0x7c, 0x90, 0x8b, 0x90, 0x4d, 0xf2, 0xf8, 0x33, 0x68, 0x70, 0xc3, 0xd0, 0x47, 0xee, - 0x99, 0x9f, 0x85, 0x4d, 0x03, 0x22, 0x35, 0x22, 0x60, 0x07, 0x36, 0x98, 0xf9, 0x19, 0x9a, 0x2c, - 0x4b, 0xf0, 0xef, 0x94, 0xd5, 0x9e, 0x04, 0x3b, 0x2d, 0xc2, 0xc1, 0xe7, 0x80, 0x78, 0x66, 0x6a, - 0x23, 0x75, 0xf3, 0xf8, 0x97, 0x9d, 0xee, 0x68, 0x4e, 0x12, 0x5f, 0xc2, 0x0a, 0xcf, 0xce, 0x7b, - 0x04, 0x49, 0xb8, 0xfd, 0x12, 0x38, 0x65, 0x64, 0x5e, 0x56, 0xfa, 0xd6, 0x30, 0xb0, 0x92, 0x95, - 0x02, 0xdf, 0x1a, 0x78, 0xa9, 0x11, 0x41, 0x24, 0xf0, 0xdb, 0xdc, 0xc3, 0x3f, 0xc1, 0xe6, 0x04, - 0xce, 0xff, 0x44, 0x40, 0x0d, 0xd2, 0xf2, 0xc8, 0x97, 0xcc, 0xb0, 0x64, 0xb5, 0xe0, 0xc8, 0x97, - 0xc8, 0xd0, 0x52, 0x44, 0x71, 0x3d, 0xf1, 0x82, 0xa9, 0x98, 0x34, 0xcc, 0xd7, 0x53, 0xd1, 0x14, - 0x4d, 0x0b, 0x91, 0x70, 0x1f, 0x36, 0x79, 0xd1, 0x7c, 0x4d, 0xd6, 0xa4, 0x9a, 0xc7, 0xc6, 0x50, - 0x18, 0xf5, 0x14, 0x63, 0xe1, 0x33, 0xa8, 0xf3, 0xf4, 0x80, 0x44, 0xd6, 0x25, 0xfc, 0xfd, 0xa2, - 0xec, 0xd1, 0xa0, 0x59, 0xb9, 0x64, 0x62, 0xc7, 0x99, 0xb8, 0x51, 0x9e, 0xd8, 0x71, 0x22, 0xe6, - 0x24, 0x85, 0x61, 0x41, 0x7a, 0xd4, 0x27, 0xc4, 0x6c, 0x58, 0xe6, 0x45, 0x80, 0x66, 0xe5, 0x84, - 0x61, 0x41, 0x66, 0x56, 0x25, 0x9b, 0x66, 0xc3, 0xb2, 0x33, 0x2d, 0xcd, 0x49, 0x8a, 0x9a, 0x3f, - 0x2e, 0x1c, 0xb4, 0x48, 0xd3, 0x5c, 0xf3, 0x8b, 0x47, 0x33, 0x5a, 0x82, 0x26, 0x2c, 0xef, 0x66, - 0xe6, 0x22, 0xb2, 0x65, 0xb6, 0x3c, 0x3b, 0x3f, 0xd1, 0x9c, 0xa4, 0x2e, 0x9b, 0xd9, 0x89, 0x87, - 0x6c, 0x17, 0x97, 0xcd, 0x2c, 0x2f, 0x35, 0x22, 0xe0, 0xdf, 0xc0, 0x1a, 0x37, 0x0d, 0x36, 0x64, - 0x47, 0x42, 0x3f, 0xbc, 0xd3, 0x14, 0x44, 0xcd, 0x18, 0x98, 0xc3, 0x8e, 0x5b, 0x36, 0x1d, 0x90, - 0x5d, 0xa9, 0xe4, 0x07, 0x59, 0x25, 0xa5, 0x23, 0x05, 0x2d, 0xc7, 0x14, 0x3d, 0x8c, 0x5b, 0x3a, - 0x71, 0x90, 0xfb, 0xe6, 0x1e, 0xa6, 0x7c, 0x4e, 0xa1, 0x53, 0x50, 0xc5, 0x66, 0x79, 0xd9, 0x34, - 0x42, 0xf6, 0xcc, 0x9b, 0x2d, 0x1d, 0x61, 0x68, 0x39, 0x26, 0xfe, 0x38, 0x9a, 0x1b, 0x44, 0xc3, - 0x4f, 0xf6, 0xcd, 0x3f, 0x74, 0xe8, 0x19, 0x83, 0xc6, 0x9c, 0xf8, 0x8f, 0x16, 0x1c, 0xb8, 0x77, - 0x98, 0x15, 0x89, 0x2d, 0x21, 0x3f, 0x9e, 0xee, 0xa9, 0xbc, 0x2c, 0xbd, 0x93, 0x06, 0xfc, 0x27, - 0x0b, 0x1e, 0xba, 0x77, 0x19, 0x47, 0xc9, 0x03, 0x69, 0xcb, 0x4f, 0xbe, 0xa5, 0x2d, 0x2a, 0x78, - 0x77, 0xd3, 0x61, 0xff, 0x77, 0x1e, 0x6a, 0x89, 0xe1, 0x07, 0xaf, 0xc1, 0x4a, 0xae, 0x83, 0x44, - 0x1f, 0xe1, 0x4d, 0x58, 0x33, 0x8e, 0x13, 0xc8, 0xc2, 0x1b, 0xb0, 0x6a, 0xe8, 0xfc, 0x51, 0x05, - 0xef, 0xc0, 0x66, 0x61, 0x83, 0x8e, 0x66, 0xf0, 0x16, 0x6c, 0x14, 0xf4, 0xd0, 0x68, 0x56, 0xea, - 0x33, 0x35, 0xb3, 0x68, 0x4e, 0xea, 0xcb, 0x77, 0x9e, 0x68, 0x1e, 0xd7, 0xa1, 0x96, 0x68, 0x25, - 0xd1, 0x02, 0x5e, 0x85, 0x7a, 0x96, 0xab, 0xaa, 0xc5, 0x33, 0x6d, 0x1a, 0x5a, 0xc4, 0xc4, 0xfc, - 0xa3, 0x00, 0x02, 0x61, 0x69, 0x41, 0xe7, 0x84, 0x6a, 0xb8, 0x91, 0x7f, 0xd8, 0x46, 0x4b, 0xc2, - 0x8d, 0xb9, 0x0e, 0x06, 0xdd, 0xc3, 0xeb, 0xa6, 0xff, 0x4f, 0x80, 0x96, 0xa5, 0x6e, 0x43, 0x1b, - 0x82, 0xea, 0xd2, 0x11, 0xa6, 0x2b, 0x1e, 0x21, 0xa9, 0x23, 0x7b, 0x27, 0xa3, 0x15, 0xa1, 0x23, - 0x7f, 0xbb, 0x22, 0x2c, 0xbc, 0x91, 0xb9, 0x16, 0xd1, 0x6a, 0xd2, 0xfa, 0xd8, 0xcc, 0x86, 0x60, - 0xcd, 0x5c, 0x54, 0x68, 0x4d, 0xb0, 0x66, 0x6f, 0x1c, 0xb4, 0x8e, 0x77, 0xcb, 0x9e, 0xf2, 0xd0, - 0x86, 0x90, 0xca, 0x56, 0x7b, 0x44, 0xb4, 0xaf, 0xb3, 0xb5, 0x19, 0x6d, 0xea, 0xc0, 0xe7, 0x2a, - 0x2b, 0x6a, 0xe2, 0xfd, 0x29, 0x2f, 0x2f, 0x68, 0x0b, 0xdb, 0xd3, 0xde, 0x5e, 0xd0, 0xb6, 0xfc, - 0xad, 0xa4, 0xac, 0xc2, 0xa0, 0x1d, 0xbc, 0x34, 0x79, 0xa7, 0x40, 0xbb, 0xf8, 0xf0, 0x6e, 0xcf, - 0x4c, 0xe8, 0x3e, 0x7e, 0x7c, 0xc7, 0x87, 0x26, 0xb4, 0xf7, 0xf4, 0x31, 0xac, 0x77, 0xfd, 0x61, - 0x2b, 0xbc, 0xf5, 0xc7, 0xfd, 0xdb, 0xf0, 0x9d, 0x1f, 0xbc, 0xe5, 0xd1, 0x39, 0xff, 0x47, 0x65, - 0xf9, 0xb9, 0x3c, 0xef, 0xca, 0x97, 0xfc, 0xcd, 0xbc, 0xfc, 0xbf, 0x28, 0x3f, 0xfe, 0x7f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xb0, 0x00, 0xa1, 0x1b, 0xb9, 0x22, 0x00, 0x00, +func init() { proto.RegisterFile("messages.proto", fileDescriptor_4dc296cbfe5ffcd5) } + +var fileDescriptor_4dc296cbfe5ffcd5 = []byte{ + // 2294 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xcd, 0x6e, 0x1c, 0xb9, + 0x11, 0xde, 0x1e, 0x49, 0xd6, 0xa8, 0x46, 0x96, 0x28, 0xea, 0x8f, 0x92, 0x25, 0x59, 0x6a, 0xcb, + 0x8e, 0x9c, 0x1f, 0x25, 0x50, 0x36, 0x46, 0x12, 0x24, 0x07, 0x5b, 0x1a, 0x3b, 0x03, 0xcb, 0xd2, + 0x2c, 0x25, 0x6d, 0x16, 0x1b, 0x60, 0x8d, 0xf6, 0x0c, 0x35, 0xea, 0xf5, 0x4c, 0xf7, 0x6c, 0xb3, + 0x67, 0xbd, 0x01, 0x02, 0xe4, 0x16, 0x04, 0xc8, 0x31, 0xc8, 0x39, 0x40, 0x80, 0x5c, 0x82, 0x9c, + 0xf3, 0x0e, 0x79, 0x8a, 0x3c, 0x42, 0x6e, 0x39, 0x07, 0x64, 0x93, 0x3d, 0xfd, 0x43, 0xf6, 0x68, + 0x0f, 0xf6, 0xc9, 0x62, 0x75, 0xd5, 0x57, 0xc5, 0xaa, 0x62, 0xb1, 0x8a, 0x63, 0x58, 0x18, 0x30, + 0xce, 0xbd, 0x1e, 0xe3, 0x87, 0xc3, 0x28, 0x8c, 0x43, 0xbc, 0xd0, 0xf3, 0x46, 0x3d, 0x76, 0xa8, + 0xa9, 0x9b, 0xc0, 0x87, 0xac, 0x93, 0x7c, 0x73, 0x57, 0x00, 0xbf, 0xf4, 0xfb, 0xfd, 0x76, 0x14, + 0x76, 0x18, 0xe7, 0x94, 0x7d, 0x35, 0x62, 0x3c, 0x76, 0x7d, 0x58, 0x6f, 0x7e, 0xc3, 0x3a, 0xa3, + 0xd8, 0x0f, 0x83, 0x8b, 0xd8, 0x8b, 0x47, 0x9c, 0x32, 0x3e, 0x0c, 0x03, 0xce, 0xf0, 0x19, 0x2c, + 0x32, 0xfd, 0x89, 0x32, 0x3e, 0xea, 0xc7, 0xc4, 0xd9, 0x75, 0x0e, 0x1a, 0x47, 0xfb, 0x87, 0x79, + 0x35, 0x87, 0x6d, 0xa1, 0xa0, 0x99, 0xe7, 0xa5, 0x45, 0x61, 0x77, 0x00, 0x24, 0xab, 0x2a, 0x8a, + 0xfd, 0xa0, 0xa7, 0xcc, 0xc0, 0x9f, 0xc0, 0x4a, 0x67, 0x14, 0x45, 0x2c, 0x88, 0x53, 0x96, 0x56, + 0x70, 0x1d, 0x2a, 0x85, 0xdb, 0x45, 0x85, 0x39, 0x26, 0x6a, 0x14, 0x75, 0xdf, 0xc2, 0x5a, 0x4a, + 0x68, 0x06, 0xdd, 0xf7, 0xab, 0xec, 0x2b, 0xd8, 0xba, 0x18, 0xb2, 0xce, 0x87, 0xdc, 0x5f, 0x08, + 0x9b, 0x39, 0x95, 0xef, 0x7d, 0x8f, 0x23, 0xd8, 0xbd, 0xe8, 0xb0, 0xc0, 0x8b, 0xfc, 0xf0, 0x43, + 0xee, 0x93, 0xc3, 0x4e, 0x49, 0xed, 0x07, 0x89, 0x67, 0xcc, 0x86, 0x1f, 0x3a, 0x9e, 0x59, 0x95, + 0xef, 0x7d, 0x8f, 0xff, 0x75, 0xe0, 0x6e, 0x8e, 0x82, 0x7f, 0x0e, 0x0d, 0xc5, 0x29, 0x32, 0x4b, + 0x61, 0x93, 0x22, 0xb6, 0xf8, 0x26, 0x61, 0xb3, 0xcc, 0xf8, 0x39, 0x2c, 0xea, 0xa5, 0x8a, 0x16, + 0xa9, 0x49, 0xf9, 0xad, 0x92, 0xbc, 0xfa, 0x2e, 0x31, 0x8a, 0x42, 0x59, 0x1b, 0x62, 0x36, 0x24, + 0x53, 0x16, 0x1b, 0x62, 0x36, 0xcc, 0xdb, 0x10, 0xb3, 0x21, 0xde, 0x01, 0xe0, 0xb1, 0xd7, 0x79, + 0x1b, 0x47, 0x5e, 0x87, 0x91, 0xe9, 0x5d, 0xe7, 0x60, 0x8e, 0x66, 0x28, 0xee, 0x97, 0x50, 0xd7, + 0xc6, 0x63, 0x0c, 0xd3, 0x81, 0x37, 0x60, 0x72, 0x93, 0x73, 0x54, 0xfe, 0x8d, 0x37, 0xa1, 0x7e, + 0xed, 0xf7, 0xd9, 0x99, 0xa0, 0xd7, 0x24, 0x3d, 0x5d, 0x8b, 0x6f, 0x3e, 0x7f, 0xee, 0xf9, 0x7d, + 0xd6, 0x95, 0x46, 0xd5, 0x69, 0xba, 0x16, 0x58, 0xb1, 0xd7, 0xe3, 0x64, 0x7a, 0x77, 0x4a, 0x60, + 0x89, 0xbf, 0x5d, 0x0a, 0xf3, 0xd9, 0x8d, 0xda, 0xf4, 0xa5, 0x98, 0x35, 0x0b, 0xe6, 0x54, 0x06, + 0xf3, 0x6f, 0x0e, 0xd4, 0xf5, 0xce, 0xf1, 0x13, 0x98, 0xe6, 0xc2, 0x43, 0x49, 0x94, 0x5c, 0x73, + 0x06, 0x30, 0xc1, 0xae, 0x72, 0x88, 0x4a, 0xfe, 0x4a, 0xa5, 0xda, 0x81, 0x97, 0xd2, 0x81, 0x53, + 0x19, 0x07, 0x4a, 0x0a, 0x76, 0x61, 0x9e, 0x45, 0x51, 0x18, 0xbd, 0x4a, 0xb4, 0x28, 0x17, 0xe7, + 0x68, 0xee, 0xbf, 0x1d, 0xc0, 0x65, 0xe5, 0xf8, 0x11, 0x2c, 0x78, 0x9d, 0x78, 0xe4, 0xf5, 0x05, + 0xf1, 0x92, 0x7d, 0x13, 0x2b, 0x4f, 0x14, 0xa8, 0x82, 0x6f, 0xe8, 0x45, 0x9c, 0x75, 0x53, 0xbe, + 0x24, 0x12, 0x05, 0x2a, 0x3e, 0x80, 0x45, 0xae, 0xfc, 0x2b, 0x8c, 0xf7, 0x83, 0x9e, 0x0a, 0x4b, + 0x91, 0x8c, 0x7f, 0x06, 0x30, 0xf4, 0x22, 0x6f, 0xc0, 0x62, 0x16, 0x25, 0x31, 0x6a, 0x1c, 0x6d, + 0x94, 0xae, 0x30, 0xcd, 0x41, 0x33, 0xcc, 0xee, 0x5f, 0x1d, 0x58, 0x16, 0x1a, 0x3f, 0xf5, 0xfa, + 0x7e, 0xd7, 0x8b, 0x99, 0xde, 0xcc, 0x26, 0xd4, 0x79, 0x7e, 0x1b, 0xe9, 0x1a, 0x1f, 0x02, 0x0e, + 0x46, 0x83, 0x37, 0x2c, 0x3a, 0xbf, 0x6e, 0x8f, 0xd5, 0x8a, 0x4d, 0xcc, 0x50, 0xc3, 0x17, 0xfc, + 0x0b, 0x98, 0xe3, 0x89, 0x8a, 0x11, 0x53, 0xe9, 0xbe, 0x63, 0xbc, 0x60, 0x2f, 0x34, 0x17, 0x1d, + 0x0b, 0xb8, 0x7f, 0xa9, 0xc1, 0x4a, 0xde, 0x42, 0x75, 0x7b, 0x13, 0x98, 0xf5, 0xb9, 0xa4, 0x4a, + 0x0b, 0xeb, 0x54, 0x2f, 0x4b, 0x41, 0xac, 0x95, 0x83, 0x88, 0x4f, 0x61, 0x4e, 0xae, 0x2f, 0x7f, + 0x3b, 0x4c, 0x8c, 0x5a, 0x38, 0x3a, 0x34, 0x9d, 0xc1, 0xa2, 0xda, 0xc3, 0xa6, 0x96, 0xa2, 0x63, + 0x00, 0x99, 0x56, 0xa3, 0x5e, 0x8f, 0x71, 0x51, 0x69, 0xd2, 0x73, 0x99, 0x52, 0xdc, 0x4f, 0x60, + 0x2e, 0x95, 0xc3, 0x7b, 0xb0, 0x7d, 0x71, 0xd9, 0x6c, 0xbf, 0x6e, 0xbd, 0x6a, 0x9f, 0x36, 0x5f, + 0x35, 0xcf, 0x2e, 0x9f, 0x5e, 0xb6, 0xce, 0xcf, 0x5e, 0x9f, 0x9d, 0x5f, 0xbe, 0x7e, 0x7e, 0x7e, + 0x75, 0x76, 0x82, 0x3e, 0x12, 0x2c, 0x27, 0x57, 0xed, 0xd3, 0xd6, 0xf1, 0xd3, 0xcb, 0xe6, 0x6b, + 0x03, 0x33, 0x72, 0xdc, 0xcf, 0x61, 0xe5, 0x62, 0xe4, 0xc7, 0xac, 0xd0, 0x95, 0xe0, 0x67, 0xd0, + 0xe0, 0x82, 0x9e, 0x6b, 0x68, 0x76, 0xcd, 0xfe, 0x1e, 0xf3, 0xd1, 0xac, 0x90, 0x7b, 0x05, 0xc4, + 0x84, 0xdd, 0x8a, 0xd9, 0x40, 0x24, 0x5b, 0x94, 0xae, 0x14, 0xfc, 0x86, 0x11, 0x5e, 0x30, 0xd0, + 0x0c, 0xb3, 0x8b, 0x01, 0x09, 0x97, 0x8a, 0x6a, 0x93, 0xb6, 0x67, 0x8f, 0x61, 0x29, 0x43, 0x53, + 0xa1, 0x5d, 0x81, 0x19, 0x91, 0x00, 0x9c, 0x38, 0xb2, 0x36, 0x24, 0x0b, 0x77, 0x07, 0xb6, 0x74, + 0xc1, 0x39, 0xf1, 0x62, 0xef, 0x22, 0x0e, 0x23, 0xd6, 0x0a, 0xfc, 0x58, 0x43, 0x6d, 0x02, 0x11, + 0xc5, 0xcf, 0xf8, 0xed, 0x1e, 0x6c, 0xc8, 0x1d, 0x19, 0x3f, 0xfe, 0x1a, 0x96, 0xd2, 0x74, 0x6d, + 0x87, 0xdc, 0x17, 0x3b, 0xc6, 0xbb, 0xd0, 0x08, 0xfb, 0x5d, 0xbd, 0x94, 0x1b, 0x9d, 0xa1, 0x59, + 0x92, 0xe0, 0x08, 0xd8, 0xbb, 0x94, 0x23, 0x39, 0x00, 0x59, 0x92, 0xfb, 0x87, 0x1a, 0x2c, 0x52, + 0x76, 0xed, 0x75, 0xe2, 0x30, 0xd2, 0x27, 0xeb, 0x19, 0xcc, 0x87, 0xfd, 0x6e, 0x9a, 0xea, 0xca, + 0x83, 0x93, 0x0e, 0x44, 0x4e, 0x46, 0x60, 0x04, 0xec, 0xdd, 0x18, 0xa3, 0x76, 0x3b, 0x8c, 0xac, + 0x0c, 0x6e, 0xc9, 0x32, 0xe4, 0x0d, 0xb4, 0xb1, 0x49, 0x21, 0x6e, 0x1c, 0xed, 0x59, 0x0b, 0x87, + 0xe6, 0xa4, 0x05, 0x41, 0xe1, 0x08, 0xee, 0x7d, 0xcd, 0x8e, 0x6f, 0xbc, 0xa0, 0xc7, 0xb8, 0x4c, + 0xff, 0x3a, 0xcd, 0x92, 0xdc, 0xdf, 0x43, 0xe3, 0xb9, 0xdf, 0xd7, 0xcb, 0xdc, 0x35, 0xe4, 0x14, + 0xae, 0xa1, 0x7d, 0x68, 0x88, 0xbf, 0x8f, 0xc3, 0x20, 0x66, 0x81, 0xaa, 0x8d, 0xcf, 0x6a, 0xc4, + 0xa1, 0x59, 0x32, 0x3e, 0x84, 0x99, 0xae, 0x7f, 0x7d, 0xad, 0x8d, 0x2e, 0x5d, 0x9f, 0xa2, 0x50, + 0x9d, 0xf8, 0xd7, 0xd7, 0x34, 0x61, 0x73, 0xff, 0xee, 0x00, 0x1a, 0x47, 0x62, 0x5c, 0x41, 0xf8, + 0xa8, 0x23, 0x86, 0x05, 0x5d, 0x41, 0xd4, 0x52, 0x24, 0xa0, 0x3c, 0xdc, 0xaa, 0x74, 0x24, 0x0b, + 0x51, 0x57, 0x84, 0x0d, 0x3c, 0xd9, 0x46, 0x57, 0xdd, 0x5c, 0x39, 0x1a, 0xfe, 0xa5, 0x32, 0x3f, + 0xf5, 0x85, 0x30, 0xef, 0x5e, 0xd1, 0xbc, 0x8c, 0x33, 0x68, 0x96, 0xdf, 0xfd, 0x21, 0x2c, 0xea, + 0xe3, 0xa0, 0x13, 0x66, 0x2b, 0x5b, 0x3e, 0x13, 0x6f, 0x65, 0xca, 0xe3, 0xbf, 0x9c, 0xf1, 0xa1, + 0x4a, 0x37, 0xb6, 0x0f, 0x77, 0x7d, 0x2e, 0xa8, 0xed, 0x88, 0x71, 0xe1, 0xc5, 0x64, 0x7b, 0x79, + 0xa2, 0xae, 0xf1, 0xaa, 0x19, 0x98, 0xd2, 0x35, 0x5e, 0x37, 0x03, 0x37, 0x1e, 0x7f, 0xda, 0xf7, + 0x3d, 0xae, 0x9b, 0x01, 0xbd, 0xce, 0x45, 0x6f, 0xba, 0x10, 0xbd, 0x03, 0x98, 0xe6, 0x43, 0x2f, + 0x20, 0x33, 0x32, 0x23, 0x57, 0xca, 0x9d, 0x95, 0x17, 0x50, 0xc9, 0xe1, 0x3e, 0x81, 0xcd, 0xab, + 0x80, 0x8f, 0x86, 0xc3, 0x30, 0x8a, 0x59, 0x57, 0x95, 0xe5, 0x6c, 0x68, 0x94, 0x90, 0xda, 0xb2, + 0x5e, 0xba, 0xff, 0x73, 0x00, 0x1d, 0x7b, 0x9d, 0x1b, 0x26, 0x7c, 0xa8, 0x7d, 0x44, 0x60, 0xb6, + 0xa3, 0x12, 0x46, 0xb1, 0xab, 0xa5, 0x36, 0xb6, 0xed, 0xc5, 0x37, 0xd9, 0x8e, 0x47, 0xac, 0x93, + 0x46, 0xe1, 0xb8, 0x1f, 0xf2, 0x6c, 0xc7, 0x93, 0xac, 0xf1, 0x31, 0xdc, 0xe1, 0x72, 0x5a, 0x94, + 0x5b, 0x5c, 0x38, 0xfa, 0x5e, 0x71, 0x2b, 0x45, 0x1b, 0x64, 0x4c, 0xd5, 0x80, 0xa9, 0x44, 0xdd, + 0x97, 0x00, 0x63, 0x2a, 0x6e, 0xc0, 0xec, 0xf1, 0xaf, 0x9e, 0x9e, 0xbd, 0x68, 0x8a, 0x0a, 0x0f, + 0x70, 0xe7, 0xf8, 0xf4, 0xfc, 0xa2, 0x79, 0x82, 0x1c, 0xf9, 0x81, 0x36, 0x9f, 0x5e, 0x36, 0x4f, + 0x50, 0x4d, 0x2c, 0x4e, 0x9a, 0xa7, 0x4d, 0xb1, 0x98, 0x12, 0x5c, 0xe7, 0xed, 0xe6, 0x59, 0xf3, + 0x04, 0x4d, 0xbb, 0x47, 0xc9, 0x3d, 0x98, 0x1e, 0xbb, 0xcc, 0x55, 0x9d, 0xee, 0xd0, 0xc9, 0xef, + 0xd0, 0xfd, 0x8f, 0x03, 0xab, 0x05, 0x21, 0xe5, 0xe0, 0xcf, 0xe0, 0x2e, 0xcf, 0x7e, 0x90, 0xa5, + 0xb6, 0x71, 0x74, 0x64, 0xba, 0x03, 0x4b, 0xd2, 0x39, 0x2a, 0xcd, 0x03, 0x99, 0xcf, 0xce, 0xe6, + 0xa7, 0x30, 0x9f, 0x15, 0xaa, 0xce, 0xea, 0x34, 0x8d, 0x6a, 0x13, 0xd3, 0xe8, 0x11, 0xec, 0xb7, + 0x06, 0xc3, 0x3e, 0x1b, 0xb0, 0x20, 0xf6, 0x04, 0xb2, 0x70, 0xf8, 0x8b, 0x7e, 0xf8, 0xa6, 0xed, + 0xc5, 0x31, 0x8b, 0x02, 0x5d, 0xe3, 0x5f, 0xc2, 0xc3, 0x09, 0x7c, 0xca, 0x31, 0x2e, 0xcc, 0xf7, + 0xc6, 0x64, 0x7d, 0x05, 0xe5, 0x68, 0xee, 0x7d, 0xd8, 0x2e, 0x83, 0x9d, 0xfa, 0x3c, 0xbd, 0x51, + 0x3e, 0x87, 0x1d, 0x1b, 0x83, 0x52, 0xf3, 0x53, 0x58, 0xf7, 0x4b, 0x1c, 0x22, 0x66, 0x5a, 0xa3, + 0xed, 0xb3, 0x3b, 0x80, 0xed, 0x8b, 0x78, 0xf4, 0x26, 0x8f, 0x7f, 0x1c, 0x76, 0xd3, 0xc3, 0xf0, + 0x04, 0xd6, 0xcc, 0xb2, 0xca, 0xcf, 0x96, 0xaf, 0x22, 0x70, 0x9d, 0xb0, 0xcb, 0xb8, 0x2a, 0x06, + 0xc9, 0xc2, 0x3d, 0x83, 0xba, 0x2e, 0xa6, 0x69, 0x58, 0x9c, 0x49, 0x61, 0xc9, 0x1e, 0xc8, 0x5a, + 0xee, 0x40, 0xba, 0x5f, 0x40, 0x5d, 0x68, 0x94, 0x78, 0x15, 0xa9, 0x8b, 0x9f, 0xc0, 0x5c, 0xac, + 0xf4, 0x26, 0x16, 0x55, 0x55, 0xf9, 0x31, 0xab, 0xfb, 0x4f, 0x17, 0x66, 0x75, 0x93, 0xd7, 0x84, + 0x86, 0xe2, 0x95, 0x6d, 0x9e, 0x23, 0x4f, 0xf2, 0x83, 0x22, 0x8a, 0xe2, 0xd6, 0xff, 0xca, 0xde, + 0x2e, 0x2b, 0x27, 0x72, 0x55, 0x2d, 0x5b, 0xc9, 0x44, 0x31, 0x45, 0xc7, 0x04, 0xdc, 0x05, 0xc2, + 0x2c, 0x53, 0xb4, 0xea, 0x76, 0x0f, 0xac, 0xc3, 0x6b, 0x81, 0x9f, 0x5a, 0x91, 0xf0, 0x10, 0xb6, + 0x78, 0xc5, 0xfb, 0x8b, 0xac, 0x52, 0x8d, 0xa3, 0xef, 0x9b, 0x46, 0x59, 0xab, 0xb6, 0x4a, 0x44, + 0xfc, 0x25, 0x6c, 0x72, 0xeb, 0xf3, 0x8b, 0x2a, 0xf0, 0xdf, 0xad, 0xd4, 0x97, 0x93, 0xa0, 0x15, + 0x68, 0xf8, 0x77, 0xb0, 0xcb, 0x27, 0xbc, 0xbc, 0x90, 0x3b, 0x52, 0xe3, 0x8f, 0x6c, 0xc3, 0xb6, + 0x75, 0x97, 0x13, 0x91, 0xf1, 0xd7, 0xb0, 0xc3, 0x2b, 0x1f, 0x60, 0xc8, 0xac, 0xd4, 0x7d, 0x38, + 0x51, 0x77, 0x7e, 0xc7, 0x13, 0x50, 0x65, 0x4c, 0x2b, 0xde, 0x60, 0x48, 0xdd, 0x12, 0xd3, 0x0a, + 0x19, 0x5a, 0x89, 0x28, 0x63, 0x6a, 0x7d, 0x82, 0x21, 0x73, 0x96, 0x98, 0x5a, 0x25, 0x68, 0x05, + 0x1a, 0xa6, 0x80, 0x59, 0x69, 0x4a, 0x26, 0x70, 0xeb, 0x61, 0xde, 0x20, 0x8d, 0xbf, 0x80, 0x35, + 0x66, 0xb6, 0xbd, 0x21, 0x71, 0x1f, 0x59, 0x4f, 0x5a, 0xde, 0x6e, 0x0b, 0x0a, 0xbe, 0x82, 0x65, + 0x5e, 0x9e, 0x86, 0xc9, 0xbc, 0x04, 0x7f, 0x50, 0x3d, 0x1f, 0x26, 0xc8, 0x26, 0x79, 0xfc, 0x19, + 0xac, 0x70, 0xc3, 0x2c, 0x49, 0xee, 0x9a, 0x5f, 0x9b, 0x4d, 0x73, 0x27, 0x35, 0x22, 0x60, 0x0f, + 0xd6, 0x99, 0xf9, 0x75, 0x9b, 0x2c, 0x48, 0xf0, 0xef, 0x54, 0xd5, 0x9e, 0x0c, 0x3b, 0xb5, 0xe1, + 0xe0, 0x53, 0x40, 0xbc, 0x30, 0xb5, 0x91, 0x45, 0xf3, 0x54, 0x59, 0x9c, 0xee, 0x68, 0x49, 0x12, + 0x9f, 0xc3, 0x12, 0x2f, 0xce, 0x7b, 0x04, 0x49, 0xb8, 0xbd, 0x0a, 0x38, 0x65, 0x64, 0x59, 0x56, + 0xfa, 0xd6, 0x30, 0xab, 0x92, 0x25, 0x8b, 0x6f, 0x0d, 0xbc, 0xd4, 0x88, 0x20, 0x12, 0xf8, 0x6d, + 0xe9, 0xf7, 0x04, 0x82, 0xcd, 0x09, 0x5c, 0xfe, 0xe5, 0x81, 0x1a, 0xa4, 0xe5, 0x91, 0xaf, 0x98, + 0x61, 0xc9, 0xb2, 0xe5, 0xc8, 0x57, 0xc8, 0xd0, 0x4a, 0x44, 0x71, 0x3d, 0x71, 0xcb, 0x54, 0x4c, + 0x56, 0xcc, 0xd7, 0x93, 0x6d, 0x8a, 0xa6, 0x56, 0x24, 0xdc, 0x83, 0x0d, 0x6e, 0x9b, 0xaf, 0xc9, + 0xaa, 0x54, 0xf3, 0xd8, 0x18, 0x0a, 0xa3, 0x1e, 0x3b, 0x16, 0x6e, 0xc1, 0x22, 0xcf, 0x0f, 0x48, + 0x64, 0x4d, 0xc2, 0xdf, 0xb7, 0x65, 0x8f, 0x06, 0x2d, 0xca, 0x65, 0x13, 0x3b, 0xcd, 0xc4, 0xf5, + 0xea, 0xc4, 0x4e, 0x13, 0xb1, 0x24, 0x29, 0x0c, 0x8b, 0xf2, 0xa3, 0x3e, 0x21, 0x66, 0xc3, 0x0a, + 0x2f, 0x02, 0xb4, 0x28, 0x27, 0x0c, 0x8b, 0x0a, 0xb3, 0x2a, 0xd9, 0x30, 0x1b, 0x56, 0x9c, 0x69, + 0x69, 0x49, 0x52, 0xd4, 0xfc, 0x91, 0x75, 0xd0, 0x22, 0x9b, 0xe6, 0x9a, 0x6f, 0x1f, 0xcd, 0x68, + 0x05, 0x9a, 0xb0, 0xbc, 0x53, 0x98, 0x8b, 0xc8, 0x3d, 0xb3, 0xe5, 0xc5, 0xf9, 0x89, 0x96, 0x24, + 0x75, 0xd9, 0x2c, 0x4e, 0x3c, 0x64, 0xcb, 0x5e, 0x36, 0x8b, 0xbc, 0xd4, 0x88, 0x80, 0x7f, 0x03, + 0xab, 0xdc, 0x34, 0xd8, 0x90, 0x6d, 0x09, 0xfd, 0xf0, 0x56, 0x53, 0x10, 0x35, 0x63, 0x60, 0x0e, + 0xdb, 0x7e, 0xd5, 0x74, 0x40, 0x76, 0xa4, 0x92, 0x1f, 0x14, 0x95, 0x54, 0x8e, 0x14, 0xb4, 0x1a, + 0x53, 0xf4, 0x30, 0x7e, 0xe5, 0xc4, 0x41, 0xee, 0x9b, 0x7b, 0x98, 0xea, 0x39, 0x85, 0x4e, 0x40, + 0x15, 0x9b, 0xe5, 0x55, 0xd3, 0x08, 0xd9, 0x35, 0x6f, 0xb6, 0x72, 0x84, 0xa1, 0xd5, 0x98, 0xf8, + 0xe3, 0x64, 0x6e, 0x10, 0x0d, 0x3f, 0xd9, 0x33, 0xff, 0x7e, 0xa2, 0x67, 0x0c, 0x9a, 0x72, 0xe2, + 0x3f, 0x3a, 0xb0, 0xef, 0xdf, 0x62, 0x56, 0x24, 0xae, 0x84, 0xfc, 0x78, 0xb2, 0xa7, 0xca, 0xb2, + 0xf4, 0x56, 0x1a, 0xf0, 0x9f, 0x1c, 0x78, 0xe8, 0xdf, 0x66, 0x1c, 0x25, 0x0f, 0xa4, 0x2d, 0x3f, + 0xf9, 0x96, 0xb6, 0xa8, 0xe0, 0xdd, 0x4e, 0x87, 0xbc, 0x22, 0x2c, 0xcf, 0xbd, 0x64, 0xdf, 0x72, + 0x45, 0x58, 0xf8, 0xa9, 0x15, 0xc9, 0xfd, 0xf3, 0x2c, 0x34, 0x32, 0x23, 0x16, 0x5e, 0x85, 0xa5, + 0x52, 0x9f, 0x8a, 0x3e, 0xc2, 0x1b, 0xb0, 0x6a, 0x1c, 0x5a, 0x90, 0x83, 0xd7, 0x61, 0xd9, 0x30, + 0x5f, 0xa0, 0x1a, 0xde, 0x86, 0x0d, 0xeb, 0x18, 0x80, 0xa6, 0xf0, 0x3d, 0x58, 0xb7, 0x74, 0xea, + 0x68, 0x5a, 0xea, 0x33, 0xb5, 0xcc, 0x68, 0x46, 0xea, 0x2b, 0xf7, 0xb7, 0xe8, 0x0e, 0x5e, 0x84, + 0x46, 0xa6, 0x61, 0x45, 0xb3, 0x78, 0x19, 0x16, 0x8b, 0x5c, 0x75, 0x2d, 0x5e, 0x68, 0x06, 0xd1, + 0x1c, 0x26, 0xe6, 0x5f, 0x34, 0x10, 0x08, 0x4b, 0x2d, 0xfd, 0x19, 0x6a, 0xe0, 0x95, 0xf2, 0xf3, + 0x39, 0x9a, 0x17, 0x6e, 0x2c, 0xf5, 0x49, 0xe8, 0x2e, 0x5e, 0x33, 0xfd, 0x67, 0x08, 0xb4, 0x20, + 0x75, 0x1b, 0x22, 0x84, 0x16, 0xa5, 0x23, 0x4c, 0x8d, 0x04, 0x42, 0x52, 0x47, 0xf1, 0xe6, 0x47, + 0x4b, 0x42, 0x47, 0xf9, 0x0e, 0x47, 0x58, 0x78, 0xa3, 0x70, 0xf9, 0xa2, 0xe5, 0xac, 0xf5, 0xa9, + 0x99, 0x2b, 0x82, 0xb5, 0x70, 0x1d, 0xa2, 0x55, 0xc1, 0x5a, 0xbc, 0xd7, 0xd0, 0x1a, 0xde, 0xa9, + 0x7a, 0x30, 0x44, 0xeb, 0x42, 0xaa, 0x78, 0xa7, 0x20, 0xa2, 0x7d, 0x5d, 0xbc, 0x01, 0xd0, 0x86, + 0x0e, 0x7c, 0xa9, 0x7e, 0xa3, 0x4d, 0xbc, 0x37, 0xe1, 0x7d, 0x07, 0xdd, 0xc3, 0xee, 0xa4, 0x17, + 0x1e, 0xb4, 0x25, 0x7f, 0xe8, 0xa9, 0xaa, 0x63, 0x68, 0x1b, 0xcf, 0x8f, 0x5f, 0x43, 0xd0, 0x0e, + 0x3e, 0xb8, 0xdd, 0x63, 0x16, 0xba, 0x8f, 0x1f, 0xdf, 0xf2, 0x39, 0x0b, 0xed, 0xe2, 0x2d, 0xfb, + 0x8f, 0x39, 0x68, 0xef, 0xd9, 0x63, 0x58, 0xeb, 0x84, 0x83, 0xc3, 0xf8, 0x26, 0x1c, 0xf5, 0x6e, + 0xe2, 0x77, 0x61, 0xf4, 0x96, 0x27, 0x67, 0xfd, 0x1f, 0xb5, 0x85, 0x17, 0xf2, 0xcc, 0x2b, 0x4f, + 0xf3, 0x37, 0x77, 0xe4, 0x7f, 0xb3, 0xf9, 0xf1, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x09, 0x2e, + 0x54, 0x4d, 0x94, 0x23, 0x00, 0x00, } diff --git a/gauge_messages/spec.pb.go b/gauge_messages/spec.pb.go index 56290ff..f81219d 100644 --- a/gauge_messages/spec.pb.go +++ b/gauge_messages/spec.pb.go @@ -3,9 +3,11 @@ package gauge_messages -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +import ( + fmt "fmt" + proto "github.com/golang/protobuf/proto" + math "math" +) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -34,6 +36,7 @@ var ExecutionStatus_name = map[int32]string{ 2: "FAILED", 3: "SKIPPED", } + var ExecutionStatus_value = map[string]int32{ "NOTEXECUTED": 0, "PASSED": 1, @@ -44,8 +47,9 @@ var ExecutionStatus_value = map[string]int32{ func (x ExecutionStatus) String() string { return proto.EnumName(ExecutionStatus_name, int32(x)) } + func (ExecutionStatus) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{0} + return fileDescriptor_423806180556987f, []int{0} } // / Enumerates various item types that the proto item can contain. Valid types are: Step, Comment, Concept, Scenario, TableDrivenScenario, Table, Tags @@ -70,6 +74,7 @@ var ProtoItem_ItemType_name = map[int32]string{ 5: "Table", 6: "Tags", } + var ProtoItem_ItemType_value = map[string]int32{ "Step": 0, "Comment": 1, @@ -83,8 +88,9 @@ var ProtoItem_ItemType_value = map[string]int32{ func (x ProtoItem_ItemType) String() string { return proto.EnumName(ProtoItem_ItemType_name, int32(x)) } + func (ProtoItem_ItemType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{1, 0} + return fileDescriptor_423806180556987f, []int{1, 0} } // / Enum representing the types of Fragment @@ -99,6 +105,7 @@ var Fragment_FragmentType_name = map[int32]string{ 0: "Text", 1: "Parameter", } + var Fragment_FragmentType_value = map[string]int32{ "Text": 0, "Parameter": 1, @@ -107,8 +114,9 @@ var Fragment_FragmentType_value = map[string]int32{ func (x Fragment_FragmentType) String() string { return proto.EnumName(Fragment_FragmentType_name, int32(x)) } + func (Fragment_FragmentType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{8, 0} + return fileDescriptor_423806180556987f, []int{8, 0} } // / Enum representing types of Parameter. @@ -129,6 +137,7 @@ var Parameter_ParameterType_name = map[int32]string{ 3: "Special_Table", 4: "Table", } + var Parameter_ParameterType_value = map[string]int32{ "Static": 0, "Dynamic": 1, @@ -140,8 +149,9 @@ var Parameter_ParameterType_value = map[string]int32{ func (x Parameter_ParameterType) String() string { return proto.EnumName(Parameter_ParameterType_name, int32(x)) } + func (Parameter_ParameterType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{9, 0} + return fileDescriptor_423806180556987f, []int{9, 0} } type ProtoExecutionResult_ErrorType int32 @@ -155,6 +165,7 @@ var ProtoExecutionResult_ErrorType_name = map[int32]string{ 0: "ASSERTION", 1: "VERIFICATION", } + var ProtoExecutionResult_ErrorType_value = map[string]int32{ "ASSERTION": 0, "VERIFICATION": 1, @@ -163,8 +174,9 @@ var ProtoExecutionResult_ErrorType_value = map[string]int32{ func (x ProtoExecutionResult_ErrorType) String() string { return proto.EnumName(ProtoExecutionResult_ErrorType_name, int32(x)) } + func (ProtoExecutionResult_ErrorType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{14, 0} + return fileDescriptor_423806180556987f, []int{14, 0} } type Error_ErrorType int32 @@ -178,6 +190,7 @@ var Error_ErrorType_name = map[int32]string{ 0: "PARSE_ERROR", 1: "VALIDATION_ERROR", } + var Error_ErrorType_value = map[string]int32{ "PARSE_ERROR": 0, "VALIDATION_ERROR": 1, @@ -186,8 +199,9 @@ var Error_ErrorType_value = map[string]int32{ func (x Error_ErrorType) String() string { return proto.EnumName(Error_ErrorType_name, int32(x)) } + func (Error_ErrorType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{18, 0} + return fileDescriptor_423806180556987f, []int{18, 0} } // / A proto object representing a Specification @@ -218,7 +232,10 @@ type ProtoSpec struct { // / Capture Screenshot at pre hook exec time to be available on reports PreHookScreenshots [][]byte `protobuf:"bytes,12,rep,name=preHookScreenshots,proto3" json:"preHookScreenshots,omitempty"` // / Capture Screenshot at post hook exec time to be available on reports - PostHookScreenshots [][]byte `protobuf:"bytes,13,rep,name=postHookScreenshots,proto3" json:"postHookScreenshots,omitempty"` + PostHookScreenshots [][]byte `protobuf:"bytes,13,rep,name=postHookScreenshots,proto3" json:"postHookScreenshots,omitempty"` + // / meta field to indicate the number of items in the list + // / used when items are sent as individual chunk + ItemCount int64 `protobuf:"varint,14,opt,name=itemCount,proto3" json:"itemCount,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -228,16 +245,17 @@ func (m *ProtoSpec) Reset() { *m = ProtoSpec{} } func (m *ProtoSpec) String() string { return proto.CompactTextString(m) } func (*ProtoSpec) ProtoMessage() {} func (*ProtoSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{0} + return fileDescriptor_423806180556987f, []int{0} } + func (m *ProtoSpec) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoSpec.Unmarshal(m, b) } func (m *ProtoSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoSpec.Marshal(b, m, deterministic) } -func (dst *ProtoSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoSpec.Merge(dst, src) +func (m *ProtoSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoSpec.Merge(m, src) } func (m *ProtoSpec) XXX_Size() int { return xxx_messageInfo_ProtoSpec.Size(m) @@ -341,6 +359,13 @@ func (m *ProtoSpec) GetPostHookScreenshots() [][]byte { return nil } +func (m *ProtoSpec) GetItemCount() int64 { + if m != nil { + return m.ItemCount + } + return 0 +} + // / Container for all valid Items under a Specification. type ProtoItem struct { // / Itemtype of the current ProtoItem @@ -358,26 +383,29 @@ type ProtoItem struct { // / Holds the Table definition. Valid only if ItemType = Table Table *ProtoTable `protobuf:"bytes,7,opt,name=table,proto3" json:"table,omitempty"` // / Holds the Tags definition. Valid only if ItemType = Tags - Tags *ProtoTags `protobuf:"bytes,8,opt,name=tags,proto3" json:"tags,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Tags *ProtoTags `protobuf:"bytes,8,opt,name=tags,proto3" json:"tags,omitempty"` + // / Holds the Filename that the item belongs to + FileName string `protobuf:"bytes,9,opt,name=fileName,proto3" json:"fileName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProtoItem) Reset() { *m = ProtoItem{} } func (m *ProtoItem) String() string { return proto.CompactTextString(m) } func (*ProtoItem) ProtoMessage() {} func (*ProtoItem) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{1} + return fileDescriptor_423806180556987f, []int{1} } + func (m *ProtoItem) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoItem.Unmarshal(m, b) } func (m *ProtoItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoItem.Marshal(b, m, deterministic) } -func (dst *ProtoItem) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoItem.Merge(dst, src) +func (m *ProtoItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoItem.Merge(m, src) } func (m *ProtoItem) XXX_Size() int { return xxx_messageInfo_ProtoItem.Size(m) @@ -444,6 +472,13 @@ func (m *ProtoItem) GetTags() *ProtoTags { return nil } +func (m *ProtoItem) GetFileName() string { + if m != nil { + return m.FileName + } + return "" +} + // / A proto object representing a Scenario type ProtoScenario struct { // / Heading of the given Scenario @@ -495,16 +530,17 @@ func (m *ProtoScenario) Reset() { *m = ProtoScenario{} } func (m *ProtoScenario) String() string { return proto.CompactTextString(m) } func (*ProtoScenario) ProtoMessage() {} func (*ProtoScenario) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{2} + return fileDescriptor_423806180556987f, []int{2} } + func (m *ProtoScenario) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoScenario.Unmarshal(m, b) } func (m *ProtoScenario) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoScenario.Marshal(b, m, deterministic) } -func (dst *ProtoScenario) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoScenario.Merge(dst, src) +func (m *ProtoScenario) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoScenario.Merge(m, src) } func (m *ProtoScenario) XXX_Size() int { return xxx_messageInfo_ProtoScenario.Size(m) @@ -674,16 +710,17 @@ func (m *Span) Reset() { *m = Span{} } func (m *Span) String() string { return proto.CompactTextString(m) } func (*Span) ProtoMessage() {} func (*Span) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{3} + return fileDescriptor_423806180556987f, []int{3} } + func (m *Span) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Span.Unmarshal(m, b) } func (m *Span) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Span.Marshal(b, m, deterministic) } -func (dst *Span) XXX_Merge(src proto.Message) { - xxx_messageInfo_Span.Merge(dst, src) +func (m *Span) XXX_Merge(src proto.Message) { + xxx_messageInfo_Span.Merge(m, src) } func (m *Span) XXX_Size() int { return xxx_messageInfo_Span.Size(m) @@ -727,26 +764,35 @@ type ProtoTableDrivenScenario struct { // / Scenario under Table driven execution Scenario *ProtoScenario `protobuf:"bytes,1,opt,name=scenario,proto3" json:"scenario,omitempty"` // / Row Index of data table against which the current scenario is executed - TableRowIndex int32 `protobuf:"varint,2,opt,name=tableRowIndex,proto3" json:"tableRowIndex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + TableRowIndex int32 `protobuf:"varint,2,opt,name=tableRowIndex,proto3" json:"tableRowIndex,omitempty"` + // / Row Index of scenario data table against which the current scenario is executed + ScenarioTableRowIndex int32 `protobuf:"varint,3,opt,name=scenarioTableRowIndex,proto3" json:"scenarioTableRowIndex,omitempty"` + // / Executed against a spec data table + IsSpecTableDriven bool `protobuf:"varint,4,opt,name=isSpecTableDriven,proto3" json:"isSpecTableDriven,omitempty"` + // / Executed against a scenario data table + IsScenarioTableDriven bool `protobuf:"varint,5,opt,name=isScenarioTableDriven,proto3" json:"isScenarioTableDriven,omitempty"` + // / Holds the scenario data table + ScenarioDataTable *ProtoTable `protobuf:"bytes,6,opt,name=scenarioDataTable,proto3" json:"scenarioDataTable,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProtoTableDrivenScenario) Reset() { *m = ProtoTableDrivenScenario{} } func (m *ProtoTableDrivenScenario) String() string { return proto.CompactTextString(m) } func (*ProtoTableDrivenScenario) ProtoMessage() {} func (*ProtoTableDrivenScenario) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{4} + return fileDescriptor_423806180556987f, []int{4} } + func (m *ProtoTableDrivenScenario) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoTableDrivenScenario.Unmarshal(m, b) } func (m *ProtoTableDrivenScenario) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoTableDrivenScenario.Marshal(b, m, deterministic) } -func (dst *ProtoTableDrivenScenario) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoTableDrivenScenario.Merge(dst, src) +func (m *ProtoTableDrivenScenario) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoTableDrivenScenario.Merge(m, src) } func (m *ProtoTableDrivenScenario) XXX_Size() int { return xxx_messageInfo_ProtoTableDrivenScenario.Size(m) @@ -771,6 +817,34 @@ func (m *ProtoTableDrivenScenario) GetTableRowIndex() int32 { return 0 } +func (m *ProtoTableDrivenScenario) GetScenarioTableRowIndex() int32 { + if m != nil { + return m.ScenarioTableRowIndex + } + return 0 +} + +func (m *ProtoTableDrivenScenario) GetIsSpecTableDriven() bool { + if m != nil { + return m.IsSpecTableDriven + } + return false +} + +func (m *ProtoTableDrivenScenario) GetIsScenarioTableDriven() bool { + if m != nil { + return m.IsScenarioTableDriven + } + return false +} + +func (m *ProtoTableDrivenScenario) GetScenarioDataTable() *ProtoTable { + if m != nil { + return m.ScenarioDataTable + } + return nil +} + // / A proto object representing a Step type ProtoStep struct { // / Holds the raw text of the Step as defined in the spec file. This contains the actual parameter values. @@ -798,16 +872,17 @@ func (m *ProtoStep) Reset() { *m = ProtoStep{} } func (m *ProtoStep) String() string { return proto.CompactTextString(m) } func (*ProtoStep) ProtoMessage() {} func (*ProtoStep) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{5} + return fileDescriptor_423806180556987f, []int{5} } + func (m *ProtoStep) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoStep.Unmarshal(m, b) } func (m *ProtoStep) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoStep.Marshal(b, m, deterministic) } -func (dst *ProtoStep) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoStep.Merge(dst, src) +func (m *ProtoStep) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoStep.Merge(m, src) } func (m *ProtoStep) XXX_Size() int { return xxx_messageInfo_ProtoStep.Size(m) @@ -893,16 +968,17 @@ func (m *ProtoConcept) Reset() { *m = ProtoConcept{} } func (m *ProtoConcept) String() string { return proto.CompactTextString(m) } func (*ProtoConcept) ProtoMessage() {} func (*ProtoConcept) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{6} + return fileDescriptor_423806180556987f, []int{6} } + func (m *ProtoConcept) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoConcept.Unmarshal(m, b) } func (m *ProtoConcept) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoConcept.Marshal(b, m, deterministic) } -func (dst *ProtoConcept) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoConcept.Merge(dst, src) +func (m *ProtoConcept) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoConcept.Merge(m, src) } func (m *ProtoConcept) XXX_Size() int { return xxx_messageInfo_ProtoConcept.Size(m) @@ -947,16 +1023,17 @@ func (m *ProtoTags) Reset() { *m = ProtoTags{} } func (m *ProtoTags) String() string { return proto.CompactTextString(m) } func (*ProtoTags) ProtoMessage() {} func (*ProtoTags) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{7} + return fileDescriptor_423806180556987f, []int{7} } + func (m *ProtoTags) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoTags.Unmarshal(m, b) } func (m *ProtoTags) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoTags.Marshal(b, m, deterministic) } -func (dst *ProtoTags) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoTags.Merge(dst, src) +func (m *ProtoTags) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoTags.Merge(m, src) } func (m *ProtoTags) XXX_Size() int { return xxx_messageInfo_ProtoTags.Size(m) @@ -992,16 +1069,17 @@ func (m *Fragment) Reset() { *m = Fragment{} } func (m *Fragment) String() string { return proto.CompactTextString(m) } func (*Fragment) ProtoMessage() {} func (*Fragment) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{8} + return fileDescriptor_423806180556987f, []int{8} } + func (m *Fragment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Fragment.Unmarshal(m, b) } func (m *Fragment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Fragment.Marshal(b, m, deterministic) } -func (dst *Fragment) XXX_Merge(src proto.Message) { - xxx_messageInfo_Fragment.Merge(dst, src) +func (m *Fragment) XXX_Merge(src proto.Message) { + xxx_messageInfo_Fragment.Merge(m, src) } func (m *Fragment) XXX_Size() int { return xxx_messageInfo_Fragment.Size(m) @@ -1052,16 +1130,17 @@ func (m *Parameter) Reset() { *m = Parameter{} } func (m *Parameter) String() string { return proto.CompactTextString(m) } func (*Parameter) ProtoMessage() {} func (*Parameter) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{9} + return fileDescriptor_423806180556987f, []int{9} } + func (m *Parameter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Parameter.Unmarshal(m, b) } func (m *Parameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Parameter.Marshal(b, m, deterministic) } -func (dst *Parameter) XXX_Merge(src proto.Message) { - xxx_messageInfo_Parameter.Merge(dst, src) +func (m *Parameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_Parameter.Merge(m, src) } func (m *Parameter) XXX_Size() int { return xxx_messageInfo_Parameter.Size(m) @@ -1113,16 +1192,17 @@ func (m *ProtoComment) Reset() { *m = ProtoComment{} } func (m *ProtoComment) String() string { return proto.CompactTextString(m) } func (*ProtoComment) ProtoMessage() {} func (*ProtoComment) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{10} + return fileDescriptor_423806180556987f, []int{10} } + func (m *ProtoComment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoComment.Unmarshal(m, b) } func (m *ProtoComment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoComment.Marshal(b, m, deterministic) } -func (dst *ProtoComment) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoComment.Merge(dst, src) +func (m *ProtoComment) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoComment.Merge(m, src) } func (m *ProtoComment) XXX_Size() int { return xxx_messageInfo_ProtoComment.Size(m) @@ -1155,16 +1235,17 @@ func (m *ProtoTable) Reset() { *m = ProtoTable{} } func (m *ProtoTable) String() string { return proto.CompactTextString(m) } func (*ProtoTable) ProtoMessage() {} func (*ProtoTable) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{11} + return fileDescriptor_423806180556987f, []int{11} } + func (m *ProtoTable) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoTable.Unmarshal(m, b) } func (m *ProtoTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoTable.Marshal(b, m, deterministic) } -func (dst *ProtoTable) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoTable.Merge(dst, src) +func (m *ProtoTable) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoTable.Merge(m, src) } func (m *ProtoTable) XXX_Size() int { return xxx_messageInfo_ProtoTable.Size(m) @@ -1202,16 +1283,17 @@ func (m *ProtoTableRow) Reset() { *m = ProtoTableRow{} } func (m *ProtoTableRow) String() string { return proto.CompactTextString(m) } func (*ProtoTableRow) ProtoMessage() {} func (*ProtoTableRow) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{12} + return fileDescriptor_423806180556987f, []int{12} } + func (m *ProtoTableRow) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoTableRow.Unmarshal(m, b) } func (m *ProtoTableRow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoTableRow.Marshal(b, m, deterministic) } -func (dst *ProtoTableRow) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoTableRow.Merge(dst, src) +func (m *ProtoTableRow) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoTableRow.Merge(m, src) } func (m *ProtoTableRow) XXX_Size() int { return xxx_messageInfo_ProtoTableRow.Size(m) @@ -1248,16 +1330,17 @@ func (m *ProtoStepExecutionResult) Reset() { *m = ProtoStepExecutionResu func (m *ProtoStepExecutionResult) String() string { return proto.CompactTextString(m) } func (*ProtoStepExecutionResult) ProtoMessage() {} func (*ProtoStepExecutionResult) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{13} + return fileDescriptor_423806180556987f, []int{13} } + func (m *ProtoStepExecutionResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoStepExecutionResult.Unmarshal(m, b) } func (m *ProtoStepExecutionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoStepExecutionResult.Marshal(b, m, deterministic) } -func (dst *ProtoStepExecutionResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoStepExecutionResult.Merge(dst, src) +func (m *ProtoStepExecutionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoStepExecutionResult.Merge(m, src) } func (m *ProtoStepExecutionResult) XXX_Size() int { return xxx_messageInfo_ProtoStepExecutionResult.Size(m) @@ -1334,16 +1417,17 @@ func (m *ProtoExecutionResult) Reset() { *m = ProtoExecutionResult{} } func (m *ProtoExecutionResult) String() string { return proto.CompactTextString(m) } func (*ProtoExecutionResult) ProtoMessage() {} func (*ProtoExecutionResult) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{14} + return fileDescriptor_423806180556987f, []int{14} } + func (m *ProtoExecutionResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoExecutionResult.Unmarshal(m, b) } func (m *ProtoExecutionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoExecutionResult.Marshal(b, m, deterministic) } -func (dst *ProtoExecutionResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoExecutionResult.Merge(dst, src) +func (m *ProtoExecutionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoExecutionResult.Merge(m, src) } func (m *ProtoExecutionResult) XXX_Size() int { return xxx_messageInfo_ProtoExecutionResult.Size(m) @@ -1447,16 +1531,17 @@ func (m *ProtoHookFailure) Reset() { *m = ProtoHookFailure{} } func (m *ProtoHookFailure) String() string { return proto.CompactTextString(m) } func (*ProtoHookFailure) ProtoMessage() {} func (*ProtoHookFailure) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{15} + return fileDescriptor_423806180556987f, []int{15} } + func (m *ProtoHookFailure) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoHookFailure.Unmarshal(m, b) } func (m *ProtoHookFailure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoHookFailure.Marshal(b, m, deterministic) } -func (dst *ProtoHookFailure) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoHookFailure.Merge(dst, src) +func (m *ProtoHookFailure) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoHookFailure.Merge(m, src) } func (m *ProtoHookFailure) XXX_Size() int { return xxx_messageInfo_ProtoHookFailure.Size(m) @@ -1539,7 +1624,11 @@ type ProtoSuiteResult struct { // / Capture Screenshot at pre hook exec time to be available on reports PreHookScreenshots [][]byte `protobuf:"bytes,17,rep,name=preHookScreenshots,proto3" json:"preHookScreenshots,omitempty"` // / Capture Screenshot at post hook exec time to be available on reports - PostHookScreenshots [][]byte `protobuf:"bytes,18,rep,name=postHookScreenshots,proto3" json:"postHookScreenshots,omitempty"` + PostHookScreenshots [][]byte `protobuf:"bytes,18,rep,name=postHookScreenshots,proto3" json:"postHookScreenshots,omitempty"` + // Indicates if the result is sent in chunks + Chunked bool `protobuf:"varint,19,opt,name=chunked,proto3" json:"chunked,omitempty"` + // Indicates the number of chunks to expect after this + ChunkSize int64 `protobuf:"varint,20,opt,name=chunkSize,proto3" json:"chunkSize,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1549,16 +1638,17 @@ func (m *ProtoSuiteResult) Reset() { *m = ProtoSuiteResult{} } func (m *ProtoSuiteResult) String() string { return proto.CompactTextString(m) } func (*ProtoSuiteResult) ProtoMessage() {} func (*ProtoSuiteResult) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{16} + return fileDescriptor_423806180556987f, []int{16} } + func (m *ProtoSuiteResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoSuiteResult.Unmarshal(m, b) } func (m *ProtoSuiteResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoSuiteResult.Marshal(b, m, deterministic) } -func (dst *ProtoSuiteResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoSuiteResult.Merge(dst, src) +func (m *ProtoSuiteResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoSuiteResult.Merge(m, src) } func (m *ProtoSuiteResult) XXX_Size() int { return xxx_messageInfo_ProtoSuiteResult.Size(m) @@ -1697,6 +1787,20 @@ func (m *ProtoSuiteResult) GetPostHookScreenshots() [][]byte { return nil } +func (m *ProtoSuiteResult) GetChunked() bool { + if m != nil { + return m.Chunked + } + return false +} + +func (m *ProtoSuiteResult) GetChunkSize() int64 { + if m != nil { + return m.ChunkSize + } + return 0 +} + // / A proto object representing the result of Spec execution. type ProtoSpecResult struct { // / Represents the corresponding Specification @@ -1728,16 +1832,17 @@ func (m *ProtoSpecResult) Reset() { *m = ProtoSpecResult{} } func (m *ProtoSpecResult) String() string { return proto.CompactTextString(m) } func (*ProtoSpecResult) ProtoMessage() {} func (*ProtoSpecResult) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{17} + return fileDescriptor_423806180556987f, []int{17} } + func (m *ProtoSpecResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoSpecResult.Unmarshal(m, b) } func (m *ProtoSpecResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoSpecResult.Marshal(b, m, deterministic) } -func (dst *ProtoSpecResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoSpecResult.Merge(dst, src) +func (m *ProtoSpecResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoSpecResult.Merge(m, src) } func (m *ProtoSpecResult) XXX_Size() int { return xxx_messageInfo_ProtoSpecResult.Size(m) @@ -1837,16 +1942,17 @@ func (m *Error) Reset() { *m = Error{} } func (m *Error) String() string { return proto.CompactTextString(m) } func (*Error) ProtoMessage() {} func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{18} + return fileDescriptor_423806180556987f, []int{18} } + func (m *Error) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Error.Unmarshal(m, b) } func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Error.Marshal(b, m, deterministic) } -func (dst *Error) XXX_Merge(src proto.Message) { - xxx_messageInfo_Error.Merge(dst, src) +func (m *Error) XXX_Merge(src proto.Message) { + xxx_messageInfo_Error.Merge(m, src) } func (m *Error) XXX_Size() int { return xxx_messageInfo_Error.Size(m) @@ -1902,16 +2008,17 @@ func (m *ProtoStepValue) Reset() { *m = ProtoStepValue{} } func (m *ProtoStepValue) String() string { return proto.CompactTextString(m) } func (*ProtoStepValue) ProtoMessage() {} func (*ProtoStepValue) Descriptor() ([]byte, []int) { - return fileDescriptor_spec_17d5ce73e0227e31, []int{19} + return fileDescriptor_423806180556987f, []int{19} } + func (m *ProtoStepValue) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProtoStepValue.Unmarshal(m, b) } func (m *ProtoStepValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_ProtoStepValue.Marshal(b, m, deterministic) } -func (dst *ProtoStepValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtoStepValue.Merge(dst, src) +func (m *ProtoStepValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtoStepValue.Merge(m, src) } func (m *ProtoStepValue) XXX_Size() int { return xxx_messageInfo_ProtoStepValue.Size(m) @@ -1944,6 +2051,12 @@ func (m *ProtoStepValue) GetParameters() []string { } func init() { + proto.RegisterEnum("gauge.messages.ExecutionStatus", ExecutionStatus_name, ExecutionStatus_value) + proto.RegisterEnum("gauge.messages.ProtoItem_ItemType", ProtoItem_ItemType_name, ProtoItem_ItemType_value) + proto.RegisterEnum("gauge.messages.Fragment_FragmentType", Fragment_FragmentType_name, Fragment_FragmentType_value) + proto.RegisterEnum("gauge.messages.Parameter_ParameterType", Parameter_ParameterType_name, Parameter_ParameterType_value) + proto.RegisterEnum("gauge.messages.ProtoExecutionResult_ErrorType", ProtoExecutionResult_ErrorType_name, ProtoExecutionResult_ErrorType_value) + proto.RegisterEnum("gauge.messages.Error_ErrorType", Error_ErrorType_name, Error_ErrorType_value) proto.RegisterType((*ProtoSpec)(nil), "gauge.messages.ProtoSpec") proto.RegisterType((*ProtoItem)(nil), "gauge.messages.ProtoItem") proto.RegisterType((*ProtoScenario)(nil), "gauge.messages.ProtoScenario") @@ -1964,137 +2077,138 @@ func init() { proto.RegisterType((*ProtoSpecResult)(nil), "gauge.messages.ProtoSpecResult") proto.RegisterType((*Error)(nil), "gauge.messages.Error") proto.RegisterType((*ProtoStepValue)(nil), "gauge.messages.ProtoStepValue") - proto.RegisterEnum("gauge.messages.ExecutionStatus", ExecutionStatus_name, ExecutionStatus_value) - proto.RegisterEnum("gauge.messages.ProtoItem_ItemType", ProtoItem_ItemType_name, ProtoItem_ItemType_value) - proto.RegisterEnum("gauge.messages.Fragment_FragmentType", Fragment_FragmentType_name, Fragment_FragmentType_value) - proto.RegisterEnum("gauge.messages.Parameter_ParameterType", Parameter_ParameterType_name, Parameter_ParameterType_value) - proto.RegisterEnum("gauge.messages.ProtoExecutionResult_ErrorType", ProtoExecutionResult_ErrorType_name, ProtoExecutionResult_ErrorType_value) - proto.RegisterEnum("gauge.messages.Error_ErrorType", Error_ErrorType_name, Error_ErrorType_value) } -func init() { proto.RegisterFile("spec.proto", fileDescriptor_spec_17d5ce73e0227e31) } - -var fileDescriptor_spec_17d5ce73e0227e31 = []byte{ - // 1935 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xdd, 0x8e, 0x1b, 0x49, - 0x15, 0x9e, 0x76, 0xb7, 0xff, 0x8e, 0x7f, 0xa6, 0x53, 0x33, 0x84, 0x26, 0x0a, 0x89, 0xd5, 0x9a, - 0xd5, 0x9a, 0x28, 0x6b, 0xc2, 0xac, 0xc8, 0x0a, 0x21, 0x81, 0x66, 0xc7, 0x9e, 0x8d, 0x21, 0x3b, - 0x19, 0x95, 0x4d, 0x84, 0xf6, 0x66, 0xe9, 0xf4, 0xd4, 0x78, 0x7a, 0x63, 0x77, 0x5b, 0xdd, 0xe5, - 0x64, 0x16, 0xee, 0x79, 0x00, 0x6e, 0x78, 0x07, 0x24, 0xae, 0x78, 0x01, 0x24, 0x24, 0x6e, 0x90, - 0xf2, 0x08, 0x88, 0x47, 0x41, 0x75, 0xaa, 0xfa, 0xd7, 0xed, 0x19, 0x1b, 0x71, 0xb1, 0x77, 0x55, - 0xe7, 0xa7, 0x7e, 0x4e, 0x7d, 0x75, 0xce, 0x57, 0x05, 0x10, 0x2d, 0x99, 0x3b, 0x58, 0x86, 0x01, - 0x0f, 0x48, 0x77, 0xe6, 0xac, 0x66, 0x6c, 0xb0, 0x60, 0x51, 0xe4, 0xcc, 0x58, 0x64, 0xff, 0xc7, - 0x80, 0xe6, 0x85, 0xd0, 0x4c, 0x96, 0xcc, 0x25, 0x3d, 0x68, 0x09, 0xdb, 0x17, 0xcc, 0xb9, 0xf4, - 0xfc, 0x99, 0xa5, 0xf5, 0xb4, 0x7e, 0x93, 0x66, 0x45, 0xe4, 0xc7, 0x50, 0xf5, 0x38, 0x5b, 0x44, - 0x56, 0xa5, 0xa7, 0xf7, 0x5b, 0xc7, 0x3f, 0x18, 0xe4, 0xc7, 0x1b, 0xe0, 0x58, 0x63, 0xce, 0x16, - 0x54, 0xda, 0x91, 0x23, 0xe8, 0x78, 0xd1, 0xd4, 0x79, 0x33, 0x67, 0xc3, 0xd0, 0x7b, 0xc7, 0x7c, - 0x4b, 0xef, 0x69, 0xfd, 0x06, 0xcd, 0x0b, 0xc9, 0xaf, 0x60, 0x7f, 0x19, 0xb2, 0x17, 0x41, 0xf0, - 0xf6, 0xcc, 0xf1, 0xe6, 0xab, 0x90, 0x45, 0x96, 0x81, 0x13, 0xf4, 0x4a, 0x27, 0xc8, 0x18, 0xd2, - 0xa2, 0x23, 0x79, 0x09, 0xe6, 0x32, 0x88, 0x78, 0x6e, 0xb0, 0xea, 0x96, 0x83, 0xad, 0x79, 0x92, - 0x07, 0xd0, 0xb8, 0xf2, 0xe6, 0xec, 0xdc, 0x59, 0x30, 0xab, 0x86, 0xf1, 0x48, 0xfa, 0x84, 0x80, - 0xc1, 0x9d, 0x59, 0x64, 0xd5, 0x7b, 0x7a, 0xbf, 0x49, 0xb1, 0x4d, 0xfa, 0xc9, 0x4e, 0xbe, 0x54, - 0xb3, 0x58, 0x0d, 0x54, 0x17, 0xc5, 0xe4, 0x49, 0xba, 0xce, 0xc4, 0xb4, 0x89, 0xa6, 0x6b, 0x72, - 0xf2, 0x04, 0xba, 0x79, 0x77, 0x0b, 0x84, 0xe5, 0xe7, 0x15, 0x4b, 0xa3, 0x05, 0x0d, 0x79, 0x0a, - 0xfb, 0x05, 0x7f, 0xab, 0x95, 0x18, 0x17, 0x55, 0x64, 0x00, 0x44, 0xf9, 0x4f, 0xdc, 0x90, 0x31, - 0x3f, 0xba, 0x0e, 0x78, 0x64, 0xb5, 0x7b, 0x7a, 0xbf, 0x4d, 0x4b, 0x34, 0xe4, 0x19, 0x1c, 0xc4, - 0x43, 0x64, 0x1d, 0x3a, 0xe8, 0x50, 0xa6, 0xb2, 0x3f, 0xc4, 0x10, 0x13, 0xb0, 0x20, 0xbf, 0x80, - 0x86, 0x00, 0xc6, 0xf4, 0xdb, 0x25, 0x43, 0x7c, 0x75, 0x8f, 0xed, 0x8d, 0x18, 0x1a, 0x8c, 0x95, - 0x25, 0x4d, 0x7c, 0xc8, 0x27, 0x60, 0x44, 0x9c, 0x2d, 0xad, 0x4a, 0x4f, 0xdb, 0x88, 0xbf, 0x09, - 0x67, 0x4b, 0x8a, 0x66, 0xe4, 0x39, 0xd4, 0xdd, 0xc0, 0x77, 0xd9, 0x92, 0x23, 0xf0, 0x5a, 0xc7, - 0x0f, 0x4b, 0x3d, 0x4e, 0xa5, 0x0d, 0x8d, 0x8d, 0xc9, 0xcf, 0xa0, 0x11, 0xb9, 0xcc, 0x77, 0x42, - 0x2f, 0xb0, 0x0c, 0x74, 0xfc, 0x61, 0xf9, 0x54, 0xca, 0x88, 0x26, 0xe6, 0xe4, 0x2b, 0x38, 0xe0, - 0x29, 0xb4, 0x63, 0x03, 0xab, 0x8a, 0xa3, 0xf4, 0x4b, 0x47, 0x99, 0xae, 0xdb, 0xd3, 0xb2, 0x41, - 0xe4, 0x76, 0x16, 0x0b, 0xe6, 0x73, 0x04, 0xe3, 0xe6, 0xed, 0xa0, 0x0d, 0x8d, 0x8d, 0xc9, 0x33, - 0xa8, 0xe2, 0x70, 0x56, 0x1d, 0xbd, 0x1e, 0x6c, 0x5e, 0x05, 0x95, 0x86, 0x22, 0xce, 0x88, 0xed, - 0xc6, 0x2d, 0x71, 0x9e, 0x3a, 0xb3, 0x48, 0xc2, 0xde, 0xfe, 0x06, 0x1a, 0xf1, 0x61, 0x91, 0x06, - 0x18, 0xe2, 0x04, 0xcc, 0x3d, 0xd2, 0x82, 0xba, 0x5a, 0x8a, 0xa9, 0xc9, 0x0e, 0x46, 0xd7, 0xac, - 0x90, 0x36, 0x34, 0xe2, 0x4d, 0x99, 0x3a, 0xf9, 0x3e, 0x1c, 0x94, 0x84, 0xc0, 0x34, 0x48, 0x13, - 0xaa, 0xa8, 0x30, 0xab, 0x62, 0x54, 0x31, 0x9f, 0x59, 0xb3, 0xff, 0x56, 0x87, 0x4e, 0x2e, 0xf8, - 0xe2, 0xd2, 0xc5, 0xe1, 0xcf, 0xe7, 0xae, 0xa2, 0x98, 0x3c, 0x80, 0xda, 0x95, 0xe3, 0xcd, 0xd9, - 0x25, 0x02, 0xa8, 0x81, 0x77, 0x42, 0x49, 0xc8, 0x4f, 0xa1, 0xe1, 0x06, 0x3e, 0x67, 0x37, 0x3c, - 0xb2, 0xf4, 0xbb, 0xd2, 0x5b, 0x62, 0x4a, 0x7e, 0x09, 0x9d, 0x78, 0x96, 0x31, 0xa6, 0x46, 0xe3, - 0x2e, 0xdf, 0xbc, 0x3d, 0x79, 0x91, 0x5c, 0x6e, 0x95, 0x75, 0x14, 0x56, 0xee, 0x4e, 0x57, 0x05, - 0x3f, 0x4c, 0xa3, 0xf9, 0x04, 0xa6, 0x60, 0xb2, 0x4d, 0x1a, 0xcd, 0x3b, 0x96, 0x26, 0xb7, 0x23, - 0xe8, 0xb0, 0x1b, 0xe6, 0xae, 0xb8, 0x17, 0xf8, 0x53, 0x6f, 0xc1, 0x10, 0x1d, 0x3a, 0xcd, 0x0b, - 0xc9, 0x43, 0xa8, 0x47, 0x6f, 0xbd, 0xe5, 0x92, 0x5d, 0x5a, 0xcd, 0x24, 0xc8, 0xb1, 0x88, 0x3c, - 0x02, 0x10, 0xcd, 0x51, 0x18, 0x06, 0x61, 0x24, 0xd3, 0x18, 0xcd, 0x48, 0x48, 0x17, 0x2a, 0xe3, - 0xa1, 0xd5, 0xc2, 0xe3, 0xab, 0x8c, 0x87, 0x22, 0xbc, 0x9c, 0x39, 0xe1, 0x30, 0x78, 0xef, 0x0b, - 0x54, 0xc9, 0xdc, 0x74, 0x7b, 0x78, 0x73, 0xf6, 0xa4, 0x0f, 0x46, 0xb4, 0x74, 0x7c, 0xab, 0x83, - 0x91, 0x38, 0x2c, 0xfa, 0x4d, 0x96, 0x8e, 0x4f, 0xd1, 0x82, 0x8c, 0x61, 0x3f, 0xd9, 0xc9, 0x84, - 0x3b, 0x7c, 0x15, 0x59, 0x5d, 0x4c, 0x51, 0x8f, 0x8b, 0x4e, 0xa3, 0xbc, 0x19, 0x2d, 0xfa, 0x95, - 0x95, 0x81, 0xfd, 0xed, 0xcb, 0x80, 0xb9, 0x75, 0x19, 0xb8, 0xb7, 0x4b, 0x19, 0x20, 0xbb, 0x96, - 0x81, 0x83, 0x5d, 0xcb, 0xc0, 0xe1, 0xe6, 0x32, 0x70, 0x05, 0x86, 0x08, 0x35, 0x39, 0x84, 0x6a, - 0xc4, 0x9d, 0x90, 0xe3, 0x0d, 0xd5, 0xa9, 0xec, 0x10, 0x13, 0x74, 0xe6, 0xcb, 0x4b, 0xa9, 0x53, - 0xd1, 0x24, 0x0f, 0xa1, 0x89, 0xaa, 0xd3, 0x6b, 0x27, 0xc4, 0xdc, 0xad, 0xd3, 0x54, 0x40, 0x2c, - 0xa8, 0x33, 0xff, 0x12, 0x75, 0x06, 0xea, 0xe2, 0xae, 0xfd, 0x07, 0xb0, 0x36, 0xe5, 0xd4, 0x5c, - 0x56, 0xd7, 0x76, 0xcb, 0xea, 0x47, 0xd0, 0xc1, 0xc4, 0x48, 0x83, 0xf7, 0x63, 0xff, 0x92, 0xdd, - 0xe0, 0x52, 0xab, 0x34, 0x2f, 0xb4, 0xff, 0xac, 0xc7, 0x74, 0x4a, 0x14, 0x9f, 0x47, 0x00, 0x8e, - 0xcb, 0x57, 0xce, 0x7c, 0xca, 0x6e, 0xb8, 0xca, 0x48, 0x19, 0x89, 0xd0, 0x2f, 0x9d, 0x30, 0x62, - 0x97, 0xa8, 0xaf, 0x48, 0x7d, 0x2a, 0x21, 0xcf, 0xa1, 0x79, 0x15, 0x3a, 0x33, 0x91, 0x3f, 0xe3, - 0x8c, 0x64, 0x15, 0xd7, 0x7b, 0xa6, 0x0c, 0x68, 0x6a, 0x2a, 0x2a, 0x90, 0x28, 0x7e, 0x09, 0x48, - 0x29, 0x8b, 0x56, 0x73, 0xae, 0xea, 0x58, 0x7f, 0x63, 0xc9, 0x2c, 0xd8, 0xd3, 0xb2, 0x41, 0xca, - 0x80, 0x5d, 0xdd, 0x1e, 0xd8, 0xb5, 0x0d, 0xc0, 0x2e, 0x87, 0x5f, 0x7d, 0x57, 0xf8, 0x35, 0x36, - 0xc3, 0xef, 0xdf, 0x1a, 0xb4, 0xb3, 0xa5, 0x9e, 0xfc, 0x1c, 0x5a, 0xaa, 0xd8, 0x8b, 0xbd, 0x2b, - 0x38, 0xdc, 0xc2, 0x27, 0xb2, 0xd6, 0x82, 0x06, 0x47, 0x98, 0x8c, 0xee, 0xa6, 0xc1, 0x68, 0x47, - 0x7e, 0x07, 0xf7, 0x95, 0x7f, 0xf1, 0x54, 0xf4, 0x1d, 0x4f, 0x65, 0xc3, 0x38, 0xf6, 0x63, 0x85, - 0x3c, 0x51, 0x24, 0x93, 0xe4, 0xad, 0xa5, 0xc9, 0xdb, 0xfe, 0x97, 0x06, 0x8d, 0x18, 0x2d, 0x64, - 0x0c, 0xed, 0x18, 0x2f, 0x19, 0x2a, 0xf6, 0xd1, 0x26, 0x74, 0x25, 0x0d, 0x64, 0x63, 0x39, 0x57, - 0x9c, 0x2b, 0xc5, 0x2f, 0xb6, 0xc9, 0x67, 0xd0, 0x5c, 0x3a, 0xa1, 0xb3, 0x60, 0x9c, 0x85, 0x6a, - 0x87, 0xeb, 0x31, 0x8a, 0x0d, 0x68, 0x6a, 0x6b, 0x7f, 0x0c, 0xed, 0xec, 0x54, 0x58, 0xf5, 0xd9, - 0x0d, 0x37, 0xf7, 0x48, 0x07, 0x9a, 0x89, 0x87, 0xa9, 0xd9, 0x7f, 0xaa, 0x64, 0xfa, 0xe4, 0x4b, - 0xe8, 0x24, 0x63, 0x64, 0xf6, 0xf3, 0xf1, 0xc6, 0x39, 0xd3, 0x16, 0xee, 0x28, 0xef, 0x2d, 0x72, - 0xd4, 0x3b, 0x67, 0xbe, 0x62, 0x6a, 0x4f, 0xb2, 0x23, 0x36, 0xea, 0x8b, 0x67, 0x80, 0x2e, 0x37, - 0x2a, 0xda, 0x29, 0xb1, 0x32, 0xb6, 0x24, 0x56, 0xf6, 0x57, 0xd0, 0xc9, 0xcd, 0x4d, 0x00, 0x6a, - 0xa2, 0x68, 0x78, 0xae, 0x24, 0x4c, 0xc3, 0x6f, 0x7d, 0x67, 0xe1, 0xb9, 0xa6, 0x46, 0x08, 0x74, - 0xc5, 0xab, 0xcc, 0x73, 0xe6, 0x5f, 0x4f, 0x78, 0xe8, 0xf9, 0x33, 0xb3, 0x42, 0xee, 0x41, 0x27, - 0x96, 0x49, 0x62, 0xa4, 0xa7, 0x1c, 0xc9, 0xb0, 0xed, 0x04, 0xe3, 0x92, 0xf6, 0xc5, 0x47, 0xa3, - 0xa5, 0x47, 0x63, 0xdf, 0x00, 0xa4, 0x8b, 0x22, 0x9f, 0x41, 0xfd, 0x9a, 0x39, 0x97, 0x2c, 0x8c, - 0x6e, 0x4d, 0x88, 0x53, 0x95, 0xe5, 0x68, 0x6c, 0x4d, 0x7e, 0x02, 0x46, 0x18, 0xbc, 0x8f, 0x2f, - 0xc0, 0x1d, 0x5e, 0x68, 0x6a, 0x7f, 0xa4, 0x68, 0x5b, 0x2c, 0x16, 0x61, 0x76, 0xd9, 0x7c, 0x1e, - 0xc3, 0x54, 0x76, 0xec, 0xbf, 0x57, 0x54, 0x06, 0x2f, 0x41, 0x3f, 0x39, 0xcf, 0x94, 0x68, 0x75, - 0x81, 0xe4, 0xba, 0x8f, 0x4a, 0x57, 0x50, 0xbc, 0x3c, 0x45, 0xe7, 0x12, 0xee, 0x55, 0xf9, 0xff, - 0x71, 0x2f, 0xfd, 0x7f, 0xe5, 0x5e, 0x56, 0xca, 0xa0, 0x0c, 0x7c, 0x2e, 0x27, 0xec, 0xe9, 0x08, - 0x3a, 0xaa, 0x49, 0x99, 0x13, 0x05, 0x3e, 0x52, 0xc5, 0x26, 0xcd, 0x0b, 0xed, 0x0f, 0x3a, 0x1c, - 0x96, 0xed, 0x9f, 0xdc, 0x4f, 0xe8, 0xaf, 0x86, 0xe3, 0xc6, 0xd4, 0xf7, 0x09, 0x98, 0x21, 0x73, - 0x83, 0x77, 0x2c, 0x14, 0x67, 0x83, 0x4c, 0x4c, 0x12, 0x64, 0xba, 0x26, 0x27, 0x36, 0xb4, 0x99, - 0x68, 0xc4, 0xac, 0x42, 0x5e, 0x87, 0x9c, 0x0c, 0x49, 0x1e, 0x77, 0xdc, 0xb7, 0xd3, 0xd0, 0x71, - 0xe5, 0xdd, 0x10, 0x24, 0x2f, 0x91, 0x10, 0x1b, 0x20, 0xc2, 0xe4, 0x3c, 0xb9, 0x0e, 0x38, 0xee, - 0xa1, 0x8d, 0xbc, 0x24, 0x23, 0x5d, 0x27, 0x9b, 0xb5, 0x32, 0xb2, 0x69, 0x41, 0x5d, 0x05, 0x56, - 0x31, 0xd5, 0xb8, 0x4b, 0x5e, 0x42, 0x13, 0xd7, 0x84, 0xf9, 0xa0, 0x81, 0xf9, 0x60, 0xb0, 0x0d, - 0x48, 0x06, 0xa3, 0xd8, 0x8b, 0xa6, 0x03, 0x90, 0xa7, 0x70, 0xef, 0x4a, 0x9e, 0x4e, 0x5a, 0x55, - 0x90, 0xde, 0xb6, 0xe9, 0xba, 0x02, 0x3f, 0x52, 0x32, 0x75, 0x09, 0xb0, 0x2e, 0x65, 0x45, 0xf6, - 0x53, 0x68, 0x26, 0xf3, 0x88, 0xdc, 0x76, 0x32, 0x99, 0x8c, 0xe8, 0x74, 0xfc, 0xea, 0xdc, 0xdc, - 0x23, 0x26, 0xb4, 0x5f, 0x8f, 0xe8, 0xf8, 0x6c, 0x7c, 0x7a, 0x82, 0x12, 0xcd, 0xfe, 0xa0, 0x81, - 0x59, 0x84, 0x4d, 0x21, 0xc8, 0x5a, 0x49, 0x90, 0xf3, 0x07, 0x55, 0x29, 0x39, 0xa8, 0xfc, 0x41, - 0xe8, 0x9b, 0x0e, 0x22, 0x4f, 0x7d, 0x8c, 0x12, 0xea, 0x53, 0x1e, 0xa0, 0xea, 0x86, 0x00, 0xd9, - 0x7f, 0xad, 0xa9, 0x0d, 0x4d, 0x56, 0x1e, 0x67, 0x0a, 0x9d, 0x27, 0xf2, 0xfb, 0x49, 0xf6, 0x64, - 0x56, 0x68, 0xad, 0x73, 0xef, 0xe4, 0xbb, 0x4a, 0xdd, 0xe9, 0xac, 0xcf, 0x77, 0xf4, 0x3e, 0xa7, - 0xd7, 0xce, 0x28, 0x5e, 0x3b, 0xb1, 0xf8, 0xe8, 0x0c, 0xbb, 0xa7, 0xc1, 0xca, 0x97, 0x21, 0xab, - 0xd2, 0x35, 0xf9, 0x96, 0xd7, 0x41, 0x00, 0x6f, 0xe5, 0xba, 0x2c, 0x8a, 0xa8, 0xc3, 0xe5, 0x73, - 0xbf, 0x42, 0xb3, 0x22, 0x61, 0xc1, 0xfc, 0x77, 0x5e, 0x18, 0xf8, 0xf8, 0x8d, 0xd0, 0x90, 0x7f, - 0x7c, 0x19, 0x51, 0x42, 0x1e, 0x9a, 0xaa, 0x6a, 0x08, 0x42, 0xd1, 0x83, 0xd6, 0x32, 0x0c, 0xbe, - 0x61, 0x2e, 0xc7, 0x9f, 0x30, 0x90, 0x5e, 0x19, 0x91, 0xe0, 0xeb, 0xdc, 0x5b, 0xb0, 0x88, 0x3b, - 0x8b, 0xa5, 0x7a, 0xbe, 0xa5, 0x02, 0x81, 0x0e, 0xdc, 0xd1, 0x44, 0xe6, 0x29, 0xb9, 0xd5, 0x36, - 0x6e, 0x75, 0x5d, 0x51, 0x46, 0x32, 0x3b, 0xdb, 0x93, 0xcc, 0xee, 0xd6, 0xaf, 0xa7, 0xfd, 0x5d, - 0x5e, 0x4f, 0xe6, 0xae, 0xaf, 0xa7, 0x7b, 0xbb, 0xd2, 0x57, 0xb2, 0x99, 0xbe, 0xfe, 0x43, 0x87, - 0xfd, 0x02, 0xf0, 0x91, 0x64, 0xc5, 0xa2, 0xdb, 0xf9, 0xab, 0xf0, 0x49, 0x6d, 0xb1, 0x88, 0xa8, - 0x77, 0x8d, 0x3c, 0x08, 0xf5, 0x96, 0xc9, 0x09, 0xc5, 0x22, 0x63, 0x41, 0x16, 0x9f, 0x3a, 0xda, - 0x96, 0xa9, 0x36, 0xc2, 0xfc, 0x19, 0x1c, 0xc8, 0xd6, 0xd0, 0xe1, 0x4e, 0x5c, 0xfd, 0xe5, 0xbb, - 0xa1, 0x4a, 0xcb, 0x54, 0xdb, 0xe7, 0xfe, 0xb8, 0x4c, 0xd6, 0xf3, 0x65, 0xf2, 0x18, 0x0e, 0xe3, - 0x05, 0xe6, 0x10, 0xd7, 0xc0, 0xc5, 0x97, 0xea, 0xd0, 0x47, 0xf6, 0xf3, 0xcb, 0x6c, 0xe2, 0x32, - 0x4b, 0x75, 0xe4, 0x13, 0xa8, 0xb1, 0xf4, 0x23, 0xa3, 0x75, 0xfc, 0xbd, 0xb5, 0x8f, 0x02, 0xa1, - 0xa5, 0xca, 0xc8, 0xfe, 0xa7, 0x06, 0x55, 0x59, 0x44, 0x3f, 0x05, 0x83, 0xa7, 0x3c, 0xf5, 0x71, - 0xa9, 0x5b, 0xa6, 0x10, 0xa1, 0x71, 0xfc, 0x17, 0x8d, 0x24, 0xb4, 0x92, 0xfe, 0x45, 0x23, 0x11, - 0x7d, 0x04, 0x30, 0xf7, 0x7c, 0x76, 0xbe, 0x5a, 0xbc, 0x51, 0x94, 0xbb, 0x4a, 0x33, 0x92, 0x6c, - 0x9d, 0x94, 0xe5, 0x38, 0xee, 0xda, 0xc7, 0xd9, 0x4a, 0xb4, 0x0f, 0xad, 0x8b, 0x13, 0x3a, 0x19, - 0x7d, 0x3d, 0xa2, 0xf4, 0x15, 0x35, 0xf7, 0xc8, 0x21, 0x98, 0xaf, 0x4f, 0x5e, 0x8e, 0x87, 0x58, - 0x89, 0x94, 0x54, 0xb3, 0xff, 0xa8, 0x41, 0x37, 0xe1, 0x68, 0xaf, 0x91, 0x1d, 0xe3, 0x7b, 0x5d, - 0x75, 0x54, 0x31, 0x4a, 0x05, 0xe4, 0x39, 0xdc, 0x4f, 0x28, 0xb6, 0xf7, 0x7b, 0x76, 0x99, 0xf8, - 0xa9, 0x8d, 0x6c, 0xd0, 0xaa, 0x27, 0xb2, 0xd4, 0xc8, 0x37, 0xb0, 0x7c, 0x22, 0x2b, 0xc9, 0x93, - 0x2f, 0x60, 0xbf, 0xf0, 0x17, 0x23, 0xb6, 0x70, 0xfe, 0x6a, 0x3a, 0xfa, 0xed, 0xe8, 0xf4, 0x37, - 0xd3, 0xd1, 0xd0, 0xdc, 0x13, 0x04, 0xfb, 0x42, 0x94, 0xd7, 0xa1, 0xa9, 0x89, 0xf6, 0xd9, 0xc9, - 0xf8, 0xe5, 0x68, 0x68, 0x56, 0x04, 0xd9, 0x9e, 0xfc, 0x7a, 0x7c, 0x71, 0x31, 0x1a, 0x9a, 0xfa, - 0xe7, 0x3f, 0x12, 0x0f, 0xb4, 0xc5, 0x80, 0x5f, 0x07, 0xab, 0xd9, 0x35, 0x7f, 0x1f, 0x84, 0x6f, - 0x23, 0x79, 0x28, 0x7f, 0xa9, 0x74, 0xbf, 0xc0, 0xc3, 0x89, 0xf3, 0xc8, 0x9b, 0x1a, 0xde, 0xa4, - 0x4f, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x06, 0x49, 0x75, 0x8d, 0x58, 0x19, 0x00, 0x00, +func init() { proto.RegisterFile("spec.proto", fileDescriptor_423806180556987f) } + +var fileDescriptor_423806180556987f = []byte{ + // 2043 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xdd, 0x6e, 0x23, 0x49, + 0xf5, 0x4f, 0xbb, 0xed, 0xd8, 0x3e, 0xfe, 0x48, 0xa7, 0x92, 0x9d, 0x7f, 0xff, 0x47, 0xc3, 0x8c, + 0xd5, 0xca, 0x6a, 0xcd, 0x68, 0x36, 0x0c, 0x59, 0x98, 0x15, 0x42, 0x02, 0x65, 0x63, 0x67, 0xc7, + 0x30, 0x9b, 0x89, 0xca, 0x66, 0x84, 0xf6, 0x66, 0xe9, 0xe9, 0x54, 0x92, 0xde, 0xd8, 0xdd, 0x56, + 0x77, 0x79, 0x26, 0xbb, 0x0f, 0xc0, 0x03, 0x70, 0xc3, 0x3b, 0x70, 0xcb, 0x0b, 0x20, 0x21, 0x71, + 0x83, 0xb4, 0x8f, 0x00, 0x57, 0xdc, 0xf0, 0x10, 0x08, 0xd5, 0xa9, 0xaa, 0xfe, 0x72, 0x3b, 0xb1, + 0x11, 0x17, 0xdc, 0x55, 0x9d, 0x8f, 0xaa, 0x3a, 0x55, 0xe7, 0xe3, 0x77, 0x0a, 0x20, 0x9e, 0x33, + 0xef, 0x70, 0x1e, 0x85, 0x3c, 0x24, 0xdd, 0x2b, 0x77, 0x71, 0xc5, 0x0e, 0x67, 0x2c, 0x8e, 0xdd, + 0x2b, 0x16, 0x3b, 0xff, 0xaa, 0x42, 0xf3, 0x5c, 0x70, 0xc6, 0x73, 0xe6, 0x91, 0x1e, 0xb4, 0x84, + 0xec, 0x4b, 0xe6, 0x5e, 0xf8, 0xc1, 0x95, 0x6d, 0xf4, 0x8c, 0x7e, 0x93, 0x66, 0x49, 0xe4, 0x07, + 0x50, 0xf3, 0x39, 0x9b, 0xc5, 0x76, 0xa5, 0x67, 0xf6, 0x5b, 0x47, 0xff, 0x7f, 0x98, 0x5f, 0xef, + 0x10, 0xd7, 0x1a, 0x71, 0x36, 0xa3, 0x52, 0x8e, 0x1c, 0x40, 0xc7, 0x8f, 0x27, 0xee, 0xdb, 0x29, + 0x1b, 0x44, 0xfe, 0x3b, 0x16, 0xd8, 0x66, 0xcf, 0xe8, 0x37, 0x68, 0x9e, 0x48, 0x7e, 0x01, 0x3b, + 0xf3, 0x88, 0xbd, 0x0c, 0xc3, 0x9b, 0x53, 0xd7, 0x9f, 0x2e, 0x22, 0x16, 0xdb, 0x55, 0xdc, 0xa0, + 0x57, 0xba, 0x41, 0x46, 0x90, 0x16, 0x15, 0xc9, 0x2b, 0xb0, 0xe6, 0x61, 0xcc, 0x73, 0x8b, 0xd5, + 0xd6, 0x5c, 0x6c, 0x49, 0x93, 0x3c, 0x84, 0xc6, 0xa5, 0x3f, 0x65, 0x67, 0xee, 0x8c, 0xd9, 0xdb, + 0x78, 0x1f, 0xc9, 0x9c, 0x10, 0xa8, 0x72, 0xf7, 0x2a, 0xb6, 0xeb, 0x3d, 0xb3, 0xdf, 0xa4, 0x38, + 0x26, 0xfd, 0xc4, 0x92, 0x2f, 0xd4, 0x2e, 0x76, 0x03, 0xd9, 0x45, 0x32, 0x79, 0x9a, 0x9e, 0x33, + 0x11, 0x6d, 0xa2, 0xe8, 0x12, 0x9d, 0x3c, 0x85, 0x6e, 0x5e, 0xdd, 0x06, 0x21, 0xf9, 0x59, 0xc5, + 0x36, 0x68, 0x81, 0x43, 0x9e, 0xc1, 0x4e, 0x41, 0xdf, 0x6e, 0x25, 0xc2, 0x45, 0x16, 0x39, 0x04, + 0xa2, 0xf4, 0xc7, 0x5e, 0xc4, 0x58, 0x10, 0x5f, 0x87, 0x3c, 0xb6, 0xdb, 0x3d, 0xb3, 0xdf, 0xa6, + 0x25, 0x1c, 0xf2, 0x1c, 0xf6, 0xf4, 0x12, 0x59, 0x85, 0x0e, 0x2a, 0x94, 0xb1, 0xc8, 0x23, 0x68, + 0x0a, 0x57, 0x38, 0x09, 0x17, 0x01, 0xb7, 0xbb, 0x3d, 0xa3, 0x6f, 0xd2, 0x94, 0xe0, 0xfc, 0x53, + 0x3b, 0xa0, 0x70, 0x1a, 0xf2, 0x33, 0x68, 0x08, 0xd6, 0xe4, 0x9b, 0x39, 0x43, 0xef, 0xeb, 0x1e, + 0x39, 0x2b, 0x3d, 0xec, 0x70, 0xa4, 0x24, 0x69, 0xa2, 0x43, 0x3e, 0x86, 0x6a, 0xcc, 0xd9, 0xdc, + 0xae, 0xf4, 0x8c, 0x95, 0xde, 0x39, 0xe6, 0x6c, 0x4e, 0x51, 0x8c, 0xbc, 0x80, 0xba, 0x17, 0x06, + 0x1e, 0x9b, 0x73, 0x74, 0xcb, 0xd6, 0xd1, 0xa3, 0x52, 0x8d, 0x13, 0x29, 0x43, 0xb5, 0x30, 0xf9, + 0x09, 0x34, 0x62, 0x8f, 0x05, 0x6e, 0xe4, 0x87, 0x76, 0x15, 0x15, 0xbf, 0x57, 0xbe, 0x95, 0x12, + 0xa2, 0x89, 0x38, 0xf9, 0x12, 0xf6, 0x78, 0xea, 0xf8, 0x5a, 0xc0, 0xae, 0xe1, 0x2a, 0xfd, 0xd2, + 0x55, 0x26, 0xcb, 0xf2, 0xb4, 0x6c, 0x11, 0x69, 0xce, 0x6c, 0xc6, 0x02, 0x8e, 0xae, 0xba, 0xda, + 0x1c, 0x94, 0xa1, 0x5a, 0x98, 0x3c, 0x87, 0x1a, 0x2e, 0x67, 0xd7, 0x51, 0xeb, 0xe1, 0xea, 0x53, + 0x50, 0x29, 0x28, 0xee, 0x19, 0x3d, 0xbf, 0x71, 0xc7, 0x3d, 0x4f, 0xdc, 0xab, 0x58, 0x05, 0x45, + 0x36, 0x88, 0x9a, 0xf9, 0x20, 0x72, 0xbe, 0x86, 0x86, 0x7e, 0x48, 0xd2, 0x80, 0xaa, 0x78, 0x1d, + 0x6b, 0x8b, 0xb4, 0xa0, 0xae, 0x8e, 0x69, 0x19, 0x72, 0x82, 0x37, 0x6f, 0x55, 0x48, 0x1b, 0x1a, + 0xda, 0x60, 0xcb, 0x24, 0xff, 0x07, 0x7b, 0x25, 0xd7, 0x63, 0x55, 0x49, 0x13, 0x6a, 0xc8, 0xb0, + 0x6a, 0x62, 0x55, 0x71, 0x16, 0x6b, 0xdb, 0xf9, 0x63, 0x1d, 0x3a, 0xb9, 0x87, 0x11, 0xe1, 0xaa, + 0x9f, 0x26, 0x9f, 0xf5, 0x8a, 0x64, 0xf2, 0x10, 0xb6, 0x2f, 0x5d, 0x7f, 0xca, 0x2e, 0xd0, 0xb9, + 0x1a, 0x18, 0x4d, 0x8a, 0x42, 0x7e, 0x0c, 0x0d, 0x2f, 0x0c, 0x38, 0xbb, 0xe5, 0xb1, 0x6d, 0xde, + 0x97, 0x18, 0x13, 0x51, 0xf2, 0x73, 0xe8, 0xe8, 0x5d, 0x46, 0x98, 0x54, 0xab, 0xf7, 0xe9, 0xe6, + 0xe5, 0xc9, 0xcb, 0x24, 0x2d, 0xa8, 0x7c, 0xa5, 0xfc, 0xe8, 0xfe, 0x44, 0x57, 0xd0, 0xc3, 0x04, + 0x9c, 0x4f, 0x7d, 0xca, 0x85, 0xd6, 0x49, 0xc0, 0x79, 0xc5, 0xd2, 0xb4, 0x78, 0x00, 0x1d, 0x76, + 0xcb, 0xbc, 0x05, 0xf7, 0xc3, 0x60, 0xe2, 0xcf, 0x18, 0x7a, 0x8e, 0x49, 0xf3, 0x44, 0xf2, 0x08, + 0xea, 0xf1, 0x8d, 0x3f, 0x9f, 0xb3, 0x0b, 0x74, 0x13, 0x79, 0xc9, 0x9a, 0x44, 0x1e, 0x03, 0x88, + 0xe1, 0x30, 0x8a, 0xc2, 0x28, 0x96, 0x09, 0x90, 0x66, 0x28, 0xa4, 0x0b, 0x95, 0xd1, 0xc0, 0x6e, + 0xe1, 0xf3, 0x55, 0x46, 0x03, 0x71, 0xbd, 0x9c, 0xb9, 0xd1, 0x20, 0x7c, 0x1f, 0x08, 0xaf, 0x92, + 0x59, 0xed, 0xee, 0xeb, 0xcd, 0xc9, 0x93, 0x3e, 0x54, 0xe3, 0xb9, 0x1b, 0xd8, 0x1d, 0xbc, 0x89, + 0xfd, 0xa2, 0xde, 0x78, 0xee, 0x06, 0x14, 0x25, 0xc8, 0x08, 0x76, 0x12, 0x4b, 0xc6, 0xdc, 0xe5, + 0x8b, 0x18, 0x33, 0x5d, 0xf7, 0xe8, 0x49, 0x51, 0x69, 0x98, 0x17, 0xa3, 0x45, 0xbd, 0xb2, 0x02, + 0xb2, 0xb3, 0x7e, 0x01, 0xb1, 0xd6, 0x2e, 0x20, 0xbb, 0x9b, 0x14, 0x10, 0xb2, 0x69, 0x01, 0xd9, + 0xdb, 0xb4, 0x80, 0xec, 0xaf, 0x2c, 0x20, 0xce, 0x25, 0x54, 0xc5, 0x55, 0x93, 0x7d, 0xa8, 0xc5, + 0xdc, 0x8d, 0x38, 0x46, 0xa8, 0x49, 0xe5, 0x84, 0x58, 0x60, 0xb2, 0x40, 0x06, 0xa5, 0x49, 0xc5, + 0x50, 0x14, 0x1c, 0x64, 0x9d, 0x5c, 0xbb, 0x11, 0xe6, 0x75, 0x93, 0xa6, 0x04, 0x62, 0x43, 0x9d, + 0x05, 0x17, 0xc8, 0xab, 0x22, 0x4f, 0x4f, 0x9d, 0xbf, 0x57, 0xc0, 0x5e, 0x95, 0x70, 0x73, 0x29, + 0xdf, 0xd8, 0x2c, 0xe5, 0x1f, 0x40, 0x07, 0xb3, 0x26, 0x0d, 0xdf, 0x8f, 0x82, 0x0b, 0x76, 0x8b, + 0x67, 0xad, 0xd1, 0x3c, 0x91, 0xfc, 0x08, 0x3e, 0xd0, 0x1a, 0x93, 0x9c, 0xb4, 0x89, 0xd2, 0xe5, + 0x4c, 0xf2, 0x0c, 0x76, 0xfd, 0x58, 0x60, 0xb7, 0x2c, 0xc4, 0xaa, 0x22, 0xc4, 0x5a, 0x66, 0x88, + 0x3d, 0xfc, 0x78, 0x9c, 0x5d, 0x48, 0x69, 0xd4, 0x50, 0xa3, 0x9c, 0x49, 0x5e, 0xc2, 0xae, 0xde, + 0x7c, 0xe0, 0x72, 0x17, 0x59, 0x2a, 0x3b, 0xdc, 0x55, 0x2a, 0x96, 0x95, 0x9c, 0xdf, 0x9b, 0x1a, + 0x6d, 0x8a, 0xea, 0xfb, 0x18, 0xc0, 0xf5, 0xf8, 0xc2, 0x9d, 0x4e, 0xd8, 0x2d, 0x57, 0x69, 0x37, + 0x43, 0x11, 0xfc, 0xb9, 0x1b, 0xc5, 0xec, 0x02, 0xf9, 0x15, 0xc9, 0x4f, 0x29, 0xe4, 0x05, 0x34, + 0x2f, 0x23, 0xf7, 0x4a, 0x14, 0x09, 0x9d, 0x76, 0xed, 0xe2, 0x79, 0x4e, 0x95, 0x00, 0x4d, 0x45, + 0x45, 0x09, 0x16, 0xd5, 0x3f, 0x89, 0x44, 0xca, 0xe2, 0xc5, 0x94, 0xab, 0x42, 0xde, 0x5f, 0x89, + 0x19, 0x0a, 0xf2, 0xb4, 0x6c, 0x91, 0xb2, 0xe8, 0xad, 0xad, 0x1f, 0xbd, 0xdb, 0x2b, 0xa2, 0xb7, + 0x3c, 0xc6, 0xea, 0x9b, 0xc6, 0x58, 0x63, 0x75, 0x8c, 0xfd, 0xcd, 0x80, 0x76, 0x16, 0xeb, 0x90, + 0x9f, 0x42, 0x4b, 0xa1, 0x1d, 0x61, 0xbb, 0x72, 0xf9, 0x3b, 0x00, 0x55, 0x56, 0x5a, 0x74, 0x09, + 0x31, 0x66, 0xdc, 0xfb, 0xbb, 0x04, 0x94, 0x23, 0xbf, 0x81, 0x07, 0x4a, 0xbf, 0xf8, 0x2a, 0xe6, + 0x86, 0xaf, 0xb2, 0x62, 0x1d, 0xe7, 0x89, 0xf2, 0x3c, 0x81, 0x04, 0x92, 0x0a, 0x65, 0xa4, 0x15, + 0xca, 0xf9, 0xab, 0x01, 0x0d, 0xed, 0x2d, 0x64, 0x04, 0x6d, 0xed, 0x2f, 0x19, 0x2c, 0xfa, 0xe1, + 0x2a, 0xef, 0x4a, 0x06, 0x08, 0x47, 0x73, 0xaa, 0xb8, 0x57, 0xea, 0xbf, 0x38, 0x26, 0x9f, 0x42, + 0x73, 0xee, 0x46, 0xee, 0x8c, 0x71, 0x16, 0x29, 0x0b, 0x97, 0xef, 0x48, 0x0b, 0xd0, 0x54, 0xd6, + 0xf9, 0x08, 0xda, 0xd9, 0xad, 0x10, 0xda, 0xb0, 0x5b, 0x6e, 0x6d, 0x91, 0x0e, 0x34, 0x13, 0x0d, + 0xcb, 0x70, 0x7e, 0x57, 0xc9, 0xcc, 0xc9, 0x17, 0xd0, 0x49, 0xd6, 0xc8, 0xd8, 0xf3, 0xd1, 0xca, + 0x3d, 0xd3, 0x11, 0x5a, 0x94, 0xd7, 0x16, 0x89, 0xf8, 0x9d, 0x3b, 0x5d, 0x30, 0x65, 0x93, 0x9c, + 0x08, 0x43, 0x03, 0x01, 0xf0, 0x4c, 0x69, 0xa8, 0x18, 0xa7, 0xc8, 0xb2, 0xba, 0x26, 0xb2, 0x74, + 0xbe, 0x84, 0x4e, 0x6e, 0x6f, 0x02, 0xb0, 0x2d, 0x2a, 0xa3, 0xef, 0x49, 0x54, 0x38, 0xf8, 0x26, + 0x70, 0x67, 0xbe, 0x67, 0x19, 0x84, 0x40, 0x57, 0xe4, 0x37, 0xdf, 0x9d, 0x7e, 0x35, 0xe6, 0x91, + 0x1f, 0x5c, 0x59, 0x15, 0xb2, 0x0b, 0x1d, 0x4d, 0x93, 0xe8, 0xcf, 0x4c, 0x81, 0x60, 0xd5, 0x71, + 0x12, 0x1f, 0x97, 0xb8, 0x57, 0x3f, 0x8d, 0x91, 0x3e, 0x8d, 0x73, 0x0b, 0x90, 0x1e, 0x8a, 0x7c, + 0x0a, 0xf5, 0x6b, 0xe6, 0x5e, 0xb0, 0x28, 0xbe, 0x33, 0xe9, 0xeb, 0x9c, 0x4c, 0xb5, 0x34, 0xf9, + 0x21, 0x54, 0xa3, 0xf0, 0xbd, 0x0e, 0x80, 0x7b, 0xb4, 0x50, 0xd4, 0xf9, 0x50, 0x61, 0x53, 0x4d, + 0x16, 0xd7, 0xec, 0xb1, 0xe9, 0x54, 0xbb, 0xa9, 0x9c, 0x38, 0x7f, 0xd2, 0x55, 0xaa, 0xc4, 0xfb, + 0xc9, 0x59, 0x06, 0x87, 0xa8, 0x00, 0x92, 0xe7, 0x3e, 0x28, 0x3d, 0x41, 0x31, 0x78, 0x8a, 0xca, + 0x25, 0x00, 0xb3, 0xf2, 0xdf, 0x03, 0x98, 0xe6, 0x7f, 0x0a, 0x30, 0xed, 0x14, 0x26, 0xca, 0x52, + 0x97, 0x40, 0xc4, 0x03, 0xe8, 0xa8, 0x21, 0x65, 0x6e, 0x1c, 0xca, 0xc2, 0xd6, 0xa4, 0x79, 0xa2, + 0xf3, 0x9d, 0x09, 0xfb, 0x65, 0xf6, 0x93, 0x07, 0x09, 0xc6, 0x37, 0x70, 0x5d, 0x8d, 0xef, 0x9f, + 0x82, 0x15, 0x31, 0x2f, 0x7c, 0xc7, 0x22, 0xf1, 0x36, 0x08, 0x37, 0x65, 0x17, 0x40, 0x97, 0xe8, + 0xc4, 0x81, 0x36, 0x13, 0x03, 0x0d, 0x9d, 0x64, 0x38, 0xe4, 0x68, 0x88, 0x64, 0xb9, 0xeb, 0xdd, + 0x4c, 0x22, 0xd7, 0x93, 0xb1, 0x21, 0x90, 0x6c, 0x42, 0x21, 0x0e, 0x40, 0x8c, 0xc9, 0x79, 0x7c, + 0x1d, 0x72, 0xb4, 0xa1, 0x8d, 0xe0, 0x2b, 0x43, 0x5d, 0x46, 0xd4, 0xdb, 0x65, 0x88, 0xda, 0x86, + 0xba, 0xba, 0x58, 0x05, 0xc7, 0xf5, 0x94, 0xbc, 0x82, 0x26, 0x9e, 0x09, 0xf3, 0x41, 0x03, 0xf3, + 0xc1, 0xe1, 0x3a, 0x4e, 0x72, 0x38, 0xd4, 0x5a, 0x34, 0x5d, 0x40, 0xe0, 0x90, 0x4b, 0xf9, 0x3a, + 0x69, 0x55, 0x41, 0x0c, 0xdf, 0xa6, 0xcb, 0x0c, 0xfc, 0x67, 0xca, 0xd4, 0x25, 0xc0, 0xba, 0x94, + 0x25, 0x39, 0xcf, 0xa0, 0x99, 0xec, 0x23, 0x72, 0xdb, 0xf1, 0x78, 0x3c, 0xa4, 0x93, 0xd1, 0xeb, + 0x33, 0x6b, 0x8b, 0x58, 0xd0, 0x7e, 0x33, 0xa4, 0xa3, 0xd3, 0xd1, 0xc9, 0x31, 0x52, 0x0c, 0xe7, + 0x3b, 0x03, 0xac, 0xa2, 0xdb, 0x14, 0x2e, 0xd9, 0x28, 0xb9, 0xe4, 0xfc, 0x43, 0x55, 0x4a, 0x1e, + 0x2a, 0xff, 0x10, 0xe6, 0xaa, 0x87, 0xc8, 0xc3, 0xbb, 0x6a, 0x19, 0xbc, 0x2b, 0xbd, 0xa0, 0xda, + 0x8a, 0x0b, 0x72, 0xfe, 0xb1, 0xad, 0x0c, 0x1a, 0x2f, 0x7c, 0xce, 0x94, 0x77, 0x1e, 0xcb, 0xdf, + 0x39, 0x39, 0x93, 0x59, 0xa1, 0xb5, 0xdc, 0x60, 0x24, 0xbf, 0x79, 0x2a, 0xa6, 0xb3, 0x3a, 0xff, + 0xa3, 0xf1, 0x9c, 0x86, 0x5d, 0xb5, 0x18, 0x76, 0xe2, 0xf0, 0xf1, 0x29, 0x4e, 0xe5, 0x07, 0x52, + 0x0d, 0x2f, 0x77, 0x89, 0xbe, 0x66, 0x38, 0x08, 0xc7, 0x5b, 0x78, 0x1e, 0x8b, 0x63, 0xea, 0x72, + 0xf9, 0xdf, 0x51, 0xa1, 0x59, 0x92, 0x90, 0x60, 0xc1, 0x3b, 0x3f, 0x0a, 0x03, 0xfc, 0x47, 0x69, + 0xc8, 0x2f, 0xd0, 0x0c, 0x29, 0x01, 0x0f, 0x4d, 0x55, 0x35, 0x04, 0xa0, 0xe8, 0x41, 0x6b, 0x1e, + 0x85, 0x5f, 0x33, 0x8f, 0xe3, 0x1f, 0x07, 0x48, 0xad, 0x0c, 0x49, 0x34, 0x25, 0xdc, 0x9f, 0xb1, + 0x98, 0xbb, 0xb3, 0xb9, 0xea, 0x51, 0x53, 0x82, 0xf0, 0x0e, 0xb4, 0x68, 0x2c, 0xf3, 0x94, 0x34, + 0xb5, 0x8d, 0xa6, 0x2e, 0x33, 0xca, 0x40, 0x66, 0x67, 0x7d, 0x90, 0xd9, 0x5d, 0xbb, 0x45, 0xdc, + 0xd9, 0xa4, 0x45, 0xb4, 0x36, 0x6d, 0x11, 0x77, 0x37, 0x85, 0xaf, 0x64, 0xf5, 0x1f, 0xa3, 0x0d, + 0x75, 0xef, 0x7a, 0x11, 0xdc, 0xb0, 0x0b, 0x7b, 0x4f, 0x56, 0x04, 0x35, 0x15, 0xf7, 0x8e, 0xc3, + 0xb1, 0xff, 0x2d, 0xb3, 0xf7, 0x65, 0x33, 0x98, 0x10, 0x9c, 0x3f, 0x9b, 0xb0, 0x53, 0x08, 0x18, + 0x04, 0x67, 0x9a, 0x74, 0x37, 0xee, 0x15, 0x3a, 0xa9, 0x2c, 0x16, 0x1f, 0xd5, 0xf2, 0xc8, 0x07, + 0x54, 0x7d, 0x5e, 0x8e, 0x28, 0x8c, 0xd3, 0x84, 0xac, 0x5f, 0xcb, 0x2e, 0xaf, 0x8c, 0xb5, 0x32, + 0x3c, 0x9e, 0xc3, 0x9e, 0x1c, 0x25, 0x0d, 0x16, 0x15, 0x90, 0x43, 0xf4, 0x1b, 0x35, 0x5a, 0xc6, + 0x5a, 0xbf, 0x66, 0xe8, 0xf2, 0x5a, 0xcf, 0x97, 0xd7, 0x23, 0xd8, 0xd7, 0x07, 0xcc, 0x79, 0x6a, + 0x03, 0x0f, 0x5f, 0xca, 0x43, 0x1d, 0x39, 0xcf, 0x1f, 0xb3, 0x89, 0xc7, 0x2c, 0xe5, 0x91, 0x8f, + 0x61, 0x9b, 0xa5, 0xbf, 0x3c, 0xad, 0xa3, 0x0f, 0x96, 0x7e, 0x51, 0x04, 0x97, 0x2a, 0x21, 0xe7, + 0x2f, 0x06, 0xd4, 0x64, 0xf1, 0xfd, 0x04, 0xaa, 0x3c, 0xc5, 0xb7, 0x4f, 0x4a, 0xd5, 0x32, 0x05, + 0x0c, 0x85, 0xf5, 0xef, 0x24, 0x82, 0xd7, 0x4a, 0xfa, 0x3b, 0x89, 0x00, 0xf6, 0x31, 0xc0, 0xd4, + 0x0f, 0xd8, 0xd9, 0x62, 0xf6, 0x56, 0x41, 0xf5, 0x1a, 0xcd, 0x50, 0xb2, 0xf5, 0x55, 0x96, 0x71, + 0x3d, 0x75, 0x8e, 0xb2, 0x15, 0x6c, 0x07, 0x5a, 0xe7, 0xc7, 0x74, 0x3c, 0xfc, 0x6a, 0x48, 0xe9, + 0x6b, 0x6a, 0x6d, 0x91, 0x7d, 0xb0, 0xde, 0x1c, 0xbf, 0x1a, 0x0d, 0xb0, 0x82, 0x29, 0xaa, 0xe1, + 0xfc, 0xd6, 0x80, 0x6e, 0x82, 0xed, 0xde, 0x20, 0xaa, 0xc6, 0xcf, 0x0c, 0x35, 0x51, 0x45, 0x2c, + 0x25, 0x90, 0x17, 0xf0, 0x20, 0x81, 0xe6, 0xfe, 0xb7, 0xec, 0x22, 0xd1, 0x53, 0x86, 0xac, 0xe0, + 0xaa, 0xd6, 0x5a, 0x72, 0x64, 0xef, 0x2c, 0x5b, 0x6b, 0x45, 0x79, 0xfa, 0x39, 0xec, 0x14, 0x3e, + 0xaa, 0x84, 0x09, 0x67, 0xaf, 0x27, 0xc3, 0x5f, 0x0f, 0x4f, 0x7e, 0x35, 0x19, 0x0e, 0xac, 0x2d, + 0x01, 0xcc, 0xcf, 0x45, 0x59, 0x1e, 0x58, 0x86, 0x18, 0x9f, 0x1e, 0x8f, 0x5e, 0x0d, 0x07, 0x56, + 0x45, 0x80, 0xf4, 0xf1, 0x2f, 0x47, 0xe7, 0xe7, 0xc3, 0x81, 0x65, 0x7e, 0xf6, 0x7d, 0xd1, 0xd8, + 0xcd, 0x0e, 0xf9, 0x75, 0xb8, 0xb8, 0xba, 0xe6, 0xef, 0xc3, 0xe8, 0x26, 0x96, 0x8f, 0xf2, 0x87, + 0x4a, 0xf7, 0x73, 0x7c, 0x1c, 0x9d, 0x7f, 0xde, 0x6e, 0x63, 0x24, 0x7d, 0xf2, 0xef, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x62, 0x96, 0xcc, 0xd0, 0xaf, 0x1a, 0x00, 0x00, } diff --git a/generator/_testdata/benchmark/.gitkeep b/generator/_testdata/benchmark/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/generator/e2e_test.go b/generator/e2e_test.go index f125263..54751a7 100644 --- a/generator/e2e_test.go +++ b/generator/e2e_test.go @@ -34,7 +34,7 @@ var templateBasePath, _ = filepath.Abs(filepath.Join("..", "themes", "default")) func TestEndToEndHTMLGenerationWhenBeforeSuiteFails(t *testing.T) { reportDir := filepath.Join("_testdata", "e2e") r := ToSuiteResult("", suiteResWithBeforeSuiteFailure) - err := GenerateReports(r, reportDir, templateBasePath) + err := GenerateReports(r, reportDir, templateBasePath, true) if err != nil { t.Errorf("Expected error to be nil. Got: %s", err.Error()) @@ -58,7 +58,7 @@ func TestEndToEndHTMLGeneration(t *testing.T) { reportDir := filepath.Join("_testdata", "e2e") r := ToSuiteResult("", suiteRes3) - err := GenerateReports(r, reportDir, templateBasePath) + err := GenerateReports(r, reportDir, templateBasePath, true) if err != nil { t.Errorf("Expected error to be nil. Got: %s", err.Error()) @@ -74,7 +74,7 @@ func TestEndToEndHTMLGenerationForThemeWithRelativePath(t *testing.T) { defaultThemePath := filepath.Join("..", "themes", "default") r := ToSuiteResult("", suiteRes3) - err := GenerateReports(r, reportDir, defaultThemePath) + err := GenerateReports(r, reportDir, defaultThemePath, true) if err != nil { t.Errorf("Expected error to be nil. Got: %s", err.Error()) @@ -90,7 +90,7 @@ func TestEndToEndHTMLGenerationForCustomTheme(t *testing.T) { defaultThemePath := filepath.Join("_testdata", "dummyReportTheme") r := ToSuiteResult("", suiteRes3) - err := GenerateReports(r, reportDir, defaultThemePath) + err := GenerateReports(r, reportDir, defaultThemePath, true) if err != nil { t.Errorf("Expected error to be nil. Got: %s", err.Error()) @@ -113,7 +113,7 @@ func TestEndToEndHTMLGenerationForNestedSpecs(t *testing.T) { reportDir := filepath.Join("_testdata", "e2e") r := ToSuiteResult("", suiteRes4) - err := GenerateReports(r, reportDir, templateBasePath) + err := GenerateReports(r, reportDir, templateBasePath, true) if err != nil { t.Errorf("Expected error to be nil. Got: %s", err.Error()) diff --git a/generator/generate.go b/generator/generate.go index aa005fd..5b87c9e 100644 --- a/generator/generate.go +++ b/generator/generate.go @@ -14,11 +14,11 @@ // You should have received a copy of the GNU General Public License // along with getgauge/html-report. If not, see . + package generator import ( "bytes" - "encoding/json" "fmt" "io" "io/ioutil" @@ -245,7 +245,7 @@ func (c *comment) Kind() tokenKind { return commentKind } -type searchIndex struct { +type SearchIndex struct { Tags map[string][]string `json:"Tags"` Specs map[string][]string `json:"Specs"` } @@ -340,7 +340,7 @@ func execTemplate(tmplName string, w io.Writer, data interface{}) { var projectRoot string // GenerateReports generates HTML report in the given report dir location -func GenerateReports(res *SuiteResult, reportsDir, themePath string) error { +func GenerateReports(res *SuiteResult, reportsDir, themePath string, searchIndex bool) error { readTemplates(themePath) f, err := os.Create(filepath.Join(reportsDir, "index.html")) if err != nil { @@ -357,28 +357,33 @@ func GenerateReports(res *SuiteResult, reportsDir, themePath string) error { if env.ShouldUseNestedSpecs() { go generateIndexPages(res, reportsDir, &wg) } - specRes := res.SpecResults - for _, r := range specRes { + for _, r := range res.SpecResults { relPath, _ := filepath.Rel(projectRoot, r.FileName) env.CreateDirectory(filepath.Join(reportsDir, filepath.Dir(relPath))) sf, err := os.Create(filepath.Join(reportsDir, toHTMLFileName(r.FileName, projectRoot))) if err != nil { return err } - wg.Add(1) - go generateSpecPage(res, r, sf, &wg) + go func(w io.WriteCloser) { + wg.Add(1) + defer w.Close() + defer wg.Done() + execTemplate("specPage", w, struct { + SuiteRes *SuiteResult + SpecRes *spec + }{res, r}) + }(sf) } wg.Wait() } - err = generateSearchIndex(res, reportsDir) - if err != nil { - return err + if searchIndex { + return generateSearchIndex(res, reportsDir) } return nil } -func GenerateReport(res *SuiteResult, reportDir, themePath string) { - err := GenerateReports(res, reportDir, themePath) +func GenerateReport(res *SuiteResult, reportDir, themePath string, searchIndex bool) { + err := GenerateReports(res, reportDir, themePath, searchIndex) if err != nil { log.Fatalf("Failed to generate reports: %s\n", err.Error()) } @@ -389,31 +394,6 @@ func GenerateReport(res *SuiteResult, reportDir, themePath string) { fmt.Printf("Successfully generated html-report to => %s\n", filepath.Join(reportDir, "index.html")) } -func newSearchIndex() *searchIndex { - var i searchIndex - i.Tags = make(map[string][]string) - i.Specs = make(map[string][]string) - return &i -} - -func (i *searchIndex) hasValueForTag(tag string, spec string) bool { - for _, s := range i.Tags[tag] { - if s == spec { - return true - } - } - return false -} - -func (i *searchIndex) hasSpec(specHeading string, specFileName string) bool { - for _, s := range i.Specs[specHeading] { - if s == specFileName { - return true - } - } - return false -} - func containsParseErrors(errors []buildError) bool { for _, e := range errors { if e.isParseError() { @@ -423,41 +403,6 @@ func containsParseErrors(errors []buildError) bool { return false } -func generateSearchIndex(suiteRes *SuiteResult, reportsDir string) error { - env.CreateDirectory(filepath.Join(reportsDir, "js")) - f, err := os.Create(filepath.Join(reportsDir, "js", "search_index.js")) - if err != nil { - return err - } - defer f.Close() - index := newSearchIndex() - for _, r := range suiteRes.SpecResults { - specFileName := toHTMLFileName(r.FileName, projectRoot) - for _, t := range r.Tags { - if !index.hasValueForTag(t, specFileName) { - index.Tags[t] = append(index.Tags[t], specFileName) - } - } - for _, s := range r.Scenarios { - for _, t := range s.Tags { - if !index.hasValueForTag(t, specFileName) { - index.Tags[t] = append(index.Tags[t], specFileName) - } - } - } - specHeading := r.SpecHeading - if !index.hasSpec(specHeading, specFileName) { - index.Specs[specHeading] = append(index.Specs[specHeading], specFileName) - } - } - s, err := json.Marshal(index) - if err != nil { - return err - } - f.WriteString(fmt.Sprintf("var index = %s;", s)) - return nil -} - func generateIndexPage(suiteRes *SuiteResult, w io.Writer, wg *sync.WaitGroup) { defer wg.Done() execTemplate("indexPage", w, suiteRes) @@ -495,12 +440,3 @@ func generateIndexPages(suiteRes *SuiteResult, reportsDir string, wg *sync.WaitG generateIndexPage(res, f, wg) } } - -func generateSpecPage(suiteRes *SuiteResult, specRes *spec, wc io.WriteCloser, wg *sync.WaitGroup) { - defer wc.Close() - defer wg.Done() - execTemplate("specPage", wc, struct { - SuiteRes *SuiteResult - SpecRes *spec - }{suiteRes, specRes}) -} diff --git a/generator/generate_test.go b/generator/generate_test.go index 4eca4b8..ec2af11 100644 --- a/generator/generate_test.go +++ b/generator/generate_test.go @@ -19,6 +19,7 @@ package generator import ( "bytes" + "fmt" "testing" "path/filepath" @@ -650,3 +651,17 @@ func TestGetAbsThemePathForRelPath(t *testing.T) { } projectRoot = oldProjectRoot } + +func BenchmarkGenerateReport(b *testing.B) { + ps := &SuiteResult{ + ProjectName: "Foo", + SpecResults: []*spec{}, + } + + for i := 0; i < b.N; i++ { + s := newSpec(false) + s.FileName = fmt.Sprintf("example%d.spec", i) + ps.SpecResults = append(ps.SpecResults, s) + } + GenerateReport(ps, filepath.Join("_testdata", "benchmark"), filepath.Join("_testdata", "dummyReportTheme"), false) +} diff --git a/generator/search.go b/generator/search.go new file mode 100644 index 0000000..5f2767e --- /dev/null +++ b/generator/search.go @@ -0,0 +1,121 @@ +// Copyright 2015 ThoughtWorks, Inc. + +// This file is part of getgauge/html-report. + +// getgauge/html-report is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// getgauge/html-report is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with getgauge/html-report. If not, see . + +package generator + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + + "github.com/getgauge/html-report/gauge_messages" + + "github.com/getgauge/html-report/env" +) + +func NewSearchIndex() *SearchIndex { + var i SearchIndex + i.Tags = make(map[string][]string) + i.Specs = make(map[string][]string) + return &i +} + +func (i *SearchIndex) hasValueForTag(tag string, spec string) bool { + for _, s := range i.Tags[tag] { + if s == spec { + return true + } + } + return false +} + +func (i *SearchIndex) hasSpec(specHeading string, specFileName string) bool { + for _, s := range i.Specs[specHeading] { + if s == specFileName { + return true + } + } + return false +} + +func (i *SearchIndex) AddRawSpec(r *gauge_messages.ProtoSpec) { + specFileName := toHTMLFileName(r.FileName, projectRoot) + for _, t := range r.Tags { + if !i.hasValueForTag(t, specFileName) { + i.Tags[t] = append(i.Tags[t], specFileName) + } + } + specHeading := r.SpecHeading + if !i.hasSpec(specHeading, specFileName) { + i.Specs[specHeading] = append(i.Specs[specHeading], specFileName) + } +} + +func (i *SearchIndex) AddRawItem(r *gauge_messages.ProtoItem) { + specFileName := toHTMLFileName(r.FileName, projectRoot) + if r.ItemType == gauge_messages.ProtoItem_Scenario { + for _, t := range r.Scenario.Tags { + if !i.hasValueForTag(t, specFileName) { + i.Tags[t] = append(i.Tags[t], specFileName) + } + } + } +} + +func (i *SearchIndex) add(r *spec) { + specFileName := toHTMLFileName(r.FileName, projectRoot) + for _, t := range r.Tags { + if !i.hasValueForTag(t, specFileName) { + i.Tags[t] = append(i.Tags[t], specFileName) + } + } + for _, s := range r.Scenarios { + for _, t := range s.Tags { + if !i.hasValueForTag(t, specFileName) { + i.Tags[t] = append(i.Tags[t], specFileName) + } + } + } + specHeading := r.SpecHeading + if !i.hasSpec(specHeading, specFileName) { + i.Specs[specHeading] = append(i.Specs[specHeading], specFileName) + } +} + +func (i *SearchIndex) Write(dir string) error { + env.CreateDirectory(filepath.Join(dir, "js")) + f, err := os.Create(filepath.Join(dir, "js", "search_index.js")) + if err != nil { + return err + } + defer f.Close() + s, err := json.Marshal(i) + if err != nil { + return err + } + f.WriteString(fmt.Sprintf("var index = %s;", s)) + return nil +} + +func generateSearchIndex(suiteRes *SuiteResult, reportsDir string) error { + index := NewSearchIndex() + for _, r := range suiteRes.SpecResults { + index.add(r) + } + return index.Write(reportsDir) +} diff --git a/generator/transform.go b/generator/transform.go index 89eeea0..1d52e4e 100644 --- a/generator/transform.go +++ b/generator/transform.go @@ -23,6 +23,7 @@ import ( "path/filepath" "sort" "strings" + "sync" "time" "path" @@ -64,21 +65,40 @@ func ToSuiteResult(pRoot string, psr *gm.ProtoSuiteResult) *SuiteResult { suiteResult.ExecutionStatus = fail } suiteResult.SpecResults = make([]*spec, 0) + jobs := make(chan *gm.ProtoSpecResult, 10) + results := make(chan *spec) + var wg = &sync.WaitGroup{} + go func(jobs <-chan *gm.ProtoSpecResult, results chan<- *spec) { + for job := range jobs { + results <- toSpec(job) + } + }(jobs, results) + go func(results <-chan *spec) { + for { + select { + case r := <-results: + wg.Done() + suiteResult.SpecResults = append(suiteResult.SpecResults, r) + } + } + }(results) for _, protoSpecRes := range psr.GetSpecResults() { - suiteResult.SpecResults = append(suiteResult.SpecResults, toSpec(protoSpecRes)) + jobs <- protoSpecRes + wg.Add(1) suiteResult.PassedScenarioCount = suiteResult.PassedScenarioCount + int(protoSpecRes.GetScenarioCount()-protoSpecRes.GetScenarioFailedCount()-protoSpecRes.GetScenarioSkippedCount()) suiteResult.FailedScenarioCount = suiteResult.FailedScenarioCount + int(protoSpecRes.GetScenarioFailedCount()) suiteResult.SkippedScenarioCount = suiteResult.SkippedScenarioCount + int(protoSpecRes.GetScenarioSkippedCount()) } + wg.Wait() return &suiteResult } func toNestedSuiteResult(basePath string, result *SuiteResult) *SuiteResult { sr := &SuiteResult{ - ProjectName: result.ProjectName, - Timestamp: result.Timestamp, - Environment: result.Environment, - Tags: result.Tags, + ProjectName: result.ProjectName, + Timestamp: result.Timestamp, + Environment: result.Environment, + Tags: result.Tags, BeforeSuiteHookFailure: result.BeforeSuiteHookFailure, AfterSuiteHookFailure: result.AfterSuiteHookFailure, ExecutionStatus: pass, @@ -182,7 +202,6 @@ func toHTMLFileName(specName, basePath string) string { if err != nil { specPath = filepath.Join(basePath, filepath.Base(specName)) } - // specPath = strings.Replace(specPath, string(filepath.Separator), "_", -1) ext := filepath.Ext(specPath) return filepath.ToSlash(filepath.Clean(strings.TrimSuffix(specPath, ext) + dothtml)) } diff --git a/generator/transform_test.go b/generator/transform_test.go index 400904c..57a4b61 100644 --- a/generator/transform_test.go +++ b/generator/transform_test.go @@ -121,8 +121,8 @@ func newConceptItem(heading string, steps []*gm.ProtoItem, cptRes *gm.ProtoStepE return &gm.ProtoItem{ ItemType: gm.ProtoItem_Concept, Concept: &gm.ProtoConcept{ - ConceptStep: newStepItem(false, false, []*gm.Fragment{newTextFragment(heading)}).GetStep(), - Steps: steps, + ConceptStep: newStepItem(false, false, []*gm.Fragment{newTextFragment(heading)}).GetStep(), + Steps: steps, ConceptExecutionResult: cptRes, }, } @@ -1788,3 +1788,16 @@ func TestToNestedSuiteResultMapsSpecResults(t *testing.T) { checkEqual(t, "", want, got.SpecResults) } + +func BenchmarkToSuite(b *testing.B) { + ps := &gm.ProtoSuiteResult{ + Chunked: true, + SpecResults: []*gm.ProtoSpecResult{}, + } + + for i := 0; i < b.N; i++ { + ps.SpecResults = append(ps.SpecResults, passSpecResWithScreenshots) + } + + ToSuiteResult(".", ps) +} diff --git a/htmlReport.go b/htmlReport.go index 40499ed..7a325a4 100644 --- a/htmlReport.go +++ b/htmlReport.go @@ -62,6 +62,41 @@ func (T timeStampedNameGenerator) randomName() string { return time.Now().Format(timeFormat) } +type reportAccumulator struct { + result *gauge_messages.SuiteExecutionResult + specMap map[string]*gauge_messages.ProtoSpec + chunkSize int64 + searchIndex *generator.SearchIndex +} + +func (r *reportAccumulator) Meta(res *gauge_messages.SuiteExecutionResult) { + if !res.SuiteResult.Chunked { + createReport(res, true) + } + r.result = res + r.searchIndex = generator.NewSearchIndex() + r.specMap = make(map[string]*gauge_messages.ProtoSpec, 0) + for _, specRes := range r.result.SuiteResult.SpecResults { + r.specMap[specRes.ProtoSpec.FileName] = specRes.ProtoSpec + r.searchIndex.AddRawSpec(specRes.ProtoSpec) + } +} + +func (r *reportAccumulator) AddItem(i *gauge_messages.SuiteExecutionResultItem) { + pItem := r.specMap[i.ResultItem.FileName] + if pItem == nil { + logger.Debug(fmt.Sprintf("received item for %s that does not exist in Meta.", i.ResultItem.FileName)) + return + } + pItem.Items = append(pItem.Items, i.ResultItem) + r.searchIndex.AddRawItem(i.ResultItem) + r.chunkSize++ + if r.chunkSize == r.result.SuiteResult.ChunkSize { + dir := createReport(r.result, false) + r.searchIndex.Write(dir) + } +} + var pluginsDir string func createExecutionReport() { @@ -72,11 +107,13 @@ func createExecutionReport() { fmt.Println("Could not create the gauge listener") os.Exit(1) } - listener.OnSuiteResult(createReport) + r := &reportAccumulator{} + listener.OnSuiteResult(r.Meta) + listener.OnSuiteResultItem(r.AddItem) listener.Start() } -func createReport(suiteResult *gauge_messages.SuiteExecutionResult) { +func createReport(suiteResult *gauge_messages.SuiteExecutionResult, searchIndex bool) string { projectRoot, err := common.GetProjectRoot() if err != nil { log.Fatalf("%s", err.Error()) @@ -86,8 +123,9 @@ func createReport(suiteResult *gauge_messages.SuiteExecutionResult) { logger.Debug("Transformed SuiteResult to report structure") go createReportExecutableFile(getExecutableAndTargetPath(reportsDir, pluginsDir)) t := theme.GetThemePath(pluginsDir) - generator.GenerateReport(res, reportsDir, t) + generator.GenerateReport(res, reportsDir, t, searchIndex) logger.Debug("Done generating HTML report using theme from %s", t) + return reportsDir } func getNameGen() nameGenerator { diff --git a/listener/gaugeListener.go b/listener/gaugeListener.go index 263af4a..793d58a 100644 --- a/listener/gaugeListener.go +++ b/listener/gaugeListener.go @@ -30,10 +30,12 @@ import ( ) type GaugeResultHandlerFn func(*gauge_messages.SuiteExecutionResult) +type GaugeResultItemHandlerFn func(*gauge_messages.SuiteExecutionResultItem) type GaugeListener struct { - connection net.Conn - onResultHandler GaugeResultHandlerFn + connection net.Conn + onResultHandler GaugeResultHandlerFn + onResultItemHandler GaugeResultItemHandlerFn } func NewGaugeListener(host string, port string) (*GaugeListener, error) { @@ -45,8 +47,12 @@ func NewGaugeListener(host string, port string) (*GaugeListener, error) { } } -func (gaugeListener *GaugeListener) OnSuiteResult(resultHandler GaugeResultHandlerFn) { - gaugeListener.onResultHandler = resultHandler +func (gaugeListener *GaugeListener) OnSuiteResult(h GaugeResultHandlerFn) { + gaugeListener.onResultHandler = h +} + +func (gaugeListener *GaugeListener) OnSuiteResultItem(h GaugeResultItemHandlerFn) { + gaugeListener.onResultItemHandler = h } func (gaugeListener *GaugeListener) Start() { @@ -72,15 +78,19 @@ func (gaugeListener *GaugeListener) processMessages(buffer *bytes.Buffer) { if err != nil { log.Printf("Failed to read proto message: %s\n", err.Error()) } else { - if message.MessageType == gauge_messages.Message_KillProcessRequest { + switch message.MessageType { + case gauge_messages.Message_KillProcessRequest: logger.Debug("Received Kill Message, exiting...") gaugeListener.connection.Close() os.Exit(0) - } - if message.MessageType == gauge_messages.Message_SuiteExecutionResult { + case gauge_messages.Message_SuiteExecutionResult: logger.Debug("Received SuiteExecutionResult, processing...") result := message.GetSuiteExecutionResult() gaugeListener.onResultHandler(result) + case gauge_messages.Message_SuiteExecutionResultItem: + result := message.GetSuiteExecutionResultItem() + logger.Debug(fmt.Sprintf("Received SuiteExecutionResultItem for %s, processing...", result.ResultItem.FileName)) + gaugeListener.onResultItemHandler(result) } buffer.Next(messageBoundary) if buffer.Len() == 0 { diff --git a/plugin.json b/plugin.json index 5dc897f..4932880 100644 --- a/plugin.json +++ b/plugin.json @@ -17,5 +17,8 @@ "gaugeVersionSupport": { "minimum": "0.8.3", "maximum": "" - } + }, + "capabilities" : [ + "stream_result" + ] } diff --git a/regenerate/regenerate.go b/regenerate/regenerate.go index e8381b5..d2740f9 100644 --- a/regenerate/regenerate.go +++ b/regenerate/regenerate.go @@ -47,5 +47,5 @@ func Report(inputFile, reportsDir, themePath, pRoot string) { workingDir, _ := env.GetCurrentExecutableDir() themePath = theme.GetDefaultThemePath(filepath.Dir(workingDir)) } - generator.GenerateReport(res, reportsDir, themePath) + generator.GenerateReport(res, reportsDir, themePath, true) } From 1486edf022d016d6d7dcfa0fd957ad1a270fd4b7 Mon Sep 17 00:00:00 2001 From: sriv Date: Mon, 19 Nov 2018 17:18:23 +0530 Subject: [PATCH 2/3] fixing tests --- generator/generate.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/generator/generate.go b/generator/generate.go index 5b87c9e..0301e47 100644 --- a/generator/generate.go +++ b/generator/generate.go @@ -364,15 +364,8 @@ func GenerateReports(res *SuiteResult, reportsDir, themePath string, searchIndex if err != nil { return err } - go func(w io.WriteCloser) { - wg.Add(1) - defer w.Close() - defer wg.Done() - execTemplate("specPage", w, struct { - SuiteRes *SuiteResult - SpecRes *spec - }{res, r}) - }(sf) + wg.Add(1) + go generateSpecPage(res, r, sf, &wg) } wg.Wait() } @@ -440,3 +433,12 @@ func generateIndexPages(suiteRes *SuiteResult, reportsDir string, wg *sync.WaitG generateIndexPage(res, f, wg) } } + +func generateSpecPage(suiteRes *SuiteResult, specRes *spec, wc io.WriteCloser, wg *sync.WaitGroup) { + defer wc.Close() + defer wg.Done() + execTemplate("specPage", wc, struct { + SuiteRes *SuiteResult + SpecRes *spec + }{suiteRes, specRes}) +} From 3dc419905dbc3a56cec19a39edba07989cd5d198 Mon Sep 17 00:00:00 2001 From: sriv Date: Wed, 21 Nov 2018 13:56:52 +0530 Subject: [PATCH 3/3] spin goroutines after channel has jobs, getgauge/gauge#1239 --- generator/transform.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/generator/transform.go b/generator/transform.go index 1d52e4e..655220c 100644 --- a/generator/transform.go +++ b/generator/transform.go @@ -66,8 +66,15 @@ func ToSuiteResult(pRoot string, psr *gm.ProtoSuiteResult) *SuiteResult { } suiteResult.SpecResults = make([]*spec, 0) jobs := make(chan *gm.ProtoSpecResult, 10) - results := make(chan *spec) var wg = &sync.WaitGroup{} + for _, protoSpecRes := range psr.GetSpecResults() { + jobs <- protoSpecRes + wg.Add(1) + suiteResult.PassedScenarioCount = suiteResult.PassedScenarioCount + int(protoSpecRes.GetScenarioCount()-protoSpecRes.GetScenarioFailedCount()-protoSpecRes.GetScenarioSkippedCount()) + suiteResult.FailedScenarioCount = suiteResult.FailedScenarioCount + int(protoSpecRes.GetScenarioFailedCount()) + suiteResult.SkippedScenarioCount = suiteResult.SkippedScenarioCount + int(protoSpecRes.GetScenarioSkippedCount()) + } + results := make(chan *spec) go func(jobs <-chan *gm.ProtoSpecResult, results chan<- *spec) { for job := range jobs { results <- toSpec(job) @@ -82,13 +89,6 @@ func ToSuiteResult(pRoot string, psr *gm.ProtoSuiteResult) *SuiteResult { } } }(results) - for _, protoSpecRes := range psr.GetSpecResults() { - jobs <- protoSpecRes - wg.Add(1) - suiteResult.PassedScenarioCount = suiteResult.PassedScenarioCount + int(protoSpecRes.GetScenarioCount()-protoSpecRes.GetScenarioFailedCount()-protoSpecRes.GetScenarioSkippedCount()) - suiteResult.FailedScenarioCount = suiteResult.FailedScenarioCount + int(protoSpecRes.GetScenarioFailedCount()) - suiteResult.SkippedScenarioCount = suiteResult.SkippedScenarioCount + int(protoSpecRes.GetScenarioSkippedCount()) - } wg.Wait() return &suiteResult }