looprpc: expose server message to clients

pull/242/head
Joost Jager 4 years ago
parent 8b215edaa2
commit 1869ad670f
No known key found for this signature in database
GPG Key ID: A61B9D4C393C59C7

@ -382,6 +382,7 @@ func (s *Client) LoopOut(globalCtx context.Context,
return &LoopOutSwapInfo{ return &LoopOutSwapInfo{
SwapHash: swap.hash, SwapHash: swap.hash,
HtlcAddressP2WSH: swap.htlc.Address, HtlcAddressP2WSH: swap.htlc.Address,
ServerMessage: initResult.serverMessage,
}, nil }, nil
} }
@ -500,6 +501,7 @@ func (s *Client) LoopIn(globalCtx context.Context,
SwapHash: swap.hash, SwapHash: swap.hash,
HtlcAddressP2WSH: swap.htlcP2WSH.Address, HtlcAddressP2WSH: swap.htlcP2WSH.Address,
HtlcAddressNP2WSH: swap.htlcNP2WSH.Address, HtlcAddressNP2WSH: swap.htlcNP2WSH.Address,
ServerMessage: initResult.serverMessage,
} }
return swapInfo, nil return swapInfo, nil
} }

@ -157,6 +157,9 @@ func loopIn(ctx *cli.Context) error {
fmt.Printf("HTLC address (NP2WSH): %v\n", resp.HtlcAddressNp2Wsh) fmt.Printf("HTLC address (NP2WSH): %v\n", resp.HtlcAddressNp2Wsh)
} }
fmt.Printf("HTLC address (P2WSH): %v\n", resp.HtlcAddressP2Wsh) fmt.Printf("HTLC address (P2WSH): %v\n", resp.HtlcAddressP2Wsh)
if resp.ServerMessage != "" {
fmt.Printf("Server message: %v\n", resp.ServerMessage)
}
fmt.Println() fmt.Println()
fmt.Printf("Run `loop monitor` to monitor progress.\n") fmt.Printf("Run `loop monitor` to monitor progress.\n")

@ -180,8 +180,11 @@ func loopOut(ctx *cli.Context) error {
} }
fmt.Printf("Swap initiated\n") fmt.Printf("Swap initiated\n")
fmt.Printf("ID: %v\n", resp.Id) fmt.Printf("ID: %v\n", resp.Id)
fmt.Printf("HTLC address: %v\n", resp.HtlcAddress) fmt.Printf("HTLC address: %v\n", resp.HtlcAddress)
if resp.ServerMessage != "" {
fmt.Printf("Server message: %v\n", resp.ServerMessage)
}
fmt.Println() fmt.Println()
fmt.Printf("Run `loop monitor` to monitor progress.\n") fmt.Printf("Run `loop monitor` to monitor progress.\n")

@ -248,6 +248,10 @@ type LoopInSwapInfo struct { // nolint
// HtlcAddressNP2WSH contains the nested segwit swap htlc address, // HtlcAddressNP2WSH contains the nested segwit swap htlc address,
// where the loop-in funds may be paid. // where the loop-in funds may be paid.
HtlcAddressNP2WSH btcutil.Address HtlcAddressNP2WSH btcutil.Address
// ServerMessages is the human-readable message received from the loop
// server.
ServerMessage string
} }
// LoopOutSwapInfo contains essential information of a loop-out swap after the // LoopOutSwapInfo contains essential information of a loop-out swap after the
@ -259,6 +263,10 @@ type LoopOutSwapInfo struct { // nolint:golint
// HtlcAddressP2WSH contains the native segwit swap htlc address that // HtlcAddressP2WSH contains the native segwit swap htlc address that
// the server will publish to. // the server will publish to.
HtlcAddressP2WSH btcutil.Address HtlcAddressP2WSH btcutil.Address
// ServerMessages is the human-readable message received from the loop
// server.
ServerMessage string
} }
// SwapInfoKit contains common swap info fields. // SwapInfoKit contains common swap info fields.

@ -114,6 +114,7 @@ func (s *swapClientServer) LoopOut(ctx context.Context,
IdBytes: info.SwapHash[:], IdBytes: info.SwapHash[:],
HtlcAddress: info.HtlcAddressP2WSH.String(), HtlcAddress: info.HtlcAddressP2WSH.String(),
HtlcAddressP2Wsh: info.HtlcAddressP2WSH.String(), HtlcAddressP2Wsh: info.HtlcAddressP2WSH.String(),
ServerMessage: info.ServerMessage,
}, nil }, nil
} }
@ -456,6 +457,7 @@ func (s *swapClientServer) LoopIn(ctx context.Context,
Id: swapInfo.SwapHash.String(), Id: swapInfo.SwapHash.String(),
IdBytes: swapInfo.SwapHash[:], IdBytes: swapInfo.SwapHash[:],
HtlcAddressP2Wsh: swapInfo.HtlcAddressP2WSH.String(), HtlcAddressP2Wsh: swapInfo.HtlcAddressP2WSH.String(),
ServerMessage: swapInfo.ServerMessage,
} }
if req.ExternalHtlc { if req.ExternalHtlc {

@ -65,7 +65,8 @@ type loopInSwap struct {
// loopInInitResult contains information about a just-initiated loop in swap. // loopInInitResult contains information about a just-initiated loop in swap.
type loopInInitResult struct { type loopInInitResult struct {
swap *loopInSwap swap *loopInSwap
serverMessage string
} }
// newLoopInSwap initiates a new loop in swap. // newLoopInSwap initiates a new loop in swap.
@ -191,7 +192,8 @@ func newLoopInSwap(globalCtx context.Context, cfg *swapConfig,
} }
return &loopInInitResult{ return &loopInInitResult{
swap: swap, swap: swap,
serverMessage: swapResp.serverMessage,
}, nil }, nil
} }

@ -75,7 +75,8 @@ type executeConfig struct {
// loopOutInitResult contains information about a just-initiated loop out swap. // loopOutInitResult contains information about a just-initiated loop out swap.
type loopOutInitResult struct { type loopOutInitResult struct {
swap *loopOutSwap swap *loopOutSwap
serverMessage string
} }
// newLoopOutSwap initiates a new swap with the server and returns a // newLoopOutSwap initiates a new swap with the server and returns a
@ -186,7 +187,8 @@ func newLoopOutSwap(globalCtx context.Context, cfg *swapConfig,
} }
return &loopOutInitResult{ return &loopOutInitResult{
swap: swap, swap: swap,
serverMessage: swapResp.serverMessage,
}, nil }, nil
} }

