Merge pull request #2354 from joostjager/invoice-state

channeldb+lnrpc: invoice state
This commit is contained in:
Olaoluwa Osuntokun 2019-01-04 14:48:17 -08:00 committed by GitHub
commit 2e2d5fcf54
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 701 additions and 586 deletions

@ -106,7 +106,7 @@ func TestInvoiceWorkflow(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unable to fetch invoice: %v", err) t.Fatalf("unable to fetch invoice: %v", err)
} }
if !dbInvoice2.Terms.Settled { if dbInvoice2.Terms.State != ContractSettled {
t.Fatalf("invoice should now be settled but isn't") t.Fatalf("invoice should now be settled but isn't")
} }
if dbInvoice2.SettleDate.IsZero() { if dbInvoice2.SettleDate.IsZero() {
@ -348,7 +348,7 @@ func TestDuplicateSettleInvoice(t *testing.T) {
// We'll update what we expect the settle invoice to be so that our // We'll update what we expect the settle invoice to be so that our
// comparison below has the correct assumption. // comparison below has the correct assumption.
invoice.SettleIndex = 1 invoice.SettleIndex = 1
invoice.Terms.Settled = true invoice.Terms.State = ContractSettled
invoice.AmtPaid = amt invoice.AmtPaid = amt
invoice.SettleDate = dbInvoice.SettleDate invoice.SettleDate = dbInvoice.SettleDate

@ -74,6 +74,30 @@ const (
MaxPaymentRequestSize = 4096 MaxPaymentRequestSize = 4096
) )
// ContractState describes the state the invoice is in.
type ContractState uint8
const (
// ContractOpen means the invoice has only been created.
ContractOpen ContractState = 0
// ContractSettled means the htlc is settled and the invoice has been
// paid.
ContractSettled ContractState = 1
)
// String returns a human readable identifier for the ContractState type.
func (c ContractState) String() string {
switch c {
case ContractOpen:
return "Open"
case ContractSettled:
return "Settled"
}
return "Unknown"
}
// ContractTerm is a companion struct to the Invoice struct. This struct houses // ContractTerm is a companion struct to the Invoice struct. This struct houses
// the necessary conditions required before the invoice can be considered fully // the necessary conditions required before the invoice can be considered fully
// settled by the payee. // settled by the payee.
@ -87,9 +111,8 @@ type ContractTerm struct {
// which can be satisfied by the above preimage. // which can be satisfied by the above preimage.
Value lnwire.MilliSatoshi Value lnwire.MilliSatoshi
// Settled indicates if this particular contract term has been fully // State describes the state the invoice is in.
// settled by the payer. State ContractState
Settled bool
} }
// Invoice is a payment invoice generated by a payee in order to request // Invoice is a payment invoice generated by a payee in order to request
@ -380,7 +403,9 @@ func (d *DB) FetchAllInvoices(pendingOnly bool) ([]Invoice, error) {
return err return err
} }
if pendingOnly && invoice.Terms.Settled { if pendingOnly &&
invoice.Terms.State == ContractSettled {
return nil return nil
} }
@ -528,7 +553,9 @@ func (d *DB) QueryInvoices(q InvoiceQuery) (InvoiceSlice, error) {
// Skip any settled invoices if the caller is only // Skip any settled invoices if the caller is only
// interested in unsettled. // interested in unsettled.
if q.PendingOnly && invoice.Terms.Settled { if q.PendingOnly &&
invoice.Terms.State == ContractSettled {
continue continue
} }
@ -773,7 +800,7 @@ func serializeInvoice(w io.Writer, i *Invoice) error {
return err return err
} }
if err := binary.Write(w, byteOrder, i.Terms.Settled); err != nil { if err := binary.Write(w, byteOrder, i.Terms.State); err != nil {
return err return err
} }
@ -845,7 +872,7 @@ func deserializeInvoice(r io.Reader) (Invoice, error) {
} }
invoice.Terms.Value = lnwire.MilliSatoshi(byteOrder.Uint64(scratch[:])) invoice.Terms.Value = lnwire.MilliSatoshi(byteOrder.Uint64(scratch[:]))
if err := binary.Read(r, byteOrder, &invoice.Terms.Settled); err != nil { if err := binary.Read(r, byteOrder, &invoice.Terms.State); err != nil {
return invoice, err return invoice, err
} }
@ -872,7 +899,7 @@ func settleInvoice(invoices, settleIndex *bbolt.Bucket, invoiceNum []byte,
// Add idempotency to duplicate settles, return here to avoid // Add idempotency to duplicate settles, return here to avoid
// overwriting the previous info. // overwriting the previous info.
if invoice.Terms.Settled { if invoice.Terms.State == ContractSettled {
return &invoice, nil return &invoice, nil
} }
@ -891,7 +918,7 @@ func settleInvoice(invoices, settleIndex *bbolt.Bucket, invoiceNum []byte,
} }
invoice.AmtPaid = amtPaid invoice.AmtPaid = amtPaid
invoice.Terms.Settled = true invoice.Terms.State = ContractSettled
invoice.SettleDate = time.Now() invoice.SettleDate = time.Now()
invoice.SettleIndex = nextSettleSeqNo invoice.SettleIndex = nextSettleSeqNo

@ -189,7 +189,7 @@ func migrateInvoiceTimeSeries(tx *bbolt.Tx) error {
// Next, we'll check if the invoice has been settled or not. If // Next, we'll check if the invoice has been settled or not. If
// so, then we'll also add it to the settle index. // so, then we'll also add it to the settle index.
var nextSettleSeqNo uint64 var nextSettleSeqNo uint64
if invoice.Terms.Settled { if invoice.Terms.State == ContractSettled {
nextSettleSeqNo, err = settleIndex.NextSequence() nextSettleSeqNo, err = settleIndex.NextSequence()
if err != nil { if err != nil {
return err return err

@ -2334,7 +2334,7 @@ func (l *channelLink) processRemoteAdds(fwdPkg *channeldb.FwdPkg,
// TODO(conner): track ownership of settlements to // TODO(conner): track ownership of settlements to
// properly recover from failures? or add batch invoice // properly recover from failures? or add batch invoice
// settlement // settlement
if invoice.Terms.Settled { if invoice.Terms.State != channeldb.ContractOpen {
log.Warnf("Accepting duplicate payment for "+ log.Warnf("Accepting duplicate payment for "+
"hash=%x", pd.RHash[:]) "hash=%x", pd.RHash[:])
} }

@ -236,7 +236,7 @@ func TestChannelLinkSingleHopPayment(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unable to get invoice: %v", err) t.Fatalf("unable to get invoice: %v", err)
} }
if !invoice.Terms.Settled { if invoice.Terms.State != channeldb.ContractSettled {
t.Fatal("alice invoice wasn't settled") t.Fatal("alice invoice wasn't settled")
} }
@ -467,7 +467,7 @@ func TestChannelLinkMultiHopPayment(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unable to get invoice: %v", err) t.Fatalf("unable to get invoice: %v", err)
} }
if !invoice.Terms.Settled { if invoice.Terms.State != channeldb.ContractSettled {
t.Fatal("carol invoice haven't been settled") t.Fatal("carol invoice haven't been settled")
} }
@ -818,7 +818,7 @@ func TestUpdateForwardingPolicy(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unable to get invoice: %v", err) t.Fatalf("unable to get invoice: %v", err)
} }
if !invoice.Terms.Settled { if invoice.Terms.State != channeldb.ContractSettled {
t.Fatal("carol invoice haven't been settled") t.Fatal("carol invoice haven't been settled")
} }
@ -937,7 +937,7 @@ func TestChannelLinkMultiHopInsufficientPayment(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unable to get invoice: %v", err) t.Fatalf("unable to get invoice: %v", err)
} }
if invoice.Terms.Settled { if invoice.Terms.State == channeldb.ContractSettled {
t.Fatal("carol invoice have been settled") t.Fatal("carol invoice have been settled")
} }
@ -1026,7 +1026,7 @@ func TestChannelLinkMultiHopUnknownPaymentHash(t *testing.T) {
// Check that alice invoice wasn't settled and bandwidth of htlc // Check that alice invoice wasn't settled and bandwidth of htlc
// links hasn't been changed. // links hasn't been changed.
if invoice.Terms.Settled { if invoice.Terms.State == channeldb.ContractSettled {
t.Fatal("alice invoice was settled") t.Fatal("alice invoice was settled")
} }
@ -1112,7 +1112,7 @@ func TestChannelLinkMultiHopUnknownNextHop(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unable to get invoice: %v", err) t.Fatalf("unable to get invoice: %v", err)
} }
if invoice.Terms.Settled { if invoice.Terms.State == channeldb.ContractSettled {
t.Fatal("carol invoice have been settled") t.Fatal("carol invoice have been settled")
} }
@ -1227,7 +1227,7 @@ func TestChannelLinkMultiHopDecodeError(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unable to get invoice: %v", err) t.Fatalf("unable to get invoice: %v", err)
} }
if invoice.Terms.Settled { if invoice.Terms.State == channeldb.ContractSettled {
t.Fatal("carol invoice have been settled") t.Fatal("carol invoice have been settled")
} }
@ -3332,7 +3332,7 @@ func TestChannelRetransmission(t *testing.T) {
err = errors.Errorf("unable to get invoice: %v", err) err = errors.Errorf("unable to get invoice: %v", err)
continue continue
} }
if !invoice.Terms.Settled { if invoice.Terms.State != channeldb.ContractSettled {
err = errors.Errorf("alice invoice haven't been settled") err = errors.Errorf("alice invoice haven't been settled")
continue continue
} }
@ -3828,7 +3828,7 @@ func TestChannelLinkAcceptOverpay(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unable to get invoice: %v", err) t.Fatalf("unable to get invoice: %v", err)
} }
if !invoice.Terms.Settled { if invoice.Terms.State != channeldb.ContractSettled {
t.Fatal("carol invoice haven't been settled") t.Fatal("carol invoice haven't been settled")
} }

@ -720,11 +720,11 @@ func (i *mockInvoiceRegistry) SettleInvoice(rhash chainhash.Hash,
return fmt.Errorf("can't find mock invoice: %x", rhash[:]) return fmt.Errorf("can't find mock invoice: %x", rhash[:])
} }
if invoice.Terms.Settled { if invoice.Terms.State == channeldb.ContractSettled {
return nil return nil
} }
invoice.Terms.Settled = true invoice.Terms.State = channeldb.ContractSettled
invoice.AmtPaid = amt invoice.AmtPaid = amt
i.invoices[rhash] = invoice i.invoices[rhash] = invoice

