lnrpc: now able to set confirmation target or fee to relevant RPC's

In this commit, we modify the OpenChannel, CloseChannel, SendCoins, and
SendMany RPC’s to be able to allow users to manually specify their
fees. Users can either specify a target number of confirmations, or a
target value for manual sat/byte.
This commit is contained in:
Olaoluwa Osuntokun 2017-11-22 23:36:27 -06:00
parent 6ef2770e57
commit 9b1f21e283
No known key found for this signature in database
GPG Key ID: 964EA263DD637C21
3 changed files with 446 additions and 329 deletions

View File

@ -457,6 +457,10 @@ func (m *LightningAddress) GetHost() string {
type SendManyRequest struct {
// / The map from addresses to amounts
AddrToAmount map[string]int64 `protobuf:"bytes,1,rep,name=AddrToAmount" json:"AddrToAmount,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
// / The target number of blocks that this transaction should be confirmed by.
TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf" json:"target_conf,omitempty"`
// / A manual fee rate set in sat/byte that should be used when crafting the transaction.
SatPerByte int64 `protobuf:"varint,5,opt,name=sat_per_byte,json=satPerByte" json:"sat_per_byte,omitempty"`
}
func (m *SendManyRequest) Reset() { *m = SendManyRequest{} }
@ -471,6 +475,20 @@ func (m *SendManyRequest) GetAddrToAmount() map[string]int64 {
return nil
}
func (m *SendManyRequest) GetTargetConf() int32 {
if m != nil {
return m.TargetConf
}
return 0
}
func (m *SendManyRequest) GetSatPerByte() int64 {
if m != nil {
return m.SatPerByte
}
return 0
}
type SendManyResponse struct {
// / The id of the transaction
Txid string `protobuf:"bytes,1,opt,name=txid" json:"txid,omitempty"`
@ -493,6 +511,10 @@ type SendCoinsRequest struct {
Addr string `protobuf:"bytes,1,opt,name=addr" json:"addr,omitempty"`
// / The amount in satoshis to send
Amount int64 `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
// / The target number of blocks that this transaction should be confirmed by.
TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf" json:"target_conf,omitempty"`
// / A manual fee rate set in sat/byte that should be used when crafting the transaction.
SatPerByte int64 `protobuf:"varint,5,opt,name=sat_per_byte,json=satPerByte" json:"sat_per_byte,omitempty"`
}
func (m *SendCoinsRequest) Reset() { *m = SendCoinsRequest{} }
@ -514,6 +536,20 @@ func (m *SendCoinsRequest) GetAmount() int64 {
return 0
}
func (m *SendCoinsRequest) GetTargetConf() int32 {
if m != nil {
return m.TargetConf
}
return 0
}
func (m *SendCoinsRequest) GetSatPerByte() int64 {
if m != nil {
return m.SatPerByte
}
return 0
}
type SendCoinsResponse struct {
// / The transaction ID of the transaction
Txid string `protobuf:"bytes,1,opt,name=txid" json:"txid,omitempty"`
@ -1259,6 +1295,10 @@ type CloseChannelRequest struct {
ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint" json:"channel_point,omitempty"`
// / If true, then the channel will be closed forcibly. This means the current commitment transaction will be signed and broadcast.
Force bool `protobuf:"varint,2,opt,name=force" json:"force,omitempty"`
// / The target number of blocks that the closure transaction should be confirmed by.
TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf" json:"target_conf,omitempty"`
// / A manual fee rate set in sat/byte that should be used when crafting the closure transaction.
SatPerByte int64 `protobuf:"varint,5,opt,name=sat_per_byte,json=satPerByte" json:"sat_per_byte,omitempty"`
}
func (m *CloseChannelRequest) Reset() { *m = CloseChannelRequest{} }
@ -1280,6 +1320,20 @@ func (m *CloseChannelRequest) GetForce() bool {
return false
}
func (m *CloseChannelRequest) GetTargetConf() int32 {
if m != nil {
return m.TargetConf
}
return 0
}
func (m *CloseChannelRequest) GetSatPerByte() int64 {
if m != nil {
return m.SatPerByte
}
return 0
}
type CloseStatusUpdate struct {
// Types that are valid to be assigned to Update:
// *CloseStatusUpdate_ClosePending
@ -1467,6 +1521,10 @@ type OpenChannelRequest struct {
LocalFundingAmount int64 `protobuf:"varint,4,opt,name=local_funding_amount" json:"local_funding_amount,omitempty"`
// / The number of satoshis to push to the remote side as part of the initial commitment state
PushSat int64 `protobuf:"varint,5,opt,name=push_sat" json:"push_sat,omitempty"`
// / The target number of blocks that the closure transaction should be confirmed by.
TargetConf int32 `protobuf:"varint,6,opt,name=target_conf,json=targetConf" json:"target_conf,omitempty"`
// / A manual fee rate set in sat/byte that should be used when crafting the closure transaction.
SatPerByte int64 `protobuf:"varint,7,opt,name=sat_per_byte,json=satPerByte" json:"sat_per_byte,omitempty"`
}
func (m *OpenChannelRequest) Reset() { *m = OpenChannelRequest{} }
@ -1509,6 +1567,20 @@ func (m *OpenChannelRequest) GetPushSat() int64 {
return 0
}
func (m *OpenChannelRequest) GetTargetConf() int32 {
if m != nil {
return m.TargetConf
}
return 0
}
func (m *OpenChannelRequest) GetSatPerByte() int64 {
if m != nil {
return m.SatPerByte
}
return 0
}
type OpenStatusUpdate struct {
// Types that are valid to be assigned to Update:
// *OpenStatusUpdate_ChanPending
@ -3752,7 +3824,10 @@ type LightningClient interface {
GetTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (*TransactionDetails, error)
// * lncli: `sendcoins`
// SendCoins executes a request to send coins to a particular address. Unlike
// SendMany, this RPC call only allows creating a single output at a time.
// SendMany, this RPC call only allows creating a single output at a time. If
// neither target_conf, or sat_per_byte are set, then the internal wallet will
// consult its fee model to determine a fee for the default confirmation
// target.
SendCoins(ctx context.Context, in *SendCoinsRequest, opts ...grpc.CallOption) (*SendCoinsResponse, error)
// *
// SubscribeTransactions creates a uni-directional stream from the server to
@ -3761,7 +3836,9 @@ type LightningClient interface {
SubscribeTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (Lightning_SubscribeTransactionsClient, error)
// * lncli: `sendmany`
// SendMany handles a request for a transaction that creates multiple specified
// outputs in parallel.
// outputs in parallel. If neither target_conf, or sat_per_byte are set, then
// the internal wallet will consult its fee model to determine a fee for the
// default confirmation target.
SendMany(ctx context.Context, in *SendManyRequest, opts ...grpc.CallOption) (*SendManyResponse, error)
// * lncli: `newaddress`
// NewAddress creates a new address under control of the local wallet.
@ -3816,13 +3893,19 @@ type LightningClient interface {
OpenChannelSync(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (*ChannelPoint, error)
// * lncli: `openchannel`
// OpenChannel attempts to open a singly funded channel specified in the
// request to a remote peer.
// request to a remote peer. Users are able to specify a target number of
// blocks that the funding transaction should be confirmed in, or a manual fee
// rate to us for the funding transaction. If neither are specified, then a
// lax block confirmation target is used.
OpenChannel(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (Lightning_OpenChannelClient, error)
// * lncli: `closechannel`
// CloseChannel attempts to close an active channel identified by its channel
// outpoint (ChannelPoint). The actions of this method can additionally be
// augmented to attempt a force close after a timeout period in the case of an
// inactive peer.
// inactive peer. If a non-force close (cooperative closure) is requested,
// then the user can specify either a target number of blocks until the
// closure transaction is confirmed, or a manual fee rate. If neither are
// specified, then a default lax, block confirmation target is used.
CloseChannel(ctx context.Context, in *CloseChannelRequest, opts ...grpc.CallOption) (Lightning_CloseChannelClient, error)
// * lncli: `sendpayment`
// SendPayment dispatches a bi-directional streaming RPC for sending payments
@ -4439,7 +4522,10 @@ type LightningServer interface {
GetTransactions(context.Context, *GetTransactionsRequest) (*TransactionDetails, error)
// * lncli: `sendcoins`
// SendCoins executes a request to send coins to a particular address. Unlike
// SendMany, this RPC call only allows creating a single output at a time.
// SendMany, this RPC call only allows creating a single output at a time. If
// neither target_conf, or sat_per_byte are set, then the internal wallet will
// consult its fee model to determine a fee for the default confirmation
// target.
SendCoins(context.Context, *SendCoinsRequest) (*SendCoinsResponse, error)
// *
// SubscribeTransactions creates a uni-directional stream from the server to
@ -4448,7 +4534,9 @@ type LightningServer interface {
SubscribeTransactions(*GetTransactionsRequest, Lightning_SubscribeTransactionsServer) error
// * lncli: `sendmany`
// SendMany handles a request for a transaction that creates multiple specified
// outputs in parallel.
// outputs in parallel. If neither target_conf, or sat_per_byte are set, then
// the internal wallet will consult its fee model to determine a fee for the
// default confirmation target.
SendMany(context.Context, *SendManyRequest) (*SendManyResponse, error)
// * lncli: `newaddress`
// NewAddress creates a new address under control of the local wallet.
@ -4503,13 +4591,19 @@ type LightningServer interface {
OpenChannelSync(context.Context, *OpenChannelRequest) (*ChannelPoint, error)
// * lncli: `openchannel`
// OpenChannel attempts to open a singly funded channel specified in the
// request to a remote peer.
// request to a remote peer. Users are able to specify a target number of
// blocks that the funding transaction should be confirmed in, or a manual fee
// rate to us for the funding transaction. If neither are specified, then a
// lax block confirmation target is used.
OpenChannel(*OpenChannelRequest, Lightning_OpenChannelServer) error
// * lncli: `closechannel`
// CloseChannel attempts to close an active channel identified by its channel
// outpoint (ChannelPoint). The actions of this method can additionally be
// augmented to attempt a force close after a timeout period in the case of an
// inactive peer.
// inactive peer. If a non-force close (cooperative closure) is requested,
// then the user can specify either a target number of blocks until the
// closure transaction is confirmed, or a manual fee rate. If neither are
// specified, then a default lax, block confirmation target is used.
CloseChannel(*CloseChannelRequest, Lightning_CloseChannelServer) error
// * lncli: `sendpayment`
// SendPayment dispatches a bi-directional streaming RPC for sending payments
@ -5517,303 +5611,307 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 4765 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5b, 0xdd, 0x6f, 0x1c, 0x4b,
0x56, 0x4f, 0x8f, 0xc7, 0xf6, 0xcc, 0x99, 0x19, 0x7f, 0x94, 0xbf, 0x26, 0x93, 0xdc, 0xbb, 0x49,
0x6d, 0x74, 0x63, 0xbc, 0x57, 0x76, 0xe2, 0x65, 0x2f, 0xd9, 0x04, 0xb8, 0x72, 0x3e, 0x7d, 0x59,
0xdf, 0x5c, 0x6f, 0x3b, 0xb9, 0x81, 0x5d, 0xa1, 0xa1, 0x3d, 0x53, 0x1e, 0xf7, 0xa6, 0xa7, 0xbb,
0x6f, 0x77, 0x8f, 0x9d, 0xd9, 0x28, 0x12, 0x5a, 0x10, 0x4f, 0xa0, 0x7d, 0x58, 0x04, 0xe2, 0x01,
0xb4, 0x12, 0xe2, 0x11, 0xfe, 0x01, 0x24, 0xfe, 0x00, 0x04, 0x02, 0x69, 0x9f, 0x90, 0x10, 0x4f,
0x3c, 0xf1, 0x82, 0x78, 0xe0, 0x1d, 0x9d, 0xfa, 0xea, 0xaa, 0xee, 0x76, 0x92, 0xe5, 0xeb, 0xc9,
0x53, 0xbf, 0xaa, 0x3e, 0x55, 0x75, 0xea, 0xd4, 0xf9, 0xaa, 0x63, 0x68, 0x26, 0xf1, 0x60, 0x3b,
0x4e, 0xa2, 0x2c, 0x22, 0xb3, 0x41, 0x98, 0xc4, 0x83, 0xde, 0xd5, 0x51, 0x14, 0x8d, 0x02, 0xb6,
0xe3, 0xc5, 0xfe, 0x8e, 0x17, 0x86, 0x51, 0xe6, 0x65, 0x7e, 0x14, 0xa6, 0x62, 0x10, 0xbd, 0x0d,
0x2b, 0x0f, 0x12, 0xe6, 0x65, 0xec, 0x85, 0x17, 0x04, 0x2c, 0x73, 0xd9, 0x57, 0x13, 0x96, 0x66,
0xa4, 0x07, 0x8d, 0xd8, 0x4b, 0xd3, 0xf3, 0x28, 0x19, 0x76, 0x9d, 0x6b, 0xce, 0x66, 0xdb, 0xd5,
0x6d, 0xba, 0x0e, 0xab, 0xf6, 0x27, 0x69, 0x1c, 0x85, 0x29, 0x43, 0x52, 0xcf, 0xc3, 0x20, 0x1a,
0xbc, 0xfc, 0xb9, 0x48, 0xd9, 0x9f, 0x48, 0x52, 0xff, 0xe1, 0x40, 0xeb, 0x59, 0xe2, 0x85, 0xa9,
0x37, 0xc0, 0xc5, 0x92, 0x2e, 0xcc, 0x67, 0xaf, 0xfa, 0xa7, 0x5e, 0x7a, 0xca, 0x49, 0x34, 0x5d,
0xd5, 0x24, 0xeb, 0x30, 0xe7, 0x8d, 0xa3, 0x49, 0x98, 0x75, 0x6b, 0xd7, 0x9c, 0xcd, 0x19, 0x57,
0xb6, 0xc8, 0xc7, 0xb0, 0x1c, 0x4e, 0xc6, 0xfd, 0x41, 0x14, 0x9e, 0xf8, 0xc9, 0x58, 0x6c, 0xb9,
0x3b, 0x73, 0xcd, 0xd9, 0x9c, 0x75, 0xcb, 0x1d, 0xe4, 0x43, 0x80, 0x63, 0x5c, 0x86, 0x98, 0xa2,
0xce, 0xa7, 0x30, 0x10, 0x42, 0xa1, 0x2d, 0x5b, 0xcc, 0x1f, 0x9d, 0x66, 0xdd, 0x59, 0x4e, 0xc8,
0xc2, 0x90, 0x46, 0xe6, 0x8f, 0x59, 0x3f, 0xcd, 0xbc, 0x71, 0xdc, 0x9d, 0xe3, 0xab, 0x31, 0x10,
0xde, 0x1f, 0x65, 0x5e, 0xd0, 0x3f, 0x61, 0x2c, 0xed, 0xce, 0xcb, 0x7e, 0x8d, 0xd0, 0x2e, 0xac,
0x3f, 0x61, 0x99, 0xb1, 0xeb, 0x54, 0x72, 0x90, 0x1e, 0x00, 0x31, 0xe0, 0x87, 0x2c, 0xf3, 0xfc,
0x20, 0x25, 0x9f, 0x40, 0x3b, 0x33, 0x06, 0x77, 0x9d, 0x6b, 0x33, 0x9b, 0xad, 0x5d, 0xb2, 0xcd,
0x4f, 0x7d, 0xdb, 0xf8, 0xc0, 0xb5, 0xc6, 0xd1, 0x7f, 0x74, 0xa0, 0x75, 0xc4, 0xc2, 0xa1, 0x3a,
0x1f, 0x02, 0xf5, 0x21, 0x4b, 0x33, 0x79, 0x36, 0xfc, 0x37, 0xf9, 0x1a, 0xb4, 0xf0, 0x6f, 0x3f,
0xcd, 0x12, 0x3f, 0x1c, 0x71, 0xd6, 0x36, 0x5d, 0x40, 0xe8, 0x88, 0x23, 0x64, 0x09, 0x66, 0xbc,
0x71, 0xc6, 0x19, 0x3a, 0xe3, 0xe2, 0x4f, 0x72, 0x1d, 0xda, 0xb1, 0x37, 0x1d, 0xb3, 0x30, 0xcb,
0x99, 0xd8, 0x76, 0x5b, 0x12, 0xdb, 0x47, 0x2e, 0x6e, 0xc3, 0x8a, 0x39, 0x44, 0x51, 0x9f, 0xe5,
0xd4, 0x97, 0x8d, 0x91, 0x72, 0x92, 0x9b, 0xb0, 0xa8, 0xc6, 0x27, 0x62, 0xb1, 0x9c, 0xad, 0x4d,
0x77, 0x41, 0xc2, 0x8a, 0x41, 0x7f, 0xe8, 0x40, 0x5b, 0x6c, 0x49, 0xc8, 0x0f, 0xb9, 0x01, 0x1d,
0xf5, 0x25, 0x4b, 0x92, 0x28, 0x91, 0x52, 0x63, 0x83, 0x64, 0x0b, 0x96, 0x14, 0x10, 0x27, 0xcc,
0x1f, 0x7b, 0x23, 0xc6, 0xb7, 0xda, 0x76, 0x4b, 0x38, 0xd9, 0xcd, 0x29, 0x26, 0xd1, 0x24, 0x63,
0x7c, 0xeb, 0xad, 0xdd, 0xb6, 0x64, 0xb7, 0x8b, 0x98, 0x6b, 0x0f, 0xa1, 0x3f, 0x72, 0xa0, 0xfd,
0xe0, 0xd4, 0x0b, 0x43, 0x16, 0x1c, 0x46, 0x7e, 0x98, 0xa1, 0x18, 0x9d, 0x4c, 0xc2, 0xa1, 0x1f,
0x8e, 0xfa, 0xd9, 0x2b, 0x5f, 0x5d, 0x07, 0x0b, 0xc3, 0x45, 0x99, 0x6d, 0x64, 0x92, 0xe4, 0x7f,
0x09, 0x47, 0x7a, 0xd1, 0x24, 0x8b, 0x27, 0x59, 0xdf, 0x0f, 0x87, 0xec, 0x15, 0x5f, 0x53, 0xc7,
0xb5, 0x30, 0xfa, 0xab, 0xb0, 0x74, 0x80, 0xf2, 0x19, 0xfa, 0xe1, 0x68, 0x6f, 0x38, 0x4c, 0x58,
0x9a, 0xe2, 0xa5, 0x89, 0x27, 0xc7, 0x2f, 0xd9, 0x54, 0xf2, 0x45, 0xb6, 0x50, 0x14, 0x4e, 0xa3,
0x34, 0x93, 0xf3, 0xf1, 0xdf, 0xf4, 0xa7, 0x0e, 0x2c, 0x22, 0x6f, 0x3f, 0xf7, 0xc2, 0xa9, 0x12,
0x99, 0x03, 0x68, 0x23, 0xa9, 0x67, 0xd1, 0x9e, 0xb8, 0x7a, 0x42, 0xf4, 0x36, 0x25, 0x2f, 0x0a,
0xa3, 0xb7, 0xcd, 0xa1, 0x8f, 0xc2, 0x2c, 0x99, 0xba, 0xd6, 0xd7, 0xbd, 0x4f, 0x61, 0xb9, 0x34,
0x04, 0x05, 0x2c, 0x5f, 0x1f, 0xfe, 0x24, 0xab, 0x30, 0x7b, 0xe6, 0x05, 0x13, 0x26, 0x2f, 0xba,
0x68, 0xdc, 0xad, 0xdd, 0x71, 0xe8, 0x47, 0xb0, 0x94, 0xcf, 0x29, 0x25, 0x80, 0x40, 0x5d, 0xb3,
0xb8, 0xe9, 0xf2, 0xdf, 0xc8, 0x0a, 0x1c, 0xf7, 0x20, 0xf2, 0xf5, 0xdd, 0xc2, 0x71, 0xde, 0x70,
0xa8, 0x04, 0x84, 0xff, 0xbe, 0x48, 0xa7, 0xd0, 0x9b, 0xb0, 0x6c, 0x7c, 0xff, 0x96, 0x89, 0xfe,
0xcc, 0x81, 0xe5, 0xa7, 0xec, 0x5c, 0xb2, 0x5b, 0x4d, 0x75, 0x07, 0xea, 0xd9, 0x34, 0x66, 0x7c,
0xe4, 0xc2, 0xee, 0x0d, 0xc9, 0xad, 0xd2, 0xb8, 0x6d, 0xd9, 0x7c, 0x36, 0x8d, 0x99, 0xcb, 0xbf,
0xa0, 0x5f, 0x40, 0xcb, 0x00, 0xc9, 0x06, 0xac, 0xbc, 0xf8, 0xec, 0xd9, 0xd3, 0x47, 0x47, 0x47,
0xfd, 0xc3, 0xe7, 0xf7, 0xbf, 0xf3, 0xe8, 0x37, 0xfa, 0xfb, 0x7b, 0x47, 0xfb, 0x4b, 0x97, 0xc8,
0x3a, 0x90, 0xa7, 0x8f, 0x8e, 0x9e, 0x3d, 0x7a, 0x68, 0xe1, 0x0e, 0x59, 0x84, 0x96, 0x09, 0xd4,
0x68, 0x0f, 0xba, 0x4f, 0xd9, 0xf9, 0x0b, 0x3f, 0x0b, 0x59, 0x9a, 0xda, 0xd3, 0xd3, 0x6d, 0x20,
0xe6, 0x9a, 0xe4, 0x36, 0xbb, 0x30, 0xef, 0x09, 0x48, 0x69, 0x60, 0xd9, 0xa4, 0x1f, 0x01, 0x39,
0xf2, 0x47, 0xe1, 0xe7, 0x2c, 0x4d, 0xbd, 0x11, 0x53, 0x9b, 0x5d, 0x82, 0x99, 0x71, 0x3a, 0x92,
0x12, 0x8e, 0x3f, 0xe9, 0x37, 0x61, 0xc5, 0x1a, 0x27, 0x09, 0x5f, 0x85, 0x66, 0xea, 0x8f, 0x42,
0x2f, 0x9b, 0x24, 0x4c, 0x92, 0xce, 0x01, 0xfa, 0x18, 0x56, 0xbf, 0x64, 0x89, 0x7f, 0x32, 0x7d,
0x17, 0x79, 0x9b, 0x4e, 0xad, 0x48, 0xe7, 0x11, 0xac, 0x15, 0xe8, 0xc8, 0xe9, 0x85, 0x54, 0xc9,
0xf3, 0x6b, 0xb8, 0xa2, 0x61, 0x5c, 0x90, 0x9a, 0x79, 0x41, 0xe8, 0x73, 0x20, 0x0f, 0xa2, 0x30,
0x64, 0x83, 0xec, 0x90, 0xb1, 0x44, 0x2d, 0xe6, 0x1b, 0x86, 0x0c, 0xb5, 0x76, 0x37, 0xe4, 0xc1,
0x16, 0x6f, 0x9d, 0x14, 0x2e, 0x02, 0xf5, 0x98, 0x25, 0x63, 0x4e, 0xb8, 0xe1, 0xf2, 0xdf, 0x74,
0x07, 0x56, 0x2c, 0xb2, 0x39, 0xcf, 0x63, 0xc6, 0x92, 0xbe, 0x5c, 0xdd, 0xac, 0xab, 0x9a, 0xf4,
0x36, 0xac, 0x3d, 0xf4, 0xd3, 0x41, 0x79, 0x29, 0xf8, 0xc9, 0xe4, 0xb8, 0x9f, 0x5f, 0x1d, 0xd5,
0x44, 0xf3, 0x52, 0xfc, 0x44, 0x1a, 0xdb, 0xdf, 0x73, 0xa0, 0xbe, 0xff, 0xec, 0xe0, 0x01, 0x5a,
0x6a, 0x3f, 0x1c, 0x44, 0x63, 0x54, 0xca, 0x82, 0x1d, 0xba, 0x7d, 0xa1, 0x9d, 0xbd, 0x0a, 0x4d,
0xae, 0xcb, 0xd1, 0x12, 0x72, 0xfd, 0xd3, 0x76, 0x73, 0x00, 0xad, 0x30, 0x7b, 0x15, 0xfb, 0x09,
0x37, 0xb3, 0xca, 0x78, 0xd6, 0xb9, 0x96, 0x2a, 0x77, 0xd0, 0xbf, 0xab, 0x43, 0x67, 0x6f, 0x90,
0xf9, 0x67, 0x4c, 0x6a, 0x4d, 0x3e, 0x2b, 0x07, 0xe4, 0x7a, 0x64, 0x0b, 0xf5, 0x7b, 0xc2, 0xc6,
0x51, 0xc6, 0xfa, 0xd6, 0x31, 0xd9, 0x20, 0x8e, 0x1a, 0x08, 0x42, 0xfd, 0x18, 0xf5, 0x2f, 0x5f,
0x5f, 0xd3, 0xb5, 0x41, 0x64, 0x19, 0x02, 0xc8, 0x65, 0x5c, 0x59, 0xdd, 0x55, 0x4d, 0xe4, 0xc7,
0xc0, 0x8b, 0xbd, 0x81, 0x9f, 0x4d, 0xb9, 0x91, 0x9a, 0x71, 0x75, 0x1b, 0x69, 0x07, 0xd1, 0xc0,
0x0b, 0xfa, 0xc7, 0x5e, 0xe0, 0x85, 0x03, 0x26, 0x0d, 0xbe, 0x0d, 0x92, 0x8f, 0x60, 0x41, 0x2e,
0x49, 0x0d, 0x13, 0x76, 0xbf, 0x80, 0xa2, 0x6f, 0x30, 0x88, 0xc6, 0x63, 0x3f, 0x43, 0x57, 0xa0,
0xdb, 0x10, 0xbe, 0x41, 0x8e, 0xf0, 0x9d, 0x88, 0xd6, 0xb9, 0xe0, 0x61, 0x53, 0xcc, 0x66, 0x81,
0x48, 0xe5, 0x84, 0xb1, 0x7e, 0xcc, 0x92, 0xfe, 0xcb, 0xf3, 0x2e, 0x08, 0x2a, 0x39, 0x82, 0xa7,
0x31, 0x09, 0x53, 0x96, 0x65, 0x01, 0x1b, 0xea, 0x05, 0xb5, 0xf8, 0xb0, 0x72, 0x07, 0xb9, 0x05,
0x2b, 0xc2, 0x3b, 0x49, 0xbd, 0x2c, 0x4a, 0x4f, 0xfd, 0xb4, 0x9f, 0xb2, 0x30, 0xeb, 0xb6, 0xf9,
0xf8, 0xaa, 0x2e, 0x72, 0x07, 0x36, 0x0a, 0x70, 0xc2, 0x06, 0xcc, 0x3f, 0x63, 0xc3, 0x6e, 0x87,
0x7f, 0x75, 0x51, 0x37, 0xb9, 0x06, 0x2d, 0x74, 0xca, 0x26, 0xf1, 0xd0, 0xcb, 0x58, 0xda, 0x5d,
0xe0, 0xe7, 0x60, 0x42, 0xe4, 0x36, 0x74, 0x62, 0x26, 0xcc, 0xdf, 0x69, 0x16, 0x0c, 0xd2, 0xee,
0x22, 0xb7, 0x39, 0x2d, 0x79, 0xd9, 0x50, 0x7e, 0x5d, 0x7b, 0x04, 0x5d, 0x83, 0x95, 0x03, 0x3f,
0xcd, 0xa4, 0x2c, 0x69, 0xfd, 0xb6, 0x0f, 0xab, 0x36, 0x2c, 0x6f, 0xdb, 0x2d, 0x68, 0x48, 0xc1,
0x48, 0xbb, 0x2d, 0x4e, 0x7c, 0x55, 0x12, 0xb7, 0x64, 0xd2, 0xd5, 0xa3, 0xe8, 0xef, 0xd6, 0xa0,
0x8e, 0x37, 0xe9, 0xe2, 0x5b, 0x67, 0x5e, 0xe1, 0x9a, 0x75, 0x85, 0x4d, 0x85, 0x3a, 0x63, 0x29,
0x54, 0xee, 0x8c, 0x4e, 0x33, 0x26, 0xf9, 0x2d, 0x64, 0xd2, 0x40, 0xf2, 0xfe, 0x84, 0x0d, 0xce,
0xb8, 0x60, 0xea, 0x7e, 0x44, 0x50, 0x6c, 0x53, 0x2f, 0x13, 0x5f, 0x0b, 0xa9, 0xd4, 0x6d, 0xd5,
0xc7, 0xbf, 0x9c, 0xcf, 0xfb, 0xf8, 0x77, 0x5d, 0x98, 0xf7, 0xc3, 0xe3, 0x68, 0x12, 0x0e, 0xb9,
0x04, 0x36, 0x5c, 0xd5, 0xc4, 0x4b, 0x1e, 0x73, 0xc7, 0xc3, 0x1f, 0x33, 0x29, 0x7a, 0x39, 0x40,
0x09, 0x7a, 0x18, 0x29, 0xd7, 0x29, 0x9a, 0xc9, 0x9f, 0xc0, 0xb2, 0x81, 0x49, 0x0e, 0x5f, 0x87,
0x59, 0xdc, 0xbd, 0x72, 0x55, 0xd5, 0xd9, 0x71, 0x65, 0x24, 0x7a, 0xe8, 0x12, 0x2c, 0x3c, 0x61,
0xd9, 0x67, 0xe1, 0x49, 0xa4, 0x28, 0xfd, 0x67, 0x0d, 0x16, 0x35, 0x24, 0x09, 0x6d, 0xc2, 0xa2,
0x3f, 0x64, 0x61, 0xe6, 0x67, 0xd3, 0xbe, 0xe5, 0xc8, 0x14, 0x61, 0x54, 0xef, 0x5e, 0xe0, 0x7b,
0xa9, 0x54, 0x10, 0xa2, 0x41, 0x76, 0x61, 0x15, 0x65, 0x4b, 0x89, 0x8b, 0x3e, 0x76, 0xe1, 0x3f,
0x55, 0xf6, 0xe1, 0x75, 0x40, 0x5c, 0x28, 0xa0, 0xfc, 0x13, 0xa1, 0xcc, 0xaa, 0xba, 0x90, 0x6b,
0x82, 0x12, 0x6e, 0x79, 0x96, 0x8f, 0xcb, 0x81, 0x52, 0x48, 0x31, 0x27, 0x7c, 0xb7, 0x62, 0x48,
0x61, 0x84, 0x25, 0x8d, 0x52, 0x58, 0xb2, 0x09, 0x8b, 0xe9, 0x34, 0x1c, 0xb0, 0x61, 0x3f, 0x8b,
0x70, 0x5e, 0x3f, 0xe4, 0xa7, 0xd3, 0x70, 0x8b, 0x30, 0x0f, 0xa0, 0x58, 0x9a, 0x85, 0x2c, 0xe3,
0x7a, 0xa1, 0xe1, 0xaa, 0x26, 0xaa, 0x58, 0x3e, 0x44, 0x08, 0x7d, 0xd3, 0x95, 0x2d, 0xfa, 0x43,
0x6e, 0xea, 0x74, 0x8c, 0xf4, 0x9c, 0xdf, 0x43, 0x72, 0x05, 0x9a, 0x62, 0xfe, 0xf4, 0xd4, 0x53,
0xd1, 0x1c, 0x07, 0x8e, 0x4e, 0x3d, 0x0c, 0x01, 0xac, 0x2d, 0x09, 0x89, 0x6f, 0x71, 0x6c, 0x5f,
0xec, 0xe8, 0x06, 0x2c, 0xa8, 0xe8, 0x2b, 0xed, 0x07, 0xec, 0x24, 0x53, 0x3e, 0x6b, 0x38, 0x19,
0xe3, 0x74, 0xe9, 0x01, 0x3b, 0xc9, 0xe8, 0x53, 0x58, 0x96, 0xb7, 0xed, 0x8b, 0x98, 0xa9, 0xa9,
0xbf, 0x5d, 0xd4, 0xe6, 0xc2, 0xdc, 0xae, 0x48, 0x29, 0x32, 0x1d, 0xed, 0x82, 0x8a, 0xa7, 0x2e,
0x10, 0xd9, 0xfd, 0x20, 0x88, 0x52, 0x26, 0x09, 0x52, 0x68, 0x0f, 0x82, 0x28, 0x2d, 0x7a, 0xe3,
0x26, 0x86, 0x7c, 0x4b, 0x27, 0x83, 0x01, 0xde, 0x52, 0x61, 0xb0, 0x55, 0x93, 0x32, 0x58, 0xe1,
0xc4, 0x94, 0x5a, 0xd0, 0x4e, 0xde, 0xfb, 0xaf, 0xb2, 0x3d, 0x30, 0x83, 0x83, 0x55, 0x98, 0x3d,
0x89, 0x92, 0x01, 0x93, 0x13, 0x89, 0x06, 0xfd, 0x27, 0x07, 0x96, 0xf9, 0x3c, 0x47, 0x99, 0x97,
0x4d, 0x52, 0xb9, 0xf4, 0x5f, 0x86, 0x0e, 0x2e, 0x93, 0x29, 0x31, 0x95, 0xb3, 0xac, 0xea, 0x1b,
0xc5, 0x51, 0x31, 0x78, 0xff, 0x92, 0x6b, 0x0f, 0x26, 0x9f, 0x42, 0xdb, 0x0c, 0x7f, 0xf9, 0x84,
0xad, 0xdd, 0xcb, 0x6a, 0x89, 0xa5, 0x53, 0xdf, 0xbf, 0xe4, 0x5a, 0x1f, 0x90, 0x7b, 0x00, 0xdc,
0x46, 0x72, 0xb2, 0x32, 0x12, 0xba, 0x6c, 0xef, 0xd0, 0x60, 0xf4, 0xfe, 0x25, 0xd7, 0x18, 0x7e,
0xbf, 0x01, 0x73, 0x42, 0xa9, 0xd3, 0x27, 0xd0, 0xb1, 0x56, 0x6a, 0xf9, 0xd2, 0x6d, 0xe1, 0x4b,
0x97, 0x62, 0x9c, 0x5a, 0x45, 0x8c, 0xf3, 0x2f, 0x0e, 0x10, 0x94, 0x94, 0xc2, 0x59, 0x7c, 0x04,
0x0b, 0x99, 0x97, 0x8c, 0x58, 0xd6, 0xb7, 0xdd, 0xa8, 0x02, 0xca, 0xad, 0x4f, 0x34, 0xb4, 0x7c,
0x89, 0xb6, 0x6b, 0x42, 0x64, 0x1b, 0x88, 0xd1, 0x54, 0x81, 0xab, 0xd0, 0xdb, 0x15, 0x3d, 0xa8,
0x60, 0x84, 0x23, 0xa0, 0x42, 0x36, 0xe9, 0x3b, 0xd5, 0xb9, 0xee, 0xac, 0xec, 0xe3, 0x79, 0x92,
0x09, 0x46, 0xc5, 0x5e, 0xa6, 0xbc, 0x0d, 0xd5, 0xa6, 0x3f, 0x73, 0x60, 0x09, 0x37, 0x68, 0x09,
0xc1, 0x5d, 0xe0, 0x02, 0xf4, 0x9e, 0x32, 0x60, 0x8d, 0xfd, 0x9f, 0x8b, 0xc0, 0x1d, 0x68, 0x72,
0x82, 0x51, 0xcc, 0x42, 0x29, 0x01, 0x5d, 0x5b, 0x02, 0xf2, 0xab, 0xbb, 0x7f, 0xc9, 0xcd, 0x07,
0x1b, 0xe7, 0xff, 0x0f, 0x0e, 0xb4, 0xe4, 0x32, 0xff, 0xdb, 0xfe, 0x67, 0x0f, 0x1a, 0x28, 0x0a,
0x86, 0x7b, 0xa7, 0xdb, 0xa8, 0x1e, 0xc7, 0xe8, 0xfe, 0xa3, 0x3d, 0xb0, 0x7c, 0xcf, 0x22, 0x8c,
0xca, 0x9d, 0x6b, 0xa9, 0xb4, 0x9f, 0xf9, 0x41, 0x5f, 0xf5, 0xca, 0x34, 0x4f, 0x55, 0x17, 0xde,
0xd6, 0x34, 0xf3, 0x46, 0x4c, 0xea, 0x6d, 0xd1, 0xa0, 0x1b, 0xb0, 0x26, 0x37, 0x64, 0x8b, 0x22,
0xfd, 0x77, 0x80, 0xf5, 0x62, 0x8f, 0xf6, 0x3b, 0xa4, 0x33, 0x15, 0xf8, 0xe3, 0xe3, 0x48, 0xfb,
0x65, 0x8e, 0xe9, 0x67, 0x59, 0x5d, 0xe4, 0x04, 0xd6, 0x94, 0x79, 0x42, 0x8e, 0xe6, 0xc6, 0xa8,
0xc6, 0xed, 0xea, 0x2d, 0x5b, 0x02, 0x0a, 0xf3, 0x29, 0xd8, 0xbc, 0x2f, 0xd5, 0xe4, 0xc8, 0x08,
0xba, 0xda, 0x0c, 0x4a, 0xa5, 0x68, 0x98, 0x4a, 0x9c, 0xea, 0x1b, 0x6f, 0x9f, 0x8a, 0x2b, 0x81,
0xa1, 0x42, 0x2f, 0x24, 0x46, 0x5e, 0xc1, 0x87, 0xaa, 0x8f, 0x6b, 0xbd, 0xf2, 0x74, 0xf5, 0xf7,
0xd9, 0xd9, 0x63, 0xfc, 0xd6, 0x9e, 0xf3, 0x1d, 0x74, 0x7b, 0x7f, 0xeb, 0xc0, 0x82, 0x4d, 0x0d,
0xa5, 0x46, 0x7a, 0xe7, 0xea, 0x62, 0x2b, 0xe7, 0xa2, 0x00, 0x97, 0xe3, 0x8b, 0x5a, 0x55, 0x7c,
0x61, 0x46, 0x11, 0x33, 0xef, 0x8a, 0x22, 0xea, 0xef, 0x17, 0x45, 0xcc, 0x56, 0x45, 0x11, 0xbd,
0x9f, 0xd6, 0x80, 0x94, 0x4f, 0x97, 0x3c, 0x16, 0x01, 0x4e, 0xc8, 0x02, 0xa9, 0x22, 0x3e, 0x7e,
0x2f, 0x01, 0x51, 0xb0, 0xfa, 0x18, 0x05, 0xd5, 0x54, 0x01, 0xa6, 0x95, 0xef, 0xb8, 0x55, 0x5d,
0x64, 0x0b, 0x96, 0xf2, 0xbb, 0x13, 0xe4, 0xba, 0xa2, 0xe3, 0x96, 0xf0, 0x42, 0x08, 0x54, 0x7f,
0x77, 0x08, 0x34, 0xfb, 0xee, 0x10, 0x68, 0xae, 0x18, 0x02, 0xf5, 0x5e, 0x43, 0xc7, 0x12, 0x90,
0xff, 0x35, 0xe6, 0x14, 0x9d, 0x09, 0x21, 0x0a, 0x16, 0xd6, 0xfb, 0xb7, 0x1a, 0x90, 0xb2, 0x8c,
0xfe, 0x7f, 0x2e, 0x81, 0x0b, 0x9c, 0xa5, 0x66, 0x66, 0xa4, 0xc0, 0x59, 0x0a, 0xe6, 0xff, 0x52,
0x71, 0x7e, 0x0c, 0xcb, 0x09, 0x1b, 0x44, 0x67, 0x2c, 0x31, 0x82, 0x50, 0x71, 0x50, 0xe5, 0x0e,
0x74, 0xa7, 0xec, 0xb0, 0xaf, 0x61, 0x65, 0xb9, 0x0d, 0xeb, 0x51, 0x8c, 0xfe, 0xbe, 0x0d, 0xab,
0xe2, 0x51, 0xe1, 0xbe, 0x20, 0xa5, 0x9c, 0x82, 0xeb, 0xd0, 0x3e, 0x17, 0x79, 0xaf, 0x7e, 0x14,
0x06, 0x53, 0x69, 0x68, 0x5a, 0x12, 0xfb, 0x22, 0x0c, 0xa6, 0xf4, 0x36, 0xac, 0x15, 0x3e, 0xcd,
0x13, 0x32, 0xb6, 0x7a, 0x56, 0x4d, 0x54, 0xfc, 0xf2, 0x3c, 0xec, 0xe9, 0xe8, 0x2e, 0xac, 0x17,
0x3b, 0xde, 0x49, 0xec, 0x53, 0x20, 0xdf, 0x9d, 0xb0, 0x64, 0xca, 0x93, 0xca, 0x3a, 0x7d, 0xb8,
0x51, 0x0c, 0x32, 0xe7, 0xe2, 0xc9, 0xf1, 0x77, 0xd8, 0x54, 0xe5, 0xe2, 0x6b, 0x3a, 0x17, 0x4f,
0xef, 0xc1, 0x8a, 0x45, 0x40, 0x67, 0xc5, 0xe7, 0x78, 0x62, 0x5a, 0x05, 0x60, 0x76, 0xf2, 0x5a,
0xf6, 0xd1, 0x3f, 0x76, 0x60, 0x66, 0x3f, 0x8a, 0xcd, 0xbc, 0x88, 0x63, 0xe7, 0x45, 0xa4, 0xde,
0xeb, 0x6b, 0xb5, 0x56, 0x93, 0x57, 0xd1, 0x04, 0x51, 0x6b, 0x79, 0xe3, 0x0c, 0x43, 0x90, 0x93,
0x28, 0x39, 0xf7, 0x92, 0xa1, 0x94, 0xb5, 0x02, 0x8a, 0xcb, 0xcf, 0x6f, 0x3c, 0xfe, 0x44, 0x5b,
0xcf, 0x93, 0x43, 0x53, 0x19, 0x35, 0xc9, 0x16, 0xfd, 0xb1, 0x03, 0xb3, 0x7c, 0xad, 0x28, 0xa0,
0xc2, 0x30, 0xf2, 0xf7, 0x15, 0x9e, 0x7b, 0x72, 0x84, 0x80, 0x16, 0xe0, 0xc2, 0xab, 0x4b, 0xad,
0xf8, 0xea, 0x82, 0x41, 0x9a, 0x68, 0xe5, 0xcf, 0x19, 0x39, 0x40, 0x3e, 0x84, 0xfa, 0x69, 0x14,
0x2b, 0xf3, 0x03, 0x2a, 0xd9, 0x10, 0xc5, 0x2e, 0xc7, 0xe9, 0x16, 0x2c, 0x3e, 0x8d, 0x86, 0xcc,
0x88, 0x57, 0x2f, 0x3c, 0x26, 0xfa, 0xdb, 0x0e, 0x34, 0xd4, 0x60, 0xb2, 0x09, 0x75, 0x34, 0x23,
0x05, 0x9f, 0x4d, 0xa7, 0x0c, 0x71, 0x9c, 0xcb, 0x47, 0xe0, 0xad, 0xe6, 0x11, 0x53, 0x6e, 0xe3,
0x55, 0xbc, 0x94, 0xdb, 0x4f, 0x74, 0x74, 0xf9, 0x9a, 0x0b, 0x86, 0xa6, 0x80, 0xd2, 0x9f, 0x38,
0xd0, 0xb1, 0xe6, 0x40, 0xd7, 0x37, 0xf0, 0xd2, 0x4c, 0xa6, 0x59, 0x24, 0x13, 0x4d, 0xc8, 0xcc,
0x6d, 0xd4, 0xec, 0xdc, 0x86, 0x8e, 0xad, 0x67, 0xcc, 0xd8, 0xfa, 0x16, 0x34, 0x65, 0x22, 0x83,
0x29, 0xbe, 0xa9, 0xdb, 0x8a, 0x33, 0xaa, 0x64, 0x68, 0x3e, 0x88, 0xde, 0x83, 0x96, 0xd1, 0x83,
0x13, 0x86, 0x2c, 0x3b, 0x8f, 0x92, 0x97, 0x2a, 0x99, 0x22, 0x9b, 0x3a, 0x57, 0x5f, 0xcb, 0x73,
0xf5, 0xf4, 0x2f, 0x1d, 0xe8, 0xa0, 0x4c, 0xf8, 0xe1, 0xe8, 0x30, 0x0a, 0xfc, 0xc1, 0x94, 0xcb,
0x86, 0x3a, 0xfe, 0xfe, 0x90, 0x05, 0x99, 0xa7, 0x65, 0xc3, 0x86, 0xd1, 0x32, 0x8f, 0xfd, 0x90,
0xeb, 0x0b, 0x29, 0x19, 0xba, 0x8d, 0x32, 0x8e, 0x66, 0xe3, 0xd8, 0x4b, 0x59, 0x7f, 0x8c, 0x2e,
0xb9, 0x54, 0x94, 0x16, 0x88, 0xea, 0x0f, 0x81, 0xc4, 0xcb, 0x58, 0x7f, 0xec, 0x07, 0x81, 0x2f,
0xc6, 0x0a, 0x59, 0xae, 0xea, 0xa2, 0x7f, 0x5d, 0x83, 0x96, 0x54, 0x08, 0x8f, 0x86, 0x23, 0x91,
0xf9, 0x93, 0xee, 0x82, 0xbe, 0x68, 0x06, 0xa2, 0xfa, 0x2d, 0x07, 0xc3, 0x40, 0x8a, 0x07, 0x38,
0x53, 0x3e, 0xc0, 0xab, 0xd0, 0x44, 0x41, 0xba, 0xcd, 0x3d, 0x19, 0xf1, 0xb4, 0x99, 0x03, 0xaa,
0x77, 0x97, 0xf7, 0xce, 0xe6, 0xbd, 0x1c, 0xb0, 0x7c, 0x97, 0xb9, 0x82, 0xef, 0x72, 0x07, 0xda,
0x92, 0x0c, 0xe7, 0x3b, 0x4f, 0x27, 0xe5, 0xa2, 0x6c, 0x9d, 0x89, 0x6b, 0x8d, 0x54, 0x5f, 0xee,
0xaa, 0x2f, 0x1b, 0xef, 0xfa, 0x52, 0x8d, 0xa4, 0x6b, 0xb0, 0x22, 0x99, 0xf7, 0x24, 0xf1, 0xe2,
0x53, 0xa5, 0x64, 0x87, 0xfa, 0x9d, 0x8d, 0xc3, 0x64, 0x0b, 0x66, 0xf1, 0x33, 0xa5, 0xe7, 0xaa,
0xaf, 0x97, 0x18, 0x42, 0x36, 0x61, 0x96, 0x0d, 0x47, 0x4c, 0x39, 0xcf, 0xc4, 0x0e, 0x62, 0xf0,
0x8c, 0x5c, 0x31, 0x00, 0x2f, 0x3b, 0xa2, 0x85, 0xcb, 0x6e, 0xeb, 0xc8, 0x39, 0x6c, 0x7e, 0x36,
0xa4, 0xab, 0x40, 0x9e, 0x0a, 0xa9, 0x35, 0x73, 0x59, 0xbf, 0x33, 0x03, 0x2d, 0x03, 0xc6, 0x7b,
0x3b, 0xc2, 0x05, 0xf7, 0x87, 0xbe, 0x37, 0x66, 0x19, 0x4b, 0xa4, 0xa4, 0x16, 0x50, 0xae, 0x4a,
0xcf, 0x46, 0xfd, 0x68, 0x92, 0xf5, 0x87, 0x6c, 0x94, 0x30, 0x91, 0x23, 0x70, 0xdc, 0x02, 0x8a,
0xe3, 0xc6, 0xde, 0x2b, 0x73, 0x9c, 0x90, 0x87, 0x02, 0xaa, 0x32, 0x53, 0x82, 0x47, 0xf5, 0x3c,
0x33, 0x25, 0x38, 0x52, 0xd4, 0x38, 0xb3, 0x15, 0x1a, 0xe7, 0x13, 0x58, 0x17, 0xba, 0x45, 0xde,
0xcd, 0x7e, 0x41, 0x4c, 0x2e, 0xe8, 0x45, 0x8f, 0x10, 0xd7, 0xac, 0x04, 0x3c, 0xf5, 0x7f, 0x28,
0x52, 0xe2, 0x8e, 0x5b, 0xc2, 0x71, 0x2c, 0x5e, 0x47, 0x6b, 0xac, 0x48, 0x8d, 0x97, 0x70, 0x3e,
0xd6, 0x7b, 0x65, 0x8f, 0x6d, 0xca, 0xb1, 0x05, 0x9c, 0x76, 0xa0, 0x75, 0x94, 0x45, 0xb1, 0x3a,
0x94, 0x05, 0x68, 0x8b, 0xa6, 0x7c, 0x0e, 0xb9, 0x02, 0x97, 0xb9, 0x14, 0x3d, 0x8b, 0xe2, 0x28,
0x88, 0x46, 0xd3, 0xa3, 0xc9, 0x71, 0x3a, 0x48, 0xfc, 0x18, 0x1d, 0x5b, 0xfa, 0xf7, 0x0e, 0xac,
0x58, 0xbd, 0x32, 0x16, 0xff, 0x45, 0x21, 0xd2, 0x3a, 0x83, 0x2d, 0x04, 0x6f, 0xd9, 0x50, 0x7c,
0x62, 0xa0, 0x48, 0x2b, 0x3c, 0x97, 0x49, 0xed, 0x3d, 0x58, 0x54, 0x2b, 0x53, 0x1f, 0x0a, 0x29,
0xec, 0x96, 0xa5, 0x50, 0x7e, 0xbf, 0x20, 0x3f, 0x50, 0x24, 0x7e, 0x45, 0x38, 0x7d, 0x6c, 0xc8,
0xf7, 0xa8, 0xe2, 0xb2, 0x9e, 0xfa, 0xde, 0x74, 0x34, 0xd5, 0x0a, 0x06, 0x1a, 0x4c, 0xe9, 0xef,
0x3b, 0x00, 0xf9, 0xea, 0x50, 0x30, 0x72, 0xe5, 0xed, 0xf0, 0x7c, 0x60, 0x0e, 0xa0, 0xeb, 0xa4,
0xf3, 0xab, 0xb9, 0x3d, 0x68, 0x29, 0x0c, 0x7d, 0x91, 0x9b, 0xb0, 0x38, 0x0a, 0xa2, 0x63, 0x6e,
0x5d, 0xf9, 0xcb, 0x5b, 0x2a, 0x1f, 0x85, 0x16, 0x04, 0xfc, 0x58, 0xa2, 0xb9, 0xf1, 0xa8, 0x1b,
0xc6, 0x83, 0xfe, 0x41, 0x4d, 0x67, 0xfe, 0xf2, 0x3d, 0x5f, 0x78, 0xcb, 0xc8, 0x6e, 0x49, 0x39,
0x5e, 0x90, 0x69, 0xe3, 0xe9, 0x87, 0xc3, 0x77, 0x86, 0x63, 0xf7, 0x60, 0x21, 0x11, 0xda, 0x47,
0xa9, 0xa6, 0xfa, 0x5b, 0x54, 0x53, 0x27, 0xb1, 0xec, 0xce, 0x2f, 0xc0, 0x92, 0x37, 0x3c, 0x63,
0x49, 0xe6, 0x73, 0x77, 0x9b, 0x9b, 0x77, 0xa1, 0x50, 0x17, 0x0d, 0x9c, 0x5b, 0xdd, 0x9b, 0xb0,
0x28, 0x1f, 0xe2, 0xf4, 0x48, 0x59, 0xd8, 0x90, 0xc3, 0x38, 0x90, 0xfe, 0xb9, 0x23, 0xb3, 0x8c,
0xf6, 0x19, 0x5e, 0xcc, 0x11, 0x73, 0x77, 0xb5, 0xc2, 0xee, 0xbe, 0x2e, 0x93, 0x86, 0x43, 0xe5,
0xd3, 0xcb, 0xd4, 0xab, 0x00, 0x65, 0x82, 0xd6, 0x66, 0x69, 0xfd, 0x7d, 0x58, 0x4a, 0xb7, 0x61,
0xf1, 0x88, 0x65, 0x7b, 0x78, 0x82, 0x4a, 0x31, 0x5e, 0x81, 0x66, 0xc8, 0xce, 0xfb, 0xe2, 0x88,
0x85, 0x19, 0x6f, 0x84, 0xec, 0x9c, 0x8f, 0xa1, 0x04, 0x96, 0xf2, 0xf1, 0xf2, 0xd6, 0xfd, 0xe9,
0x0c, 0xcc, 0x7f, 0x16, 0x9e, 0x45, 0xfe, 0x80, 0xa7, 0x01, 0xc7, 0x6c, 0x1c, 0xa9, 0x27, 0x75,
0xfc, 0x8d, 0x5e, 0x01, 0x7f, 0x2d, 0x8a, 0x33, 0x99, 0x9f, 0x53, 0x4d, 0xb4, 0x90, 0x49, 0x5e,
0xbf, 0x21, 0xa4, 0xcd, 0x40, 0xd0, 0x9b, 0x4c, 0xcc, 0x92, 0x14, 0xd9, 0xca, 0xeb, 0x09, 0x66,
0x8d, 0x7a, 0x02, 0x9e, 0xf0, 0x15, 0x0f, 0x61, 0xfc, 0x48, 0x1a, 0xae, 0x6a, 0x72, 0xaf, 0x37,
0x61, 0x22, 0xbe, 0xe5, 0xb6, 0x76, 0x5e, 0x7a, 0xbd, 0x26, 0x88, 0xf6, 0x58, 0x7c, 0x20, 0xc6,
0x08, 0x7d, 0x65, 0x42, 0xe8, 0x9f, 0x14, 0xab, 0x5a, 0x9a, 0x42, 0x4c, 0x0a, 0x30, 0x2a, 0xb5,
0x21, 0xd3, 0xba, 0x47, 0xec, 0x01, 0x44, 0x7d, 0x4a, 0x11, 0x37, 0x7c, 0x66, 0xf1, 0xa0, 0x27,
0x5b, 0xdc, 0x8f, 0xf1, 0x82, 0xe0, 0xd8, 0x1b, 0xbc, 0xec, 0x73, 0xe7, 0xa9, 0x2d, 0x72, 0x14,
0x16, 0x88, 0xab, 0x1e, 0x04, 0xd9, 0x59, 0x5f, 0x92, 0xe8, 0x88, 0xf7, 0x37, 0x03, 0xa2, 0x5f,
0x02, 0xd9, 0x1b, 0x0e, 0xe5, 0x09, 0xe9, 0x88, 0x22, 0xe7, 0xad, 0x63, 0xf1, 0xb6, 0x62, 0x8f,
0xb5, 0xca, 0x3d, 0xd2, 0x47, 0xd0, 0x3a, 0x34, 0x4a, 0x84, 0xf8, 0x61, 0xaa, 0xe2, 0x20, 0x29,
0x00, 0x06, 0x62, 0x4c, 0x58, 0x33, 0x27, 0xa4, 0xbf, 0x04, 0xe4, 0xc0, 0x4f, 0x33, 0xbd, 0x3e,
0x1d, 0xeb, 0xe9, 0xcc, 0x96, 0x11, 0xeb, 0x49, 0x8c, 0xc7, 0x7a, 0x7b, 0xe2, 0x91, 0xb0, 0xb8,
0xb1, 0x2d, 0x68, 0xf8, 0x02, 0x52, 0xba, 0x7c, 0x41, 0x5e, 0x02, 0x35, 0x52, 0xf7, 0xa3, 0x53,
0x22, 0x41, 0xcb, 0x54, 0xfc, 0xd8, 0x81, 0x79, 0xb9, 0x35, 0x34, 0xa9, 0x56, 0x71, 0x94, 0xd8,
0x98, 0x85, 0x55, 0xd7, 0xb7, 0x94, 0xa5, 0x6e, 0xa6, 0x4a, 0xea, 0x08, 0xd4, 0x63, 0x2f, 0x3b,
0xe5, 0xfe, 0x76, 0xd3, 0xe5, 0xbf, 0x55, 0x5c, 0x35, 0xab, 0xe3, 0x2a, 0xf5, 0x20, 0x2a, 0x17,
0xa5, 0xdf, 0xea, 0xee, 0x8b, 0x07, 0xd1, 0x1c, 0xce, 0x79, 0x20, 0x17, 0x58, 0xe4, 0x81, 0x1c,
0xea, 0xea, 0x7e, 0xda, 0x83, 0xee, 0x43, 0x16, 0xb0, 0x8c, 0xed, 0x05, 0x41, 0x91, 0xfe, 0x15,
0xb8, 0x5c, 0xd1, 0x27, 0xef, 0xfd, 0x63, 0x58, 0x7e, 0xc8, 0x8e, 0x27, 0xa3, 0x03, 0x76, 0x96,
0x27, 0xee, 0x09, 0xd4, 0xd3, 0xd3, 0xe8, 0x5c, 0x9e, 0x17, 0xff, 0x4d, 0x3e, 0x00, 0x08, 0x70,
0x4c, 0x3f, 0x8d, 0xd9, 0x40, 0x15, 0x78, 0x70, 0xe4, 0x28, 0x66, 0x03, 0xfa, 0x09, 0x10, 0x93,
0x8e, 0xdc, 0x02, 0xde, 0xc6, 0xc9, 0x71, 0x3f, 0x9d, 0xa6, 0x19, 0x1b, 0x2b, 0x45, 0x64, 0x42,
0xf4, 0x26, 0xb4, 0x0f, 0xbd, 0xa9, 0xcb, 0xbe, 0x92, 0x35, 0x67, 0x18, 0xbe, 0x79, 0x53, 0x14,
0x4f, 0x1d, 0xbe, 0xf1, 0x6e, 0xfa, 0x37, 0x35, 0x98, 0x13, 0x23, 0x91, 0xea, 0x90, 0xa5, 0x99,
0x1f, 0x8a, 0xdc, 0xb9, 0xa4, 0x6a, 0x40, 0xa5, 0xf3, 0xae, 0x55, 0x9c, 0xb7, 0x74, 0xb3, 0xd4,
0x63, 0xb8, 0x3c, 0x58, 0x0b, 0xe3, 0xd1, 0xa9, 0x3f, 0x66, 0xa2, 0xa4, 0xb0, 0x2e, 0xa3, 0x53,
0x05, 0x14, 0xe2, 0xe4, 0xfc, 0xce, 0x8b, 0xf5, 0x29, 0x41, 0x94, 0xa6, 0xc5, 0x84, 0x2a, 0x35,
0xcb, 0xbc, 0x28, 0x32, 0x2b, 0x69, 0x96, 0x92, 0x06, 0x69, 0xbc, 0x87, 0x06, 0x11, 0xbe, 0x97,
0xa5, 0x41, 0x08, 0x2c, 0x3d, 0x66, 0xcc, 0x65, 0x71, 0x94, 0xe8, 0xc2, 0xbd, 0x3f, 0x71, 0x60,
0x49, 0x5a, 0x15, 0xdd, 0x47, 0xae, 0x5b, 0x26, 0xc8, 0xa9, 0xca, 0xa9, 0xde, 0x80, 0x0e, 0x0f,
0xc2, 0x30, 0xc2, 0xe2, 0x11, 0x97, 0xcc, 0x40, 0x58, 0x20, 0xae, 0x49, 0xa5, 0xfe, 0xc6, 0x7e,
0x20, 0x19, 0x6c, 0x42, 0x68, 0x2e, 0x55, 0x90, 0xc6, 0xd9, 0xeb, 0xb8, 0xba, 0x4d, 0x0f, 0x61,
0xd9, 0x58, 0xaf, 0x14, 0xa8, 0x7b, 0xa0, 0x1e, 0xed, 0x44, 0x42, 0x41, 0xdc, 0x8b, 0x0d, 0xdb,
0x40, 0xe6, 0x9f, 0x59, 0x83, 0xe9, 0x5f, 0x39, 0x9c, 0x05, 0xd2, 0x0f, 0xd3, 0x15, 0x3b, 0x73,
0xc2, 0x35, 0x12, 0xd2, 0xbe, 0x7f, 0xc9, 0x95, 0x6d, 0xf2, 0xad, 0xf7, 0xf4, 0x6e, 0xf4, 0xfb,
0xda, 0x05, 0xbc, 0x99, 0xa9, 0xe2, 0xcd, 0x5b, 0x76, 0x7e, 0x7f, 0x1e, 0x66, 0xd3, 0x41, 0x14,
0x33, 0xba, 0xc2, 0x59, 0xa0, 0xd6, 0x2b, 0x58, 0xb0, 0xfb, 0xcf, 0x0e, 0x2c, 0x88, 0xf4, 0x98,
0x28, 0xdd, 0x65, 0x09, 0xc1, 0xf8, 0xcb, 0xa8, 0x08, 0x26, 0xda, 0xfd, 0x2c, 0x57, 0x16, 0xf7,
0xae, 0x54, 0xf6, 0x29, 0xdf, 0xfb, 0x47, 0x3f, 0xfb, 0xd7, 0x9f, 0xd4, 0xd6, 0xe8, 0xd2, 0xce,
0xd9, 0xed, 0x1d, 0xae, 0xe2, 0xd8, 0x39, 0x1f, 0x71, 0xd7, 0xd9, 0xc2, 0x59, 0xcc, 0x62, 0x61,
0x3d, 0x4b, 0x45, 0xd1, 0xb1, 0x9e, 0xa5, 0xb2, 0xba, 0xd8, 0x9a, 0x65, 0xc2, 0x47, 0xe8, 0x59,
0x76, 0xff, 0xe2, 0x0a, 0x34, 0x75, 0xa0, 0x48, 0x7e, 0x00, 0x1d, 0x2b, 0x15, 0x48, 0x14, 0xe1,
0xaa, 0xdc, 0x62, 0xef, 0x6a, 0x75, 0xa7, 0x9c, 0xf6, 0x43, 0x3e, 0x6d, 0x97, 0xac, 0xe3, 0xb4,
0x32, 0xd7, 0xb7, 0xc3, 0x53, 0xa4, 0xe2, 0x8d, 0xfe, 0x25, 0x2c, 0xd8, 0xa9, 0x42, 0x72, 0xd5,
0x3e, 0xed, 0xc2, 0x6c, 0x1f, 0x5c, 0xd0, 0x2b, 0xa7, 0xbb, 0xca, 0xa7, 0x5b, 0x27, 0xab, 0xe6,
0x74, 0x3a, 0x80, 0x63, 0xbc, 0xaa, 0xc2, 0xac, 0x36, 0x26, 0x8a, 0x5e, 0x75, 0x15, 0x72, 0xef,
0x72, 0xb9, 0xb2, 0x58, 0x96, 0x22, 0xd3, 0x2e, 0x9f, 0x8a, 0x10, 0xce, 0x50, 0xb3, 0xd8, 0x98,
0x7c, 0x1f, 0x9a, 0xba, 0x64, 0x92, 0x6c, 0x18, 0x05, 0xa2, 0x66, 0x11, 0x66, 0xaf, 0x5b, 0xee,
0xa8, 0x3a, 0x2a, 0x93, 0x32, 0x0a, 0xc4, 0x01, 0xac, 0x49, 0x8b, 0x7b, 0xcc, 0x7e, 0x9e, 0x9d,
0x54, 0xd4, 0x48, 0xdf, 0x72, 0xc8, 0x3d, 0x68, 0xa8, 0x2a, 0x52, 0xb2, 0x5e, 0x5d, 0xca, 0xda,
0xdb, 0x28, 0xe1, 0x52, 0x2f, 0xec, 0x01, 0xe4, 0x45, 0x93, 0xa4, 0x7b, 0x51, 0x6d, 0xa7, 0x66,
0x62, 0x45, 0x85, 0xe5, 0x88, 0xd7, 0x8c, 0xda, 0x35, 0x99, 0xe4, 0x6b, 0xf9, 0xf8, 0xca, 0x6a,
0xcd, 0xb7, 0x10, 0xa4, 0xeb, 0x9c, 0x77, 0x4b, 0x64, 0x01, 0x79, 0x17, 0xb2, 0x73, 0x55, 0x5f,
0xf4, 0x10, 0x5a, 0x46, 0x21, 0x26, 0x51, 0x14, 0xca, 0x45, 0x9c, 0xbd, 0x5e, 0x55, 0x97, 0x5c,
0xee, 0xaf, 0x41, 0xc7, 0xaa, 0xa8, 0xd4, 0x37, 0xa3, 0xaa, 0x5e, 0x53, 0xdf, 0x8c, 0xea, 0x22,
0xcc, 0xef, 0x41, 0xcb, 0xa8, 0x7f, 0x24, 0xc6, 0x33, 0x74, 0xa1, 0xbe, 0x51, 0xaf, 0xa8, 0xa2,
0x5c, 0x92, 0xae, 0xf2, 0xfd, 0x2e, 0xd0, 0x26, 0xee, 0x97, 0x17, 0xd9, 0xa0, 0x90, 0xfc, 0x00,
0x16, 0xec, 0xba, 0x47, 0x7d, 0xab, 0x2a, 0x2b, 0x28, 0xf5, 0xad, 0xba, 0xa0, 0x58, 0x52, 0x0a,
0xe4, 0xd6, 0x8a, 0x9e, 0x64, 0xe7, 0xb5, 0x4c, 0x88, 0xbe, 0x21, 0xdf, 0x45, 0xd5, 0x21, 0xab,
0x9e, 0x48, 0x5e, 0x07, 0x6a, 0xd7, 0x46, 0x69, 0x69, 0x2f, 0x15, 0x48, 0xd1, 0x65, 0x4e, 0xbc,
0x45, 0xf2, 0x1d, 0x90, 0xcf, 0x61, 0x5e, 0x56, 0x3f, 0x91, 0xb5, 0x5c, 0xaa, 0x8d, 0xa4, 0x52,
0x6f, 0xbd, 0x08, 0x4b, 0x62, 0x2b, 0x9c, 0x58, 0x87, 0xb4, 0x90, 0xd8, 0x88, 0x65, 0x3e, 0xd2,
0x08, 0x60, 0xd1, 0x7e, 0x3e, 0x4a, 0x35, 0x3b, 0x2a, 0x1f, 0xae, 0x35, 0x3b, 0xaa, 0xdf, 0xa2,
0x6c, 0x25, 0xa3, 0x94, 0xcb, 0x8e, 0xaa, 0x32, 0xf8, 0x4d, 0x68, 0x9b, 0xa5, 0x76, 0x5a, 0x63,
0x57, 0x94, 0xe5, 0x69, 0x8d, 0x5d, 0x55, 0x9b, 0xa7, 0x8e, 0x96, 0xb4, 0xcd, 0x69, 0xc8, 0xf7,
0x60, 0xd1, 0x78, 0xe7, 0x3c, 0x9a, 0x86, 0x03, 0x2d, 0x3a, 0xe5, 0x6a, 0x90, 0x5e, 0x95, 0xe9,
0xa4, 0x1b, 0x9c, 0xf0, 0x32, 0xb5, 0x08, 0xa3, 0xd8, 0x3c, 0x80, 0x96, 0xf9, 0x86, 0xfa, 0x16,
0xba, 0x1b, 0x46, 0x97, 0x59, 0x9f, 0x71, 0xcb, 0x21, 0x7f, 0xe4, 0x40, 0xdb, 0x2c, 0x12, 0x22,
0x56, 0x5e, 0xa6, 0x40, 0xa7, 0x6b, 0xf6, 0x99, 0x84, 0xe8, 0x53, 0xbe, 0xc8, 0xfd, 0xad, 0xc7,
0x16, 0x93, 0x5f, 0x5b, 0x2e, 0xd1, 0xb6, 0xf9, 0xcf, 0x01, 0x6f, 0x8a, 0x9d, 0x66, 0xb5, 0xcc,
0x9b, 0x5b, 0x0e, 0xb9, 0x2b, 0xfe, 0x05, 0x44, 0x85, 0x27, 0xc4, 0x50, 0x6b, 0x45, 0x76, 0x99,
0xff, 0x57, 0xb1, 0xe9, 0xdc, 0x72, 0xc8, 0x6f, 0x89, 0xff, 0x07, 0x90, 0xdf, 0x72, 0xae, 0xbf,
0xef, 0xf7, 0xf4, 0x06, 0xdf, 0xc9, 0x87, 0xf4, 0xb2, 0xb5, 0x93, 0xa2, 0x5e, 0x3f, 0x04, 0xc8,
0x63, 0x4d, 0x52, 0x08, 0xbc, 0xb4, 0xc6, 0x2b, 0x87, 0xa3, 0xf6, 0x69, 0xaa, 0xf8, 0x4c, 0x28,
0x81, 0xb6, 0x11, 0xe5, 0xa5, 0xfa, 0x38, 0xcb, 0x31, 0x63, 0xaf, 0x57, 0xd5, 0x25, 0xe9, 0x7f,
0x9d, 0xd3, 0xff, 0x80, 0x5c, 0x31, 0xe9, 0xef, 0xbc, 0x36, 0x63, 0xcc, 0x37, 0xe4, 0x4b, 0xe8,
0x1c, 0x44, 0xd1, 0xcb, 0x49, 0xac, 0xd3, 0x19, 0x76, 0xd4, 0x84, 0x71, 0x6e, 0xaf, 0xb0, 0x29,
0x7a, 0x9d, 0x53, 0xbe, 0x42, 0x2e, 0xdb, 0x94, 0xf3, 0xc8, 0xf7, 0x0d, 0xf1, 0x60, 0x59, 0x5b,
0x3b, 0xbd, 0x91, 0x9e, 0x4d, 0xc7, 0x0c, 0x40, 0x4b, 0x73, 0x58, 0xfe, 0x87, 0x9e, 0x23, 0x55,
0x34, 0x6f, 0x39, 0xe4, 0x10, 0xda, 0x0f, 0xd9, 0x20, 0x1a, 0x32, 0x19, 0xe8, 0xac, 0xe4, 0x2b,
0xd7, 0x11, 0x52, 0xaf, 0x63, 0x81, 0xb6, 0x06, 0x88, 0xbd, 0x69, 0xc2, 0xbe, 0xda, 0x79, 0x2d,
0x43, 0xa8, 0x37, 0x4a, 0x03, 0xa8, 0xb0, 0xcf, 0xd2, 0x00, 0x85, 0x38, 0xd1, 0xd2, 0x00, 0xa5,
0x38, 0xd1, 0xd2, 0x00, 0x2a, 0xec, 0x24, 0x01, 0x46, 0x8f, 0x85, 0xd0, 0x52, 0xdb, 0xcc, 0x8b,
0x02, 0xd2, 0xde, 0xb5, 0x8b, 0x07, 0xd8, 0xb3, 0x6d, 0xd9, 0xb3, 0x1d, 0x41, 0xe7, 0x21, 0x13,
0xcc, 0x12, 0xef, 0x0c, 0x3d, 0x5b, 0xa5, 0x98, 0x6f, 0x12, 0x45, 0x75, 0xc3, 0xfb, 0x6c, 0x05,
0xcf, 0x93, 0xfc, 0xe4, 0xfb, 0xd0, 0x7a, 0xc2, 0x32, 0xf5, 0xb0, 0xa0, 0x3d, 0x8f, 0xc2, 0x4b,
0x43, 0xaf, 0xe2, 0x5d, 0x82, 0x5e, 0xe3, 0xd4, 0x7a, 0xa4, 0xab, 0xa9, 0xed, 0xb0, 0xe1, 0x88,
0x89, 0xcb, 0xdf, 0xf7, 0x87, 0x6f, 0xc8, 0xaf, 0x73, 0xe2, 0xfa, 0xd5, 0x71, 0xdd, 0xc8, 0x47,
0x9b, 0xc4, 0x17, 0x0b, 0x78, 0x15, 0xe5, 0x30, 0x1a, 0x32, 0xc3, 0xd4, 0x85, 0xd0, 0x32, 0x9e,
0x98, 0xf5, 0x85, 0x2a, 0xbf, 0x5b, 0xeb, 0x0b, 0x55, 0xf1, 0x22, 0x4d, 0x37, 0xf9, 0x3c, 0x94,
0x5c, 0xcb, 0xe7, 0x11, 0xaf, 0xd0, 0xf9, 0x4c, 0x3b, 0xaf, 0xbd, 0x71, 0xf6, 0x86, 0xbc, 0xe0,
0x85, 0xc1, 0xe6, 0xe3, 0x49, 0xee, 0xf9, 0x14, 0xdf, 0x59, 0x34, 0xb3, 0x8c, 0x2e, 0xdb, 0x1b,
0x12, 0x53, 0x71, 0x8b, 0xf8, 0x2d, 0x80, 0xa3, 0x2c, 0x8a, 0x1f, 0x7a, 0x6c, 0x1c, 0x85, 0xb9,
0x26, 0xcb, 0x1f, 0x08, 0x72, 0x4d, 0x66, 0xbc, 0x12, 0x90, 0x17, 0x86, 0xef, 0x69, 0xbd, 0x3d,
0x29, 0xe1, 0xba, 0xf0, 0x0d, 0x41, 0x33, 0xa4, 0xe2, 0x1d, 0x41, 0xb9, 0xa1, 0x22, 0x39, 0x6a,
0xb8, 0xa1, 0x56, 0x76, 0xd5, 0x70, 0x43, 0xed, 0x2c, 0x2a, 0xba, 0xa1, 0x79, 0x16, 0x44, 0xbb,
0xa1, 0xa5, 0x04, 0x8b, 0xd6, 0xa1, 0x15, 0x29, 0x93, 0x43, 0x68, 0xe6, 0xa1, 0xb8, 0x9a, 0xa8,
0x18, 0xb8, 0x6b, 0x63, 0x55, 0x8a, 0x90, 0xe9, 0x12, 0xe7, 0x33, 0x90, 0x06, 0xf2, 0x99, 0x3f,
0xb1, 0x3f, 0x03, 0x10, 0xbb, 0x7b, 0x8c, 0x2d, 0x83, 0xa4, 0x15, 0x08, 0x9b, 0x24, 0xed, 0x88,
0x53, 0x79, 0x32, 0x54, 0x93, 0xbc, 0xeb, 0x6c, 0x1d, 0xcf, 0xf1, 0xff, 0x5f, 0xfd, 0xe6, 0x7f,
0x05, 0x00, 0x00, 0xff, 0xff, 0x5e, 0x53, 0x68, 0x69, 0xf1, 0x3a, 0x00, 0x00,
// 4822 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5b, 0xcd, 0x8f, 0x1c, 0x49,
0x56, 0x77, 0x56, 0x57, 0x77, 0x57, 0xbd, 0xaa, 0xea, 0x8f, 0xe8, 0x76, 0xbb, 0x5c, 0xf6, 0xcc,
0x7a, 0x62, 0x47, 0x33, 0x8d, 0x77, 0xe4, 0xb6, 0x7b, 0xd9, 0x61, 0x76, 0x0c, 0x8c, 0xfc, 0x39,
0x3d, 0x6c, 0x8f, 0xa7, 0x37, 0xdb, 0x33, 0x86, 0x5d, 0xa1, 0x22, 0xbb, 0x2a, 0xba, 0x3a, 0xd7,
0x59, 0x99, 0x39, 0x99, 0x51, 0xdd, 0xae, 0xb5, 0x2c, 0xc1, 0x82, 0x38, 0x81, 0xf6, 0xb0, 0x08,
0xc4, 0x01, 0x04, 0x42, 0x48, 0x5c, 0xe0, 0x1f, 0x40, 0xe2, 0x0f, 0x40, 0x20, 0x90, 0xf6, 0x84,
0xc4, 0x0d, 0x4e, 0x5c, 0x10, 0x07, 0xee, 0x28, 0x5e, 0x7c, 0x64, 0x44, 0x66, 0xb6, 0xed, 0x65,
0x17, 0x4e, 0x5d, 0xf1, 0x8b, 0xc8, 0x17, 0x11, 0x2f, 0x5e, 0xbc, 0xaf, 0x78, 0x0d, 0xed, 0x2c,
0x1d, 0xdd, 0x48, 0xb3, 0x84, 0x27, 0x64, 0x31, 0x8a, 0xb3, 0x74, 0x34, 0xb8, 0x3a, 0x49, 0x92,
0x49, 0xc4, 0x76, 0x82, 0x34, 0xdc, 0x09, 0xe2, 0x38, 0xe1, 0x01, 0x0f, 0x93, 0x38, 0x97, 0x83,
0xe8, 0x2d, 0xd8, 0xb8, 0x97, 0xb1, 0x80, 0xb3, 0x27, 0x41, 0x14, 0x31, 0xee, 0xb3, 0x2f, 0x67,
0x2c, 0xe7, 0x64, 0x00, 0xad, 0x34, 0xc8, 0xf3, 0xb3, 0x24, 0x1b, 0xf7, 0xbd, 0x6b, 0xde, 0x76,
0xd7, 0x37, 0x6d, 0xba, 0x05, 0x9b, 0xee, 0x27, 0x79, 0x9a, 0xc4, 0x39, 0x13, 0xa4, 0x3e, 0x8f,
0xa3, 0x64, 0xf4, 0xf4, 0x27, 0x22, 0xe5, 0x7e, 0xa2, 0x48, 0xfd, 0x97, 0x07, 0x9d, 0xc7, 0x59,
0x10, 0xe7, 0xc1, 0x48, 0x2c, 0x96, 0xf4, 0x61, 0x99, 0x3f, 0x1b, 0x9e, 0x04, 0xf9, 0x09, 0x92,
0x68, 0xfb, 0xba, 0x49, 0xb6, 0x60, 0x29, 0x98, 0x26, 0xb3, 0x98, 0xf7, 0x1b, 0xd7, 0xbc, 0xed,
0x05, 0x5f, 0xb5, 0xc8, 0x7b, 0xb0, 0x1e, 0xcf, 0xa6, 0xc3, 0x51, 0x12, 0x1f, 0x87, 0xd9, 0x54,
0x6e, 0xb9, 0xbf, 0x70, 0xcd, 0xdb, 0x5e, 0xf4, 0xab, 0x1d, 0xe4, 0x4d, 0x80, 0x23, 0xb1, 0x0c,
0x39, 0x45, 0x13, 0xa7, 0xb0, 0x10, 0x42, 0xa1, 0xab, 0x5a, 0x2c, 0x9c, 0x9c, 0xf0, 0xfe, 0x22,
0x12, 0x72, 0x30, 0x41, 0x83, 0x87, 0x53, 0x36, 0xcc, 0x79, 0x30, 0x4d, 0xfb, 0x4b, 0xb8, 0x1a,
0x0b, 0xc1, 0xfe, 0x84, 0x07, 0xd1, 0xf0, 0x98, 0xb1, 0xbc, 0xbf, 0xac, 0xfa, 0x0d, 0x42, 0xfb,
0xb0, 0xf5, 0x31, 0xe3, 0xd6, 0xae, 0x73, 0xc5, 0x41, 0xba, 0x0f, 0xc4, 0x82, 0xef, 0x33, 0x1e,
0x84, 0x51, 0x4e, 0xde, 0x87, 0x2e, 0xb7, 0x06, 0xf7, 0xbd, 0x6b, 0x0b, 0xdb, 0x9d, 0x5d, 0x72,
0x03, 0x4f, 0xfd, 0x86, 0xf5, 0x81, 0xef, 0x8c, 0xa3, 0xff, 0xec, 0x41, 0xe7, 0x90, 0xc5, 0x63,
0x7d, 0x3e, 0x04, 0x9a, 0x63, 0x96, 0x73, 0x75, 0x36, 0xf8, 0x9b, 0x7c, 0x05, 0x3a, 0xe2, 0xef,
0x30, 0xe7, 0x59, 0x18, 0x4f, 0x90, 0xb5, 0x6d, 0x1f, 0x04, 0x74, 0x88, 0x08, 0x59, 0x83, 0x85,
0x60, 0xca, 0x91, 0xa1, 0x0b, 0xbe, 0xf8, 0x49, 0xde, 0x82, 0x6e, 0x1a, 0xcc, 0xa7, 0x2c, 0xe6,
0x05, 0x13, 0xbb, 0x7e, 0x47, 0x61, 0x7b, 0x82, 0x8b, 0x37, 0x60, 0xc3, 0x1e, 0xa2, 0xa9, 0x2f,
0x22, 0xf5, 0x75, 0x6b, 0xa4, 0x9a, 0xe4, 0x5d, 0x58, 0xd5, 0xe3, 0x33, 0xb9, 0x58, 0x64, 0x6b,
0xdb, 0x5f, 0x51, 0xb0, 0x66, 0xd0, 0x1f, 0x78, 0xd0, 0x95, 0x5b, 0x92, 0xf2, 0x43, 0xde, 0x86,
0x9e, 0xfe, 0x92, 0x65, 0x59, 0x92, 0x29, 0xa9, 0x71, 0x41, 0x72, 0x1d, 0xd6, 0x34, 0x90, 0x66,
0x2c, 0x9c, 0x06, 0x13, 0x86, 0x5b, 0xed, 0xfa, 0x15, 0x9c, 0xec, 0x16, 0x14, 0xb3, 0x64, 0xc6,
0x19, 0x6e, 0xbd, 0xb3, 0xdb, 0x55, 0xec, 0xf6, 0x05, 0xe6, 0xbb, 0x43, 0xe8, 0x0f, 0x3c, 0xe8,
0xde, 0x3b, 0x09, 0xe2, 0x98, 0x45, 0x07, 0x49, 0x18, 0x73, 0x21, 0x46, 0xc7, 0xb3, 0x78, 0x1c,
0xc6, 0x93, 0x21, 0x7f, 0x16, 0xea, 0xeb, 0xe0, 0x60, 0x62, 0x51, 0x76, 0x5b, 0x30, 0x49, 0xf1,
0xbf, 0x82, 0x0b, 0x7a, 0xc9, 0x8c, 0xa7, 0x33, 0x3e, 0x0c, 0xe3, 0x31, 0x7b, 0x86, 0x6b, 0xea,
0xf9, 0x0e, 0x46, 0x7f, 0x19, 0xd6, 0xf6, 0x85, 0x7c, 0xc6, 0x61, 0x3c, 0xb9, 0x33, 0x1e, 0x67,
0x2c, 0xcf, 0xc5, 0xa5, 0x49, 0x67, 0x47, 0x4f, 0xd9, 0x5c, 0xf1, 0x45, 0xb5, 0x84, 0x28, 0x9c,
0x24, 0x39, 0x57, 0xf3, 0xe1, 0x6f, 0xfa, 0x6f, 0x1e, 0xac, 0x0a, 0xde, 0x7e, 0x1a, 0xc4, 0x73,
0x2d, 0x32, 0xfb, 0xd0, 0x15, 0xa4, 0x1e, 0x27, 0x77, 0xe4, 0xd5, 0x93, 0xa2, 0xb7, 0xad, 0x78,
0x51, 0x1a, 0x7d, 0xc3, 0x1e, 0xfa, 0x20, 0xe6, 0xd9, 0xdc, 0x77, 0xbe, 0x16, 0xc2, 0xc6, 0x83,
0x6c, 0xc2, 0x38, 0x5e, 0x4a, 0x75, 0x49, 0x41, 0x42, 0xf7, 0x92, 0xf8, 0x98, 0x5c, 0x83, 0x6e,
0x1e, 0xf0, 0x61, 0xca, 0xb2, 0xe1, 0xd1, 0x9c, 0x33, 0x14, 0x98, 0x05, 0x1f, 0xf2, 0x80, 0x1f,
0xb0, 0xec, 0xee, 0x9c, 0xb3, 0xc1, 0x47, 0xb0, 0x5e, 0x99, 0x45, 0xc8, 0x68, 0xb1, 0x45, 0xf1,
0x93, 0x6c, 0xc2, 0xe2, 0x69, 0x10, 0xcd, 0x98, 0xd2, 0x15, 0xb2, 0xf1, 0x61, 0xe3, 0x03, 0x8f,
0xbe, 0x03, 0x6b, 0xc5, 0xb2, 0x95, 0x10, 0x11, 0x68, 0x9a, 0x53, 0x6a, 0xfb, 0xf8, 0x9b, 0xfe,
0x96, 0x27, 0x07, 0xde, 0x4b, 0x42, 0x73, 0x3f, 0xc5, 0xc0, 0x60, 0x3c, 0xd6, 0x42, 0x86, 0xbf,
0xcf, 0xd5, 0x4b, 0x3f, 0xfd, 0x66, 0xe9, 0xbb, 0xb0, 0x6e, 0x2d, 0xe1, 0x25, 0x8b, 0xfd, 0x53,
0x0f, 0xd6, 0x1f, 0xb1, 0x33, 0x75, 0xea, 0x7a, 0xb5, 0x1f, 0x40, 0x93, 0xcf, 0x53, 0x86, 0x23,
0x57, 0x76, 0xdf, 0x56, 0x87, 0x56, 0x19, 0x77, 0x43, 0x35, 0x1f, 0xcf, 0x53, 0xe6, 0xe3, 0x17,
0xf4, 0x33, 0xe8, 0x58, 0x20, 0xb9, 0x04, 0x1b, 0x4f, 0x3e, 0x79, 0xfc, 0xe8, 0xc1, 0xe1, 0xe1,
0xf0, 0xe0, 0xf3, 0xbb, 0xdf, 0x7a, 0xf0, 0x6b, 0xc3, 0xbd, 0x3b, 0x87, 0x7b, 0x6b, 0x17, 0xc8,
0x16, 0x90, 0x47, 0x0f, 0x0e, 0x1f, 0x3f, 0xb8, 0xef, 0xe0, 0x1e, 0x59, 0x85, 0x8e, 0x0d, 0x34,
0xe8, 0x00, 0xfa, 0x8f, 0xd8, 0xd9, 0x93, 0x90, 0xc7, 0x2c, 0xcf, 0xdd, 0xe9, 0xe9, 0x0d, 0x20,
0xf6, 0x9a, 0xd4, 0x36, 0xfb, 0xb0, 0x1c, 0x48, 0x48, 0x1b, 0x02, 0xd5, 0xa4, 0xef, 0x00, 0x39,
0x0c, 0x27, 0xf1, 0xa7, 0x2c, 0xcf, 0x83, 0x09, 0xd3, 0x9b, 0x5d, 0x83, 0x85, 0x69, 0x3e, 0x51,
0x17, 0x4d, 0xfc, 0xa4, 0x5f, 0x87, 0x0d, 0x67, 0x9c, 0x22, 0x7c, 0x15, 0xda, 0x79, 0x38, 0x89,
0x03, 0x3e, 0xcb, 0x98, 0x22, 0x5d, 0x00, 0xf4, 0x21, 0x6c, 0x7e, 0xc1, 0xb2, 0xf0, 0x78, 0xfe,
0x2a, 0xf2, 0x2e, 0x9d, 0x46, 0x99, 0xce, 0x03, 0xb8, 0x58, 0xa2, 0xa3, 0xa6, 0x97, 0x92, 0xa9,
0xce, 0xaf, 0xe5, 0xcb, 0x86, 0x75, 0x4f, 0x1b, 0xf6, 0x3d, 0xa5, 0x9f, 0x03, 0xb9, 0x97, 0xc4,
0x31, 0x1b, 0xf1, 0x03, 0xc6, 0x32, 0xbd, 0x98, 0xaf, 0x59, 0x62, 0xd8, 0xd9, 0xbd, 0xa4, 0x0e,
0xb6, 0x7c, 0xf9, 0x95, 0x7c, 0x12, 0x68, 0xa6, 0x2c, 0x9b, 0x22, 0xe1, 0x96, 0x8f, 0xbf, 0xe9,
0x0e, 0x6c, 0x38, 0x64, 0x0b, 0x9e, 0xa7, 0x8c, 0x65, 0x43, 0xb5, 0xba, 0x45, 0x5f, 0x37, 0xe9,
0x2d, 0xb8, 0x78, 0x3f, 0xcc, 0x47, 0xd5, 0xa5, 0x88, 0x4f, 0x66, 0x47, 0xc3, 0xe2, 0xfa, 0xe9,
0xa6, 0xb0, 0x72, 0xe5, 0x4f, 0x94, 0xcd, 0xff, 0x5d, 0x0f, 0x9a, 0x7b, 0x8f, 0xf7, 0xef, 0x09,
0x87, 0x21, 0x8c, 0x47, 0xc9, 0x54, 0xd8, 0x06, 0xc9, 0x0e, 0xd3, 0x3e, 0xf7, 0x5a, 0x5d, 0x85,
0x36, 0x9a, 0x14, 0x61, 0x90, 0xf1, 0x52, 0x75, 0xfd, 0x02, 0x10, 0xce, 0x00, 0x7b, 0x96, 0x86,
0x19, 0x5a, 0x7b, 0x6d, 0xc3, 0x9b, 0xa8, 0x2c, 0xab, 0x1d, 0xf4, 0x1f, 0x9a, 0xd0, 0xbb, 0x33,
0xe2, 0xe1, 0x29, 0x53, 0xca, 0x1b, 0x67, 0x45, 0x40, 0xad, 0x47, 0xb5, 0x84, 0x99, 0xc9, 0xd8,
0x34, 0xe1, 0x6c, 0xe8, 0x1c, 0x93, 0x0b, 0x8a, 0x51, 0x23, 0x49, 0x68, 0x98, 0x0a, 0x33, 0x80,
0xeb, 0x6b, 0xfb, 0x2e, 0x28, 0x58, 0x26, 0x00, 0xc1, 0x65, 0xb1, 0xb2, 0xa6, 0xaf, 0x9b, 0x82,
0x1f, 0xa3, 0x20, 0x0d, 0x46, 0x21, 0x9f, 0x2b, 0x6d, 0x60, 0xda, 0x82, 0x76, 0x94, 0x8c, 0x82,
0x68, 0x78, 0x14, 0x44, 0x41, 0x3c, 0x62, 0xca, 0xef, 0x70, 0x41, 0xf2, 0x0e, 0xac, 0xa8, 0x25,
0xe9, 0x61, 0xd2, 0xfd, 0x28, 0xa1, 0xc2, 0x45, 0x19, 0x25, 0xd3, 0x69, 0xc8, 0x85, 0x47, 0xd2,
0x6f, 0x49, 0xcd, 0x53, 0x20, 0xb8, 0x13, 0xd9, 0x3a, 0x93, 0x3c, 0x6c, 0xcb, 0xd9, 0x1c, 0x50,
0x50, 0x39, 0x66, 0x0c, 0x35, 0xd8, 0xd3, 0xb3, 0x3e, 0x48, 0x2a, 0x05, 0x22, 0x4e, 0x63, 0x16,
0xe7, 0x8c, 0xf3, 0x88, 0x8d, 0xcd, 0x82, 0x3a, 0x38, 0xac, 0xda, 0x41, 0x6e, 0xc2, 0x86, 0x74,
0x92, 0xf2, 0x80, 0x27, 0xf9, 0x49, 0x98, 0x0f, 0x73, 0x16, 0xf3, 0x7e, 0x17, 0xc7, 0xd7, 0x75,
0x91, 0x0f, 0xe0, 0x52, 0x09, 0xce, 0xd8, 0x88, 0x85, 0xa7, 0x6c, 0xdc, 0xef, 0xe1, 0x57, 0xe7,
0x75, 0x93, 0x6b, 0xd0, 0x11, 0xbe, 0xe1, 0x2c, 0x1d, 0x07, 0x9c, 0xe5, 0xfd, 0x15, 0x3c, 0x07,
0x1b, 0x22, 0xb7, 0xa0, 0x97, 0x32, 0x69, 0x85, 0x4f, 0x78, 0x34, 0xca, 0xfb, 0xab, 0x68, 0xfa,
0x3a, 0xea, 0xb2, 0x09, 0xf9, 0xf5, 0xdd, 0x11, 0xf4, 0x22, 0x6c, 0xec, 0x87, 0x39, 0x57, 0xb2,
0x64, 0xf4, 0xdb, 0x1e, 0x6c, 0xba, 0xb0, 0xba, 0x6d, 0x37, 0xa1, 0xa5, 0x04, 0x23, 0xef, 0x77,
0x90, 0xf8, 0xa6, 0x22, 0xee, 0xc8, 0xa4, 0x6f, 0x46, 0xd1, 0xdf, 0x69, 0x40, 0x53, 0xdc, 0xa4,
0xf3, 0x6f, 0x9d, 0x7d, 0x85, 0x1b, 0xce, 0x15, 0xb6, 0x15, 0xea, 0x82, 0xa3, 0x50, 0xd1, 0x27,
0x9e, 0x73, 0xa6, 0xf8, 0x2d, 0x65, 0xd2, 0x42, 0x8a, 0xfe, 0x8c, 0x8d, 0x4e, 0x51, 0x30, 0x4d,
0xbf, 0x40, 0x84, 0xd8, 0x0a, 0x43, 0x86, 0x5f, 0x4b, 0xa9, 0x34, 0x6d, 0xdd, 0x87, 0x5f, 0x2e,
0x17, 0x7d, 0xf8, 0x5d, 0x1f, 0x96, 0xc3, 0xf8, 0x28, 0x99, 0xc5, 0x63, 0x94, 0xc0, 0x96, 0xaf,
0x9b, 0xe2, 0x92, 0xa7, 0xe8, 0xff, 0x84, 0x53, 0xa6, 0x44, 0xaf, 0x00, 0x28, 0x11, 0x8e, 0x4e,
0x8e, 0x3a, 0xc5, 0x30, 0xf9, 0x7d, 0x58, 0xb7, 0x30, 0xc5, 0xe1, 0xb7, 0x60, 0x51, 0xec, 0x5e,
0x7b, 0xcc, 0xfa, 0xec, 0x50, 0x19, 0xc9, 0x1e, 0xba, 0x06, 0x2b, 0x1f, 0x33, 0xfe, 0x49, 0x7c,
0x9c, 0x68, 0x4a, 0xff, 0xdd, 0x80, 0x55, 0x03, 0x29, 0x42, 0xdb, 0xb0, 0x1a, 0x8e, 0x59, 0xcc,
0x43, 0x3e, 0x1f, 0x3a, 0xfe, 0x54, 0x19, 0x16, 0xea, 0x3d, 0x88, 0xc2, 0x20, 0x57, 0x0a, 0x42,
0x36, 0xc8, 0x2e, 0x6c, 0x0a, 0xd9, 0xd2, 0xe2, 0x62, 0x8e, 0x5d, 0xba, 0x71, 0xb5, 0x7d, 0xe2,
0x3a, 0x08, 0x5c, 0x2a, 0xa0, 0xe2, 0x13, 0xa9, 0xcc, 0xea, 0xba, 0x04, 0xd7, 0x24, 0x25, 0xb1,
0xe5, 0x45, 0x1c, 0x57, 0x00, 0x95, 0xc8, 0x66, 0x49, 0xba, 0x90, 0xe5, 0xc8, 0xc6, 0x8a, 0x8e,
0x5a, 0x95, 0xe8, 0x68, 0x1b, 0x56, 0xf3, 0x79, 0x3c, 0x62, 0xe3, 0x21, 0x4f, 0xc4, 0xbc, 0x61,
0x8c, 0xa7, 0xd3, 0xf2, 0xcb, 0x30, 0xc6, 0x71, 0x2c, 0xe7, 0x31, 0xe3, 0xa8, 0x17, 0x5a, 0xbe,
0x6e, 0x0a, 0x15, 0x8b, 0x43, 0xa4, 0xd0, 0xb7, 0x7d, 0xd5, 0xa2, 0xdf, 0x47, 0x53, 0x67, 0x42,
0xb5, 0xcf, 0xf1, 0x1e, 0x92, 0x2b, 0xd0, 0x96, 0xf3, 0xe7, 0x27, 0x81, 0x0e, 0x2a, 0x11, 0x38,
0x3c, 0x09, 0x44, 0x24, 0xe2, 0x6c, 0x49, 0x4a, 0x7c, 0x07, 0xb1, 0x3d, 0xb9, 0xa3, 0xb7, 0x61,
0x45, 0x07, 0x81, 0xf9, 0x30, 0x62, 0xc7, 0x5c, 0xbb, 0xce, 0xf1, 0x6c, 0x2a, 0xa6, 0xcb, 0xf7,
0xd9, 0x31, 0xa7, 0x8f, 0x60, 0x5d, 0xdd, 0xb6, 0xcf, 0x52, 0xa6, 0xa7, 0xfe, 0x66, 0x59, 0x9b,
0x4b, 0x73, 0xbb, 0xa1, 0xa4, 0xc8, 0xf6, 0xf7, 0x4b, 0x2a, 0x9e, 0xfa, 0x40, 0x54, 0xf7, 0xbd,
0x28, 0xc9, 0x99, 0x22, 0x48, 0xa1, 0x3b, 0x8a, 0x92, 0xbc, 0x1c, 0x14, 0xd8, 0x98, 0xe0, 0x5b,
0x3e, 0x1b, 0x8d, 0xc4, 0x2d, 0x95, 0x06, 0x5b, 0x37, 0xe9, 0x5f, 0x79, 0xb0, 0x81, 0xd4, 0xb4,
0x5e, 0x30, 0x5e, 0xde, 0xeb, 0x2f, 0xb3, 0x3b, 0xb2, 0x83, 0x94, 0x4d, 0x58, 0x3c, 0x4e, 0xb2,
0x11, 0x53, 0x33, 0xc9, 0xc6, 0xcf, 0xc2, 0x6f, 0xfd, 0x17, 0x0f, 0xd6, 0x71, 0xa9, 0x87, 0x3c,
0xe0, 0xb3, 0x5c, 0x6d, 0xff, 0x17, 0xa1, 0x27, 0xb6, 0xca, 0xb4, 0xa8, 0xab, 0x85, 0x6e, 0x9a,
0x5b, 0x89, 0xa8, 0x1c, 0xbc, 0x77, 0xc1, 0x77, 0x07, 0x93, 0x8f, 0xa0, 0x6b, 0x47, 0xf2, 0xb8,
0xe6, 0xce, 0xee, 0x65, 0xbd, 0xcb, 0x8a, 0xe4, 0xec, 0x5d, 0xf0, 0x9d, 0x0f, 0xc8, 0x6d, 0x00,
0xb4, 0xb3, 0x48, 0x56, 0x05, 0x75, 0x97, 0x5d, 0x26, 0x59, 0x87, 0xb5, 0x77, 0xc1, 0xb7, 0x86,
0xdf, 0x6d, 0xc1, 0x92, 0x34, 0x0c, 0xf4, 0x63, 0xe8, 0x39, 0x2b, 0x75, 0xfc, 0xf1, 0xae, 0xf4,
0xc7, 0x2b, 0xe1, 0x5a, 0xa3, 0x26, 0x5c, 0xfb, 0xf3, 0x06, 0x10, 0x21, 0x6d, 0xa5, 0xe3, 0x7c,
0x07, 0x56, 0x14, 0xfb, 0x5d, 0x57, 0xac, 0x84, 0xa2, 0x05, 0x4b, 0xc6, 0x8e, 0x3f, 0xd2, 0xf5,
0x6d, 0x88, 0xdc, 0x00, 0x62, 0x35, 0x75, 0x0c, 0x2e, 0x75, 0x7f, 0x4d, 0x8f, 0x50, 0x52, 0xd2,
0x99, 0xd0, 0xd1, 0xa7, 0xf2, 0xbf, 0x9a, 0x78, 0xbe, 0xb5, 0x7d, 0x98, 0xf2, 0x99, 0x89, 0x00,
0x3f, 0xe0, 0xda, 0x63, 0xd1, 0xed, 0xb2, 0x20, 0x2d, 0xbd, 0x52, 0x90, 0x96, 0x2b, 0x82, 0xf4,
0x63, 0x0f, 0xd6, 0x04, 0x8f, 0x1c, 0x39, 0xfa, 0x10, 0x50, 0x8c, 0x5f, 0x53, 0x8c, 0x9c, 0xb1,
0x3f, 0xbd, 0x14, 0x7d, 0x00, 0x6d, 0x24, 0x98, 0xa4, 0x2c, 0x56, 0x42, 0xd4, 0x77, 0x85, 0xa8,
0xd0, 0x20, 0x7b, 0x17, 0xfc, 0x62, 0xb0, 0x25, 0x42, 0xff, 0xe4, 0x41, 0x47, 0x2d, 0xf3, 0x7f,
0xed, 0x06, 0x0f, 0xa0, 0x25, 0xa4, 0xc9, 0xf2, 0x32, 0x4d, 0x5b, 0x68, 0xe9, 0xa9, 0x88, 0x42,
0x84, 0x59, 0x72, 0x5c, 0xe0, 0x32, 0x2c, 0x6c, 0x0c, 0x2a, 0xcb, 0x7c, 0xc8, 0xc3, 0x68, 0xa8,
0x7b, 0x55, 0xd2, 0xab, 0xae, 0x4b, 0xe8, 0x8c, 0x9c, 0x07, 0x13, 0xa6, 0xcc, 0x87, 0x6c, 0xd0,
0x4b, 0x70, 0x51, 0x6d, 0xc8, 0x95, 0x66, 0xfa, 0x9f, 0x00, 0x5b, 0xe5, 0x1e, 0xe3, 0xfe, 0x28,
0x9f, 0x2e, 0x0a, 0xa7, 0x47, 0x89, 0x71, 0x0f, 0x3d, 0xdb, 0xdd, 0x73, 0xba, 0xc8, 0x31, 0x5c,
0xd4, 0x56, 0x52, 0x70, 0xb4, 0xb0, 0x89, 0x0d, 0x34, 0xef, 0x37, 0x5d, 0x09, 0x28, 0xcd, 0xa7,
0x61, 0xfb, 0xca, 0xd5, 0x93, 0x23, 0x13, 0xe8, 0x1b, 0x6b, 0xac, 0x74, 0xb3, 0x65, 0xb1, 0xc5,
0x54, 0x5f, 0x7b, 0xf9, 0x54, 0xa8, 0x47, 0xc6, 0x1a, 0x3d, 0x97, 0x18, 0x79, 0x06, 0x6f, 0xea,
0x3e, 0xd4, 0xbd, 0xd5, 0xe9, 0x9a, 0xaf, 0xb3, 0xb3, 0x87, 0xe2, 0x5b, 0x77, 0xce, 0x57, 0xd0,
0x1d, 0xfc, 0xbd, 0x07, 0x2b, 0x2e, 0x35, 0x21, 0x35, 0x2a, 0x48, 0xd0, 0xba, 0x41, 0xfb, 0x38,
0x25, 0xb8, 0x1a, 0xe6, 0x34, 0xea, 0xc2, 0x1c, 0x3b, 0x98, 0x59, 0x78, 0x55, 0x30, 0xd3, 0x7c,
0xbd, 0x60, 0x66, 0xb1, 0x2e, 0x98, 0x19, 0xfc, 0x59, 0x03, 0x48, 0xf5, 0x74, 0xc9, 0x43, 0x19,
0x67, 0xc5, 0x2c, 0x52, 0x2a, 0xe2, 0xbd, 0xd7, 0x12, 0x10, 0x0d, 0xeb, 0x8f, 0x85, 0xa0, 0xda,
0x2a, 0xc0, 0x76, 0x36, 0x7a, 0x7e, 0x5d, 0x17, 0xb9, 0x0e, 0x6b, 0xc5, 0xdd, 0x89, 0x0a, 0x5d,
0xd1, 0xf3, 0x2b, 0x78, 0x29, 0x12, 0x6b, 0xbe, 0x3a, 0x12, 0x5b, 0x7c, 0x75, 0x24, 0xb6, 0x54,
0x8e, 0xc4, 0x06, 0xcf, 0xa1, 0xe7, 0x08, 0xc8, 0xcf, 0x8c, 0x39, 0x65, 0x9f, 0x46, 0x8a, 0x82,
0x83, 0x0d, 0xfe, 0xa3, 0x01, 0xa4, 0x2a, 0xa3, 0xff, 0x9f, 0x4b, 0x40, 0x81, 0x73, 0xd4, 0xcc,
0x82, 0x12, 0x38, 0x47, 0xc1, 0xfc, 0x5f, 0x2a, 0xce, 0xf7, 0x60, 0x3d, 0x63, 0xa3, 0xe4, 0x94,
0x65, 0x56, 0x2c, 0x2c, 0x0f, 0xaa, 0xda, 0x21, 0x9c, 0x3a, 0x37, 0xfa, 0x6c, 0x39, 0x39, 0x7f,
0xcb, 0x7a, 0x94, 0x83, 0xd0, 0x6f, 0xc2, 0xa6, 0x7c, 0x62, 0xb9, 0x2b, 0x49, 0x69, 0xbf, 0xe2,
0x2d, 0xe8, 0x9e, 0xc9, 0xf4, 0xdb, 0x30, 0x89, 0xa3, 0xb9, 0x32, 0x34, 0x1d, 0x85, 0x7d, 0x16,
0x47, 0x73, 0x7a, 0x0b, 0x2e, 0x96, 0x3e, 0x2d, 0xf2, 0x42, 0xae, 0x7a, 0xd6, 0x4d, 0xa1, 0xf8,
0xd5, 0x79, 0xb8, 0xd3, 0xd1, 0x5d, 0xd8, 0x2a, 0x77, 0xbc, 0x92, 0xd8, 0x47, 0x40, 0xbe, 0x3d,
0x63, 0xd9, 0x1c, 0x53, 0xec, 0x26, 0x8b, 0x79, 0xa9, 0x1c, 0xeb, 0x2e, 0xa5, 0xb3, 0xa3, 0x6f,
0xb1, 0xb9, 0x7e, 0x99, 0x68, 0x98, 0x97, 0x09, 0x7a, 0x1b, 0x36, 0x1c, 0x02, 0xe6, 0x8d, 0x60,
0x09, 0xd3, 0xf4, 0x3a, 0x0e, 0x74, 0x53, 0xf9, 0xaa, 0x8f, 0xfe, 0x91, 0x07, 0x0b, 0x7b, 0x49,
0x6a, 0xa7, 0x67, 0x3c, 0x37, 0x3d, 0xa3, 0xf4, 0xde, 0xd0, 0xa8, 0xb5, 0x86, 0xba, 0x8a, 0x36,
0x28, 0xb4, 0x56, 0x30, 0xe5, 0x22, 0x12, 0x3a, 0x4e, 0xb2, 0xb3, 0x20, 0x1b, 0x2b, 0x59, 0x2b,
0xa1, 0x62, 0xf9, 0xc5, 0x8d, 0x17, 0x3f, 0x85, 0xad, 0xc7, 0x1c, 0xd5, 0x5c, 0x05, 0x6f, 0xaa,
0x45, 0x7f, 0xe8, 0xc1, 0x22, 0xae, 0x55, 0x08, 0xa8, 0x34, 0x8c, 0xf8, 0xda, 0x84, 0x29, 0x30,
0x4f, 0x0a, 0x68, 0x09, 0x2e, 0xbd, 0x41, 0x35, 0xca, 0x6f, 0x50, 0x22, 0x56, 0x94, 0xad, 0xe2,
0x71, 0xa7, 0x00, 0xc8, 0x9b, 0xd0, 0x3c, 0x49, 0x52, 0x6d, 0x7e, 0x40, 0xe7, 0x3c, 0x92, 0xd4,
0x47, 0x9c, 0x5e, 0x87, 0xd5, 0x47, 0xc9, 0x98, 0x59, 0x61, 0xf3, 0xb9, 0xc7, 0x44, 0x7f, 0xd3,
0x83, 0x96, 0x1e, 0x4c, 0xb6, 0xa1, 0x29, 0xcc, 0x48, 0xc9, 0x67, 0x33, 0x99, 0x4b, 0x31, 0xce,
0xc7, 0x11, 0xe2, 0x56, 0x63, 0xe0, 0x56, 0xd8, 0x78, 0x1d, 0xb6, 0x15, 0xf6, 0x53, 0xf8, 0xca,
0xb8, 0xe6, 0x92, 0xa1, 0x29, 0xa1, 0xf4, 0x47, 0x1e, 0xf4, 0x9c, 0x39, 0x84, 0xf7, 0x1c, 0x05,
0x39, 0x57, 0xd9, 0x1e, 0xc5, 0x44, 0x1b, 0xb2, 0x53, 0x2c, 0x0d, 0x37, 0xc5, 0x62, 0x42, 0xfc,
0x05, 0x3b, 0xc4, 0xbf, 0x09, 0x6d, 0x95, 0x4f, 0x61, 0x9a, 0x6f, 0xfa, 0xb6, 0x8a, 0x19, 0x75,
0x4e, 0xb6, 0x18, 0x44, 0x6f, 0x43, 0xc7, 0xea, 0x11, 0x13, 0xc6, 0x8c, 0x9f, 0x25, 0xd9, 0x53,
0x9d, 0xd3, 0x51, 0x4d, 0xf3, 0xea, 0xd0, 0x28, 0x5e, 0x1d, 0xe8, 0x5f, 0x7b, 0xd0, 0x13, 0x32,
0x11, 0xc6, 0x93, 0x83, 0x24, 0x0a, 0x47, 0x73, 0x94, 0x0d, 0x7d, 0xfc, 0xc3, 0x31, 0x8b, 0x78,
0x60, 0x64, 0xc3, 0x85, 0x85, 0x65, 0x9e, 0x86, 0x31, 0xea, 0x0b, 0x25, 0x19, 0xa6, 0x2d, 0x64,
0x5c, 0x98, 0x8d, 0xa3, 0x20, 0x67, 0xc3, 0xa9, 0xf0, 0xea, 0x95, 0xa2, 0x74, 0x40, 0xa1, 0xfe,
0x04, 0x90, 0x05, 0x9c, 0x0d, 0xa7, 0x61, 0x14, 0x85, 0x72, 0xac, 0x94, 0xe5, 0xba, 0x2e, 0xfa,
0xb7, 0x0d, 0xe8, 0x28, 0x85, 0xf0, 0x60, 0x3c, 0x91, 0x09, 0x48, 0xe5, 0x2e, 0x98, 0x8b, 0x66,
0x21, 0xba, 0xdf, 0x71, 0x30, 0x2c, 0xa4, 0x7c, 0x80, 0x0b, 0xd5, 0x03, 0xbc, 0x0a, 0x6d, 0x21,
0x48, 0xb7, 0xd0, 0x93, 0x91, 0x0f, 0xbd, 0x05, 0xa0, 0x7b, 0x77, 0xb1, 0x77, 0xb1, 0xe8, 0x45,
0xc0, 0xf1, 0x5d, 0x96, 0x4a, 0xbe, 0xcb, 0x07, 0xd0, 0x55, 0x64, 0x90, 0xef, 0x18, 0xb5, 0x14,
0xa2, 0xec, 0x9c, 0x89, 0xef, 0x8c, 0xd4, 0x5f, 0xee, 0xea, 0x2f, 0x5b, 0xaf, 0xfa, 0x52, 0x8f,
0xa4, 0x17, 0x61, 0x43, 0x31, 0xef, 0xe3, 0x2c, 0x48, 0x4f, 0xb4, 0x92, 0x1d, 0x9b, 0x57, 0x47,
0x84, 0xc9, 0x75, 0x58, 0x14, 0x9f, 0x69, 0x3d, 0x57, 0x7f, 0xbd, 0xe4, 0x10, 0xb2, 0x0d, 0x8b,
0x6c, 0x3c, 0x61, 0xda, 0x79, 0x26, 0x6e, 0x10, 0x23, 0xce, 0xc8, 0x97, 0x03, 0xc4, 0x65, 0x17,
0x68, 0xe9, 0xb2, 0xbb, 0x3a, 0x72, 0x49, 0x34, 0x3f, 0x19, 0xd3, 0x4d, 0x20, 0x8f, 0xa4, 0xd4,
0xda, 0x29, 0xb5, 0xdf, 0x5e, 0x80, 0x8e, 0x05, 0x8b, 0x7b, 0x3b, 0x11, 0x0b, 0x1e, 0x8e, 0xc3,
0x60, 0xca, 0x38, 0xcb, 0x94, 0xa4, 0x96, 0x50, 0x54, 0xa5, 0xa7, 0x93, 0x61, 0x32, 0xe3, 0xc3,
0x31, 0x9b, 0x64, 0x4c, 0x66, 0x2a, 0x3c, 0xbf, 0x84, 0x8a, 0x71, 0xd3, 0xe0, 0x99, 0x3d, 0x4e,
0xca, 0x43, 0x09, 0xd5, 0x09, 0x32, 0xc9, 0xa3, 0x66, 0x91, 0x20, 0x93, 0x1c, 0x29, 0x6b, 0x9c,
0xc5, 0x1a, 0x8d, 0xf3, 0x3e, 0x6c, 0x49, 0xdd, 0xa2, 0xee, 0xe6, 0xb0, 0x24, 0x26, 0xe7, 0xf4,
0x0a, 0x8f, 0x50, 0xac, 0x59, 0x0b, 0x78, 0x1e, 0x7e, 0x5f, 0x86, 0xbb, 0x9e, 0x5f, 0xc1, 0xc5,
0x58, 0x71, 0x1d, 0x9d, 0xb1, 0x32, 0x43, 0x5f, 0xc1, 0x71, 0x6c, 0xf0, 0xcc, 0x1d, 0xdb, 0x56,
0x63, 0x4b, 0x38, 0xed, 0x41, 0xe7, 0x90, 0x27, 0xa9, 0x3e, 0x94, 0x15, 0xe8, 0xca, 0xa6, 0x7a,
0x95, 0xb9, 0x02, 0x97, 0x51, 0x8a, 0x1e, 0x27, 0x69, 0x12, 0x25, 0x93, 0xf9, 0xe1, 0xec, 0x28,
0x1f, 0x65, 0x61, 0x2a, 0x1c, 0x5b, 0xfa, 0x8f, 0x1e, 0x6c, 0x38, 0xbd, 0x2a, 0x16, 0xff, 0x79,
0x29, 0xd2, 0x26, 0x91, 0x2e, 0x05, 0x6f, 0xdd, 0x52, 0x7c, 0x72, 0xa0, 0xcc, 0x4c, 0x7c, 0xae,
0x72, 0xeb, 0x77, 0x60, 0x55, 0xaf, 0x4c, 0x7f, 0x28, 0xa5, 0xb0, 0x5f, 0x95, 0x42, 0xf5, 0xfd,
0x8a, 0xfa, 0x40, 0x93, 0xf8, 0x25, 0xe9, 0xf4, 0xb1, 0x31, 0xee, 0x51, 0xc7, 0x65, 0x03, 0xfd,
0xbd, 0xed, 0x68, 0xea, 0x15, 0x8c, 0x0c, 0x98, 0xd3, 0xdf, 0xf3, 0x00, 0x8a, 0xd5, 0x09, 0xc1,
0x28, 0x94, 0xb7, 0x87, 0x69, 0xc9, 0x02, 0x10, 0xae, 0x93, 0x49, 0xf3, 0x16, 0xf6, 0xa0, 0xa3,
0x31, 0xe1, 0x8b, 0xbc, 0x0b, 0xab, 0x93, 0x28, 0x39, 0x42, 0xeb, 0x8a, 0x0f, 0x80, 0xb9, 0x7a,
0x9b, 0x5a, 0x91, 0xf0, 0x43, 0x85, 0x16, 0xc6, 0xa3, 0x69, 0x19, 0x0f, 0xfa, 0xfb, 0x0d, 0x93,
0x80, 0x2c, 0xf6, 0x7c, 0xee, 0x2d, 0x23, 0xbb, 0x15, 0xe5, 0x78, 0x4e, 0xbe, 0x0f, 0xd3, 0x0f,
0x07, 0xaf, 0x0c, 0xc7, 0x6e, 0xc3, 0x4a, 0x26, 0xb5, 0x8f, 0x56, 0x4d, 0xcd, 0x97, 0xa8, 0xa6,
0x5e, 0xe6, 0xd8, 0x9d, 0x9f, 0x83, 0xb5, 0x60, 0x7c, 0xca, 0x32, 0x1e, 0xa2, 0xbb, 0x8d, 0xe6,
0x5d, 0x2a, 0xd4, 0x55, 0x0b, 0x47, 0xab, 0xfb, 0x2e, 0xac, 0xaa, 0xf7, 0x40, 0x33, 0x52, 0x95,
0x79, 0x14, 0xb0, 0x18, 0x48, 0xff, 0x42, 0xe7, 0x3a, 0xdd, 0x33, 0x3c, 0x9f, 0x23, 0xf6, 0xee,
0x1a, 0xa5, 0xdd, 0x7d, 0x55, 0xe5, 0x1d, 0xc7, 0xda, 0xa7, 0x57, 0x19, 0x60, 0x09, 0xaa, 0x3c,
0xb1, 0xcb, 0xd2, 0xe6, 0xeb, 0xb0, 0x94, 0xde, 0x80, 0xd5, 0x43, 0xc6, 0xef, 0x88, 0x13, 0xd4,
0x8a, 0xf1, 0x0a, 0xb4, 0x63, 0x76, 0x36, 0x94, 0x47, 0x2c, 0xcd, 0x78, 0x2b, 0x66, 0x67, 0x38,
0x86, 0x12, 0x58, 0x2b, 0xc6, 0xab, 0x5b, 0xf7, 0x27, 0x0b, 0xb0, 0xfc, 0x49, 0x7c, 0x9a, 0x84,
0x23, 0xcc, 0x24, 0x4e, 0xd9, 0x34, 0xd1, 0x2f, 0xfb, 0xe2, 0xb7, 0xf0, 0x0a, 0xf0, 0xd1, 0x2a,
0xe5, 0x2a, 0xc5, 0xa7, 0x9b, 0xc2, 0x42, 0x66, 0x45, 0x35, 0x8b, 0x94, 0x36, 0x0b, 0x11, 0xde,
0x64, 0x66, 0x17, 0xe8, 0xa8, 0x56, 0x51, 0x1a, 0xb1, 0x68, 0x95, 0x46, 0x60, 0xde, 0x59, 0xbe,
0xc7, 0xe1, 0x91, 0xb4, 0x7c, 0xdd, 0x44, 0xaf, 0x37, 0x63, 0x32, 0xbe, 0x45, 0x5b, 0xbb, 0xac,
0xbc, 0x5e, 0x1b, 0x14, 0xf6, 0x58, 0x7e, 0x20, 0xc7, 0x48, 0x7d, 0x65, 0x43, 0xc2, 0x3f, 0x29,
0xd7, 0xf8, 0xb4, 0xa5, 0x98, 0x94, 0x60, 0xa1, 0xd4, 0xc6, 0xcc, 0xe8, 0x1e, 0xb9, 0x07, 0x90,
0xd5, 0x3a, 0x65, 0xdc, 0xf2, 0x99, 0xe5, 0xbb, 0xa2, 0x6a, 0xa1, 0x1f, 0x13, 0x44, 0xd1, 0x51,
0x30, 0x7a, 0x3a, 0x44, 0xe7, 0xa9, 0x2b, 0x73, 0x14, 0x0e, 0x28, 0x56, 0x3d, 0x8a, 0xf8, 0xe9,
0x50, 0x91, 0xe8, 0xc9, 0x67, 0x40, 0x0b, 0xa2, 0x5f, 0x00, 0xb9, 0x33, 0x1e, 0xab, 0x13, 0x32,
0x11, 0x45, 0xc1, 0x5b, 0xcf, 0xe1, 0x6d, 0xcd, 0x1e, 0x1b, 0xb5, 0x7b, 0xa4, 0x0f, 0xa0, 0x73,
0x60, 0x15, 0x4c, 0xe1, 0x61, 0xea, 0x52, 0x29, 0x25, 0x00, 0x16, 0x62, 0x4d, 0xd8, 0xb0, 0x27,
0xa4, 0xbf, 0x00, 0x64, 0x3f, 0xcc, 0xb9, 0x59, 0x9f, 0x89, 0xf5, 0x4c, 0x66, 0xcb, 0x8a, 0xf5,
0x14, 0x86, 0xb1, 0xde, 0x1d, 0xf9, 0x56, 0x59, 0xde, 0xd8, 0x75, 0x68, 0x85, 0x12, 0xd2, 0xba,
0x7c, 0x45, 0x5d, 0x02, 0x3d, 0xd2, 0xf4, 0x0b, 0xa7, 0x44, 0x81, 0x8e, 0xa9, 0xf8, 0xa1, 0x07,
0xcb, 0x6a, 0x6b, 0xc2, 0xa4, 0x3a, 0xa5, 0x62, 0x72, 0x63, 0x0e, 0x56, 0x5f, 0xaa, 0x53, 0x95,
0xba, 0x85, 0x3a, 0xa9, 0x23, 0xd0, 0x4c, 0x03, 0x7e, 0x82, 0xfe, 0x76, 0xdb, 0xc7, 0xdf, 0x3a,
0xae, 0x5a, 0x34, 0x71, 0x95, 0x7e, 0x97, 0x55, 0x8b, 0x32, 0x4f, 0x86, 0x77, 0xe5, 0xbb, 0x6c,
0x01, 0x17, 0x3c, 0x50, 0x0b, 0x2c, 0xf3, 0x40, 0x0d, 0xf5, 0x4d, 0x3f, 0x1d, 0x40, 0xff, 0x3e,
0x8b, 0x18, 0x67, 0x77, 0xa2, 0xa8, 0x4c, 0xff, 0x0a, 0x5c, 0xae, 0xe9, 0x53, 0xf7, 0xfe, 0x21,
0xac, 0xdf, 0x67, 0x47, 0xb3, 0xc9, 0x3e, 0x3b, 0x2d, 0x72, 0xff, 0x04, 0x9a, 0xf9, 0x49, 0x72,
0xa6, 0xce, 0x0b, 0x7f, 0x93, 0x37, 0x00, 0x22, 0x31, 0x66, 0x98, 0xa7, 0x6c, 0xa4, 0xeb, 0x4c,
0x10, 0x39, 0x4c, 0xd9, 0x88, 0xbe, 0x0f, 0xc4, 0xa6, 0xa3, 0xb6, 0x20, 0x6e, 0xe3, 0xec, 0x68,
0x98, 0xcf, 0x73, 0xce, 0xa6, 0x5a, 0x11, 0xd9, 0x10, 0x7d, 0x17, 0xba, 0x07, 0xc1, 0xdc, 0x67,
0x5f, 0xaa, 0x0a, 0x3c, 0x11, 0xbe, 0x05, 0x73, 0x21, 0x9e, 0x26, 0x7c, 0xc3, 0x6e, 0xfa, 0x77,
0x0d, 0x58, 0x92, 0x23, 0x05, 0xd5, 0x31, 0xcb, 0x79, 0x18, 0xcb, 0xdc, 0xb9, 0xa2, 0x6a, 0x41,
0x95, 0xf3, 0x6e, 0xd4, 0x9c, 0xb7, 0x72, 0xb3, 0xf4, 0x9b, 0xbc, 0x3a, 0x58, 0x07, 0xc3, 0xe8,
0x34, 0x9c, 0x32, 0x59, 0x60, 0xd9, 0x54, 0xd1, 0xa9, 0x06, 0x4a, 0x71, 0x72, 0x71, 0xe7, 0xe5,
0xfa, 0xb4, 0x20, 0x2a, 0xd3, 0x62, 0x43, 0xb5, 0x9a, 0x65, 0x59, 0x96, 0xdc, 0x55, 0x34, 0x4b,
0x45, 0x83, 0xb4, 0x5e, 0x43, 0x83, 0x48, 0xdf, 0xcb, 0xd1, 0x20, 0x04, 0xd6, 0x1e, 0x32, 0xe6,
0xb3, 0x34, 0xc9, 0x4c, 0x19, 0xe3, 0x1f, 0x7b, 0xb0, 0xa6, 0xac, 0x8a, 0xe9, 0x23, 0x6f, 0x39,
0x26, 0xc8, 0xab, 0xcb, 0xa9, 0xbe, 0x0d, 0x3d, 0x0c, 0xc2, 0x44, 0x84, 0x85, 0x11, 0x97, 0xca,
0x40, 0x38, 0xa0, 0x58, 0x93, 0x4e, 0xfd, 0x4d, 0xc3, 0x48, 0x31, 0xd8, 0x86, 0x84, 0xb9, 0xd4,
0x41, 0x1a, 0xb2, 0xd7, 0xf3, 0x4d, 0x9b, 0x1e, 0xc0, 0xba, 0xb5, 0x5e, 0x25, 0x50, 0xb7, 0x41,
0x3f, 0x1d, 0xca, 0x84, 0x82, 0xbc, 0x17, 0x97, 0x5c, 0x03, 0x59, 0x7c, 0xe6, 0x0c, 0xa6, 0x7f,
0xe3, 0x21, 0x0b, 0x94, 0x1f, 0x66, 0x0a, 0x87, 0x96, 0xa4, 0x6b, 0x24, 0xa5, 0x7d, 0xef, 0x82,
0xaf, 0xda, 0xe4, 0x1b, 0xaf, 0xe9, 0xdd, 0x98, 0x27, 0xba, 0x73, 0x78, 0xb3, 0x50, 0xc7, 0x9b,
0x97, 0xec, 0xfc, 0xee, 0x32, 0x2c, 0xe6, 0xa3, 0x24, 0x65, 0x74, 0x03, 0x59, 0xa0, 0xd7, 0x2b,
0x59, 0xb0, 0xfb, 0xaf, 0x1e, 0xac, 0xc8, 0xf4, 0x98, 0x2c, 0x64, 0x66, 0x19, 0x11, 0xf1, 0x97,
0x55, 0x1f, 0x4d, 0x8c, 0xfb, 0x59, 0xad, 0xb3, 0x1e, 0x5c, 0xa9, 0xed, 0xd3, 0xbe, 0xf7, 0x0f,
0x7e, 0xfc, 0xef, 0x3f, 0x6a, 0x5c, 0xa4, 0x6b, 0x3b, 0xa7, 0xb7, 0x76, 0x50, 0xc5, 0xb1, 0x33,
0x1c, 0xf1, 0xa1, 0x77, 0x5d, 0xcc, 0x62, 0x97, 0x4e, 0x9b, 0x59, 0x6a, 0x4a, 0xb0, 0xcd, 0x2c,
0xb5, 0xb5, 0xd6, 0xce, 0x2c, 0x33, 0x1c, 0x61, 0x66, 0xd9, 0xfd, 0xcb, 0x2b, 0xd0, 0x36, 0x81,
0x22, 0xf9, 0x1e, 0xf4, 0x9c, 0x54, 0x20, 0xd1, 0x84, 0xeb, 0x72, 0x8b, 0x83, 0xab, 0xf5, 0x9d,
0x6a, 0xda, 0x37, 0x71, 0xda, 0x3e, 0xd9, 0x12, 0xd3, 0xaa, 0x5c, 0xdf, 0x0e, 0xa6, 0x48, 0x65,
0xa9, 0xc0, 0x53, 0x58, 0x71, 0x53, 0x85, 0xe4, 0xaa, 0x7b, 0xda, 0xa5, 0xd9, 0xde, 0x38, 0xa7,
0x57, 0x4d, 0x77, 0x15, 0xa7, 0xdb, 0x22, 0x9b, 0xf6, 0x74, 0x26, 0x80, 0x63, 0x58, 0xdc, 0x61,
0xd7, 0x5e, 0x13, 0x4d, 0xaf, 0xbe, 0x26, 0x7b, 0x70, 0xb9, 0x5a, 0x67, 0xad, 0x0a, 0xb3, 0x69,
0x1f, 0xa7, 0x22, 0x04, 0x19, 0x6a, 0x97, 0x5e, 0x93, 0xef, 0x42, 0xdb, 0x54, 0x6e, 0x92, 0x4b,
0x56, 0xb9, 0xac, 0x5d, 0x4e, 0x3a, 0xe8, 0x57, 0x3b, 0xea, 0x8e, 0xca, 0xa6, 0x2c, 0x04, 0x62,
0x1f, 0x2e, 0x2a, 0x8b, 0x7b, 0xc4, 0x7e, 0x92, 0x9d, 0xd4, 0x54, 0x8c, 0xdf, 0xf4, 0xc8, 0x6d,
0x68, 0xe9, 0x82, 0x58, 0xb2, 0x55, 0x5f, 0xd8, 0x3b, 0xb8, 0x54, 0xc1, 0x95, 0x5e, 0xb8, 0x03,
0x50, 0xd4, 0x6e, 0x92, 0xfe, 0x79, 0x25, 0xa6, 0x86, 0x89, 0x35, 0x85, 0x9e, 0x13, 0x2c, 0x5d,
0x75, 0x4b, 0x43, 0xc9, 0x57, 0x8a, 0xf1, 0xb5, 0x45, 0xa3, 0x2f, 0x21, 0x48, 0xb7, 0x90, 0x77,
0x6b, 0x64, 0x45, 0xf0, 0x2e, 0x66, 0x67, 0xba, 0xcc, 0xe9, 0x3e, 0x74, 0xac, 0x7a, 0x50, 0xa2,
0x29, 0x54, 0x6b, 0x49, 0x07, 0x83, 0xba, 0x2e, 0xb5, 0xdc, 0x5f, 0x81, 0x9e, 0x53, 0xd8, 0x69,
0x6e, 0x46, 0x5d, 0xd9, 0xa8, 0xb9, 0x19, 0xf5, 0xb5, 0xa0, 0xdf, 0x81, 0x8e, 0x55, 0x86, 0x49,
0xac, 0x67, 0xe8, 0x52, 0x99, 0xa5, 0x59, 0x51, 0x4d, 0xd5, 0x26, 0xdd, 0xc4, 0xfd, 0xae, 0xd0,
0xb6, 0xd8, 0x2f, 0xd6, 0xfa, 0x08, 0x21, 0xf9, 0x1e, 0xac, 0xb8, 0xe5, 0x97, 0xe6, 0x56, 0xd5,
0x16, 0x72, 0x9a, 0x5b, 0x75, 0x4e, 0xcd, 0xa6, 0x12, 0xc8, 0xeb, 0x1b, 0x66, 0x92, 0x9d, 0xe7,
0x2a, 0x21, 0xfa, 0x82, 0x7c, 0x5b, 0xa8, 0x0e, 0x55, 0x7c, 0x45, 0x8a, 0x72, 0x54, 0xb7, 0x44,
0xcb, 0x48, 0x7b, 0xa5, 0x4e, 0x8b, 0xae, 0x23, 0xf1, 0x0e, 0x29, 0x76, 0x40, 0x3e, 0x85, 0x65,
0x55, 0x84, 0x45, 0x2e, 0x16, 0x52, 0x6d, 0x25, 0x95, 0x06, 0x5b, 0x65, 0x58, 0x11, 0xdb, 0x40,
0x62, 0x3d, 0xd2, 0x11, 0xc4, 0x26, 0x8c, 0x87, 0x82, 0x46, 0x04, 0xab, 0xee, 0xf3, 0x51, 0x6e,
0xd8, 0x51, 0xfb, 0x70, 0x6d, 0xd8, 0x51, 0xff, 0x16, 0xe5, 0x2a, 0x19, 0xad, 0x5c, 0x76, 0x74,
0x95, 0xc1, 0xaf, 0x43, 0xd7, 0xae, 0xf8, 0x33, 0x1a, 0xbb, 0xa6, 0x3a, 0xd0, 0x68, 0xec, 0xba,
0x12, 0x41, 0x7d, 0xb4, 0xa4, 0x6b, 0x4f, 0x43, 0xbe, 0x03, 0xab, 0xd6, 0x3b, 0xe7, 0xe1, 0x3c,
0x1e, 0x19, 0xd1, 0xa9, 0x16, 0x94, 0x0c, 0xea, 0x4c, 0x27, 0xbd, 0x84, 0x84, 0xd7, 0xa9, 0x43,
0x58, 0x88, 0xcd, 0x3d, 0xe8, 0xd8, 0x6f, 0xa8, 0x2f, 0xa1, 0x7b, 0xc9, 0xea, 0xb2, 0xeb, 0x33,
0x6e, 0x7a, 0xe4, 0x0f, 0x3d, 0xe8, 0xda, 0xa5, 0x4a, 0xc4, 0xc9, 0xcb, 0x94, 0xe8, 0xf4, 0xed,
0x3e, 0x9b, 0x10, 0x7d, 0x84, 0x8b, 0xdc, 0xbb, 0xfe, 0xd0, 0x61, 0xf2, 0x73, 0xc7, 0x25, 0xba,
0x61, 0xff, 0xab, 0xc4, 0x8b, 0x72, 0xa7, 0x5d, 0x70, 0xf3, 0xe2, 0xa6, 0x47, 0x3e, 0x94, 0xff,
0x10, 0xa3, 0xc3, 0x13, 0x62, 0xa9, 0xb5, 0x32, 0xbb, 0xec, 0xff, 0x32, 0xd9, 0xf6, 0x6e, 0x7a,
0xe4, 0x37, 0xe4, 0x7f, 0x47, 0xa8, 0x6f, 0x91, 0xeb, 0xaf, 0xfb, 0x3d, 0x7d, 0x1b, 0x77, 0xf2,
0x26, 0xbd, 0xec, 0xec, 0xa4, 0xac, 0xd7, 0x0f, 0x00, 0x8a, 0x58, 0x93, 0x94, 0x02, 0x2f, 0xa3,
0xf1, 0xaa, 0xe1, 0xa8, 0x7b, 0x9a, 0x3a, 0x3e, 0x93, 0x4a, 0xa0, 0x6b, 0x45, 0x79, 0xb9, 0x39,
0xce, 0x6a, 0xcc, 0x38, 0x18, 0xd4, 0x75, 0x29, 0xfa, 0x5f, 0x45, 0xfa, 0x6f, 0x90, 0x2b, 0x36,
0xfd, 0x9d, 0xe7, 0x76, 0x8c, 0xf9, 0x82, 0x7c, 0x01, 0xbd, 0xfd, 0x24, 0x79, 0x3a, 0x4b, 0x4d,
0x3a, 0xc3, 0x8d, 0x9a, 0x44, 0x9c, 0x3b, 0x28, 0x6d, 0x8a, 0xbe, 0x85, 0x94, 0xaf, 0x90, 0xcb,
0x2e, 0xe5, 0x22, 0xf2, 0x7d, 0x41, 0x02, 0x58, 0x37, 0xd6, 0xce, 0x6c, 0x64, 0xe0, 0xd2, 0xb1,
0x03, 0xd0, 0xca, 0x1c, 0x8e, 0xff, 0x61, 0xe6, 0xc8, 0x35, 0xcd, 0x9b, 0x1e, 0x39, 0x80, 0xee,
0x7d, 0x36, 0x4a, 0xc6, 0x4c, 0x05, 0x3a, 0x1b, 0xc5, 0xca, 0x4d, 0x84, 0x34, 0xe8, 0x39, 0xa0,
0xab, 0x01, 0xd2, 0x60, 0x9e, 0xb1, 0x2f, 0x77, 0x9e, 0xab, 0x10, 0xea, 0x85, 0xd6, 0x00, 0x3a,
0xec, 0x73, 0x34, 0x40, 0x29, 0x4e, 0x74, 0x34, 0x40, 0x25, 0x4e, 0x74, 0x34, 0x80, 0x0e, 0x3b,
0x49, 0x24, 0xa2, 0xc7, 0x52, 0x68, 0x69, 0x6c, 0xe6, 0x79, 0x01, 0xe9, 0xe0, 0xda, 0xf9, 0x03,
0xdc, 0xd9, 0xae, 0xbb, 0xb3, 0x1d, 0x42, 0xef, 0x3e, 0x93, 0xcc, 0x92, 0xef, 0x0c, 0x03, 0x57,
0xa5, 0xd8, 0x6f, 0x12, 0x65, 0x75, 0x83, 0x7d, 0xae, 0x82, 0xc7, 0x24, 0x3f, 0xf9, 0x2e, 0x74,
0x3e, 0x66, 0x5c, 0x3f, 0x2c, 0x18, 0xcf, 0xa3, 0xf4, 0xd2, 0x30, 0xa8, 0x79, 0x97, 0xa0, 0xd7,
0x90, 0xda, 0x80, 0xf4, 0x0d, 0xb5, 0x1d, 0x36, 0x9e, 0x30, 0x79, 0xf9, 0x87, 0xe1, 0xf8, 0x05,
0xf9, 0x55, 0x24, 0x6e, 0x5e, 0x1d, 0xb7, 0xac, 0x7c, 0xb4, 0x4d, 0x7c, 0xb5, 0x84, 0xd7, 0x51,
0x8e, 0x93, 0x31, 0xb3, 0x4c, 0x5d, 0x0c, 0x1d, 0xeb, 0x89, 0xd9, 0x5c, 0xa8, 0xea, 0xbb, 0xb5,
0xb9, 0x50, 0x35, 0x2f, 0xd2, 0x74, 0x1b, 0xe7, 0xa1, 0xe4, 0x5a, 0x31, 0x8f, 0x7c, 0x85, 0x2e,
0x66, 0xda, 0x79, 0x1e, 0x4c, 0xf9, 0x0b, 0xf2, 0x04, 0xeb, 0x93, 0xed, 0xc7, 0x93, 0xc2, 0xf3,
0x29, 0xbf, 0xb3, 0x18, 0x66, 0x59, 0x5d, 0xae, 0x37, 0x24, 0xa7, 0x42, 0x8b, 0xf8, 0x0d, 0x80,
0x43, 0x9e, 0xa4, 0xf7, 0x03, 0x36, 0x4d, 0xe2, 0x42, 0x93, 0x15, 0x0f, 0x04, 0x85, 0x26, 0xb3,
0x5e, 0x09, 0xc8, 0x13, 0xcb, 0xf7, 0x74, 0xde, 0x9e, 0xb4, 0x70, 0x9d, 0xfb, 0x86, 0x60, 0x18,
0x52, 0xf3, 0x8e, 0xa0, 0xdd, 0x50, 0x99, 0x1c, 0xb5, 0xdc, 0x50, 0x27, 0xbb, 0x6a, 0xb9, 0xa1,
0x6e, 0x16, 0x55, 0xb8, 0xa1, 0x45, 0x16, 0xc4, 0xb8, 0xa1, 0x95, 0x04, 0x8b, 0xd1, 0xa1, 0x35,
0x29, 0x93, 0x03, 0x68, 0x17, 0xa1, 0xb8, 0x9e, 0xa8, 0x1c, 0xb8, 0x1b, 0x63, 0x55, 0x89, 0x90,
0xe9, 0x1a, 0xf2, 0x19, 0x48, 0x4b, 0xf0, 0x19, 0x9f, 0xd8, 0x1f, 0x03, 0xc8, 0xdd, 0x3d, 0x14,
0x2d, 0x8b, 0xa4, 0x13, 0x08, 0xdb, 0x24, 0xdd, 0x88, 0x53, 0x7b, 0x32, 0xd4, 0x90, 0xfc, 0xd0,
0xbb, 0x7e, 0xb4, 0x84, 0xff, 0xcd, 0xfb, 0xf5, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xc7,
0x98, 0x28, 0xff, 0x3b, 0x00, 0x00,
}

View File

@ -564,15 +564,7 @@ func RegisterWalletUnlockerHandlerFromEndpoint(ctx context.Context, mux *runtime
// RegisterWalletUnlockerHandler registers the http handlers for service WalletUnlocker to "mux".
// The handlers forward requests to the grpc endpoint over "conn".
func RegisterWalletUnlockerHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
return RegisterWalletUnlockerHandlerClient(ctx, mux, NewWalletUnlockerClient(conn))
}
// RegisterWalletUnlockerHandler registers the http handlers for service WalletUnlocker to "mux".
// The handlers forward requests to the grpc endpoint over the given implementation of "WalletUnlockerClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "WalletUnlockerClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
// "WalletUnlockerClient" to call the correct interceptors.
func RegisterWalletUnlockerHandlerClient(ctx context.Context, mux *runtime.ServeMux, client WalletUnlockerClient) error {
client := NewWalletUnlockerClient(conn)
mux.Handle("POST", pattern_WalletUnlocker_CreateWallet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)
@ -675,15 +667,7 @@ func RegisterLightningHandlerFromEndpoint(ctx context.Context, mux *runtime.Serv
// RegisterLightningHandler registers the http handlers for service Lightning to "mux".
// The handlers forward requests to the grpc endpoint over "conn".
func RegisterLightningHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
return RegisterLightningHandlerClient(ctx, mux, NewLightningClient(conn))
}
// RegisterLightningHandler registers the http handlers for service Lightning to "mux".
// The handlers forward requests to the grpc endpoint over the given implementation of "LightningClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "LightningClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
// "LightningClient" to call the correct interceptors.
func RegisterLightningHandlerClient(ctx context.Context, mux *runtime.ServeMux, client LightningClient) error {
client := NewLightningClient(conn)
mux.Handle("GET", pattern_Lightning_WalletBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)

View File

@ -96,7 +96,10 @@ service Lightning {
/** lncli: `sendcoins`
SendCoins executes a request to send coins to a particular address. Unlike
SendMany, this RPC call only allows creating a single output at a time.
SendMany, this RPC call only allows creating a single output at a time. If
neither target_conf, or sat_per_byte are set, then the internal wallet will
consult its fee model to determine a fee for the default confirmation
target.
*/
rpc SendCoins (SendCoinsRequest) returns (SendCoinsResponse) {
option (google.api.http) = {
@ -114,7 +117,9 @@ service Lightning {
/** lncli: `sendmany`
SendMany handles a request for a transaction that creates multiple specified
outputs in parallel.
outputs in parallel. If neither target_conf, or sat_per_byte are set, then
the internal wallet will consult its fee model to determine a fee for the
default confirmation target.
*/
rpc SendMany (SendManyRequest) returns (SendManyResponse);
@ -228,7 +233,10 @@ service Lightning {
/** lncli: `openchannel`
OpenChannel attempts to open a singly funded channel specified in the
request to a remote peer.
request to a remote peer. Users are able to specify a target number of
blocks that the funding transaction should be confirmed in, or a manual fee
rate to us for the funding transaction. If neither are specified, then a
lax block confirmation target is used.
*/
rpc OpenChannel (OpenChannelRequest) returns (stream OpenStatusUpdate);
@ -236,7 +244,10 @@ service Lightning {
CloseChannel attempts to close an active channel identified by its channel
outpoint (ChannelPoint). The actions of this method can additionally be
augmented to attempt a force close after a timeout period in the case of an
inactive peer.
inactive peer. If a non-force close (cooperative closure) is requested,
then the user can specify either a target number of blocks until the
closure transaction is confirmed, or a manual fee rate. If neither are
specified, then a default lax, block confirmation target is used.
*/
rpc CloseChannel (CloseChannelRequest) returns (stream CloseStatusUpdate) {
option (google.api.http) = {
@ -529,6 +540,12 @@ message LightningAddress {
message SendManyRequest {
/// The map from addresses to amounts
map<string, int64> AddrToAmount = 1;
/// The target number of blocks that this transaction should be confirmed by.
int32 target_conf = 3;
/// A manual fee rate set in sat/byte that should be used when crafting the transaction.
int64 sat_per_byte = 5;
}
message SendManyResponse {
/// The id of the transaction
@ -541,6 +558,12 @@ message SendCoinsRequest {
/// The amount in satoshis to send
int64 amount = 2;
/// The target number of blocks that this transaction should be confirmed by.
int32 target_conf = 3;
/// A manual fee rate set in sat/byte that should be used when crafting the transaction.
int64 sat_per_byte = 5;
}
message SendCoinsResponse {
/// The transaction ID of the transaction
@ -801,6 +824,12 @@ message CloseChannelRequest {
/// If true, then the channel will be closed forcibly. This means the current commitment transaction will be signed and broadcast.
bool force = 2;
/// The target number of blocks that the closure transaction should be confirmed by.
int32 target_conf = 3;
/// A manual fee rate set in sat/byte that should be used when crafting the closure transaction.
int64 sat_per_byte = 5;
}
message CloseStatusUpdate {
oneof update {
@ -831,6 +860,12 @@ message OpenChannelRequest {
/// The number of satoshis to push to the remote side as part of the initial commitment state
int64 push_sat = 5 [json_name = "push_sat"];
/// The target number of blocks that the closure transaction should be confirmed by.
int32 target_conf = 6;
/// A manual fee rate set in sat/byte that should be used when crafting the closure transaction.
int64 sat_per_byte = 7;
}
message OpenStatusUpdate {
oneof update {