@ -411,7 +411,9 @@ type SwapResponse struct {
//* //*
//The native segwit address of the on-chain htlc. //The native segwit address of the on-chain htlc.
//Used for both loop-in and loop-out. //Used for both loop-in and loop-out.
HtlcAddressP2Wsh string `protobuf:"bytes,5,opt,name=htlc_address_p2wsh,json=htlcAddressP2wsh,proto3" json:"htlc_address_p2wsh,omitempty"` HtlcAddressP2Wsh string `protobuf:"bytes,5,opt,name=htlc_address_p2wsh,json=htlcAddressP2wsh,proto3" json:"htlc_address_p2wsh,omitempty"`
// A human-readable message received from the loop server.
ServerMessage string `protobuf:"bytes,6,opt,name=server_message,json=serverMessage,proto3" json:"server_message,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -479,6 +481,13 @@ func (m *SwapResponse) GetHtlcAddressP2Wsh() string {
return "" return ""
} }
func (m *SwapResponse) GetServerMessage() string {
if m != nil {
return m.ServerMessage
}
return ""
}
type MonitorRequest struct { type MonitorRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1251,103 +1260,104 @@ func init() {
func init() { proto.RegisterFile("client.proto", fileDescriptor_014de31d7ac8c57c) } func init() { proto.RegisterFile("client.proto", fileDescriptor_014de31d7ac8c57c) }
var fileDescriptor_014de31d7ac8c57c = []byte{ var fileDescriptor_014de31d7ac8c57c = []byte{
// 1533 bytes of a gzipped FileDescriptorProto // 1549 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4d, 0x72, 0xdb, 0x38, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xcd, 0x72, 0xdb, 0xb6,
0x16, 0x0e, 0xf5, 0xaf, 0x27, 0x8a, 0xa2, 0xe0, 0xc4, 0x96, 0x35, 0x93, 0x8a, 0xc2, 0x99, 0xcc, 0x16, 0x0e, 0xf5, 0xaf, 0x23, 0x8a, 0xa2, 0xe0, 0xc4, 0x96, 0x75, 0x6f, 0x26, 0x0a, 0xef, 0x4d,
0x28, 0xae, 0x94, 0x35, 0x71, 0x56, 0x93, 0x9a, 0x9a, 0x2a, 0x47, 0x56, 0x62, 0xb9, 0xfc, 0xa3, 0xab, 0x78, 0x32, 0x56, 0xe3, 0xac, 0x9a, 0xe9, 0x74, 0xc6, 0x91, 0x95, 0x58, 0x1e, 0xff, 0xa8,
0xa1, 0xe4, 0x54, 0x25, 0x1b, 0x0e, 0x2c, 0xc2, 0x16, 0xab, 0x45, 0x82, 0x21, 0xa0, 0xd8, 0xae, 0x94, 0x9c, 0x99, 0x64, 0xc3, 0xc2, 0x22, 0x6c, 0x71, 0x2a, 0x12, 0x0c, 0x01, 0xc5, 0xf6, 0x64,
0x54, 0x36, 0x7d, 0x85, 0xbe, 0x41, 0xdf, 0xa0, 0xd7, 0xbd, 0xeb, 0x65, 0xef, 0xba, 0xfa, 0x00, 0xb2, 0xe9, 0x2b, 0xf4, 0x0d, 0xfa, 0x06, 0x5d, 0xf7, 0x0d, 0xba, 0xeb, 0xf4, 0x01, 0xba, 0xe9,
0xbd, 0xe9, 0x23, 0xf4, 0x01, 0xba, 0x00, 0x50, 0x14, 0x65, 0xcb, 0x59, 0x64, 0x27, 0x7e, 0xf8, 0xa6, 0xfb, 0x3e, 0x40, 0x07, 0x00, 0x45, 0x51, 0xfe, 0xc9, 0x22, 0x3b, 0xf1, 0xc3, 0x87, 0x0f,
0xf0, 0xe1, 0xe1, 0xbd, 0x87, 0x0f, 0x10, 0xe8, 0xe3, 0xa9, 0x47, 0x02, 0xbe, 0x1d, 0x46, 0x94, 0x07, 0xe7, 0x1c, 0x7c, 0x80, 0x40, 0x1f, 0x4f, 0x3d, 0x12, 0xf0, 0xcd, 0x30, 0xa2, 0x9c, 0xa2,
0x53, 0x54, 0x9c, 0x52, 0x1a, 0x46, 0xe1, 0xb8, 0xf9, 0xd7, 0x0b, 0x4a, 0x2f, 0xa6, 0xa4, 0x83, 0xe2, 0x94, 0xd2, 0x30, 0x0a, 0xc7, 0xcd, 0xff, 0x9e, 0x51, 0x7a, 0x36, 0x25, 0x1d, 0x1c, 0x7a,
0x43, 0xaf, 0x83, 0x83, 0x80, 0x72, 0xcc, 0x3d, 0x1a, 0x30, 0x45, 0xb3, 0x7e, 0xce, 0x82, 0x71, 0x1d, 0x1c, 0x04, 0x94, 0x63, 0xee, 0xd1, 0x80, 0x29, 0x9a, 0xf5, 0x5b, 0x16, 0x8c, 0x7d, 0x4a,
0x48, 0x69, 0x78, 0x32, 0xe3, 0x36, 0xf9, 0x30, 0x23, 0x8c, 0x23, 0x13, 0xb2, 0xd8, 0xe7, 0x0d, 0xc3, 0xa3, 0x19, 0xb7, 0xc9, 0xbb, 0x19, 0x61, 0x1c, 0x99, 0x90, 0xc5, 0x3e, 0x6f, 0x68, 0x2d,
0xad, 0xa5, 0xb5, 0xb3, 0xb6, 0xf8, 0x89, 0x10, 0xe4, 0x5c, 0xc2, 0x78, 0x23, 0xd3, 0xd2, 0xda, 0xad, 0x9d, 0xb5, 0xc5, 0x4f, 0x84, 0x20, 0xe7, 0x12, 0xc6, 0x1b, 0x99, 0x96, 0xd6, 0x2e, 0xdb,
0x65, 0x5b, 0xfe, 0x46, 0x1d, 0xb8, 0xef, 0xe3, 0x2b, 0x87, 0x5d, 0xe2, 0xd0, 0x89, 0xe8, 0x8c, 0xf2, 0x37, 0xea, 0xc0, 0x5d, 0x1f, 0x5f, 0x38, 0xec, 0x1c, 0x87, 0x4e, 0x44, 0x67, 0xdc, 0x0b,
0x7b, 0xc1, 0x85, 0x73, 0x4e, 0x48, 0x23, 0x2b, 0xa7, 0xd5, 0x7d, 0x7c, 0x35, 0xbc, 0xc4, 0xa1, 0xce, 0x9c, 0x53, 0x42, 0x1a, 0x59, 0x39, 0xad, 0xee, 0xe3, 0x8b, 0xe1, 0x39, 0x0e, 0x6d, 0x35,
0xad, 0x46, 0x5e, 0x13, 0x82, 0x5e, 0xc0, 0xba, 0x98, 0x10, 0x46, 0x24, 0xc4, 0xd7, 0x4b, 0x53, 0xf2, 0x92, 0x10, 0xf4, 0x0c, 0x56, 0xc5, 0x84, 0x30, 0x22, 0x21, 0xbe, 0x5c, 0x9a, 0x92, 0x93,
0x72, 0x72, 0xca, 0x9a, 0x8f, 0xaf, 0x06, 0x72, 0x30, 0x35, 0xa9, 0x05, 0x7a, 0xb2, 0x8a, 0xa0, 0x53, 0x56, 0x7c, 0x7c, 0x31, 0x90, 0x83, 0xa9, 0x49, 0x2d, 0xd0, 0x93, 0x55, 0x04, 0x35, 0x2f,
0xe6, 0x25, 0x15, 0x62, 0x75, 0xc1, 0xf8, 0x3b, 0x18, 0x29, 0x59, 0x11, 0x78, 0x41, 0x72, 0xf4, 0xa9, 0x10, 0xab, 0x0b, 0xc6, 0xff, 0xc1, 0x48, 0xc9, 0x8a, 0xc0, 0x0b, 0x92, 0xa3, 0x27, 0x72,
0x44, 0x6e, 0xd7, 0xe7, 0xc8, 0x82, 0xaa, 0x60, 0xf9, 0x5e, 0x40, 0x22, 0x29, 0x54, 0x94, 0xa4, 0xdb, 0x3e, 0x47, 0x16, 0x54, 0x05, 0xcb, 0xf7, 0x02, 0x12, 0x49, 0xa1, 0xa2, 0x24, 0x55, 0x7c,
0x8a, 0x8f, 0xaf, 0x8e, 0x04, 0x26, 0x94, 0x9e, 0x81, 0x29, 0x72, 0xe6, 0xd0, 0x19, 0x77, 0xc6, 0x7c, 0x71, 0x20, 0x30, 0xa1, 0xf4, 0x04, 0x4c, 0x91, 0x33, 0x87, 0xce, 0xb8, 0x33, 0x9e, 0xe0,
0x13, 0x1c, 0x04, 0x64, 0xda, 0x28, 0xb5, 0xb4, 0x76, 0xee, 0x55, 0xa6, 0xa1, 0xd9, 0xc6, 0x54, 0x20, 0x20, 0xd3, 0x46, 0xa9, 0xa5, 0xb5, 0x73, 0x2f, 0x32, 0x0d, 0xcd, 0x36, 0xa6, 0x2a, 0x4b,
0x65, 0xa9, 0xab, 0x46, 0xd0, 0x16, 0xd4, 0xe9, 0x8c, 0x5f, 0x50, 0xb1, 0x09, 0xc1, 0x76, 0x18, 0x5d, 0x35, 0x82, 0x36, 0xa0, 0x4e, 0x67, 0xfc, 0x8c, 0x8a, 0x4d, 0x08, 0xb6, 0xc3, 0x08, 0x6f,
0xe1, 0x8d, 0x4a, 0x2b, 0xdb, 0xce, 0xd9, 0xb5, 0xf9, 0x80, 0xe0, 0x0e, 0x09, 0x17, 0x5c, 0x76, 0x54, 0x5a, 0xd9, 0x76, 0xce, 0xae, 0xcd, 0x07, 0x04, 0x77, 0x48, 0xb8, 0xe0, 0xb2, 0x73, 0x42,
0x49, 0x48, 0xe8, 0x8c, 0x69, 0x70, 0xee, 0x70, 0x1c, 0x5d, 0x10, 0xde, 0x28, 0xb7, 0xb4, 0x76, 0x42, 0x67, 0x4c, 0x83, 0x53, 0x87, 0xe3, 0xe8, 0x8c, 0xf0, 0x46, 0xb9, 0xa5, 0xb5, 0xf3, 0x76,
0xde, 0xae, 0xc9, 0x81, 0x2e, 0x0d, 0xce, 0x47, 0x12, 0x46, 0x2f, 0x61, 0x53, 0xee, 0x36, 0x9c, 0x4d, 0x0e, 0x74, 0x69, 0x70, 0x3a, 0x92, 0x30, 0x7a, 0x0e, 0xeb, 0x72, 0xb7, 0xe1, 0xec, 0x64,
0x9d, 0x4d, 0xbd, 0xb1, 0xac, 0x95, 0xe3, 0x12, 0xec, 0x4e, 0xbd, 0x80, 0x34, 0x40, 0x84, 0x63, 0xea, 0x8d, 0x65, 0xad, 0x1c, 0x97, 0x60, 0x77, 0xea, 0x05, 0xa4, 0x01, 0x22, 0x1c, 0x7b, 0x4d,
0x6f, 0x08, 0xc2, 0x60, 0x31, 0xbe, 0x17, 0x0f, 0x5b, 0xbf, 0x68, 0x50, 0x15, 0xc5, 0xec, 0x07, 0x10, 0x06, 0x8b, 0xf1, 0x9d, 0x78, 0xd8, 0xfa, 0x5d, 0x83, 0xaa, 0x28, 0x66, 0x3f, 0xb8, 0xbd,
0x77, 0xd7, 0xf2, 0x66, 0x46, 0x33, 0xb7, 0x32, 0x7a, 0x2b, 0x57, 0xd9, 0xdb, 0xb9, 0xda, 0x84, 0x96, 0x57, 0x33, 0x9a, 0xb9, 0x96, 0xd1, 0x6b, 0xb9, 0xca, 0x5e, 0xcf, 0xd5, 0x3a, 0x94, 0xa6,
0xd2, 0x14, 0x33, 0xee, 0x4c, 0x68, 0x28, 0xcb, 0xa7, 0xdb, 0x45, 0xf1, 0xbd, 0x4f, 0x43, 0xf4, 0x98, 0x71, 0x67, 0x42, 0x43, 0x59, 0x3e, 0xdd, 0x2e, 0x8a, 0xef, 0x5d, 0x1a, 0xa2, 0xff, 0x41,
0x37, 0xa8, 0x92, 0x2b, 0x4e, 0xa2, 0x00, 0x4f, 0x9d, 0x09, 0x9f, 0x8e, 0x65, 0xcd, 0x4a, 0xb6, 0x95, 0x5c, 0x70, 0x12, 0x05, 0x78, 0xea, 0x4c, 0xf8, 0x74, 0x2c, 0x6b, 0x56, 0xb2, 0xf5, 0x39,
0x3e, 0x07, 0xf7, 0xf9, 0x74, 0x8c, 0xda, 0x60, 0x8a, 0xb1, 0xa5, 0x84, 0x14, 0x64, 0x42, 0x0c, 0xb8, 0xcb, 0xa7, 0x63, 0xd4, 0x06, 0x53, 0x8c, 0x2d, 0x25, 0xa4, 0x20, 0x13, 0x62, 0x08, 0x7c,
0x81, 0x2f, 0xf2, 0x61, 0xfd, 0xa4, 0x81, 0x2e, 0x3b, 0x89, 0xb0, 0x90, 0x06, 0x8c, 0x20, 0x04, 0x91, 0x0f, 0xeb, 0x6f, 0x0d, 0x74, 0xd9, 0x49, 0x84, 0x85, 0x34, 0x60, 0x04, 0x21, 0xc8, 0x78,
0x19, 0xcf, 0x95, 0x3b, 0x2a, 0xcb, 0xc2, 0x64, 0x3c, 0x57, 0x84, 0xe3, 0xb9, 0xce, 0xd9, 0x35, 0xae, 0xdc, 0x51, 0x59, 0x16, 0x26, 0xe3, 0xb9, 0x22, 0x1c, 0xcf, 0x75, 0x4e, 0x2e, 0x39, 0x61,
0x27, 0x4c, 0x46, 0xab, 0xdb, 0x45, 0xcf, 0x7d, 0x25, 0x3e, 0xd1, 0x13, 0xd0, 0xe5, 0x4a, 0xd8, 0x32, 0x5a, 0xdd, 0x2e, 0x7a, 0xee, 0x0b, 0xf1, 0x89, 0x1e, 0x81, 0x2e, 0x57, 0xc2, 0xae, 0x1b,
0x75, 0x23, 0xc2, 0x98, 0xea, 0x61, 0x39, 0xb1, 0x22, 0xf0, 0x5d, 0x05, 0xa3, 0x6d, 0x58, 0x4b, 0x11, 0xc6, 0x54, 0x0f, 0xcb, 0x89, 0x15, 0x81, 0x6f, 0x2b, 0x18, 0x6d, 0xc2, 0x4a, 0x9a, 0xe6,
0xd3, 0x9c, 0x20, 0xdc, 0xb9, 0x64, 0x13, 0xb9, 0xb7, 0xb2, 0x5d, 0x4f, 0x31, 0x8f, 0xe5, 0x00, 0x04, 0xe1, 0xd6, 0x39, 0x9b, 0xc8, 0xbd, 0x95, 0xed, 0x7a, 0x8a, 0x79, 0x28, 0x07, 0xd0, 0x13,
0x7a, 0x06, 0x68, 0x89, 0xaf, 0xe8, 0x79, 0x49, 0x37, 0x53, 0xf4, 0x81, 0xc0, 0x2d, 0x13, 0x8c, 0x40, 0x4b, 0x7c, 0x45, 0xcf, 0x4b, 0xba, 0x99, 0xa2, 0x0f, 0x24, 0xfb, 0x11, 0x18, 0x8c, 0x44,
0x23, 0x1a, 0x78, 0x9c, 0x46, 0x71, 0x61, 0xac, 0xdf, 0xb2, 0x00, 0x62, 0x5b, 0x43, 0x8e, 0xf9, 0xef, 0x49, 0xe4, 0xf8, 0x84, 0x31, 0x7c, 0x46, 0xe4, 0x66, 0xcb, 0x76, 0x55, 0xa1, 0x07, 0x0a,
0x8c, 0xad, 0x3c, 0x73, 0x62, 0x9b, 0x99, 0x3b, 0xb7, 0x59, 0xb9, 0xb9, 0xcd, 0x1c, 0xbf, 0x0e, 0xb4, 0x4c, 0x30, 0x0e, 0x68, 0xe0, 0x71, 0x1a, 0xc5, 0xf5, 0xb3, 0xfe, 0xcc, 0x02, 0x88, 0xdd,
0x55, 0xad, 0x8c, 0x9d, 0xfa, 0x76, 0x7c, 0xfa, 0xb7, 0xc5, 0x1a, 0xa3, 0xeb, 0x90, 0xd8, 0x72, 0x0f, 0x39, 0xe6, 0x33, 0x76, 0xe3, 0xd1, 0x14, 0xd9, 0xc8, 0xdc, 0x9a, 0x8d, 0xca, 0xd5, 0x6c,
0x18, 0xb5, 0x21, 0xcf, 0x38, 0xe6, 0xea, 0xcc, 0x19, 0x3b, 0x68, 0x89, 0x27, 0x62, 0x21, 0xb6, 0xe4, 0xf8, 0x65, 0xa8, 0x4a, 0x6a, 0x6c, 0xd5, 0x37, 0x63, 0x93, 0xd8, 0x14, 0x6b, 0x8c, 0x2e,
0x22, 0xa0, 0x7f, 0x42, 0xcd, 0x0b, 0x3c, 0xee, 0xa9, 0x0e, 0xe4, 0x9e, 0x3f, 0x3f, 0x7c, 0xc6, 0x43, 0x62, 0xcb, 0x61, 0xd4, 0x86, 0x3c, 0xe3, 0x98, 0xab, 0xa3, 0x69, 0x6c, 0xa1, 0x25, 0x9e,
0x02, 0x1e, 0x79, 0xbe, 0x90, 0x34, 0x65, 0x2b, 0xcc, 0x42, 0x17, 0x73, 0xa2, 0x98, 0xea, 0x08, 0x88, 0x85, 0xd8, 0x8a, 0x80, 0xbe, 0x84, 0x9a, 0x17, 0x78, 0xdc, 0x53, 0x8d, 0xca, 0x3d, 0x7f,
0x1a, 0x02, 0x3f, 0x95, 0xb0, 0x64, 0xde, 0x2c, 0x45, 0x71, 0x75, 0x29, 0x56, 0xa7, 0x56, 0x5f, 0x7e, 0x46, 0x8d, 0x05, 0x3c, 0xf2, 0x7c, 0x21, 0x69, 0xca, 0x8e, 0x99, 0x85, 0x2e, 0xe6, 0x44,
0x9d, 0xda, 0xbb, 0x0a, 0x57, 0xbd, 0xab, 0x70, 0x8f, 0xa0, 0x32, 0xa6, 0x8c, 0x3b, 0x8c, 0x44, 0x31, 0xd5, 0x49, 0x35, 0x04, 0x7e, 0x2c, 0x61, 0xc9, 0xbc, 0x5a, 0xb1, 0xe2, 0xcd, 0x15, 0xbb,
0x1f, 0x49, 0x24, 0x0f, 0x78, 0xd6, 0x06, 0x01, 0x0d, 0x25, 0x82, 0x1e, 0x83, 0x2e, 0x09, 0x34, 0xb9, 0x02, 0xfa, 0x2d, 0x15, 0xb8, 0xa5, 0xbe, 0xd5, 0xdb, 0xea, 0xfb, 0x00, 0x2a, 0x63, 0xca,
0x18, 0x4f, 0xb0, 0x17, 0xc8, 0x73, 0x9a, 0xb5, 0xe5, 0xa4, 0x13, 0x05, 0x89, 0x16, 0x57, 0x94, 0xb8, 0xa3, 0x0a, 0x24, 0x7d, 0x20, 0x6b, 0x83, 0x80, 0x86, 0x12, 0x41, 0x0f, 0x41, 0x97, 0x04,
0xf3, 0x73, 0xc5, 0x01, 0x65, 0x39, 0x92, 0x13, 0x63, 0x16, 0x02, 0xf3, 0xd0, 0x63, 0x5c, 0x24, 0x1a, 0x8c, 0x27, 0xd8, 0x0b, 0xe4, 0x71, 0xce, 0xda, 0x72, 0xd2, 0x91, 0x82, 0xc4, 0x49, 0x50,
0x96, 0xcd, 0xab, 0xfe, 0x5f, 0xa8, 0xa7, 0xb0, 0xb8, 0xa1, 0x9f, 0x42, 0x5e, 0x9c, 0x46, 0xd6, 0x94, 0xd3, 0x53, 0xc5, 0x01, 0xe5, 0x4c, 0x92, 0x13, 0x63, 0x16, 0x02, 0x73, 0xdf, 0x63, 0x5c,
0xd0, 0x5a, 0xd9, 0x76, 0x65, 0x67, 0xed, 0x56, 0x4d, 0x66, 0xcc, 0x56, 0x0c, 0xeb, 0x31, 0xd4, 0x24, 0x96, 0xcd, 0xab, 0xfe, 0x2d, 0xd4, 0x53, 0x58, 0xdc, 0xf7, 0x8f, 0x21, 0x2f, 0x0e, 0x2d,
0x04, 0xd8, 0x0f, 0xce, 0xe9, 0xfc, 0x84, 0x1b, 0xc9, 0x71, 0xd0, 0x45, 0x8f, 0x58, 0x06, 0xe8, 0x6b, 0x68, 0xad, 0x6c, 0xbb, 0xb2, 0xb5, 0x72, 0xad, 0x26, 0x33, 0x66, 0x2b, 0x86, 0xf5, 0x10,
0x23, 0x12, 0xf9, 0xc9, 0x92, 0x9f, 0xa1, 0x1a, 0x7f, 0xc7, 0xcb, 0xfd, 0x03, 0x6a, 0xbe, 0x17, 0x6a, 0x02, 0xec, 0x07, 0xa7, 0x74, 0x6e, 0x04, 0x46, 0x72, 0x6a, 0x74, 0xd1, 0x23, 0x96, 0x01,
0x28, 0x03, 0xc0, 0x3e, 0x9d, 0x05, 0x3c, 0x2e, 0x6c, 0xd5, 0xf7, 0x02, 0xa1, 0xbe, 0x2b, 0x41, 0xfa, 0x88, 0x44, 0x7e, 0xb2, 0xe4, 0x47, 0xa8, 0xc6, 0xdf, 0xf1, 0x72, 0x5f, 0x40, 0xcd, 0xf7,
0xc9, 0x9b, 0x1b, 0x45, 0xcc, 0x2b, 0xc4, 0x3c, 0xe5, 0x15, 0x8a, 0x77, 0x90, 0x2b, 0x69, 0x66, 0x02, 0xe5, 0x13, 0xd8, 0xa7, 0xb3, 0x80, 0xc7, 0x85, 0xad, 0xfa, 0x5e, 0x20, 0xd4, 0xb7, 0x25,
0xe6, 0x20, 0x57, 0xca, 0x98, 0xd9, 0x83, 0x5c, 0x29, 0x6b, 0xe6, 0x0e, 0x72, 0xa5, 0x9c, 0x99, 0x28, 0x79, 0x73, 0x3f, 0x89, 0x79, 0x85, 0x98, 0xa7, 0x2c, 0x45, 0xf1, 0xf6, 0x72, 0x25, 0xcd,
0x3f, 0xc8, 0x95, 0x8a, 0x66, 0xc9, 0xfa, 0x5e, 0x03, 0xfd, 0x7f, 0x33, 0xca, 0xc9, 0xdd, 0x8e, 0xcc, 0xec, 0xe5, 0x4a, 0x19, 0x33, 0xbb, 0x97, 0x2b, 0x65, 0xcd, 0xdc, 0x5e, 0xae, 0x94, 0x33,
0x24, 0x2b, 0xb2, 0xb0, 0x81, 0x8c, 0xb4, 0x01, 0x18, 0x2f, 0x2c, 0xf1, 0x96, 0xa3, 0x64, 0x57, 0xf3, 0x7b, 0xb9, 0x52, 0xd1, 0x2c, 0x59, 0x3f, 0x6b, 0xa0, 0x7f, 0x37, 0xa3, 0x9c, 0xdc, 0x6e,
0x38, 0xca, 0x17, 0x7d, 0x33, 0xf7, 0x65, 0xdf, 0xfc, 0x41, 0x83, 0x6a, 0x1c, 0x64, 0x9c, 0xa4, 0x5c, 0xb2, 0x22, 0x0b, 0xb7, 0xc8, 0x48, 0xb7, 0x80, 0xf1, 0xc2, 0x39, 0xaf, 0x19, 0x4f, 0xf6,
0x4d, 0x28, 0x25, 0x0e, 0xa9, 0x42, 0x2d, 0xb2, 0xd8, 0x1e, 0x1f, 0x02, 0xa4, 0x2e, 0x1b, 0x65, 0x06, 0xe3, 0xf9, 0xa4, 0xbd, 0xe6, 0x3e, 0x6d, 0xaf, 0xbf, 0x68, 0x50, 0x8d, 0x83, 0x8c, 0x93,
0x9f, 0xe5, 0x30, 0xb9, 0x69, 0xfe, 0x02, 0xe5, 0x9b, 0xce, 0x59, 0xf2, 0xe7, 0xb6, 0x29, 0x2f, 0xb4, 0x0e, 0xa5, 0xc4, 0x48, 0x55, 0xa8, 0x45, 0x16, 0xbb, 0xe8, 0x7d, 0x80, 0xd4, 0x9d, 0xa4,
0x02, 0x11, 0x24, 0xbe, 0xf6, 0x49, 0xc0, 0x1d, 0x79, 0xab, 0x2a, 0xff, 0xac, 0xc9, 0xe0, 0x14, 0x5c, 0xb6, 0x1c, 0x26, 0x17, 0xd2, 0x7f, 0xa0, 0x7c, 0xd5, 0x60, 0x4b, 0xfe, 0xdc, 0x5d, 0xe5,
0xbe, 0x27, 0x12, 0xf5, 0x10, 0x60, 0x3c, 0xe5, 0x1f, 0x1d, 0x97, 0x4c, 0x39, 0x96, 0x25, 0xca, 0x7d, 0x21, 0x82, 0xc4, 0x97, 0x3e, 0x09, 0xb8, 0x23, 0x2f, 0x5f, 0x65, 0xb3, 0x35, 0x19, 0x9c,
0xdb, 0x65, 0x81, 0xec, 0x09, 0xc0, 0xaa, 0x41, 0x75, 0x44, 0xbf, 0x21, 0x41, 0x52, 0xe8, 0xff, 0xc2, 0x77, 0x44, 0xa2, 0xee, 0x03, 0x8c, 0xa7, 0xfc, 0xbd, 0xe3, 0x92, 0x29, 0xc7, 0xb2, 0x44,
0x80, 0x31, 0x07, 0xe2, 0x4d, 0x6c, 0x41, 0x81, 0x4b, 0x24, 0xee, 0xac, 0xc5, 0x69, 0x3f, 0x64, 0x79, 0xbb, 0x2c, 0x90, 0x1d, 0x01, 0x58, 0x35, 0xa8, 0x8e, 0xe8, 0x0f, 0x24, 0x48, 0x0a, 0xfd,
0x98, 0x4b, 0xb2, 0x1d, 0x33, 0xac, 0x1f, 0x33, 0x50, 0x4e, 0x50, 0x91, 0xf1, 0x33, 0xcc, 0x88, 0x0d, 0x18, 0x73, 0x20, 0xde, 0xc4, 0x06, 0x14, 0xb8, 0x44, 0xe2, 0xce, 0x5a, 0x9c, 0xf6, 0x7d,
0xe3, 0xe3, 0x31, 0x8e, 0x28, 0x0d, 0xe2, 0xfe, 0xd2, 0x05, 0x78, 0x14, 0x63, 0xe2, 0xa0, 0xcc, 0x86, 0xb9, 0x24, 0xdb, 0x31, 0xc3, 0xfa, 0x35, 0x03, 0xe5, 0x04, 0x15, 0x19, 0x3f, 0xc1, 0x8c,
0xf7, 0x31, 0xc1, 0x6c, 0x22, 0x53, 0xa1, 0xdb, 0x95, 0x18, 0xdb, 0xc7, 0x6c, 0x82, 0x9e, 0x82, 0x38, 0x3e, 0x1e, 0xe3, 0x88, 0xd2, 0x20, 0xee, 0x2f, 0x5d, 0x80, 0x07, 0x31, 0x26, 0x0e, 0xca,
0x39, 0xa7, 0x84, 0x11, 0xf1, 0x7c, 0x7c, 0x41, 0x62, 0x7f, 0xae, 0xc5, 0xf8, 0x20, 0x86, 0x85, 0x7c, 0x1f, 0x13, 0xcc, 0x26, 0x32, 0x15, 0xba, 0x5d, 0x89, 0xb1, 0x5d, 0xcc, 0x26, 0xe8, 0x31,
0x8d, 0xa8, 0x2e, 0x73, 0x42, 0xec, 0xb9, 0x8e, 0xcf, 0x30, 0x8f, 0x1f, 0x06, 0x86, 0xc2, 0x07, 0x98, 0x73, 0x4a, 0x18, 0x11, 0xcf, 0x17, 0x06, 0xa9, 0x6c, 0xbc, 0x16, 0xe3, 0x83, 0x18, 0x16,
0xd8, 0x73, 0x8f, 0x18, 0xe6, 0xe8, 0x39, 0x3c, 0x48, 0xbd, 0x1e, 0x52, 0x74, 0xd5, 0xc6, 0x28, 0x36, 0xa2, 0xba, 0xcc, 0x09, 0xb1, 0xe7, 0x3a, 0x3e, 0xc3, 0x3c, 0x7e, 0x3f, 0x18, 0x0a, 0x1f,
0x4a, 0x9e, 0x0f, 0xc9, 0x94, 0xc7, 0xa0, 0x0b, 0x5f, 0x72, 0xc6, 0x11, 0xc1, 0x9c, 0xb8, 0x71, 0x60, 0xcf, 0x3d, 0x60, 0x98, 0xa3, 0xa7, 0x70, 0x2f, 0xf5, 0xc8, 0x48, 0xd1, 0x55, 0x1b, 0xa3,
0x23, 0x57, 0x04, 0xd6, 0x55, 0x10, 0x6a, 0x40, 0x91, 0x5c, 0x85, 0x5e, 0x44, 0x5c, 0xe9, 0x4b, 0x28, 0x79, 0x65, 0x24, 0x53, 0x1e, 0x82, 0x2e, 0x7c, 0xc9, 0x19, 0x47, 0x04, 0x73, 0xe2, 0xc6,
0x25, 0x7b, 0xfe, 0x29, 0x26, 0x33, 0x4e, 0x23, 0x7c, 0x41, 0x9c, 0x00, 0xfb, 0x44, 0x5a, 0x46, 0x8d, 0x5c, 0x11, 0x58, 0x57, 0x41, 0xa8, 0x01, 0x45, 0x72, 0x11, 0x7a, 0x11, 0x71, 0xa5, 0x2f,
0xd9, 0xae, 0xc4, 0xd8, 0x31, 0xf6, 0xc9, 0xd6, 0x13, 0x28, 0xcd, 0x8d, 0x16, 0xe9, 0x50, 0x3a, 0x95, 0xec, 0xf9, 0xa7, 0x98, 0xcc, 0x38, 0x8d, 0xf0, 0x19, 0x71, 0x02, 0xec, 0x13, 0x69, 0x19,
0x3c, 0x39, 0x19, 0x38, 0x27, 0xa7, 0x23, 0xf3, 0x1e, 0xaa, 0x40, 0x51, 0x7e, 0xf5, 0x8f, 0x4d, 0x65, 0xbb, 0x12, 0x63, 0x87, 0xd8, 0x27, 0x1b, 0x8f, 0xa0, 0x34, 0x37, 0x5a, 0xa4, 0x43, 0x69,
0x6d, 0x8b, 0x41, 0x39, 0xf1, 0x59, 0x54, 0x85, 0x72, 0xff, 0xb8, 0x3f, 0xea, 0xef, 0x8e, 0x7a, 0xff, 0xe8, 0x68, 0xe0, 0x1c, 0x1d, 0x8f, 0xcc, 0x3b, 0xa8, 0x02, 0x45, 0xf9, 0xd5, 0x3f, 0x34,
0x7b, 0xe6, 0x3d, 0xf4, 0x00, 0xea, 0x03, 0xbb, 0xd7, 0x3f, 0xda, 0x7d, 0xd3, 0x73, 0xec, 0xde, 0xb5, 0x0d, 0x06, 0xe5, 0xc4, 0x67, 0x51, 0x15, 0xca, 0xfd, 0xc3, 0xfe, 0xa8, 0xbf, 0x3d, 0xea,
0xdb, 0xde, 0xee, 0x61, 0x6f, 0xcf, 0xd4, 0x10, 0x02, 0x63, 0x7f, 0x74, 0xd8, 0x75, 0x06, 0xa7, 0xed, 0x98, 0x77, 0xd0, 0x3d, 0xa8, 0x0f, 0xec, 0x5e, 0xff, 0x60, 0xfb, 0x55, 0xcf, 0xb1, 0x7b,
0xaf, 0x0e, 0xfb, 0xc3, 0xfd, 0xde, 0x9e, 0x99, 0x11, 0x9a, 0xc3, 0xd3, 0x6e, 0xb7, 0x37, 0x1c, 0xaf, 0x7b, 0xdb, 0xfb, 0xbd, 0x1d, 0x53, 0x43, 0x08, 0x8c, 0xdd, 0xd1, 0x7e, 0xd7, 0x19, 0x1c,
0x9a, 0x59, 0x04, 0x50, 0x78, 0xbd, 0xdb, 0x17, 0xe4, 0x1c, 0x5a, 0x83, 0x5a, 0xff, 0xf8, 0xed, 0xbf, 0xd8, 0xef, 0x0f, 0x77, 0x7b, 0x3b, 0x66, 0x46, 0x68, 0x0e, 0x8f, 0xbb, 0xdd, 0xde, 0x70,
0x49, 0xbf, 0xdb, 0x73, 0x86, 0xbd, 0xd1, 0x48, 0x80, 0xf9, 0x9d, 0x3f, 0x0a, 0xea, 0xa6, 0xe9, 0x68, 0x66, 0x11, 0x40, 0xe1, 0xe5, 0x76, 0x5f, 0x90, 0x73, 0x68, 0x05, 0x6a, 0xfd, 0xc3, 0xd7,
0xca, 0xd7, 0x21, 0xb2, 0xa1, 0x18, 0xbf, 0xf7, 0xd0, 0xc6, 0xa2, 0x1f, 0x96, 0x5e, 0x80, 0xcd, 0x47, 0xfd, 0x6e, 0xcf, 0x19, 0xf6, 0x46, 0x23, 0x01, 0xe6, 0xb7, 0xfe, 0x29, 0xa8, 0x9b, 0xa6,
0x07, 0x4b, 0x16, 0x34, 0xef, 0x27, 0x6b, 0xe3, 0xdb, 0x5f, 0x7f, 0xff, 0x2e, 0x53, 0xb7, 0xf4, 0x2b, 0x1f, 0x91, 0xc8, 0x86, 0x62, 0xfc, 0x2c, 0x44, 0x6b, 0x8b, 0x7e, 0x58, 0x7a, 0x28, 0x36,
0xce, 0xc7, 0xe7, 0x1d, 0xc1, 0xe8, 0xd0, 0x19, 0x7f, 0xa9, 0x6d, 0xa1, 0x13, 0x28, 0xa8, 0x67, 0xef, 0x2d, 0x59, 0xd0, 0xbc, 0x9f, 0xac, 0xb5, 0x1f, 0xff, 0xf8, 0xeb, 0xa7, 0x4c, 0xdd, 0xd2,
0x07, 0x5a, 0x5f, 0x92, 0x4c, 0xde, 0x21, 0x77, 0x29, 0xae, 0x4b, 0x45, 0xd3, 0xaa, 0x24, 0x8a, 0x3b, 0xef, 0x9f, 0x76, 0x04, 0xa3, 0x43, 0x67, 0xfc, 0xb9, 0xb6, 0x81, 0x8e, 0xa0, 0xa0, 0x5e,
0x5e, 0x20, 0x04, 0xff, 0x0d, 0xc5, 0xf8, 0xbe, 0x4c, 0x05, 0xb9, 0x7c, 0x83, 0x36, 0x57, 0xf9, 0x27, 0x68, 0x75, 0x49, 0x32, 0x79, 0xae, 0xdc, 0xa6, 0xb8, 0x2a, 0x15, 0x4d, 0xab, 0x92, 0x28,
0xe4, 0xbf, 0x34, 0xf4, 0x1e, 0xca, 0x89, 0xc5, 0xa2, 0xcd, 0x45, 0x38, 0x37, 0xac, 0xb8, 0xd9, 0x7a, 0x81, 0x10, 0xfc, 0x1a, 0x8a, 0xf1, 0x7d, 0x99, 0x0a, 0x72, 0xf9, 0x06, 0x6d, 0xde, 0xe4,
0x5c, 0x35, 0xb4, 0x1c, 0x16, 0x32, 0x92, 0xb0, 0xa4, 0xfd, 0xa2, 0x53, 0x55, 0x66, 0x61, 0xbf, 0x93, 0x5f, 0x69, 0xe8, 0x2d, 0x94, 0x13, 0x8b, 0x45, 0xeb, 0x8b, 0x70, 0xae, 0x58, 0x71, 0xb3,
0xa8, 0xb1, 0xb4, 0x7c, 0xca, 0x91, 0x57, 0x06, 0x66, 0x35, 0xa5, 0xe4, 0x7d, 0x84, 0x96, 0x24, 0x79, 0xd3, 0xd0, 0x72, 0x58, 0xc8, 0x48, 0xc2, 0x92, 0xf6, 0x8b, 0x8e, 0x55, 0x99, 0x85, 0xfd,
0x3b, 0x9f, 0x3c, 0xf7, 0x33, 0x7a, 0x07, 0x7a, 0x5c, 0x00, 0xe9, 0xd4, 0x68, 0x91, 0xac, 0xb4, 0xa2, 0xc6, 0xd2, 0xf2, 0x29, 0x47, 0xbe, 0x31, 0x30, 0xab, 0x29, 0x25, 0xef, 0x22, 0xb4, 0x24,
0x93, 0x37, 0xd7, 0x6f, 0xc2, 0x71, 0xb4, 0xb7, 0xa5, 0xe9, 0x8c, 0x77, 0xb8, 0x94, 0x72, 0x12, 0xd9, 0xf9, 0xe0, 0xb9, 0x1f, 0xd1, 0x1b, 0xd0, 0xe3, 0x02, 0x48, 0xa7, 0x46, 0x8b, 0x64, 0xa5,
0x69, 0xe9, 0x6f, 0x29, 0xe9, 0xb4, 0x29, 0xa7, 0xa4, 0x97, 0x6c, 0xd0, 0x6a, 0x49, 0xe9, 0x26, 0x9d, 0xbc, 0xb9, 0x7a, 0x15, 0x8e, 0xa3, 0xbd, 0x2e, 0x4d, 0x67, 0xbc, 0xc3, 0xa5, 0x94, 0x93,
0x6a, 0x2c, 0x49, 0x7f, 0x10, 0x9c, 0xce, 0x27, 0xec, 0xf3, 0xcf, 0xe8, 0x3d, 0x18, 0x6f, 0x08, 0x48, 0x4b, 0x7f, 0x4b, 0x49, 0xa7, 0x4d, 0x39, 0x25, 0xbd, 0x64, 0x83, 0x56, 0x4b, 0x4a, 0x37,
0x57, 0xc5, 0xfe, 0xaa, 0xe8, 0x37, 0xe5, 0x12, 0x6b, 0xa8, 0x9e, 0x6a, 0x81, 0x38, 0xf8, 0xff, 0x51, 0x63, 0x49, 0xfa, 0x9d, 0xe0, 0x74, 0x3e, 0x60, 0x9f, 0x7f, 0x44, 0x6f, 0xc1, 0x78, 0x45,
0xa7, 0xb4, 0xbf, 0x2a, 0xfc, 0x47, 0x52, 0x7b, 0x13, 0x6d, 0xa4, 0xb5, 0xd3, 0xd1, 0xbf, 0x83, 0xb8, 0x2a, 0xf6, 0x67, 0x45, 0xbf, 0x2e, 0x97, 0x58, 0x41, 0xf5, 0x54, 0x0b, 0xc4, 0xc1, 0x7f,
0xaa, 0x58, 0x61, 0xee, 0x7b, 0x2c, 0xd5, 0xbf, 0x4b, 0xe6, 0xda, 0xdc, 0xb8, 0x85, 0x2f, 0x9f, 0x9f, 0xd2, 0xfe, 0xac, 0xf0, 0x1f, 0x48, 0xed, 0x75, 0xb4, 0x96, 0xd6, 0x4e, 0x47, 0xff, 0x06,
0x09, 0x54, 0x93, 0x4b, 0x30, 0xcc, 0x3b, 0xca, 0x50, 0xcf, 0x0a, 0xf2, 0xff, 0xd5, 0x8b, 0x3f, 0xaa, 0x62, 0x85, 0xb9, 0xef, 0xb1, 0x54, 0xff, 0x2e, 0x99, 0x6b, 0x73, 0xed, 0x1a, 0xbe, 0x7c,
0x03, 0x00, 0x00, 0xff, 0xff, 0x8e, 0x9f, 0xce, 0xa4, 0x96, 0x0d, 0x00, 0x00, 0x26, 0x50, 0x4d, 0x2e, 0xc1, 0x30, 0xef, 0x28, 0x43, 0x3d, 0x29, 0xc8, 0xbf, 0x61, 0xcf, 0xfe,
0x0d, 0x00, 0x00, 0xff, 0xff, 0xba, 0x8f, 0xd4, 0xd8, 0xbd, 0x0d, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.

@ -272,6 +272,9 @@ message SwapResponse {
Used for both loop-in and loop-out. Used for both loop-in and loop-out.
*/ */
string htlc_address_p2wsh = 5; string htlc_address_p2wsh = 5;
// A human-readable message received from the loop server.
string server_message = 6;
} }
message MonitorRequest { message MonitorRequest {

@ -524,6 +524,10 @@
"htlc_address_p2wsh": { "htlc_address_p2wsh": {
"type": "string", "type": "string",
"description": "*\nThe native segwit address of the on-chain htlc.\nUsed for both loop-in and loop-out." "description": "*\nThe native segwit address of the on-chain htlc.\nUsed for both loop-in and loop-out."
},
"server_message": {
"type": "string",
"description": "A human-readable message received from the loop server."
} }
} }
}, },

Loading…
Cancel
Save