diff --git a/api/json-schema/schema.json b/api/json-schema/schema.json
index 24ca429580..27258328ee 100644
--- a/api/json-schema/schema.json
+++ b/api/json-schema/schema.json
@@ -19132,6 +19132,15 @@
],
"type": "object"
},
+ "io.numaproj.numaflow.v1alpha1.MonoVertexLifecycle": {
+ "properties": {
+ "desiredPhase": {
+ "description": "DesiredPhase used to bring the pipeline from current phase to desired phase",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"io.numaproj.numaflow.v1alpha1.MonoVertexLimits": {
"properties": {
"readBatchSize": {
@@ -19213,6 +19222,10 @@
},
"type": "array"
},
+ "lifecycle": {
+ "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.MonoVertexLifecycle",
+ "description": "Lifecycle defines the Lifecycle properties of a MonoVertex"
+ },
"limits": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.MonoVertexLimits",
"description": "Limits define the limitations such as read batch size for the mono vertex."
diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json
index e2e29fbabf..4bf6fb8758 100644
--- a/api/openapi-spec/swagger.json
+++ b/api/openapi-spec/swagger.json
@@ -19127,6 +19127,15 @@
}
}
},
+ "io.numaproj.numaflow.v1alpha1.MonoVertexLifecycle": {
+ "type": "object",
+ "properties": {
+ "desiredPhase": {
+ "description": "DesiredPhase used to bring the pipeline from current phase to desired phase",
+ "type": "string"
+ }
+ }
+ },
"io.numaproj.numaflow.v1alpha1.MonoVertexLimits": {
"type": "object",
"properties": {
@@ -19209,6 +19218,10 @@
"$ref": "#/definitions/io.k8s.api.core.v1.Container"
}
},
+ "lifecycle": {
+ "description": "Lifecycle defines the Lifecycle properties of a MonoVertex",
+ "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.MonoVertexLifecycle"
+ },
"limits": {
"description": "Limits define the limitations such as read batch size for the mono vertex.",
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.MonoVertexLimits"
diff --git a/config/base/crds/full/numaflow.numaproj.io_monovertices.yaml b/config/base/crds/full/numaflow.numaproj.io_monovertices.yaml
index 4d8a23ba14..e4b27b015c 100644
--- a/config/base/crds/full/numaflow.numaproj.io_monovertices.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_monovertices.yaml
@@ -2299,6 +2299,21 @@ spec:
- name
type: object
type: array
+ lifecycle:
+ default:
+ desiredPhase: Running
+ properties:
+ desiredPhase:
+ default: Running
+ enum:
+ - ""
+ - Running
+ - Failed
+ - Pausing
+ - Paused
+ - Deleting
+ type: string
+ type: object
limits:
properties:
readBatchSize:
diff --git a/config/install.yaml b/config/install.yaml
index c6551b513a..367657d66f 100644
--- a/config/install.yaml
+++ b/config/install.yaml
@@ -5195,6 +5195,21 @@ spec:
- name
type: object
type: array
+ lifecycle:
+ default:
+ desiredPhase: Running
+ properties:
+ desiredPhase:
+ default: Running
+ enum:
+ - ""
+ - Running
+ - Failed
+ - Pausing
+ - Paused
+ - Deleting
+ type: string
+ type: object
limits:
properties:
readBatchSize:
diff --git a/config/namespace-install.yaml b/config/namespace-install.yaml
index 07fc13628d..48c6d0677c 100644
--- a/config/namespace-install.yaml
+++ b/config/namespace-install.yaml
@@ -5195,6 +5195,21 @@ spec:
- name
type: object
type: array
+ lifecycle:
+ default:
+ desiredPhase: Running
+ properties:
+ desiredPhase:
+ default: Running
+ enum:
+ - ""
+ - Running
+ - Failed
+ - Pausing
+ - Paused
+ - Deleting
+ type: string
+ type: object
limits:
properties:
readBatchSize:
diff --git a/docs/APIs.md b/docs/APIs.md
index 7b698883e7..eb9b923b4f 100644
--- a/docs/APIs.md
+++ b/docs/APIs.md
@@ -5893,6 +5893,27 @@ The strategy to use to replace existing pods with new ones.
+
+
+
+
+lifecycle
+
+MonoVertexLifecycle
+ |
+
+
+
+(Optional)
+
+
+Lifecycle defines the Lifecycle properties of a MonoVertex
+
+
+ |
+
+
+
@@ -5919,6 +5940,69 @@ MonoVertexStatus
+
+
+MonoVertexLifecycle
+
+
+
+
+(Appears on:
+MonoVertexSpec)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field
+ |
+
+
+
+Description
+ |
+
+
+
+
+
+
+
+
+
+
+
+desiredPhase
+
+MonoVertexPhase
+ |
+
+
+
+(Optional)
+
+
+DesiredPhase used to bring the pipeline from current phase to desired
+phase
+
+
+ |
+
+
+
+
+
+
+
MonoVertexLimits
@@ -6010,6 +6094,7 @@ MonoVertexPhase (string
alias)
(Appears on:
+MonoVertexLifecycle,
MonoVertexStatus)
@@ -6282,6 +6367,27 @@ The strategy to use to replace existing pods with new ones.
+
+
+
+
+lifecycle
+
+MonoVertexLifecycle
+ |
+
+
+
+(Optional)
+
+
+Lifecycle defines the Lifecycle properties of a MonoVertex
+
+
+ |
+
+
+
diff --git a/pkg/apis/numaflow/v1alpha1/generated.pb.go b/pkg/apis/numaflow/v1alpha1/generated.pb.go
index 138962c4c2..8905ee00c2 100644
--- a/pkg/apis/numaflow/v1alpha1/generated.pb.go
+++ b/pkg/apis/numaflow/v1alpha1/generated.pb.go
@@ -1282,10 +1282,38 @@ func (m *MonoVertex) XXX_DiscardUnknown() {
var xxx_messageInfo_MonoVertex proto.InternalMessageInfo
+func (m *MonoVertexLifecycle) Reset() { *m = MonoVertexLifecycle{} }
+func (*MonoVertexLifecycle) ProtoMessage() {}
+func (*MonoVertexLifecycle) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9d0d1b17d3865563, []int{44}
+}
+func (m *MonoVertexLifecycle) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *MonoVertexLifecycle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *MonoVertexLifecycle) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MonoVertexLifecycle.Merge(m, src)
+}
+func (m *MonoVertexLifecycle) XXX_Size() int {
+ return m.Size()
+}
+func (m *MonoVertexLifecycle) XXX_DiscardUnknown() {
+ xxx_messageInfo_MonoVertexLifecycle.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MonoVertexLifecycle proto.InternalMessageInfo
+
func (m *MonoVertexLimits) Reset() { *m = MonoVertexLimits{} }
func (*MonoVertexLimits) ProtoMessage() {}
func (*MonoVertexLimits) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{44}
+ return fileDescriptor_9d0d1b17d3865563, []int{45}
}
func (m *MonoVertexLimits) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1313,7 +1341,7 @@ var xxx_messageInfo_MonoVertexLimits proto.InternalMessageInfo
func (m *MonoVertexList) Reset() { *m = MonoVertexList{} }
func (*MonoVertexList) ProtoMessage() {}
func (*MonoVertexList) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{45}
+ return fileDescriptor_9d0d1b17d3865563, []int{46}
}
func (m *MonoVertexList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1341,7 +1369,7 @@ var xxx_messageInfo_MonoVertexList proto.InternalMessageInfo
func (m *MonoVertexSpec) Reset() { *m = MonoVertexSpec{} }
func (*MonoVertexSpec) ProtoMessage() {}
func (*MonoVertexSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{46}
+ return fileDescriptor_9d0d1b17d3865563, []int{47}
}
func (m *MonoVertexSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1369,7 +1397,7 @@ var xxx_messageInfo_MonoVertexSpec proto.InternalMessageInfo
func (m *MonoVertexStatus) Reset() { *m = MonoVertexStatus{} }
func (*MonoVertexStatus) ProtoMessage() {}
func (*MonoVertexStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{47}
+ return fileDescriptor_9d0d1b17d3865563, []int{48}
}
func (m *MonoVertexStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1397,7 +1425,7 @@ var xxx_messageInfo_MonoVertexStatus proto.InternalMessageInfo
func (m *NativeRedis) Reset() { *m = NativeRedis{} }
func (*NativeRedis) ProtoMessage() {}
func (*NativeRedis) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{48}
+ return fileDescriptor_9d0d1b17d3865563, []int{49}
}
func (m *NativeRedis) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1425,7 +1453,7 @@ var xxx_messageInfo_NativeRedis proto.InternalMessageInfo
func (m *NatsAuth) Reset() { *m = NatsAuth{} }
func (*NatsAuth) ProtoMessage() {}
func (*NatsAuth) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{49}
+ return fileDescriptor_9d0d1b17d3865563, []int{50}
}
func (m *NatsAuth) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1453,7 +1481,7 @@ var xxx_messageInfo_NatsAuth proto.InternalMessageInfo
func (m *NatsSource) Reset() { *m = NatsSource{} }
func (*NatsSource) ProtoMessage() {}
func (*NatsSource) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{50}
+ return fileDescriptor_9d0d1b17d3865563, []int{51}
}
func (m *NatsSource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1481,7 +1509,7 @@ var xxx_messageInfo_NatsSource proto.InternalMessageInfo
func (m *NoStore) Reset() { *m = NoStore{} }
func (*NoStore) ProtoMessage() {}
func (*NoStore) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{51}
+ return fileDescriptor_9d0d1b17d3865563, []int{52}
}
func (m *NoStore) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1509,7 +1537,7 @@ var xxx_messageInfo_NoStore proto.InternalMessageInfo
func (m *PBQStorage) Reset() { *m = PBQStorage{} }
func (*PBQStorage) ProtoMessage() {}
func (*PBQStorage) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{52}
+ return fileDescriptor_9d0d1b17d3865563, []int{53}
}
func (m *PBQStorage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1537,7 +1565,7 @@ var xxx_messageInfo_PBQStorage proto.InternalMessageInfo
func (m *PersistenceStrategy) Reset() { *m = PersistenceStrategy{} }
func (*PersistenceStrategy) ProtoMessage() {}
func (*PersistenceStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{53}
+ return fileDescriptor_9d0d1b17d3865563, []int{54}
}
func (m *PersistenceStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1565,7 +1593,7 @@ var xxx_messageInfo_PersistenceStrategy proto.InternalMessageInfo
func (m *Pipeline) Reset() { *m = Pipeline{} }
func (*Pipeline) ProtoMessage() {}
func (*Pipeline) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{54}
+ return fileDescriptor_9d0d1b17d3865563, []int{55}
}
func (m *Pipeline) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1593,7 +1621,7 @@ var xxx_messageInfo_Pipeline proto.InternalMessageInfo
func (m *PipelineLimits) Reset() { *m = PipelineLimits{} }
func (*PipelineLimits) ProtoMessage() {}
func (*PipelineLimits) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{55}
+ return fileDescriptor_9d0d1b17d3865563, []int{56}
}
func (m *PipelineLimits) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1621,7 +1649,7 @@ var xxx_messageInfo_PipelineLimits proto.InternalMessageInfo
func (m *PipelineList) Reset() { *m = PipelineList{} }
func (*PipelineList) ProtoMessage() {}
func (*PipelineList) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{56}
+ return fileDescriptor_9d0d1b17d3865563, []int{57}
}
func (m *PipelineList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1649,7 +1677,7 @@ var xxx_messageInfo_PipelineList proto.InternalMessageInfo
func (m *PipelineSpec) Reset() { *m = PipelineSpec{} }
func (*PipelineSpec) ProtoMessage() {}
func (*PipelineSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{57}
+ return fileDescriptor_9d0d1b17d3865563, []int{58}
}
func (m *PipelineSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1677,7 +1705,7 @@ var xxx_messageInfo_PipelineSpec proto.InternalMessageInfo
func (m *PipelineStatus) Reset() { *m = PipelineStatus{} }
func (*PipelineStatus) ProtoMessage() {}
func (*PipelineStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{58}
+ return fileDescriptor_9d0d1b17d3865563, []int{59}
}
func (m *PipelineStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1705,7 +1733,7 @@ var xxx_messageInfo_PipelineStatus proto.InternalMessageInfo
func (m *Probe) Reset() { *m = Probe{} }
func (*Probe) ProtoMessage() {}
func (*Probe) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{59}
+ return fileDescriptor_9d0d1b17d3865563, []int{60}
}
func (m *Probe) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1733,7 +1761,7 @@ var xxx_messageInfo_Probe proto.InternalMessageInfo
func (m *RedisBufferService) Reset() { *m = RedisBufferService{} }
func (*RedisBufferService) ProtoMessage() {}
func (*RedisBufferService) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{60}
+ return fileDescriptor_9d0d1b17d3865563, []int{61}
}
func (m *RedisBufferService) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1761,7 +1789,7 @@ var xxx_messageInfo_RedisBufferService proto.InternalMessageInfo
func (m *RedisConfig) Reset() { *m = RedisConfig{} }
func (*RedisConfig) ProtoMessage() {}
func (*RedisConfig) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{61}
+ return fileDescriptor_9d0d1b17d3865563, []int{62}
}
func (m *RedisConfig) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1789,7 +1817,7 @@ var xxx_messageInfo_RedisConfig proto.InternalMessageInfo
func (m *RedisSettings) Reset() { *m = RedisSettings{} }
func (*RedisSettings) ProtoMessage() {}
func (*RedisSettings) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{62}
+ return fileDescriptor_9d0d1b17d3865563, []int{63}
}
func (m *RedisSettings) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1817,7 +1845,7 @@ var xxx_messageInfo_RedisSettings proto.InternalMessageInfo
func (m *RetryStrategy) Reset() { *m = RetryStrategy{} }
func (*RetryStrategy) ProtoMessage() {}
func (*RetryStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{63}
+ return fileDescriptor_9d0d1b17d3865563, []int{64}
}
func (m *RetryStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1845,7 +1873,7 @@ var xxx_messageInfo_RetryStrategy proto.InternalMessageInfo
func (m *RollingUpdateStrategy) Reset() { *m = RollingUpdateStrategy{} }
func (*RollingUpdateStrategy) ProtoMessage() {}
func (*RollingUpdateStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{64}
+ return fileDescriptor_9d0d1b17d3865563, []int{65}
}
func (m *RollingUpdateStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1873,7 +1901,7 @@ var xxx_messageInfo_RollingUpdateStrategy proto.InternalMessageInfo
func (m *SASL) Reset() { *m = SASL{} }
func (*SASL) ProtoMessage() {}
func (*SASL) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{65}
+ return fileDescriptor_9d0d1b17d3865563, []int{66}
}
func (m *SASL) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1901,7 +1929,7 @@ var xxx_messageInfo_SASL proto.InternalMessageInfo
func (m *SASLPlain) Reset() { *m = SASLPlain{} }
func (*SASLPlain) ProtoMessage() {}
func (*SASLPlain) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{66}
+ return fileDescriptor_9d0d1b17d3865563, []int{67}
}
func (m *SASLPlain) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1929,7 +1957,7 @@ var xxx_messageInfo_SASLPlain proto.InternalMessageInfo
func (m *Scale) Reset() { *m = Scale{} }
func (*Scale) ProtoMessage() {}
func (*Scale) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{67}
+ return fileDescriptor_9d0d1b17d3865563, []int{68}
}
func (m *Scale) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1957,7 +1985,7 @@ var xxx_messageInfo_Scale proto.InternalMessageInfo
func (m *ServingSource) Reset() { *m = ServingSource{} }
func (*ServingSource) ProtoMessage() {}
func (*ServingSource) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{68}
+ return fileDescriptor_9d0d1b17d3865563, []int{69}
}
func (m *ServingSource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1985,7 +2013,7 @@ var xxx_messageInfo_ServingSource proto.InternalMessageInfo
func (m *ServingStore) Reset() { *m = ServingStore{} }
func (*ServingStore) ProtoMessage() {}
func (*ServingStore) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{69}
+ return fileDescriptor_9d0d1b17d3865563, []int{70}
}
func (m *ServingStore) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2013,7 +2041,7 @@ var xxx_messageInfo_ServingStore proto.InternalMessageInfo
func (m *SessionWindow) Reset() { *m = SessionWindow{} }
func (*SessionWindow) ProtoMessage() {}
func (*SessionWindow) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{70}
+ return fileDescriptor_9d0d1b17d3865563, []int{71}
}
func (m *SessionWindow) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2041,7 +2069,7 @@ var xxx_messageInfo_SessionWindow proto.InternalMessageInfo
func (m *SideInput) Reset() { *m = SideInput{} }
func (*SideInput) ProtoMessage() {}
func (*SideInput) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{71}
+ return fileDescriptor_9d0d1b17d3865563, []int{72}
}
func (m *SideInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2069,7 +2097,7 @@ var xxx_messageInfo_SideInput proto.InternalMessageInfo
func (m *SideInputTrigger) Reset() { *m = SideInputTrigger{} }
func (*SideInputTrigger) ProtoMessage() {}
func (*SideInputTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{72}
+ return fileDescriptor_9d0d1b17d3865563, []int{73}
}
func (m *SideInputTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2097,7 +2125,7 @@ var xxx_messageInfo_SideInputTrigger proto.InternalMessageInfo
func (m *SideInputsManagerTemplate) Reset() { *m = SideInputsManagerTemplate{} }
func (*SideInputsManagerTemplate) ProtoMessage() {}
func (*SideInputsManagerTemplate) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{73}
+ return fileDescriptor_9d0d1b17d3865563, []int{74}
}
func (m *SideInputsManagerTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2125,7 +2153,7 @@ var xxx_messageInfo_SideInputsManagerTemplate proto.InternalMessageInfo
func (m *Sink) Reset() { *m = Sink{} }
func (*Sink) ProtoMessage() {}
func (*Sink) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{74}
+ return fileDescriptor_9d0d1b17d3865563, []int{75}
}
func (m *Sink) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2153,7 +2181,7 @@ var xxx_messageInfo_Sink proto.InternalMessageInfo
func (m *SlidingWindow) Reset() { *m = SlidingWindow{} }
func (*SlidingWindow) ProtoMessage() {}
func (*SlidingWindow) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{75}
+ return fileDescriptor_9d0d1b17d3865563, []int{76}
}
func (m *SlidingWindow) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2181,7 +2209,7 @@ var xxx_messageInfo_SlidingWindow proto.InternalMessageInfo
func (m *Source) Reset() { *m = Source{} }
func (*Source) ProtoMessage() {}
func (*Source) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{76}
+ return fileDescriptor_9d0d1b17d3865563, []int{77}
}
func (m *Source) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2209,7 +2237,7 @@ var xxx_messageInfo_Source proto.InternalMessageInfo
func (m *Status) Reset() { *m = Status{} }
func (*Status) ProtoMessage() {}
func (*Status) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{77}
+ return fileDescriptor_9d0d1b17d3865563, []int{78}
}
func (m *Status) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2237,7 +2265,7 @@ var xxx_messageInfo_Status proto.InternalMessageInfo
func (m *TLS) Reset() { *m = TLS{} }
func (*TLS) ProtoMessage() {}
func (*TLS) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{78}
+ return fileDescriptor_9d0d1b17d3865563, []int{79}
}
func (m *TLS) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2265,7 +2293,7 @@ var xxx_messageInfo_TLS proto.InternalMessageInfo
func (m *TagConditions) Reset() { *m = TagConditions{} }
func (*TagConditions) ProtoMessage() {}
func (*TagConditions) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{79}
+ return fileDescriptor_9d0d1b17d3865563, []int{80}
}
func (m *TagConditions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2293,7 +2321,7 @@ var xxx_messageInfo_TagConditions proto.InternalMessageInfo
func (m *Templates) Reset() { *m = Templates{} }
func (*Templates) ProtoMessage() {}
func (*Templates) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{80}
+ return fileDescriptor_9d0d1b17d3865563, []int{81}
}
func (m *Templates) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2321,7 +2349,7 @@ var xxx_messageInfo_Templates proto.InternalMessageInfo
func (m *Transformer) Reset() { *m = Transformer{} }
func (*Transformer) ProtoMessage() {}
func (*Transformer) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{81}
+ return fileDescriptor_9d0d1b17d3865563, []int{82}
}
func (m *Transformer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2349,7 +2377,7 @@ var xxx_messageInfo_Transformer proto.InternalMessageInfo
func (m *UDF) Reset() { *m = UDF{} }
func (*UDF) ProtoMessage() {}
func (*UDF) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{82}
+ return fileDescriptor_9d0d1b17d3865563, []int{83}
}
func (m *UDF) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2377,7 +2405,7 @@ var xxx_messageInfo_UDF proto.InternalMessageInfo
func (m *UDSink) Reset() { *m = UDSink{} }
func (*UDSink) ProtoMessage() {}
func (*UDSink) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{83}
+ return fileDescriptor_9d0d1b17d3865563, []int{84}
}
func (m *UDSink) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2405,7 +2433,7 @@ var xxx_messageInfo_UDSink proto.InternalMessageInfo
func (m *UDSource) Reset() { *m = UDSource{} }
func (*UDSource) ProtoMessage() {}
func (*UDSource) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{84}
+ return fileDescriptor_9d0d1b17d3865563, []int{85}
}
func (m *UDSource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2433,7 +2461,7 @@ var xxx_messageInfo_UDSource proto.InternalMessageInfo
func (m *UDTransformer) Reset() { *m = UDTransformer{} }
func (*UDTransformer) ProtoMessage() {}
func (*UDTransformer) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{85}
+ return fileDescriptor_9d0d1b17d3865563, []int{86}
}
func (m *UDTransformer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2461,7 +2489,7 @@ var xxx_messageInfo_UDTransformer proto.InternalMessageInfo
func (m *UpdateStrategy) Reset() { *m = UpdateStrategy{} }
func (*UpdateStrategy) ProtoMessage() {}
func (*UpdateStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{86}
+ return fileDescriptor_9d0d1b17d3865563, []int{87}
}
func (m *UpdateStrategy) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2489,7 +2517,7 @@ var xxx_messageInfo_UpdateStrategy proto.InternalMessageInfo
func (m *Vertex) Reset() { *m = Vertex{} }
func (*Vertex) ProtoMessage() {}
func (*Vertex) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{87}
+ return fileDescriptor_9d0d1b17d3865563, []int{88}
}
func (m *Vertex) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2517,7 +2545,7 @@ var xxx_messageInfo_Vertex proto.InternalMessageInfo
func (m *VertexInstance) Reset() { *m = VertexInstance{} }
func (*VertexInstance) ProtoMessage() {}
func (*VertexInstance) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{88}
+ return fileDescriptor_9d0d1b17d3865563, []int{89}
}
func (m *VertexInstance) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2545,7 +2573,7 @@ var xxx_messageInfo_VertexInstance proto.InternalMessageInfo
func (m *VertexLimits) Reset() { *m = VertexLimits{} }
func (*VertexLimits) ProtoMessage() {}
func (*VertexLimits) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{89}
+ return fileDescriptor_9d0d1b17d3865563, []int{90}
}
func (m *VertexLimits) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2573,7 +2601,7 @@ var xxx_messageInfo_VertexLimits proto.InternalMessageInfo
func (m *VertexList) Reset() { *m = VertexList{} }
func (*VertexList) ProtoMessage() {}
func (*VertexList) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{90}
+ return fileDescriptor_9d0d1b17d3865563, []int{91}
}
func (m *VertexList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2601,7 +2629,7 @@ var xxx_messageInfo_VertexList proto.InternalMessageInfo
func (m *VertexSpec) Reset() { *m = VertexSpec{} }
func (*VertexSpec) ProtoMessage() {}
func (*VertexSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{91}
+ return fileDescriptor_9d0d1b17d3865563, []int{92}
}
func (m *VertexSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2629,7 +2657,7 @@ var xxx_messageInfo_VertexSpec proto.InternalMessageInfo
func (m *VertexStatus) Reset() { *m = VertexStatus{} }
func (*VertexStatus) ProtoMessage() {}
func (*VertexStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{92}
+ return fileDescriptor_9d0d1b17d3865563, []int{93}
}
func (m *VertexStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2657,7 +2685,7 @@ var xxx_messageInfo_VertexStatus proto.InternalMessageInfo
func (m *VertexTemplate) Reset() { *m = VertexTemplate{} }
func (*VertexTemplate) ProtoMessage() {}
func (*VertexTemplate) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{93}
+ return fileDescriptor_9d0d1b17d3865563, []int{94}
}
func (m *VertexTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2685,7 +2713,7 @@ var xxx_messageInfo_VertexTemplate proto.InternalMessageInfo
func (m *Watermark) Reset() { *m = Watermark{} }
func (*Watermark) ProtoMessage() {}
func (*Watermark) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{94}
+ return fileDescriptor_9d0d1b17d3865563, []int{95}
}
func (m *Watermark) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2713,7 +2741,7 @@ var xxx_messageInfo_Watermark proto.InternalMessageInfo
func (m *Window) Reset() { *m = Window{} }
func (*Window) ProtoMessage() {}
func (*Window) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{95}
+ return fileDescriptor_9d0d1b17d3865563, []int{96}
}
func (m *Window) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2791,6 +2819,7 @@ func init() {
proto.RegisterMapType((map[string]string)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.Metadata.AnnotationsEntry")
proto.RegisterMapType((map[string]string)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.Metadata.LabelsEntry")
proto.RegisterType((*MonoVertex)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.MonoVertex")
+ proto.RegisterType((*MonoVertexLifecycle)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.MonoVertexLifecycle")
proto.RegisterType((*MonoVertexLimits)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.MonoVertexLimits")
proto.RegisterType((*MonoVertexList)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.MonoVertexList")
proto.RegisterType((*MonoVertexSpec)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.MonoVertexSpec")
@@ -2851,510 +2880,513 @@ func init() {
}
var fileDescriptor_9d0d1b17d3865563 = []byte{
- // 8046 bytes of a gzipped FileDescriptorProto
+ // 8084 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x24, 0x57,
0x76, 0x9e, 0xfa, 0xbf, 0xfb, 0x34, 0xff, 0x74, 0x67, 0x34, 0xe2, 0xcc, 0x4a, 0xd3, 0xe3, 0x5a,
- 0xef, 0x7a, 0x1c, 0xdb, 0x64, 0x44, 0xaf, 0xb4, 0x5a, 0xdb, 0xbb, 0x12, 0x9b, 0x1c, 0x72, 0x38,
+ 0xef, 0xee, 0x38, 0xb6, 0xc9, 0x88, 0x5e, 0x69, 0xb5, 0xb6, 0x77, 0x25, 0x36, 0x39, 0xe4, 0x50,
0x43, 0xce, 0x70, 0x4f, 0x93, 0x23, 0xad, 0x15, 0xaf, 0x52, 0xac, 0xba, 0x6c, 0x96, 0x58, 0x5d,
- 0xd5, 0x5b, 0x55, 0xcd, 0x19, 0xca, 0x09, 0xd6, 0xb6, 0x12, 0x68, 0x83, 0x24, 0x48, 0xe0, 0x27,
- 0x03, 0x81, 0x13, 0x24, 0x08, 0xe0, 0x07, 0xc3, 0x79, 0x08, 0xb2, 0x79, 0x08, 0x90, 0x1f, 0x07,
- 0x41, 0xb2, 0xf9, 0x5f, 0x04, 0x01, 0xb2, 0x79, 0x21, 0xb2, 0x0c, 0xf2, 0x90, 0x00, 0x0e, 0x8c,
- 0x18, 0x89, 0x9d, 0x81, 0x11, 0x07, 0xf7, 0xaf, 0xfe, 0xba, 0x7a, 0x86, 0xec, 0x6a, 0x8e, 0x46,
- 0x89, 0xde, 0xba, 0xef, 0x39, 0xf7, 0x3b, 0xb7, 0x6e, 0xdd, 0xba, 0xf7, 0xdc, 0x73, 0xce, 0x3d,
- 0x17, 0xd6, 0xbb, 0x56, 0x70, 0x30, 0xd8, 0x5b, 0x30, 0xdc, 0xde, 0xa2, 0x33, 0xe8, 0xe9, 0x7d,
- 0xcf, 0xfd, 0x80, 0xff, 0xd8, 0xb7, 0xdd, 0x87, 0x8b, 0xfd, 0xc3, 0xee, 0xa2, 0xde, 0xb7, 0xfc,
- 0xa8, 0xe4, 0xe8, 0x35, 0xdd, 0xee, 0x1f, 0xe8, 0xaf, 0x2d, 0x76, 0xa9, 0x43, 0x3d, 0x3d, 0xa0,
- 0xe6, 0x42, 0xdf, 0x73, 0x03, 0x97, 0x7c, 0x39, 0x02, 0x5a, 0x50, 0x40, 0x0b, 0xaa, 0xda, 0x42,
- 0xff, 0xb0, 0xbb, 0xc0, 0x80, 0xa2, 0x12, 0x05, 0x74, 0xed, 0xa7, 0x62, 0x2d, 0xe8, 0xba, 0x5d,
- 0x77, 0x91, 0xe3, 0xed, 0x0d, 0xf6, 0xf9, 0x3f, 0xfe, 0x87, 0xff, 0x12, 0x72, 0xae, 0x69, 0x87,
- 0x6f, 0xfa, 0x0b, 0x96, 0xcb, 0x9a, 0xb5, 0x68, 0xb8, 0x1e, 0x5d, 0x3c, 0x1a, 0x6a, 0xcb, 0xb5,
- 0x2f, 0x45, 0x3c, 0x3d, 0xdd, 0x38, 0xb0, 0x1c, 0xea, 0x1d, 0xab, 0x67, 0x59, 0xf4, 0xa8, 0xef,
- 0x0e, 0x3c, 0x83, 0x9e, 0xab, 0x96, 0xbf, 0xd8, 0xa3, 0x81, 0x9e, 0x25, 0x6b, 0x71, 0x54, 0x2d,
- 0x6f, 0xe0, 0x04, 0x56, 0x6f, 0x58, 0xcc, 0x1b, 0x4f, 0xab, 0xe0, 0x1b, 0x07, 0xb4, 0xa7, 0x0f,
- 0xd5, 0xfb, 0xe9, 0x51, 0xf5, 0x06, 0x81, 0x65, 0x2f, 0x5a, 0x4e, 0xe0, 0x07, 0x5e, 0xba, 0x92,
- 0xf6, 0xdb, 0x00, 0x97, 0x96, 0xf7, 0xfc, 0xc0, 0xd3, 0x8d, 0x60, 0xdb, 0x35, 0x77, 0x68, 0xaf,
- 0x6f, 0xeb, 0x01, 0x25, 0x87, 0x50, 0x67, 0x0f, 0x64, 0xea, 0x81, 0x3e, 0x5f, 0xb8, 0x51, 0xb8,
- 0xd9, 0x5c, 0x5a, 0x5e, 0x18, 0xf3, 0x05, 0x2e, 0x6c, 0x49, 0xa0, 0xf6, 0xd4, 0xe9, 0x49, 0xab,
- 0xae, 0xfe, 0x61, 0x28, 0x80, 0xfc, 0x5a, 0x01, 0xa6, 0x1c, 0xd7, 0xa4, 0x1d, 0x6a, 0x53, 0x23,
- 0x70, 0xbd, 0xf9, 0xe2, 0x8d, 0xd2, 0xcd, 0xe6, 0xd2, 0x37, 0xc7, 0x96, 0x98, 0xf1, 0x44, 0x0b,
- 0xf7, 0x62, 0x02, 0x6e, 0x39, 0x81, 0x77, 0xdc, 0xbe, 0xfc, 0xbd, 0x93, 0xd6, 0x0b, 0xa7, 0x27,
- 0xad, 0xa9, 0x38, 0x09, 0x13, 0x2d, 0x21, 0xbb, 0xd0, 0x0c, 0x5c, 0x9b, 0x75, 0x99, 0xe5, 0x3a,
- 0xfe, 0x7c, 0x89, 0x37, 0xec, 0xfa, 0x82, 0xe8, 0x6a, 0x26, 0x7e, 0x81, 0x8d, 0xb1, 0x85, 0xa3,
- 0xd7, 0x16, 0x76, 0x42, 0xb6, 0xf6, 0x25, 0x09, 0xdc, 0x8c, 0xca, 0x7c, 0x8c, 0xe3, 0x10, 0x0a,
- 0xb3, 0x3e, 0x35, 0x06, 0x9e, 0x15, 0x1c, 0xaf, 0xb8, 0x4e, 0x40, 0x1f, 0x05, 0xf3, 0x65, 0xde,
- 0xcb, 0x5f, 0xcc, 0x82, 0xde, 0x76, 0xcd, 0x4e, 0x92, 0xbb, 0x7d, 0xe9, 0xf4, 0xa4, 0x35, 0x9b,
- 0x2a, 0xc4, 0x34, 0x26, 0x71, 0x60, 0xce, 0xea, 0xe9, 0x5d, 0xba, 0x3d, 0xb0, 0xed, 0x0e, 0x35,
- 0x3c, 0x1a, 0xf8, 0xf3, 0x15, 0xfe, 0x08, 0x37, 0xb3, 0xe4, 0x6c, 0xba, 0x86, 0x6e, 0xdf, 0xdf,
- 0xfb, 0x80, 0x1a, 0x01, 0xd2, 0x7d, 0xea, 0x51, 0xc7, 0xa0, 0xed, 0x79, 0xf9, 0x30, 0x73, 0x1b,
- 0x29, 0x24, 0x1c, 0xc2, 0x26, 0xeb, 0xf0, 0x62, 0xdf, 0xb3, 0x5c, 0xde, 0x04, 0x5b, 0xf7, 0xfd,
- 0x7b, 0x7a, 0x8f, 0xce, 0x57, 0x6f, 0x14, 0x6e, 0x36, 0xda, 0x57, 0x25, 0xcc, 0x8b, 0xdb, 0x69,
- 0x06, 0x1c, 0xae, 0x43, 0x6e, 0x42, 0x5d, 0x15, 0xce, 0xd7, 0x6e, 0x14, 0x6e, 0x56, 0xc4, 0xd8,
- 0x51, 0x75, 0x31, 0xa4, 0x92, 0x35, 0xa8, 0xeb, 0xfb, 0xfb, 0x96, 0xc3, 0x38, 0xeb, 0xbc, 0x0b,
- 0x5f, 0xc9, 0x7a, 0xb4, 0x65, 0xc9, 0x23, 0x70, 0xd4, 0x3f, 0x0c, 0xeb, 0x92, 0x3b, 0x40, 0x7c,
- 0xea, 0x1d, 0x59, 0x06, 0x5d, 0x36, 0x0c, 0x77, 0xe0, 0x04, 0xbc, 0xed, 0x0d, 0xde, 0xf6, 0x6b,
- 0xb2, 0xed, 0xa4, 0x33, 0xc4, 0x81, 0x19, 0xb5, 0xc8, 0xdb, 0x30, 0x27, 0xbf, 0xd5, 0xa8, 0x17,
- 0x80, 0x23, 0x5d, 0x66, 0x1d, 0x89, 0x29, 0x1a, 0x0e, 0x71, 0x13, 0x13, 0x5e, 0xd1, 0x07, 0x81,
- 0xdb, 0x63, 0x90, 0x49, 0xa1, 0x3b, 0xee, 0x21, 0x75, 0xe6, 0x9b, 0x37, 0x0a, 0x37, 0xeb, 0xed,
- 0x1b, 0xa7, 0x27, 0xad, 0x57, 0x96, 0x9f, 0xc0, 0x87, 0x4f, 0x44, 0x21, 0xf7, 0xa1, 0x61, 0x3a,
- 0xfe, 0xb6, 0x6b, 0x5b, 0xc6, 0xf1, 0xfc, 0x14, 0x6f, 0xe0, 0x6b, 0xf2, 0x51, 0x1b, 0xab, 0xf7,
- 0x3a, 0x82, 0xf0, 0xf8, 0xa4, 0xf5, 0xca, 0xf0, 0x94, 0xba, 0x10, 0xd2, 0x31, 0xc2, 0x20, 0x5b,
- 0x1c, 0x70, 0xc5, 0x75, 0xf6, 0xad, 0xee, 0xfc, 0x34, 0x7f, 0x1b, 0x37, 0x46, 0x0c, 0xe8, 0xd5,
- 0x7b, 0x1d, 0xc1, 0xd7, 0x9e, 0x96, 0xe2, 0xc4, 0x5f, 0x8c, 0x10, 0x88, 0x09, 0x33, 0x6a, 0x32,
- 0x5e, 0xb1, 0x75, 0xab, 0xe7, 0xcf, 0xcf, 0xf0, 0xc1, 0xfb, 0xa3, 0x23, 0x30, 0x31, 0xce, 0xdc,
- 0xbe, 0x22, 0x1f, 0x65, 0x26, 0x51, 0xec, 0x63, 0x0a, 0xf3, 0xda, 0x5b, 0xf0, 0xe2, 0xd0, 0xdc,
- 0x40, 0xe6, 0xa0, 0x74, 0x48, 0x8f, 0xf9, 0xd4, 0xd7, 0x40, 0xf6, 0x93, 0x5c, 0x86, 0xca, 0x91,
- 0x6e, 0x0f, 0xe8, 0x7c, 0x91, 0x97, 0x89, 0x3f, 0x3f, 0x53, 0x7c, 0xb3, 0xa0, 0xfd, 0x8d, 0x12,
- 0x4c, 0xa9, 0x19, 0xa7, 0x63, 0x39, 0x87, 0xe4, 0x1d, 0x28, 0xd9, 0x6e, 0x57, 0xce, 0x9b, 0x3f,
- 0x37, 0xf6, 0x2c, 0xb6, 0xe9, 0x76, 0xdb, 0xb5, 0xd3, 0x93, 0x56, 0x69, 0xd3, 0xed, 0x22, 0x43,
- 0x24, 0x06, 0x54, 0x0e, 0xf5, 0xfd, 0x43, 0x9d, 0xb7, 0xa1, 0xb9, 0xd4, 0x1e, 0x1b, 0xfa, 0x2e,
- 0x43, 0x61, 0x6d, 0x6d, 0x37, 0x4e, 0x4f, 0x5a, 0x15, 0xfe, 0x17, 0x05, 0x36, 0x71, 0xa1, 0xb1,
- 0x67, 0xeb, 0xc6, 0xe1, 0x81, 0x6b, 0xd3, 0xf9, 0x52, 0x4e, 0x41, 0x6d, 0x85, 0x24, 0x5e, 0x73,
- 0xf8, 0x17, 0x23, 0x19, 0xc4, 0x80, 0xea, 0xc0, 0xf4, 0x2d, 0xe7, 0x50, 0xce, 0x81, 0x6f, 0x8d,
- 0x2d, 0x6d, 0x77, 0x95, 0x3f, 0x13, 0x9c, 0x9e, 0xb4, 0xaa, 0xe2, 0x37, 0x4a, 0x68, 0xed, 0x0f,
- 0xa6, 0x60, 0x46, 0xbd, 0xa4, 0x07, 0xd4, 0x0b, 0xe8, 0x23, 0x72, 0x03, 0xca, 0x0e, 0xfb, 0x34,
- 0xf9, 0x4b, 0x6e, 0x4f, 0xc9, 0xe1, 0x52, 0xe6, 0x9f, 0x24, 0xa7, 0xb0, 0x96, 0x89, 0xa1, 0x22,
- 0x3b, 0x7c, 0xfc, 0x96, 0x75, 0x38, 0x8c, 0x68, 0x99, 0xf8, 0x8d, 0x12, 0x9a, 0xbc, 0x07, 0x65,
- 0xfe, 0xf0, 0xa2, 0xab, 0xbf, 0x3a, 0xbe, 0x08, 0xf6, 0xe8, 0x75, 0xf6, 0x04, 0xfc, 0xc1, 0x39,
- 0x28, 0x1b, 0x8a, 0x03, 0x73, 0x5f, 0x76, 0xec, 0xcf, 0xe5, 0xe8, 0xd8, 0x35, 0x31, 0x14, 0x77,
- 0x57, 0xd7, 0x90, 0x21, 0x92, 0xbf, 0x54, 0x80, 0x17, 0x0d, 0xd7, 0x09, 0x74, 0xa6, 0x67, 0xa8,
- 0x45, 0x76, 0xbe, 0xc2, 0xe5, 0xdc, 0x19, 0x5b, 0xce, 0x4a, 0x1a, 0xb1, 0xfd, 0x12, 0x5b, 0x33,
- 0x86, 0x8a, 0x71, 0x58, 0x36, 0xf9, 0x2b, 0x05, 0x78, 0x89, 0xcd, 0xe5, 0x43, 0xcc, 0x7c, 0x05,
- 0x9a, 0x6c, 0xab, 0xae, 0x9e, 0x9e, 0xb4, 0x5e, 0xda, 0xc8, 0x12, 0x86, 0xd9, 0x6d, 0x60, 0xad,
- 0xbb, 0xa4, 0x0f, 0xab, 0x25, 0x7c, 0x75, 0x6b, 0x2e, 0x6d, 0x4e, 0x52, 0xd5, 0x69, 0x7f, 0x4e,
- 0x0e, 0xe5, 0x2c, 0xcd, 0x0e, 0xb3, 0x5a, 0x41, 0x6e, 0x41, 0xed, 0xc8, 0xb5, 0x07, 0x3d, 0xea,
- 0xcf, 0xd7, 0xf9, 0x14, 0x7b, 0x2d, 0x6b, 0x8a, 0x7d, 0xc0, 0x59, 0xda, 0xb3, 0x12, 0xbe, 0x26,
- 0xfe, 0xfb, 0xa8, 0xea, 0x12, 0x0b, 0xaa, 0xb6, 0xd5, 0xb3, 0x02, 0x9f, 0x2f, 0x9c, 0xcd, 0xa5,
- 0x5b, 0x63, 0x3f, 0x96, 0xf8, 0x44, 0x37, 0x39, 0x98, 0xf8, 0x6a, 0xc4, 0x6f, 0x94, 0x02, 0xd8,
- 0x54, 0xe8, 0x1b, 0xba, 0x2d, 0x16, 0xd6, 0xe6, 0xd2, 0xd7, 0xc6, 0xff, 0x6c, 0x18, 0x4a, 0x7b,
- 0x5a, 0x3e, 0x53, 0x85, 0xff, 0x45, 0x81, 0x4d, 0x7e, 0x01, 0x66, 0x12, 0x6f, 0xd3, 0x9f, 0x6f,
- 0xf2, 0xde, 0x79, 0x35, 0xab, 0x77, 0x42, 0xae, 0x68, 0xe5, 0x49, 0x8c, 0x10, 0x1f, 0x53, 0x60,
- 0xe4, 0x2e, 0xd4, 0x7d, 0xcb, 0xa4, 0x86, 0xee, 0xf9, 0xf3, 0x53, 0x67, 0x01, 0x9e, 0x93, 0xc0,
- 0xf5, 0x8e, 0xac, 0x86, 0x21, 0x00, 0x59, 0x00, 0xe8, 0xeb, 0x5e, 0x60, 0x09, 0x45, 0x75, 0x9a,
- 0x2b, 0x4d, 0x33, 0xa7, 0x27, 0x2d, 0xd8, 0x0e, 0x4b, 0x31, 0xc6, 0xc1, 0xf8, 0x59, 0xdd, 0x0d,
- 0xa7, 0x3f, 0x08, 0xc4, 0xc2, 0xda, 0x10, 0xfc, 0x9d, 0xb0, 0x14, 0x63, 0x1c, 0xe4, 0xb7, 0x0a,
- 0xf0, 0xb9, 0xe8, 0xef, 0xf0, 0x47, 0x36, 0x3b, 0xf1, 0x8f, 0xac, 0x75, 0x7a, 0xd2, 0xfa, 0x5c,
- 0x67, 0xb4, 0x48, 0x7c, 0x52, 0x7b, 0xc8, 0xc7, 0x05, 0x98, 0x19, 0xf4, 0x4d, 0x3d, 0xa0, 0x9d,
- 0x80, 0xed, 0x78, 0xba, 0xc7, 0xf3, 0x73, 0xbc, 0x89, 0xeb, 0xe3, 0xcf, 0x82, 0x09, 0xb8, 0xe8,
- 0x35, 0x27, 0xcb, 0x31, 0x25, 0x56, 0x7b, 0x07, 0xa6, 0x97, 0x07, 0xc1, 0x81, 0xeb, 0x59, 0x1f,
- 0x72, 0xf5, 0x9f, 0xac, 0x41, 0x25, 0xe0, 0x6a, 0x9c, 0xd0, 0x10, 0xbe, 0x90, 0xf5, 0xd2, 0x85,
- 0x4a, 0x7d, 0x97, 0x1e, 0x2b, 0xbd, 0x44, 0xac, 0xd4, 0x42, 0xad, 0x13, 0xd5, 0xb5, 0x3f, 0x53,
- 0x80, 0x5a, 0x5b, 0x37, 0x0e, 0xdd, 0xfd, 0x7d, 0xf2, 0x2e, 0xd4, 0x2d, 0x27, 0xa0, 0xde, 0x91,
- 0x6e, 0x4b, 0xd8, 0x85, 0x18, 0x6c, 0xb8, 0x21, 0x8c, 0x1e, 0x8f, 0xed, 0xbe, 0x98, 0xa0, 0xd5,
- 0x81, 0xdc, 0xb5, 0x70, 0xcd, 0x78, 0x43, 0x62, 0x60, 0x88, 0x46, 0x5a, 0x50, 0xf1, 0x03, 0xda,
- 0xf7, 0xf9, 0x1a, 0x38, 0x2d, 0x9a, 0xd1, 0x61, 0x05, 0x28, 0xca, 0xb5, 0xbf, 0x5e, 0x80, 0x46,
- 0x5b, 0xf7, 0x2d, 0x83, 0x3d, 0x25, 0x59, 0x81, 0xf2, 0xc0, 0xa7, 0xde, 0xf9, 0x9e, 0x8d, 0x2f,
- 0x5b, 0xbb, 0x3e, 0xf5, 0x90, 0x57, 0x26, 0xf7, 0xa1, 0xde, 0xd7, 0x7d, 0xff, 0xa1, 0xeb, 0x99,
- 0x72, 0xe9, 0x3d, 0x23, 0x90, 0xd8, 0x26, 0xc8, 0xaa, 0x18, 0x82, 0x68, 0x4d, 0x88, 0x74, 0x0f,
- 0xed, 0xf7, 0x0a, 0x70, 0xa9, 0x3d, 0xd8, 0xdf, 0xa7, 0x9e, 0xd4, 0x8a, 0xa5, 0xbe, 0x49, 0xa1,
- 0xe2, 0x51, 0xd3, 0xf2, 0x65, 0xdb, 0x57, 0xc7, 0x1e, 0x28, 0xc8, 0x50, 0xa4, 0x7a, 0xcb, 0xfb,
- 0x8b, 0x17, 0xa0, 0x40, 0x27, 0x03, 0x68, 0x7c, 0x40, 0xd9, 0x6e, 0x9c, 0xea, 0x3d, 0xf9, 0x74,
- 0xb7, 0xc7, 0x16, 0x75, 0x87, 0x06, 0x1d, 0x8e, 0x14, 0xd7, 0xa6, 0xc3, 0x42, 0x8c, 0x24, 0x69,
- 0xbf, 0x5d, 0x81, 0xa9, 0x15, 0xb7, 0xb7, 0x67, 0x39, 0xd4, 0xbc, 0x65, 0x76, 0x29, 0x79, 0x1f,
- 0xca, 0xd4, 0xec, 0x52, 0xf9, 0xb4, 0xe3, 0x2b, 0x1e, 0x0c, 0x2c, 0x52, 0x9f, 0xd8, 0x3f, 0xe4,
- 0xc0, 0x64, 0x13, 0x66, 0xf6, 0x3d, 0xb7, 0x27, 0xe6, 0xf2, 0x9d, 0xe3, 0xbe, 0xd4, 0x9d, 0xdb,
- 0x3f, 0xaa, 0x3e, 0x9c, 0xb5, 0x04, 0xf5, 0xf1, 0x49, 0x0b, 0xa2, 0x7f, 0x98, 0xaa, 0x4b, 0xde,
- 0x85, 0xf9, 0xa8, 0x24, 0x9c, 0xd4, 0x56, 0xd8, 0x76, 0x86, 0xeb, 0x4e, 0x95, 0xf6, 0x2b, 0xa7,
- 0x27, 0xad, 0xf9, 0xb5, 0x11, 0x3c, 0x38, 0xb2, 0x36, 0x9b, 0x2a, 0xe6, 0x22, 0xa2, 0x58, 0x68,
- 0xa4, 0xca, 0x34, 0xa1, 0x15, 0x8c, 0xef, 0xfb, 0xd6, 0x52, 0x22, 0x70, 0x48, 0x28, 0x59, 0x83,
- 0xa9, 0xc0, 0x8d, 0xf5, 0x57, 0x85, 0xf7, 0x97, 0xa6, 0x0c, 0x15, 0x3b, 0xee, 0xc8, 0xde, 0x4a,
- 0xd4, 0x23, 0x08, 0x57, 0xd4, 0xff, 0x54, 0x4f, 0x55, 0x79, 0x4f, 0x5d, 0x3b, 0x3d, 0x69, 0x5d,
- 0xd9, 0xc9, 0xe4, 0xc0, 0x11, 0x35, 0xc9, 0x2f, 0x17, 0x60, 0x46, 0x91, 0x64, 0x1f, 0xd5, 0x26,
- 0xd9, 0x47, 0x84, 0x8d, 0x88, 0x9d, 0x84, 0x00, 0x4c, 0x09, 0xd4, 0x7e, 0xa7, 0x0a, 0x8d, 0x70,
- 0xaa, 0x27, 0x9f, 0x87, 0x0a, 0x37, 0x41, 0x48, 0x0d, 0x3e, 0x5c, 0xc3, 0xb9, 0xa5, 0x02, 0x05,
- 0x8d, 0x7c, 0x01, 0x6a, 0x86, 0xdb, 0xeb, 0xe9, 0x8e, 0xc9, 0xcd, 0x4a, 0x8d, 0x76, 0x93, 0xa9,
- 0x2e, 0x2b, 0xa2, 0x08, 0x15, 0x8d, 0xbc, 0x02, 0x65, 0xdd, 0xeb, 0x0a, 0x0b, 0x4f, 0x43, 0xcc,
- 0x47, 0xcb, 0x5e, 0xd7, 0x47, 0x5e, 0x4a, 0xbe, 0x02, 0x25, 0xea, 0x1c, 0xcd, 0x97, 0x47, 0xeb,
- 0x46, 0xb7, 0x9c, 0xa3, 0x07, 0xba, 0xd7, 0x6e, 0xca, 0x36, 0x94, 0x6e, 0x39, 0x47, 0xc8, 0xea,
- 0x90, 0x4d, 0xa8, 0x51, 0xe7, 0x88, 0xbd, 0x7b, 0x69, 0x7a, 0xf9, 0x91, 0x11, 0xd5, 0x19, 0x8b,
- 0xdc, 0x26, 0x84, 0x1a, 0x96, 0x2c, 0x46, 0x05, 0x41, 0xbe, 0x01, 0x53, 0x42, 0xd9, 0xda, 0x62,
- 0xef, 0xc4, 0x9f, 0xaf, 0x72, 0xc8, 0xd6, 0x68, 0x6d, 0x8d, 0xf3, 0x45, 0xa6, 0xae, 0x58, 0xa1,
- 0x8f, 0x09, 0x28, 0xf2, 0x0d, 0x68, 0xa8, 0x9d, 0xb1, 0x7a, 0xb3, 0x99, 0x56, 0x22, 0xb5, 0x9d,
- 0x46, 0xfa, 0xad, 0x81, 0xe5, 0xd1, 0x1e, 0x75, 0x02, 0xbf, 0xfd, 0xa2, 0xb2, 0x1b, 0x28, 0xaa,
- 0x8f, 0x11, 0x1a, 0xd9, 0x1b, 0x36, 0x77, 0x09, 0x5b, 0xcd, 0xe7, 0x47, 0xcc, 0xea, 0x63, 0xd8,
- 0xba, 0xbe, 0x09, 0xb3, 0xa1, 0x3d, 0x4a, 0x9a, 0x34, 0x84, 0xf5, 0xe6, 0x4b, 0xac, 0xfa, 0x46,
- 0x92, 0xf4, 0xf8, 0xa4, 0xf5, 0x6a, 0x86, 0x51, 0x23, 0x62, 0xc0, 0x34, 0x18, 0xf9, 0x10, 0x66,
- 0x3c, 0xaa, 0x9b, 0x96, 0x43, 0x7d, 0x7f, 0xdb, 0x73, 0xf7, 0xf2, 0x6b, 0x9e, 0x1c, 0x45, 0x0c,
- 0x7b, 0x4c, 0x20, 0x63, 0x4a, 0x12, 0x79, 0x08, 0xd3, 0xb6, 0x75, 0x44, 0x23, 0xd1, 0xcd, 0x89,
- 0x88, 0x7e, 0xf1, 0xf4, 0xa4, 0x35, 0xbd, 0x19, 0x07, 0xc6, 0xa4, 0x1c, 0xed, 0xef, 0x54, 0x60,
- 0x78, 0xf3, 0x95, 0x1c, 0x29, 0x85, 0x49, 0x8f, 0x94, 0xf4, 0x5b, 0x14, 0x6b, 0xc6, 0x9b, 0xb2,
- 0xda, 0x04, 0xde, 0x64, 0xc6, 0x68, 0x2c, 0x4d, 0x7a, 0x34, 0x3e, 0x37, 0x13, 0xc6, 0xf0, 0xb0,
- 0xad, 0x7e, 0x72, 0xc3, 0xb6, 0xf6, 0x8c, 0x86, 0xed, 0x77, 0xca, 0x30, 0xb3, 0xaa, 0xd3, 0x9e,
- 0xeb, 0x3c, 0x75, 0xff, 0x5d, 0x78, 0x2e, 0xf6, 0xdf, 0x37, 0xa1, 0xee, 0xd1, 0xbe, 0x6d, 0x19,
- 0xba, 0x50, 0xb3, 0xa5, 0xbd, 0x1b, 0x65, 0x19, 0x86, 0xd4, 0x11, 0x76, 0x97, 0xd2, 0x73, 0x69,
- 0x77, 0x29, 0x7f, 0xf2, 0x76, 0x17, 0xed, 0x97, 0x8b, 0xc0, 0x55, 0x52, 0x72, 0x03, 0xca, 0x4c,
- 0xdd, 0x4a, 0x5b, 0xfb, 0xf8, 0xd7, 0xc2, 0x29, 0xe4, 0x1a, 0x14, 0x03, 0x57, 0x4e, 0x37, 0x20,
- 0xe9, 0xc5, 0x1d, 0x17, 0x8b, 0x81, 0x4b, 0x3e, 0x04, 0x30, 0x5c, 0xc7, 0xb4, 0x94, 0x1b, 0x28,
- 0xdf, 0x83, 0xad, 0xb9, 0xde, 0x43, 0xdd, 0x33, 0x57, 0x42, 0x44, 0xb1, 0xf3, 0x8e, 0xfe, 0x63,
- 0x4c, 0x1a, 0x79, 0x0b, 0xaa, 0xae, 0xb3, 0x36, 0xb0, 0x6d, 0xde, 0xa1, 0x8d, 0xf6, 0x8f, 0x9d,
- 0x9e, 0xb4, 0xaa, 0xf7, 0x79, 0xc9, 0xe3, 0x93, 0xd6, 0x55, 0xb1, 0x93, 0x61, 0xff, 0xde, 0xf1,
- 0xac, 0xc0, 0x72, 0xba, 0xe1, 0x46, 0x54, 0x56, 0xd3, 0x7e, 0xb5, 0x00, 0xcd, 0x35, 0xeb, 0x11,
- 0x35, 0xdf, 0xb1, 0x1c, 0xd3, 0x7d, 0x48, 0x10, 0xaa, 0x36, 0x75, 0xba, 0xc1, 0xc1, 0x98, 0x3b,
- 0x45, 0x61, 0x8f, 0xe1, 0x08, 0x28, 0x91, 0xc8, 0x22, 0x34, 0xc4, 0x3e, 0xc3, 0x72, 0xba, 0xbc,
- 0x0f, 0xeb, 0xd1, 0x4c, 0xdf, 0x51, 0x04, 0x8c, 0x78, 0xb4, 0x63, 0x78, 0x71, 0xa8, 0x1b, 0x88,
- 0x09, 0xe5, 0x40, 0xef, 0xaa, 0x45, 0x65, 0x6d, 0xec, 0x0e, 0xde, 0xd1, 0xbb, 0xb1, 0xce, 0xe5,
- 0xda, 0xdc, 0x8e, 0xce, 0xb4, 0x39, 0x86, 0xae, 0xfd, 0x61, 0x01, 0xea, 0x6b, 0x03, 0xc7, 0xe0,
- 0x9b, 0xf1, 0xa7, 0x5b, 0x81, 0x95, 0x6a, 0x58, 0xcc, 0x54, 0x0d, 0x07, 0x50, 0x3d, 0x7c, 0x18,
- 0xaa, 0x8e, 0xcd, 0xa5, 0xad, 0xf1, 0x47, 0x85, 0x6c, 0xd2, 0xc2, 0x5d, 0x8e, 0x27, 0x9c, 0x94,
- 0x33, 0xb2, 0x41, 0xd5, 0xbb, 0xef, 0x70, 0xa1, 0x52, 0xd8, 0xb5, 0xaf, 0x40, 0x33, 0xc6, 0x76,
- 0x2e, 0x7f, 0xc5, 0xdf, 0x2d, 0x43, 0x75, 0xbd, 0xd3, 0x59, 0xde, 0xde, 0x20, 0xaf, 0x43, 0x53,
- 0xfa, 0xaf, 0xee, 0x45, 0x7d, 0x10, 0xba, 0x2f, 0x3b, 0x11, 0x09, 0xe3, 0x7c, 0x4c, 0xf1, 0xf6,
- 0xa8, 0x6e, 0xf7, 0xe4, 0xc7, 0x12, 0x2a, 0xde, 0xc8, 0x0a, 0x51, 0xd0, 0x88, 0x0e, 0x33, 0x6c,
- 0x2f, 0xcf, 0xba, 0x50, 0xec, 0xd3, 0xe5, 0x67, 0x73, 0xc6, 0x9d, 0x3c, 0x5f, 0x60, 0x76, 0x13,
- 0x00, 0x98, 0x02, 0x24, 0x6f, 0x42, 0x5d, 0x1f, 0x04, 0x07, 0x7c, 0xab, 0x24, 0xbe, 0x8d, 0x57,
- 0xb8, 0x7b, 0x4f, 0x96, 0x3d, 0x3e, 0x69, 0x4d, 0xdd, 0xc5, 0xf6, 0xeb, 0xea, 0x3f, 0x86, 0xdc,
- 0xac, 0x71, 0xca, 0x36, 0x20, 0x1b, 0x57, 0x39, 0x77, 0xe3, 0xb6, 0x13, 0x00, 0x98, 0x02, 0x24,
- 0xef, 0xc1, 0xd4, 0x21, 0x3d, 0x0e, 0xf4, 0x3d, 0x29, 0xa0, 0x7a, 0x1e, 0x01, 0x73, 0x4c, 0x59,
- 0xbf, 0x1b, 0xab, 0x8e, 0x09, 0x30, 0xe2, 0xc3, 0xe5, 0x43, 0xea, 0xed, 0x51, 0xcf, 0x95, 0x76,
- 0x06, 0x29, 0xa4, 0x76, 0x1e, 0x21, 0xf3, 0xa7, 0x27, 0xad, 0xcb, 0x77, 0x33, 0x60, 0x30, 0x13,
- 0x5c, 0xfb, 0xdf, 0x45, 0x98, 0x5d, 0x17, 0x01, 0x04, 0xae, 0x27, 0x34, 0x0f, 0x72, 0x15, 0x4a,
- 0x5e, 0x7f, 0xc0, 0x47, 0x4e, 0x49, 0xb8, 0x08, 0x70, 0x7b, 0x17, 0x59, 0x19, 0x79, 0x17, 0xea,
- 0xa6, 0x9c, 0x32, 0xa4, 0x99, 0x63, 0x2c, 0x93, 0x94, 0xfa, 0x87, 0x21, 0x1a, 0xdb, 0xd3, 0xf5,
- 0xfc, 0x6e, 0xc7, 0xfa, 0x90, 0xca, 0x9d, 0x3f, 0xdf, 0xd3, 0x6d, 0x89, 0x22, 0x54, 0x34, 0xb6,
- 0xaa, 0x1e, 0xd2, 0x63, 0xb1, 0xef, 0x2d, 0x47, 0xab, 0xea, 0x5d, 0x59, 0x86, 0x21, 0x95, 0xb4,
- 0xd4, 0xc7, 0xc2, 0x46, 0x41, 0x59, 0xd8, 0x6c, 0x1e, 0xb0, 0x02, 0xf9, 0xdd, 0xb0, 0x29, 0xf3,
- 0x03, 0x2b, 0x08, 0xa8, 0x27, 0x5f, 0xe3, 0x58, 0x53, 0xe6, 0x1d, 0x8e, 0x80, 0x12, 0x89, 0xfc,
- 0x04, 0x34, 0x38, 0x78, 0xdb, 0x76, 0xf7, 0xf8, 0x8b, 0x6b, 0x08, 0xeb, 0xcd, 0x03, 0x55, 0x88,
- 0x11, 0x5d, 0xfb, 0xa3, 0x22, 0x5c, 0x59, 0xa7, 0x81, 0xd0, 0x6a, 0x56, 0x69, 0xdf, 0x76, 0x8f,
- 0x99, 0x3e, 0x8d, 0xf4, 0x5b, 0xe4, 0x6d, 0x00, 0xcb, 0xdf, 0xeb, 0x1c, 0x19, 0xfc, 0x3b, 0x10,
- 0xdf, 0xf0, 0x0d, 0xf9, 0x49, 0xc2, 0x46, 0xa7, 0x2d, 0x29, 0x8f, 0x13, 0xff, 0x30, 0x56, 0x27,
- 0xda, 0x48, 0x17, 0x9f, 0xb0, 0x91, 0xee, 0x00, 0xf4, 0x23, 0xad, 0xbc, 0xc4, 0x39, 0x7f, 0x5a,
- 0x89, 0x39, 0x8f, 0x42, 0x1e, 0x83, 0xc9, 0xa3, 0x27, 0x3b, 0x30, 0x67, 0xd2, 0x7d, 0x7d, 0x60,
- 0x07, 0xe1, 0x4e, 0x42, 0x7e, 0xc4, 0x67, 0xdf, 0x8c, 0x84, 0xc1, 0x0d, 0xab, 0x29, 0x24, 0x1c,
- 0xc2, 0xd6, 0xfe, 0x5e, 0x09, 0xae, 0xad, 0xd3, 0x20, 0xb4, 0xad, 0xc9, 0xd9, 0xb1, 0xd3, 0xa7,
- 0x06, 0x7b, 0x0b, 0x1f, 0x17, 0xa0, 0x6a, 0xeb, 0x7b, 0xd4, 0x66, 0xab, 0x17, 0x7b, 0x9a, 0xf7,
- 0xc7, 0x5e, 0x08, 0x46, 0x4b, 0x59, 0xd8, 0xe4, 0x12, 0x52, 0x4b, 0x83, 0x28, 0x44, 0x29, 0x9e,
- 0x4d, 0xea, 0x86, 0x3d, 0xf0, 0x03, 0xea, 0x6d, 0xbb, 0x5e, 0x20, 0xf5, 0xc9, 0x70, 0x52, 0x5f,
- 0x89, 0x48, 0x18, 0xe7, 0x23, 0x4b, 0x00, 0x86, 0x6d, 0x51, 0x27, 0xe0, 0xb5, 0xc4, 0x77, 0x45,
- 0xd4, 0xfb, 0x5d, 0x09, 0x29, 0x18, 0xe3, 0x62, 0xa2, 0x7a, 0xae, 0x63, 0x05, 0xae, 0x10, 0x55,
- 0x4e, 0x8a, 0xda, 0x8a, 0x48, 0x18, 0xe7, 0xe3, 0xd5, 0x68, 0xe0, 0x59, 0x86, 0xcf, 0xab, 0x55,
- 0x52, 0xd5, 0x22, 0x12, 0xc6, 0xf9, 0xd8, 0x9a, 0x17, 0x7b, 0xfe, 0x73, 0xad, 0x79, 0xbf, 0xd9,
- 0x80, 0xeb, 0x89, 0x6e, 0x0d, 0xf4, 0x80, 0xee, 0x0f, 0xec, 0x0e, 0x0d, 0xd4, 0x0b, 0x1c, 0x73,
- 0x2d, 0xfc, 0xf3, 0xd1, 0x7b, 0x17, 0x61, 0x4b, 0xc6, 0x64, 0xde, 0xfb, 0x50, 0x03, 0xcf, 0xf4,
- 0xee, 0x17, 0xa1, 0xe1, 0xe8, 0x81, 0xcf, 0x3f, 0x5c, 0xf9, 0x8d, 0x86, 0x6a, 0xd8, 0x3d, 0x45,
- 0xc0, 0x88, 0x87, 0x6c, 0xc3, 0x65, 0xd9, 0xc5, 0xb7, 0x1e, 0xf5, 0x5d, 0x2f, 0xa0, 0x9e, 0xa8,
- 0x2b, 0x97, 0x53, 0x59, 0xf7, 0xf2, 0x56, 0x06, 0x0f, 0x66, 0xd6, 0x24, 0x5b, 0x70, 0xc9, 0x10,
- 0xa1, 0x1c, 0xd4, 0x76, 0x75, 0x53, 0x01, 0x0a, 0x53, 0x66, 0xb8, 0x35, 0x5a, 0x19, 0x66, 0xc1,
- 0xac, 0x7a, 0xe9, 0xd1, 0x5c, 0x1d, 0x6b, 0x34, 0xd7, 0xc6, 0x19, 0xcd, 0xf5, 0xf1, 0x46, 0x73,
- 0xe3, 0x6c, 0xa3, 0x99, 0xf5, 0x3c, 0x1b, 0x47, 0xd4, 0x63, 0xea, 0x89, 0x58, 0x61, 0x63, 0x91,
- 0x42, 0x61, 0xcf, 0x77, 0x32, 0x78, 0x30, 0xb3, 0x26, 0xd9, 0x83, 0x6b, 0xa2, 0xfc, 0x96, 0x63,
- 0x78, 0xc7, 0x7d, 0xb6, 0xf0, 0xc4, 0x70, 0x9b, 0x09, 0x5b, 0xf2, 0xb5, 0xce, 0x48, 0x4e, 0x7c,
- 0x02, 0x0a, 0xf9, 0x59, 0x98, 0x16, 0x6f, 0x69, 0x4b, 0xef, 0x73, 0x58, 0x11, 0x37, 0xf4, 0x92,
- 0x84, 0x9d, 0x5e, 0x89, 0x13, 0x31, 0xc9, 0x4b, 0x96, 0x61, 0xb6, 0x7f, 0x64, 0xb0, 0x9f, 0x1b,
- 0xfb, 0xf7, 0x28, 0x35, 0xa9, 0xc9, 0x1d, 0x95, 0x8d, 0xf6, 0xcb, 0xca, 0xba, 0xb3, 0x9d, 0x24,
- 0x63, 0x9a, 0x9f, 0xbc, 0x09, 0x53, 0x7e, 0xa0, 0x7b, 0x81, 0x34, 0xe0, 0xce, 0xcf, 0x88, 0xb8,
- 0x2a, 0x65, 0xdf, 0xec, 0xc4, 0x68, 0x98, 0xe0, 0xcc, 0x5c, 0x2f, 0x66, 0x2f, 0x6e, 0xbd, 0xc8,
- 0x33, 0x5b, 0xfd, 0xb3, 0x22, 0xdc, 0x58, 0xa7, 0xc1, 0x96, 0xeb, 0x48, 0xf3, 0x77, 0xd6, 0xb2,
- 0x7f, 0x26, 0xeb, 0x77, 0x72, 0xd1, 0x2e, 0x4e, 0x74, 0xd1, 0x2e, 0x4d, 0x68, 0xd1, 0x2e, 0x5f,
- 0xe0, 0xa2, 0xfd, 0x0f, 0x8a, 0xf0, 0x72, 0xa2, 0x27, 0xb7, 0x5d, 0x53, 0x4d, 0xf8, 0x9f, 0x75,
- 0xe0, 0x19, 0x3a, 0xf0, 0xb1, 0xd0, 0x3b, 0xb9, 0x03, 0x33, 0xa5, 0xf1, 0x7c, 0x94, 0xd6, 0x78,
- 0xde, 0xcb, 0xb3, 0xf2, 0x65, 0x48, 0x38, 0xd3, 0x8a, 0x77, 0x07, 0x88, 0x27, 0xdd, 0xad, 0xc2,
- 0xf4, 0x13, 0x53, 0x7a, 0xc2, 0xc0, 0x4d, 0x1c, 0xe2, 0xc0, 0x8c, 0x5a, 0xa4, 0x03, 0x2f, 0xf9,
- 0xd4, 0x09, 0x2c, 0x87, 0xda, 0x49, 0x38, 0xa1, 0x0d, 0xbd, 0x2a, 0xe1, 0x5e, 0xea, 0x64, 0x31,
- 0x61, 0x76, 0xdd, 0x3c, 0xf3, 0xc0, 0xbf, 0x02, 0xae, 0x72, 0x8a, 0xae, 0x99, 0x98, 0xc6, 0xf2,
- 0x71, 0x5a, 0x63, 0x79, 0x3f, 0xff, 0x7b, 0x1b, 0x4f, 0x5b, 0x59, 0x02, 0xe0, 0x6f, 0x21, 0xae,
- 0xae, 0x84, 0x8b, 0x34, 0x86, 0x14, 0x8c, 0x71, 0xb1, 0x05, 0x48, 0xf5, 0x73, 0x5c, 0x53, 0x09,
- 0x17, 0xa0, 0x4e, 0x9c, 0x88, 0x49, 0xde, 0x91, 0xda, 0x4e, 0x65, 0x6c, 0x6d, 0xe7, 0x0e, 0x90,
- 0x84, 0xe1, 0x51, 0xe0, 0x55, 0x93, 0x71, 0xc3, 0x1b, 0x43, 0x1c, 0x98, 0x51, 0x6b, 0xc4, 0x50,
- 0xae, 0x4d, 0x76, 0x28, 0xd7, 0xc7, 0x1f, 0xca, 0xe4, 0x7d, 0xb8, 0xca, 0x45, 0xc9, 0xfe, 0x49,
- 0x02, 0x0b, 0xbd, 0xe7, 0x47, 0x24, 0xf0, 0x55, 0x1c, 0xc5, 0x88, 0xa3, 0x31, 0xd8, 0xfb, 0x31,
- 0x3c, 0x6a, 0x32, 0xe1, 0xba, 0x3d, 0x5a, 0x27, 0x5a, 0xc9, 0xe0, 0xc1, 0xcc, 0x9a, 0x6c, 0x88,
- 0x05, 0x6c, 0x18, 0xea, 0x7b, 0x36, 0x35, 0x65, 0xdc, 0x74, 0x38, 0xc4, 0x76, 0x36, 0x3b, 0x92,
- 0x82, 0x31, 0xae, 0x2c, 0x35, 0x65, 0xea, 0x9c, 0x6a, 0xca, 0x3a, 0xb7, 0xd2, 0xef, 0x27, 0xb4,
- 0x21, 0xa9, 0xeb, 0x84, 0x91, 0xf0, 0x2b, 0x69, 0x06, 0x1c, 0xae, 0xc3, 0xb5, 0x44, 0xc3, 0xb3,
- 0xfa, 0x81, 0x9f, 0xc4, 0x9a, 0x49, 0x69, 0x89, 0x19, 0x3c, 0x98, 0x59, 0x93, 0xe9, 0xe7, 0x07,
- 0x54, 0xb7, 0x83, 0x83, 0x24, 0xe0, 0x6c, 0x52, 0x3f, 0xbf, 0x3d, 0xcc, 0x82, 0x59, 0xf5, 0x32,
- 0x17, 0xa4, 0xb9, 0xe7, 0x53, 0xad, 0xfa, 0x95, 0x12, 0x5c, 0x5d, 0xa7, 0x41, 0x18, 0x52, 0xf6,
- 0x99, 0x19, 0xe5, 0x13, 0x30, 0xa3, 0xfc, 0x46, 0x05, 0x2e, 0xad, 0xd3, 0x60, 0x48, 0x1b, 0xfb,
- 0xff, 0xb4, 0xfb, 0xb7, 0xe0, 0x52, 0x14, 0xc5, 0xd8, 0x09, 0x5c, 0x4f, 0xac, 0xe5, 0xa9, 0xdd,
- 0x72, 0x67, 0x98, 0x05, 0xb3, 0xea, 0x91, 0x6f, 0xc0, 0xcb, 0x7c, 0xa9, 0x77, 0xba, 0xc2, 0x3e,
- 0x2b, 0x8c, 0x09, 0xb1, 0x73, 0x38, 0x2d, 0x09, 0xf9, 0x72, 0x27, 0x9b, 0x0d, 0x47, 0xd5, 0x27,
- 0xdf, 0x86, 0xa9, 0xbe, 0xd5, 0xa7, 0xb6, 0xe5, 0x70, 0xfd, 0x2c, 0x77, 0xf0, 0xcf, 0x76, 0x0c,
- 0x2c, 0xda, 0xc0, 0xc5, 0x4b, 0x31, 0x21, 0x30, 0x73, 0xa4, 0xd6, 0x2f, 0x70, 0xa4, 0xfe, 0x8f,
- 0x22, 0xd4, 0xd6, 0x3d, 0x77, 0xd0, 0x6f, 0x1f, 0x93, 0x2e, 0x54, 0x1f, 0x72, 0xe7, 0x99, 0x74,
- 0x4d, 0x8d, 0x7f, 0x12, 0x40, 0xf8, 0xe0, 0x22, 0x95, 0x48, 0xfc, 0x47, 0x09, 0xcf, 0x06, 0xf1,
- 0x21, 0x3d, 0xa6, 0xa6, 0xf4, 0xa1, 0x85, 0x83, 0xf8, 0x2e, 0x2b, 0x44, 0x41, 0x23, 0x3d, 0x98,
- 0xd5, 0x6d, 0xdb, 0x7d, 0x48, 0xcd, 0x4d, 0x3d, 0xe0, 0x7e, 0x6f, 0xe9, 0x5b, 0x39, 0xaf, 0x59,
- 0x9a, 0x07, 0x33, 0x2c, 0x27, 0xa1, 0x30, 0x8d, 0x4d, 0x3e, 0x80, 0x9a, 0x1f, 0xb8, 0x9e, 0x52,
- 0xb6, 0x9a, 0x4b, 0x2b, 0xe3, 0xbf, 0xf4, 0xf6, 0xd7, 0x3b, 0x02, 0x4a, 0xd8, 0xec, 0xe5, 0x1f,
- 0x54, 0x02, 0xb4, 0x5f, 0x2f, 0x00, 0xdc, 0xde, 0xd9, 0xd9, 0x96, 0xee, 0x05, 0x13, 0xca, 0xfa,
- 0x20, 0x74, 0x54, 0x8e, 0xef, 0x10, 0x4c, 0x04, 0xe0, 0x4a, 0x1f, 0xde, 0x20, 0x38, 0x40, 0x8e,
- 0x4e, 0x7e, 0x1c, 0x6a, 0x52, 0x41, 0x96, 0xdd, 0x1e, 0xc6, 0x53, 0x48, 0x25, 0x1a, 0x15, 0x5d,
- 0xfb, 0xdb, 0x45, 0x80, 0x0d, 0xd3, 0xa6, 0x1d, 0x75, 0x78, 0xa3, 0x11, 0x1c, 0x78, 0xd4, 0x3f,
- 0x70, 0x6d, 0x73, 0x4c, 0x6f, 0x2a, 0xb7, 0xf9, 0xef, 0x28, 0x10, 0x8c, 0xf0, 0x88, 0x09, 0x53,
- 0x7e, 0x40, 0xfb, 0x2a, 0x26, 0x77, 0x4c, 0x27, 0xca, 0x9c, 0xb0, 0x8b, 0x44, 0x38, 0x98, 0x40,
- 0x25, 0x3a, 0x34, 0x2d, 0xc7, 0x10, 0x1f, 0x48, 0xfb, 0x78, 0xcc, 0x81, 0x34, 0xcb, 0x76, 0x1c,
- 0x1b, 0x11, 0x0c, 0xc6, 0x31, 0xb5, 0xdf, 0x2d, 0xc2, 0x15, 0x2e, 0x8f, 0x35, 0x23, 0x11, 0x79,
- 0x4b, 0xfe, 0xe4, 0xd0, 0x41, 0xd3, 0x3f, 0x7e, 0x36, 0xd1, 0xe2, 0x9c, 0xe2, 0x16, 0x0d, 0xf4,
- 0x48, 0x9f, 0x8b, 0xca, 0x62, 0xa7, 0x4b, 0x07, 0x50, 0xf6, 0xd9, 0x7c, 0x25, 0x7a, 0xaf, 0x33,
- 0xf6, 0x10, 0xca, 0x7e, 0x00, 0x3e, 0x7b, 0x85, 0x5e, 0x63, 0x3e, 0x6b, 0x71, 0x71, 0xe4, 0x4f,
- 0x43, 0xd5, 0x0f, 0xf4, 0x60, 0xa0, 0x3e, 0xcd, 0xdd, 0x49, 0x0b, 0xe6, 0xe0, 0xd1, 0x3c, 0x22,
- 0xfe, 0xa3, 0x14, 0xaa, 0xfd, 0x6e, 0x01, 0xae, 0x65, 0x57, 0xdc, 0xb4, 0xfc, 0x80, 0xfc, 0x89,
- 0xa1, 0x6e, 0x3f, 0xe3, 0x1b, 0x67, 0xb5, 0x79, 0xa7, 0x87, 0x67, 0x11, 0x54, 0x49, 0xac, 0xcb,
- 0x03, 0xa8, 0x58, 0x01, 0xed, 0xa9, 0xfd, 0xe5, 0xfd, 0x09, 0x3f, 0x7a, 0x6c, 0x69, 0x67, 0x52,
- 0x50, 0x08, 0xd3, 0xbe, 0x53, 0x1c, 0xf5, 0xc8, 0x7c, 0xf9, 0xb0, 0x93, 0xd1, 0xdd, 0x77, 0xf3,
- 0x45, 0x77, 0x27, 0x1b, 0x34, 0x1c, 0xe4, 0xfd, 0xa7, 0x86, 0x83, 0xbc, 0xef, 0xe7, 0x0f, 0xf2,
- 0x4e, 0x75, 0xc3, 0xc8, 0x58, 0xef, 0x1f, 0x94, 0xe0, 0x95, 0x27, 0x0d, 0x1b, 0xb6, 0x9e, 0xc9,
- 0xd1, 0x99, 0x77, 0x3d, 0x7b, 0xf2, 0x38, 0x24, 0x4b, 0x50, 0xe9, 0x1f, 0xe8, 0xbe, 0x52, 0xca,
- 0xd4, 0x86, 0xa5, 0xb2, 0xcd, 0x0a, 0x1f, 0xb3, 0x49, 0x83, 0x2b, 0x73, 0xfc, 0x2f, 0x0a, 0x56,
- 0x36, 0x1d, 0xf7, 0xa8, 0xef, 0x47, 0x36, 0x81, 0x70, 0x3a, 0xde, 0x12, 0xc5, 0xa8, 0xe8, 0x24,
- 0x80, 0xaa, 0x30, 0x31, 0xcb, 0x95, 0x69, 0xfc, 0x40, 0xae, 0x8c, 0x03, 0x01, 0xd1, 0x43, 0x49,
- 0x6f, 0x85, 0x94, 0x45, 0x16, 0xa0, 0x1c, 0x44, 0xe1, 0xd9, 0x6a, 0x6b, 0x5e, 0xce, 0xd0, 0x4f,
- 0x39, 0x1f, 0xdb, 0xd8, 0xbb, 0x7b, 0xdc, 0xa8, 0x6e, 0x4a, 0xff, 0xb9, 0xe5, 0x3a, 0x5c, 0x21,
- 0x2b, 0x45, 0x1b, 0xfb, 0xfb, 0x43, 0x1c, 0x98, 0x51, 0x4b, 0xfb, 0xb7, 0x75, 0xb8, 0x92, 0x3d,
- 0x1e, 0x58, 0xbf, 0x1d, 0x51, 0xcf, 0x67, 0xd8, 0x85, 0x64, 0xbf, 0x3d, 0x10, 0xc5, 0xa8, 0xe8,
- 0x9f, 0xea, 0x80, 0xb3, 0xdf, 0x28, 0xc0, 0x55, 0x4f, 0xfa, 0x88, 0x9e, 0x45, 0xd0, 0xd9, 0xab,
- 0xc2, 0x9c, 0x31, 0x42, 0x20, 0x8e, 0x6e, 0x0b, 0xf9, 0x9b, 0x05, 0x98, 0xef, 0xa5, 0xec, 0x1c,
- 0x17, 0x78, 0x56, 0x92, 0x9f, 0x7f, 0xd8, 0x1a, 0x21, 0x0f, 0x47, 0xb6, 0x84, 0x7c, 0x1b, 0x9a,
- 0x7d, 0x36, 0x2e, 0xfc, 0x80, 0x3a, 0x86, 0x0a, 0x10, 0x1d, 0xff, 0x4b, 0xda, 0x8e, 0xb0, 0xc2,
- 0xb3, 0x52, 0x5c, 0x3f, 0x88, 0x11, 0x30, 0x2e, 0xf1, 0x39, 0x3f, 0x1c, 0x79, 0x13, 0xea, 0x3e,
- 0x0d, 0x02, 0xcb, 0xe9, 0x8a, 0xfd, 0x46, 0x43, 0x7c, 0x2b, 0x1d, 0x59, 0x86, 0x21, 0x95, 0xfc,
- 0x04, 0x34, 0xb8, 0xcb, 0x69, 0xd9, 0xeb, 0xfa, 0xf3, 0x0d, 0x1e, 0x2e, 0x36, 0x2d, 0x02, 0xe0,
- 0x64, 0x21, 0x46, 0x74, 0xf2, 0x25, 0x98, 0xda, 0xe3, 0x9f, 0xaf, 0x3c, 0x2f, 0x2f, 0x6c, 0x5c,
- 0x5c, 0x5b, 0x6b, 0xc7, 0xca, 0x31, 0xc1, 0x45, 0x96, 0x00, 0x68, 0xe8, 0x97, 0x4b, 0xdb, 0xb3,
- 0x22, 0x8f, 0x1d, 0xc6, 0xb8, 0xc8, 0xab, 0x50, 0x0a, 0x6c, 0x9f, 0xdb, 0xb0, 0xea, 0xd1, 0x16,
- 0x74, 0x67, 0xb3, 0x83, 0xac, 0x5c, 0xfb, 0xa3, 0x02, 0xcc, 0xa6, 0x8e, 0x11, 0xb1, 0x2a, 0x03,
- 0xcf, 0x96, 0xd3, 0x48, 0x58, 0x65, 0x17, 0x37, 0x91, 0x95, 0x93, 0xf7, 0xa5, 0x5a, 0x5e, 0xcc,
- 0x99, 0x1a, 0xe4, 0x9e, 0x1e, 0xf8, 0x4c, 0x0f, 0x1f, 0xd2, 0xc8, 0xb9, 0x9b, 0x2f, 0x6a, 0x8f,
- 0x5c, 0x07, 0x62, 0x6e, 0xbe, 0x88, 0x86, 0x09, 0xce, 0x94, 0xc1, 0xaf, 0x7c, 0x16, 0x83, 0x9f,
- 0xf6, 0xab, 0xc5, 0x58, 0x0f, 0x48, 0xcd, 0xfe, 0x29, 0x3d, 0xf0, 0x45, 0xb6, 0x80, 0x86, 0x8b,
- 0x7b, 0x23, 0xbe, 0xfe, 0xf1, 0xc5, 0x58, 0x52, 0xc9, 0x3b, 0xa2, 0xef, 0x4b, 0x39, 0x0f, 0x60,
- 0xef, 0x6c, 0x76, 0x44, 0x74, 0x95, 0x7a, 0x6b, 0xe1, 0x2b, 0x28, 0x5f, 0xd0, 0x2b, 0xd0, 0xfe,
- 0x45, 0x09, 0x9a, 0x77, 0xdc, 0xbd, 0x4f, 0x49, 0x04, 0x75, 0xf6, 0x32, 0x55, 0xfc, 0x04, 0x97,
- 0xa9, 0x5d, 0x78, 0x39, 0x08, 0xec, 0x0e, 0x35, 0x5c, 0xc7, 0xf4, 0x97, 0xf7, 0x03, 0xea, 0xad,
- 0x59, 0x8e, 0xe5, 0x1f, 0x50, 0x53, 0xba, 0x93, 0x3e, 0x77, 0x7a, 0xd2, 0x7a, 0x79, 0x67, 0x67,
- 0x33, 0x8b, 0x05, 0x47, 0xd5, 0xe5, 0xd3, 0x86, 0x38, 0xf3, 0xc9, 0xcf, 0x44, 0xc9, 0x98, 0x1b,
- 0x31, 0x6d, 0xc4, 0xca, 0x31, 0xc1, 0xa5, 0x7d, 0xb7, 0x08, 0x8d, 0x30, 0xe9, 0x03, 0xf9, 0x02,
- 0xd4, 0xf6, 0x3c, 0xf7, 0x90, 0x7a, 0xc2, 0x73, 0x27, 0xcf, 0x44, 0xb5, 0x45, 0x11, 0x2a, 0x1a,
- 0xf9, 0x3c, 0x54, 0x02, 0xb7, 0x6f, 0x19, 0x69, 0x83, 0xda, 0x0e, 0x2b, 0x44, 0x41, 0xbb, 0xb8,
- 0x01, 0xfe, 0xc5, 0x84, 0x6a, 0xd7, 0x18, 0xa9, 0x8c, 0xbd, 0x07, 0x65, 0x5f, 0xf7, 0x6d, 0xb9,
- 0x9e, 0xe6, 0xc8, 0x9f, 0xb0, 0xdc, 0xd9, 0x94, 0xf9, 0x13, 0x96, 0x3b, 0x9b, 0xc8, 0x41, 0xb5,
- 0x3f, 0x28, 0x42, 0x53, 0xf4, 0x9b, 0x98, 0x15, 0x26, 0xd9, 0x73, 0x6f, 0xf1, 0x50, 0x0a, 0x7f,
- 0xd0, 0xa3, 0x1e, 0x37, 0x33, 0xc9, 0x49, 0x2e, 0xee, 0x1f, 0x88, 0x88, 0x61, 0x38, 0x45, 0x54,
- 0xa4, 0xba, 0xbe, 0x7c, 0x81, 0x5d, 0x5f, 0x39, 0x53, 0xd7, 0x57, 0x2f, 0xa2, 0xeb, 0x3f, 0x2e,
- 0x42, 0x63, 0xd3, 0xda, 0xa7, 0xc6, 0xb1, 0x61, 0xf3, 0xd3, 0x9f, 0x26, 0xb5, 0x69, 0x40, 0xd7,
- 0x3d, 0xdd, 0xa0, 0xdb, 0xd4, 0xb3, 0x78, 0x52, 0x24, 0xf6, 0x7d, 0xf0, 0x19, 0x48, 0x9e, 0xfe,
- 0x5c, 0x1d, 0xc1, 0x83, 0x23, 0x6b, 0x93, 0x0d, 0x98, 0x32, 0xa9, 0x6f, 0x79, 0xd4, 0xdc, 0x8e,
- 0x6d, 0x54, 0xbe, 0xa0, 0x96, 0x9a, 0xd5, 0x18, 0xed, 0xf1, 0x49, 0x6b, 0x5a, 0x19, 0x28, 0xc5,
- 0x8e, 0x25, 0x51, 0x95, 0x7d, 0xf2, 0x7d, 0x7d, 0xe0, 0x67, 0xb5, 0x31, 0xf6, 0xc9, 0x6f, 0x67,
- 0xb3, 0xe0, 0xa8, 0xba, 0x5a, 0x05, 0x4a, 0x9b, 0x6e, 0x57, 0xfb, 0x4e, 0x09, 0xc2, 0xec, 0x59,
- 0xe4, 0xcf, 0x15, 0xa0, 0xa9, 0x3b, 0x8e, 0x1b, 0xc8, 0xcc, 0x54, 0xc2, 0x03, 0x8f, 0xb9, 0x93,
- 0x74, 0x2d, 0x2c, 0x47, 0xa0, 0xc2, 0x79, 0x1b, 0x3a, 0x94, 0x63, 0x14, 0x8c, 0xcb, 0x26, 0x83,
- 0x94, 0x3f, 0x79, 0x2b, 0x7f, 0x2b, 0xce, 0xe0, 0x3d, 0xbe, 0xf6, 0x35, 0x98, 0x4b, 0x37, 0xf6,
- 0x3c, 0xee, 0xa0, 0x5c, 0x8e, 0xf9, 0x22, 0x40, 0x14, 0x53, 0xf2, 0x0c, 0x8c, 0x58, 0x56, 0xc2,
- 0x88, 0x35, 0x7e, 0x0a, 0x83, 0xa8, 0xd1, 0x23, 0x0d, 0x57, 0xdf, 0x4a, 0x19, 0xae, 0x36, 0x26,
- 0x21, 0xec, 0xc9, 0xc6, 0xaa, 0xbf, 0x55, 0x80, 0xb9, 0x88, 0x59, 0x9e, 0x85, 0xfe, 0x32, 0x4c,
- 0x7b, 0x54, 0x37, 0xdb, 0x7a, 0x60, 0x1c, 0xf0, 0x50, 0xef, 0x02, 0x8f, 0xcd, 0xe6, 0xa7, 0xbf,
- 0x30, 0x4e, 0xc0, 0x24, 0x1f, 0xd1, 0xa1, 0xc9, 0x0a, 0x76, 0xac, 0x1e, 0x75, 0x07, 0xc1, 0x98,
- 0x56, 0x53, 0xbe, 0x61, 0xc1, 0x08, 0x06, 0xe3, 0x98, 0xda, 0x0f, 0x0a, 0x30, 0x13, 0x6f, 0xf0,
- 0x85, 0x5b, 0xd4, 0x0e, 0x92, 0x16, 0xb5, 0x95, 0x09, 0xbc, 0x93, 0x11, 0x56, 0xb4, 0x8f, 0x20,
- 0xfe, 0x68, 0xdc, 0x72, 0x16, 0x37, 0x16, 0x14, 0x9e, 0x68, 0x2c, 0xf8, 0xf4, 0x27, 0x4c, 0x1a,
- 0xa5, 0xe5, 0x96, 0x9f, 0x63, 0x2d, 0xf7, 0x93, 0xcc, 0xba, 0x14, 0xcb, 0x1c, 0x54, 0xcd, 0x91,
- 0x39, 0xa8, 0x17, 0x66, 0x0e, 0xaa, 0x4d, 0x6c, 0xd2, 0x39, 0x4b, 0xf6, 0xa0, 0xfa, 0x33, 0xcd,
- 0x1e, 0xd4, 0xb8, 0xa8, 0xec, 0x41, 0x90, 0x37, 0x7b, 0xd0, 0x47, 0x05, 0x98, 0x31, 0x13, 0x27,
- 0x66, 0xe5, 0x19, 0xf3, 0xf1, 0x97, 0x9a, 0xe4, 0x01, 0x5c, 0x71, 0x64, 0x2a, 0x59, 0x86, 0x29,
- 0x91, 0x59, 0x39, 0x7b, 0xa6, 0x3e, 0x99, 0x9c, 0x3d, 0xbf, 0x5f, 0x8b, 0xaf, 0x48, 0xcf, 0xda,
- 0x68, 0xfe, 0x46, 0xd2, 0x68, 0x7e, 0x23, 0x6d, 0x34, 0x9f, 0x8d, 0xc5, 0xb3, 0xc6, 0x0d, 0xe7,
- 0x3f, 0x19, 0x9b, 0xa8, 0x4b, 0x3c, 0x5b, 0x4f, 0xf8, 0xce, 0x33, 0x26, 0xeb, 0x65, 0x98, 0x95,
- 0xda, 0xab, 0x22, 0xf2, 0x59, 0x6e, 0x3a, 0x0a, 0x73, 0x5a, 0x4d, 0x92, 0x31, 0xcd, 0xcf, 0x04,
- 0xfa, 0x2a, 0x69, 0xab, 0xd8, 0x2a, 0x44, 0x83, 0x4c, 0x25, 0x54, 0x0d, 0x39, 0xd8, 0xb6, 0xc2,
- 0xa3, 0xba, 0x2f, 0x4d, 0xdf, 0xb1, 0x6d, 0x05, 0xf2, 0x52, 0x94, 0xd4, 0xb8, 0xfd, 0xbf, 0xf6,
- 0x14, 0xfb, 0xbf, 0x0e, 0x4d, 0x5b, 0xf7, 0x03, 0xf1, 0x36, 0x4d, 0xf9, 0x39, 0xff, 0xb1, 0xb3,
- 0x2d, 0xbc, 0x6c, 0x31, 0x8f, 0xb4, 0xdb, 0xcd, 0x08, 0x06, 0xe3, 0x98, 0xc4, 0x84, 0x29, 0xf6,
- 0x97, 0x7f, 0xda, 0xe6, 0x72, 0x20, 0x53, 0x9b, 0x9d, 0x47, 0x46, 0x68, 0xb6, 0xda, 0x8c, 0xe1,
- 0x60, 0x02, 0x75, 0x84, 0x8b, 0x00, 0xc6, 0x71, 0x11, 0x90, 0x9f, 0x15, 0x9a, 0xd3, 0x71, 0xf8,
- 0x5a, 0x9b, 0xfc, 0xb5, 0x86, 0x21, 0x92, 0x18, 0x27, 0x62, 0x92, 0x97, 0x8d, 0x8a, 0x81, 0xec,
- 0x06, 0x55, 0x7d, 0x2a, 0x39, 0x2a, 0x76, 0x93, 0x64, 0x4c, 0xf3, 0x93, 0x6d, 0xb8, 0x1c, 0x16,
- 0xc5, 0x9b, 0x31, 0xcd, 0x71, 0xc2, 0x98, 0xb5, 0xdd, 0x0c, 0x1e, 0xcc, 0xac, 0xc9, 0x0f, 0x81,
- 0x0c, 0x3c, 0x8f, 0x3a, 0xc1, 0x6d, 0xdd, 0x3f, 0x90, 0xc1, 0x6f, 0xd1, 0x21, 0x90, 0x88, 0x84,
- 0x71, 0x3e, 0xb2, 0x04, 0x20, 0xe0, 0x78, 0xad, 0xd9, 0x64, 0x7c, 0xe9, 0x6e, 0x48, 0xc1, 0x18,
- 0x97, 0xf6, 0x51, 0x03, 0x9a, 0xf7, 0xf4, 0xc0, 0x3a, 0xa2, 0xdc, 0x9f, 0x77, 0x31, 0x4e, 0x95,
- 0xbf, 0x5a, 0x80, 0x2b, 0xc9, 0xa0, 0xcd, 0x0b, 0xf4, 0xac, 0xf0, 0x64, 0x3f, 0x98, 0x29, 0x0d,
- 0x47, 0xb4, 0x82, 0xfb, 0x58, 0x86, 0x62, 0x40, 0x2f, 0xda, 0xc7, 0xd2, 0x19, 0x25, 0x10, 0x47,
- 0xb7, 0xe5, 0xd3, 0xe2, 0x63, 0x79, 0xbe, 0xb3, 0x53, 0xa6, 0x3c, 0x40, 0xb5, 0xe7, 0xc6, 0x03,
- 0x54, 0x7f, 0x2e, 0xd4, 0xee, 0x7e, 0xcc, 0x03, 0xd4, 0xc8, 0x19, 0x89, 0x24, 0xcf, 0x39, 0x08,
- 0xb4, 0x51, 0x9e, 0x24, 0x9e, 0xa2, 0x40, 0x59, 0xe6, 0x99, 0xb6, 0xba, 0xa7, 0xfb, 0x96, 0x21,
- 0xd5, 0x8e, 0x1c, 0xd9, 0x78, 0x55, 0x96, 0x3e, 0x11, 0xb0, 0xc0, 0xff, 0xa2, 0xc0, 0x8e, 0x92,
- 0x12, 0x16, 0x73, 0x25, 0x25, 0x24, 0x2b, 0x50, 0x76, 0x0e, 0xe9, 0xf1, 0xf9, 0x0e, 0xfb, 0xf3,
- 0x5d, 0xd8, 0xbd, 0xbb, 0xf4, 0x18, 0x79, 0x65, 0xed, 0xbb, 0x45, 0x00, 0xf6, 0xf8, 0x67, 0xf3,
- 0xc5, 0xfc, 0x38, 0xd4, 0xfc, 0x01, 0xb7, 0x9a, 0x48, 0x85, 0x29, 0x0a, 0xdf, 0x12, 0xc5, 0xa8,
- 0xe8, 0xe4, 0xf3, 0x50, 0xf9, 0xd6, 0x80, 0x0e, 0x54, 0x60, 0x41, 0xa8, 0xb8, 0x7f, 0x9d, 0x15,
- 0xa2, 0xa0, 0x5d, 0x9c, 0x5d, 0x55, 0xf9, 0x6c, 0x2a, 0x17, 0xe5, 0xb3, 0x69, 0x40, 0xed, 0x9e,
- 0xcb, 0xa3, 0x41, 0xb5, 0xff, 0x56, 0x04, 0x88, 0xa2, 0xed, 0xc8, 0xaf, 0x17, 0xe0, 0xa5, 0xf0,
- 0x83, 0x0b, 0xc4, 0xfe, 0x8b, 0x27, 0xc0, 0xce, 0xed, 0xbf, 0xc9, 0xfa, 0xd8, 0xf9, 0x0c, 0xb4,
- 0x9d, 0x25, 0x0e, 0xb3, 0x5b, 0x41, 0x10, 0xea, 0xb4, 0xd7, 0x0f, 0x8e, 0x57, 0x2d, 0x4f, 0x8e,
- 0xc0, 0xcc, 0xa0, 0xce, 0x5b, 0x92, 0x47, 0x54, 0x95, 0x46, 0x02, 0xfe, 0x11, 0x29, 0x0a, 0x86,
- 0x38, 0xe4, 0x00, 0xea, 0x8e, 0xfb, 0xbe, 0xcf, 0xba, 0x43, 0x0e, 0xc7, 0xb7, 0xc7, 0xef, 0x72,
- 0xd1, 0xad, 0xc2, 0xde, 0x2f, 0xff, 0x60, 0xcd, 0x91, 0x9d, 0xfd, 0x6b, 0x45, 0xb8, 0x94, 0xd1,
- 0x0f, 0xe4, 0x6d, 0x98, 0x93, 0x81, 0x8d, 0x51, 0x26, 0xf8, 0x42, 0x94, 0x09, 0xbe, 0x93, 0xa2,
- 0xe1, 0x10, 0x37, 0x79, 0x1f, 0x40, 0x37, 0x0c, 0xea, 0xfb, 0x5b, 0xae, 0xa9, 0xf6, 0x03, 0x6f,
- 0x31, 0xf5, 0x65, 0x39, 0x2c, 0x7d, 0x7c, 0xd2, 0xfa, 0xa9, 0xac, 0x58, 0xe5, 0x54, 0x3f, 0x47,
- 0x15, 0x30, 0x06, 0x49, 0xbe, 0x09, 0x20, 0x36, 0xe1, 0x61, 0x3a, 0x85, 0xa7, 0x58, 0xae, 0x16,
- 0x54, 0xb6, 0xae, 0x85, 0xaf, 0x0f, 0x74, 0x27, 0xb0, 0x82, 0x63, 0x91, 0xbd, 0xe6, 0x41, 0x88,
- 0x82, 0x31, 0x44, 0xed, 0x9f, 0x16, 0xa1, 0xae, 0x6c, 0xe6, 0xcf, 0xc0, 0x50, 0xda, 0x4d, 0x18,
- 0x4a, 0x27, 0x14, 0x9d, 0x9c, 0x65, 0x26, 0x75, 0x53, 0x66, 0xd2, 0xf5, 0xfc, 0xa2, 0x9e, 0x6c,
- 0x24, 0xfd, 0xad, 0x22, 0xcc, 0x28, 0xd6, 0xbc, 0x26, 0xd2, 0xaf, 0xc2, 0xac, 0x88, 0x2a, 0xd8,
- 0xd2, 0x1f, 0x89, 0x44, 0x3e, 0xbc, 0xc3, 0xca, 0x22, 0x20, 0xb8, 0x9d, 0x24, 0x61, 0x9a, 0x97,
- 0x0d, 0x6b, 0x51, 0xb4, 0xcb, 0x36, 0x61, 0xc2, 0x0f, 0x29, 0xf6, 0x9b, 0x7c, 0x58, 0xb7, 0x53,
- 0x34, 0x1c, 0xe2, 0x4e, 0xdb, 0x68, 0xcb, 0x17, 0x60, 0xa3, 0xfd, 0xf7, 0x05, 0x98, 0x8a, 0xfa,
- 0xeb, 0xc2, 0x2d, 0xb4, 0xfb, 0x49, 0x0b, 0xed, 0x72, 0xee, 0xe1, 0x30, 0xc2, 0x3e, 0xfb, 0x17,
- 0x6b, 0x90, 0x08, 0x92, 0x27, 0x7b, 0x70, 0xcd, 0xca, 0x0c, 0xf5, 0x8b, 0xcd, 0x36, 0xe1, 0xa9,
- 0xef, 0x8d, 0x91, 0x9c, 0xf8, 0x04, 0x14, 0x32, 0x80, 0xfa, 0x11, 0xf5, 0x02, 0xcb, 0xa0, 0xea,
- 0xf9, 0xd6, 0x73, 0xab, 0x64, 0xd2, 0x0a, 0x1d, 0xf6, 0xe9, 0x03, 0x29, 0x00, 0x43, 0x51, 0x64,
- 0x0f, 0x2a, 0xd4, 0xec, 0x52, 0x95, 0x5a, 0x29, 0x67, 0x8a, 0xda, 0xb0, 0x3f, 0xd9, 0x3f, 0x1f,
- 0x05, 0x34, 0xf1, 0xa1, 0x61, 0x2b, 0x2f, 0xa3, 0x1c, 0x87, 0xe3, 0x2b, 0x58, 0xa1, 0xbf, 0x32,
- 0xca, 0xba, 0x10, 0x16, 0x61, 0x24, 0x87, 0x1c, 0x86, 0xe6, 0xce, 0xca, 0x84, 0x26, 0x8f, 0x27,
- 0x18, 0x3b, 0x7d, 0x68, 0x3c, 0xd4, 0x03, 0xea, 0xf5, 0x74, 0xef, 0x50, 0xee, 0x36, 0xc6, 0x7f,
- 0xc2, 0x77, 0x14, 0x52, 0xf4, 0x84, 0x61, 0x11, 0x46, 0x72, 0x88, 0x0b, 0x8d, 0x40, 0xaa, 0xcf,
- 0xca, 0xa6, 0x3b, 0xbe, 0x50, 0xa5, 0x88, 0xfb, 0x32, 0x58, 0x5e, 0xfd, 0xc5, 0x48, 0x06, 0x39,
- 0x4a, 0xe4, 0x33, 0x17, 0x59, 0xec, 0xdb, 0x39, 0x7c, 0x03, 0x12, 0x2a, 0x5a, 0x6e, 0xb2, 0xf3,
- 0xa2, 0x6b, 0xff, 0xb3, 0x12, 0x4d, 0xcb, 0xcf, 0xda, 0x4e, 0xf8, 0xa5, 0xa4, 0x9d, 0xf0, 0x7a,
- 0xda, 0x4e, 0x98, 0x72, 0x56, 0x9f, 0x3f, 0xbc, 0x36, 0x65, 0x5e, 0x2b, 0x5f, 0x80, 0x79, 0xed,
- 0x35, 0x68, 0x1e, 0xf1, 0x99, 0x40, 0xe4, 0x69, 0xaa, 0xf0, 0x65, 0x84, 0xcf, 0xec, 0x0f, 0xa2,
- 0x62, 0x8c, 0xf3, 0xb0, 0x2a, 0xf2, 0x06, 0x97, 0x30, 0xa5, 0xb1, 0xac, 0xd2, 0x89, 0x8a, 0x31,
- 0xce, 0xc3, 0x23, 0xf3, 0x2c, 0xe7, 0x50, 0x54, 0xa8, 0xf1, 0x0a, 0x22, 0x32, 0x4f, 0x15, 0x62,
- 0x44, 0x27, 0x37, 0xa1, 0x3e, 0x30, 0xf7, 0x05, 0x6f, 0x9d, 0xf3, 0x72, 0x0d, 0x73, 0x77, 0x75,
- 0x4d, 0xe6, 0x8d, 0x52, 0x54, 0xd6, 0x92, 0x9e, 0xde, 0x57, 0x04, 0xbe, 0x37, 0x94, 0x2d, 0xd9,
- 0x8a, 0x8a, 0x31, 0xce, 0x43, 0x7e, 0x06, 0x66, 0x3c, 0x6a, 0x0e, 0x0c, 0x1a, 0xd6, 0x02, 0x5e,
- 0x4b, 0x26, 0xd4, 0x8c, 0x53, 0x30, 0xc5, 0x39, 0xc2, 0x48, 0xd8, 0x1c, 0xcb, 0x48, 0xf8, 0x35,
- 0x98, 0x31, 0x3d, 0xdd, 0x72, 0xa8, 0x79, 0xdf, 0xe1, 0x11, 0x09, 0x32, 0x3e, 0x30, 0xb4, 0x90,
- 0xaf, 0x26, 0xa8, 0x98, 0xe2, 0xd6, 0xfe, 0x65, 0x11, 0x2a, 0x22, 0xcd, 0xe7, 0x06, 0x5c, 0xb2,
- 0x1c, 0x2b, 0xb0, 0x74, 0x7b, 0x95, 0xda, 0xfa, 0x71, 0x32, 0x2a, 0xe3, 0x65, 0xb6, 0xd1, 0xde,
- 0x18, 0x26, 0x63, 0x56, 0x1d, 0xd6, 0x39, 0x81, 0x58, 0xbe, 0x15, 0x8a, 0xb0, 0xa3, 0x89, 0xdc,
- 0xd0, 0x09, 0x0a, 0xa6, 0x38, 0x99, 0x32, 0xd4, 0xcf, 0x08, 0xb9, 0xe0, 0xca, 0x50, 0x32, 0xd0,
- 0x22, 0xc9, 0xc7, 0x95, 0xf4, 0x01, 0x57, 0x88, 0xc3, 0x53, 0x38, 0x32, 0xaa, 0x4a, 0x28, 0xe9,
- 0x29, 0x1a, 0x0e, 0x71, 0x33, 0x84, 0x7d, 0xdd, 0xb2, 0x07, 0x1e, 0x8d, 0x10, 0x2a, 0x11, 0xc2,
- 0x5a, 0x8a, 0x86, 0x43, 0xdc, 0xda, 0x7f, 0x2f, 0x00, 0x19, 0x3e, 0x57, 0x40, 0x0e, 0xa0, 0xea,
- 0x70, 0x5b, 0x64, 0xee, 0x94, 0xf4, 0x31, 0x93, 0xa6, 0x58, 0x24, 0x64, 0x81, 0xc4, 0x27, 0x0e,
- 0xd4, 0xe9, 0xa3, 0x80, 0x7a, 0x4e, 0x78, 0xce, 0x68, 0x32, 0xe9, 0xef, 0xc5, 0xde, 0x4c, 0x22,
- 0x63, 0x28, 0x43, 0xfb, 0xbd, 0x22, 0x34, 0x63, 0x7c, 0x4f, 0xdb, 0xe2, 0xf3, 0x54, 0x07, 0xc2,
- 0x04, 0xb8, 0xeb, 0xd9, 0x72, 0xbe, 0x8b, 0xa5, 0x3a, 0x90, 0x24, 0xdc, 0xc4, 0x38, 0x1f, 0x59,
- 0x02, 0xe8, 0xe9, 0x7e, 0x40, 0x3d, 0xae, 0x0b, 0xa5, 0x12, 0x0c, 0x6c, 0x85, 0x14, 0x8c, 0x71,
- 0x91, 0x1b, 0xf2, 0x02, 0x83, 0x72, 0x32, 0x21, 0xe4, 0x88, 0xdb, 0x09, 0x2a, 0x13, 0xb8, 0x9d,
- 0x80, 0x74, 0x61, 0x4e, 0xb5, 0x5a, 0x51, 0xcf, 0x97, 0x2e, 0x50, 0x0c, 0xd4, 0x14, 0x04, 0x0e,
- 0x81, 0x6a, 0xdf, 0x2d, 0xc0, 0x74, 0xc2, 0x00, 0x25, 0x52, 0x39, 0xaa, 0x53, 0x31, 0x89, 0x54,
- 0x8e, 0xb1, 0xc3, 0x2c, 0x5f, 0x84, 0xaa, 0xe8, 0xa0, 0x74, 0xb0, 0xab, 0xe8, 0x42, 0x94, 0x54,
- 0xb6, 0xb2, 0x48, 0x13, 0x77, 0x7a, 0x65, 0x91, 0x36, 0x70, 0x54, 0x74, 0xe1, 0x39, 0x12, 0xad,
- 0x93, 0x3d, 0x1d, 0xf3, 0x1c, 0x89, 0x72, 0x0c, 0x39, 0xb4, 0x7f, 0xc8, 0xdb, 0x1d, 0x78, 0xc7,
- 0xe1, 0xce, 0xba, 0x0b, 0x35, 0x19, 0xe0, 0x28, 0x3f, 0x8d, 0xb7, 0x73, 0x58, 0xc5, 0x38, 0x8e,
- 0x0c, 0xe5, 0xd3, 0x8d, 0xc3, 0xfb, 0xfb, 0xfb, 0xa8, 0xd0, 0xc9, 0x2d, 0x68, 0xb8, 0x8e, 0xfc,
- 0x82, 0xe5, 0xe3, 0xff, 0x18, 0x5b, 0x39, 0xee, 0xab, 0xc2, 0xc7, 0x27, 0xad, 0x2b, 0xe1, 0x9f,
- 0x44, 0x23, 0x31, 0xaa, 0xa9, 0xfd, 0xd9, 0x02, 0xbc, 0x84, 0xae, 0x6d, 0x5b, 0x4e, 0x37, 0xe9,
- 0x7a, 0x24, 0x36, 0xcc, 0xf4, 0xf4, 0x47, 0xbb, 0x8e, 0x7e, 0xa4, 0x5b, 0xb6, 0xbe, 0x67, 0xd3,
- 0xa7, 0xee, 0x8c, 0x07, 0x81, 0x65, 0x2f, 0x88, 0x0b, 0x1d, 0x17, 0x36, 0x9c, 0xe0, 0xbe, 0xd7,
- 0x09, 0x3c, 0xcb, 0xe9, 0x8a, 0x59, 0x72, 0x2b, 0x81, 0x85, 0x29, 0x6c, 0xed, 0xf7, 0x4b, 0xc0,
- 0x83, 0xec, 0xc8, 0x97, 0xa1, 0xd1, 0xa3, 0xc6, 0x81, 0xee, 0x58, 0xbe, 0x4a, 0x8a, 0x7b, 0x95,
- 0x3d, 0xd7, 0x96, 0x2a, 0x7c, 0xcc, 0x5e, 0xc5, 0x72, 0x67, 0x93, 0x9f, 0x63, 0x89, 0x78, 0x89,
- 0x01, 0xd5, 0xae, 0xef, 0xeb, 0x7d, 0x2b, 0x77, 0x8c, 0x87, 0x48, 0x42, 0x2a, 0xa6, 0x23, 0xf1,
- 0x1b, 0x25, 0x34, 0x31, 0xa0, 0xd2, 0xb7, 0x75, 0xcb, 0xc9, 0x7d, 0x01, 0x19, 0x7b, 0x82, 0x6d,
- 0x86, 0x24, 0x4c, 0x95, 0xfc, 0x27, 0x0a, 0x6c, 0x32, 0x80, 0xa6, 0x6f, 0x78, 0x7a, 0xcf, 0x3f,
- 0xd0, 0x97, 0x5e, 0x7f, 0x23, 0xb7, 0xf2, 0x1f, 0x89, 0x12, 0xba, 0xc8, 0x0a, 0x2e, 0x6f, 0x75,
- 0x6e, 0x2f, 0x2f, 0xbd, 0xfe, 0x06, 0xc6, 0xe5, 0xc4, 0xc5, 0xbe, 0xfe, 0xda, 0x92, 0x9c, 0x41,
- 0x26, 0x2e, 0xf6, 0xf5, 0xd7, 0x96, 0x30, 0x2e, 0x47, 0xfb, 0x5f, 0x05, 0x68, 0x84, 0xbc, 0x64,
- 0x17, 0x80, 0xcd, 0x65, 0x32, 0x6d, 0xe8, 0xb9, 0x2e, 0x6b, 0xe1, 0xd6, 0x9e, 0xdd, 0xb0, 0x32,
- 0xc6, 0x80, 0x32, 0xf2, 0xaa, 0x16, 0x27, 0x9d, 0x57, 0x75, 0x11, 0x1a, 0x07, 0xba, 0x63, 0xfa,
- 0x07, 0xfa, 0xa1, 0x98, 0xd2, 0x63, 0x99, 0x86, 0x6f, 0x2b, 0x02, 0x46, 0x3c, 0xda, 0x3f, 0xae,
- 0x82, 0x08, 0xcc, 0x60, 0x93, 0x8e, 0x69, 0xf9, 0xe2, 0x64, 0x40, 0x81, 0xd7, 0x0c, 0x27, 0x9d,
- 0x55, 0x59, 0x8e, 0x21, 0x07, 0xb9, 0x0a, 0xa5, 0x9e, 0xe5, 0x48, 0x0d, 0x84, 0x1b, 0x72, 0xb7,
- 0x2c, 0x07, 0x59, 0x19, 0x27, 0xe9, 0x8f, 0xa4, 0x86, 0x21, 0x48, 0xfa, 0x23, 0x64, 0x65, 0xe4,
- 0xab, 0x30, 0x6b, 0xbb, 0xee, 0x21, 0x9b, 0x3e, 0x94, 0x22, 0x22, 0xbc, 0xea, 0xdc, 0xb4, 0xb2,
- 0x99, 0x24, 0x61, 0x9a, 0x97, 0xec, 0xc2, 0xcb, 0x1f, 0x52, 0xcf, 0x95, 0xf3, 0x65, 0xc7, 0xa6,
- 0xb4, 0xaf, 0x60, 0x84, 0x6a, 0xcc, 0x43, 0x48, 0x7f, 0x3e, 0x9b, 0x05, 0x47, 0xd5, 0xe5, 0xc1,
- 0xe8, 0xba, 0xd7, 0xa5, 0xc1, 0xb6, 0xe7, 0x32, 0xdd, 0xc5, 0x72, 0xba, 0x0a, 0xb6, 0x1a, 0xc1,
- 0xee, 0x64, 0xb3, 0xe0, 0xa8, 0xba, 0xe4, 0x5d, 0x98, 0x17, 0x24, 0xa1, 0xb6, 0x2c, 0x8b, 0x69,
- 0xc6, 0xb2, 0xd5, 0xbd, 0x9d, 0xd3, 0xc2, 0x5f, 0xb6, 0x33, 0x82, 0x07, 0x47, 0xd6, 0x26, 0x77,
- 0x60, 0x4e, 0x79, 0x4b, 0xb7, 0xa9, 0xd7, 0x09, 0x83, 0x75, 0xa6, 0xdb, 0xd7, 0x4f, 0x4f, 0x5a,
- 0xd7, 0x56, 0x69, 0xdf, 0xa3, 0x46, 0xdc, 0xeb, 0xac, 0xb8, 0x70, 0xa8, 0x1e, 0x41, 0xb8, 0xc2,
- 0x23, 0x72, 0x76, 0xfb, 0x2b, 0xae, 0x6b, 0x9b, 0xee, 0x43, 0x47, 0x3d, 0xbb, 0x50, 0xd8, 0xb9,
- 0x83, 0xb4, 0x93, 0xc9, 0x81, 0x23, 0x6a, 0xb2, 0x27, 0xe7, 0x94, 0x55, 0xf7, 0xa1, 0x93, 0x46,
- 0x85, 0xe8, 0xc9, 0x3b, 0x23, 0x78, 0x70, 0x64, 0x6d, 0xb2, 0x06, 0x24, 0xfd, 0x04, 0xbb, 0x7d,
- 0xe9, 0xc2, 0xbf, 0x22, 0x32, 0x00, 0xa5, 0xa9, 0x98, 0x51, 0x83, 0x6c, 0xc2, 0xe5, 0x74, 0x29,
- 0x13, 0x27, 0xbd, 0xf9, 0x3c, 0xf7, 0x2f, 0x66, 0xd0, 0x31, 0xb3, 0x96, 0xf6, 0x4f, 0x8a, 0x30,
- 0x9d, 0x48, 0x19, 0xf1, 0xdc, 0x1d, 0xcd, 0x67, 0x9b, 0x87, 0x9e, 0xdf, 0xdd, 0x58, 0xbd, 0x4d,
- 0x75, 0x93, 0x7a, 0x77, 0xa9, 0x4a, 0xef, 0x21, 0x96, 0xc5, 0x04, 0x05, 0x53, 0x9c, 0x64, 0x1f,
- 0x2a, 0xc2, 0x4f, 0x90, 0xf7, 0xda, 0x1f, 0xd5, 0x47, 0xdc, 0x59, 0x20, 0xef, 0xca, 0x72, 0x3d,
- 0x8a, 0x02, 0x5e, 0x0b, 0x60, 0x2a, 0xce, 0xc1, 0x26, 0x92, 0x48, 0xed, 0xad, 0x25, 0x54, 0xde,
- 0x0d, 0x28, 0x05, 0xc1, 0xb8, 0x87, 0xfe, 0x85, 0xdf, 0x69, 0x67, 0x13, 0x19, 0x86, 0xb6, 0xcf,
- 0xde, 0x9d, 0xef, 0x5b, 0xae, 0x23, 0x33, 0xc0, 0xef, 0x42, 0x4d, 0xee, 0x9e, 0xc6, 0x4c, 0x5a,
- 0xc0, 0x75, 0x25, 0x65, 0x76, 0x55, 0x58, 0xda, 0x7f, 0x28, 0x42, 0x23, 0x34, 0x93, 0x9c, 0x21,
- 0xb3, 0xba, 0x0b, 0x8d, 0x30, 0xa2, 0x30, 0xf7, 0x9d, 0xa6, 0x51, 0xa0, 0x1b, 0xdf, 0xd9, 0x87,
- 0x7f, 0x31, 0x92, 0x11, 0x8f, 0x56, 0x2c, 0xe5, 0x88, 0x56, 0xec, 0x43, 0x2d, 0xf0, 0xac, 0x6e,
- 0x57, 0xee, 0x12, 0xf2, 0x84, 0x2b, 0x86, 0xdd, 0xb5, 0x23, 0x00, 0x65, 0xcf, 0x8a, 0x3f, 0xa8,
- 0xc4, 0x68, 0x1f, 0xc0, 0x5c, 0x9a, 0x93, 0xab, 0xd0, 0xc6, 0x01, 0x35, 0x07, 0xb6, 0xea, 0xe3,
- 0x48, 0x85, 0x96, 0xe5, 0x18, 0x72, 0x90, 0x9b, 0x50, 0x67, 0xaf, 0xe9, 0x43, 0xd7, 0x51, 0x6a,
- 0x2c, 0xdf, 0x8d, 0xec, 0xc8, 0x32, 0x0c, 0xa9, 0xda, 0x7f, 0x2d, 0xc1, 0xd5, 0xc8, 0xd8, 0xb5,
- 0xa5, 0x3b, 0x7a, 0xf7, 0x0c, 0x17, 0x59, 0x7e, 0x76, 0x0c, 0xec, 0xbc, 0xd7, 0x63, 0x94, 0x9e,
- 0x83, 0xeb, 0x31, 0xfe, 0x4f, 0x11, 0x78, 0xf4, 0x33, 0xf9, 0x36, 0x4c, 0xe9, 0xb1, 0x3b, 0x8c,
- 0xe5, 0xeb, 0xbc, 0x95, 0xfb, 0x75, 0xf2, 0x20, 0xeb, 0x30, 0x00, 0x2e, 0x5e, 0x8a, 0x09, 0x81,
- 0xc4, 0x85, 0xfa, 0xbe, 0x6e, 0xdb, 0x4c, 0x17, 0xca, 0xed, 0xbc, 0x4b, 0x08, 0xe7, 0xc3, 0x7c,
- 0x4d, 0x42, 0x63, 0x28, 0x84, 0x7c, 0x54, 0x80, 0x69, 0x2f, 0xbe, 0x5d, 0x93, 0x2f, 0x24, 0x4f,
- 0x68, 0x47, 0x0c, 0x2d, 0x1e, 0x6e, 0x17, 0xdf, 0x13, 0x26, 0x65, 0x6a, 0xff, 0xa5, 0x00, 0xd3,
- 0x1d, 0xdb, 0x32, 0x2d, 0xa7, 0x7b, 0x81, 0xb7, 0x73, 0xdc, 0x87, 0x8a, 0x6f, 0x5b, 0x26, 0x1d,
- 0x73, 0x35, 0x11, 0xeb, 0x18, 0x03, 0x40, 0x81, 0x93, 0xbc, 0xee, 0xa3, 0x74, 0x86, 0xeb, 0x3e,
- 0xfe, 0xb0, 0x0a, 0x32, 0x8e, 0x9f, 0x0c, 0xa0, 0xd1, 0x55, 0xb7, 0x08, 0xc8, 0x67, 0xbc, 0x9d,
- 0x23, 0x03, 0x65, 0xe2, 0x3e, 0x02, 0x31, 0xf7, 0x87, 0x85, 0x18, 0x49, 0x22, 0x34, 0x79, 0x79,
- 0xf6, 0x6a, 0xce, 0xcb, 0xb3, 0x85, 0xb8, 0xe1, 0xeb, 0xb3, 0x75, 0x28, 0x1f, 0x04, 0x41, 0x5f,
- 0x0e, 0xa6, 0xf1, 0x0f, 0x6a, 0x44, 0x49, 0x90, 0x84, 0x4e, 0xc4, 0xfe, 0x23, 0x87, 0x66, 0x22,
- 0x1c, 0x3d, 0xbc, 0xa2, 0x70, 0x25, 0x57, 0x18, 0x49, 0x5c, 0x04, 0xfb, 0x8f, 0x1c, 0x9a, 0xfc,
- 0x22, 0x34, 0x03, 0x4f, 0x77, 0xfc, 0x7d, 0xd7, 0xeb, 0x51, 0x4f, 0xee, 0x51, 0xd7, 0x72, 0xdc,
- 0x1f, 0xbd, 0x13, 0xa1, 0x09, 0x93, 0x6c, 0xa2, 0x08, 0xe3, 0xd2, 0xc8, 0x21, 0xd4, 0x07, 0xa6,
- 0x68, 0x98, 0x34, 0x83, 0x2d, 0xe7, 0xb9, 0x12, 0x3c, 0x16, 0x24, 0xa2, 0xfe, 0x61, 0x28, 0x20,
- 0x79, 0x1b, 0x67, 0x6d, 0x52, 0xb7, 0x71, 0xc6, 0x47, 0x63, 0x56, 0x86, 0x16, 0xd2, 0x93, 0x7a,
- 0xad, 0xd3, 0x95, 0x31, 0x6e, 0x6b, 0xb9, 0x55, 0x4e, 0x21, 0xb2, 0x19, 0xea, 0xc6, 0x4e, 0x17,
- 0x95, 0x0c, 0xad, 0x07, 0xd2, 0x77, 0x44, 0x8c, 0xc4, 0x4d, 0x46, 0xe2, 0xd8, 0xe0, 0xe2, 0xd9,
- 0xe6, 0x83, 0xf0, 0x4a, 0x9d, 0x58, 0x26, 0xf5, 0xcc, 0x2b, 0x8b, 0xb4, 0xff, 0x58, 0x84, 0xd2,
- 0xce, 0x66, 0x47, 0x64, 0x47, 0xe5, 0x77, 0xa3, 0xd1, 0xce, 0xa1, 0xd5, 0x7f, 0x40, 0x3d, 0x6b,
- 0xff, 0x58, 0x6e, 0xbd, 0x63, 0xd9, 0x51, 0xd3, 0x1c, 0x98, 0x51, 0x8b, 0xbc, 0x07, 0x53, 0x86,
- 0xbe, 0x42, 0xbd, 0x60, 0x1c, 0xc3, 0x02, 0x3f, 0x1f, 0xbd, 0xb2, 0x1c, 0x55, 0xc7, 0x04, 0x18,
- 0xd9, 0x05, 0x30, 0x22, 0xe8, 0xd2, 0xb9, 0xcd, 0x21, 0x31, 0xe0, 0x18, 0x10, 0x41, 0x68, 0x1c,
- 0x32, 0x56, 0x8e, 0x5a, 0x3e, 0x0f, 0x2a, 0x1f, 0x39, 0x77, 0x55, 0x5d, 0x8c, 0x60, 0x34, 0x07,
- 0xa6, 0x13, 0xd7, 0x1b, 0x91, 0xaf, 0x40, 0xdd, 0xed, 0xc7, 0xa6, 0xd3, 0x06, 0x8f, 0xa6, 0xad,
- 0xdf, 0x97, 0x65, 0x8f, 0x4f, 0x5a, 0xd3, 0x9b, 0x6e, 0xd7, 0x32, 0x54, 0x01, 0x86, 0xec, 0x44,
- 0x83, 0x2a, 0x3f, 0xd4, 0xa8, 0x2e, 0x37, 0xe2, 0x6b, 0x07, 0xbf, 0x7f, 0xc4, 0x47, 0x49, 0xd1,
- 0x7e, 0xa9, 0x0c, 0x91, 0xc7, 0x95, 0xf8, 0x50, 0x15, 0x87, 0x36, 0xe4, 0xcc, 0x7d, 0xa1, 0xe7,
- 0x43, 0xa4, 0x28, 0xd2, 0x85, 0xd2, 0x07, 0xee, 0x5e, 0xee, 0x89, 0x3b, 0x96, 0xcd, 0x40, 0xd8,
- 0xca, 0x62, 0x05, 0xc8, 0x24, 0x90, 0xbf, 0x56, 0x80, 0x17, 0xfd, 0xb4, 0xea, 0x2b, 0x87, 0x03,
- 0xe6, 0xd7, 0xf1, 0xd3, 0xca, 0xb4, 0x0c, 0x7b, 0x1e, 0x45, 0xc6, 0xe1, 0xb6, 0xb0, 0xfe, 0x17,
- 0xae, 0x50, 0x39, 0x9c, 0xd6, 0x73, 0x5e, 0xbe, 0x9a, 0xec, 0xff, 0x64, 0x19, 0x4a, 0x51, 0xda,
- 0xaf, 0x14, 0xa1, 0x19, 0x9b, 0xad, 0x73, 0xdf, 0x99, 0xf5, 0x28, 0x75, 0x67, 0xd6, 0xf6, 0xf8,
- 0x91, 0x01, 0x51, 0xab, 0x2e, 0xfa, 0xda, 0xac, 0x7f, 0x5e, 0x84, 0xd2, 0xee, 0xea, 0x5a, 0x72,
- 0xd3, 0x5a, 0x78, 0x06, 0x9b, 0xd6, 0x03, 0xa8, 0xed, 0x0d, 0x2c, 0x3b, 0xb0, 0x9c, 0xdc, 0xf9,
- 0x56, 0xd4, 0x15, 0x63, 0xd2, 0xd7, 0x21, 0x50, 0x51, 0xc1, 0x93, 0x2e, 0xd4, 0xba, 0x22, 0xe1,
- 0x65, 0xee, 0x78, 0x49, 0x99, 0x38, 0x53, 0x08, 0x92, 0x7f, 0x50, 0xa1, 0x6b, 0xc7, 0x50, 0xdd,
- 0x5d, 0x95, 0x6a, 0xff, 0xb3, 0xed, 0x4d, 0xed, 0x17, 0x21, 0xd4, 0x02, 0x9e, 0xbd, 0xf0, 0xdf,
- 0x29, 0x40, 0x52, 0xf1, 0x79, 0xf6, 0xa3, 0xe9, 0x30, 0x3d, 0x9a, 0x56, 0x27, 0xf1, 0xf1, 0x65,
- 0x0f, 0x28, 0xed, 0xdf, 0x15, 0x20, 0x75, 0xd2, 0x8e, 0xbc, 0x21, 0x73, 0xa7, 0x25, 0x03, 0xd3,
- 0x54, 0xee, 0x34, 0x92, 0xe4, 0x8e, 0xe5, 0x50, 0xfb, 0x98, 0x6d, 0xd7, 0xe2, 0x0e, 0x34, 0xd9,
- 0xfc, 0x7b, 0xe3, 0x6f, 0xd7, 0xb2, 0xdc, 0x71, 0x32, 0x78, 0x32, 0x4e, 0xc2, 0xa4, 0x5c, 0xed,
- 0x1f, 0x15, 0xa1, 0xfa, 0xcc, 0x0e, 0xfe, 0xd3, 0x44, 0x3c, 0xeb, 0x4a, 0xce, 0xd9, 0x7e, 0x64,
- 0x34, 0x6b, 0x2f, 0x15, 0xcd, 0x9a, 0xf7, 0x4e, 0xef, 0xa7, 0xc4, 0xb2, 0xfe, 0x9b, 0x02, 0xc8,
- 0xb5, 0x66, 0xc3, 0xf1, 0x03, 0xdd, 0x31, 0x28, 0x31, 0xc2, 0x85, 0x2d, 0x6f, 0xd0, 0x94, 0x0c,
- 0x2c, 0x14, 0xba, 0x0c, 0xff, 0xad, 0x16, 0x32, 0xf2, 0x93, 0x50, 0x3f, 0x70, 0xfd, 0x80, 0x2f,
- 0x5e, 0xc5, 0xa4, 0xc9, 0xec, 0xb6, 0x2c, 0xc7, 0x90, 0x23, 0xed, 0xce, 0xae, 0x8c, 0x76, 0x67,
- 0x6b, 0xbf, 0x59, 0x84, 0xa9, 0x4f, 0x4b, 0xf6, 0x82, 0xac, 0xe8, 0xdf, 0x52, 0xce, 0xe8, 0xdf,
- 0xf2, 0x79, 0xa2, 0x7f, 0xb5, 0xef, 0x17, 0x00, 0x9e, 0x59, 0xea, 0x04, 0x33, 0x19, 0x98, 0x9b,
- 0x7b, 0x5c, 0x65, 0x87, 0xe5, 0xfe, 0xfd, 0x8a, 0x7a, 0x24, 0x1e, 0x94, 0xfb, 0x71, 0x01, 0x66,
- 0xf4, 0x44, 0xa0, 0x6b, 0x6e, 0x7d, 0x39, 0x15, 0x37, 0x1b, 0xc6, 0x69, 0x25, 0xcb, 0x31, 0x25,
- 0x96, 0xbc, 0x19, 0xa5, 0xed, 0xbe, 0x17, 0x0d, 0xfb, 0xa1, 0x7c, 0xdb, 0x5c, 0x77, 0x4b, 0x70,
- 0x3e, 0x25, 0xb0, 0xb8, 0x34, 0x91, 0xc0, 0xe2, 0xf8, 0x91, 0xc9, 0xf2, 0x13, 0x8f, 0x4c, 0x1e,
- 0x41, 0x63, 0xdf, 0x73, 0x7b, 0x3c, 0x76, 0x57, 0x5e, 0x8c, 0x7d, 0x2b, 0xc7, 0x42, 0xd9, 0xdb,
- 0xb3, 0x1c, 0x6a, 0xf2, 0xb8, 0xe0, 0xd0, 0x70, 0xb5, 0xa6, 0xf0, 0x31, 0x12, 0xc5, 0x6d, 0xfd,
- 0xae, 0x90, 0x5a, 0x9d, 0xa4, 0xd4, 0x70, 0x2e, 0xd9, 0x11, 0xe8, 0xa8, 0xc4, 0x24, 0xe3, 0x75,
- 0x6b, 0xcf, 0x26, 0x5e, 0x57, 0xfb, 0x0b, 0x35, 0x35, 0x81, 0x3d, 0x77, 0x19, 0x62, 0x3f, 0x3b,
- 0xe8, 0xde, 0xa5, 0x43, 0xa7, 0xd0, 0xeb, 0xcf, 0xf0, 0x14, 0x7a, 0x63, 0x32, 0xa7, 0xd0, 0x21,
- 0xdf, 0x29, 0xf4, 0xe6, 0x84, 0x4e, 0xa1, 0x4f, 0x4d, 0xea, 0x14, 0xfa, 0xf4, 0x58, 0xa7, 0xd0,
- 0x67, 0xce, 0x74, 0x0a, 0xfd, 0xa4, 0x04, 0xa9, 0xcd, 0xf8, 0x67, 0x8e, 0xb7, 0xff, 0xa7, 0x1c,
- 0x6f, 0xdf, 0x29, 0x42, 0x34, 0x11, 0x9f, 0x33, 0x30, 0xe9, 0x5d, 0xa8, 0xf7, 0xf4, 0x47, 0x3c,
- 0x70, 0x3a, 0xcf, 0xc5, 0xca, 0x5b, 0x12, 0x03, 0x43, 0x34, 0xe2, 0x03, 0x58, 0xe1, 0xe5, 0x06,
- 0xb9, 0x5d, 0x18, 0xd1, 0x3d, 0x09, 0xc2, 0x48, 0x1a, 0xfd, 0xc7, 0x98, 0x18, 0xed, 0x5f, 0x17,
- 0x41, 0xde, 0x82, 0x41, 0x28, 0x54, 0xf6, 0xad, 0x47, 0xd4, 0xcc, 0x1d, 0xee, 0x1c, 0xbb, 0xee,
- 0x5e, 0xf8, 0x68, 0x78, 0x01, 0x0a, 0x74, 0x6e, 0x7c, 0x17, 0x3e, 0x37, 0xd9, 0x7f, 0x39, 0x8c,
- 0xef, 0x71, 0xdf, 0x9d, 0x34, 0xbe, 0x8b, 0x22, 0x54, 0x32, 0x84, 0xad, 0x9f, 0x87, 0x5f, 0xe4,
- 0x76, 0x31, 0x26, 0xc2, 0x38, 0x94, 0xad, 0xdf, 0x17, 0x69, 0x28, 0xa4, 0x8c, 0xf6, 0x2f, 0x7c,
- 0xef, 0x87, 0xd7, 0x5f, 0xf8, 0xfe, 0x0f, 0xaf, 0xbf, 0xf0, 0x83, 0x1f, 0x5e, 0x7f, 0xe1, 0x97,
- 0x4e, 0xaf, 0x17, 0xbe, 0x77, 0x7a, 0xbd, 0xf0, 0xfd, 0xd3, 0xeb, 0x85, 0x1f, 0x9c, 0x5e, 0x2f,
- 0xfc, 0xa7, 0xd3, 0xeb, 0x85, 0xbf, 0xfc, 0x9f, 0xaf, 0xbf, 0xf0, 0xf3, 0x5f, 0x8e, 0x9a, 0xb0,
- 0xa8, 0x9a, 0xb0, 0xa8, 0x04, 0x2e, 0xf6, 0x0f, 0xbb, 0x8b, 0xac, 0x09, 0x51, 0x89, 0x6a, 0xc2,
- 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xea, 0x57, 0x1d, 0x48, 0x12, 0x9e, 0x00, 0x00,
+ 0xd5, 0x5b, 0x55, 0xcd, 0x19, 0xca, 0x31, 0xd6, 0xde, 0x4d, 0xa0, 0x0d, 0x92, 0x20, 0x81, 0x9f,
+ 0x0c, 0x04, 0x4e, 0x90, 0x20, 0x80, 0x1f, 0x0c, 0xe7, 0x21, 0xc8, 0xe6, 0x21, 0x40, 0x7e, 0x1c,
+ 0x04, 0xc9, 0xe6, 0x7f, 0x11, 0x04, 0x88, 0xf2, 0x42, 0x64, 0x19, 0xe4, 0x21, 0x01, 0x1c, 0x18,
+ 0x31, 0x12, 0x3b, 0x03, 0x23, 0x1b, 0xdc, 0xbf, 0xfa, 0xeb, 0xea, 0x19, 0xb2, 0xab, 0x39, 0x1a,
+ 0xc5, 0x7a, 0xeb, 0xbe, 0xe7, 0xdc, 0xef, 0xdc, 0xba, 0x75, 0xeb, 0xde, 0x73, 0xcf, 0x39, 0xf7,
+ 0x5c, 0x58, 0xef, 0x5a, 0xc1, 0xc1, 0x60, 0x6f, 0xc1, 0x70, 0x7b, 0x8b, 0xce, 0xa0, 0xa7, 0xf7,
+ 0x3d, 0xf7, 0x7d, 0xfe, 0x63, 0xdf, 0x76, 0x1f, 0x2c, 0xf6, 0x0f, 0xbb, 0x8b, 0x7a, 0xdf, 0xf2,
+ 0xa3, 0x92, 0xa3, 0x57, 0x74, 0xbb, 0x7f, 0xa0, 0xbf, 0xb2, 0xd8, 0xa5, 0x0e, 0xf5, 0xf4, 0x80,
+ 0x9a, 0x0b, 0x7d, 0xcf, 0x0d, 0x5c, 0xf2, 0xa5, 0x08, 0x68, 0x41, 0x01, 0x2d, 0xa8, 0x6a, 0x0b,
+ 0xfd, 0xc3, 0xee, 0x02, 0x03, 0x8a, 0x4a, 0x14, 0xd0, 0xb5, 0x9f, 0x8e, 0xb5, 0xa0, 0xeb, 0x76,
+ 0xdd, 0x45, 0x8e, 0xb7, 0x37, 0xd8, 0xe7, 0xff, 0xf8, 0x1f, 0xfe, 0x4b, 0xc8, 0xb9, 0xa6, 0x1d,
+ 0xbe, 0xee, 0x2f, 0x58, 0x2e, 0x6b, 0xd6, 0xa2, 0xe1, 0x7a, 0x74, 0xf1, 0x68, 0xa8, 0x2d, 0xd7,
+ 0xbe, 0x18, 0xf1, 0xf4, 0x74, 0xe3, 0xc0, 0x72, 0xa8, 0x77, 0xac, 0x9e, 0x65, 0xd1, 0xa3, 0xbe,
+ 0x3b, 0xf0, 0x0c, 0x7a, 0xae, 0x5a, 0xfe, 0x62, 0x8f, 0x06, 0x7a, 0x96, 0xac, 0xc5, 0x51, 0xb5,
+ 0xbc, 0x81, 0x13, 0x58, 0xbd, 0x61, 0x31, 0xaf, 0x3d, 0xa9, 0x82, 0x6f, 0x1c, 0xd0, 0x9e, 0x3e,
+ 0x54, 0xef, 0x67, 0x46, 0xd5, 0x1b, 0x04, 0x96, 0xbd, 0x68, 0x39, 0x81, 0x1f, 0x78, 0xe9, 0x4a,
+ 0xda, 0xef, 0x00, 0x5c, 0x5a, 0xde, 0xf3, 0x03, 0x4f, 0x37, 0x82, 0x6d, 0xd7, 0xdc, 0xa1, 0xbd,
+ 0xbe, 0xad, 0x07, 0x94, 0x1c, 0x42, 0x9d, 0x3d, 0x90, 0xa9, 0x07, 0xfa, 0x7c, 0xe1, 0x46, 0xe1,
+ 0x66, 0x73, 0x69, 0x79, 0x61, 0xcc, 0x17, 0xb8, 0xb0, 0x25, 0x81, 0xda, 0x53, 0xa7, 0x27, 0xad,
+ 0xba, 0xfa, 0x87, 0xa1, 0x00, 0xf2, 0xeb, 0x05, 0x98, 0x72, 0x5c, 0x93, 0x76, 0xa8, 0x4d, 0x8d,
+ 0xc0, 0xf5, 0xe6, 0x8b, 0x37, 0x4a, 0x37, 0x9b, 0x4b, 0xdf, 0x18, 0x5b, 0x62, 0xc6, 0x13, 0x2d,
+ 0xdc, 0x8d, 0x09, 0xb8, 0xe5, 0x04, 0xde, 0x71, 0xfb, 0xf2, 0xf7, 0x4f, 0x5a, 0xcf, 0x9d, 0x9e,
+ 0xb4, 0xa6, 0xe2, 0x24, 0x4c, 0xb4, 0x84, 0xec, 0x42, 0x33, 0x70, 0x6d, 0xd6, 0x65, 0x96, 0xeb,
+ 0xf8, 0xf3, 0x25, 0xde, 0xb0, 0xeb, 0x0b, 0xa2, 0xab, 0x99, 0xf8, 0x05, 0x36, 0xc6, 0x16, 0x8e,
+ 0x5e, 0x59, 0xd8, 0x09, 0xd9, 0xda, 0x97, 0x24, 0x70, 0x33, 0x2a, 0xf3, 0x31, 0x8e, 0x43, 0x28,
+ 0xcc, 0xfa, 0xd4, 0x18, 0x78, 0x56, 0x70, 0xbc, 0xe2, 0x3a, 0x01, 0x7d, 0x18, 0xcc, 0x97, 0x79,
+ 0x2f, 0x7f, 0x3e, 0x0b, 0x7a, 0xdb, 0x35, 0x3b, 0x49, 0xee, 0xf6, 0xa5, 0xd3, 0x93, 0xd6, 0x6c,
+ 0xaa, 0x10, 0xd3, 0x98, 0xc4, 0x81, 0x39, 0xab, 0xa7, 0x77, 0xe9, 0xf6, 0xc0, 0xb6, 0x3b, 0xd4,
+ 0xf0, 0x68, 0xe0, 0xcf, 0x57, 0xf8, 0x23, 0xdc, 0xcc, 0x92, 0xb3, 0xe9, 0x1a, 0xba, 0x7d, 0x6f,
+ 0xef, 0x7d, 0x6a, 0x04, 0x48, 0xf7, 0xa9, 0x47, 0x1d, 0x83, 0xb6, 0xe7, 0xe5, 0xc3, 0xcc, 0x6d,
+ 0xa4, 0x90, 0x70, 0x08, 0x9b, 0xac, 0xc3, 0xf3, 0x7d, 0xcf, 0x72, 0x79, 0x13, 0x6c, 0xdd, 0xf7,
+ 0xef, 0xea, 0x3d, 0x3a, 0x5f, 0xbd, 0x51, 0xb8, 0xd9, 0x68, 0x5f, 0x95, 0x30, 0xcf, 0x6f, 0xa7,
+ 0x19, 0x70, 0xb8, 0x0e, 0xb9, 0x09, 0x75, 0x55, 0x38, 0x5f, 0xbb, 0x51, 0xb8, 0x59, 0x11, 0x63,
+ 0x47, 0xd5, 0xc5, 0x90, 0x4a, 0xd6, 0xa0, 0xae, 0xef, 0xef, 0x5b, 0x0e, 0xe3, 0xac, 0xf3, 0x2e,
+ 0x7c, 0x29, 0xeb, 0xd1, 0x96, 0x25, 0x8f, 0xc0, 0x51, 0xff, 0x30, 0xac, 0x4b, 0xde, 0x02, 0xe2,
+ 0x53, 0xef, 0xc8, 0x32, 0xe8, 0xb2, 0x61, 0xb8, 0x03, 0x27, 0xe0, 0x6d, 0x6f, 0xf0, 0xb6, 0x5f,
+ 0x93, 0x6d, 0x27, 0x9d, 0x21, 0x0e, 0xcc, 0xa8, 0x45, 0xde, 0x84, 0x39, 0xf9, 0xad, 0x46, 0xbd,
+ 0x00, 0x1c, 0xe9, 0x32, 0xeb, 0x48, 0x4c, 0xd1, 0x70, 0x88, 0x9b, 0x98, 0xf0, 0x92, 0x3e, 0x08,
+ 0xdc, 0x1e, 0x83, 0x4c, 0x0a, 0xdd, 0x71, 0x0f, 0xa9, 0x33, 0xdf, 0xbc, 0x51, 0xb8, 0x59, 0x6f,
+ 0xdf, 0x38, 0x3d, 0x69, 0xbd, 0xb4, 0xfc, 0x18, 0x3e, 0x7c, 0x2c, 0x0a, 0xb9, 0x07, 0x0d, 0xd3,
+ 0xf1, 0xb7, 0x5d, 0xdb, 0x32, 0x8e, 0xe7, 0xa7, 0x78, 0x03, 0x5f, 0x91, 0x8f, 0xda, 0x58, 0xbd,
+ 0xdb, 0x11, 0x84, 0x47, 0x27, 0xad, 0x97, 0x86, 0xa7, 0xd4, 0x85, 0x90, 0x8e, 0x11, 0x06, 0xd9,
+ 0xe2, 0x80, 0x2b, 0xae, 0xb3, 0x6f, 0x75, 0xe7, 0xa7, 0xf9, 0xdb, 0xb8, 0x31, 0x62, 0x40, 0xaf,
+ 0xde, 0xed, 0x08, 0xbe, 0xf6, 0xb4, 0x14, 0x27, 0xfe, 0x62, 0x84, 0x40, 0x4c, 0x98, 0x51, 0x93,
+ 0xf1, 0x8a, 0xad, 0x5b, 0x3d, 0x7f, 0x7e, 0x86, 0x0f, 0xde, 0x1f, 0x1f, 0x81, 0x89, 0x71, 0xe6,
+ 0xf6, 0x15, 0xf9, 0x28, 0x33, 0x89, 0x62, 0x1f, 0x53, 0x98, 0xd7, 0xde, 0x80, 0xe7, 0x87, 0xe6,
+ 0x06, 0x32, 0x07, 0xa5, 0x43, 0x7a, 0xcc, 0xa7, 0xbe, 0x06, 0xb2, 0x9f, 0xe4, 0x32, 0x54, 0x8e,
+ 0x74, 0x7b, 0x40, 0xe7, 0x8b, 0xbc, 0x4c, 0xfc, 0xf9, 0xd9, 0xe2, 0xeb, 0x05, 0xed, 0x6f, 0x96,
+ 0x60, 0x4a, 0xcd, 0x38, 0x1d, 0xcb, 0x39, 0x24, 0x6f, 0x43, 0xc9, 0x76, 0xbb, 0x72, 0xde, 0xfc,
+ 0xf9, 0xb1, 0x67, 0xb1, 0x4d, 0xb7, 0xdb, 0xae, 0x9d, 0x9e, 0xb4, 0x4a, 0x9b, 0x6e, 0x17, 0x19,
+ 0x22, 0x31, 0xa0, 0x72, 0xa8, 0xef, 0x1f, 0xea, 0xbc, 0x0d, 0xcd, 0xa5, 0xf6, 0xd8, 0xd0, 0x77,
+ 0x18, 0x0a, 0x6b, 0x6b, 0xbb, 0x71, 0x7a, 0xd2, 0xaa, 0xf0, 0xbf, 0x28, 0xb0, 0x89, 0x0b, 0x8d,
+ 0x3d, 0x5b, 0x37, 0x0e, 0x0f, 0x5c, 0x9b, 0xce, 0x97, 0x72, 0x0a, 0x6a, 0x2b, 0x24, 0xf1, 0x9a,
+ 0xc3, 0xbf, 0x18, 0xc9, 0x20, 0x06, 0x54, 0x07, 0xa6, 0x6f, 0x39, 0x87, 0x72, 0x0e, 0x7c, 0x63,
+ 0x6c, 0x69, 0xbb, 0xab, 0xfc, 0x99, 0xe0, 0xf4, 0xa4, 0x55, 0x15, 0xbf, 0x51, 0x42, 0x6b, 0x7f,
+ 0x38, 0x05, 0x33, 0xea, 0x25, 0xdd, 0xa7, 0x5e, 0x40, 0x1f, 0x92, 0x1b, 0x50, 0x76, 0xd8, 0xa7,
+ 0xc9, 0x5f, 0x72, 0x7b, 0x4a, 0x0e, 0x97, 0x32, 0xff, 0x24, 0x39, 0x85, 0xb5, 0x4c, 0x0c, 0x15,
+ 0xd9, 0xe1, 0xe3, 0xb7, 0xac, 0xc3, 0x61, 0x44, 0xcb, 0xc4, 0x6f, 0x94, 0xd0, 0xe4, 0x5d, 0x28,
+ 0xf3, 0x87, 0x17, 0x5d, 0xfd, 0x95, 0xf1, 0x45, 0xb0, 0x47, 0xaf, 0xb3, 0x27, 0xe0, 0x0f, 0xce,
+ 0x41, 0xd9, 0x50, 0x1c, 0x98, 0xfb, 0xb2, 0x63, 0x7f, 0x3e, 0x47, 0xc7, 0xae, 0x89, 0xa1, 0xb8,
+ 0xbb, 0xba, 0x86, 0x0c, 0x91, 0xfc, 0xe5, 0x02, 0x3c, 0x6f, 0xb8, 0x4e, 0xa0, 0x33, 0x3d, 0x43,
+ 0x2d, 0xb2, 0xf3, 0x15, 0x2e, 0xe7, 0xad, 0xb1, 0xe5, 0xac, 0xa4, 0x11, 0xdb, 0x2f, 0xb0, 0x35,
+ 0x63, 0xa8, 0x18, 0x87, 0x65, 0x93, 0xbf, 0x5a, 0x80, 0x17, 0xd8, 0x5c, 0x3e, 0xc4, 0xcc, 0x57,
+ 0xa0, 0xc9, 0xb6, 0xea, 0xea, 0xe9, 0x49, 0xeb, 0x85, 0x8d, 0x2c, 0x61, 0x98, 0xdd, 0x06, 0xd6,
+ 0xba, 0x4b, 0xfa, 0xb0, 0x5a, 0xc2, 0x57, 0xb7, 0xe6, 0xd2, 0xe6, 0x24, 0x55, 0x9d, 0xf6, 0x67,
+ 0xe4, 0x50, 0xce, 0xd2, 0xec, 0x30, 0xab, 0x15, 0xe4, 0x16, 0xd4, 0x8e, 0x5c, 0x7b, 0xd0, 0xa3,
+ 0xfe, 0x7c, 0x9d, 0x4f, 0xb1, 0xd7, 0xb2, 0xa6, 0xd8, 0xfb, 0x9c, 0xa5, 0x3d, 0x2b, 0xe1, 0x6b,
+ 0xe2, 0xbf, 0x8f, 0xaa, 0x2e, 0xb1, 0xa0, 0x6a, 0x5b, 0x3d, 0x2b, 0xf0, 0xf9, 0xc2, 0xd9, 0x5c,
+ 0xba, 0x35, 0xf6, 0x63, 0x89, 0x4f, 0x74, 0x93, 0x83, 0x89, 0xaf, 0x46, 0xfc, 0x46, 0x29, 0x80,
+ 0x4d, 0x85, 0xbe, 0xa1, 0xdb, 0x62, 0x61, 0x6d, 0x2e, 0x7d, 0x75, 0xfc, 0xcf, 0x86, 0xa1, 0xb4,
+ 0xa7, 0xe5, 0x33, 0x55, 0xf8, 0x5f, 0x14, 0xd8, 0xe4, 0x17, 0x61, 0x26, 0xf1, 0x36, 0xfd, 0xf9,
+ 0x26, 0xef, 0x9d, 0x97, 0xb3, 0x7a, 0x27, 0xe4, 0x8a, 0x56, 0x9e, 0xc4, 0x08, 0xf1, 0x31, 0x05,
+ 0x46, 0xee, 0x40, 0xdd, 0xb7, 0x4c, 0x6a, 0xe8, 0x9e, 0x3f, 0x3f, 0x75, 0x16, 0xe0, 0x39, 0x09,
+ 0x5c, 0xef, 0xc8, 0x6a, 0x18, 0x02, 0x90, 0x05, 0x80, 0xbe, 0xee, 0x05, 0x96, 0x50, 0x54, 0xa7,
+ 0xb9, 0xd2, 0x34, 0x73, 0x7a, 0xd2, 0x82, 0xed, 0xb0, 0x14, 0x63, 0x1c, 0x8c, 0x9f, 0xd5, 0xdd,
+ 0x70, 0xfa, 0x83, 0x40, 0x2c, 0xac, 0x0d, 0xc1, 0xdf, 0x09, 0x4b, 0x31, 0xc6, 0x41, 0x7e, 0xbb,
+ 0x00, 0x9f, 0x89, 0xfe, 0x0e, 0x7f, 0x64, 0xb3, 0x13, 0xff, 0xc8, 0x5a, 0xa7, 0x27, 0xad, 0xcf,
+ 0x74, 0x46, 0x8b, 0xc4, 0xc7, 0xb5, 0x87, 0x7c, 0x58, 0x80, 0x99, 0x41, 0xdf, 0xd4, 0x03, 0xda,
+ 0x09, 0xd8, 0x8e, 0xa7, 0x7b, 0x3c, 0x3f, 0xc7, 0x9b, 0xb8, 0x3e, 0xfe, 0x2c, 0x98, 0x80, 0x8b,
+ 0x5e, 0x73, 0xb2, 0x1c, 0x53, 0x62, 0xb5, 0xb7, 0x61, 0x7a, 0x79, 0x10, 0x1c, 0xb8, 0x9e, 0xf5,
+ 0x01, 0x57, 0xff, 0xc9, 0x1a, 0x54, 0x02, 0xae, 0xc6, 0x09, 0x0d, 0xe1, 0x73, 0x59, 0x2f, 0x5d,
+ 0xa8, 0xd4, 0x77, 0xe8, 0xb1, 0xd2, 0x4b, 0xc4, 0x4a, 0x2d, 0xd4, 0x3a, 0x51, 0x5d, 0xfb, 0xb3,
+ 0x05, 0xa8, 0xb5, 0x75, 0xe3, 0xd0, 0xdd, 0xdf, 0x27, 0xef, 0x40, 0xdd, 0x72, 0x02, 0xea, 0x1d,
+ 0xe9, 0xb6, 0x84, 0x5d, 0x88, 0xc1, 0x86, 0x1b, 0xc2, 0xe8, 0xf1, 0xd8, 0xee, 0x8b, 0x09, 0x5a,
+ 0x1d, 0xc8, 0x5d, 0x0b, 0xd7, 0x8c, 0x37, 0x24, 0x06, 0x86, 0x68, 0xa4, 0x05, 0x15, 0x3f, 0xa0,
+ 0x7d, 0x9f, 0xaf, 0x81, 0xd3, 0xa2, 0x19, 0x1d, 0x56, 0x80, 0xa2, 0x5c, 0xfb, 0x1b, 0x05, 0x68,
+ 0xb4, 0x75, 0xdf, 0x32, 0xd8, 0x53, 0x92, 0x15, 0x28, 0x0f, 0x7c, 0xea, 0x9d, 0xef, 0xd9, 0xf8,
+ 0xb2, 0xb5, 0xeb, 0x53, 0x0f, 0x79, 0x65, 0x72, 0x0f, 0xea, 0x7d, 0xdd, 0xf7, 0x1f, 0xb8, 0x9e,
+ 0x29, 0x97, 0xde, 0x33, 0x02, 0x89, 0x6d, 0x82, 0xac, 0x8a, 0x21, 0x88, 0xd6, 0x84, 0x48, 0xf7,
+ 0xd0, 0x7e, 0xbf, 0x00, 0x97, 0xda, 0x83, 0xfd, 0x7d, 0xea, 0x49, 0xad, 0x58, 0xea, 0x9b, 0x14,
+ 0x2a, 0x1e, 0x35, 0x2d, 0x5f, 0xb6, 0x7d, 0x75, 0xec, 0x81, 0x82, 0x0c, 0x45, 0xaa, 0xb7, 0xbc,
+ 0xbf, 0x78, 0x01, 0x0a, 0x74, 0x32, 0x80, 0xc6, 0xfb, 0x94, 0xed, 0xc6, 0xa9, 0xde, 0x93, 0x4f,
+ 0x77, 0x7b, 0x6c, 0x51, 0x6f, 0xd1, 0xa0, 0xc3, 0x91, 0xe2, 0xda, 0x74, 0x58, 0x88, 0x91, 0x24,
+ 0xed, 0x77, 0x2a, 0x30, 0xb5, 0xe2, 0xf6, 0xf6, 0x2c, 0x87, 0x9a, 0xb7, 0xcc, 0x2e, 0x25, 0xef,
+ 0x41, 0x99, 0x9a, 0x5d, 0x2a, 0x9f, 0x76, 0x7c, 0xc5, 0x83, 0x81, 0x45, 0xea, 0x13, 0xfb, 0x87,
+ 0x1c, 0x98, 0x6c, 0xc2, 0xcc, 0xbe, 0xe7, 0xf6, 0xc4, 0x5c, 0xbe, 0x73, 0xdc, 0x97, 0xba, 0x73,
+ 0xfb, 0xc7, 0xd5, 0x87, 0xb3, 0x96, 0xa0, 0x3e, 0x3a, 0x69, 0x41, 0xf4, 0x0f, 0x53, 0x75, 0xc9,
+ 0x3b, 0x30, 0x1f, 0x95, 0x84, 0x93, 0xda, 0x0a, 0xdb, 0xce, 0x70, 0xdd, 0xa9, 0xd2, 0x7e, 0xe9,
+ 0xf4, 0xa4, 0x35, 0xbf, 0x36, 0x82, 0x07, 0x47, 0xd6, 0x66, 0x53, 0xc5, 0x5c, 0x44, 0x14, 0x0b,
+ 0x8d, 0x54, 0x99, 0x26, 0xb4, 0x82, 0xf1, 0x7d, 0xdf, 0x5a, 0x4a, 0x04, 0x0e, 0x09, 0x25, 0x6b,
+ 0x30, 0x15, 0xb8, 0xb1, 0xfe, 0xaa, 0xf0, 0xfe, 0xd2, 0x94, 0xa1, 0x62, 0xc7, 0x1d, 0xd9, 0x5b,
+ 0x89, 0x7a, 0x04, 0xe1, 0x8a, 0xfa, 0x9f, 0xea, 0xa9, 0x2a, 0xef, 0xa9, 0x6b, 0xa7, 0x27, 0xad,
+ 0x2b, 0x3b, 0x99, 0x1c, 0x38, 0xa2, 0x26, 0xf9, 0xd5, 0x02, 0xcc, 0x28, 0x92, 0xec, 0xa3, 0xda,
+ 0x24, 0xfb, 0x88, 0xb0, 0x11, 0xb1, 0x93, 0x10, 0x80, 0x29, 0x81, 0xda, 0xef, 0x56, 0xa1, 0x11,
+ 0x4e, 0xf5, 0xe4, 0xb3, 0x50, 0xe1, 0x26, 0x08, 0xa9, 0xc1, 0x87, 0x6b, 0x38, 0xb7, 0x54, 0xa0,
+ 0xa0, 0x91, 0xcf, 0x41, 0xcd, 0x70, 0x7b, 0x3d, 0xdd, 0x31, 0xb9, 0x59, 0xa9, 0xd1, 0x6e, 0x32,
+ 0xd5, 0x65, 0x45, 0x14, 0xa1, 0xa2, 0x91, 0x97, 0xa0, 0xac, 0x7b, 0x5d, 0x61, 0xe1, 0x69, 0x88,
+ 0xf9, 0x68, 0xd9, 0xeb, 0xfa, 0xc8, 0x4b, 0xc9, 0x97, 0xa1, 0x44, 0x9d, 0xa3, 0xf9, 0xf2, 0x68,
+ 0xdd, 0xe8, 0x96, 0x73, 0x74, 0x5f, 0xf7, 0xda, 0x4d, 0xd9, 0x86, 0xd2, 0x2d, 0xe7, 0x08, 0x59,
+ 0x1d, 0xb2, 0x09, 0x35, 0xea, 0x1c, 0xb1, 0x77, 0x2f, 0x4d, 0x2f, 0x3f, 0x36, 0xa2, 0x3a, 0x63,
+ 0x91, 0xdb, 0x84, 0x50, 0xc3, 0x92, 0xc5, 0xa8, 0x20, 0xc8, 0xd7, 0x61, 0x4a, 0x28, 0x5b, 0x5b,
+ 0xec, 0x9d, 0xf8, 0xf3, 0x55, 0x0e, 0xd9, 0x1a, 0xad, 0xad, 0x71, 0xbe, 0xc8, 0xd4, 0x15, 0x2b,
+ 0xf4, 0x31, 0x01, 0x45, 0xbe, 0x0e, 0x0d, 0xb5, 0x33, 0x56, 0x6f, 0x36, 0xd3, 0x4a, 0xa4, 0xb6,
+ 0xd3, 0x48, 0xbf, 0x39, 0xb0, 0x3c, 0xda, 0xa3, 0x4e, 0xe0, 0xb7, 0x9f, 0x57, 0x76, 0x03, 0x45,
+ 0xf5, 0x31, 0x42, 0x23, 0x7b, 0xc3, 0xe6, 0x2e, 0x61, 0xab, 0xf9, 0xec, 0x88, 0x59, 0x7d, 0x0c,
+ 0x5b, 0xd7, 0x37, 0x60, 0x36, 0xb4, 0x47, 0x49, 0x93, 0x86, 0xb0, 0xde, 0x7c, 0x91, 0x55, 0xdf,
+ 0x48, 0x92, 0x1e, 0x9d, 0xb4, 0x5e, 0xce, 0x30, 0x6a, 0x44, 0x0c, 0x98, 0x06, 0x23, 0x1f, 0xc0,
+ 0x8c, 0x47, 0x75, 0xd3, 0x72, 0xa8, 0xef, 0x6f, 0x7b, 0xee, 0x5e, 0x7e, 0xcd, 0x93, 0xa3, 0x88,
+ 0x61, 0x8f, 0x09, 0x64, 0x4c, 0x49, 0x22, 0x0f, 0x60, 0xda, 0xb6, 0x8e, 0x68, 0x24, 0xba, 0x39,
+ 0x11, 0xd1, 0xcf, 0x9f, 0x9e, 0xb4, 0xa6, 0x37, 0xe3, 0xc0, 0x98, 0x94, 0xa3, 0xfd, 0xdd, 0x0a,
+ 0x0c, 0x6f, 0xbe, 0x92, 0x23, 0xa5, 0x30, 0xe9, 0x91, 0x92, 0x7e, 0x8b, 0x62, 0xcd, 0x78, 0x5d,
+ 0x56, 0x9b, 0xc0, 0x9b, 0xcc, 0x18, 0x8d, 0xa5, 0x49, 0x8f, 0xc6, 0x67, 0x66, 0xc2, 0x18, 0x1e,
+ 0xb6, 0xd5, 0x8f, 0x6f, 0xd8, 0xd6, 0x9e, 0xd2, 0xb0, 0xfd, 0x6e, 0x19, 0x66, 0x56, 0x75, 0xda,
+ 0x73, 0x9d, 0x27, 0xee, 0xbf, 0x0b, 0xcf, 0xc4, 0xfe, 0xfb, 0x26, 0xd4, 0x3d, 0xda, 0xb7, 0x2d,
+ 0x43, 0x17, 0x6a, 0xb6, 0xb4, 0x77, 0xa3, 0x2c, 0xc3, 0x90, 0x3a, 0xc2, 0xee, 0x52, 0x7a, 0x26,
+ 0xed, 0x2e, 0xe5, 0x8f, 0xdf, 0xee, 0xa2, 0xfd, 0x6a, 0x11, 0xb8, 0x4a, 0x4a, 0x6e, 0x40, 0x99,
+ 0xa9, 0x5b, 0x69, 0x6b, 0x1f, 0xff, 0x5a, 0x38, 0x85, 0x5c, 0x83, 0x62, 0xe0, 0xca, 0xe9, 0x06,
+ 0x24, 0xbd, 0xb8, 0xe3, 0x62, 0x31, 0x70, 0xc9, 0x07, 0x00, 0x86, 0xeb, 0x98, 0x96, 0x72, 0x03,
+ 0xe5, 0x7b, 0xb0, 0x35, 0xd7, 0x7b, 0xa0, 0x7b, 0xe6, 0x4a, 0x88, 0x28, 0x76, 0xde, 0xd1, 0x7f,
+ 0x8c, 0x49, 0x23, 0x6f, 0x40, 0xd5, 0x75, 0xd6, 0x06, 0xb6, 0xcd, 0x3b, 0xb4, 0xd1, 0xfe, 0xc2,
+ 0xe9, 0x49, 0xab, 0x7a, 0x8f, 0x97, 0x3c, 0x3a, 0x69, 0x5d, 0x15, 0x3b, 0x19, 0xf6, 0xef, 0x6d,
+ 0xcf, 0x0a, 0x2c, 0xa7, 0x1b, 0x6e, 0x44, 0x65, 0x35, 0xed, 0xd7, 0x0a, 0xd0, 0x5c, 0xb3, 0x1e,
+ 0x52, 0xf3, 0x6d, 0xcb, 0x31, 0xdd, 0x07, 0x04, 0xa1, 0x6a, 0x53, 0xa7, 0x1b, 0x1c, 0x8c, 0xb9,
+ 0x53, 0x14, 0xf6, 0x18, 0x8e, 0x80, 0x12, 0x89, 0x2c, 0x42, 0x43, 0xec, 0x33, 0x2c, 0xa7, 0xcb,
+ 0xfb, 0xb0, 0x1e, 0xcd, 0xf4, 0x1d, 0x45, 0xc0, 0x88, 0x47, 0x3b, 0x86, 0xe7, 0x87, 0xba, 0x81,
+ 0x98, 0x50, 0x0e, 0xf4, 0xae, 0x5a, 0x54, 0xd6, 0xc6, 0xee, 0xe0, 0x1d, 0xbd, 0x1b, 0xeb, 0x5c,
+ 0xae, 0xcd, 0xed, 0xe8, 0x4c, 0x9b, 0x63, 0xe8, 0xda, 0x1f, 0x15, 0xa0, 0xbe, 0x36, 0x70, 0x0c,
+ 0xbe, 0x19, 0x7f, 0xb2, 0x15, 0x58, 0xa9, 0x86, 0xc5, 0x4c, 0xd5, 0x70, 0x00, 0xd5, 0xc3, 0x07,
+ 0xa1, 0xea, 0xd8, 0x5c, 0xda, 0x1a, 0x7f, 0x54, 0xc8, 0x26, 0x2d, 0xdc, 0xe1, 0x78, 0xc2, 0x49,
+ 0x39, 0x23, 0x1b, 0x54, 0xbd, 0xf3, 0x36, 0x17, 0x2a, 0x85, 0x5d, 0xfb, 0x32, 0x34, 0x63, 0x6c,
+ 0xe7, 0xf2, 0x57, 0xfc, 0xbd, 0x32, 0x54, 0xd7, 0x3b, 0x9d, 0xe5, 0xed, 0x0d, 0xf2, 0x2a, 0x34,
+ 0xa5, 0xff, 0xea, 0x6e, 0xd4, 0x07, 0xa1, 0xfb, 0xb2, 0x13, 0x91, 0x30, 0xce, 0xc7, 0x14, 0x6f,
+ 0x8f, 0xea, 0x76, 0x4f, 0x7e, 0x2c, 0xa1, 0xe2, 0x8d, 0xac, 0x10, 0x05, 0x8d, 0xe8, 0x30, 0xc3,
+ 0xf6, 0xf2, 0xac, 0x0b, 0xc5, 0x3e, 0x5d, 0x7e, 0x36, 0x67, 0xdc, 0xc9, 0xf3, 0x05, 0x66, 0x37,
+ 0x01, 0x80, 0x29, 0x40, 0xf2, 0x3a, 0xd4, 0xf5, 0x41, 0x70, 0xc0, 0xb7, 0x4a, 0xe2, 0xdb, 0x78,
+ 0x89, 0xbb, 0xf7, 0x64, 0xd9, 0xa3, 0x93, 0xd6, 0xd4, 0x1d, 0x6c, 0xbf, 0xaa, 0xfe, 0x63, 0xc8,
+ 0xcd, 0x1a, 0xa7, 0x6c, 0x03, 0xb2, 0x71, 0x95, 0x73, 0x37, 0x6e, 0x3b, 0x01, 0x80, 0x29, 0x40,
+ 0xf2, 0x2e, 0x4c, 0x1d, 0xd2, 0xe3, 0x40, 0xdf, 0x93, 0x02, 0xaa, 0xe7, 0x11, 0x30, 0xc7, 0x94,
+ 0xf5, 0x3b, 0xb1, 0xea, 0x98, 0x00, 0x23, 0x3e, 0x5c, 0x3e, 0xa4, 0xde, 0x1e, 0xf5, 0x5c, 0x69,
+ 0x67, 0x90, 0x42, 0x6a, 0xe7, 0x11, 0x32, 0x7f, 0x7a, 0xd2, 0xba, 0x7c, 0x27, 0x03, 0x06, 0x33,
+ 0xc1, 0xb5, 0xff, 0x53, 0x84, 0xd9, 0x75, 0x11, 0x40, 0xe0, 0x7a, 0x42, 0xf3, 0x20, 0x57, 0xa1,
+ 0xe4, 0xf5, 0x07, 0x7c, 0xe4, 0x94, 0x84, 0x8b, 0x00, 0xb7, 0x77, 0x91, 0x95, 0x91, 0x77, 0xa0,
+ 0x6e, 0xca, 0x29, 0x43, 0x9a, 0x39, 0xc6, 0x32, 0x49, 0xa9, 0x7f, 0x18, 0xa2, 0xb1, 0x3d, 0x5d,
+ 0xcf, 0xef, 0x76, 0xac, 0x0f, 0xa8, 0xdc, 0xf9, 0xf3, 0x3d, 0xdd, 0x96, 0x28, 0x42, 0x45, 0x63,
+ 0xab, 0xea, 0x21, 0x3d, 0x16, 0xfb, 0xde, 0x72, 0xb4, 0xaa, 0xde, 0x91, 0x65, 0x18, 0x52, 0x49,
+ 0x4b, 0x7d, 0x2c, 0x6c, 0x14, 0x94, 0x85, 0xcd, 0xe6, 0x3e, 0x2b, 0x90, 0xdf, 0x0d, 0x9b, 0x32,
+ 0xdf, 0xb7, 0x82, 0x80, 0x7a, 0xf2, 0x35, 0x8e, 0x35, 0x65, 0xbe, 0xc5, 0x11, 0x50, 0x22, 0x91,
+ 0x9f, 0x84, 0x06, 0x07, 0x6f, 0xdb, 0xee, 0x1e, 0x7f, 0x71, 0x0d, 0x61, 0xbd, 0xb9, 0xaf, 0x0a,
+ 0x31, 0xa2, 0x6b, 0x3f, 0x2a, 0xc2, 0x95, 0x75, 0x1a, 0x08, 0xad, 0x66, 0x95, 0xf6, 0x6d, 0xf7,
+ 0x98, 0xe9, 0xd3, 0x48, 0xbf, 0x49, 0xde, 0x04, 0xb0, 0xfc, 0xbd, 0xce, 0x91, 0xc1, 0xbf, 0x03,
+ 0xf1, 0x0d, 0xdf, 0x90, 0x9f, 0x24, 0x6c, 0x74, 0xda, 0x92, 0xf2, 0x28, 0xf1, 0x0f, 0x63, 0x75,
+ 0xa2, 0x8d, 0x74, 0xf1, 0x31, 0x1b, 0xe9, 0x0e, 0x40, 0x3f, 0xd2, 0xca, 0x4b, 0x9c, 0xf3, 0x67,
+ 0x94, 0x98, 0xf3, 0x28, 0xe4, 0x31, 0x98, 0x3c, 0x7a, 0xb2, 0x03, 0x73, 0x26, 0xdd, 0xd7, 0x07,
+ 0x76, 0x10, 0xee, 0x24, 0xe4, 0x47, 0x7c, 0xf6, 0xcd, 0x48, 0x18, 0xdc, 0xb0, 0x9a, 0x42, 0xc2,
+ 0x21, 0x6c, 0xed, 0xef, 0x97, 0xe0, 0xda, 0x3a, 0x0d, 0x42, 0xdb, 0x9a, 0x9c, 0x1d, 0x3b, 0x7d,
+ 0x6a, 0xb0, 0xb7, 0xf0, 0x61, 0x01, 0xaa, 0xb6, 0xbe, 0x47, 0x6d, 0xb6, 0x7a, 0xb1, 0xa7, 0x79,
+ 0x6f, 0xec, 0x85, 0x60, 0xb4, 0x94, 0x85, 0x4d, 0x2e, 0x21, 0xb5, 0x34, 0x88, 0x42, 0x94, 0xe2,
+ 0xd9, 0xa4, 0x6e, 0xd8, 0x03, 0x3f, 0xa0, 0xde, 0xb6, 0xeb, 0x05, 0x52, 0x9f, 0x0c, 0x27, 0xf5,
+ 0x95, 0x88, 0x84, 0x71, 0x3e, 0xb2, 0x04, 0x60, 0xd8, 0x16, 0x75, 0x02, 0x5e, 0x4b, 0x7c, 0x57,
+ 0x44, 0xbd, 0xdf, 0x95, 0x90, 0x82, 0x31, 0x2e, 0x26, 0xaa, 0xe7, 0x3a, 0x56, 0xe0, 0x0a, 0x51,
+ 0xe5, 0xa4, 0xa8, 0xad, 0x88, 0x84, 0x71, 0x3e, 0x5e, 0x8d, 0x06, 0x9e, 0x65, 0xf8, 0xbc, 0x5a,
+ 0x25, 0x55, 0x2d, 0x22, 0x61, 0x9c, 0x8f, 0xad, 0x79, 0xb1, 0xe7, 0x3f, 0xd7, 0x9a, 0xf7, 0x5b,
+ 0x0d, 0xb8, 0x9e, 0xe8, 0xd6, 0x40, 0x0f, 0xe8, 0xfe, 0xc0, 0xee, 0xd0, 0x40, 0xbd, 0xc0, 0x31,
+ 0xd7, 0xc2, 0xbf, 0x10, 0xbd, 0x77, 0x11, 0xb6, 0x64, 0x4c, 0xe6, 0xbd, 0x0f, 0x35, 0xf0, 0x4c,
+ 0xef, 0x7e, 0x11, 0x1a, 0x8e, 0x1e, 0xf8, 0xfc, 0xc3, 0x95, 0xdf, 0x68, 0xa8, 0x86, 0xdd, 0x55,
+ 0x04, 0x8c, 0x78, 0xc8, 0x36, 0x5c, 0x96, 0x5d, 0x7c, 0xeb, 0x61, 0xdf, 0xf5, 0x02, 0xea, 0x89,
+ 0xba, 0x72, 0x39, 0x95, 0x75, 0x2f, 0x6f, 0x65, 0xf0, 0x60, 0x66, 0x4d, 0xb2, 0x05, 0x97, 0x0c,
+ 0x11, 0xca, 0x41, 0x6d, 0x57, 0x37, 0x15, 0xa0, 0x30, 0x65, 0x86, 0x5b, 0xa3, 0x95, 0x61, 0x16,
+ 0xcc, 0xaa, 0x97, 0x1e, 0xcd, 0xd5, 0xb1, 0x46, 0x73, 0x6d, 0x9c, 0xd1, 0x5c, 0x1f, 0x6f, 0x34,
+ 0x37, 0xce, 0x36, 0x9a, 0x59, 0xcf, 0xb3, 0x71, 0x44, 0x3d, 0xa6, 0x9e, 0x88, 0x15, 0x36, 0x16,
+ 0x29, 0x14, 0xf6, 0x7c, 0x27, 0x83, 0x07, 0x33, 0x6b, 0x92, 0x3d, 0xb8, 0x26, 0xca, 0x6f, 0x39,
+ 0x86, 0x77, 0xdc, 0x67, 0x0b, 0x4f, 0x0c, 0xb7, 0x99, 0xb0, 0x25, 0x5f, 0xeb, 0x8c, 0xe4, 0xc4,
+ 0xc7, 0xa0, 0x90, 0x9f, 0x83, 0x69, 0xf1, 0x96, 0xb6, 0xf4, 0x3e, 0x87, 0x15, 0x71, 0x43, 0x2f,
+ 0x48, 0xd8, 0xe9, 0x95, 0x38, 0x11, 0x93, 0xbc, 0x64, 0x19, 0x66, 0xfb, 0x47, 0x06, 0xfb, 0xb9,
+ 0xb1, 0x7f, 0x97, 0x52, 0x93, 0x9a, 0xdc, 0x51, 0xd9, 0x68, 0xbf, 0xa8, 0xac, 0x3b, 0xdb, 0x49,
+ 0x32, 0xa6, 0xf9, 0xc9, 0xeb, 0x30, 0xe5, 0x07, 0xba, 0x17, 0x48, 0x03, 0xee, 0xfc, 0x8c, 0x88,
+ 0xab, 0x52, 0xf6, 0xcd, 0x4e, 0x8c, 0x86, 0x09, 0xce, 0xcc, 0xf5, 0x62, 0xf6, 0xe2, 0xd6, 0x8b,
+ 0x3c, 0xb3, 0xd5, 0x3f, 0x2f, 0xc2, 0x8d, 0x75, 0x1a, 0x6c, 0xb9, 0x8e, 0x34, 0x7f, 0x67, 0x2d,
+ 0xfb, 0x67, 0xb2, 0x7e, 0x27, 0x17, 0xed, 0xe2, 0x44, 0x17, 0xed, 0xd2, 0x84, 0x16, 0xed, 0xf2,
+ 0x05, 0x2e, 0xda, 0xff, 0xb0, 0x08, 0x2f, 0x26, 0x7a, 0x72, 0xdb, 0x35, 0xd5, 0x84, 0xff, 0x69,
+ 0x07, 0x9e, 0xa1, 0x03, 0x1f, 0x09, 0xbd, 0x93, 0x3b, 0x30, 0x53, 0x1a, 0xcf, 0x77, 0xd2, 0x1a,
+ 0xcf, 0xbb, 0x79, 0x56, 0xbe, 0x0c, 0x09, 0x67, 0x5a, 0xf1, 0xde, 0x02, 0xe2, 0x49, 0x77, 0xab,
+ 0x30, 0xfd, 0xc4, 0x94, 0x9e, 0x30, 0x70, 0x13, 0x87, 0x38, 0x30, 0xa3, 0x16, 0xe9, 0xc0, 0x0b,
+ 0x3e, 0x75, 0x02, 0xcb, 0xa1, 0x76, 0x12, 0x4e, 0x68, 0x43, 0x2f, 0x4b, 0xb8, 0x17, 0x3a, 0x59,
+ 0x4c, 0x98, 0x5d, 0x37, 0xcf, 0x3c, 0xf0, 0xaf, 0x81, 0xab, 0x9c, 0xa2, 0x6b, 0x26, 0xa6, 0xb1,
+ 0x7c, 0x98, 0xd6, 0x58, 0xde, 0xcb, 0xff, 0xde, 0xc6, 0xd3, 0x56, 0x96, 0x00, 0xf8, 0x5b, 0x88,
+ 0xab, 0x2b, 0xe1, 0x22, 0x8d, 0x21, 0x05, 0x63, 0x5c, 0x6c, 0x01, 0x52, 0xfd, 0x1c, 0xd7, 0x54,
+ 0xc2, 0x05, 0xa8, 0x13, 0x27, 0x62, 0x92, 0x77, 0xa4, 0xb6, 0x53, 0x19, 0x5b, 0xdb, 0x79, 0x0b,
+ 0x48, 0xc2, 0xf0, 0x28, 0xf0, 0xaa, 0xc9, 0xb8, 0xe1, 0x8d, 0x21, 0x0e, 0xcc, 0xa8, 0x35, 0x62,
+ 0x28, 0xd7, 0x26, 0x3b, 0x94, 0xeb, 0xe3, 0x0f, 0x65, 0xf2, 0x1e, 0x5c, 0xe5, 0xa2, 0x64, 0xff,
+ 0x24, 0x81, 0x85, 0xde, 0xf3, 0x63, 0x12, 0xf8, 0x2a, 0x8e, 0x62, 0xc4, 0xd1, 0x18, 0xec, 0xfd,
+ 0x18, 0x1e, 0x35, 0x99, 0x70, 0xdd, 0x1e, 0xad, 0x13, 0xad, 0x64, 0xf0, 0x60, 0x66, 0x4d, 0x36,
+ 0xc4, 0x02, 0x36, 0x0c, 0xf5, 0x3d, 0x9b, 0x9a, 0x32, 0x6e, 0x3a, 0x1c, 0x62, 0x3b, 0x9b, 0x1d,
+ 0x49, 0xc1, 0x18, 0x57, 0x96, 0x9a, 0x32, 0x75, 0x4e, 0x35, 0x65, 0x9d, 0x5b, 0xe9, 0xf7, 0x13,
+ 0xda, 0x90, 0xd4, 0x75, 0xc2, 0x48, 0xf8, 0x95, 0x34, 0x03, 0x0e, 0xd7, 0xe1, 0x5a, 0xa2, 0xe1,
+ 0x59, 0xfd, 0xc0, 0x4f, 0x62, 0xcd, 0xa4, 0xb4, 0xc4, 0x0c, 0x1e, 0xcc, 0xac, 0xc9, 0xf4, 0xf3,
+ 0x03, 0xaa, 0xdb, 0xc1, 0x41, 0x12, 0x70, 0x36, 0xa9, 0x9f, 0xdf, 0x1e, 0x66, 0xc1, 0xac, 0x7a,
+ 0x99, 0x0b, 0xd2, 0xdc, 0xb3, 0xa9, 0x56, 0x7d, 0xbb, 0x04, 0x57, 0xd7, 0x69, 0x10, 0x86, 0x94,
+ 0x7d, 0x6a, 0x46, 0xf9, 0x18, 0xcc, 0x28, 0xbf, 0x59, 0x81, 0x4b, 0xeb, 0x34, 0x18, 0xd2, 0xc6,
+ 0xfe, 0x98, 0x76, 0xff, 0x16, 0x5c, 0x8a, 0xa2, 0x18, 0x3b, 0x81, 0xeb, 0x89, 0xb5, 0x3c, 0xb5,
+ 0x5b, 0xee, 0x0c, 0xb3, 0x60, 0x56, 0x3d, 0xf2, 0x75, 0x78, 0x91, 0x2f, 0xf5, 0x4e, 0x57, 0xd8,
+ 0x67, 0x85, 0x31, 0x21, 0x76, 0x0e, 0xa7, 0x25, 0x21, 0x5f, 0xec, 0x64, 0xb3, 0xe1, 0xa8, 0xfa,
+ 0xe4, 0x5b, 0x30, 0xd5, 0xb7, 0xfa, 0xd4, 0xb6, 0x1c, 0xae, 0x9f, 0xe5, 0x0e, 0xfe, 0xd9, 0x8e,
+ 0x81, 0x45, 0x1b, 0xb8, 0x78, 0x29, 0x26, 0x04, 0x66, 0x8e, 0xd4, 0xfa, 0x05, 0x8e, 0xd4, 0xff,
+ 0x59, 0x84, 0xda, 0xba, 0xe7, 0x0e, 0xfa, 0xed, 0x63, 0xd2, 0x85, 0xea, 0x03, 0xee, 0x3c, 0x93,
+ 0xae, 0xa9, 0xf1, 0x4f, 0x02, 0x08, 0x1f, 0x5c, 0xa4, 0x12, 0x89, 0xff, 0x28, 0xe1, 0xd9, 0x20,
+ 0x3e, 0xa4, 0xc7, 0xd4, 0x94, 0x3e, 0xb4, 0x70, 0x10, 0xdf, 0x61, 0x85, 0x28, 0x68, 0xa4, 0x07,
+ 0xb3, 0xba, 0x6d, 0xbb, 0x0f, 0xa8, 0xb9, 0xa9, 0x07, 0xdc, 0xef, 0x2d, 0x7d, 0x2b, 0xe7, 0x35,
+ 0x4b, 0xf3, 0x60, 0x86, 0xe5, 0x24, 0x14, 0xa6, 0xb1, 0xc9, 0xfb, 0x50, 0xf3, 0x03, 0xd7, 0x53,
+ 0xca, 0x56, 0x73, 0x69, 0x65, 0xfc, 0x97, 0xde, 0xfe, 0x5a, 0x47, 0x40, 0x09, 0x9b, 0xbd, 0xfc,
+ 0x83, 0x4a, 0x80, 0xf6, 0x1b, 0x05, 0x80, 0xdb, 0x3b, 0x3b, 0xdb, 0xd2, 0xbd, 0x60, 0x42, 0x59,
+ 0x1f, 0x84, 0x8e, 0xca, 0xf1, 0x1d, 0x82, 0x89, 0x00, 0x5c, 0xe9, 0xc3, 0x1b, 0x04, 0x07, 0xc8,
+ 0xd1, 0xc9, 0x4f, 0x40, 0x4d, 0x2a, 0xc8, 0xb2, 0xdb, 0xc3, 0x78, 0x0a, 0xa9, 0x44, 0xa3, 0xa2,
+ 0x6b, 0x7f, 0xa7, 0x08, 0xb0, 0x61, 0xda, 0xb4, 0xa3, 0x0e, 0x6f, 0x34, 0x82, 0x03, 0x8f, 0xfa,
+ 0x07, 0xae, 0x6d, 0x8e, 0xe9, 0x4d, 0xe5, 0x36, 0xff, 0x1d, 0x05, 0x82, 0x11, 0x1e, 0x31, 0x61,
+ 0xca, 0x0f, 0x68, 0x5f, 0xc5, 0xe4, 0x8e, 0xe9, 0x44, 0x99, 0x13, 0x76, 0x91, 0x08, 0x07, 0x13,
+ 0xa8, 0x44, 0x87, 0xa6, 0xe5, 0x18, 0xe2, 0x03, 0x69, 0x1f, 0x8f, 0x39, 0x90, 0x66, 0xd9, 0x8e,
+ 0x63, 0x23, 0x82, 0xc1, 0x38, 0xa6, 0xf6, 0x7b, 0x45, 0xb8, 0xc2, 0xe5, 0xb1, 0x66, 0x24, 0x22,
+ 0x6f, 0xc9, 0x9f, 0x1e, 0x3a, 0x68, 0xfa, 0x27, 0xcf, 0x26, 0x5a, 0x9c, 0x53, 0xdc, 0xa2, 0x81,
+ 0x1e, 0xe9, 0x73, 0x51, 0x59, 0xec, 0x74, 0xe9, 0x00, 0xca, 0x3e, 0x9b, 0xaf, 0x44, 0xef, 0x75,
+ 0xc6, 0x1e, 0x42, 0xd9, 0x0f, 0xc0, 0x67, 0xaf, 0xd0, 0x6b, 0xcc, 0x67, 0x2d, 0x2e, 0x8e, 0xfc,
+ 0x32, 0x54, 0xfd, 0x40, 0x0f, 0x06, 0xea, 0xd3, 0xdc, 0x9d, 0xb4, 0x60, 0x0e, 0x1e, 0xcd, 0x23,
+ 0xe2, 0x3f, 0x4a, 0xa1, 0xda, 0xef, 0x15, 0xe0, 0x5a, 0x76, 0xc5, 0x4d, 0xcb, 0x0f, 0xc8, 0x9f,
+ 0x1a, 0xea, 0xf6, 0x33, 0xbe, 0x71, 0x56, 0x9b, 0x77, 0x7a, 0x78, 0x16, 0x41, 0x95, 0xc4, 0xba,
+ 0x3c, 0x80, 0x8a, 0x15, 0xd0, 0x9e, 0xda, 0x5f, 0xde, 0x9b, 0xf0, 0xa3, 0xc7, 0x96, 0x76, 0x26,
+ 0x05, 0x85, 0x30, 0xed, 0xbb, 0xc5, 0x51, 0x8f, 0xcc, 0x97, 0x0f, 0x3b, 0x19, 0xdd, 0x7d, 0x27,
+ 0x5f, 0x74, 0x77, 0xb2, 0x41, 0xc3, 0x41, 0xde, 0x7f, 0x66, 0x38, 0xc8, 0xfb, 0x5e, 0xfe, 0x20,
+ 0xef, 0x54, 0x37, 0x8c, 0x8c, 0xf5, 0xfe, 0xa8, 0x04, 0x2f, 0x3d, 0x6e, 0xd8, 0xb0, 0xf5, 0x4c,
+ 0x8e, 0xce, 0xbc, 0xeb, 0xd9, 0xe3, 0xc7, 0x21, 0x59, 0x82, 0x4a, 0xff, 0x40, 0xf7, 0x95, 0x52,
+ 0xa6, 0x36, 0x2c, 0x95, 0x6d, 0x56, 0xf8, 0x88, 0x4d, 0x1a, 0x5c, 0x99, 0xe3, 0x7f, 0x51, 0xb0,
+ 0xb2, 0xe9, 0xb8, 0x47, 0x7d, 0x3f, 0xb2, 0x09, 0x84, 0xd3, 0xf1, 0x96, 0x28, 0x46, 0x45, 0x27,
+ 0x01, 0x54, 0x85, 0x89, 0x59, 0xae, 0x4c, 0xe3, 0x07, 0x72, 0x65, 0x1c, 0x08, 0x88, 0x1e, 0x4a,
+ 0x7a, 0x2b, 0xa4, 0x2c, 0xb2, 0x00, 0xe5, 0x20, 0x0a, 0xcf, 0x56, 0x5b, 0xf3, 0x72, 0x86, 0x7e,
+ 0xca, 0xf9, 0xd8, 0xc6, 0xde, 0xdd, 0xe3, 0x46, 0x75, 0x53, 0xfa, 0xcf, 0x2d, 0xd7, 0xe1, 0x0a,
+ 0x59, 0x29, 0xda, 0xd8, 0xdf, 0x1b, 0xe2, 0xc0, 0x8c, 0x5a, 0xda, 0xbf, 0xab, 0xc3, 0x95, 0xec,
+ 0xf1, 0xc0, 0xfa, 0xed, 0x88, 0x7a, 0x3e, 0xc3, 0x2e, 0x24, 0xfb, 0xed, 0xbe, 0x28, 0x46, 0x45,
+ 0xff, 0x44, 0x07, 0x9c, 0xfd, 0x66, 0x01, 0xae, 0x7a, 0xd2, 0x47, 0xf4, 0x34, 0x82, 0xce, 0x5e,
+ 0x16, 0xe6, 0x8c, 0x11, 0x02, 0x71, 0x74, 0x5b, 0xc8, 0xdf, 0x2a, 0xc0, 0x7c, 0x2f, 0x65, 0xe7,
+ 0xb8, 0xc0, 0xb3, 0x92, 0xfc, 0xfc, 0xc3, 0xd6, 0x08, 0x79, 0x38, 0xb2, 0x25, 0xe4, 0x5b, 0xd0,
+ 0xec, 0xb3, 0x71, 0xe1, 0x07, 0xd4, 0x31, 0x54, 0x80, 0xe8, 0xf8, 0x5f, 0xd2, 0x76, 0x84, 0x15,
+ 0x9e, 0x95, 0xe2, 0xfa, 0x41, 0x8c, 0x80, 0x71, 0x89, 0xcf, 0xf8, 0xe1, 0xc8, 0x9b, 0x50, 0xf7,
+ 0x69, 0x10, 0x58, 0x4e, 0x57, 0xec, 0x37, 0x1a, 0xe2, 0x5b, 0xe9, 0xc8, 0x32, 0x0c, 0xa9, 0xe4,
+ 0x27, 0xa1, 0xc1, 0x5d, 0x4e, 0xcb, 0x5e, 0xd7, 0x9f, 0x6f, 0xf0, 0x70, 0xb1, 0x69, 0x11, 0x00,
+ 0x27, 0x0b, 0x31, 0xa2, 0x93, 0x2f, 0xc2, 0xd4, 0x1e, 0xff, 0x7c, 0xe5, 0x79, 0x79, 0x61, 0xe3,
+ 0xe2, 0xda, 0x5a, 0x3b, 0x56, 0x8e, 0x09, 0x2e, 0xb2, 0x04, 0x40, 0x43, 0xbf, 0x5c, 0xda, 0x9e,
+ 0x15, 0x79, 0xec, 0x30, 0xc6, 0x45, 0x5e, 0x86, 0x52, 0x60, 0xfb, 0xdc, 0x86, 0x55, 0x8f, 0xb6,
+ 0xa0, 0x3b, 0x9b, 0x1d, 0x64, 0xe5, 0xda, 0x8f, 0x0a, 0x30, 0x9b, 0x3a, 0x46, 0xc4, 0xaa, 0x0c,
+ 0x3c, 0x5b, 0x4e, 0x23, 0x61, 0x95, 0x5d, 0xdc, 0x44, 0x56, 0x4e, 0xde, 0x93, 0x6a, 0x79, 0x31,
+ 0x67, 0x6a, 0x90, 0xbb, 0x7a, 0xe0, 0x33, 0x3d, 0x7c, 0x48, 0x23, 0xe7, 0x6e, 0xbe, 0xa8, 0x3d,
+ 0x72, 0x1d, 0x88, 0xb9, 0xf9, 0x22, 0x1a, 0x26, 0x38, 0x53, 0x06, 0xbf, 0xf2, 0x59, 0x0c, 0x7e,
+ 0xda, 0xaf, 0x15, 0x63, 0x3d, 0x20, 0x35, 0xfb, 0x27, 0xf4, 0xc0, 0xe7, 0xd9, 0x02, 0x1a, 0x2e,
+ 0xee, 0x8d, 0xf8, 0xfa, 0xc7, 0x17, 0x63, 0x49, 0x25, 0x6f, 0x8b, 0xbe, 0x2f, 0xe5, 0x3c, 0x80,
+ 0xbd, 0xb3, 0xd9, 0x11, 0xd1, 0x55, 0xea, 0xad, 0x85, 0xaf, 0xa0, 0x7c, 0x41, 0xaf, 0x40, 0xfb,
+ 0x97, 0x25, 0x68, 0xbe, 0xe5, 0xee, 0x7d, 0x42, 0x22, 0xa8, 0xb3, 0x97, 0xa9, 0xe2, 0xc7, 0xb8,
+ 0x4c, 0xed, 0xc2, 0x8b, 0x41, 0x60, 0x77, 0xa8, 0xe1, 0x3a, 0xa6, 0xbf, 0xbc, 0x1f, 0x50, 0x6f,
+ 0xcd, 0x72, 0x2c, 0xff, 0x80, 0x9a, 0xd2, 0x9d, 0xf4, 0x99, 0xd3, 0x93, 0xd6, 0x8b, 0x3b, 0x3b,
+ 0x9b, 0x59, 0x2c, 0x38, 0xaa, 0x2e, 0x9f, 0x36, 0xc4, 0x99, 0x4f, 0x7e, 0x26, 0x4a, 0xc6, 0xdc,
+ 0x88, 0x69, 0x23, 0x56, 0x8e, 0x09, 0x2e, 0xed, 0x7b, 0x45, 0x68, 0x84, 0x49, 0x1f, 0xc8, 0xe7,
+ 0xa0, 0xb6, 0xe7, 0xb9, 0x87, 0xd4, 0x13, 0x9e, 0x3b, 0x79, 0x26, 0xaa, 0x2d, 0x8a, 0x50, 0xd1,
+ 0xc8, 0x67, 0xa1, 0x12, 0xb8, 0x7d, 0xcb, 0x48, 0x1b, 0xd4, 0x76, 0x58, 0x21, 0x0a, 0xda, 0xc5,
+ 0x0d, 0xf0, 0xcf, 0x27, 0x54, 0xbb, 0xc6, 0x48, 0x65, 0xec, 0x5d, 0x28, 0xfb, 0xba, 0x6f, 0xcb,
+ 0xf5, 0x34, 0x47, 0xfe, 0x84, 0xe5, 0xce, 0xa6, 0xcc, 0x9f, 0xb0, 0xdc, 0xd9, 0x44, 0x0e, 0xaa,
+ 0xfd, 0x61, 0x11, 0x9a, 0xa2, 0xdf, 0xc4, 0xac, 0x30, 0xc9, 0x9e, 0x7b, 0x83, 0x87, 0x52, 0xf8,
+ 0x83, 0x1e, 0xf5, 0xb8, 0x99, 0x49, 0x4e, 0x72, 0x71, 0xff, 0x40, 0x44, 0x0c, 0xc3, 0x29, 0xa2,
+ 0x22, 0xd5, 0xf5, 0xe5, 0x0b, 0xec, 0xfa, 0xca, 0x99, 0xba, 0xbe, 0x7a, 0x11, 0x5d, 0xff, 0x61,
+ 0x11, 0x1a, 0x9b, 0xd6, 0x3e, 0x35, 0x8e, 0x0d, 0x9b, 0x9f, 0xfe, 0x34, 0xa9, 0x4d, 0x03, 0xba,
+ 0xee, 0xe9, 0x06, 0xdd, 0xa6, 0x9e, 0xc5, 0x93, 0x22, 0xb1, 0xef, 0x83, 0xcf, 0x40, 0xf2, 0xf4,
+ 0xe7, 0xea, 0x08, 0x1e, 0x1c, 0x59, 0x9b, 0x6c, 0xc0, 0x94, 0x49, 0x7d, 0xcb, 0xa3, 0xe6, 0x76,
+ 0x6c, 0xa3, 0xf2, 0x39, 0xb5, 0xd4, 0xac, 0xc6, 0x68, 0x8f, 0x4e, 0x5a, 0xd3, 0xca, 0x40, 0x29,
+ 0x76, 0x2c, 0x89, 0xaa, 0xec, 0x93, 0xef, 0xeb, 0x03, 0x3f, 0xab, 0x8d, 0xb1, 0x4f, 0x7e, 0x3b,
+ 0x9b, 0x05, 0x47, 0xd5, 0xd5, 0x2a, 0x50, 0xda, 0x74, 0xbb, 0xda, 0x77, 0x4b, 0x10, 0x66, 0xcf,
+ 0x22, 0x7f, 0xbe, 0x00, 0x4d, 0xdd, 0x71, 0xdc, 0x40, 0x66, 0xa6, 0x12, 0x1e, 0x78, 0xcc, 0x9d,
+ 0xa4, 0x6b, 0x61, 0x39, 0x02, 0x15, 0xce, 0xdb, 0xd0, 0xa1, 0x1c, 0xa3, 0x60, 0x5c, 0x36, 0x19,
+ 0xa4, 0xfc, 0xc9, 0x5b, 0xf9, 0x5b, 0x71, 0x06, 0xef, 0xf1, 0xb5, 0xaf, 0xc2, 0x5c, 0xba, 0xb1,
+ 0xe7, 0x71, 0x07, 0xe5, 0x72, 0xcc, 0x17, 0x01, 0xa2, 0x98, 0x92, 0xa7, 0x60, 0xc4, 0xb2, 0x12,
+ 0x46, 0xac, 0xf1, 0x53, 0x18, 0x44, 0x8d, 0x1e, 0x69, 0xb8, 0xfa, 0x66, 0xca, 0x70, 0xb5, 0x31,
+ 0x09, 0x61, 0x8f, 0x37, 0x56, 0xed, 0xc1, 0xa5, 0x88, 0x37, 0xfa, 0xe6, 0xef, 0xa4, 0xbe, 0x4c,
+ 0xa1, 0x8b, 0x7d, 0x61, 0xc4, 0x97, 0x39, 0x1b, 0x0b, 0xf2, 0x19, 0xfe, 0x36, 0xb5, 0xbf, 0x5d,
+ 0x80, 0xb9, 0xb8, 0x10, 0x7e, 0xde, 0xfa, 0x4b, 0x30, 0xed, 0x51, 0xdd, 0x6c, 0xeb, 0x81, 0x71,
+ 0xc0, 0xc3, 0xc9, 0x0b, 0x3c, 0xfe, 0x9b, 0x9f, 0x30, 0xc3, 0x38, 0x01, 0x93, 0x7c, 0x44, 0x87,
+ 0x26, 0x2b, 0xd8, 0xb1, 0x7a, 0xd4, 0x1d, 0x04, 0x63, 0x5a, 0x66, 0xf9, 0xa6, 0x08, 0x23, 0x18,
+ 0x8c, 0x63, 0x6a, 0x1f, 0x15, 0x60, 0x26, 0xde, 0xe0, 0x0b, 0xb7, 0xda, 0x1d, 0x24, 0xad, 0x76,
+ 0x2b, 0x13, 0x78, 0xef, 0x23, 0x2c, 0x75, 0xdf, 0x6e, 0xc6, 0x1f, 0x8d, 0x5b, 0xe7, 0xe2, 0x06,
+ 0x89, 0xc2, 0x63, 0x0d, 0x12, 0x9f, 0xfc, 0xa4, 0x4c, 0xa3, 0x34, 0xe9, 0xf2, 0x33, 0xac, 0x49,
+ 0x7f, 0x9c, 0x99, 0x9d, 0x62, 0xd9, 0x89, 0xaa, 0x39, 0xb2, 0x13, 0xf5, 0xc2, 0xec, 0x44, 0xb5,
+ 0x89, 0x4d, 0x6c, 0x67, 0xc9, 0x50, 0x54, 0x7f, 0xaa, 0x19, 0x8a, 0x1a, 0x17, 0x95, 0xa1, 0x08,
+ 0xf2, 0x66, 0x28, 0xfa, 0x4e, 0x01, 0x66, 0xcc, 0xc4, 0xa9, 0x5c, 0x79, 0x8e, 0x7d, 0xfc, 0xe5,
+ 0x2c, 0x79, 0xc8, 0x57, 0x1c, 0xcb, 0x4a, 0x96, 0x61, 0x4a, 0x64, 0x56, 0x5e, 0xa0, 0xa9, 0x8f,
+ 0x25, 0x2f, 0x10, 0xf9, 0x65, 0x68, 0xd8, 0x6a, 0xad, 0x93, 0xd9, 0x12, 0x37, 0x27, 0x32, 0x24,
+ 0x25, 0x66, 0x14, 0xf9, 0x1f, 0x16, 0x61, 0x24, 0x51, 0xfb, 0x83, 0x5a, 0x7c, 0x41, 0x7c, 0xda,
+ 0x7e, 0x81, 0xd7, 0x92, 0x7e, 0x81, 0x1b, 0x69, 0xbf, 0xc0, 0xd0, 0x6a, 0x2e, 0x7d, 0x03, 0x3f,
+ 0x15, 0x5b, 0x27, 0x4a, 0x3c, 0x21, 0x51, 0x38, 0xe4, 0x32, 0xd6, 0x8a, 0x65, 0x98, 0x95, 0x4a,
+ 0x80, 0x22, 0xf2, 0x49, 0x76, 0x3a, 0x8a, 0xe4, 0x5a, 0x4d, 0x92, 0x31, 0xcd, 0xcf, 0x04, 0xfa,
+ 0x2a, 0x2f, 0xad, 0xd8, 0x0d, 0x45, 0x63, 0x5c, 0xe5, 0x8c, 0x0d, 0x39, 0xd8, 0xce, 0xc9, 0xa3,
+ 0xba, 0x2f, 0xad, 0xfb, 0xb1, 0x9d, 0x13, 0xf2, 0x52, 0x94, 0xd4, 0xb8, 0x8b, 0xa3, 0xf6, 0x04,
+ 0x17, 0x87, 0x0e, 0x4d, 0x5b, 0xf7, 0x03, 0x31, 0x98, 0x4c, 0x39, 0x9b, 0xfc, 0x89, 0xb3, 0xad,
+ 0xfb, 0x4c, 0x97, 0x88, 0x14, 0xf8, 0xcd, 0x08, 0x06, 0xe3, 0x98, 0xc4, 0x84, 0x29, 0xf6, 0x97,
+ 0xcf, 0x2c, 0xe6, 0x72, 0x20, 0xb3, 0xb7, 0x9d, 0x47, 0x46, 0x68, 0x99, 0xdb, 0x8c, 0xe1, 0x60,
+ 0x02, 0x75, 0x84, 0x17, 0x04, 0xc6, 0xf1, 0x82, 0x90, 0x9f, 0x13, 0x8a, 0xdb, 0x71, 0xf8, 0x5a,
+ 0x9b, 0xfc, 0xb5, 0x86, 0x51, 0xa0, 0x18, 0x27, 0x62, 0x92, 0x97, 0x8d, 0x8a, 0x81, 0xec, 0x06,
+ 0x55, 0x7d, 0x2a, 0x39, 0x2a, 0x76, 0x93, 0x64, 0x4c, 0xf3, 0x93, 0x6d, 0xb8, 0x1c, 0x16, 0xc5,
+ 0x9b, 0x31, 0xcd, 0x71, 0xc2, 0xb0, 0xbc, 0xdd, 0x0c, 0x1e, 0xcc, 0xac, 0xc9, 0xcf, 0xb9, 0x0c,
+ 0x3c, 0x8f, 0x3a, 0xc1, 0x6d, 0xdd, 0x3f, 0x90, 0xf1, 0x7d, 0xd1, 0x39, 0x97, 0x88, 0x84, 0x71,
+ 0x3e, 0xb2, 0x04, 0x20, 0xe0, 0x78, 0xad, 0xd9, 0x64, 0x08, 0xed, 0x6e, 0x48, 0xc1, 0x18, 0x97,
+ 0xf6, 0x9d, 0x06, 0x34, 0xef, 0xea, 0x81, 0x75, 0x44, 0xb9, 0xcb, 0xf2, 0x62, 0xfc, 0x46, 0x7f,
+ 0xad, 0x00, 0x57, 0x92, 0x71, 0xa9, 0x17, 0xe8, 0x3c, 0xe2, 0xf9, 0x8c, 0x30, 0x53, 0x1a, 0x8e,
+ 0x68, 0x05, 0x77, 0x23, 0x0d, 0x85, 0xb9, 0x5e, 0xb4, 0x1b, 0xa9, 0x33, 0x4a, 0x20, 0x8e, 0x6e,
+ 0xcb, 0x27, 0xc5, 0x8d, 0xf4, 0x6c, 0x27, 0xe0, 0x4c, 0x39, 0xb9, 0x6a, 0xcf, 0x8c, 0x93, 0xab,
+ 0xfe, 0x4c, 0x68, 0xfd, 0xfd, 0x98, 0x93, 0xab, 0x91, 0x33, 0xd8, 0x4a, 0x1e, 0xe5, 0x10, 0x68,
+ 0xa3, 0x9c, 0x65, 0x3c, 0x0b, 0x83, 0x72, 0x3e, 0x30, 0x65, 0x79, 0x4f, 0xf7, 0x2d, 0x43, 0xaa,
+ 0x1d, 0x39, 0x12, 0x0e, 0xab, 0x44, 0x84, 0x22, 0x26, 0x83, 0xff, 0x45, 0x81, 0x1d, 0xe5, 0x5d,
+ 0x2c, 0xe6, 0xca, 0xbb, 0x48, 0x56, 0xa0, 0xec, 0x1c, 0xd2, 0xe3, 0xf3, 0xe5, 0x33, 0xe0, 0x9b,
+ 0xc0, 0xbb, 0x77, 0xe8, 0x31, 0xf2, 0xca, 0xda, 0xf7, 0x8a, 0x00, 0xec, 0xf1, 0xcf, 0xe6, 0x6e,
+ 0xfa, 0x09, 0xa8, 0xf9, 0x03, 0x6e, 0x18, 0x92, 0x0a, 0x53, 0x14, 0xa1, 0x26, 0x8a, 0x51, 0xd1,
+ 0xc9, 0x67, 0xa1, 0xf2, 0xcd, 0x01, 0x1d, 0xa8, 0xd8, 0x89, 0x70, 0xdf, 0xf0, 0x35, 0x56, 0x88,
+ 0x82, 0x76, 0x71, 0xa6, 0x63, 0xe5, 0x96, 0xaa, 0x5c, 0x94, 0x5b, 0xaa, 0x01, 0xb5, 0xbb, 0x2e,
+ 0x0f, 0x78, 0xd5, 0xfe, 0x7b, 0x11, 0x20, 0x0a, 0x28, 0x24, 0xbf, 0x51, 0x80, 0x17, 0xc2, 0x0f,
+ 0x2e, 0x10, 0xdb, 0x3f, 0x9e, 0xe3, 0x3b, 0xb7, 0x8b, 0x2a, 0xeb, 0x63, 0xe7, 0x33, 0xd0, 0x76,
+ 0x96, 0x38, 0xcc, 0x6e, 0x05, 0x41, 0xa8, 0xd3, 0x5e, 0x3f, 0x38, 0x5e, 0xb5, 0x3c, 0x39, 0x02,
+ 0x33, 0xe3, 0x56, 0x6f, 0x49, 0x1e, 0x51, 0x55, 0xda, 0x28, 0xf8, 0x47, 0xa4, 0x28, 0x18, 0xe2,
+ 0x90, 0x03, 0xa8, 0x3b, 0xee, 0x7b, 0x3e, 0xeb, 0x0e, 0x39, 0x1c, 0xdf, 0x1c, 0xbf, 0xcb, 0x45,
+ 0xb7, 0x0a, 0x97, 0x86, 0xfc, 0x83, 0x35, 0x47, 0x76, 0xf6, 0xaf, 0x17, 0xe1, 0x52, 0x46, 0x3f,
+ 0x90, 0x37, 0x61, 0x4e, 0xc6, 0x6e, 0x46, 0xc9, 0xee, 0x0b, 0x51, 0xb2, 0xfb, 0x4e, 0x8a, 0x86,
+ 0x43, 0xdc, 0xe4, 0x3d, 0x00, 0xdd, 0x30, 0xa8, 0xef, 0x6f, 0xb9, 0xa6, 0xda, 0x0f, 0xbc, 0xc1,
+ 0xd4, 0x97, 0xe5, 0xb0, 0xf4, 0xd1, 0x49, 0xeb, 0xa7, 0xb3, 0xc2, 0xb1, 0x53, 0xfd, 0x1c, 0x55,
+ 0xc0, 0x18, 0x24, 0xf9, 0x06, 0x80, 0xb0, 0x01, 0x84, 0x19, 0x23, 0x9e, 0x60, 0x38, 0x5b, 0x50,
+ 0x09, 0xc9, 0x16, 0xbe, 0x36, 0xd0, 0x9d, 0xc0, 0x0a, 0x8e, 0x45, 0x82, 0x9e, 0xfb, 0x21, 0x0a,
+ 0xc6, 0x10, 0xb5, 0x7f, 0x56, 0x84, 0xba, 0x72, 0x0b, 0x3c, 0x05, 0x5b, 0x70, 0x37, 0x61, 0x0b,
+ 0x9e, 0x50, 0x00, 0x76, 0x96, 0x25, 0xd8, 0x4d, 0x59, 0x82, 0xd7, 0xf3, 0x8b, 0x7a, 0xbc, 0x1d,
+ 0xf8, 0xb7, 0x8b, 0x30, 0xa3, 0x58, 0xf3, 0x5a, 0x68, 0xbf, 0x02, 0xb3, 0x22, 0x70, 0x62, 0x4b,
+ 0x7f, 0x28, 0x72, 0x15, 0xf1, 0x0e, 0x2b, 0x8b, 0x98, 0xe7, 0x76, 0x92, 0x84, 0x69, 0x5e, 0x36,
+ 0xac, 0x45, 0xd1, 0x2e, 0xdb, 0x84, 0x09, 0x57, 0xab, 0xd8, 0x6f, 0xf2, 0x61, 0xdd, 0x4e, 0xd1,
+ 0x70, 0x88, 0x3b, 0x6d, 0x22, 0x2e, 0x5f, 0x80, 0x89, 0xf8, 0x3f, 0x14, 0x60, 0x2a, 0xea, 0xaf,
+ 0x0b, 0x37, 0x10, 0xef, 0x27, 0x0d, 0xc4, 0xcb, 0xb9, 0x87, 0xc3, 0x08, 0xf3, 0xf0, 0x5f, 0xaa,
+ 0x41, 0xe2, 0x1c, 0x00, 0xd9, 0x83, 0x6b, 0x56, 0x66, 0x34, 0x63, 0x6c, 0xb6, 0x09, 0x0f, 0xb6,
+ 0x6f, 0x8c, 0xe4, 0xc4, 0xc7, 0xa0, 0x90, 0x01, 0xd4, 0x8f, 0xa8, 0x17, 0x58, 0x06, 0x55, 0xcf,
+ 0xb7, 0x9e, 0x5b, 0x25, 0x93, 0x46, 0xf0, 0xb0, 0x4f, 0xef, 0x4b, 0x01, 0x18, 0x8a, 0x22, 0x7b,
+ 0x50, 0xa1, 0x66, 0x97, 0xaa, 0xec, 0x51, 0x39, 0xb3, 0xf0, 0x86, 0xfd, 0xc9, 0xfe, 0xf9, 0x28,
+ 0xa0, 0x89, 0x1f, 0x37, 0x34, 0x95, 0x73, 0x2a, 0x58, 0x67, 0x34, 0x2f, 0x91, 0xc3, 0xd0, 0xda,
+ 0x5a, 0x99, 0xd0, 0xe4, 0xf1, 0x18, 0x5b, 0xab, 0x0f, 0x8d, 0x07, 0x7a, 0x40, 0xbd, 0x9e, 0xee,
+ 0x1d, 0xca, 0xdd, 0xc6, 0xf8, 0x4f, 0xf8, 0xb6, 0x42, 0x8a, 0x9e, 0x30, 0x2c, 0xc2, 0x48, 0x0e,
+ 0x71, 0xa1, 0x11, 0x48, 0xf5, 0x59, 0x99, 0x94, 0xc7, 0x17, 0xaa, 0x14, 0x71, 0x5f, 0x9e, 0x07,
+ 0x50, 0x7f, 0x31, 0x92, 0x41, 0x8e, 0x12, 0x29, 0xdb, 0x45, 0xa2, 0xfe, 0x76, 0x0e, 0xd7, 0x84,
+ 0x84, 0x8a, 0x96, 0x9b, 0xec, 0xd4, 0xef, 0xda, 0xff, 0xaa, 0x44, 0xd3, 0xf2, 0xd3, 0xb6, 0x13,
+ 0x7e, 0x31, 0x69, 0x27, 0xbc, 0x9e, 0xb6, 0x13, 0xa6, 0xfc, 0xf1, 0xe7, 0x8f, 0x20, 0x4e, 0x99,
+ 0xd7, 0xca, 0x17, 0x60, 0x5e, 0x7b, 0x05, 0x9a, 0x47, 0x7c, 0x26, 0x10, 0xa9, 0xa8, 0x2a, 0x7c,
+ 0x19, 0xe1, 0x33, 0xfb, 0xfd, 0xa8, 0x18, 0xe3, 0x3c, 0xac, 0x8a, 0xbc, 0xa4, 0x26, 0xcc, 0xda,
+ 0x2c, 0xab, 0x74, 0xa2, 0x62, 0x8c, 0xf3, 0xf0, 0xe0, 0x43, 0xcb, 0x39, 0x14, 0x15, 0x6a, 0xbc,
+ 0x82, 0x08, 0x3e, 0x54, 0x85, 0x18, 0xd1, 0xc9, 0x4d, 0xa8, 0x0f, 0xcc, 0x7d, 0xc1, 0x5b, 0xe7,
+ 0xbc, 0x5c, 0xc3, 0xdc, 0x5d, 0x5d, 0x93, 0xa9, 0xb1, 0x14, 0x95, 0xb5, 0xa4, 0xa7, 0xf7, 0x15,
+ 0x81, 0xef, 0x0d, 0x65, 0x4b, 0xb6, 0xa2, 0x62, 0x8c, 0xf3, 0x90, 0x9f, 0x85, 0x19, 0x8f, 0x9a,
+ 0x03, 0x83, 0x86, 0xb5, 0x80, 0xd7, 0x92, 0x39, 0x43, 0xe3, 0x14, 0x4c, 0x71, 0x8e, 0x30, 0x12,
+ 0x36, 0xc7, 0x32, 0x12, 0x7e, 0x15, 0x66, 0x4c, 0x4f, 0xb7, 0x1c, 0x6a, 0xde, 0x73, 0x78, 0xd0,
+ 0x85, 0x0c, 0x81, 0x0c, 0x0d, 0xf4, 0xab, 0x09, 0x2a, 0xa6, 0xb8, 0xb5, 0x7f, 0x55, 0x84, 0x8a,
+ 0xc8, 0x64, 0xba, 0x01, 0x97, 0x2c, 0xc7, 0x0a, 0x2c, 0xdd, 0x5e, 0xa5, 0xb6, 0x7e, 0x9c, 0x0c,
+ 0x3c, 0x79, 0x91, 0x6d, 0xb4, 0x37, 0x86, 0xc9, 0x98, 0x55, 0x87, 0x75, 0x4e, 0x20, 0x96, 0x6f,
+ 0x85, 0x22, 0xec, 0x68, 0x22, 0xfd, 0x75, 0x82, 0x82, 0x29, 0x4e, 0xa6, 0x0c, 0xf5, 0x33, 0xa2,
+ 0x4a, 0xb8, 0x32, 0x94, 0x8c, 0x25, 0x49, 0xf2, 0x71, 0x25, 0x7d, 0xc0, 0x15, 0xe2, 0xf0, 0xa0,
+ 0x91, 0x0c, 0x1c, 0x13, 0x4a, 0x7a, 0x8a, 0x86, 0x43, 0xdc, 0x0c, 0x61, 0x5f, 0xb7, 0xec, 0x81,
+ 0x47, 0x23, 0x84, 0x4a, 0x84, 0xb0, 0x96, 0xa2, 0xe1, 0x10, 0xb7, 0xf6, 0x3f, 0x0a, 0x40, 0x86,
+ 0x8f, 0x4e, 0x90, 0x03, 0xa8, 0x3a, 0xdc, 0x16, 0x99, 0x3b, 0xeb, 0x7e, 0xcc, 0xa4, 0x29, 0x16,
+ 0x09, 0x59, 0x20, 0xf1, 0x89, 0x03, 0x75, 0xfa, 0x30, 0xa0, 0x9e, 0x13, 0x1e, 0xa5, 0x9a, 0x4c,
+ 0x86, 0x7f, 0xb1, 0x37, 0x93, 0xc8, 0x18, 0xca, 0xd0, 0x7e, 0xbf, 0x08, 0xcd, 0x18, 0xdf, 0x93,
+ 0xb6, 0xf8, 0x3c, 0x9b, 0x83, 0x30, 0x01, 0xee, 0x7a, 0xb6, 0x9c, 0xef, 0x62, 0xd9, 0x1c, 0x24,
+ 0x09, 0x37, 0x31, 0xce, 0x47, 0x96, 0x00, 0x7a, 0xba, 0x1f, 0x50, 0x8f, 0xeb, 0x42, 0xa9, 0x1c,
+ 0x0a, 0x5b, 0x21, 0x05, 0x63, 0x5c, 0xe4, 0x86, 0xbc, 0xa3, 0xa1, 0x9c, 0xcc, 0x79, 0x39, 0xe2,
+ 0x02, 0x86, 0xca, 0x04, 0x2e, 0x60, 0x20, 0x5d, 0x98, 0x53, 0xad, 0x56, 0xd4, 0xf3, 0x65, 0x44,
+ 0x14, 0x03, 0x35, 0x05, 0x81, 0x43, 0xa0, 0xda, 0xf7, 0x0a, 0x30, 0x9d, 0x30, 0x40, 0x89, 0x6c,
+ 0x95, 0xea, 0xe0, 0x4f, 0x22, 0x5b, 0x65, 0xec, 0xbc, 0xce, 0xe7, 0xa1, 0x2a, 0x3a, 0x28, 0x1d,
+ 0xcf, 0x2b, 0xba, 0x10, 0x25, 0x95, 0xad, 0x2c, 0xd2, 0xc4, 0x9d, 0x5e, 0x59, 0xa4, 0x0d, 0x1c,
+ 0x15, 0x5d, 0x78, 0x8e, 0x44, 0xeb, 0x64, 0x4f, 0xc7, 0x3c, 0x47, 0xa2, 0x1c, 0x43, 0x0e, 0xed,
+ 0x1f, 0xf1, 0x76, 0x07, 0xde, 0x71, 0xb8, 0xb3, 0xee, 0x42, 0x4d, 0xc6, 0x70, 0xca, 0x4f, 0xe3,
+ 0xcd, 0x1c, 0x56, 0x31, 0x8e, 0x23, 0xa3, 0x15, 0x75, 0xe3, 0xf0, 0xde, 0xfe, 0x3e, 0x2a, 0x74,
+ 0x72, 0x0b, 0x1a, 0xae, 0x23, 0xbf, 0x60, 0xf9, 0xf8, 0x5f, 0x60, 0x2b, 0xc7, 0x3d, 0x55, 0xf8,
+ 0xe8, 0xa4, 0x75, 0x25, 0xfc, 0x93, 0x68, 0x24, 0x46, 0x35, 0xb5, 0x3f, 0x57, 0x80, 0x17, 0xd0,
+ 0xb5, 0x6d, 0xcb, 0xe9, 0x26, 0x3d, 0x9f, 0xc4, 0x86, 0x99, 0x9e, 0xfe, 0x70, 0xd7, 0xd1, 0x8f,
+ 0x74, 0xcb, 0xd6, 0xf7, 0x6c, 0xfa, 0xc4, 0x9d, 0xf1, 0x20, 0xb0, 0xec, 0x05, 0x71, 0x67, 0xe5,
+ 0xc2, 0x86, 0x13, 0xdc, 0xf3, 0x3a, 0x81, 0x67, 0x39, 0x5d, 0x31, 0x4b, 0x6e, 0x25, 0xb0, 0x30,
+ 0x85, 0xad, 0xfd, 0x41, 0x09, 0x78, 0x1c, 0x21, 0xf9, 0x12, 0x34, 0x7a, 0xd4, 0x38, 0xd0, 0x1d,
+ 0xcb, 0x57, 0x79, 0x7f, 0xaf, 0xb2, 0xe7, 0xda, 0x52, 0x85, 0x8f, 0xd8, 0xab, 0x58, 0xee, 0x6c,
+ 0xf2, 0xa3, 0x3a, 0x11, 0x2f, 0x31, 0xa0, 0xda, 0xf5, 0x7d, 0xbd, 0x6f, 0xe5, 0x0e, 0x31, 0x11,
+ 0x79, 0x56, 0xc5, 0x74, 0x24, 0x7e, 0xa3, 0x84, 0x26, 0x06, 0x54, 0xfa, 0xb6, 0x6e, 0x39, 0xb9,
+ 0xef, 0x58, 0x63, 0x4f, 0xb0, 0xcd, 0x90, 0x84, 0xa9, 0x92, 0xff, 0x44, 0x81, 0x4d, 0x06, 0xd0,
+ 0xf4, 0x0d, 0x4f, 0xef, 0xf9, 0x07, 0xfa, 0xd2, 0xab, 0xaf, 0xe5, 0x56, 0xfe, 0x23, 0x51, 0x42,
+ 0x17, 0x59, 0xc1, 0xe5, 0xad, 0xce, 0xed, 0xe5, 0xa5, 0x57, 0x5f, 0xc3, 0xb8, 0x9c, 0xb8, 0xd8,
+ 0x57, 0x5f, 0x59, 0x92, 0x33, 0xc8, 0xc4, 0xc5, 0xbe, 0xfa, 0xca, 0x12, 0xc6, 0xe5, 0x68, 0xff,
+ 0xbb, 0x00, 0x8d, 0x90, 0x97, 0xec, 0x02, 0xb0, 0xb9, 0x4c, 0x66, 0x46, 0x3d, 0xd7, 0x7d, 0x34,
+ 0xdc, 0xda, 0xb3, 0x1b, 0x56, 0xc6, 0x18, 0x50, 0x46, 0xea, 0xd8, 0xe2, 0xa4, 0x53, 0xc7, 0x2e,
+ 0x42, 0xe3, 0x40, 0x77, 0x4c, 0xff, 0x40, 0x3f, 0x14, 0x53, 0x7a, 0x2c, 0x99, 0xf2, 0x6d, 0x45,
+ 0xc0, 0x88, 0x47, 0xfb, 0x27, 0x55, 0x10, 0x71, 0x21, 0x6c, 0xd2, 0x31, 0x2d, 0x5f, 0x1c, 0x7e,
+ 0x28, 0xf0, 0x9a, 0xe1, 0xa4, 0xb3, 0x2a, 0xcb, 0x31, 0xe4, 0x20, 0x57, 0xa1, 0xd4, 0xb3, 0x1c,
+ 0xa9, 0x81, 0x70, 0x43, 0xee, 0x96, 0xe5, 0x20, 0x2b, 0xe3, 0x24, 0xfd, 0xa1, 0xd4, 0x30, 0x04,
+ 0x49, 0x7f, 0x88, 0xac, 0x8c, 0x7c, 0x05, 0x66, 0x6d, 0xd7, 0x3d, 0x64, 0xd3, 0x87, 0x52, 0x44,
+ 0x84, 0x57, 0x9d, 0x9b, 0x56, 0x36, 0x93, 0x24, 0x4c, 0xf3, 0x92, 0x5d, 0x78, 0xf1, 0x03, 0xea,
+ 0xb9, 0x72, 0xbe, 0xec, 0xd8, 0x94, 0xf6, 0x15, 0x8c, 0x50, 0x8d, 0x79, 0x94, 0xec, 0x2f, 0x64,
+ 0xb3, 0xe0, 0xa8, 0xba, 0x3c, 0xde, 0x5e, 0xf7, 0xba, 0x34, 0xd8, 0xf6, 0x5c, 0xa6, 0xbb, 0x58,
+ 0x4e, 0x57, 0xc1, 0x56, 0x23, 0xd8, 0x9d, 0x6c, 0x16, 0x1c, 0x55, 0x97, 0xbc, 0x03, 0xf3, 0x82,
+ 0x24, 0xd4, 0x96, 0x65, 0x31, 0xcd, 0x58, 0xb6, 0xba, 0x9a, 0x74, 0x5a, 0xf8, 0xcb, 0x76, 0x46,
+ 0xf0, 0xe0, 0xc8, 0xda, 0xe4, 0x2d, 0x98, 0x53, 0xde, 0xd2, 0x6d, 0xea, 0x75, 0xc2, 0x58, 0xa1,
+ 0xe9, 0xf6, 0xf5, 0xd3, 0x93, 0xd6, 0xb5, 0x55, 0xda, 0xf7, 0xa8, 0x11, 0xf7, 0x3a, 0x2b, 0x2e,
+ 0x1c, 0xaa, 0x47, 0x10, 0xae, 0xf0, 0x80, 0xa0, 0xdd, 0xfe, 0x8a, 0xeb, 0xda, 0xa6, 0xfb, 0xc0,
+ 0x51, 0xcf, 0x2e, 0x14, 0x76, 0xee, 0x20, 0xed, 0x64, 0x72, 0xe0, 0x88, 0x9a, 0xec, 0xc9, 0x39,
+ 0x65, 0xd5, 0x7d, 0xe0, 0xa4, 0x51, 0x21, 0x7a, 0xf2, 0xce, 0x08, 0x1e, 0x1c, 0x59, 0x9b, 0xac,
+ 0x01, 0x49, 0x3f, 0xc1, 0x6e, 0x5f, 0xba, 0xf0, 0xaf, 0x88, 0x24, 0x47, 0x69, 0x2a, 0x66, 0xd4,
+ 0x20, 0x9b, 0x70, 0x39, 0x5d, 0xca, 0xc4, 0x49, 0x6f, 0x3e, 0x4f, 0x6f, 0x8c, 0x19, 0x74, 0xcc,
+ 0xac, 0xa5, 0xfd, 0xd3, 0x22, 0x4c, 0x27, 0xb2, 0x62, 0x3c, 0x73, 0xd9, 0x07, 0xd8, 0xe6, 0xa1,
+ 0xe7, 0x77, 0x37, 0x56, 0x6f, 0x53, 0xdd, 0xa4, 0xde, 0x1d, 0xaa, 0x32, 0x98, 0x88, 0x65, 0x31,
+ 0x41, 0xc1, 0x14, 0x27, 0xd9, 0x87, 0x8a, 0xf0, 0x13, 0xe4, 0xbd, 0xd9, 0x48, 0xf5, 0x11, 0x77,
+ 0x16, 0xc8, 0xeb, 0xc0, 0x5c, 0x8f, 0xa2, 0x80, 0xd7, 0x02, 0x98, 0x8a, 0x73, 0xb0, 0x89, 0x24,
+ 0x52, 0x7b, 0x6b, 0x09, 0x95, 0x77, 0x03, 0x4a, 0x41, 0x30, 0x6e, 0x5e, 0x03, 0xe1, 0x77, 0xda,
+ 0xd9, 0x44, 0x86, 0xa1, 0xed, 0xb3, 0x77, 0xe7, 0xfb, 0x96, 0xeb, 0xc8, 0x24, 0xf7, 0xbb, 0x50,
+ 0x93, 0xbb, 0xa7, 0x31, 0xf3, 0x32, 0x70, 0x5d, 0x49, 0x99, 0x5d, 0x15, 0x96, 0xf6, 0x1f, 0x8b,
+ 0xd0, 0x08, 0xcd, 0x24, 0x67, 0x48, 0x1e, 0xef, 0x42, 0x23, 0x0c, 0x68, 0xcc, 0x7d, 0x6d, 0x6b,
+ 0x14, 0x67, 0xc7, 0x77, 0xf6, 0xe1, 0x5f, 0x8c, 0x64, 0xc4, 0x83, 0x25, 0x4b, 0x39, 0x82, 0x25,
+ 0xfb, 0x50, 0x0b, 0x3c, 0xab, 0xdb, 0x95, 0xbb, 0x84, 0x3c, 0xd1, 0x92, 0x61, 0x77, 0xed, 0x08,
+ 0x40, 0xd9, 0xb3, 0xe2, 0x0f, 0x2a, 0x31, 0xda, 0xfb, 0x30, 0x97, 0xe6, 0xe4, 0x2a, 0xb4, 0x71,
+ 0x40, 0xcd, 0x81, 0xad, 0xfa, 0x38, 0x52, 0xa1, 0x65, 0x39, 0x86, 0x1c, 0xe4, 0x26, 0xd4, 0xd9,
+ 0x6b, 0xfa, 0xc0, 0x75, 0x94, 0x1a, 0xcb, 0x77, 0x23, 0x3b, 0xb2, 0x0c, 0x43, 0xaa, 0xf6, 0xdf,
+ 0x4a, 0x70, 0x35, 0x32, 0x76, 0x6d, 0xe9, 0x8e, 0xde, 0x3d, 0xc3, 0x5d, 0x9d, 0x9f, 0x9e, 0x74,
+ 0x3b, 0xef, 0x0d, 0x20, 0xa5, 0x67, 0xe0, 0x06, 0x90, 0xff, 0x5b, 0x04, 0x1e, 0x7c, 0x4d, 0xbe,
+ 0x05, 0x53, 0x7a, 0xec, 0x9a, 0x66, 0xf9, 0x3a, 0x6f, 0xe5, 0x7e, 0x9d, 0x3c, 0xc6, 0x3b, 0x0c,
+ 0x80, 0x8b, 0x97, 0x62, 0x42, 0x20, 0x71, 0xa1, 0xbe, 0xaf, 0xdb, 0x36, 0xd3, 0x85, 0x72, 0x3b,
+ 0xef, 0x12, 0xc2, 0xf9, 0x30, 0x5f, 0x93, 0xd0, 0x18, 0x0a, 0x21, 0xdf, 0x29, 0xc0, 0xb4, 0x17,
+ 0xdf, 0xae, 0xc9, 0x17, 0x92, 0x27, 0xb4, 0x23, 0x86, 0x16, 0x0f, 0xb7, 0x8b, 0xef, 0x09, 0x93,
+ 0x32, 0xb5, 0xff, 0x5a, 0x80, 0xe9, 0x8e, 0x6d, 0x99, 0x96, 0xd3, 0xbd, 0xc0, 0x0b, 0x48, 0xee,
+ 0x41, 0xc5, 0xb7, 0x2d, 0x93, 0x8e, 0xb9, 0x9a, 0x88, 0x75, 0x8c, 0x01, 0xa0, 0xc0, 0x49, 0xde,
+ 0x68, 0x52, 0x3a, 0xc3, 0x8d, 0x26, 0x7f, 0x54, 0x05, 0x79, 0x8c, 0x80, 0x0c, 0xa0, 0xd1, 0x55,
+ 0x17, 0x25, 0xc8, 0x67, 0xbc, 0x9d, 0x23, 0xc9, 0x66, 0xe2, 0xca, 0x05, 0x31, 0xf7, 0x87, 0x85,
+ 0x18, 0x49, 0x22, 0x34, 0x79, 0x3f, 0xf8, 0x6a, 0xce, 0xfb, 0xc1, 0x85, 0xb8, 0xe1, 0x1b, 0xc2,
+ 0x75, 0x28, 0x1f, 0x04, 0x41, 0x5f, 0x0e, 0xa6, 0xf1, 0xcf, 0x89, 0x44, 0x79, 0x9e, 0x84, 0x4e,
+ 0xc4, 0xfe, 0x23, 0x87, 0x66, 0x22, 0x1c, 0x3d, 0xbc, 0x85, 0x71, 0x25, 0x57, 0x18, 0x49, 0x5c,
+ 0x04, 0xfb, 0x8f, 0x1c, 0x9a, 0xfc, 0x12, 0x34, 0x03, 0x4f, 0x77, 0xfc, 0x7d, 0xd7, 0xeb, 0x51,
+ 0x4f, 0xee, 0x51, 0xd7, 0x72, 0x5c, 0x91, 0xbd, 0x13, 0xa1, 0x09, 0x93, 0x6c, 0xa2, 0x08, 0xe3,
+ 0xd2, 0xc8, 0x21, 0xd4, 0x07, 0xa6, 0x68, 0x98, 0x34, 0x83, 0x2d, 0xe7, 0xb9, 0xf5, 0x3c, 0x16,
+ 0x24, 0xa2, 0xfe, 0x61, 0x28, 0x20, 0x79, 0xe1, 0x68, 0x6d, 0x52, 0x17, 0x8e, 0xc6, 0x47, 0x63,
+ 0x56, 0x12, 0x1a, 0xd2, 0x93, 0x7a, 0xad, 0xd3, 0x95, 0x31, 0x6e, 0x6b, 0xb9, 0x55, 0x4e, 0x21,
+ 0xb2, 0x19, 0xea, 0xc6, 0x4e, 0x17, 0x95, 0x0c, 0xad, 0x07, 0xd2, 0x77, 0x44, 0x8c, 0xc4, 0x65,
+ 0x4d, 0xe2, 0x64, 0xe4, 0xe2, 0xd9, 0xe6, 0x83, 0xf0, 0xd6, 0xa0, 0x58, 0xb2, 0xf8, 0xcc, 0x5b,
+ 0x99, 0xb4, 0xff, 0x54, 0x84, 0xd2, 0xce, 0x66, 0x47, 0x24, 0x80, 0xe5, 0xd7, 0xbf, 0xd1, 0xce,
+ 0xa1, 0xd5, 0xbf, 0x4f, 0x3d, 0x6b, 0xff, 0x58, 0x6e, 0xbd, 0x63, 0x09, 0x60, 0xd3, 0x1c, 0x98,
+ 0x51, 0x8b, 0xbc, 0x0b, 0x53, 0x86, 0xbe, 0x42, 0xbd, 0x60, 0x1c, 0xc3, 0x02, 0x3f, 0x02, 0xbe,
+ 0xb2, 0x1c, 0x55, 0xc7, 0x04, 0x18, 0xd9, 0x05, 0x30, 0x22, 0xe8, 0xd2, 0xb9, 0xcd, 0x21, 0x31,
+ 0xe0, 0x18, 0x10, 0x41, 0x68, 0x1c, 0x32, 0x56, 0x8e, 0x5a, 0x3e, 0x0f, 0x2a, 0x1f, 0x39, 0x77,
+ 0x54, 0x5d, 0x8c, 0x60, 0x34, 0x07, 0xa6, 0x13, 0x37, 0x38, 0x91, 0x2f, 0x43, 0xdd, 0xed, 0xc7,
+ 0xa6, 0xd3, 0x06, 0x8f, 0xa6, 0xad, 0xdf, 0x93, 0x65, 0x8f, 0x4e, 0x5a, 0xd3, 0x9b, 0x6e, 0xd7,
+ 0x32, 0x54, 0x01, 0x86, 0xec, 0x44, 0x83, 0x2a, 0x3f, 0xb7, 0xa9, 0xee, 0x6f, 0xe2, 0x6b, 0x07,
+ 0xbf, 0x62, 0xc5, 0x47, 0x49, 0xd1, 0x7e, 0xa5, 0x0c, 0x91, 0xc7, 0x95, 0xf8, 0x50, 0x15, 0x67,
+ 0x46, 0xe4, 0xcc, 0x7d, 0xa1, 0xc7, 0x53, 0xa4, 0x28, 0xd2, 0x85, 0xd2, 0xfb, 0xee, 0x5e, 0xee,
+ 0x89, 0x3b, 0x96, 0xb0, 0x41, 0xd8, 0xca, 0x62, 0x05, 0xc8, 0x24, 0x90, 0xbf, 0x5e, 0x80, 0xe7,
+ 0xfd, 0xb4, 0xea, 0x2b, 0x87, 0x03, 0xe6, 0xd7, 0xf1, 0xd3, 0xca, 0xb4, 0x0c, 0x7b, 0x1e, 0x45,
+ 0xc6, 0xe1, 0xb6, 0xb0, 0xfe, 0x17, 0xae, 0x50, 0x39, 0x9c, 0xd6, 0x73, 0xde, 0x2f, 0x9b, 0xec,
+ 0xff, 0x64, 0x19, 0x4a, 0x51, 0xda, 0xb7, 0x8b, 0xd0, 0x8c, 0xcd, 0xd6, 0xb9, 0xaf, 0x05, 0x7b,
+ 0x98, 0xba, 0x16, 0x6c, 0x7b, 0xfc, 0xc8, 0x80, 0xa8, 0x55, 0x17, 0x7d, 0x33, 0xd8, 0xbf, 0x28,
+ 0x42, 0x69, 0x77, 0x75, 0x2d, 0xb9, 0x69, 0x2d, 0x3c, 0x85, 0x4d, 0xeb, 0x01, 0xd4, 0xf6, 0x06,
+ 0x96, 0x1d, 0x58, 0x4e, 0xee, 0x94, 0x32, 0xea, 0x16, 0x35, 0xe9, 0xeb, 0x10, 0xa8, 0xa8, 0xe0,
+ 0x49, 0x17, 0x6a, 0x5d, 0x91, 0xd3, 0x33, 0x77, 0xbc, 0xa4, 0xcc, 0x0d, 0x2a, 0x04, 0xc9, 0x3f,
+ 0xa8, 0xd0, 0xb5, 0x63, 0xa8, 0xee, 0xae, 0x4a, 0xb5, 0xff, 0xe9, 0xf6, 0xa6, 0xf6, 0x4b, 0x10,
+ 0x6a, 0x01, 0x4f, 0x5f, 0xf8, 0xef, 0x16, 0x20, 0xa9, 0xf8, 0x3c, 0xfd, 0xd1, 0x74, 0x98, 0x1e,
+ 0x4d, 0xab, 0x93, 0xf8, 0xf8, 0xb2, 0x07, 0x94, 0xf6, 0xef, 0x0b, 0x90, 0x3a, 0xe8, 0x47, 0x5e,
+ 0x93, 0xe9, 0xe1, 0x92, 0x81, 0x69, 0x2a, 0x3d, 0x1c, 0x49, 0x72, 0xc7, 0xd2, 0xc4, 0x7d, 0xc8,
+ 0xb6, 0x6b, 0x71, 0x07, 0x9a, 0x6c, 0xfe, 0xdd, 0xf1, 0xb7, 0x6b, 0x59, 0xee, 0x38, 0x19, 0x3c,
+ 0x19, 0x27, 0x61, 0x52, 0xae, 0xf6, 0x8f, 0x8b, 0x50, 0x7d, 0x6a, 0xb9, 0x0d, 0x68, 0x22, 0x9e,
+ 0x75, 0x25, 0xe7, 0x6c, 0x3f, 0x32, 0x9a, 0xb5, 0x97, 0x8a, 0x66, 0xcd, 0x7b, 0x6d, 0xf9, 0x13,
+ 0x62, 0x59, 0xff, 0x6d, 0x01, 0xe4, 0x5a, 0xb3, 0xe1, 0xf8, 0x81, 0xee, 0x18, 0x94, 0x18, 0xe1,
+ 0xc2, 0x96, 0x37, 0x68, 0x4a, 0x06, 0x16, 0x0a, 0x5d, 0x86, 0xff, 0x56, 0x0b, 0x19, 0xf9, 0x29,
+ 0xa8, 0x1f, 0xb8, 0x7e, 0xc0, 0x17, 0xaf, 0x62, 0xd2, 0x64, 0x76, 0x5b, 0x96, 0x63, 0xc8, 0x91,
+ 0x76, 0x67, 0x57, 0x46, 0xbb, 0xb3, 0xb5, 0xdf, 0x2a, 0xc2, 0xd4, 0x27, 0x25, 0x79, 0x42, 0x56,
+ 0xf4, 0x6f, 0x29, 0x67, 0xf4, 0x6f, 0xf9, 0x3c, 0xd1, 0xbf, 0xda, 0x0f, 0x0a, 0x00, 0x4f, 0x2d,
+ 0x73, 0x83, 0x99, 0x0c, 0xcc, 0xcd, 0x3d, 0xae, 0xb2, 0xc3, 0x72, 0xff, 0x41, 0x45, 0x3d, 0x12,
+ 0x0f, 0xca, 0xfd, 0xb0, 0x00, 0x33, 0x7a, 0x22, 0xd0, 0x35, 0xb7, 0xbe, 0x9c, 0x8a, 0x9b, 0x0d,
+ 0xe3, 0xb4, 0x92, 0xe5, 0x98, 0x12, 0x4b, 0x5e, 0x8f, 0x32, 0x93, 0xdf, 0x8d, 0x86, 0xfd, 0x50,
+ 0x4a, 0x71, 0xae, 0xbb, 0x25, 0x38, 0x9f, 0x10, 0x58, 0x5c, 0x9a, 0x48, 0x60, 0x71, 0xfc, 0xc8,
+ 0x64, 0xf9, 0xb1, 0x47, 0x26, 0x8f, 0xa0, 0xb1, 0xef, 0xb9, 0x3d, 0x1e, 0xbb, 0x2b, 0xef, 0xfe,
+ 0xbe, 0x95, 0x63, 0xa1, 0xec, 0xed, 0x59, 0x0e, 0x35, 0x79, 0x5c, 0x70, 0x68, 0xb8, 0x5a, 0x53,
+ 0xf8, 0x18, 0x89, 0xe2, 0xb6, 0x7e, 0x57, 0x48, 0xad, 0x4e, 0x52, 0x6a, 0x38, 0x97, 0xec, 0x08,
+ 0x74, 0x54, 0x62, 0x92, 0xf1, 0xba, 0xb5, 0xa7, 0x13, 0xaf, 0xab, 0xfd, 0xc5, 0x9a, 0x9a, 0xc0,
+ 0x9e, 0xb9, 0x24, 0xb8, 0x9f, 0x1e, 0x74, 0xef, 0xd2, 0xa1, 0x53, 0xe8, 0xf5, 0xa7, 0x78, 0x0a,
+ 0xbd, 0x31, 0x99, 0x53, 0xe8, 0x90, 0xef, 0x14, 0x7a, 0x73, 0x42, 0xa7, 0xd0, 0xa7, 0x26, 0x75,
+ 0x0a, 0x7d, 0x7a, 0xac, 0x53, 0xe8, 0x33, 0x67, 0x3a, 0x85, 0x7e, 0x52, 0x82, 0xd4, 0x66, 0xfc,
+ 0x53, 0xc7, 0xdb, 0xff, 0x57, 0x8e, 0xb7, 0xef, 0x16, 0x21, 0x9a, 0x88, 0xcf, 0x19, 0x98, 0xf4,
+ 0x0e, 0xd4, 0x7b, 0xfa, 0x43, 0x1e, 0x38, 0x9d, 0xe7, 0xee, 0xe8, 0x2d, 0x89, 0x81, 0x21, 0x1a,
+ 0xf1, 0x01, 0xac, 0xf0, 0xfe, 0x86, 0xdc, 0x2e, 0x8c, 0xe8, 0x2a, 0x08, 0x61, 0x24, 0x8d, 0xfe,
+ 0x63, 0x4c, 0x8c, 0xf6, 0x6f, 0x8a, 0x20, 0x2f, 0xfa, 0x20, 0x14, 0x2a, 0xfb, 0xd6, 0x43, 0x6a,
+ 0xe6, 0x0e, 0x77, 0x8e, 0xdd, 0xe8, 0x2f, 0x7c, 0x34, 0xbc, 0x00, 0x05, 0x3a, 0x37, 0xbe, 0x0b,
+ 0x9f, 0x9b, 0xec, 0xbf, 0x1c, 0xc6, 0xf7, 0xb8, 0xef, 0x4e, 0x1a, 0xdf, 0x45, 0x11, 0x2a, 0x19,
+ 0xc2, 0xd6, 0xcf, 0xc3, 0x2f, 0x72, 0xbb, 0x18, 0x13, 0x61, 0x1c, 0xca, 0xd6, 0xef, 0x8b, 0x34,
+ 0x14, 0x52, 0x46, 0xfb, 0x17, 0xbf, 0xff, 0xc3, 0xeb, 0xcf, 0xfd, 0xe0, 0x87, 0xd7, 0x9f, 0xfb,
+ 0xe8, 0x87, 0xd7, 0x9f, 0xfb, 0x95, 0xd3, 0xeb, 0x85, 0xef, 0x9f, 0x5e, 0x2f, 0xfc, 0xe0, 0xf4,
+ 0x7a, 0xe1, 0xa3, 0xd3, 0xeb, 0x85, 0xff, 0x7c, 0x7a, 0xbd, 0xf0, 0x57, 0xfe, 0xcb, 0xf5, 0xe7,
+ 0x7e, 0xe1, 0x4b, 0x51, 0x13, 0x16, 0x55, 0x13, 0x16, 0x95, 0xc0, 0xc5, 0xfe, 0x61, 0x77, 0x91,
+ 0x35, 0x21, 0x2a, 0x51, 0x4d, 0xf8, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xad, 0x0f, 0x6c, 0xf9,
+ 0xf5, 0x9e, 0x00, 0x00,
}
func (m *AbstractPodTemplate) Marshal() (dAtA []byte, err error) {
@@ -6393,6 +6425,34 @@ func (m *MonoVertex) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *MonoVertexLifecycle) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MonoVertexLifecycle) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *MonoVertexLifecycle) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ i -= len(m.DesiredPhase)
+ copy(dAtA[i:], m.DesiredPhase)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.DesiredPhase)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func (m *MonoVertexLimits) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -6500,6 +6560,16 @@ func (m *MonoVertexSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ {
+ size, err := m.Lifecycle.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x6a
{
size, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -10653,6 +10723,17 @@ func (m *MonoVertex) Size() (n int) {
return n
}
+func (m *MonoVertexLifecycle) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.DesiredPhase)
+ n += 1 + l + sovGenerated(uint64(l))
+ return n
+}
+
func (m *MonoVertexLimits) Size() (n int) {
if m == nil {
return 0
@@ -10739,6 +10820,8 @@ func (m *MonoVertexSpec) Size() (n int) {
}
l = m.UpdateStrategy.Size()
n += 1 + l + sovGenerated(uint64(l))
+ l = m.Lifecycle.Size()
+ n += 1 + l + sovGenerated(uint64(l))
return n
}
@@ -12599,6 +12682,16 @@ func (this *MonoVertex) String() string {
}, "")
return s
}
+func (this *MonoVertexLifecycle) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&MonoVertexLifecycle{`,
+ `DesiredPhase:` + fmt.Sprintf("%v", this.DesiredPhase) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *MonoVertexLimits) String() string {
if this == nil {
return "nil"
@@ -12658,6 +12751,7 @@ func (this *MonoVertexSpec) String() string {
`Sidecars:` + repeatedStringForSidecars + `,`,
`DaemonTemplate:` + strings.Replace(this.DaemonTemplate.String(), "DaemonTemplate", "DaemonTemplate", 1) + `,`,
`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), "UpdateStrategy", "UpdateStrategy", 1), `&`, ``, 1) + `,`,
+ `Lifecycle:` + strings.Replace(strings.Replace(this.Lifecycle.String(), "MonoVertexLifecycle", "MonoVertexLifecycle", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
@@ -23347,6 +23441,88 @@ func (m *MonoVertex) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *MonoVertexLifecycle) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MonoVertexLifecycle: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MonoVertexLifecycle: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DesiredPhase", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.DesiredPhase = MonoVertexPhase(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *MonoVertexLimits) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -24000,6 +24176,39 @@ func (m *MonoVertexSpec) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 13:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Lifecycle", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Lifecycle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
diff --git a/pkg/apis/numaflow/v1alpha1/generated.proto b/pkg/apis/numaflow/v1alpha1/generated.proto
index 035f4cf46b..f96a526599 100644
--- a/pkg/apis/numaflow/v1alpha1/generated.proto
+++ b/pkg/apis/numaflow/v1alpha1/generated.proto
@@ -899,6 +899,13 @@ message MonoVertex {
optional MonoVertexStatus status = 3;
}
+message MonoVertexLifecycle {
+ // DesiredPhase used to bring the pipeline from current phase to desired phase
+ // +kubebuilder:default=Running
+ // +optional
+ optional string desiredPhase = 1;
+}
+
message MonoVertexLimits {
// Read batch size from the source.
// +kubebuilder:default=500
@@ -965,6 +972,11 @@ message MonoVertexSpec {
// +kubebuilder:default={"type": "RollingUpdate", "rollingUpdate": {"maxUnavailable": "25%"}}
// +optional
optional UpdateStrategy updateStrategy = 12;
+
+ // Lifecycle defines the Lifecycle properties of a MonoVertex
+ // +kubebuilder:default={"desiredPhase": Running}
+ // +optional
+ optional MonoVertexLifecycle lifecycle = 13;
}
message MonoVertexStatus {
diff --git a/pkg/apis/numaflow/v1alpha1/mono_vertex_types.go b/pkg/apis/numaflow/v1alpha1/mono_vertex_types.go
index e3b8e28f64..d271c34144 100644
--- a/pkg/apis/numaflow/v1alpha1/mono_vertex_types.go
+++ b/pkg/apis/numaflow/v1alpha1/mono_vertex_types.go
@@ -38,6 +38,7 @@ const (
MonoVertexPhaseUnknown MonoVertexPhase = ""
MonoVertexPhaseRunning MonoVertexPhase = "Running"
MonoVertexPhaseFailed MonoVertexPhase = "Failed"
+ MonoVertexPhasePaused MonoVertexPhase = "Paused"
// MonoVertexConditionDeployed has the status True when the MonoVertex
// has its sub resources created and deployed.
@@ -79,6 +80,10 @@ func (mv MonoVertex) getReplicas() int {
}
func (mv MonoVertex) CalculateReplicas() int {
+ // If we are pausing the MonoVertex then we should have the desired replicas as 0
+ if mv.Spec.Lifecycle.GetDesiredPhase() == MonoVertexPhasePaused {
+ return 0
+ }
desiredReplicas := mv.getReplicas()
// Don't allow replicas to be out of the range of min and max when auto scaling is enabled
if s := mv.Spec.Scale; !s.Disabled {
@@ -307,8 +312,7 @@ func (mv MonoVertex) simpleCopy() MonoVertex {
m.Spec.Limits.ReadTimeout = &metav1.Duration{Duration: DefaultReadTimeout}
}
m.Spec.UpdateStrategy = UpdateStrategy{}
- // TODO: lifecycle
- // mvVtxCopy.Spec.Lifecycle = Lifecycle{}
+ m.Spec.Lifecycle = MonoVertexLifecycle{}
return m
}
@@ -442,6 +446,10 @@ type MonoVertexSpec struct {
// +kubebuilder:default={"type": "RollingUpdate", "rollingUpdate": {"maxUnavailable": "25%"}}
// +optional
UpdateStrategy UpdateStrategy `json:"updateStrategy,omitempty" protobuf:"bytes,12,opt,name=updateStrategy"`
+ // Lifecycle defines the Lifecycle properties of a MonoVertex
+ // +kubebuilder:default={"desiredPhase": Running}
+ // +optional
+ Lifecycle MonoVertexLifecycle `json:"lifecycle,omitempty" protobuf:"bytes,13,opt,name=lifecycle"`
}
func (mvspec MonoVertexSpec) DeepCopyWithoutReplicas() MonoVertexSpec {
@@ -595,19 +603,23 @@ func (mvs *MonoVertexStatus) MarkPhaseRunning() {
mvs.MarkPhase(MonoVertexPhaseRunning, "", "")
}
+// MarkPhasePaused set the Pipeline has been paused.
+func (mvs *MonoVertexStatus) MarkPhasePaused() {
+ mvs.MarkPhase(MonoVertexPhasePaused, "", "MonoVertex paused")
+}
+
// IsHealthy indicates whether the MonoVertex is in healthy status
// It returns false if any issues exists
// True indicates that the MonoVertex is healthy
-// TODO: Add support for paused whenever added in MonoVtx?
func (mvs *MonoVertexStatus) IsHealthy() bool {
// check for the phase field first
switch mvs.Phase {
// Directly return an error if the phase is failed
case MonoVertexPhaseFailed:
return false
- // Check if the MonoVertex is ready if the phase is running,
+ // Check if the MonoVertex is ready if the phase is running or Paused,
// We check if all the required conditions are true for it to be healthy
- case MonoVertexPhaseRunning:
+ case MonoVertexPhaseRunning, MonoVertexPhasePaused:
return mvs.IsReady()
default:
return false
@@ -621,3 +633,20 @@ type MonoVertexList struct {
metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
Items []MonoVertex `json:"items" protobuf:"bytes,2,rep,name=items"`
}
+
+type MonoVertexLifecycle struct {
+ // DesiredPhase used to bring the pipeline from current phase to desired phase
+ // +kubebuilder:default=Running
+ // +optional
+ DesiredPhase MonoVertexPhase `json:"desiredPhase,omitempty" protobuf:"bytes,1,opt,name=desiredPhase"`
+}
+
+// GetDesiredPhase is used to fetch the desired lifecycle phase for a MonoVertex
+func (lc MonoVertexLifecycle) GetDesiredPhase() MonoVertexPhase {
+ switch lc.DesiredPhase {
+ case MonoVertexPhasePaused:
+ return MonoVertexPhasePaused
+ default:
+ return MonoVertexPhaseRunning
+ }
+}
diff --git a/pkg/apis/numaflow/v1alpha1/mono_vertex_types_test.go b/pkg/apis/numaflow/v1alpha1/mono_vertex_types_test.go
index ae6a62c09d..98bb801003 100644
--- a/pkg/apis/numaflow/v1alpha1/mono_vertex_types_test.go
+++ b/pkg/apis/numaflow/v1alpha1/mono_vertex_types_test.go
@@ -103,6 +103,22 @@ func TestMonoVertex_MarkPhaseRunning(t *testing.T) {
}
}
+func TestMonoVertex_MarkPhasePaused(t *testing.T) {
+ mvs := MonoVertexStatus{}
+ mvs.MarkPhasePaused()
+
+ if mvs.Phase != MonoVertexPhasePaused {
+ t.Errorf("MarkPhaseRunning did not set the Phase to Paused, got %v", mvs.Phase)
+ }
+}
+
+func TestMonoVertex_GetDesiredPhase(t *testing.T) {
+ lc := MonoVertexLifecycle{}
+ assert.Equal(t, MonoVertexPhaseRunning, lc.GetDesiredPhase())
+ lc.DesiredPhase = MonoVertexPhasePaused
+ assert.Equal(t, MonoVertexPhasePaused, lc.GetDesiredPhase())
+}
+
func TestMonoVertex_MarkDaemonUnHealthy(t *testing.T) {
mvs := MonoVertexStatus{}
mvs.MarkDaemonUnHealthy("reason", "message")
@@ -369,6 +385,22 @@ func TestMonoVertex_CalculateReplicas(t *testing.T) {
}
assert.Equal(t, 5, mv.CalculateReplicas())
})
+
+ t.Run("phase paused", func(t *testing.T) {
+ replicas := int32(10)
+ mv := MonoVertex{
+ Spec: MonoVertexSpec{
+ Lifecycle: MonoVertexLifecycle{DesiredPhase: MonoVertexPhasePaused},
+ Replicas: &replicas,
+ Scale: Scale{
+ Disabled: false,
+ Min: ptr.To[int32](2),
+ Max: ptr.To[int32](5),
+ },
+ },
+ }
+ assert.Equal(t, 0, mv.CalculateReplicas())
+ })
}
func TestMonoVertex_GetServiceObj(t *testing.T) {
diff --git a/pkg/apis/numaflow/v1alpha1/openapi_generated.go b/pkg/apis/numaflow/v1alpha1/openapi_generated.go
index bd59769897..83186d25b7 100644
--- a/pkg/apis/numaflow/v1alpha1/openapi_generated.go
+++ b/pkg/apis/numaflow/v1alpha1/openapi_generated.go
@@ -74,6 +74,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Log": schema_pkg_apis_numaflow_v1alpha1_Log(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata": schema_pkg_apis_numaflow_v1alpha1_Metadata(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertex": schema_pkg_apis_numaflow_v1alpha1_MonoVertex(ref),
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexLifecycle": schema_pkg_apis_numaflow_v1alpha1_MonoVertexLifecycle(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexLimits": schema_pkg_apis_numaflow_v1alpha1_MonoVertexLimits(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexList": schema_pkg_apis_numaflow_v1alpha1_MonoVertexList(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexSpec": schema_pkg_apis_numaflow_v1alpha1_MonoVertexSpec(ref),
@@ -3057,6 +3058,25 @@ func schema_pkg_apis_numaflow_v1alpha1_MonoVertex(ref common.ReferenceCallback)
}
}
+func schema_pkg_apis_numaflow_v1alpha1_MonoVertexLifecycle(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "desiredPhase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DesiredPhase used to bring the pipeline from current phase to desired phase",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
func schema_pkg_apis_numaflow_v1alpha1_MonoVertexLimits(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -3369,11 +3389,18 @@ func schema_pkg_apis_numaflow_v1alpha1_MonoVertexSpec(ref common.ReferenceCallba
Ref: ref("github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UpdateStrategy"),
},
},
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Lifecycle defines the Lifecycle properties of a MonoVertex",
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexLifecycle"),
+ },
+ },
},
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.DaemonTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UpdateStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.DaemonTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexLifecycle", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.MonoVertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UpdateStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
}
}
diff --git a/pkg/apis/numaflow/v1alpha1/pipeline_types.go b/pkg/apis/numaflow/v1alpha1/pipeline_types.go
index ff8dfaf5e5..3307adf743 100644
--- a/pkg/apis/numaflow/v1alpha1/pipeline_types.go
+++ b/pkg/apis/numaflow/v1alpha1/pipeline_types.go
@@ -783,13 +783,11 @@ func (pls *PipelineStatus) IsHealthy() bool {
switch pls.Phase {
case PipelinePhaseFailed:
return false
- case PipelinePhaseRunning:
+ case PipelinePhaseRunning, PipelinePhasePaused:
return pls.IsReady()
case PipelinePhaseDeleting, PipelinePhasePausing:
// Transient phases, return true
return true
- case PipelinePhasePaused:
- return true
default:
return false
}
diff --git a/pkg/apis/numaflow/v1alpha1/pipeline_types_test.go b/pkg/apis/numaflow/v1alpha1/pipeline_types_test.go
index d7e5c334b9..34835e7b07 100644
--- a/pkg/apis/numaflow/v1alpha1/pipeline_types_test.go
+++ b/pkg/apis/numaflow/v1alpha1/pipeline_types_test.go
@@ -572,7 +572,7 @@ func TestPipelineStatus_IsHealthy(t *testing.T) {
name: "Paused phase",
phase: PipelinePhasePaused,
ready: false,
- want: true,
+ want: false,
},
{
name: "Unknown phase",
diff --git a/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
index 49b93292ff..c131980d96 100644
--- a/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
@@ -1409,6 +1409,22 @@ func (in *MonoVertex) DeepCopyObject() runtime.Object {
return nil
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *MonoVertexLifecycle) DeepCopyInto(out *MonoVertexLifecycle) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonoVertexLifecycle.
+func (in *MonoVertexLifecycle) DeepCopy() *MonoVertexLifecycle {
+ if in == nil {
+ return nil
+ }
+ out := new(MonoVertexLifecycle)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MonoVertexLimits) DeepCopyInto(out *MonoVertexLimits) {
*out = *in
@@ -1525,6 +1541,7 @@ func (in *MonoVertexSpec) DeepCopyInto(out *MonoVertexSpec) {
(*in).DeepCopyInto(*out)
}
in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)
+ out.Lifecycle = in.Lifecycle
return
}
diff --git a/pkg/reconciler/monovertex/controller.go b/pkg/reconciler/monovertex/controller.go
index 3fbfb3c1ab..5e31ed6f28 100644
--- a/pkg/reconciler/monovertex/controller.go
+++ b/pkg/reconciler/monovertex/controller.go
@@ -122,8 +122,6 @@ func (mr *monoVertexReconciler) reconcile(ctx context.Context, monoVtx *dfv1.Mon
return ctrl.Result{}, err
}
- // TODO: handle lifecycle changes
-
if err := mr.orchestratePods(ctx, monoVtx); err != nil {
monoVtx.Status.MarkDeployFailed("OrchestratePodsFailed", err.Error())
mr.recorder.Eventf(monoVtx, corev1.EventTypeWarning, "OrchestratePodsFailed", "OrchestratePodsFailed: %s", err.Error())
@@ -132,13 +130,21 @@ func (mr *monoVertexReconciler) reconcile(ctx context.Context, monoVtx *dfv1.Mon
monoVtx.Status.MarkDeployed()
- // Mark it running before checking the status of the pods
- monoVtx.Status.MarkPhaseRunning()
+ // Update the phase based on the DesiredPhase from the lifecycle, this should encompass
+ // the Paused and running states.
+ originalPhase := monoVtx.Status.Phase
+ monoVtx.Status.MarkPhase(monoVtx.Spec.Lifecycle.GetDesiredPhase(), "", "")
+ // If the phase has changed, log the event
+ if monoVtx.Status.Phase != originalPhase {
+ log.Infow("Updated MonoVertex phase", zap.String("originalPhase", string(originalPhase)), zap.String("originalPhase", string(monoVtx.Status.Phase)))
+ mr.recorder.Eventf(monoVtx, corev1.EventTypeNormal, "UpdateMonoVertexPhase", "Updated MonoVertex phase from %s to %s", string(originalPhase), string(monoVtx.Status.Phase))
+ }
// Check children resource status
if err := mr.checkChildrenResourceStatus(ctx, monoVtx); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to check mono vertex children resource status, %w", err)
}
+
return ctrl.Result{}, nil
}
diff --git a/pkg/reconciler/monovertex/controller_test.go b/pkg/reconciler/monovertex/controller_test.go
index 8e1f179db4..c9c5c003c2 100644
--- a/pkg/reconciler/monovertex/controller_test.go
+++ b/pkg/reconciler/monovertex/controller_test.go
@@ -35,11 +35,12 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
+ "github.com/stretchr/testify/assert"
+
dfv1 "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1"
"github.com/numaproj/numaflow/pkg/reconciler"
"github.com/numaproj/numaflow/pkg/reconciler/monovertex/scaling"
sharedutil "github.com/numaproj/numaflow/pkg/shared/util"
- "github.com/stretchr/testify/assert"
)
const (
diff --git a/pkg/reconciler/monovertex/scaling/scaling.go b/pkg/reconciler/monovertex/scaling/scaling.go
index 0b35265190..7f9ee9ea84 100644
--- a/pkg/reconciler/monovertex/scaling/scaling.go
+++ b/pkg/reconciler/monovertex/scaling/scaling.go
@@ -171,11 +171,11 @@ func (s *Scaler) scaleOneMonoVertex(ctx context.Context, key string, worker int)
log.Infof("MonoVertex not in Running phase, skip scaling.")
return nil
}
- // TODO: lifecycle
- // if monoVtx.Spec.Lifecycle.GetDesiredPhase() != dfv1.MonoVertexPhaseRunning {
- // log.Info("MonoVertex is pausing, skip scaling.")
- // return nil
- // }
+
+ if monoVtx.Spec.Lifecycle.GetDesiredPhase() != dfv1.MonoVertexPhaseRunning {
+ log.Info("MonoVertex desiredPhase is not running, skip scaling.")
+ return nil
+ }
if int(monoVtx.Status.Replicas) != monoVtx.CalculateReplicas() {
log.Infof("MonoVertex %s might be under processing, replicas mismatch, skip scaling.", monoVtx.Name)
return nil
diff --git a/rust/numaflow-models/src/models/mod.rs b/rust/numaflow-models/src/models/mod.rs
index 423e21fd9c..bfbcd121d0 100644
--- a/rust/numaflow-models/src/models/mod.rs
+++ b/rust/numaflow-models/src/models/mod.rs
@@ -90,6 +90,8 @@ pub mod metadata;
pub use self::metadata::Metadata;
pub mod mono_vertex;
pub use self::mono_vertex::MonoVertex;
+pub mod mono_vertex_lifecycle;
+pub use self::mono_vertex_lifecycle::MonoVertexLifecycle;
pub mod mono_vertex_limits;
pub use self::mono_vertex_limits::MonoVertexLimits;
pub mod mono_vertex_list;
diff --git a/rust/numaflow-models/src/models/mono_vertex_lifecycle.rs b/rust/numaflow-models/src/models/mono_vertex_lifecycle.rs
new file mode 100644
index 0000000000..90d5b97422
--- /dev/null
+++ b/rust/numaflow-models/src/models/mono_vertex_lifecycle.rs
@@ -0,0 +1,32 @@
+/*
+Copyright 2022 The Numaproj Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by Openapi Generator. DO NOT EDIT.
+
+#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
+pub struct MonoVertexLifecycle {
+ /// DesiredPhase used to bring the pipeline from current phase to desired phase
+ #[serde(rename = "desiredPhase", skip_serializing_if = "Option::is_none")]
+ pub desired_phase: Option,
+}
+
+impl MonoVertexLifecycle {
+ pub fn new() -> MonoVertexLifecycle {
+ MonoVertexLifecycle {
+ desired_phase: None,
+ }
+ }
+}
diff --git a/rust/numaflow-models/src/models/mono_vertex_spec.rs b/rust/numaflow-models/src/models/mono_vertex_spec.rs
index 6d4068bee7..7cad8cc898 100644
--- a/rust/numaflow-models/src/models/mono_vertex_spec.rs
+++ b/rust/numaflow-models/src/models/mono_vertex_spec.rs
@@ -41,6 +41,8 @@ pub struct MonoVertexSpec {
/// List of customized init containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
#[serde(rename = "initContainers", skip_serializing_if = "Option::is_none")]
pub init_containers: Option>,
+ #[serde(rename = "lifecycle", skip_serializing_if = "Option::is_none")]
+ pub lifecycle: Option>,
#[serde(rename = "limits", skip_serializing_if = "Option::is_none")]
pub limits: Option>,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
@@ -96,6 +98,7 @@ impl MonoVertexSpec {
dns_policy: None,
image_pull_secrets: None,
init_containers: None,
+ lifecycle: None,
limits: None,
metadata: None,
node_selector: None,