@ -89,8 +89,7 @@ func (i *invoiceRegistry) Stop() {
// Only two event types are currently supported: newly created invoices, and // Only two event types are currently supported: newly created invoices, and
// instance where invoices are settled. // instance where invoices are settled.
type invoiceEvent struct { type invoiceEvent struct {
isSettle bool state channeldb.ContractState
invoice *channeldb.Invoice invoice *channeldb.Invoice
} }
@ -143,27 +142,27 @@ func (i *invoiceRegistry) invoiceEventNotifier() {
switch { switch {
// If we've already sent this settle event to // If we've already sent this settle event to
// the client, then we can skip this. // the client, then we can skip this.
case event.isSettle && case event.state == channeldb.ContractSettled &&
client.settleIndex >= invoice.SettleIndex: client.settleIndex >= invoice.SettleIndex:
continue continue
// Similarly, if we've already sent this add to // Similarly, if we've already sent this add to
// the client then we can skip this one. // the client then we can skip this one.
case !event.isSettle && case event.state == channeldb.ContractOpen &&
client.addIndex >= invoice.AddIndex: client.addIndex >= invoice.AddIndex:
continue continue
// These two states should never happen, but we // These two states should never happen, but we
// log them just in case so we can detect this // log them just in case so we can detect this
// instance. // instance.
case !event.isSettle && case event.state == channeldb.ContractOpen &&
client.addIndex+1 != invoice.AddIndex: client.addIndex+1 != invoice.AddIndex:
ltndLog.Warnf("client=%v for invoice "+ ltndLog.Warnf("client=%v for invoice "+
"notifications missed an update, "+ "notifications missed an update, "+
"add_index=%v, new add event index=%v", "add_index=%v, new add event index=%v",
clientID, client.addIndex, clientID, client.addIndex,
invoice.AddIndex) invoice.AddIndex)
case event.isSettle && case event.state == channeldb.ContractSettled &&
client.settleIndex+1 != invoice.SettleIndex: client.settleIndex+1 != invoice.SettleIndex:
ltndLog.Warnf("client=%v for invoice "+ ltndLog.Warnf("client=%v for invoice "+
"notifications missed an update, "+ "notifications missed an update, "+
@ -174,8 +173,8 @@ func (i *invoiceRegistry) invoiceEventNotifier() {
select { select {
case client.ntfnQueue.ChanIn() <- &invoiceEvent{ case client.ntfnQueue.ChanIn() <- &invoiceEvent{
isSettle: event.isSettle, state: event.state,
invoice: invoice, invoice: invoice,
}: }:
case <-i.quit: case <-i.quit:
return return
@ -187,10 +186,14 @@ func (i *invoiceRegistry) invoiceEventNotifier() {
// don't send a notification twice, which can // don't send a notification twice, which can
// happen if a new event is added while we're // happen if a new event is added while we're
// catching up a new client. // catching up a new client.
if event.isSettle { switch event.state {
case channeldb.ContractSettled:
client.settleIndex = invoice.SettleIndex client.settleIndex = invoice.SettleIndex
} else { case channeldb.ContractOpen:
client.addIndex = invoice.AddIndex client.addIndex = invoice.AddIndex
default:
ltndLog.Errorf("unknown invoice "+
"state: %v", event.state)
} }
} }
@ -225,8 +228,8 @@ func (i *invoiceRegistry) deliverBacklogEvents(client *invoiceSubscription) erro
select { select {
case client.ntfnQueue.ChanIn() <- &invoiceEvent{ case client.ntfnQueue.ChanIn() <- &invoiceEvent{
isSettle: false, state: channeldb.ContractOpen,
invoice: &addEvent, invoice: &addEvent,
}: }:
case <-i.quit: case <-i.quit:
return fmt.Errorf("registry shutting down") return fmt.Errorf("registry shutting down")
@ -239,8 +242,8 @@ func (i *invoiceRegistry) deliverBacklogEvents(client *invoiceSubscription) erro
select { select {
case client.ntfnQueue.ChanIn() <- &invoiceEvent{ case client.ntfnQueue.ChanIn() <- &invoiceEvent{
isSettle: true, state: channeldb.ContractSettled,
invoice: &settleEvent, invoice: &settleEvent,
}: }:
case <-i.quit: case <-i.quit:
return fmt.Errorf("registry shutting down") return fmt.Errorf("registry shutting down")
@ -296,7 +299,7 @@ func (i *invoiceRegistry) AddInvoice(invoice *channeldb.Invoice) (uint64, error)
// Now that we've added the invoice, we'll send dispatch a message to // Now that we've added the invoice, we'll send dispatch a message to
// notify the clients of this new invoice. // notify the clients of this new invoice.
i.notifyClients(invoice, false) i.notifyClients(invoice, channeldb.ContractOpen)
return addIndex, nil return addIndex, nil
} }
@ -365,17 +368,19 @@ func (i *invoiceRegistry) SettleInvoice(rHash chainhash.Hash,
ltndLog.Infof("Payment received: %v", spew.Sdump(invoice)) ltndLog.Infof("Payment received: %v", spew.Sdump(invoice))
i.notifyClients(invoice, true) i.notifyClients(invoice, channeldb.ContractSettled)
return nil return nil
} }
// notifyClients notifies all currently registered invoice notification clients // notifyClients notifies all currently registered invoice notification clients
// of a newly added/settled invoice. // of a newly added/settled invoice.
func (i *invoiceRegistry) notifyClients(invoice *channeldb.Invoice, settle bool) { func (i *invoiceRegistry) notifyClients(invoice *channeldb.Invoice,
state channeldb.ContractState) {
event := &invoiceEvent{ event := &invoiceEvent{
isSettle: settle, state: state,
invoice: invoice, invoice: invoice,
} }
select { select {
@ -483,9 +488,17 @@ func (i *invoiceRegistry) SubscribeNotifications(addIndex, settleIndex uint64) *
case ntfn := <-client.ntfnQueue.ChanOut(): case ntfn := <-client.ntfnQueue.ChanOut():
invoiceEvent := ntfn.(*invoiceEvent) invoiceEvent := ntfn.(*invoiceEvent)
targetChan := client.NewInvoices var targetChan chan *channeldb.Invoice
if invoiceEvent.isSettle { switch invoiceEvent.state {
case channeldb.ContractOpen:
targetChan = client.NewInvoices
case channeldb.ContractSettled:
targetChan = client.SettledInvoices targetChan = client.SettledInvoices
default:
ltndLog.Errorf("unknown invoice "+
"state: %v", invoiceEvent.state)
continue
} }
select { select {

@ -49,7 +49,7 @@ func (x AddressType) String() string {
return proto.EnumName(AddressType_name, int32(x)) return proto.EnumName(AddressType_name, int32(x))
} }
func (AddressType) EnumDescriptor() ([]byte, []int) { func (AddressType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{0} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{0}
} }
type ChannelCloseSummary_ClosureType int32 type ChannelCloseSummary_ClosureType int32
@ -84,7 +84,30 @@ func (x ChannelCloseSummary_ClosureType) String() string {
return proto.EnumName(ChannelCloseSummary_ClosureType_name, int32(x)) return proto.EnumName(ChannelCloseSummary_ClosureType_name, int32(x))
} }
func (ChannelCloseSummary_ClosureType) EnumDescriptor() ([]byte, []int) { func (ChannelCloseSummary_ClosureType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{38, 0} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{38, 0}
}
type Invoice_InvoiceState int32
const (
Invoice_OPEN Invoice_InvoiceState = 0
Invoice_SETTLED Invoice_InvoiceState = 1
)
var Invoice_InvoiceState_name = map[int32]string{
0: "OPEN",
1: "SETTLED",
}
var Invoice_InvoiceState_value = map[string]int32{
"OPEN": 0,
"SETTLED": 1,
}
func (x Invoice_InvoiceState) String() string {
return proto.EnumName(Invoice_InvoiceState_name, int32(x))
}
func (Invoice_InvoiceState) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{85, 0}
} }
type GenSeedRequest struct { type GenSeedRequest struct {
@ -105,7 +128,7 @@ func (m *GenSeedRequest) Reset() { *m = GenSeedRequest{} }
func (m *GenSeedRequest) String() string { return proto.CompactTextString(m) } func (m *GenSeedRequest) String() string { return proto.CompactTextString(m) }
func (*GenSeedRequest) ProtoMessage() {} func (*GenSeedRequest) ProtoMessage() {}
func (*GenSeedRequest) Descriptor() ([]byte, []int) { func (*GenSeedRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{0} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{0}
} }
func (m *GenSeedRequest) XXX_Unmarshal(b []byte) error { func (m *GenSeedRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GenSeedRequest.Unmarshal(m, b) return xxx_messageInfo_GenSeedRequest.Unmarshal(m, b)
@ -160,7 +183,7 @@ func (m *GenSeedResponse) Reset() { *m = GenSeedResponse{} }
func (m *GenSeedResponse) String() string { return proto.CompactTextString(m) } func (m *GenSeedResponse) String() string { return proto.CompactTextString(m) }
func (*GenSeedResponse) ProtoMessage() {} func (*GenSeedResponse) ProtoMessage() {}
func (*GenSeedResponse) Descriptor() ([]byte, []int) { func (*GenSeedResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{1} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{1}
} }
func (m *GenSeedResponse) XXX_Unmarshal(b []byte) error { func (m *GenSeedResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GenSeedResponse.Unmarshal(m, b) return xxx_messageInfo_GenSeedResponse.Unmarshal(m, b)
@ -225,7 +248,7 @@ func (m *InitWalletRequest) Reset() { *m = InitWalletRequest{} }
func (m *InitWalletRequest) String() string { return proto.CompactTextString(m) } func (m *InitWalletRequest) String() string { return proto.CompactTextString(m) }
func (*InitWalletRequest) ProtoMessage() {} func (*InitWalletRequest) ProtoMessage() {}
func (*InitWalletRequest) Descriptor() ([]byte, []int) { func (*InitWalletRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{2} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{2}
} }
func (m *InitWalletRequest) XXX_Unmarshal(b []byte) error { func (m *InitWalletRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InitWalletRequest.Unmarshal(m, b) return xxx_messageInfo_InitWalletRequest.Unmarshal(m, b)
@ -283,7 +306,7 @@ func (m *InitWalletResponse) Reset() { *m = InitWalletResponse{} }
func (m *InitWalletResponse) String() string { return proto.CompactTextString(m) } func (m *InitWalletResponse) String() string { return proto.CompactTextString(m) }
func (*InitWalletResponse) ProtoMessage() {} func (*InitWalletResponse) ProtoMessage() {}
func (*InitWalletResponse) Descriptor() ([]byte, []int) { func (*InitWalletResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{3} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{3}
} }
func (m *InitWalletResponse) XXX_Unmarshal(b []byte) error { func (m *InitWalletResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InitWalletResponse.Unmarshal(m, b) return xxx_messageInfo_InitWalletResponse.Unmarshal(m, b)
@ -325,7 +348,7 @@ func (m *UnlockWalletRequest) Reset() { *m = UnlockWalletRequest{} }
func (m *UnlockWalletRequest) String() string { return proto.CompactTextString(m) } func (m *UnlockWalletRequest) String() string { return proto.CompactTextString(m) }
func (*UnlockWalletRequest) ProtoMessage() {} func (*UnlockWalletRequest) ProtoMessage() {}
func (*UnlockWalletRequest) Descriptor() ([]byte, []int) { func (*UnlockWalletRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{4} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{4}
} }
func (m *UnlockWalletRequest) XXX_Unmarshal(b []byte) error { func (m *UnlockWalletRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnlockWalletRequest.Unmarshal(m, b) return xxx_messageInfo_UnlockWalletRequest.Unmarshal(m, b)
@ -369,7 +392,7 @@ func (m *UnlockWalletResponse) Reset() { *m = UnlockWalletResponse{} }
func (m *UnlockWalletResponse) String() string { return proto.CompactTextString(m) } func (m *UnlockWalletResponse) String() string { return proto.CompactTextString(m) }
func (*UnlockWalletResponse) ProtoMessage() {} func (*UnlockWalletResponse) ProtoMessage() {}
func (*UnlockWalletResponse) Descriptor() ([]byte, []int) { func (*UnlockWalletResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{5} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{5}
} }
func (m *UnlockWalletResponse) XXX_Unmarshal(b []byte) error { func (m *UnlockWalletResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnlockWalletResponse.Unmarshal(m, b) return xxx_messageInfo_UnlockWalletResponse.Unmarshal(m, b)
@ -407,7 +430,7 @@ func (m *ChangePasswordRequest) Reset() { *m = ChangePasswordRequest{} }
func (m *ChangePasswordRequest) String() string { return proto.CompactTextString(m) } func (m *ChangePasswordRequest) String() string { return proto.CompactTextString(m) }
func (*ChangePasswordRequest) ProtoMessage() {} func (*ChangePasswordRequest) ProtoMessage() {}
func (*ChangePasswordRequest) Descriptor() ([]byte, []int) { func (*ChangePasswordRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{6} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{6}
} }
func (m *ChangePasswordRequest) XXX_Unmarshal(b []byte) error { func (m *ChangePasswordRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChangePasswordRequest.Unmarshal(m, b) return xxx_messageInfo_ChangePasswordRequest.Unmarshal(m, b)
@ -451,7 +474,7 @@ func (m *ChangePasswordResponse) Reset() { *m = ChangePasswordResponse{}
func (m *ChangePasswordResponse) String() string { return proto.CompactTextString(m) } func (m *ChangePasswordResponse) String() string { return proto.CompactTextString(m) }
func (*ChangePasswordResponse) ProtoMessage() {} func (*ChangePasswordResponse) ProtoMessage() {}
func (*ChangePasswordResponse) Descriptor() ([]byte, []int) { func (*ChangePasswordResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{7} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{7}
} }
func (m *ChangePasswordResponse) XXX_Unmarshal(b []byte) error { func (m *ChangePasswordResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChangePasswordResponse.Unmarshal(m, b) return xxx_messageInfo_ChangePasswordResponse.Unmarshal(m, b)
@ -495,7 +518,7 @@ func (m *Utxo) Reset() { *m = Utxo{} }
func (m *Utxo) String() string { return proto.CompactTextString(m) } func (m *Utxo) String() string { return proto.CompactTextString(m) }
func (*Utxo) ProtoMessage() {} func (*Utxo) ProtoMessage() {}
func (*Utxo) Descriptor() ([]byte, []int) { func (*Utxo) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{8} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{8}
} }
func (m *Utxo) XXX_Unmarshal(b []byte) error { func (m *Utxo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Utxo.Unmarshal(m, b) return xxx_messageInfo_Utxo.Unmarshal(m, b)
@ -583,7 +606,7 @@ func (m *Transaction) Reset() { *m = Transaction{} }
func (m *Transaction) String() string { return proto.CompactTextString(m) } func (m *Transaction) String() string { return proto.CompactTextString(m) }
func (*Transaction) ProtoMessage() {} func (*Transaction) ProtoMessage() {}
func (*Transaction) Descriptor() ([]byte, []int) { func (*Transaction) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{9} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{9}
} }
func (m *Transaction) XXX_Unmarshal(b []byte) error { func (m *Transaction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Transaction.Unmarshal(m, b) return xxx_messageInfo_Transaction.Unmarshal(m, b)
@ -669,7 +692,7 @@ func (m *GetTransactionsRequest) Reset() { *m = GetTransactionsRequest{}
func (m *GetTransactionsRequest) String() string { return proto.CompactTextString(m) } func (m *GetTransactionsRequest) String() string { return proto.CompactTextString(m) }
func (*GetTransactionsRequest) ProtoMessage() {} func (*GetTransactionsRequest) ProtoMessage() {}
func (*GetTransactionsRequest) Descriptor() ([]byte, []int) { func (*GetTransactionsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{10} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{10}
} }
func (m *GetTransactionsRequest) XXX_Unmarshal(b []byte) error { func (m *GetTransactionsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTransactionsRequest.Unmarshal(m, b) return xxx_messageInfo_GetTransactionsRequest.Unmarshal(m, b)
@ -701,7 +724,7 @@ func (m *TransactionDetails) Reset() { *m = TransactionDetails{} }
func (m *TransactionDetails) String() string { return proto.CompactTextString(m) } func (m *TransactionDetails) String() string { return proto.CompactTextString(m) }
func (*TransactionDetails) ProtoMessage() {} func (*TransactionDetails) ProtoMessage() {}
func (*TransactionDetails) Descriptor() ([]byte, []int) { func (*TransactionDetails) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{11} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{11}
} }
func (m *TransactionDetails) XXX_Unmarshal(b []byte) error { func (m *TransactionDetails) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransactionDetails.Unmarshal(m, b) return xxx_messageInfo_TransactionDetails.Unmarshal(m, b)
@ -742,7 +765,7 @@ func (m *FeeLimit) Reset() { *m = FeeLimit{} }
func (m *FeeLimit) String() string { return proto.CompactTextString(m) } func (m *FeeLimit) String() string { return proto.CompactTextString(m) }
func (*FeeLimit) ProtoMessage() {} func (*FeeLimit) ProtoMessage() {}
func (*FeeLimit) Descriptor() ([]byte, []int) { func (*FeeLimit) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{12} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{12}
} }
func (m *FeeLimit) XXX_Unmarshal(b []byte) error { func (m *FeeLimit) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeLimit.Unmarshal(m, b) return xxx_messageInfo_FeeLimit.Unmarshal(m, b)
@ -898,7 +921,7 @@ func (m *SendRequest) Reset() { *m = SendRequest{} }
func (m *SendRequest) String() string { return proto.CompactTextString(m) } func (m *SendRequest) String() string { return proto.CompactTextString(m) }
func (*SendRequest) ProtoMessage() {} func (*SendRequest) ProtoMessage() {}
func (*SendRequest) Descriptor() ([]byte, []int) { func (*SendRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{13} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{13}
} }
func (m *SendRequest) XXX_Unmarshal(b []byte) error { func (m *SendRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendRequest.Unmarshal(m, b) return xxx_messageInfo_SendRequest.Unmarshal(m, b)
@ -988,7 +1011,7 @@ func (m *SendResponse) Reset() { *m = SendResponse{} }
func (m *SendResponse) String() string { return proto.CompactTextString(m) } func (m *SendResponse) String() string { return proto.CompactTextString(m) }
func (*SendResponse) ProtoMessage() {} func (*SendResponse) ProtoMessage() {}
func (*SendResponse) Descriptor() ([]byte, []int) { func (*SendResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{14} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{14}
} }
func (m *SendResponse) XXX_Unmarshal(b []byte) error { func (m *SendResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendResponse.Unmarshal(m, b) return xxx_messageInfo_SendResponse.Unmarshal(m, b)
@ -1052,7 +1075,7 @@ func (m *SendToRouteRequest) Reset() { *m = SendToRouteRequest{} }
func (m *SendToRouteRequest) String() string { return proto.CompactTextString(m) } func (m *SendToRouteRequest) String() string { return proto.CompactTextString(m) }
func (*SendToRouteRequest) ProtoMessage() {} func (*SendToRouteRequest) ProtoMessage() {}
func (*SendToRouteRequest) Descriptor() ([]byte, []int) { func (*SendToRouteRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{15} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{15}
} }
func (m *SendToRouteRequest) XXX_Unmarshal(b []byte) error { func (m *SendToRouteRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendToRouteRequest.Unmarshal(m, b) return xxx_messageInfo_SendToRouteRequest.Unmarshal(m, b)
@ -1109,7 +1132,7 @@ func (m *ChannelPoint) Reset() { *m = ChannelPoint{} }
func (m *ChannelPoint) String() string { return proto.CompactTextString(m) } func (m *ChannelPoint) String() string { return proto.CompactTextString(m) }
func (*ChannelPoint) ProtoMessage() {} func (*ChannelPoint) ProtoMessage() {}
func (*ChannelPoint) Descriptor() ([]byte, []int) { func (*ChannelPoint) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{16} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{16}
} }
func (m *ChannelPoint) XXX_Unmarshal(b []byte) error { func (m *ChannelPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelPoint.Unmarshal(m, b) return xxx_messageInfo_ChannelPoint.Unmarshal(m, b)
@ -1253,7 +1276,7 @@ func (m *LightningAddress) Reset() { *m = LightningAddress{} }
func (m *LightningAddress) String() string { return proto.CompactTextString(m) } func (m *LightningAddress) String() string { return proto.CompactTextString(m) }
func (*LightningAddress) ProtoMessage() {} func (*LightningAddress) ProtoMessage() {}
func (*LightningAddress) Descriptor() ([]byte, []int) { func (*LightningAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{17} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{17}
} }
func (m *LightningAddress) XXX_Unmarshal(b []byte) error { func (m *LightningAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LightningAddress.Unmarshal(m, b) return xxx_messageInfo_LightningAddress.Unmarshal(m, b)
@ -1303,7 +1326,7 @@ func (m *SendManyRequest) Reset() { *m = SendManyRequest{} }
func (m *SendManyRequest) String() string { return proto.CompactTextString(m) } func (m *SendManyRequest) String() string { return proto.CompactTextString(m) }
func (*SendManyRequest) ProtoMessage() {} func (*SendManyRequest) ProtoMessage() {}
func (*SendManyRequest) Descriptor() ([]byte, []int) { func (*SendManyRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{18} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{18}
} }
func (m *SendManyRequest) XXX_Unmarshal(b []byte) error { func (m *SendManyRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendManyRequest.Unmarshal(m, b) return xxx_messageInfo_SendManyRequest.Unmarshal(m, b)
@ -1356,7 +1379,7 @@ func (m *SendManyResponse) Reset() { *m = SendManyResponse{} }
func (m *SendManyResponse) String() string { return proto.CompactTextString(m) } func (m *SendManyResponse) String() string { return proto.CompactTextString(m) }
func (*SendManyResponse) ProtoMessage() {} func (*SendManyResponse) ProtoMessage() {}
func (*SendManyResponse) Descriptor() ([]byte, []int) { func (*SendManyResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{19} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{19}
} }
func (m *SendManyResponse) XXX_Unmarshal(b []byte) error { func (m *SendManyResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendManyResponse.Unmarshal(m, b) return xxx_messageInfo_SendManyResponse.Unmarshal(m, b)
@ -1401,7 +1424,7 @@ func (m *SendCoinsRequest) Reset() { *m = SendCoinsRequest{} }
func (m *SendCoinsRequest) String() string { return proto.CompactTextString(m) } func (m *SendCoinsRequest) String() string { return proto.CompactTextString(m) }
func (*SendCoinsRequest) ProtoMessage() {} func (*SendCoinsRequest) ProtoMessage() {}
func (*SendCoinsRequest) Descriptor() ([]byte, []int) { func (*SendCoinsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{20} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{20}
} }
func (m *SendCoinsRequest) XXX_Unmarshal(b []byte) error { func (m *SendCoinsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendCoinsRequest.Unmarshal(m, b) return xxx_messageInfo_SendCoinsRequest.Unmarshal(m, b)
@ -1461,7 +1484,7 @@ func (m *SendCoinsResponse) Reset() { *m = SendCoinsResponse{} }
func (m *SendCoinsResponse) String() string { return proto.CompactTextString(m) } func (m *SendCoinsResponse) String() string { return proto.CompactTextString(m) }
func (*SendCoinsResponse) ProtoMessage() {} func (*SendCoinsResponse) ProtoMessage() {}
func (*SendCoinsResponse) Descriptor() ([]byte, []int) { func (*SendCoinsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{21} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{21}
} }
func (m *SendCoinsResponse) XXX_Unmarshal(b []byte) error { func (m *SendCoinsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendCoinsResponse.Unmarshal(m, b) return xxx_messageInfo_SendCoinsResponse.Unmarshal(m, b)
@ -1502,7 +1525,7 @@ func (m *ListUnspentRequest) Reset() { *m = ListUnspentRequest{} }
func (m *ListUnspentRequest) String() string { return proto.CompactTextString(m) } func (m *ListUnspentRequest) String() string { return proto.CompactTextString(m) }
func (*ListUnspentRequest) ProtoMessage() {} func (*ListUnspentRequest) ProtoMessage() {}
func (*ListUnspentRequest) Descriptor() ([]byte, []int) { func (*ListUnspentRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{22} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{22}
} }
func (m *ListUnspentRequest) XXX_Unmarshal(b []byte) error { func (m *ListUnspentRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListUnspentRequest.Unmarshal(m, b) return xxx_messageInfo_ListUnspentRequest.Unmarshal(m, b)
@ -1548,7 +1571,7 @@ func (m *ListUnspentResponse) Reset() { *m = ListUnspentResponse{} }
func (m *ListUnspentResponse) String() string { return proto.CompactTextString(m) } func (m *ListUnspentResponse) String() string { return proto.CompactTextString(m) }
func (*ListUnspentResponse) ProtoMessage() {} func (*ListUnspentResponse) ProtoMessage() {}
func (*ListUnspentResponse) Descriptor() ([]byte, []int) { func (*ListUnspentResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{23} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{23}
} }
func (m *ListUnspentResponse) XXX_Unmarshal(b []byte) error { func (m *ListUnspentResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListUnspentResponse.Unmarshal(m, b) return xxx_messageInfo_ListUnspentResponse.Unmarshal(m, b)
@ -1587,7 +1610,7 @@ func (m *NewAddressRequest) Reset() { *m = NewAddressRequest{} }
func (m *NewAddressRequest) String() string { return proto.CompactTextString(m) } func (m *NewAddressRequest) String() string { return proto.CompactTextString(m) }
func (*NewAddressRequest) ProtoMessage() {} func (*NewAddressRequest) ProtoMessage() {}
func (*NewAddressRequest) Descriptor() ([]byte, []int) { func (*NewAddressRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{24} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{24}
} }
func (m *NewAddressRequest) XXX_Unmarshal(b []byte) error { func (m *NewAddressRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NewAddressRequest.Unmarshal(m, b) return xxx_messageInfo_NewAddressRequest.Unmarshal(m, b)
@ -1626,7 +1649,7 @@ func (m *NewAddressResponse) Reset() { *m = NewAddressResponse{} }
func (m *NewAddressResponse) String() string { return proto.CompactTextString(m) } func (m *NewAddressResponse) String() string { return proto.CompactTextString(m) }
func (*NewAddressResponse) ProtoMessage() {} func (*NewAddressResponse) ProtoMessage() {}
func (*NewAddressResponse) Descriptor() ([]byte, []int) { func (*NewAddressResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{25} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{25}
} }
func (m *NewAddressResponse) XXX_Unmarshal(b []byte) error { func (m *NewAddressResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NewAddressResponse.Unmarshal(m, b) return xxx_messageInfo_NewAddressResponse.Unmarshal(m, b)
@ -1665,7 +1688,7 @@ func (m *SignMessageRequest) Reset() { *m = SignMessageRequest{} }
func (m *SignMessageRequest) String() string { return proto.CompactTextString(m) } func (m *SignMessageRequest) String() string { return proto.CompactTextString(m) }
func (*SignMessageRequest) ProtoMessage() {} func (*SignMessageRequest) ProtoMessage() {}
func (*SignMessageRequest) Descriptor() ([]byte, []int) { func (*SignMessageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{26} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{26}
} }
func (m *SignMessageRequest) XXX_Unmarshal(b []byte) error { func (m *SignMessageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignMessageRequest.Unmarshal(m, b) return xxx_messageInfo_SignMessageRequest.Unmarshal(m, b)
@ -1704,7 +1727,7 @@ func (m *SignMessageResponse) Reset() { *m = SignMessageResponse{} }
func (m *SignMessageResponse) String() string { return proto.CompactTextString(m) } func (m *SignMessageResponse) String() string { return proto.CompactTextString(m) }
func (*SignMessageResponse) ProtoMessage() {} func (*SignMessageResponse) ProtoMessage() {}
func (*SignMessageResponse) Descriptor() ([]byte, []int) { func (*SignMessageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{27} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{27}
} }
func (m *SignMessageResponse) XXX_Unmarshal(b []byte) error { func (m *SignMessageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignMessageResponse.Unmarshal(m, b) return xxx_messageInfo_SignMessageResponse.Unmarshal(m, b)
@ -1745,7 +1768,7 @@ func (m *VerifyMessageRequest) Reset() { *m = VerifyMessageRequest{} }
func (m *VerifyMessageRequest) String() string { return proto.CompactTextString(m) } func (m *VerifyMessageRequest) String() string { return proto.CompactTextString(m) }
func (*VerifyMessageRequest) ProtoMessage() {} func (*VerifyMessageRequest) ProtoMessage() {}
func (*VerifyMessageRequest) Descriptor() ([]byte, []int) { func (*VerifyMessageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{28} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{28}
} }
func (m *VerifyMessageRequest) XXX_Unmarshal(b []byte) error { func (m *VerifyMessageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VerifyMessageRequest.Unmarshal(m, b) return xxx_messageInfo_VerifyMessageRequest.Unmarshal(m, b)
@ -1793,7 +1816,7 @@ func (m *VerifyMessageResponse) Reset() { *m = VerifyMessageResponse{} }
func (m *VerifyMessageResponse) String() string { return proto.CompactTextString(m) } func (m *VerifyMessageResponse) String() string { return proto.CompactTextString(m) }
func (*VerifyMessageResponse) ProtoMessage() {} func (*VerifyMessageResponse) ProtoMessage() {}
func (*VerifyMessageResponse) Descriptor() ([]byte, []int) { func (*VerifyMessageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{29} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{29}
} }
func (m *VerifyMessageResponse) XXX_Unmarshal(b []byte) error { func (m *VerifyMessageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VerifyMessageResponse.Unmarshal(m, b) return xxx_messageInfo_VerifyMessageResponse.Unmarshal(m, b)
@ -1842,7 +1865,7 @@ func (m *ConnectPeerRequest) Reset() { *m = ConnectPeerRequest{} }
func (m *ConnectPeerRequest) String() string { return proto.CompactTextString(m) } func (m *ConnectPeerRequest) String() string { return proto.CompactTextString(m) }
func (*ConnectPeerRequest) ProtoMessage() {} func (*ConnectPeerRequest) ProtoMessage() {}
func (*ConnectPeerRequest) Descriptor() ([]byte, []int) { func (*ConnectPeerRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{30} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{30}
} }
func (m *ConnectPeerRequest) XXX_Unmarshal(b []byte) error { func (m *ConnectPeerRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConnectPeerRequest.Unmarshal(m, b) return xxx_messageInfo_ConnectPeerRequest.Unmarshal(m, b)
@ -1886,7 +1909,7 @@ func (m *ConnectPeerResponse) Reset() { *m = ConnectPeerResponse{} }
func (m *ConnectPeerResponse) String() string { return proto.CompactTextString(m) } func (m *ConnectPeerResponse) String() string { return proto.CompactTextString(m) }
func (*ConnectPeerResponse) ProtoMessage() {} func (*ConnectPeerResponse) ProtoMessage() {}
func (*ConnectPeerResponse) Descriptor() ([]byte, []int) { func (*ConnectPeerResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{31} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{31}
} }
func (m *ConnectPeerResponse) XXX_Unmarshal(b []byte) error { func (m *ConnectPeerResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConnectPeerResponse.Unmarshal(m, b) return xxx_messageInfo_ConnectPeerResponse.Unmarshal(m, b)
@ -1918,7 +1941,7 @@ func (m *DisconnectPeerRequest) Reset() { *m = DisconnectPeerRequest{} }
func (m *DisconnectPeerRequest) String() string { return proto.CompactTextString(m) } func (m *DisconnectPeerRequest) String() string { return proto.CompactTextString(m) }
func (*DisconnectPeerRequest) ProtoMessage() {} func (*DisconnectPeerRequest) ProtoMessage() {}
func (*DisconnectPeerRequest) Descriptor() ([]byte, []int) { func (*DisconnectPeerRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{32} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{32}
} }
func (m *DisconnectPeerRequest) XXX_Unmarshal(b []byte) error { func (m *DisconnectPeerRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DisconnectPeerRequest.Unmarshal(m, b) return xxx_messageInfo_DisconnectPeerRequest.Unmarshal(m, b)
@ -1955,7 +1978,7 @@ func (m *DisconnectPeerResponse) Reset() { *m = DisconnectPeerResponse{}
func (m *DisconnectPeerResponse) String() string { return proto.CompactTextString(m) } func (m *DisconnectPeerResponse) String() string { return proto.CompactTextString(m) }
func (*DisconnectPeerResponse) ProtoMessage() {} func (*DisconnectPeerResponse) ProtoMessage() {}
func (*DisconnectPeerResponse) Descriptor() ([]byte, []int) { func (*DisconnectPeerResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{33} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{33}
} }
func (m *DisconnectPeerResponse) XXX_Unmarshal(b []byte) error { func (m *DisconnectPeerResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DisconnectPeerResponse.Unmarshal(m, b) return xxx_messageInfo_DisconnectPeerResponse.Unmarshal(m, b)
@ -1989,7 +2012,7 @@ func (m *HTLC) Reset() { *m = HTLC{} }
func (m *HTLC) String() string { return proto.CompactTextString(m) } func (m *HTLC) String() string { return proto.CompactTextString(m) }
func (*HTLC) ProtoMessage() {} func (*HTLC) ProtoMessage() {}
func (*HTLC) Descriptor() ([]byte, []int) { func (*HTLC) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{34} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{34}
} }
func (m *HTLC) XXX_Unmarshal(b []byte) error { func (m *HTLC) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HTLC.Unmarshal(m, b) return xxx_messageInfo_HTLC.Unmarshal(m, b)
@ -2101,7 +2124,7 @@ func (m *Channel) Reset() { *m = Channel{} }
func (m *Channel) String() string { return proto.CompactTextString(m) } func (m *Channel) String() string { return proto.CompactTextString(m) }
func (*Channel) ProtoMessage() {} func (*Channel) ProtoMessage() {}
func (*Channel) Descriptor() ([]byte, []int) { func (*Channel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{35} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{35}
} }
func (m *Channel) XXX_Unmarshal(b []byte) error { func (m *Channel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Channel.Unmarshal(m, b) return xxx_messageInfo_Channel.Unmarshal(m, b)
@ -2254,7 +2277,7 @@ func (m *ListChannelsRequest) Reset() { *m = ListChannelsRequest{} }
func (m *ListChannelsRequest) String() string { return proto.CompactTextString(m) } func (m *ListChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*ListChannelsRequest) ProtoMessage() {} func (*ListChannelsRequest) ProtoMessage() {}
func (*ListChannelsRequest) Descriptor() ([]byte, []int) { func (*ListChannelsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{36} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{36}
} }
func (m *ListChannelsRequest) XXX_Unmarshal(b []byte) error { func (m *ListChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListChannelsRequest.Unmarshal(m, b) return xxx_messageInfo_ListChannelsRequest.Unmarshal(m, b)
@ -2314,7 +2337,7 @@ func (m *ListChannelsResponse) Reset() { *m = ListChannelsResponse{} }
func (m *ListChannelsResponse) String() string { return proto.CompactTextString(m) } func (m *ListChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*ListChannelsResponse) ProtoMessage() {} func (*ListChannelsResponse) ProtoMessage() {}
func (*ListChannelsResponse) Descriptor() ([]byte, []int) { func (*ListChannelsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{37} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{37}
} }
func (m *ListChannelsResponse) XXX_Unmarshal(b []byte) error { func (m *ListChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListChannelsResponse.Unmarshal(m, b) return xxx_messageInfo_ListChannelsResponse.Unmarshal(m, b)
@ -2371,7 +2394,7 @@ func (m *ChannelCloseSummary) Reset() { *m = ChannelCloseSummary{} }
func (m *ChannelCloseSummary) String() string { return proto.CompactTextString(m) } func (m *ChannelCloseSummary) String() string { return proto.CompactTextString(m) }
func (*ChannelCloseSummary) ProtoMessage() {} func (*ChannelCloseSummary) ProtoMessage() {}
func (*ChannelCloseSummary) Descriptor() ([]byte, []int) { func (*ChannelCloseSummary) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{38} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{38}
} }
func (m *ChannelCloseSummary) XXX_Unmarshal(b []byte) error { func (m *ChannelCloseSummary) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelCloseSummary.Unmarshal(m, b) return xxx_messageInfo_ChannelCloseSummary.Unmarshal(m, b)
@ -2477,7 +2500,7 @@ func (m *ClosedChannelsRequest) Reset() { *m = ClosedChannelsRequest{} }
func (m *ClosedChannelsRequest) String() string { return proto.CompactTextString(m) } func (m *ClosedChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelsRequest) ProtoMessage() {} func (*ClosedChannelsRequest) ProtoMessage() {}
func (*ClosedChannelsRequest) Descriptor() ([]byte, []int) { func (*ClosedChannelsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{39} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{39}
} }
func (m *ClosedChannelsRequest) XXX_Unmarshal(b []byte) error { func (m *ClosedChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelsRequest.Unmarshal(m, b) return xxx_messageInfo_ClosedChannelsRequest.Unmarshal(m, b)
@ -2550,7 +2573,7 @@ func (m *ClosedChannelsResponse) Reset() { *m = ClosedChannelsResponse{}
func (m *ClosedChannelsResponse) String() string { return proto.CompactTextString(m) } func (m *ClosedChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelsResponse) ProtoMessage() {} func (*ClosedChannelsResponse) ProtoMessage() {}
func (*ClosedChannelsResponse) Descriptor() ([]byte, []int) { func (*ClosedChannelsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{40} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{40}
} }
func (m *ClosedChannelsResponse) XXX_Unmarshal(b []byte) error { func (m *ClosedChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelsResponse.Unmarshal(m, b) return xxx_messageInfo_ClosedChannelsResponse.Unmarshal(m, b)
@ -2603,7 +2626,7 @@ func (m *Peer) Reset() { *m = Peer{} }
func (m *Peer) String() string { return proto.CompactTextString(m) } func (m *Peer) String() string { return proto.CompactTextString(m) }
func (*Peer) ProtoMessage() {} func (*Peer) ProtoMessage() {}
func (*Peer) Descriptor() ([]byte, []int) { func (*Peer) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{41} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{41}
} }
func (m *Peer) XXX_Unmarshal(b []byte) error { func (m *Peer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Peer.Unmarshal(m, b) return xxx_messageInfo_Peer.Unmarshal(m, b)
@ -2689,7 +2712,7 @@ func (m *ListPeersRequest) Reset() { *m = ListPeersRequest{} }
func (m *ListPeersRequest) String() string { return proto.CompactTextString(m) } func (m *ListPeersRequest) String() string { return proto.CompactTextString(m) }
func (*ListPeersRequest) ProtoMessage() {} func (*ListPeersRequest) ProtoMessage() {}
func (*ListPeersRequest) Descriptor() ([]byte, []int) { func (*ListPeersRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{42} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{42}
} }
func (m *ListPeersRequest) XXX_Unmarshal(b []byte) error { func (m *ListPeersRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPeersRequest.Unmarshal(m, b) return xxx_messageInfo_ListPeersRequest.Unmarshal(m, b)
@ -2721,7 +2744,7 @@ func (m *ListPeersResponse) Reset() { *m = ListPeersResponse{} }
func (m *ListPeersResponse) String() string { return proto.CompactTextString(m) } func (m *ListPeersResponse) String() string { return proto.CompactTextString(m) }
func (*ListPeersResponse) ProtoMessage() {} func (*ListPeersResponse) ProtoMessage() {}
func (*ListPeersResponse) Descriptor() ([]byte, []int) { func (*ListPeersResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{43} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{43}
} }
func (m *ListPeersResponse) XXX_Unmarshal(b []byte) error { func (m *ListPeersResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPeersResponse.Unmarshal(m, b) return xxx_messageInfo_ListPeersResponse.Unmarshal(m, b)
@ -2758,7 +2781,7 @@ func (m *GetInfoRequest) Reset() { *m = GetInfoRequest{} }
func (m *GetInfoRequest) String() string { return proto.CompactTextString(m) } func (m *GetInfoRequest) String() string { return proto.CompactTextString(m) }
func (*GetInfoRequest) ProtoMessage() {} func (*GetInfoRequest) ProtoMessage() {}
func (*GetInfoRequest) Descriptor() ([]byte, []int) { func (*GetInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{44} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{44}
} }
func (m *GetInfoRequest) XXX_Unmarshal(b []byte) error { func (m *GetInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetInfoRequest.Unmarshal(m, b) return xxx_messageInfo_GetInfoRequest.Unmarshal(m, b)
@ -2816,7 +2839,7 @@ func (m *GetInfoResponse) Reset() { *m = GetInfoResponse{} }
func (m *GetInfoResponse) String() string { return proto.CompactTextString(m) } func (m *GetInfoResponse) String() string { return proto.CompactTextString(m) }
func (*GetInfoResponse) ProtoMessage() {} func (*GetInfoResponse) ProtoMessage() {}
func (*GetInfoResponse) Descriptor() ([]byte, []int) { func (*GetInfoResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{45} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{45}
} }
func (m *GetInfoResponse) XXX_Unmarshal(b []byte) error { func (m *GetInfoResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetInfoResponse.Unmarshal(m, b) return xxx_messageInfo_GetInfoResponse.Unmarshal(m, b)
@ -2947,7 +2970,7 @@ func (m *ConfirmationUpdate) Reset() { *m = ConfirmationUpdate{} }
func (m *ConfirmationUpdate) String() string { return proto.CompactTextString(m) } func (m *ConfirmationUpdate) String() string { return proto.CompactTextString(m) }
func (*ConfirmationUpdate) ProtoMessage() {} func (*ConfirmationUpdate) ProtoMessage() {}
func (*ConfirmationUpdate) Descriptor() ([]byte, []int) { func (*ConfirmationUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{46} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{46}
} }
func (m *ConfirmationUpdate) XXX_Unmarshal(b []byte) error { func (m *ConfirmationUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConfirmationUpdate.Unmarshal(m, b) return xxx_messageInfo_ConfirmationUpdate.Unmarshal(m, b)
@ -2999,7 +3022,7 @@ func (m *ChannelOpenUpdate) Reset() { *m = ChannelOpenUpdate{} }
func (m *ChannelOpenUpdate) String() string { return proto.CompactTextString(m) } func (m *ChannelOpenUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelOpenUpdate) ProtoMessage() {} func (*ChannelOpenUpdate) ProtoMessage() {}
func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) { func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{47} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{47}
} }
func (m *ChannelOpenUpdate) XXX_Unmarshal(b []byte) error { func (m *ChannelOpenUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelOpenUpdate.Unmarshal(m, b) return xxx_messageInfo_ChannelOpenUpdate.Unmarshal(m, b)
@ -3038,7 +3061,7 @@ func (m *ChannelCloseUpdate) Reset() { *m = ChannelCloseUpdate{} }
func (m *ChannelCloseUpdate) String() string { return proto.CompactTextString(m) } func (m *ChannelCloseUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelCloseUpdate) ProtoMessage() {} func (*ChannelCloseUpdate) ProtoMessage() {}
func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) { func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{48} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{48}
} }
func (m *ChannelCloseUpdate) XXX_Unmarshal(b []byte) error { func (m *ChannelCloseUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelCloseUpdate.Unmarshal(m, b) return xxx_messageInfo_ChannelCloseUpdate.Unmarshal(m, b)
@ -3093,7 +3116,7 @@ func (m *CloseChannelRequest) Reset() { *m = CloseChannelRequest{} }
func (m *CloseChannelRequest) String() string { return proto.CompactTextString(m) } func (m *CloseChannelRequest) String() string { return proto.CompactTextString(m) }
func (*CloseChannelRequest) ProtoMessage() {} func (*CloseChannelRequest) ProtoMessage() {}
func (*CloseChannelRequest) Descriptor() ([]byte, []int) { func (*CloseChannelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{49} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{49}
} }
func (m *CloseChannelRequest) XXX_Unmarshal(b []byte) error { func (m *CloseChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CloseChannelRequest.Unmarshal(m, b) return xxx_messageInfo_CloseChannelRequest.Unmarshal(m, b)
@ -3155,7 +3178,7 @@ func (m *CloseStatusUpdate) Reset() { *m = CloseStatusUpdate{} }
func (m *CloseStatusUpdate) String() string { return proto.CompactTextString(m) } func (m *CloseStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*CloseStatusUpdate) ProtoMessage() {} func (*CloseStatusUpdate) ProtoMessage() {}
func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { func (*CloseStatusUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{50} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{50}
} }
func (m *CloseStatusUpdate) XXX_Unmarshal(b []byte) error { func (m *CloseStatusUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CloseStatusUpdate.Unmarshal(m, b) return xxx_messageInfo_CloseStatusUpdate.Unmarshal(m, b)
@ -3298,7 +3321,7 @@ func (m *PendingUpdate) Reset() { *m = PendingUpdate{} }
func (m *PendingUpdate) String() string { return proto.CompactTextString(m) } func (m *PendingUpdate) String() string { return proto.CompactTextString(m) }
func (*PendingUpdate) ProtoMessage() {} func (*PendingUpdate) ProtoMessage() {}
func (*PendingUpdate) Descriptor() ([]byte, []int) { func (*PendingUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{51} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{51}
} }
func (m *PendingUpdate) XXX_Unmarshal(b []byte) error { func (m *PendingUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingUpdate.Unmarshal(m, b) return xxx_messageInfo_PendingUpdate.Unmarshal(m, b)
@ -3364,7 +3387,7 @@ func (m *OpenChannelRequest) Reset() { *m = OpenChannelRequest{} }
func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) } func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) }
func (*OpenChannelRequest) ProtoMessage() {} func (*OpenChannelRequest) ProtoMessage() {}
func (*OpenChannelRequest) Descriptor() ([]byte, []int) { func (*OpenChannelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{52} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{52}
} }
func (m *OpenChannelRequest) XXX_Unmarshal(b []byte) error { func (m *OpenChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OpenChannelRequest.Unmarshal(m, b) return xxx_messageInfo_OpenChannelRequest.Unmarshal(m, b)
@ -3475,7 +3498,7 @@ func (m *OpenStatusUpdate) Reset() { *m = OpenStatusUpdate{} }
func (m *OpenStatusUpdate) String() string { return proto.CompactTextString(m) } func (m *OpenStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*OpenStatusUpdate) ProtoMessage() {} func (*OpenStatusUpdate) ProtoMessage() {}
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { func (*OpenStatusUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{53} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{53}
} }
func (m *OpenStatusUpdate) XXX_Unmarshal(b []byte) error { func (m *OpenStatusUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OpenStatusUpdate.Unmarshal(m, b) return xxx_messageInfo_OpenStatusUpdate.Unmarshal(m, b)
@ -3631,7 +3654,7 @@ func (m *PendingHTLC) Reset() { *m = PendingHTLC{} }
func (m *PendingHTLC) String() string { return proto.CompactTextString(m) } func (m *PendingHTLC) String() string { return proto.CompactTextString(m) }
func (*PendingHTLC) ProtoMessage() {} func (*PendingHTLC) ProtoMessage() {}
func (*PendingHTLC) Descriptor() ([]byte, []int) { func (*PendingHTLC) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{54} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{54}
} }
func (m *PendingHTLC) XXX_Unmarshal(b []byte) error { func (m *PendingHTLC) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingHTLC.Unmarshal(m, b) return xxx_messageInfo_PendingHTLC.Unmarshal(m, b)
@ -3703,7 +3726,7 @@ func (m *PendingChannelsRequest) Reset() { *m = PendingChannelsRequest{}
func (m *PendingChannelsRequest) String() string { return proto.CompactTextString(m) } func (m *PendingChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsRequest) ProtoMessage() {} func (*PendingChannelsRequest) ProtoMessage() {}
func (*PendingChannelsRequest) Descriptor() ([]byte, []int) { func (*PendingChannelsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{55} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{55}
} }
func (m *PendingChannelsRequest) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsRequest.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsRequest.Unmarshal(m, b)
@ -3743,7 +3766,7 @@ func (m *PendingChannelsResponse) Reset() { *m = PendingChannelsResponse
func (m *PendingChannelsResponse) String() string { return proto.CompactTextString(m) } func (m *PendingChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse) ProtoMessage() {} func (*PendingChannelsResponse) ProtoMessage() {}
func (*PendingChannelsResponse) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{56} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{56}
} }
func (m *PendingChannelsResponse) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse.Unmarshal(m, b)
@ -3815,7 +3838,7 @@ func (m *PendingChannelsResponse_PendingChannel) Reset() {
func (m *PendingChannelsResponse_PendingChannel) String() string { return proto.CompactTextString(m) } func (m *PendingChannelsResponse_PendingChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse_PendingChannel) ProtoMessage() {} func (*PendingChannelsResponse_PendingChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_PendingChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{56, 0} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{56, 0}
} }
func (m *PendingChannelsResponse_PendingChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_PendingChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_PendingChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_PendingChannel.Unmarshal(m, b)
@ -3902,7 +3925,7 @@ func (m *PendingChannelsResponse_PendingOpenChannel) String() string {
} }
func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {} func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{56, 1} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{56, 1}
} }
func (m *PendingChannelsResponse_PendingOpenChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_PendingOpenChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_PendingOpenChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_PendingOpenChannel.Unmarshal(m, b)
@ -3975,7 +3998,7 @@ func (m *PendingChannelsResponse_WaitingCloseChannel) String() string {
} }
func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {} func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {}
func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{56, 2} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{56, 2}
} }
func (m *PendingChannelsResponse_WaitingCloseChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_WaitingCloseChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_WaitingCloseChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_WaitingCloseChannel.Unmarshal(m, b)
@ -4023,7 +4046,7 @@ func (m *PendingChannelsResponse_ClosedChannel) Reset() { *m = PendingCh
func (m *PendingChannelsResponse_ClosedChannel) String() string { return proto.CompactTextString(m) } func (m *PendingChannelsResponse_ClosedChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse_ClosedChannel) ProtoMessage() {} func (*PendingChannelsResponse_ClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ClosedChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_ClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{56, 3} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{56, 3}
} }
func (m *PendingChannelsResponse_ClosedChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_ClosedChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_ClosedChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_ClosedChannel.Unmarshal(m, b)
@ -4087,7 +4110,7 @@ func (m *PendingChannelsResponse_ForceClosedChannel) String() string {
} }
func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {} func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{56, 4} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{56, 4}
} }
func (m *PendingChannelsResponse_ForceClosedChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_ForceClosedChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_ForceClosedChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_ForceClosedChannel.Unmarshal(m, b)
@ -4166,7 +4189,7 @@ func (m *WalletBalanceRequest) Reset() { *m = WalletBalanceRequest{} }
func (m *WalletBalanceRequest) String() string { return proto.CompactTextString(m) } func (m *WalletBalanceRequest) String() string { return proto.CompactTextString(m) }
func (*WalletBalanceRequest) ProtoMessage() {} func (*WalletBalanceRequest) ProtoMessage() {}
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { func (*WalletBalanceRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{57} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{57}
} }
func (m *WalletBalanceRequest) XXX_Unmarshal(b []byte) error { func (m *WalletBalanceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WalletBalanceRequest.Unmarshal(m, b) return xxx_messageInfo_WalletBalanceRequest.Unmarshal(m, b)
@ -4202,7 +4225,7 @@ func (m *WalletBalanceResponse) Reset() { *m = WalletBalanceResponse{} }
func (m *WalletBalanceResponse) String() string { return proto.CompactTextString(m) } func (m *WalletBalanceResponse) String() string { return proto.CompactTextString(m) }
func (*WalletBalanceResponse) ProtoMessage() {} func (*WalletBalanceResponse) ProtoMessage() {}
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { func (*WalletBalanceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{58} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{58}
} }
func (m *WalletBalanceResponse) XXX_Unmarshal(b []byte) error { func (m *WalletBalanceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WalletBalanceResponse.Unmarshal(m, b) return xxx_messageInfo_WalletBalanceResponse.Unmarshal(m, b)
@ -4253,7 +4276,7 @@ func (m *ChannelBalanceRequest) Reset() { *m = ChannelBalanceRequest{} }
func (m *ChannelBalanceRequest) String() string { return proto.CompactTextString(m) } func (m *ChannelBalanceRequest) String() string { return proto.CompactTextString(m) }
func (*ChannelBalanceRequest) ProtoMessage() {} func (*ChannelBalanceRequest) ProtoMessage() {}
func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{59} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{59}
} }
func (m *ChannelBalanceRequest) XXX_Unmarshal(b []byte) error { func (m *ChannelBalanceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBalanceRequest.Unmarshal(m, b) return xxx_messageInfo_ChannelBalanceRequest.Unmarshal(m, b)
@ -4287,7 +4310,7 @@ func (m *ChannelBalanceResponse) Reset() { *m = ChannelBalanceResponse{}
func (m *ChannelBalanceResponse) String() string { return proto.CompactTextString(m) } func (m *ChannelBalanceResponse) String() string { return proto.CompactTextString(m) }
func (*ChannelBalanceResponse) ProtoMessage() {} func (*ChannelBalanceResponse) ProtoMessage() {}
func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{60} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{60}
} }
func (m *ChannelBalanceResponse) XXX_Unmarshal(b []byte) error { func (m *ChannelBalanceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBalanceResponse.Unmarshal(m, b) return xxx_messageInfo_ChannelBalanceResponse.Unmarshal(m, b)
@ -4345,7 +4368,7 @@ func (m *QueryRoutesRequest) Reset() { *m = QueryRoutesRequest{} }
func (m *QueryRoutesRequest) String() string { return proto.CompactTextString(m) } func (m *QueryRoutesRequest) String() string { return proto.CompactTextString(m) }
func (*QueryRoutesRequest) ProtoMessage() {} func (*QueryRoutesRequest) ProtoMessage() {}
func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { func (*QueryRoutesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{61} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{61}
} }
func (m *QueryRoutesRequest) XXX_Unmarshal(b []byte) error { func (m *QueryRoutesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QueryRoutesRequest.Unmarshal(m, b) return xxx_messageInfo_QueryRoutesRequest.Unmarshal(m, b)
@ -4411,7 +4434,7 @@ func (m *QueryRoutesResponse) Reset() { *m = QueryRoutesResponse{} }
func (m *QueryRoutesResponse) String() string { return proto.CompactTextString(m) } func (m *QueryRoutesResponse) String() string { return proto.CompactTextString(m) }
func (*QueryRoutesResponse) ProtoMessage() {} func (*QueryRoutesResponse) ProtoMessage() {}
func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { func (*QueryRoutesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{62} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{62}
} }
func (m *QueryRoutesResponse) XXX_Unmarshal(b []byte) error { func (m *QueryRoutesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QueryRoutesResponse.Unmarshal(m, b) return xxx_messageInfo_QueryRoutesResponse.Unmarshal(m, b)
@ -4463,7 +4486,7 @@ func (m *Hop) Reset() { *m = Hop{} }
func (m *Hop) String() string { return proto.CompactTextString(m) } func (m *Hop) String() string { return proto.CompactTextString(m) }
func (*Hop) ProtoMessage() {} func (*Hop) ProtoMessage() {}
func (*Hop) Descriptor() ([]byte, []int) { func (*Hop) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{63} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{63}
} }
func (m *Hop) XXX_Unmarshal(b []byte) error { func (m *Hop) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Hop.Unmarshal(m, b) return xxx_messageInfo_Hop.Unmarshal(m, b)
@ -4584,7 +4607,7 @@ func (m *Route) Reset() { *m = Route{} }
func (m *Route) String() string { return proto.CompactTextString(m) } func (m *Route) String() string { return proto.CompactTextString(m) }
func (*Route) ProtoMessage() {} func (*Route) ProtoMessage() {}
func (*Route) Descriptor() ([]byte, []int) { func (*Route) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{64} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{64}
} }
func (m *Route) XXX_Unmarshal(b []byte) error { func (m *Route) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Route.Unmarshal(m, b) return xxx_messageInfo_Route.Unmarshal(m, b)
@ -4660,7 +4683,7 @@ func (m *NodeInfoRequest) Reset() { *m = NodeInfoRequest{} }
func (m *NodeInfoRequest) String() string { return proto.CompactTextString(m) } func (m *NodeInfoRequest) String() string { return proto.CompactTextString(m) }
func (*NodeInfoRequest) ProtoMessage() {} func (*NodeInfoRequest) ProtoMessage() {}
func (*NodeInfoRequest) Descriptor() ([]byte, []int) { func (*NodeInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{65} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{65}
} }
func (m *NodeInfoRequest) XXX_Unmarshal(b []byte) error { func (m *NodeInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeInfoRequest.Unmarshal(m, b) return xxx_messageInfo_NodeInfoRequest.Unmarshal(m, b)
@ -4705,7 +4728,7 @@ func (m *NodeInfo) Reset() { *m = NodeInfo{} }
func (m *NodeInfo) String() string { return proto.CompactTextString(m) } func (m *NodeInfo) String() string { return proto.CompactTextString(m) }
func (*NodeInfo) ProtoMessage() {} func (*NodeInfo) ProtoMessage() {}
func (*NodeInfo) Descriptor() ([]byte, []int) { func (*NodeInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{66} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{66}
} }
func (m *NodeInfo) XXX_Unmarshal(b []byte) error { func (m *NodeInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeInfo.Unmarshal(m, b) return xxx_messageInfo_NodeInfo.Unmarshal(m, b)
@ -4766,7 +4789,7 @@ func (m *LightningNode) Reset() { *m = LightningNode{} }
func (m *LightningNode) String() string { return proto.CompactTextString(m) } func (m *LightningNode) String() string { return proto.CompactTextString(m) }
func (*LightningNode) ProtoMessage() {} func (*LightningNode) ProtoMessage() {}
func (*LightningNode) Descriptor() ([]byte, []int) { func (*LightningNode) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{67} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{67}
} }
func (m *LightningNode) XXX_Unmarshal(b []byte) error { func (m *LightningNode) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LightningNode.Unmarshal(m, b) return xxx_messageInfo_LightningNode.Unmarshal(m, b)
@ -4833,7 +4856,7 @@ func (m *NodeAddress) Reset() { *m = NodeAddress{} }
func (m *NodeAddress) String() string { return proto.CompactTextString(m) } func (m *NodeAddress) String() string { return proto.CompactTextString(m) }
func (*NodeAddress) ProtoMessage() {} func (*NodeAddress) ProtoMessage() {}
func (*NodeAddress) Descriptor() ([]byte, []int) { func (*NodeAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{68} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{68}
} }
func (m *NodeAddress) XXX_Unmarshal(b []byte) error { func (m *NodeAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeAddress.Unmarshal(m, b) return xxx_messageInfo_NodeAddress.Unmarshal(m, b)
@ -4882,7 +4905,7 @@ func (m *RoutingPolicy) Reset() { *m = RoutingPolicy{} }
func (m *RoutingPolicy) String() string { return proto.CompactTextString(m) } func (m *RoutingPolicy) String() string { return proto.CompactTextString(m) }
func (*RoutingPolicy) ProtoMessage() {} func (*RoutingPolicy) ProtoMessage() {}
func (*RoutingPolicy) Descriptor() ([]byte, []int) { func (*RoutingPolicy) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{69} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{69}
} }
func (m *RoutingPolicy) XXX_Unmarshal(b []byte) error { func (m *RoutingPolicy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RoutingPolicy.Unmarshal(m, b) return xxx_messageInfo_RoutingPolicy.Unmarshal(m, b)
@ -4965,7 +4988,7 @@ func (m *ChannelEdge) Reset() { *m = ChannelEdge{} }
func (m *ChannelEdge) String() string { return proto.CompactTextString(m) } func (m *ChannelEdge) String() string { return proto.CompactTextString(m) }
func (*ChannelEdge) ProtoMessage() {} func (*ChannelEdge) ProtoMessage() {}
func (*ChannelEdge) Descriptor() ([]byte, []int) { func (*ChannelEdge) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{70} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{70}
} }
func (m *ChannelEdge) XXX_Unmarshal(b []byte) error { func (m *ChannelEdge) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEdge.Unmarshal(m, b) return xxx_messageInfo_ChannelEdge.Unmarshal(m, b)
@ -5056,7 +5079,7 @@ func (m *ChannelGraphRequest) Reset() { *m = ChannelGraphRequest{} }
func (m *ChannelGraphRequest) String() string { return proto.CompactTextString(m) } func (m *ChannelGraphRequest) String() string { return proto.CompactTextString(m) }
func (*ChannelGraphRequest) ProtoMessage() {} func (*ChannelGraphRequest) ProtoMessage() {}
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { func (*ChannelGraphRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{71} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{71}
} }
func (m *ChannelGraphRequest) XXX_Unmarshal(b []byte) error { func (m *ChannelGraphRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelGraphRequest.Unmarshal(m, b) return xxx_messageInfo_ChannelGraphRequest.Unmarshal(m, b)
@ -5098,7 +5121,7 @@ func (m *ChannelGraph) Reset() { *m = ChannelGraph{} }
func (m *ChannelGraph) String() string { return proto.CompactTextString(m) } func (m *ChannelGraph) String() string { return proto.CompactTextString(m) }
func (*ChannelGraph) ProtoMessage() {} func (*ChannelGraph) ProtoMessage() {}
func (*ChannelGraph) Descriptor() ([]byte, []int) { func (*ChannelGraph) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{72} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{72}
} }
func (m *ChannelGraph) XXX_Unmarshal(b []byte) error { func (m *ChannelGraph) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelGraph.Unmarshal(m, b) return xxx_messageInfo_ChannelGraph.Unmarshal(m, b)
@ -5147,7 +5170,7 @@ func (m *ChanInfoRequest) Reset() { *m = ChanInfoRequest{} }
func (m *ChanInfoRequest) String() string { return proto.CompactTextString(m) } func (m *ChanInfoRequest) String() string { return proto.CompactTextString(m) }
func (*ChanInfoRequest) ProtoMessage() {} func (*ChanInfoRequest) ProtoMessage() {}
func (*ChanInfoRequest) Descriptor() ([]byte, []int) { func (*ChanInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{73} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{73}
} }
func (m *ChanInfoRequest) XXX_Unmarshal(b []byte) error { func (m *ChanInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChanInfoRequest.Unmarshal(m, b) return xxx_messageInfo_ChanInfoRequest.Unmarshal(m, b)
@ -5184,7 +5207,7 @@ func (m *NetworkInfoRequest) Reset() { *m = NetworkInfoRequest{} }
func (m *NetworkInfoRequest) String() string { return proto.CompactTextString(m) } func (m *NetworkInfoRequest) String() string { return proto.CompactTextString(m) }
func (*NetworkInfoRequest) ProtoMessage() {} func (*NetworkInfoRequest) ProtoMessage() {}
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { func (*NetworkInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{74} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{74}
} }
func (m *NetworkInfoRequest) XXX_Unmarshal(b []byte) error { func (m *NetworkInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkInfoRequest.Unmarshal(m, b) return xxx_messageInfo_NetworkInfoRequest.Unmarshal(m, b)
@ -5223,7 +5246,7 @@ func (m *NetworkInfo) Reset() { *m = NetworkInfo{} }
func (m *NetworkInfo) String() string { return proto.CompactTextString(m) } func (m *NetworkInfo) String() string { return proto.CompactTextString(m) }
func (*NetworkInfo) ProtoMessage() {} func (*NetworkInfo) ProtoMessage() {}
func (*NetworkInfo) Descriptor() ([]byte, []int) { func (*NetworkInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{75} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{75}
} }
func (m *NetworkInfo) XXX_Unmarshal(b []byte) error { func (m *NetworkInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkInfo.Unmarshal(m, b) return xxx_messageInfo_NetworkInfo.Unmarshal(m, b)
@ -5316,7 +5339,7 @@ func (m *StopRequest) Reset() { *m = StopRequest{} }
func (m *StopRequest) String() string { return proto.CompactTextString(m) } func (m *StopRequest) String() string { return proto.CompactTextString(m) }
func (*StopRequest) ProtoMessage() {} func (*StopRequest) ProtoMessage() {}
func (*StopRequest) Descriptor() ([]byte, []int) { func (*StopRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{76} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{76}
} }
func (m *StopRequest) XXX_Unmarshal(b []byte) error { func (m *StopRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StopRequest.Unmarshal(m, b) return xxx_messageInfo_StopRequest.Unmarshal(m, b)
@ -5346,7 +5369,7 @@ func (m *StopResponse) Reset() { *m = StopResponse{} }
func (m *StopResponse) String() string { return proto.CompactTextString(m) } func (m *StopResponse) String() string { return proto.CompactTextString(m) }
func (*StopResponse) ProtoMessage() {} func (*StopResponse) ProtoMessage() {}
func (*StopResponse) Descriptor() ([]byte, []int) { func (*StopResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{77} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{77}
} }
func (m *StopResponse) XXX_Unmarshal(b []byte) error { func (m *StopResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StopResponse.Unmarshal(m, b) return xxx_messageInfo_StopResponse.Unmarshal(m, b)
@ -5376,7 +5399,7 @@ func (m *GraphTopologySubscription) Reset() { *m = GraphTopologySubscrip
func (m *GraphTopologySubscription) String() string { return proto.CompactTextString(m) } func (m *GraphTopologySubscription) String() string { return proto.CompactTextString(m) }
func (*GraphTopologySubscription) ProtoMessage() {} func (*GraphTopologySubscription) ProtoMessage() {}
func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { func (*GraphTopologySubscription) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{78} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{78}
} }
func (m *GraphTopologySubscription) XXX_Unmarshal(b []byte) error { func (m *GraphTopologySubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphTopologySubscription.Unmarshal(m, b) return xxx_messageInfo_GraphTopologySubscription.Unmarshal(m, b)
@ -5409,7 +5432,7 @@ func (m *GraphTopologyUpdate) Reset() { *m = GraphTopologyUpdate{} }
func (m *GraphTopologyUpdate) String() string { return proto.CompactTextString(m) } func (m *GraphTopologyUpdate) String() string { return proto.CompactTextString(m) }
func (*GraphTopologyUpdate) ProtoMessage() {} func (*GraphTopologyUpdate) ProtoMessage() {}
func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{79} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{79}
} }
func (m *GraphTopologyUpdate) XXX_Unmarshal(b []byte) error { func (m *GraphTopologyUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphTopologyUpdate.Unmarshal(m, b) return xxx_messageInfo_GraphTopologyUpdate.Unmarshal(m, b)
@ -5464,7 +5487,7 @@ func (m *NodeUpdate) Reset() { *m = NodeUpdate{} }
func (m *NodeUpdate) String() string { return proto.CompactTextString(m) } func (m *NodeUpdate) String() string { return proto.CompactTextString(m) }
func (*NodeUpdate) ProtoMessage() {} func (*NodeUpdate) ProtoMessage() {}
func (*NodeUpdate) Descriptor() ([]byte, []int) { func (*NodeUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{80} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{80}
} }
func (m *NodeUpdate) XXX_Unmarshal(b []byte) error { func (m *NodeUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeUpdate.Unmarshal(m, b) return xxx_messageInfo_NodeUpdate.Unmarshal(m, b)
@ -5532,7 +5555,7 @@ func (m *ChannelEdgeUpdate) Reset() { *m = ChannelEdgeUpdate{} }
func (m *ChannelEdgeUpdate) String() string { return proto.CompactTextString(m) } func (m *ChannelEdgeUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelEdgeUpdate) ProtoMessage() {} func (*ChannelEdgeUpdate) ProtoMessage() {}
func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{81} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{81}
} }
func (m *ChannelEdgeUpdate) XXX_Unmarshal(b []byte) error { func (m *ChannelEdgeUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEdgeUpdate.Unmarshal(m, b) return xxx_messageInfo_ChannelEdgeUpdate.Unmarshal(m, b)
@ -5612,7 +5635,7 @@ func (m *ClosedChannelUpdate) Reset() { *m = ClosedChannelUpdate{} }
func (m *ClosedChannelUpdate) String() string { return proto.CompactTextString(m) } func (m *ClosedChannelUpdate) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelUpdate) ProtoMessage() {} func (*ClosedChannelUpdate) ProtoMessage() {}
func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{82} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{82}
} }
func (m *ClosedChannelUpdate) XXX_Unmarshal(b []byte) error { func (m *ClosedChannelUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelUpdate.Unmarshal(m, b) return xxx_messageInfo_ClosedChannelUpdate.Unmarshal(m, b)
@ -5682,7 +5705,7 @@ func (m *HopHint) Reset() { *m = HopHint{} }
func (m *HopHint) String() string { return proto.CompactTextString(m) } func (m *HopHint) String() string { return proto.CompactTextString(m) }
func (*HopHint) ProtoMessage() {} func (*HopHint) ProtoMessage() {}
func (*HopHint) Descriptor() ([]byte, []int) { func (*HopHint) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{83} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{83}
} }
func (m *HopHint) XXX_Unmarshal(b []byte) error { func (m *HopHint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HopHint.Unmarshal(m, b) return xxx_messageInfo_HopHint.Unmarshal(m, b)
@ -5751,7 +5774,7 @@ func (m *RouteHint) Reset() { *m = RouteHint{} }
func (m *RouteHint) String() string { return proto.CompactTextString(m) } func (m *RouteHint) String() string { return proto.CompactTextString(m) }
func (*RouteHint) ProtoMessage() {} func (*RouteHint) ProtoMessage() {}
func (*RouteHint) Descriptor() ([]byte, []int) { func (*RouteHint) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{84} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{84}
} }
func (m *RouteHint) XXX_Unmarshal(b []byte) error { func (m *RouteHint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RouteHint.Unmarshal(m, b) return xxx_messageInfo_RouteHint.Unmarshal(m, b)
@ -5796,7 +5819,7 @@ type Invoice struct {
// / The value of this invoice in satoshis // / The value of this invoice in satoshis
Value int64 `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"` Value int64 `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"`
// / Whether this invoice has been fulfilled // / Whether this invoice has been fulfilled
Settled bool `protobuf:"varint,6,opt,name=settled,proto3" json:"settled,omitempty"` Settled bool `protobuf:"varint,6,opt,name=settled,proto3" json:"settled,omitempty"` // Deprecated: Do not use.
// / When this invoice was created // / When this invoice was created
CreationDate int64 `protobuf:"varint,7,opt,name=creation_date,proto3" json:"creation_date,omitempty"` CreationDate int64 `protobuf:"varint,7,opt,name=creation_date,proto3" json:"creation_date,omitempty"`
// / When this invoice was settled // / When this invoice was settled
@ -5852,17 +5875,20 @@ type Invoice struct {
// amount was ultimately accepted. Additionally, it's possible that the sender // 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 // paid MORE that was specified in the original invoice. So we'll record that
// here as well. // here as well.
AmtPaidMsat int64 `protobuf:"varint,20,opt,name=amt_paid_msat,proto3" json:"amt_paid_msat,omitempty"` AmtPaidMsat int64 `protobuf:"varint,20,opt,name=amt_paid_msat,proto3" json:"amt_paid_msat,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` // *
XXX_unrecognized []byte `json:"-"` // The state the invoice is in.
XXX_sizecache int32 `json:"-"` State Invoice_InvoiceState `protobuf:"varint,21,opt,name=state,proto3,enum=lnrpc.Invoice_InvoiceState" json:"state,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *Invoice) Reset() { *m = Invoice{} } func (m *Invoice) Reset() { *m = Invoice{} }
func (m *Invoice) String() string { return proto.CompactTextString(m) } func (m *Invoice) String() string { return proto.CompactTextString(m) }
func (*Invoice) ProtoMessage() {} func (*Invoice) ProtoMessage() {}
func (*Invoice) Descriptor() ([]byte, []int) { func (*Invoice) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{85} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{85}
} }
func (m *Invoice) XXX_Unmarshal(b []byte) error { func (m *Invoice) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Invoice.Unmarshal(m, b) return xxx_messageInfo_Invoice.Unmarshal(m, b)
@ -5917,6 +5943,7 @@ func (m *Invoice) GetValue() int64 {
return 0 return 0
} }
// Deprecated: Do not use.
func (m *Invoice) GetSettled() bool { func (m *Invoice) GetSettled() bool {
if m != nil { if m != nil {
return m.Settled return m.Settled
@ -6023,6 +6050,13 @@ func (m *Invoice) GetAmtPaidMsat() int64 {
return 0 return 0
} }
func (m *Invoice) GetState() Invoice_InvoiceState {
if m != nil {
return m.State
}
return Invoice_OPEN
}
type AddInvoiceResponse struct { type AddInvoiceResponse struct {
RHash []byte `protobuf:"bytes,1,opt,name=r_hash,proto3" json:"r_hash,omitempty"` RHash []byte `protobuf:"bytes,1,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
// * // *
@ -6045,7 +6079,7 @@ func (m *AddInvoiceResponse) Reset() { *m = AddInvoiceResponse{} }
func (m *AddInvoiceResponse) String() string { return proto.CompactTextString(m) } func (m *AddInvoiceResponse) String() string { return proto.CompactTextString(m) }
func (*AddInvoiceResponse) ProtoMessage() {} func (*AddInvoiceResponse) ProtoMessage() {}
func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { func (*AddInvoiceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{86} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{86}
} }
func (m *AddInvoiceResponse) XXX_Unmarshal(b []byte) error { func (m *AddInvoiceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddInvoiceResponse.Unmarshal(m, b) return xxx_messageInfo_AddInvoiceResponse.Unmarshal(m, b)
@ -6102,7 +6136,7 @@ func (m *PaymentHash) Reset() { *m = PaymentHash{} }
func (m *PaymentHash) String() string { return proto.CompactTextString(m) } func (m *PaymentHash) String() string { return proto.CompactTextString(m) }
func (*PaymentHash) ProtoMessage() {} func (*PaymentHash) ProtoMessage() {}
func (*PaymentHash) Descriptor() ([]byte, []int) { func (*PaymentHash) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{87} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{87}
} }
func (m *PaymentHash) XXX_Unmarshal(b []byte) error { func (m *PaymentHash) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PaymentHash.Unmarshal(m, b) return xxx_messageInfo_PaymentHash.Unmarshal(m, b)
@ -6158,7 +6192,7 @@ func (m *ListInvoiceRequest) Reset() { *m = ListInvoiceRequest{} }
func (m *ListInvoiceRequest) String() string { return proto.CompactTextString(m) } func (m *ListInvoiceRequest) String() string { return proto.CompactTextString(m) }
func (*ListInvoiceRequest) ProtoMessage() {} func (*ListInvoiceRequest) ProtoMessage() {}
func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { func (*ListInvoiceRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{88} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{88}
} }
func (m *ListInvoiceRequest) XXX_Unmarshal(b []byte) error { func (m *ListInvoiceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListInvoiceRequest.Unmarshal(m, b) return xxx_messageInfo_ListInvoiceRequest.Unmarshal(m, b)
@ -6228,7 +6262,7 @@ func (m *ListInvoiceResponse) Reset() { *m = ListInvoiceResponse{} }
func (m *ListInvoiceResponse) String() string { return proto.CompactTextString(m) } func (m *ListInvoiceResponse) String() string { return proto.CompactTextString(m) }
func (*ListInvoiceResponse) ProtoMessage() {} func (*ListInvoiceResponse) ProtoMessage() {}
func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { func (*ListInvoiceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{89} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{89}
} }
func (m *ListInvoiceResponse) XXX_Unmarshal(b []byte) error { func (m *ListInvoiceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListInvoiceResponse.Unmarshal(m, b) return xxx_messageInfo_ListInvoiceResponse.Unmarshal(m, b)
@ -6291,7 +6325,7 @@ func (m *InvoiceSubscription) Reset() { *m = InvoiceSubscription{} }
func (m *InvoiceSubscription) String() string { return proto.CompactTextString(m) } func (m *InvoiceSubscription) String() string { return proto.CompactTextString(m) }
func (*InvoiceSubscription) ProtoMessage() {} func (*InvoiceSubscription) ProtoMessage() {}
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { func (*InvoiceSubscription) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{90} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{90}
} }
func (m *InvoiceSubscription) XXX_Unmarshal(b []byte) error { func (m *InvoiceSubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InvoiceSubscription.Unmarshal(m, b) return xxx_messageInfo_InvoiceSubscription.Unmarshal(m, b)
@ -6351,7 +6385,7 @@ func (m *Payment) Reset() { *m = Payment{} }
func (m *Payment) String() string { return proto.CompactTextString(m) } func (m *Payment) String() string { return proto.CompactTextString(m) }
func (*Payment) ProtoMessage() {} func (*Payment) ProtoMessage() {}
func (*Payment) Descriptor() ([]byte, []int) { func (*Payment) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{91} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{91}
} }
func (m *Payment) XXX_Unmarshal(b []byte) error { func (m *Payment) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Payment.Unmarshal(m, b) return xxx_messageInfo_Payment.Unmarshal(m, b)
@ -6438,7 +6472,7 @@ func (m *ListPaymentsRequest) Reset() { *m = ListPaymentsRequest{} }
func (m *ListPaymentsRequest) String() string { return proto.CompactTextString(m) } func (m *ListPaymentsRequest) String() string { return proto.CompactTextString(m) }
func (*ListPaymentsRequest) ProtoMessage() {} func (*ListPaymentsRequest) ProtoMessage() {}
func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { func (*ListPaymentsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{92} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{92}
} }
func (m *ListPaymentsRequest) XXX_Unmarshal(b []byte) error { func (m *ListPaymentsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPaymentsRequest.Unmarshal(m, b) return xxx_messageInfo_ListPaymentsRequest.Unmarshal(m, b)
@ -6470,7 +6504,7 @@ func (m *ListPaymentsResponse) Reset() { *m = ListPaymentsResponse{} }
func (m *ListPaymentsResponse) String() string { return proto.CompactTextString(m) } func (m *ListPaymentsResponse) String() string { return proto.CompactTextString(m) }
func (*ListPaymentsResponse) ProtoMessage() {} func (*ListPaymentsResponse) ProtoMessage() {}
func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { func (*ListPaymentsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{93} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{93}
} }
func (m *ListPaymentsResponse) XXX_Unmarshal(b []byte) error { func (m *ListPaymentsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPaymentsResponse.Unmarshal(m, b) return xxx_messageInfo_ListPaymentsResponse.Unmarshal(m, b)
@ -6507,7 +6541,7 @@ func (m *DeleteAllPaymentsRequest) Reset() { *m = DeleteAllPaymentsReque
func (m *DeleteAllPaymentsRequest) String() string { return proto.CompactTextString(m) } func (m *DeleteAllPaymentsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteAllPaymentsRequest) ProtoMessage() {} func (*DeleteAllPaymentsRequest) ProtoMessage() {}
func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{94} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{94}
} }
func (m *DeleteAllPaymentsRequest) XXX_Unmarshal(b []byte) error { func (m *DeleteAllPaymentsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteAllPaymentsRequest.Unmarshal(m, b) return xxx_messageInfo_DeleteAllPaymentsRequest.Unmarshal(m, b)
@ -6537,7 +6571,7 @@ func (m *DeleteAllPaymentsResponse) Reset() { *m = DeleteAllPaymentsResp
func (m *DeleteAllPaymentsResponse) String() string { return proto.CompactTextString(m) } func (m *DeleteAllPaymentsResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteAllPaymentsResponse) ProtoMessage() {} func (*DeleteAllPaymentsResponse) ProtoMessage() {}
func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{95} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{95}
} }
func (m *DeleteAllPaymentsResponse) XXX_Unmarshal(b []byte) error { func (m *DeleteAllPaymentsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteAllPaymentsResponse.Unmarshal(m, b) return xxx_messageInfo_DeleteAllPaymentsResponse.Unmarshal(m, b)
@ -6568,7 +6602,7 @@ func (m *AbandonChannelRequest) Reset() { *m = AbandonChannelRequest{} }
func (m *AbandonChannelRequest) String() string { return proto.CompactTextString(m) } func (m *AbandonChannelRequest) String() string { return proto.CompactTextString(m) }
func (*AbandonChannelRequest) ProtoMessage() {} func (*AbandonChannelRequest) ProtoMessage() {}
func (*AbandonChannelRequest) Descriptor() ([]byte, []int) { func (*AbandonChannelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{96} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{96}
} }
func (m *AbandonChannelRequest) XXX_Unmarshal(b []byte) error { func (m *AbandonChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AbandonChannelRequest.Unmarshal(m, b) return xxx_messageInfo_AbandonChannelRequest.Unmarshal(m, b)
@ -6605,7 +6639,7 @@ func (m *AbandonChannelResponse) Reset() { *m = AbandonChannelResponse{}
func (m *AbandonChannelResponse) String() string { return proto.CompactTextString(m) } func (m *AbandonChannelResponse) String() string { return proto.CompactTextString(m) }
func (*AbandonChannelResponse) ProtoMessage() {} func (*AbandonChannelResponse) ProtoMessage() {}
func (*AbandonChannelResponse) Descriptor() ([]byte, []int) { func (*AbandonChannelResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{97} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{97}
} }
func (m *AbandonChannelResponse) XXX_Unmarshal(b []byte) error { func (m *AbandonChannelResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AbandonChannelResponse.Unmarshal(m, b) return xxx_messageInfo_AbandonChannelResponse.Unmarshal(m, b)
@ -6637,7 +6671,7 @@ func (m *DebugLevelRequest) Reset() { *m = DebugLevelRequest{} }
func (m *DebugLevelRequest) String() string { return proto.CompactTextString(m) } func (m *DebugLevelRequest) String() string { return proto.CompactTextString(m) }
func (*DebugLevelRequest) ProtoMessage() {} func (*DebugLevelRequest) ProtoMessage() {}
func (*DebugLevelRequest) Descriptor() ([]byte, []int) { func (*DebugLevelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{98} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{98}
} }
func (m *DebugLevelRequest) XXX_Unmarshal(b []byte) error { func (m *DebugLevelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DebugLevelRequest.Unmarshal(m, b) return xxx_messageInfo_DebugLevelRequest.Unmarshal(m, b)
@ -6682,7 +6716,7 @@ func (m *DebugLevelResponse) Reset() { *m = DebugLevelResponse{} }
func (m *DebugLevelResponse) String() string { return proto.CompactTextString(m) } func (m *DebugLevelResponse) String() string { return proto.CompactTextString(m) }
func (*DebugLevelResponse) ProtoMessage() {} func (*DebugLevelResponse) ProtoMessage() {}
func (*DebugLevelResponse) Descriptor() ([]byte, []int) { func (*DebugLevelResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{99} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{99}
} }
func (m *DebugLevelResponse) XXX_Unmarshal(b []byte) error { func (m *DebugLevelResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DebugLevelResponse.Unmarshal(m, b) return xxx_messageInfo_DebugLevelResponse.Unmarshal(m, b)
@ -6721,7 +6755,7 @@ func (m *PayReqString) Reset() { *m = PayReqString{} }
func (m *PayReqString) String() string { return proto.CompactTextString(m) } func (m *PayReqString) String() string { return proto.CompactTextString(m) }
func (*PayReqString) ProtoMessage() {} func (*PayReqString) ProtoMessage() {}
func (*PayReqString) Descriptor() ([]byte, []int) { func (*PayReqString) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{100} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{100}
} }
func (m *PayReqString) XXX_Unmarshal(b []byte) error { func (m *PayReqString) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PayReqString.Unmarshal(m, b) return xxx_messageInfo_PayReqString.Unmarshal(m, b)
@ -6768,7 +6802,7 @@ func (m *PayReq) Reset() { *m = PayReq{} }
func (m *PayReq) String() string { return proto.CompactTextString(m) } func (m *PayReq) String() string { return proto.CompactTextString(m) }
func (*PayReq) ProtoMessage() {} func (*PayReq) ProtoMessage() {}
func (*PayReq) Descriptor() ([]byte, []int) { func (*PayReq) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{101} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{101}
} }
func (m *PayReq) XXX_Unmarshal(b []byte) error { func (m *PayReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PayReq.Unmarshal(m, b) return xxx_messageInfo_PayReq.Unmarshal(m, b)
@ -6868,7 +6902,7 @@ func (m *FeeReportRequest) Reset() { *m = FeeReportRequest{} }
func (m *FeeReportRequest) String() string { return proto.CompactTextString(m) } func (m *FeeReportRequest) String() string { return proto.CompactTextString(m) }
func (*FeeReportRequest) ProtoMessage() {} func (*FeeReportRequest) ProtoMessage() {}
func (*FeeReportRequest) Descriptor() ([]byte, []int) { func (*FeeReportRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{102} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{102}
} }
func (m *FeeReportRequest) XXX_Unmarshal(b []byte) error { func (m *FeeReportRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeReportRequest.Unmarshal(m, b) return xxx_messageInfo_FeeReportRequest.Unmarshal(m, b)
@ -6906,7 +6940,7 @@ func (m *ChannelFeeReport) Reset() { *m = ChannelFeeReport{} }
func (m *ChannelFeeReport) String() string { return proto.CompactTextString(m) } func (m *ChannelFeeReport) String() string { return proto.CompactTextString(m) }
func (*ChannelFeeReport) ProtoMessage() {} func (*ChannelFeeReport) ProtoMessage() {}
func (*ChannelFeeReport) Descriptor() ([]byte, []int) { func (*ChannelFeeReport) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{103} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{103}
} }
func (m *ChannelFeeReport) XXX_Unmarshal(b []byte) error { func (m *ChannelFeeReport) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelFeeReport.Unmarshal(m, b) return xxx_messageInfo_ChannelFeeReport.Unmarshal(m, b)
@ -6972,7 +7006,7 @@ func (m *FeeReportResponse) Reset() { *m = FeeReportResponse{} }
func (m *FeeReportResponse) String() string { return proto.CompactTextString(m) } func (m *FeeReportResponse) String() string { return proto.CompactTextString(m) }
func (*FeeReportResponse) ProtoMessage() {} func (*FeeReportResponse) ProtoMessage() {}
func (*FeeReportResponse) Descriptor() ([]byte, []int) { func (*FeeReportResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{104} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{104}
} }
func (m *FeeReportResponse) XXX_Unmarshal(b []byte) error { func (m *FeeReportResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeReportResponse.Unmarshal(m, b) return xxx_messageInfo_FeeReportResponse.Unmarshal(m, b)
@ -7040,7 +7074,7 @@ func (m *PolicyUpdateRequest) Reset() { *m = PolicyUpdateRequest{} }
func (m *PolicyUpdateRequest) String() string { return proto.CompactTextString(m) } func (m *PolicyUpdateRequest) String() string { return proto.CompactTextString(m) }
func (*PolicyUpdateRequest) ProtoMessage() {} func (*PolicyUpdateRequest) ProtoMessage() {}
func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{105} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{105}
} }
func (m *PolicyUpdateRequest) XXX_Unmarshal(b []byte) error { func (m *PolicyUpdateRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PolicyUpdateRequest.Unmarshal(m, b) return xxx_messageInfo_PolicyUpdateRequest.Unmarshal(m, b)
@ -7201,7 +7235,7 @@ func (m *PolicyUpdateResponse) Reset() { *m = PolicyUpdateResponse{} }
func (m *PolicyUpdateResponse) String() string { return proto.CompactTextString(m) } func (m *PolicyUpdateResponse) String() string { return proto.CompactTextString(m) }
func (*PolicyUpdateResponse) ProtoMessage() {} func (*PolicyUpdateResponse) ProtoMessage() {}
func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) { func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{106} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{106}
} }
func (m *PolicyUpdateResponse) XXX_Unmarshal(b []byte) error { func (m *PolicyUpdateResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PolicyUpdateResponse.Unmarshal(m, b) return xxx_messageInfo_PolicyUpdateResponse.Unmarshal(m, b)
@ -7239,7 +7273,7 @@ func (m *ForwardingHistoryRequest) Reset() { *m = ForwardingHistoryReque
func (m *ForwardingHistoryRequest) String() string { return proto.CompactTextString(m) } func (m *ForwardingHistoryRequest) String() string { return proto.CompactTextString(m) }
func (*ForwardingHistoryRequest) ProtoMessage() {} func (*ForwardingHistoryRequest) ProtoMessage() {}
func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) { func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{107} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{107}
} }
func (m *ForwardingHistoryRequest) XXX_Unmarshal(b []byte) error { func (m *ForwardingHistoryRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingHistoryRequest.Unmarshal(m, b) return xxx_messageInfo_ForwardingHistoryRequest.Unmarshal(m, b)
@ -7311,7 +7345,7 @@ func (m *ForwardingEvent) Reset() { *m = ForwardingEvent{} }
func (m *ForwardingEvent) String() string { return proto.CompactTextString(m) } func (m *ForwardingEvent) String() string { return proto.CompactTextString(m) }
func (*ForwardingEvent) ProtoMessage() {} func (*ForwardingEvent) ProtoMessage() {}
func (*ForwardingEvent) Descriptor() ([]byte, []int) { func (*ForwardingEvent) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{108} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{108}
} }
func (m *ForwardingEvent) XXX_Unmarshal(b []byte) error { func (m *ForwardingEvent) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingEvent.Unmarshal(m, b) return xxx_messageInfo_ForwardingEvent.Unmarshal(m, b)
@ -7394,7 +7428,7 @@ func (m *ForwardingHistoryResponse) Reset() { *m = ForwardingHistoryResp
func (m *ForwardingHistoryResponse) String() string { return proto.CompactTextString(m) } func (m *ForwardingHistoryResponse) String() string { return proto.CompactTextString(m) }
func (*ForwardingHistoryResponse) ProtoMessage() {} func (*ForwardingHistoryResponse) ProtoMessage() {}
func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) { func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_89005a23c34c5e47, []int{109} return fileDescriptor_rpc_1ab2678d1ff81ab1, []int{109}
} }
func (m *ForwardingHistoryResponse) XXX_Unmarshal(b []byte) error { func (m *ForwardingHistoryResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingHistoryResponse.Unmarshal(m, b) return xxx_messageInfo_ForwardingHistoryResponse.Unmarshal(m, b)
@ -7547,6 +7581,7 @@ func init() {
proto.RegisterType((*ForwardingHistoryResponse)(nil), "lnrpc.ForwardingHistoryResponse") proto.RegisterType((*ForwardingHistoryResponse)(nil), "lnrpc.ForwardingHistoryResponse")
proto.RegisterEnum("lnrpc.AddressType", AddressType_name, AddressType_value) proto.RegisterEnum("lnrpc.AddressType", AddressType_name, AddressType_value)
proto.RegisterEnum("lnrpc.ChannelCloseSummary_ClosureType", ChannelCloseSummary_ClosureType_name, ChannelCloseSummary_ClosureType_value) proto.RegisterEnum("lnrpc.ChannelCloseSummary_ClosureType", ChannelCloseSummary_ClosureType_name, ChannelCloseSummary_ClosureType_value)
proto.RegisterEnum("lnrpc.Invoice_InvoiceState", Invoice_InvoiceState_name, Invoice_InvoiceState_value)
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -9822,422 +9857,426 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
Metadata: "rpc.proto", Metadata: "rpc.proto",
} }
func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_89005a23c34c5e47) } func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_1ab2678d1ff81ab1) }
var fileDescriptor_rpc_89005a23c34c5e47 = []byte{ var fileDescriptor_rpc_1ab2678d1ff81ab1 = []byte{
// 6623 bytes of a gzipped FileDescriptorProto // 6680 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x5b, 0x8c, 0x1c, 0xd9, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0x4d, 0x6c, 0x1c, 0xc9,
0x59, 0x76, 0xf5, 0x65, 0xa6, 0xfb, 0xef, 0x9e, 0xee, 0x9e, 0x33, 0xb7, 0x76, 0xaf, 0xd7, 0xeb, 0x79, 0xb6, 0x7a, 0x38, 0x43, 0xce, 0xbc, 0x33, 0xe4, 0x0c, 0x8b, 0x7f, 0xa3, 0x59, 0xad, 0x56,
0xad, 0x98, 0xb5, 0x33, 0x2c, 0x1e, 0xef, 0x24, 0x59, 0x6d, 0xd6, 0x10, 0x18, 0xcf, 0x8c, 0x3d, 0x5b, 0x5e, 0xaf, 0x64, 0x7e, 0xfb, 0x89, 0x5a, 0xd9, 0x5e, 0xac, 0x57, 0xdf, 0xe7, 0xef, 0xa3,
0x26, 0xb3, 0xf6, 0xa4, 0xc6, 0x8e, 0xc9, 0x06, 0xd4, 0xa9, 0xe9, 0x3e, 0xd3, 0x5d, 0x71, 0x77, 0x48, 0x4a, 0x54, 0xcc, 0x95, 0xe8, 0xa6, 0x64, 0xc5, 0xeb, 0x04, 0xe3, 0xe6, 0x4c, 0x71, 0xd8,
0x55, 0xa7, 0xaa, 0x7a, 0xc6, 0x9d, 0xc5, 0x12, 0x37, 0x81, 0x84, 0x88, 0x22, 0xe0, 0x01, 0x82, 0xd6, 0x4c, 0xf7, 0xb8, 0xbb, 0x87, 0xd4, 0x78, 0x23, 0x20, 0x7f, 0x48, 0x80, 0x20, 0x86, 0x91,
0x84, 0x90, 0x02, 0x0f, 0xc9, 0x23, 0x2f, 0x11, 0x12, 0xf0, 0xc6, 0x0b, 0x48, 0x08, 0xa1, 0x3c, 0xe4, 0x12, 0x07, 0x08, 0x02, 0x38, 0x39, 0xd8, 0xc7, 0x5c, 0x8c, 0x00, 0x49, 0x6e, 0xb9, 0x24,
0x22, 0xf1, 0x02, 0x2f, 0x80, 0xe0, 0x01, 0x89, 0x47, 0x10, 0x3a, 0xff, 0xb9, 0xd4, 0x39, 0x55, 0x40, 0x10, 0x04, 0x3e, 0x06, 0xc8, 0x25, 0xb9, 0x24, 0x41, 0x72, 0x08, 0xe0, 0x63, 0x82, 0xa0,
0xd5, 0x1e, 0x27, 0x59, 0x78, 0xeb, 0xf3, 0x9d, 0xbf, 0xce, 0xf5, 0xbf, 0x9d, 0xff, 0xfc, 0xa7, 0xde, 0xfa, 0xe9, 0xaa, 0xee, 0x1e, 0x51, 0xfe, 0x49, 0x4e, 0x9c, 0x7a, 0xea, 0xed, 0xfa, 0x7d,
0xa1, 0x1a, 0x4e, 0x7a, 0xb7, 0x26, 0x61, 0x10, 0x07, 0xa4, 0x3c, 0xf2, 0xc3, 0x49, 0xaf, 0x73, 0xff, 0xea, 0xad, 0xb7, 0x08, 0xb5, 0x68, 0xdc, 0xbb, 0x39, 0x8e, 0xc2, 0x24, 0x24, 0x95, 0x61,
0x65, 0x10, 0x04, 0x83, 0x11, 0xdd, 0x72, 0x27, 0xde, 0x96, 0xeb, 0xfb, 0x41, 0xec, 0xc6, 0x5e, 0x10, 0x8d, 0x7b, 0x9d, 0x2b, 0x83, 0x30, 0x1c, 0x0c, 0xd9, 0x96, 0x37, 0xf6, 0xb7, 0xbc, 0x20,
0xe0, 0x47, 0x9c, 0xc8, 0xfe, 0x0a, 0x34, 0xee, 0x53, 0xff, 0x98, 0xd2, 0xbe, 0x43, 0xbf, 0x36, 0x08, 0x13, 0x2f, 0xf1, 0xc3, 0x20, 0x16, 0x44, 0xf4, 0xab, 0xb0, 0x74, 0x9f, 0x05, 0x47, 0x8c,
0xa5, 0x51, 0x4c, 0x7e, 0x1c, 0x96, 0x5d, 0xfa, 0x75, 0x4a, 0xfb, 0xdd, 0x89, 0x1b, 0x45, 0x93, 0xf5, 0x5d, 0xf6, 0xf5, 0x09, 0x8b, 0x13, 0xf2, 0xbf, 0x60, 0xd9, 0x63, 0xdf, 0x60, 0xac, 0xdf,
0x61, 0xe8, 0x46, 0xb4, 0x6d, 0x5d, 0xb3, 0x6e, 0xd6, 0x9d, 0x16, 0xaf, 0x38, 0x52, 0x38, 0x79, 0x1d, 0x7b, 0x71, 0x3c, 0x3e, 0x8d, 0xbc, 0x98, 0xb5, 0x9d, 0x6b, 0xce, 0x8d, 0x86, 0xdb, 0x12,
0x13, 0xea, 0x11, 0x23, 0xa5, 0x7e, 0x1c, 0x06, 0x93, 0x59, 0xbb, 0x80, 0x74, 0x35, 0x86, 0xed, 0x15, 0x87, 0x1a, 0x27, 0x6f, 0x42, 0x23, 0xe6, 0xa4, 0x2c, 0x48, 0xa2, 0x70, 0x3c, 0x6d, 0x97,
0x73, 0xc8, 0x1e, 0x41, 0x53, 0xf5, 0x10, 0x4d, 0x02, 0x3f, 0xa2, 0xe4, 0x36, 0xac, 0xf6, 0xbc, 0x90, 0xae, 0xce, 0xb1, 0x3d, 0x01, 0xd1, 0x21, 0x34, 0x75, 0x0f, 0xf1, 0x38, 0x0c, 0x62, 0x46,
0xc9, 0x90, 0x86, 0x5d, 0xfc, 0x78, 0xec, 0xd3, 0x71, 0xe0, 0x7b, 0xbd, 0xb6, 0x75, 0xad, 0x78, 0x6e, 0xc1, 0x6a, 0xcf, 0x1f, 0x9f, 0xb2, 0xa8, 0x8b, 0x1f, 0x8f, 0x02, 0x36, 0x0a, 0x03, 0xbf,
0xb3, 0xea, 0x10, 0x5e, 0xc7, 0xbe, 0xf8, 0x40, 0xd4, 0x90, 0x1b, 0xd0, 0xa4, 0x3e, 0xc7, 0x69, 0xd7, 0x76, 0xae, 0xcd, 0xdd, 0xa8, 0xb9, 0x44, 0xd4, 0xf1, 0x2f, 0x3e, 0x94, 0x35, 0xe4, 0x3a,
0x1f, 0xbf, 0x12, 0x5d, 0x35, 0x12, 0x98, 0x7d, 0x60, 0xff, 0x95, 0x05, 0xcb, 0x0f, 0x7c, 0x2f, 0x34, 0x59, 0x20, 0x70, 0xd6, 0xc7, 0xaf, 0x64, 0x57, 0x4b, 0x29, 0xcc, 0x3f, 0xa0, 0x7f, 0xe1,
0x7e, 0xea, 0x8e, 0x46, 0x34, 0x96, 0x73, 0xba, 0x01, 0xcd, 0x73, 0x04, 0x70, 0x4e, 0xe7, 0x41, 0xc0, 0xf2, 0x83, 0xc0, 0x4f, 0x9e, 0x7a, 0xc3, 0x21, 0x4b, 0xd4, 0x9c, 0xae, 0x43, 0xf3, 0x1c,
0xd8, 0x17, 0x33, 0x6a, 0x70, 0xf8, 0x48, 0xa0, 0x73, 0x47, 0x56, 0x98, 0x3b, 0xb2, 0xdc, 0xe5, 0x01, 0x9c, 0xd3, 0x79, 0x18, 0xf5, 0xe5, 0x8c, 0x96, 0x04, 0x7c, 0x28, 0xd1, 0x99, 0x23, 0x2b,
0x2a, 0xce, 0x59, 0xae, 0x1b, 0xd0, 0x0c, 0x69, 0x2f, 0x38, 0xa3, 0xe1, 0xac, 0x7b, 0xee, 0xf9, 0xcd, 0x1c, 0x59, 0xe1, 0x72, 0xcd, 0xcd, 0x58, 0xae, 0xeb, 0xd0, 0x8c, 0x58, 0x2f, 0x3c, 0x63,
0xfd, 0xe0, 0xbc, 0x5d, 0xba, 0x66, 0xdd, 0x2c, 0x3b, 0x0d, 0x09, 0x3f, 0x45, 0xd4, 0x5e, 0x05, 0xd1, 0xb4, 0x7b, 0xee, 0x07, 0xfd, 0xf0, 0xbc, 0x5d, 0xbe, 0xe6, 0xdc, 0xa8, 0xb8, 0x4b, 0x0a,
0xa2, 0xcf, 0x82, 0xaf, 0x9b, 0x3d, 0x80, 0x95, 0x27, 0xfe, 0x28, 0xe8, 0x3d, 0xfb, 0x21, 0x67, 0x7e, 0x8a, 0x28, 0x5d, 0x05, 0x62, 0xce, 0x42, 0xac, 0x1b, 0x1d, 0xc0, 0xca, 0x93, 0x60, 0x18,
0x97, 0xd3, 0x7d, 0x21, 0xb7, 0xfb, 0x75, 0x58, 0x35, 0x3b, 0x12, 0x03, 0xa0, 0xb0, 0xb6, 0x3b, 0xf6, 0x9e, 0xfd, 0x98, 0xb3, 0x2b, 0xe8, 0xbe, 0x54, 0xd8, 0xfd, 0x3a, 0xac, 0xda, 0x1d, 0xc9,
0x74, 0xfd, 0x01, 0x95, 0x4d, 0xca, 0x21, 0x7c, 0x12, 0x5a, 0xbd, 0x69, 0x18, 0x52, 0x3f, 0x33, 0x01, 0x30, 0x58, 0xdb, 0x39, 0xf5, 0x82, 0x01, 0x53, 0x4d, 0xaa, 0x21, 0x7c, 0x0a, 0x5a, 0xbd,
0x86, 0xa6, 0xc0, 0xd5, 0x20, 0xde, 0x84, 0xba, 0x4f, 0xcf, 0x13, 0x32, 0xc1, 0x32, 0x3e, 0x3d, 0x49, 0x14, 0xb1, 0x20, 0x37, 0x86, 0xa6, 0xc4, 0xf5, 0x20, 0xde, 0x84, 0x46, 0xc0, 0xce, 0x53,
0x97, 0x24, 0x76, 0x1b, 0xd6, 0xd3, 0xdd, 0x88, 0x01, 0xfc, 0xbb, 0x05, 0xa5, 0x27, 0xf1, 0xf3, 0x32, 0xc9, 0x32, 0x01, 0x3b, 0x57, 0x24, 0xb4, 0x0d, 0xeb, 0xd9, 0x6e, 0xe4, 0x00, 0xfe, 0xd5,
0x80, 0xdc, 0x82, 0x52, 0x3c, 0x9b, 0x70, 0xc6, 0x6c, 0x6c, 0x93, 0x5b, 0xc8, 0xeb, 0xb7, 0x76, 0x81, 0xf2, 0x93, 0xe4, 0x79, 0x48, 0x6e, 0x42, 0x39, 0x99, 0x8e, 0x05, 0x63, 0x2e, 0xdd, 0x26,
0xfa, 0xfd, 0x90, 0x46, 0xd1, 0xe3, 0xd9, 0x84, 0x3a, 0x75, 0x97, 0x17, 0xba, 0x8c, 0x8e, 0xb4, 0x37, 0x91, 0xd7, 0x6f, 0x6e, 0xf7, 0xfb, 0x11, 0x8b, 0xe3, 0xc7, 0xd3, 0x31, 0x73, 0x1b, 0x9e,
0x61, 0x51, 0x94, 0xb1, 0xc3, 0xaa, 0x23, 0x8b, 0xe4, 0x2a, 0x80, 0x3b, 0x0e, 0xa6, 0x7e, 0xdc, 0x28, 0x74, 0x39, 0x1d, 0x69, 0xc3, 0x82, 0x2c, 0x63, 0x87, 0x35, 0x57, 0x15, 0xc9, 0x55, 0x00,
0x8d, 0xdc, 0x18, 0x77, 0xae, 0xe8, 0x68, 0x08, 0xb9, 0x0e, 0x4b, 0x51, 0x2f, 0xf4, 0x26, 0x71, 0x6f, 0x14, 0x4e, 0x82, 0xa4, 0x1b, 0x7b, 0x09, 0xee, 0xdc, 0x9c, 0x6b, 0x20, 0xe4, 0x2d, 0x58,
0x77, 0x32, 0x3d, 0x79, 0x46, 0x67, 0xb8, 0x63, 0x55, 0xc7, 0x04, 0xc9, 0x16, 0x54, 0x82, 0x69, 0x8c, 0x7b, 0x91, 0x3f, 0x4e, 0xba, 0xe3, 0xc9, 0xf1, 0x33, 0x36, 0xc5, 0x1d, 0xab, 0xb9, 0x36,
0x3c, 0x09, 0x3c, 0x3f, 0x6e, 0x97, 0xaf, 0x59, 0x37, 0x6b, 0xdb, 0x2b, 0x62, 0x4c, 0x6c, 0x26, 0x48, 0xb6, 0xa0, 0x1a, 0x4e, 0x92, 0x71, 0xe8, 0x07, 0x49, 0xbb, 0x72, 0xcd, 0xb9, 0x51, 0xbf,
0x3e, 0x1d, 0x1d, 0xb1, 0x2a, 0x47, 0x11, 0xb1, 0x66, 0x7b, 0x81, 0x7f, 0xea, 0x85, 0x63, 0x2e, 0xbd, 0x22, 0xc7, 0xc4, 0x67, 0x12, 0xb0, 0xe1, 0x21, 0xaf, 0x72, 0x35, 0x11, 0x6f, 0xb6, 0x17,
0x8f, 0xed, 0x05, 0xec, 0xd9, 0x04, 0xed, 0x6f, 0x15, 0xa0, 0xf6, 0x38, 0x74, 0xfd, 0xc8, 0xed, 0x06, 0x27, 0x7e, 0x34, 0x12, 0xf2, 0xd8, 0x9e, 0xc7, 0x9e, 0x6d, 0x90, 0x7e, 0xbb, 0x04, 0xf5,
0x31, 0x80, 0x4d, 0x23, 0x7e, 0xde, 0x1d, 0xba, 0xd1, 0x10, 0x67, 0x5e, 0x75, 0x64, 0x91, 0xac, 0xc7, 0x91, 0x17, 0xc4, 0x5e, 0x8f, 0x03, 0x7c, 0x1a, 0xc9, 0xf3, 0xee, 0xa9, 0x17, 0x9f, 0xe2,
0xc3, 0x02, 0x1f, 0x34, 0xce, 0xaf, 0xe8, 0x88, 0x12, 0x79, 0x1b, 0x96, 0xfd, 0xe9, 0xb8, 0x6b, 0xcc, 0x6b, 0xae, 0x2a, 0x92, 0x75, 0x98, 0x17, 0x83, 0xc6, 0xf9, 0xcd, 0xb9, 0xb2, 0x44, 0xde,
0xf6, 0x55, 0xc4, 0x5d, 0xcf, 0x56, 0xb0, 0xc5, 0x38, 0x61, 0xfb, 0xce, 0xbb, 0xe0, 0x33, 0xd5, 0x81, 0xe5, 0x60, 0x32, 0xea, 0xda, 0x7d, 0xcd, 0xe1, 0xae, 0xe7, 0x2b, 0xf8, 0x62, 0x1c, 0xf3,
0x10, 0x62, 0x43, 0x5d, 0x94, 0xa8, 0x37, 0x18, 0xf2, 0xa9, 0x96, 0x1d, 0x03, 0x63, 0x6d, 0xc4, 0x7d, 0x17, 0x5d, 0x88, 0x99, 0x1a, 0x08, 0xa1, 0xd0, 0x90, 0x25, 0xe6, 0x0f, 0x4e, 0xc5, 0x54,
0xde, 0x98, 0x76, 0xa3, 0xd8, 0x1d, 0x4f, 0xc4, 0xb4, 0x34, 0x04, 0xeb, 0x83, 0xd8, 0x1d, 0x75, 0x2b, 0xae, 0x85, 0xf1, 0x36, 0x12, 0x7f, 0xc4, 0xba, 0x71, 0xe2, 0x8d, 0xc6, 0x72, 0x5a, 0x06,
0x4f, 0x29, 0x8d, 0xda, 0x8b, 0xa2, 0x5e, 0x21, 0xe4, 0x2d, 0x68, 0xf4, 0x69, 0x14, 0x77, 0xc5, 0x82, 0xf5, 0x61, 0xe2, 0x0d, 0xbb, 0x27, 0x8c, 0xc5, 0xed, 0x05, 0x59, 0xaf, 0x11, 0xf2, 0x36,
0x06, 0xd1, 0xa8, 0x5d, 0x41, 0xe9, 0x4b, 0xa1, 0x8c, 0x4b, 0xee, 0xd3, 0x58, 0x5b, 0x9d, 0x48, 0x2c, 0xf5, 0x59, 0x9c, 0x74, 0xe5, 0x06, 0xb1, 0xb8, 0x5d, 0x45, 0xe9, 0xcb, 0xa0, 0x9c, 0x4b,
0x70, 0xa3, 0x7d, 0x08, 0x44, 0x83, 0xf7, 0x68, 0xec, 0x7a, 0xa3, 0x88, 0xbc, 0x0b, 0xf5, 0x58, 0xee, 0xb3, 0xc4, 0x58, 0x9d, 0x58, 0x72, 0x23, 0x3d, 0x00, 0x62, 0xc0, 0xbb, 0x2c, 0xf1, 0xfc,
0x23, 0x46, 0x6d, 0x53, 0x53, 0xac, 0xa3, 0x7d, 0xe0, 0x18, 0x74, 0xf6, 0x7d, 0xa8, 0xdc, 0xa3, 0x61, 0x4c, 0xde, 0x83, 0x46, 0x62, 0x10, 0xa3, 0xb6, 0xa9, 0x6b, 0xd6, 0x31, 0x3e, 0x70, 0x2d,
0xf4, 0xd0, 0x1b, 0x7b, 0x31, 0x59, 0x87, 0xf2, 0xa9, 0xf7, 0x9c, 0x72, 0xe6, 0x2e, 0x1e, 0x5c, 0x3a, 0x7a, 0x1f, 0xaa, 0xf7, 0x18, 0x3b, 0xf0, 0x47, 0x7e, 0x42, 0xd6, 0xa1, 0x72, 0xe2, 0x3f,
0x72, 0x78, 0x91, 0x74, 0x60, 0x71, 0x42, 0xc3, 0x1e, 0x95, 0xcb, 0x7f, 0x70, 0xc9, 0x91, 0xc0, 0x67, 0x82, 0xb9, 0xe7, 0xf6, 0x2f, 0xb9, 0xa2, 0x48, 0x3a, 0xb0, 0x30, 0x66, 0x51, 0x8f, 0xa9,
0xdd, 0x45, 0x28, 0x8f, 0xd8, 0xc7, 0xf6, 0x77, 0x0a, 0x50, 0x3b, 0xa6, 0xbe, 0x12, 0x1a, 0x02, 0xe5, 0xdf, 0xbf, 0xe4, 0x2a, 0xe0, 0xee, 0x02, 0x54, 0x86, 0xfc, 0x63, 0xfa, 0xdd, 0x12, 0xd4,
0x25, 0x36, 0x25, 0x21, 0x28, 0xf8, 0x9b, 0xbc, 0x01, 0x35, 0x9c, 0x66, 0x14, 0x87, 0x9e, 0x3f, 0x8f, 0x58, 0xa0, 0x85, 0x86, 0x40, 0x99, 0x4f, 0x49, 0x0a, 0x0a, 0xfe, 0x26, 0x6f, 0x40, 0x1d,
0x10, 0xbc, 0x0a, 0x0c, 0x3a, 0x46, 0x84, 0xb4, 0xa0, 0xe8, 0x8e, 0x25, 0x9f, 0xb2, 0x9f, 0x4c, 0xa7, 0x19, 0x27, 0x91, 0x1f, 0x0c, 0x24, 0xaf, 0x02, 0x87, 0x8e, 0x10, 0x21, 0x2d, 0x98, 0xf3,
0xa0, 0x26, 0xee, 0x6c, 0xcc, 0x64, 0x4f, 0xed, 0x5a, 0xdd, 0xa9, 0x09, 0xec, 0x80, 0x6d, 0xdb, 0x46, 0x8a, 0x4f, 0xf9, 0x4f, 0x2e, 0x50, 0x63, 0x6f, 0x3a, 0xe2, 0xb2, 0xa7, 0x77, 0xad, 0xe1,
0x2d, 0x58, 0xd1, 0x49, 0x64, 0xeb, 0x65, 0x6c, 0x7d, 0x59, 0xa3, 0x14, 0x9d, 0xdc, 0x80, 0xa6, 0xd6, 0x25, 0xb6, 0xcf, 0xb7, 0xed, 0x26, 0xac, 0x98, 0x24, 0xaa, 0xf5, 0x0a, 0xb6, 0xbe, 0x6c,
0xa4, 0x0f, 0xf9, 0x60, 0x71, 0x1f, 0xab, 0x4e, 0x43, 0xc0, 0x72, 0x0a, 0x37, 0xa1, 0x75, 0xea, 0x50, 0xca, 0x4e, 0xae, 0x43, 0x53, 0xd1, 0x47, 0x62, 0xb0, 0xb8, 0x8f, 0x35, 0x77, 0x49, 0xc2,
0xf9, 0xee, 0xa8, 0xdb, 0x1b, 0xc5, 0x67, 0xdd, 0x3e, 0x1d, 0xc5, 0x2e, 0xee, 0x68, 0xd9, 0x69, 0x6a, 0x0a, 0x37, 0xa0, 0x75, 0xe2, 0x07, 0xde, 0xb0, 0xdb, 0x1b, 0x26, 0x67, 0xdd, 0x3e, 0x1b,
0x20, 0xbe, 0x3b, 0x8a, 0xcf, 0xf6, 0x18, 0x4a, 0xde, 0x86, 0xea, 0x29, 0xa5, 0x5d, 0x5c, 0x89, 0x26, 0x1e, 0xee, 0x68, 0xc5, 0x5d, 0x42, 0x7c, 0x67, 0x98, 0x9c, 0xed, 0x72, 0x94, 0xbc, 0x03,
0x76, 0x05, 0x25, 0xa4, 0x29, 0x96, 0x5e, 0xae, 0xae, 0x53, 0x39, 0x15, 0xbf, 0xec, 0x3f, 0xb3, 0xb5, 0x13, 0xc6, 0xba, 0xb8, 0x12, 0xed, 0x2a, 0x4a, 0x48, 0x53, 0x2e, 0xbd, 0x5a, 0x5d, 0xb7,
0xa0, 0xce, 0x97, 0x4a, 0x98, 0x8c, 0xeb, 0xb0, 0x24, 0x47, 0x44, 0xc3, 0x30, 0x08, 0x05, 0xfb, 0x7a, 0x22, 0x7f, 0xd1, 0x3f, 0x71, 0xa0, 0x21, 0x96, 0x4a, 0x9a, 0x8c, 0xb7, 0x60, 0x51, 0x8d,
0x9b, 0x20, 0xd9, 0x84, 0x96, 0x04, 0x26, 0x21, 0xf5, 0xc6, 0xee, 0x80, 0x0a, 0xfd, 0x92, 0xc1, 0x88, 0x45, 0x51, 0x18, 0x49, 0xf6, 0xb7, 0x41, 0xb2, 0x09, 0x2d, 0x05, 0x8c, 0x23, 0xe6, 0x8f,
0xc9, 0x76, 0xd2, 0x62, 0x18, 0x4c, 0x63, 0xae, 0xb4, 0x6b, 0xdb, 0x75, 0x31, 0x28, 0x87, 0x61, 0xbc, 0x01, 0x93, 0xfa, 0x25, 0x87, 0x93, 0xdb, 0x69, 0x8b, 0x51, 0x38, 0x49, 0x84, 0xd2, 0xae,
0x8e, 0x49, 0xc2, 0xd8, 0x3f, 0x67, 0xa9, 0x0d, 0xcc, 0xfe, 0x86, 0x05, 0x84, 0x0d, 0xfd, 0x71, 0xdf, 0x6e, 0xc8, 0x41, 0xb9, 0x1c, 0x73, 0x6d, 0x12, 0xce, 0xfe, 0x05, 0x4b, 0x6d, 0x61, 0xf4,
0xc0, 0x9b, 0x10, 0x2b, 0x95, 0xde, 0x25, 0xeb, 0x95, 0x77, 0xa9, 0x30, 0x6f, 0x97, 0xae, 0xc3, 0x9b, 0x0e, 0x10, 0x3e, 0xf4, 0xc7, 0xa1, 0x68, 0x42, 0xae, 0x54, 0x76, 0x97, 0x9c, 0x57, 0xde,
0x02, 0x0e, 0x8b, 0xc9, 0x73, 0x31, 0x33, 0x74, 0x51, 0x67, 0x7f, 0xdb, 0x82, 0xba, 0xae, 0x83, 0xa5, 0xd2, 0xac, 0x5d, 0x7a, 0x0b, 0xe6, 0x71, 0x58, 0x5c, 0x9e, 0xe7, 0x72, 0x43, 0x97, 0x75,
0xc8, 0x6d, 0x20, 0xa7, 0x53, 0xbf, 0xef, 0xf9, 0x83, 0x6e, 0xfc, 0xdc, 0xeb, 0x77, 0x4f, 0x66, 0xf4, 0x3b, 0x0e, 0x34, 0x4c, 0x1d, 0x44, 0x6e, 0x01, 0x39, 0x99, 0x04, 0x7d, 0x3f, 0x18, 0x74,
0xac, 0x09, 0x1c, 0xcf, 0xc1, 0x25, 0x27, 0xa7, 0x8e, 0xbc, 0x0d, 0x2d, 0x03, 0x8d, 0xe2, 0x90, 0x93, 0xe7, 0x7e, 0xbf, 0x7b, 0x3c, 0xe5, 0x4d, 0xe0, 0x78, 0xf6, 0x2f, 0xb9, 0x05, 0x75, 0xe4,
0x8f, 0xea, 0xe0, 0x92, 0x93, 0xa9, 0x61, 0x8b, 0xc4, 0xb4, 0xdc, 0x34, 0xee, 0x7a, 0x7e, 0x9f, 0x1d, 0x68, 0x59, 0x68, 0x9c, 0x44, 0x62, 0x54, 0xfb, 0x97, 0xdc, 0x5c, 0x0d, 0x5f, 0x24, 0xae,
0x3e, 0xc7, 0x75, 0x5d, 0x72, 0x0c, 0xec, 0x6e, 0x03, 0xea, 0xfa, 0x77, 0xf6, 0xe7, 0xa0, 0x75, 0xe5, 0x26, 0x49, 0xd7, 0x0f, 0xfa, 0xec, 0x39, 0xae, 0xeb, 0xa2, 0x6b, 0x61, 0x77, 0x97, 0xa0,
0xc8, 0x94, 0x87, 0xef, 0xf9, 0x03, 0xa1, 0xc4, 0x99, 0x46, 0x13, 0x1a, 0x97, 0xef, 0xb5, 0x28, 0x61, 0x7e, 0x47, 0x3f, 0x0f, 0xad, 0x03, 0xae, 0x3c, 0x02, 0x3f, 0x18, 0x48, 0x25, 0xce, 0x35,
0x31, 0xb1, 0x19, 0x06, 0x51, 0x2c, 0xd6, 0x05, 0x7f, 0xdb, 0xff, 0x64, 0x41, 0x93, 0x2d, 0xfa, 0x9a, 0xd4, 0xb8, 0x62, 0xaf, 0x65, 0x89, 0x8b, 0xcd, 0x69, 0x18, 0x27, 0x72, 0x5d, 0xf0, 0x37,
0x07, 0xae, 0x3f, 0x93, 0x2b, 0x7e, 0x08, 0x75, 0xd6, 0xd4, 0xe3, 0x60, 0x87, 0xeb, 0x45, 0x2e, 0xfd, 0x07, 0x07, 0x9a, 0x7c, 0xd1, 0x3f, 0xf4, 0x82, 0xa9, 0x5a, 0xf1, 0x03, 0x68, 0xf0, 0xa6,
0xef, 0x37, 0xc5, 0x22, 0xa5, 0xa8, 0x6f, 0xe9, 0xa4, 0xcc, 0x75, 0x99, 0x39, 0xc6, 0xd7, 0x4c, 0x1e, 0x87, 0xdb, 0x42, 0x2f, 0x0a, 0x79, 0xbf, 0x21, 0x17, 0x29, 0x43, 0x7d, 0xd3, 0x24, 0xe5,
0x30, 0x63, 0x37, 0x1c, 0xd0, 0x18, 0x35, 0xa6, 0xd0, 0xa0, 0xc0, 0xa1, 0xdd, 0xc0, 0x3f, 0x25, 0xae, 0xcb, 0xd4, 0xb5, 0xbe, 0xe6, 0x82, 0x99, 0x78, 0xd1, 0x80, 0x25, 0xa8, 0x31, 0xa5, 0x06,
0xd7, 0xa0, 0x1e, 0xb9, 0x71, 0x77, 0x42, 0x43, 0x5c, 0x35, 0x14, 0xae, 0xa2, 0x03, 0x91, 0x1b, 0x05, 0x01, 0xed, 0x84, 0xc1, 0x09, 0xb9, 0x06, 0x8d, 0xd8, 0x4b, 0xba, 0x63, 0x16, 0xe1, 0xaa,
0x1f, 0xd1, 0xf0, 0xee, 0x2c, 0xa6, 0x9d, 0x9f, 0x86, 0xe5, 0x4c, 0x2f, 0x4c, 0x9e, 0x93, 0x29, 0xa1, 0x70, 0xcd, 0xb9, 0x10, 0x7b, 0xc9, 0x21, 0x8b, 0xee, 0x4e, 0x13, 0xd6, 0xf9, 0x7f, 0xb0,
0xb2, 0x9f, 0x64, 0x15, 0xca, 0x67, 0xee, 0x68, 0x4a, 0x85, 0x22, 0xe7, 0x85, 0xf7, 0x0b, 0xef, 0x9c, 0xeb, 0x85, 0xcb, 0x73, 0x3a, 0x45, 0xfe, 0x93, 0xac, 0x42, 0xe5, 0xcc, 0x1b, 0x4e, 0x98,
0x59, 0xf6, 0x5b, 0xd0, 0x4a, 0x86, 0x2d, 0x04, 0x83, 0x40, 0x89, 0xad, 0xa0, 0x68, 0x00, 0x7f, 0x54, 0xe4, 0xa2, 0xf0, 0x41, 0xe9, 0x7d, 0x87, 0xbe, 0x0d, 0xad, 0x74, 0xd8, 0x52, 0x30, 0x08,
0xdb, 0xbf, 0x6c, 0x71, 0xc2, 0xdd, 0xc0, 0x53, 0x4a, 0x91, 0x11, 0x32, 0xdd, 0x29, 0x09, 0xd9, 0x94, 0xf9, 0x0a, 0xca, 0x06, 0xf0, 0x37, 0xfd, 0x25, 0x47, 0x10, 0xee, 0x84, 0xbe, 0x56, 0x8a,
0xef, 0xb9, 0x46, 0xe3, 0x47, 0x9f, 0xac, 0x7d, 0x03, 0x96, 0xb5, 0x21, 0xbc, 0x64, 0xb0, 0x0f, 0x9c, 0x90, 0xeb, 0x4e, 0x45, 0xc8, 0x7f, 0xcf, 0x34, 0x1a, 0x3f, 0xf9, 0x64, 0xe9, 0x75, 0x58,
0x81, 0x1c, 0x7a, 0x51, 0xfc, 0xc4, 0x8f, 0x26, 0x9a, 0x62, 0x79, 0x0d, 0xaa, 0x63, 0xcf, 0xc7, 0x36, 0x86, 0xf0, 0x92, 0xc1, 0x3e, 0x04, 0x72, 0xe0, 0xc7, 0xc9, 0x93, 0x20, 0x1e, 0x1b, 0x8a,
0xee, 0x39, 0x6f, 0x96, 0x9d, 0xca, 0xd8, 0xf3, 0x59, 0xe7, 0x11, 0x56, 0xba, 0xcf, 0x45, 0x65, 0xe5, 0x35, 0xa8, 0x8d, 0xfc, 0x00, 0xbb, 0x17, 0xbc, 0x59, 0x71, 0xab, 0x23, 0x3f, 0xe0, 0x9d,
0x41, 0x54, 0xba, 0xcf, 0xb1, 0xd2, 0x7e, 0x0f, 0x56, 0x8c, 0xf6, 0x44, 0xd7, 0x6f, 0x42, 0x79, 0xc7, 0x58, 0xe9, 0x3d, 0x97, 0x95, 0x25, 0x59, 0xe9, 0x3d, 0xc7, 0x4a, 0xfa, 0x3e, 0xac, 0x58,
0x1a, 0x3f, 0x0f, 0xa4, 0xda, 0xaf, 0x09, 0x36, 0x60, 0xce, 0x84, 0xc3, 0x6b, 0xec, 0x3b, 0xb0, 0xed, 0xc9, 0xae, 0xdf, 0x84, 0xca, 0x24, 0x79, 0x1e, 0x2a, 0xb5, 0x5f, 0x97, 0x6c, 0xc0, 0x9d,
0xfc, 0x90, 0x9e, 0x0b, 0xf6, 0x93, 0x03, 0x79, 0xeb, 0x42, 0x47, 0x03, 0xeb, 0xed, 0x5b, 0x40, 0x09, 0x57, 0xd4, 0xd0, 0x3b, 0xb0, 0xfc, 0x90, 0x9d, 0x4b, 0xf6, 0x53, 0x03, 0x79, 0xfb, 0x42,
0xf4, 0x8f, 0x45, 0xaf, 0x9a, 0xdb, 0x61, 0x19, 0x6e, 0x87, 0xfd, 0x16, 0x90, 0x63, 0x6f, 0xe0, 0x47, 0x03, 0xeb, 0xe9, 0x4d, 0x20, 0xe6, 0xc7, 0xb2, 0x57, 0xc3, 0xed, 0x70, 0x2c, 0xb7, 0x83,
0x7f, 0x40, 0xa3, 0xc8, 0x1d, 0x28, 0x2d, 0xd1, 0x82, 0xe2, 0x38, 0x1a, 0x08, 0xe5, 0xc0, 0x7e, 0xbe, 0x0d, 0xe4, 0xc8, 0x1f, 0x04, 0x1f, 0xb2, 0x38, 0xf6, 0x06, 0x5a, 0x4b, 0xb4, 0x60, 0x6e,
0xda, 0x9f, 0x82, 0x15, 0x83, 0x4e, 0x34, 0x7c, 0x05, 0xaa, 0x91, 0x37, 0xf0, 0xdd, 0x78, 0x1a, 0x14, 0x0f, 0xa4, 0x72, 0xe0, 0x3f, 0xe9, 0xa7, 0x61, 0xc5, 0xa2, 0x93, 0x0d, 0x5f, 0x81, 0x5a,
0x52, 0xd1, 0x74, 0x02, 0xd8, 0xf7, 0x60, 0xf5, 0x8b, 0x34, 0xf4, 0x4e, 0x67, 0x17, 0x35, 0x6f, 0xec, 0x0f, 0x02, 0x2f, 0x99, 0x44, 0x4c, 0x36, 0x9d, 0x02, 0xf4, 0x1e, 0xac, 0x7e, 0x89, 0x45,
0xb6, 0x53, 0x48, 0xb7, 0xb3, 0x0f, 0x6b, 0xa9, 0x76, 0x44, 0xf7, 0x9c, 0x47, 0xc5, 0x4e, 0x56, 0xfe, 0xc9, 0xf4, 0xa2, 0xe6, 0xed, 0x76, 0x4a, 0xd9, 0x76, 0xf6, 0x60, 0x2d, 0xd3, 0x8e, 0xec,
0x1c, 0x5e, 0xd0, 0x24, 0xb6, 0xa0, 0x4b, 0xac, 0xfd, 0x04, 0xc8, 0x6e, 0xe0, 0xfb, 0xb4, 0x17, 0x5e, 0xf0, 0xa8, 0xdc, 0xc9, 0xaa, 0x2b, 0x0a, 0x86, 0xc4, 0x96, 0x4c, 0x89, 0xa5, 0x4f, 0x80,
0x1f, 0x51, 0x1a, 0x26, 0x07, 0x8d, 0x84, 0x21, 0x6b, 0xdb, 0x1b, 0x62, 0x65, 0xd3, 0x6a, 0x40, 0xec, 0x84, 0x41, 0xc0, 0x7a, 0xc9, 0x21, 0x63, 0x51, 0x7a, 0xd0, 0x48, 0x19, 0xb2, 0x7e, 0x7b,
0x70, 0x2a, 0x81, 0xd2, 0x84, 0x86, 0x63, 0x6c, 0xb8, 0xe2, 0xe0, 0x6f, 0x7b, 0x0d, 0x56, 0x8c, 0x43, 0xae, 0x6c, 0x56, 0x0d, 0x48, 0x4e, 0x25, 0x50, 0x1e, 0xb3, 0x68, 0x84, 0x0d, 0x57, 0x5d,
0x66, 0x85, 0x8f, 0xf8, 0x0e, 0xac, 0xed, 0x79, 0x51, 0x2f, 0xdb, 0x61, 0x1b, 0x16, 0x27, 0xd3, 0xfc, 0x4d, 0xd7, 0x60, 0xc5, 0x6a, 0x56, 0xfa, 0x88, 0xef, 0xc2, 0xda, 0xae, 0x1f, 0xf7, 0xf2,
0x93, 0x6e, 0x22, 0x6e, 0xb2, 0xc8, 0x5c, 0x89, 0xf4, 0x27, 0xa2, 0xb1, 0x5f, 0xb7, 0xa0, 0x74, 0x1d, 0xb6, 0x61, 0x61, 0x3c, 0x39, 0xee, 0xa6, 0xe2, 0xa6, 0x8a, 0xdc, 0x95, 0xc8, 0x7e, 0x22,
0xf0, 0xf8, 0x70, 0x97, 0x74, 0xa0, 0xe2, 0xf9, 0xbd, 0x60, 0xcc, 0x34, 0x32, 0x9f, 0xb4, 0x2a, 0x1b, 0xfb, 0x35, 0x07, 0xca, 0xfb, 0x8f, 0x0f, 0x76, 0x48, 0x07, 0xaa, 0x7e, 0xd0, 0x0b, 0x47,
0xcf, 0x15, 0xa3, 0x2b, 0x50, 0x45, 0x45, 0xce, 0xbc, 0x23, 0x71, 0x26, 0x48, 0x00, 0xe6, 0x99, 0x5c, 0x23, 0x8b, 0x49, 0xeb, 0xf2, 0x4c, 0x31, 0xba, 0x02, 0x35, 0x54, 0xe4, 0xdc, 0x3b, 0x92,
0xd1, 0xe7, 0x13, 0x2f, 0x44, 0xd7, 0x4b, 0x3a, 0x54, 0x25, 0x54, 0x96, 0xd9, 0x0a, 0xfb, 0x7f, 0x67, 0x82, 0x14, 0xe0, 0x9e, 0x19, 0x7b, 0x3e, 0xf6, 0x23, 0x74, 0xbd, 0x94, 0x43, 0x55, 0x46,
0x4a, 0xb0, 0x28, 0xd4, 0x38, 0xf6, 0xd7, 0x8b, 0xbd, 0x33, 0x2a, 0x46, 0x22, 0x4a, 0xcc, 0x48, 0x65, 0x99, 0xaf, 0xa0, 0xff, 0x59, 0x86, 0x05, 0xa9, 0xc6, 0xb1, 0xbf, 0x5e, 0xe2, 0x9f, 0x31,
0x86, 0x74, 0x1c, 0xc4, 0xb4, 0x6b, 0x6c, 0x83, 0x09, 0xa2, 0xe7, 0xc9, 0x1b, 0xea, 0x72, 0x7f, 0x39, 0x12, 0x59, 0xe2, 0x46, 0x32, 0x62, 0xa3, 0x30, 0x61, 0x5d, 0x6b, 0x1b, 0x6c, 0x10, 0x3d,
0xb5, 0xc8, 0xa9, 0x0c, 0x90, 0x2d, 0x16, 0x03, 0xba, 0x5e, 0x1f, 0xc7, 0x54, 0x72, 0x64, 0x91, 0x4f, 0xd1, 0x50, 0x57, 0xf8, 0xab, 0x73, 0x82, 0xca, 0x02, 0xf9, 0x62, 0x71, 0xa0, 0xeb, 0xf7,
0xad, 0x44, 0xcf, 0x9d, 0xb8, 0x3d, 0x2f, 0x9e, 0x09, 0xb9, 0x57, 0x65, 0xd6, 0xf6, 0x28, 0xe8, 0x71, 0x4c, 0x65, 0x57, 0x15, 0xf9, 0x4a, 0xf4, 0xbc, 0xb1, 0xd7, 0xf3, 0x93, 0xa9, 0x94, 0x7b,
0xb9, 0xa3, 0xee, 0x89, 0x3b, 0x72, 0xfd, 0x1e, 0x95, 0x5e, 0xad, 0x01, 0x32, 0x0f, 0x4f, 0x0c, 0x5d, 0xe6, 0x6d, 0x0f, 0xc3, 0x9e, 0x37, 0xec, 0x1e, 0x7b, 0x43, 0x2f, 0xe8, 0x31, 0xe5, 0xd5,
0x49, 0x92, 0x71, 0x2f, 0x30, 0x85, 0x32, 0x4f, 0xb1, 0x17, 0x8c, 0xc7, 0x5e, 0xcc, 0x1c, 0x43, 0x5a, 0x20, 0xf7, 0xf0, 0xe4, 0x90, 0x14, 0x99, 0xf0, 0x02, 0x33, 0x28, 0xf7, 0x14, 0x7b, 0xe1,
0x74, 0x1a, 0x8a, 0x8e, 0x86, 0x70, 0x1f, 0x1a, 0x4b, 0xe7, 0x7c, 0xf5, 0xaa, 0xd2, 0x87, 0xd6, 0x68, 0xe4, 0x27, 0xdc, 0x31, 0x44, 0xa7, 0x61, 0xce, 0x35, 0x10, 0xe1, 0x43, 0x63, 0xe9, 0x5c,
0x40, 0xd6, 0x0a, 0xf3, 0x3c, 0x98, 0xae, 0x7a, 0x76, 0xde, 0x06, 0xde, 0x4a, 0x82, 0xb0, 0x7d, 0xac, 0x5e, 0x4d, 0xf9, 0xd0, 0x06, 0xc8, 0x5b, 0xe1, 0x9e, 0x07, 0xd7, 0x55, 0xcf, 0xce, 0xdb,
0x98, 0xfa, 0x11, 0x8d, 0xe3, 0x11, 0xed, 0xab, 0x01, 0xd5, 0x90, 0x2c, 0x5b, 0x41, 0x6e, 0xc3, 0x20, 0x5a, 0x49, 0x11, 0xbe, 0x0f, 0x93, 0x20, 0x66, 0x49, 0x32, 0x64, 0x7d, 0x3d, 0xa0, 0x3a,
0x0a, 0xf7, 0x55, 0x23, 0x37, 0x0e, 0xa2, 0xa1, 0x17, 0x75, 0x23, 0xe6, 0xf5, 0xd5, 0x91, 0x3e, 0x92, 0xe5, 0x2b, 0xc8, 0x2d, 0x58, 0x11, 0xbe, 0x6a, 0xec, 0x25, 0x61, 0x7c, 0xea, 0xc7, 0xdd,
0xaf, 0x8a, 0xbc, 0x07, 0x1b, 0x29, 0x38, 0xa4, 0x3d, 0xea, 0x9d, 0xd1, 0x7e, 0x7b, 0x09, 0xbf, 0x98, 0x7b, 0x7d, 0x0d, 0xa4, 0x2f, 0xaa, 0x22, 0xef, 0xc3, 0x46, 0x06, 0x8e, 0x58, 0x8f, 0xf9,
0x9a, 0x57, 0x4d, 0xae, 0x41, 0x8d, 0xb9, 0xe8, 0xd3, 0x49, 0xdf, 0x65, 0x26, 0xba, 0x81, 0xfb, 0x67, 0xac, 0xdf, 0x5e, 0xc4, 0xaf, 0x66, 0x55, 0x93, 0x6b, 0x50, 0xe7, 0x2e, 0xfa, 0x64, 0xdc,
0xa0, 0x43, 0xe4, 0x1d, 0x58, 0x9a, 0x50, 0x6e, 0x47, 0x87, 0xf1, 0xa8, 0x17, 0xb5, 0x9b, 0x86, 0xf7, 0xb8, 0x89, 0x5e, 0xc2, 0x7d, 0x30, 0x21, 0xf2, 0x2e, 0x2c, 0x8e, 0x99, 0xb0, 0xa3, 0xa7,
0x76, 0x63, 0x9c, 0xeb, 0x98, 0x14, 0x8c, 0x29, 0x7b, 0x11, 0xfa, 0x6a, 0xee, 0xac, 0xdd, 0x42, 0xc9, 0xb0, 0x17, 0xb7, 0x9b, 0x96, 0x76, 0xe3, 0x9c, 0xeb, 0xda, 0x14, 0x9c, 0x29, 0x7b, 0x31,
0x76, 0x4b, 0x00, 0x94, 0x91, 0xd0, 0x3b, 0x73, 0x63, 0xda, 0x5e, 0x46, 0xde, 0x92, 0x45, 0xfb, 0xfa, 0x6a, 0xde, 0xb4, 0xdd, 0x42, 0x76, 0x4b, 0x01, 0x94, 0x91, 0xc8, 0x3f, 0xf3, 0x12, 0xd6,
0x8f, 0x2c, 0xae, 0x58, 0x05, 0x13, 0x2a, 0x05, 0xf9, 0x06, 0xd4, 0x38, 0xfb, 0x75, 0x03, 0x7f, 0x5e, 0x46, 0xde, 0x52, 0x45, 0xfa, 0x07, 0x8e, 0x50, 0xac, 0x92, 0x09, 0xb5, 0x82, 0x7c, 0x03,
0x34, 0x13, 0x1c, 0x09, 0x1c, 0x7a, 0xe4, 0x8f, 0x66, 0xe4, 0x13, 0xb0, 0xe4, 0xf9, 0x3a, 0x09, 0xea, 0x82, 0xfd, 0xba, 0x61, 0x30, 0x9c, 0x4a, 0x8e, 0x04, 0x01, 0x3d, 0x0a, 0x86, 0x53, 0xf2,
0x97, 0xe1, 0xba, 0x04, 0x91, 0xe8, 0x0d, 0xa8, 0x4d, 0xa6, 0x27, 0x23, 0xaf, 0xc7, 0x49, 0x8a, 0x09, 0x58, 0xf4, 0x03, 0x93, 0x44, 0xc8, 0x70, 0x43, 0x81, 0x48, 0xf4, 0x06, 0xd4, 0xc7, 0x93,
0xbc, 0x15, 0x0e, 0x21, 0x01, 0xf3, 0x9f, 0xf8, 0x48, 0x38, 0x45, 0x09, 0x29, 0x6a, 0x02, 0x63, 0xe3, 0xa1, 0xdf, 0x13, 0x24, 0x73, 0xa2, 0x15, 0x01, 0x21, 0x01, 0xf7, 0x9f, 0xc4, 0x48, 0x04,
0x24, 0xf6, 0x5d, 0x58, 0x35, 0x07, 0x28, 0x94, 0xd5, 0x26, 0x54, 0x04, 0x6f, 0x47, 0xed, 0x1a, 0x45, 0x19, 0x29, 0xea, 0x12, 0xe3, 0x24, 0xf4, 0x2e, 0xac, 0xda, 0x03, 0x94, 0xca, 0x6a, 0x13,
0xae, 0x4f, 0xc3, 0x3c, 0x9b, 0x39, 0xaa, 0xde, 0xfe, 0x5e, 0x09, 0x56, 0x04, 0xba, 0x3b, 0x0a, 0xaa, 0x92, 0xb7, 0xe3, 0x76, 0x1d, 0xd7, 0x67, 0xc9, 0x3e, 0x9b, 0xb9, 0xba, 0x9e, 0x7e, 0xbf,
0x22, 0x7a, 0x3c, 0x1d, 0x8f, 0xdd, 0x30, 0x47, 0x68, 0xac, 0x0b, 0x84, 0xa6, 0x60, 0x0a, 0x0d, 0x0c, 0x2b, 0x12, 0xdd, 0x19, 0x86, 0x31, 0x3b, 0x9a, 0x8c, 0x46, 0x5e, 0x54, 0x20, 0x34, 0xce,
0x63, 0xe5, 0xa1, 0xeb, 0xf9, 0xdc, 0xf9, 0xe3, 0x12, 0xa7, 0x21, 0xe4, 0x26, 0x34, 0x7b, 0xa3, 0x05, 0x42, 0x53, 0xb2, 0x85, 0x86, 0xb3, 0xf2, 0xa9, 0xe7, 0x07, 0xc2, 0xf9, 0x13, 0x12, 0x67,
0x20, 0xe2, 0x0e, 0x91, 0x7e, 0xfa, 0x4a, 0xc3, 0x59, 0x21, 0x2f, 0xe7, 0x09, 0xb9, 0x2e, 0xa4, 0x20, 0xe4, 0x06, 0x34, 0x7b, 0xc3, 0x30, 0x16, 0x0e, 0x91, 0x79, 0xfa, 0xca, 0xc2, 0x79, 0x21,
0x0b, 0x29, 0x21, 0xb5, 0xa1, 0xce, 0x1a, 0xa5, 0x52, 0xe7, 0x2c, 0x72, 0x07, 0x4d, 0xc7, 0xd8, 0xaf, 0x14, 0x09, 0xb9, 0x29, 0xa4, 0xf3, 0x19, 0x21, 0xa5, 0xd0, 0xe0, 0x8d, 0x32, 0xa5, 0x73,
0x78, 0xd2, 0x22, 0xc1, 0xe5, 0xaf, 0x99, 0x27, 0x10, 0xec, 0x70, 0xc7, 0x74, 0x9a, 0x46, 0x5d, 0x16, 0x84, 0x83, 0x66, 0x62, 0x7c, 0x3c, 0x59, 0x91, 0x10, 0xf2, 0xd7, 0x2c, 0x12, 0x08, 0x7e,
0x15, 0x02, 0x91, 0xad, 0x22, 0xf7, 0x00, 0x78, 0x5f, 0x68, 0x58, 0x01, 0x0d, 0xeb, 0x5b, 0xe6, 0xb8, 0xe3, 0x3a, 0xcd, 0xa0, 0xae, 0x49, 0x81, 0xc8, 0x57, 0x91, 0x7b, 0x00, 0xa2, 0x2f, 0x34,
0x8e, 0xe8, 0x6b, 0x7f, 0x8b, 0x15, 0xa6, 0x21, 0x45, 0x63, 0xab, 0x7d, 0x69, 0xff, 0xa6, 0x05, 0xac, 0x80, 0x86, 0xf5, 0x6d, 0x7b, 0x47, 0xcc, 0xb5, 0xbf, 0xc9, 0x0b, 0x93, 0x88, 0xa1, 0xb1,
0x35, 0xad, 0x8e, 0xac, 0xc1, 0xf2, 0xee, 0xa3, 0x47, 0x47, 0xfb, 0xce, 0xce, 0xe3, 0x07, 0x5f, 0x35, 0xbe, 0xa4, 0xbf, 0xe1, 0x40, 0xdd, 0xa8, 0x23, 0x6b, 0xb0, 0xbc, 0xf3, 0xe8, 0xd1, 0xe1,
0xdc, 0xef, 0xee, 0x1e, 0x3e, 0x3a, 0xde, 0x6f, 0x5d, 0x62, 0xf0, 0xe1, 0xa3, 0xdd, 0x9d, 0xc3, 0x9e, 0xbb, 0xfd, 0xf8, 0xc1, 0x97, 0xf6, 0xba, 0x3b, 0x07, 0x8f, 0x8e, 0xf6, 0x5a, 0x97, 0x38,
0xee, 0xbd, 0x47, 0xce, 0xae, 0x84, 0x2d, 0xb2, 0x0e, 0xc4, 0xd9, 0xff, 0xe0, 0xd1, 0xe3, 0x7d, 0x7c, 0xf0, 0x68, 0x67, 0xfb, 0xa0, 0x7b, 0xef, 0x91, 0xbb, 0xa3, 0x60, 0x87, 0xac, 0x03, 0x71,
0x03, 0x2f, 0x90, 0x16, 0xd4, 0xef, 0x3a, 0xfb, 0x3b, 0xbb, 0x07, 0x02, 0x29, 0x92, 0x55, 0x68, 0xf7, 0x3e, 0x7c, 0xf4, 0x78, 0xcf, 0xc2, 0x4b, 0xa4, 0x05, 0x8d, 0xbb, 0xee, 0xde, 0xf6, 0xce,
0xdd, 0x7b, 0xf2, 0x70, 0xef, 0xc1, 0xc3, 0xfb, 0xdd, 0xdd, 0x9d, 0x87, 0xbb, 0xfb, 0x87, 0xfb, 0xbe, 0x44, 0xe6, 0xc8, 0x2a, 0xb4, 0xee, 0x3d, 0x79, 0xb8, 0xfb, 0xe0, 0xe1, 0xfd, 0xee, 0xce,
0x7b, 0xad, 0x12, 0x59, 0x82, 0xea, 0xce, 0xdd, 0x9d, 0x87, 0x7b, 0x8f, 0x1e, 0xee, 0xef, 0xb5, 0xf6, 0xc3, 0x9d, 0xbd, 0x83, 0xbd, 0xdd, 0x56, 0x99, 0x2c, 0x42, 0x6d, 0xfb, 0xee, 0xf6, 0xc3,
0xca, 0xf6, 0x3f, 0x5a, 0xb0, 0x86, 0xa3, 0xee, 0xa7, 0x05, 0xe4, 0x1a, 0xd4, 0x7a, 0x41, 0x30, 0xdd, 0x47, 0x0f, 0xf7, 0x76, 0x5b, 0x15, 0xfa, 0xf7, 0x0e, 0xac, 0xe1, 0xa8, 0xfb, 0x59, 0x01,
0xa1, 0x4c, 0x9f, 0x2b, 0x95, 0xad, 0x43, 0x8c, 0xf9, 0xb9, 0x82, 0x3c, 0x0d, 0xc2, 0x1e, 0x15, 0xb9, 0x06, 0xf5, 0x5e, 0x18, 0x8e, 0x19, 0xd7, 0xe7, 0x5a, 0x65, 0x9b, 0x10, 0x67, 0x7e, 0xa1,
0xf2, 0x01, 0x08, 0xdd, 0x63, 0x08, 0x63, 0x7e, 0xb1, 0xbd, 0x9c, 0x82, 0x8b, 0x47, 0x8d, 0x63, 0x20, 0x4f, 0xc2, 0xa8, 0xc7, 0xa4, 0x7c, 0x00, 0x42, 0xf7, 0x38, 0xc2, 0x99, 0x5f, 0x6e, 0xaf,
0x9c, 0x64, 0x1d, 0x16, 0x4e, 0x42, 0xea, 0xf6, 0x86, 0x42, 0x32, 0x44, 0x89, 0x7c, 0x32, 0xf1, 0xa0, 0x10, 0xe2, 0x51, 0x17, 0x98, 0x20, 0x59, 0x87, 0xf9, 0xe3, 0x88, 0x79, 0xbd, 0x53, 0x29,
0xdd, 0x7b, 0x6c, 0xf5, 0x47, 0xb4, 0x8f, 0x1c, 0x53, 0x71, 0x9a, 0x02, 0xdf, 0x15, 0x30, 0xd3, 0x19, 0xb2, 0x44, 0x3e, 0x95, 0xfa, 0xee, 0x3d, 0xbe, 0xfa, 0x43, 0xd6, 0x47, 0x8e, 0xa9, 0xba,
0x0c, 0xee, 0x89, 0xeb, 0xf7, 0x03, 0x9f, 0xf6, 0x91, 0x69, 0x2a, 0x4e, 0x02, 0xd8, 0x47, 0xb0, 0x4d, 0x89, 0xef, 0x48, 0x98, 0x6b, 0x06, 0xef, 0xd8, 0x0b, 0xfa, 0x61, 0xc0, 0xfa, 0xc8, 0x34,
0x9e, 0x9e, 0x9f, 0x90, 0xaf, 0x77, 0x35, 0xf9, 0xe2, 0xde, 0x55, 0x67, 0xfe, 0x6e, 0x6a, 0xb2, 0x55, 0x37, 0x05, 0xe8, 0x21, 0xac, 0x67, 0xe7, 0x27, 0xe5, 0xeb, 0x3d, 0x43, 0xbe, 0x84, 0x77,
0xf6, 0xaf, 0x16, 0x94, 0x98, 0xb1, 0x9d, 0x6f, 0x98, 0x75, 0xff, 0xa9, 0x98, 0x09, 0xdb, 0xe0, 0xd5, 0x99, 0xbd, 0x9b, 0x86, 0xac, 0xfd, 0xb3, 0x03, 0x65, 0x6e, 0x6c, 0x67, 0x1b, 0x66, 0xd3,
0xe1, 0x84, 0xab, 0x5f, 0x6e, 0xa2, 0x34, 0x24, 0xa9, 0x0f, 0x69, 0xef, 0x0c, 0x67, 0xac, 0xea, 0x7f, 0x9a, 0xcb, 0x85, 0x6d, 0xf0, 0x70, 0x22, 0xd4, 0xaf, 0x30, 0x51, 0x06, 0x92, 0xd6, 0x47,
0x19, 0xc2, 0x04, 0x84, 0x79, 0xb0, 0xf8, 0xb5, 0x10, 0x10, 0x59, 0x96, 0x75, 0xf8, 0xe5, 0x62, 0xac, 0x77, 0x86, 0x33, 0xd6, 0xf5, 0x1c, 0xe1, 0x02, 0xc2, 0x3d, 0x58, 0xfc, 0x5a, 0x0a, 0x88,
0x52, 0x87, 0xdf, 0xb5, 0x61, 0xd1, 0xf3, 0x4f, 0x82, 0xa9, 0xdf, 0x47, 0x81, 0xa8, 0x38, 0xb2, 0x2a, 0xab, 0x3a, 0xfc, 0x72, 0x21, 0xad, 0xc3, 0xef, 0xda, 0xb0, 0xe0, 0x07, 0xc7, 0xe1, 0x24,
0xc8, 0x96, 0x6f, 0x82, 0x82, 0xea, 0x8d, 0x25, 0xfb, 0x27, 0x80, 0x4d, 0xd8, 0x09, 0x27, 0x42, 0xe8, 0xa3, 0x40, 0x54, 0x5d, 0x55, 0xe4, 0xcb, 0x37, 0x46, 0x41, 0xf5, 0x47, 0x8a, 0xfd, 0x53,
0xe7, 0x42, 0xc5, 0x29, 0xde, 0x85, 0x65, 0x0d, 0x4b, 0x1c, 0xd5, 0x09, 0x03, 0x52, 0x8e, 0x2a, 0x80, 0x12, 0x7e, 0xc2, 0x89, 0xd1, 0xb9, 0xd0, 0x71, 0x8a, 0xf7, 0x60, 0xd9, 0xc0, 0x52, 0x47,
0x7a, 0x25, 0xbc, 0xc6, 0x6e, 0x41, 0xe3, 0x3e, 0x8d, 0x1f, 0xf8, 0xa7, 0x81, 0x6c, 0xe9, 0x9b, 0x75, 0xcc, 0x81, 0x8c, 0xa3, 0x8a, 0x5e, 0x89, 0xa8, 0xa1, 0x2d, 0x58, 0xba, 0xcf, 0x92, 0x07,
0x25, 0x68, 0x2a, 0x48, 0x34, 0x74, 0x13, 0x9a, 0x5e, 0x9f, 0xfa, 0xb1, 0x17, 0xcf, 0xba, 0xc6, 0xc1, 0x49, 0xa8, 0x5a, 0xfa, 0x56, 0x19, 0x9a, 0x1a, 0x92, 0x0d, 0xdd, 0x80, 0xa6, 0xdf, 0x67,
0x41, 0x2a, 0x0d, 0x33, 0x6f, 0xce, 0x1d, 0x79, 0xae, 0x0c, 0x8d, 0xf1, 0x02, 0xd9, 0x86, 0x55, 0x41, 0xe2, 0x27, 0xd3, 0xae, 0x75, 0x90, 0xca, 0xc2, 0xdc, 0x9b, 0xf3, 0x86, 0xbe, 0xa7, 0x42,
0x66, 0x6a, 0xa4, 0xf5, 0x50, 0x5b, 0xcc, 0xcf, 0x73, 0xb9, 0x75, 0x4c, 0x19, 0x30, 0x5c, 0x68, 0x63, 0xa2, 0x40, 0x6e, 0xc3, 0x2a, 0x37, 0x35, 0xca, 0x7a, 0xe8, 0x2d, 0x16, 0xe7, 0xb9, 0xc2,
0x7b, 0xf5, 0x09, 0xf7, 0x6a, 0xf2, 0xaa, 0xd8, 0xaa, 0xf1, 0x96, 0xd8, 0x94, 0xcb, 0xdc, 0x1c, 0x3a, 0xae, 0x0c, 0x38, 0x2e, 0xb5, 0xbd, 0xfe, 0x44, 0x78, 0x35, 0x45, 0x55, 0x7c, 0xd5, 0x44,
0x29, 0x20, 0x13, 0x6f, 0x5a, 0xe0, 0xaa, 0x2a, 0x1d, 0x6f, 0xd2, 0x62, 0x56, 0x95, 0x4c, 0xcc, 0x4b, 0x7c, 0xca, 0x15, 0x61, 0x8e, 0x34, 0x90, 0x8b, 0x37, 0xcd, 0x0b, 0x55, 0x95, 0x8d, 0x37,
0x8a, 0xa9, 0xb2, 0x99, 0xdf, 0xa3, 0xfd, 0x6e, 0x1c, 0x74, 0x51, 0xe5, 0xe2, 0xee, 0x54, 0x9c, 0x19, 0x31, 0xab, 0x6a, 0x2e, 0x66, 0xc5, 0x55, 0xd9, 0x34, 0xe8, 0xb1, 0x7e, 0x37, 0x09, 0xbb,
0x34, 0x8c, 0xd1, 0x35, 0x1a, 0xc5, 0x3e, 0x8d, 0x51, 0x2b, 0x55, 0x1c, 0x59, 0x64, 0xd2, 0x85, 0xa8, 0x72, 0x71, 0x77, 0xaa, 0x6e, 0x16, 0xc6, 0xe8, 0x1a, 0x8b, 0x93, 0x80, 0x25, 0xa8, 0x95,
0x24, 0xdc, 0x80, 0x54, 0x1d, 0x51, 0x62, 0x6e, 0xe9, 0x34, 0xf4, 0xa2, 0x76, 0x1d, 0x51, 0xfc, 0xaa, 0xae, 0x2a, 0x72, 0xe9, 0x42, 0x12, 0x61, 0x40, 0x6a, 0xae, 0x2c, 0x71, 0xb7, 0x74, 0x12,
0x4d, 0x3e, 0x0d, 0x6b, 0x27, 0x34, 0x8a, 0xbb, 0x43, 0xea, 0xf6, 0x69, 0x88, 0xbb, 0xcf, 0x43, 0xf9, 0x71, 0xbb, 0x81, 0x28, 0xfe, 0x26, 0x9f, 0x81, 0xb5, 0x63, 0x16, 0x27, 0xdd, 0x53, 0xe6,
0x61, 0xdc, 0xda, 0xe7, 0x57, 0xb2, 0xbe, 0xcf, 0x68, 0x18, 0x79, 0x81, 0x8f, 0x76, 0xbe, 0xea, 0xf5, 0x59, 0x84, 0xbb, 0x2f, 0x42, 0x61, 0xc2, 0xda, 0x17, 0x57, 0xf2, 0xbe, 0xcf, 0x58, 0x14,
0xc8, 0x22, 0x6b, 0x8f, 0x2d, 0x88, 0xb2, 0xa1, 0x6a, 0x55, 0x9b, 0xb8, 0x18, 0xf9, 0x95, 0xf6, 0xfb, 0x61, 0x80, 0x76, 0xbe, 0xe6, 0xaa, 0x22, 0x6f, 0x8f, 0x2f, 0x88, 0xb6, 0xa1, 0x7a, 0x55,
0xd7, 0xd1, 0xe7, 0x56, 0xa1, 0xbd, 0x27, 0xe8, 0x30, 0xb0, 0x93, 0x13, 0x5f, 0x99, 0x68, 0xe8, 0x9b, 0xb8, 0x18, 0xc5, 0x95, 0xf4, 0x1b, 0xe8, 0x73, 0xeb, 0xd0, 0xde, 0x13, 0x74, 0x18, 0xf8,
0x8a, 0x63, 0x40, 0x05, 0x81, 0xe3, 0xa1, 0xcb, 0xb4, 0x8c, 0xb1, 0xd8, 0xfc, 0x64, 0x55, 0x43, 0xc9, 0x49, 0xac, 0x4c, 0x7c, 0xea, 0xc9, 0x63, 0x40, 0x15, 0x81, 0xa3, 0x53, 0x8f, 0x6b, 0x19,
0xec, 0x80, 0xaf, 0xf5, 0x75, 0x68, 0xc8, 0xa0, 0x61, 0xd4, 0x1d, 0xd1, 0xd3, 0x58, 0x9e, 0xee, 0x6b, 0xb1, 0xc5, 0xc9, 0xaa, 0x8e, 0xd8, 0xbe, 0x58, 0xeb, 0xb7, 0x60, 0x49, 0x05, 0x0d, 0xe3,
0xfd, 0xe9, 0x18, 0x8f, 0x5f, 0x87, 0xf4, 0x34, 0xb6, 0x1f, 0xc2, 0xb2, 0x90, 0xfc, 0x47, 0x13, 0xee, 0x90, 0x9d, 0x24, 0xea, 0x74, 0x1f, 0x4c, 0x46, 0x78, 0xfc, 0x3a, 0x60, 0x27, 0x09, 0x7d,
0x2a, 0xbb, 0xfe, 0x6c, 0x9e, 0x05, 0x9d, 0x13, 0x26, 0x35, 0x29, 0x6d, 0x07, 0x88, 0xae, 0x49, 0x08, 0xcb, 0x52, 0xf2, 0x1f, 0x8d, 0x99, 0xea, 0xfa, 0x73, 0x45, 0x16, 0x74, 0x46, 0x98, 0xd4,
0x44, 0x83, 0xc2, 0x8c, 0xc9, 0x18, 0x82, 0x98, 0x8e, 0x81, 0xb1, 0x55, 0x8d, 0xa6, 0xbd, 0x9e, 0xa6, 0xa4, 0x2e, 0x10, 0x53, 0x93, 0xc8, 0x06, 0xa5, 0x19, 0x53, 0x31, 0x04, 0x39, 0x1d, 0x0b,
0x0c, 0xfb, 0x56, 0x1c, 0x59, 0xb4, 0xbf, 0x63, 0xc1, 0x0a, 0xb6, 0x26, 0x7d, 0x00, 0xa1, 0xad, 0xe3, 0xab, 0x1a, 0x4f, 0x7a, 0x3d, 0x15, 0xf6, 0xad, 0xba, 0xaa, 0x48, 0xbf, 0xeb, 0xc0, 0x0a,
0xdf, 0xfb, 0x01, 0x86, 0x59, 0xef, 0xe9, 0x71, 0x95, 0x55, 0x28, 0xeb, 0xfa, 0x9b, 0x17, 0x7e, 0xb6, 0xa6, 0x7c, 0x00, 0xa9, 0xad, 0xdf, 0xff, 0x11, 0x86, 0xd9, 0xe8, 0x99, 0x71, 0x95, 0x55,
0xf0, 0xa3, 0x74, 0x29, 0x73, 0x94, 0xfe, 0x7d, 0x0b, 0x96, 0xb9, 0x0a, 0x8d, 0xdd, 0x78, 0x1a, 0xa8, 0x98, 0xfa, 0x5b, 0x14, 0x7e, 0xf4, 0xa3, 0x74, 0x39, 0x77, 0x94, 0xfe, 0x5d, 0x07, 0x96,
0x89, 0xe9, 0xff, 0x24, 0x2c, 0x71, 0x5b, 0x28, 0x84, 0x50, 0x0c, 0x74, 0x55, 0xe9, 0x0b, 0x44, 0x85, 0x0a, 0x4d, 0xbc, 0x64, 0x12, 0xcb, 0xe9, 0xff, 0x1f, 0x58, 0x14, 0xb6, 0x50, 0x0a, 0xa1,
0x39, 0xf1, 0xc1, 0x25, 0xc7, 0x24, 0x26, 0x77, 0xd0, 0x1f, 0xf1, 0xbb, 0x88, 0x8a, 0xd0, 0xd7, 0x1c, 0xe8, 0xaa, 0xd6, 0x17, 0x88, 0x0a, 0xe2, 0xfd, 0x4b, 0xae, 0x4d, 0x4c, 0xee, 0xa0, 0x3f,
0xe5, 0x1c, 0xad, 0xad, 0xbe, 0xd7, 0xc8, 0xef, 0x56, 0x60, 0x81, 0x3b, 0xa0, 0xf6, 0x7d, 0x58, 0x12, 0x74, 0x11, 0x95, 0xa1, 0xaf, 0xcb, 0x05, 0x5a, 0x5b, 0x7f, 0x6f, 0x90, 0xdf, 0xad, 0xc2,
0x32, 0x3a, 0x32, 0x4e, 0xf8, 0x75, 0x7e, 0xc2, 0xcf, 0x04, 0x84, 0x0a, 0xd9, 0x80, 0x90, 0xfd, 0xbc, 0x70, 0x40, 0xe9, 0x7d, 0x58, 0xb4, 0x3a, 0xb2, 0x4e, 0xf8, 0x0d, 0x71, 0xc2, 0xcf, 0x05,
0xa7, 0x45, 0x20, 0x8c, 0x59, 0x52, 0xbb, 0xc1, 0x3c, 0xe0, 0xa0, 0x6f, 0x9c, 0x67, 0xea, 0x8e, 0x84, 0x4a, 0xf9, 0x80, 0x10, 0xfd, 0xe3, 0x39, 0x20, 0x9c, 0x59, 0x32, 0xbb, 0xc1, 0x3d, 0xe0,
0x0e, 0x91, 0x5b, 0x40, 0xb4, 0xa2, 0x8c, 0x99, 0x71, 0x63, 0x91, 0x53, 0xc3, 0xb4, 0x9a, 0xb0, 0xb0, 0x6f, 0x9d, 0x67, 0x1a, 0xae, 0x09, 0x91, 0x9b, 0x40, 0x8c, 0xa2, 0x8a, 0x99, 0x09, 0x63,
0xb5, 0xc2, 0x2a, 0x8a, 0x93, 0x1b, 0x5f, 0xf6, 0xdc, 0x3a, 0x66, 0x0f, 0x26, 0xd3, 0x68, 0x88, 0x51, 0x50, 0xc3, 0xb5, 0x9a, 0xb4, 0xb5, 0xd2, 0x2a, 0xca, 0x93, 0x9b, 0x58, 0xf6, 0xc2, 0x3a,
0x17, 0x04, 0xe2, 0xc4, 0x23, 0xcb, 0xe9, 0xfd, 0x5d, 0xb8, 0x70, 0x7f, 0x17, 0xd3, 0xfb, 0xab, 0x6e, 0x0f, 0xc6, 0x93, 0xf8, 0x14, 0x2f, 0x08, 0xe4, 0x89, 0x47, 0x95, 0xb3, 0xfb, 0x3b, 0x7f,
0xfb, 0xdc, 0x15, 0xc3, 0xe7, 0x66, 0xbe, 0xde, 0x98, 0x79, 0x88, 0xf1, 0xa8, 0xd7, 0x1d, 0xb3, 0xe1, 0xfe, 0x2e, 0x64, 0xf7, 0xd7, 0xf4, 0xb9, 0xab, 0x96, 0xcf, 0xcd, 0x7d, 0xbd, 0x11, 0xf7,
0xde, 0xc5, 0x01, 0xc7, 0x00, 0xc9, 0x26, 0xb4, 0x84, 0x77, 0x90, 0x38, 0xf6, 0x80, 0x6b, 0x9c, 0x10, 0x93, 0x61, 0xaf, 0x3b, 0xe2, 0xbd, 0xcb, 0x03, 0x8e, 0x05, 0x92, 0x4d, 0x68, 0x49, 0xef,
0xc1, 0x99, 0xba, 0x4d, 0xe2, 0x2a, 0x35, 0x1c, 0x6c, 0x02, 0xb0, 0xa3, 0x50, 0xc4, 0x38, 0xa4, 0x20, 0x75, 0xec, 0x01, 0xd7, 0x38, 0x87, 0x73, 0x75, 0x9b, 0xc6, 0x55, 0xea, 0x38, 0xd8, 0x14,
0x3b, 0xf5, 0xc5, 0xbd, 0x00, 0xed, 0xe3, 0xd1, 0xa6, 0xe2, 0x64, 0x2b, 0xec, 0xdf, 0xb1, 0xa0, 0xe0, 0x47, 0xa1, 0x98, 0x73, 0x48, 0x77, 0x12, 0xc8, 0x7b, 0x01, 0xd6, 0xc7, 0xa3, 0x4d, 0xd5,
0xc5, 0xf6, 0xcc, 0x60, 0xcb, 0xf7, 0x01, 0xa5, 0xe2, 0x15, 0xb9, 0xd2, 0xa0, 0x25, 0xef, 0x41, 0xcd, 0x57, 0xd0, 0xdf, 0x76, 0xa0, 0xc5, 0xf7, 0xcc, 0x62, 0xcb, 0x0f, 0x00, 0xa5, 0xe2, 0x15,
0x15, 0xcb, 0xc1, 0x84, 0xfa, 0x82, 0x27, 0xdb, 0x26, 0x4f, 0x26, 0xfa, 0xe4, 0xe0, 0x92, 0x93, 0xb9, 0xd2, 0xa2, 0x25, 0xef, 0x43, 0x0d, 0xcb, 0xe1, 0x98, 0x05, 0x92, 0x27, 0xdb, 0x36, 0x4f,
0x10, 0x6b, 0x1c, 0xf9, 0x77, 0x16, 0xd4, 0x44, 0x2f, 0x3f, 0xf4, 0xb9, 0xbd, 0xa3, 0x5d, 0xe6, 0xa6, 0xfa, 0x64, 0xff, 0x92, 0x9b, 0x12, 0x1b, 0x1c, 0xf9, 0x37, 0x0e, 0xd4, 0x65, 0x2f, 0x3f,
0x70, 0x4e, 0x4a, 0xee, 0x6d, 0x6e, 0x42, 0x73, 0xec, 0xc6, 0xd3, 0x90, 0x99, 0x4f, 0xe3, 0xcc, 0xf6, 0xb9, 0xbd, 0x63, 0x5c, 0xe6, 0x08, 0x4e, 0x4a, 0xef, 0x6d, 0x6e, 0x40, 0x73, 0xe4, 0x25,
0x9e, 0x86, 0x99, 0x2d, 0x44, 0xd5, 0x19, 0x75, 0x63, 0x6f, 0xd4, 0x95, 0xb5, 0xe2, 0xca, 0x24, 0x93, 0x88, 0x9b, 0x4f, 0xeb, 0xcc, 0x9e, 0x85, 0xb9, 0x2d, 0x44, 0xd5, 0x19, 0x77, 0x13, 0x7f,
0xaf, 0x8a, 0x69, 0x90, 0x28, 0x76, 0x07, 0x54, 0x98, 0x39, 0x5e, 0xb0, 0xdb, 0xb0, 0x2e, 0x26, 0xd8, 0x55, 0xb5, 0xf2, 0xca, 0xa4, 0xa8, 0x8a, 0x6b, 0x90, 0x38, 0xf1, 0x06, 0x4c, 0x9a, 0x39,
0x94, 0xf2, 0x2c, 0xed, 0xbf, 0xac, 0xc3, 0x46, 0xa6, 0x4a, 0xdd, 0xb1, 0x8a, 0xc3, 0xe8, 0xc8, 0x51, 0xa0, 0x6d, 0x58, 0x97, 0x13, 0xca, 0x78, 0x96, 0xf4, 0xcf, 0x1b, 0xb0, 0x91, 0xab, 0xd2,
0x1b, 0x9f, 0x04, 0xca, 0x2d, 0xb7, 0xf4, 0x73, 0xaa, 0x51, 0x45, 0x06, 0xb0, 0x26, 0xed, 0x39, 0x77, 0xac, 0xf2, 0x30, 0x3a, 0xf4, 0x47, 0xc7, 0xa1, 0x76, 0xcb, 0x1d, 0xf3, 0x9c, 0x6a, 0x55,
0x5b, 0xd3, 0xc4, 0xce, 0x14, 0xd0, 0x11, 0x79, 0xc7, 0xdc, 0xc2, 0x74, 0x87, 0x12, 0xd7, 0x85, 0x91, 0x01, 0xac, 0x29, 0x7b, 0xce, 0xd7, 0x34, 0xb5, 0x33, 0x25, 0x74, 0x44, 0xde, 0xb5, 0xb7,
0x38, 0xbf, 0x3d, 0x32, 0x84, 0xb6, 0x72, 0x1c, 0x84, 0xb2, 0xd6, 0x9c, 0x0b, 0xd6, 0xd7, 0xdb, 0x30, 0xdb, 0xa1, 0xc2, 0x4d, 0x21, 0x2e, 0x6e, 0x8f, 0x9c, 0x42, 0x5b, 0x3b, 0x0e, 0x52, 0x59,
0x17, 0xf4, 0x65, 0x38, 0xa2, 0xce, 0xdc, 0xd6, 0xc8, 0x0c, 0xae, 0xca, 0x3a, 0xd4, 0xc6, 0xd9, 0x1b, 0xce, 0x05, 0xef, 0xeb, 0x9d, 0x0b, 0xfa, 0xb2, 0x1c, 0x51, 0x77, 0x66, 0x6b, 0x64, 0x0a,
0xfe, 0x4a, 0xaf, 0x34, 0x37, 0x74, 0xb1, 0xcd, 0x4e, 0x2f, 0x68, 0x98, 0x7c, 0x15, 0xd6, 0xcf, 0x57, 0x55, 0x1d, 0x6a, 0xe3, 0x7c, 0x7f, 0xe5, 0x57, 0x9a, 0x1b, 0xba, 0xd8, 0x76, 0xa7, 0x17,
0x5d, 0x2f, 0x96, 0xc3, 0xd2, 0xcc, 0x76, 0x19, 0xbb, 0xdc, 0xbe, 0xa0, 0xcb, 0xa7, 0xfc, 0x63, 0x34, 0x4c, 0xbe, 0x06, 0xeb, 0xe7, 0x9e, 0x9f, 0xa8, 0x61, 0x19, 0x66, 0xbb, 0x82, 0x5d, 0xde,
0xc3, 0x44, 0xcd, 0x69, 0xb1, 0xf3, 0x37, 0x16, 0x34, 0xcc, 0x76, 0x18, 0x9b, 0x0a, 0xd9, 0x97, 0xbe, 0xa0, 0xcb, 0xa7, 0xe2, 0x63, 0xcb, 0x44, 0xcd, 0x68, 0xb1, 0xf3, 0x57, 0x0e, 0x2c, 0xd9,
0x3a, 0x50, 0x3a, 0x7f, 0x29, 0x38, 0x7b, 0xb2, 0x2d, 0xe4, 0x9d, 0x6c, 0xf5, 0xf3, 0x64, 0xf1, 0xed, 0x70, 0x36, 0x95, 0xb2, 0xaf, 0x74, 0xa0, 0x72, 0xfe, 0x32, 0x70, 0xfe, 0x64, 0x5b, 0x2a,
0xa2, 0xa0, 0x4f, 0xe9, 0xd5, 0x82, 0x3e, 0xe5, 0xbc, 0xa0, 0x4f, 0xe7, 0xbf, 0x2c, 0x20, 0x59, 0x3a, 0xd9, 0x9a, 0xe7, 0xc9, 0xb9, 0x8b, 0x82, 0x3e, 0xe5, 0x57, 0x0b, 0xfa, 0x54, 0x8a, 0x82,
0x5e, 0x22, 0xf7, 0xf9, 0xd1, 0xda, 0xa7, 0x23, 0xa1, 0x52, 0x7e, 0xe2, 0xd5, 0xf8, 0x51, 0xae, 0x3e, 0x9d, 0x1f, 0x3a, 0x40, 0xf2, 0xbc, 0x44, 0xee, 0x8b, 0xa3, 0x75, 0xc0, 0x86, 0x52, 0xa5,
0x9d, 0xfc, 0x9a, 0x09, 0x86, 0x7e, 0xe7, 0xa9, 0x3b, 0x3b, 0x4b, 0x4e, 0x5e, 0x55, 0x2a, 0x0c, 0xfc, 0xef, 0x57, 0xe3, 0x47, 0xb5, 0x76, 0xea, 0x6b, 0x2e, 0x18, 0xe6, 0x9d, 0xa7, 0xe9, 0xec,
0x55, 0xba, 0x38, 0x0c, 0x55, 0xbe, 0x38, 0x0c, 0xb5, 0x90, 0x0e, 0x43, 0x75, 0x7e, 0xcd, 0x82, 0x2c, 0xba, 0x45, 0x55, 0x99, 0x30, 0x54, 0xf9, 0xe2, 0x30, 0x54, 0xe5, 0xe2, 0x30, 0xd4, 0x7c,
0x95, 0x9c, 0x4d, 0xff, 0xf8, 0x26, 0xce, 0xb6, 0xc9, 0xd0, 0x05, 0x05, 0xb1, 0x4d, 0x3a, 0xd8, 0x36, 0x0c, 0xd5, 0xf9, 0x55, 0x07, 0x56, 0x0a, 0x36, 0xfd, 0xa7, 0x37, 0x71, 0xbe, 0x4d, 0x96,
0xf9, 0x45, 0x58, 0x32, 0x18, 0xfd, 0xe3, 0xeb, 0x3f, 0xed, 0xaf, 0x71, 0x3e, 0x33, 0xb0, 0xce, 0x2e, 0x28, 0xc9, 0x6d, 0x32, 0xc1, 0xce, 0x2f, 0xc0, 0xa2, 0xc5, 0xe8, 0x3f, 0xbd, 0xfe, 0xb3,
0xbf, 0x15, 0x80, 0x64, 0x85, 0xed, 0xff, 0x75, 0x0c, 0xd9, 0x75, 0x2a, 0xe6, 0xac, 0xd3, 0xff, 0xfe, 0x9a, 0xe0, 0x33, 0x0b, 0xeb, 0xfc, 0x4b, 0x09, 0x48, 0x5e, 0xd8, 0xfe, 0x47, 0xc7, 0x90,
0xa9, 0x1d, 0x78, 0x1b, 0x96, 0x45, 0x42, 0x86, 0x16, 0x50, 0xe1, 0x1c, 0x93, 0xad, 0x60, 0x1e, 0x5f, 0xa7, 0xb9, 0x82, 0x75, 0xfa, 0x6f, 0xb5, 0x03, 0xef, 0xc0, 0xb2, 0x4c, 0xc8, 0x30, 0x02,
0xab, 0x19, 0x03, 0xac, 0x18, 0x17, 0xdb, 0x9a, 0x31, 0x4c, 0x85, 0x02, 0xed, 0x75, 0x58, 0xe5, 0x2a, 0x82, 0x63, 0xf2, 0x15, 0xdc, 0x63, 0xb5, 0x63, 0x80, 0x55, 0xeb, 0x62, 0xdb, 0x30, 0x86,
0x09, 0x1e, 0x77, 0x79, 0x53, 0xd2, 0xae, 0xfc, 0xa1, 0x05, 0x6b, 0xa9, 0x8a, 0xe4, 0x1a, 0x96, 0x99, 0x50, 0x20, 0x5d, 0x87, 0x55, 0x91, 0xe0, 0x71, 0x57, 0x34, 0xa5, 0xec, 0xca, 0xef, 0x3b,
0x9b, 0x0e, 0xd3, 0x9e, 0x98, 0x20, 0x1b, 0xbf, 0xf2, 0x12, 0x52, 0xdc, 0x96, 0xad, 0x60, 0xeb, 0xb0, 0x96, 0xa9, 0x48, 0xaf, 0x61, 0x85, 0xe9, 0xb0, 0xed, 0x89, 0x0d, 0xf2, 0xf1, 0x6b, 0x2f,
0xa3, 0x79, 0x15, 0xa9, 0x55, 0xcf, 0xab, 0xb2, 0x37, 0x78, 0x1a, 0x8a, 0x4f, 0x47, 0xa9, 0x81, 0x21, 0xc3, 0x6d, 0xf9, 0x0a, 0xbe, 0x3e, 0x86, 0x57, 0x91, 0x59, 0xf5, 0xa2, 0x2a, 0xba, 0x21,
0x9f, 0xf2, 0xc4, 0x11, 0xbd, 0x22, 0xb9, 0x88, 0x31, 0x87, 0x2c, 0x8b, 0xcc, 0x21, 0x34, 0xcc, 0xd2, 0x50, 0x02, 0x36, 0xcc, 0x0c, 0xfc, 0x44, 0x24, 0x8e, 0x98, 0x15, 0xe9, 0x45, 0x8c, 0x3d,
0x94, 0x39, 0xde, 0xdc, 0x3a, 0xfb, 0x7b, 0x16, 0x90, 0x2f, 0x4c, 0x69, 0x38, 0xc3, 0xab, 0x56, 0x64, 0x55, 0xe4, 0x0e, 0xa1, 0x65, 0xa6, 0xec, 0xf1, 0x16, 0xd6, 0xd1, 0xef, 0x3b, 0x40, 0xbe,
0x15, 0xe9, 0xd9, 0x48, 0xc7, 0x31, 0x16, 0x26, 0xd3, 0x93, 0xcf, 0xd3, 0x99, 0xbc, 0xb4, 0x2f, 0x38, 0x61, 0xd1, 0x14, 0xaf, 0x5a, 0x75, 0xa4, 0x67, 0x23, 0x1b, 0xc7, 0x98, 0x1f, 0x4f, 0x8e,
0x24, 0x97, 0xf6, 0xaf, 0x03, 0xb0, 0x83, 0x94, 0xba, 0xbf, 0x45, 0x47, 0xcc, 0x9f, 0x8e, 0x79, 0xbf, 0xc0, 0xa6, 0xea, 0xd2, 0xbe, 0x94, 0x5e, 0xda, 0xbf, 0x0e, 0xc0, 0x0f, 0x52, 0xfa, 0xfe,
0x83, 0xb9, 0xf7, 0xea, 0xa5, 0x8b, 0xef, 0xd5, 0xcb, 0x17, 0xdd, 0xab, 0xdf, 0x81, 0x15, 0x63, 0x16, 0x1d, 0xb1, 0x60, 0x32, 0x12, 0x0d, 0x16, 0xde, 0xab, 0x97, 0x2f, 0xbe, 0x57, 0xaf, 0x5c,
0xdc, 0x6a, 0x5b, 0xe5, 0x4d, 0xb2, 0xf5, 0x92, 0x9b, 0xe4, 0xdf, 0x28, 0x40, 0xf1, 0x20, 0x98, 0x74, 0xaf, 0x7e, 0x07, 0x56, 0xac, 0x71, 0xeb, 0x6d, 0x55, 0x37, 0xc9, 0xce, 0x4b, 0x6e, 0x92,
0xe8, 0x51, 0x4e, 0xcb, 0x8c, 0x72, 0x0a, 0x5b, 0xd2, 0x55, 0xa6, 0x42, 0xa8, 0x18, 0x03, 0x24, 0x7f, 0xbd, 0x04, 0x73, 0xfb, 0xe1, 0xd8, 0x8c, 0x72, 0x3a, 0x76, 0x94, 0x53, 0xda, 0x92, 0xae,
0x9b, 0xd0, 0x70, 0xc7, 0x31, 0x3b, 0x76, 0x9f, 0x06, 0xe1, 0xb9, 0x1b, 0xf6, 0xf9, 0x5e, 0xdf, 0x36, 0x15, 0x52, 0xc5, 0x58, 0x20, 0xd9, 0x84, 0x25, 0x6f, 0x94, 0xf0, 0x63, 0xf7, 0x49, 0x18,
0x2d, 0xb4, 0x2d, 0x27, 0x55, 0x43, 0x56, 0xa1, 0xa8, 0x94, 0x2e, 0x12, 0xb0, 0x22, 0x73, 0xdc, 0x9d, 0x7b, 0x51, 0x5f, 0xec, 0xf5, 0xdd, 0x52, 0xdb, 0x71, 0x33, 0x35, 0x64, 0x15, 0xe6, 0xb4,
0xf0, 0x86, 0x64, 0x26, 0x22, 0x06, 0xa2, 0xc4, 0x58, 0xc9, 0xfc, 0x9e, 0x7b, 0xcd, 0x5c, 0x74, 0xd2, 0x45, 0x02, 0x5e, 0xe4, 0x8e, 0x1b, 0xde, 0x90, 0x4c, 0x65, 0xc4, 0x40, 0x96, 0x38, 0x2b,
0xf2, 0xaa, 0x98, 0x5d, 0x63, 0xcb, 0x87, 0x64, 0x22, 0xd4, 0x23, 0xcb, 0x7a, 0x58, 0xaa, 0x62, 0xd9, 0xdf, 0x0b, 0xaf, 0x59, 0x88, 0x4e, 0x51, 0x15, 0xb7, 0x6b, 0x7c, 0xf9, 0x90, 0x4c, 0x86,
0xde, 0x17, 0xfd, 0x8b, 0x05, 0x65, 0x5c, 0x1b, 0xa6, 0x06, 0x38, 0xef, 0xab, 0x40, 0x27, 0xae, 0x7a, 0x54, 0xd9, 0x0c, 0x4b, 0x55, 0xed, 0xfb, 0xa2, 0x7f, 0x72, 0xa0, 0x82, 0x6b, 0xc3, 0xd5,
0xc9, 0x92, 0x93, 0x86, 0x89, 0x6d, 0xa4, 0xbd, 0x14, 0xd4, 0x84, 0xf4, 0xd4, 0x97, 0x6b, 0x50, 0x80, 0xe0, 0x7d, 0x1d, 0xe8, 0xc4, 0x35, 0x59, 0x74, 0xb3, 0x30, 0xa1, 0x56, 0xda, 0x4b, 0x49,
0xe5, 0x25, 0x95, 0xe2, 0x81, 0x24, 0x09, 0x48, 0xae, 0x42, 0x69, 0x18, 0x4c, 0xa4, 0xdf, 0x02, 0x4f, 0xc8, 0x4c, 0x7d, 0xb9, 0x06, 0x35, 0x51, 0xd2, 0x29, 0x1e, 0x48, 0x92, 0x82, 0xe4, 0x2a,
0x32, 0xce, 0x1f, 0x4c, 0x1c, 0xc4, 0x93, 0xf1, 0xb0, 0xf6, 0xf8, 0xb4, 0xb8, 0x35, 0x4a, 0xc3, 0x94, 0x4f, 0xc3, 0xb1, 0xf2, 0x5b, 0x40, 0xc5, 0xf9, 0xc3, 0xb1, 0x8b, 0x78, 0x3a, 0x1e, 0xde,
0xcc, 0x1e, 0xab, 0x66, 0xf5, 0x65, 0x4a, 0xa1, 0xf6, 0x26, 0x34, 0x1f, 0x06, 0x7d, 0xaa, 0x45, 0x9e, 0x98, 0x96, 0xb0, 0x46, 0x59, 0x98, 0xdb, 0x63, 0xdd, 0xac, 0xb9, 0x4c, 0x19, 0x94, 0x6e,
0x9b, 0xe6, 0xf2, 0xb9, 0xfd, 0x4b, 0x16, 0x54, 0x24, 0x31, 0xb9, 0x09, 0x25, 0xe6, 0x64, 0xa4, 0x42, 0xf3, 0x61, 0xd8, 0x67, 0x46, 0xb4, 0x69, 0x26, 0x9f, 0xd3, 0x5f, 0x74, 0xa0, 0xaa, 0x88,
0x4e, 0x00, 0xea, 0x7e, 0x8f, 0xd1, 0x39, 0x48, 0xc1, 0xb4, 0x32, 0x46, 0x15, 0x12, 0x87, 0x53, 0xc9, 0x0d, 0x28, 0x73, 0x27, 0x23, 0x73, 0x02, 0xd0, 0xf7, 0x7b, 0x9c, 0xce, 0x45, 0x0a, 0xae,
0xc6, 0x14, 0x12, 0x7f, 0x4a, 0x0d, 0x37, 0xe5, 0x86, 0xa4, 0x50, 0xfb, 0xbb, 0x16, 0x2c, 0x19, 0x95, 0x31, 0xaa, 0x90, 0x3a, 0x9c, 0x2a, 0xa6, 0x90, 0xfa, 0x53, 0x7a, 0xb8, 0x19, 0x37, 0x24,
0x7d, 0xb0, 0x33, 0xe4, 0xc8, 0x8d, 0x62, 0x71, 0x67, 0x22, 0xb6, 0x47, 0x87, 0xf4, 0x8d, 0x2e, 0x83, 0xd2, 0xef, 0x39, 0xb0, 0x68, 0xf5, 0xc1, 0xcf, 0x90, 0x43, 0x2f, 0x4e, 0xe4, 0x9d, 0x89,
0x98, 0xf1, 0x47, 0x15, 0x19, 0x2b, 0xea, 0x91, 0xb1, 0xdb, 0x50, 0x4d, 0x92, 0x93, 0x4a, 0x86, 0xdc, 0x1e, 0x13, 0x32, 0x37, 0xba, 0x64, 0xc7, 0x1f, 0x75, 0x64, 0x6c, 0xce, 0x8c, 0x8c, 0xdd,
0xb6, 0x65, 0x3d, 0xca, 0x9b, 0xcb, 0x84, 0x88, 0xb5, 0xd3, 0x0b, 0x46, 0x41, 0x28, 0x82, 0xf5, 0x82, 0x5a, 0x9a, 0x9c, 0x54, 0xb6, 0xb4, 0x2d, 0xef, 0x51, 0xdd, 0x5c, 0xa6, 0x44, 0xbc, 0x9d,
0xbc, 0x60, 0xdf, 0x81, 0x9a, 0x46, 0xcf, 0x86, 0xe1, 0xd3, 0xf8, 0x3c, 0x08, 0x9f, 0xc9, 0x30, 0x5e, 0x38, 0x0c, 0x23, 0x19, 0xac, 0x17, 0x05, 0x7a, 0x07, 0xea, 0x06, 0x3d, 0x1f, 0x46, 0xc0,
0xa8, 0x28, 0xaa, 0xbb, 0xfb, 0x42, 0x72, 0x77, 0x6f, 0xff, 0xb5, 0x05, 0x4b, 0x8c, 0x07, 0x3d, 0x92, 0xf3, 0x30, 0x7a, 0xa6, 0xc2, 0xa0, 0xb2, 0xa8, 0xef, 0xee, 0x4b, 0xe9, 0xdd, 0x3d, 0xfd,
0x7f, 0x70, 0x14, 0x8c, 0xbc, 0xde, 0x0c, 0xf7, 0x5e, 0xb2, 0x9b, 0xd0, 0x19, 0x92, 0x17, 0x4d, 0x4b, 0x07, 0x16, 0x39, 0x0f, 0xfa, 0xc1, 0xe0, 0x30, 0x1c, 0xfa, 0xbd, 0x29, 0xee, 0xbd, 0x62,
0x98, 0x71, 0xbd, 0x3c, 0x42, 0x0a, 0x11, 0x55, 0x65, 0x26, 0xc3, 0x4c, 0x02, 0x4e, 0xdc, 0x48, 0x37, 0xa9, 0x33, 0x14, 0x2f, 0xda, 0x30, 0xe7, 0x7a, 0x75, 0x84, 0x94, 0x22, 0xaa, 0xcb, 0x5c,
0x88, 0x85, 0x30, 0x7f, 0x06, 0xc8, 0x24, 0x8d, 0x01, 0xa1, 0x1b, 0xd3, 0xee, 0xd8, 0x1b, 0x8d, 0x86, 0xb9, 0x04, 0x1c, 0x7b, 0xb1, 0x14, 0x0b, 0x69, 0xfe, 0x2c, 0x90, 0x4b, 0x1a, 0x07, 0x22,
0x3c, 0x4e, 0xcb, 0x9d, 0xa3, 0xbc, 0x2a, 0xd6, 0x67, 0xdf, 0x8b, 0xdc, 0x93, 0x24, 0x00, 0xad, 0x2f, 0x61, 0xdd, 0x91, 0x3f, 0x1c, 0xfa, 0x82, 0x56, 0x38, 0x47, 0x45, 0x55, 0xbc, 0xcf, 0xbe,
0xca, 0xf6, 0x9f, 0x17, 0xa0, 0x26, 0x14, 0xf7, 0x7e, 0x7f, 0x40, 0xc5, 0x6d, 0x09, 0xba, 0x9f, 0x1f, 0x7b, 0xc7, 0x69, 0x00, 0x5a, 0x97, 0xe9, 0x9f, 0x96, 0xa0, 0x2e, 0x15, 0xf7, 0x5e, 0x7f,
0x4a, 0xc9, 0x68, 0x88, 0xac, 0x37, 0x1c, 0x56, 0x0d, 0x49, 0x6f, 0x79, 0x31, 0xbb, 0xe5, 0x57, 0xc0, 0xe4, 0x6d, 0x09, 0xba, 0x9f, 0x5a, 0xc9, 0x18, 0x88, 0xaa, 0xb7, 0x1c, 0x56, 0x03, 0xc9,
0xa0, 0xca, 0x58, 0xef, 0x1d, 0xf4, 0x8c, 0xf9, 0x4d, 0x4b, 0x02, 0xc8, 0xda, 0x6d, 0xac, 0x2d, 0x6e, 0xf9, 0x5c, 0x7e, 0xcb, 0xaf, 0x40, 0x8d, 0xb3, 0xde, 0xbb, 0xe8, 0x19, 0x8b, 0x9b, 0x96,
0x27, 0xb5, 0x08, 0xbc, 0xf4, 0x6e, 0xe5, 0x3d, 0xa8, 0x8b, 0x66, 0x70, 0x4f, 0x50, 0xa7, 0x24, 0x14, 0x50, 0xb5, 0xb7, 0xb1, 0xb6, 0x92, 0xd6, 0x22, 0xf0, 0xd2, 0xbb, 0x95, 0xf7, 0xa1, 0x21,
0xcc, 0x6f, 0xec, 0x97, 0x63, 0x50, 0xca, 0x2f, 0xb7, 0xe5, 0x97, 0x95, 0x8b, 0xbe, 0x94, 0x94, 0x9b, 0xc1, 0x3d, 0x41, 0x9d, 0x92, 0x32, 0xbf, 0xb5, 0x5f, 0xae, 0x45, 0xa9, 0xbe, 0xbc, 0xad,
0xf6, 0x7d, 0x75, 0x65, 0x75, 0x3f, 0x74, 0x27, 0x43, 0x29, 0xa5, 0xb7, 0x61, 0xc5, 0xf3, 0x7b, 0xbe, 0xac, 0x5e, 0xf4, 0xa5, 0xa2, 0xa4, 0xf7, 0xf5, 0x95, 0xd5, 0xfd, 0xc8, 0x1b, 0x9f, 0x2a,
0xa3, 0x69, 0x9f, 0x76, 0xa7, 0xbe, 0xeb, 0xfb, 0xc1, 0xd4, 0xef, 0x51, 0x79, 0x63, 0x9f, 0x57, 0x29, 0xbd, 0x05, 0x2b, 0x7e, 0xd0, 0x1b, 0x4e, 0xfa, 0xac, 0x3b, 0x09, 0xbc, 0x20, 0x08, 0x27,
0x65, 0xf7, 0x55, 0xa6, 0x10, 0x36, 0x44, 0x36, 0xa1, 0xcc, 0x3a, 0x92, 0x56, 0x21, 0x5f, 0x84, 0x41, 0x8f, 0xa9, 0x1b, 0xfb, 0xa2, 0x2a, 0xda, 0xd7, 0x99, 0x42, 0xd8, 0x10, 0xd9, 0x84, 0x0a,
0x39, 0x09, 0xb9, 0x09, 0x65, 0xda, 0x1f, 0x50, 0x79, 0x5a, 0x24, 0xe6, 0xb9, 0x9d, 0xed, 0xaa, 0xef, 0x48, 0x59, 0x85, 0x62, 0x11, 0x16, 0x24, 0xe4, 0x06, 0x54, 0x58, 0x7f, 0xc0, 0xd4, 0x69,
0xc3, 0x09, 0x98, 0x42, 0x61, 0x68, 0x4a, 0xa1, 0x98, 0x16, 0x65, 0x81, 0x15, 0x1f, 0xf4, 0xed, 0x91, 0xd8, 0xe7, 0x76, 0xbe, 0xab, 0xae, 0x20, 0xe0, 0x0a, 0x85, 0xa3, 0x19, 0x85, 0x62, 0x5b,
0x55, 0x20, 0x0f, 0xb9, 0x0c, 0xe8, 0xd1, 0xee, 0x5f, 0x2d, 0x42, 0x4d, 0x83, 0x99, 0x6e, 0x18, 0x94, 0x79, 0x5e, 0x7c, 0xd0, 0xa7, 0xab, 0x40, 0x1e, 0x0a, 0x19, 0x30, 0xa3, 0xdd, 0xbf, 0x32,
0xb0, 0x01, 0x77, 0xfb, 0x9e, 0x3b, 0xa6, 0x31, 0x0d, 0x05, 0xdf, 0xa7, 0x50, 0x46, 0xe7, 0x9e, 0x07, 0x75, 0x03, 0xe6, 0xba, 0x61, 0xc0, 0x07, 0xdc, 0xed, 0xfb, 0xde, 0x88, 0x25, 0x2c, 0x92,
0x0d, 0xba, 0xc1, 0x34, 0xee, 0xf6, 0xe9, 0x20, 0xa4, 0xdc, 0xc8, 0x33, 0xa3, 0x63, 0xa0, 0x8c, 0x7c, 0x9f, 0x41, 0x39, 0x9d, 0x77, 0x36, 0xe8, 0x86, 0x93, 0xa4, 0xdb, 0x67, 0x83, 0x88, 0x09,
0x6e, 0xec, 0x3e, 0xd7, 0xe9, 0x38, 0x07, 0xa5, 0x50, 0x19, 0xbb, 0xe6, 0x6b, 0x54, 0x4a, 0x62, 0x23, 0xcf, 0x8d, 0x8e, 0x85, 0x72, 0xba, 0x91, 0xf7, 0xdc, 0xa4, 0x13, 0x1c, 0x94, 0x41, 0x55,
0xd7, 0x7c, 0x45, 0xd2, 0x5a, 0xad, 0x9c, 0xa3, 0xd5, 0xde, 0x85, 0x75, 0xae, 0xbf, 0x84, 0xa4, 0xec, 0x5a, 0xac, 0x51, 0x39, 0x8d, 0x5d, 0x8b, 0x15, 0xc9, 0x6a, 0xb5, 0x4a, 0x81, 0x56, 0x7b,
0x77, 0x53, 0x8c, 0x35, 0xa7, 0x96, 0x6c, 0x42, 0x8b, 0x8d, 0x59, 0x8a, 0x44, 0xe4, 0x7d, 0x9d, 0x0f, 0xd6, 0x85, 0xfe, 0x92, 0x92, 0xde, 0xcd, 0x30, 0xd6, 0x8c, 0x5a, 0xb2, 0x09, 0x2d, 0x3e,
0x07, 0x96, 0x2c, 0x27, 0x83, 0x33, 0x5a, 0x8c, 0xf0, 0xe8, 0xb4, 0xfc, 0x2e, 0x2f, 0x83, 0x23, 0x66, 0x25, 0x12, 0xb1, 0xff, 0x0d, 0x11, 0x58, 0x72, 0xdc, 0x1c, 0xce, 0x69, 0x31, 0xc2, 0x63,
0xad, 0xfb, 0xdc, 0xa4, 0xad, 0x0a, 0xda, 0x14, 0x6e, 0x2f, 0x41, 0xed, 0x38, 0x0e, 0x26, 0x72, 0xd2, 0x8a, 0xbb, 0xbc, 0x1c, 0x8e, 0xb4, 0xde, 0x73, 0x9b, 0xb6, 0x26, 0x69, 0x33, 0x38, 0x5d,
0x53, 0x1a, 0x50, 0xe7, 0x45, 0x91, 0x39, 0xf1, 0x1a, 0x5c, 0x46, 0x2e, 0x7a, 0x1c, 0x4c, 0x82, 0x84, 0xfa, 0x51, 0x12, 0x8e, 0xd5, 0xa6, 0x2c, 0x41, 0x43, 0x14, 0x65, 0xe6, 0xc4, 0x6b, 0x70,
0x51, 0x30, 0x98, 0x1d, 0x4f, 0x4f, 0x78, 0xca, 0xac, 0x17, 0xf8, 0xf6, 0xdf, 0x5a, 0xb0, 0x62, 0x19, 0xb9, 0xe8, 0x71, 0x38, 0x0e, 0x87, 0xe1, 0x60, 0x7a, 0x34, 0x39, 0x16, 0x29, 0xb3, 0x7e,
0xd4, 0x8a, 0xe8, 0xd1, 0xa7, 0xb9, 0x10, 0xa8, 0x2b, 0x6f, 0xce, 0x78, 0xcb, 0x9a, 0x72, 0xe5, 0x18, 0xd0, 0xbf, 0x76, 0x60, 0xc5, 0xaa, 0x95, 0xd1, 0xa3, 0xcf, 0x08, 0x21, 0xd0, 0x57, 0xde,
0x84, 0x3c, 0x06, 0xf8, 0x44, 0xdc, 0x82, 0xef, 0x40, 0x53, 0x8e, 0x4c, 0x7e, 0xc8, 0xb9, 0xb0, 0x82, 0xf1, 0x96, 0x0d, 0xe5, 0x2a, 0x08, 0x45, 0x0c, 0xf0, 0x89, 0xbc, 0x05, 0xdf, 0x86, 0xa6,
0x9d, 0xe5, 0x42, 0xf1, 0x7d, 0x43, 0x7c, 0x20, 0x9b, 0xf8, 0x29, 0x71, 0x27, 0xda, 0xc7, 0x39, 0x1a, 0x99, 0xfa, 0x50, 0x70, 0x61, 0x3b, 0xcf, 0x85, 0xf2, 0xfb, 0x25, 0xf9, 0x81, 0x6a, 0xe2,
0xca, 0x38, 0x84, 0xba, 0xc7, 0xd2, 0x4f, 0x23, 0x72, 0x04, 0x3d, 0x05, 0x46, 0xf6, 0x6f, 0x59, 0xff, 0xca, 0x3b, 0xd1, 0x3e, 0xce, 0x51, 0xc5, 0x21, 0xf4, 0x3d, 0x96, 0x79, 0x1a, 0x51, 0x23,
0x00, 0xc9, 0xe8, 0xf0, 0x26, 0x4d, 0x19, 0x08, 0x9e, 0xd5, 0xae, 0x19, 0x83, 0x37, 0xa1, 0xae, 0xe8, 0x69, 0x30, 0xa6, 0xbf, 0xe9, 0x00, 0xa4, 0xa3, 0xc3, 0x9b, 0x34, 0x6d, 0x20, 0x44, 0x56,
0x6e, 0x60, 0x12, 0x9b, 0x53, 0x93, 0x18, 0x73, 0x18, 0x6f, 0x40, 0x73, 0x30, 0x0a, 0x4e, 0xd0, 0xbb, 0x61, 0x0c, 0xde, 0x84, 0x86, 0xbe, 0x81, 0x49, 0x6d, 0x4e, 0x5d, 0x61, 0xdc, 0x61, 0xbc,
0x60, 0x63, 0x2a, 0x4e, 0x24, 0xf2, 0x47, 0x1a, 0x1c, 0xbe, 0x27, 0xd0, 0xc4, 0x40, 0x95, 0x34, 0x0e, 0xcd, 0xc1, 0x30, 0x3c, 0x46, 0x83, 0x8d, 0xa9, 0x38, 0xb1, 0xcc, 0x1f, 0x59, 0x12, 0xf0,
0x03, 0x65, 0x7f, 0xa3, 0xa0, 0x22, 0xf0, 0xc9, 0x9c, 0xe7, 0x4a, 0x19, 0xd9, 0xce, 0xa8, 0xd3, 0x3d, 0x89, 0xa6, 0x06, 0xaa, 0x6c, 0x18, 0x28, 0xfa, 0xcd, 0x92, 0x8e, 0xc0, 0xa7, 0x73, 0x9e,
0x39, 0x01, 0x6f, 0x8c, 0xb8, 0x1d, 0x5d, 0x18, 0x10, 0xb8, 0x03, 0x8d, 0x90, 0xeb, 0x2b, 0xa9, 0x29, 0x65, 0xe4, 0x76, 0x4e, 0x9d, 0xce, 0x08, 0x78, 0x63, 0xc4, 0xed, 0xf0, 0xc2, 0x80, 0xc0,
0xcc, 0x4a, 0x2f, 0x51, 0x66, 0x4b, 0xa1, 0x61, 0xc5, 0x3e, 0x09, 0x2d, 0xb7, 0x7f, 0x46, 0xc3, 0x1d, 0x58, 0x8a, 0x84, 0xbe, 0x52, 0xca, 0xac, 0xfc, 0x12, 0x65, 0xb6, 0x18, 0x59, 0x56, 0xec,
0xd8, 0xc3, 0x23, 0x19, 0xba, 0x10, 0x5c, 0x05, 0x37, 0x35, 0x1c, 0x2d, 0xfb, 0x0d, 0x68, 0x8a, 0x53, 0xd0, 0xf2, 0xfa, 0x67, 0x2c, 0x4a, 0x7c, 0x3c, 0x92, 0xa1, 0x0b, 0x21, 0x54, 0x70, 0xd3,
0x9c, 0x1d, 0x45, 0x29, 0xd2, 0x54, 0x13, 0x98, 0x11, 0xda, 0x7f, 0x2c, 0x83, 0xfd, 0xe6, 0x1e, 0xc0, 0xd1, 0xb2, 0x5f, 0x87, 0xa6, 0xcc, 0xd9, 0xd1, 0x94, 0x32, 0x4d, 0x35, 0x85, 0x39, 0x21,
0xce, 0x5f, 0x11, 0x7d, 0x76, 0x85, 0xd4, 0xec, 0x3e, 0x21, 0x02, 0xef, 0x7d, 0x79, 0xee, 0x2b, 0xfd, 0x43, 0x15, 0xec, 0xb7, 0xf7, 0x70, 0xf6, 0x8a, 0x98, 0xb3, 0x2b, 0x65, 0x66, 0xf7, 0x09,
0x6a, 0xf7, 0xe7, 0x7d, 0x71, 0x51, 0x62, 0x2e, 0x69, 0xe9, 0x55, 0x96, 0xd4, 0xfe, 0xbe, 0x05, 0x19, 0x78, 0xef, 0xab, 0x73, 0xdf, 0x9c, 0x71, 0x7f, 0xde, 0x97, 0x17, 0x25, 0xf6, 0x92, 0x96,
0x8b, 0x07, 0xc1, 0xe4, 0x40, 0x64, 0x12, 0xa0, 0x20, 0xa8, 0x64, 0x39, 0x59, 0x7c, 0x49, 0x8e, 0x5f, 0x65, 0x49, 0xe9, 0x0f, 0x1c, 0x58, 0xd8, 0x0f, 0xc7, 0xfb, 0x32, 0x93, 0x00, 0x05, 0x41,
0x41, 0xae, 0xe5, 0x5e, 0x4a, 0x5b, 0xee, 0x9f, 0x81, 0xd7, 0x30, 0xea, 0x10, 0x06, 0x93, 0x20, 0x27, 0xcb, 0xa9, 0xe2, 0x4b, 0x72, 0x0c, 0x0a, 0x2d, 0xf7, 0x62, 0xd6, 0x72, 0xff, 0x7f, 0x78,
0x64, 0xc2, 0xe8, 0x8e, 0xb8, 0x99, 0x0e, 0xfc, 0x78, 0x28, 0xd5, 0xd8, 0xcb, 0x48, 0xf0, 0x78, 0x0d, 0xa3, 0x0e, 0x51, 0x38, 0x0e, 0x23, 0x2e, 0x8c, 0xde, 0x50, 0x98, 0xe9, 0x30, 0x48, 0x4e,
0xc7, 0x8e, 0x25, 0xdc, 0xe9, 0x16, 0x9e, 0x06, 0xd7, 0x6e, 0xd9, 0x0a, 0xfb, 0xb3, 0x50, 0x45, 0x95, 0x1a, 0x7b, 0x19, 0x09, 0x1e, 0xef, 0xf8, 0xb1, 0x44, 0x38, 0xdd, 0xd2, 0xd3, 0x10, 0xda,
0x57, 0x19, 0xa7, 0xf5, 0x36, 0x54, 0x87, 0xc1, 0xa4, 0x3b, 0xf4, 0xfc, 0x58, 0x0a, 0x77, 0x23, 0x2d, 0x5f, 0x41, 0x3f, 0x07, 0x35, 0x74, 0x95, 0x71, 0x5a, 0xef, 0x40, 0xed, 0x34, 0x1c, 0x77,
0xf1, 0x61, 0x0f, 0x70, 0x41, 0x14, 0x81, 0xfd, 0x7b, 0x65, 0x58, 0x7c, 0xe0, 0x9f, 0x05, 0x5e, 0x4f, 0xfd, 0x20, 0x51, 0xc2, 0xbd, 0x94, 0xfa, 0xb0, 0xfb, 0xb8, 0x20, 0x9a, 0x80, 0xfe, 0xb0,
0x0f, 0x2f, 0x16, 0xc6, 0x74, 0x1c, 0xc8, 0xd4, 0x41, 0xf6, 0x9b, 0x2d, 0x05, 0xe6, 0xca, 0x4c, 0x02, 0x0b, 0x0f, 0x82, 0xb3, 0xd0, 0xef, 0xe1, 0xc5, 0xc2, 0x88, 0x8d, 0x42, 0x95, 0x3a, 0xc8,
0x62, 0x71, 0x33, 0x20, 0x8b, 0xcc, 0x41, 0x08, 0x93, 0x14, 0x60, 0x2e, 0x3a, 0x1a, 0xc2, 0x0e, 0x7f, 0xf3, 0xa5, 0xc0, 0x5c, 0x99, 0x71, 0x22, 0x6f, 0x06, 0x54, 0x91, 0x3b, 0x08, 0x51, 0x9a,
0x10, 0xa1, 0x9e, 0xc2, 0x2b, 0x4a, 0x49, 0xee, 0x65, 0x59, 0xcb, 0xbd, 0xc4, 0x5b, 0x24, 0x9e, 0x02, 0x2c, 0x44, 0xc7, 0x40, 0xf8, 0x01, 0x22, 0x32, 0x53, 0x78, 0x65, 0x29, 0xcd, 0xbd, 0xac,
0xf5, 0x20, 0xae, 0xc5, 0x65, 0x11, 0x0f, 0x3c, 0x21, 0xe5, 0xd1, 0x22, 0x74, 0x35, 0x16, 0xc5, 0x18, 0xb9, 0x97, 0xe4, 0x0a, 0x2c, 0xc8, 0xac, 0x07, 0x71, 0x2d, 0x8e, 0x4e, 0xb9, 0x82, 0xf0,
0x81, 0x47, 0x07, 0x99, 0x3b, 0xc2, 0x3f, 0xe0, 0x34, 0x5c, 0xf9, 0xea, 0x10, 0x73, 0xdd, 0xd2, 0xd0, 0x13, 0x31, 0x11, 0x31, 0x42, 0x77, 0x63, 0x41, 0x1e, 0x7a, 0x4c, 0x90, 0xbb, 0x24, 0xe2,
0x09, 0xd7, 0x55, 0xce, 0xf3, 0x29, 0x98, 0x69, 0xe8, 0x3e, 0x55, 0x8a, 0x94, 0xcf, 0x01, 0x78, 0x03, 0x41, 0x23, 0x14, 0xb0, 0x09, 0x71, 0xf7, 0x2d, 0x9b, 0x74, 0x5d, 0x13, 0x7c, 0x9f, 0x81,
0x8a, 0x73, 0x1a, 0xd7, 0x8e, 0x49, 0x3c, 0x9d, 0x49, 0x1e, 0x93, 0x18, 0xa3, 0xb8, 0xa3, 0xd1, 0xb9, 0x96, 0xee, 0x33, 0xad, 0x4c, 0xc5, 0x3c, 0x40, 0xa4, 0x39, 0x67, 0x71, 0xe3, 0xa8, 0x24,
0x89, 0xdb, 0x7b, 0x86, 0xf9, 0xf4, 0x18, 0xe2, 0xaf, 0x3a, 0x26, 0x88, 0x79, 0x0b, 0xc9, 0x6e, 0x52, 0x9a, 0xd4, 0x51, 0x89, 0x33, 0x8b, 0x37, 0x1c, 0x1e, 0x7b, 0xbd, 0x67, 0x98, 0x53, 0x8f,
0xe2, 0xed, 0x65, 0xc9, 0xd1, 0x21, 0xb2, 0x0d, 0x35, 0x3c, 0x1a, 0x8a, 0xfd, 0x6c, 0xe0, 0x7e, 0x61, 0xfe, 0x9a, 0x6b, 0x83, 0x98, 0xbb, 0x90, 0xee, 0x28, 0xde, 0x60, 0x96, 0x5d, 0x13, 0x22,
0xb6, 0xf4, 0xb3, 0x23, 0xee, 0xa8, 0x4e, 0xa4, 0x5f, 0x76, 0x34, 0xcd, 0xcb, 0x0e, 0xae, 0x34, 0xb7, 0xa1, 0x8e, 0xc7, 0x43, 0xb9, 0xa7, 0x4b, 0xb8, 0xa7, 0x2d, 0xf3, 0xfc, 0x88, 0xbb, 0x6a,
0xc5, 0x1d, 0x51, 0x0b, 0x7b, 0x4b, 0x00, 0x66, 0x4d, 0xc5, 0x82, 0x71, 0x82, 0x65, 0x24, 0x30, 0x12, 0x99, 0x17, 0x1e, 0x4d, 0xfb, 0xc2, 0x43, 0x28, 0x4e, 0x79, 0x4f, 0xd4, 0xc2, 0xde, 0x52,
0x30, 0x72, 0x15, 0x2a, 0xec, 0xd8, 0x32, 0x71, 0xbd, 0x7e, 0x9b, 0xa8, 0xd3, 0x93, 0xc2, 0x58, 0x80, 0x5b, 0x54, 0xb9, 0x60, 0x82, 0x60, 0x19, 0x09, 0x2c, 0x8c, 0x5c, 0x85, 0x2a, 0x3f, 0xba,
0x1b, 0xf2, 0x37, 0xde, 0xe5, 0xac, 0xe0, 0xaa, 0x18, 0x18, 0x5b, 0x1b, 0x55, 0x46, 0x21, 0x5a, 0x8c, 0x3d, 0xbf, 0xdf, 0x26, 0xfa, 0x04, 0xa5, 0x31, 0xde, 0x86, 0xfa, 0x8d, 0xf7, 0x39, 0x2b,
0xe5, 0x3b, 0x6a, 0x80, 0x76, 0x0c, 0x64, 0xa7, 0xdf, 0x17, 0xbc, 0xa9, 0x8e, 0xd1, 0x09, 0x57, 0xb8, 0x2a, 0x16, 0xc6, 0xd7, 0x46, 0x97, 0x51, 0x90, 0x56, 0xc5, 0x8e, 0x5a, 0x20, 0x79, 0x17,
0x59, 0x06, 0x57, 0xe5, 0xec, 0x6e, 0x21, 0x7f, 0x77, 0x5f, 0xba, 0x06, 0xf6, 0x3e, 0xd4, 0x8e, 0xa3, 0xf5, 0x09, 0x6b, 0xaf, 0x61, 0x06, 0xcb, 0x6b, 0x72, 0xce, 0x92, 0x61, 0xd5, 0xdf, 0x23,
0xb4, 0x7c, 0x71, 0x64, 0x72, 0x99, 0x29, 0x2e, 0x04, 0x43, 0x43, 0xb4, 0xe1, 0x14, 0xf4, 0xe1, 0x4e, 0xe2, 0x0a, 0x4a, 0xfa, 0x49, 0x68, 0x98, 0x30, 0xa9, 0x42, 0xf9, 0xd1, 0xe1, 0xde, 0xc3,
0xd8, 0x7f, 0x62, 0xf1, 0x94, 0x5b, 0x35, 0x7c, 0xde, 0xb7, 0x0d, 0x75, 0x15, 0xec, 0x48, 0x32, 0xd6, 0x25, 0x52, 0x87, 0x85, 0xa3, 0xbd, 0xc7, 0x8f, 0x0f, 0xf6, 0x76, 0x5b, 0x0e, 0x4d, 0x80,
0xb9, 0x0c, 0x8c, 0xd1, 0xe0, 0x50, 0xba, 0xc1, 0xe9, 0x69, 0x44, 0x65, 0xde, 0x85, 0x81, 0x31, 0x6c, 0xf7, 0xfb, 0x92, 0x52, 0x1f, 0xd2, 0x53, 0x9e, 0x75, 0x2c, 0x9e, 0x2d, 0xe0, 0x9b, 0x52,
0x0e, 0x65, 0x3e, 0x0e, 0xf3, 0x17, 0x3c, 0xde, 0x43, 0x24, 0xf2, 0x2f, 0x32, 0x38, 0xd3, 0xb3, 0x31, 0xdf, 0xbc, 0x74, 0x75, 0xe9, 0x1e, 0xd4, 0x0f, 0x8d, 0x6c, 0x74, 0x14, 0x21, 0x95, 0x87,
0x21, 0x3d, 0xa3, 0x61, 0xa4, 0x44, 0x4b, 0x95, 0x55, 0xc2, 0x59, 0x7a, 0x95, 0x37, 0xa1, 0xa2, 0x2e, 0xc5, 0xce, 0x40, 0x8c, 0xe1, 0x94, 0xcc, 0xe1, 0xd0, 0x3f, 0x72, 0x44, 0x42, 0xaf, 0x1e,
0xda, 0x35, 0x55, 0x88, 0xa4, 0x54, 0xf5, 0x4c, 0x55, 0xa1, 0xd7, 0x6f, 0x0c, 0x9a, 0xab, 0xcd, 0xbe, 0xe8, 0x9b, 0x42, 0x43, 0x87, 0x52, 0xd2, 0x3c, 0x31, 0x0b, 0xe3, 0x34, 0x38, 0x94, 0x6e,
0x6c, 0x05, 0xb9, 0x05, 0xe4, 0xd4, 0x0b, 0xd3, 0xe4, 0x45, 0x24, 0xcf, 0xa9, 0xb1, 0x9f, 0xc2, 0x78, 0x72, 0x12, 0x33, 0x95, 0xd5, 0x61, 0x61, 0x9c, 0xf7, 0xb9, 0x07, 0xc5, 0xbd, 0x11, 0x5f,
0x8a, 0xe8, 0x52, 0x77, 0x6e, 0xcc, 0x4d, 0xb4, 0x2e, 0x62, 0xe4, 0x42, 0x96, 0x91, 0xed, 0xff, 0xf4, 0x10, 0xcb, 0xec, 0x8e, 0x1c, 0xce, 0xb5, 0x78, 0xc4, 0xce, 0x58, 0x14, 0xeb, 0x7c, 0x16,
0xb6, 0x60, 0x51, 0xec, 0x74, 0xe6, 0xcd, 0x01, 0xdf, 0x67, 0x03, 0x23, 0x6d, 0x23, 0x65, 0x1c, 0x5d, 0xd6, 0xe9, 0x6c, 0xd9, 0x55, 0xde, 0x84, 0xaa, 0x6e, 0xd7, 0x56, 0x50, 0x8a, 0x52, 0xd7,
0xb9, 0x5e, 0xa8, 0xae, 0x8c, 0x82, 0x2a, 0xe6, 0x29, 0x28, 0x02, 0xa5, 0x89, 0x1b, 0x0f, 0xf1, 0x73, 0x45, 0x88, 0x67, 0x0a, 0x6b, 0xd0, 0x42, 0x29, 0xe7, 0x2b, 0xc8, 0x4d, 0x20, 0x27, 0x7e,
0x2c, 0x5b, 0x75, 0xf0, 0x37, 0x69, 0xf1, 0xc8, 0x0b, 0x57, 0x84, 0x18, 0x75, 0xc9, 0x7b, 0x5d, 0x94, 0x25, 0x9f, 0x43, 0xf2, 0x82, 0x1a, 0xfa, 0x14, 0x56, 0x14, 0xb3, 0x18, 0xae, 0x93, 0xbd,
0xc1, 0xed, 0x6d, 0xf6, 0x75, 0xc5, 0x15, 0xa8, 0xe2, 0x00, 0xba, 0x49, 0x60, 0x25, 0x01, 0x18, 0x89, 0xce, 0x45, 0x22, 0x52, 0xca, 0x8b, 0x08, 0xfd, 0x0f, 0x07, 0x16, 0xe4, 0x4e, 0xe7, 0x5e,
0xe7, 0xf2, 0x02, 0x4a, 0x98, 0x48, 0xec, 0x4c, 0x10, 0x7b, 0x8d, 0xef, 0xbc, 0x58, 0x02, 0x75, 0x34, 0x88, 0x7d, 0xb6, 0x30, 0xd2, 0xb6, 0x12, 0xd2, 0x51, 0x9e, 0xa4, 0x62, 0xcc, 0xa9, 0xbe,
0xdf, 0x25, 0x12, 0xfc, 0x12, 0x38, 0xe1, 0x08, 0x31, 0x80, 0x34, 0x47, 0x08, 0x52, 0x47, 0xd5, 0xb9, 0x22, 0xd5, 0x47, 0xa0, 0x3c, 0xf6, 0x92, 0x53, 0x3c, 0x29, 0xd7, 0x5c, 0xfc, 0x4d, 0x5a,
0xdb, 0x1d, 0x68, 0xef, 0xd1, 0x11, 0x8d, 0xe9, 0xce, 0x68, 0x94, 0x6e, 0xff, 0x35, 0xb8, 0x9c, 0x22, 0xae, 0x23, 0xd4, 0x2c, 0xc6, 0x74, 0x8a, 0xde, 0x6e, 0x08, 0x6b, 0x9e, 0x7f, 0xbb, 0x71,
0x53, 0x27, 0xfc, 0xd9, 0x2f, 0xc0, 0xda, 0x0e, 0x4f, 0x86, 0xfa, 0xb8, 0x32, 0x06, 0xec, 0x36, 0x05, 0x6a, 0x38, 0x80, 0x6e, 0x1a, 0xb6, 0x49, 0x01, 0xce, 0xb9, 0xa2, 0x80, 0xb2, 0x2b, 0xd3,
0xac, 0xa7, 0x9b, 0x14, 0x9d, 0xdd, 0x83, 0xe5, 0x3d, 0x7a, 0x32, 0x1d, 0x1c, 0xd2, 0xb3, 0xa4, 0x46, 0x53, 0x84, 0xae, 0x89, 0x9d, 0x97, 0x4b, 0xa0, 0x6f, 0xd3, 0x64, 0xfa, 0x60, 0x0a, 0xa7,
0x23, 0x02, 0xa5, 0x68, 0x18, 0x9c, 0x0b, 0xc1, 0xc4, 0xdf, 0xe4, 0x75, 0x80, 0x11, 0xa3, 0xe9, 0x1c, 0x21, 0x07, 0x90, 0xe5, 0x08, 0x49, 0xea, 0xea, 0x7a, 0xda, 0x81, 0xf6, 0x2e, 0x1b, 0xb2,
0x46, 0x13, 0xda, 0x93, 0x09, 0xdc, 0x88, 0x1c, 0x4f, 0x68, 0xcf, 0x7e, 0x17, 0x88, 0xde, 0x8e, 0x84, 0x6d, 0x0f, 0x87, 0xd9, 0xf6, 0x5f, 0x83, 0xcb, 0x05, 0x75, 0xd2, 0x5b, 0xfe, 0x22, 0xac,
0x58, 0x2f, 0x66, 0x8f, 0xa6, 0x27, 0xdd, 0x68, 0x16, 0xc5, 0x74, 0x2c, 0x33, 0xd3, 0x75, 0xc8, 0x6d, 0x8b, 0x54, 0xab, 0x9f, 0x56, 0x3e, 0x02, 0x6d, 0xc3, 0x7a, 0xb6, 0x49, 0xd9, 0xd9, 0x3d,
0xbe, 0x01, 0xf5, 0x23, 0x77, 0xe6, 0xd0, 0xaf, 0x89, 0xa7, 0x26, 0x1b, 0xb0, 0x38, 0x71, 0x67, 0x58, 0xde, 0x65, 0xc7, 0x93, 0xc1, 0x01, 0x3b, 0x4b, 0x3b, 0x22, 0x50, 0x8e, 0x4f, 0xc3, 0x73,
0x4c, 0x4d, 0xa9, 0x88, 0x0f, 0x56, 0xdb, 0xff, 0x59, 0x80, 0x05, 0x4e, 0xc9, 0x5a, 0xed, 0xd3, 0x29, 0x98, 0xf8, 0x9b, 0xbc, 0x0e, 0x30, 0xe4, 0x34, 0xdd, 0x78, 0xcc, 0x7a, 0x2a, 0x3d, 0x1c,
0x28, 0xf6, 0x7c, 0x64, 0x2c, 0xd9, 0xaa, 0x06, 0x65, 0x58, 0xb9, 0x90, 0xc3, 0xca, 0xe2, 0xd4, 0x91, 0xa3, 0x31, 0xeb, 0xd1, 0xf7, 0x80, 0x98, 0xed, 0xc8, 0xf5, 0xe2, 0x96, 0x6e, 0x72, 0xdc,
0x24, 0x93, 0x61, 0x05, 0xbf, 0x1a, 0x18, 0x63, 0xae, 0x24, 0xab, 0x86, 0x87, 0x1c, 0x12, 0x20, 0x8d, 0xa7, 0x71, 0xc2, 0x46, 0x2a, 0xef, 0xdd, 0x84, 0xe8, 0x75, 0x68, 0x1c, 0x7a, 0x53, 0x97,
0x15, 0x1c, 0x4c, 0xac, 0x1e, 0x1f, 0x9f, 0x94, 0x52, 0xc1, 0xb9, 0x3a, 0x94, 0x6b, 0x5b, 0x17, 0x7d, 0x5d, 0x3e, 0x64, 0xd9, 0x80, 0x85, 0xb1, 0x37, 0xe5, 0x6a, 0x4a, 0xc7, 0x93, 0xb0, 0x9a,
0x39, 0x83, 0x67, 0x6c, 0x6b, 0xc6, 0x86, 0x56, 0x5e, 0xc1, 0x86, 0xf2, 0xa3, 0xd4, 0xcb, 0x6c, 0xfe, 0x7b, 0x09, 0xe6, 0x05, 0x25, 0x6f, 0xb5, 0xcf, 0xe2, 0xc4, 0x0f, 0x90, 0xb1, 0x54, 0xab,
0x28, 0xbc, 0x82, 0x0d, 0xb5, 0x09, 0xb4, 0xee, 0x51, 0xea, 0x50, 0xe6, 0x9d, 0x49, 0xde, 0xfd, 0x06, 0x94, 0x63, 0xe5, 0x52, 0x01, 0x2b, 0xcb, 0x33, 0x99, 0x4a, 0xb5, 0x95, 0xfc, 0x6a, 0x61,
0x96, 0x05, 0x2d, 0xc1, 0x45, 0xaa, 0x8e, 0xbc, 0x69, 0x78, 0xa1, 0xb9, 0x29, 0xab, 0xd7, 0x61, 0x9c, 0xb9, 0xd2, 0x9c, 0x1d, 0x11, 0xd0, 0x48, 0x81, 0x4c, 0xe8, 0x31, 0xb5, 0xa7, 0x62, 0x7c,
0x09, 0x7d, 0x43, 0x15, 0x05, 0x15, 0x21, 0x5b, 0x03, 0x64, 0xf3, 0x90, 0x57, 0x55, 0x63, 0x6f, 0x4a, 0x4a, 0x25, 0xe7, 0x9a, 0x50, 0xa1, 0xd5, 0x5e, 0x10, 0x0c, 0x9e, 0xb3, 0xda, 0x39, 0xeb,
0x24, 0x36, 0x45, 0x87, 0x64, 0x20, 0x35, 0x74, 0x45, 0x0a, 0x8b, 0xe5, 0xa8, 0xb2, 0xfd, 0x17, 0x5c, 0x7d, 0x05, 0xeb, 0x2c, 0x0e, 0x6a, 0x2f, 0xb3, 0xce, 0xf0, 0x0a, 0xd6, 0x99, 0x12, 0x68,
0x16, 0x2c, 0x6b, 0x03, 0x16, 0x5c, 0x78, 0x07, 0xa4, 0x34, 0xf0, 0x90, 0x28, 0x97, 0xdc, 0x0d, 0xdd, 0x63, 0xcc, 0x65, 0xdc, 0xf7, 0x53, 0xbc, 0xfb, 0x6d, 0x07, 0x5a, 0x92, 0x8b, 0x74, 0x1d,
0x53, 0x6c, 0x92, 0xcf, 0x0c, 0x62, 0xdc, 0x4c, 0x77, 0x86, 0x03, 0x8c, 0xa6, 0x63, 0xa1, 0x44, 0x79, 0xd3, 0xf2, 0x71, 0x0b, 0x13, 0x62, 0xdf, 0x82, 0x45, 0xf4, 0x3c, 0x75, 0x8c, 0x55, 0x06,
0x75, 0x88, 0x31, 0xd2, 0x39, 0xa5, 0xcf, 0x14, 0x09, 0x57, 0xe3, 0x06, 0x86, 0xf9, 0x15, 0xcc, 0x84, 0x2d, 0x90, 0xcf, 0x43, 0x5d, 0x84, 0x8d, 0xfc, 0xa1, 0xdc, 0x14, 0x13, 0x52, 0x61, 0xda,
0xa7, 0x55, 0x44, 0xdc, 0x9e, 0x99, 0xa0, 0xfd, 0x0f, 0x16, 0xac, 0xf0, 0xc3, 0x89, 0x38, 0xfa, 0xc8, 0x93, 0x09, 0x32, 0x8e, 0xab, 0xcb, 0xf4, 0xcf, 0x1c, 0x58, 0x36, 0x06, 0x2c, 0xb9, 0xf0,
0xa9, 0xf7, 0x04, 0x0b, 0xfc, 0x34, 0xc6, 0x25, 0xf2, 0xe0, 0x92, 0x23, 0xca, 0xe4, 0x33, 0xaf, 0x0e, 0x28, 0x69, 0x10, 0x01, 0x57, 0x21, 0xb9, 0x1b, 0xb6, 0xd8, 0xa4, 0x9f, 0x59, 0xc4, 0xb8,
0x78, 0xa0, 0x52, 0x79, 0x35, 0x73, 0xf6, 0xa2, 0x98, 0xb7, 0x17, 0x2f, 0x59, 0xe9, 0xbc, 0x10, 0x99, 0xde, 0x14, 0x07, 0x18, 0x4f, 0x46, 0x52, 0x89, 0x9a, 0x10, 0x67, 0xa4, 0x73, 0xc6, 0x9e,
0x60, 0x39, 0x37, 0x04, 0x78, 0x77, 0x11, 0xca, 0x51, 0x2f, 0x98, 0x50, 0x7b, 0x1d, 0x56, 0xcd, 0x69, 0x12, 0xa1, 0xc6, 0x2d, 0x0c, 0xb3, 0x37, 0xb8, 0xc7, 0xac, 0x89, 0x84, 0x3d, 0xb3, 0x41,
0xc9, 0x09, 0x15, 0xf4, 0x6d, 0x0b, 0xda, 0xf7, 0x78, 0xa8, 0xdc, 0xf3, 0x07, 0x07, 0x5e, 0x14, 0xfa, 0x77, 0x0e, 0xac, 0x88, 0xa3, 0x8f, 0x3c, 0x58, 0xea, 0xd7, 0x0a, 0xf3, 0xe2, 0xac, 0x27,
0x07, 0xa1, 0x7a, 0x5b, 0x75, 0x15, 0x20, 0x8a, 0xdd, 0x30, 0xe6, 0xc9, 0x8e, 0x22, 0x40, 0x97, 0x24, 0x72, 0xff, 0x92, 0x2b, 0xcb, 0xe4, 0xb3, 0xaf, 0x78, 0x5c, 0xd3, 0x59, 0x3b, 0x33, 0xf6,
0x20, 0x6c, 0x8c, 0xd4, 0xef, 0xf3, 0x5a, 0xbe, 0x37, 0xaa, 0x9c, 0xf1, 0x21, 0xc4, 0xf1, 0xc9, 0x62, 0xae, 0x68, 0x2f, 0x5e, 0xb2, 0xd2, 0x45, 0x01, 0xc6, 0x4a, 0x61, 0x80, 0xf1, 0xee, 0x02,
0xb0, 0xc4, 0x6f, 0xf1, 0x3c, 0x33, 0xe6, 0x2b, 0xd0, 0x33, 0xd4, 0xeb, 0xfc, 0x5c, 0x92, 0x42, 0x54, 0xe2, 0x5e, 0x38, 0x66, 0x74, 0x1d, 0x56, 0xed, 0xc9, 0x49, 0x15, 0xf4, 0x1d, 0x07, 0xda,
0xed, 0xbf, 0xb7, 0xa0, 0x99, 0x0c, 0x72, 0x9f, 0x81, 0xa6, 0x76, 0x10, 0xe6, 0x37, 0xd1, 0x0e, 0xf7, 0x44, 0x20, 0xde, 0x0f, 0x06, 0xfb, 0x7e, 0x9c, 0x84, 0x91, 0x7e, 0xb9, 0x75, 0x15, 0x20,
0x32, 0x74, 0xe8, 0x31, 0x7b, 0x2c, 0xc6, 0xa6, 0x21, 0x28, 0xb1, 0xa2, 0x14, 0x4c, 0xa5, 0x83, 0x4e, 0xbc, 0x28, 0x11, 0xa9, 0x94, 0x32, 0xfc, 0x97, 0x22, 0x7c, 0x8c, 0x2c, 0xe8, 0x8b, 0x5a,
0xa3, 0x43, 0x3c, 0x6b, 0x84, 0x79, 0x02, 0xc2, 0xab, 0x11, 0x25, 0xcc, 0x55, 0x1d, 0xc7, 0xf8, 0xb1, 0x37, 0xba, 0x9c, 0xf3, 0x21, 0xe4, 0xe1, 0xcc, 0xb2, 0xc4, 0x6f, 0x8b, 0x2c, 0x36, 0xee,
0xd5, 0x02, 0x3f, 0x98, 0x89, 0xa2, 0x34, 0xa5, 0x8b, 0x88, 0xa2, 0x29, 0xd5, 0xaf, 0x1d, 0x2a, 0x2b, 0xb0, 0x33, 0xd4, 0xeb, 0xe2, 0xd4, 0x93, 0x41, 0xe9, 0xdf, 0x3a, 0xd0, 0x4c, 0x07, 0xb9,
0x7c, 0x7d, 0x64, 0xd9, 0xfe, 0xa6, 0x05, 0x97, 0x73, 0x16, 0x5e, 0x48, 0xcd, 0x1e, 0x2c, 0x9f, 0xc7, 0x41, 0x5b, 0x3b, 0x48, 0xf3, 0x9b, 0x6a, 0x07, 0x15, 0x98, 0xf4, 0xb9, 0x3d, 0x96, 0x63,
0xaa, 0x4a, 0xb9, 0x38, 0x5c, 0x74, 0xd6, 0xe5, 0xbd, 0x8f, 0xb9, 0x20, 0x4e, 0xf6, 0x03, 0xe5, 0x33, 0x10, 0x94, 0x58, 0x59, 0x0a, 0x27, 0xca, 0xc1, 0x31, 0x21, 0x91, 0x93, 0xc2, 0x3d, 0x01,
0x17, 0xf1, 0xe5, 0x36, 0xf2, 0xb2, 0xb2, 0x15, 0x9b, 0x9f, 0x83, 0x9a, 0xf6, 0xe0, 0x89, 0x6c, 0xe9, 0xd5, 0xc8, 0x12, 0x66, 0xc2, 0x8e, 0x12, 0xfc, 0x6a, 0x5e, 0x1c, 0xfb, 0x64, 0x51, 0x99,
0xc0, 0xca, 0xd3, 0x07, 0x8f, 0x1f, 0xee, 0x1f, 0x1f, 0x77, 0x8f, 0x9e, 0xdc, 0xfd, 0xfc, 0xfe, 0xd2, 0x05, 0x44, 0xd1, 0x94, 0x9a, 0x97, 0x1a, 0x55, 0xb1, 0x3e, 0xaa, 0x4c, 0xbf, 0xe5, 0xc0,
0x97, 0xba, 0x07, 0x3b, 0xc7, 0x07, 0xad, 0x4b, 0x64, 0x1d, 0xc8, 0xc3, 0xfd, 0xe3, 0xc7, 0xfb, 0xe5, 0x82, 0x85, 0x97, 0x52, 0xb3, 0x0b, 0xcb, 0x27, 0xba, 0x52, 0x2d, 0x8e, 0x10, 0x9d, 0x75,
0x7b, 0x06, 0x6e, 0x6d, 0xff, 0x76, 0x11, 0x1a, 0xfc, 0x3e, 0x91, 0xbf, 0x2a, 0xa7, 0x21, 0xf9, 0x75, 0xab, 0x64, 0x2f, 0x88, 0x9b, 0xff, 0x40, 0xfb, 0x45, 0x62, 0xb9, 0xad, 0xac, 0xaf, 0x7c,
0x00, 0x16, 0xc5, 0xbf, 0x02, 0x90, 0x35, 0x31, 0x6c, 0xf3, 0x7f, 0x08, 0x3a, 0xeb, 0x69, 0x58, 0xc5, 0xe6, 0xe7, 0xa1, 0x6e, 0x3c, 0xa7, 0x22, 0x1b, 0xb0, 0xf2, 0xf4, 0xc1, 0xe3, 0x87, 0x7b,
0xf0, 0xe5, 0xca, 0xaf, 0x7c, 0xff, 0x9f, 0x7f, 0xb7, 0xb0, 0x44, 0x6a, 0x5b, 0x67, 0xef, 0x6c, 0x47, 0x47, 0xdd, 0xc3, 0x27, 0x77, 0xbf, 0xb0, 0xf7, 0xe5, 0xee, 0xfe, 0xf6, 0xd1, 0x7e, 0xeb,
0x0d, 0xa8, 0x1f, 0xb1, 0x36, 0x7e, 0x1e, 0x20, 0x79, 0x2f, 0x4f, 0xda, 0xca, 0x1f, 0x4c, 0xfd, 0x12, 0x59, 0x07, 0xf2, 0x70, 0xef, 0xe8, 0xf1, 0xde, 0xae, 0x85, 0x3b, 0xb7, 0x7f, 0x6b, 0x0e,
0x11, 0x40, 0xe7, 0x72, 0x4e, 0x8d, 0x68, 0xf7, 0x32, 0xb6, 0xbb, 0x62, 0x37, 0x58, 0xbb, 0x9e, 0x96, 0xc4, 0x6d, 0xa5, 0x78, 0xb3, 0xce, 0x22, 0xf2, 0x21, 0x2c, 0xc8, 0xff, 0x39, 0x40, 0xd6,
0xef, 0xc5, 0xfc, 0xf1, 0xfc, 0xfb, 0xd6, 0x26, 0xe9, 0x43, 0x5d, 0x7f, 0x0e, 0x4f, 0x64, 0x58, 0xe4, 0xb0, 0xed, 0xff, 0x72, 0xd0, 0x59, 0xcf, 0xc2, 0x92, 0x2f, 0x57, 0x7e, 0xf9, 0x07, 0xff,
0x28, 0xe7, 0x31, 0x7e, 0xe7, 0xb5, 0xdc, 0x3a, 0x19, 0x13, 0xc3, 0x3e, 0xd6, 0xec, 0x16, 0xeb, 0xf8, 0x3b, 0xa5, 0x45, 0x52, 0xdf, 0x3a, 0x7b, 0x77, 0x6b, 0xc0, 0x82, 0x98, 0xb7, 0xf1, 0x73,
0x63, 0x8a, 0x14, 0x49, 0x2f, 0x23, 0x68, 0x98, 0xaf, 0xde, 0xc9, 0x15, 0x4d, 0x65, 0x64, 0xde, 0x00, 0xe9, 0x6b, 0x7c, 0xd2, 0xd6, 0xfe, 0x60, 0xe6, 0xdf, 0x0c, 0x74, 0x2e, 0x17, 0xd4, 0xc8,
0xdc, 0x77, 0x5e, 0x9f, 0x53, 0x2b, 0xfa, 0x7a, 0x1d, 0xfb, 0xda, 0xb0, 0x09, 0xeb, 0xab, 0x87, 0x76, 0x2f, 0x63, 0xbb, 0x2b, 0x74, 0x89, 0xb7, 0xeb, 0x07, 0x7e, 0x22, 0x9e, 0xe6, 0x7f, 0xe0,
0x34, 0xf2, 0xcd, 0xfd, 0xfb, 0xd6, 0xe6, 0xf6, 0x7f, 0xbc, 0x01, 0x55, 0x15, 0xc8, 0x25, 0x5f, 0x6c, 0x92, 0x3e, 0x34, 0xcc, 0xc7, 0xf6, 0x44, 0x05, 0x9d, 0x0a, 0x9e, 0xfa, 0x77, 0x5e, 0x2b,
0x85, 0x25, 0xe3, 0xc2, 0x97, 0xc8, 0x69, 0xe4, 0xdd, 0x0f, 0x77, 0xae, 0xe4, 0x57, 0x8a, 0x8e, 0xac, 0x53, 0x11, 0x37, 0xec, 0x63, 0x8d, 0xb6, 0x78, 0x1f, 0x13, 0xa4, 0x48, 0x7b, 0x19, 0xc2,
0xaf, 0x62, 0xc7, 0x6d, 0xb2, 0xce, 0x3a, 0x16, 0x37, 0xa6, 0x5b, 0x78, 0xcd, 0xcd, 0xb3, 0x6c, 0x92, 0xfd, 0xa6, 0x9e, 0x5c, 0x31, 0x54, 0x46, 0xee, 0x45, 0x7f, 0xe7, 0xf5, 0x19, 0xb5, 0xb2,
0x9f, 0xf1, 0x79, 0x26, 0x97, 0xb4, 0xc6, 0x3c, 0x33, 0x97, 0xba, 0xc6, 0x3c, 0xb3, 0x37, 0xbb, 0xaf, 0xd7, 0xb1, 0xaf, 0x0d, 0x4a, 0x78, 0x5f, 0x3d, 0xa4, 0x51, 0x2f, 0xfa, 0x3f, 0x70, 0x36,
0xf6, 0x15, 0xec, 0x6e, 0x9d, 0xac, 0xea, 0xdd, 0xa9, 0x00, 0x2b, 0xc5, 0xbc, 0x68, 0xfd, 0x91, 0x6f, 0xff, 0xdb, 0x1b, 0x50, 0xd3, 0x61, 0x62, 0xf2, 0x35, 0x58, 0xb4, 0xae, 0x93, 0x89, 0x9a,
0x38, 0x79, 0x5d, 0x31, 0x56, 0xde, 0xe3, 0x71, 0xc5, 0x22, 0xd9, 0x17, 0xe4, 0x76, 0x1b, 0xbb, 0x46, 0xd1, 0xed, 0x73, 0xe7, 0x4a, 0x71, 0xa5, 0xec, 0xf8, 0x2a, 0x76, 0xdc, 0x26, 0xeb, 0xbc,
0x22, 0x04, 0xb7, 0x4f, 0x7f, 0x23, 0x4e, 0xbe, 0x0c, 0x55, 0xf5, 0xda, 0x91, 0x6c, 0x68, 0x4f, 0x63, 0x79, 0x1f, 0xbb, 0x85, 0x97, 0xe8, 0x22, 0x87, 0xf7, 0x99, 0x98, 0x67, 0x7a, 0x05, 0x6c,
0x4c, 0xf5, 0x27, 0x98, 0x9d, 0x76, 0xb6, 0x22, 0x8f, 0x31, 0xf4, 0x96, 0x19, 0x63, 0x3c, 0x85, 0xcd, 0x33, 0x77, 0x65, 0x6c, 0xcd, 0x33, 0x7f, 0x6f, 0x4c, 0xaf, 0x60, 0x77, 0xeb, 0x64, 0xd5,
0x9a, 0xf6, 0xa2, 0x91, 0x5c, 0x56, 0x61, 0xf8, 0xf4, 0xab, 0xc9, 0x4e, 0x27, 0xaf, 0x4a, 0x74, 0xec, 0x4e, 0x87, 0x6f, 0x19, 0x66, 0x5d, 0x9b, 0x4f, 0xd0, 0xc9, 0xeb, 0x9a, 0xb1, 0x8a, 0x9e,
0xb1, 0x8c, 0x5d, 0xd4, 0x48, 0x15, 0x79, 0x2f, 0x7e, 0x1e, 0x44, 0xe4, 0x10, 0xd6, 0xc4, 0xc1, 0xa6, 0x6b, 0x16, 0xc9, 0xbf, 0x4f, 0xa7, 0x6d, 0xec, 0x8a, 0x10, 0xdc, 0x3e, 0xf3, 0x05, 0x3a,
0xe5, 0x84, 0xfe, 0x20, 0x4b, 0x94, 0xf3, 0x66, 0xfe, 0xb6, 0x45, 0xee, 0x40, 0x45, 0xbe, 0x4e, 0xf9, 0x0a, 0xd4, 0xf4, 0x5b, 0x4a, 0xb2, 0x61, 0x3c, 0x60, 0x35, 0x1f, 0x78, 0x76, 0xda, 0xf9,
0x25, 0xeb, 0xf9, 0xaf, 0x6c, 0x3b, 0x1b, 0x19, 0x5c, 0xa8, 0xb5, 0x2f, 0x01, 0x24, 0xcf, 0x27, 0x8a, 0x22, 0xc6, 0x30, 0x5b, 0xe6, 0x8c, 0xf1, 0x14, 0xea, 0xc6, 0x7b, 0x49, 0x72, 0x59, 0x07,
0x95, 0x00, 0x67, 0x9e, 0x63, 0xaa, 0xdd, 0xc9, 0xbe, 0xb5, 0xb4, 0xd7, 0x71, 0x82, 0x2d, 0x82, 0xf9, 0xb3, 0x6f, 0x32, 0x3b, 0x9d, 0xa2, 0x2a, 0xd9, 0xc5, 0x32, 0x76, 0x51, 0x27, 0x35, 0xe4,
0x02, 0xec, 0xd3, 0x73, 0xf9, 0x52, 0xe0, 0x2b, 0x50, 0xd3, 0x5e, 0x50, 0xaa, 0xe5, 0xcb, 0xbe, 0xbd, 0xe4, 0x79, 0x18, 0x93, 0x03, 0x58, 0x93, 0x07, 0x97, 0x63, 0xf6, 0xa3, 0x2c, 0x51, 0xc1,
0xbe, 0x54, 0xcb, 0x97, 0xf3, 0xe0, 0xd2, 0xee, 0x60, 0xeb, 0xab, 0x76, 0x93, 0xb5, 0x1e, 0x79, 0x8b, 0xfc, 0x5b, 0x0e, 0xb9, 0x03, 0x55, 0xf5, 0xf6, 0x95, 0xac, 0x17, 0xbf, 0xe1, 0xed, 0x6c,
0x03, 0x7f, 0xcc, 0x09, 0xd8, 0x06, 0x0d, 0x61, 0xc9, 0x78, 0x26, 0xa9, 0xa4, 0x27, 0xef, 0x11, 0xe4, 0x70, 0xa9, 0xd6, 0xbe, 0x0c, 0x90, 0x3e, 0xce, 0xd4, 0x02, 0x9c, 0x7b, 0xec, 0xa9, 0x77,
0xa6, 0x92, 0x9e, 0xdc, 0x97, 0x95, 0x92, 0x9d, 0xed, 0x65, 0xd6, 0xcf, 0x19, 0x92, 0x68, 0x3d, 0x27, 0xff, 0x92, 0x93, 0xae, 0xe3, 0x04, 0x5b, 0x04, 0x05, 0x38, 0x60, 0xe7, 0xea, 0x1d, 0xc2,
0x7d, 0x08, 0x35, 0xed, 0xc9, 0xa3, 0x9a, 0x4b, 0xf6, 0x75, 0xa5, 0x9a, 0x4b, 0xde, 0x0b, 0xc9, 0x57, 0xa1, 0x6e, 0xbc, 0xcf, 0xd4, 0xcb, 0x97, 0x7f, 0xdb, 0xa9, 0x97, 0xaf, 0xe0, 0x39, 0x27,
0x55, 0xec, 0xa3, 0x61, 0x23, 0x2b, 0x60, 0xa2, 0x3d, 0x6b, 0xfb, 0xab, 0xd0, 0x30, 0x1f, 0x41, 0xed, 0x60, 0xeb, 0xab, 0xb4, 0xc9, 0x5b, 0x8f, 0xfd, 0x41, 0x30, 0x12, 0x04, 0x7c, 0x83, 0x4e,
0x2a, 0xb9, 0xcc, 0x7d, 0x4e, 0xa9, 0xe4, 0x72, 0xce, 0xcb, 0x49, 0xc1, 0xd2, 0x9b, 0x2b, 0xaa, 0x61, 0xd1, 0x7a, 0x84, 0xa9, 0xa5, 0xa7, 0xe8, 0x89, 0xa7, 0x96, 0x9e, 0xc2, 0x77, 0x9b, 0x8a,
0x93, 0xad, 0x8f, 0xc4, 0xb5, 0xea, 0x0b, 0xf2, 0x05, 0xa6, 0x7c, 0xc4, 0xcb, 0x07, 0xb2, 0xa1, 0x9d, 0xe9, 0x32, 0xef, 0xe7, 0x0c, 0x49, 0x8c, 0x9e, 0x3e, 0x82, 0xba, 0xf1, 0xa0, 0x52, 0xcf,
0x71, 0xad, 0xfe, 0x3e, 0x42, 0xc9, 0x4b, 0xe6, 0x91, 0x84, 0xc9, 0xcc, 0xfc, 0xa9, 0x00, 0x5a, 0x25, 0xff, 0x76, 0x53, 0xcf, 0xa5, 0xe8, 0xfd, 0xe5, 0x2a, 0xf6, 0xb1, 0x44, 0x91, 0x15, 0x30,
0x14, 0x7c, 0x01, 0xa1, 0x59, 0x14, 0xfd, 0x91, 0x84, 0x66, 0x51, 0x8c, 0x87, 0x12, 0x69, 0x8b, 0x8d, 0x9f, 0xb7, 0xfd, 0x35, 0x58, 0xb2, 0x9f, 0x58, 0x6a, 0xb9, 0x2c, 0x7c, 0xac, 0xa9, 0xe5,
0x12, 0x7b, 0xac, 0x0d, 0x1f, 0x9a, 0xa9, 0xe4, 0x22, 0x25, 0x15, 0xf9, 0xd9, 0x98, 0x9d, 0xab, 0x72, 0xc6, 0xbb, 0x4c, 0xc9, 0xd2, 0x9b, 0x2b, 0xba, 0x93, 0xad, 0x8f, 0xe5, 0xa5, 0xed, 0x0b,
0x2f, 0xcf, 0x49, 0x32, 0x15, 0x95, 0x54, 0x50, 0x5b, 0x32, 0xf7, 0xf5, 0x17, 0xa0, 0xae, 0x3f, 0xf2, 0x45, 0xae, 0x7c, 0xe4, 0xbb, 0x0a, 0xb2, 0x61, 0x70, 0xad, 0xf9, 0xfa, 0x42, 0xcb, 0x4b,
0x5e, 0x23, 0xba, 0x28, 0xa7, 0x7b, 0x7a, 0x2d, 0xb7, 0xce, 0xdc, 0x5c, 0x52, 0xd7, 0xbb, 0x61, 0xee, 0x09, 0x86, 0xcd, 0xcc, 0xe2, 0x21, 0x02, 0x5a, 0x14, 0x7c, 0x5f, 0x61, 0x58, 0x14, 0xf3,
0x9b, 0x6b, 0xbe, 0xde, 0x49, 0x94, 0x6e, 0xde, 0xa3, 0xa5, 0x44, 0xe9, 0xe6, 0x3e, 0xf9, 0x91, 0x09, 0x86, 0x61, 0x51, 0xac, 0x67, 0x18, 0x59, 0x8b, 0x92, 0xf8, 0xbc, 0x8d, 0x00, 0x9a, 0x99,
0x9b, 0x4b, 0x56, 0x8c, 0xb9, 0xf0, 0x08, 0x38, 0xf9, 0x10, 0x9a, 0x5a, 0xe6, 0xde, 0xf1, 0xcc, 0xd4, 0x25, 0x2d, 0x15, 0xc5, 0xb9, 0x9e, 0x9d, 0xab, 0x2f, 0xcf, 0x78, 0xb2, 0x15, 0x95, 0x52,
0xef, 0x29, 0x46, 0xcd, 0xa6, 0x78, 0x77, 0xf2, 0xfc, 0x62, 0x7b, 0x03, 0xdb, 0x5f, 0xb6, 0x8d, 0x50, 0x5b, 0x2a, 0xb3, 0xf6, 0xe7, 0xa1, 0x61, 0x3e, 0x8d, 0x23, 0xa6, 0x28, 0x67, 0x7b, 0x7a,
0x49, 0x30, 0x26, 0xdd, 0x85, 0x9a, 0x9e, 0x15, 0xf8, 0x92, 0x76, 0x37, 0xb4, 0x2a, 0x3d, 0x43, 0xad, 0xb0, 0xce, 0xde, 0x5c, 0xd2, 0x30, 0xbb, 0xe1, 0x9b, 0x6b, 0xbf, 0x0d, 0x4a, 0x95, 0x6e,
0xf9, 0xb6, 0x45, 0xfe, 0xc0, 0x82, 0xba, 0x91, 0x63, 0x67, 0xdc, 0xf3, 0xa4, 0xda, 0x69, 0xeb, 0xd1, 0x93, 0xa8, 0x54, 0xe9, 0x16, 0x3e, 0x28, 0x52, 0x9b, 0x4b, 0x56, 0xac, 0xb9, 0x88, 0xf8,
0x75, 0x7a, 0x43, 0xb6, 0x83, 0x83, 0x3c, 0xdc, 0xfc, 0x59, 0x63, 0x11, 0x3e, 0x32, 0xce, 0x57, 0x3a, 0xf9, 0x08, 0x9a, 0x46, 0x5e, 0xe0, 0xd1, 0x34, 0xe8, 0x69, 0x46, 0xcd, 0x27, 0x90, 0x77,
0xb7, 0xd2, 0x7f, 0x8f, 0xf0, 0x22, 0x4d, 0xa0, 0xa7, 0xc1, 0xbf, 0xb8, 0x6d, 0x91, 0xef, 0x5a, 0x8a, 0xfc, 0x62, 0xba, 0x81, 0xed, 0x2f, 0x53, 0x6b, 0x12, 0x9c, 0x49, 0x77, 0xa0, 0x6e, 0xe6,
0xd0, 0x30, 0xa3, 0x02, 0x6a, 0xab, 0x72, 0xe3, 0x0f, 0x6a, 0xab, 0xe6, 0x84, 0x12, 0x3e, 0xc4, 0x1c, 0xbe, 0xa4, 0xdd, 0x0d, 0xa3, 0xca, 0xcc, 0x7f, 0xbe, 0xe5, 0x90, 0xdf, 0x73, 0xa0, 0x61,
0x51, 0x3e, 0xde, 0x74, 0x8c, 0x51, 0x8a, 0x77, 0x5d, 0x3f, 0xda, 0x68, 0xc9, 0xfb, 0xfc, 0x0f, 0x65, 0xf0, 0x59, 0xb7, 0x48, 0x99, 0x76, 0xda, 0x66, 0x9d, 0xd9, 0x10, 0x75, 0x71, 0x90, 0x07,
0x4d, 0x64, 0xa8, 0x8a, 0x68, 0xda, 0x3d, 0xbd, 0xbd, 0xfa, 0xbf, 0x79, 0xdc, 0xb4, 0x6e, 0x5b, 0x9b, 0x3f, 0x63, 0x2d, 0xc2, 0xc7, 0xd6, 0xf9, 0xea, 0x66, 0xf6, 0x9f, 0x2f, 0xbc, 0xc8, 0x12,
0xe4, 0x2b, 0xfc, 0x1f, 0x1b, 0xc4, 0xb7, 0xc8, 0x25, 0xaf, 0xfa, 0xbd, 0x7d, 0x1d, 0xe7, 0x74, 0x98, 0x49, 0xf6, 0x2f, 0x6e, 0x39, 0xe4, 0x7b, 0x0e, 0x2c, 0xd9, 0x51, 0x01, 0xbd, 0x55, 0x85,
0xd5, 0xbe, 0x6c, 0xcc, 0x29, 0x6d, 0x37, 0x77, 0xf8, 0xe8, 0xc4, 0x1f, 0x71, 0x24, 0x8a, 0x3f, 0xf1, 0x07, 0xbd, 0x55, 0x33, 0x42, 0x09, 0x1f, 0xe1, 0x28, 0x1f, 0x6f, 0xba, 0xd6, 0x28, 0xe5,
0xf3, 0xe7, 0x1c, 0xf3, 0x07, 0x39, 0xe6, 0x83, 0x14, 0xe4, 0x06, 0x2b, 0xbf, 0x62, 0x33, 0xf6, 0xab, 0xb1, 0x9f, 0x6c, 0xb4, 0xe4, 0x03, 0xf1, 0xef, 0x52, 0x54, 0xa8, 0x8a, 0x18, 0xda, 0x3d,
0x26, 0x8e, 0xf5, 0xba, 0xfd, 0xc6, 0xdc, 0xb1, 0x6e, 0xe1, 0xd9, 0x9e, 0x8d, 0xf8, 0x08, 0x20, 0xbb, 0xbd, 0xe6, 0xff, 0x0a, 0xb9, 0xe1, 0xdc, 0x72, 0xc8, 0x57, 0xc5, 0xff, 0x83, 0x90, 0xdf,
0x09, 0x2b, 0x93, 0x54, 0x58, 0x53, 0xd9, 0xbe, 0x6c, 0xe4, 0xd9, 0x94, 0x17, 0x19, 0xfd, 0x64, 0x22, 0x97, 0xbc, 0xea, 0xf7, 0xf4, 0x2d, 0x9c, 0xd3, 0x55, 0x7a, 0xd9, 0x9a, 0x53, 0xd6, 0x6e,
0x2d, 0x7e, 0x99, 0xab, 0x95, 0x07, 0x32, 0x20, 0xaa, 0x3b, 0x0f, 0x66, 0xfc, 0xd7, 0x70, 0x1e, 0x6e, 0x8b, 0xd1, 0xc9, 0x7f, 0xf3, 0x91, 0x2a, 0xfe, 0xdc, 0xbf, 0xfe, 0x98, 0x3d, 0xc8, 0x91,
0xd2, 0xed, 0x1b, 0x4a, 0x45, 0x45, 0x57, 0x9f, 0xc0, 0xd2, 0x61, 0x10, 0x3c, 0x9b, 0x4e, 0xd4, 0x18, 0xa4, 0x24, 0xb7, 0x58, 0xf9, 0x15, 0x9b, 0xa1, 0x9b, 0x38, 0xd6, 0xb7, 0xe8, 0x1b, 0x33,
0x25, 0x8d, 0x19, 0x76, 0x3b, 0x70, 0xa3, 0x61, 0x27, 0x35, 0x0b, 0xfb, 0x1a, 0x36, 0xd5, 0x21, 0xc7, 0xba, 0x85, 0x67, 0x7b, 0x3e, 0xe2, 0x43, 0x80, 0x34, 0xac, 0x4c, 0x32, 0x61, 0x4d, 0x6d,
0x6d, 0xad, 0xa9, 0xad, 0x8f, 0x92, 0xb0, 0xf5, 0x0b, 0xe2, 0xc2, 0xb2, 0x72, 0x4b, 0xd4, 0xc0, 0xfb, 0xf2, 0x91, 0x67, 0x5b, 0x5e, 0x54, 0xf4, 0x93, 0xb7, 0xf8, 0x15, 0xa1, 0x56, 0x1e, 0xa8,
0x3b, 0x66, 0x33, 0x7a, 0xc0, 0x35, 0xd3, 0x85, 0xe1, 0x81, 0xca, 0xd1, 0x6e, 0x45, 0xb2, 0xcd, 0x80, 0xa8, 0xe9, 0x3c, 0xd8, 0xf1, 0x5f, 0xcb, 0x79, 0xc8, 0xb6, 0x6f, 0x29, 0x15, 0x1d, 0x5d,
0xdb, 0x16, 0x39, 0x82, 0xfa, 0x1e, 0xed, 0x05, 0x7d, 0x2a, 0x62, 0x57, 0x2b, 0xc9, 0xc0, 0x55, 0x7d, 0x02, 0x8b, 0x07, 0x61, 0xf8, 0x6c, 0x32, 0xd6, 0x57, 0x40, 0x76, 0xd8, 0x6d, 0xdf, 0x8b,
0xd0, 0xab, 0xb3, 0x64, 0x80, 0xa6, 0xfe, 0x9e, 0xb8, 0xb3, 0x90, 0x7e, 0x6d, 0xeb, 0x23, 0x11, 0x4f, 0x3b, 0x99, 0x59, 0xd0, 0x6b, 0xd8, 0x54, 0x87, 0xb4, 0x8d, 0xa6, 0xb6, 0x3e, 0x4e, 0xc3,
0x15, 0x7b, 0x21, 0xf5, 0xb7, 0x0c, 0x1b, 0x1a, 0xfa, 0x3b, 0x15, 0x67, 0x34, 0xf4, 0x77, 0x26, 0xd6, 0x2f, 0x88, 0x07, 0xcb, 0xda, 0x2d, 0xd1, 0x03, 0xef, 0xd8, 0xcd, 0x98, 0x01, 0xd7, 0x5c,
0xce, 0x68, 0x2c, 0xb5, 0x0c, 0x5b, 0x92, 0x11, 0x2c, 0x67, 0x42, 0x93, 0xe4, 0x0d, 0x69, 0x81, 0x17, 0x96, 0x07, 0xaa, 0x46, 0xbb, 0x15, 0xab, 0x36, 0x6f, 0x39, 0xe4, 0x10, 0x1a, 0xbb, 0xac,
0xe7, 0x04, 0x34, 0x3b, 0xd7, 0xe6, 0x13, 0x98, 0xbd, 0x6d, 0x9a, 0xbd, 0x1d, 0xc3, 0xd2, 0x1e, 0x17, 0xf6, 0x99, 0x8c, 0x5d, 0xad, 0xa4, 0x03, 0xd7, 0x41, 0xaf, 0xce, 0xa2, 0x05, 0xda, 0xfa,
0xe5, 0x8b, 0xc5, 0x33, 0x41, 0x52, 0x0f, 0x3a, 0xf5, 0x3c, 0x93, 0xb4, 0x02, 0xc7, 0x3a, 0xd3, 0x7b, 0xec, 0x4d, 0x23, 0xf6, 0xf5, 0xad, 0x8f, 0x65, 0x54, 0xec, 0x85, 0xd2, 0xdf, 0x2a, 0x6c,
0x40, 0x63, 0x1a, 0x06, 0xf9, 0x32, 0xd4, 0xee, 0xd3, 0x58, 0xa6, 0x7e, 0x28, 0x17, 0x31, 0x95, 0x68, 0xe9, 0xef, 0x4c, 0x9c, 0xd1, 0xd2, 0xdf, 0xb9, 0x38, 0xa3, 0xb5, 0xd4, 0x2a, 0x6c, 0x49,
0x0b, 0xd2, 0xc9, 0xc9, 0x1c, 0x31, 0x79, 0x06, 0x5b, 0xdb, 0xa2, 0xfd, 0x01, 0xe5, 0xca, 0xa9, 0x86, 0xb0, 0x9c, 0x0b, 0x4d, 0x92, 0x37, 0x94, 0x05, 0x9e, 0x11, 0xd0, 0xec, 0x5c, 0x9b, 0x4d,
0xeb, 0xf5, 0x5f, 0x90, 0x9f, 0xc3, 0xc6, 0x55, 0xee, 0xd9, 0xba, 0x96, 0x31, 0xa0, 0x37, 0xde, 0x60, 0xf7, 0xb6, 0x69, 0xf7, 0x76, 0x04, 0x8b, 0xbb, 0x4c, 0x2c, 0x96, 0xc8, 0x33, 0xc9, 0x3c,
0x4c, 0xe1, 0x79, 0x2d, 0xfb, 0x41, 0x9f, 0x6a, 0xae, 0x8a, 0x0f, 0x35, 0x2d, 0x65, 0x52, 0x09, 0x17, 0x35, 0xb3, 0x58, 0xb2, 0x0a, 0x1c, 0xeb, 0x6c, 0x03, 0x8d, 0x49, 0x1e, 0xe4, 0x2b, 0x50,
0x50, 0x36, 0xfd, 0x53, 0x09, 0x50, 0x4e, 0x86, 0xa5, 0x7d, 0x13, 0xfb, 0xb1, 0xc9, 0xb5, 0xa4, 0xbf, 0xcf, 0x12, 0x95, 0x58, 0xa2, 0x5d, 0xc4, 0x4c, 0xa6, 0x49, 0xa7, 0x20, 0x2f, 0xc5, 0xe6,
0x1f, 0x9e, 0x55, 0x99, 0xf4, 0xb4, 0xf5, 0x91, 0x3b, 0x8e, 0x5f, 0x90, 0xa7, 0xf8, 0xb8, 0x53, 0x19, 0x6c, 0x6d, 0x8b, 0xf5, 0x07, 0x4c, 0x28, 0xa7, 0xae, 0xdf, 0x7f, 0x41, 0x7e, 0x16, 0x1b,
0x4f, 0x6f, 0x49, 0x7c, 0xde, 0x74, 0x26, 0x8c, 0x5a, 0x2c, 0xad, 0xca, 0xf4, 0x83, 0x79, 0x57, 0xd7, 0x99, 0x6d, 0xeb, 0x46, 0x3e, 0x82, 0xd9, 0x78, 0x33, 0x83, 0x17, 0xb5, 0x1c, 0x84, 0x7d,
0xe8, 0xd1, 0x7c, 0x06, 0xe0, 0x38, 0x0e, 0x26, 0x7b, 0x2e, 0x1d, 0x07, 0x7e, 0xa2, 0x6b, 0x93, 0x66, 0xb8, 0x2a, 0x01, 0xd4, 0x8d, 0x84, 0x4c, 0x2d, 0x40, 0xf9, 0xe4, 0x52, 0x2d, 0x40, 0x05,
0x14, 0x8e, 0x44, 0x7f, 0x69, 0x79, 0x1c, 0xe4, 0xa9, 0x76, 0x48, 0x30, 0xb2, 0x83, 0x24, 0x73, 0xf9, 0x9b, 0xf4, 0x06, 0xf6, 0x43, 0xc9, 0xb5, 0xb4, 0x1f, 0x91, 0xb3, 0x99, 0xf6, 0xb4, 0xf5,
0xcd, 0xcd, 0xf2, 0x50, 0x0b, 0x92, 0x93, 0xe9, 0x71, 0xdb, 0x22, 0x3b, 0x00, 0x49, 0x6c, 0x5a, 0xb1, 0x37, 0x4a, 0x5e, 0x90, 0xa7, 0xf8, 0x74, 0xd4, 0x4c, 0x9e, 0x49, 0x7d, 0xde, 0x6c, 0x9e,
0xb9, 0xfc, 0x99, 0xb0, 0xb7, 0x52, 0x7b, 0x39, 0x81, 0xec, 0x23, 0xa8, 0x26, 0xc1, 0xce, 0x8d, 0x8d, 0x5e, 0x2c, 0xa3, 0xca, 0xf6, 0x83, 0x45, 0x57, 0xe8, 0xd1, 0x7c, 0x16, 0xe0, 0x28, 0x09,
0x24, 0xed, 0xd5, 0x08, 0x8d, 0x2a, 0x0b, 0x9e, 0x09, 0x41, 0xda, 0x2d, 0x5c, 0x2a, 0x20, 0x15, 0xc7, 0xbb, 0x1e, 0x1b, 0x85, 0x41, 0xaa, 0x6b, 0xd3, 0x04, 0x91, 0x54, 0x7f, 0x19, 0x59, 0x22,
0xb6, 0x54, 0x18, 0x57, 0xf4, 0x60, 0x85, 0x0f, 0x50, 0xb9, 0x23, 0x98, 0x94, 0x20, 0x67, 0x92, 0xe4, 0xa9, 0x71, 0x48, 0xb0, 0x72, 0x8f, 0x14, 0x73, 0xcd, 0xcc, 0x21, 0xd1, 0x0b, 0x52, 0x90,
0x13, 0x06, 0x54, 0xd2, 0x9c, 0x1b, 0x45, 0x33, 0xa2, 0x0a, 0x8c, 0x5b, 0x79, 0x42, 0x04, 0x53, 0x47, 0x72, 0xcb, 0x21, 0xdb, 0x00, 0x69, 0x6c, 0x5a, 0xbb, 0xfc, 0xb9, 0xb0, 0xb7, 0x56, 0x7b,
0xcd, 0x63, 0x58, 0xce, 0x84, 0x79, 0x94, 0x48, 0xcf, 0x8b, 0xbc, 0x29, 0x91, 0x9e, 0x1b, 0x21, 0x05, 0x81, 0xec, 0x43, 0xa8, 0xa5, 0xc1, 0xce, 0x8d, 0x34, 0xa9, 0xd6, 0x0a, 0x8d, 0x6a, 0x0b,
0xb2, 0xd7, 0xb0, 0xcb, 0xa6, 0x0d, 0x78, 0x52, 0x39, 0xf7, 0xe2, 0xde, 0xf0, 0x7d, 0x6b, 0xf3, 0x9e, 0x0b, 0x41, 0xd2, 0x16, 0x2e, 0x15, 0x90, 0x2a, 0x5f, 0x2a, 0x8c, 0x2b, 0xfa, 0xb0, 0x22,
0xee, 0x8d, 0x0f, 0x7f, 0x6c, 0xe0, 0xc5, 0xc3, 0xe9, 0xc9, 0xad, 0x5e, 0x30, 0xde, 0x1a, 0xc9, 0x06, 0xa8, 0xdd, 0x11, 0x4c, 0x79, 0x50, 0x33, 0x29, 0x08, 0x03, 0x6a, 0x69, 0x2e, 0x8c, 0xa2,
0xa3, 0xbf, 0x48, 0x2d, 0xda, 0x1a, 0xf9, 0xfd, 0x2d, 0x6c, 0xf9, 0x64, 0x01, 0xff, 0x19, 0xf2, 0x59, 0x51, 0x05, 0xce, 0xad, 0x22, 0xdd, 0x82, 0xab, 0xe6, 0x11, 0x2c, 0xe7, 0xc2, 0x3c, 0x5a,
0x53, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x46, 0xeb, 0x55, 0xda, 0x4b, 0x52, 0x00, 0x00, 0xa4, 0x67, 0x45, 0xde, 0xb4, 0x48, 0xcf, 0x8c, 0x10, 0xd1, 0x35, 0xec, 0xb2, 0x49, 0x01, 0x4f,
0x2a, 0xe7, 0x7e, 0xd2, 0x3b, 0xfd, 0xc0, 0xd9, 0xbc, 0x7b, 0xfd, 0xa3, 0x4f, 0x0e, 0xfc, 0xe4,
0x74, 0x72, 0x7c, 0xb3, 0x17, 0x8e, 0xb6, 0x86, 0xea, 0xe8, 0x2f, 0x13, 0x97, 0xb6, 0x86, 0x41,
0x7f, 0x0b, 0x5b, 0x3e, 0x9e, 0xc7, 0xff, 0x3b, 0xf9, 0xe9, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff,
0x46, 0xcb, 0xbb, 0x4e, 0xa9, 0x52, 0x00, 0x00,
} }

@ -1699,7 +1699,7 @@ message Invoice {
int64 value = 5 [json_name = "value"]; int64 value = 5 [json_name = "value"];
/// Whether this invoice has been fulfilled /// Whether this invoice has been fulfilled
bool settled = 6 [json_name = "settled"]; bool settled = 6 [json_name = "settled", deprecated = true];
/// When this invoice was created /// When this invoice was created
int64 creation_date = 7 [json_name = "creation_date"]; int64 creation_date = 7 [json_name = "creation_date"];
@ -1777,7 +1777,18 @@ message Invoice {
here as well. here as well.
*/ */
int64 amt_paid_msat = 20 [json_name = "amt_paid_msat"]; int64 amt_paid_msat = 20 [json_name = "amt_paid_msat"];
enum InvoiceState {
OPEN = 0;
SETTLED = 1;
}
/**
The state the invoice is in.
*/
InvoiceState state = 21 [json_name = "state"];
} }
message AddInvoiceResponse { message AddInvoiceResponse {
bytes r_hash = 1 [json_name = "r_hash"]; bytes r_hash = 1 [json_name = "r_hash"];

@ -1127,6 +1127,14 @@
], ],
"default": "COOPERATIVE_CLOSE" "default": "COOPERATIVE_CLOSE"
}, },
"InvoiceInvoiceState": {
"type": "string",
"enum": [
"OPEN",
"SETTLED"
],
"default": "OPEN"
},
"PendingChannelsResponseClosedChannel": { "PendingChannelsResponseClosedChannel": {
"type": "object", "type": "object",
"properties": { "properties": {
@ -2125,6 +2133,10 @@
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe amount that was accepted for this invoice, in millisatoshis. This will\nONLY be set if this invoice has been settled. We provide this field as if\nthe invoice was created with a zero value, then we need to record what\namount was ultimately accepted. Additionally, it's possible that the sender\npaid MORE that was specified in the original invoice. So we'll record that\nhere as well." "description": "*\nThe amount that was accepted for this invoice, in millisatoshis. This will\nONLY be set if this invoice has been settled. We provide this field as if\nthe invoice was created with a zero value, then we need to record what\namount was ultimately accepted. Additionally, it's possible that the sender\npaid MORE that was specified in the original invoice. So we'll record that\nhere as well."
},
"state": {
"$ref": "#/definitions/InvoiceInvoiceState",
"description": "*\nThe state the invoice is in."
} }
} }
}, },

@ -3303,6 +3303,18 @@ func createRPCInvoice(invoice *channeldb.Invoice) (*lnrpc.Invoice, error) {
satAmt := invoice.Terms.Value.ToSatoshis() satAmt := invoice.Terms.Value.ToSatoshis()
satAmtPaid := invoice.AmtPaid.ToSatoshis() satAmtPaid := invoice.AmtPaid.ToSatoshis()
isSettled := invoice.Terms.State == channeldb.ContractSettled
var state lnrpc.Invoice_InvoiceState
switch invoice.Terms.State {
case channeldb.ContractOpen:
state = lnrpc.Invoice_OPEN
case channeldb.ContractSettled:
state = lnrpc.Invoice_SETTLED
default:
return nil, fmt.Errorf("unknown invoice state")
}
return &lnrpc.Invoice{ return &lnrpc.Invoice{
Memo: string(invoice.Memo[:]), Memo: string(invoice.Memo[:]),
Receipt: invoice.Receipt[:], Receipt: invoice.Receipt[:],
@ -3311,7 +3323,7 @@ func createRPCInvoice(invoice *channeldb.Invoice) (*lnrpc.Invoice, error) {
Value: int64(satAmt), Value: int64(satAmt),
CreationDate: invoice.CreationDate.Unix(), CreationDate: invoice.CreationDate.Unix(),
SettleDate: settleDate, SettleDate: settleDate,
Settled: invoice.Terms.Settled, Settled: isSettled,
PaymentRequest: paymentRequest, PaymentRequest: paymentRequest,
DescriptionHash: descHash, DescriptionHash: descHash,
Expiry: expiry, Expiry: expiry,
@ -3324,6 +3336,7 @@ func createRPCInvoice(invoice *channeldb.Invoice) (*lnrpc.Invoice, error) {
AmtPaidSat: int64(satAmtPaid), AmtPaidSat: int64(satAmtPaid),
AmtPaidMsat: int64(invoice.AmtPaid), AmtPaidMsat: int64(invoice.AmtPaid),
AmtPaid: int64(invoice.AmtPaid), AmtPaid: int64(invoice.AmtPaid),
State: state,
}, nil }, nil
} }