lnrpc: extend invoice subscriptions to allow callers to receive backlog notifications

In this commit, we extend the current SubscribeInvoice streaming RPC
call. We add two new values to the InvoiceSubscription message:
add_index and settle_index. These fields have also been added to the
current Invoice message. Each time a new invoice is added, the add index
will be incremented. Each time a new invoice is settled the settle index
will be incremented. The new field on the InvoiceSubscription message
allow callers to specify the last add index and the last settle index
they know of. With this new addition, callers will now be able to
reliably receive notifications for new received payments.

Care has been taken to ensure that these changes are backwards
compatible. If callers don't specify either of the new fields, then they
won't receive any notification backlog at all.

Fixes #862.
This commit is contained in:
Olaoluwa Osuntokun 2018-04-24 20:41:22 -07:00
parent 29a27bbc3a
commit edbdcddea1
No known key found for this signature in database
GPG Key ID: 964EA263DD637C21
4 changed files with 579 additions and 396 deletions

View File

@ -518,7 +518,9 @@ func (m *FeeLimit) String() string { return proto.CompactTextString(m
func (*FeeLimit) ProtoMessage() {}
func (*FeeLimit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
type isFeeLimit_Limit interface{ isFeeLimit_Limit() }
type isFeeLimit_Limit interface {
isFeeLimit_Limit()
}
type FeeLimit_Fixed struct {
Fixed int64 `protobuf:"varint,1,opt,name=fixed,oneof"`
@ -785,7 +787,9 @@ func (m *ChannelPoint) String() string { return proto.CompactTextStri
func (*ChannelPoint) ProtoMessage() {}
func (*ChannelPoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
type isChannelPoint_FundingTxid interface{ isChannelPoint_FundingTxid() }
type isChannelPoint_FundingTxid interface {
isChannelPoint_FundingTxid()
}
type ChannelPoint_FundingTxidBytes struct {
FundingTxidBytes []byte `protobuf:"bytes,1,opt,name=funding_txid_bytes,proto3,oneof"`
@ -2034,7 +2038,9 @@ func (m *CloseStatusUpdate) String() string { return proto.CompactTex
func (*CloseStatusUpdate) ProtoMessage() {}
func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
type isCloseStatusUpdate_Update interface{ isCloseStatusUpdate_Update() }
type isCloseStatusUpdate_Update interface {
isCloseStatusUpdate_Update()
}
type CloseStatusUpdate_ClosePending struct {
ClosePending *PendingUpdate `protobuf:"bytes,1,opt,name=close_pending,oneof"`
@ -2297,7 +2303,9 @@ func (m *OpenStatusUpdate) String() string { return proto.CompactText
func (*OpenStatusUpdate) ProtoMessage() {}
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
type isOpenStatusUpdate_Update interface{ isOpenStatusUpdate_Update() }
type isOpenStatusUpdate_Update interface {
isOpenStatusUpdate_Update()
}
type OpenStatusUpdate_ChanPending struct {
ChanPending *PendingUpdate `protobuf:"bytes,1,opt,name=chan_pending,oneof"`
@ -3834,6 +3842,26 @@ type Invoice struct {
RouteHints []*RouteHint `protobuf:"bytes,14,rep,name=route_hints" json:"route_hints,omitempty"`
// / Whether this invoice should include routing hints for private channels.
Private bool `protobuf:"varint,15,opt,name=private" json:"private,omitempty"`
// *
// The "add" index of this invoice. Each newly created invoice will increment
// this index making it monotonically increasing. Callers to the
// SubscribeInvoices call can use this to instantly get notified of all added
// invoices with an add_index greater than this one.
AddIndex uint64 `protobuf:"varint,16,opt,name=add_index" json:"add_index,omitempty"`
// *
// The "settle" index of this invoice. Each newly settled invoice will
// increment this index making it monotonically increasing. Callers to the
// SubscribeInvoices call can use this to instantly get notified of all
// settled invoices with an settle_index greater than this one.
SettleIndex uint64 `protobuf:"varint,17,opt,name=settle_index" json:"settle_index,omitempty"`
// *
// The amount that was accepted for this invoice. This will ONLY be set if
// this invoice has been settled. We provide this field as if the invoice was
// created with a zero value, then we need to record what amount was
// ultimately accepted. Additionally, it's possible that the sender paid MORE
// that was specified in the original invoice. So we'll record that here as
// well.
AmtPaid int64 `protobuf:"varint,18,opt,name=amt_paid" json:"amt_paid,omitempty"`
}
func (m *Invoice) Reset() { *m = Invoice{} }
@ -3946,6 +3974,27 @@ func (m *Invoice) GetPrivate() bool {
return false
}
func (m *Invoice) GetAddIndex() uint64 {
if m != nil {
return m.AddIndex
}
return 0
}
func (m *Invoice) GetSettleIndex() uint64 {
if m != nil {
return m.SettleIndex
}
return 0
}
func (m *Invoice) GetAmtPaid() int64 {
if m != nil {
return m.AmtPaid
}
return 0
}
type AddInvoiceResponse struct {
RHash []byte `protobuf:"bytes,1,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
// *
@ -4036,6 +4085,18 @@ func (m *ListInvoiceResponse) GetInvoices() []*Invoice {
}
type InvoiceSubscription struct {
// *
// If specified (non-zero), then we'll first start by sending out
// notifications for all added indexes with an add_index greater than this
// value. This allows callers to catch up on any events they missed while they
// weren't connected to the streaming RPC.
AddIndex uint64 `protobuf:"varint,1,opt,name=add_index" json:"add_index,omitempty"`
// *
// If specified (non-zero), then we'll first start by sending out
// notifications for all settled indexes with an settle_index greater than
// this value. This allows callers to catch up on any events they missed while
// they weren't connected to the streaming RPC.
SettleIndex uint64 `protobuf:"varint,2,opt,name=settle_index" json:"settle_index,omitempty"`
}
func (m *InvoiceSubscription) Reset() { *m = InvoiceSubscription{} }
@ -4043,6 +4104,20 @@ func (m *InvoiceSubscription) String() string { return proto.CompactT
func (*InvoiceSubscription) ProtoMessage() {}
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }
func (m *InvoiceSubscription) GetAddIndex() uint64 {
if m != nil {
return m.AddIndex
}
return 0
}
func (m *InvoiceSubscription) GetSettleIndex() uint64 {
if m != nil {
return m.SettleIndex
}
return 0
}
type Payment struct {
// / The payment hash
PaymentHash string `protobuf:"bytes,1,opt,name=payment_hash" json:"payment_hash,omitempty"`
@ -4405,7 +4480,9 @@ func (m *PolicyUpdateRequest) String() string { return proto.CompactT
func (*PolicyUpdateRequest) ProtoMessage() {}
func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} }
type isPolicyUpdateRequest_Scope interface{ isPolicyUpdateRequest_Scope() }
type isPolicyUpdateRequest_Scope interface {
isPolicyUpdateRequest_Scope()
}
type PolicyUpdateRequest_Global struct {
Global bool `protobuf:"varint,1,opt,name=global,oneof"`
@ -5158,7 +5235,14 @@ type LightningClient interface {
LookupInvoice(ctx context.Context, in *PaymentHash, opts ...grpc.CallOption) (*Invoice, error)
// *
// SubscribeInvoices returns a uni-directional stream (sever -> client) for
// notifying the client of newly added/settled invoices.
// notifying the client of newly added/settled invoices. The caller can
// optionally specify the add_index and/or the settle_index. If the add_index
// is specified, then we'll first start by sending add invoice events for all
// invoices with an add_index greater than the specified value. If the
// settle_index is specified, the next, we'll send out all settle events for
// invoices with a settle_index greater than the specified value. One or both
// of these fields can be set. If no fields are set, then we'll only send out
// the latest add/settle events.
SubscribeInvoices(ctx context.Context, in *InvoiceSubscription, opts ...grpc.CallOption) (Lightning_SubscribeInvoicesClient, error)
// * lncli: `decodepayreq`
// DecodePayReq takes an encoded payment request string and attempts to decode
@ -5928,7 +6012,14 @@ type LightningServer interface {
LookupInvoice(context.Context, *PaymentHash) (*Invoice, error)
// *
// SubscribeInvoices returns a uni-directional stream (sever -> client) for
// notifying the client of newly added/settled invoices.
// notifying the client of newly added/settled invoices. The caller can
// optionally specify the add_index and/or the settle_index. If the add_index
// is specified, then we'll first start by sending add invoice events for all
// invoices with an add_index greater than the specified value. If the
// settle_index is specified, the next, we'll send out all settle events for
// invoices with a settle_index greater than the specified value. One or both
// of these fields can be set. If no fields are set, then we'll only send out
// the latest add/settle events.
SubscribeInvoices(*InvoiceSubscription, Lightning_SubscribeInvoicesServer) error
// * lncli: `decodepayreq`
// DecodePayReq takes an encoded payment request string and attempts to decode
@ -6991,391 +7082,394 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 6171 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x4f, 0x8c, 0x1c, 0xd9,
0x59, 0x77, 0x75, 0xf7, 0xfc, 0xe9, 0xaf, 0x7b, 0x7a, 0x7a, 0xde, 0x8c, 0xc7, 0xed, 0xde, 0x5d,
0xaf, 0xb7, 0x62, 0xad, 0x9d, 0x61, 0xb1, 0xbd, 0x93, 0x64, 0xd9, 0xec, 0x42, 0x82, 0x3d, 0x1e,
0x7b, 0x9c, 0xcc, 0xda, 0x93, 0x1a, 0x3b, 0x86, 0x04, 0xd4, 0xa9, 0xe9, 0x7e, 0xd3, 0x53, 0x71,
0x77, 0x55, 0xa7, 0xaa, 0x7a, 0xc6, 0x9d, 0xc5, 0x52, 0xf8, 0x23, 0x4e, 0x44, 0x08, 0xc1, 0x25,
0x48, 0x08, 0x29, 0x48, 0x28, 0x1c, 0x38, 0xc2, 0x25, 0x20, 0x71, 0xe0, 0x84, 0x84, 0x38, 0xe4,
0x14, 0x71, 0x04, 0x0e, 0x10, 0x71, 0x41, 0xe2, 0x8a, 0xd0, 0xf7, 0xbd, 0x3f, 0xf5, 0x5e, 0x55,
0xb5, 0xed, 0xfc, 0x81, 0x5b, 0xbf, 0xdf, 0xfb, 0xea, 0xfd, 0xfd, 0xfe, 0xbd, 0xef, 0x7d, 0xaf,
0xa1, 0x1e, 0x4f, 0xfa, 0xd7, 0x27, 0x71, 0x94, 0x46, 0x6c, 0x61, 0x14, 0xc6, 0x93, 0x7e, 0xf7,
0xf5, 0x61, 0x14, 0x0d, 0x47, 0xfc, 0x86, 0x3f, 0x09, 0x6e, 0xf8, 0x61, 0x18, 0xa5, 0x7e, 0x1a,
0x44, 0x61, 0x22, 0x88, 0xdc, 0xaf, 0x41, 0xeb, 0x1e, 0x0f, 0x0f, 0x39, 0x1f, 0x78, 0xfc, 0x1b,
0x53, 0x9e, 0xa4, 0xec, 0xe7, 0x60, 0xcd, 0xe7, 0xdf, 0xe4, 0x7c, 0xd0, 0x9b, 0xf8, 0x49, 0x32,
0x39, 0x89, 0xfd, 0x84, 0x77, 0x9c, 0xcb, 0xce, 0xb5, 0xa6, 0xd7, 0x16, 0x15, 0x07, 0x1a, 0x67,
0x6f, 0x41, 0x33, 0x41, 0x52, 0x1e, 0xa6, 0x71, 0x34, 0x99, 0x75, 0x2a, 0x44, 0xd7, 0x40, 0x6c,
0x57, 0x40, 0xee, 0x08, 0x56, 0x75, 0x0f, 0xc9, 0x24, 0x0a, 0x13, 0xce, 0x6e, 0xc2, 0x46, 0x3f,
0x98, 0x9c, 0xf0, 0xb8, 0x47, 0x1f, 0x8f, 0x43, 0x3e, 0x8e, 0xc2, 0xa0, 0xdf, 0x71, 0x2e, 0x57,
0xaf, 0xd5, 0x3d, 0x26, 0xea, 0xf0, 0x8b, 0x8f, 0x64, 0x0d, 0xbb, 0x0a, 0xab, 0x3c, 0x14, 0x38,
0x1f, 0xd0, 0x57, 0xb2, 0xab, 0x56, 0x06, 0xe3, 0x07, 0xee, 0xdf, 0x3b, 0xb0, 0x76, 0x3f, 0x0c,
0xd2, 0x27, 0xfe, 0x68, 0xc4, 0x53, 0x35, 0xa7, 0xab, 0xb0, 0x7a, 0x46, 0x00, 0xcd, 0xe9, 0x2c,
0x8a, 0x07, 0x72, 0x46, 0x2d, 0x01, 0x1f, 0x48, 0x74, 0xee, 0xc8, 0x2a, 0x73, 0x47, 0x56, 0xba,
0x5c, 0xd5, 0x39, 0xcb, 0x75, 0x15, 0x56, 0x63, 0xde, 0x8f, 0x4e, 0x79, 0x3c, 0xeb, 0x9d, 0x05,
0xe1, 0x20, 0x3a, 0xeb, 0xd4, 0x2e, 0x3b, 0xd7, 0x16, 0xbc, 0x96, 0x82, 0x9f, 0x10, 0xea, 0x6e,
0x00, 0x33, 0x67, 0x21, 0xd6, 0xcd, 0x1d, 0xc2, 0xfa, 0xe3, 0x70, 0x14, 0xf5, 0x9f, 0xfe, 0x84,
0xb3, 0x2b, 0xe9, 0xbe, 0x52, 0xda, 0xfd, 0x26, 0x6c, 0xd8, 0x1d, 0xc9, 0x01, 0x70, 0x38, 0xbf,
0x73, 0xe2, 0x87, 0x43, 0xae, 0x9a, 0x54, 0x43, 0xf8, 0x24, 0xb4, 0xfb, 0xd3, 0x38, 0xe6, 0x61,
0x61, 0x0c, 0xab, 0x12, 0xd7, 0x83, 0x78, 0x0b, 0x9a, 0x21, 0x3f, 0xcb, 0xc8, 0x24, 0xcb, 0x84,
0xfc, 0x4c, 0x91, 0xb8, 0x1d, 0xd8, 0xcc, 0x77, 0x23, 0x07, 0xf0, 0x9d, 0x0a, 0x34, 0x1e, 0xc5,
0x7e, 0x98, 0xf8, 0x7d, 0xe4, 0x62, 0xd6, 0x81, 0xa5, 0xf4, 0x59, 0xef, 0xc4, 0x4f, 0x4e, 0xa8,
0xbb, 0xba, 0xa7, 0x8a, 0x6c, 0x13, 0x16, 0xfd, 0x71, 0x34, 0x0d, 0x53, 0xea, 0xa0, 0xea, 0xc9,
0x12, 0x7b, 0x07, 0xd6, 0xc2, 0xe9, 0xb8, 0xd7, 0x8f, 0xc2, 0xe3, 0x20, 0x1e, 0x0b, 0x59, 0xa0,
0xfd, 0x5a, 0xf0, 0x8a, 0x15, 0xec, 0x12, 0xc0, 0x11, 0xae, 0x83, 0xe8, 0xa2, 0x46, 0x5d, 0x18,
0x08, 0x73, 0xa1, 0x29, 0x4b, 0x3c, 0x18, 0x9e, 0xa4, 0x9d, 0x05, 0x6a, 0xc8, 0xc2, 0xb0, 0x8d,
0x34, 0x18, 0xf3, 0x5e, 0x92, 0xfa, 0xe3, 0x49, 0x67, 0x91, 0x46, 0x63, 0x20, 0x54, 0x1f, 0xa5,
0xfe, 0xa8, 0x77, 0xcc, 0x79, 0xd2, 0x59, 0x92, 0xf5, 0x1a, 0x61, 0x6f, 0x43, 0x6b, 0xc0, 0x93,
0xb4, 0xe7, 0x0f, 0x06, 0x31, 0x4f, 0x12, 0x9e, 0x74, 0x96, 0x89, 0x1b, 0x73, 0x28, 0xae, 0xda,
0x3d, 0x9e, 0x1a, 0xab, 0x93, 0xc8, 0xdd, 0x71, 0xf7, 0x81, 0x19, 0xf0, 0x1d, 0x9e, 0xfa, 0xc1,
0x28, 0x61, 0xef, 0x41, 0x33, 0x35, 0x88, 0x49, 0xfa, 0x1a, 0xdb, 0xec, 0x3a, 0xa9, 0x8d, 0xeb,
0xc6, 0x07, 0x9e, 0x45, 0xe7, 0xde, 0x83, 0xe5, 0xbb, 0x9c, 0xef, 0x07, 0xe3, 0x20, 0x65, 0x9b,
0xb0, 0x70, 0x1c, 0x3c, 0xe3, 0x62, 0xb3, 0xab, 0x7b, 0xe7, 0x3c, 0x51, 0x64, 0x5d, 0x58, 0x9a,
0xf0, 0xb8, 0xcf, 0xd5, 0xf2, 0xef, 0x9d, 0xf3, 0x14, 0x70, 0x7b, 0x09, 0x16, 0x46, 0xf8, 0xb1,
0xfb, 0xbd, 0x0a, 0x34, 0x0e, 0x79, 0xa8, 0x99, 0x88, 0x41, 0x0d, 0xa7, 0x24, 0x19, 0x87, 0x7e,
0xb3, 0x37, 0xa1, 0x41, 0xd3, 0x4c, 0xd2, 0x38, 0x08, 0x87, 0xd4, 0x58, 0xdd, 0x03, 0x84, 0x0e,
0x09, 0x61, 0x6d, 0xa8, 0xfa, 0xe3, 0x94, 0x76, 0xb0, 0xea, 0xe1, 0x4f, 0x64, 0xb0, 0x89, 0x3f,
0x1b, 0x23, 0x2f, 0xea, 0x5d, 0x6b, 0x7a, 0x0d, 0x89, 0xed, 0xe1, 0xb6, 0x5d, 0x87, 0x75, 0x93,
0x44, 0xb5, 0xbe, 0x40, 0xad, 0xaf, 0x19, 0x94, 0xb2, 0x93, 0xab, 0xb0, 0xaa, 0xe8, 0x63, 0x31,
0x58, 0xda, 0xc7, 0xba, 0xd7, 0x92, 0xb0, 0x9a, 0xc2, 0x35, 0x68, 0x1f, 0x07, 0xa1, 0x3f, 0xea,
0xf5, 0x47, 0xe9, 0x69, 0x6f, 0xc0, 0x47, 0xa9, 0x4f, 0x3b, 0xba, 0xe0, 0xb5, 0x08, 0xdf, 0x19,
0xa5, 0xa7, 0x77, 0x10, 0x65, 0xef, 0x40, 0xfd, 0x98, 0xf3, 0x1e, 0xad, 0x44, 0x67, 0xf9, 0xb2,
0x73, 0xad, 0xb1, 0xbd, 0x2a, 0x97, 0x5e, 0xad, 0xae, 0xb7, 0x7c, 0x2c, 0x7f, 0xb9, 0x7f, 0xe4,
0x40, 0x53, 0x2c, 0x95, 0x54, 0xa1, 0x57, 0x60, 0x45, 0x8d, 0x88, 0xc7, 0x71, 0x14, 0x4b, 0xf6,
0xb7, 0x41, 0xb6, 0x05, 0x6d, 0x05, 0x4c, 0x62, 0x1e, 0x8c, 0xfd, 0x21, 0x97, 0xf2, 0x56, 0xc0,
0xd9, 0x76, 0xd6, 0x62, 0x1c, 0x4d, 0x53, 0xa1, 0xc4, 0x1a, 0xdb, 0x4d, 0x39, 0x28, 0x0f, 0x31,
0xcf, 0x26, 0x71, 0xbf, 0xed, 0x00, 0xc3, 0x61, 0x3d, 0x8a, 0x44, 0xb5, 0x5c, 0x85, 0xfc, 0x0e,
0x38, 0xaf, 0xbc, 0x03, 0x95, 0x79, 0x3b, 0x70, 0x05, 0x16, 0xa9, 0x4b, 0x94, 0xd5, 0x6a, 0x61,
0x58, 0xb2, 0xce, 0xfd, 0xae, 0x03, 0x4d, 0xd4, 0x1c, 0x21, 0x1f, 0x1d, 0x44, 0x41, 0x98, 0xb2,
0x9b, 0xc0, 0x8e, 0xa7, 0xe1, 0x20, 0x08, 0x87, 0xbd, 0xf4, 0x59, 0x30, 0xe8, 0x1d, 0xcd, 0xb0,
0x09, 0x1a, 0xcf, 0xde, 0x39, 0xaf, 0xa4, 0x8e, 0xbd, 0x03, 0x6d, 0x0b, 0x4d, 0xd2, 0x58, 0x8c,
0x6a, 0xef, 0x9c, 0x57, 0xa8, 0x41, 0xf9, 0x8f, 0xa6, 0xe9, 0x64, 0x9a, 0xf6, 0x82, 0x70, 0xc0,
0x9f, 0xd1, 0x9a, 0xad, 0x78, 0x16, 0x76, 0xbb, 0x05, 0x4d, 0xf3, 0x3b, 0xf7, 0x73, 0xd0, 0xde,
0x47, 0xc5, 0x10, 0x06, 0xe1, 0xf0, 0x96, 0x90, 0x5e, 0xd4, 0x56, 0x93, 0xe9, 0xd1, 0x53, 0x3e,
0x93, 0xfb, 0x28, 0x4b, 0x28, 0x12, 0x27, 0x51, 0x92, 0xca, 0x75, 0xa1, 0xdf, 0xee, 0xbf, 0x38,
0xb0, 0x8a, 0x8b, 0xfe, 0x91, 0x1f, 0xce, 0xd4, 0x8a, 0xef, 0x43, 0x13, 0x9b, 0x7a, 0x14, 0xdd,
0x12, 0x3a, 0x4f, 0xc8, 0xf2, 0x35, 0xb9, 0x48, 0x39, 0xea, 0xeb, 0x26, 0x29, 0x9a, 0xe9, 0x99,
0x67, 0x7d, 0x8d, 0x42, 0x97, 0xfa, 0xf1, 0x90, 0xa7, 0xa4, 0x0d, 0xa5, 0x76, 0x04, 0x01, 0xed,
0x44, 0xe1, 0x31, 0xbb, 0x0c, 0xcd, 0xc4, 0x4f, 0x7b, 0x13, 0x1e, 0xd3, 0xaa, 0x91, 0xe0, 0x54,
0x3d, 0x48, 0xfc, 0xf4, 0x80, 0xc7, 0xb7, 0x67, 0x29, 0xef, 0x7e, 0x1e, 0xd6, 0x0a, 0xbd, 0xa0,
0xac, 0x66, 0x53, 0xc4, 0x9f, 0x6c, 0x03, 0x16, 0x4e, 0xfd, 0xd1, 0x94, 0x4b, 0x25, 0x2d, 0x0a,
0x1f, 0x54, 0xde, 0x77, 0xdc, 0xb7, 0xa1, 0x9d, 0x0d, 0x5b, 0x32, 0x3d, 0x83, 0x1a, 0xae, 0xa0,
0x6c, 0x80, 0x7e, 0xbb, 0xbf, 0xe9, 0x08, 0xc2, 0x9d, 0x28, 0xd0, 0x0a, 0x0f, 0x09, 0x51, 0x2f,
0x2a, 0x42, 0xfc, 0x3d, 0xd7, 0x20, 0xfc, 0xf4, 0x93, 0x75, 0xaf, 0xc2, 0x9a, 0x31, 0x84, 0x17,
0x0c, 0xf6, 0xdb, 0x0e, 0xac, 0x3d, 0xe0, 0x67, 0x72, 0xd7, 0xd5, 0x68, 0xdf, 0x87, 0x5a, 0x3a,
0x9b, 0x08, 0x27, 0xab, 0xb5, 0x7d, 0x45, 0x6e, 0x5a, 0x81, 0xee, 0xba, 0x2c, 0x3e, 0x9a, 0x4d,
0xb8, 0x47, 0x5f, 0xb8, 0x9f, 0x83, 0x86, 0x01, 0xb2, 0x0b, 0xb0, 0xfe, 0xe4, 0xfe, 0xa3, 0x07,
0xbb, 0x87, 0x87, 0xbd, 0x83, 0xc7, 0xb7, 0xbf, 0xb8, 0xfb, 0xab, 0xbd, 0xbd, 0x5b, 0x87, 0x7b,
0xed, 0x73, 0x6c, 0x13, 0xd8, 0x83, 0xdd, 0xc3, 0x47, 0xbb, 0x77, 0x2c, 0xdc, 0x71, 0xbb, 0xd0,
0x79, 0xc0, 0xcf, 0x9e, 0x04, 0x69, 0xc8, 0x93, 0xc4, 0xee, 0xcd, 0xbd, 0x0e, 0xcc, 0x1c, 0x82,
0x9c, 0x55, 0x07, 0x96, 0xa4, 0xc5, 0x51, 0x06, 0x57, 0x16, 0xdd, 0xb7, 0x81, 0x1d, 0x06, 0xc3,
0xf0, 0x23, 0x9e, 0x24, 0xfe, 0x50, 0xab, 0x82, 0x36, 0x54, 0xc7, 0xc9, 0x50, 0x6a, 0x00, 0xfc,
0xe9, 0x7e, 0x0a, 0xd6, 0x2d, 0x3a, 0xd9, 0xf0, 0xeb, 0x50, 0x4f, 0x82, 0x61, 0xe8, 0xa7, 0xd3,
0x98, 0xcb, 0xa6, 0x33, 0xc0, 0xbd, 0x0b, 0x1b, 0x5f, 0xe6, 0x71, 0x70, 0x3c, 0x7b, 0x59, 0xf3,
0x76, 0x3b, 0x95, 0x7c, 0x3b, 0xbb, 0x70, 0x3e, 0xd7, 0x8e, 0xec, 0x5e, 0x30, 0xa2, 0xdc, 0xae,
0x65, 0x4f, 0x14, 0x0c, 0xb1, 0xac, 0x98, 0x62, 0xe9, 0x3e, 0x06, 0xb6, 0x13, 0x85, 0x21, 0xef,
0xa7, 0x07, 0x9c, 0xc7, 0x99, 0xe7, 0x9c, 0x71, 0x5d, 0x63, 0xfb, 0x82, 0xdc, 0xc7, 0xbc, 0xac,
0x4b, 0x76, 0x64, 0x50, 0x9b, 0xf0, 0x78, 0x4c, 0x0d, 0x2f, 0x7b, 0xf4, 0xdb, 0x3d, 0x0f, 0xeb,
0x56, 0xb3, 0xd2, 0xe9, 0x79, 0x17, 0xce, 0xdf, 0x09, 0x92, 0x7e, 0xb1, 0xc3, 0x0e, 0x2c, 0x4d,
0xa6, 0x47, 0xbd, 0x4c, 0xa6, 0x54, 0x11, 0x7d, 0x81, 0xfc, 0x27, 0xb2, 0xb1, 0xdf, 0x75, 0xa0,
0xb6, 0xf7, 0x68, 0x7f, 0x87, 0x75, 0x61, 0x39, 0x08, 0xfb, 0xd1, 0x18, 0xd5, 0xae, 0x98, 0xb4,
0x2e, 0xcf, 0x95, 0x95, 0xd7, 0xa1, 0x4e, 0xda, 0x1a, 0xdd, 0x1b, 0xe9, 0xe4, 0x66, 0x00, 0xba,
0x56, 0xfc, 0xd9, 0x24, 0x88, 0xc9, 0x77, 0x52, 0x1e, 0x51, 0x8d, 0x34, 0x62, 0xb1, 0xc2, 0xfd,
0x9f, 0x1a, 0x2c, 0x49, 0x5d, 0x4d, 0xfd, 0xf5, 0xd3, 0xe0, 0x94, 0xcb, 0x91, 0xc8, 0x12, 0x5a,
0xb9, 0x98, 0x8f, 0xa3, 0x94, 0xf7, 0xac, 0x6d, 0xb0, 0x41, 0xa4, 0xea, 0x8b, 0x86, 0x7a, 0x13,
0xd4, 0xfa, 0x34, 0xb2, 0xba, 0x67, 0x83, 0xb8, 0x58, 0x08, 0xf4, 0x82, 0x01, 0x8d, 0xa9, 0xe6,
0xa9, 0x22, 0xae, 0x44, 0xdf, 0x9f, 0xf8, 0xfd, 0x20, 0x9d, 0x49, 0xe1, 0xd6, 0x65, 0x6c, 0x7b,
0x14, 0xf5, 0xfd, 0x51, 0xef, 0xc8, 0x1f, 0xf9, 0x61, 0x9f, 0x4b, 0xff, 0xcd, 0x06, 0xd1, 0x45,
0x93, 0x43, 0x52, 0x64, 0xc2, 0x8d, 0xcb, 0xa1, 0xe8, 0xea, 0xf5, 0xa3, 0xf1, 0x38, 0x48, 0xd1,
0xb3, 0x23, 0xab, 0x5f, 0xf5, 0x0c, 0x84, 0x66, 0x22, 0x4a, 0x67, 0x62, 0xf5, 0xea, 0xa2, 0x37,
0x0b, 0xc4, 0x56, 0xd0, 0x75, 0x40, 0x85, 0xf4, 0xf4, 0xac, 0x03, 0xa2, 0x95, 0x0c, 0xc1, 0x7d,
0x98, 0x86, 0x09, 0x4f, 0xd3, 0x11, 0x1f, 0xe8, 0x01, 0x35, 0x88, 0xac, 0x58, 0xc1, 0x6e, 0xc2,
0xba, 0x70, 0x36, 0x13, 0x3f, 0x8d, 0x92, 0x93, 0x20, 0xe9, 0x25, 0xe8, 0xb6, 0x35, 0x89, 0xbe,
0xac, 0x8a, 0xbd, 0x0f, 0x17, 0x72, 0x70, 0xcc, 0xfb, 0x3c, 0x38, 0xe5, 0x83, 0xce, 0x0a, 0x7d,
0x35, 0xaf, 0x9a, 0x5d, 0x86, 0x06, 0xfa, 0xd8, 0xd3, 0xc9, 0xc0, 0x47, 0x3b, 0xdc, 0xa2, 0x7d,
0x30, 0x21, 0xf6, 0x2e, 0xac, 0x4c, 0xb8, 0x30, 0x96, 0x27, 0xe9, 0xa8, 0x9f, 0x74, 0x56, 0xc9,
0x92, 0x35, 0xa4, 0x30, 0x21, 0xe7, 0x7a, 0x36, 0x05, 0x32, 0x65, 0x3f, 0x21, 0x67, 0xcb, 0x9f,
0x75, 0xda, 0xc4, 0x6e, 0x19, 0x40, 0x32, 0x12, 0x07, 0xa7, 0x7e, 0xca, 0x3b, 0x6b, 0xc4, 0x5b,
0xaa, 0xe8, 0xfe, 0xa9, 0x03, 0xeb, 0xfb, 0x41, 0x92, 0x4a, 0x26, 0xd4, 0xea, 0xf8, 0x4d, 0x68,
0x08, 0xf6, 0xeb, 0x45, 0xe1, 0x68, 0x26, 0x39, 0x12, 0x04, 0xf4, 0x30, 0x1c, 0xcd, 0xd8, 0x27,
0x60, 0x25, 0x08, 0x4d, 0x12, 0x21, 0xc3, 0x4d, 0x05, 0x12, 0xd1, 0x9b, 0xd0, 0x98, 0x4c, 0x8f,
0x46, 0x41, 0x5f, 0x90, 0x54, 0x45, 0x2b, 0x02, 0x22, 0x02, 0x74, 0x92, 0xc4, 0x48, 0x04, 0x45,
0x8d, 0x28, 0x1a, 0x12, 0x43, 0x12, 0xf7, 0x36, 0x6c, 0xd8, 0x03, 0x94, 0xca, 0x6a, 0x0b, 0x96,
0x25, 0x6f, 0x27, 0x9d, 0x06, 0xad, 0x4f, 0x4b, 0xae, 0x8f, 0x24, 0xf5, 0x74, 0xbd, 0xfb, 0xe7,
0x35, 0x58, 0x97, 0xe8, 0xce, 0x28, 0x4a, 0xf8, 0xe1, 0x74, 0x3c, 0xf6, 0xe3, 0x12, 0xa1, 0x71,
0x5e, 0x22, 0x34, 0x15, 0x5b, 0x68, 0x90, 0x95, 0x4f, 0xfc, 0x20, 0x14, 0x1e, 0x9e, 0x90, 0x38,
0x03, 0x61, 0xd7, 0x60, 0xb5, 0x3f, 0x8a, 0x12, 0xe1, 0xf5, 0x98, 0xc7, 0xa7, 0x3c, 0x5c, 0x14,
0xf2, 0x85, 0x32, 0x21, 0x37, 0x85, 0x74, 0x31, 0x27, 0xa4, 0x2e, 0x34, 0xb1, 0x51, 0xae, 0x74,
0xce, 0x92, 0xf0, 0xc2, 0x4c, 0x0c, 0xc7, 0x93, 0x17, 0x09, 0x21, 0x7f, 0xab, 0x65, 0x02, 0x81,
0xa7, 0x33, 0xd4, 0x69, 0x06, 0x75, 0x5d, 0x0a, 0x44, 0xb1, 0x8a, 0xdd, 0x05, 0x10, 0x7d, 0x91,
0x19, 0x07, 0x32, 0xe3, 0x6f, 0xdb, 0x3b, 0x62, 0xae, 0xfd, 0x75, 0x2c, 0x4c, 0x63, 0x4e, 0x86,
0xdc, 0xf8, 0xd2, 0xfd, 0x18, 0x1a, 0x46, 0x15, 0x3b, 0x0f, 0x6b, 0x3b, 0x0f, 0x1f, 0x1e, 0xec,
0x7a, 0xb7, 0x1e, 0xdd, 0xff, 0xf2, 0x6e, 0x6f, 0x67, 0xff, 0xe1, 0xe1, 0x6e, 0xfb, 0x1c, 0xc2,
0xfb, 0x0f, 0x77, 0x6e, 0xed, 0xf7, 0xee, 0x3e, 0xf4, 0x76, 0x14, 0xec, 0xa0, 0x8d, 0xf7, 0x76,
0x3f, 0x7a, 0xf8, 0x68, 0xd7, 0xc2, 0x2b, 0xac, 0x0d, 0xcd, 0xdb, 0xde, 0xee, 0xad, 0x9d, 0x3d,
0x89, 0x54, 0xd9, 0x06, 0xb4, 0xef, 0x3e, 0x7e, 0x70, 0xe7, 0xfe, 0x83, 0x7b, 0xbd, 0x9d, 0x5b,
0x0f, 0x76, 0x76, 0xf7, 0x77, 0xef, 0xb4, 0x6b, 0xee, 0xdf, 0x39, 0x70, 0x9e, 0x46, 0x39, 0xc8,
0x0b, 0xc4, 0x65, 0x68, 0xf4, 0xa3, 0x68, 0xc2, 0x51, 0x7f, 0x6b, 0x15, 0x6d, 0x42, 0xc8, 0xec,
0x42, 0x21, 0x1e, 0x47, 0x71, 0x9f, 0x4b, 0x79, 0x00, 0x82, 0xee, 0x22, 0x82, 0xcc, 0x2e, 0xb7,
0x53, 0x50, 0x08, 0x71, 0x68, 0x08, 0x4c, 0x90, 0x6c, 0xc2, 0xe2, 0x51, 0xcc, 0xfd, 0xfe, 0x89,
0x94, 0x04, 0x59, 0x62, 0x9f, 0xcc, 0x1c, 0xf2, 0x3e, 0xae, 0xf6, 0x88, 0x0f, 0x88, 0x43, 0x96,
0xbd, 0x55, 0x89, 0xef, 0x48, 0xd8, 0x3d, 0x80, 0xcd, 0xfc, 0x0c, 0xa4, 0xc4, 0xbc, 0x67, 0x48,
0x8c, 0xf0, 0x8d, 0xbb, 0xf3, 0xf7, 0xc7, 0x90, 0x9e, 0xff, 0x70, 0xa0, 0x86, 0xe6, 0x73, 0xbe,
0xa9, 0x35, 0x3d, 0xa2, 0xaa, 0xe5, 0x11, 0x51, 0xf0, 0x00, 0xcf, 0x14, 0x42, 0xa1, 0x0a, 0xa3,
0x63, 0x20, 0x59, 0x7d, 0xcc, 0xfb, 0xa7, 0x34, 0x27, 0x5d, 0x8f, 0x08, 0xb2, 0x3c, 0x3a, 0x9e,
0xf4, 0xb5, 0x64, 0x79, 0x55, 0x56, 0x75, 0xf4, 0xe5, 0x52, 0x56, 0x47, 0xdf, 0x75, 0x60, 0x29,
0x08, 0x8f, 0xa2, 0x69, 0x38, 0x20, 0x16, 0x5f, 0xf6, 0x54, 0x11, 0x55, 0xe5, 0x84, 0x44, 0x2f,
0x18, 0x2b, 0x86, 0xce, 0x00, 0x97, 0xe1, 0xc1, 0x24, 0x21, 0x77, 0x41, 0x7b, 0x81, 0xef, 0xc1,
0x9a, 0x81, 0xc9, 0xd5, 0x7c, 0x0b, 0x16, 0x26, 0x08, 0xc8, 0xa5, 0x54, 0xca, 0x99, 0xfc, 0x0c,
0x51, 0xe3, 0xb6, 0xa1, 0x75, 0x8f, 0xa7, 0xf7, 0xc3, 0xe3, 0x48, 0xb5, 0xf4, 0xc3, 0x2a, 0xac,
0x6a, 0x48, 0x36, 0x74, 0x0d, 0x56, 0x83, 0x01, 0x0f, 0xd3, 0x20, 0x9d, 0xf5, 0xac, 0xf3, 0x4f,
0x1e, 0x46, 0xff, 0xcc, 0x1f, 0x05, 0x7e, 0x22, 0x3d, 0x00, 0x51, 0x60, 0xdb, 0xb0, 0x81, 0xc6,
0x43, 0xd9, 0x03, 0xbd, 0xc5, 0xe2, 0x18, 0x56, 0x5a, 0x87, 0xe2, 0x8d, 0xb8, 0xd4, 0xdf, 0xfa,
0x13, 0xe1, 0xa7, 0x94, 0x55, 0xe1, 0xaa, 0x89, 0x96, 0x70, 0xca, 0x0b, 0xc2, 0xc0, 0x68, 0xa0,
0x10, 0x02, 0x5a, 0x14, 0xca, 0x27, 0x1f, 0x02, 0x32, 0xc2, 0x48, 0xcb, 0x85, 0x30, 0x12, 0x2a,
0xa7, 0x59, 0xd8, 0xe7, 0x83, 0x5e, 0x1a, 0xf5, 0x48, 0x89, 0xd2, 0xee, 0x2c, 0x7b, 0x79, 0x98,
0x02, 0x5e, 0x3c, 0x49, 0x43, 0x9e, 0x92, 0x9e, 0x59, 0xf6, 0x54, 0x11, 0xe5, 0x87, 0x48, 0x84,
0x49, 0xa8, 0x7b, 0xb2, 0x84, 0x8e, 0xe6, 0x34, 0x0e, 0x92, 0x4e, 0x93, 0x50, 0xfa, 0xcd, 0x3e,
0x0d, 0xe7, 0x8f, 0x78, 0x92, 0xf6, 0x4e, 0xb8, 0x3f, 0xe0, 0x31, 0xed, 0xbe, 0x88, 0x4e, 0x09,
0xfb, 0x5d, 0x5e, 0x89, 0x7d, 0x9f, 0xf2, 0x38, 0x09, 0xa2, 0x90, 0x2c, 0x77, 0xdd, 0x53, 0x45,
0xf7, 0x9b, 0xe4, 0x0f, 0xeb, 0xb8, 0xd9, 0x63, 0x32, 0xe6, 0xec, 0x35, 0xa8, 0x8b, 0x39, 0x26,
0x27, 0xbe, 0x74, 0xd1, 0x97, 0x09, 0x38, 0x3c, 0xf1, 0x51, 0x23, 0x58, 0xcb, 0x26, 0x02, 0x91,
0x0d, 0xc2, 0xf6, 0xc4, 0xaa, 0x5d, 0x81, 0x96, 0x8a, 0xc8, 0x25, 0xbd, 0x11, 0x3f, 0x4e, 0xd5,
0xf1, 0x3a, 0x9c, 0x8e, 0xb1, 0xbb, 0x64, 0x9f, 0x1f, 0xa7, 0xee, 0x03, 0x58, 0x93, 0x32, 0xfc,
0x70, 0xc2, 0x55, 0xd7, 0x9f, 0x2d, 0xb3, 0x6e, 0x8d, 0xed, 0x75, 0x5b, 0xe8, 0x29, 0x46, 0x90,
0x33, 0x79, 0xae, 0x07, 0xcc, 0xd4, 0x09, 0xb2, 0x41, 0x69, 0x62, 0xd4, 0x21, 0x5e, 0x4e, 0xc7,
0xc2, 0x70, 0x7d, 0x92, 0x69, 0xbf, 0x8f, 0x9a, 0x40, 0x68, 0x40, 0x55, 0x74, 0xbf, 0xe7, 0xc0,
0x3a, 0xb5, 0xa6, 0xec, 0xb3, 0x3e, 0xf9, 0xbd, 0xfa, 0x30, 0x9b, 0x7d, 0x33, 0xb0, 0xb1, 0x01,
0x0b, 0xa6, 0xae, 0x15, 0x85, 0x1f, 0xff, 0x2c, 0x5b, 0x2b, 0x9c, 0x65, 0x7f, 0xe8, 0xc0, 0x9a,
0x50, 0x86, 0xa9, 0x9f, 0x4e, 0x13, 0x39, 0xfd, 0x5f, 0x84, 0x15, 0x61, 0xa7, 0xa4, 0x38, 0xc9,
0x81, 0x6e, 0x68, 0xc9, 0x27, 0x54, 0x10, 0xef, 0x9d, 0xf3, 0x6c, 0x62, 0xf6, 0x79, 0x68, 0x9a,
0x61, 0x55, 0x1a, 0x73, 0x63, 0xfb, 0xa2, 0x9a, 0x65, 0x81, 0x73, 0xf6, 0xce, 0x79, 0xd6, 0x07,
0xec, 0x43, 0x72, 0x36, 0xc2, 0x1e, 0x35, 0x2b, 0x03, 0x53, 0x17, 0x4b, 0x14, 0xb8, 0xfe, 0xdc,
0x20, 0xbf, 0xbd, 0x0c, 0x8b, 0xc2, 0xbb, 0x74, 0xef, 0xc1, 0x8a, 0x35, 0x52, 0xeb, 0x8c, 0xde,
0x14, 0x67, 0xf4, 0x42, 0x48, 0xa7, 0x52, 0x0c, 0xe9, 0xb8, 0xff, 0x56, 0x01, 0x86, 0xdc, 0x96,
0xdb, 0x4e, 0x74, 0x6f, 0xa3, 0x81, 0x75, 0x58, 0x69, 0x7a, 0x26, 0xc4, 0xae, 0x03, 0x33, 0x8a,
0x2a, 0xea, 0x25, 0xec, 0x46, 0x49, 0x0d, 0x2a, 0x38, 0x69, 0x58, 0xa5, 0x09, 0x94, 0xc7, 0x32,
0xb1, 0x6f, 0xa5, 0x75, 0x68, 0x1a, 0x26, 0xd3, 0xe4, 0x04, 0xdd, 0x6f, 0x75, 0x9c, 0x51, 0xe5,
0x3c, 0x83, 0x2c, 0xbe, 0x94, 0x41, 0x96, 0xf2, 0x0c, 0x62, 0x3a, 0xd4, 0xcb, 0x96, 0x43, 0x8d,
0x8e, 0xdc, 0x18, 0xdd, 0xbf, 0x74, 0xd4, 0xef, 0x8d, 0xb1, 0x77, 0x79, 0x7a, 0xb1, 0x40, 0xb6,
0x05, 0x6d, 0xe9, 0x0a, 0x64, 0x5e, 0x3b, 0xd0, 0x1a, 0x17, 0x70, 0xf7, 0x07, 0x0e, 0xb4, 0x71,
0x9d, 0x2d, 0x5e, 0xfc, 0x00, 0x48, 0x14, 0x5e, 0x91, 0x15, 0x2d, 0xda, 0x9f, 0x9e, 0x13, 0xdf,
0x87, 0x3a, 0x35, 0x18, 0x4d, 0x78, 0x28, 0x19, 0xb1, 0x63, 0x33, 0x62, 0xa6, 0x85, 0xf6, 0xce,
0x79, 0x19, 0xb1, 0xc1, 0x86, 0xff, 0xe4, 0x40, 0x43, 0x0e, 0xf3, 0x27, 0x3e, 0x89, 0x77, 0x61,
0x19, 0x39, 0xd2, 0x38, 0xee, 0xea, 0x32, 0x5a, 0x93, 0xb1, 0x9f, 0x4e, 0x63, 0x34, 0x9f, 0xd6,
0x29, 0x3c, 0x0f, 0xa3, 0x2d, 0x24, 0x85, 0x9b, 0xf4, 0xd2, 0x60, 0xd4, 0x53, 0xb5, 0xf2, 0x16,
0xa3, 0xac, 0x0a, 0xf5, 0x4e, 0x92, 0xfa, 0x43, 0x2e, 0xcd, 0x9c, 0x28, 0xb8, 0x1d, 0xd8, 0x94,
0x13, 0xca, 0xf9, 0x8e, 0xee, 0xdf, 0x36, 0xe1, 0x42, 0xa1, 0x4a, 0x5f, 0x03, 0xca, 0xe3, 0xe5,
0x28, 0x18, 0x1f, 0x45, 0xda, 0xd1, 0x76, 0xcc, 0x93, 0xa7, 0x55, 0xc5, 0x86, 0x70, 0x5e, 0xd9,
0x73, 0x5c, 0xd3, 0xcc, 0x7a, 0x57, 0xc8, 0x11, 0x79, 0xd7, 0xe6, 0x81, 0x7c, 0x87, 0x0a, 0x37,
0x25, 0xb7, 0xbc, 0x3d, 0x76, 0x02, 0x1d, 0xed, 0x38, 0x48, 0x15, 0x6f, 0x38, 0x17, 0xd8, 0xd7,
0x3b, 0x2f, 0xe9, 0xcb, 0x72, 0x44, 0xbd, 0xb9, 0xad, 0xb1, 0x19, 0x5c, 0x52, 0x75, 0xa4, 0xc3,
0x8b, 0xfd, 0xd5, 0x5e, 0x69, 0x6e, 0xe4, 0x44, 0xdb, 0x9d, 0xbe, 0xa4, 0x61, 0xf6, 0x75, 0xd8,
0x3c, 0xf3, 0x83, 0x54, 0x0d, 0xcb, 0x70, 0x86, 0x16, 0xa8, 0xcb, 0xed, 0x97, 0x74, 0xf9, 0x44,
0x7c, 0x6c, 0x19, 0xb6, 0x39, 0x2d, 0x76, 0xff, 0xc1, 0x81, 0x96, 0xdd, 0x0e, 0xb2, 0xa9, 0x14,
0x78, 0xa5, 0xf8, 0x94, 0xf3, 0x97, 0x83, 0x8b, 0x67, 0xd5, 0x4a, 0xd9, 0x59, 0xd5, 0x3c, 0x21,
0x56, 0x5f, 0x16, 0xc6, 0xa9, 0xbd, 0x5a, 0x18, 0x67, 0xa1, 0x2c, 0x8c, 0xd3, 0xfd, 0x6f, 0x07,
0x58, 0x91, 0x97, 0xd8, 0x3d, 0x71, 0x58, 0x0e, 0xf9, 0x48, 0xea, 0xa4, 0x9f, 0x7f, 0x35, 0x7e,
0x54, 0x6b, 0xa7, 0xbe, 0x46, 0xc1, 0x30, 0x95, 0x8e, 0xe9, 0x22, 0xad, 0x78, 0x65, 0x55, 0xb9,
0xc0, 0x52, 0xed, 0xe5, 0x81, 0xa5, 0x85, 0x97, 0x07, 0x96, 0x16, 0xf3, 0x81, 0xa5, 0xee, 0xef,
0x38, 0xb0, 0x5e, 0xb2, 0xe9, 0x3f, 0xbb, 0x89, 0xe3, 0x36, 0x59, 0xba, 0xa0, 0x22, 0xb7, 0xc9,
0x04, 0xbb, 0xbf, 0x01, 0x2b, 0x16, 0xa3, 0xff, 0xec, 0xfa, 0xcf, 0x7b, 0x79, 0x82, 0xcf, 0x2c,
0xac, 0xfb, 0xa3, 0x0a, 0xb0, 0xa2, 0xb0, 0xfd, 0xbf, 0x8e, 0xa1, 0xb8, 0x4e, 0xd5, 0x92, 0x75,
0xfa, 0x3f, 0xb5, 0x03, 0xef, 0xc0, 0x9a, 0xcc, 0x19, 0x30, 0x42, 0x24, 0x82, 0x63, 0x8a, 0x15,
0xe8, 0xe7, 0xda, 0x51, 0xbd, 0x65, 0xeb, 0xae, 0xd9, 0x30, 0x86, 0xb9, 0xe0, 0x9e, 0xbb, 0x09,
0x1b, 0x22, 0x07, 0xe1, 0xb6, 0x68, 0x4a, 0xd9, 0x95, 0x3f, 0x71, 0xe0, 0x7c, 0xae, 0x22, 0xbb,
0x19, 0x15, 0xa6, 0xc3, 0xb6, 0x27, 0x36, 0x88, 0xe3, 0x97, 0x72, 0x64, 0x8c, 0x5f, 0x70, 0x5b,
0xb1, 0x02, 0xd7, 0x67, 0x1a, 0x16, 0xe9, 0xc5, 0xaa, 0x97, 0x55, 0xb9, 0x17, 0x44, 0xa6, 0x44,
0xc8, 0x47, 0xb9, 0x81, 0x1f, 0x8b, 0xdc, 0x06, 0xb3, 0x22, 0xbb, 0x5a, 0xb1, 0x87, 0xac, 0x8a,
0xe8, 0x05, 0x5a, 0x66, 0xca, 0x1e, 0x6f, 0x69, 0x9d, 0xfb, 0xd7, 0x0e, 0xb0, 0x2f, 0x4d, 0x79,
0x3c, 0xa3, 0x1b, 0x52, 0x1d, 0xcb, 0xb9, 0x90, 0x8f, 0x63, 0x2c, 0x4e, 0xa6, 0x47, 0x5f, 0xe4,
0x33, 0x75, 0x8f, 0x5e, 0xc9, 0xee, 0xd1, 0xdf, 0x00, 0xc0, 0xe3, 0x97, 0xbe, 0x76, 0x45, 0x5e,
0xc0, 0x73, 0xaf, 0x68, 0xb0, 0xf4, 0xaa, 0xbb, 0xf6, 0xf2, 0xab, 0xee, 0x85, 0x97, 0x5d, 0x75,
0x7f, 0x08, 0xeb, 0xd6, 0xb8, 0xf5, 0xb6, 0xaa, 0x0b, 0x60, 0xe7, 0x05, 0x17, 0xc0, 0xff, 0xe9,
0x40, 0x75, 0x2f, 0x9a, 0x98, 0x71, 0x4b, 0xc7, 0x8e, 0x5b, 0x4a, 0x5b, 0xd2, 0xd3, 0xa6, 0x42,
0xaa, 0x18, 0x0b, 0x64, 0x5b, 0xd0, 0xf2, 0xc7, 0x29, 0x1e, 0xbb, 0x8f, 0xa3, 0xf8, 0xcc, 0x8f,
0x07, 0x62, 0xaf, 0x6f, 0x57, 0x3a, 0x8e, 0x97, 0xab, 0x61, 0x1b, 0x50, 0xd5, 0x4a, 0x97, 0x08,
0xb0, 0x88, 0x8e, 0x1b, 0xdd, 0x79, 0xcc, 0x64, 0xc4, 0x40, 0x96, 0x90, 0x95, 0xec, 0xef, 0x85,
0xab, 0x2c, 0x44, 0xa7, 0xac, 0x0a, 0xed, 0x1a, 0x2e, 0x1f, 0x91, 0xc9, 0x50, 0x8f, 0x2a, 0xbb,
0xff, 0xee, 0xc0, 0x02, 0xad, 0x00, 0x0a, 0xbb, 0xe0, 0x70, 0x1d, 0xa0, 0xa4, 0x99, 0xaf, 0x78,
0x79, 0x98, 0xb9, 0x56, 0xbe, 0x49, 0x45, 0x0f, 0xdb, 0xcc, 0x39, 0xb9, 0x0c, 0x75, 0x51, 0xd2,
0xb9, 0x15, 0x44, 0x92, 0x81, 0xec, 0x12, 0xd4, 0x4e, 0xa2, 0x89, 0xf2, 0x4e, 0x40, 0xc5, 0xe7,
0xa3, 0x89, 0x47, 0x78, 0x36, 0x1e, 0x6c, 0x4f, 0x0c, 0x5e, 0xd8, 0x9c, 0x3c, 0x8c, 0x56, 0x57,
0x37, 0x6b, 0x2e, 0x46, 0x0e, 0x75, 0xb7, 0x60, 0xf5, 0x41, 0x34, 0xe0, 0x46, 0x4c, 0x69, 0x2e,
0x37, 0xbb, 0xdf, 0x72, 0x60, 0x59, 0x11, 0xb3, 0x6b, 0x50, 0x43, 0x57, 0x22, 0x77, 0x50, 0xd0,
0xf7, 0x72, 0x48, 0xe7, 0x11, 0x05, 0xea, 0x5e, 0x8a, 0x38, 0x64, 0x6e, 0xa5, 0x8a, 0x37, 0x64,
0x5e, 0x93, 0x1e, 0x6e, 0xce, 0xd9, 0xc8, 0xa1, 0xee, 0x5f, 0x38, 0xb0, 0x62, 0xf5, 0x81, 0xc7,
0xc3, 0x91, 0x9f, 0xa4, 0xf2, 0xae, 0x43, 0x6e, 0x8f, 0x09, 0x99, 0x51, 0xc6, 0x8a, 0x1d, 0x65,
0xd4, 0xf1, 0xaf, 0xaa, 0x19, 0xff, 0xba, 0x09, 0xf5, 0x2c, 0x2b, 0xa8, 0x66, 0xe9, 0x54, 0xec,
0x51, 0xdd, 0x38, 0x66, 0x44, 0xd8, 0x4e, 0x3f, 0x1a, 0x45, 0xb1, 0x0c, 0xb2, 0x8b, 0x82, 0xfb,
0x21, 0x34, 0x0c, 0x7a, 0x1c, 0x46, 0xc8, 0xd3, 0xb3, 0x28, 0x7e, 0xaa, 0x82, 0x9d, 0xb2, 0xa8,
0x2f, 0xd6, 0x2b, 0xd9, 0xc5, 0xba, 0xfb, 0x97, 0x0e, 0xac, 0x20, 0x0f, 0x06, 0xe1, 0xf0, 0x20,
0x1a, 0x05, 0xfd, 0x19, 0xed, 0xbd, 0x62, 0x37, 0xa9, 0x19, 0x14, 0x2f, 0xda, 0x30, 0xf2, 0xb6,
0x3a, 0x1d, 0x4a, 0x41, 0xd4, 0x65, 0x94, 0x54, 0xe4, 0xf3, 0x23, 0x3f, 0x91, 0xcc, 0x2f, 0x8d,
0x9c, 0x05, 0xa2, 0x3c, 0x21, 0x10, 0xfb, 0x29, 0xef, 0x8d, 0x83, 0xd1, 0x28, 0x10, 0xb4, 0xc2,
0x05, 0x2a, 0xab, 0x72, 0xbf, 0x5f, 0x81, 0x86, 0x54, 0xc1, 0xbb, 0x83, 0x21, 0x97, 0x37, 0x19,
0xe4, 0x48, 0x6a, 0x75, 0x61, 0x20, 0xaa, 0xde, 0x72, 0x3d, 0x0d, 0x24, 0xbf, 0xad, 0xd5, 0xe2,
0xb6, 0xbe, 0x0e, 0x75, 0x64, 0xaf, 0x77, 0xc9, 0xc7, 0x15, 0xb7, 0x20, 0x19, 0xa0, 0x6a, 0xb7,
0xa9, 0x76, 0x21, 0xab, 0x25, 0xe0, 0x85, 0xf7, 0x1e, 0xef, 0x43, 0x53, 0x36, 0x43, 0xeb, 0x4e,
0xda, 0x21, 0x63, 0x70, 0x6b, 0x4f, 0x3c, 0x8b, 0x52, 0x7d, 0xb9, 0xad, 0xbe, 0x5c, 0x7e, 0xd9,
0x97, 0x8a, 0x92, 0xee, 0xa8, 0xc5, 0xda, 0xdc, 0x8b, 0xfd, 0xc9, 0x89, 0x32, 0x6b, 0x03, 0x9d,
0x78, 0x43, 0x30, 0xdb, 0x82, 0x05, 0xfc, 0x4c, 0x69, 0xeb, 0x72, 0xa1, 0x13, 0x24, 0xec, 0x1a,
0x2c, 0xf0, 0xc1, 0x90, 0xab, 0x53, 0x1c, 0xb3, 0xcf, 0xd3, 0xb8, 0x47, 0x9e, 0x20, 0x40, 0x15,
0x80, 0x68, 0x4e, 0x05, 0xd8, 0x9a, 0x7e, 0x11, 0x8b, 0xf7, 0x07, 0xee, 0x06, 0xb0, 0x07, 0x82,
0x6b, 0xcd, 0x28, 0xf4, 0x6f, 0x57, 0xa1, 0x61, 0xc0, 0x28, 0xcd, 0x43, 0x1c, 0x70, 0x6f, 0x10,
0xf8, 0x63, 0x9e, 0xf2, 0x58, 0x72, 0x6a, 0x0e, 0x45, 0x3a, 0xff, 0x74, 0xd8, 0x8b, 0xa6, 0x69,
0x6f, 0xc0, 0x87, 0x31, 0x17, 0xc6, 0x17, 0x8d, 0x81, 0x85, 0x22, 0xdd, 0xd8, 0x7f, 0x66, 0xd2,
0x09, 0x7e, 0xc8, 0xa1, 0x2a, 0xa6, 0x2c, 0xd6, 0xa8, 0x96, 0xc5, 0x94, 0xc5, 0x8a, 0xe4, 0xf5,
0xd0, 0x42, 0x89, 0x1e, 0x7a, 0x0f, 0x36, 0x85, 0xc6, 0x91, 0xb2, 0xd9, 0xcb, 0xb1, 0xc9, 0x9c,
0x5a, 0xb6, 0x05, 0x6d, 0x1c, 0xb3, 0x62, 0xf0, 0x24, 0xf8, 0xa6, 0x88, 0xf2, 0x38, 0x5e, 0x01,
0x47, 0x5a, 0x14, 0x47, 0x8b, 0x56, 0xdc, 0x9a, 0x15, 0x70, 0xa2, 0xf5, 0x9f, 0xd9, 0xb4, 0x75,
0x49, 0x9b, 0xc3, 0xdd, 0x15, 0x68, 0x1c, 0xa6, 0xd1, 0x44, 0x6d, 0x4a, 0x0b, 0x9a, 0xa2, 0x28,
0x73, 0x14, 0x5e, 0x83, 0x8b, 0xc4, 0x45, 0x8f, 0xa2, 0x49, 0x34, 0x8a, 0x86, 0xb3, 0xc3, 0xe9,
0x51, 0xd2, 0x8f, 0x83, 0x09, 0x9e, 0x78, 0xdc, 0x7f, 0x74, 0x60, 0xdd, 0xaa, 0x95, 0x61, 0xa1,
0x4f, 0x0b, 0x96, 0xd6, 0x97, 0xcb, 0x82, 0xf1, 0xd6, 0x0c, 0x75, 0x28, 0x08, 0x45, 0x40, 0xee,
0xb1, 0xbc, 0x6f, 0xbe, 0x05, 0xab, 0x6a, 0x64, 0xea, 0x43, 0xc1, 0x85, 0x9d, 0x22, 0x17, 0xca,
0xef, 0x5b, 0xf2, 0x03, 0xd5, 0xc4, 0x2f, 0xc9, 0xdb, 0xc7, 0x01, 0xcd, 0x51, 0xc5, 0x07, 0xf4,
0xfd, 0x92, 0x79, 0x4a, 0x50, 0x23, 0xe8, 0x6b, 0x30, 0x71, 0x7f, 0xcf, 0x01, 0xc8, 0x46, 0x87,
0x8c, 0x91, 0xa9, 0x74, 0x91, 0x10, 0x6d, 0xa8, 0xef, 0xb7, 0xa0, 0xa9, 0x6f, 0x46, 0x32, 0x2b,
0xd1, 0x50, 0x18, 0x3a, 0x72, 0x57, 0x61, 0x75, 0x38, 0x8a, 0x8e, 0xc8, 0xc4, 0x52, 0xd2, 0x4b,
0x22, 0x33, 0x35, 0x5a, 0x02, 0xbe, 0x2b, 0xd1, 0xcc, 0xa4, 0xd4, 0x0c, 0x93, 0xe2, 0x7e, 0xbb,
0xa2, 0xe3, 0xe9, 0xd9, 0x9c, 0xe7, 0x4a, 0x19, 0xdb, 0x2e, 0x28, 0xc7, 0x39, 0xe1, 0x6b, 0x8a,
0x84, 0x1d, 0xbc, 0xf4, 0xa0, 0xfe, 0x21, 0xb4, 0x62, 0xa1, 0x7d, 0x94, 0x6a, 0xaa, 0xbd, 0x40,
0x35, 0xad, 0xc4, 0x96, 0xdd, 0xf9, 0x24, 0xb4, 0xfd, 0xc1, 0x29, 0x8f, 0xd3, 0x80, 0x8e, 0x4a,
0x64, 0xf4, 0x85, 0x42, 0x5d, 0x35, 0x70, 0xb2, 0xc5, 0x57, 0x61, 0x55, 0x66, 0xc7, 0x68, 0x4a,
0x99, 0xd1, 0x99, 0xc1, 0x48, 0xe8, 0xfe, 0x99, 0x0a, 0xdd, 0xdb, 0x7b, 0x38, 0x7f, 0x45, 0xcc,
0xd9, 0x55, 0x72, 0xb3, 0xfb, 0x84, 0x0c, 0xa3, 0x0f, 0xd4, 0x79, 0xac, 0x6a, 0xdc, 0x54, 0x0f,
0xe4, 0xb5, 0x87, 0xbd, 0xa4, 0xb5, 0x57, 0x59, 0x52, 0xf7, 0x07, 0x0e, 0x2c, 0xed, 0x45, 0x93,
0x3d, 0x79, 0x67, 0x4f, 0x82, 0xa0, 0x73, 0xcf, 0x54, 0xf1, 0x05, 0xb7, 0xf9, 0xa5, 0xb6, 0x76,
0x25, 0x6f, 0x6b, 0x7f, 0x19, 0x5e, 0xa3, 0x68, 0x40, 0x1c, 0x4d, 0xa2, 0x18, 0x85, 0xd1, 0x1f,
0x09, 0xc3, 0x1a, 0x85, 0xe9, 0x89, 0x52, 0x63, 0x2f, 0x22, 0xa1, 0x63, 0x17, 0x1e, 0x17, 0x84,
0x33, 0x2c, 0x7d, 0x03, 0xa1, 0xdd, 0x8a, 0x15, 0xee, 0x67, 0xa1, 0x4e, 0xce, 0x2d, 0x4d, 0xeb,
0x1d, 0xa8, 0x9f, 0x44, 0x93, 0xde, 0x49, 0x10, 0xa6, 0x4a, 0xb8, 0x5b, 0x99, 0xd7, 0xb9, 0x47,
0x0b, 0xa2, 0x09, 0xdc, 0x1f, 0x55, 0x61, 0xe9, 0x7e, 0x78, 0x1a, 0x05, 0x7d, 0x8a, 0xf2, 0x8f,
0xf9, 0x38, 0x52, 0x99, 0x78, 0xf8, 0x1b, 0x97, 0x82, 0xb2, 0x52, 0x26, 0xa9, 0x0c, 0xd3, 0xab,
0x22, 0x9a, 0xfb, 0x38, 0xcb, 0x96, 0x15, 0xa2, 0x63, 0x20, 0xe8, 0xd8, 0xc7, 0x66, 0x62, 0xb1,
0x2c, 0x65, 0xa9, 0x8c, 0x0b, 0x46, 0x2a, 0x23, 0xdd, 0x09, 0x89, 0xfc, 0x02, 0xe2, 0xaf, 0x65,
0x4f, 0x15, 0xe9, 0x20, 0x12, 0x73, 0x11, 0xc5, 0x21, 0xc7, 0x61, 0x49, 0x1e, 0x44, 0x4c, 0x10,
0x9d, 0x0b, 0xf1, 0x81, 0xa0, 0x11, 0xca, 0xd7, 0x84, 0xd0, 0xd9, 0xca, 0xe7, 0x26, 0xd7, 0x05,
0xcf, 0xe7, 0x60, 0xd4, 0xd0, 0x03, 0xae, 0x15, 0xa9, 0x98, 0x03, 0x88, 0x6c, 0xe0, 0x3c, 0x6e,
0x1c, 0x5f, 0x44, 0xe2, 0x90, 0x3a, 0xbe, 0x20, 0xa3, 0xf8, 0xa3, 0xd1, 0x91, 0xdf, 0x7f, 0x4a,
0xa9, 0xe7, 0x94, 0x27, 0x54, 0xf7, 0x6c, 0x90, 0x32, 0x06, 0xb2, 0xdd, 0xa4, 0x5b, 0xc5, 0x9a,
0x67, 0x42, 0x6c, 0x1b, 0x1a, 0x74, 0x64, 0x93, 0xfb, 0xd9, 0xa2, 0xfd, 0x6c, 0x9b, 0x67, 0x3a,
0xda, 0x51, 0x93, 0xc8, 0xbc, 0x79, 0x58, 0xb5, 0x53, 0x79, 0xbe, 0x0c, 0xec, 0xd6, 0x60, 0x20,
0xf7, 0x5b, 0x1f, 0x19, 0xb3, 0x9d, 0x72, 0xac, 0x9d, 0x2a, 0x59, 0xb1, 0x4a, 0xe9, 0x8a, 0xb9,
0xbb, 0xd0, 0x38, 0x30, 0x92, 0x96, 0x89, 0x35, 0x54, 0xba, 0xb2, 0x64, 0x27, 0x03, 0x31, 0x3a,
0xac, 0x98, 0x1d, 0xba, 0xbf, 0x00, 0x6c, 0x3f, 0x48, 0x52, 0x3d, 0xbe, 0x2c, 0x4b, 0x5a, 0x9d,
0xdc, 0xb3, 0x44, 0xa3, 0x86, 0xc4, 0x28, 0x01, 0xe8, 0x96, 0xc8, 0x50, 0xca, 0x4f, 0x6c, 0x0b,
0x96, 0x03, 0x01, 0xe5, 0x25, 0x41, 0x51, 0xea, 0x7a, 0xf4, 0xd7, 0x24, 0x68, 0x59, 0xd1, 0xef,
0x3b, 0xb0, 0x24, 0xa7, 0x86, 0xde, 0x46, 0x21, 0x5d, 0xbb, 0xee, 0x59, 0x58, 0x79, 0xa2, 0x6e,
0x91, 0x87, 0xab, 0x65, 0x3c, 0xcc, 0xa0, 0x36, 0xf1, 0xd3, 0x13, 0x3a, 0xa0, 0xd4, 0x3d, 0xfa,
0xcd, 0xda, 0xe2, 0xd0, 0x2c, 0x64, 0x85, 0x0e, 0xcc, 0x65, 0xb9, 0xea, 0x42, 0x25, 0x17, 0x70,
0x9c, 0x14, 0x65, 0x25, 0x08, 0x5c, 0x5f, 0x36, 0xc8, 0x7c, 0xa9, 0x0c, 0xce, 0xd6, 0x4b, 0x36,
0x91, 0x5f, 0x2f, 0x49, 0xea, 0xe9, 0x7a, 0xb7, 0x0b, 0x9d, 0x3b, 0x7c, 0xc4, 0x53, 0x7e, 0x6b,
0x34, 0xca, 0xb7, 0xff, 0x1a, 0x5c, 0x2c, 0xa9, 0x93, 0x4e, 0xcb, 0x5d, 0x58, 0xbb, 0xc3, 0x8f,
0xa6, 0xc3, 0x7d, 0x7e, 0x9a, 0xdd, 0x08, 0x32, 0xa8, 0x25, 0x27, 0xd1, 0x99, 0xdc, 0x5b, 0xfa,
0xcd, 0xde, 0x00, 0x18, 0x21, 0x4d, 0x2f, 0x99, 0xf0, 0xbe, 0x4a, 0x51, 0x25, 0xe4, 0x70, 0xc2,
0xfb, 0xee, 0x7b, 0xc0, 0xcc, 0x76, 0xe4, 0x14, 0x50, 0x0f, 0x4c, 0x8f, 0x7a, 0xc9, 0x2c, 0x49,
0xf9, 0x58, 0xe5, 0xde, 0x9a, 0x90, 0x7b, 0x15, 0x9a, 0x07, 0xfe, 0xcc, 0xe3, 0xdf, 0x90, 0x19,
0xf3, 0x78, 0x36, 0xf6, 0x67, 0xc8, 0xca, 0xfa, 0x6c, 0x4c, 0xd5, 0xee, 0x7f, 0x55, 0x60, 0x51,
0x50, 0x62, 0xab, 0x03, 0x9e, 0xa4, 0x41, 0x28, 0x6e, 0xc3, 0x64, 0xab, 0x06, 0x54, 0xe0, 0x8d,
0x4a, 0x09, 0x6f, 0x48, 0x6f, 0x55, 0xa5, 0xfb, 0x49, 0x26, 0xb0, 0x30, 0x74, 0x6b, 0xb2, 0x2c,
0x03, 0x71, 0x38, 0xcb, 0x80, 0x5c, 0xb0, 0x24, 0xd3, 0x36, 0x62, 0x7c, 0x8a, 0x69, 0x25, 0x3b,
0x98, 0x50, 0xa9, 0x4e, 0x5b, 0x12, 0x5c, 0x53, 0xd0, 0x69, 0x05, 0xdd, 0xb5, 0xfc, 0x0a, 0xba,
0x4b, 0xb8, 0xb0, 0x2f, 0xd2, 0x5d, 0xf0, 0x0a, 0xba, 0xcb, 0x65, 0xd0, 0xbe, 0xcb, 0xb9, 0xc7,
0xd1, 0x2a, 0x2a, 0x76, 0xfa, 0x8e, 0x03, 0x6d, 0x69, 0xd0, 0x75, 0x1d, 0x7b, 0xcb, 0xb2, 0xfe,
0xa5, 0x49, 0x79, 0x57, 0x60, 0x85, 0x6c, 0xb2, 0x8e, 0x0a, 0xc9, 0x10, 0x96, 0x05, 0xe2, 0x3c,
0x54, 0xe8, 0x7e, 0x1c, 0x8c, 0xe4, 0xa6, 0x98, 0x90, 0x0a, 0x2c, 0xe1, 0xf9, 0x98, 0xb6, 0xc4,
0xf1, 0x74, 0xd9, 0xfd, 0x1b, 0x07, 0xd6, 0x8c, 0x01, 0x4b, 0x2e, 0xfc, 0x10, 0x54, 0x16, 0x82,
0x08, 0x1e, 0x09, 0x61, 0xba, 0x60, 0x3b, 0x27, 0xd9, 0x67, 0x16, 0x31, 0x6d, 0xa6, 0x3f, 0xa3,
0x01, 0x26, 0xd3, 0xb1, 0xf4, 0x40, 0x4c, 0x08, 0x19, 0xe9, 0x8c, 0xf3, 0xa7, 0x9a, 0xa4, 0x4a,
0x24, 0x16, 0x46, 0x97, 0xcc, 0xe8, 0x4b, 0x68, 0x22, 0x91, 0x57, 0x65, 0x83, 0xee, 0x3f, 0x3b,
0xb0, 0x2e, 0x9c, 0x42, 0xe9, 0x72, 0xeb, 0x8c, 0xe9, 0x45, 0xe1, 0x05, 0x0b, 0x89, 0xdc, 0x3b,
0xe7, 0xc9, 0x32, 0xfb, 0xcc, 0x2b, 0x3a, 0xb2, 0x3a, 0xb9, 0x60, 0xce, 0x5e, 0x54, 0xcb, 0xf6,
0xe2, 0x05, 0x2b, 0x5d, 0x16, 0x2c, 0x59, 0x28, 0x0d, 0x96, 0xdc, 0x5e, 0x82, 0x85, 0xa4, 0x1f,
0x4d, 0xb8, 0xbb, 0x09, 0x1b, 0xf6, 0xe4, 0xa4, 0x0a, 0xfa, 0xae, 0x03, 0x9d, 0xbb, 0x22, 0x74,
0x18, 0x84, 0xc3, 0xbd, 0x20, 0x49, 0xa3, 0x58, 0x3f, 0x11, 0xb9, 0x04, 0x90, 0xa4, 0x7e, 0x9c,
0x8a, 0xe4, 0x2f, 0x19, 0xe6, 0xc8, 0x10, 0x1c, 0x23, 0x0f, 0x07, 0xa2, 0x56, 0xec, 0x8d, 0x2e,
0xe3, 0xc6, 0x50, 0xe2, 0x43, 0x2f, 0x3a, 0x3e, 0x4e, 0xb8, 0x76, 0x5b, 0x4d, 0x0c, 0x4f, 0xbe,
0x28, 0xf1, 0x78, 0xd6, 0xe3, 0xa7, 0xa4, 0x6a, 0x85, 0x3f, 0x98, 0x43, 0xdd, 0xbf, 0x72, 0x60,
0x35, 0x1b, 0xe4, 0x2e, 0x82, 0xb6, 0x76, 0x10, 0x43, 0x33, 0xb4, 0x83, 0x0a, 0xc0, 0x04, 0x83,
0x5e, 0x10, 0xca, 0xb1, 0x19, 0x08, 0x49, 0xac, 0x2c, 0x45, 0x53, 0x95, 0x68, 0x67, 0x42, 0xe2,
0x16, 0x3d, 0xc5, 0xaf, 0x45, 0x96, 0x9d, 0x2c, 0x51, 0xee, 0xde, 0x38, 0xa5, 0xaf, 0x16, 0x85,
0x43, 0x2c, 0x8b, 0xca, 0x3e, 0x2d, 0x11, 0x8a, 0x3f, 0xdd, 0xdf, 0x77, 0xe0, 0x62, 0xc9, 0xe2,
0x4a, 0xc9, 0xb8, 0x03, 0x6b, 0xc7, 0xba, 0x52, 0x2d, 0x80, 0x10, 0x8f, 0x4d, 0x15, 0xeb, 0xb6,
0x27, 0xed, 0x15, 0x3f, 0x40, 0xf7, 0x98, 0xe2, 0x46, 0x62, 0x49, 0xad, 0x04, 0x94, 0x62, 0xc5,
0xf6, 0x1f, 0x54, 0xa1, 0x25, 0xee, 0x40, 0xc4, 0x63, 0x4d, 0x1e, 0xb3, 0x8f, 0x60, 0x49, 0x3e,
0xb6, 0x65, 0xe7, 0x65, 0xb7, 0xf6, 0xf3, 0xde, 0xee, 0x66, 0x1e, 0x96, 0xbc, 0xb3, 0xfe, 0x5b,
0x3f, 0xf8, 0xd7, 0x3f, 0xac, 0xac, 0xb0, 0xc6, 0x8d, 0xd3, 0x77, 0x6f, 0x0c, 0x79, 0x98, 0x60,
0x1b, 0xbf, 0x06, 0x90, 0x3d, 0x43, 0x65, 0x1d, 0xed, 0x64, 0xe4, 0xde, 0xd7, 0x76, 0x2f, 0x96,
0xd4, 0xc8, 0x76, 0x2f, 0x52, 0xbb, 0xeb, 0x6e, 0x0b, 0xdb, 0x0d, 0xc2, 0x20, 0x15, 0x6f, 0x52,
0x3f, 0x70, 0xb6, 0xd8, 0x00, 0x9a, 0xe6, 0x2b, 0x53, 0xa6, 0x8e, 0xcc, 0x25, 0x6f, 0x5c, 0xbb,
0xaf, 0x95, 0xd6, 0xa9, 0x78, 0x01, 0xf5, 0x71, 0xde, 0x6d, 0x63, 0x1f, 0x53, 0xa2, 0xc8, 0x7a,
0x19, 0x41, 0xcb, 0x7e, 0x4c, 0xca, 0x5e, 0x37, 0xc4, 0xba, 0xf0, 0x94, 0xb5, 0xfb, 0xc6, 0x9c,
0x5a, 0xd9, 0xd7, 0x1b, 0xd4, 0xd7, 0x05, 0x97, 0x61, 0x5f, 0x7d, 0xa2, 0x51, 0x4f, 0x59, 0x3f,
0x70, 0xb6, 0xb6, 0xbf, 0x75, 0x09, 0xea, 0x3a, 0xc8, 0xc5, 0xbe, 0x0e, 0x2b, 0xd6, 0x25, 0x15,
0x53, 0xd3, 0x28, 0xbb, 0xd3, 0xea, 0xbe, 0x5e, 0x5e, 0x29, 0x3b, 0xbe, 0x44, 0x1d, 0x77, 0xd8,
0x26, 0x76, 0x2c, 0x6f, 0x79, 0x6e, 0xd0, 0xd5, 0x9c, 0xc8, 0x0c, 0x7c, 0x2a, 0xe6, 0x99, 0x5d,
0x2c, 0x59, 0xf3, 0x2c, 0x5c, 0x44, 0x59, 0xf3, 0x2c, 0xde, 0x46, 0xb9, 0xaf, 0x53, 0x77, 0x9b,
0x6c, 0xc3, 0xec, 0x4e, 0x07, 0x9f, 0x38, 0xe5, 0x72, 0x9a, 0x6f, 0x4d, 0xd9, 0x1b, 0x9a, 0xb1,
0xca, 0xde, 0xa0, 0x6a, 0x16, 0x29, 0x3e, 0x44, 0x75, 0x3b, 0xd4, 0x15, 0x63, 0xb4, 0x7d, 0xe6,
0x53, 0x53, 0xf6, 0x55, 0xa8, 0xeb, 0x87, 0x55, 0xec, 0x82, 0xf1, 0x9a, 0xcd, 0x7c, 0xed, 0xd5,
0xed, 0x14, 0x2b, 0xca, 0x18, 0xc3, 0x6c, 0x19, 0x19, 0x63, 0x1f, 0xce, 0x4b, 0x97, 0xf8, 0x88,
0xff, 0x38, 0x33, 0x29, 0x79, 0x21, 0x7b, 0xd3, 0x61, 0x1f, 0xc2, 0xb2, 0x7a, 0xaf, 0xc6, 0x36,
0xcb, 0xdf, 0xdd, 0x75, 0x2f, 0x14, 0x70, 0xa9, 0x3d, 0x6e, 0x01, 0x64, 0x6f, 0xad, 0xb4, 0x9c,
0x15, 0x5e, 0x80, 0xe9, 0x45, 0x2c, 0x79, 0x98, 0x35, 0xa4, 0x97, 0x65, 0xf6, 0x53, 0x2e, 0xf6,
0x66, 0x46, 0x5f, 0xfa, 0xc8, 0xeb, 0x05, 0x0d, 0xba, 0x9b, 0xb4, 0x76, 0x6d, 0x46, 0x82, 0x1b,
0xf2, 0x33, 0x95, 0xd5, 0x7c, 0x07, 0x1a, 0xc6, 0xfb, 0x2d, 0xa6, 0x5a, 0x28, 0xbe, 0xfd, 0xea,
0x76, 0xcb, 0xaa, 0xe4, 0x70, 0xbf, 0x00, 0x2b, 0xd6, 0x43, 0x2c, 0x2d, 0x19, 0x65, 0xcf, 0xbc,
0xb4, 0x64, 0x94, 0xbf, 0xdd, 0xfa, 0x0a, 0x34, 0x8c, 0x67, 0x53, 0xcc, 0xc8, 0xe6, 0xca, 0x3d,
0x98, 0xd2, 0x23, 0x2a, 0x7b, 0x65, 0xb5, 0x41, 0xf3, 0x6d, 0xb9, 0x75, 0x9c, 0x2f, 0xa5, 0xf6,
0x22, 0x93, 0x7c, 0x1d, 0x5a, 0xf6, 0x43, 0x2a, 0x2d, 0x55, 0xa5, 0x4f, 0xb2, 0xb4, 0x54, 0xcd,
0x79, 0x7d, 0x25, 0x19, 0x72, 0x6b, 0x5d, 0x77, 0x72, 0xe3, 0x63, 0x79, 0xc5, 0xf3, 0x9c, 0x7d,
0x09, 0x55, 0x87, 0xcc, 0xb5, 0x66, 0xd9, 0xf3, 0x31, 0x3b, 0x23, 0x5b, 0x73, 0x7b, 0x21, 0x2d,
0xdb, 0x5d, 0xa3, 0xc6, 0x1b, 0x2c, 0x9b, 0x81, 0xb0, 0x07, 0x94, 0x73, 0x6d, 0xd8, 0x03, 0x33,
0x2d, 0xdb, 0xb0, 0x07, 0x56, 0x6a, 0x76, 0xde, 0x1e, 0xa4, 0x01, 0xb6, 0x11, 0xc2, 0x6a, 0x2e,
0x9d, 0x41, 0x0b, 0x4b, 0x79, 0xfe, 0x57, 0xf7, 0xd2, 0x8b, 0xb3, 0x20, 0x6c, 0x35, 0xa3, 0xd4,
0xcb, 0x0d, 0x95, 0xae, 0xf7, 0xeb, 0xd0, 0x34, 0x1f, 0xc0, 0x68, 0x0b, 0x51, 0xf2, 0x6c, 0x47,
0x5b, 0x88, 0xb2, 0x17, 0x33, 0x6a, 0x73, 0x59, 0xd3, 0xec, 0x06, 0x37, 0xd7, 0x7e, 0x2f, 0x90,
0xa9, 0xcc, 0xb2, 0x87, 0x10, 0x99, 0xca, 0x2c, 0x7d, 0x64, 0xa0, 0x36, 0x97, 0xad, 0x5b, 0x73,
0x11, 0xb1, 0x3d, 0xf6, 0x15, 0x58, 0x35, 0x72, 0x85, 0x0e, 0x67, 0x61, 0x5f, 0x33, 0x6a, 0x31,
0x93, 0xb4, 0x5b, 0xe6, 0x79, 0xba, 0x17, 0xa8, 0xfd, 0x35, 0xd7, 0x9a, 0x04, 0x32, 0xe9, 0x0e,
0x34, 0xcc, 0x3c, 0xa4, 0x17, 0xb4, 0x7b, 0xc1, 0xa8, 0x32, 0x93, 0x2a, 0x6f, 0x3a, 0xec, 0x8f,
0x1d, 0x68, 0x5a, 0x59, 0x3d, 0x56, 0x04, 0x3b, 0xd7, 0x4e, 0xc7, 0xac, 0x33, 0x1b, 0x72, 0x3d,
0x1a, 0xe4, 0xfe, 0xd6, 0x17, 0xac, 0x45, 0xf8, 0xd8, 0x3a, 0xc1, 0x5c, 0xcf, 0xbf, 0xa3, 0x7e,
0x9e, 0x27, 0x30, 0xb3, 0x6d, 0x9f, 0xdf, 0x74, 0xd8, 0x07, 0xe2, 0x9f, 0x02, 0x54, 0xc4, 0x82,
0x19, 0x8a, 0x34, 0xbf, 0x64, 0xe6, 0x33, 0xf9, 0x6b, 0xce, 0x4d, 0x87, 0x7d, 0x4d, 0x3c, 0x97,
0x96, 0xdf, 0xd2, 0xca, 0xbf, 0xea, 0xf7, 0xee, 0x15, 0x9a, 0xcd, 0x25, 0xf7, 0xa2, 0x35, 0x9b,
0xbc, 0x25, 0xb9, 0x25, 0x46, 0x27, 0x5f, 0xc1, 0x67, 0x2a, 0xb1, 0xf0, 0x32, 0x7e, 0xfe, 0x20,
0xc7, 0x62, 0x90, 0x92, 0xdc, 0x62, 0x8f, 0x57, 0x6c, 0xc6, 0xdd, 0xa2, 0xb1, 0x5e, 0x71, 0xdf,
0x9c, 0x3b, 0xd6, 0x1b, 0x74, 0x22, 0xc5, 0x11, 0x1f, 0x00, 0x64, 0x01, 0x33, 0x96, 0x8b, 0x1e,
0x69, 0xab, 0x50, 0x8c, 0xa9, 0xd9, 0x3c, 0xa8, 0x82, 0x4c, 0xd8, 0xe2, 0x57, 0x85, 0xa8, 0x4a,
0xfa, 0x44, 0x8f, 0xbe, 0x18, 0xf8, 0xea, 0x76, 0xcb, 0xaa, 0xca, 0x04, 0x55, 0xb5, 0xcf, 0x1e,
0xc3, 0xca, 0x7e, 0x14, 0x3d, 0x9d, 0x4e, 0x74, 0x48, 0xd7, 0x8e, 0xdf, 0xec, 0xf9, 0xc9, 0x49,
0x37, 0x37, 0x0b, 0xf7, 0x32, 0x35, 0xd5, 0x65, 0x1d, 0xa3, 0xa9, 0x1b, 0x1f, 0x67, 0xe1, 0xba,
0xe7, 0xcc, 0x87, 0x35, 0xed, 0x01, 0xe8, 0x81, 0x77, 0xed, 0x66, 0xcc, 0xa8, 0x59, 0xa1, 0x0b,
0xcb, 0x27, 0x53, 0xa3, 0xbd, 0x91, 0xa8, 0x36, 0x6f, 0x3a, 0xec, 0x00, 0x9a, 0x77, 0x78, 0x3f,
0x1a, 0x70, 0x19, 0x71, 0x59, 0xcf, 0x06, 0xae, 0x43, 0x35, 0xdd, 0x15, 0x0b, 0xb4, 0x75, 0xe2,
0xc4, 0x9f, 0xc5, 0xfc, 0x1b, 0x37, 0x3e, 0x96, 0xb1, 0x9c, 0xe7, 0x4a, 0x27, 0xaa, 0xf8, 0x93,
0xa5, 0x13, 0x73, 0x01, 0x2b, 0x4b, 0x27, 0x16, 0x02, 0x56, 0xd6, 0x52, 0xab, 0xf8, 0x17, 0x1b,
0xc1, 0x5a, 0x21, 0xc6, 0xa5, 0xfd, 0x88, 0x79, 0x91, 0xb1, 0xee, 0xe5, 0xf9, 0x04, 0x76, 0x6f,
0x5b, 0x76, 0x6f, 0x87, 0xb0, 0x72, 0x87, 0x8b, 0xc5, 0x12, 0xf7, 0xc6, 0xb9, 0x67, 0x59, 0xe6,
0x1d, 0x73, 0x5e, 0x29, 0x52, 0x9d, 0x6d, 0xf4, 0xe8, 0xd2, 0x96, 0x7d, 0x15, 0x1a, 0xf7, 0x78,
0xaa, 0x2e, 0x8a, 0xb5, 0x37, 0x96, 0xbb, 0x39, 0xee, 0x96, 0xdc, 0x33, 0xdb, 0x3c, 0x43, 0xad,
0xdd, 0xe0, 0x83, 0x21, 0x17, 0xea, 0xa9, 0x17, 0x0c, 0x9e, 0xb3, 0x5f, 0xa1, 0xc6, 0x75, 0x6e,
0xc9, 0xa6, 0x71, 0xbf, 0x68, 0x36, 0xbe, 0x9a, 0xc3, 0xcb, 0x5a, 0x0e, 0xa3, 0x01, 0x37, 0xcc,
0x7f, 0x08, 0x0d, 0x23, 0xf1, 0x49, 0x0b, 0x50, 0x31, 0x89, 0x4b, 0x0b, 0x50, 0x49, 0x9e, 0x94,
0x7b, 0x8d, 0xfa, 0x71, 0xd9, 0xe5, 0xac, 0x1f, 0x91, 0x1b, 0x95, 0xf5, 0x74, 0xe3, 0x63, 0x7f,
0x9c, 0x3e, 0x67, 0x4f, 0xe8, 0x89, 0x96, 0x79, 0x19, 0x9e, 0x79, 0x83, 0xf9, 0x7b, 0x73, 0xbd,
0x58, 0x46, 0x95, 0xed, 0x21, 0x8a, 0xae, 0xc8, 0x4b, 0xf8, 0x0c, 0xc0, 0x61, 0x1a, 0x4d, 0xee,
0xf8, 0x7c, 0x1c, 0x85, 0x99, 0xae, 0xcd, 0x2e, 0x7c, 0x33, 0xfd, 0x65, 0xdc, 0xfa, 0xb2, 0x27,
0x86, 0x3f, 0x6e, 0xe5, 0x12, 0x28, 0xe6, 0x9a, 0x7b, 0x27, 0xac, 0x17, 0xa4, 0xe4, 0x5e, 0xf8,
0xa6, 0x83, 0xde, 0x75, 0x16, 0x51, 0xd5, 0xde, 0x75, 0x21, 0x58, 0xab, 0xd5, 0x5e, 0x49, 0xf8,
0xf5, 0x00, 0xea, 0x59, 0x88, 0xee, 0x42, 0x96, 0xbc, 0x66, 0x05, 0xf4, 0xb4, 0x55, 0x2c, 0x04,
0xce, 0xdc, 0x36, 0x2d, 0x15, 0xb0, 0x65, 0x5c, 0x2a, 0x8a, 0x86, 0x05, 0xb0, 0x2e, 0x06, 0xa8,
0x4d, 0x3c, 0x5d, 0x61, 0xaa, 0x99, 0x94, 0x04, 0xaf, 0xb4, 0x34, 0x97, 0xc6, 0x7e, 0xac, 0x73,
0x36, 0x72, 0xab, 0xb8, 0x3e, 0x45, 0xd5, 0x3c, 0x86, 0xb5, 0x42, 0xe0, 0x42, 0x8b, 0xf4, 0xbc,
0x78, 0x91, 0x16, 0xe9, 0xb9, 0x31, 0x0f, 0xf7, 0x3c, 0x75, 0xb9, 0xea, 0x02, 0x76, 0x99, 0x9c,
0x05, 0x69, 0xff, 0xe4, 0x03, 0x67, 0xeb, 0x68, 0x91, 0xfe, 0x59, 0xec, 0x53, 0xff, 0x1b, 0x00,
0x00, 0xff, 0xff, 0x49, 0x74, 0xd2, 0x22, 0x8b, 0x4c, 0x00, 0x00,
// 6215 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x4d, 0x6c, 0x1c, 0xc9,
0x75, 0x56, 0x0f, 0x87, 0x3f, 0xf3, 0x66, 0x48, 0x0e, 0x8b, 0x14, 0x35, 0x9a, 0xdd, 0xd5, 0x6a,
0xdb, 0xc2, 0x4a, 0x66, 0x36, 0x92, 0x96, 0xb6, 0x37, 0xeb, 0xdd, 0xc4, 0x8e, 0x44, 0x52, 0xa2,
0x6c, 0xae, 0x44, 0x37, 0x25, 0x2b, 0xb1, 0x13, 0x8c, 0x9b, 0x33, 0xc5, 0x61, 0x5b, 0x33, 0xdd,
0xed, 0xee, 0x1e, 0x52, 0xe3, 0x8d, 0x00, 0xe7, 0x07, 0x39, 0xc5, 0x08, 0x82, 0xe4, 0xe2, 0x00,
0x41, 0x00, 0x07, 0x08, 0x9c, 0x43, 0x8e, 0xc9, 0xc5, 0x09, 0x90, 0x43, 0x2e, 0x09, 0x10, 0xe4,
0xe0, 0x93, 0x91, 0x63, 0x92, 0x43, 0x12, 0xe4, 0x12, 0x20, 0xd7, 0x20, 0x78, 0xaf, 0x7e, 0xba,
0xaa, 0xbb, 0x29, 0xca, 0x3f, 0xc9, 0x6d, 0xea, 0xab, 0xd7, 0xf5, 0xfb, 0xfe, 0xea, 0xd5, 0xab,
0x81, 0x46, 0x12, 0xf7, 0x6f, 0xc6, 0x49, 0x94, 0x45, 0x6c, 0x76, 0x14, 0x26, 0x71, 0xbf, 0xfb,
0xfa, 0x30, 0x8a, 0x86, 0x23, 0x7e, 0xcb, 0x8f, 0x83, 0x5b, 0x7e, 0x18, 0x46, 0x99, 0x9f, 0x05,
0x51, 0x98, 0x0a, 0x22, 0xf7, 0x6b, 0xb0, 0x74, 0x9f, 0x87, 0x07, 0x9c, 0x0f, 0x3c, 0xfe, 0x8d,
0x09, 0x4f, 0x33, 0xf6, 0x33, 0xb0, 0xe2, 0xf3, 0x6f, 0x72, 0x3e, 0xe8, 0xc5, 0x7e, 0x9a, 0xc6,
0xc7, 0x89, 0x9f, 0xf2, 0x8e, 0x73, 0xd5, 0xb9, 0xd1, 0xf2, 0xda, 0xa2, 0x62, 0x5f, 0xe3, 0xec,
0x2d, 0x68, 0xa5, 0x48, 0xca, 0xc3, 0x2c, 0x89, 0xe2, 0x69, 0xa7, 0x46, 0x74, 0x4d, 0xc4, 0x76,
0x04, 0xe4, 0x8e, 0x60, 0x59, 0xf7, 0x90, 0xc6, 0x51, 0x98, 0x72, 0x76, 0x1b, 0xd6, 0xfa, 0x41,
0x7c, 0xcc, 0x93, 0x1e, 0x7d, 0x3c, 0x0e, 0xf9, 0x38, 0x0a, 0x83, 0x7e, 0xc7, 0xb9, 0x3a, 0x73,
0xa3, 0xe1, 0x31, 0x51, 0x87, 0x5f, 0x7c, 0x24, 0x6b, 0xd8, 0x75, 0x58, 0xe6, 0xa1, 0xc0, 0xf9,
0x80, 0xbe, 0x92, 0x5d, 0x2d, 0xe5, 0x30, 0x7e, 0xe0, 0xfe, 0xad, 0x03, 0x2b, 0x0f, 0xc2, 0x20,
0x7b, 0xea, 0x8f, 0x46, 0x3c, 0x53, 0x73, 0xba, 0x0e, 0xcb, 0xa7, 0x04, 0xd0, 0x9c, 0x4e, 0xa3,
0x64, 0x20, 0x67, 0xb4, 0x24, 0xe0, 0x7d, 0x89, 0x9e, 0x39, 0xb2, 0xda, 0x99, 0x23, 0xab, 0x5c,
0xae, 0x99, 0x33, 0x96, 0xeb, 0x3a, 0x2c, 0x27, 0xbc, 0x1f, 0x9d, 0xf0, 0x64, 0xda, 0x3b, 0x0d,
0xc2, 0x41, 0x74, 0xda, 0xa9, 0x5f, 0x75, 0x6e, 0xcc, 0x7a, 0x4b, 0x0a, 0x7e, 0x4a, 0xa8, 0xbb,
0x06, 0xcc, 0x9c, 0x85, 0x58, 0x37, 0x77, 0x08, 0xab, 0x4f, 0xc2, 0x51, 0xd4, 0x7f, 0xf6, 0x63,
0xce, 0xae, 0xa2, 0xfb, 0x5a, 0x65, 0xf7, 0xeb, 0xb0, 0x66, 0x77, 0x24, 0x07, 0xc0, 0xe1, 0xe2,
0xd6, 0xb1, 0x1f, 0x0e, 0xb9, 0x6a, 0x52, 0x0d, 0xe1, 0x93, 0xd0, 0xee, 0x4f, 0x92, 0x84, 0x87,
0xa5, 0x31, 0x2c, 0x4b, 0x5c, 0x0f, 0xe2, 0x2d, 0x68, 0x85, 0xfc, 0x34, 0x27, 0x93, 0x2c, 0x13,
0xf2, 0x53, 0x45, 0xe2, 0x76, 0x60, 0xbd, 0xd8, 0x8d, 0x1c, 0xc0, 0x77, 0x6a, 0xd0, 0x7c, 0x9c,
0xf8, 0x61, 0xea, 0xf7, 0x91, 0x8b, 0x59, 0x07, 0xe6, 0xb3, 0xe7, 0xbd, 0x63, 0x3f, 0x3d, 0xa6,
0xee, 0x1a, 0x9e, 0x2a, 0xb2, 0x75, 0x98, 0xf3, 0xc7, 0xd1, 0x24, 0xcc, 0xa8, 0x83, 0x19, 0x4f,
0x96, 0xd8, 0x3b, 0xb0, 0x12, 0x4e, 0xc6, 0xbd, 0x7e, 0x14, 0x1e, 0x05, 0xc9, 0x58, 0xc8, 0x02,
0xed, 0xd7, 0xac, 0x57, 0xae, 0x60, 0x57, 0x00, 0x0e, 0x71, 0x1d, 0x44, 0x17, 0x75, 0xea, 0xc2,
0x40, 0x98, 0x0b, 0x2d, 0x59, 0xe2, 0xc1, 0xf0, 0x38, 0xeb, 0xcc, 0x52, 0x43, 0x16, 0x86, 0x6d,
0x64, 0xc1, 0x98, 0xf7, 0xd2, 0xcc, 0x1f, 0xc7, 0x9d, 0x39, 0x1a, 0x8d, 0x81, 0x50, 0x7d, 0x94,
0xf9, 0xa3, 0xde, 0x11, 0xe7, 0x69, 0x67, 0x5e, 0xd6, 0x6b, 0x84, 0xbd, 0x0d, 0x4b, 0x03, 0x9e,
0x66, 0x3d, 0x7f, 0x30, 0x48, 0x78, 0x9a, 0xf2, 0xb4, 0xb3, 0x40, 0xdc, 0x58, 0x40, 0x71, 0xd5,
0xee, 0xf3, 0xcc, 0x58, 0x9d, 0x54, 0xee, 0x8e, 0xbb, 0x07, 0xcc, 0x80, 0xb7, 0x79, 0xe6, 0x07,
0xa3, 0x94, 0xbd, 0x07, 0xad, 0xcc, 0x20, 0x26, 0xe9, 0x6b, 0x6e, 0xb2, 0x9b, 0xa4, 0x36, 0x6e,
0x1a, 0x1f, 0x78, 0x16, 0x9d, 0x7b, 0x1f, 0x16, 0xee, 0x71, 0xbe, 0x17, 0x8c, 0x83, 0x8c, 0xad,
0xc3, 0xec, 0x51, 0xf0, 0x9c, 0x8b, 0xcd, 0x9e, 0xd9, 0xbd, 0xe0, 0x89, 0x22, 0xeb, 0xc2, 0x7c,
0xcc, 0x93, 0x3e, 0x57, 0xcb, 0xbf, 0x7b, 0xc1, 0x53, 0xc0, 0xdd, 0x79, 0x98, 0x1d, 0xe1, 0xc7,
0xee, 0xf7, 0x6a, 0xd0, 0x3c, 0xe0, 0xa1, 0x66, 0x22, 0x06, 0x75, 0x9c, 0x92, 0x64, 0x1c, 0xfa,
0xcd, 0xde, 0x84, 0x26, 0x4d, 0x33, 0xcd, 0x92, 0x20, 0x1c, 0x52, 0x63, 0x0d, 0x0f, 0x10, 0x3a,
0x20, 0x84, 0xb5, 0x61, 0xc6, 0x1f, 0x67, 0xb4, 0x83, 0x33, 0x1e, 0xfe, 0x44, 0x06, 0x8b, 0xfd,
0xe9, 0x18, 0x79, 0x51, 0xef, 0x5a, 0xcb, 0x6b, 0x4a, 0x6c, 0x17, 0xb7, 0xed, 0x26, 0xac, 0x9a,
0x24, 0xaa, 0xf5, 0x59, 0x6a, 0x7d, 0xc5, 0xa0, 0x94, 0x9d, 0x5c, 0x87, 0x65, 0x45, 0x9f, 0x88,
0xc1, 0xd2, 0x3e, 0x36, 0xbc, 0x25, 0x09, 0xab, 0x29, 0xdc, 0x80, 0xf6, 0x51, 0x10, 0xfa, 0xa3,
0x5e, 0x7f, 0x94, 0x9d, 0xf4, 0x06, 0x7c, 0x94, 0xf9, 0xb4, 0xa3, 0xb3, 0xde, 0x12, 0xe1, 0x5b,
0xa3, 0xec, 0x64, 0x1b, 0x51, 0xf6, 0x0e, 0x34, 0x8e, 0x38, 0xef, 0xd1, 0x4a, 0x74, 0x16, 0xae,
0x3a, 0x37, 0x9a, 0x9b, 0xcb, 0x72, 0xe9, 0xd5, 0xea, 0x7a, 0x0b, 0x47, 0xf2, 0x97, 0xfb, 0x07,
0x0e, 0xb4, 0xc4, 0x52, 0x49, 0x15, 0x7a, 0x0d, 0x16, 0xd5, 0x88, 0x78, 0x92, 0x44, 0x89, 0x64,
0x7f, 0x1b, 0x64, 0x1b, 0xd0, 0x56, 0x40, 0x9c, 0xf0, 0x60, 0xec, 0x0f, 0xb9, 0x94, 0xb7, 0x12,
0xce, 0x36, 0xf3, 0x16, 0x93, 0x68, 0x92, 0x09, 0x25, 0xd6, 0xdc, 0x6c, 0xc9, 0x41, 0x79, 0x88,
0x79, 0x36, 0x89, 0xfb, 0x6d, 0x07, 0x18, 0x0e, 0xeb, 0x71, 0x24, 0xaa, 0xe5, 0x2a, 0x14, 0x77,
0xc0, 0x79, 0xe5, 0x1d, 0xa8, 0x9d, 0xb5, 0x03, 0xd7, 0x60, 0x8e, 0xba, 0x44, 0x59, 0x9d, 0x29,
0x0d, 0x4b, 0xd6, 0xb9, 0xdf, 0x75, 0xa0, 0x85, 0x9a, 0x23, 0xe4, 0xa3, 0xfd, 0x28, 0x08, 0x33,
0x76, 0x1b, 0xd8, 0xd1, 0x24, 0x1c, 0x04, 0xe1, 0xb0, 0x97, 0x3d, 0x0f, 0x06, 0xbd, 0xc3, 0x29,
0x36, 0x41, 0xe3, 0xd9, 0xbd, 0xe0, 0x55, 0xd4, 0xb1, 0x77, 0xa0, 0x6d, 0xa1, 0x69, 0x96, 0x88,
0x51, 0xed, 0x5e, 0xf0, 0x4a, 0x35, 0x28, 0xff, 0xd1, 0x24, 0x8b, 0x27, 0x59, 0x2f, 0x08, 0x07,
0xfc, 0x39, 0xad, 0xd9, 0xa2, 0x67, 0x61, 0x77, 0x97, 0xa0, 0x65, 0x7e, 0xe7, 0x7e, 0x0e, 0xda,
0x7b, 0xa8, 0x18, 0xc2, 0x20, 0x1c, 0xde, 0x11, 0xd2, 0x8b, 0xda, 0x2a, 0x9e, 0x1c, 0x3e, 0xe3,
0x53, 0xb9, 0x8f, 0xb2, 0x84, 0x22, 0x71, 0x1c, 0xa5, 0x99, 0x5c, 0x17, 0xfa, 0xed, 0xfe, 0xb3,
0x03, 0xcb, 0xb8, 0xe8, 0x1f, 0xf9, 0xe1, 0x54, 0xad, 0xf8, 0x1e, 0xb4, 0xb0, 0xa9, 0xc7, 0xd1,
0x1d, 0xa1, 0xf3, 0x84, 0x2c, 0xdf, 0x90, 0x8b, 0x54, 0xa0, 0xbe, 0x69, 0x92, 0xa2, 0x99, 0x9e,
0x7a, 0xd6, 0xd7, 0x28, 0x74, 0x99, 0x9f, 0x0c, 0x79, 0x46, 0xda, 0x50, 0x6a, 0x47, 0x10, 0xd0,
0x56, 0x14, 0x1e, 0xb1, 0xab, 0xd0, 0x4a, 0xfd, 0xac, 0x17, 0xf3, 0x84, 0x56, 0x8d, 0x04, 0x67,
0xc6, 0x83, 0xd4, 0xcf, 0xf6, 0x79, 0x72, 0x77, 0x9a, 0xf1, 0xee, 0xe7, 0x61, 0xa5, 0xd4, 0x0b,
0xca, 0x6a, 0x3e, 0x45, 0xfc, 0xc9, 0xd6, 0x60, 0xf6, 0xc4, 0x1f, 0x4d, 0xb8, 0x54, 0xd2, 0xa2,
0xf0, 0x41, 0xed, 0x7d, 0xc7, 0x7d, 0x1b, 0xda, 0xf9, 0xb0, 0x25, 0xd3, 0x33, 0xa8, 0xe3, 0x0a,
0xca, 0x06, 0xe8, 0xb7, 0xfb, 0xeb, 0x8e, 0x20, 0xdc, 0x8a, 0x02, 0xad, 0xf0, 0x90, 0x10, 0xf5,
0xa2, 0x22, 0xc4, 0xdf, 0x67, 0x1a, 0x84, 0x9f, 0x7c, 0xb2, 0xee, 0x75, 0x58, 0x31, 0x86, 0xf0,
0x92, 0xc1, 0x7e, 0xdb, 0x81, 0x95, 0x87, 0xfc, 0x54, 0xee, 0xba, 0x1a, 0xed, 0xfb, 0x50, 0xcf,
0xa6, 0xb1, 0x70, 0xb2, 0x96, 0x36, 0xaf, 0xc9, 0x4d, 0x2b, 0xd1, 0xdd, 0x94, 0xc5, 0xc7, 0xd3,
0x98, 0x7b, 0xf4, 0x85, 0xfb, 0x39, 0x68, 0x1a, 0x20, 0xbb, 0x04, 0xab, 0x4f, 0x1f, 0x3c, 0x7e,
0xb8, 0x73, 0x70, 0xd0, 0xdb, 0x7f, 0x72, 0xf7, 0x8b, 0x3b, 0xbf, 0xdc, 0xdb, 0xbd, 0x73, 0xb0,
0xdb, 0xbe, 0xc0, 0xd6, 0x81, 0x3d, 0xdc, 0x39, 0x78, 0xbc, 0xb3, 0x6d, 0xe1, 0x8e, 0xdb, 0x85,
0xce, 0x43, 0x7e, 0xfa, 0x34, 0xc8, 0x42, 0x9e, 0xa6, 0x76, 0x6f, 0xee, 0x4d, 0x60, 0xe6, 0x10,
0xe4, 0xac, 0x3a, 0x30, 0x2f, 0x2d, 0x8e, 0x32, 0xb8, 0xb2, 0xe8, 0xbe, 0x0d, 0xec, 0x20, 0x18,
0x86, 0x1f, 0xf1, 0x34, 0xf5, 0x87, 0x5a, 0x15, 0xb4, 0x61, 0x66, 0x9c, 0x0e, 0xa5, 0x06, 0xc0,
0x9f, 0xee, 0xa7, 0x60, 0xd5, 0xa2, 0x93, 0x0d, 0xbf, 0x0e, 0x8d, 0x34, 0x18, 0x86, 0x7e, 0x36,
0x49, 0xb8, 0x6c, 0x3a, 0x07, 0xdc, 0x7b, 0xb0, 0xf6, 0x65, 0x9e, 0x04, 0x47, 0xd3, 0xf3, 0x9a,
0xb7, 0xdb, 0xa9, 0x15, 0xdb, 0xd9, 0x81, 0x8b, 0x85, 0x76, 0x64, 0xf7, 0x82, 0x11, 0xe5, 0x76,
0x2d, 0x78, 0xa2, 0x60, 0x88, 0x65, 0xcd, 0x14, 0x4b, 0xf7, 0x09, 0xb0, 0xad, 0x28, 0x0c, 0x79,
0x3f, 0xdb, 0xe7, 0x3c, 0xc9, 0x3d, 0xe7, 0x9c, 0xeb, 0x9a, 0x9b, 0x97, 0xe4, 0x3e, 0x16, 0x65,
0x5d, 0xb2, 0x23, 0x83, 0x7a, 0xcc, 0x93, 0x31, 0x35, 0xbc, 0xe0, 0xd1, 0x6f, 0xf7, 0x22, 0xac,
0x5a, 0xcd, 0x4a, 0xa7, 0xe7, 0x5d, 0xb8, 0xb8, 0x1d, 0xa4, 0xfd, 0x72, 0x87, 0x1d, 0x98, 0x8f,
0x27, 0x87, 0xbd, 0x5c, 0xa6, 0x54, 0x11, 0x7d, 0x81, 0xe2, 0x27, 0xb2, 0xb1, 0xdf, 0x76, 0xa0,
0xbe, 0xfb, 0x78, 0x6f, 0x8b, 0x75, 0x61, 0x21, 0x08, 0xfb, 0xd1, 0x18, 0xd5, 0xae, 0x98, 0xb4,
0x2e, 0x9f, 0x29, 0x2b, 0xaf, 0x43, 0x83, 0xb4, 0x35, 0xba, 0x37, 0xd2, 0xc9, 0xcd, 0x01, 0x74,
0xad, 0xf8, 0xf3, 0x38, 0x48, 0xc8, 0x77, 0x52, 0x1e, 0x51, 0x9d, 0x34, 0x62, 0xb9, 0xc2, 0xfd,
0x9f, 0x3a, 0xcc, 0x4b, 0x5d, 0x4d, 0xfd, 0xf5, 0xb3, 0xe0, 0x84, 0xcb, 0x91, 0xc8, 0x12, 0x5a,
0xb9, 0x84, 0x8f, 0xa3, 0x8c, 0xf7, 0xac, 0x6d, 0xb0, 0x41, 0xa4, 0xea, 0x8b, 0x86, 0x7a, 0x31,
0x6a, 0x7d, 0x1a, 0x59, 0xc3, 0xb3, 0x41, 0x5c, 0x2c, 0x04, 0x7a, 0xc1, 0x80, 0xc6, 0x54, 0xf7,
0x54, 0x11, 0x57, 0xa2, 0xef, 0xc7, 0x7e, 0x3f, 0xc8, 0xa6, 0x52, 0xb8, 0x75, 0x19, 0xdb, 0x1e,
0x45, 0x7d, 0x7f, 0xd4, 0x3b, 0xf4, 0x47, 0x7e, 0xd8, 0xe7, 0xd2, 0x7f, 0xb3, 0x41, 0x74, 0xd1,
0xe4, 0x90, 0x14, 0x99, 0x70, 0xe3, 0x0a, 0x28, 0xba, 0x7a, 0xfd, 0x68, 0x3c, 0x0e, 0x32, 0xf4,
0xec, 0xc8, 0xea, 0xcf, 0x78, 0x06, 0x42, 0x33, 0x11, 0xa5, 0x53, 0xb1, 0x7a, 0x0d, 0xd1, 0x9b,
0x05, 0x62, 0x2b, 0xe8, 0x3a, 0xa0, 0x42, 0x7a, 0x76, 0xda, 0x01, 0xd1, 0x4a, 0x8e, 0xe0, 0x3e,
0x4c, 0xc2, 0x94, 0x67, 0xd9, 0x88, 0x0f, 0xf4, 0x80, 0x9a, 0x44, 0x56, 0xae, 0x60, 0xb7, 0x61,
0x55, 0x38, 0x9b, 0xa9, 0x9f, 0x45, 0xe9, 0x71, 0x90, 0xf6, 0x52, 0x74, 0xdb, 0x5a, 0x44, 0x5f,
0x55, 0xc5, 0xde, 0x87, 0x4b, 0x05, 0x38, 0xe1, 0x7d, 0x1e, 0x9c, 0xf0, 0x41, 0x67, 0x91, 0xbe,
0x3a, 0xab, 0x9a, 0x5d, 0x85, 0x26, 0xfa, 0xd8, 0x93, 0x78, 0xe0, 0xa3, 0x1d, 0x5e, 0xa2, 0x7d,
0x30, 0x21, 0xf6, 0x2e, 0x2c, 0xc6, 0x5c, 0x18, 0xcb, 0xe3, 0x6c, 0xd4, 0x4f, 0x3b, 0xcb, 0x64,
0xc9, 0x9a, 0x52, 0x98, 0x90, 0x73, 0x3d, 0x9b, 0x02, 0x99, 0xb2, 0x9f, 0x92, 0xb3, 0xe5, 0x4f,
0x3b, 0x6d, 0x62, 0xb7, 0x1c, 0x20, 0x19, 0x49, 0x82, 0x13, 0x3f, 0xe3, 0x9d, 0x15, 0xe2, 0x2d,
0x55, 0x74, 0xff, 0xd8, 0x81, 0xd5, 0xbd, 0x20, 0xcd, 0x24, 0x13, 0x6a, 0x75, 0xfc, 0x26, 0x34,
0x05, 0xfb, 0xf5, 0xa2, 0x70, 0x34, 0x95, 0x1c, 0x09, 0x02, 0x7a, 0x14, 0x8e, 0xa6, 0xec, 0x13,
0xb0, 0x18, 0x84, 0x26, 0x89, 0x90, 0xe1, 0x96, 0x02, 0x89, 0xe8, 0x4d, 0x68, 0xc6, 0x93, 0xc3,
0x51, 0xd0, 0x17, 0x24, 0x33, 0xa2, 0x15, 0x01, 0x11, 0x01, 0x3a, 0x49, 0x62, 0x24, 0x82, 0xa2,
0x4e, 0x14, 0x4d, 0x89, 0x21, 0x89, 0x7b, 0x17, 0xd6, 0xec, 0x01, 0x4a, 0x65, 0xb5, 0x01, 0x0b,
0x92, 0xb7, 0xd3, 0x4e, 0x93, 0xd6, 0x67, 0x49, 0xae, 0x8f, 0x24, 0xf5, 0x74, 0xbd, 0xfb, 0xa7,
0x75, 0x58, 0x95, 0xe8, 0xd6, 0x28, 0x4a, 0xf9, 0xc1, 0x64, 0x3c, 0xf6, 0x93, 0x0a, 0xa1, 0x71,
0xce, 0x11, 0x9a, 0x9a, 0x2d, 0x34, 0xc8, 0xca, 0xc7, 0x7e, 0x10, 0x0a, 0x0f, 0x4f, 0x48, 0x9c,
0x81, 0xb0, 0x1b, 0xb0, 0xdc, 0x1f, 0x45, 0xa9, 0xf0, 0x7a, 0xcc, 0xe3, 0x53, 0x11, 0x2e, 0x0b,
0xf9, 0x6c, 0x95, 0x90, 0x9b, 0x42, 0x3a, 0x57, 0x10, 0x52, 0x17, 0x5a, 0xd8, 0x28, 0x57, 0x3a,
0x67, 0x5e, 0x78, 0x61, 0x26, 0x86, 0xe3, 0x29, 0x8a, 0x84, 0x90, 0xbf, 0xe5, 0x2a, 0x81, 0xc0,
0xd3, 0x19, 0xea, 0x34, 0x83, 0xba, 0x21, 0x05, 0xa2, 0x5c, 0xc5, 0xee, 0x01, 0x88, 0xbe, 0xc8,
0x8c, 0x03, 0x99, 0xf1, 0xb7, 0xed, 0x1d, 0x31, 0xd7, 0xfe, 0x26, 0x16, 0x26, 0x09, 0x27, 0x43,
0x6e, 0x7c, 0xe9, 0x7e, 0x0c, 0x4d, 0xa3, 0x8a, 0x5d, 0x84, 0x95, 0xad, 0x47, 0x8f, 0xf6, 0x77,
0xbc, 0x3b, 0x8f, 0x1f, 0x7c, 0x79, 0xa7, 0xb7, 0xb5, 0xf7, 0xe8, 0x60, 0xa7, 0x7d, 0x01, 0xe1,
0xbd, 0x47, 0x5b, 0x77, 0xf6, 0x7a, 0xf7, 0x1e, 0x79, 0x5b, 0x0a, 0x76, 0xd0, 0xc6, 0x7b, 0x3b,
0x1f, 0x3d, 0x7a, 0xbc, 0x63, 0xe1, 0x35, 0xd6, 0x86, 0xd6, 0x5d, 0x6f, 0xe7, 0xce, 0xd6, 0xae,
0x44, 0x66, 0xd8, 0x1a, 0xb4, 0xef, 0x3d, 0x79, 0xb8, 0xfd, 0xe0, 0xe1, 0xfd, 0xde, 0xd6, 0x9d,
0x87, 0x5b, 0x3b, 0x7b, 0x3b, 0xdb, 0xed, 0xba, 0xfb, 0x37, 0x0e, 0x5c, 0xa4, 0x51, 0x0e, 0x8a,
0x02, 0x71, 0x15, 0x9a, 0xfd, 0x28, 0x8a, 0x39, 0xea, 0x6f, 0xad, 0xa2, 0x4d, 0x08, 0x99, 0x5d,
0x28, 0xc4, 0xa3, 0x28, 0xe9, 0x73, 0x29, 0x0f, 0x40, 0xd0, 0x3d, 0x44, 0x90, 0xd9, 0xe5, 0x76,
0x0a, 0x0a, 0x21, 0x0e, 0x4d, 0x81, 0x09, 0x92, 0x75, 0x98, 0x3b, 0x4c, 0xb8, 0xdf, 0x3f, 0x96,
0x92, 0x20, 0x4b, 0xec, 0x93, 0xb9, 0x43, 0xde, 0xc7, 0xd5, 0x1e, 0xf1, 0x01, 0x71, 0xc8, 0x82,
0xb7, 0x2c, 0xf1, 0x2d, 0x09, 0xbb, 0xfb, 0xb0, 0x5e, 0x9c, 0x81, 0x94, 0x98, 0xf7, 0x0c, 0x89,
0x11, 0xbe, 0x71, 0xf7, 0xec, 0xfd, 0x31, 0xa4, 0xe7, 0xdf, 0x1d, 0xa8, 0xa3, 0xf9, 0x3c, 0xdb,
0xd4, 0x9a, 0x1e, 0xd1, 0x8c, 0xe5, 0x11, 0x51, 0xf0, 0x00, 0xcf, 0x14, 0x42, 0xa1, 0x0a, 0xa3,
0x63, 0x20, 0x79, 0x7d, 0xc2, 0xfb, 0x27, 0x34, 0x27, 0x5d, 0x8f, 0x08, 0xb2, 0x3c, 0x3a, 0x9e,
0xf4, 0xb5, 0x64, 0x79, 0x55, 0x56, 0x75, 0xf4, 0xe5, 0x7c, 0x5e, 0x47, 0xdf, 0x75, 0x60, 0x3e,
0x08, 0x0f, 0xa3, 0x49, 0x38, 0x20, 0x16, 0x5f, 0xf0, 0x54, 0x11, 0x55, 0x65, 0x4c, 0xa2, 0x17,
0x8c, 0x15, 0x43, 0xe7, 0x80, 0xcb, 0xf0, 0x60, 0x92, 0x92, 0xbb, 0xa0, 0xbd, 0xc0, 0xf7, 0x60,
0xc5, 0xc0, 0xe4, 0x6a, 0xbe, 0x05, 0xb3, 0x31, 0x02, 0x72, 0x29, 0x95, 0x72, 0x26, 0x3f, 0x43,
0xd4, 0xb8, 0x6d, 0x58, 0xba, 0xcf, 0xb3, 0x07, 0xe1, 0x51, 0xa4, 0x5a, 0xfa, 0xe1, 0x0c, 0x2c,
0x6b, 0x48, 0x36, 0x74, 0x03, 0x96, 0x83, 0x01, 0x0f, 0xb3, 0x20, 0x9b, 0xf6, 0xac, 0xf3, 0x4f,
0x11, 0x46, 0xff, 0xcc, 0x1f, 0x05, 0x7e, 0x2a, 0x3d, 0x00, 0x51, 0x60, 0x9b, 0xb0, 0x86, 0xc6,
0x43, 0xd9, 0x03, 0xbd, 0xc5, 0xe2, 0x18, 0x56, 0x59, 0x87, 0xe2, 0x8d, 0xb8, 0xd4, 0xdf, 0xfa,
0x13, 0xe1, 0xa7, 0x54, 0x55, 0xe1, 0xaa, 0x89, 0x96, 0x70, 0xca, 0xb3, 0xc2, 0xc0, 0x68, 0xa0,
0x14, 0x02, 0x9a, 0x13, 0xca, 0xa7, 0x18, 0x02, 0x32, 0xc2, 0x48, 0x0b, 0xa5, 0x30, 0x12, 0x2a,
0xa7, 0x69, 0xd8, 0xe7, 0x83, 0x5e, 0x16, 0xf5, 0x48, 0x89, 0xd2, 0xee, 0x2c, 0x78, 0x45, 0x98,
0x02, 0x5e, 0x3c, 0xcd, 0x42, 0x9e, 0x91, 0x9e, 0x59, 0xf0, 0x54, 0x11, 0xe5, 0x87, 0x48, 0x84,
0x49, 0x68, 0x78, 0xb2, 0x84, 0x8e, 0xe6, 0x24, 0x09, 0xd2, 0x4e, 0x8b, 0x50, 0xfa, 0xcd, 0x3e,
0x0d, 0x17, 0x0f, 0x79, 0x9a, 0xf5, 0x8e, 0xb9, 0x3f, 0xe0, 0x09, 0xed, 0xbe, 0x88, 0x4e, 0x09,
0xfb, 0x5d, 0x5d, 0x89, 0x7d, 0x9f, 0xf0, 0x24, 0x0d, 0xa2, 0x90, 0x2c, 0x77, 0xc3, 0x53, 0x45,
0xf7, 0x9b, 0xe4, 0x0f, 0xeb, 0xb8, 0xd9, 0x13, 0x32, 0xe6, 0xec, 0x35, 0x68, 0x88, 0x39, 0xa6,
0xc7, 0xbe, 0x74, 0xd1, 0x17, 0x08, 0x38, 0x38, 0xf6, 0x51, 0x23, 0x58, 0xcb, 0x26, 0x02, 0x91,
0x4d, 0xc2, 0x76, 0xc5, 0xaa, 0x5d, 0x83, 0x25, 0x15, 0x91, 0x4b, 0x7b, 0x23, 0x7e, 0x94, 0xa9,
0xe3, 0x75, 0x38, 0x19, 0x63, 0x77, 0xe9, 0x1e, 0x3f, 0xca, 0xdc, 0x87, 0xb0, 0x22, 0x65, 0xf8,
0x51, 0xcc, 0x55, 0xd7, 0x9f, 0xad, 0xb2, 0x6e, 0xcd, 0xcd, 0x55, 0x5b, 0xe8, 0x29, 0x46, 0x50,
0x30, 0x79, 0xae, 0x07, 0xcc, 0xd4, 0x09, 0xb2, 0x41, 0x69, 0x62, 0xd4, 0x21, 0x5e, 0x4e, 0xc7,
0xc2, 0x70, 0x7d, 0xd2, 0x49, 0xbf, 0x8f, 0x9a, 0x40, 0x68, 0x40, 0x55, 0x74, 0xbf, 0xe7, 0xc0,
0x2a, 0xb5, 0xa6, 0xec, 0xb3, 0x3e, 0xf9, 0xbd, 0xfa, 0x30, 0x5b, 0x7d, 0x33, 0xb0, 0xb1, 0x06,
0xb3, 0xa6, 0xae, 0x15, 0x85, 0x1f, 0xfd, 0x2c, 0x5b, 0x2f, 0x9d, 0x65, 0x7f, 0xe8, 0xc0, 0x8a,
0x50, 0x86, 0x99, 0x9f, 0x4d, 0x52, 0x39, 0xfd, 0x9f, 0x87, 0x45, 0x61, 0xa7, 0xa4, 0x38, 0xc9,
0x81, 0xae, 0x69, 0xc9, 0x27, 0x54, 0x10, 0xef, 0x5e, 0xf0, 0x6c, 0x62, 0xf6, 0x79, 0x68, 0x99,
0x61, 0x55, 0x1a, 0x73, 0x73, 0xf3, 0xb2, 0x9a, 0x65, 0x89, 0x73, 0x76, 0x2f, 0x78, 0xd6, 0x07,
0xec, 0x43, 0x72, 0x36, 0xc2, 0x1e, 0x35, 0x2b, 0x03, 0x53, 0x97, 0x2b, 0x14, 0xb8, 0xfe, 0xdc,
0x20, 0xbf, 0xbb, 0x00, 0x73, 0xc2, 0xbb, 0x74, 0xef, 0xc3, 0xa2, 0x35, 0x52, 0xeb, 0x8c, 0xde,
0x12, 0x67, 0xf4, 0x52, 0x48, 0xa7, 0x56, 0x0e, 0xe9, 0xb8, 0xff, 0x5a, 0x03, 0x86, 0xdc, 0x56,
0xd8, 0x4e, 0x74, 0x6f, 0xa3, 0x81, 0x75, 0x58, 0x69, 0x79, 0x26, 0xc4, 0x6e, 0x02, 0x33, 0x8a,
0x2a, 0xea, 0x25, 0xec, 0x46, 0x45, 0x0d, 0x2a, 0x38, 0x69, 0x58, 0xa5, 0x09, 0x94, 0xc7, 0x32,
0xb1, 0x6f, 0x95, 0x75, 0x68, 0x1a, 0xe2, 0x49, 0x7a, 0x8c, 0xee, 0xb7, 0x3a, 0xce, 0xa8, 0x72,
0x91, 0x41, 0xe6, 0xce, 0x65, 0x90, 0xf9, 0x22, 0x83, 0x98, 0x0e, 0xf5, 0x82, 0xe5, 0x50, 0xa3,
0x23, 0x37, 0x46, 0xf7, 0x2f, 0x1b, 0xf5, 0x7b, 0x63, 0xec, 0x5d, 0x9e, 0x5e, 0x2c, 0x90, 0x6d,
0x40, 0x5b, 0xba, 0x02, 0xb9, 0xd7, 0x0e, 0xb4, 0xc6, 0x25, 0xdc, 0xfd, 0x81, 0x03, 0x6d, 0x5c,
0x67, 0x8b, 0x17, 0x3f, 0x00, 0x12, 0x85, 0x57, 0x64, 0x45, 0x8b, 0xf6, 0x27, 0xe7, 0xc4, 0xf7,
0xa1, 0x41, 0x0d, 0x46, 0x31, 0x0f, 0x25, 0x23, 0x76, 0x6c, 0x46, 0xcc, 0xb5, 0xd0, 0xee, 0x05,
0x2f, 0x27, 0x36, 0xd8, 0xf0, 0x1f, 0x1d, 0x68, 0xca, 0x61, 0xfe, 0xd8, 0x27, 0xf1, 0x2e, 0x2c,
0x20, 0x47, 0x1a, 0xc7, 0x5d, 0x5d, 0x46, 0x6b, 0x32, 0xf6, 0xb3, 0x49, 0x82, 0xe6, 0xd3, 0x3a,
0x85, 0x17, 0x61, 0xb4, 0x85, 0xa4, 0x70, 0xd3, 0x5e, 0x16, 0x8c, 0x7a, 0xaa, 0x56, 0xde, 0x62,
0x54, 0x55, 0xa1, 0xde, 0x49, 0x33, 0x7f, 0xc8, 0xa5, 0x99, 0x13, 0x05, 0xb7, 0x03, 0xeb, 0x72,
0x42, 0x05, 0xdf, 0xd1, 0xfd, 0xeb, 0x16, 0x5c, 0x2a, 0x55, 0xe9, 0x6b, 0x40, 0x79, 0xbc, 0x1c,
0x05, 0xe3, 0xc3, 0x48, 0x3b, 0xda, 0x8e, 0x79, 0xf2, 0xb4, 0xaa, 0xd8, 0x10, 0x2e, 0x2a, 0x7b,
0x8e, 0x6b, 0x9a, 0x5b, 0xef, 0x1a, 0x39, 0x22, 0xef, 0xda, 0x3c, 0x50, 0xec, 0x50, 0xe1, 0xa6,
0xe4, 0x56, 0xb7, 0xc7, 0x8e, 0xa1, 0xa3, 0x1d, 0x07, 0xa9, 0xe2, 0x0d, 0xe7, 0x02, 0xfb, 0x7a,
0xe7, 0x9c, 0xbe, 0x2c, 0x47, 0xd4, 0x3b, 0xb3, 0x35, 0x36, 0x85, 0x2b, 0xaa, 0x8e, 0x74, 0x78,
0xb9, 0xbf, 0xfa, 0x2b, 0xcd, 0x8d, 0x9c, 0x68, 0xbb, 0xd3, 0x73, 0x1a, 0x66, 0x5f, 0x87, 0xf5,
0x53, 0x3f, 0xc8, 0xd4, 0xb0, 0x0c, 0x67, 0x68, 0x96, 0xba, 0xdc, 0x3c, 0xa7, 0xcb, 0xa7, 0xe2,
0x63, 0xcb, 0xb0, 0x9d, 0xd1, 0x62, 0xf7, 0xef, 0x1d, 0x58, 0xb2, 0xdb, 0x41, 0x36, 0x95, 0x02,
0xaf, 0x14, 0x9f, 0x72, 0xfe, 0x0a, 0x70, 0xf9, 0xac, 0x5a, 0xab, 0x3a, 0xab, 0x9a, 0x27, 0xc4,
0x99, 0xf3, 0xc2, 0x38, 0xf5, 0x57, 0x0b, 0xe3, 0xcc, 0x56, 0x85, 0x71, 0xba, 0xff, 0xed, 0x00,
0x2b, 0xf3, 0x12, 0xbb, 0x2f, 0x0e, 0xcb, 0x21, 0x1f, 0x49, 0x9d, 0xf4, 0xb3, 0xaf, 0xc6, 0x8f,
0x6a, 0xed, 0xd4, 0xd7, 0x28, 0x18, 0xa6, 0xd2, 0x31, 0x5d, 0xa4, 0x45, 0xaf, 0xaa, 0xaa, 0x10,
0x58, 0xaa, 0x9f, 0x1f, 0x58, 0x9a, 0x3d, 0x3f, 0xb0, 0x34, 0x57, 0x0c, 0x2c, 0x75, 0x7f, 0xcb,
0x81, 0xd5, 0x8a, 0x4d, 0xff, 0xe9, 0x4d, 0x1c, 0xb7, 0xc9, 0xd2, 0x05, 0x35, 0xb9, 0x4d, 0x26,
0xd8, 0xfd, 0x35, 0x58, 0xb4, 0x18, 0xfd, 0xa7, 0xd7, 0x7f, 0xd1, 0xcb, 0x13, 0x7c, 0x66, 0x61,
0xdd, 0xff, 0xa8, 0x01, 0x2b, 0x0b, 0xdb, 0xff, 0xeb, 0x18, 0xca, 0xeb, 0x34, 0x53, 0xb1, 0x4e,
0xff, 0xa7, 0x76, 0xe0, 0x1d, 0x58, 0x91, 0x39, 0x03, 0x46, 0x88, 0x44, 0x70, 0x4c, 0xb9, 0x02,
0xfd, 0x5c, 0x3b, 0xaa, 0xb7, 0x60, 0xdd, 0x35, 0x1b, 0xc6, 0xb0, 0x10, 0xdc, 0x73, 0xd7, 0x61,
0x4d, 0xe4, 0x20, 0xdc, 0x15, 0x4d, 0x29, 0xbb, 0xf2, 0x47, 0x0e, 0x5c, 0x2c, 0x54, 0xe4, 0x37,
0xa3, 0xc2, 0x74, 0xd8, 0xf6, 0xc4, 0x06, 0x71, 0xfc, 0x52, 0x8e, 0x8c, 0xf1, 0x0b, 0x6e, 0x2b,
0x57, 0xe0, 0xfa, 0x4c, 0xc2, 0x32, 0xbd, 0x58, 0xf5, 0xaa, 0x2a, 0xf7, 0x92, 0xc8, 0x94, 0x08,
0xf9, 0xa8, 0x30, 0xf0, 0x23, 0x91, 0xdb, 0x60, 0x56, 0xe4, 0x57, 0x2b, 0xf6, 0x90, 0x55, 0x11,
0xbd, 0x40, 0xcb, 0x4c, 0xd9, 0xe3, 0xad, 0xac, 0x73, 0xff, 0xd2, 0x01, 0xf6, 0xa5, 0x09, 0x4f,
0xa6, 0x74, 0x43, 0xaa, 0x63, 0x39, 0x97, 0x8a, 0x71, 0x8c, 0xb9, 0x78, 0x72, 0xf8, 0x45, 0x3e,
0x55, 0xf7, 0xe8, 0xb5, 0xfc, 0x1e, 0xfd, 0x0d, 0x00, 0x3c, 0x7e, 0xe9, 0x6b, 0x57, 0xe4, 0x05,
0x3c, 0xf7, 0x8a, 0x06, 0x2b, 0xaf, 0xba, 0xeb, 0xe7, 0x5f, 0x75, 0xcf, 0x9e, 0x77, 0xd5, 0xfd,
0x21, 0xac, 0x5a, 0xe3, 0xd6, 0xdb, 0xaa, 0x2e, 0x80, 0x9d, 0x97, 0x5c, 0x00, 0xff, 0xa7, 0x03,
0x33, 0xbb, 0x51, 0x6c, 0xc6, 0x2d, 0x1d, 0x3b, 0x6e, 0x29, 0x6d, 0x49, 0x4f, 0x9b, 0x0a, 0xa9,
0x62, 0x2c, 0x90, 0x6d, 0xc0, 0x92, 0x3f, 0xce, 0xf0, 0xd8, 0x7d, 0x14, 0x25, 0xa7, 0x7e, 0x32,
0x10, 0x7b, 0x7d, 0xb7, 0xd6, 0x71, 0xbc, 0x42, 0x0d, 0x5b, 0x83, 0x19, 0xad, 0x74, 0x89, 0x00,
0x8b, 0xe8, 0xb8, 0xd1, 0x9d, 0xc7, 0x54, 0x46, 0x0c, 0x64, 0x09, 0x59, 0xc9, 0xfe, 0x5e, 0xb8,
0xca, 0x42, 0x74, 0xaa, 0xaa, 0xd0, 0xae, 0xe1, 0xf2, 0x11, 0x99, 0x0c, 0xf5, 0xa8, 0xb2, 0xfb,
0x6f, 0x0e, 0xcc, 0xd2, 0x0a, 0xa0, 0xb0, 0x0b, 0x0e, 0xd7, 0x01, 0x4a, 0x9a, 0xf9, 0xa2, 0x57,
0x84, 0x99, 0x6b, 0xe5, 0x9b, 0xd4, 0xf4, 0xb0, 0xcd, 0x9c, 0x93, 0xab, 0xd0, 0x10, 0x25, 0x9d,
0x5b, 0x41, 0x24, 0x39, 0xc8, 0xae, 0x40, 0xfd, 0x38, 0x8a, 0x95, 0x77, 0x02, 0x2a, 0x3e, 0x1f,
0xc5, 0x1e, 0xe1, 0xf9, 0x78, 0xb0, 0x3d, 0x31, 0x78, 0x61, 0x73, 0x8a, 0x30, 0x5a, 0x5d, 0xdd,
0xac, 0xb9, 0x18, 0x05, 0xd4, 0xdd, 0x80, 0xe5, 0x87, 0xd1, 0x80, 0x1b, 0x31, 0xa5, 0x33, 0xb9,
0xd9, 0xfd, 0x96, 0x03, 0x0b, 0x8a, 0x98, 0xdd, 0x80, 0x3a, 0xba, 0x12, 0x85, 0x83, 0x82, 0xbe,
0x97, 0x43, 0x3a, 0x8f, 0x28, 0x50, 0xf7, 0x52, 0xc4, 0x21, 0x77, 0x2b, 0x55, 0xbc, 0x21, 0xf7,
0x9a, 0xf4, 0x70, 0x0b, 0xce, 0x46, 0x01, 0x75, 0xff, 0xcc, 0x81, 0x45, 0xab, 0x0f, 0x3c, 0x1e,
0x8e, 0xfc, 0x34, 0x93, 0x77, 0x1d, 0x72, 0x7b, 0x4c, 0xc8, 0x8c, 0x32, 0xd6, 0xec, 0x28, 0xa3,
0x8e, 0x7f, 0xcd, 0x98, 0xf1, 0xaf, 0xdb, 0xd0, 0xc8, 0xb3, 0x82, 0xea, 0x96, 0x4e, 0xc5, 0x1e,
0xd5, 0x8d, 0x63, 0x4e, 0x84, 0xed, 0xf4, 0xa3, 0x51, 0x94, 0xc8, 0x20, 0xbb, 0x28, 0xb8, 0x1f,
0x42, 0xd3, 0xa0, 0xc7, 0x61, 0x84, 0x3c, 0x3b, 0x8d, 0x92, 0x67, 0x2a, 0xd8, 0x29, 0x8b, 0xfa,
0x62, 0xbd, 0x96, 0x5f, 0xac, 0xbb, 0x7f, 0xee, 0xc0, 0x22, 0xf2, 0x60, 0x10, 0x0e, 0xf7, 0xa3,
0x51, 0xd0, 0x9f, 0xd2, 0xde, 0x2b, 0x76, 0x93, 0x9a, 0x41, 0xf1, 0xa2, 0x0d, 0x23, 0x6f, 0xab,
0xd3, 0xa1, 0x14, 0x44, 0x5d, 0x46, 0x49, 0x45, 0x3e, 0x3f, 0xf4, 0x53, 0xc9, 0xfc, 0xd2, 0xc8,
0x59, 0x20, 0xca, 0x13, 0x02, 0x89, 0x9f, 0xf1, 0xde, 0x38, 0x18, 0x8d, 0x02, 0x41, 0x2b, 0x5c,
0xa0, 0xaa, 0x2a, 0xf7, 0xfb, 0x35, 0x68, 0x4a, 0x15, 0xbc, 0x33, 0x18, 0x72, 0x79, 0x93, 0x41,
0x8e, 0xa4, 0x56, 0x17, 0x06, 0xa2, 0xea, 0x2d, 0xd7, 0xd3, 0x40, 0x8a, 0xdb, 0x3a, 0x53, 0xde,
0xd6, 0xd7, 0xa1, 0x81, 0xec, 0xf5, 0x2e, 0xf9, 0xb8, 0xe2, 0x16, 0x24, 0x07, 0x54, 0xed, 0x26,
0xd5, 0xce, 0xe6, 0xb5, 0x04, 0xbc, 0xf4, 0xde, 0xe3, 0x7d, 0x68, 0xc9, 0x66, 0x68, 0xdd, 0x49,
0x3b, 0xe4, 0x0c, 0x6e, 0xed, 0x89, 0x67, 0x51, 0xaa, 0x2f, 0x37, 0xd5, 0x97, 0x0b, 0xe7, 0x7d,
0xa9, 0x28, 0xe9, 0x8e, 0x5a, 0xac, 0xcd, 0xfd, 0xc4, 0x8f, 0x8f, 0x95, 0x59, 0x1b, 0xe8, 0xc4,
0x1b, 0x82, 0xd9, 0x06, 0xcc, 0xe2, 0x67, 0x4a, 0x5b, 0x57, 0x0b, 0x9d, 0x20, 0x61, 0x37, 0x60,
0x96, 0x0f, 0x86, 0x5c, 0x9d, 0xe2, 0x98, 0x7d, 0x9e, 0xc6, 0x3d, 0xf2, 0x04, 0x01, 0xaa, 0x00,
0x44, 0x0b, 0x2a, 0xc0, 0xd6, 0xf4, 0x73, 0x58, 0x7c, 0x30, 0x70, 0xd7, 0x80, 0x3d, 0x14, 0x5c,
0x6b, 0x46, 0xa1, 0x7f, 0x73, 0x06, 0x9a, 0x06, 0x8c, 0xd2, 0x3c, 0xc4, 0x01, 0xf7, 0x06, 0x81,
0x3f, 0xe6, 0x19, 0x4f, 0x24, 0xa7, 0x16, 0x50, 0xa4, 0xf3, 0x4f, 0x86, 0xbd, 0x68, 0x92, 0xf5,
0x06, 0x7c, 0x98, 0x70, 0x61, 0x7c, 0xd1, 0x18, 0x58, 0x28, 0xd2, 0x8d, 0xfd, 0xe7, 0x26, 0x9d,
0xe0, 0x87, 0x02, 0xaa, 0x62, 0xca, 0x62, 0x8d, 0xea, 0x79, 0x4c, 0x59, 0xac, 0x48, 0x51, 0x0f,
0xcd, 0x56, 0xe8, 0xa1, 0xf7, 0x60, 0x5d, 0x68, 0x1c, 0x29, 0x9b, 0xbd, 0x02, 0x9b, 0x9c, 0x51,
0xcb, 0x36, 0xa0, 0x8d, 0x63, 0x56, 0x0c, 0x9e, 0x06, 0xdf, 0x14, 0x51, 0x1e, 0xc7, 0x2b, 0xe1,
0x48, 0x8b, 0xe2, 0x68, 0xd1, 0x8a, 0x5b, 0xb3, 0x12, 0x4e, 0xb4, 0xfe, 0x73, 0x9b, 0xb6, 0x21,
0x69, 0x0b, 0xb8, 0xbb, 0x08, 0xcd, 0x83, 0x2c, 0x8a, 0xd5, 0xa6, 0x2c, 0x41, 0x4b, 0x14, 0x65,
0x8e, 0xc2, 0x6b, 0x70, 0x99, 0xb8, 0xe8, 0x71, 0x14, 0x47, 0xa3, 0x68, 0x38, 0x3d, 0x98, 0x1c,
0xa6, 0xfd, 0x24, 0x88, 0xf1, 0xc4, 0xe3, 0xfe, 0x83, 0x03, 0xab, 0x56, 0xad, 0x0c, 0x0b, 0x7d,
0x5a, 0xb0, 0xb4, 0xbe, 0x5c, 0x16, 0x8c, 0xb7, 0x62, 0xa8, 0x43, 0x41, 0x28, 0x02, 0x72, 0x4f,
0xe4, 0x7d, 0xf3, 0x1d, 0x58, 0x56, 0x23, 0x53, 0x1f, 0x0a, 0x2e, 0xec, 0x94, 0xb9, 0x50, 0x7e,
0xbf, 0x24, 0x3f, 0x50, 0x4d, 0xfc, 0x82, 0xbc, 0x7d, 0x1c, 0xd0, 0x1c, 0x55, 0x7c, 0x40, 0xdf,
0x2f, 0x99, 0xa7, 0x04, 0x35, 0x82, 0xbe, 0x06, 0x53, 0xf7, 0x77, 0x1c, 0x80, 0x7c, 0x74, 0xc8,
0x18, 0xb9, 0x4a, 0x17, 0x09, 0xd1, 0x86, 0xfa, 0x7e, 0x0b, 0x5a, 0xfa, 0x66, 0x24, 0xb7, 0x12,
0x4d, 0x85, 0xa1, 0x23, 0x77, 0x1d, 0x96, 0x87, 0xa3, 0xe8, 0x90, 0x4c, 0x2c, 0x25, 0xbd, 0xa4,
0x32, 0x53, 0x63, 0x49, 0xc0, 0xf7, 0x24, 0x9a, 0x9b, 0x94, 0xba, 0x61, 0x52, 0xdc, 0x6f, 0xd7,
0x74, 0x3c, 0x3d, 0x9f, 0xf3, 0x99, 0x52, 0xc6, 0x36, 0x4b, 0xca, 0xf1, 0x8c, 0xf0, 0x35, 0x45,
0xc2, 0xf6, 0xcf, 0x3d, 0xa8, 0x7f, 0x08, 0x4b, 0x89, 0xd0, 0x3e, 0x4a, 0x35, 0xd5, 0x5f, 0xa2,
0x9a, 0x16, 0x13, 0xcb, 0xee, 0x7c, 0x12, 0xda, 0xfe, 0xe0, 0x84, 0x27, 0x59, 0x40, 0x47, 0x25,
0x32, 0xfa, 0x42, 0xa1, 0x2e, 0x1b, 0x38, 0xd9, 0xe2, 0xeb, 0xb0, 0x2c, 0xb3, 0x63, 0x34, 0xa5,
0xcc, 0xe8, 0xcc, 0x61, 0x24, 0x74, 0xff, 0x44, 0x85, 0xee, 0xed, 0x3d, 0x3c, 0x7b, 0x45, 0xcc,
0xd9, 0xd5, 0x0a, 0xb3, 0xfb, 0x84, 0x0c, 0xa3, 0x0f, 0xd4, 0x79, 0x6c, 0xc6, 0xb8, 0xa9, 0x1e,
0xc8, 0x6b, 0x0f, 0x7b, 0x49, 0xeb, 0xaf, 0xb2, 0xa4, 0xee, 0x0f, 0x1c, 0x98, 0xdf, 0x8d, 0xe2,
0x5d, 0x79, 0x67, 0x4f, 0x82, 0xa0, 0x73, 0xcf, 0x54, 0xf1, 0x25, 0xb7, 0xf9, 0x95, 0xb6, 0x76,
0xb1, 0x68, 0x6b, 0x7f, 0x11, 0x5e, 0xa3, 0x68, 0x40, 0x12, 0xc5, 0x51, 0x82, 0xc2, 0xe8, 0x8f,
0x84, 0x61, 0x8d, 0xc2, 0xec, 0x58, 0xa9, 0xb1, 0x97, 0x91, 0xd0, 0xb1, 0x0b, 0x8f, 0x0b, 0xc2,
0x19, 0x96, 0xbe, 0x81, 0xd0, 0x6e, 0xe5, 0x0a, 0xf7, 0xb3, 0xd0, 0x20, 0xe7, 0x96, 0xa6, 0xf5,
0x0e, 0x34, 0x8e, 0xa3, 0xb8, 0x77, 0x1c, 0x84, 0x99, 0x12, 0xee, 0xa5, 0xdc, 0xeb, 0xdc, 0xa5,
0x05, 0xd1, 0x04, 0xee, 0xdf, 0xd5, 0x61, 0xfe, 0x41, 0x78, 0x12, 0x05, 0x7d, 0x8a, 0xf2, 0x8f,
0xf9, 0x38, 0x52, 0x99, 0x78, 0xf8, 0x1b, 0x97, 0x82, 0xb2, 0x52, 0xe2, 0x4c, 0x86, 0xe9, 0x55,
0x11, 0xcd, 0x7d, 0x92, 0x67, 0xcb, 0x0a, 0xd1, 0x31, 0x10, 0x74, 0xec, 0x13, 0x33, 0xb1, 0x58,
0x96, 0xf2, 0x54, 0xc6, 0x59, 0x23, 0x95, 0x91, 0xee, 0x84, 0x44, 0x7e, 0x01, 0xf1, 0xd7, 0x82,
0xa7, 0x8a, 0x74, 0x10, 0x49, 0xb8, 0x88, 0xe2, 0x90, 0xe3, 0x30, 0x2f, 0x0f, 0x22, 0x26, 0x88,
0xce, 0x85, 0xf8, 0x40, 0xd0, 0x08, 0xe5, 0x6b, 0x42, 0xe8, 0x6c, 0x15, 0x73, 0x93, 0x1b, 0x82,
0xe7, 0x0b, 0x30, 0x6a, 0xe8, 0x01, 0xd7, 0x8a, 0x54, 0xcc, 0x01, 0x44, 0x36, 0x70, 0x11, 0x37,
0x8e, 0x2f, 0x22, 0x71, 0x48, 0x1d, 0x5f, 0x90, 0x51, 0xfc, 0xd1, 0xe8, 0xd0, 0xef, 0x3f, 0xa3,
0xd4, 0x73, 0xca, 0x13, 0x6a, 0x78, 0x36, 0x48, 0x19, 0x03, 0xf9, 0x6e, 0xd2, 0xad, 0x62, 0xdd,
0x33, 0x21, 0xb6, 0x09, 0x4d, 0x3a, 0xb2, 0xc9, 0xfd, 0x5c, 0xa2, 0xfd, 0x6c, 0x9b, 0x67, 0x3a,
0xda, 0x51, 0x93, 0xc8, 0xbc, 0x79, 0x58, 0xb6, 0x6f, 0x1e, 0x84, 0xd2, 0x94, 0x17, 0x36, 0x6d,
0xea, 0x2d, 0x07, 0xd0, 0x9a, 0xca, 0x05, 0x13, 0x04, 0x2b, 0x44, 0x60, 0x61, 0x28, 0xb5, 0x78,
0xd0, 0x88, 0xfd, 0x60, 0xd0, 0x61, 0x42, 0x6a, 0x55, 0xd9, 0xfd, 0x32, 0xb0, 0x3b, 0x83, 0x81,
0xe4, 0x26, 0x7d, 0x20, 0xcd, 0xf9, 0xc0, 0xb1, 0xf8, 0xa0, 0x62, 0x3f, 0x6a, 0x95, 0xfb, 0xe1,
0xee, 0x40, 0x73, 0xdf, 0x48, 0x89, 0x26, 0xc6, 0x53, 0xc9, 0xd0, 0x92, 0x59, 0x0d, 0xc4, 0xe8,
0xb0, 0x66, 0x76, 0xe8, 0xfe, 0x1c, 0xb0, 0xbd, 0x20, 0xcd, 0xf4, 0xf8, 0xf2, 0x1c, 0x6c, 0x15,
0x17, 0xc8, 0xd3, 0x98, 0x9a, 0x12, 0xa3, 0xf4, 0xa2, 0x3b, 0x22, 0xff, 0xa9, 0x38, 0xb1, 0x0d,
0x58, 0x08, 0x04, 0x54, 0x94, 0x33, 0x45, 0xa9, 0xeb, 0xdd, 0xa7, 0xb0, 0x2a, 0x41, 0xd3, 0x46,
0xdb, 0xfb, 0xe1, 0x9c, 0xb7, 0x1f, 0xb5, 0xf2, 0x7e, 0xb8, 0xdf, 0x77, 0x60, 0x5e, 0x2e, 0x0e,
0xd2, 0x97, 0xd2, 0xc9, 0x1b, 0x9e, 0x85, 0x55, 0x27, 0x12, 0x97, 0x65, 0x6c, 0xa6, 0x4a, 0xc6,
0x18, 0xd4, 0x63, 0x3f, 0x3b, 0xa6, 0x03, 0x54, 0xc3, 0xa3, 0xdf, 0xac, 0x2d, 0x0e, 0xf5, 0x42,
0x96, 0xe9, 0x40, 0x5f, 0x95, 0x4b, 0x2f, 0x4c, 0x46, 0x09, 0x47, 0x27, 0x99, 0xb2, 0x26, 0x04,
0xae, 0x2f, 0x43, 0x64, 0x3e, 0x57, 0x0e, 0xe7, 0x2b, 0x2e, 0x9b, 0x28, 0xae, 0xb8, 0x24, 0xf5,
0x74, 0xbd, 0xdb, 0x85, 0xce, 0x36, 0x1f, 0xf1, 0x8c, 0xdf, 0x19, 0x8d, 0x8a, 0xed, 0xbf, 0x06,
0x97, 0x2b, 0xea, 0xa4, 0x53, 0x75, 0x0f, 0x56, 0xb6, 0xf9, 0xe1, 0x64, 0xb8, 0xc7, 0x4f, 0xf2,
0x1b, 0x4b, 0x06, 0xf5, 0xf4, 0x38, 0x3a, 0x95, 0xdc, 0x41, 0xbf, 0xd9, 0x1b, 0x00, 0x23, 0xa4,
0xe9, 0xa5, 0x31, 0xef, 0xab, 0x14, 0x5a, 0x42, 0x0e, 0x62, 0xde, 0x77, 0xdf, 0x03, 0x66, 0xb6,
0x23, 0xa7, 0x80, 0x7a, 0x6a, 0x72, 0xd8, 0x4b, 0xa7, 0x69, 0xc6, 0xc7, 0x2a, 0x37, 0xd8, 0x84,
0xdc, 0xeb, 0xd0, 0xda, 0xf7, 0xa7, 0x1e, 0xff, 0x86, 0xcc, 0xe8, 0xc7, 0xb3, 0xbb, 0x3f, 0x45,
0x61, 0xd0, 0x67, 0x77, 0xaa, 0x76, 0xff, 0xab, 0x06, 0x73, 0x82, 0x12, 0x5b, 0x1d, 0xf0, 0x34,
0x0b, 0x42, 0x71, 0x5b, 0x27, 0x5b, 0x35, 0xa0, 0x12, 0x6f, 0xd4, 0x2a, 0x78, 0x43, 0x7a, 0xd3,
0x2a, 0x1d, 0x51, 0x32, 0x81, 0x85, 0x21, 0xc7, 0xe6, 0x59, 0x10, 0xe2, 0xf0, 0x98, 0x03, 0x85,
0x60, 0x4e, 0xae, 0x0d, 0xc5, 0xf8, 0x14, 0xdb, 0x4b, 0x76, 0x30, 0xa1, 0x4a, 0x9d, 0x3b, 0x2f,
0xb8, 0xa6, 0xa4, 0x73, 0x4b, 0xba, 0x75, 0xe1, 0x15, 0x74, 0xab, 0x70, 0xb1, 0x5f, 0xa6, 0x5b,
0xe1, 0x15, 0x74, 0xab, 0xcb, 0xa0, 0x7d, 0x8f, 0x73, 0x8f, 0xa3, 0xd5, 0x56, 0xec, 0xf4, 0x1d,
0x07, 0xda, 0xd2, 0xe1, 0xd0, 0x75, 0xec, 0x2d, 0xcb, 0x3b, 0xa9, 0x4c, 0x1a, 0xbc, 0x06, 0x8b,
0xe4, 0x33, 0xe8, 0xa8, 0x95, 0x0c, 0xb1, 0x59, 0x20, 0xce, 0x43, 0x5d, 0x2d, 0x8c, 0x83, 0x91,
0xdc, 0x14, 0x13, 0x52, 0x81, 0x2f, 0x3c, 0xbf, 0xd3, 0x96, 0x38, 0x9e, 0x2e, 0xbb, 0x7f, 0xe5,
0xc0, 0x8a, 0x31, 0x60, 0xc9, 0x85, 0x1f, 0x82, 0xca, 0x92, 0x10, 0xc1, 0x2d, 0x21, 0x4c, 0x97,
0x6c, 0xe7, 0x29, 0xff, 0xcc, 0x22, 0xa6, 0xcd, 0xf4, 0xa7, 0x34, 0xc0, 0x74, 0x32, 0x96, 0x5a,
0xc9, 0x84, 0x90, 0x91, 0x4e, 0x39, 0x7f, 0xa6, 0x49, 0x66, 0x84, 0xe2, 0x32, 0x31, 0xba, 0x04,
0x47, 0x5f, 0x47, 0x13, 0x89, 0xbc, 0x2f, 0x1b, 0x74, 0xff, 0xc9, 0x81, 0x55, 0xe1, 0xb4, 0xca,
0x23, 0x81, 0xce, 0xe8, 0x9e, 0x13, 0x5e, 0xba, 0x90, 0xc8, 0xdd, 0x0b, 0x9e, 0x2c, 0xb3, 0xcf,
0xbc, 0xa2, 0xa3, 0xad, 0x93, 0x1f, 0xce, 0xd8, 0x8b, 0x99, 0xaa, 0xbd, 0x78, 0xc9, 0x4a, 0x57,
0x05, 0x73, 0x66, 0x2b, 0x83, 0x39, 0x77, 0xe7, 0x61, 0x36, 0xed, 0x47, 0x31, 0x77, 0xd7, 0x61,
0xcd, 0x9e, 0x9c, 0x54, 0x41, 0xdf, 0x75, 0xa0, 0x73, 0x4f, 0x84, 0x36, 0x83, 0x70, 0xb8, 0x1b,
0xa4, 0x59, 0x94, 0xe8, 0x27, 0x2c, 0x57, 0x00, 0xd2, 0xcc, 0x4f, 0x32, 0x91, 0x9c, 0x26, 0xc3,
0x30, 0x39, 0x82, 0x63, 0xe4, 0xe1, 0x40, 0xd4, 0x8a, 0xbd, 0xd1, 0x65, 0xdc, 0x18, 0x32, 0x1b,
0xbd, 0xe8, 0xe8, 0x28, 0xe5, 0xda, 0xad, 0x36, 0x31, 0x3c, 0x99, 0xa3, 0xc4, 0xe3, 0x59, 0x94,
0x9f, 0x90, 0xaa, 0x15, 0xfe, 0x6a, 0x01, 0x75, 0xff, 0xc2, 0x81, 0xe5, 0x7c, 0x90, 0x3b, 0x08,
0xda, 0xda, 0x41, 0xda, 0xb3, 0x5c, 0x3b, 0xa8, 0x00, 0x51, 0x80, 0x06, 0x4e, 0x8e, 0xcd, 0x40,
0x48, 0x62, 0x65, 0x29, 0x9a, 0xa8, 0x44, 0x40, 0x13, 0x12, 0xb7, 0xfc, 0x19, 0x7e, 0x2d, 0xb2,
0x00, 0x65, 0x89, 0x72, 0x0b, 0xc7, 0x19, 0x7d, 0x35, 0x27, 0x1c, 0x76, 0x59, 0x54, 0xf6, 0x69,
0x9e, 0x50, 0xfc, 0xe9, 0xfe, 0xae, 0x03, 0x97, 0x2b, 0x16, 0x57, 0x4a, 0xc6, 0x36, 0xac, 0x1c,
0xe9, 0x4a, 0xb5, 0x00, 0x42, 0x3c, 0xd6, 0x55, 0x2c, 0xde, 0x9e, 0xb4, 0x57, 0xfe, 0x00, 0xdd,
0x77, 0x8a, 0x6b, 0x89, 0x25, 0xb5, 0x12, 0x64, 0xca, 0x15, 0x9b, 0xbf, 0x37, 0x03, 0x4b, 0xe2,
0x8e, 0x46, 0x3c, 0x26, 0xe5, 0x09, 0xfb, 0x08, 0xe6, 0xe5, 0x63, 0x60, 0x76, 0x51, 0x76, 0x6b,
0x3f, 0x3f, 0xee, 0xae, 0x17, 0x61, 0xc9, 0x3b, 0xab, 0xbf, 0xf1, 0x83, 0x7f, 0xf9, 0xfd, 0xda,
0x22, 0x6b, 0xde, 0x3a, 0x79, 0xf7, 0xd6, 0x90, 0x87, 0x29, 0xb6, 0xf1, 0x2b, 0x00, 0xf9, 0x33,
0x59, 0xd6, 0xd1, 0x6e, 0x4a, 0xe1, 0xfd, 0x6f, 0xf7, 0x72, 0x45, 0x8d, 0x6c, 0xf7, 0x32, 0xb5,
0xbb, 0xea, 0x2e, 0x61, 0xbb, 0x41, 0x18, 0x64, 0xe2, 0xcd, 0xec, 0x07, 0xce, 0x06, 0x1b, 0x40,
0xcb, 0x7c, 0x05, 0xcb, 0xd4, 0x91, 0xbe, 0xe2, 0x0d, 0x6e, 0xf7, 0xb5, 0xca, 0x3a, 0x15, 0xcf,
0xa0, 0x3e, 0x2e, 0xba, 0x6d, 0xec, 0x63, 0x42, 0x14, 0x79, 0x2f, 0x23, 0x58, 0xb2, 0x1f, 0xbb,
0xb2, 0xd7, 0x0d, 0xb1, 0x2e, 0x3d, 0xb5, 0xed, 0xbe, 0x71, 0x46, 0xad, 0xec, 0xeb, 0x0d, 0xea,
0xeb, 0x92, 0xcb, 0xb0, 0xaf, 0x3e, 0xd1, 0xa8, 0xa7, 0xb6, 0x1f, 0x38, 0x1b, 0x9b, 0xdf, 0xba,
0x02, 0x0d, 0x1d, 0x84, 0x63, 0x5f, 0x87, 0x45, 0xeb, 0x12, 0x8d, 0xa9, 0x69, 0x54, 0xdd, 0xb9,
0x75, 0x5f, 0xaf, 0xae, 0x94, 0x1d, 0x5f, 0xa1, 0x8e, 0x3b, 0x6c, 0x1d, 0x3b, 0x96, 0xb7, 0x50,
0xb7, 0xe8, 0xea, 0x50, 0x64, 0x2e, 0x3e, 0x13, 0xf3, 0xcc, 0x2f, 0xbe, 0xac, 0x79, 0x96, 0x2e,
0xca, 0xac, 0x79, 0x96, 0x6f, 0xcb, 0xdc, 0xd7, 0xa9, 0xbb, 0x75, 0xb6, 0x66, 0x76, 0xa7, 0x83,
0x63, 0x9c, 0x72, 0x4d, 0xcd, 0xb7, 0xb0, 0xec, 0x0d, 0xcd, 0x58, 0x55, 0x6f, 0x64, 0x35, 0x8b,
0x94, 0x1f, 0xca, 0xba, 0x1d, 0xea, 0x8a, 0x31, 0xda, 0x3e, 0xf3, 0x29, 0x2c, 0xfb, 0x2a, 0x34,
0xf4, 0xc3, 0x2f, 0x76, 0xc9, 0x78, 0x6d, 0x67, 0xbe, 0x46, 0xeb, 0x76, 0xca, 0x15, 0x55, 0x8c,
0x61, 0xb6, 0x8c, 0x8c, 0xb1, 0x07, 0x17, 0xa5, 0x53, 0x7d, 0xc8, 0x7f, 0x94, 0x99, 0x54, 0xbc,
0xe0, 0xbd, 0xed, 0xb0, 0x0f, 0x61, 0x41, 0xbd, 0xa7, 0x63, 0xeb, 0xd5, 0xef, 0x02, 0xbb, 0x97,
0x4a, 0xb8, 0xd4, 0x1e, 0x77, 0x00, 0xf2, 0xb7, 0x60, 0x5a, 0xce, 0x4a, 0x2f, 0xd4, 0xf4, 0x22,
0x56, 0x3c, 0x1c, 0x1b, 0xd2, 0xcb, 0x37, 0xfb, 0xa9, 0x19, 0x7b, 0x33, 0xa7, 0xaf, 0x7c, 0x84,
0xf6, 0x92, 0x06, 0xdd, 0x75, 0x5a, 0xbb, 0x36, 0x23, 0xc1, 0x0d, 0xf9, 0xa9, 0xca, 0xba, 0xde,
0x86, 0xa6, 0xf1, 0xbe, 0x8c, 0xa9, 0x16, 0xca, 0x6f, 0xd3, 0xba, 0xdd, 0xaa, 0x2a, 0x39, 0xdc,
0x2f, 0xc0, 0xa2, 0xf5, 0x50, 0x4c, 0x4b, 0x46, 0xd5, 0x33, 0x34, 0x2d, 0x19, 0xd5, 0x6f, 0xcb,
0xbe, 0x02, 0x4d, 0xe3, 0x59, 0x17, 0x33, 0xb2, 0xcd, 0x0a, 0x0f, 0xba, 0xf4, 0x88, 0xaa, 0x5e,
0x81, 0xad, 0xd1, 0x7c, 0x97, 0xdc, 0x06, 0xce, 0x97, 0x52, 0x8f, 0x91, 0x49, 0xbe, 0x0e, 0x4b,
0xf6, 0x43, 0x2f, 0x2d, 0x55, 0x95, 0x4f, 0xc6, 0xb4, 0x54, 0x9d, 0xf1, 0x3a, 0x4c, 0x32, 0xe4,
0xc6, 0xaa, 0xee, 0xe4, 0xd6, 0xc7, 0xf2, 0x0a, 0xea, 0x05, 0xfb, 0x12, 0xaa, 0x0e, 0x99, 0x0b,
0xce, 0xf2, 0xe7, 0x6d, 0x76, 0xc6, 0xb8, 0xe6, 0xf6, 0x52, 0xda, 0xb8, 0xbb, 0x42, 0x8d, 0x37,
0x59, 0x3e, 0x03, 0x61, 0x0f, 0x28, 0x27, 0xdc, 0xb0, 0x07, 0x66, 0xda, 0xb8, 0x61, 0x0f, 0xac,
0xd4, 0xf1, 0xa2, 0x3d, 0xc8, 0x02, 0x6c, 0x23, 0x84, 0xe5, 0x42, 0xba, 0x85, 0x16, 0x96, 0xea,
0xfc, 0xb4, 0xee, 0x95, 0x97, 0x67, 0x69, 0xd8, 0x6a, 0x46, 0xa9, 0x97, 0x5b, 0x2a, 0x9d, 0xf0,
0x57, 0xa1, 0x65, 0x3e, 0xd0, 0xd1, 0x16, 0xa2, 0xe2, 0x59, 0x91, 0xb6, 0x10, 0x55, 0x2f, 0x7a,
0xd4, 0xe6, 0xb2, 0x96, 0xd9, 0x0d, 0x6e, 0xae, 0xfd, 0x9e, 0x21, 0x57, 0x99, 0x55, 0x0f, 0x35,
0x72, 0x95, 0x59, 0xf9, 0x08, 0x42, 0x6d, 0x2e, 0x5b, 0xb5, 0xe6, 0x22, 0x62, 0x8f, 0xec, 0x2b,
0xb0, 0x6c, 0xe4, 0x32, 0x1d, 0x4c, 0xc3, 0xbe, 0x66, 0xd4, 0x72, 0xa6, 0x6b, 0xb7, 0xca, 0xf3,
0x74, 0x2f, 0x51, 0xfb, 0x2b, 0xae, 0x35, 0x09, 0x64, 0xd2, 0x2d, 0x68, 0x9a, 0x79, 0x52, 0x2f,
0x69, 0xf7, 0x92, 0x51, 0x65, 0x26, 0x7d, 0xde, 0x76, 0xd8, 0x1f, 0x3a, 0xd0, 0xb2, 0xb2, 0x8e,
0xac, 0x08, 0x7b, 0xa1, 0x9d, 0x8e, 0x59, 0x67, 0x36, 0xe4, 0x7a, 0x34, 0xc8, 0xbd, 0x8d, 0x2f,
0x58, 0x8b, 0xf0, 0xb1, 0x75, 0x82, 0xb9, 0x59, 0x7c, 0xe7, 0xfd, 0xa2, 0x48, 0x60, 0x66, 0x03,
0xbf, 0xb8, 0xed, 0xb0, 0x0f, 0xc4, 0x3f, 0x19, 0xa8, 0x88, 0x05, 0x33, 0x14, 0x69, 0x71, 0xc9,
0xcc, 0x67, 0xfc, 0x37, 0x9c, 0xdb, 0x0e, 0xfb, 0x9a, 0x78, 0xce, 0x2d, 0xbf, 0xa5, 0x95, 0x7f,
0xd5, 0xef, 0xdd, 0x6b, 0x34, 0x9b, 0x2b, 0xee, 0x65, 0x6b, 0x36, 0x45, 0x4b, 0x72, 0x47, 0x8c,
0x4e, 0xbe, 0xd2, 0xcf, 0x55, 0x62, 0xe9, 0xe5, 0xfe, 0xd9, 0x83, 0x1c, 0x8b, 0x41, 0x4a, 0x72,
0x8b, 0x3d, 0x5e, 0xb1, 0x19, 0x77, 0x83, 0xc6, 0x7a, 0xcd, 0x7d, 0xf3, 0xcc, 0xb1, 0xde, 0xa2,
0x13, 0x29, 0x8e, 0x78, 0x1f, 0x20, 0x0f, 0xb9, 0xb1, 0x42, 0xfc, 0x49, 0x5b, 0x85, 0x72, 0x54,
0xce, 0xe6, 0x41, 0x15, 0xa6, 0xc2, 0x16, 0xbf, 0x2a, 0x44, 0x55, 0xd2, 0xa7, 0x7a, 0xf4, 0xe5,
0xd0, 0x59, 0xb7, 0x5b, 0x55, 0x55, 0x25, 0xa8, 0xaa, 0x7d, 0xf6, 0x04, 0x16, 0xf7, 0xa2, 0xe8,
0xd9, 0x24, 0xd6, 0x21, 0x67, 0x3b, 0x7e, 0xb3, 0xeb, 0xa7, 0xc7, 0xdd, 0xc2, 0x2c, 0xdc, 0xab,
0xd4, 0x54, 0x97, 0x75, 0x8c, 0xa6, 0x6e, 0x7d, 0x9c, 0x07, 0xfc, 0x5e, 0x30, 0x1f, 0x56, 0xb4,
0x07, 0xa0, 0x07, 0xde, 0xb5, 0x9b, 0x31, 0xe3, 0x6e, 0xa5, 0x2e, 0x2c, 0x9f, 0x4c, 0x8d, 0xf6,
0x56, 0xaa, 0xda, 0xbc, 0xed, 0xb0, 0x7d, 0x68, 0x6d, 0xf3, 0x7e, 0x34, 0xe0, 0x32, 0xe2, 0xb2,
0x9a, 0x0f, 0x5c, 0x87, 0x6a, 0xba, 0x8b, 0x16, 0x68, 0xeb, 0xc4, 0xd8, 0x9f, 0x26, 0xfc, 0x1b,
0xb7, 0x3e, 0x96, 0xb1, 0x9c, 0x17, 0x4a, 0x27, 0xaa, 0xf8, 0x93, 0xa5, 0x13, 0x0b, 0x01, 0x2b,
0x4b, 0x27, 0x96, 0x02, 0x56, 0xd6, 0x52, 0xab, 0xf8, 0x17, 0x1b, 0xc1, 0x4a, 0x29, 0xc6, 0xa5,
0xfd, 0x88, 0xb3, 0x22, 0x63, 0xdd, 0xab, 0x67, 0x13, 0xd8, 0xbd, 0x6d, 0xd8, 0xbd, 0x1d, 0xc0,
0xe2, 0x36, 0x17, 0x8b, 0x25, 0xee, 0xb5, 0x0b, 0xcf, 0xc6, 0xcc, 0x3b, 0xf0, 0xa2, 0x52, 0xa4,
0x3a, 0xdb, 0xe8, 0xd1, 0xa5, 0x32, 0xfb, 0x2a, 0x34, 0xef, 0xf3, 0x4c, 0x5d, 0x64, 0x6b, 0x6f,
0xac, 0x70, 0xb3, 0xdd, 0xad, 0xb8, 0x07, 0xb7, 0x79, 0x86, 0x5a, 0xbb, 0xc5, 0x07, 0x43, 0x2e,
0xd4, 0x53, 0x2f, 0x18, 0xbc, 0x60, 0xbf, 0x44, 0x8d, 0xeb, 0xdc, 0x97, 0x75, 0xe3, 0xfe, 0xd3,
0x6c, 0x7c, 0xb9, 0x80, 0x57, 0xb5, 0x1c, 0x46, 0x03, 0x6e, 0x98, 0xff, 0x10, 0x9a, 0x46, 0x62,
0x96, 0x16, 0xa0, 0x72, 0x92, 0x99, 0x16, 0xa0, 0x8a, 0x3c, 0x2e, 0xf7, 0x06, 0xf5, 0xe3, 0xb2,
0xab, 0x79, 0x3f, 0x22, 0x77, 0x2b, 0xef, 0xe9, 0xd6, 0xc7, 0xfe, 0x38, 0x7b, 0xc1, 0x9e, 0xd2,
0x13, 0x32, 0xf3, 0xb2, 0x3e, 0xf7, 0x06, 0x8b, 0xf7, 0xfa, 0x7a, 0xb1, 0x8c, 0x2a, 0xdb, 0x43,
0x14, 0x5d, 0x91, 0x97, 0xf0, 0x19, 0x80, 0x83, 0x2c, 0x8a, 0xb7, 0x7d, 0x3e, 0x8e, 0xc2, 0x5c,
0xd7, 0xe6, 0x17, 0xd2, 0xb9, 0xfe, 0x32, 0x6e, 0xa5, 0xd9, 0x53, 0xc3, 0x1f, 0xb7, 0x72, 0x1d,
0x14, 0x73, 0x9d, 0x79, 0x67, 0xad, 0x17, 0xa4, 0xe2, 0xde, 0xfa, 0xb6, 0x83, 0xde, 0x75, 0x1e,
0x51, 0xd5, 0xde, 0x75, 0x29, 0x58, 0xab, 0xd5, 0x5e, 0x45, 0xf8, 0x75, 0x1f, 0x1a, 0x79, 0x88,
0xee, 0x52, 0x9e, 0x5c, 0x67, 0x05, 0xf4, 0xb4, 0x55, 0x2c, 0x05, 0xce, 0xdc, 0x36, 0x2d, 0x15,
0xb0, 0x05, 0x5c, 0x2a, 0x8a, 0x86, 0x05, 0xb0, 0x2a, 0x06, 0xa8, 0x4d, 0x3c, 0x5d, 0xb1, 0xaa,
0x99, 0x54, 0x04, 0xaf, 0xb4, 0x34, 0x57, 0xc6, 0x7e, 0xac, 0x73, 0x36, 0x72, 0xab, 0xb8, 0xde,
0x45, 0xd5, 0x3c, 0x86, 0x95, 0x52, 0xe0, 0x42, 0x8b, 0xf4, 0x59, 0xf1, 0x22, 0x2d, 0xd2, 0x67,
0xc6, 0x3c, 0xdc, 0x8b, 0xd4, 0xe5, 0xb2, 0x0b, 0xd8, 0x65, 0x7a, 0x1a, 0x64, 0xfd, 0xe3, 0x0f,
0x9c, 0x8d, 0xc3, 0x39, 0xfa, 0xe7, 0xb3, 0x4f, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x29,
0x75, 0x77, 0x36, 0x2b, 0x4d, 0x00, 0x00,
}

View File

@ -392,10 +392,18 @@ func request_Lightning_LookupInvoice_0(ctx context.Context, marshaler runtime.Ma
}
var (
filter_Lightning_SubscribeInvoices_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
)
func request_Lightning_SubscribeInvoices_0(ctx context.Context, marshaler runtime.Marshaler, client LightningClient, req *http.Request, pathParams map[string]string) (Lightning_SubscribeInvoicesClient, runtime.ServerMetadata, error) {
var protoReq InvoiceSubscription
var metadata runtime.ServerMetadata
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Lightning_SubscribeInvoices_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
stream, err := client.SubscribeInvoices(ctx, &protoReq)
if err != nil {
return nil, metadata, err

View File

@ -464,7 +464,14 @@ service Lightning {
/**
SubscribeInvoices returns a uni-directional stream (sever -> client) for
notifying the client of newly added/settled invoices.
notifying the client of newly added/settled invoices. The caller can
optionally specify the add_index and/or the settle_index. If the add_index
is specified, then we'll first start by sending add invoice events for all
invoices with an add_index greater than the specified value. If the
settle_index is specified, the next, we'll send out all settle events for
invoices with a settle_index greater than the specified value. One or both
of these fields can be set. If no fields are set, then we'll only send out
the latest add/settle events.
*/
rpc SubscribeInvoices (InvoiceSubscription) returns (stream Invoice) {
option (google.api.http) = {
@ -1642,6 +1649,32 @@ message Invoice {
/// Whether this invoice should include routing hints for private channels.
bool private = 15 [json_name = "private"];
/**
The "add" index of this invoice. Each newly created invoice will increment
this index making it monotonically increasing. Callers to the
SubscribeInvoices call can use this to instantly get notified of all added
invoices with an add_index greater than this one.
*/
uint64 add_index = 16 [json_name = "add_index"];
/**
The "settle" index of this invoice. Each newly settled invoice will
increment this index making it monotonically increasing. Callers to the
SubscribeInvoices call can use this to instantly get notified of all
settled invoices with an settle_index greater than this one.
*/
uint64 settle_index = 17 [json_name = "settle_index"];
/**
The amount that was accepted for this invoice. This will ONLY be set if
this invoice has been settled. We provide this field as if the invoice was
created with a zero value, then we need to record what amount was
ultimately accepted. Additionally, it's possible that the sender paid MORE
that was specified in the original invoice. So we'll record that here as
well.
*/
int64 amt_paid = 18 [json_name = "amt_paid"];
}
message AddInvoiceResponse {
bytes r_hash = 1 [json_name = "r_hash"];
@ -1672,6 +1705,21 @@ message ListInvoiceResponse {
}
message InvoiceSubscription {
/**
If specified (non-zero), then we'll first start by sending out
notifications for all added indexes with an add_index greater than this
value. This allows callers to catch up on any events they missed while they
weren't connected to the streaming RPC.
*/
uint64 add_index = 1 [json_name = "add_index"];
/**
If specified (non-zero), then we'll first start by sending out
notifications for all settled indexes with an settle_index greater than
this value. This allows callers to catch up on any events they missed while
they weren't connected to the streaming RPC.
*/
uint64 settle_index = 2 [json_name = "settle_index"];
}

View File

@ -666,7 +666,7 @@
},
"/v1/invoices/subscribe": {
"get": {
"summary": "*\nSubscribeInvoices returns a uni-directional stream (sever -\u003e client) for\nnotifying the client of newly added/settled invoices.",
"summary": "*\nSubscribeInvoices returns a uni-directional stream (sever -\u003e client) for\nnotifying the client of newly added/settled invoices. The caller can\noptionally specify the add_index and/or the settle_index. If the add_index\nis specified, then we'll first start by sending add invoice events for all\ninvoices with an add_index greater than the specified value. If the\nsettle_index is specified, the next, we'll send out all settle events for\ninvoices with a settle_index greater than the specified value. One or both\nof these fields can be set. If no fields are set, then we'll only send out\nthe latest add/settle events.",
"operationId": "SubscribeInvoices",
"responses": {
"200": {
@ -676,6 +676,24 @@
}
}
},
"parameters": [
{
"name": "add_index",
"description": "*\nIf specified (non-zero), then we'll first start by sending out\nnotifications for all added indexes with an add_index greater than this\nvalue. This allows callers to catch up on any events they missed while they\nweren't connected to the streaming RPC.",
"in": "query",
"required": false,
"type": "string",
"format": "uint64"
},
{
"name": "settle_index",
"description": "*\nIf specified (non-zero), then we'll first start by sending out\nnotifications for all settled indexes with an settle_index greater than\nthis value. This allows callers to catch up on any events they missed while\nthey weren't connected to the streaming RPC.",
"in": "query",
"required": false,
"type": "string",
"format": "uint64"
}
],
"tags": [
"Lightning"
]
@ -1893,6 +1911,21 @@
"type": "boolean",
"format": "boolean",
"description": "/ Whether this invoice should include routing hints for private channels."
},
"add_index": {
"type": "string",
"format": "uint64",
"description": "*\nThe \"add\" index of this invoice. Each newly created invoice will increment\nthis index making it monotonically increasing. Callers to the\nSubscribeInvoices call can use this to instantly get notified of all added\ninvoices with an add_index greater than this one."
},
"settle_index": {
"type": "string",
"format": "uint64",
"description": "*\nThe \"settle\" index of this invoice. Each newly settled invoice will\nincrement this index making it monotonically increasing. Callers to the\nSubscribeInvoices call can use this to instantly get notified of all\nsettled invoices with an settle_index greater than this one."
},
"amt_paid": {
"type": "string",
"format": "int64",
"description": "*\nThe amount that was accepted for this invoice. This will ONLY be set if\nthis invoice has been settled. We provide this field as if the invoice was\ncreated with a zero value, then we need to record what amount was\nultimately accepted. Additionally, it's possible that the sender paid MORE\nthat was specified in the original invoice. So we'll record that here as\nwell."
}
}
},