Merge pull request #1863 from wpaulino/query-invoices-default

channeldb+cmd/lncli: enable backwards pagination of listinvoices
This commit is contained in:
Olaoluwa Osuntokun 2018-09-13 14:11:54 -07:00 committed by GitHub
commit 8909c13d1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 655 additions and 546 deletions

@ -377,7 +377,7 @@ func TestDuplicateSettleInvoice(t *testing.T) {
}
// TestQueryInvoices ensures that we can properly query the invoice database for
// invoices between specific time intervals.
// invoices using different types of queries.
func TestQueryInvoices(t *testing.T) {
t.Parallel()
@ -387,11 +387,11 @@ func TestQueryInvoices(t *testing.T) {
t.Fatalf("unable to make test db: %v", err)
}
// To begin the test, we'll add 100 invoices to the database. We'll
// To begin the test, we'll add 50 invoices to the database. We'll
// assume that the index of the invoice within the database is the same
// as the amount of the invoice itself.
const numInvoices = 100
for i := lnwire.MilliSatoshi(0); i < numInvoices; i++ {
const numInvoices = 50
for i := lnwire.MilliSatoshi(1); i <= numInvoices; i++ {
invoice, err := randInvoice(i)
if err != nil {
t.Fatalf("unable to create invoice: %v", err)
@ -410,93 +410,112 @@ func TestQueryInvoices(t *testing.T) {
}
}
// With the invoices created, we can begin querying the database. We'll
// start with a simple query to retrieve all invoices.
query := InvoiceQuery{
NumMaxInvoices: numInvoices,
}
res, err := db.QueryInvoices(query)
// We'll then retrieve the set of all invoices and pending invoices.
// This will serve useful when comparing the expected responses of the
// query with the actual ones.
invoices, err := db.FetchAllInvoices(false)
if err != nil {
t.Fatalf("unable to query invoices: %v", err)
t.Fatalf("unable to retrieve invoices: %v", err)
}
if len(res.Invoices) != numInvoices {
t.Fatalf("expected %d invoices, got %d", numInvoices,
len(res.Invoices))
pendingInvoices, err := db.FetchAllInvoices(true)
if err != nil {
t.Fatalf("unable to retrieve pending invoices: %v", err)
}
// Now, we'll limit the query to only return the latest 30 invoices.
query.IndexOffset = 70
res, err = db.QueryInvoices(query)
if err != nil {
t.Fatalf("unable to query invoices: %v", err)
// The test will consist of several queries along with their respective
// expected response. Each query response should match its expected one.
testCases := []struct {
query InvoiceQuery
expected []Invoice
}{
// Fetch all invoices with a single query.
{
query: InvoiceQuery{
NumMaxInvoices: numInvoices,
},
expected: invoices,
},
// Fetch the first 25 invoices.
{
query: InvoiceQuery{
NumMaxInvoices: numInvoices / 2,
},
expected: invoices[:numInvoices/2],
},
// Fetch the first 10 invoices, but this time iterating
// backwards.
{
query: InvoiceQuery{
IndexOffset: 11,
Reversed: true,
NumMaxInvoices: numInvoices,
},
expected: invoices[:10],
},
// Fetch the last 40 invoices.
{
query: InvoiceQuery{
IndexOffset: 10,
NumMaxInvoices: numInvoices,
},
expected: invoices[10:],
},
// Fetch all pending invoices with a single query.
{
query: InvoiceQuery{
PendingOnly: true,
NumMaxInvoices: numInvoices,
},
expected: pendingInvoices,
},
// Fetch the first 12 pending invoices.
{
query: InvoiceQuery{
PendingOnly: true,
NumMaxInvoices: numInvoices / 4,
},
expected: pendingInvoices[:len(pendingInvoices)/2],
},
// Fetch the first 5 pending invoices, but this time iterating
// backwards.
{
query: InvoiceQuery{
IndexOffset: 10,
PendingOnly: true,
Reversed: true,
NumMaxInvoices: numInvoices,
},
// Since we seek to the invoice with index 10 and
// iterate backwards, there should only be 5 pending
// invoices before it as every other invoice within the
// index is settled.
expected: pendingInvoices[:5],
},
// Fetch the last 15 invoices.
{
query: InvoiceQuery{
IndexOffset: 20,
PendingOnly: true,
NumMaxInvoices: numInvoices,
},
// Since we seek to the invoice with index 20, there are
// 30 invoices left. From these 30, only 15 of them are
// still pending.
expected: pendingInvoices[len(pendingInvoices)-15:],
},
}
if uint32(len(res.Invoices)) != numInvoices-query.IndexOffset {
t.Fatalf("expected %d invoices, got %d",
numInvoices-query.IndexOffset, len(res.Invoices))
}
for _, invoice := range res.Invoices {
if uint32(invoice.Terms.Value) < query.IndexOffset {
t.Fatalf("found invoice with index %v before offset %v",
invoice.Terms.Value, query.IndexOffset)
for i, testCase := range testCases {
response, err := db.QueryInvoices(testCase.query)
if err != nil {
t.Fatalf("unable to query invoice database: %v", err)
}
}
// Limit the query from above to return 25 invoices max.
query.NumMaxInvoices = 25
res, err = db.QueryInvoices(query)
if err != nil {
t.Fatalf("unable to query invoices: %v", err)
}
if uint32(len(res.Invoices)) != query.NumMaxInvoices {
t.Fatalf("expected %d invoices, got %d", query.NumMaxInvoices,
len(res.Invoices))
}
// Reset the query to fetch all unsettled invoices within the time
// slice.
query = InvoiceQuery{
PendingOnly: true,
NumMaxInvoices: numInvoices,
}
res, err = db.QueryInvoices(query)
if err != nil {
t.Fatalf("unable to query invoices: %v", err)
}
// Since only invoices with even amounts were settled, we should see
// that there are 50 invoices within the response.
if len(res.Invoices) != numInvoices/2 {
t.Fatalf("expected %d pending invoices, got %d", numInvoices/2,
len(res.Invoices))
}
for _, invoice := range res.Invoices {
if invoice.Terms.Value%2 == 0 {
t.Fatal("retrieved unexpected settled invoice")
}
}
// Finally, we'll skip the first 10 invoices from the set of unsettled
// invoices.
query.IndexOffset = 10
res, err = db.QueryInvoices(query)
if err != nil {
t.Fatalf("unable to query invoices: %v", err)
}
if uint32(len(res.Invoices)) != (numInvoices/2)-query.IndexOffset {
t.Fatalf("expected %d invoices, got %d",
(numInvoices/2)-query.IndexOffset, len(res.Invoices))
}
// To ensure the correct invoices were returned, we'll make sure each
// invoice has an odd value (meaning unsettled). Since the 10 invoices
// skipped should be unsettled, the value of the invoice must be at
// least the index of the 11th unsettled invoice.
for _, invoice := range res.Invoices {
if uint32(invoice.Terms.Value) < query.IndexOffset*2 {
t.Fatalf("found invoice with index %v before offset %v",
invoice.Terms.Value, query.IndexOffset*2)
}
if invoice.Terms.Value%2 == 0 {
t.Fatalf("found unexpected settled invoice with index %v",
invoice.Terms.Value)
if !reflect.DeepEqual(response.Invoices, testCase.expected) {
t.Fatalf("test #%d: query returned incorrect set of "+
"invoices: expcted %v, got %v", i,
spew.Sdump(response.Invoices),
spew.Sdump(testCase.expected))
}
}
}

@ -402,15 +402,19 @@ func (d *DB) FetchAllInvoices(pendingOnly bool) ([]Invoice, error) {
type InvoiceQuery struct {
// IndexOffset is the offset within the add indices to start at. This
// can be used to start the response at a particular invoice.
IndexOffset uint32
IndexOffset uint64
// NumMaxInvoices is the maximum number of invoices that should be
// starting from the add index.
NumMaxInvoices uint32
NumMaxInvoices uint64
// PendingOnly, if set, returns unsettled invoices starting from the
// add index.
PendingOnly bool
// Reversed, if set, indicates that the invoices returned should start
// from the IndexOffset and go backwards.
Reversed bool
}
// InvoiceSlice is the response to a invoice query. It includes the original
@ -423,13 +427,19 @@ type InvoiceSlice struct {
InvoiceQuery
// Invoices is the set of invoices that matched the query above.
Invoices []*Invoice
Invoices []Invoice
// FirstIndexOffset is the index of the first element in the set of
// returned Invoices above. Callers can use this to resume their query
// in the event that the slice has too many events to fit into a single
// response.
FirstIndexOffset uint64
// LastIndexOffset is the index of the last element in the set of
// returned Invoices above. Callers can use this to resume their query
// in the event that the time slice has too many events to fit into a
// single response.
LastIndexOffset uint32
// in the event that the slice has too many events to fit into a single
// response.
LastIndexOffset uint64
}
// QueryInvoices allows a caller to query the invoice database for invoices
@ -439,12 +449,6 @@ func (d *DB) QueryInvoices(q InvoiceQuery) (InvoiceSlice, error) {
InvoiceQuery: q,
}
// If the caller provided an index offset, then we'll not know how many
// records we need to skip. We'll also keep track of the record offset
// as that's part of the final return value.
invoicesToSkip := q.IndexOffset
invoiceOffset := q.IndexOffset
err := d.View(func(tx *bolt.Tx) error {
// If the bucket wasn't found, then there aren't any invoices
// within the database yet, so we can simply exit.
@ -452,38 +456,50 @@ func (d *DB) QueryInvoices(q InvoiceQuery) (InvoiceSlice, error) {
if invoices == nil {
return ErrNoInvoicesCreated
}
invoiceAddedIndex := invoices.Bucket(addIndexBucket)
if invoiceAddedIndex == nil {
invoiceAddIndex := invoices.Bucket(addIndexBucket)
if invoiceAddIndex == nil {
return ErrNoInvoicesCreated
}
// We'll be using a cursor to seek into the database, so we'll
// populate byte slices that represent the start of the key
// space we're interested in.
var startIndex [8]byte
switch q.PendingOnly {
case true:
// We have to start from the beginning so we know
// how many pending invoices we're skipping.
byteOrder.PutUint64(startIndex[:], uint64(1))
default:
// We can seek right to the invoice offset we want
// to start with.
invoicesToSkip = 0
byteOrder.PutUint64(startIndex[:], uint64(invoiceOffset+1))
// keyForIndex is a helper closure that retrieves the invoice
// key for the given add index of an invoice.
keyForIndex := func(c *bolt.Cursor, index uint64) []byte {
var keyIndex [8]byte
byteOrder.PutUint64(keyIndex[:], index)
_, invoiceKey := c.Seek(keyIndex[:])
return invoiceKey
}
// nextKey is a helper closure to determine what the next
// invoice key is when iterating over the invoice add index.
nextKey := func(c *bolt.Cursor) ([]byte, []byte) {
if q.Reversed {
return c.Prev()
}
return c.Next()
}
// We'll be using a cursor to seek into the database and return
// a slice of invoices. We'll need to determine where to start
// our cursor depending on the parameters set within the query.
c := invoiceAddIndex.Cursor()
invoiceKey := keyForIndex(c, q.IndexOffset+1)
if q.Reversed {
_, invoiceKey = c.Last()
if q.IndexOffset != 0 {
invoiceKey = keyForIndex(c, q.IndexOffset-1)
}
}
// If we know that a set of invoices exists, then we'll begin
// our seek through the bucket in order to satisfy the query.
// We'll continue until either we reach the end of the range,
// or reach our max number of events.
cursor := invoiceAddedIndex.Cursor()
_, invoiceKey := cursor.Seek(startIndex[:])
for ; invoiceKey != nil; _, invoiceKey = cursor.Next() {
// We'll continue until either we reach the end of the range, or
// reach our max number of invoices.
for ; invoiceKey != nil; _, invoiceKey = nextKey(c) {
// If our current return payload exceeds the max number
// of invoices, then we'll exit now.
if uint32(len(resp.Invoices)) >= q.NumMaxInvoices {
return nil
if uint64(len(resp.Invoices)) >= q.NumMaxInvoices {
break
}
invoice, err := fetchInvoice(invoiceKey, invoices)
@ -496,17 +512,22 @@ func (d *DB) QueryInvoices(q InvoiceQuery) (InvoiceSlice, error) {
if q.PendingOnly && invoice.Terms.Settled {
continue
}
// If we're not yet past the user defined offset, then
// we'll continue to seek forward.
if invoicesToSkip > 0 {
invoicesToSkip--
continue
}
// At this point, we've exhausted the offset, so we'll
// begin collecting invoices found within the range.
resp.Invoices = append(resp.Invoices, &invoice)
invoiceOffset++
resp.Invoices = append(resp.Invoices, invoice)
}
// If we iterated through the add index in reverse order, then
// we'll need to reverse the slice of invoices to return them in
// forward order.
if q.Reversed {
numInvoices := len(resp.Invoices)
for i := 0; i < numInvoices/2; i++ {
opposite := numInvoices - i - 1
resp.Invoices[i], resp.Invoices[opposite] =
resp.Invoices[opposite], resp.Invoices[i]
}
}
return nil
@ -515,9 +536,12 @@ func (d *DB) QueryInvoices(q InvoiceQuery) (InvoiceSlice, error) {
return resp, err
}
// Finally, record the index of the last invoice added so that the
// caller can resume from this point later on.
resp.LastIndexOffset = invoiceOffset
// Finally, record the indexes of the first and last invoices returned
// so that the caller can resume from this point later on.
if len(resp.Invoices) > 0 {
resp.FirstIndexOffset = resp.Invoices[0].AddIndex
resp.LastIndexOffset = resp.Invoices[len(resp.Invoices)-1].AddIndex
}
return resp, nil
}

@ -2310,6 +2310,15 @@ var listInvoicesCommand = cli.Command{
Name: "listinvoices",
Category: "Payments",
Usage: "List all invoices currently stored.",
Description: `
This command enables the retrieval of all invoices currently stored
within the database. It has full support for pagination-style responses,
allowing users to query for specific invoices through their add_index.
This can be done by using either the first_index_offset or
last_index_offset fields included in the response. The reversed flag is
set by default in order to paginate backwards. If you wish to paginate
forwards, you must explicitly set the flag to false. If none of the
parameters are specified, then the last 100 invoices will be returned.`,
Flags: []cli.Flag{
cli.BoolFlag{
Name: "pending_only",
@ -2324,6 +2333,12 @@ var listInvoicesCommand = cli.Command{
Name: "max_invoices",
Usage: "the max number of invoices to return",
},
cli.BoolTFlag{
Name: "reversed",
Usage: "if set, the invoices returned precede the " +
"given index_offset, allowing backwards " +
"pagination",
},
},
Action: actionDecorator(listInvoices),
}
@ -2334,8 +2349,9 @@ func listInvoices(ctx *cli.Context) error {
req := &lnrpc.ListInvoiceRequest{
PendingOnly: ctx.Bool("pending_only"),
IndexOffset: uint32(ctx.Uint64("index_offset")),
NumMaxInvoices: uint32(ctx.Uint64("max_invoices")),
IndexOffset: ctx.Uint64("index_offset"),
NumMaxInvoices: ctx.Uint64("max_invoices"),
Reversed: ctx.Bool("reversed"),
}
invoices, err := client.ListInvoices(context.Background(), req)

@ -4104,9 +4104,13 @@ type ListInvoiceRequest struct {
// The offset in the time series to start at. As each response can only contain
// 50k invoices, callers can use this to skip around within a packed time
// series.
IndexOffset uint32 `protobuf:"varint,4,opt,name=index_offset" json:"index_offset,omitempty"`
IndexOffset uint64 `protobuf:"varint,4,opt,name=index_offset" json:"index_offset,omitempty"`
// / The max number of invoices to return in the response to this query.
NumMaxInvoices uint32 `protobuf:"varint,5,opt,name=num_max_invoices" json:"num_max_invoices,omitempty"`
NumMaxInvoices uint64 `protobuf:"varint,5,opt,name=num_max_invoices" json:"num_max_invoices,omitempty"`
// *
// If set, the invoices returned will result from seeking backwards from the
// specified index offset.
Reversed bool `protobuf:"varint,6,opt,name=reversed" json:"reversed,omitempty"`
}
func (m *ListInvoiceRequest) Reset() { *m = ListInvoiceRequest{} }
@ -4121,29 +4125,40 @@ func (m *ListInvoiceRequest) GetPendingOnly() bool {
return false
}
func (m *ListInvoiceRequest) GetIndexOffset() uint32 {
func (m *ListInvoiceRequest) GetIndexOffset() uint64 {
if m != nil {
return m.IndexOffset
}
return 0
}
func (m *ListInvoiceRequest) GetNumMaxInvoices() uint32 {
func (m *ListInvoiceRequest) GetNumMaxInvoices() uint64 {
if m != nil {
return m.NumMaxInvoices
}
return 0
}
func (m *ListInvoiceRequest) GetReversed() bool {
if m != nil {
return m.Reversed
}
return false
}
type ListInvoiceResponse struct {
// *
// A list of invoices from the time slice of the time series specified in the
// request.
Invoices []*Invoice `protobuf:"bytes,1,rep,name=invoices" json:"invoices,omitempty"`
// *
// The index of the last time in the set of returned invoices. Can be used to
// seek further, pagination style.
LastIndexOffset uint32 `protobuf:"varint,2,opt,name=last_index_offset" json:"last_index_offset,omitempty"`
// The index of the last item in the set of returned invoices. This can be used
// to seek further, pagination style.
LastIndexOffset uint64 `protobuf:"varint,2,opt,name=last_index_offset" json:"last_index_offset,omitempty"`
// *
// The index of the last item in the set of returned invoices. This can be used
// to seek backwards, pagination style.
FirstIndexOffset uint64 `protobuf:"varint,3,opt,name=first_index_offset" json:"first_index_offset,omitempty"`
}
func (m *ListInvoiceResponse) Reset() { *m = ListInvoiceResponse{} }
@ -4158,13 +4173,20 @@ func (m *ListInvoiceResponse) GetInvoices() []*Invoice {
return nil
}
func (m *ListInvoiceResponse) GetLastIndexOffset() uint32 {
func (m *ListInvoiceResponse) GetLastIndexOffset() uint64 {
if m != nil {
return m.LastIndexOffset
}
return 0
}
func (m *ListInvoiceResponse) GetFirstIndexOffset() uint64 {
if m != nil {
return m.FirstIndexOffset
}
return 0
}
type InvoiceSubscription struct {
// *
// If specified (non-zero), then we'll first start by sending out
@ -7161,399 +7183,400 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 6294 bytes of a gzipped FileDescriptorProto
// 6315 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0xdd, 0x8f, 0x1c, 0xd9,
0x55, 0x77, 0xf5, 0xc7, 0xcc, 0xf4, 0xe9, 0x9e, 0x99, 0x9e, 0x3b, 0xe3, 0x99, 0x76, 0xef, 0xae,
0xd7, 0x5b, 0xb1, 0xd6, 0xce, 0xb0, 0xd8, 0xde, 0x49, 0xb2, 0xda, 0xec, 0x42, 0x82, 0x3d, 0x1e,
0x7b, 0x9c, 0xcc, 0xda, 0x93, 0x1a, 0x3b, 0x86, 0x04, 0xd4, 0xa9, 0xe9, 0xbe, 0xd3, 0x53, 0x71,
0x77, 0x55, 0xa7, 0xaa, 0x7a, 0xc6, 0x9d, 0xc5, 0x52, 0x20, 0x08, 0xf1, 0x40, 0x84, 0x10, 0x48,
0x28, 0x48, 0x08, 0x29, 0x48, 0x28, 0xfc, 0x01, 0xf0, 0x12, 0x90, 0x78, 0xe0, 0x05, 0x24, 0xc4,
0x43, 0x9e, 0x22, 0x1e, 0xe1, 0x05, 0x10, 0x2f, 0x48, 0xbc, 0x22, 0x74, 0xce, 0xfd, 0xa8, 0x7b,
0xab, 0x6a, 0x3c, 0xce, 0x07, 0xbc, 0xf5, 0xfd, 0xdd, 0x53, 0xf7, 0xf3, 0x7c, 0xdd, 0x73, 0xcf,
0x6d, 0x68, 0xc4, 0x93, 0xfe, 0x8d, 0x49, 0x1c, 0xa5, 0x11, 0xab, 0x8f, 0xc2, 0x78, 0xd2, 0xef,
0xbe, 0x3e, 0x8c, 0xa2, 0xe1, 0x88, 0xdf, 0xf4, 0x27, 0xc1, 0x4d, 0x3f, 0x0c, 0xa3, 0xd4, 0x4f,
0x83, 0x28, 0x4c, 0x04, 0x91, 0xfb, 0x35, 0x58, 0xba, 0xcf, 0xc3, 0x03, 0xce, 0x07, 0x1e, 0xff,
0xc6, 0x94, 0x27, 0x29, 0xfb, 0x39, 0x58, 0xf1, 0xf9, 0x37, 0x39, 0x1f, 0xf4, 0x26, 0x7e, 0x92,
0x4c, 0x8e, 0x63, 0x3f, 0xe1, 0x1d, 0xe7, 0x8a, 0x73, 0xbd, 0xe5, 0xb5, 0x45, 0xc5, 0xbe, 0xc6,
0xd9, 0x5b, 0xd0, 0x4a, 0x90, 0x94, 0x87, 0x69, 0x1c, 0x4d, 0x66, 0x9d, 0x0a, 0xd1, 0x35, 0x11,
0xdb, 0x11, 0x90, 0x3b, 0x82, 0x65, 0xdd, 0x43, 0x32, 0x89, 0xc2, 0x84, 0xb3, 0x5b, 0xb0, 0xd6,
0x0f, 0x26, 0xc7, 0x3c, 0xee, 0xd1, 0xc7, 0xe3, 0x90, 0x8f, 0xa3, 0x30, 0xe8, 0x77, 0x9c, 0x2b,
0xd5, 0xeb, 0x0d, 0x8f, 0x89, 0x3a, 0xfc, 0xe2, 0x23, 0x59, 0xc3, 0xae, 0xc1, 0x32, 0x0f, 0x05,
0xce, 0x07, 0xf4, 0x95, 0xec, 0x6a, 0x29, 0x83, 0xf1, 0x03, 0xf7, 0xef, 0x1c, 0x58, 0x79, 0x10,
0x06, 0xe9, 0x53, 0x7f, 0x34, 0xe2, 0xa9, 0x9a, 0xd3, 0x35, 0x58, 0x3e, 0x25, 0x80, 0xe6, 0x74,
0x1a, 0xc5, 0x03, 0x39, 0xa3, 0x25, 0x01, 0xef, 0x4b, 0xf4, 0xcc, 0x91, 0x55, 0xce, 0x1c, 0x59,
0xe9, 0x72, 0x55, 0xcf, 0x58, 0xae, 0x6b, 0xb0, 0x1c, 0xf3, 0x7e, 0x74, 0xc2, 0xe3, 0x59, 0xef,
0x34, 0x08, 0x07, 0xd1, 0x69, 0xa7, 0x76, 0xc5, 0xb9, 0x5e, 0xf7, 0x96, 0x14, 0xfc, 0x94, 0x50,
0x77, 0x0d, 0x98, 0x39, 0x0b, 0xb1, 0x6e, 0xee, 0x10, 0x56, 0x9f, 0x84, 0xa3, 0xa8, 0xff, 0xec,
0x27, 0x9c, 0x5d, 0x49, 0xf7, 0x95, 0xd2, 0xee, 0xd7, 0x61, 0xcd, 0xee, 0x48, 0x0e, 0x80, 0xc3,
0xc5, 0xed, 0x63, 0x3f, 0x1c, 0x72, 0xd5, 0xa4, 0x1a, 0xc2, 0x27, 0xa1, 0xdd, 0x9f, 0xc6, 0x31,
0x0f, 0x0b, 0x63, 0x58, 0x96, 0xb8, 0x1e, 0xc4, 0x5b, 0xd0, 0x0a, 0xf9, 0x69, 0x46, 0x26, 0x59,
0x26, 0xe4, 0xa7, 0x8a, 0xc4, 0xed, 0xc0, 0x7a, 0xbe, 0x1b, 0x39, 0x80, 0xef, 0x56, 0xa0, 0xf9,
0x38, 0xf6, 0xc3, 0xc4, 0xef, 0x23, 0x17, 0xb3, 0x0e, 0xcc, 0xa7, 0xcf, 0x7b, 0xc7, 0x7e, 0x72,
0x4c, 0xdd, 0x35, 0x3c, 0x55, 0x64, 0xeb, 0x30, 0xe7, 0x8f, 0xa3, 0x69, 0x98, 0x52, 0x07, 0x55,
0x4f, 0x96, 0xd8, 0x3b, 0xb0, 0x12, 0x4e, 0xc7, 0xbd, 0x7e, 0x14, 0x1e, 0x05, 0xf1, 0x58, 0xc8,
0x02, 0xed, 0x57, 0xdd, 0x2b, 0x56, 0xb0, 0xcb, 0x00, 0x87, 0xb8, 0x0e, 0xa2, 0x8b, 0x1a, 0x75,
0x61, 0x20, 0xcc, 0x85, 0x96, 0x2c, 0xf1, 0x60, 0x78, 0x9c, 0x76, 0xea, 0xd4, 0x90, 0x85, 0x61,
0x1b, 0x69, 0x30, 0xe6, 0xbd, 0x24, 0xf5, 0xc7, 0x93, 0xce, 0x1c, 0x8d, 0xc6, 0x40, 0xa8, 0x3e,
0x4a, 0xfd, 0x51, 0xef, 0x88, 0xf3, 0xa4, 0x33, 0x2f, 0xeb, 0x35, 0xc2, 0xde, 0x86, 0xa5, 0x01,
0x4f, 0xd2, 0x9e, 0x3f, 0x18, 0xc4, 0x3c, 0x49, 0x78, 0xd2, 0x59, 0x20, 0x6e, 0xcc, 0xa1, 0xb8,
0x6a, 0xf7, 0x79, 0x6a, 0xac, 0x4e, 0x22, 0x77, 0xc7, 0xdd, 0x03, 0x66, 0xc0, 0x77, 0x79, 0xea,
0x07, 0xa3, 0x84, 0xbd, 0x07, 0xad, 0xd4, 0x20, 0x26, 0xe9, 0x6b, 0x6e, 0xb1, 0x1b, 0xa4, 0x36,
0x6e, 0x18, 0x1f, 0x78, 0x16, 0x9d, 0x7b, 0x1f, 0x16, 0xee, 0x71, 0xbe, 0x17, 0x8c, 0x83, 0x94,
0xad, 0x43, 0xfd, 0x28, 0x78, 0xce, 0xc5, 0x66, 0x57, 0x77, 0x2f, 0x78, 0xa2, 0xc8, 0xba, 0x30,
0x3f, 0xe1, 0x71, 0x9f, 0xab, 0xe5, 0xdf, 0xbd, 0xe0, 0x29, 0xe0, 0xce, 0x3c, 0xd4, 0x47, 0xf8,
0xb1, 0xfb, 0xfd, 0x0a, 0x34, 0x0f, 0x78, 0xa8, 0x99, 0x88, 0x41, 0x0d, 0xa7, 0x24, 0x19, 0x87,
0x7e, 0xb3, 0x37, 0xa1, 0x49, 0xd3, 0x4c, 0xd2, 0x38, 0x08, 0x87, 0xd4, 0x58, 0xc3, 0x03, 0x84,
0x0e, 0x08, 0x61, 0x6d, 0xa8, 0xfa, 0xe3, 0x94, 0x76, 0xb0, 0xea, 0xe1, 0x4f, 0x64, 0xb0, 0x89,
0x3f, 0x1b, 0x23, 0x2f, 0xea, 0x5d, 0x6b, 0x79, 0x4d, 0x89, 0xed, 0xe2, 0xb6, 0xdd, 0x80, 0x55,
0x93, 0x44, 0xb5, 0x5e, 0xa7, 0xd6, 0x57, 0x0c, 0x4a, 0xd9, 0xc9, 0x35, 0x58, 0x56, 0xf4, 0xb1,
0x18, 0x2c, 0xed, 0x63, 0xc3, 0x5b, 0x92, 0xb0, 0x9a, 0xc2, 0x75, 0x68, 0x1f, 0x05, 0xa1, 0x3f,
0xea, 0xf5, 0x47, 0xe9, 0x49, 0x6f, 0xc0, 0x47, 0xa9, 0x4f, 0x3b, 0x5a, 0xf7, 0x96, 0x08, 0xdf,
0x1e, 0xa5, 0x27, 0x77, 0x11, 0x65, 0xef, 0x40, 0xe3, 0x88, 0xf3, 0x1e, 0xad, 0x44, 0x67, 0xe1,
0x8a, 0x73, 0xbd, 0xb9, 0xb5, 0x2c, 0x97, 0x5e, 0xad, 0xae, 0xb7, 0x70, 0x24, 0x7f, 0xb9, 0x7f,
0xe8, 0x40, 0x4b, 0x2c, 0x95, 0x54, 0xa1, 0x57, 0x61, 0x51, 0x8d, 0x88, 0xc7, 0x71, 0x14, 0x4b,
0xf6, 0xb7, 0x41, 0xb6, 0x09, 0x6d, 0x05, 0x4c, 0x62, 0x1e, 0x8c, 0xfd, 0x21, 0x97, 0xf2, 0x56,
0xc0, 0xd9, 0x56, 0xd6, 0x62, 0x1c, 0x4d, 0x53, 0xa1, 0xc4, 0x9a, 0x5b, 0x2d, 0x39, 0x28, 0x0f,
0x31, 0xcf, 0x26, 0x71, 0xbf, 0xe3, 0x00, 0xc3, 0x61, 0x3d, 0x8e, 0x44, 0xb5, 0x5c, 0x85, 0xfc,
0x0e, 0x38, 0xaf, 0xbc, 0x03, 0x95, 0xb3, 0x76, 0xe0, 0x2a, 0xcc, 0x51, 0x97, 0x28, 0xab, 0xd5,
0xc2, 0xb0, 0x64, 0x9d, 0xfb, 0x3d, 0x07, 0x5a, 0xa8, 0x39, 0x42, 0x3e, 0xda, 0x8f, 0x82, 0x30,
0x65, 0xb7, 0x80, 0x1d, 0x4d, 0xc3, 0x41, 0x10, 0x0e, 0x7b, 0xe9, 0xf3, 0x60, 0xd0, 0x3b, 0x9c,
0x61, 0x13, 0x34, 0x9e, 0xdd, 0x0b, 0x5e, 0x49, 0x1d, 0x7b, 0x07, 0xda, 0x16, 0x9a, 0xa4, 0xb1,
0x18, 0xd5, 0xee, 0x05, 0xaf, 0x50, 0x83, 0xf2, 0x1f, 0x4d, 0xd3, 0xc9, 0x34, 0xed, 0x05, 0xe1,
0x80, 0x3f, 0xa7, 0x35, 0x5b, 0xf4, 0x2c, 0xec, 0xce, 0x12, 0xb4, 0xcc, 0xef, 0xdc, 0xcf, 0x41,
0x7b, 0x0f, 0x15, 0x43, 0x18, 0x84, 0xc3, 0xdb, 0x42, 0x7a, 0x51, 0x5b, 0x4d, 0xa6, 0x87, 0xcf,
0xf8, 0x4c, 0xee, 0xa3, 0x2c, 0xa1, 0x48, 0x1c, 0x47, 0x49, 0x2a, 0xd7, 0x85, 0x7e, 0xbb, 0xff,
0xe2, 0xc0, 0x32, 0x2e, 0xfa, 0x47, 0x7e, 0x38, 0x53, 0x2b, 0xbe, 0x07, 0x2d, 0x6c, 0xea, 0x71,
0x74, 0x5b, 0xe8, 0x3c, 0x21, 0xcb, 0xd7, 0xe5, 0x22, 0xe5, 0xa8, 0x6f, 0x98, 0xa4, 0x68, 0xa6,
0x67, 0x9e, 0xf5, 0x35, 0x0a, 0x5d, 0xea, 0xc7, 0x43, 0x9e, 0x92, 0x36, 0x94, 0xda, 0x11, 0x04,
0xb4, 0x1d, 0x85, 0x47, 0xec, 0x0a, 0xb4, 0x12, 0x3f, 0xed, 0x4d, 0x78, 0x4c, 0xab, 0x46, 0x82,
0x53, 0xf5, 0x20, 0xf1, 0xd3, 0x7d, 0x1e, 0xdf, 0x99, 0xa5, 0xbc, 0xfb, 0x79, 0x58, 0x29, 0xf4,
0x82, 0xb2, 0x9a, 0x4d, 0x11, 0x7f, 0xb2, 0x35, 0xa8, 0x9f, 0xf8, 0xa3, 0x29, 0x97, 0x4a, 0x5a,
0x14, 0x3e, 0xa8, 0xbc, 0xef, 0xb8, 0x6f, 0x43, 0x3b, 0x1b, 0xb6, 0x64, 0x7a, 0x06, 0x35, 0x5c,
0x41, 0xd9, 0x00, 0xfd, 0x76, 0x7f, 0xc3, 0x11, 0x84, 0xdb, 0x51, 0xa0, 0x15, 0x1e, 0x12, 0xa2,
0x5e, 0x54, 0x84, 0xf8, 0xfb, 0x4c, 0x83, 0xf0, 0xd3, 0x4f, 0xd6, 0xbd, 0x06, 0x2b, 0xc6, 0x10,
0x5e, 0x32, 0xd8, 0xef, 0x38, 0xb0, 0xf2, 0x90, 0x9f, 0xca, 0x5d, 0x57, 0xa3, 0x7d, 0x1f, 0x6a,
0xe9, 0x6c, 0x22, 0x9c, 0xac, 0xa5, 0xad, 0xab, 0x72, 0xd3, 0x0a, 0x74, 0x37, 0x64, 0xf1, 0xf1,
0x6c, 0xc2, 0x3d, 0xfa, 0xc2, 0xfd, 0x1c, 0x34, 0x0d, 0x90, 0x6d, 0xc0, 0xea, 0xd3, 0x07, 0x8f,
0x1f, 0xee, 0x1c, 0x1c, 0xf4, 0xf6, 0x9f, 0xdc, 0xf9, 0xe2, 0xce, 0xaf, 0xf4, 0x76, 0x6f, 0x1f,
0xec, 0xb6, 0x2f, 0xb0, 0x75, 0x60, 0x0f, 0x77, 0x0e, 0x1e, 0xef, 0xdc, 0xb5, 0x70, 0xc7, 0xed,
0x42, 0xe7, 0x21, 0x3f, 0x7d, 0x1a, 0xa4, 0x21, 0x4f, 0x12, 0xbb, 0x37, 0xf7, 0x06, 0x30, 0x73,
0x08, 0x72, 0x56, 0x1d, 0x98, 0x97, 0x16, 0x47, 0x19, 0x5c, 0x59, 0x74, 0xdf, 0x06, 0x76, 0x10,
0x0c, 0xc3, 0x8f, 0x78, 0x92, 0xf8, 0x43, 0xad, 0x0a, 0xda, 0x50, 0x1d, 0x27, 0x43, 0xa9, 0x01,
0xf0, 0xa7, 0xfb, 0x29, 0x58, 0xb5, 0xe8, 0x64, 0xc3, 0xaf, 0x43, 0x23, 0x09, 0x86, 0xa1, 0x9f,
0x4e, 0x63, 0x2e, 0x9b, 0xce, 0x00, 0xf7, 0x1e, 0xac, 0x7d, 0x99, 0xc7, 0xc1, 0xd1, 0xec, 0xbc,
0xe6, 0xed, 0x76, 0x2a, 0xf9, 0x76, 0x76, 0xe0, 0x62, 0xae, 0x1d, 0xd9, 0xbd, 0x60, 0x44, 0xb9,
0x5d, 0x0b, 0x9e, 0x28, 0x18, 0x62, 0x59, 0x31, 0xc5, 0xd2, 0x7d, 0x02, 0x6c, 0x3b, 0x0a, 0x43,
0xde, 0x4f, 0xf7, 0x39, 0x8f, 0x33, 0xcf, 0x39, 0xe3, 0xba, 0xe6, 0xd6, 0x86, 0xdc, 0xc7, 0xbc,
0xac, 0x4b, 0x76, 0x64, 0x50, 0x9b, 0xf0, 0x78, 0x4c, 0x0d, 0x2f, 0x78, 0xf4, 0xdb, 0xbd, 0x08,
0xab, 0x56, 0xb3, 0xd2, 0xe9, 0x79, 0x17, 0x2e, 0xde, 0x0d, 0x92, 0x7e, 0xb1, 0xc3, 0x0e, 0xcc,
0x4f, 0xa6, 0x87, 0xbd, 0x4c, 0xa6, 0x54, 0x11, 0x7d, 0x81, 0xfc, 0x27, 0xb2, 0xb1, 0xdf, 0x76,
0xa0, 0xb6, 0xfb, 0x78, 0x6f, 0x9b, 0x75, 0x61, 0x21, 0x08, 0xfb, 0xd1, 0x18, 0xd5, 0xae, 0x98,
0xb4, 0x2e, 0x9f, 0x29, 0x2b, 0xaf, 0x43, 0x83, 0xb4, 0x35, 0xba, 0x37, 0xd2, 0xc9, 0xcd, 0x00,
0x74, 0xad, 0xf8, 0xf3, 0x49, 0x10, 0x93, 0xef, 0xa4, 0x3c, 0xa2, 0x1a, 0x69, 0xc4, 0x62, 0x85,
0xfb, 0x3f, 0x35, 0x98, 0x97, 0xba, 0x9a, 0xfa, 0xeb, 0xa7, 0xc1, 0x09, 0x97, 0x23, 0x91, 0x25,
0xb4, 0x72, 0x31, 0x1f, 0x47, 0x29, 0xef, 0x59, 0xdb, 0x60, 0x83, 0x48, 0xd5, 0x17, 0x0d, 0xf5,
0x26, 0xa8, 0xf5, 0x69, 0x64, 0x0d, 0xcf, 0x06, 0x71, 0xb1, 0x10, 0xe8, 0x05, 0x03, 0x1a, 0x53,
0xcd, 0x53, 0x45, 0x5c, 0x89, 0xbe, 0x3f, 0xf1, 0xfb, 0x41, 0x3a, 0x93, 0xc2, 0xad, 0xcb, 0xd8,
0xf6, 0x28, 0xea, 0xfb, 0xa3, 0xde, 0xa1, 0x3f, 0xf2, 0xc3, 0x3e, 0x97, 0xfe, 0x9b, 0x0d, 0xa2,
0x8b, 0x26, 0x87, 0xa4, 0xc8, 0x84, 0x1b, 0x97, 0x43, 0xd1, 0xd5, 0xeb, 0x47, 0xe3, 0x71, 0x90,
0xa2, 0x67, 0x47, 0x56, 0xbf, 0xea, 0x19, 0x08, 0xcd, 0x44, 0x94, 0x4e, 0xc5, 0xea, 0x35, 0x44,
0x6f, 0x16, 0x88, 0xad, 0xa0, 0xeb, 0x80, 0x0a, 0xe9, 0xd9, 0x69, 0x07, 0x44, 0x2b, 0x19, 0x82,
0xfb, 0x30, 0x0d, 0x13, 0x9e, 0xa6, 0x23, 0x3e, 0xd0, 0x03, 0x6a, 0x12, 0x59, 0xb1, 0x82, 0xdd,
0x82, 0x55, 0xe1, 0x6c, 0x26, 0x7e, 0x1a, 0x25, 0xc7, 0x41, 0xd2, 0x4b, 0xd0, 0x6d, 0x6b, 0x11,
0x7d, 0x59, 0x15, 0x7b, 0x1f, 0x36, 0x72, 0x70, 0xcc, 0xfb, 0x3c, 0x38, 0xe1, 0x83, 0xce, 0x22,
0x7d, 0x75, 0x56, 0x35, 0xbb, 0x02, 0x4d, 0xf4, 0xb1, 0xa7, 0x93, 0x81, 0x8f, 0x76, 0x78, 0x89,
0xf6, 0xc1, 0x84, 0xd8, 0xbb, 0xb0, 0x38, 0xe1, 0xc2, 0x58, 0x1e, 0xa7, 0xa3, 0x7e, 0xd2, 0x59,
0x26, 0x4b, 0xd6, 0x94, 0xc2, 0x84, 0x9c, 0xeb, 0xd9, 0x14, 0xc8, 0x94, 0xfd, 0x84, 0x9c, 0x2d,
0x7f, 0xd6, 0x69, 0x13, 0xbb, 0x65, 0x00, 0xc9, 0x48, 0x1c, 0x9c, 0xf8, 0x29, 0xef, 0xac, 0x10,
0x6f, 0xa9, 0xa2, 0xfb, 0xa7, 0x0e, 0xac, 0xee, 0x05, 0x49, 0x2a, 0x99, 0x50, 0xab, 0xe3, 0x37,
0xa1, 0x29, 0xd8, 0xaf, 0x17, 0x85, 0xa3, 0x99, 0xe4, 0x48, 0x10, 0xd0, 0xa3, 0x70, 0x34, 0x63,
0x9f, 0x80, 0xc5, 0x20, 0x34, 0x49, 0x84, 0x0c, 0xb7, 0x14, 0x48, 0x44, 0x6f, 0x42, 0x73, 0x32,
0x3d, 0x1c, 0x05, 0x7d, 0x41, 0x52, 0x15, 0xad, 0x08, 0x88, 0x08, 0xd0, 0x49, 0x12, 0x23, 0x11,
0x14, 0x35, 0xa2, 0x68, 0x4a, 0x0c, 0x49, 0xdc, 0x3b, 0xb0, 0x66, 0x0f, 0x50, 0x2a, 0xab, 0x4d,
0x58, 0x90, 0xbc, 0x9d, 0x74, 0x9a, 0xb4, 0x3e, 0x4b, 0x72, 0x7d, 0x24, 0xa9, 0xa7, 0xeb, 0xdd,
0x3f, 0xaf, 0xc1, 0xaa, 0x44, 0xb7, 0x47, 0x51, 0xc2, 0x0f, 0xa6, 0xe3, 0xb1, 0x1f, 0x97, 0x08,
0x8d, 0x73, 0x8e, 0xd0, 0x54, 0x6c, 0xa1, 0x41, 0x56, 0x3e, 0xf6, 0x83, 0x50, 0x78, 0x78, 0x42,
0xe2, 0x0c, 0x84, 0x5d, 0x87, 0xe5, 0xfe, 0x28, 0x4a, 0x84, 0xd7, 0x63, 0x1e, 0x9f, 0xf2, 0x70,
0x51, 0xc8, 0xeb, 0x65, 0x42, 0x6e, 0x0a, 0xe9, 0x5c, 0x4e, 0x48, 0x5d, 0x68, 0x61, 0xa3, 0x5c,
0xe9, 0x9c, 0x79, 0xe1, 0x85, 0x99, 0x18, 0x8e, 0x27, 0x2f, 0x12, 0x42, 0xfe, 0x96, 0xcb, 0x04,
0x02, 0x4f, 0x67, 0xa8, 0xd3, 0x0c, 0xea, 0x86, 0x14, 0x88, 0x62, 0x15, 0xbb, 0x07, 0x20, 0xfa,
0x22, 0x33, 0x0e, 0x64, 0xc6, 0xdf, 0xb6, 0x77, 0xc4, 0x5c, 0xfb, 0x1b, 0x58, 0x98, 0xc6, 0x9c,
0x0c, 0xb9, 0xf1, 0xa5, 0xfb, 0x31, 0x34, 0x8d, 0x2a, 0x76, 0x11, 0x56, 0xb6, 0x1f, 0x3d, 0xda,
0xdf, 0xf1, 0x6e, 0x3f, 0x7e, 0xf0, 0xe5, 0x9d, 0xde, 0xf6, 0xde, 0xa3, 0x83, 0x9d, 0xf6, 0x05,
0x84, 0xf7, 0x1e, 0x6d, 0xdf, 0xde, 0xeb, 0xdd, 0x7b, 0xe4, 0x6d, 0x2b, 0xd8, 0x41, 0x1b, 0xef,
0xed, 0x7c, 0xf4, 0xe8, 0xf1, 0x8e, 0x85, 0x57, 0x58, 0x1b, 0x5a, 0x77, 0xbc, 0x9d, 0xdb, 0xdb,
0xbb, 0x12, 0xa9, 0xb2, 0x35, 0x68, 0xdf, 0x7b, 0xf2, 0xf0, 0xee, 0x83, 0x87, 0xf7, 0x7b, 0xdb,
0xb7, 0x1f, 0x6e, 0xef, 0xec, 0xed, 0xdc, 0x6d, 0xd7, 0xdc, 0xbf, 0x75, 0xe0, 0x22, 0x8d, 0x72,
0x90, 0x17, 0x88, 0x2b, 0xd0, 0xec, 0x47, 0xd1, 0x84, 0xa3, 0xfe, 0xd6, 0x2a, 0xda, 0x84, 0x90,
0xd9, 0x85, 0x42, 0x3c, 0x8a, 0xe2, 0x3e, 0x97, 0xf2, 0x00, 0x04, 0xdd, 0x43, 0x04, 0x99, 0x5d,
0x6e, 0xa7, 0xa0, 0x10, 0xe2, 0xd0, 0x14, 0x98, 0x20, 0x59, 0x87, 0xb9, 0xc3, 0x98, 0xfb, 0xfd,
0x63, 0x29, 0x09, 0xb2, 0xc4, 0x3e, 0x99, 0x39, 0xe4, 0x7d, 0x5c, 0xed, 0x11, 0x1f, 0x10, 0x87,
0x2c, 0x78, 0xcb, 0x12, 0xdf, 0x96, 0xb0, 0xbb, 0x0f, 0xeb, 0xf9, 0x19, 0x48, 0x89, 0x79, 0xcf,
0x90, 0x18, 0xe1, 0x1b, 0x77, 0xcf, 0xde, 0x1f, 0x43, 0x7a, 0xfe, 0xdd, 0x81, 0x1a, 0x9a, 0xcf,
0xb3, 0x4d, 0xad, 0xe9, 0x11, 0x55, 0x2d, 0x8f, 0x88, 0x82, 0x07, 0x78, 0xa6, 0x10, 0x0a, 0x55,
0x18, 0x1d, 0x03, 0xc9, 0xea, 0x63, 0xde, 0x3f, 0xa1, 0x39, 0xe9, 0x7a, 0x44, 0x90, 0xe5, 0xd1,
0xf1, 0xa4, 0xaf, 0x25, 0xcb, 0xab, 0xb2, 0xaa, 0xa3, 0x2f, 0xe7, 0xb3, 0x3a, 0xfa, 0xae, 0x03,
0xf3, 0x41, 0x78, 0x18, 0x4d, 0xc3, 0x01, 0xb1, 0xf8, 0x82, 0xa7, 0x8a, 0xa8, 0x2a, 0x27, 0x24,
0x7a, 0xc1, 0x58, 0x31, 0x74, 0x06, 0xb8, 0x0c, 0x0f, 0x26, 0x09, 0xb9, 0x0b, 0xda, 0x0b, 0x7c,
0x0f, 0x56, 0x0c, 0x4c, 0xae, 0xe6, 0x5b, 0x50, 0x9f, 0x20, 0x20, 0x97, 0x52, 0x29, 0x67, 0xf2,
0x33, 0x44, 0x8d, 0xdb, 0x86, 0xa5, 0xfb, 0x3c, 0x7d, 0x10, 0x1e, 0x45, 0xaa, 0xa5, 0x1f, 0x55,
0x61, 0x59, 0x43, 0xb2, 0xa1, 0xeb, 0xb0, 0x1c, 0x0c, 0x78, 0x98, 0x06, 0xe9, 0xac, 0x67, 0x9d,
0x7f, 0xf2, 0x30, 0xfa, 0x67, 0xfe, 0x28, 0xf0, 0x13, 0xe9, 0x01, 0x88, 0x02, 0xdb, 0x82, 0x35,
0x34, 0x1e, 0xca, 0x1e, 0xe8, 0x2d, 0x16, 0xc7, 0xb0, 0xd2, 0x3a, 0x14, 0x6f, 0xc4, 0xa5, 0xfe,
0xd6, 0x9f, 0x08, 0x3f, 0xa5, 0xac, 0x0a, 0x57, 0x4d, 0xb4, 0x84, 0x53, 0xae, 0x0b, 0x03, 0xa3,
0x81, 0x42, 0x08, 0x68, 0x4e, 0x28, 0x9f, 0x7c, 0x08, 0xc8, 0x08, 0x23, 0x2d, 0x14, 0xc2, 0x48,
0xa8, 0x9c, 0x66, 0x61, 0x9f, 0x0f, 0x7a, 0x69, 0xd4, 0x23, 0x25, 0x4a, 0xbb, 0xb3, 0xe0, 0xe5,
0x61, 0x0a, 0x78, 0xf1, 0x24, 0x0d, 0x79, 0x4a, 0x7a, 0x66, 0xc1, 0x53, 0x45, 0x94, 0x1f, 0x22,
0x11, 0x26, 0xa1, 0xe1, 0xc9, 0x12, 0x3a, 0x9a, 0xd3, 0x38, 0x48, 0x3a, 0x2d, 0x42, 0xe9, 0x37,
0xfb, 0x34, 0x5c, 0x3c, 0xe4, 0x49, 0xda, 0x3b, 0xe6, 0xfe, 0x80, 0xc7, 0xb4, 0xfb, 0x22, 0x3a,
0x25, 0xec, 0x77, 0x79, 0x25, 0xf6, 0x7d, 0xc2, 0xe3, 0x24, 0x88, 0x42, 0xb2, 0xdc, 0x0d, 0x4f,
0x15, 0xdd, 0x6f, 0x92, 0x3f, 0xac, 0xe3, 0x66, 0x4f, 0xc8, 0x98, 0xb3, 0xd7, 0xa0, 0x21, 0xe6,
0x98, 0x1c, 0xfb, 0xd2, 0x45, 0x5f, 0x20, 0xe0, 0xe0, 0xd8, 0x47, 0x8d, 0x60, 0x2d, 0x9b, 0x08,
0x44, 0x36, 0x09, 0xdb, 0x15, 0xab, 0x76, 0x15, 0x96, 0x54, 0x44, 0x2e, 0xe9, 0x8d, 0xf8, 0x51,
0xaa, 0x8e, 0xd7, 0xe1, 0x74, 0x8c, 0xdd, 0x25, 0x7b, 0xfc, 0x28, 0x75, 0x1f, 0xc2, 0x8a, 0x94,
0xe1, 0x47, 0x13, 0xae, 0xba, 0xfe, 0x6c, 0x99, 0x75, 0x6b, 0x6e, 0xad, 0xda, 0x42, 0x4f, 0x31,
0x82, 0x9c, 0xc9, 0x73, 0x3d, 0x60, 0xa6, 0x4e, 0x90, 0x0d, 0x4a, 0x13, 0xa3, 0x0e, 0xf1, 0x72,
0x3a, 0x16, 0x86, 0xeb, 0x93, 0x4c, 0xfb, 0x7d, 0xd4, 0x04, 0x42, 0x03, 0xaa, 0xa2, 0xfb, 0x7d,
0x07, 0x56, 0xa9, 0x35, 0x65, 0x9f, 0xf5, 0xc9, 0xef, 0xd5, 0x87, 0xd9, 0xea, 0x9b, 0x81, 0x8d,
0x35, 0xa8, 0x9b, 0xba, 0x56, 0x14, 0x7e, 0xfc, 0xb3, 0x6c, 0xad, 0x70, 0x96, 0xfd, 0x91, 0x03,
0x2b, 0x42, 0x19, 0xa6, 0x7e, 0x3a, 0x4d, 0xe4, 0xf4, 0x7f, 0x01, 0x16, 0x85, 0x9d, 0x92, 0xe2,
0x24, 0x07, 0xba, 0xa6, 0x25, 0x9f, 0x50, 0x41, 0xbc, 0x7b, 0xc1, 0xb3, 0x89, 0xd9, 0xe7, 0xa1,
0x65, 0x86, 0x55, 0x69, 0xcc, 0xcd, 0xad, 0x4b, 0x6a, 0x96, 0x05, 0xce, 0xd9, 0xbd, 0xe0, 0x59,
0x1f, 0xb0, 0x0f, 0xc9, 0xd9, 0x08, 0x7b, 0xd4, 0xac, 0x0c, 0x4c, 0x5d, 0x2a, 0x51, 0xe0, 0xfa,
0x73, 0x83, 0xfc, 0xce, 0x02, 0xcc, 0x09, 0xef, 0xd2, 0xbd, 0x0f, 0x8b, 0xd6, 0x48, 0xad, 0x33,
0x7a, 0x4b, 0x9c, 0xd1, 0x0b, 0x21, 0x9d, 0x4a, 0x31, 0xa4, 0xe3, 0x7e, 0xbb, 0x0a, 0x0c, 0xb9,
0x2d, 0xb7, 0x9d, 0xe8, 0xde, 0x46, 0x03, 0xeb, 0xb0, 0xd2, 0xf2, 0x4c, 0x88, 0xdd, 0x00, 0x66,
0x14, 0x55, 0xd4, 0x4b, 0xd8, 0x8d, 0x92, 0x1a, 0x54, 0x70, 0xd2, 0xb0, 0x4a, 0x13, 0x28, 0x8f,
0x65, 0x62, 0xdf, 0x4a, 0xeb, 0xd0, 0x34, 0x4c, 0xa6, 0xc9, 0x31, 0xba, 0xdf, 0xea, 0x38, 0xa3,
0xca, 0x79, 0x06, 0x99, 0x3b, 0x97, 0x41, 0xe6, 0xf3, 0x0c, 0x62, 0x3a, 0xd4, 0x0b, 0x96, 0x43,
0x8d, 0x8e, 0xdc, 0x18, 0xdd, 0xbf, 0x74, 0xd4, 0xef, 0x8d, 0xb1, 0x77, 0x79, 0x7a, 0xb1, 0x40,
0xb6, 0x09, 0x6d, 0xe9, 0x0a, 0x64, 0x5e, 0x3b, 0xd0, 0x1a, 0x17, 0x70, 0xd4, 0xbc, 0xf8, 0x31,
0x69, 0x00, 0x3a, 0xc1, 0xd4, 0xbd, 0x0c, 0x70, 0x7f, 0xe8, 0x40, 0x1b, 0x77, 0xc1, 0xe2, 0xd4,
0x0f, 0x80, 0x04, 0xe5, 0x15, 0x19, 0xd5, 0xa2, 0xfd, 0xe9, 0xf9, 0xf4, 0x7d, 0x68, 0x50, 0x83,
0xd1, 0x84, 0x87, 0x92, 0x4d, 0x3b, 0x36, 0x9b, 0x66, 0x3a, 0x6a, 0xf7, 0x82, 0x97, 0x11, 0x1b,
0x4c, 0xfa, 0x4f, 0x0e, 0x34, 0xe5, 0x30, 0x7f, 0xe2, 0x73, 0x7a, 0x17, 0x16, 0x90, 0x5f, 0x8d,
0xc3, 0xb0, 0x2e, 0xa3, 0xad, 0x19, 0xfb, 0xe9, 0x34, 0x46, 0xe3, 0x6a, 0x9d, 0xd1, 0xf3, 0x30,
0x5a, 0x4a, 0x52, 0xc7, 0x49, 0x2f, 0x0d, 0x46, 0x3d, 0x55, 0x2b, 0xef, 0x38, 0xca, 0xaa, 0x50,
0x2b, 0x25, 0xa9, 0x3f, 0xe4, 0xd2, 0x08, 0x8a, 0x82, 0xdb, 0x81, 0x75, 0x39, 0xa1, 0x9c, 0x67,
0xe9, 0xfe, 0x4d, 0x0b, 0x36, 0x0a, 0x55, 0xfa, 0x92, 0x50, 0x1e, 0x3e, 0x47, 0xc1, 0xf8, 0x30,
0xd2, 0x6e, 0xb8, 0x63, 0x9e, 0x4b, 0xad, 0x2a, 0x36, 0x84, 0x8b, 0xca, 0xda, 0xe3, 0x9a, 0x66,
0xb6, 0xbd, 0x42, 0x6e, 0xca, 0xbb, 0x36, 0x0f, 0xe4, 0x3b, 0x54, 0xb8, 0x29, 0xd7, 0xe5, 0xed,
0xb1, 0x63, 0xe8, 0x68, 0xb7, 0x42, 0x1a, 0x00, 0xc3, 0xf5, 0xc0, 0xbe, 0xde, 0x39, 0xa7, 0x2f,
0xcb, 0x4d, 0xf5, 0xce, 0x6c, 0x8d, 0xcd, 0xe0, 0xb2, 0xaa, 0x23, 0x0d, 0x5f, 0xec, 0xaf, 0xf6,
0x4a, 0x73, 0x23, 0x17, 0xdb, 0xee, 0xf4, 0x9c, 0x86, 0xd9, 0xd7, 0x61, 0xfd, 0xd4, 0x0f, 0x52,
0x35, 0x2c, 0xc3, 0x55, 0xaa, 0x53, 0x97, 0x5b, 0xe7, 0x74, 0xf9, 0x54, 0x7c, 0x6c, 0x99, 0xbd,
0x33, 0x5a, 0xec, 0xfe, 0x83, 0x03, 0x4b, 0x76, 0x3b, 0xc8, 0xa6, 0x52, 0x1d, 0x28, 0xb5, 0xa8,
0x5c, 0xc3, 0x1c, 0x5c, 0x3c, 0xc9, 0x56, 0xca, 0x4e, 0xb2, 0xe6, 0xf9, 0xb1, 0x7a, 0x5e, 0x90,
0xa7, 0xf6, 0x6a, 0x41, 0x9e, 0x7a, 0x59, 0x90, 0xa7, 0xfb, 0xdf, 0x0e, 0xb0, 0x22, 0x2f, 0xb1,
0xfb, 0xe2, 0x28, 0x1d, 0xf2, 0x91, 0xd4, 0x49, 0x3f, 0xff, 0x6a, 0xfc, 0xa8, 0xd6, 0x4e, 0x7d,
0x8d, 0x82, 0x61, 0x2a, 0x1d, 0xd3, 0x81, 0x5a, 0xf4, 0xca, 0xaa, 0x72, 0x61, 0xa7, 0xda, 0xf9,
0x61, 0xa7, 0xfa, 0xf9, 0x61, 0xa7, 0xb9, 0x7c, 0xd8, 0xa9, 0xfb, 0x5b, 0x0e, 0xac, 0x96, 0x6c,
0xfa, 0xcf, 0x6e, 0xe2, 0xb8, 0x4d, 0x96, 0x2e, 0xa8, 0xc8, 0x6d, 0x32, 0xc1, 0xee, 0xaf, 0xc3,
0xa2, 0xc5, 0xe8, 0x3f, 0xbb, 0xfe, 0xf3, 0x3e, 0xa0, 0xe0, 0x33, 0x0b, 0xeb, 0xfe, 0x47, 0x05,
0x58, 0x51, 0xd8, 0xfe, 0x5f, 0xc7, 0x50, 0x5c, 0xa7, 0x6a, 0xc9, 0x3a, 0xfd, 0x9f, 0xda, 0x81,
0x77, 0x60, 0x45, 0x66, 0x14, 0x18, 0x01, 0x14, 0xc1, 0x31, 0xc5, 0x0a, 0xf4, 0x82, 0xed, 0x98,
0xdf, 0x82, 0x75, 0x13, 0x6d, 0x18, 0xc3, 0x5c, 0xe8, 0xcf, 0x5d, 0x87, 0x35, 0x91, 0xa1, 0x70,
0x47, 0x34, 0xa5, 0xec, 0xca, 0x9f, 0x38, 0x70, 0x31, 0x57, 0x91, 0xdd, 0x9b, 0x0a, 0xd3, 0x61,
0xdb, 0x13, 0x1b, 0xc4, 0xf1, 0x4b, 0x39, 0x32, 0xc6, 0x2f, 0xb8, 0xad, 0x58, 0x81, 0xeb, 0x33,
0x0d, 0x8b, 0xf4, 0x62, 0xd5, 0xcb, 0xaa, 0xdc, 0x0d, 0x91, 0x47, 0x11, 0xf2, 0x51, 0x6e, 0xe0,
0x47, 0x22, 0xf3, 0xc1, 0xac, 0xc8, 0x2e, 0x5e, 0xec, 0x21, 0xab, 0x22, 0xfa, 0x88, 0x96, 0x99,
0xb2, 0xc7, 0x5b, 0x5a, 0xe7, 0xfe, 0x95, 0x03, 0xec, 0x4b, 0x53, 0x1e, 0xcf, 0xe8, 0xfe, 0x54,
0x47, 0x7a, 0x36, 0xf2, 0x51, 0x8e, 0xb9, 0xc9, 0xf4, 0xf0, 0x8b, 0x7c, 0xa6, 0x6e, 0xd9, 0x2b,
0xd9, 0x2d, 0xfb, 0x1b, 0x00, 0x78, 0x38, 0xd3, 0x97, 0xb2, 0xe4, 0x9b, 0x85, 0xd3, 0xb1, 0x68,
0xb0, 0xf4, 0x22, 0xbc, 0x76, 0xfe, 0x45, 0x78, 0xfd, 0xbc, 0x8b, 0xf0, 0x0f, 0x61, 0xd5, 0x1a,
0xb7, 0xde, 0x56, 0x75, 0x3d, 0xec, 0xbc, 0xe4, 0x7a, 0xf8, 0x3f, 0x1d, 0xa8, 0xee, 0x46, 0x13,
0x33, 0xaa, 0xe9, 0xd8, 0x51, 0x4d, 0x69, 0x4b, 0x7a, 0xda, 0x54, 0x48, 0x15, 0x63, 0x81, 0x6c,
0x13, 0x96, 0xfc, 0x71, 0x8a, 0x87, 0xf2, 0xa3, 0x28, 0x3e, 0xf5, 0xe3, 0x81, 0xd8, 0xeb, 0x3b,
0x95, 0x8e, 0xe3, 0xe5, 0x6a, 0xd8, 0x1a, 0x54, 0xb5, 0xd2, 0x25, 0x02, 0x2c, 0xa2, 0xe3, 0x46,
0x37, 0x22, 0x33, 0x19, 0x4f, 0x90, 0x25, 0x64, 0x25, 0xfb, 0x7b, 0xe1, 0x48, 0x0b, 0xd1, 0x29,
0xab, 0x42, 0xbb, 0x86, 0xcb, 0x47, 0x64, 0x32, 0x10, 0xa4, 0xca, 0xee, 0xbf, 0x39, 0x50, 0xa7,
0x15, 0x40, 0x61, 0x17, 0x1c, 0xae, 0xc3, 0x97, 0x34, 0xf3, 0x45, 0x2f, 0x0f, 0x33, 0xd7, 0xca,
0x46, 0xa9, 0xe8, 0x61, 0x9b, 0x19, 0x29, 0x57, 0xa0, 0x21, 0x4a, 0x3a, 0xf3, 0x82, 0x48, 0x32,
0x90, 0x5d, 0x86, 0xda, 0x71, 0x34, 0x51, 0xde, 0x09, 0xa8, 0xe8, 0x7d, 0x34, 0xf1, 0x08, 0xcf,
0xc6, 0x83, 0xed, 0x89, 0xc1, 0x0b, 0x9b, 0x93, 0x87, 0xd1, 0xea, 0xea, 0x66, 0xcd, 0xc5, 0xc8,
0xa1, 0xee, 0x26, 0x2c, 0x3f, 0x8c, 0x06, 0xdc, 0x88, 0x38, 0x9d, 0xc9, 0xcd, 0xee, 0xb7, 0x1c,
0x58, 0x50, 0xc4, 0xec, 0x3a, 0xd4, 0xd0, 0x95, 0xc8, 0x1d, 0x14, 0xf4, 0xad, 0x1d, 0xd2, 0x79,
0x44, 0x81, 0xba, 0x97, 0xe2, 0x11, 0x99, 0x5b, 0xa9, 0xa2, 0x11, 0x99, 0xd7, 0xa4, 0x87, 0x9b,
0x73, 0x36, 0x72, 0xa8, 0xfb, 0x17, 0x0e, 0x2c, 0x5a, 0x7d, 0xe0, 0xe1, 0x71, 0xe4, 0x27, 0xa9,
0xbc, 0x09, 0x91, 0xdb, 0x63, 0x42, 0x66, 0x0c, 0xb2, 0x62, 0xc7, 0x20, 0x75, 0x74, 0xac, 0x6a,
0x46, 0xc7, 0x6e, 0x41, 0x23, 0xcb, 0x19, 0xaa, 0x59, 0x3a, 0x15, 0x7b, 0x54, 0xf7, 0x91, 0x19,
0x11, 0xb6, 0xd3, 0x8f, 0x46, 0x51, 0x2c, 0x43, 0xf0, 0xa2, 0xe0, 0x7e, 0x08, 0x4d, 0x83, 0x1e,
0x87, 0x11, 0xf2, 0xf4, 0x34, 0x8a, 0x9f, 0xa9, 0x50, 0xa8, 0x2c, 0xea, 0x6b, 0xf7, 0x4a, 0x76,
0xed, 0xee, 0xfe, 0xbd, 0x03, 0x8b, 0xc8, 0x83, 0x41, 0x38, 0xdc, 0x8f, 0x46, 0x41, 0x7f, 0x46,
0x7b, 0xaf, 0xd8, 0x4d, 0x6a, 0x06, 0xc5, 0x8b, 0x36, 0x8c, 0xbc, 0xad, 0xce, 0x8e, 0x52, 0x10,
0x75, 0x19, 0x25, 0x15, 0xf9, 0xfc, 0xd0, 0x4f, 0x24, 0xf3, 0x4b, 0x23, 0x67, 0x81, 0x28, 0x4f,
0x08, 0xc4, 0x7e, 0xca, 0x7b, 0xe3, 0x60, 0x34, 0x0a, 0x04, 0xad, 0x70, 0x81, 0xca, 0xaa, 0xb0,
0xcf, 0x41, 0x90, 0xf8, 0x87, 0x59, 0x98, 0x59, 0x97, 0xdd, 0x1f, 0x54, 0xa0, 0x29, 0xd5, 0xf3,
0xce, 0x60, 0xc8, 0xe5, 0x1d, 0x08, 0x39, 0x99, 0x5a, 0x95, 0x18, 0x88, 0xaa, 0xb7, 0xdc, 0x52,
0x03, 0xc9, 0x6f, 0x79, 0xb5, 0xb8, 0xe5, 0xaf, 0x43, 0x03, 0x59, 0xef, 0x5d, 0xf2, 0x7f, 0xc5,
0xfd, 0x49, 0x06, 0xa8, 0xda, 0x2d, 0xaa, 0xad, 0x67, 0xb5, 0x04, 0xbc, 0xf4, 0xc6, 0xe4, 0x7d,
0x68, 0xc9, 0x66, 0x68, 0x4f, 0x48, 0x73, 0x64, 0xcc, 0x6f, 0xed, 0x97, 0x67, 0x51, 0xaa, 0x2f,
0xb7, 0xd4, 0x97, 0x0b, 0xe7, 0x7d, 0xa9, 0x28, 0xe9, 0x76, 0x5b, 0xac, 0xcd, 0xfd, 0xd8, 0x9f,
0x1c, 0x2b, 0x93, 0x37, 0xd0, 0x29, 0x3b, 0x04, 0xb3, 0x4d, 0xa8, 0xe3, 0x67, 0x4a, 0x93, 0x97,
0x0b, 0xa4, 0x20, 0x61, 0xd7, 0xa1, 0xce, 0x07, 0x43, 0xae, 0x4e, 0x78, 0xcc, 0x3e, 0x6b, 0xe3,
0x1e, 0x79, 0x82, 0x00, 0xd5, 0x03, 0xa2, 0x39, 0xf5, 0x60, 0x5b, 0x81, 0x39, 0x2c, 0x3e, 0x18,
0xb8, 0x6b, 0xc0, 0x1e, 0x0a, 0x8e, 0x36, 0xe3, 0xd7, 0xdf, 0xae, 0x42, 0xd3, 0x80, 0x51, 0xd2,
0x87, 0x38, 0xe0, 0xde, 0x20, 0xf0, 0xc7, 0x3c, 0xe5, 0xb1, 0xe4, 0xe2, 0x1c, 0x8a, 0x74, 0xfe,
0xc9, 0xb0, 0x17, 0x4d, 0xd3, 0xde, 0x80, 0x0f, 0x63, 0x2e, 0x0c, 0x33, 0x1a, 0x0a, 0x0b, 0x45,
0xba, 0xb1, 0xff, 0xdc, 0xa4, 0x13, 0xfc, 0x90, 0x43, 0x55, 0x34, 0x5a, 0xac, 0x51, 0x2d, 0x8b,
0x46, 0x8b, 0x15, 0xc9, 0xeb, 0xa8, 0x7a, 0x89, 0x8e, 0x7a, 0x0f, 0xd6, 0x85, 0x36, 0x92, 0x72,
0xdb, 0xcb, 0xb1, 0xc9, 0x19, 0xb5, 0x6c, 0x13, 0xda, 0x38, 0x66, 0xc5, 0xe0, 0x49, 0xf0, 0x4d,
0x11, 0x1f, 0x72, 0xbc, 0x02, 0x8e, 0xb4, 0x14, 0xa8, 0x31, 0x69, 0xc5, 0x7d, 0x5b, 0x01, 0x27,
0x5a, 0xff, 0xb9, 0x4d, 0xdb, 0x90, 0xb4, 0x39, 0xdc, 0x5d, 0x84, 0xe6, 0x41, 0x1a, 0x4d, 0xd4,
0xa6, 0x2c, 0x41, 0x4b, 0x14, 0x65, 0x76, 0xc3, 0x6b, 0x70, 0x89, 0xb8, 0xe8, 0x71, 0x34, 0x89,
0x46, 0xd1, 0x70, 0x76, 0x30, 0x3d, 0x4c, 0xfa, 0x71, 0x30, 0xc1, 0xd3, 0x90, 0xfb, 0x8f, 0x0e,
0xac, 0x5a, 0xb5, 0x32, 0x64, 0xf4, 0x69, 0xc1, 0xd2, 0xfa, 0x5a, 0x5a, 0x30, 0xde, 0x8a, 0xa1,
0x2a, 0x05, 0xa1, 0x08, 0xe5, 0x3d, 0x91, 0x37, 0xd5, 0xb7, 0x61, 0x59, 0x8d, 0x4c, 0x7d, 0x28,
0xb8, 0xb0, 0x53, 0xe4, 0x42, 0xf9, 0xfd, 0x92, 0xfc, 0x40, 0x35, 0xf1, 0x8b, 0xf2, 0xde, 0x72,
0x40, 0x73, 0x54, 0xb1, 0x03, 0x7d, 0x33, 0x65, 0x9e, 0x20, 0xd4, 0x08, 0xfa, 0x1a, 0x4c, 0xdc,
0xdf, 0x75, 0x00, 0xb2, 0xd1, 0x21, 0x63, 0x64, 0xea, 0x5e, 0xa4, 0x52, 0x1b, 0xaa, 0xfd, 0x2d,
0x68, 0xe9, 0x3b, 0x95, 0xcc, 0x82, 0x34, 0x15, 0x86, 0x4e, 0xde, 0x35, 0x58, 0x1e, 0x8e, 0xa2,
0x43, 0x32, 0xbf, 0x94, 0x2e, 0x93, 0xc8, 0x1c, 0x8f, 0x25, 0x01, 0xdf, 0x93, 0x68, 0x66, 0x6e,
0x6a, 0x86, 0xb9, 0x71, 0xbf, 0x53, 0xd1, 0x91, 0xf8, 0x6c, 0xce, 0x67, 0x4a, 0x19, 0xdb, 0x2a,
0x28, 0xc7, 0x33, 0x02, 0xdf, 0x14, 0x25, 0xdb, 0x3f, 0xf7, 0x10, 0xff, 0x21, 0x2c, 0xc5, 0x42,
0xfb, 0x28, 0xd5, 0x54, 0x7b, 0x89, 0x6a, 0x5a, 0x8c, 0x2d, 0x9b, 0xf4, 0x49, 0x68, 0xfb, 0x83,
0x13, 0x1e, 0xa7, 0x01, 0x1d, 0xa3, 0xc8, 0x21, 0x10, 0x0a, 0x75, 0xd9, 0xc0, 0xc9, 0x4e, 0x5f,
0x83, 0x65, 0x99, 0x57, 0xa3, 0x29, 0x65, 0x2e, 0x68, 0x06, 0x23, 0xa1, 0xfb, 0x67, 0x2a, 0xe8,
0x6f, 0xef, 0xe1, 0xd9, 0x2b, 0x62, 0xce, 0xae, 0x92, 0x9b, 0xdd, 0x27, 0x64, 0x00, 0x7e, 0xa0,
0xce, 0x6a, 0x55, 0xe3, 0x8e, 0x7b, 0x20, 0x2f, 0x4c, 0xec, 0x25, 0xad, 0xbd, 0xca, 0x92, 0xba,
0x3f, 0x74, 0x60, 0x7e, 0x37, 0x9a, 0xec, 0xca, 0xdb, 0x7e, 0x12, 0x04, 0x9d, 0xb5, 0xa6, 0x8a,
0x2f, 0xc9, 0x03, 0x28, 0xb5, 0xc3, 0x8b, 0x79, 0x3b, 0xfc, 0x4b, 0xf0, 0x1a, 0x45, 0x0a, 0xe2,
0x68, 0x12, 0xc5, 0x28, 0x8c, 0xfe, 0x48, 0x18, 0xdd, 0x28, 0x4c, 0x8f, 0x95, 0x1a, 0x7b, 0x19,
0x09, 0x1d, 0xc9, 0xf0, 0x28, 0x21, 0x1c, 0x65, 0xe9, 0x37, 0x08, 0xed, 0x56, 0xac, 0x70, 0x3f,
0x0b, 0x0d, 0x72, 0x7c, 0x69, 0x5a, 0xef, 0x40, 0xe3, 0x38, 0x9a, 0xf4, 0x8e, 0x83, 0x30, 0x55,
0xc2, 0xbd, 0x94, 0x79, 0xa4, 0xbb, 0xb4, 0x20, 0x9a, 0xc0, 0xfd, 0xa3, 0x3a, 0xcc, 0x3f, 0x08,
0x4f, 0xa2, 0xa0, 0x4f, 0xf7, 0x03, 0x63, 0x3e, 0x8e, 0x54, 0x0e, 0x1f, 0xfe, 0xc6, 0xa5, 0xa0,
0x7c, 0x96, 0x49, 0x2a, 0x03, 0xfc, 0xaa, 0x88, 0xe6, 0x3e, 0xce, 0xf2, 0x6c, 0x85, 0xe8, 0x18,
0x08, 0x3a, 0xfd, 0xb1, 0x99, 0x92, 0x2c, 0x4b, 0x59, 0x12, 0x64, 0xdd, 0x48, 0x82, 0xa4, 0xdb,
0x24, 0x91, 0x99, 0x40, 0xfc, 0xb5, 0xe0, 0xa9, 0x22, 0x1d, 0x52, 0x62, 0x2e, 0x22, 0x3c, 0xe4,
0x38, 0xcc, 0xcb, 0x43, 0x8a, 0x09, 0xa2, 0x73, 0x21, 0x3e, 0x10, 0x34, 0x42, 0xf9, 0x9a, 0x10,
0x3a, 0x62, 0xf9, 0xac, 0xe6, 0x86, 0xe0, 0xf9, 0x1c, 0x8c, 0x1a, 0x7a, 0xc0, 0xb5, 0x22, 0x15,
0x73, 0x00, 0x91, 0x47, 0x9c, 0xc7, 0x8d, 0xa3, 0x8d, 0x48, 0x39, 0x52, 0x47, 0x1b, 0x64, 0x14,
0x7f, 0x34, 0x3a, 0xf4, 0xfb, 0xcf, 0x28, 0x69, 0x9d, 0x32, 0x8c, 0x1a, 0x9e, 0x0d, 0x52, 0xae,
0x41, 0xb6, 0x9b, 0x74, 0x1f, 0x59, 0xf3, 0x4c, 0x88, 0x6d, 0x41, 0x93, 0x8e, 0x73, 0x72, 0x3f,
0x97, 0x68, 0x3f, 0xdb, 0xe6, 0x79, 0x8f, 0x76, 0xd4, 0x24, 0x32, 0xef, 0x2c, 0x96, 0xed, 0x3b,
0x0b, 0xa1, 0x34, 0xe5, 0x55, 0x4f, 0x9b, 0x7a, 0xcb, 0x00, 0xb4, 0xa6, 0x72, 0xc1, 0x04, 0xc1,
0x0a, 0x11, 0x58, 0x18, 0xbb, 0x0c, 0x0b, 0x78, 0x08, 0x99, 0xf8, 0xc1, 0xa0, 0xc3, 0xf4, 0x59,
0x48, 0x63, 0xd8, 0x86, 0xfa, 0x4d, 0x57, 0x32, 0xab, 0xb4, 0x2a, 0x16, 0x86, 0x6b, 0xa3, 0xcb,
0x24, 0x44, 0x6b, 0x62, 0x47, 0x2d, 0xd0, 0x4d, 0x81, 0xdd, 0x1e, 0x0c, 0x24, 0x6f, 0xea, 0xa3,
0x6f, 0xc6, 0x55, 0x8e, 0xc5, 0x55, 0x25, 0xbb, 0x5b, 0x29, 0xdf, 0xdd, 0x97, 0xae, 0x81, 0xbb,
0x03, 0xcd, 0x7d, 0x23, 0x71, 0x9b, 0x98, 0x5c, 0xa5, 0x6c, 0x4b, 0xc1, 0x30, 0x10, 0x63, 0x38,
0x15, 0x73, 0x38, 0xee, 0xef, 0x38, 0xc0, 0xf6, 0x82, 0x24, 0xd5, 0xc3, 0x17, 0x7d, 0xbb, 0xd0,
0xd2, 0x01, 0x8a, 0x2c, 0xdb, 0xca, 0xc2, 0x90, 0x86, 0x86, 0xd2, 0x8b, 0x8e, 0x8e, 0x12, 0xae,
0xc2, 0x54, 0x16, 0x86, 0x1c, 0x8a, 0x3e, 0x0e, 0xfa, 0x0b, 0x81, 0xe8, 0x41, 0xf9, 0x3e, 0x05,
0xdc, 0x8d, 0x44, 0xde, 0x57, 0x7e, 0x21, 0x37, 0x61, 0x41, 0x7f, 0x6a, 0x6b, 0x09, 0x45, 0xa9,
0xeb, 0x51, 0x1b, 0x91, 0x9b, 0x6e, 0x8d, 0x4b, 0x9c, 0x07, 0x8b, 0x15, 0xee, 0x53, 0x58, 0x95,
0x4d, 0x98, 0xfe, 0x88, 0xbd, 0xee, 0xce, 0x79, 0xbc, 0x57, 0x29, 0xf2, 0x9e, 0xfb, 0x03, 0x07,
0xe6, 0xe5, 0xe6, 0xd0, 0x4a, 0xe6, 0x93, 0xee, 0x1b, 0x9e, 0x85, 0x95, 0xa7, 0x5b, 0x17, 0xf5,
0x49, 0xb5, 0x4c, 0x9f, 0x30, 0xa8, 0x4d, 0xfc, 0xf4, 0x98, 0x0e, 0x92, 0x0d, 0x8f, 0x7e, 0xb3,
0xb6, 0x08, 0x6e, 0x08, 0xbd, 0x45, 0x81, 0x8d, 0xb2, 0x17, 0x07, 0xc2, 0x3c, 0x16, 0x70, 0x3c,
0x10, 0x50, 0x6e, 0x89, 0xc0, 0xf5, 0xa5, 0x90, 0xcc, 0x7a, 0xcb, 0xe0, 0x6c, 0x7f, 0x64, 0x13,
0xf9, 0xfd, 0x91, 0xa4, 0x9e, 0xae, 0x77, 0xbb, 0xd0, 0xb9, 0xcb, 0x47, 0x3c, 0xe5, 0xb7, 0x47,
0xa3, 0x7c, 0xfb, 0xaf, 0xc1, 0xa5, 0x92, 0x3a, 0xe9, 0x40, 0xde, 0x83, 0x95, 0xbb, 0xfc, 0x70,
0x3a, 0xdc, 0xe3, 0x27, 0xd9, 0xbd, 0x2e, 0x83, 0x5a, 0x72, 0x1c, 0x9d, 0x4a, 0xe6, 0xa4, 0xdf,
0xec, 0x0d, 0x80, 0x11, 0xd2, 0xf4, 0x92, 0x09, 0xef, 0xab, 0x44, 0x63, 0x42, 0x0e, 0x26, 0xbc,
0xef, 0xbe, 0x07, 0xcc, 0x6c, 0x47, 0x4e, 0x01, 0x75, 0xf2, 0xf4, 0xb0, 0x97, 0xcc, 0x92, 0x94,
0x8f, 0x55, 0x06, 0xb5, 0x09, 0xb9, 0xd7, 0xa0, 0xb5, 0xef, 0xcf, 0x3c, 0xfe, 0x0d, 0xf9, 0xee,
0x61, 0x03, 0xe6, 0x27, 0xfe, 0x0c, 0x45, 0x55, 0xc7, 0x30, 0xa8, 0xda, 0xfd, 0xaf, 0x0a, 0xcc,
0x09, 0x4a, 0x6c, 0x75, 0xc0, 0x93, 0x34, 0x08, 0xc5, 0xad, 0xa5, 0x6c, 0xd5, 0x80, 0x0a, 0xbc,
0x51, 0x29, 0xe1, 0x0d, 0x79, 0x72, 0x50, 0x49, 0x9b, 0x92, 0x09, 0x2c, 0x0c, 0x39, 0x36, 0xcb,
0x15, 0x11, 0x87, 0xe8, 0x0c, 0xc8, 0x05, 0xb5, 0x32, 0xcd, 0x2f, 0xc6, 0xa7, 0xd8, 0x5e, 0xb2,
0x83, 0x09, 0x95, 0xda, 0x97, 0x79, 0xc1, 0x35, 0x05, 0xfb, 0x52, 0xb0, 0x23, 0x0b, 0xaf, 0x60,
0x47, 0xc4, 0x71, 0xe2, 0x65, 0x76, 0x04, 0x5e, 0xc1, 0x8e, 0xb8, 0x0c, 0xda, 0xf7, 0x38, 0xf7,
0x38, 0x7a, 0x28, 0x8a, 0x9d, 0xbe, 0xeb, 0x40, 0x5b, 0x3a, 0x57, 0xba, 0x8e, 0xbd, 0x65, 0x79,
0x62, 0xa5, 0xa9, 0x95, 0x57, 0x61, 0x91, 0xfc, 0x23, 0x1d, 0xbd, 0x93, 0xa1, 0x46, 0x0b, 0xc4,
0x79, 0xa8, 0x2b, 0x96, 0x71, 0x30, 0x92, 0x9b, 0x62, 0x42, 0x2a, 0x00, 0x18, 0xfb, 0x32, 0x9d,
0xc3, 0xf1, 0x74, 0xd9, 0xfd, 0x6b, 0x07, 0x56, 0x8c, 0x01, 0x4b, 0x2e, 0xfc, 0x10, 0x54, 0x2e,
0x89, 0x08, 0xf2, 0x09, 0x61, 0xda, 0xb0, 0x1d, 0xc5, 0xec, 0x33, 0x8b, 0x98, 0x36, 0xd3, 0x9f,
0xd1, 0x00, 0x93, 0xe9, 0x58, 0x6a, 0x25, 0x13, 0x42, 0x46, 0x3a, 0xe5, 0xfc, 0x99, 0x26, 0xa9,
0x0a, 0xc5, 0x65, 0x62, 0x94, 0x2a, 0x80, 0x7e, 0x9d, 0x26, 0x12, 0xd9, 0x71, 0x36, 0xe8, 0xfe,
0xb3, 0x03, 0xab, 0xc2, 0x41, 0x97, 0xc7, 0x1f, 0x9d, 0xf7, 0x3e, 0x27, 0x4e, 0x24, 0x42, 0x22,
0x77, 0x2f, 0x78, 0xb2, 0xcc, 0x3e, 0xf3, 0x8a, 0x87, 0x0a, 0x9d, 0x22, 0x72, 0xc6, 0x5e, 0x54,
0xcb, 0xf6, 0xe2, 0x25, 0x2b, 0x5d, 0x16, 0xd4, 0xaa, 0x97, 0x06, 0xb5, 0xee, 0xcc, 0x43, 0x3d,
0xe9, 0x47, 0x13, 0xee, 0xae, 0xc3, 0x9a, 0x3d, 0x39, 0xa9, 0x82, 0xbe, 0xe7, 0x40, 0xe7, 0x9e,
0x08, 0xf1, 0x06, 0xe1, 0x70, 0x37, 0x48, 0xd2, 0x28, 0xd6, 0x0f, 0x7d, 0x2e, 0x03, 0x24, 0xa9,
0x1f, 0xa7, 0x22, 0x85, 0x4f, 0x86, 0x9c, 0x32, 0x04, 0xc7, 0xc8, 0xc3, 0x81, 0xa8, 0x15, 0x7b,
0xa3, 0xcb, 0x05, 0x3b, 0x5a, 0x2d, 0xb1, 0xa3, 0x6f, 0x8b, 0x9c, 0x2b, 0xb4, 0x97, 0xfc, 0x84,
0x54, 0xad, 0xb0, 0xb6, 0x39, 0xd4, 0xfd, 0x4b, 0x07, 0x96, 0xb3, 0x41, 0xee, 0x20, 0x68, 0x6b,
0x07, 0x69, 0xcf, 0x32, 0xed, 0xa0, 0x82, 0x61, 0x01, 0x1a, 0x38, 0x39, 0x36, 0x03, 0x21, 0x89,
0x95, 0xa5, 0x68, 0xaa, 0xd2, 0x25, 0x4d, 0x48, 0x64, 0x3b, 0xa0, 0x69, 0x95, 0xb9, 0x92, 0xb2,
0x44, 0x19, 0x98, 0xe3, 0x94, 0xbe, 0x9a, 0x13, 0x87, 0x13, 0x59, 0x54, 0xf6, 0x69, 0x9e, 0x50,
0xfc, 0xe9, 0xfe, 0x9e, 0x03, 0x97, 0x4a, 0x16, 0x57, 0x4a, 0xc6, 0x5d, 0x58, 0x39, 0xd2, 0x95,
0x6a, 0x01, 0x84, 0x78, 0xac, 0xab, 0x3b, 0x09, 0x7b, 0xd2, 0x5e, 0xf1, 0x03, 0xed, 0x1c, 0x88,
0x25, 0xb5, 0xd2, 0x88, 0x8a, 0x15, 0x5b, 0xbf, 0x5f, 0x85, 0x25, 0x71, 0x57, 0x25, 0x9e, 0xdc,
0xf2, 0x98, 0x7d, 0x04, 0xf3, 0xf2, 0xc9, 0x34, 0xbb, 0x28, 0xbb, 0xb5, 0x1f, 0x69, 0x77, 0xd7,
0xf3, 0xb0, 0xe4, 0x9d, 0xd5, 0xdf, 0xfc, 0xe1, 0xbf, 0xfe, 0x41, 0x65, 0x91, 0x35, 0x6f, 0x9e,
0xbc, 0x7b, 0x73, 0xc8, 0xc3, 0x04, 0xdb, 0xf8, 0x55, 0x80, 0xec, 0x31, 0x31, 0xeb, 0x68, 0xa7,
0x26, 0xf7, 0x4a, 0xba, 0x7b, 0xa9, 0xa4, 0x46, 0xb6, 0x7b, 0x89, 0xda, 0x5d, 0x75, 0x97, 0xb0,
0xdd, 0x20, 0x0c, 0x52, 0xf1, 0xb2, 0xf8, 0x03, 0x67, 0x93, 0x0d, 0xa0, 0x65, 0xbe, 0x15, 0x66,
0x2a, 0x7c, 0x51, 0xf2, 0x52, 0xb9, 0xfb, 0x5a, 0x69, 0x9d, 0x8a, 0xdd, 0x50, 0x1f, 0x17, 0xdd,
0x36, 0xf6, 0x31, 0x25, 0x8a, 0xac, 0x97, 0x11, 0x2c, 0xd9, 0x4f, 0x82, 0xd9, 0xeb, 0x86, 0x58,
0x17, 0x1e, 0x24, 0x77, 0xdf, 0x38, 0xa3, 0x56, 0xf6, 0xf5, 0x06, 0xf5, 0xb5, 0xe1, 0x32, 0xec,
0xab, 0x4f, 0x34, 0xea, 0x41, 0xf2, 0x07, 0xce, 0xe6, 0xd6, 0xb7, 0x2e, 0x43, 0x43, 0x07, 0x1c,
0xd9, 0xd7, 0x61, 0xd1, 0xba, 0x4c, 0x64, 0x6a, 0x1a, 0x65, 0x77, 0x8f, 0xdd, 0xd7, 0xcb, 0x2b,
0x65, 0xc7, 0x97, 0xa9, 0xe3, 0x0e, 0x5b, 0xc7, 0x8e, 0xe5, 0x6d, 0xdc, 0x4d, 0xba, 0x42, 0x15,
0xf9, 0x9d, 0xcf, 0xc4, 0x3c, 0xb3, 0x0b, 0x40, 0x6b, 0x9e, 0x85, 0x0b, 0x43, 0x6b, 0x9e, 0xc5,
0x5b, 0x43, 0xf7, 0x75, 0xea, 0x6e, 0x9d, 0xad, 0x99, 0xdd, 0xe9, 0x40, 0x20, 0xa7, 0x8c, 0x5c,
0xf3, 0xc5, 0x30, 0x7b, 0x43, 0x33, 0x56, 0xd9, 0x4b, 0x62, 0xcd, 0x22, 0xc5, 0xe7, 0xc4, 0x6e,
0x87, 0xba, 0x62, 0x8c, 0xb6, 0xcf, 0x7c, 0x30, 0xcc, 0xbe, 0x0a, 0x0d, 0xfd, 0x3c, 0x8e, 0x6d,
0x18, 0x6f, 0x12, 0xcd, 0x37, 0x7b, 0xdd, 0x4e, 0xb1, 0xa2, 0x8c, 0x31, 0xcc, 0x96, 0x91, 0x31,
0xf6, 0xe0, 0xa2, 0x74, 0xaa, 0x0f, 0xf9, 0x8f, 0x33, 0x93, 0x92, 0x77, 0xce, 0xb7, 0x1c, 0xf6,
0x21, 0x2c, 0xa8, 0x57, 0x87, 0x6c, 0xbd, 0xfc, 0xf5, 0x64, 0x77, 0xa3, 0x80, 0x4b, 0xed, 0x71,
0x1b, 0x20, 0x7b, 0x31, 0xa7, 0xe5, 0xac, 0xf0, 0x8e, 0x4f, 0x2f, 0x62, 0xc9, 0xf3, 0xba, 0x21,
0xbd, 0x0f, 0xb4, 0x1f, 0xe4, 0xb1, 0x37, 0x33, 0xfa, 0xd2, 0xa7, 0x7a, 0x2f, 0x69, 0xd0, 0x5d,
0xa7, 0xb5, 0x6b, 0x33, 0x12, 0xdc, 0x90, 0x9f, 0xaa, 0xdc, 0xf4, 0xbb, 0xd0, 0x34, 0x5e, 0xe1,
0x31, 0xd5, 0x42, 0xf1, 0x05, 0x5f, 0xb7, 0x5b, 0x56, 0x25, 0x87, 0xfb, 0x05, 0x58, 0xb4, 0x9e,
0xd3, 0x69, 0xc9, 0x28, 0x7b, 0xac, 0xa7, 0x25, 0xa3, 0xfc, 0x05, 0xde, 0x57, 0xa0, 0x69, 0x3c,
0x7e, 0x63, 0x46, 0xd6, 0x5d, 0xee, 0xd9, 0x9b, 0x1e, 0x51, 0xd9, 0x5b, 0xb9, 0x35, 0x9a, 0xef,
0x92, 0xdb, 0xc0, 0xf9, 0x52, 0x82, 0x36, 0x32, 0xc9, 0xd7, 0x61, 0xc9, 0x7e, 0x0e, 0xa7, 0xa5,
0xaa, 0xf4, 0x61, 0x9d, 0x96, 0xaa, 0x33, 0xde, 0xd0, 0x49, 0x86, 0xdc, 0x5c, 0xd5, 0x9d, 0xdc,
0xfc, 0x58, 0x5e, 0xc5, 0xbd, 0x60, 0x5f, 0x42, 0xd5, 0x21, 0x33, 0xe6, 0x59, 0xf6, 0x08, 0xd0,
0xce, 0xab, 0xd7, 0xdc, 0x5e, 0x48, 0xae, 0x77, 0x57, 0xa8, 0xf1, 0x26, 0xcb, 0x66, 0x20, 0xec,
0x01, 0x65, 0xce, 0x1b, 0xf6, 0xc0, 0x4c, 0xae, 0x37, 0xec, 0x81, 0x95, 0x60, 0x9f, 0xb7, 0x07,
0x69, 0x80, 0x6d, 0x84, 0xb0, 0x9c, 0x4b, 0x3b, 0xd1, 0xc2, 0x52, 0x9e, 0xa7, 0xd7, 0xbd, 0xfc,
0xf2, 0x6c, 0x15, 0x5b, 0xcd, 0x28, 0xf5, 0x72, 0x53, 0xa5, 0x55, 0xfe, 0x1a, 0xb4, 0xcc, 0x67,
0x4c, 0xda, 0x42, 0x94, 0x3c, 0xbe, 0xd2, 0x16, 0xa2, 0xec, 0xdd, 0x93, 0xda, 0x5c, 0xd6, 0x32,
0xbb, 0xc1, 0xcd, 0xb5, 0x5f, 0x7d, 0x64, 0x2a, 0xb3, 0xec, 0x39, 0x4b, 0xa6, 0x32, 0x4b, 0x9f,
0x8a, 0xa8, 0xcd, 0x65, 0xab, 0xd6, 0x5c, 0x44, 0x9c, 0x95, 0x7d, 0x05, 0x96, 0x8d, 0x9c, 0xae,
0x83, 0x59, 0xd8, 0xd7, 0x8c, 0x5a, 0xcc, 0x07, 0xee, 0x96, 0x79, 0x9e, 0xee, 0x06, 0xb5, 0xbf,
0xe2, 0x5a, 0x93, 0x40, 0x26, 0xdd, 0x86, 0xa6, 0x99, 0x2f, 0xf6, 0x92, 0x76, 0x37, 0x8c, 0x2a,
0x33, 0xf9, 0xf5, 0x96, 0xc3, 0xfe, 0xd8, 0x81, 0x96, 0x95, 0x7d, 0x65, 0xdd, 0x26, 0xe4, 0xda,
0xe9, 0x98, 0x75, 0x66, 0x43, 0xae, 0x47, 0x83, 0xdc, 0xdb, 0xfc, 0x82, 0xb5, 0x08, 0x1f, 0x5b,
0x27, 0x98, 0x1b, 0xf9, 0xd7, 0xf0, 0x2f, 0xf2, 0x04, 0x66, 0xce, 0xf4, 0x8b, 0x5b, 0x0e, 0xfb,
0x40, 0xfc, 0xdf, 0x83, 0x8a, 0x58, 0x30, 0x43, 0x91, 0xe6, 0x97, 0xcc, 0xfc, 0xb3, 0x83, 0xeb,
0xce, 0x2d, 0x87, 0x7d, 0x4d, 0x3c, 0x7a, 0x97, 0xdf, 0xd2, 0xca, 0xbf, 0xea, 0xf7, 0xee, 0x55,
0x9a, 0xcd, 0x65, 0xf7, 0x92, 0x35, 0x9b, 0xbc, 0x25, 0xb9, 0x2d, 0x46, 0x27, 0xff, 0xcb, 0x20,
0x53, 0x89, 0x85, 0xff, 0x37, 0x38, 0x7b, 0x90, 0x63, 0x31, 0x48, 0x49, 0x6e, 0xb1, 0xc7, 0x2b,
0x36, 0xe3, 0x6e, 0xd2, 0x58, 0xaf, 0xba, 0x6f, 0x9e, 0x39, 0xd6, 0x9b, 0x74, 0x22, 0xc5, 0x11,
0xef, 0x03, 0x64, 0x01, 0x41, 0x96, 0x8b, 0x56, 0x69, 0xab, 0x50, 0x8c, 0x19, 0xda, 0x3c, 0xa8,
0x82, 0x5a, 0xd8, 0xe2, 0x57, 0x85, 0xa8, 0x3e, 0x50, 0x71, 0xae, 0x4b, 0x86, 0x38, 0xda, 0x91,
0xbb, 0x6e, 0xb7, 0xac, 0xaa, 0x4c, 0x50, 0x75, 0xd0, 0xec, 0x09, 0x2c, 0xee, 0x45, 0xd1, 0xb3,
0xe9, 0x44, 0x87, 0xd7, 0xed, 0xf8, 0xcd, 0xae, 0x9f, 0x1c, 0x77, 0x73, 0xb3, 0x70, 0xaf, 0x50,
0x53, 0x5d, 0xd6, 0x31, 0x9a, 0xba, 0xf9, 0x71, 0x16, 0x70, 0x7c, 0xc1, 0x7c, 0x58, 0xd1, 0x1e,
0x80, 0x1e, 0x78, 0xd7, 0x6e, 0xc6, 0x8c, 0xbb, 0x15, 0xba, 0xb0, 0x7c, 0x32, 0x35, 0xda, 0x9b,
0x89, 0x6a, 0xf3, 0x96, 0xc3, 0xf6, 0xa1, 0x75, 0x97, 0xf7, 0xa3, 0x01, 0x97, 0x11, 0x97, 0xd5,
0x6c, 0xe0, 0x3a, 0x54, 0xd3, 0x5d, 0xb4, 0x40, 0x5b, 0x27, 0x4e, 0xfc, 0x59, 0xcc, 0xbf, 0x71,
0xf3, 0x63, 0x19, 0xcb, 0x79, 0xa1, 0x74, 0xa2, 0x8a, 0x3f, 0x59, 0x3a, 0x31, 0x17, 0xb0, 0xb2,
0x74, 0x62, 0x21, 0x60, 0x65, 0x2d, 0xb5, 0x8a, 0x7f, 0xb1, 0x11, 0xac, 0x14, 0x62, 0x5c, 0xda,
0x8f, 0x38, 0x2b, 0x32, 0xd6, 0xbd, 0x72, 0x36, 0x81, 0xdd, 0xdb, 0xa6, 0xdd, 0xdb, 0x01, 0x2c,
0xde, 0xe5, 0x62, 0xb1, 0xc4, 0x1d, 0x7e, 0xee, 0x71, 0x9d, 0x79, 0xdf, 0x9f, 0x57, 0x8a, 0x54,
0x67, 0x1b, 0x3d, 0xba, 0x40, 0x67, 0x5f, 0x85, 0xe6, 0x7d, 0x9e, 0xaa, 0x4b, 0x7b, 0xed, 0x8d,
0xe5, 0x6e, 0xf1, 0xbb, 0x25, 0x77, 0xfe, 0x36, 0xcf, 0x50, 0x6b, 0x37, 0xf9, 0x60, 0xc8, 0x85,
0x7a, 0xea, 0x05, 0x83, 0x17, 0xec, 0x97, 0xa9, 0x71, 0x9d, 0x03, 0xb4, 0x6e, 0xdc, 0xf5, 0x9a,
0x8d, 0x2f, 0xe7, 0xf0, 0xb2, 0x96, 0xc3, 0x68, 0xc0, 0x0d, 0xf3, 0x1f, 0x42, 0xd3, 0x48, 0x50,
0xd3, 0x02, 0x54, 0x4c, 0xb6, 0xd3, 0x02, 0x54, 0x92, 0xcf, 0xe6, 0x5e, 0xa7, 0x7e, 0x5c, 0x76,
0x25, 0xeb, 0x47, 0xe4, 0xb0, 0x65, 0x3d, 0xdd, 0xfc, 0xd8, 0x1f, 0xa7, 0x2f, 0xd8, 0x53, 0x7a,
0x68, 0x67, 0x26, 0x26, 0x64, 0xde, 0x60, 0x3e, 0x87, 0x41, 0x2f, 0x96, 0x51, 0x65, 0x7b, 0x88,
0xa2, 0x2b, 0xf2, 0x12, 0x3e, 0x03, 0x70, 0x90, 0x46, 0x93, 0xbb, 0x3e, 0x1f, 0x47, 0x61, 0xa6,
0x6b, 0xb3, 0xcb, 0xf7, 0x4c, 0x7f, 0x19, 0x37, 0xf0, 0xec, 0xa9, 0xe1, 0x8f, 0x5b, 0x79, 0x1d,
0x8a, 0xb9, 0xce, 0xbc, 0x9f, 0xd7, 0x0b, 0x52, 0x72, 0x47, 0x7f, 0xcb, 0x41, 0xef, 0x3a, 0x8b,
0xa8, 0x6a, 0xef, 0xba, 0x10, 0xac, 0xd5, 0x6a, 0xaf, 0x24, 0xfc, 0xba, 0x0f, 0x8d, 0x2c, 0x44,
0xb7, 0x91, 0x25, 0x19, 0x5a, 0x01, 0x3d, 0x6d, 0x15, 0x0b, 0x81, 0x33, 0xb7, 0x4d, 0x4b, 0x05,
0x6c, 0x01, 0x97, 0x8a, 0xa2, 0x61, 0x01, 0xac, 0x8a, 0x01, 0x6a, 0x13, 0x4f, 0xd7, 0xc9, 0x6a,
0x26, 0x25, 0xc1, 0x2b, 0x2d, 0xcd, 0xa5, 0xb1, 0x1f, 0xeb, 0x9c, 0x8d, 0xdc, 0x2a, 0xae, 0xb2,
0x51, 0x35, 0x8f, 0x61, 0xa5, 0x10, 0xb8, 0xd0, 0x22, 0x7d, 0x56, 0xbc, 0x48, 0x8b, 0xf4, 0x99,
0x31, 0x0f, 0xf7, 0x22, 0x75, 0xb9, 0xec, 0x02, 0x76, 0x99, 0x9c, 0x06, 0x69, 0xff, 0xf8, 0x03,
0x67, 0xf3, 0x70, 0x8e, 0xfe, 0x1f, 0xee, 0x53, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x6f, 0xfa,
0x23, 0x44, 0x51, 0x4e, 0x00, 0x00,
0x77, 0x55, 0xa7, 0xaa, 0x7a, 0xc6, 0x9d, 0xc5, 0x52, 0x20, 0x88, 0x27, 0x22, 0x84, 0x40, 0x42,
0x41, 0x42, 0x48, 0x01, 0xa1, 0xf0, 0x07, 0xc0, 0x4b, 0x40, 0xe2, 0x81, 0x17, 0x90, 0x10, 0x0f,
0x79, 0x8a, 0x78, 0x84, 0x17, 0x40, 0xbc, 0x20, 0xf1, 0x8a, 0xd0, 0x39, 0xf7, 0xa3, 0xee, 0xad,
0xaa, 0xf1, 0x38, 0x1f, 0xf0, 0xd6, 0xf7, 0x77, 0x4f, 0xdd, 0xcf, 0xf3, 0x75, 0xcf, 0x3d, 0xb7,
0xa1, 0x11, 0x4f, 0xfa, 0x37, 0x26, 0x71, 0x94, 0x46, 0xac, 0x3e, 0x0a, 0xe3, 0x49, 0xbf, 0xfb,
0xfa, 0x30, 0x8a, 0x86, 0x23, 0x7e, 0xd3, 0x9f, 0x04, 0x37, 0xfd, 0x30, 0x8c, 0x52, 0x3f, 0x0d,
0xa2, 0x30, 0x11, 0x44, 0xee, 0xd7, 0x60, 0xe9, 0x3e, 0x0f, 0x0f, 0x38, 0x1f, 0x78, 0xfc, 0x1b,
0x53, 0x9e, 0xa4, 0xec, 0xe7, 0x60, 0xc5, 0xe7, 0xdf, 0xe4, 0x7c, 0xd0, 0x9b, 0xf8, 0x49, 0x32,
0x39, 0x8e, 0xfd, 0x84, 0x77, 0x9c, 0x2b, 0xce, 0xf5, 0x96, 0xd7, 0x16, 0x15, 0xfb, 0x1a, 0x67,
0x6f, 0x41, 0x2b, 0x41, 0x52, 0x1e, 0xa6, 0x71, 0x34, 0x99, 0x75, 0x2a, 0x44, 0xd7, 0x44, 0x6c,
0x47, 0x40, 0xee, 0x08, 0x96, 0x75, 0x0f, 0xc9, 0x24, 0x0a, 0x13, 0xce, 0x6e, 0xc1, 0x5a, 0x3f,
0x98, 0x1c, 0xf3, 0xb8, 0x47, 0x1f, 0x8f, 0x43, 0x3e, 0x8e, 0xc2, 0xa0, 0xdf, 0x71, 0xae, 0x54,
0xaf, 0x37, 0x3c, 0x26, 0xea, 0xf0, 0x8b, 0x8f, 0x64, 0x0d, 0xbb, 0x06, 0xcb, 0x3c, 0x14, 0x38,
0x1f, 0xd0, 0x57, 0xb2, 0xab, 0xa5, 0x0c, 0xc6, 0x0f, 0xdc, 0xbf, 0x73, 0x60, 0xe5, 0x41, 0x18,
0xa4, 0x4f, 0xfd, 0xd1, 0x88, 0xa7, 0x6a, 0x4e, 0xd7, 0x60, 0xf9, 0x94, 0x00, 0x9a, 0xd3, 0x69,
0x14, 0x0f, 0xe4, 0x8c, 0x96, 0x04, 0xbc, 0x2f, 0xd1, 0x33, 0x47, 0x56, 0x39, 0x73, 0x64, 0xa5,
0xcb, 0x55, 0x3d, 0x63, 0xb9, 0xae, 0xc1, 0x72, 0xcc, 0xfb, 0xd1, 0x09, 0x8f, 0x67, 0xbd, 0xd3,
0x20, 0x1c, 0x44, 0xa7, 0x9d, 0xda, 0x15, 0xe7, 0x7a, 0xdd, 0x5b, 0x52, 0xf0, 0x53, 0x42, 0xdd,
0x35, 0x60, 0xe6, 0x2c, 0xc4, 0xba, 0xb9, 0x43, 0x58, 0x7d, 0x12, 0x8e, 0xa2, 0xfe, 0xb3, 0x9f,
0x70, 0x76, 0x25, 0xdd, 0x57, 0x4a, 0xbb, 0x5f, 0x87, 0x35, 0xbb, 0x23, 0x39, 0x00, 0x0e, 0x17,
0xb7, 0x8f, 0xfd, 0x70, 0xc8, 0x55, 0x93, 0x6a, 0x08, 0x9f, 0x84, 0x76, 0x7f, 0x1a, 0xc7, 0x3c,
0x2c, 0x8c, 0x61, 0x59, 0xe2, 0x7a, 0x10, 0x6f, 0x41, 0x2b, 0xe4, 0xa7, 0x19, 0x99, 0x64, 0x99,
0x90, 0x9f, 0x2a, 0x12, 0xb7, 0x03, 0xeb, 0xf9, 0x6e, 0xe4, 0x00, 0xbe, 0x5b, 0x81, 0xe6, 0xe3,
0xd8, 0x0f, 0x13, 0xbf, 0x8f, 0x5c, 0xcc, 0x3a, 0x30, 0x9f, 0x3e, 0xef, 0x1d, 0xfb, 0xc9, 0x31,
0x75, 0xd7, 0xf0, 0x54, 0x91, 0xad, 0xc3, 0x9c, 0x3f, 0x8e, 0xa6, 0x61, 0x4a, 0x1d, 0x54, 0x3d,
0x59, 0x62, 0xef, 0xc0, 0x4a, 0x38, 0x1d, 0xf7, 0xfa, 0x51, 0x78, 0x14, 0xc4, 0x63, 0x21, 0x0b,
0xb4, 0x5f, 0x75, 0xaf, 0x58, 0xc1, 0x2e, 0x03, 0x1c, 0xe2, 0x3a, 0x88, 0x2e, 0x6a, 0xd4, 0x85,
0x81, 0x30, 0x17, 0x5a, 0xb2, 0xc4, 0x83, 0xe1, 0x71, 0xda, 0xa9, 0x53, 0x43, 0x16, 0x86, 0x6d,
0xa4, 0xc1, 0x98, 0xf7, 0x92, 0xd4, 0x1f, 0x4f, 0x3a, 0x73, 0x34, 0x1a, 0x03, 0xa1, 0xfa, 0x28,
0xf5, 0x47, 0xbd, 0x23, 0xce, 0x93, 0xce, 0xbc, 0xac, 0xd7, 0x08, 0x7b, 0x1b, 0x96, 0x06, 0x3c,
0x49, 0x7b, 0xfe, 0x60, 0x10, 0xf3, 0x24, 0xe1, 0x49, 0x67, 0x81, 0xb8, 0x31, 0x87, 0xe2, 0xaa,
0xdd, 0xe7, 0xa9, 0xb1, 0x3a, 0x89, 0xdc, 0x1d, 0x77, 0x0f, 0x98, 0x01, 0xdf, 0xe5, 0xa9, 0x1f,
0x8c, 0x12, 0xf6, 0x1e, 0xb4, 0x52, 0x83, 0x98, 0xa4, 0xaf, 0xb9, 0xc5, 0x6e, 0x90, 0xda, 0xb8,
0x61, 0x7c, 0xe0, 0x59, 0x74, 0xee, 0x7d, 0x58, 0xb8, 0xc7, 0xf9, 0x5e, 0x30, 0x0e, 0x52, 0xb6,
0x0e, 0xf5, 0xa3, 0xe0, 0x39, 0x17, 0x9b, 0x5d, 0xdd, 0xbd, 0xe0, 0x89, 0x22, 0xeb, 0xc2, 0xfc,
0x84, 0xc7, 0x7d, 0xae, 0x96, 0x7f, 0xf7, 0x82, 0xa7, 0x80, 0x3b, 0xf3, 0x50, 0x1f, 0xe1, 0xc7,
0xee, 0xf7, 0x2b, 0xd0, 0x3c, 0xe0, 0xa1, 0x66, 0x22, 0x06, 0x35, 0x9c, 0x92, 0x64, 0x1c, 0xfa,
0xcd, 0xde, 0x84, 0x26, 0x4d, 0x33, 0x49, 0xe3, 0x20, 0x1c, 0x52, 0x63, 0x0d, 0x0f, 0x10, 0x3a,
0x20, 0x84, 0xb5, 0xa1, 0xea, 0x8f, 0x53, 0xda, 0xc1, 0xaa, 0x87, 0x3f, 0x91, 0xc1, 0x26, 0xfe,
0x6c, 0x8c, 0xbc, 0xa8, 0x77, 0xad, 0xe5, 0x35, 0x25, 0xb6, 0x8b, 0xdb, 0x76, 0x03, 0x56, 0x4d,
0x12, 0xd5, 0x7a, 0x9d, 0x5a, 0x5f, 0x31, 0x28, 0x65, 0x27, 0xd7, 0x60, 0x59, 0xd1, 0xc7, 0x62,
0xb0, 0xb4, 0x8f, 0x0d, 0x6f, 0x49, 0xc2, 0x6a, 0x0a, 0xd7, 0xa1, 0x7d, 0x14, 0x84, 0xfe, 0xa8,
0xd7, 0x1f, 0xa5, 0x27, 0xbd, 0x01, 0x1f, 0xa5, 0x3e, 0xed, 0x68, 0xdd, 0x5b, 0x22, 0x7c, 0x7b,
0x94, 0x9e, 0xdc, 0x45, 0x94, 0xbd, 0x03, 0x8d, 0x23, 0xce, 0x7b, 0xb4, 0x12, 0x9d, 0x85, 0x2b,
0xce, 0xf5, 0xe6, 0xd6, 0xb2, 0x5c, 0x7a, 0xb5, 0xba, 0xde, 0xc2, 0x91, 0xfc, 0xe5, 0xfe, 0x81,
0x03, 0x2d, 0xb1, 0x54, 0x52, 0x85, 0x5e, 0x85, 0x45, 0x35, 0x22, 0x1e, 0xc7, 0x51, 0x2c, 0xd9,
0xdf, 0x06, 0xd9, 0x26, 0xb4, 0x15, 0x30, 0x89, 0x79, 0x30, 0xf6, 0x87, 0x5c, 0xca, 0x5b, 0x01,
0x67, 0x5b, 0x59, 0x8b, 0x71, 0x34, 0x4d, 0x85, 0x12, 0x6b, 0x6e, 0xb5, 0xe4, 0xa0, 0x3c, 0xc4,
0x3c, 0x9b, 0xc4, 0xfd, 0x8e, 0x03, 0x0c, 0x87, 0xf5, 0x38, 0x12, 0xd5, 0x72, 0x15, 0xf2, 0x3b,
0xe0, 0xbc, 0xf2, 0x0e, 0x54, 0xce, 0xda, 0x81, 0xab, 0x30, 0x47, 0x5d, 0xa2, 0xac, 0x56, 0x0b,
0xc3, 0x92, 0x75, 0xee, 0xf7, 0x1c, 0x68, 0xa1, 0xe6, 0x08, 0xf9, 0x68, 0x3f, 0x0a, 0xc2, 0x94,
0xdd, 0x02, 0x76, 0x34, 0x0d, 0x07, 0x41, 0x38, 0xec, 0xa5, 0xcf, 0x83, 0x41, 0xef, 0x70, 0x86,
0x4d, 0xd0, 0x78, 0x76, 0x2f, 0x78, 0x25, 0x75, 0xec, 0x1d, 0x68, 0x5b, 0x68, 0x92, 0xc6, 0x62,
0x54, 0xbb, 0x17, 0xbc, 0x42, 0x0d, 0xca, 0x7f, 0x34, 0x4d, 0x27, 0xd3, 0xb4, 0x17, 0x84, 0x03,
0xfe, 0x9c, 0xd6, 0x6c, 0xd1, 0xb3, 0xb0, 0x3b, 0x4b, 0xd0, 0x32, 0xbf, 0x73, 0x3f, 0x07, 0xed,
0x3d, 0x54, 0x0c, 0x61, 0x10, 0x0e, 0x6f, 0x0b, 0xe9, 0x45, 0x6d, 0x35, 0x99, 0x1e, 0x3e, 0xe3,
0x33, 0xb9, 0x8f, 0xb2, 0x84, 0x22, 0x71, 0x1c, 0x25, 0xa9, 0x5c, 0x17, 0xfa, 0xed, 0xfe, 0x8b,
0x03, 0xcb, 0xb8, 0xe8, 0x1f, 0xf9, 0xe1, 0x4c, 0xad, 0xf8, 0x1e, 0xb4, 0xb0, 0xa9, 0xc7, 0xd1,
0x6d, 0xa1, 0xf3, 0x84, 0x2c, 0x5f, 0x97, 0x8b, 0x94, 0xa3, 0xbe, 0x61, 0x92, 0xa2, 0x99, 0x9e,
0x79, 0xd6, 0xd7, 0x28, 0x74, 0xa9, 0x1f, 0x0f, 0x79, 0x4a, 0xda, 0x50, 0x6a, 0x47, 0x10, 0xd0,
0x76, 0x14, 0x1e, 0xb1, 0x2b, 0xd0, 0x4a, 0xfc, 0xb4, 0x37, 0xe1, 0x31, 0xad, 0x1a, 0x09, 0x4e,
0xd5, 0x83, 0xc4, 0x4f, 0xf7, 0x79, 0x7c, 0x67, 0x96, 0xf2, 0xee, 0xe7, 0x61, 0xa5, 0xd0, 0x0b,
0xca, 0x6a, 0x36, 0x45, 0xfc, 0xc9, 0xd6, 0xa0, 0x7e, 0xe2, 0x8f, 0xa6, 0x5c, 0x2a, 0x69, 0x51,
0xf8, 0xa0, 0xf2, 0xbe, 0xe3, 0xbe, 0x0d, 0xed, 0x6c, 0xd8, 0x92, 0xe9, 0x19, 0xd4, 0x70, 0x05,
0x65, 0x03, 0xf4, 0xdb, 0xfd, 0x0d, 0x47, 0x10, 0x6e, 0x47, 0x81, 0x56, 0x78, 0x48, 0x88, 0x7a,
0x51, 0x11, 0xe2, 0xef, 0x33, 0x0d, 0xc2, 0x4f, 0x3f, 0x59, 0xf7, 0x1a, 0xac, 0x18, 0x43, 0x78,
0xc9, 0x60, 0xbf, 0xe3, 0xc0, 0xca, 0x43, 0x7e, 0x2a, 0x77, 0x5d, 0x8d, 0xf6, 0x7d, 0xa8, 0xa5,
0xb3, 0x89, 0x70, 0xb2, 0x96, 0xb6, 0xae, 0xca, 0x4d, 0x2b, 0xd0, 0xdd, 0x90, 0xc5, 0xc7, 0xb3,
0x09, 0xf7, 0xe8, 0x0b, 0xf7, 0x73, 0xd0, 0x34, 0x40, 0xb6, 0x01, 0xab, 0x4f, 0x1f, 0x3c, 0x7e,
0xb8, 0x73, 0x70, 0xd0, 0xdb, 0x7f, 0x72, 0xe7, 0x8b, 0x3b, 0xbf, 0xd2, 0xdb, 0xbd, 0x7d, 0xb0,
0xdb, 0xbe, 0xc0, 0xd6, 0x81, 0x3d, 0xdc, 0x39, 0x78, 0xbc, 0x73, 0xd7, 0xc2, 0x1d, 0xb7, 0x0b,
0x9d, 0x87, 0xfc, 0xf4, 0x69, 0x90, 0x86, 0x3c, 0x49, 0xec, 0xde, 0xdc, 0x1b, 0xc0, 0xcc, 0x21,
0xc8, 0x59, 0x75, 0x60, 0x5e, 0x5a, 0x1c, 0x65, 0x70, 0x65, 0xd1, 0x7d, 0x1b, 0xd8, 0x41, 0x30,
0x0c, 0x3f, 0xe2, 0x49, 0xe2, 0x0f, 0xb5, 0x2a, 0x68, 0x43, 0x75, 0x9c, 0x0c, 0xa5, 0x06, 0xc0,
0x9f, 0xee, 0xa7, 0x60, 0xd5, 0xa2, 0x93, 0x0d, 0xbf, 0x0e, 0x8d, 0x24, 0x18, 0x86, 0x7e, 0x3a,
0x8d, 0xb9, 0x6c, 0x3a, 0x03, 0xdc, 0x7b, 0xb0, 0xf6, 0x65, 0x1e, 0x07, 0x47, 0xb3, 0xf3, 0x9a,
0xb7, 0xdb, 0xa9, 0xe4, 0xdb, 0xd9, 0x81, 0x8b, 0xb9, 0x76, 0x64, 0xf7, 0x82, 0x11, 0xe5, 0x76,
0x2d, 0x78, 0xa2, 0x60, 0x88, 0x65, 0xc5, 0x14, 0x4b, 0xf7, 0x09, 0xb0, 0xed, 0x28, 0x0c, 0x79,
0x3f, 0xdd, 0xe7, 0x3c, 0xce, 0x3c, 0xe7, 0x8c, 0xeb, 0x9a, 0x5b, 0x1b, 0x72, 0x1f, 0xf3, 0xb2,
0x2e, 0xd9, 0x91, 0x41, 0x6d, 0xc2, 0xe3, 0x31, 0x35, 0xbc, 0xe0, 0xd1, 0x6f, 0xf7, 0x22, 0xac,
0x5a, 0xcd, 0x4a, 0xa7, 0xe7, 0x5d, 0xb8, 0x78, 0x37, 0x48, 0xfa, 0xc5, 0x0e, 0x3b, 0x30, 0x3f,
0x99, 0x1e, 0xf6, 0x32, 0x99, 0x52, 0x45, 0xf4, 0x05, 0xf2, 0x9f, 0xc8, 0xc6, 0x7e, 0xdb, 0x81,
0xda, 0xee, 0xe3, 0xbd, 0x6d, 0xd6, 0x85, 0x85, 0x20, 0xec, 0x47, 0x63, 0x54, 0xbb, 0x62, 0xd2,
0xba, 0x7c, 0xa6, 0xac, 0xbc, 0x0e, 0x0d, 0xd2, 0xd6, 0xe8, 0xde, 0x48, 0x27, 0x37, 0x03, 0xd0,
0xb5, 0xe2, 0xcf, 0x27, 0x41, 0x4c, 0xbe, 0x93, 0xf2, 0x88, 0x6a, 0xa4, 0x11, 0x8b, 0x15, 0xee,
0xff, 0xd4, 0x60, 0x5e, 0xea, 0x6a, 0xea, 0xaf, 0x9f, 0x06, 0x27, 0x5c, 0x8e, 0x44, 0x96, 0xd0,
0xca, 0xc5, 0x7c, 0x1c, 0xa5, 0xbc, 0x67, 0x6d, 0x83, 0x0d, 0x22, 0x55, 0x5f, 0x34, 0xd4, 0x9b,
0xa0, 0xd6, 0xa7, 0x91, 0x35, 0x3c, 0x1b, 0xc4, 0xc5, 0x42, 0xa0, 0x17, 0x0c, 0x68, 0x4c, 0x35,
0x4f, 0x15, 0x71, 0x25, 0xfa, 0xfe, 0xc4, 0xef, 0x07, 0xe9, 0x4c, 0x0a, 0xb7, 0x2e, 0x63, 0xdb,
0xa3, 0xa8, 0xef, 0x8f, 0x7a, 0x87, 0xfe, 0xc8, 0x0f, 0xfb, 0x5c, 0xfa, 0x6f, 0x36, 0x88, 0x2e,
0x9a, 0x1c, 0x92, 0x22, 0x13, 0x6e, 0x5c, 0x0e, 0x45, 0x57, 0xaf, 0x1f, 0x8d, 0xc7, 0x41, 0x8a,
0x9e, 0x1d, 0x59, 0xfd, 0xaa, 0x67, 0x20, 0x34, 0x13, 0x51, 0x3a, 0x15, 0xab, 0xd7, 0x10, 0xbd,
0x59, 0x20, 0xb6, 0x82, 0xae, 0x03, 0x2a, 0xa4, 0x67, 0xa7, 0x1d, 0x10, 0xad, 0x64, 0x08, 0xee,
0xc3, 0x34, 0x4c, 0x78, 0x9a, 0x8e, 0xf8, 0x40, 0x0f, 0xa8, 0x49, 0x64, 0xc5, 0x0a, 0x76, 0x0b,
0x56, 0x85, 0xb3, 0x99, 0xf8, 0x69, 0x94, 0x1c, 0x07, 0x49, 0x2f, 0x41, 0xb7, 0xad, 0x45, 0xf4,
0x65, 0x55, 0xec, 0x7d, 0xd8, 0xc8, 0xc1, 0x31, 0xef, 0xf3, 0xe0, 0x84, 0x0f, 0x3a, 0x8b, 0xf4,
0xd5, 0x59, 0xd5, 0xec, 0x0a, 0x34, 0xd1, 0xc7, 0x9e, 0x4e, 0x06, 0x3e, 0xda, 0xe1, 0x25, 0xda,
0x07, 0x13, 0x62, 0xef, 0xc2, 0xe2, 0x84, 0x0b, 0x63, 0x79, 0x9c, 0x8e, 0xfa, 0x49, 0x67, 0x99,
0x2c, 0x59, 0x53, 0x0a, 0x13, 0x72, 0xae, 0x67, 0x53, 0x20, 0x53, 0xf6, 0x13, 0x72, 0xb6, 0xfc,
0x59, 0xa7, 0x4d, 0xec, 0x96, 0x01, 0x24, 0x23, 0x71, 0x70, 0xe2, 0xa7, 0xbc, 0xb3, 0x42, 0xbc,
0xa5, 0x8a, 0xee, 0x9f, 0x38, 0xb0, 0xba, 0x17, 0x24, 0xa9, 0x64, 0x42, 0xad, 0x8e, 0xdf, 0x84,
0xa6, 0x60, 0xbf, 0x5e, 0x14, 0x8e, 0x66, 0x92, 0x23, 0x41, 0x40, 0x8f, 0xc2, 0xd1, 0x8c, 0x7d,
0x02, 0x16, 0x83, 0xd0, 0x24, 0x11, 0x32, 0xdc, 0x52, 0x20, 0x11, 0xbd, 0x09, 0xcd, 0xc9, 0xf4,
0x70, 0x14, 0xf4, 0x05, 0x49, 0x55, 0xb4, 0x22, 0x20, 0x22, 0x40, 0x27, 0x49, 0x8c, 0x44, 0x50,
0xd4, 0x88, 0xa2, 0x29, 0x31, 0x24, 0x71, 0xef, 0xc0, 0x9a, 0x3d, 0x40, 0xa9, 0xac, 0x36, 0x61,
0x41, 0xf2, 0x76, 0xd2, 0x69, 0xd2, 0xfa, 0x2c, 0xc9, 0xf5, 0x91, 0xa4, 0x9e, 0xae, 0x77, 0xff,
0xbc, 0x06, 0xab, 0x12, 0xdd, 0x1e, 0x45, 0x09, 0x3f, 0x98, 0x8e, 0xc7, 0x7e, 0x5c, 0x22, 0x34,
0xce, 0x39, 0x42, 0x53, 0xb1, 0x85, 0x06, 0x59, 0xf9, 0xd8, 0x0f, 0x42, 0xe1, 0xe1, 0x09, 0x89,
0x33, 0x10, 0x76, 0x1d, 0x96, 0xfb, 0xa3, 0x28, 0x11, 0x5e, 0x8f, 0x79, 0x7c, 0xca, 0xc3, 0x45,
0x21, 0xaf, 0x97, 0x09, 0xb9, 0x29, 0xa4, 0x73, 0x39, 0x21, 0x75, 0xa1, 0x85, 0x8d, 0x72, 0xa5,
0x73, 0xe6, 0x85, 0x17, 0x66, 0x62, 0x38, 0x9e, 0xbc, 0x48, 0x08, 0xf9, 0x5b, 0x2e, 0x13, 0x08,
0x3c, 0x9d, 0xa1, 0x4e, 0x33, 0xa8, 0x1b, 0x52, 0x20, 0x8a, 0x55, 0xec, 0x1e, 0x80, 0xe8, 0x8b,
0xcc, 0x38, 0x90, 0x19, 0x7f, 0xdb, 0xde, 0x11, 0x73, 0xed, 0x6f, 0x60, 0x61, 0x1a, 0x73, 0x32,
0xe4, 0xc6, 0x97, 0xee, 0xc7, 0xd0, 0x34, 0xaa, 0xd8, 0x45, 0x58, 0xd9, 0x7e, 0xf4, 0x68, 0x7f,
0xc7, 0xbb, 0xfd, 0xf8, 0xc1, 0x97, 0x77, 0x7a, 0xdb, 0x7b, 0x8f, 0x0e, 0x76, 0xda, 0x17, 0x10,
0xde, 0x7b, 0xb4, 0x7d, 0x7b, 0xaf, 0x77, 0xef, 0x91, 0xb7, 0xad, 0x60, 0x07, 0x6d, 0xbc, 0xb7,
0xf3, 0xd1, 0xa3, 0xc7, 0x3b, 0x16, 0x5e, 0x61, 0x6d, 0x68, 0xdd, 0xf1, 0x76, 0x6e, 0x6f, 0xef,
0x4a, 0xa4, 0xca, 0xd6, 0xa0, 0x7d, 0xef, 0xc9, 0xc3, 0xbb, 0x0f, 0x1e, 0xde, 0xef, 0x6d, 0xdf,
0x7e, 0xb8, 0xbd, 0xb3, 0xb7, 0x73, 0xb7, 0x5d, 0x73, 0xff, 0xd6, 0x81, 0x8b, 0x34, 0xca, 0x41,
0x5e, 0x20, 0xae, 0x40, 0xb3, 0x1f, 0x45, 0x13, 0x8e, 0xfa, 0x5b, 0xab, 0x68, 0x13, 0x42, 0x66,
0x17, 0x0a, 0xf1, 0x28, 0x8a, 0xfb, 0x5c, 0xca, 0x03, 0x10, 0x74, 0x0f, 0x11, 0x64, 0x76, 0xb9,
0x9d, 0x82, 0x42, 0x88, 0x43, 0x53, 0x60, 0x82, 0x64, 0x1d, 0xe6, 0x0e, 0x63, 0xee, 0xf7, 0x8f,
0xa5, 0x24, 0xc8, 0x12, 0xfb, 0x64, 0xe6, 0x90, 0xf7, 0x71, 0xb5, 0x47, 0x7c, 0x40, 0x1c, 0xb2,
0xe0, 0x2d, 0x4b, 0x7c, 0x5b, 0xc2, 0xee, 0x3e, 0xac, 0xe7, 0x67, 0x20, 0x25, 0xe6, 0x3d, 0x43,
0x62, 0x84, 0x6f, 0xdc, 0x3d, 0x7b, 0x7f, 0x0c, 0xe9, 0xf9, 0x77, 0x07, 0x6a, 0x68, 0x3e, 0xcf,
0x36, 0xb5, 0xa6, 0x47, 0x54, 0xb5, 0x3c, 0x22, 0x0a, 0x1e, 0xe0, 0x99, 0x42, 0x28, 0x54, 0x61,
0x74, 0x0c, 0x24, 0xab, 0x8f, 0x79, 0xff, 0x84, 0xe6, 0xa4, 0xeb, 0x11, 0x41, 0x96, 0x47, 0xc7,
0x93, 0xbe, 0x96, 0x2c, 0xaf, 0xca, 0xaa, 0x8e, 0xbe, 0x9c, 0xcf, 0xea, 0xe8, 0xbb, 0x0e, 0xcc,
0x07, 0xe1, 0x61, 0x34, 0x0d, 0x07, 0xc4, 0xe2, 0x0b, 0x9e, 0x2a, 0xa2, 0xaa, 0x9c, 0x90, 0xe8,
0x05, 0x63, 0xc5, 0xd0, 0x19, 0xe0, 0x32, 0x3c, 0x98, 0x24, 0xe4, 0x2e, 0x68, 0x2f, 0xf0, 0x3d,
0x58, 0x31, 0x30, 0xb9, 0x9a, 0x6f, 0x41, 0x7d, 0x82, 0x80, 0x5c, 0x4a, 0xa5, 0x9c, 0xc9, 0xcf,
0x10, 0x35, 0x6e, 0x1b, 0x96, 0xee, 0xf3, 0xf4, 0x41, 0x78, 0x14, 0xa9, 0x96, 0x7e, 0x54, 0x85,
0x65, 0x0d, 0xc9, 0x86, 0xae, 0xc3, 0x72, 0x30, 0xe0, 0x61, 0x1a, 0xa4, 0xb3, 0x9e, 0x75, 0xfe,
0xc9, 0xc3, 0xe8, 0x9f, 0xf9, 0xa3, 0xc0, 0x4f, 0xa4, 0x07, 0x20, 0x0a, 0x6c, 0x0b, 0xd6, 0xd0,
0x78, 0x28, 0x7b, 0xa0, 0xb7, 0x58, 0x1c, 0xc3, 0x4a, 0xeb, 0x50, 0xbc, 0x11, 0x97, 0xfa, 0x5b,
0x7f, 0x22, 0xfc, 0x94, 0xb2, 0x2a, 0x5c, 0x35, 0xd1, 0x12, 0x4e, 0xb9, 0x2e, 0x0c, 0x8c, 0x06,
0x0a, 0x21, 0xa0, 0x39, 0xa1, 0x7c, 0xf2, 0x21, 0x20, 0x23, 0x8c, 0xb4, 0x50, 0x08, 0x23, 0xa1,
0x72, 0x9a, 0x85, 0x7d, 0x3e, 0xe8, 0xa5, 0x51, 0x8f, 0x94, 0x28, 0xed, 0xce, 0x82, 0x97, 0x87,
0x29, 0xe0, 0xc5, 0x93, 0x34, 0xe4, 0x29, 0xe9, 0x99, 0x05, 0x4f, 0x15, 0x51, 0x7e, 0x88, 0x44,
0x98, 0x84, 0x86, 0x27, 0x4b, 0xe8, 0x68, 0x4e, 0xe3, 0x20, 0xe9, 0xb4, 0x08, 0xa5, 0xdf, 0xec,
0xd3, 0x70, 0xf1, 0x90, 0x27, 0x69, 0xef, 0x98, 0xfb, 0x03, 0x1e, 0xd3, 0xee, 0x8b, 0xe8, 0x94,
0xb0, 0xdf, 0xe5, 0x95, 0xd8, 0xf7, 0x09, 0x8f, 0x93, 0x20, 0x0a, 0xc9, 0x72, 0x37, 0x3c, 0x55,
0x74, 0xbf, 0x49, 0xfe, 0xb0, 0x8e, 0x9b, 0x3d, 0x21, 0x63, 0xce, 0x5e, 0x83, 0x86, 0x98, 0x63,
0x72, 0xec, 0x4b, 0x17, 0x7d, 0x81, 0x80, 0x83, 0x63, 0x1f, 0x35, 0x82, 0xb5, 0x6c, 0x22, 0x10,
0xd9, 0x24, 0x6c, 0x57, 0xac, 0xda, 0x55, 0x58, 0x52, 0x11, 0xb9, 0xa4, 0x37, 0xe2, 0x47, 0xa9,
0x3a, 0x5e, 0x87, 0xd3, 0x31, 0x76, 0x97, 0xec, 0xf1, 0xa3, 0xd4, 0x7d, 0x08, 0x2b, 0x52, 0x86,
0x1f, 0x4d, 0xb8, 0xea, 0xfa, 0xb3, 0x65, 0xd6, 0xad, 0xb9, 0xb5, 0x6a, 0x0b, 0x3d, 0xc5, 0x08,
0x72, 0x26, 0xcf, 0xf5, 0x80, 0x99, 0x3a, 0x41, 0x36, 0x28, 0x4d, 0x8c, 0x3a, 0xc4, 0xcb, 0xe9,
0x58, 0x18, 0xae, 0x4f, 0x32, 0xed, 0xf7, 0x51, 0x13, 0x08, 0x0d, 0xa8, 0x8a, 0xee, 0xf7, 0x1d,
0x58, 0xa5, 0xd6, 0x94, 0x7d, 0xd6, 0x27, 0xbf, 0x57, 0x1f, 0x66, 0xab, 0x6f, 0x06, 0x36, 0xd6,
0xa0, 0x6e, 0xea, 0x5a, 0x51, 0xf8, 0xf1, 0xcf, 0xb2, 0xb5, 0xc2, 0x59, 0xf6, 0x47, 0x0e, 0xac,
0x08, 0x65, 0x98, 0xfa, 0xe9, 0x34, 0x91, 0xd3, 0xff, 0x05, 0x58, 0x14, 0x76, 0x4a, 0x8a, 0x93,
0x1c, 0xe8, 0x9a, 0x96, 0x7c, 0x42, 0x05, 0xf1, 0xee, 0x05, 0xcf, 0x26, 0x66, 0x9f, 0x87, 0x96,
0x19, 0x56, 0xa5, 0x31, 0x37, 0xb7, 0x2e, 0xa9, 0x59, 0x16, 0x38, 0x67, 0xf7, 0x82, 0x67, 0x7d,
0xc0, 0x3e, 0x24, 0x67, 0x23, 0xec, 0x51, 0xb3, 0x32, 0x30, 0x75, 0xa9, 0x44, 0x81, 0xeb, 0xcf,
0x0d, 0xf2, 0x3b, 0x0b, 0x30, 0x27, 0xbc, 0x4b, 0xf7, 0x3e, 0x2c, 0x5a, 0x23, 0xb5, 0xce, 0xe8,
0x2d, 0x71, 0x46, 0x2f, 0x84, 0x74, 0x2a, 0xc5, 0x90, 0x8e, 0xfb, 0xed, 0x2a, 0x30, 0xe4, 0xb6,
0xdc, 0x76, 0xa2, 0x7b, 0x1b, 0x0d, 0xac, 0xc3, 0x4a, 0xcb, 0x33, 0x21, 0x76, 0x03, 0x98, 0x51,
0x54, 0x51, 0x2f, 0x61, 0x37, 0x4a, 0x6a, 0x50, 0xc1, 0x49, 0xc3, 0x2a, 0x4d, 0xa0, 0x3c, 0x96,
0x89, 0x7d, 0x2b, 0xad, 0x43, 0xd3, 0x30, 0x99, 0x26, 0xc7, 0xe8, 0x7e, 0xab, 0xe3, 0x8c, 0x2a,
0xe7, 0x19, 0x64, 0xee, 0x5c, 0x06, 0x99, 0xcf, 0x33, 0x88, 0xe9, 0x50, 0x2f, 0x58, 0x0e, 0x35,
0x3a, 0x72, 0x63, 0x74, 0xff, 0xd2, 0x51, 0xbf, 0x37, 0xc6, 0xde, 0xe5, 0xe9, 0xc5, 0x02, 0xd9,
0x26, 0xb4, 0xa5, 0x2b, 0x90, 0x79, 0xed, 0x40, 0x6b, 0x5c, 0xc0, 0x51, 0xf3, 0xe2, 0xc7, 0xa4,
0x01, 0xe8, 0x04, 0x53, 0xf7, 0x32, 0xc0, 0xfd, 0xa1, 0x03, 0x6d, 0xdc, 0x05, 0x8b, 0x53, 0x3f,
0x00, 0x12, 0x94, 0x57, 0x64, 0x54, 0x8b, 0xf6, 0xa7, 0xe7, 0xd3, 0xf7, 0xa1, 0x41, 0x0d, 0x46,
0x13, 0x1e, 0x4a, 0x36, 0xed, 0xd8, 0x6c, 0x9a, 0xe9, 0xa8, 0xdd, 0x0b, 0x5e, 0x46, 0x6c, 0x30,
0xe9, 0x3f, 0x39, 0xd0, 0x94, 0xc3, 0xfc, 0x89, 0xcf, 0xe9, 0x5d, 0x58, 0x40, 0x7e, 0x35, 0x0e,
0xc3, 0xba, 0x8c, 0xb6, 0x66, 0xec, 0xa7, 0xd3, 0x18, 0x8d, 0xab, 0x75, 0x46, 0xcf, 0xc3, 0x68,
0x29, 0x49, 0x1d, 0x27, 0xbd, 0x34, 0x18, 0xf5, 0x54, 0xad, 0xbc, 0xe3, 0x28, 0xab, 0x42, 0xad,
0x94, 0xa4, 0xfe, 0x90, 0x4b, 0x23, 0x28, 0x0a, 0x6e, 0x07, 0xd6, 0xe5, 0x84, 0x72, 0x9e, 0xa5,
0xfb, 0x37, 0x2d, 0xd8, 0x28, 0x54, 0xe9, 0x4b, 0x42, 0x79, 0xf8, 0x1c, 0x05, 0xe3, 0xc3, 0x48,
0xbb, 0xe1, 0x8e, 0x79, 0x2e, 0xb5, 0xaa, 0xd8, 0x10, 0x2e, 0x2a, 0x6b, 0x8f, 0x6b, 0x9a, 0xd9,
0xf6, 0x0a, 0xb9, 0x29, 0xef, 0xda, 0x3c, 0x90, 0xef, 0x50, 0xe1, 0xa6, 0x5c, 0x97, 0xb7, 0xc7,
0x8e, 0xa1, 0xa3, 0xdd, 0x0a, 0x69, 0x00, 0x0c, 0xd7, 0x03, 0xfb, 0x7a, 0xe7, 0x9c, 0xbe, 0x2c,
0x37, 0xd5, 0x3b, 0xb3, 0x35, 0x36, 0x83, 0xcb, 0xaa, 0x8e, 0x34, 0x7c, 0xb1, 0xbf, 0xda, 0x2b,
0xcd, 0x8d, 0x5c, 0x6c, 0xbb, 0xd3, 0x73, 0x1a, 0x66, 0x5f, 0x87, 0xf5, 0x53, 0x3f, 0x48, 0xd5,
0xb0, 0x0c, 0x57, 0xa9, 0x4e, 0x5d, 0x6e, 0x9d, 0xd3, 0xe5, 0x53, 0xf1, 0xb1, 0x65, 0xf6, 0xce,
0x68, 0xb1, 0xfb, 0x0f, 0x0e, 0x2c, 0xd9, 0xed, 0x20, 0x9b, 0x4a, 0x75, 0xa0, 0xd4, 0xa2, 0x72,
0x0d, 0x73, 0x70, 0xf1, 0x24, 0x5b, 0x29, 0x3b, 0xc9, 0x9a, 0xe7, 0xc7, 0xea, 0x79, 0x41, 0x9e,
0xda, 0xab, 0x05, 0x79, 0xea, 0x65, 0x41, 0x9e, 0xee, 0x7f, 0x3b, 0xc0, 0x8a, 0xbc, 0xc4, 0xee,
0x8b, 0xa3, 0x74, 0xc8, 0x47, 0x52, 0x27, 0xfd, 0xfc, 0xab, 0xf1, 0xa3, 0x5a, 0x3b, 0xf5, 0x35,
0x0a, 0x86, 0xa9, 0x74, 0x4c, 0x07, 0x6a, 0xd1, 0x2b, 0xab, 0xca, 0x85, 0x9d, 0x6a, 0xe7, 0x87,
0x9d, 0xea, 0xe7, 0x87, 0x9d, 0xe6, 0xf2, 0x61, 0xa7, 0xee, 0x6f, 0x39, 0xb0, 0x5a, 0xb2, 0xe9,
0x3f, 0xbb, 0x89, 0xe3, 0x36, 0x59, 0xba, 0xa0, 0x22, 0xb7, 0xc9, 0x04, 0xbb, 0xbf, 0x0e, 0x8b,
0x16, 0xa3, 0xff, 0xec, 0xfa, 0xcf, 0xfb, 0x80, 0x82, 0xcf, 0x2c, 0xac, 0xfb, 0x1f, 0x15, 0x60,
0x45, 0x61, 0xfb, 0x7f, 0x1d, 0x43, 0x71, 0x9d, 0xaa, 0x25, 0xeb, 0xf4, 0x7f, 0x6a, 0x07, 0xde,
0x81, 0x15, 0x99, 0x51, 0x60, 0x04, 0x50, 0x04, 0xc7, 0x14, 0x2b, 0xd0, 0x0b, 0xb6, 0x63, 0x7e,
0x0b, 0xd6, 0x4d, 0xb4, 0x61, 0x0c, 0x73, 0xa1, 0x3f, 0x77, 0x1d, 0xd6, 0x44, 0x86, 0xc2, 0x1d,
0xd1, 0x94, 0xb2, 0x2b, 0x7f, 0xec, 0xc0, 0xc5, 0x5c, 0x45, 0x76, 0x6f, 0x2a, 0x4c, 0x87, 0x6d,
0x4f, 0x6c, 0x10, 0xc7, 0x2f, 0xe5, 0xc8, 0x18, 0xbf, 0xe0, 0xb6, 0x62, 0x05, 0xae, 0xcf, 0x34,
0x2c, 0xd2, 0x8b, 0x55, 0x2f, 0xab, 0x72, 0x37, 0x44, 0x1e, 0x45, 0xc8, 0x47, 0xb9, 0x81, 0x1f,
0x89, 0xcc, 0x07, 0xb3, 0x22, 0xbb, 0x78, 0xb1, 0x87, 0xac, 0x8a, 0xe8, 0x23, 0x5a, 0x66, 0xca,
0x1e, 0x6f, 0x69, 0x9d, 0xfb, 0x57, 0x0e, 0xb0, 0x2f, 0x4d, 0x79, 0x3c, 0xa3, 0xfb, 0x53, 0x1d,
0xe9, 0xd9, 0xc8, 0x47, 0x39, 0xe6, 0x26, 0xd3, 0xc3, 0x2f, 0xf2, 0x99, 0xba, 0x65, 0xaf, 0x64,
0xb7, 0xec, 0x6f, 0x00, 0xe0, 0xe1, 0x4c, 0x5f, 0xca, 0x92, 0x6f, 0x16, 0x4e, 0xc7, 0xa2, 0xc1,
0xd2, 0x8b, 0xf0, 0xda, 0xf9, 0x17, 0xe1, 0xf5, 0xf3, 0x2e, 0xc2, 0x3f, 0x84, 0x55, 0x6b, 0xdc,
0x7a, 0x5b, 0xd5, 0xf5, 0xb0, 0xf3, 0x92, 0xeb, 0xe1, 0xff, 0x74, 0xa0, 0xba, 0x1b, 0x4d, 0xcc,
0xa8, 0xa6, 0x63, 0x47, 0x35, 0xa5, 0x2d, 0xe9, 0x69, 0x53, 0x21, 0x55, 0x8c, 0x05, 0xb2, 0x4d,
0x58, 0xf2, 0xc7, 0x29, 0x1e, 0xca, 0x8f, 0xa2, 0xf8, 0xd4, 0x8f, 0x07, 0x62, 0xaf, 0xef, 0x54,
0x3a, 0x8e, 0x97, 0xab, 0x61, 0x6b, 0x50, 0xd5, 0x4a, 0x97, 0x08, 0xb0, 0x88, 0x8e, 0x1b, 0xdd,
0x88, 0xcc, 0x64, 0x3c, 0x41, 0x96, 0x90, 0x95, 0xec, 0xef, 0x85, 0x23, 0x2d, 0x44, 0xa7, 0xac,
0x0a, 0xed, 0x1a, 0x2e, 0x1f, 0x91, 0xc9, 0x40, 0x90, 0x2a, 0xbb, 0xff, 0xe6, 0x40, 0x9d, 0x56,
0x00, 0x85, 0x5d, 0x70, 0xb8, 0x0e, 0x5f, 0xd2, 0xcc, 0x17, 0xbd, 0x3c, 0xcc, 0x5c, 0x2b, 0x1b,
0xa5, 0xa2, 0x87, 0x6d, 0x66, 0xa4, 0x5c, 0x81, 0x86, 0x28, 0xe9, 0xcc, 0x0b, 0x22, 0xc9, 0x40,
0x76, 0x19, 0x6a, 0xc7, 0xd1, 0x44, 0x79, 0x27, 0xa0, 0xa2, 0xf7, 0xd1, 0xc4, 0x23, 0x3c, 0x1b,
0x0f, 0xb6, 0x27, 0x06, 0x2f, 0x6c, 0x4e, 0x1e, 0x46, 0xab, 0xab, 0x9b, 0x35, 0x17, 0x23, 0x87,
0xba, 0x9b, 0xb0, 0xfc, 0x30, 0x1a, 0x70, 0x23, 0xe2, 0x74, 0x26, 0x37, 0xbb, 0xdf, 0x72, 0x60,
0x41, 0x11, 0xb3, 0xeb, 0x50, 0x43, 0x57, 0x22, 0x77, 0x50, 0xd0, 0xb7, 0x76, 0x48, 0xe7, 0x11,
0x05, 0xea, 0x5e, 0x8a, 0x47, 0x64, 0x6e, 0xa5, 0x8a, 0x46, 0x64, 0x5e, 0x93, 0x1e, 0x6e, 0xce,
0xd9, 0xc8, 0xa1, 0xee, 0x5f, 0x38, 0xb0, 0x68, 0xf5, 0x81, 0x87, 0xc7, 0x91, 0x9f, 0xa4, 0xf2,
0x26, 0x44, 0x6e, 0x8f, 0x09, 0x99, 0x31, 0xc8, 0x8a, 0x1d, 0x83, 0xd4, 0xd1, 0xb1, 0xaa, 0x19,
0x1d, 0xbb, 0x05, 0x8d, 0x2c, 0x67, 0xa8, 0x66, 0xe9, 0x54, 0xec, 0x51, 0xdd, 0x47, 0x66, 0x44,
0xd8, 0x4e, 0x3f, 0x1a, 0x45, 0xb1, 0x0c, 0xc1, 0x8b, 0x82, 0xfb, 0x21, 0x34, 0x0d, 0x7a, 0x1c,
0x46, 0xc8, 0xd3, 0xd3, 0x28, 0x7e, 0xa6, 0x42, 0xa1, 0xb2, 0xa8, 0xaf, 0xdd, 0x2b, 0xd9, 0xb5,
0xbb, 0xfb, 0xf7, 0x0e, 0x2c, 0x22, 0x0f, 0x06, 0xe1, 0x70, 0x3f, 0x1a, 0x05, 0xfd, 0x19, 0xed,
0xbd, 0x62, 0x37, 0xa9, 0x19, 0x14, 0x2f, 0xda, 0x30, 0xf2, 0xb6, 0x3a, 0x3b, 0x4a, 0x41, 0xd4,
0x65, 0x94, 0x54, 0xe4, 0xf3, 0x43, 0x3f, 0x91, 0xcc, 0x2f, 0x8d, 0x9c, 0x05, 0xa2, 0x3c, 0x21,
0x10, 0xfb, 0x29, 0xef, 0x8d, 0x83, 0xd1, 0x28, 0x10, 0xb4, 0xc2, 0x05, 0x2a, 0xab, 0xc2, 0x3e,
0x07, 0x41, 0xe2, 0x1f, 0x66, 0x61, 0x66, 0x5d, 0x76, 0x7f, 0x50, 0x81, 0xa6, 0x54, 0xcf, 0x3b,
0x83, 0x21, 0x97, 0x77, 0x20, 0xe4, 0x64, 0x6a, 0x55, 0x62, 0x20, 0xaa, 0xde, 0x72, 0x4b, 0x0d,
0x24, 0xbf, 0xe5, 0xd5, 0xe2, 0x96, 0xbf, 0x0e, 0x0d, 0x64, 0xbd, 0x77, 0xc9, 0xff, 0x15, 0xf7,
0x27, 0x19, 0xa0, 0x6a, 0xb7, 0xa8, 0xb6, 0x9e, 0xd5, 0x12, 0xf0, 0xd2, 0x1b, 0x93, 0xf7, 0xa1,
0x25, 0x9b, 0xa1, 0x3d, 0x21, 0xcd, 0x91, 0x31, 0xbf, 0xb5, 0x5f, 0x9e, 0x45, 0xa9, 0xbe, 0xdc,
0x52, 0x5f, 0x2e, 0x9c, 0xf7, 0xa5, 0xa2, 0xa4, 0xdb, 0x6d, 0xb1, 0x36, 0xf7, 0x63, 0x7f, 0x72,
0xac, 0x4c, 0xde, 0x40, 0xa7, 0xec, 0x10, 0xcc, 0x36, 0xa1, 0x8e, 0x9f, 0x29, 0x4d, 0x5e, 0x2e,
0x90, 0x82, 0x84, 0x5d, 0x87, 0x3a, 0x1f, 0x0c, 0xb9, 0x3a, 0xe1, 0x31, 0xfb, 0xac, 0x8d, 0x7b,
0xe4, 0x09, 0x02, 0x54, 0x0f, 0x88, 0xe6, 0xd4, 0x83, 0x6d, 0x05, 0xe6, 0xb0, 0xf8, 0x60, 0xe0,
0xae, 0x01, 0x7b, 0x28, 0x38, 0xda, 0x8c, 0x5f, 0x7f, 0xbb, 0x0a, 0x4d, 0x03, 0x46, 0x49, 0x1f,
0xe2, 0x80, 0x7b, 0x83, 0xc0, 0x1f, 0xf3, 0x94, 0xc7, 0x92, 0x8b, 0x73, 0x28, 0xd2, 0xf9, 0x27,
0xc3, 0x5e, 0x34, 0x4d, 0x7b, 0x03, 0x3e, 0x8c, 0xb9, 0x30, 0xcc, 0x68, 0x28, 0x2c, 0x14, 0xe9,
0xc6, 0xfe, 0x73, 0x93, 0x4e, 0xf0, 0x43, 0x0e, 0x55, 0xd1, 0x68, 0xb1, 0x46, 0xb5, 0x2c, 0x1a,
0x2d, 0x56, 0x24, 0xaf, 0xa3, 0xea, 0x25, 0x3a, 0xea, 0x3d, 0x58, 0x17, 0xda, 0x48, 0xca, 0x6d,
0x2f, 0xc7, 0x26, 0x67, 0xd4, 0xb2, 0x4d, 0x68, 0xe3, 0x98, 0x15, 0x83, 0x27, 0xc1, 0x37, 0x45,
0x7c, 0xc8, 0xf1, 0x0a, 0x38, 0xd2, 0x52, 0xa0, 0xc6, 0xa4, 0x15, 0xf7, 0x6d, 0x05, 0x9c, 0x68,
0xfd, 0xe7, 0x36, 0x6d, 0x43, 0xd2, 0xe6, 0x70, 0x77, 0x11, 0x9a, 0x07, 0x69, 0x34, 0x51, 0x9b,
0xb2, 0x04, 0x2d, 0x51, 0x94, 0xd9, 0x0d, 0xaf, 0xc1, 0x25, 0xe2, 0xa2, 0xc7, 0xd1, 0x24, 0x1a,
0x45, 0xc3, 0xd9, 0xc1, 0xf4, 0x30, 0xe9, 0xc7, 0xc1, 0x04, 0x4f, 0x43, 0xee, 0x3f, 0x3a, 0xb0,
0x6a, 0xd5, 0xca, 0x90, 0xd1, 0xa7, 0x05, 0x4b, 0xeb, 0x6b, 0x69, 0xc1, 0x78, 0x2b, 0x86, 0xaa,
0x14, 0x84, 0x22, 0x94, 0xf7, 0x44, 0xde, 0x54, 0xdf, 0x86, 0x65, 0x35, 0x32, 0xf5, 0xa1, 0xe0,
0xc2, 0x4e, 0x91, 0x0b, 0xe5, 0xf7, 0x4b, 0xf2, 0x03, 0xd5, 0xc4, 0x2f, 0xca, 0x7b, 0xcb, 0x01,
0xcd, 0x51, 0xc5, 0x0e, 0xf4, 0xcd, 0x94, 0x79, 0x82, 0x50, 0x23, 0xe8, 0x6b, 0x30, 0x71, 0x7f,
0xc7, 0x01, 0xc8, 0x46, 0x87, 0x8c, 0x91, 0xa9, 0x7b, 0x91, 0x4a, 0x6d, 0xa8, 0xf6, 0xb7, 0xa0,
0xa5, 0xef, 0x54, 0x32, 0x0b, 0xd2, 0x54, 0x18, 0x3a, 0x79, 0xd7, 0x60, 0x79, 0x38, 0x8a, 0x0e,
0xc9, 0xfc, 0x52, 0xba, 0x4c, 0x22, 0x73, 0x3c, 0x96, 0x04, 0x7c, 0x4f, 0xa2, 0x99, 0xb9, 0xa9,
0x19, 0xe6, 0xc6, 0xfd, 0x4e, 0x45, 0x47, 0xe2, 0xb3, 0x39, 0x9f, 0x29, 0x65, 0x6c, 0xab, 0xa0,
0x1c, 0xcf, 0x08, 0x7c, 0x53, 0x94, 0x6c, 0xff, 0xdc, 0x43, 0xfc, 0x87, 0xb0, 0x14, 0x0b, 0xed,
0xa3, 0x54, 0x53, 0xed, 0x25, 0xaa, 0x69, 0x31, 0xb6, 0x6c, 0xd2, 0x27, 0xa1, 0xed, 0x0f, 0x4e,
0x78, 0x9c, 0x06, 0x74, 0x8c, 0x22, 0x87, 0x40, 0x28, 0xd4, 0x65, 0x03, 0x27, 0x3b, 0x7d, 0x0d,
0x96, 0x65, 0x5e, 0x8d, 0xa6, 0x94, 0xb9, 0xa0, 0x19, 0x8c, 0x84, 0xee, 0x9f, 0xaa, 0xa0, 0xbf,
0xbd, 0x87, 0x67, 0xaf, 0x88, 0x39, 0xbb, 0x4a, 0x6e, 0x76, 0x9f, 0x90, 0x01, 0xf8, 0x81, 0x3a,
0xab, 0x55, 0x8d, 0x3b, 0xee, 0x81, 0xbc, 0x30, 0xb1, 0x97, 0xb4, 0xf6, 0x2a, 0x4b, 0xea, 0xfe,
0xd0, 0x81, 0xf9, 0xdd, 0x68, 0xb2, 0x2b, 0x6f, 0xfb, 0x49, 0x10, 0x74, 0xd6, 0x9a, 0x2a, 0xbe,
0x24, 0x0f, 0xa0, 0xd4, 0x0e, 0x2f, 0xe6, 0xed, 0xf0, 0x2f, 0xc1, 0x6b, 0x14, 0x29, 0x88, 0xa3,
0x49, 0x14, 0xa3, 0x30, 0xfa, 0x23, 0x61, 0x74, 0xa3, 0x30, 0x3d, 0x56, 0x6a, 0xec, 0x65, 0x24,
0x74, 0x24, 0xc3, 0xa3, 0x84, 0x70, 0x94, 0xa5, 0xdf, 0x20, 0xb4, 0x5b, 0xb1, 0xc2, 0xfd, 0x2c,
0x34, 0xc8, 0xf1, 0xa5, 0x69, 0xbd, 0x03, 0x8d, 0xe3, 0x68, 0xd2, 0x3b, 0x0e, 0xc2, 0x54, 0x09,
0xf7, 0x52, 0xe6, 0x91, 0xee, 0xd2, 0x82, 0x68, 0x02, 0xf7, 0x0f, 0xeb, 0x30, 0xff, 0x20, 0x3c,
0x89, 0x82, 0x3e, 0xdd, 0x0f, 0x8c, 0xf9, 0x38, 0x52, 0x39, 0x7c, 0xf8, 0x1b, 0x97, 0x82, 0xf2,
0x59, 0x26, 0xa9, 0x0c, 0xf0, 0xab, 0x22, 0x9a, 0xfb, 0x38, 0xcb, 0xb3, 0x15, 0xa2, 0x63, 0x20,
0xe8, 0xf4, 0xc7, 0x66, 0x4a, 0xb2, 0x2c, 0x65, 0x49, 0x90, 0x75, 0x23, 0x09, 0x92, 0x6e, 0x93,
0x44, 0x66, 0x02, 0xf1, 0xd7, 0x82, 0xa7, 0x8a, 0x74, 0x48, 0x89, 0xb9, 0x88, 0xf0, 0x90, 0xe3,
0x30, 0x2f, 0x0f, 0x29, 0x26, 0x88, 0xce, 0x85, 0xf8, 0x40, 0xd0, 0x08, 0xe5, 0x6b, 0x42, 0xe8,
0x88, 0xe5, 0xb3, 0x9a, 0x1b, 0x82, 0xe7, 0x73, 0x30, 0x6a, 0xe8, 0x01, 0xd7, 0x8a, 0x54, 0xcc,
0x01, 0x44, 0x1e, 0x71, 0x1e, 0x37, 0x8e, 0x36, 0x22, 0xe5, 0x48, 0x1d, 0x6d, 0x90, 0x51, 0xfc,
0xd1, 0xe8, 0xd0, 0xef, 0x3f, 0xa3, 0xa4, 0x75, 0xca, 0x30, 0x6a, 0x78, 0x36, 0x48, 0xb9, 0x06,
0xd9, 0x6e, 0xd2, 0x7d, 0x64, 0xcd, 0x33, 0x21, 0xb6, 0x05, 0x4d, 0x3a, 0xce, 0xc9, 0xfd, 0x5c,
0xa2, 0xfd, 0x6c, 0x9b, 0xe7, 0x3d, 0xda, 0x51, 0x93, 0xc8, 0xbc, 0xb3, 0x58, 0xb6, 0xef, 0x2c,
0x84, 0xd2, 0x94, 0x57, 0x3d, 0x6d, 0xea, 0x2d, 0x03, 0xd0, 0x9a, 0xca, 0x05, 0x13, 0x04, 0x2b,
0x44, 0x60, 0x61, 0xec, 0x32, 0x2c, 0xe0, 0x21, 0x64, 0xe2, 0x07, 0x83, 0x0e, 0xd3, 0x67, 0x21,
0x8d, 0x61, 0x1b, 0xea, 0x37, 0x5d, 0xc9, 0xac, 0xd2, 0xaa, 0x58, 0x18, 0xae, 0x8d, 0x2e, 0x93,
0x10, 0xad, 0x89, 0x1d, 0xb5, 0x40, 0x37, 0x05, 0x76, 0x7b, 0x30, 0x90, 0xbc, 0xa9, 0x8f, 0xbe,
0x19, 0x57, 0x39, 0x16, 0x57, 0x95, 0xec, 0x6e, 0xa5, 0x7c, 0x77, 0x5f, 0xba, 0x06, 0xee, 0x0e,
0x34, 0xf7, 0x8d, 0xc4, 0x6d, 0x62, 0x72, 0x95, 0xb2, 0x2d, 0x05, 0xc3, 0x40, 0x8c, 0xe1, 0x54,
0xcc, 0xe1, 0xb8, 0x7f, 0xe6, 0x00, 0xdb, 0x0b, 0x92, 0x54, 0x0f, 0x5f, 0xf4, 0xed, 0x42, 0x4b,
0x07, 0x28, 0xb2, 0x6c, 0x2b, 0x0b, 0x43, 0x1a, 0x1a, 0x4a, 0x2f, 0x3a, 0x3a, 0x4a, 0xb8, 0xca,
0xa4, 0xb0, 0x30, 0xe4, 0x50, 0xf4, 0x71, 0xd0, 0x5f, 0x08, 0x44, 0x0f, 0x89, 0xcc, 0xa8, 0x28,
0xe0, 0xa8, 0x67, 0x63, 0x7e, 0xc2, 0xe3, 0x44, 0x8b, 0x96, 0x2e, 0xeb, 0xa4, 0xb0, 0xfc, 0x2a,
0x6f, 0xc2, 0x82, 0x6e, 0xd7, 0x56, 0x21, 0x8a, 0x52, 0xd7, 0xa3, 0xaa, 0x22, 0x1f, 0xde, 0x1a,
0xb4, 0x50, 0x9b, 0xc5, 0x0a, 0x76, 0x03, 0xd8, 0x51, 0x10, 0xe7, 0xc9, 0xab, 0x44, 0x5e, 0x52,
0xe3, 0x3e, 0x85, 0x55, 0xd9, 0xa5, 0xe9, 0xdc, 0xd8, 0x9b, 0xe8, 0x9c, 0xc7, 0xc8, 0x95, 0x22,
0x23, 0xbb, 0x3f, 0x70, 0x60, 0x5e, 0xee, 0x34, 0x6d, 0x4b, 0x3e, 0x83, 0xbf, 0xe1, 0x59, 0x58,
0x79, 0xee, 0x76, 0x51, 0x39, 0x55, 0xcb, 0x94, 0x13, 0x83, 0xda, 0xc4, 0x4f, 0x8f, 0xe9, 0x54,
0xda, 0xf0, 0xe8, 0x37, 0x6b, 0x8b, 0x48, 0x89, 0x50, 0x82, 0x14, 0x25, 0x29, 0x7b, 0xbe, 0x20,
0x6c, 0x6d, 0x01, 0xc7, 0xd3, 0x05, 0x25, 0xaa, 0x08, 0x5c, 0xdf, 0x30, 0xc9, 0x14, 0xba, 0x0c,
0xce, 0xf6, 0x53, 0x36, 0x91, 0xdf, 0x4f, 0x49, 0xea, 0xe9, 0x7a, 0xb7, 0x0b, 0x9d, 0xbb, 0x7c,
0xc4, 0x53, 0x7e, 0x7b, 0x34, 0xca, 0xb7, 0xff, 0x1a, 0x5c, 0x2a, 0xa9, 0x93, 0xde, 0xe8, 0x3d,
0x58, 0xb9, 0xcb, 0x0f, 0xa7, 0xc3, 0x3d, 0x7e, 0x92, 0x5d, 0x12, 0x33, 0xa8, 0x25, 0xc7, 0xd1,
0xa9, 0xe4, 0x74, 0xfa, 0xcd, 0xde, 0x00, 0x18, 0x21, 0x4d, 0x2f, 0x99, 0xf0, 0xbe, 0xca, 0x5a,
0x26, 0xe4, 0x60, 0xc2, 0xfb, 0xee, 0x7b, 0xc0, 0xcc, 0x76, 0xe4, 0x14, 0x50, 0xc1, 0x4f, 0x0f,
0x7b, 0xc9, 0x2c, 0x49, 0xf9, 0x58, 0xa5, 0x63, 0x9b, 0x90, 0x7b, 0x0d, 0x5a, 0xfb, 0xfe, 0xcc,
0xe3, 0xdf, 0x90, 0x8f, 0x28, 0x36, 0x60, 0x7e, 0xe2, 0xcf, 0x50, 0xee, 0x75, 0x40, 0x84, 0xaa,
0xdd, 0xff, 0xaa, 0xc0, 0x9c, 0xa0, 0xc4, 0x56, 0x07, 0x3c, 0x49, 0x83, 0x50, 0x5c, 0x81, 0xca,
0x56, 0x0d, 0xa8, 0xc0, 0x1b, 0x95, 0x12, 0xde, 0x90, 0xc7, 0x10, 0x95, 0x01, 0x2a, 0x99, 0xc0,
0xc2, 0x90, 0x63, 0xb3, 0xc4, 0x13, 0x71, 0x22, 0xcf, 0x80, 0x5c, 0x84, 0x2c, 0x33, 0x23, 0x62,
0x7c, 0x8a, 0xed, 0x25, 0x3b, 0x98, 0x50, 0xa9, 0xb1, 0x9a, 0x17, 0x5c, 0x53, 0x30, 0x56, 0x05,
0xa3, 0xb4, 0xf0, 0x0a, 0x46, 0x49, 0x9c, 0x4d, 0x5e, 0x66, 0x94, 0xe0, 0x15, 0x8c, 0x92, 0xcb,
0xa0, 0x7d, 0x8f, 0x73, 0x8f, 0xa3, 0xbb, 0xa3, 0xd8, 0xe9, 0xbb, 0x0e, 0xb4, 0xa5, 0xa7, 0xa6,
0xeb, 0xd8, 0x5b, 0x96, 0x5b, 0x57, 0x9a, 0xa7, 0x79, 0x15, 0x16, 0xc9, 0xd9, 0xd2, 0xa1, 0x40,
0x19, 0xb7, 0xb4, 0x40, 0x9c, 0x87, 0xba, 0xaf, 0x19, 0x07, 0x23, 0xb9, 0x29, 0x26, 0xa4, 0xa2,
0x89, 0xb1, 0x2f, 0x73, 0x43, 0x1c, 0x4f, 0x97, 0xdd, 0xbf, 0x76, 0x60, 0xc5, 0x18, 0xb0, 0xe4,
0xc2, 0x0f, 0x41, 0x25, 0xa6, 0x88, 0x88, 0xa1, 0x10, 0xa6, 0x0d, 0xdb, 0xeb, 0xcc, 0x3e, 0xb3,
0x88, 0x69, 0x33, 0xfd, 0x19, 0x0d, 0x30, 0x99, 0x8e, 0xa5, 0x56, 0x32, 0x21, 0x64, 0xa4, 0x53,
0xce, 0x9f, 0x69, 0x12, 0xa1, 0x17, 0x2d, 0x8c, 0xf2, 0x0e, 0xd0, 0x49, 0xd4, 0x44, 0xc2, 0x40,
0xd8, 0xa0, 0xfb, 0xcf, 0x0e, 0xac, 0x0a, 0x6f, 0x5f, 0x9e, 0xa5, 0x74, 0x12, 0xfd, 0x9c, 0x38,
0xde, 0x08, 0x89, 0xdc, 0xbd, 0xe0, 0xc9, 0x32, 0xfb, 0xcc, 0x2b, 0x9e, 0x50, 0x74, 0xbe, 0xc9,
0x19, 0x7b, 0x51, 0x2d, 0xdb, 0x8b, 0x97, 0xac, 0x74, 0x59, 0x84, 0xac, 0x5e, 0x1a, 0x21, 0xbb,
0x33, 0x0f, 0xf5, 0xa4, 0x1f, 0x4d, 0xb8, 0xbb, 0x0e, 0x6b, 0xf6, 0xe4, 0xa4, 0x0a, 0xfa, 0x9e,
0x03, 0x9d, 0x7b, 0x22, 0x5e, 0x1c, 0x84, 0xc3, 0xdd, 0x20, 0x49, 0xa3, 0x58, 0xbf, 0x1a, 0xba,
0x0c, 0x90, 0xa4, 0x7e, 0x9c, 0x8a, 0x7c, 0x40, 0x19, 0xbf, 0xca, 0x10, 0x1c, 0x23, 0x0f, 0x07,
0xa2, 0x56, 0xec, 0x8d, 0x2e, 0x17, 0x8c, 0xb2, 0x3c, 0x8f, 0x58, 0xa6, 0xed, 0x6d, 0x91, 0xc0,
0x85, 0xc6, 0x97, 0x9f, 0x90, 0xaa, 0x15, 0x8e, 0x7e, 0x0e, 0x75, 0xff, 0xd2, 0x81, 0xe5, 0x6c,
0x90, 0x3b, 0x08, 0xda, 0xda, 0x41, 0xda, 0xb3, 0x4c, 0x3b, 0xa8, 0xc8, 0x5a, 0x80, 0x06, 0x4e,
0x8e, 0xcd, 0x40, 0x48, 0x62, 0x65, 0x29, 0x9a, 0x2a, 0x8f, 0xc1, 0x84, 0x44, 0xea, 0x04, 0x9a,
0x56, 0xe9, 0x26, 0xc8, 0x12, 0xa5, 0x73, 0x8e, 0x53, 0xfa, 0x6a, 0x4e, 0x9c, 0x74, 0x64, 0x51,
0xd9, 0xa7, 0x79, 0x42, 0xf1, 0xa7, 0xfb, 0xbb, 0x0e, 0x5c, 0x2a, 0x59, 0x5c, 0x29, 0x19, 0x77,
0x61, 0xe5, 0x48, 0x57, 0xaa, 0x05, 0x10, 0xe2, 0xb1, 0xae, 0x2e, 0x38, 0xec, 0x49, 0x7b, 0xc5,
0x0f, 0xb4, 0x33, 0x21, 0x96, 0xd4, 0xca, 0x49, 0x2a, 0x56, 0x6c, 0xfd, 0x5e, 0x15, 0x96, 0xc4,
0xc5, 0x97, 0x78, 0xbf, 0xcb, 0x63, 0xf6, 0x11, 0xcc, 0xcb, 0xf7, 0xd7, 0xec, 0xa2, 0xec, 0xd6,
0x7e, 0xf1, 0xdd, 0x5d, 0xcf, 0xc3, 0x92, 0x77, 0x56, 0x7f, 0xf3, 0x87, 0xff, 0xfa, 0xfb, 0x95,
0x45, 0xd6, 0xbc, 0x79, 0xf2, 0xee, 0xcd, 0x21, 0x0f, 0x13, 0x6c, 0xe3, 0x57, 0x01, 0xb2, 0x97,
0xc9, 0xac, 0xa3, 0x9d, 0xa0, 0xdc, 0x93, 0xeb, 0xee, 0xa5, 0x92, 0x1a, 0xd9, 0xee, 0x25, 0x6a,
0x77, 0xd5, 0x5d, 0xc2, 0x76, 0x83, 0x30, 0x48, 0xc5, 0x33, 0xe5, 0x0f, 0x9c, 0x4d, 0x36, 0x80,
0x96, 0xf9, 0xf0, 0x98, 0xa9, 0x58, 0x48, 0xc9, 0xb3, 0xe7, 0xee, 0x6b, 0xa5, 0x75, 0x2a, 0x10,
0x44, 0x7d, 0x5c, 0x74, 0xdb, 0xd8, 0xc7, 0x94, 0x28, 0xb2, 0x5e, 0x46, 0xb0, 0x64, 0xbf, 0x2f,
0x66, 0xaf, 0x1b, 0x62, 0x5d, 0x78, 0xdd, 0xdc, 0x7d, 0xe3, 0x8c, 0x5a, 0xd9, 0xd7, 0x1b, 0xd4,
0xd7, 0x86, 0xcb, 0xb0, 0xaf, 0x3e, 0xd1, 0xa8, 0xd7, 0xcd, 0x1f, 0x38, 0x9b, 0x5b, 0xdf, 0xba,
0x0c, 0x0d, 0x1d, 0xbd, 0x64, 0x5f, 0x87, 0x45, 0xeb, 0x66, 0x92, 0xa9, 0x69, 0x94, 0x5d, 0x64,
0x76, 0x5f, 0x2f, 0xaf, 0x94, 0x1d, 0x5f, 0xa6, 0x8e, 0x3b, 0x6c, 0x1d, 0x3b, 0x96, 0x57, 0x7b,
0x37, 0xe9, 0x3e, 0x56, 0x24, 0x8b, 0x3e, 0x13, 0xf3, 0xcc, 0x6e, 0x13, 0xad, 0x79, 0x16, 0x6e,
0x1f, 0xad, 0x79, 0x16, 0xaf, 0x20, 0xdd, 0xd7, 0xa9, 0xbb, 0x75, 0xb6, 0x66, 0x76, 0xa7, 0xa3,
0x8a, 0x9c, 0xd2, 0x7b, 0xcd, 0xe7, 0xc7, 0xec, 0x0d, 0xcd, 0x58, 0x65, 0xcf, 0x92, 0x35, 0x8b,
0x14, 0xdf, 0x26, 0xbb, 0x1d, 0xea, 0x8a, 0x31, 0xda, 0x3e, 0xf3, 0xf5, 0x31, 0xfb, 0x2a, 0x34,
0xf4, 0x5b, 0x3b, 0xb6, 0x61, 0x3c, 0x70, 0x34, 0x1f, 0x00, 0x76, 0x3b, 0xc5, 0x8a, 0x32, 0xc6,
0x30, 0x5b, 0x46, 0xc6, 0xd8, 0x83, 0x8b, 0xd2, 0xa9, 0x3e, 0xe4, 0x3f, 0xce, 0x4c, 0x4a, 0x1e,
0x4d, 0xdf, 0x72, 0xd8, 0x87, 0xb0, 0xa0, 0x9e, 0x30, 0xb2, 0xf5, 0xf2, 0xa7, 0x98, 0xdd, 0x8d,
0x02, 0x2e, 0xb5, 0xc7, 0x6d, 0x80, 0xec, 0xf9, 0x9d, 0x96, 0xb3, 0xc2, 0xa3, 0x40, 0xbd, 0x88,
0x25, 0x6f, 0xf5, 0x86, 0xf4, 0xd8, 0xd0, 0x7e, 0xdd, 0xc7, 0xde, 0xcc, 0xe8, 0x4b, 0xdf, 0xfd,
0xbd, 0xa4, 0x41, 0x77, 0x9d, 0xd6, 0xae, 0xcd, 0x48, 0x70, 0x43, 0x7e, 0xaa, 0x12, 0xdd, 0xef,
0x42, 0xd3, 0x78, 0xd2, 0xc7, 0x54, 0x0b, 0xc5, 0xe7, 0x80, 0xdd, 0x6e, 0x59, 0x95, 0x1c, 0xee,
0x17, 0x60, 0xd1, 0x7a, 0x9b, 0xa7, 0x25, 0xa3, 0xec, 0xe5, 0x9f, 0x96, 0x8c, 0xf2, 0xe7, 0x7c,
0x5f, 0x81, 0xa6, 0xf1, 0x92, 0x8e, 0x19, 0x29, 0x7c, 0xb9, 0x37, 0x74, 0x7a, 0x44, 0x65, 0x0f,
0xef, 0xd6, 0x68, 0xbe, 0x4b, 0x6e, 0x03, 0xe7, 0x4b, 0xd9, 0xde, 0xc8, 0x24, 0x5f, 0x87, 0x25,
0xfb, 0x6d, 0x9d, 0x96, 0xaa, 0xd2, 0x57, 0x7a, 0x5a, 0xaa, 0xce, 0x78, 0x90, 0x27, 0x19, 0x72,
0x73, 0x55, 0x77, 0x72, 0xf3, 0x63, 0x79, 0xaf, 0xf7, 0x82, 0x7d, 0x09, 0x55, 0x87, 0x4c, 0xbf,
0x67, 0xd9, 0x8b, 0x42, 0x3b, 0x49, 0x5f, 0x73, 0x7b, 0x21, 0x53, 0xdf, 0x5d, 0xa1, 0xc6, 0x9b,
0x2c, 0x9b, 0x81, 0xb0, 0x07, 0x94, 0x86, 0x6f, 0xd8, 0x03, 0x33, 0x53, 0xdf, 0xb0, 0x07, 0x56,
0xb6, 0x7e, 0xde, 0x1e, 0xa4, 0x01, 0xb6, 0x11, 0xc2, 0x72, 0x2e, 0x87, 0x45, 0x0b, 0x4b, 0x79,
0xd2, 0x5f, 0xf7, 0xf2, 0xcb, 0x53, 0x5f, 0x6c, 0x35, 0xa3, 0xd4, 0xcb, 0x4d, 0x95, 0xa3, 0xf9,
0x6b, 0xd0, 0x32, 0xdf, 0x44, 0x69, 0x0b, 0x51, 0xf2, 0x92, 0x4b, 0x5b, 0x88, 0xb2, 0x47, 0x54,
0x6a, 0x73, 0x59, 0xcb, 0xec, 0x06, 0x37, 0xd7, 0x7e, 0x42, 0x92, 0xa9, 0xcc, 0xb2, 0xb7, 0x31,
0x99, 0xca, 0x2c, 0x7d, 0x77, 0xa2, 0x36, 0x97, 0xad, 0x5a, 0x73, 0x11, 0x41, 0x5b, 0xf6, 0x15,
0x58, 0x36, 0x12, 0xc4, 0x0e, 0x66, 0x61, 0x5f, 0x33, 0x6a, 0x31, 0xb9, 0xb8, 0x5b, 0xe6, 0x79,
0xba, 0x1b, 0xd4, 0xfe, 0x8a, 0x6b, 0x4d, 0x02, 0x99, 0x74, 0x1b, 0x9a, 0x66, 0xf2, 0xd9, 0x4b,
0xda, 0xdd, 0x30, 0xaa, 0xcc, 0x4c, 0xda, 0x5b, 0x0e, 0xfb, 0x23, 0x07, 0x5a, 0x56, 0x2a, 0x97,
0x75, 0x35, 0x91, 0x6b, 0xa7, 0x63, 0xd6, 0x99, 0x0d, 0xb9, 0x1e, 0x0d, 0x72, 0x6f, 0xf3, 0x0b,
0xd6, 0x22, 0x7c, 0x6c, 0x9d, 0x60, 0x6e, 0xe4, 0x9f, 0xd6, 0xbf, 0xc8, 0x13, 0x98, 0x09, 0xd8,
0x2f, 0x6e, 0x39, 0xec, 0x03, 0xf1, 0xe7, 0x11, 0x2a, 0x62, 0xc1, 0x0c, 0x45, 0x9a, 0x5f, 0x32,
0xf3, 0x9f, 0x13, 0xae, 0x3b, 0xb7, 0x1c, 0xf6, 0x35, 0xf1, 0x82, 0x5e, 0x7e, 0x4b, 0x2b, 0xff,
0xaa, 0xdf, 0xbb, 0x57, 0x69, 0x36, 0x97, 0xdd, 0x4b, 0xd6, 0x6c, 0xf2, 0x96, 0xe4, 0xb6, 0x18,
0x9d, 0xfc, 0x63, 0x84, 0x4c, 0x25, 0x16, 0xfe, 0x2c, 0xe1, 0xec, 0x41, 0x8e, 0xc5, 0x20, 0x25,
0xb9, 0xc5, 0x1e, 0xaf, 0xd8, 0x8c, 0xbb, 0x49, 0x63, 0xbd, 0xea, 0xbe, 0x79, 0xe6, 0x58, 0x6f,
0xd2, 0x89, 0x14, 0x47, 0xbc, 0x0f, 0x90, 0x45, 0x17, 0x59, 0x2e, 0xba, 0xa5, 0xad, 0x42, 0x31,
0x00, 0x69, 0xf3, 0xa0, 0x0a, 0x82, 0x61, 0x8b, 0x5f, 0x15, 0xa2, 0xfa, 0x40, 0xc5, 0xc5, 0x2e,
0x19, 0xe2, 0x68, 0x87, 0x01, 0xbb, 0xdd, 0xb2, 0xaa, 0x32, 0x41, 0xd5, 0x41, 0xb6, 0x27, 0xb0,
0xb8, 0x17, 0x45, 0xcf, 0xa6, 0x13, 0x1d, 0xab, 0xb7, 0xe3, 0x37, 0xbb, 0x7e, 0x72, 0xdc, 0xcd,
0xcd, 0xc2, 0xbd, 0x42, 0x4d, 0x75, 0x59, 0xc7, 0x68, 0xea, 0xe6, 0xc7, 0x59, 0xf4, 0xf2, 0x05,
0xf3, 0x61, 0x45, 0x7b, 0x00, 0x7a, 0xe0, 0x5d, 0xbb, 0x19, 0x33, 0xee, 0x56, 0xe8, 0xc2, 0xf2,
0xc9, 0xd4, 0x68, 0x6f, 0x26, 0xaa, 0xcd, 0x5b, 0x0e, 0xdb, 0x87, 0xd6, 0x5d, 0xde, 0x8f, 0x06,
0x5c, 0x46, 0x5c, 0x56, 0xb3, 0x81, 0xeb, 0x50, 0x4d, 0x77, 0xd1, 0x02, 0x6d, 0x9d, 0x38, 0xf1,
0x67, 0x31, 0xff, 0xc6, 0xcd, 0x8f, 0x65, 0x2c, 0xe7, 0x85, 0xd2, 0x89, 0x2a, 0xfe, 0x64, 0xe9,
0xc4, 0x5c, 0xc0, 0xca, 0xd2, 0x89, 0x85, 0x80, 0x95, 0xb5, 0xd4, 0x2a, 0xfe, 0xc5, 0x46, 0xb0,
0x52, 0x88, 0x71, 0x69, 0x3f, 0xe2, 0xac, 0xc8, 0x58, 0xf7, 0xca, 0xd9, 0x04, 0x76, 0x6f, 0x9b,
0x76, 0x6f, 0x07, 0xb0, 0x78, 0x97, 0x8b, 0xc5, 0x12, 0x09, 0x01, 0xb9, 0x97, 0x7a, 0x66, 0xf2,
0x40, 0x5e, 0x29, 0x52, 0x9d, 0x6d, 0xf4, 0xe8, 0x36, 0x9e, 0x7d, 0x15, 0x9a, 0xf7, 0x79, 0xaa,
0x32, 0x00, 0xb4, 0x37, 0x96, 0x4b, 0x09, 0xe8, 0x96, 0x24, 0x10, 0xd8, 0x3c, 0x43, 0xad, 0xdd,
0xe4, 0x83, 0x21, 0x17, 0xea, 0xa9, 0x17, 0x0c, 0x5e, 0xb0, 0x5f, 0xa6, 0xc6, 0x75, 0x42, 0xd1,
0xba, 0x71, 0x71, 0x6c, 0x36, 0xbe, 0x9c, 0xc3, 0xcb, 0x5a, 0x0e, 0xa3, 0x01, 0x37, 0xcc, 0x7f,
0x08, 0x4d, 0x23, 0xdb, 0x4d, 0x0b, 0x50, 0x31, 0x73, 0x4f, 0x0b, 0x50, 0x49, 0x72, 0x9c, 0x7b,
0x9d, 0xfa, 0x71, 0xd9, 0x95, 0xac, 0x1f, 0x91, 0x10, 0x97, 0xf5, 0x74, 0xf3, 0x63, 0x7f, 0x9c,
0xbe, 0x60, 0x4f, 0xe9, 0xd5, 0x9e, 0x99, 0xe5, 0x90, 0x79, 0x83, 0xf9, 0x84, 0x08, 0xbd, 0x58,
0x46, 0x95, 0xed, 0x21, 0x8a, 0xae, 0xc8, 0x4b, 0xf8, 0x0c, 0xc0, 0x41, 0x1a, 0x4d, 0xee, 0xfa,
0x7c, 0x1c, 0x85, 0x99, 0xae, 0xcd, 0x6e, 0xf2, 0x33, 0xfd, 0x65, 0x5c, 0xe7, 0xb3, 0xa7, 0x86,
0x3f, 0x6e, 0x25, 0x89, 0x28, 0xe6, 0x3a, 0xf3, 0xb2, 0x5f, 0x2f, 0x48, 0xc9, 0x85, 0xff, 0x2d,
0x07, 0xbd, 0xeb, 0x2c, 0xa2, 0xaa, 0xbd, 0xeb, 0x42, 0xb0, 0x56, 0xab, 0xbd, 0x92, 0xf0, 0xeb,
0x3e, 0x34, 0xb2, 0x10, 0xdd, 0x46, 0x96, 0xb1, 0x68, 0x05, 0xf4, 0xb4, 0x55, 0x2c, 0x04, 0xce,
0xdc, 0x36, 0x2d, 0x15, 0xb0, 0x05, 0x5c, 0x2a, 0x8a, 0x86, 0x05, 0xb0, 0x2a, 0x06, 0xa8, 0x4d,
0x3c, 0xdd, 0x4d, 0xab, 0x99, 0x94, 0x04, 0xaf, 0xb4, 0x34, 0x97, 0xc6, 0x7e, 0xac, 0x73, 0x36,
0x72, 0xab, 0xb8, 0x17, 0x47, 0xd5, 0x3c, 0x86, 0x95, 0x42, 0xe0, 0x42, 0x8b, 0xf4, 0x59, 0xf1,
0x22, 0x2d, 0xd2, 0x67, 0xc6, 0x3c, 0xdc, 0x8b, 0xd4, 0xe5, 0xb2, 0x0b, 0xd8, 0x65, 0x72, 0x1a,
0xa4, 0xfd, 0xe3, 0x0f, 0x9c, 0xcd, 0xc3, 0x39, 0xfa, 0xb3, 0xb9, 0x4f, 0xfd, 0x6f, 0x00, 0x00,
0x00, 0xff, 0xff, 0xf1, 0xeb, 0xab, 0x92, 0x9e, 0x4e, 0x00, 0x00,
}

@ -1730,10 +1730,16 @@ message ListInvoiceRequest {
50k invoices, callers can use this to skip around within a packed time
series.
*/
uint32 index_offset = 4 [json_name = "index_offset"];
uint64 index_offset = 4 [json_name = "index_offset"];
/// The max number of invoices to return in the response to this query.
uint32 num_max_invoices = 5 [json_name = "num_max_invoices"];
uint64 num_max_invoices = 5 [json_name = "num_max_invoices"];
/**
If set, the invoices returned will result from seeking backwards from the
specified index offset.
*/
bool reversed = 6 [json_name = "reversed"];
}
message ListInvoiceResponse {
/**
@ -1743,10 +1749,16 @@ message ListInvoiceResponse {
repeated Invoice invoices = 1 [json_name = "invoices"];
/**
The index of the last time in the set of returned invoices. Can be used to
seek further, pagination style.
The index of the last item in the set of returned invoices. This can be used
to seek further, pagination style.
*/
uint32 last_index_offset = 2 [json_name = "last_index_offset"];
uint64 last_index_offset = 2 [json_name = "last_index_offset"];
/**
The index of the last item in the set of returned invoices. This can be used
to seek backwards, pagination style.
*/
uint64 first_index_offset = 3 [json_name = "first_index_offset"];
}
message InvoiceSubscription {

@ -638,16 +638,24 @@
"description": "*\nThe offset in the time series to start at. As each response can only contain\n50k invoices, callers can use this to skip around within a packed time\nseries.",
"in": "query",
"required": false,
"type": "integer",
"format": "int64"
"type": "string",
"format": "uint64"
},
{
"name": "num_max_invoices",
"description": "/ The max number of invoices to return in the response to this query.",
"in": "query",
"required": false,
"type": "integer",
"format": "int64"
"type": "string",
"format": "uint64"
},
{
"name": "reversed",
"description": "*\nIf set, the invoices returned will result from seeking backwards from the\nspecified index offset.",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
}
],
"tags": [
@ -2021,9 +2029,14 @@
"description": "*\nA list of invoices from the time slice of the time series specified in the\nrequest."
},
"last_index_offset": {
"type": "integer",
"format": "int64",
"description": "*\nThe index of the last time in the set of returned invoices. Can be used to\nseek further, pagination style."
"type": "string",
"format": "uint64",
"description": "*\nThe index of the last item in the set of returned invoices. This can be used\nto seek further, pagination style."
},
"first_index_offset": {
"type": "string",
"format": "uint64",
"description": "*\nThe index of the last item in the set of returned invoices. This can be used\nto seek backwards, pagination style."
}
}
},

@ -2888,6 +2888,7 @@ func (r *rpcServer) ListInvoices(ctx context.Context,
IndexOffset: req.IndexOffset,
NumMaxInvoices: req.NumMaxInvoices,
PendingOnly: req.PendingOnly,
Reversed: req.Reversed,
}
invoiceSlice, err := r.server.chanDB.QueryInvoices(q)
if err != nil {
@ -2897,11 +2898,12 @@ func (r *rpcServer) ListInvoices(ctx context.Context,
// Before returning the response, we'll need to convert each invoice
// into it's proto representation.
resp := &lnrpc.ListInvoiceResponse{
Invoices: make([]*lnrpc.Invoice, len(invoiceSlice.Invoices)),
LastIndexOffset: invoiceSlice.LastIndexOffset,
Invoices: make([]*lnrpc.Invoice, len(invoiceSlice.Invoices)),
FirstIndexOffset: invoiceSlice.FirstIndexOffset,
LastIndexOffset: invoiceSlice.LastIndexOffset,
}
for i, invoice := range invoiceSlice.Invoices {
resp.Invoices[i], err = createRPCInvoice(invoice)
resp.Invoices[i], err = createRPCInvoice(&invoice)
if err != nil {
return nil, err
}