diff --git a/.changeset/heavy-scissors-hear.md b/.changeset/heavy-scissors-hear.md new file mode 100644 index 00000000..6b2159f0 --- /dev/null +++ b/.changeset/heavy-scissors-hear.md @@ -0,0 +1,5 @@ +--- +"@livekit/protocol": patch +--- + +Changes for ingress observability support diff --git a/observability/ingressobs/gen_reporter.go b/observability/ingressobs/gen_reporter.go new file mode 100644 index 00000000..24e95518 --- /dev/null +++ b/observability/ingressobs/gen_reporter.go @@ -0,0 +1,63 @@ +// Code generated; DO NOT EDIT. + +package ingressobs + +import ( + "time" +) + +const Version_UTO6LDG = true + +type KeyResolver interface { + Resolve(string) + Reset() +} + +type Reporter interface { + WithProject(id string) ProjectReporter + WithDeferredProject() (ProjectReporter, KeyResolver) +} + +type ProjectTx interface{} + +type ProjectReporter interface { + RegisterFunc(func(ts time.Time, tx ProjectTx) bool) + Tx(func(tx ProjectTx)) + TxAt(time.Time, func(tx ProjectTx)) + WithIngress(id string) IngressReporter + WithDeferredIngress() (IngressReporter, KeyResolver) + ProjectTx +} + +type IngressTx interface{} + +type IngressReporter interface { + RegisterFunc(func(ts time.Time, tx IngressTx) bool) + Tx(func(tx IngressTx)) + TxAt(time.Time, func(tx IngressTx)) + WithSession(id string) SessionReporter + WithDeferredSession() (SessionReporter, KeyResolver) + IngressTx +} + +type SessionTx interface { + ReportStartTime(v time.Time) + ReportEndTime(v time.Time) + ReportDuration(v uint64) + ReportInputType(v SessionInputType) + ReportRegion(v string) + ReportRoomName(v string) + ReportRoomID(v string) + ReportError(v string) + ReportStatus(v SessionStatus) + ReportAudioOnly(v bool) + ReportTranscoded(v bool) + ReportReusable(v bool) +} + +type SessionReporter interface { + RegisterFunc(func(ts time.Time, tx SessionTx) bool) + Tx(func(tx SessionTx)) + TxAt(time.Time, func(tx SessionTx)) + SessionTx +} diff --git a/observability/ingressobs/gen_reporter_noop.go b/observability/ingressobs/gen_reporter_noop.go new file mode 100644 index 00000000..3ca12a56 --- /dev/null +++ b/observability/ingressobs/gen_reporter_noop.go @@ -0,0 +1,87 @@ +// Code generated; DO NOT EDIT. + +package ingressobs + +import ( + "time" +) + +var ( + _ Reporter = (*noopReporter)(nil) + _ ProjectReporter = (*noopProjectReporter)(nil) + _ IngressReporter = (*noopIngressReporter)(nil) + _ SessionReporter = (*noopSessionReporter)(nil) +) + +type noopKeyResolver struct{} + +func (noopKeyResolver) Resolve(string) {} +func (noopKeyResolver) Reset() {} + +type noopReporter struct{} + +func NewNoopReporter() Reporter { + return &noopReporter{} +} + +func (r *noopReporter) WithProject(id string) ProjectReporter { + return &noopProjectReporter{} +} + +func (r *noopReporter) WithDeferredProject() (ProjectReporter, KeyResolver) { + return &noopProjectReporter{}, noopKeyResolver{} +} + +type noopProjectReporter struct{} + +func NewNoopProjectReporter() ProjectReporter { + return &noopProjectReporter{} +} + +func (r *noopProjectReporter) RegisterFunc(f func(ts time.Time, tx ProjectTx) bool) {} +func (r *noopProjectReporter) Tx(f func(ProjectTx)) {} +func (r *noopProjectReporter) TxAt(ts time.Time, f func(ProjectTx)) {} +func (r *noopProjectReporter) WithIngress(id string) IngressReporter { + return &noopIngressReporter{} +} +func (r *noopProjectReporter) WithDeferredIngress() (IngressReporter, KeyResolver) { + return &noopIngressReporter{}, noopKeyResolver{} +} + +type noopIngressReporter struct{} + +func NewNoopIngressReporter() IngressReporter { + return &noopIngressReporter{} +} + +func (r *noopIngressReporter) RegisterFunc(f func(ts time.Time, tx IngressTx) bool) {} +func (r *noopIngressReporter) Tx(f func(IngressTx)) {} +func (r *noopIngressReporter) TxAt(ts time.Time, f func(IngressTx)) {} +func (r *noopIngressReporter) WithSession(id string) SessionReporter { + return &noopSessionReporter{} +} +func (r *noopIngressReporter) WithDeferredSession() (SessionReporter, KeyResolver) { + return &noopSessionReporter{}, noopKeyResolver{} +} + +type noopSessionReporter struct{} + +func NewNoopSessionReporter() SessionReporter { + return &noopSessionReporter{} +} + +func (r *noopSessionReporter) RegisterFunc(f func(ts time.Time, tx SessionTx) bool) {} +func (r *noopSessionReporter) Tx(f func(SessionTx)) {} +func (r *noopSessionReporter) TxAt(ts time.Time, f func(SessionTx)) {} +func (r *noopSessionReporter) ReportStartTime(v time.Time) {} +func (r *noopSessionReporter) ReportEndTime(v time.Time) {} +func (r *noopSessionReporter) ReportDuration(v uint64) {} +func (r *noopSessionReporter) ReportInputType(v SessionInputType) {} +func (r *noopSessionReporter) ReportRegion(v string) {} +func (r *noopSessionReporter) ReportRoomName(v string) {} +func (r *noopSessionReporter) ReportRoomID(v string) {} +func (r *noopSessionReporter) ReportError(v string) {} +func (r *noopSessionReporter) ReportStatus(v SessionStatus) {} +func (r *noopSessionReporter) ReportAudioOnly(v bool) {} +func (r *noopSessionReporter) ReportTranscoded(v bool) {} +func (r *noopSessionReporter) ReportReusable(v bool) {} diff --git a/observability/ingressobs/gen_source.go b/observability/ingressobs/gen_source.go new file mode 100644 index 00000000..8130a6c0 --- /dev/null +++ b/observability/ingressobs/gen_source.go @@ -0,0 +1,33 @@ +// Code generated; DO NOT EDIT. +package ingressobs + +type SessionInputType string + +const ( + SessionInputTypeUndefined SessionInputType = "" + SessionInputTypeRtmp SessionInputType = "rtmp" + SessionInputTypeWhip SessionInputType = "whip" + SessionInputTypeURL SessionInputType = "url" +) + +type SessionStatus string + +const ( + SessionStatusUndefined SessionStatus = "" + SessionStatusInactive SessionStatus = "inactive" + SessionStatusBuffering SessionStatus = "buffering" + SessionStatusPublishing SessionStatus = "publishing" + SessionStatusError SessionStatus = "error" + SessionStatusComplete SessionStatus = "complete" +) + +type Rollup string + +const ( + RollupUndefined Rollup = "" + RollupProject Rollup = "project" + RollupIngress Rollup = "ingress" + RollupSessionIndex Rollup = "session_index" + RollupStartTimeIndex Rollup = "start_time_index" + RollupEndTimeIndex Rollup = "end_time_index" +) diff --git a/observability/reporter.go b/observability/reporter.go index 92a3d263..47c37829 100644 --- a/observability/reporter.go +++ b/observability/reporter.go @@ -4,6 +4,7 @@ import ( "github.com/livekit/protocol/observability/agentsobs" "github.com/livekit/protocol/observability/egressobs" "github.com/livekit/protocol/observability/gatewayobs" + "github.com/livekit/protocol/observability/ingressobs" "github.com/livekit/protocol/observability/roomobs" "github.com/livekit/protocol/observability/telephonycallobs" "github.com/livekit/protocol/observability/telephonyobs" @@ -18,7 +19,7 @@ type Reporter interface { Telephony() telephonyobs.Reporter Connector() any // any is a placeholder for the connector type Egress() egressobs.Reporter - Ingress() any + Ingress() ingressobs.Reporter GatewayMetrics() any // any is a placeholder for the gateway metrics type TelephonyCall() telephonycallobs.Reporter Close() @@ -54,8 +55,8 @@ func (reporter) Egress() egressobs.Reporter { return egressobs.NewNoopReporter() } -func (reporter) Ingress() any { - return nil +func (reporter) Ingress() ingressobs.Reporter { + return ingressobs.NewNoopReporter() } func (reporter) GatewayMetrics() any { diff --git a/protobufs/rpc/ingress.proto b/protobufs/rpc/ingress.proto index 4e033f5d..dd25b4a3 100644 --- a/protobufs/rpc/ingress.proto +++ b/protobufs/rpc/ingress.proto @@ -31,16 +31,6 @@ service IngressInternal { option (psrpc.options).multi = true; option (psrpc.options).topics = true; }; - - rpc KillIngressSession(KillIngressSessionRequest) returns (google.protobuf.Empty) { - option (psrpc.options) = { - topics: true - topic_params: { - names: ["ingress_id", "resource_id"] - typed: false - } - }; - }; } service IngressHandler { diff --git a/protobufs/rpc/io.proto b/protobufs/rpc/io.proto index b1f5ac4f..3f2821fb 100644 --- a/protobufs/rpc/io.proto +++ b/protobufs/rpc/io.proto @@ -66,6 +66,7 @@ message GetIngressInfoResponse { livekit.IngressInfo info = 1; string token = 2; string ws_url = 3; + string project_id = 6; map logging_fields = 4; map feature_flags = 5; } @@ -77,20 +78,20 @@ message UpdateIngressStateRequest { } message GetSIPTrunkAuthenticationRequest { - string sip_call_id = 6 [deprecated=true]; + string sip_call_id = 6 [deprecated = true]; // What Number is calling - string from = 2 [deprecated=true]; + string from = 2 [deprecated = true]; // What Host is calling - string from_host = 7 [deprecated=true]; + string from_host = 7 [deprecated = true]; // What Number was called - string to = 3 [deprecated=true]; + string to = 3 [deprecated = true]; // What Host was called - string to_host = 5 [deprecated=true]; + string to_host = 5 [deprecated = true]; // What is the IP address of the called number - string src_address = 4 [deprecated=true]; + string src_address = 4 [deprecated = true]; SIPCall call = 8; @@ -107,7 +108,7 @@ message GetSIPTrunkAuthenticationResponse { (logger.redact) = true, (logger.redact_format) = "" ]; - bool drop = 3; + bool drop = 3; // Trunk used to fulfill this request string sip_trunk_id = 4; // Used in Cloud only @@ -121,22 +122,22 @@ message GetSIPTrunkAuthenticationResponse { } message EvaluateSIPDispatchRulesRequest { - string sip_call_id = 8 [deprecated=true]; - string sip_participant_id = 1 [deprecated=true]; + string sip_call_id = 8 [deprecated = true]; + string sip_participant_id = 1 [deprecated = true]; // Trunk from the auth response, if any string sip_trunk_id = 10; // What Number is calling - string calling_number = 2 [deprecated=true]; + string calling_number = 2 [deprecated = true]; // What Host is calling - string calling_host = 11 [deprecated=true]; + string calling_host = 11 [deprecated = true]; // What Number was called - string called_number = 3 [deprecated=true]; + string called_number = 3 [deprecated = true]; // What is the IP address of the called number - string src_address = 4 [deprecated=true]; + string src_address = 4 [deprecated = true]; // What pin has been entered if any string pin = 5; @@ -145,7 +146,7 @@ message EvaluateSIPDispatchRulesRequest { bool no_pin = 6; // What Host was called - string called_host = 7 [deprecated=true]; + string called_host = 7 [deprecated = true]; // Extra participant attributes added for this call. // Usually include provider-specific metadata. @@ -181,7 +182,7 @@ message EvaluateSIPDispatchRulesResponse { (logger.redact_format) = "" ]; - bool request_pin = 3 [deprecated=true]; // see result + bool request_pin = 3 [deprecated = true]; // see result // optional token that should be used when creating LiveKit participant string token = 4 [ @@ -246,7 +247,7 @@ message UpdateSIPCallStateRequest { livekit.SIPCallInfo call_info = 1; livekit.SIPTransferInfo transfer_info = 2; - // NEXT ID: 3 + // NEXT ID: 3 } message RecordCallContextRequest { @@ -256,7 +257,7 @@ message RecordCallContextRequest { } enum SIPDispatchResult { - LEGACY_ACCEPT_OR_PIN = 0; // check request_pin field + LEGACY_ACCEPT_OR_PIN = 0; // check request_pin field ACCEPT = 1; REQUEST_PIN = 2; REJECT = 3; @@ -271,11 +272,11 @@ enum SIPTrunkAuthenticationError { message SIPCall { string lk_call_id = 1; - string source_ip = 2; // source ip (without port) - livekit.SIPUri address = 3; // address in the request line (INVITE) - livekit.SIPUri from = 4; // From header - livekit.SIPUri to = 5; // To header - repeated livekit.SIPUri via = 6; // Via headers - string sip_call_id = 7; // SIP protocol generated call ID - string project_id = 8; // LiveKit project ID (Cloud only) + string source_ip = 2; // source ip (without port) + livekit.SIPUri address = 3; // address in the request line (INVITE) + livekit.SIPUri from = 4; // From header + livekit.SIPUri to = 5; // To header + repeated livekit.SIPUri via = 6; // Via headers + string sip_call_id = 7; // SIP protocol generated call ID + string project_id = 8; // LiveKit project ID (Cloud only) } diff --git a/rpc/ingress.pb.go b/rpc/ingress.pb.go index 697a03b3..618acd99 100644 --- a/rpc/ingress.pb.go +++ b/rpc/ingress.pb.go @@ -617,12 +617,10 @@ const file_rpc_ingress_proto_rawDesc = "" + "\vresource_id\x18\x02 \x01(\tR\n" + "resourceId\"J\n" + "\x19KillIngressSessionRequest\x12-\n" + - "\asession\x18\x01 \x01(\v2\x13.rpc.IngressSessionR\asession2\xa8\x02\n" + + "\asession\x18\x01 \x01(\v2\x13.rpc.IngressSessionR\asession2\xb7\x01\n" + "\x0fIngressInternal\x12F\n" + "\fStartIngress\x12\x18.rpc.StartIngressRequest\x1a\x14.livekit.IngressInfo\"\x06\xb2\x89\x01\x020\x01\x12\\\n" + - "\x11ListActiveIngress\x12\x1d.rpc.ListActiveIngressRequest\x1a\x1e.rpc.ListActiveIngressResponse\"\b\xb2\x89\x01\x04\x10\x01(\x01\x12o\n" + - "\x12KillIngressSession\x12\x1e.rpc.KillIngressSessionRequest\x1a\x16.google.protobuf.Empty\"!\xb2\x89\x01\x1d\x10\x01\x1a\x19\x12\n" + - "ingress_id\x12\vresource_id2\xd3\x03\n" + + "\x11ListActiveIngress\x12\x1d.rpc.ListActiveIngressRequest\x1a\x1e.rpc.ListActiveIngressResponse\"\b\xb2\x89\x01\x04\x10\x01(\x012\xd3\x03\n" + "\x0eIngressHandler\x12M\n" + "\rUpdateIngress\x12\x1d.livekit.UpdateIngressRequest\x1a\x15.livekit.IngressState\"\x06\xb2\x89\x01\x02\x10\x01\x12M\n" + "\rDeleteIngress\x12\x1d.livekit.DeleteIngressRequest\x1a\x15.livekit.IngressState\"\x06\xb2\x89\x01\x02\x10\x01\x12T\n" + @@ -661,8 +659,8 @@ var file_rpc_ingress_proto_goTypes = []any{ (*livekit.IngressInfo)(nil), // 13: livekit.IngressInfo (*livekit.UpdateIngressRequest)(nil), // 14: livekit.UpdateIngressRequest (*livekit.DeleteIngressRequest)(nil), // 15: livekit.DeleteIngressRequest - (*emptypb.Empty)(nil), // 16: google.protobuf.Empty - (*livekit.IngressState)(nil), // 17: livekit.IngressState + (*livekit.IngressState)(nil), // 16: livekit.IngressState + (*emptypb.Empty)(nil), // 17: google.protobuf.Empty } var file_rpc_ingress_proto_depIdxs = []int32{ 7, // 0: rpc.ListActiveIngressResponse.ingress_sessions:type_name -> rpc.IngressSession @@ -674,22 +672,20 @@ var file_rpc_ingress_proto_depIdxs = []int32{ 7, // 6: rpc.KillIngressSessionRequest.session:type_name -> rpc.IngressSession 6, // 7: rpc.IngressInternal.StartIngress:input_type -> rpc.StartIngressRequest 0, // 8: rpc.IngressInternal.ListActiveIngress:input_type -> rpc.ListActiveIngressRequest - 8, // 9: rpc.IngressInternal.KillIngressSession:input_type -> rpc.KillIngressSessionRequest - 14, // 10: rpc.IngressHandler.UpdateIngress:input_type -> livekit.UpdateIngressRequest - 15, // 11: rpc.IngressHandler.DeleteIngress:input_type -> livekit.DeleteIngressRequest - 2, // 12: rpc.IngressHandler.DeleteWHIPResource:input_type -> rpc.DeleteWHIPResourceRequest - 3, // 13: rpc.IngressHandler.ICERestartWHIPResource:input_type -> rpc.ICERestartWHIPResourceRequest - 5, // 14: rpc.IngressHandler.WHIPRTCConnectionNotify:input_type -> rpc.WHIPRTCConnectionNotifyRequest - 13, // 15: rpc.IngressInternal.StartIngress:output_type -> livekit.IngressInfo - 1, // 16: rpc.IngressInternal.ListActiveIngress:output_type -> rpc.ListActiveIngressResponse - 16, // 17: rpc.IngressInternal.KillIngressSession:output_type -> google.protobuf.Empty - 17, // 18: rpc.IngressHandler.UpdateIngress:output_type -> livekit.IngressState - 17, // 19: rpc.IngressHandler.DeleteIngress:output_type -> livekit.IngressState - 16, // 20: rpc.IngressHandler.DeleteWHIPResource:output_type -> google.protobuf.Empty - 4, // 21: rpc.IngressHandler.ICERestartWHIPResource:output_type -> rpc.ICERestartWHIPResourceResponse - 16, // 22: rpc.IngressHandler.WHIPRTCConnectionNotify:output_type -> google.protobuf.Empty - 15, // [15:23] is the sub-list for method output_type - 7, // [7:15] is the sub-list for method input_type + 14, // 9: rpc.IngressHandler.UpdateIngress:input_type -> livekit.UpdateIngressRequest + 15, // 10: rpc.IngressHandler.DeleteIngress:input_type -> livekit.DeleteIngressRequest + 2, // 11: rpc.IngressHandler.DeleteWHIPResource:input_type -> rpc.DeleteWHIPResourceRequest + 3, // 12: rpc.IngressHandler.ICERestartWHIPResource:input_type -> rpc.ICERestartWHIPResourceRequest + 5, // 13: rpc.IngressHandler.WHIPRTCConnectionNotify:input_type -> rpc.WHIPRTCConnectionNotifyRequest + 13, // 14: rpc.IngressInternal.StartIngress:output_type -> livekit.IngressInfo + 1, // 15: rpc.IngressInternal.ListActiveIngress:output_type -> rpc.ListActiveIngressResponse + 16, // 16: rpc.IngressHandler.UpdateIngress:output_type -> livekit.IngressState + 16, // 17: rpc.IngressHandler.DeleteIngress:output_type -> livekit.IngressState + 17, // 18: rpc.IngressHandler.DeleteWHIPResource:output_type -> google.protobuf.Empty + 4, // 19: rpc.IngressHandler.ICERestartWHIPResource:output_type -> rpc.ICERestartWHIPResourceResponse + 17, // 20: rpc.IngressHandler.WHIPRTCConnectionNotify:output_type -> google.protobuf.Empty + 14, // [14:21] is the sub-list for method output_type + 7, // [7:14] is the sub-list for method input_type 7, // [7:7] is the sub-list for extension type_name 7, // [7:7] is the sub-list for extension extendee 0, // [0:7] is the sub-list for field type_name diff --git a/rpc/ingress.psrpc.go b/rpc/ingress.psrpc.go index 7cd31ace..2350604f 100644 --- a/rpc/ingress.psrpc.go +++ b/rpc/ingress.psrpc.go @@ -27,8 +27,6 @@ type IngressInternalClient interface { ListActiveIngress(ctx context.Context, topic string, req *ListActiveIngressRequest, opts ...psrpc.RequestOption) (<-chan *psrpc.Response[*ListActiveIngressResponse], error) - KillIngressSession(ctx context.Context, ingressId string, resourceId string, req *KillIngressSessionRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) - // Close immediately, without waiting for pending RPCs Close() } @@ -42,8 +40,6 @@ type IngressInternalServerImpl interface { StartIngressAffinity(context.Context, *StartIngressRequest) float32 ListActiveIngress(context.Context, *ListActiveIngressRequest) (*ListActiveIngressResponse, error) - - KillIngressSession(context.Context, *KillIngressSessionRequest) (*google_protobuf.Empty, error) } // ================================ @@ -53,8 +49,6 @@ type IngressInternalServerImpl interface { type IngressInternalServer interface { RegisterListActiveIngressTopic(topic string) error DeregisterListActiveIngressTopic(topic string) - RegisterKillIngressSessionTopic(ingressId string, resourceId string) error - DeregisterKillIngressSessionTopic(ingressId string, resourceId string) // Close and wait for pending RPCs to complete Shutdown() @@ -80,7 +74,6 @@ func NewIngressInternalClient(bus psrpc.MessageBus, opts ...psrpc.ClientOption) sd.RegisterMethod("StartIngress", true, false, true, false) sd.RegisterMethod("ListActiveIngress", false, true, false, false) - sd.RegisterMethod("KillIngressSession", false, false, true, true) rpcClient, err := client.NewRPCClient(sd, bus, opts...) if err != nil { @@ -100,10 +93,6 @@ func (c *ingressInternalClient) ListActiveIngress(ctx context.Context, topic str return client.RequestMulti[*ListActiveIngressResponse](ctx, c.client, "ListActiveIngress", []string{topic}, req, opts...) } -func (c *ingressInternalClient) KillIngressSession(ctx context.Context, ingressId string, resourceId string, req *KillIngressSessionRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) { - return client.RequestSingle[*google_protobuf.Empty](ctx, c.client, "KillIngressSession", []string{ingressId, resourceId}, req, opts...) -} - func (s *ingressInternalClient) Close() { s.client.Close() } @@ -136,7 +125,6 @@ func NewIngressInternalServer(svc IngressInternalServerImpl, bus psrpc.MessageBu } sd.RegisterMethod("ListActiveIngress", false, true, false, false) - sd.RegisterMethod("KillIngressSession", false, false, true, true) return &ingressInternalServer{ svc: svc, rpc: s, @@ -151,14 +139,6 @@ func (s *ingressInternalServer) DeregisterListActiveIngressTopic(topic string) { s.rpc.DeregisterHandler("ListActiveIngress", []string{topic}) } -func (s *ingressInternalServer) RegisterKillIngressSessionTopic(ingressId string, resourceId string) error { - return server.RegisterHandler(s.rpc, "KillIngressSession", []string{ingressId, resourceId}, s.svc.KillIngressSession, nil) -} - -func (s *ingressInternalServer) DeregisterKillIngressSessionTopic(ingressId string, resourceId string) { - s.rpc.DeregisterHandler("KillIngressSession", []string{ingressId, resourceId}) -} - func (s *ingressInternalServer) Shutdown() { s.rpc.Close(false) } @@ -184,10 +164,6 @@ func (UnimplementedIngressInternalServer) ListActiveIngress(context.Context, *Li return nil, psrpc.ErrUnimplemented } -func (UnimplementedIngressInternalServer) KillIngressSession(context.Context, *KillIngressSessionRequest) (*google_protobuf.Empty, error) { - return nil, psrpc.ErrUnimplemented -} - // =============================== // IngressHandler Client Interface // =============================== @@ -406,65 +382,63 @@ func (UnimplementedIngressHandlerServer) WHIPRTCConnectionNotify(context.Context } var psrpcFileDescriptor3 = []byte{ - // 949 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5f, 0x6f, 0xe3, 0x44, - 0x10, 0x97, 0x9d, 0x36, 0x6d, 0x27, 0x4d, 0x2f, 0xdd, 0xfe, 0x39, 0xc7, 0xa8, 0xbd, 0x9e, 0x2b, - 0xa4, 0x08, 0x84, 0x83, 0x82, 0x90, 0x10, 0x0f, 0xd0, 0xbb, 0xd2, 0xaa, 0xe1, 0xee, 0xe0, 0xe4, - 0xf6, 0x40, 0x02, 0x09, 0xcb, 0xb5, 0xd7, 0xbe, 0x55, 0x1d, 0xaf, 0xd9, 0x5d, 0x37, 0xca, 0x1b, - 0xaf, 0x7d, 0x45, 0x7c, 0x0c, 0x9e, 0xfa, 0x05, 0xf8, 0x10, 0x7c, 0x21, 0xe4, 0xdd, 0x75, 0x9b, - 0x34, 0x71, 0x05, 0x0f, 0xbc, 0x79, 0x66, 0x7e, 0xf9, 0xcd, 0xee, 0x6f, 0x76, 0x66, 0x02, 0x9b, - 0x2c, 0x0f, 0xfb, 0x24, 0x4b, 0x18, 0xe6, 0xdc, 0xcd, 0x19, 0x15, 0x14, 0x35, 0x58, 0x1e, 0xda, - 0x6d, 0x9a, 0x0b, 0x42, 0x33, 0xed, 0xb3, 0x77, 0x52, 0x72, 0x8d, 0xaf, 0x88, 0xf0, 0x67, 0xa0, - 0xf6, 0x07, 0x09, 0xa5, 0x49, 0x8a, 0xfb, 0xd2, 0xba, 0x2c, 0xe2, 0x3e, 0x1e, 0xe5, 0x62, 0xa2, - 0x82, 0x8e, 0x0d, 0xd6, 0x6b, 0xc2, 0xc5, 0x8b, 0x50, 0x90, 0x6b, 0x3c, 0x54, 0xbf, 0xf3, 0xf0, - 0xaf, 0x05, 0xe6, 0xc2, 0xf9, 0xcd, 0x80, 0xee, 0x82, 0x20, 0xcf, 0x69, 0xc6, 0x31, 0x3a, 0x84, - 0x96, 0xce, 0xe3, 0x93, 0x88, 0x5b, 0xc6, 0x41, 0xa3, 0xb7, 0xf6, 0xd2, 0xb4, 0x0c, 0x0f, 0xb4, - 0x7b, 0x18, 0x71, 0xf4, 0x15, 0x74, 0x2a, 0x10, 0xc7, 0x9c, 0x97, 0x87, 0xb5, 0xcc, 0x83, 0x46, - 0xaf, 0x35, 0xd8, 0x72, 0x59, 0x1e, 0xba, 0x9a, 0xf4, 0x5c, 0xc5, 0xbc, 0x27, 0x64, 0xc6, 0xe6, - 0xce, 0xcf, 0xd0, 0xfd, 0x06, 0xa7, 0x58, 0xe0, 0x1f, 0xcf, 0x86, 0x6f, 0x3d, 0xcc, 0x69, 0xc1, - 0x42, 0xac, 0xcf, 0x87, 0x9e, 0x41, 0x8b, 0x69, 0x97, 0x4f, 0x22, 0xcb, 0x38, 0x30, 0x7a, 0x6b, - 0x1e, 0x54, 0xae, 0x61, 0x84, 0xf6, 0x00, 0xb8, 0x60, 0x38, 0x18, 0xf9, 0x57, 0x78, 0x62, 0x99, - 0x32, 0xbe, 0xa6, 0x3c, 0xaf, 0xf0, 0xc4, 0xf9, 0xdd, 0x84, 0xbd, 0xe1, 0xf1, 0x89, 0x87, 0xb9, - 0x08, 0x98, 0xf8, 0x1f, 0x32, 0xa0, 0x43, 0x68, 0x17, 0x1c, 0x33, 0x3f, 0x66, 0x41, 0x32, 0xc2, - 0x99, 0xb0, 0x1a, 0x12, 0xb1, 0x5e, 0x3a, 0x4f, 0xb5, 0x0f, 0xd9, 0xb0, 0x9a, 0x07, 0x9c, 0x8f, - 0x29, 0x8b, 0xac, 0x25, 0x19, 0xbf, 0xb3, 0xd1, 0x3e, 0x40, 0x18, 0x64, 0x11, 0x89, 0x02, 0x81, - 0xb9, 0xb5, 0x5c, 0x6a, 0xec, 0x4d, 0x79, 0xd0, 0xe7, 0xf0, 0x94, 0x05, 0x63, 0x5f, 0x30, 0x12, - 0x5e, 0xa5, 0xd8, 0x27, 0x21, 0xf6, 0x79, 0x94, 0x97, 0xe9, 0xac, 0xa6, 0xa4, 0xda, 0x66, 0xc1, - 0xf8, 0x42, 0x45, 0x87, 0x21, 0x3e, 0x57, 0x31, 0xd4, 0x85, 0x55, 0x12, 0xfb, 0xa3, 0x40, 0x84, - 0xef, 0xad, 0x15, 0x89, 0x5b, 0x21, 0xf1, 0x9b, 0xd2, 0x74, 0x22, 0xd8, 0xaf, 0xd3, 0x44, 0x17, - 0xde, 0x85, 0xad, 0x45, 0xf9, 0x94, 0x38, 0x9b, 0x62, 0x2e, 0x19, 0x82, 0x25, 0x2c, 0x82, 0x44, - 0xab, 0x23, 0xbf, 0x9d, 0xbf, 0x0c, 0xd8, 0x97, 0xe4, 0x17, 0xc7, 0xc7, 0x34, 0xcb, 0x70, 0x58, - 0xbe, 0xe3, 0xef, 0xa8, 0x20, 0xf1, 0xa4, 0xd2, 0xfe, 0x43, 0xd8, 0xc8, 0x03, 0x26, 0x48, 0x48, - 0xf2, 0x20, 0x13, 0xf7, 0xf2, 0xb7, 0xa7, 0xbc, 0xc3, 0x08, 0xed, 0x42, 0x33, 0x4c, 0x29, 0xc7, - 0x91, 0xe4, 0x5f, 0xf5, 0xb4, 0x85, 0x5c, 0x58, 0xbe, 0x26, 0x11, 0xa6, 0x52, 0xf2, 0xd6, 0xc0, - 0x72, 0x75, 0x73, 0xb8, 0xc3, 0x2c, 0x2f, 0xc4, 0x0f, 0x65, 0xe8, 0x5c, 0x04, 0x02, 0x7b, 0x0a, - 0x56, 0xe2, 0x83, 0x22, 0x22, 0x54, 0x96, 0x60, 0x0e, 0xff, 0xa2, 0x0c, 0x69, 0xbc, 0x84, 0x39, - 0x7f, 0x34, 0x60, 0xeb, 0xbc, 0xd4, 0x68, 0xb6, 0x69, 0x50, 0x0f, 0x96, 0x48, 0x16, 0x53, 0x79, - 0xd8, 0xd6, 0x60, 0x7b, 0x8a, 0x46, 0x35, 0x45, 0x16, 0x53, 0x4f, 0x22, 0xd0, 0x36, 0x2c, 0x0b, - 0x7a, 0x85, 0x33, 0x2d, 0x8c, 0x32, 0xd0, 0x0e, 0x34, 0xc7, 0xdc, 0x2f, 0x58, 0xaa, 0xdf, 0xca, - 0xf2, 0x98, 0xbf, 0x63, 0x29, 0xf2, 0x60, 0x23, 0xa5, 0x49, 0x42, 0xb2, 0xc4, 0x8f, 0x09, 0x4e, - 0x23, 0x6e, 0x2d, 0xc9, 0x36, 0xfa, 0x58, 0xb6, 0xd1, 0x82, 0x83, 0xb8, 0xaf, 0x15, 0xfc, 0x54, - 0xa2, 0x4f, 0x32, 0xc1, 0x26, 0x5e, 0x3b, 0x9d, 0xf6, 0xa1, 0xef, 0xa1, 0x1d, 0xe3, 0x40, 0x14, - 0x0c, 0xfb, 0x71, 0x1a, 0x24, 0xea, 0x7d, 0xb5, 0x06, 0x1f, 0xd5, 0x52, 0x9e, 0x2a, 0xf4, 0x69, - 0x09, 0x56, 0x8c, 0xeb, 0xf1, 0x94, 0xcb, 0x3e, 0x02, 0x34, 0x9f, 0x15, 0x75, 0xa0, 0x51, 0x36, - 0x87, 0xaa, 0x5e, 0xf9, 0x59, 0xde, 0xfc, 0x3a, 0x48, 0x0b, 0x5c, 0xdd, 0x5c, 0x1a, 0x5f, 0x9a, - 0x5f, 0x18, 0xf6, 0xd7, 0xb0, 0x39, 0x97, 0xe4, 0xbf, 0x10, 0x38, 0x6f, 0x61, 0x63, 0x76, 0xa6, - 0x94, 0x2d, 0x7a, 0x3f, 0xa7, 0x34, 0xc9, 0xda, 0xdd, 0x88, 0x7a, 0xd8, 0xe2, 0xe6, 0xc3, 0x16, - 0x77, 0xbe, 0x85, 0xee, 0x2b, 0x92, 0xa6, 0x0f, 0x26, 0x95, 0xae, 0xf6, 0x27, 0xb0, 0xa2, 0xe7, - 0x9a, 0x2e, 0xf8, 0xc2, 0xb1, 0x56, 0x61, 0x06, 0x7f, 0x9a, 0xf0, 0xe4, 0xee, 0x21, 0x08, 0xcc, - 0xb2, 0x20, 0x45, 0x67, 0xb0, 0x3e, 0xad, 0x35, 0xb2, 0xea, 0xe4, 0xb7, 0x17, 0x3e, 0x26, 0x67, - 0xf5, 0xf6, 0xc6, 0x58, 0x3a, 0x32, 0x3e, 0x35, 0xd0, 0x2f, 0xb0, 0x39, 0x37, 0xae, 0xd1, 0x9e, - 0xa4, 0xab, 0x9b, 0xf1, 0xf6, 0x7e, 0x5d, 0x58, 0x35, 0xbb, 0x03, 0xb7, 0x37, 0x46, 0xb3, 0x63, - 0x1c, 0x99, 0x3d, 0x03, 0x51, 0x40, 0xf3, 0x4a, 0x20, 0xc5, 0x50, 0x2b, 0x91, 0xbd, 0xeb, 0xaa, - 0xfd, 0xe3, 0x56, 0xfb, 0xc7, 0x3d, 0x29, 0xf7, 0x8f, 0xf3, 0xfc, 0xf6, 0xc6, 0xd8, 0xeb, 0x18, - 0x76, 0x17, 0x4d, 0xd5, 0x07, 0x4d, 0x17, 0x63, 0xf0, 0x77, 0xe3, 0xae, 0x9a, 0x67, 0x41, 0x16, - 0xa5, 0x98, 0xa1, 0x37, 0xd0, 0x7e, 0x97, 0x97, 0xb3, 0xef, 0xfe, 0x7e, 0x95, 0x28, 0x33, 0xfe, - 0x2a, 0xfb, 0xce, 0x43, 0xcd, 0x64, 0x13, 0x3b, 0xcd, 0xdb, 0x1b, 0xc3, 0xec, 0x18, 0x25, 0x9d, - 0xda, 0x2f, 0xf3, 0x74, 0x33, 0xfe, 0x7f, 0x49, 0x77, 0x01, 0x68, 0x7e, 0x5d, 0x69, 0x85, 0x6a, - 0xf7, 0x58, 0xad, 0x42, 0x15, 0x2b, 0x81, 0xdd, 0xc5, 0x23, 0x19, 0x39, 0xea, 0xb5, 0x3d, 0xb6, - 0xc3, 0xec, 0xc3, 0x47, 0x31, 0xba, 0xcc, 0x55, 0xaa, 0x4b, 0x78, 0x5a, 0x33, 0x96, 0x91, 0xe2, - 0x79, 0x7c, 0x68, 0xd7, 0x5e, 0x45, 0x3f, 0x23, 0xdb, 0x3c, 0x30, 0x5e, 0x3e, 0xff, 0xe9, 0x59, - 0x42, 0xc4, 0xfb, 0xe2, 0xd2, 0x0d, 0xe9, 0xa8, 0xaf, 0xf5, 0x54, 0xff, 0x4e, 0x42, 0x9a, 0xf6, - 0x59, 0x1e, 0x5e, 0x36, 0xa5, 0xf5, 0xd9, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x21, 0xfd, 0x8f, - 0xaf, 0xf9, 0x08, 0x00, 0x00, + // 922 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0x96, 0x93, 0x34, 0x6d, 0x5f, 0x9a, 0x6e, 0x3b, 0xfd, 0xb1, 0xae, 0x51, 0xbb, 0xc5, 0x15, + 0x52, 0x04, 0xc2, 0x41, 0x41, 0x48, 0x88, 0x03, 0x74, 0xb7, 0xb4, 0x6a, 0xd8, 0x5d, 0x58, 0xb9, + 0x5d, 0x90, 0x40, 0xc2, 0x9a, 0xda, 0x63, 0xef, 0xa8, 0x8e, 0xc7, 0xcc, 0x8c, 0x1b, 0xe5, 0xc6, + 0xb5, 0x57, 0xc4, 0x5f, 0xd2, 0x2b, 0x07, 0xfe, 0x08, 0xfe, 0x21, 0xe4, 0x99, 0x71, 0x9a, 0x34, + 0x49, 0x05, 0x87, 0xbd, 0xf9, 0xbd, 0xf7, 0xe5, 0x7b, 0x33, 0xdf, 0xcc, 0xfb, 0x26, 0xb0, 0xc9, + 0xf3, 0xb0, 0x4b, 0xb3, 0x84, 0x13, 0x21, 0xbc, 0x9c, 0x33, 0xc9, 0x50, 0x9d, 0xe7, 0xa1, 0xd3, + 0x66, 0xb9, 0xa4, 0x2c, 0x33, 0x39, 0x67, 0x27, 0xa5, 0x37, 0xe4, 0x9a, 0xca, 0x60, 0x0a, 0xea, + 0x7c, 0x90, 0x30, 0x96, 0xa4, 0xa4, 0xab, 0xa2, 0xab, 0x22, 0xee, 0x92, 0x41, 0x2e, 0x47, 0xba, + 0xe8, 0x3a, 0x60, 0xbf, 0xa2, 0x42, 0x3e, 0x0f, 0x25, 0xbd, 0x21, 0x7d, 0xfd, 0x3b, 0x9f, 0xfc, + 0x56, 0x10, 0x21, 0xdd, 0xdf, 0x2d, 0xd8, 0x9b, 0x53, 0x14, 0x39, 0xcb, 0x04, 0x41, 0x47, 0xd0, + 0x32, 0x7d, 0x02, 0x1a, 0x09, 0xdb, 0x3a, 0xac, 0x77, 0x56, 0x5f, 0xd4, 0x6c, 0xcb, 0x07, 0x93, + 0xee, 0x47, 0x02, 0x7d, 0x0d, 0x1b, 0x15, 0x48, 0x10, 0x21, 0xca, 0xc5, 0xda, 0xb5, 0xc3, 0x7a, + 0xa7, 0xd5, 0xdb, 0xf2, 0x78, 0x1e, 0x7a, 0x86, 0xf4, 0x42, 0xd7, 0xfc, 0x27, 0x74, 0x2a, 0x16, + 0xee, 0x2f, 0xb0, 0xf7, 0x2d, 0x49, 0x89, 0x24, 0x3f, 0x9d, 0xf7, 0xdf, 0xf8, 0x44, 0xb0, 0x82, + 0x87, 0xc4, 0xac, 0x0f, 0x3d, 0x83, 0x16, 0x37, 0xa9, 0x80, 0x46, 0xb6, 0x75, 0x68, 0x75, 0x56, + 0x7d, 0xa8, 0x52, 0xfd, 0x08, 0xed, 0x03, 0x08, 0xc9, 0x09, 0x1e, 0x04, 0xd7, 0x64, 0x64, 0xd7, + 0x54, 0x7d, 0x55, 0x67, 0x5e, 0x92, 0x91, 0xfb, 0x47, 0x0d, 0xf6, 0xfb, 0x27, 0xa7, 0x3e, 0x11, + 0x12, 0x73, 0xf9, 0x1e, 0x3a, 0xa0, 0x23, 0x68, 0x17, 0x82, 0xf0, 0x20, 0xe6, 0x38, 0x19, 0x90, + 0x4c, 0xda, 0x75, 0x85, 0x58, 0x2b, 0x93, 0x67, 0x26, 0x87, 0x1c, 0x58, 0xc9, 0xb1, 0x10, 0x43, + 0xc6, 0x23, 0xbb, 0xa1, 0xea, 0xe3, 0x18, 0x1d, 0x00, 0x84, 0x38, 0x8b, 0x68, 0x84, 0x25, 0x11, + 0xf6, 0x52, 0xa9, 0xb1, 0x3f, 0x91, 0x41, 0x5f, 0xc0, 0x53, 0x8e, 0x87, 0x81, 0xe4, 0x34, 0xbc, + 0x4e, 0x49, 0x40, 0x43, 0x12, 0x88, 0x28, 0x2f, 0xdb, 0xd9, 0x4d, 0x45, 0xb5, 0xcd, 0xf1, 0xf0, + 0x52, 0x57, 0xfb, 0x21, 0xb9, 0xd0, 0x35, 0xb4, 0x07, 0x2b, 0x34, 0x0e, 0x06, 0x58, 0x86, 0xef, + 0xec, 0x65, 0x85, 0x5b, 0xa6, 0xf1, 0xeb, 0x32, 0x74, 0x23, 0x38, 0x58, 0xa4, 0x89, 0x39, 0x78, + 0x0f, 0xb6, 0xe6, 0xf5, 0xd3, 0xe2, 0x6c, 0xca, 0x99, 0x66, 0x08, 0x1a, 0x44, 0xe2, 0xc4, 0xa8, + 0xa3, 0xbe, 0xdd, 0xbf, 0x2d, 0x38, 0x50, 0xe4, 0x97, 0x27, 0x27, 0x2c, 0xcb, 0x48, 0x58, 0xde, + 0xe3, 0xef, 0x99, 0xa4, 0xf1, 0xa8, 0xd2, 0xfe, 0x23, 0x58, 0xcf, 0x31, 0x97, 0x34, 0xa4, 0x39, + 0xce, 0xe4, 0xbd, 0xfc, 0xed, 0x89, 0x6c, 0x3f, 0x42, 0xbb, 0xd0, 0x0c, 0x53, 0x26, 0x48, 0xa4, + 0xf8, 0x57, 0x7c, 0x13, 0x21, 0x0f, 0x96, 0x6e, 0x68, 0x44, 0x98, 0x92, 0xbc, 0xd5, 0xb3, 0x3d, + 0x33, 0x1c, 0x5e, 0x3f, 0xcb, 0x0b, 0xf9, 0x63, 0x59, 0xba, 0x90, 0x58, 0x12, 0x5f, 0xc3, 0x4a, + 0x3c, 0x2e, 0x22, 0xca, 0xd4, 0x11, 0xcc, 0xe0, 0x9f, 0x97, 0x25, 0x83, 0x57, 0x30, 0xf7, 0xcf, + 0x3a, 0x6c, 0x5d, 0x94, 0x1a, 0x4d, 0x0f, 0x0d, 0xea, 0x40, 0x83, 0x66, 0x31, 0x53, 0x8b, 0x6d, + 0xf5, 0xb6, 0x27, 0x68, 0xf4, 0x50, 0x64, 0x31, 0xf3, 0x15, 0x02, 0x6d, 0xc3, 0x92, 0x64, 0xd7, + 0x24, 0x33, 0xc2, 0xe8, 0x00, 0xed, 0x40, 0x73, 0x28, 0x82, 0x82, 0xa7, 0xe6, 0xae, 0x2c, 0x0d, + 0xc5, 0x5b, 0x9e, 0x22, 0x1f, 0xd6, 0x53, 0x96, 0x24, 0x34, 0x4b, 0x82, 0x98, 0x92, 0x34, 0x12, + 0x76, 0x43, 0x8d, 0xd1, 0x27, 0x6a, 0x8c, 0xe6, 0x2c, 0xc4, 0x7b, 0xa5, 0xe1, 0x67, 0x0a, 0x7d, + 0x9a, 0x49, 0x3e, 0xf2, 0xdb, 0xe9, 0x64, 0x0e, 0xfd, 0x00, 0xed, 0x98, 0x60, 0x59, 0x70, 0x12, + 0xc4, 0x29, 0x4e, 0xf4, 0xfd, 0x6a, 0xf5, 0x3e, 0x5e, 0x48, 0x79, 0xa6, 0xd1, 0x67, 0x25, 0x58, + 0x33, 0xae, 0xc5, 0x13, 0x29, 0xe7, 0x18, 0xd0, 0x6c, 0x57, 0xb4, 0x01, 0xf5, 0x72, 0x38, 0xf4, + 0xe9, 0x95, 0x9f, 0xe5, 0xce, 0x6f, 0x70, 0x5a, 0x90, 0x6a, 0xe7, 0x2a, 0xf8, 0xaa, 0xf6, 0xa5, + 0xe5, 0x7c, 0x03, 0x9b, 0x33, 0x4d, 0xfe, 0x0f, 0x81, 0xfb, 0x06, 0xd6, 0xa7, 0x3d, 0xa5, 0x1c, + 0xd1, 0x7b, 0x9f, 0x32, 0x24, 0xab, 0x63, 0x8b, 0x7a, 0x38, 0xe2, 0xb5, 0x87, 0x23, 0xee, 0x7e, + 0x07, 0x7b, 0x2f, 0x69, 0x9a, 0x3e, 0x70, 0x2a, 0x73, 0xda, 0x9f, 0xc2, 0xb2, 0xf1, 0x35, 0x73, + 0xe0, 0x73, 0x6d, 0xad, 0xc2, 0xf4, 0xfe, 0xb2, 0xe0, 0xc9, 0xf8, 0x22, 0x48, 0xc2, 0x33, 0x9c, + 0xa2, 0x73, 0x58, 0x9b, 0xd4, 0x1a, 0xd9, 0x8b, 0xe4, 0x77, 0xe6, 0x5e, 0x26, 0x77, 0xe5, 0xee, + 0xd6, 0x6a, 0x1c, 0x5b, 0x9f, 0x59, 0xe8, 0x57, 0xd8, 0x9c, 0xb1, 0x6b, 0xb4, 0xaf, 0xe8, 0x16, + 0x79, 0xbc, 0x73, 0xb0, 0xa8, 0xac, 0x87, 0xdd, 0x85, 0xbb, 0x5b, 0xab, 0xb9, 0x61, 0x1d, 0xd7, + 0x3a, 0x56, 0xef, 0x9f, 0xfa, 0x58, 0xdc, 0x73, 0x9c, 0x45, 0x29, 0xe1, 0xe8, 0x35, 0xb4, 0xdf, + 0xe6, 0xa5, 0x15, 0xdd, 0xb7, 0xab, 0xd6, 0x38, 0x95, 0xaf, 0xda, 0xed, 0x3c, 0xdc, 0x82, 0x9a, + 0x29, 0xb7, 0x79, 0x77, 0x6b, 0xd5, 0x36, 0xac, 0x92, 0x4e, 0xdb, 0xfd, 0x2c, 0xdd, 0x54, 0xfe, + 0x3f, 0xd2, 0x5d, 0x02, 0x9a, 0x7d, 0x3d, 0x90, 0xde, 0xf2, 0xc2, 0x67, 0xc5, 0xd9, 0xf5, 0xf4, + 0x83, 0xe9, 0x55, 0x0f, 0xa6, 0x77, 0x5a, 0x3e, 0x98, 0x63, 0x56, 0x0a, 0xbb, 0xf3, 0x1d, 0x12, + 0xb9, 0xfa, 0xf0, 0x1f, 0x7b, 0x52, 0x9c, 0xa3, 0x47, 0x31, 0x46, 0xf5, 0xaa, 0xd5, 0x15, 0x3c, + 0x5d, 0xe0, 0x92, 0x48, 0xf3, 0x3c, 0xee, 0xa1, 0x0b, 0xb7, 0x62, 0x4e, 0xd5, 0xa9, 0x1d, 0x5a, + 0x2f, 0x3e, 0xfc, 0xf9, 0x59, 0x42, 0xe5, 0xbb, 0xe2, 0xca, 0x0b, 0xd9, 0xa0, 0x6b, 0xf4, 0xd4, + 0x7f, 0x16, 0x42, 0x96, 0x76, 0x79, 0x1e, 0x5e, 0x35, 0x55, 0xf4, 0xf9, 0xbf, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x7b, 0x9c, 0x67, 0x49, 0x88, 0x08, 0x00, 0x00, } diff --git a/rpc/io.pb.go b/rpc/io.pb.go index 4467bb5a..2eafc3ed 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -305,6 +305,7 @@ type GetIngressInfoResponse struct { Info *livekit.IngressInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` WsUrl string `protobuf:"bytes,3,opt,name=ws_url,json=wsUrl,proto3" json:"ws_url,omitempty"` + ProjectId string `protobuf:"bytes,6,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` LoggingFields map[string]string `protobuf:"bytes,4,rep,name=logging_fields,json=loggingFields,proto3" json:"logging_fields,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` FeatureFlags map[string]string `protobuf:"bytes,5,rep,name=feature_flags,json=featureFlags,proto3" json:"feature_flags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields @@ -362,6 +363,13 @@ func (x *GetIngressInfoResponse) GetWsUrl() string { return "" } +func (x *GetIngressInfoResponse) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + func (x *GetIngressInfoResponse) GetLoggingFields() map[string]string { if x != nil { return x.LoggingFields @@ -1269,11 +1277,13 @@ const file_rpc_io_proto_rawDesc = "" + "\n" + "ingress_id\x18\x01 \x01(\tR\tingressId\x12\x1d\n" + "\n" + - "stream_key\x18\x02 \x01(\tR\tstreamKey\"\x9d\x03\n" + + "stream_key\x18\x02 \x01(\tR\tstreamKey\"\xbc\x03\n" + "\x16GetIngressInfoResponse\x12(\n" + "\x04info\x18\x01 \x01(\v2\x14.livekit.IngressInfoR\x04info\x12\x14\n" + "\x05token\x18\x02 \x01(\tR\x05token\x12\x15\n" + - "\x06ws_url\x18\x03 \x01(\tR\x05wsUrl\x12U\n" + + "\x06ws_url\x18\x03 \x01(\tR\x05wsUrl\x12\x1d\n" + + "\n" + + "project_id\x18\x06 \x01(\tR\tprojectId\x12U\n" + "\x0elogging_fields\x18\x04 \x03(\v2..rpc.GetIngressInfoResponse.LoggingFieldsEntryR\rloggingFields\x12R\n" + "\rfeature_flags\x18\x05 \x03(\v2-.rpc.GetIngressInfoResponse.FeatureFlagsEntryR\ffeatureFlags\x1a@\n" + "\x12LoggingFieldsEntry\x12\x10\n" + diff --git a/rpc/io.psrpc.go b/rpc/io.psrpc.go index 0304ff17..b9380626 100644 --- a/rpc/io.psrpc.go +++ b/rpc/io.psrpc.go @@ -364,132 +364,133 @@ func (UnimplementedIOInfoServer) RecordCallContext(context.Context, *RecordCallC } var psrpcFileDescriptor4 = []byte{ - // 2029 bytes of a gzipped FileDescriptorProto + // 2036 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x18, 0x4d, 0x77, 0xdb, 0xc6, 0x31, 0x94, 0x28, 0x8a, 0x1c, 0x52, 0x22, 0xb5, 0xa2, 0x54, 0x88, 0x6a, 0x6c, 0x9a, 0xae, 0x63, 0x39, 0x4d, 0xa9, 0x46, 0x3d, 0x24, 0x75, 0x12, 0x27, 0x12, 0x05, 0xd9, 0x4c, 0x6c, 0x89, 0x86, 0xc8, 0xf7, 0x9a, 0xbe, 0xf6, 0xa1, 0x10, 0xb0, 0xa4, 0x10, 0x81, 0x58, 0x74, 0xb1, 0x90, 0xad, - 0xe6, 0xe5, 0xdc, 0x1e, 0x9a, 0x1e, 0x7a, 0xe9, 0x29, 0xaf, 0xb7, 0xfe, 0xba, 0xdc, 0x7b, 0xe9, - 0xa1, 0x6f, 0x3f, 0x40, 0x82, 0x5f, 0x16, 0xe9, 0xbe, 0xd7, 0x13, 0x89, 0xf9, 0xde, 0xd9, 0x99, - 0xd9, 0x99, 0x81, 0x02, 0x0d, 0xec, 0x7d, 0x97, 0xd4, 0x03, 0x4a, 0x18, 0x41, 0xcb, 0x34, 0xb0, - 0x2b, 0x65, 0xcf, 0xbd, 0xc6, 0x57, 0x2e, 0x33, 0x71, 0x8f, 0xe2, 0x30, 0x94, 0xa8, 0xca, 0x56, - 0x0c, 0x75, 0xfd, 0x24, 0x78, 0x23, 0x06, 0x87, 0x6e, 0xa0, 0x40, 0x28, 0x06, 0x51, 0x42, 0xfa, - 0x0a, 0x56, 0xf6, 0x48, 0xaf, 0x87, 0xe9, 0x3e, 0x09, 0x98, 0x4b, 0xfc, 0x98, 0x79, 0xb7, 0x47, - 0x48, 0xcf, 0xc3, 0xfb, 0xe2, 0xeb, 0x22, 0xea, 0xee, 0xe3, 0x7e, 0xc0, 0x6e, 0x14, 0xf2, 0xce, - 0x38, 0xd2, 0x89, 0xa8, 0xc5, 0xb9, 0x25, 0xbe, 0xb6, 0x0f, 0xa5, 0xa7, 0x98, 0xe9, 0xc2, 0x18, - 0x03, 0xff, 0x31, 0xc2, 0x21, 0x43, 0xbb, 0x90, 0x93, 0x46, 0x9b, 0xae, 0xa3, 0xa5, 0xaa, 0xa9, - 0xbd, 0x9c, 0x91, 0x95, 0x80, 0xa6, 0x53, 0xfb, 0x73, 0x0a, 0xca, 0x9d, 0xc0, 0xb1, 0x18, 0x7e, - 0x81, 0x19, 0x75, 0xed, 0x01, 0xd7, 0x43, 0x48, 0xbb, 0x7e, 0x97, 0x08, 0x86, 0xfc, 0xc1, 0x66, - 0x5d, 0xd9, 0x5f, 0x97, 0xb2, 0x9b, 0x7e, 0x97, 0x18, 0x82, 0x00, 0xd5, 0x60, 0xcd, 0xba, 0xee, - 0x99, 0x76, 0x10, 0x99, 0x51, 0x68, 0xf5, 0xb0, 0xb6, 0x5c, 0x4d, 0xed, 0x2d, 0x19, 0x79, 0xeb, - 0xba, 0xd7, 0x08, 0xa2, 0x0e, 0x07, 0x71, 0x9a, 0xbe, 0xf5, 0x3a, 0x41, 0x93, 0x96, 0x34, 0x7d, - 0xeb, 0x75, 0x4c, 0x53, 0xeb, 0xc0, 0xd6, 0x53, 0xcc, 0x9a, 0xfe, 0x50, 0xbe, 0xb2, 0xe4, 0x5d, - 0x00, 0xe5, 0xde, 0xe1, 0x01, 0x72, 0x0a, 0xd2, 0x74, 0x38, 0x3a, 0x64, 0x14, 0x5b, 0x7d, 0xf3, - 0x0a, 0xdf, 0x68, 0x4b, 0x12, 0x2d, 0x21, 0x5f, 0xe1, 0x9b, 0xda, 0x0f, 0xcb, 0xb0, 0x3d, 0x2e, - 0x37, 0x0c, 0x88, 0x1f, 0x62, 0xb4, 0x37, 0x72, 0xc4, 0xf2, 0xe0, 0x88, 0x49, 0x5a, 0x79, 0xc6, - 0x32, 0xac, 0x30, 0x72, 0x85, 0x7d, 0x25, 0x5e, 0x7e, 0xa0, 0x2d, 0xc8, 0xbc, 0x0a, 0xcd, 0x88, - 0x7a, 0xe2, 0xc8, 0x39, 0x63, 0xe5, 0x55, 0xd8, 0xa1, 0x1e, 0xea, 0xc0, 0x3a, 0xbf, 0x58, 0xd7, - 0xef, 0x99, 0x5d, 0x17, 0x7b, 0x4e, 0xa8, 0xa5, 0xab, 0xcb, 0x7b, 0xf9, 0x83, 0x7a, 0x9d, 0x06, - 0x76, 0x7d, 0xba, 0x2d, 0xf5, 0xe7, 0x92, 0xe3, 0x44, 0x30, 0xe8, 0x3e, 0xa3, 0x37, 0xc6, 0x9a, - 0x97, 0x84, 0x21, 0x03, 0xd6, 0xba, 0xd8, 0x62, 0x11, 0xc5, 0x66, 0xd7, 0xb3, 0x7a, 0xa1, 0xb6, - 0x22, 0xa4, 0xfe, 0xe2, 0x4d, 0x52, 0x4f, 0x24, 0xc3, 0x09, 0xa7, 0x97, 0x42, 0x0b, 0xdd, 0x04, - 0xa8, 0xf2, 0x05, 0xa0, 0x49, 0xc5, 0xa8, 0x04, 0xcb, 0xdc, 0x95, 0xd2, 0xd3, 0xfc, 0x2f, 0x3f, - 0xff, 0xb5, 0xe5, 0x45, 0x38, 0x3e, 0xbf, 0xf8, 0x78, 0xbc, 0xf4, 0x71, 0xaa, 0xf2, 0x39, 0x6c, - 0x4c, 0x28, 0x59, 0x44, 0x40, 0xad, 0x07, 0x3b, 0x32, 0xfe, 0x94, 0xfd, 0xe7, 0xcc, 0x62, 0x78, - 0xce, 0xab, 0xff, 0x39, 0xac, 0x84, 0x9c, 0x5c, 0x48, 0xcd, 0x1f, 0x6c, 0x8d, 0xdf, 0xa0, 0x94, - 0x25, 0x69, 0x6a, 0xff, 0x4e, 0x41, 0xf5, 0x29, 0x66, 0xe7, 0xcd, 0x56, 0x9b, 0x46, 0xfe, 0xd5, - 0x61, 0xc4, 0x2e, 0xb1, 0xcf, 0x5c, 0x5b, 0xa4, 0x4f, 0xac, 0xb0, 0x06, 0xf9, 0xd0, 0x0d, 0x4c, - 0xdb, 0xf2, 0x3c, 0xae, 0x31, 0xc3, 0x35, 0x1e, 0x2d, 0x69, 0x29, 0x23, 0x17, 0xba, 0x41, 0xc3, - 0xf2, 0xbc, 0xa6, 0x83, 0xb6, 0x21, 0xdd, 0xa5, 0xa4, 0x2f, 0x8f, 0x22, 0x90, 0xe2, 0x1b, 0xdd, - 0x85, 0x1c, 0xff, 0x35, 0x2f, 0x49, 0xc8, 0xb4, 0xd5, 0x01, 0x32, 0xcb, 0x81, 0xcf, 0x48, 0xc8, - 0x10, 0x82, 0x25, 0x46, 0x64, 0xac, 0x08, 0xcc, 0x12, 0x23, 0x68, 0x17, 0x56, 0x19, 0x91, 0x2c, - 0x2b, 0x03, 0x44, 0x86, 0x11, 0xc1, 0x70, 0x1f, 0xf2, 0x21, 0xb5, 0x4d, 0xcb, 0x71, 0xf8, 0x69, - 0x44, 0xd2, 0x48, 0x02, 0x08, 0xa9, 0x7d, 0x28, 0xa1, 0xa8, 0x0a, 0x69, 0x6e, 0xae, 0x96, 0x15, - 0x3e, 0x28, 0x88, 0x70, 0x38, 0x6f, 0xb6, 0xb8, 0xb1, 0x86, 0xc0, 0xd4, 0x7e, 0x48, 0xc3, 0xbd, - 0x37, 0x9c, 0x5c, 0x65, 0xc3, 0x11, 0x64, 0xa3, 0x10, 0x53, 0xdf, 0xea, 0x63, 0xe9, 0xe9, 0xa3, - 0xf7, 0xfe, 0xf2, 0xe3, 0x07, 0xa9, 0xbf, 0xff, 0xf8, 0xc1, 0x9d, 0x4f, 0x29, 0x76, 0x2c, 0x9b, - 0x61, 0xa7, 0xba, 0xf7, 0xed, 0xb7, 0xd5, 0xfa, 0xb9, 0xfb, 0x27, 0x5c, 0xfd, 0xee, 0xbb, 0xea, - 0xc5, 0x0d, 0xc3, 0xe1, 0xa3, 0x27, 0xc6, 0x80, 0x8f, 0xcb, 0x08, 0xac, 0x30, 0x7c, 0x45, 0xa8, - 0xa3, 0xdc, 0x33, 0xb7, 0x8c, 0x98, 0x0f, 0x21, 0x48, 0x3b, 0x94, 0x04, 0xc2, 0x4f, 0x59, 0x43, - 0xfc, 0x47, 0x55, 0x28, 0xf0, 0x6b, 0x61, 0xdc, 0x7c, 0x7e, 0x2f, 0xc2, 0x13, 0x06, 0x84, 0x6e, - 0x20, 0x4e, 0x24, 0xab, 0x40, 0x40, 0xc9, 0x37, 0xd8, 0x66, 0x1c, 0xbf, 0x22, 0x23, 0x45, 0x41, - 0x9a, 0x0e, 0x7a, 0x0c, 0x6b, 0x01, 0x25, 0xd7, 0xae, 0x83, 0xa9, 0x29, 0x72, 0x3e, 0x33, 0x16, - 0x31, 0x2d, 0x85, 0x15, 0xe9, 0x53, 0x08, 0x12, 0x5f, 0xe8, 0x73, 0x00, 0x4c, 0x29, 0xa1, 0xa6, - 0x4d, 0x1c, 0x2c, 0x2e, 0x76, 0xfd, 0xa0, 0x1a, 0xbb, 0x79, 0x8a, 0x47, 0x75, 0x4e, 0x6c, 0xe4, - 0x04, 0x4f, 0x83, 0x38, 0x18, 0xfd, 0x7e, 0x3c, 0x73, 0xb3, 0x22, 0x73, 0x3f, 0x8e, 0x33, 0xf7, - 0xcd, 0x17, 0x73, 0x6b, 0x12, 0xff, 0xcf, 0x29, 0xf8, 0x9f, 0x34, 0xdc, 0xd5, 0xf9, 0xa7, 0xc5, - 0xf0, 0x79, 0xb3, 0x75, 0xec, 0x86, 0x81, 0xc5, 0xec, 0x4b, 0x23, 0xf2, 0x70, 0x38, 0x23, 0x31, - 0xb2, 0xd3, 0x12, 0xe3, 0x97, 0x80, 0x38, 0x4d, 0x60, 0x51, 0xe6, 0xda, 0x6e, 0x60, 0xf9, 0x6c, - 0x90, 0xb5, 0x82, 0xb4, 0x14, 0xba, 0x41, 0x6b, 0x88, 0x6c, 0x3a, 0x13, 0xf7, 0x0a, 0x13, 0xf7, - 0xfa, 0x08, 0xd6, 0xb9, 0x4e, 0x5e, 0x4c, 0xfd, 0xa8, 0x7f, 0x81, 0x69, 0x22, 0xed, 0xd6, 0x14, - 0xe6, 0x54, 0x20, 0xd0, 0x03, 0x28, 0xc4, 0xa4, 0x22, 0x9f, 0xf2, 0x03, 0xc2, 0xbc, 0x82, 0x8b, - 0xa4, 0x7a, 0x08, 0x82, 0x0f, 0x3b, 0xb1, 0xc0, 0x61, 0x42, 0x16, 0x24, 0x42, 0xc9, 0x9b, 0x2b, - 0xfb, 0x4a, 0xb0, 0x1c, 0xb8, 0xbe, 0x0a, 0x38, 0xfe, 0x97, 0xbf, 0x0a, 0x3e, 0x31, 0x39, 0x30, - 0x23, 0x22, 0x78, 0xc5, 0x27, 0x2d, 0xd7, 0xe7, 0xd2, 0x94, 0xda, 0xb1, 0xfa, 0x00, 0x12, 0x2c, - 0x6c, 0xfb, 0x6b, 0x0a, 0x4a, 0xf8, 0x35, 0xa3, 0x96, 0x69, 0x31, 0x46, 0xdd, 0x8b, 0x88, 0xe1, - 0x50, 0xcb, 0x89, 0x68, 0xf9, 0xb5, 0x88, 0x96, 0x5b, 0xae, 0xa9, 0xae, 0x73, 0xe6, 0xc3, 0x01, - 0xaf, 0x88, 0x85, 0xb9, 0x73, 0xb0, 0x88, 0x47, 0xb9, 0x07, 0xa5, 0xa5, 0x30, 0xab, 0xb4, 0x54, - 0x8e, 0xa0, 0x3c, 0x4d, 0xe5, 0x42, 0xe1, 0xf7, 0xaf, 0x22, 0x54, 0x67, 0x9f, 0x4b, 0x55, 0xa7, - 0x5d, 0xc8, 0xf1, 0xce, 0xc9, 0x1c, 0x96, 0x27, 0x23, 0xcb, 0x01, 0xa7, 0xbc, 0xec, 0x7c, 0x08, - 0xe5, 0xd1, 0xa0, 0xe3, 0x59, 0xc4, 0xe2, 0x66, 0x60, 0x33, 0x48, 0xc6, 0x9c, 0x44, 0xa1, 0x97, - 0x50, 0x4a, 0xb2, 0x08, 0xb1, 0xab, 0x0b, 0x55, 0xac, 0x62, 0x82, 0x5f, 0x58, 0xf1, 0xf5, 0xa8, - 0x15, 0x7d, 0xcc, 0x2c, 0xc7, 0x62, 0x96, 0xca, 0x95, 0x79, 0xc5, 0x26, 0xad, 0x7d, 0xa1, 0x44, - 0xa0, 0x7f, 0xa6, 0x60, 0x3b, 0x29, 0x3b, 0x11, 0x1d, 0x79, 0x11, 0x1d, 0x5f, 0xdc, 0x12, 0x1d, - 0xaa, 0x94, 0x24, 0xb2, 0xef, 0x6d, 0x83, 0x64, 0x2b, 0x98, 0x26, 0x83, 0x87, 0x37, 0x95, 0x31, - 0x28, 0x42, 0x5f, 0x14, 0x6f, 0x19, 0xde, 0x0a, 0xcc, 0x73, 0xe0, 0xd3, 0xb8, 0x8d, 0x4a, 0x2f, - 0xe4, 0x92, 0x89, 0x76, 0x6b, 0x25, 0xd9, 0x6e, 0xd5, 0x21, 0x43, 0x71, 0x18, 0x79, 0x4c, 0xe4, - 0xdb, 0xfa, 0xc1, 0x76, 0x1c, 0xa6, 0x03, 0x17, 0x08, 0xac, 0xa1, 0xa8, 0x26, 0x6a, 0x4e, 0x6e, - 0xa2, 0xe6, 0xec, 0x43, 0x99, 0x53, 0x38, 0x8a, 0xdf, 0xa4, 0x91, 0x87, 0x87, 0xd5, 0x69, 0x23, - 0x74, 0x83, 0xa4, 0x77, 0x27, 0x1e, 0x9f, 0xc2, 0xf8, 0xe3, 0xc3, 0x60, 0xf5, 0x12, 0x5b, 0x0e, - 0xa6, 0xa1, 0xb6, 0x26, 0x6e, 0xeb, 0x60, 0xbe, 0xdb, 0x7a, 0x26, 0x99, 0x16, 0xbb, 0x9f, 0x58, - 0x15, 0xa2, 0xb0, 0xa5, 0xfe, 0x9a, 0x8c, 0x24, 0x23, 0x66, 0x5d, 0xd8, 0xf0, 0x64, 0x21, 0x1b, - 0xda, 0x64, 0x2c, 0x5e, 0x8c, 0xcd, 0xcb, 0x49, 0x0c, 0xd7, 0x39, 0x54, 0xc4, 0xd5, 0xc6, 0xe7, - 0x46, 0x8b, 0xe8, 0x1c, 0x0a, 0x6c, 0x93, 0xa4, 0x0f, 0x8c, 0x4d, 0x6b, 0x12, 0x83, 0x8e, 0xa0, - 0xe8, 0xfa, 0xb6, 0x17, 0x39, 0x78, 0xa0, 0x6d, 0x53, 0x04, 0xc2, 0xce, 0xe0, 0x71, 0x3f, 0x6f, - 0xb6, 0x24, 0xf5, 0x99, 0x9c, 0xb4, 0x8c, 0x75, 0xc5, 0x11, 0xcb, 0x78, 0x02, 0x25, 0xec, 0x5b, - 0x17, 0xbc, 0x3a, 0xab, 0xa7, 0x35, 0xd4, 0x8a, 0xd5, 0xe5, 0xbd, 0xf5, 0xc4, 0xe0, 0x73, 0xde, - 0x6c, 0xa9, 0x67, 0xd6, 0x28, 0x2a, 0x62, 0xf5, 0x2d, 0x6c, 0xa0, 0xae, 0x2f, 0x5a, 0x7e, 0xe6, - 0xf6, 0x31, 0x89, 0x98, 0x56, 0x12, 0x35, 0x73, 0xa7, 0x2e, 0x07, 0xb6, 0x7a, 0x3c, 0xb0, 0xd5, - 0x8f, 0xd5, 0xc0, 0x66, 0xac, 0x2b, 0x8e, 0xb6, 0x64, 0x40, 0x3a, 0x6c, 0x88, 0x19, 0x89, 0xbf, - 0xb0, 0xf1, 0x54, 0xa7, 0x6d, 0xdc, 0x26, 0xa5, 0xc8, 0x47, 0x28, 0xcb, 0xf3, 0x62, 0x00, 0xba, - 0x0b, 0x79, 0x51, 0x28, 0x03, 0x8a, 0x43, 0xcc, 0xb4, 0xb2, 0x8c, 0x6e, 0x0e, 0x6a, 0x09, 0x08, - 0xfa, 0x44, 0x11, 0xd8, 0xc4, 0xef, 0xba, 0x3d, 0x6d, 0x4b, 0x68, 0xa8, 0x0c, 0x8e, 0x69, 0x10, - 0xd2, 0x6f, 0x08, 0x54, 0xac, 0x42, 0x30, 0x4b, 0x10, 0x3a, 0x81, 0x52, 0x1f, 0x3b, 0xae, 0x65, - 0x62, 0xdf, 0xa6, 0x37, 0xc2, 0x9b, 0xda, 0xb6, 0xf0, 0xf6, 0x6e, 0xd2, 0x51, 0x2f, 0x38, 0x8d, - 0x3e, 0x20, 0x31, 0x8a, 0xfd, 0x51, 0x00, 0xfa, 0xdd, 0x78, 0x4b, 0xf4, 0x13, 0x11, 0x20, 0x1f, - 0xcd, 0x17, 0x20, 0xb7, 0x75, 0x44, 0xcf, 0xa0, 0x32, 0xbb, 0xd2, 0x2d, 0x34, 0xde, 0x3c, 0x86, - 0x42, 0x32, 0x02, 0x17, 0xe2, 0x3d, 0x01, 0x6d, 0x56, 0xf6, 0x2c, 0x2a, 0x67, 0x56, 0x46, 0xfc, - 0x7f, 0x47, 0xb5, 0xef, 0x53, 0xf1, 0xac, 0xa6, 0x9a, 0x80, 0x91, 0x59, 0xed, 0x43, 0xc8, 0xc9, - 0xee, 0x70, 0xda, 0x48, 0xad, 0x18, 0x44, 0x77, 0x9d, 0xb5, 0xd5, 0x3f, 0xf4, 0x19, 0xac, 0x31, - 0x6a, 0xf9, 0x61, 0x37, 0xee, 0xca, 0xe5, 0x1c, 0xa7, 0x25, 0xd9, 0xda, 0x8a, 0x40, 0x36, 0xe6, - 0x2c, 0xf1, 0x55, 0x7b, 0x01, 0x9a, 0x81, 0x6d, 0x42, 0x1d, 0x2e, 0xba, 0x41, 0x7c, 0x86, 0x5f, - 0xb3, 0xb7, 0xb7, 0xa6, 0xf6, 0x8f, 0x25, 0x58, 0x55, 0x18, 0xf4, 0x53, 0x00, 0xef, 0x6a, 0xd0, - 0xed, 0xaa, 0x7e, 0xc3, 0xbb, 0x52, 0x8d, 0xee, 0x2e, 0xe4, 0x42, 0x12, 0x51, 0x1b, 0x9b, 0x6e, - 0xa0, 0xdc, 0x94, 0x95, 0x80, 0x66, 0x80, 0x1e, 0xc1, 0x6a, 0xdc, 0x32, 0x2e, 0x0b, 0xbd, 0xc5, - 0xa4, 0xde, 0x0e, 0x75, 0x8d, 0x18, 0x8f, 0xee, 0xab, 0x49, 0x32, 0x3d, 0x9d, 0x2e, 0x1e, 0x2b, - 0xf9, 0xd4, 0xb8, 0x32, 0x9d, 0x84, 0x8f, 0x90, 0xf7, 0x60, 0xf9, 0xda, 0xb5, 0xb4, 0x8c, 0xc8, - 0xa0, 0x09, 0x0a, 0x8e, 0x43, 0x77, 0x46, 0xbb, 0xf7, 0x55, 0xb5, 0x24, 0x19, 0x74, 0xee, 0xa3, - 0x0f, 0x58, 0x76, 0xec, 0x01, 0x7b, 0xff, 0x0f, 0xb0, 0x31, 0xf1, 0x9e, 0x22, 0x0d, 0xca, 0xcf, - 0xf5, 0xa7, 0x87, 0x8d, 0xaf, 0xcd, 0xc3, 0x46, 0x43, 0x6f, 0xb5, 0xcd, 0x33, 0xc3, 0x6c, 0x35, - 0x4f, 0x4b, 0xef, 0x20, 0x80, 0x8c, 0x04, 0x95, 0x52, 0xa8, 0x08, 0x79, 0x43, 0x7f, 0xd9, 0xd1, - 0xcf, 0xdb, 0x02, 0xb9, 0xc4, 0x91, 0x86, 0xfe, 0xa5, 0xde, 0x68, 0x97, 0x96, 0x51, 0x16, 0xd2, - 0xc7, 0xc6, 0x59, 0xab, 0x94, 0x7e, 0xff, 0x6f, 0x29, 0xd8, 0x7d, 0xc3, 0x34, 0x85, 0xde, 0x85, - 0x9d, 0xf3, 0x66, 0xcb, 0x6c, 0x1b, 0x9d, 0xd3, 0xaf, 0xcc, 0xc3, 0x4e, 0xfb, 0x99, 0xa9, 0x1b, - 0xc6, 0x99, 0x61, 0x9e, 0x9e, 0x9d, 0xea, 0xa5, 0x77, 0xd0, 0x43, 0xb8, 0x3f, 0x15, 0xfd, 0xb2, - 0x73, 0xd6, 0x3e, 0x34, 0xf5, 0xdf, 0x34, 0x74, 0xfd, 0x58, 0x3f, 0x2e, 0xa5, 0x66, 0x12, 0x9e, - 0x9e, 0x29, 0xd8, 0xc9, 0x59, 0xe7, 0xf4, 0xb8, 0xb4, 0x74, 0xf0, 0xfd, 0x2a, 0x64, 0x9a, 0x67, - 0x22, 0x4a, 0x3f, 0x81, 0x42, 0x83, 0x62, 0x8b, 0x61, 0xb9, 0xfa, 0x42, 0xd3, 0x76, 0x61, 0x95, - 0xed, 0x89, 0x12, 0xad, 0xf7, 0x03, 0x76, 0xc3, 0x99, 0x65, 0xca, 0xbc, 0x0d, 0xf3, 0x47, 0x90, - 0x1b, 0x6c, 0xf3, 0xd0, 0x56, 0x3c, 0x2e, 0x8e, 0x6c, 0xf7, 0x2a, 0xd3, 0x04, 0x22, 0x1d, 0xe0, - 0xb9, 0x1b, 0xc6, 0x9c, 0xc3, 0xe2, 0x3e, 0x04, 0xc6, 0xec, 0xbb, 0x53, 0x71, 0x83, 0x95, 0xc0, - 0xda, 0xc8, 0x6e, 0x10, 0xed, 0x08, 0x1b, 0xa6, 0xed, 0x0b, 0x67, 0x9e, 0xe1, 0x33, 0x58, 0x93, - 0xde, 0x53, 0x3b, 0x19, 0x34, 0x75, 0xcf, 0x36, 0x93, 0xbd, 0x09, 0xeb, 0xa3, 0xbb, 0x2d, 0x54, - 0x99, 0xba, 0xf0, 0x8a, 0x4f, 0x33, 0x7b, 0x19, 0x86, 0x9e, 0x03, 0x9a, 0xdc, 0x34, 0xa1, 0x3b, - 0x89, 0x23, 0x4d, 0x59, 0x41, 0xcd, 0x34, 0xec, 0x1b, 0xd8, 0x99, 0x39, 0xba, 0xa3, 0x07, 0xb7, - 0x8d, 0xf6, 0x52, 0xf6, 0x7b, 0xf3, 0x6d, 0x00, 0x50, 0x0f, 0xb4, 0x59, 0x6f, 0x22, 0xfa, 0xd9, - 0x3c, 0x73, 0x61, 0xe5, 0xc1, 0x5c, 0x0f, 0xeb, 0xd0, 0x45, 0xc9, 0x02, 0x3f, 0xe2, 0xa2, 0x29, - 0x95, 0x7f, 0xa6, 0x8b, 0xbe, 0x84, 0x8d, 0x89, 0xfa, 0x8c, 0xde, 0x15, 0xc2, 0x66, 0xd5, 0xed, - 0x59, 0xb2, 0x8e, 0xee, 0xfd, 0xf6, 0x6e, 0xcf, 0x65, 0x97, 0xd1, 0x45, 0xdd, 0x26, 0xfd, 0x7d, - 0x15, 0x41, 0x72, 0x0d, 0x6e, 0x13, 0x6f, 0x9f, 0x06, 0xf6, 0x45, 0x46, 0x7c, 0xfd, 0xea, 0xbf, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x5e, 0x05, 0x24, 0xbe, 0x17, 0x00, 0x00, + 0xe6, 0xe5, 0xdc, 0x1e, 0x9a, 0x1e, 0x7a, 0xe9, 0xa9, 0xaf, 0xb7, 0xfe, 0x8a, 0xfe, 0xa4, 0xdc, + 0x7b, 0xe9, 0xa1, 0x6f, 0x3f, 0x40, 0x82, 0x5f, 0x16, 0xe9, 0xbe, 0xd7, 0x13, 0x89, 0xf9, 0xde, + 0xd9, 0x99, 0xd9, 0x99, 0x81, 0x02, 0x0d, 0xec, 0x7d, 0x97, 0xd4, 0x03, 0x4a, 0x18, 0x41, 0xcb, + 0x34, 0xb0, 0x2b, 0x65, 0xcf, 0xbd, 0xc6, 0x57, 0x2e, 0x33, 0x71, 0x8f, 0xe2, 0x30, 0x94, 0xa8, + 0xca, 0x56, 0x0c, 0x75, 0xfd, 0x24, 0x78, 0x23, 0x06, 0x87, 0x6e, 0xa0, 0x40, 0x28, 0x06, 0x51, + 0x42, 0xfa, 0x0a, 0x56, 0xf6, 0x48, 0xaf, 0x87, 0xe9, 0x3e, 0x09, 0x98, 0x4b, 0xfc, 0x98, 0x79, + 0xb7, 0x47, 0x48, 0xcf, 0xc3, 0xfb, 0xe2, 0xeb, 0x22, 0xea, 0xee, 0xe3, 0x7e, 0xc0, 0x6e, 0x14, + 0xf2, 0xce, 0x38, 0xd2, 0x89, 0xa8, 0xc5, 0xb9, 0x25, 0xbe, 0xb6, 0x0f, 0xa5, 0xa7, 0x98, 0xe9, + 0xc2, 0x18, 0x03, 0xff, 0x3e, 0xc2, 0x21, 0x43, 0xbb, 0x90, 0x93, 0x46, 0x9b, 0xae, 0xa3, 0xa5, + 0xaa, 0xa9, 0xbd, 0x9c, 0x91, 0x95, 0x80, 0xa6, 0x53, 0xfb, 0x63, 0x0a, 0xca, 0x9d, 0xc0, 0xb1, + 0x18, 0x7e, 0x81, 0x19, 0x75, 0xed, 0x01, 0xd7, 0x43, 0x48, 0xbb, 0x7e, 0x97, 0x08, 0x86, 0xfc, + 0xc1, 0x66, 0x5d, 0xd9, 0x5f, 0x97, 0xb2, 0x9b, 0x7e, 0x97, 0x18, 0x82, 0x00, 0xd5, 0x60, 0xcd, + 0xba, 0xee, 0x99, 0x76, 0x10, 0x99, 0x51, 0x68, 0xf5, 0xb0, 0xb6, 0x5c, 0x4d, 0xed, 0x2d, 0x19, + 0x79, 0xeb, 0xba, 0xd7, 0x08, 0xa2, 0x0e, 0x07, 0x71, 0x9a, 0xbe, 0xf5, 0x3a, 0x41, 0x93, 0x96, + 0x34, 0x7d, 0xeb, 0x75, 0x4c, 0x53, 0xeb, 0xc0, 0xd6, 0x53, 0xcc, 0x9a, 0xfe, 0x50, 0xbe, 0xb2, + 0xe4, 0x5d, 0x00, 0xe5, 0xde, 0xe1, 0x01, 0x72, 0x0a, 0xd2, 0x74, 0x38, 0x3a, 0x64, 0x14, 0x5b, + 0x7d, 0xf3, 0x0a, 0xdf, 0x68, 0x4b, 0x12, 0x2d, 0x21, 0x5f, 0xe1, 0x9b, 0xda, 0xbf, 0x96, 0x61, + 0x7b, 0x5c, 0x6e, 0x18, 0x10, 0x3f, 0xc4, 0x68, 0x6f, 0xe4, 0x88, 0xe5, 0xc1, 0x11, 0x93, 0xb4, + 0xf2, 0x8c, 0x65, 0x58, 0x61, 0xe4, 0x0a, 0xfb, 0x4a, 0xbc, 0xfc, 0x40, 0x5b, 0x90, 0x79, 0x15, + 0x9a, 0x11, 0xf5, 0xc4, 0x91, 0x73, 0xc6, 0xca, 0xab, 0xb0, 0x43, 0x3d, 0x6e, 0x50, 0x40, 0xc9, + 0x37, 0xd8, 0x66, 0xdc, 0xde, 0x8c, 0x34, 0x48, 0x41, 0x9a, 0x0e, 0xea, 0xc0, 0x3a, 0xbf, 0x77, + 0xd7, 0xef, 0x99, 0x5d, 0x17, 0x7b, 0x4e, 0xa8, 0xa5, 0xab, 0xcb, 0x7b, 0xf9, 0x83, 0x7a, 0x9d, + 0x06, 0x76, 0x7d, 0xba, 0xa9, 0xf5, 0xe7, 0x92, 0xe3, 0x44, 0x30, 0xe8, 0x3e, 0xa3, 0x37, 0xc6, + 0x9a, 0x97, 0x84, 0x21, 0x03, 0xd6, 0xba, 0xd8, 0x62, 0x11, 0xc5, 0x66, 0xd7, 0xb3, 0x7a, 0xa1, + 0xb6, 0x22, 0xa4, 0xfe, 0xec, 0x4d, 0x52, 0x4f, 0x24, 0xc3, 0x09, 0xa7, 0x97, 0x42, 0x0b, 0xdd, + 0x04, 0xa8, 0xf2, 0x05, 0xa0, 0x49, 0xc5, 0xa8, 0x04, 0xcb, 0xdc, 0xd3, 0xf2, 0x22, 0xf8, 0x5f, + 0xee, 0x9e, 0x6b, 0xcb, 0x8b, 0x70, 0xec, 0x1e, 0xf1, 0xf1, 0x78, 0xe9, 0xe3, 0x54, 0xe5, 0x73, + 0xd8, 0x98, 0x50, 0xb2, 0x88, 0x80, 0x5a, 0x0f, 0x76, 0x64, 0x78, 0x2a, 0xfb, 0xcf, 0x99, 0xc5, + 0xf0, 0x9c, 0x91, 0xf1, 0x53, 0x58, 0x09, 0x39, 0xb9, 0x90, 0x9a, 0x3f, 0xd8, 0x1a, 0xbf, 0x60, + 0x29, 0x4b, 0xd2, 0xd4, 0xfe, 0x9d, 0x82, 0xea, 0x53, 0xcc, 0xce, 0x9b, 0xad, 0x36, 0x8d, 0xfc, + 0xab, 0xc3, 0x88, 0x5d, 0x62, 0x9f, 0xb9, 0xb6, 0xc8, 0xae, 0x58, 0x61, 0x0d, 0xf2, 0xa1, 0x1b, + 0x98, 0xb6, 0xe5, 0x79, 0x83, 0xbb, 0x3d, 0x5a, 0xd2, 0x52, 0x46, 0x2e, 0x74, 0x83, 0x86, 0xe5, + 0x79, 0x4d, 0x07, 0x6d, 0x43, 0xba, 0x4b, 0x49, 0x5f, 0x1e, 0x45, 0x20, 0xc5, 0x37, 0xba, 0x0b, + 0x39, 0xfe, 0x6b, 0x5e, 0x92, 0x90, 0x69, 0xab, 0x03, 0x64, 0x96, 0x03, 0x9f, 0x91, 0x90, 0x21, + 0x04, 0x4b, 0x8c, 0xc8, 0x50, 0x12, 0x98, 0x25, 0x46, 0xd0, 0x2e, 0xac, 0x32, 0x22, 0x59, 0x56, + 0x06, 0x88, 0x0c, 0x23, 0x82, 0xe1, 0x3e, 0xe4, 0x43, 0x6a, 0x9b, 0x96, 0xe3, 0xf0, 0xd3, 0x88, + 0x9c, 0x92, 0x04, 0x10, 0x52, 0xfb, 0x50, 0x42, 0x51, 0x15, 0xd2, 0xdc, 0x5c, 0x2d, 0x2b, 0x7c, + 0x50, 0x10, 0xe1, 0x70, 0xde, 0x6c, 0x71, 0x63, 0x0d, 0x81, 0xa9, 0xfd, 0x3d, 0x0d, 0xf7, 0xde, + 0x70, 0x72, 0x95, 0x2c, 0x47, 0x90, 0x8d, 0x42, 0x4c, 0x7d, 0xab, 0x8f, 0xa5, 0xa7, 0x8f, 0xde, + 0xfb, 0xd3, 0x0f, 0x1f, 0xa4, 0xfe, 0xfa, 0xc3, 0x07, 0x77, 0x3e, 0xa5, 0xd8, 0xb1, 0x6c, 0x86, + 0x9d, 0xea, 0xde, 0xb7, 0xdf, 0x56, 0xeb, 0xe7, 0xee, 0x1f, 0x70, 0xf5, 0xbb, 0xef, 0xaa, 0x17, + 0x37, 0x0c, 0x87, 0x8f, 0x9e, 0x18, 0x03, 0x3e, 0x2e, 0x23, 0xb0, 0xc2, 0xf0, 0x15, 0xa1, 0x8e, + 0x72, 0xcf, 0xdc, 0x32, 0x62, 0x3e, 0x84, 0x20, 0xed, 0x50, 0x12, 0x08, 0x3f, 0x65, 0x0d, 0xf1, + 0x1f, 0x55, 0xa1, 0xc0, 0xaf, 0x85, 0x71, 0xf3, 0xf9, 0xbd, 0x08, 0x4f, 0x18, 0x10, 0xba, 0x81, + 0x38, 0x91, 0x2c, 0x12, 0x89, 0x9c, 0x5c, 0x19, 0xcf, 0xc9, 0xc7, 0xb0, 0x16, 0x50, 0x72, 0xed, + 0x3a, 0x98, 0x9a, 0xa2, 0x24, 0x64, 0xc6, 0x22, 0xa6, 0xa5, 0xb0, 0x22, 0x7d, 0x0a, 0x41, 0xe2, + 0x0b, 0x7d, 0x0e, 0x80, 0x29, 0x25, 0xd4, 0xb4, 0x89, 0x83, 0xc5, 0xc5, 0xae, 0x1f, 0x54, 0x63, + 0x37, 0x4f, 0xf1, 0xa8, 0xce, 0x89, 0x8d, 0x9c, 0xe0, 0x69, 0x10, 0x07, 0xa3, 0xdf, 0x8e, 0x67, + 0x6e, 0x56, 0x64, 0xee, 0xc7, 0x71, 0xe6, 0xbe, 0xf9, 0x62, 0x6e, 0x4d, 0xe2, 0xff, 0x39, 0x05, + 0xff, 0x93, 0x86, 0xbb, 0x3a, 0xff, 0xb4, 0x18, 0x3e, 0x6f, 0xb6, 0x8e, 0xdd, 0x30, 0xb0, 0x98, + 0x7d, 0x69, 0x44, 0x1e, 0x0e, 0x67, 0x24, 0x46, 0x76, 0x5a, 0x62, 0xfc, 0x1c, 0x10, 0xa7, 0x09, + 0x2c, 0xca, 0x5c, 0xdb, 0x0d, 0x2c, 0x9f, 0x0d, 0xb2, 0x56, 0x90, 0x96, 0x42, 0x37, 0x68, 0x0d, + 0x91, 0x4d, 0x67, 0xe2, 0x5e, 0x61, 0xe2, 0x5e, 0x1f, 0xc1, 0x3a, 0xd7, 0xc9, 0x8b, 0xa9, 0x1f, + 0xf5, 0x2f, 0x30, 0x4d, 0xa4, 0xdd, 0x9a, 0xc2, 0x9c, 0x0a, 0x04, 0x7a, 0x00, 0x85, 0x98, 0x54, + 0xe4, 0x53, 0x7e, 0x40, 0x98, 0x57, 0x70, 0x91, 0x54, 0x0f, 0x41, 0xf0, 0x61, 0x27, 0x16, 0x38, + 0x4c, 0xc8, 0x82, 0x44, 0x28, 0x79, 0x73, 0x65, 0x5f, 0x09, 0x96, 0x03, 0xd7, 0x57, 0x01, 0xc7, + 0xff, 0xf2, 0x47, 0xc3, 0x27, 0x26, 0x07, 0x66, 0x44, 0x04, 0xaf, 0xf8, 0xa4, 0xe5, 0xfa, 0x5c, + 0x9a, 0x52, 0x3b, 0x56, 0x1f, 0x40, 0x82, 0x85, 0x6d, 0x7f, 0x4e, 0x41, 0x09, 0xbf, 0x66, 0xd4, + 0x32, 0x2d, 0xc6, 0xa8, 0x7b, 0x11, 0x31, 0x1c, 0x6a, 0x39, 0x11, 0x2d, 0xbf, 0x14, 0xd1, 0x72, + 0xcb, 0x35, 0xd5, 0x75, 0xce, 0x7c, 0x38, 0xe0, 0x15, 0xb1, 0x30, 0x77, 0x0e, 0x16, 0xf1, 0x28, + 0xf7, 0xa0, 0xb4, 0x14, 0x66, 0x95, 0x96, 0xca, 0x11, 0x94, 0xa7, 0xa9, 0x5c, 0x28, 0xfc, 0xfe, + 0x59, 0x84, 0xea, 0xec, 0x73, 0xa9, 0xea, 0xb4, 0x0b, 0x39, 0xde, 0x58, 0x99, 0xc3, 0xf2, 0x64, + 0x64, 0x39, 0xe0, 0x94, 0x97, 0x9d, 0x0f, 0xa1, 0x3c, 0x1a, 0x74, 0x3c, 0x8b, 0x58, 0xdc, 0x2b, + 0x6c, 0x06, 0xc9, 0x98, 0x93, 0x28, 0xf4, 0x12, 0x4a, 0x49, 0x16, 0x21, 0x76, 0x75, 0xa1, 0x8a, + 0x55, 0x4c, 0xf0, 0x0b, 0x2b, 0xbe, 0x1e, 0xb5, 0xa2, 0x8f, 0x99, 0xe5, 0x58, 0xcc, 0x52, 0xb9, + 0x32, 0xaf, 0xd8, 0xa4, 0xb5, 0x2f, 0x94, 0x08, 0xf4, 0x8f, 0x14, 0x6c, 0x27, 0x65, 0x27, 0xa2, + 0x23, 0x2f, 0xa2, 0xe3, 0x8b, 0x5b, 0xa2, 0x43, 0x95, 0x92, 0x44, 0xf6, 0xbd, 0x6d, 0x90, 0x6c, + 0x05, 0xd3, 0x64, 0xf0, 0xf0, 0xa6, 0x32, 0x06, 0x45, 0xe8, 0x8b, 0xe2, 0x2d, 0xc3, 0x5b, 0x81, + 0x79, 0x0e, 0x7c, 0x1a, 0x77, 0x59, 0xe9, 0x85, 0x5c, 0x32, 0xd1, 0x8d, 0xad, 0x24, 0xbb, 0xb1, + 0x3a, 0x64, 0x28, 0x0e, 0x23, 0x8f, 0x89, 0x7c, 0x5b, 0x3f, 0xd8, 0x8e, 0xc3, 0x74, 0xe0, 0x02, + 0x81, 0x35, 0x14, 0xd5, 0x44, 0xcd, 0xc9, 0x4d, 0xd4, 0x9c, 0x7d, 0x28, 0x73, 0x0a, 0x47, 0xf1, + 0x9b, 0x34, 0xf2, 0xf0, 0xb0, 0x3a, 0x6d, 0x84, 0x6e, 0x90, 0xf4, 0xee, 0xc4, 0xe3, 0x53, 0x18, + 0x7f, 0x7c, 0x18, 0xac, 0x5e, 0x62, 0xcb, 0xc1, 0x34, 0xd4, 0xd6, 0xc4, 0x6d, 0x1d, 0xcc, 0x77, + 0x5b, 0xcf, 0x24, 0xd3, 0x62, 0xf7, 0x13, 0xab, 0x42, 0x14, 0xb6, 0xd4, 0x5f, 0x93, 0x91, 0x64, + 0xc4, 0xac, 0x0b, 0x1b, 0x9e, 0x2c, 0x64, 0x43, 0x9b, 0x8c, 0xc5, 0x8b, 0xb1, 0x79, 0x39, 0x89, + 0xe1, 0x3a, 0x87, 0x8a, 0xb8, 0xda, 0xf8, 0xdc, 0x68, 0x11, 0x9d, 0x43, 0x81, 0x6d, 0x92, 0xf4, + 0x81, 0xb1, 0x69, 0x4d, 0x62, 0xd0, 0x11, 0x14, 0x5d, 0xdf, 0xf6, 0x22, 0x07, 0x0f, 0xb4, 0x6d, + 0x8a, 0x40, 0xd8, 0x19, 0x3c, 0xee, 0xe7, 0xcd, 0x96, 0xa4, 0x3e, 0x93, 0x83, 0x98, 0xb1, 0xae, + 0x38, 0x62, 0x19, 0x4f, 0xa0, 0x84, 0x7d, 0xeb, 0x82, 0x57, 0x67, 0xf5, 0xb4, 0x86, 0x5a, 0xb1, + 0xba, 0xbc, 0xb7, 0x9e, 0x98, 0x8b, 0xce, 0x9b, 0x2d, 0xf5, 0xcc, 0x1a, 0x45, 0x45, 0xac, 0xbe, + 0x85, 0x0d, 0xd4, 0xf5, 0x45, 0xcb, 0xcf, 0xdc, 0x3e, 0x26, 0x11, 0xd3, 0x4a, 0xa2, 0x66, 0xee, + 0xd4, 0xe5, 0x3c, 0x57, 0x8f, 0xe7, 0xb9, 0xfa, 0xb1, 0x9a, 0xe7, 0x8c, 0x75, 0xc5, 0xd1, 0x96, + 0x0c, 0x48, 0x87, 0x0d, 0x31, 0x42, 0xf1, 0x17, 0x36, 0x1e, 0xfa, 0xb4, 0x8d, 0xdb, 0xa4, 0x14, + 0xf9, 0x84, 0x65, 0x79, 0x5e, 0x0c, 0x40, 0x77, 0x21, 0x2f, 0x0a, 0x65, 0x40, 0x71, 0x88, 0x99, + 0x56, 0x96, 0xd1, 0xcd, 0x41, 0x2d, 0x01, 0x41, 0x9f, 0x28, 0x02, 0x9b, 0xf8, 0x5d, 0xb7, 0xa7, + 0x6d, 0x09, 0x0d, 0x95, 0xc1, 0x31, 0x0d, 0x42, 0xfa, 0x0d, 0x81, 0x8a, 0x55, 0x08, 0x66, 0x09, + 0x42, 0x27, 0x50, 0xea, 0x63, 0xc7, 0xb5, 0x4c, 0xec, 0xdb, 0xf4, 0x46, 0x78, 0x53, 0xdb, 0x16, + 0xde, 0xde, 0x4d, 0x3a, 0xea, 0x05, 0xa7, 0xd1, 0x07, 0x24, 0x46, 0xb1, 0x3f, 0x0a, 0x40, 0xbf, + 0x19, 0x6f, 0x89, 0x7e, 0x24, 0x02, 0xe4, 0xa3, 0xf9, 0x02, 0xe4, 0xb6, 0x8e, 0xe8, 0x19, 0x54, + 0x66, 0x57, 0xba, 0x85, 0xc6, 0x9b, 0xc7, 0x50, 0x48, 0x46, 0xe0, 0x42, 0xbc, 0x27, 0xa0, 0xcd, + 0xca, 0x9e, 0x45, 0xe5, 0xcc, 0xca, 0x88, 0xff, 0xef, 0xa8, 0xf6, 0x7d, 0x2a, 0x9e, 0xd5, 0x54, + 0x13, 0x30, 0x32, 0xab, 0x7d, 0x08, 0x39, 0xd9, 0x1d, 0x4e, 0x9b, 0xb8, 0x15, 0x83, 0xe8, 0xae, + 0xb3, 0xb6, 0xfa, 0x87, 0x3e, 0x83, 0x35, 0x46, 0x2d, 0x3f, 0xec, 0xc6, 0x5d, 0xb9, 0x9c, 0xe3, + 0xb4, 0x24, 0x5b, 0x5b, 0x11, 0xc8, 0xc6, 0x9c, 0x25, 0xbe, 0x6a, 0x2f, 0x40, 0x33, 0xb0, 0x4d, + 0xa8, 0xc3, 0x45, 0x37, 0x88, 0xcf, 0xf0, 0x6b, 0xf6, 0xf6, 0xd6, 0xd4, 0xfe, 0xb6, 0x04, 0xab, + 0x0a, 0x83, 0x7e, 0x0c, 0xe0, 0x5d, 0x0d, 0xba, 0x5d, 0xd5, 0x6f, 0x78, 0x57, 0xaa, 0xd1, 0xdd, + 0x85, 0x5c, 0x48, 0x22, 0x6a, 0x63, 0xd3, 0x0d, 0x94, 0x9b, 0xb2, 0x12, 0xd0, 0x0c, 0xd0, 0x23, + 0x58, 0x8d, 0x5b, 0xc6, 0x65, 0xa1, 0xb7, 0x98, 0xd4, 0xdb, 0xa1, 0xae, 0x11, 0xe3, 0xd1, 0x7d, + 0x35, 0x49, 0xa6, 0xa7, 0xd3, 0xc5, 0x63, 0x25, 0x9f, 0x1a, 0x57, 0xa6, 0x93, 0xf0, 0x11, 0xf2, + 0x1e, 0x2c, 0x5f, 0xbb, 0x96, 0x96, 0x11, 0x19, 0x34, 0x41, 0xc1, 0x71, 0xe8, 0xce, 0x68, 0xf7, + 0xbe, 0xaa, 0x76, 0x28, 0x83, 0xce, 0x7d, 0xf4, 0x01, 0xcb, 0x8e, 0x3d, 0x60, 0xef, 0xff, 0x0e, + 0x36, 0x26, 0xde, 0x53, 0xa4, 0x41, 0xf9, 0xb9, 0xfe, 0xf4, 0xb0, 0xf1, 0xb5, 0x79, 0xd8, 0x68, + 0xe8, 0xad, 0xb6, 0x79, 0x66, 0x98, 0xad, 0xe6, 0x69, 0xe9, 0x1d, 0x04, 0x90, 0x91, 0xa0, 0x52, + 0x0a, 0x15, 0x21, 0x6f, 0xe8, 0x2f, 0x3b, 0xfa, 0x79, 0x5b, 0x20, 0x97, 0x38, 0xd2, 0xd0, 0xbf, + 0xd4, 0x1b, 0xed, 0xd2, 0x32, 0xca, 0x42, 0xfa, 0xd8, 0x38, 0x6b, 0x95, 0xd2, 0xef, 0xff, 0x25, + 0x05, 0xbb, 0x6f, 0x98, 0xa6, 0xd0, 0xbb, 0xb0, 0x73, 0xde, 0x6c, 0x99, 0x6d, 0xa3, 0x73, 0xfa, + 0x95, 0x79, 0xd8, 0x69, 0x3f, 0x33, 0x75, 0xc3, 0x38, 0x33, 0xcc, 0xd3, 0xb3, 0x53, 0xbd, 0xf4, + 0x0e, 0x7a, 0x08, 0xf7, 0xa7, 0xa2, 0x5f, 0x76, 0xce, 0xda, 0x87, 0xa6, 0xfe, 0xab, 0x86, 0xae, + 0x1f, 0xeb, 0xc7, 0xa5, 0xd4, 0x4c, 0xc2, 0xd3, 0x33, 0x05, 0x3b, 0x39, 0xeb, 0x9c, 0x1e, 0x97, + 0x96, 0x0e, 0xbe, 0x5f, 0x85, 0x4c, 0xf3, 0x4c, 0x44, 0xe9, 0x27, 0x50, 0x68, 0x50, 0x6c, 0x31, + 0x2c, 0x37, 0x63, 0x68, 0xda, 0xaa, 0xac, 0xb2, 0x3d, 0x51, 0xa2, 0xf5, 0x7e, 0xc0, 0x6e, 0x38, + 0xb3, 0x4c, 0x99, 0xb7, 0x61, 0xfe, 0x08, 0x72, 0x83, 0x65, 0x1f, 0xda, 0x8a, 0xc7, 0xc5, 0x91, + 0xe5, 0x5f, 0x65, 0x9a, 0x40, 0xa4, 0x03, 0x3c, 0x77, 0xc3, 0x98, 0x73, 0x58, 0xdc, 0x87, 0xc0, + 0x98, 0x7d, 0x77, 0x2a, 0x6e, 0xb0, 0x12, 0x58, 0x1b, 0x59, 0x1d, 0xa2, 0x1d, 0x61, 0xc3, 0xb4, + 0x75, 0xe2, 0xcc, 0x33, 0x7c, 0x06, 0x6b, 0xd2, 0x7b, 0x6a, 0x27, 0x83, 0xa6, 0xae, 0xe1, 0x66, + 0xb2, 0x37, 0x61, 0x7d, 0x74, 0xb7, 0x85, 0x2a, 0x53, 0x17, 0x5e, 0xf1, 0x69, 0x66, 0x2f, 0xc3, + 0xd0, 0x73, 0x40, 0x93, 0x9b, 0x26, 0x74, 0x27, 0x71, 0xa4, 0x29, 0x2b, 0xa8, 0x99, 0x86, 0x7d, + 0x03, 0x3b, 0x33, 0x47, 0x77, 0xf4, 0xe0, 0xb6, 0xd1, 0x5e, 0xca, 0x7e, 0x6f, 0xbe, 0x0d, 0x00, + 0xea, 0x81, 0x36, 0xeb, 0x4d, 0x44, 0x3f, 0x99, 0x67, 0x2e, 0xac, 0x3c, 0x98, 0xeb, 0x61, 0x1d, + 0xba, 0x28, 0x59, 0xe0, 0x47, 0x5c, 0x34, 0xa5, 0xf2, 0xcf, 0x74, 0xd1, 0x97, 0xb0, 0x31, 0x51, + 0x9f, 0xd1, 0xbb, 0x42, 0xd8, 0xac, 0xba, 0x3d, 0x4b, 0xd6, 0xd1, 0xbd, 0x5f, 0xdf, 0xed, 0xb9, + 0xec, 0x32, 0xba, 0xa8, 0xdb, 0xa4, 0xbf, 0xaf, 0x22, 0x48, 0x6e, 0xc9, 0x6d, 0xe2, 0xed, 0xd3, + 0xc0, 0xbe, 0xc8, 0x88, 0xaf, 0x5f, 0xfc, 0x37, 0x00, 0x00, 0xff, 0xff, 0x7d, 0xf5, 0x13, 0xa6, + 0xdd, 0x17, 0x00, 0x00, }