Merge pull request #4128 from joostjager/default-routerrpc

routerrpc+lncli: enable subserver by default and switch over lncli sendpayment
This commit is contained in:
Joost Jager 2020-03-31 23:30:25 +02:00 committed by GitHub
commit afaabdae88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 1707 additions and 1684 deletions

View File

@ -17,7 +17,6 @@ run:
- autopilotrpc
- chainrpc
- invoicesrpc
- routerrpc
- signrpc
- walletrpc
- watchtowerrpc

View File

@ -18,7 +18,7 @@ RUN apk add --no-cache --update alpine-sdk \
&& cd /go/src/github.com/lightningnetwork/lnd \
&& git checkout $checkout \
&& make \
&& make install tags="signrpc walletrpc chainrpc invoicesrpc routerrpc"
&& make install tags="signrpc walletrpc chainrpc invoicesrpc"
# Start a new, final image.
FROM alpine as final

View File

@ -130,8 +130,8 @@ for i in $SYS; do
cd $PACKAGE-$i-$TAG
echo "Building:" $OS $ARCH $ARM
env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH GOARM=$ARM go build -v -trimpath -ldflags="-s -w -buildid= $COMMITFLAGS" -tags="autopilotrpc signrpc walletrpc chainrpc invoicesrpc routerrpc watchtowerrpc" github.com/lightningnetwork/lnd/cmd/lnd
env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH GOARM=$ARM go build -v -trimpath -ldflags="-s -w -buildid= $COMMITFLAGS" -tags="autopilotrpc invoicesrpc walletrpc routerrpc watchtowerrpc" github.com/lightningnetwork/lnd/cmd/lncli
env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH GOARM=$ARM go build -v -trimpath -ldflags="-s -w -buildid= $COMMITFLAGS" -tags="autopilotrpc signrpc walletrpc chainrpc invoicesrpc watchtowerrpc" github.com/lightningnetwork/lnd/cmd/lnd
env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH GOARM=$ARM go build -v -trimpath -ldflags="-s -w -buildid= $COMMITFLAGS" -tags="autopilotrpc invoicesrpc walletrpc watchtowerrpc" github.com/lightningnetwork/lnd/cmd/lncli
cd ..
if [[ $OS = "windows" ]]; then

View File

@ -1,5 +1,3 @@
// +build routerrpc
package main
import (

657
cmd/lncli/cmd_pay.go Normal file
View File

@ -0,0 +1,657 @@
package main
import (
"context"
"crypto/rand"
"encoding/hex"
"errors"
"fmt"
"io/ioutil"
"os"
"strconv"
"strings"
"github.com/lightninglabs/protobuf-hex-display/jsonpb"
"github.com/lightningnetwork/lnd/lnrpc"
"github.com/lightningnetwork/lnd/lnrpc/routerrpc"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/record"
"github.com/lightningnetwork/lnd/routing/route"
"github.com/urfave/cli"
)
const (
// paymentTimeoutSeconds is the default timeout for the payment loop in
// lnd. No new attempts will be started after the timeout.
paymentTimeoutSeconds = 60
)
var (
cltvLimitFlag = cli.UintFlag{
Name: "cltv_limit",
Usage: "the maximum time lock that may be used for " +
"this payment",
}
lastHopFlag = cli.StringFlag{
Name: "last_hop",
Usage: "pubkey of the last hop (penultimate node in the path) " +
"to route through for this payment",
}
dataFlag = cli.StringFlag{
Name: "data",
Usage: "attach custom data to the payment. The required " +
"format is: <record_id>=<hex_value>,<record_id>=" +
"<hex_value>,.. For example: --data 3438382=0a21ff. " +
"Custom record ids start from 65536.",
}
)
// paymentFlags returns common flags for sendpayment and payinvoice.
func paymentFlags() []cli.Flag {
return []cli.Flag{
cli.StringFlag{
Name: "pay_req",
Usage: "a zpay32 encoded payment request to fulfill",
},
cli.Int64Flag{
Name: "fee_limit",
Usage: "maximum fee allowed in satoshis when " +
"sending the payment",
},
cli.Int64Flag{
Name: "fee_limit_percent",
Usage: "percentage of the payment's amount used as " +
"the maximum fee allowed when sending the " +
"payment",
},
cltvLimitFlag,
lastHopFlag,
cli.Uint64Flag{
Name: "outgoing_chan_id",
Usage: "short channel id of the outgoing channel to " +
"use for the first hop of the payment",
Value: 0,
},
cli.BoolFlag{
Name: "force, f",
Usage: "will skip payment request confirmation",
},
cli.BoolFlag{
Name: "allow_self_payment",
Usage: "allow sending a circular payment to self",
},
dataFlag,
}
}
var sendPaymentCommand = cli.Command{
Name: "sendpayment",
Category: "Payments",
Usage: "Send a payment over lightning.",
Description: `
Send a payment over Lightning. One can either specify the full
parameters of the payment, or just use a payment request which encodes
all the payment details.
If payment isn't manually specified, then only a payment request needs
to be passed using the --pay_req argument.
If the payment *is* manually specified, then all four alternative
arguments need to be specified in order to complete the payment:
* --dest=N
* --amt=A
* --final_cltv_delta=T
* --payment_hash=H
`,
ArgsUsage: "dest amt payment_hash final_cltv_delta | --pay_req=[payment request]",
Flags: append(paymentFlags(),
cli.StringFlag{
Name: "dest, d",
Usage: "the compressed identity pubkey of the " +
"payment recipient",
},
cli.Int64Flag{
Name: "amt, a",
Usage: "number of satoshis to send",
},
cli.StringFlag{
Name: "payment_hash, r",
Usage: "the hash to use within the payment's HTLC",
},
cli.Int64Flag{
Name: "final_cltv_delta",
Usage: "the number of blocks the last hop has to reveal the preimage",
},
cli.BoolFlag{
Name: "keysend",
Usage: "will generate a pre-image and encode it in the sphinx packet, a dest must be set [experimental]",
},
),
Action: sendPayment,
}
// retrieveFeeLimit retrieves the fee limit based on the different fee limit
// flags passed. It always returns a value and doesn't rely on lnd applying a
// default.
func retrieveFeeLimit(ctx *cli.Context, amt int64) (int64, error) {
switch {
case ctx.IsSet("fee_limit") && ctx.IsSet("fee_limit_percent"):
return 0, fmt.Errorf("either fee_limit or fee_limit_percent " +
"can be set, but not both")
case ctx.IsSet("fee_limit"):
return ctx.Int64("fee_limit"), nil
case ctx.IsSet("fee_limit_percent"):
// Round up the fee limit to prevent hitting zero on small
// amounts.
feeLimitRoundedUp :=
(amt*ctx.Int64("fee_limit_percent") + 99) / 100
return feeLimitRoundedUp, nil
}
// If no fee limit is set, use the payment amount as a limit (100%).
return amt, nil
}
func confirmPayReq(resp *lnrpc.PayReq, amt, feeLimit int64) error {
fmt.Printf("Payment hash: %v\n", resp.GetPaymentHash())
fmt.Printf("Description: %v\n", resp.GetDescription())
fmt.Printf("Amount (in satoshis): %v\n", amt)
fmt.Printf("Fee limit (in satoshis): %v\n", feeLimit)
fmt.Printf("Destination: %v\n", resp.GetDestination())
confirm := promptForConfirmation("Confirm payment (yes/no): ")
if !confirm {
return fmt.Errorf("payment not confirmed")
}
return nil
}
func sendPayment(ctx *cli.Context) error {
// Show command help if no arguments provided
if ctx.NArg() == 0 && ctx.NumFlags() == 0 {
_ = cli.ShowCommandHelp(ctx, "sendpayment")
return nil
}
// If a payment request was provided, we can exit early since all of the
// details of the payment are encoded within the request.
if ctx.IsSet("pay_req") {
req := &routerrpc.SendPaymentRequest{
PaymentRequest: ctx.String("pay_req"),
Amt: ctx.Int64("amt"),
}
return sendPaymentRequest(ctx, req)
}
var (
destNode []byte
amount int64
err error
)
args := ctx.Args()
switch {
case ctx.IsSet("dest"):
destNode, err = hex.DecodeString(ctx.String("dest"))
case args.Present():
destNode, err = hex.DecodeString(args.First())
args = args.Tail()
default:
return fmt.Errorf("destination txid argument missing")
}
if err != nil {
return err
}
if len(destNode) != 33 {
return fmt.Errorf("dest node pubkey must be exactly 33 bytes, is "+
"instead: %v", len(destNode))
}
if ctx.IsSet("amt") {
amount = ctx.Int64("amt")
} else if args.Present() {
amount, err = strconv.ParseInt(args.First(), 10, 64)
args = args.Tail()
if err != nil {
return fmt.Errorf("unable to decode payment amount: %v", err)
}
}
req := &routerrpc.SendPaymentRequest{
Dest: destNode,
Amt: amount,
DestCustomRecords: make(map[uint64][]byte),
}
var rHash []byte
if ctx.Bool("keysend") {
if ctx.IsSet("payment_hash") {
return errors.New("cannot set payment hash when using " +
"keysend")
}
var preimage lntypes.Preimage
if _, err := rand.Read(preimage[:]); err != nil {
return err
}
// Set the preimage. If the user supplied a preimage with the
// data flag, the preimage that is set here will be overwritten
// later.
req.DestCustomRecords[record.KeySendType] = preimage[:]
hash := preimage.Hash()
rHash = hash[:]
} else {
switch {
case ctx.IsSet("payment_hash"):
rHash, err = hex.DecodeString(ctx.String("payment_hash"))
case args.Present():
rHash, err = hex.DecodeString(args.First())
args = args.Tail()
default:
return fmt.Errorf("payment hash argument missing")
}
}
if err != nil {
return err
}
if len(rHash) != 32 {
return fmt.Errorf("payment hash must be exactly 32 "+
"bytes, is instead %v", len(rHash))
}
req.PaymentHash = rHash
switch {
case ctx.IsSet("final_cltv_delta"):
req.FinalCltvDelta = int32(ctx.Int64("final_cltv_delta"))
case args.Present():
delta, err := strconv.ParseInt(args.First(), 10, 64)
if err != nil {
return err
}
req.FinalCltvDelta = int32(delta)
}
return sendPaymentRequest(ctx, req)
}
func sendPaymentRequest(ctx *cli.Context,
req *routerrpc.SendPaymentRequest) error {
conn := getClientConn(ctx, false)
defer conn.Close()
client := lnrpc.NewLightningClient(conn)
routerClient := routerrpc.NewRouterClient(conn)
req.OutgoingChanId = ctx.Uint64("outgoing_chan_id")
if ctx.IsSet(lastHopFlag.Name) {
lastHop, err := route.NewVertexFromStr(
ctx.String(lastHopFlag.Name),
)
if err != nil {
return err
}
req.LastHopPubkey = lastHop[:]
}
req.CltvLimit = int32(ctx.Int(cltvLimitFlag.Name))
req.TimeoutSeconds = paymentTimeoutSeconds
req.AllowSelfPayment = ctx.Bool("allow_self_payment")
// Parse custom data records.
data := ctx.String(dataFlag.Name)
if data != "" {
records := strings.Split(data, ",")
for _, r := range records {
kv := strings.Split(r, "=")
if len(kv) != 2 {
return errors.New("invalid data format: " +
"multiple equal signs in record")
}
recordID, err := strconv.ParseUint(kv[0], 10, 64)
if err != nil {
return fmt.Errorf("invalid data format: %v",
err)
}
hexValue, err := hex.DecodeString(kv[1])
if err != nil {
return fmt.Errorf("invalid data format: %v",
err)
}
req.DestCustomRecords[recordID] = hexValue
}
}
var feeLimit int64
if req.PaymentRequest != "" {
// Decode payment request to find out the amount.
decodeReq := &lnrpc.PayReqString{PayReq: req.PaymentRequest}
decodeResp, err := client.DecodePayReq(
context.Background(), decodeReq,
)
if err != nil {
return err
}
// If amount is present in the request, override the request
// amount.
amt := req.Amt
invoiceAmt := decodeResp.GetNumSatoshis()
if invoiceAmt != 0 {
amt = invoiceAmt
}
// Calculate fee limit based on the determined amount.
feeLimit, err = retrieveFeeLimit(ctx, amt)
if err != nil {
return err
}
// Ask for confirmation of amount and fee limit if payment is
// forced.
if !ctx.Bool("force") {
err := confirmPayReq(decodeResp, amt, feeLimit)
if err != nil {
return err
}
}
} else {
var err error
feeLimit, err = retrieveFeeLimit(ctx, req.Amt)
if err != nil {
return err
}
}
req.FeeLimitSat = feeLimit
stream, err := routerClient.SendPayment(context.Background(), req)
if err != nil {
return err
}
for {
status, err := stream.Recv()
if err != nil {
return err
}
if status.State != routerrpc.PaymentState_IN_FLIGHT {
printRespJSON(status)
// If we get a payment error back, we pass an error up
// to main which eventually calls fatal() and returns
// with a non-zero exit code.
if status.State != routerrpc.PaymentState_SUCCEEDED {
return errors.New(status.State.String())
}
return nil
}
}
}
var trackPaymentCommand = cli.Command{
Name: "trackpayment",
Category: "Payments",
Usage: "Track progress of an existing payment.",
Description: `
Pick up monitoring the progression of a previously initiated payment
specified by the hash argument.
`,
ArgsUsage: "hash",
Action: actionDecorator(trackPayment),
}
func trackPayment(ctx *cli.Context) error {
args := ctx.Args()
conn := getClientConn(ctx, false)
defer conn.Close()
client := routerrpc.NewRouterClient(conn)
if !args.Present() {
return fmt.Errorf("hash argument missing")
}
hash, err := hex.DecodeString(args.First())
if err != nil {
return err
}
req := &routerrpc.TrackPaymentRequest{
PaymentHash: hash,
}
stream, err := client.TrackPayment(context.Background(), req)
if err != nil {
return err
}
for {
status, err := stream.Recv()
if err != nil {
return err
}
printRespJSON(status)
if status.State != routerrpc.PaymentState_IN_FLIGHT {
return nil
}
}
}
var payInvoiceCommand = cli.Command{
Name: "payinvoice",
Category: "Payments",
Usage: "Pay an invoice over lightning.",
ArgsUsage: "pay_req",
Flags: append(paymentFlags(),
cli.Int64Flag{
Name: "amt",
Usage: "(optional) number of satoshis to fulfill the " +
"invoice",
},
),
Action: actionDecorator(payInvoice),
}
func payInvoice(ctx *cli.Context) error {
args := ctx.Args()
var payReq string
switch {
case ctx.IsSet("pay_req"):
payReq = ctx.String("pay_req")
case args.Present():
payReq = args.First()
default:
return fmt.Errorf("pay_req argument missing")
}
req := &routerrpc.SendPaymentRequest{
PaymentRequest: payReq,
Amt: ctx.Int64("amt"),
DestCustomRecords: make(map[uint64][]byte),
}
return sendPaymentRequest(ctx, req)
}
var sendToRouteCommand = cli.Command{
Name: "sendtoroute",
Category: "Payments",
Usage: "Send a payment over a predefined route.",
Description: `
Send a payment over Lightning using a specific route. One must specify
the route to attempt and the payment hash. This command can even
be chained with the response to queryroutes or buildroute. This command
can be used to implement channel rebalancing by crafting a self-route,
or even atomic swaps using a self-route that crosses multiple chains.
There are three ways to specify a route:
* using the --routes parameter to manually specify a JSON encoded
route in the format of the return value of queryroutes or
buildroute:
(lncli sendtoroute --payment_hash=<pay_hash> --routes=<route>)
* passing the route as a positional argument:
(lncli sendtoroute --payment_hash=pay_hash <route>)
* or reading in the route from stdin, which can allow chaining the
response from queryroutes or buildroute, or even read in a file
with a pre-computed route:
(lncli queryroutes --args.. | lncli sendtoroute --payment_hash= -
notice the '-' at the end, which signals that lncli should read
the route in from stdin
`,
Flags: []cli.Flag{
cli.StringFlag{
Name: "payment_hash, pay_hash",
Usage: "the hash to use within the payment's HTLC",
},
cli.StringFlag{
Name: "routes, r",
Usage: "a json array string in the format of the response " +
"of queryroutes that denotes which routes to use",
},
},
Action: sendToRoute,
}
func sendToRoute(ctx *cli.Context) error {
// Show command help if no arguments provided.
if ctx.NArg() == 0 && ctx.NumFlags() == 0 {
_ = cli.ShowCommandHelp(ctx, "sendtoroute")
return nil
}
args := ctx.Args()
var (
rHash []byte
err error
)
switch {
case ctx.IsSet("payment_hash"):
rHash, err = hex.DecodeString(ctx.String("payment_hash"))
case args.Present():
rHash, err = hex.DecodeString(args.First())
args = args.Tail()
default:
return fmt.Errorf("payment hash argument missing")
}
if err != nil {
return err
}
if len(rHash) != 32 {
return fmt.Errorf("payment hash must be exactly 32 "+
"bytes, is instead %d", len(rHash))
}
var jsonRoutes string
switch {
// The user is specifying the routes explicitly via the key word
// argument.
case ctx.IsSet("routes"):
jsonRoutes = ctx.String("routes")
// The user is specifying the routes as a positional argument.
case args.Present() && args.First() != "-":
jsonRoutes = args.First()
// The user is signalling that we should read stdin in order to parse
// the set of target routes.
case args.Present() && args.First() == "-":
b, err := ioutil.ReadAll(os.Stdin)
if err != nil {
return err
}
if len(b) == 0 {
return fmt.Errorf("queryroutes output is empty")
}
jsonRoutes = string(b)
}
// Try to parse the provided json both in the legacy QueryRoutes format
// that contains a list of routes and the single route BuildRoute
// format.
var route *lnrpc.Route
routes := &lnrpc.QueryRoutesResponse{}
err = jsonpb.UnmarshalString(jsonRoutes, routes)
if err == nil {
if len(routes.Routes) == 0 {
return fmt.Errorf("no routes provided")
}
if len(routes.Routes) != 1 {
return fmt.Errorf("expected a single route, but got %v",
len(routes.Routes))
}
route = routes.Routes[0]
} else {
routes := &routerrpc.BuildRouteResponse{}
err = jsonpb.UnmarshalString(jsonRoutes, routes)
if err != nil {
return fmt.Errorf("unable to unmarshal json string "+
"from incoming array of routes: %v", err)
}
route = routes.Route
}
req := &lnrpc.SendToRouteRequest{
PaymentHash: rHash,
Route: route,
}
return sendToRouteRequest(ctx, req)
}
func sendToRouteRequest(ctx *cli.Context, req *lnrpc.SendToRouteRequest) error {
client, cleanUp := getClient(ctx)
defer cleanUp()
paymentStream, err := client.SendToRoute(context.Background())
if err != nil {
return err
}
if err := paymentStream.Send(req); err != nil {
return err
}
resp, err := paymentStream.Recv()
if err != nil {
return err
}
printRespJSON(resp)
return nil
}

View File

@ -1,5 +1,3 @@
// +build routerrpc
package main
import (

View File

@ -1,5 +1,3 @@
// +build routerrpc
package main
import (

View File

@ -1,5 +1,3 @@
// +build routerrpc
package main
import (

View File

@ -4,7 +4,6 @@ import (
"bufio"
"bytes"
"context"
"crypto/rand"
"encoding/hex"
"errors"
"fmt"
@ -24,9 +23,6 @@ import (
"github.com/lightninglabs/protobuf-hex-display/jsonpb"
"github.com/lightninglabs/protobuf-hex-display/proto"
"github.com/lightningnetwork/lnd/lnrpc"
"github.com/lightningnetwork/lnd/lnrpc/routerrpc"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/record"
"github.com/lightningnetwork/lnd/routing/route"
"github.com/lightningnetwork/lnd/walletunlocker"
"github.com/urfave/cli"
@ -1709,11 +1705,6 @@ var getInfoCommand = cli.Command{
Action: actionDecorator(getInfo),
}
type chain struct {
Chain string `json:"chain"`
Network string `json:"network"`
}
func getInfo(ctx *cli.Context) error {
ctxb := context.Background()
client, cleanUp := getClient(ctx)
@ -1882,566 +1873,6 @@ func closedChannels(ctx *cli.Context) error {
return nil
}
var (
cltvLimitFlag = cli.UintFlag{
Name: "cltv_limit",
Usage: "the maximum time lock that may be used for " +
"this payment",
}
lastHopFlag = cli.StringFlag{
Name: "last_hop",
Usage: "pubkey of the last hop (penultimate node in the path) " +
"to route through for this payment",
}
dataFlag = cli.StringFlag{
Name: "data",
Usage: "attach custom data to the payment. The required " +
"format is: <record_id>=<hex_value>,<record_id>=" +
"<hex_value>,.. For example: --data 3438382=0a21ff. " +
"Custom record ids start from 65536.",
}
)
// paymentFlags returns common flags for sendpayment and payinvoice.
func paymentFlags() []cli.Flag {
return []cli.Flag{
cli.StringFlag{
Name: "pay_req",
Usage: "a zpay32 encoded payment request to fulfill",
},
cli.Int64Flag{
Name: "fee_limit",
Usage: "maximum fee allowed in satoshis when " +
"sending the payment",
},
cli.Int64Flag{
Name: "fee_limit_percent",
Usage: "percentage of the payment's amount used as " +
"the maximum fee allowed when sending the " +
"payment",
},
cltvLimitFlag,
lastHopFlag,
cli.Uint64Flag{
Name: "outgoing_chan_id",
Usage: "short channel id of the outgoing channel to " +
"use for the first hop of the payment",
Value: 0,
},
cli.BoolFlag{
Name: "force, f",
Usage: "will skip payment request confirmation",
},
cli.BoolFlag{
Name: "allow_self_payment",
Usage: "allow sending a circular payment to self",
},
dataFlag,
}
}
var sendPaymentCommand = cli.Command{
Name: "sendpayment",
Category: "Payments",
Usage: "Send a payment over lightning.",
Description: `
Send a payment over Lightning. One can either specify the full
parameters of the payment, or just use a payment request which encodes
all the payment details.
If payment isn't manually specified, then only a payment request needs
to be passed using the --pay_req argument.
If the payment *is* manually specified, then all four alternative
arguments need to be specified in order to complete the payment:
* --dest=N
* --amt=A
* --final_cltv_delta=T
* --payment_hash=H
`,
ArgsUsage: "dest amt payment_hash final_cltv_delta | --pay_req=[payment request]",
Flags: append(paymentFlags(),
cli.StringFlag{
Name: "dest, d",
Usage: "the compressed identity pubkey of the " +
"payment recipient",
},
cli.Int64Flag{
Name: "amt, a",
Usage: "number of satoshis to send",
},
cli.StringFlag{
Name: "payment_hash, r",
Usage: "the hash to use within the payment's HTLC",
},
cli.Int64Flag{
Name: "final_cltv_delta",
Usage: "the number of blocks the last hop has to reveal the preimage",
},
cli.BoolFlag{
Name: "keysend",
Usage: "will generate a pre-image and encode it in the sphinx packet, a dest must be set [experimental]",
},
),
Action: sendPayment,
}
// retrieveFeeLimit retrieves the fee limit based on the different fee limit
// flags passed.
func retrieveFeeLimit(ctx *cli.Context) (*lnrpc.FeeLimit, error) {
switch {
case ctx.IsSet("fee_limit") && ctx.IsSet("fee_limit_percent"):
return nil, fmt.Errorf("either fee_limit or fee_limit_percent " +
"can be set, but not both")
case ctx.IsSet("fee_limit"):
return &lnrpc.FeeLimit{
Limit: &lnrpc.FeeLimit_Fixed{
Fixed: ctx.Int64("fee_limit"),
},
}, nil
case ctx.IsSet("fee_limit_percent"):
return &lnrpc.FeeLimit{
Limit: &lnrpc.FeeLimit_Percent{
Percent: ctx.Int64("fee_limit_percent"),
},
}, nil
}
// Since the fee limit flags aren't required, we don't return an error
// if they're not set.
return nil, nil
}
func confirmPayReq(resp *lnrpc.PayReq, amt int64) error {
fmt.Printf("Description: %v\n", resp.GetDescription())
fmt.Printf("Amount (in satoshis): %v\n", amt)
fmt.Printf("Destination: %v\n", resp.GetDestination())
confirm := promptForConfirmation("Confirm payment (yes/no): ")
if !confirm {
return fmt.Errorf("payment not confirmed")
}
return nil
}
func sendPayment(ctx *cli.Context) error {
// Show command help if no arguments provided
if ctx.NArg() == 0 && ctx.NumFlags() == 0 {
cli.ShowCommandHelp(ctx, "sendpayment")
return nil
}
// If a payment request was provided, we can exit early since all of the
// details of the payment are encoded within the request.
if ctx.IsSet("pay_req") {
req := &lnrpc.SendRequest{
PaymentRequest: ctx.String("pay_req"),
Amt: ctx.Int64("amt"),
}
return sendPaymentRequest(ctx, req)
}
var (
destNode []byte
amount int64
err error
)
args := ctx.Args()
switch {
case ctx.IsSet("dest"):
destNode, err = hex.DecodeString(ctx.String("dest"))
case args.Present():
destNode, err = hex.DecodeString(args.First())
args = args.Tail()
default:
return fmt.Errorf("destination txid argument missing")
}
if err != nil {
return err
}
if len(destNode) != 33 {
return fmt.Errorf("dest node pubkey must be exactly 33 bytes, is "+
"instead: %v", len(destNode))
}
if ctx.IsSet("amt") {
amount = ctx.Int64("amt")
} else if args.Present() {
amount, err = strconv.ParseInt(args.First(), 10, 64)
args = args.Tail()
if err != nil {
return fmt.Errorf("unable to decode payment amount: %v", err)
}
}
req := &lnrpc.SendRequest{
Dest: destNode,
Amt: amount,
DestCustomRecords: make(map[uint64][]byte),
}
var rHash []byte
if ctx.Bool("keysend") {
if ctx.IsSet("payment_hash") {
return errors.New("cannot set payment hash when using " +
"keysend")
}
var preimage lntypes.Preimage
if _, err := rand.Read(preimage[:]); err != nil {
return err
}
// Set the preimage. If the user supplied a preimage with the
// data flag, the preimage that is set here will be overwritten
// later.
req.DestCustomRecords[record.KeySendType] = preimage[:]
hash := preimage.Hash()
rHash = hash[:]
} else {
switch {
case ctx.IsSet("payment_hash"):
rHash, err = hex.DecodeString(ctx.String("payment_hash"))
case args.Present():
rHash, err = hex.DecodeString(args.First())
args = args.Tail()
default:
return fmt.Errorf("payment hash argument missing")
}
}
if err != nil {
return err
}
if len(rHash) != 32 {
return fmt.Errorf("payment hash must be exactly 32 "+
"bytes, is instead %v", len(rHash))
}
req.PaymentHash = rHash
switch {
case ctx.IsSet("final_cltv_delta"):
req.FinalCltvDelta = int32(ctx.Int64("final_cltv_delta"))
case args.Present():
delta, err := strconv.ParseInt(args.First(), 10, 64)
if err != nil {
return err
}
req.FinalCltvDelta = int32(delta)
}
return sendPaymentRequest(ctx, req)
}
func sendPaymentRequest(ctx *cli.Context, req *lnrpc.SendRequest) error {
client, cleanUp := getClient(ctx)
defer cleanUp()
// First, we'll retrieve the fee limit value passed since it can apply
// to both ways of sending payments (with the payment request or
// providing the details manually).
feeLimit, err := retrieveFeeLimit(ctx)
if err != nil {
return err
}
req.FeeLimit = feeLimit
req.OutgoingChanId = ctx.Uint64("outgoing_chan_id")
if ctx.IsSet(lastHopFlag.Name) {
lastHop, err := route.NewVertexFromStr(
ctx.String(lastHopFlag.Name),
)
if err != nil {
return err
}
req.LastHopPubkey = lastHop[:]
}
req.CltvLimit = uint32(ctx.Int(cltvLimitFlag.Name))
req.AllowSelfPayment = ctx.Bool("allow_self_payment")
// Parse custom data records.
data := ctx.String(dataFlag.Name)
if data != "" {
records := strings.Split(data, ",")
for _, r := range records {
kv := strings.Split(r, "=")
if len(kv) != 2 {
return errors.New("invalid data format: " +
"multiple equal signs in record")
}
recordID, err := strconv.ParseUint(kv[0], 10, 64)
if err != nil {
return fmt.Errorf("invalid data format: %v",
err)
}
hexValue, err := hex.DecodeString(kv[1])
if err != nil {
return fmt.Errorf("invalid data format: %v",
err)
}
req.DestCustomRecords[recordID] = hexValue
}
}
amt := req.Amt
if req.PaymentRequest != "" {
req := &lnrpc.PayReqString{PayReq: req.PaymentRequest}
resp, err := client.DecodePayReq(context.Background(), req)
if err != nil {
return err
}
invoiceAmt := resp.GetNumSatoshis()
if invoiceAmt != 0 {
amt = invoiceAmt
}
if !ctx.Bool("force") {
err := confirmPayReq(resp, amt)
if err != nil {
return err
}
}
}
paymentStream, err := client.SendPayment(context.Background())
if err != nil {
return err
}
if err := paymentStream.Send(req); err != nil {
return err
}
resp, err := paymentStream.Recv()
if err != nil {
return err
}
paymentStream.CloseSend()
printRespJSON(resp)
// If we get a payment error back, we pass an error
// up to main which eventually calls fatal() and returns
// with a non-zero exit code.
if resp.PaymentError != "" {
return errors.New(resp.PaymentError)
}
return nil
}
var payInvoiceCommand = cli.Command{
Name: "payinvoice",
Category: "Payments",
Usage: "Pay an invoice over lightning.",
ArgsUsage: "pay_req",
Flags: append(paymentFlags(),
cli.Int64Flag{
Name: "amt",
Usage: "(optional) number of satoshis to fulfill the " +
"invoice",
},
),
Action: actionDecorator(payInvoice),
}
func payInvoice(ctx *cli.Context) error {
args := ctx.Args()
var payReq string
switch {
case ctx.IsSet("pay_req"):
payReq = ctx.String("pay_req")
case args.Present():
payReq = args.First()
default:
return fmt.Errorf("pay_req argument missing")
}
req := &lnrpc.SendRequest{
PaymentRequest: payReq,
Amt: ctx.Int64("amt"),
DestCustomRecords: make(map[uint64][]byte),
}
return sendPaymentRequest(ctx, req)
}
var sendToRouteCommand = cli.Command{
Name: "sendtoroute",
Category: "Payments",
Usage: "Send a payment over a predefined route.",
Description: `
Send a payment over Lightning using a specific route. One must specify
the route to attempt and the payment hash. This command can even
be chained with the response to queryroutes or buildroute. This command
can be used to implement channel rebalancing by crafting a self-route,
or even atomic swaps using a self-route that crosses multiple chains.
There are three ways to specify a route:
* using the --routes parameter to manually specify a JSON encoded
route in the format of the return value of queryroutes or
buildroute:
(lncli sendtoroute --payment_hash=<pay_hash> --routes=<route>)
* passing the route as a positional argument:
(lncli sendtoroute --payment_hash=pay_hash <route>)
* or reading in the route from stdin, which can allow chaining the
response from queryroutes or buildroute, or even read in a file
with a pre-computed route:
(lncli queryroutes --args.. | lncli sendtoroute --payment_hash= -
notice the '-' at the end, which signals that lncli should read
the route in from stdin
`,
Flags: []cli.Flag{
cli.StringFlag{
Name: "payment_hash, pay_hash",
Usage: "the hash to use within the payment's HTLC",
},
cli.StringFlag{
Name: "routes, r",
Usage: "a json array string in the format of the response " +
"of queryroutes that denotes which routes to use",
},
},
Action: sendToRoute,
}
func sendToRoute(ctx *cli.Context) error {
// Show command help if no arguments provided.
if ctx.NArg() == 0 && ctx.NumFlags() == 0 {
cli.ShowCommandHelp(ctx, "sendtoroute")
return nil
}
args := ctx.Args()
var (
rHash []byte
err error
)
switch {
case ctx.IsSet("payment_hash"):
rHash, err = hex.DecodeString(ctx.String("payment_hash"))
case args.Present():
rHash, err = hex.DecodeString(args.First())
args = args.Tail()
default:
return fmt.Errorf("payment hash argument missing")
}
if err != nil {
return err
}
if len(rHash) != 32 {
return fmt.Errorf("payment hash must be exactly 32 "+
"bytes, is instead %d", len(rHash))
}
var jsonRoutes string
switch {
// The user is specifying the routes explicitly via the key word
// argument.
case ctx.IsSet("routes"):
jsonRoutes = ctx.String("routes")
// The user is specifying the routes as a positional argument.
case args.Present() && args.First() != "-":
jsonRoutes = args.First()
// The user is signalling that we should read stdin in order to parse
// the set of target routes.
case args.Present() && args.First() == "-":
b, err := ioutil.ReadAll(os.Stdin)
if err != nil {
return err
}
if len(b) == 0 {
return fmt.Errorf("queryroutes output is empty")
}
jsonRoutes = string(b)
}
// Try to parse the provided json both in the legacy QueryRoutes format
// that contains a list of routes and the single route BuildRoute
// format.
var route *lnrpc.Route
routes := &lnrpc.QueryRoutesResponse{}
err = jsonpb.UnmarshalString(jsonRoutes, routes)
if err == nil {
if len(routes.Routes) == 0 {
return fmt.Errorf("no routes provided")
}
if len(routes.Routes) != 1 {
return fmt.Errorf("expected a single route, but got %v",
len(routes.Routes))
}
route = routes.Routes[0]
} else {
routes := &routerrpc.BuildRouteResponse{}
err = jsonpb.UnmarshalString(jsonRoutes, routes)
if err != nil {
return fmt.Errorf("unable to unmarshal json string "+
"from incoming array of routes: %v", err)
}
route = routes.Route
}
req := &lnrpc.SendToRouteRequest{
PaymentHash: rHash,
Route: route,
}
return sendToRouteRequest(ctx, req)
}
func sendToRouteRequest(ctx *cli.Context, req *lnrpc.SendToRouteRequest) error {
client, cleanUp := getClient(ctx)
defer cleanUp()
paymentStream, err := client.SendToRoute(context.Background())
if err != nil {
return err
}
if err := paymentStream.Send(req); err != nil {
return err
}
resp, err := paymentStream.Recv()
if err != nil {
return err
}
printRespJSON(resp)
return nil
}
var addInvoiceCommand = cli.Command{
Name: "addinvoice",
Category: "Payments",
@ -2944,7 +2375,7 @@ func queryRoutes(ctx *cli.Context) error {
return fmt.Errorf("amt argument missing")
}
feeLimit, err := retrieveFeeLimit(ctx)
feeLimit, err := retrieveFeeLimitLegacy(ctx)
if err != nil {
return err
}
@ -2967,6 +2398,38 @@ func queryRoutes(ctx *cli.Context) error {
return nil
}
// retrieveFeeLimitLegacy retrieves the fee limit based on the different fee
// limit flags passed. This function will eventually disappear in favor of
// retrieveFeeLimit and the new payment rpc.
func retrieveFeeLimitLegacy(ctx *cli.Context) (*lnrpc.FeeLimit, error) {
switch {
case ctx.IsSet("fee_limit") && ctx.IsSet("fee_limit_percent"):
return nil, fmt.Errorf("either fee_limit or fee_limit_percent " +
"can be set, but not both")
case ctx.IsSet("fee_limit"):
return &lnrpc.FeeLimit{
Limit: &lnrpc.FeeLimit_Fixed{
Fixed: ctx.Int64("fee_limit"),
},
}, nil
case ctx.IsSet("fee_limit_percent"):
feeLimitPercent := ctx.Int64("fee_limit_percent")
if feeLimitPercent < 0 {
return nil, errors.New("negative fee limit percentage " +
"provided")
}
return &lnrpc.FeeLimit{
Limit: &lnrpc.FeeLimit_Percent{
Percent: feeLimitPercent,
},
}, nil
}
// Since the fee limit flags aren't required, we don't return an error
// if they're not set.
return nil, nil
}
var getNetworkInfoCommand = cli.Command{
Name: "getnetworkinfo",
Category: "Channels",

View File

@ -300,6 +300,7 @@ func main() {
verifyChanBackupCommand,
restoreChanBackupCommand,
bakeMacaroonCommand,
trackPaymentCommand,
}
// Add any extra commands determined by build flags.

View File

@ -1,10 +1,8 @@
// +build routerrpc
package main
import "github.com/urfave/cli"
// routerCommands will return nil for non-routerrpc builds.
// routerCommands returns a list of routerrpc commands.
func routerCommands() []cli.Command {
return []cli.Command{
queryMissionControlCommand,

View File

@ -1,10 +0,0 @@
// +build !routerrpc
package main
import "github.com/urfave/cli"
// routerCommands will return nil for non-routerrpc builds.
func routerCommands() []cli.Command {
return nil
}

View File

@ -16,7 +16,7 @@ COPY . /go/src/github.com/lightningnetwork/lnd
RUN cd /go/src/github.com/lightningnetwork/lnd \
&& make \
&& make install tags="signrpc walletrpc chainrpc invoicesrpc routerrpc"
&& make install tags="signrpc walletrpc chainrpc invoicesrpc"
# Start a new, final image to reduce size.
FROM alpine as final

View File

@ -1,40 +1,69 @@
package routerrpc
import (
"time"
"github.com/btcsuite/btcutil"
"github.com/lightningnetwork/lnd/macaroons"
"github.com/lightningnetwork/lnd/routing"
)
// RoutingConfig contains the configurable parameters that control routing.
type RoutingConfig struct {
// MinRouteProbability is the minimum required route success probability
// to attempt the payment.
MinRouteProbability float64 `long:"minrtprob" description:"Minimum required route success probability to attempt the payment"`
// Config is the main configuration file for the router RPC server. It contains
// all the items required for the router RPC server to carry out its duties.
// The fields with struct tags are meant to be parsed as normal configuration
// options, while if able to be populated, the latter fields MUST also be
// specified.
type Config struct {
RoutingConfig
// AprioriHopProbability is the assumed success probability of a hop in
// a route when no other information is available.
AprioriHopProbability float64 `long:"apriorihopprob" description:"Assumed success probability of a hop in a route when no other information is available."`
// RouterMacPath is the path for the router macaroon. If unspecified
// then we assume that the macaroon will be found under the network
// directory, named DefaultRouterMacFilename.
RouterMacPath string `long:"routermacaroonpath" description:"Path to the router macaroon"`
// AprioriWeight is a value in the range [0, 1] that defines to what
// extent historical results should be extrapolated to untried
// connections. Setting it to one will completely ignore historical
// results and always assume the configured a priori probability for
// untried connections. A value of zero will ignore the a priori
// probability completely and only base the probability on historical
// results, unless there are none available.
AprioriWeight float64 `long:"aprioriweight" description:"Weight of the a priori probability in success probability estimation. Valid values are in [0, 1]."`
// NetworkDir is the main network directory wherein the router rpc
// server will find the macaroon named DefaultRouterMacFilename.
NetworkDir string
// PenaltyHalfLife defines after how much time a penalized node or
// channel is back at 50% probability.
PenaltyHalfLife time.Duration `long:"penaltyhalflife" description:"Defines the duration after which a penalized node or channel is back at 50% probability"`
// MacService is the main macaroon service that we'll use to handle
// authentication for the Router rpc server.
MacService *macaroons.Service
// AttemptCost is the virtual cost in path finding weight units of
// executing a payment attempt that fails. It is used to trade off
// potentially better routes against their probability of succeeding.
AttemptCost btcutil.Amount `long:"attemptcost" description:"The (virtual) cost in sats of a failed payment attempt"`
// Router is the main channel router instance that backs this RPC
// server.
//
// TODO(roasbeef): make into pkg lvl interface?
//
// TODO(roasbeef): assumes router handles saving payment state
Router *routing.ChannelRouter
// MaxMcHistory defines the maximum number of payment results that
// are held on disk by mission control.
MaxMcHistory int `long:"maxmchistory" description:"the maximum number of payment results that are held on disk by mission control"`
// RouterBackend contains shared logic between this sub server and the
// main rpc server.
RouterBackend *RouterBackend
}
// DefaultConfig defines the config defaults.
func DefaultConfig() *Config {
defaultRoutingConfig := RoutingConfig{
AprioriHopProbability: routing.DefaultAprioriHopProbability,
AprioriWeight: routing.DefaultAprioriWeight,
MinRouteProbability: routing.DefaultMinRouteProbability,
PenaltyHalfLife: routing.DefaultPenaltyHalfLife,
AttemptCost: routing.DefaultPaymentAttemptPenalty.
ToSatoshis(),
MaxMcHistory: routing.DefaultMaxMcHistory,
}
return &Config{
RoutingConfig: defaultRoutingConfig,
}
}
// GetRoutingConfig returns the routing config based on this sub server config.
func GetRoutingConfig(cfg *Config) *RoutingConfig {
return &RoutingConfig{
AprioriHopProbability: cfg.AprioriHopProbability,
AprioriWeight: cfg.AprioriWeight,
MinRouteProbability: cfg.MinRouteProbability,
AttemptCost: cfg.AttemptCost,
PenaltyHalfLife: cfg.PenaltyHalfLife,
MaxMcHistory: cfg.MaxMcHistory,
}
}

View File

@ -1,71 +0,0 @@
// +build routerrpc
package routerrpc
import (
"github.com/lightningnetwork/lnd/macaroons"
"github.com/lightningnetwork/lnd/routing"
)
// Config is the main configuration file for the router RPC server. It contains
// all the items required for the router RPC server to carry out its duties.
// The fields with struct tags are meant to be parsed as normal configuration
// options, while if able to be populated, the latter fields MUST also be
// specified.
type Config struct {
RoutingConfig
// RouterMacPath is the path for the router macaroon. If unspecified
// then we assume that the macaroon will be found under the network
// directory, named DefaultRouterMacFilename.
RouterMacPath string `long:"routermacaroonpath" description:"Path to the router macaroon"`
// NetworkDir is the main network directory wherein the router rpc
// server will find the macaroon named DefaultRouterMacFilename.
NetworkDir string
// MacService is the main macaroon service that we'll use to handle
// authentication for the Router rpc server.
MacService *macaroons.Service
// Router is the main channel router instance that backs this RPC
// server.
//
// TODO(roasbeef): make into pkg lvl interface?
//
// TODO(roasbeef): assumes router handles saving payment state
Router *routing.ChannelRouter
// RouterBackend contains shared logic between this sub server and the
// main rpc server.
RouterBackend *RouterBackend
}
// DefaultConfig defines the config defaults.
func DefaultConfig() *Config {
defaultRoutingConfig := RoutingConfig{
AprioriHopProbability: routing.DefaultAprioriHopProbability,
AprioriWeight: routing.DefaultAprioriWeight,
MinRouteProbability: routing.DefaultMinRouteProbability,
PenaltyHalfLife: routing.DefaultPenaltyHalfLife,
AttemptCost: routing.DefaultPaymentAttemptPenalty.
ToSatoshis(),
MaxMcHistory: routing.DefaultMaxMcHistory,
}
return &Config{
RoutingConfig: defaultRoutingConfig,
}
}
// GetRoutingConfig returns the routing config based on this sub server config.
func GetRoutingConfig(cfg *Config) *RoutingConfig {
return &RoutingConfig{
AprioriHopProbability: cfg.AprioriHopProbability,
AprioriWeight: cfg.AprioriWeight,
MinRouteProbability: cfg.MinRouteProbability,
AttemptCost: cfg.AttemptCost,
PenaltyHalfLife: cfg.PenaltyHalfLife,
MaxMcHistory: cfg.MaxMcHistory,
}
}

View File

@ -1,28 +0,0 @@
// +build !routerrpc
package routerrpc
import "github.com/lightningnetwork/lnd/routing"
// Config is the default config struct for the package. When the build tag isn't
// specified, then we output a blank config.
type Config struct{}
// DefaultConfig defines the config defaults. Without the sub server enabled,
// there are no defaults to set.
func DefaultConfig() *Config {
return &Config{}
}
// GetRoutingConfig returns the routing config based on this sub server config.
func GetRoutingConfig(cfg *Config) *RoutingConfig {
return &RoutingConfig{
AprioriHopProbability: routing.DefaultAprioriHopProbability,
AprioriWeight: routing.DefaultAprioriWeight,
MinRouteProbability: routing.DefaultMinRouteProbability,
AttemptCost: routing.DefaultPaymentAttemptPenalty.
ToSatoshis(),
PenaltyHalfLife: routing.DefaultPenaltyHalfLife,
MaxMcHistory: routing.DefaultMaxMcHistory,
}
}

View File

@ -1,5 +1,3 @@
// +build routerrpc
package routerrpc
import (

View File

@ -467,10 +467,7 @@ type PaymentStatus struct {
//The pre-image of the payment when state is SUCCEEDED.
Preimage []byte `protobuf:"bytes,2,opt,name=preimage,proto3" json:"preimage,omitempty"`
//*
//The taken route when state is SUCCEEDED.
Route *lnrpc.Route `protobuf:"bytes,3,opt,name=route,proto3" json:"route,omitempty"`
//*
//The HTLCs made in attempt to settle the payment [EXPERIMENTAL].
//The HTLCs made in attempt to settle the payment.
Htlcs []*lnrpc.HTLCAttempt `protobuf:"bytes,4,rep,name=htlcs,proto3" json:"htlcs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -516,13 +513,6 @@ func (m *PaymentStatus) GetPreimage() []byte {
return nil
}
func (m *PaymentStatus) GetRoute() *lnrpc.Route {
if m != nil {
return m.Route
}
return nil
}
func (m *PaymentStatus) GetHtlcs() []*lnrpc.HTLCAttempt {
if m != nil {
return m.Htlcs
@ -1723,142 +1713,142 @@ func init() {
func init() { proto.RegisterFile("routerrpc/router.proto", fileDescriptor_7a0613f69d37b0a5) }
var fileDescriptor_7a0613f69d37b0a5 = []byte{
// 2155 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xdd, 0x72, 0xdb, 0xc6,
0x15, 0x36, 0x28, 0x50, 0x22, 0x0f, 0x7f, 0x04, 0xad, 0x1c, 0x99, 0xa5, 0xec, 0x44, 0x41, 0x13,
0x9b, 0xe3, 0x3a, 0x92, 0xa3, 0x76, 0x5a, 0x4f, 0xdb, 0xa4, 0x43, 0x91, 0x90, 0x09, 0x99, 0x02,
0x98, 0x25, 0xe4, 0x9f, 0xfa, 0x62, 0x07, 0x22, 0x97, 0x22, 0x2a, 0x10, 0x60, 0x81, 0xa5, 0x3d,
0xba, 0xec, 0xf4, 0xae, 0x2f, 0xd2, 0x5e, 0xf5, 0x09, 0xfa, 0x2e, 0xbd, 0xed, 0x13, 0x74, 0x7a,
0xd9, 0xd9, 0xc5, 0x82, 0x04, 0x29, 0xca, 0xc9, 0x8d, 0x4d, 0x7c, 0xe7, 0xdb, 0xb3, 0xe7, 0x77,
0xcf, 0xae, 0x60, 0x2f, 0x0a, 0x67, 0x8c, 0x46, 0xd1, 0x74, 0x70, 0x94, 0xfc, 0x3a, 0x9c, 0x46,
0x21, 0x0b, 0x51, 0x71, 0x8e, 0xd7, 0x8b, 0xd1, 0x74, 0x90, 0xa0, 0xfa, 0xff, 0xf2, 0x80, 0xfa,
0x34, 0x18, 0xf6, 0xdc, 0x9b, 0x09, 0x0d, 0x18, 0xa6, 0x7f, 0x9e, 0xd1, 0x98, 0x21, 0x04, 0xea,
0x90, 0xc6, 0xac, 0xa6, 0x1c, 0x28, 0x8d, 0x32, 0x16, 0xbf, 0x91, 0x06, 0x1b, 0xee, 0x84, 0xd5,
0x72, 0x07, 0x4a, 0x63, 0x03, 0xf3, 0x9f, 0xe8, 0x67, 0x50, 0x70, 0x27, 0x8c, 0x4c, 0x62, 0x97,
0xd5, 0xca, 0x02, 0xde, 0x72, 0x27, 0xec, 0x3c, 0x76, 0x19, 0xfa, 0x12, 0xca, 0xd3, 0x44, 0x25,
0x19, 0xbb, 0xf1, 0xb8, 0xb6, 0x21, 0x14, 0x95, 0x24, 0xd6, 0x71, 0xe3, 0x31, 0x6a, 0x80, 0x36,
0xf2, 0x02, 0xd7, 0x27, 0x03, 0x9f, 0x7d, 0x20, 0x43, 0xea, 0x33, 0xb7, 0xa6, 0x1e, 0x28, 0x8d,
0x3c, 0xae, 0x0a, 0xbc, 0xe5, 0xb3, 0x0f, 0x6d, 0x8e, 0xa2, 0x27, 0xb0, 0x9d, 0x2a, 0x8b, 0x12,
0x03, 0x6b, 0xf9, 0x03, 0xa5, 0x51, 0xc4, 0xd5, 0xe9, 0xb2, 0xd9, 0x4f, 0x60, 0x9b, 0x79, 0x13,
0x1a, 0xce, 0x18, 0x89, 0xe9, 0x20, 0x0c, 0x86, 0x71, 0x6d, 0x33, 0xd1, 0x28, 0xe1, 0x7e, 0x82,
0x22, 0x1d, 0x2a, 0x23, 0x4a, 0x89, 0xef, 0x4d, 0x3c, 0x46, 0xb8, 0xf9, 0x5b, 0xc2, 0xfc, 0xd2,
0x88, 0xd2, 0x2e, 0xc7, 0xfa, 0x2e, 0x43, 0x5f, 0x41, 0x75, 0xc1, 0x11, 0x3e, 0x56, 0x04, 0xa9,
0x9c, 0x92, 0x84, 0xa3, 0xcf, 0x40, 0x0b, 0x67, 0xec, 0x2a, 0xf4, 0x82, 0x2b, 0x32, 0x18, 0xbb,
0x01, 0xf1, 0x86, 0xb5, 0xc2, 0x81, 0xd2, 0x50, 0x4f, 0x72, 0xcf, 0x15, 0x5c, 0x4d, 0x65, 0xad,
0xb1, 0x1b, 0x98, 0x43, 0xf4, 0x18, 0xb6, 0x7d, 0x37, 0x66, 0x64, 0x1c, 0x4e, 0xc9, 0x74, 0x76,
0x79, 0x4d, 0x6f, 0x6a, 0x55, 0x11, 0x99, 0x0a, 0x87, 0x3b, 0xe1, 0xb4, 0x27, 0x40, 0xf4, 0x08,
0x40, 0x44, 0x45, 0x6c, 0x5e, 0x2b, 0x0a, 0x1f, 0x8a, 0x1c, 0x11, 0x1b, 0xa3, 0x6f, 0xa1, 0x24,
0xb2, 0x49, 0xc6, 0x5e, 0xc0, 0xe2, 0x1a, 0x1c, 0x6c, 0x34, 0x4a, 0xc7, 0xda, 0xa1, 0x1f, 0xf0,
0xc4, 0x62, 0x2e, 0xe9, 0x78, 0x01, 0xc3, 0x10, 0xa5, 0x3f, 0x63, 0x34, 0x84, 0x5d, 0x9e, 0x45,
0x32, 0x98, 0xc5, 0x2c, 0x9c, 0x90, 0x88, 0x0e, 0xc2, 0x68, 0x18, 0xd7, 0x4a, 0x62, 0xe9, 0xaf,
0x0e, 0xe7, 0xc5, 0x71, 0x78, 0xbb, 0x1a, 0x0e, 0xdb, 0x34, 0x66, 0x2d, 0xb1, 0x0e, 0x27, 0xcb,
0x8c, 0x80, 0x45, 0x37, 0x78, 0x67, 0xb8, 0x8a, 0xa3, 0x67, 0x80, 0x5c, 0xdf, 0x0f, 0x3f, 0x92,
0x98, 0xfa, 0x23, 0x22, 0xb3, 0x53, 0xdb, 0x3e, 0x50, 0x1a, 0x05, 0xac, 0x09, 0x49, 0x9f, 0xfa,
0x23, 0xa9, 0x1e, 0xfd, 0x1a, 0x2a, 0xc2, 0xa6, 0x11, 0x75, 0xd9, 0x2c, 0xa2, 0x71, 0x4d, 0x3b,
0xd8, 0x68, 0x54, 0x8f, 0x77, 0xa4, 0x23, 0xa7, 0x09, 0x7c, 0xe2, 0x31, 0x5c, 0xe6, 0x3c, 0xf9,
0x1d, 0xd7, 0xdb, 0xb0, 0xb7, 0xde, 0x24, 0x5e, 0xa3, 0x3c, 0xa6, 0xbc, 0x6c, 0x55, 0xcc, 0x7f,
0xa2, 0xfb, 0x90, 0xff, 0xe0, 0xfa, 0x33, 0x2a, 0xea, 0xb6, 0x8c, 0x93, 0x8f, 0xdf, 0xe6, 0x5e,
0x28, 0xfa, 0x0b, 0xd8, 0x75, 0x22, 0x77, 0x70, 0xbd, 0x52, 0xfa, 0xab, 0x95, 0xab, 0xdc, 0xaa,
0x5c, 0xfd, 0x1f, 0x0a, 0x54, 0xe4, 0xaa, 0x3e, 0x73, 0xd9, 0x2c, 0x46, 0xdf, 0x40, 0x3e, 0x66,
0x2e, 0xa3, 0x82, 0x5d, 0x3d, 0x7e, 0x90, 0x89, 0x67, 0x86, 0x48, 0x71, 0xc2, 0x42, 0x75, 0x28,
0x4c, 0x23, 0xea, 0x4d, 0xdc, 0xab, 0xd4, 0xae, 0xf9, 0x37, 0xd2, 0x21, 0x2f, 0x16, 0x8b, 0x96,
0x29, 0x1d, 0x97, 0xb3, 0x59, 0xc5, 0x89, 0x08, 0x35, 0x20, 0x3f, 0x66, 0xfe, 0x20, 0xae, 0xa9,
0x22, 0x7d, 0x48, 0x72, 0x3a, 0x4e, 0xb7, 0xd5, 0x64, 0x8c, 0x4e, 0xa6, 0x0c, 0x27, 0x04, 0xfd,
0x7b, 0xd8, 0x16, 0x2b, 0x4f, 0x29, 0xfd, 0x54, 0x6f, 0x3f, 0x00, 0xde, 0xb9, 0xa2, 0x13, 0x92,
0xfe, 0xde, 0x74, 0x27, 0xbc, 0x09, 0xf4, 0x21, 0x68, 0x8b, 0xf5, 0xf1, 0x34, 0x0c, 0x62, 0xbe,
0xbb, 0xc6, 0xcd, 0xe0, 0x15, 0xcf, 0x1b, 0x44, 0xb4, 0x86, 0x22, 0x56, 0x55, 0x25, 0x7e, 0x4a,
0xa9, 0x68, 0x8e, 0xc7, 0x49, 0x3f, 0x12, 0x3f, 0x1c, 0x5c, 0xf3, 0x0e, 0x77, 0x6f, 0xa4, 0xfa,
0x0a, 0x87, 0xbb, 0xe1, 0xe0, 0xba, 0xcd, 0x41, 0xfd, 0x7d, 0x72, 0x08, 0x39, 0x61, 0xe2, 0xe5,
0x4f, 0xce, 0xc4, 0x22, 0x58, 0xb9, 0x3b, 0x83, 0xa5, 0xbf, 0x87, 0xdd, 0x25, 0xe5, 0xd2, 0x8b,
0x6c, 0x0e, 0x94, 0x95, 0x1c, 0x34, 0x60, 0x6b, 0xe4, 0x7a, 0xfe, 0x2c, 0x4a, 0x15, 0x57, 0xd3,
0x92, 0x4c, 0x50, 0x9c, 0x8a, 0xf5, 0x87, 0x50, 0xc7, 0x34, 0xa6, 0xec, 0xdc, 0x8b, 0x63, 0x2f,
0x0c, 0x5a, 0x61, 0xc0, 0xa2, 0xd0, 0x97, 0x1e, 0xe8, 0x8f, 0x60, 0x7f, 0xad, 0x34, 0x31, 0x81,
0x2f, 0xfe, 0x61, 0x46, 0xa3, 0x9b, 0xf5, 0x8b, 0x7f, 0x80, 0xfd, 0xb5, 0x52, 0x69, 0xff, 0x33,
0xc8, 0x4f, 0x5d, 0x2f, 0x8a, 0x6b, 0x39, 0x51, 0x03, 0x7b, 0x4b, 0x25, 0xe7, 0x45, 0x1d, 0x2f,
0x66, 0x61, 0x74, 0x83, 0x13, 0xd2, 0x99, 0x5a, 0x50, 0xb4, 0x9c, 0xfe, 0x37, 0x05, 0x4a, 0x19,
0x21, 0xda, 0x87, 0x62, 0x10, 0x0e, 0x29, 0x19, 0x45, 0xe1, 0x24, 0x0d, 0x02, 0x07, 0x4e, 0xa3,
0x70, 0xc2, 0x6b, 0x42, 0x08, 0x59, 0x28, 0x6b, 0x74, 0x93, 0x7f, 0x3a, 0x21, 0xfa, 0x06, 0xb6,
0xc6, 0x89, 0x02, 0x71, 0x6c, 0x96, 0x8e, 0x77, 0x57, 0xf6, 0x6e, 0xbb, 0xcc, 0xc5, 0x29, 0xe7,
0x4c, 0x2d, 0x6c, 0x68, 0xea, 0x99, 0x5a, 0x50, 0xb5, 0xfc, 0x99, 0x5a, 0xc8, 0x6b, 0x9b, 0x67,
0x6a, 0x61, 0x53, 0xdb, 0xd2, 0xff, 0xa3, 0x40, 0x21, 0x65, 0x73, 0x4b, 0x78, 0x48, 0x09, 0xaf,
0x0b, 0x59, 0x4c, 0x05, 0x0e, 0x38, 0xde, 0x84, 0xa2, 0x03, 0x28, 0x0b, 0xe1, 0x72, 0x89, 0x02,
0xc7, 0x9a, 0xa2, 0x4c, 0xc5, 0x79, 0x9e, 0x32, 0x44, 0x3d, 0xaa, 0xf2, 0x3c, 0x4f, 0x28, 0xe9,
0x48, 0x8a, 0x67, 0x83, 0x01, 0x8d, 0xe3, 0x64, 0x97, 0x7c, 0x42, 0x91, 0x98, 0xd8, 0xe8, 0x31,
0x6c, 0xa7, 0x94, 0x74, 0xaf, 0xcd, 0xa4, 0x5e, 0x25, 0x2c, 0xb7, 0x6b, 0x80, 0x96, 0xe5, 0x4d,
0x16, 0x13, 0xa4, 0xba, 0x20, 0xf2, 0x4d, 0x13, 0xe7, 0xf5, 0x3f, 0xc1, 0x03, 0x91, 0xca, 0x5e,
0x14, 0x5e, 0xba, 0x97, 0x9e, 0xef, 0xb1, 0x9b, 0xb4, 0xc8, 0xb9, 0xe3, 0x51, 0x38, 0x21, 0x3c,
0xb6, 0x69, 0x0a, 0x38, 0x60, 0x85, 0x43, 0xca, 0x53, 0xc0, 0xc2, 0x44, 0x24, 0x53, 0xc0, 0x42,
0x21, 0xc8, 0x4e, 0xde, 0x8d, 0xa5, 0xc9, 0xab, 0x5f, 0x43, 0xed, 0xf6, 0x5e, 0xb2, 0x66, 0x0e,
0xa0, 0x34, 0x5d, 0xc0, 0x62, 0x3b, 0x05, 0x67, 0xa1, 0x6c, 0x6e, 0x73, 0x3f, 0x9e, 0x5b, 0xfd,
0xef, 0x0a, 0xec, 0x9c, 0xcc, 0x3c, 0x7f, 0xb8, 0xd4, 0xb8, 0x59, 0xeb, 0x94, 0xe5, 0x7b, 0xc1,
0xba, 0xa1, 0x9f, 0x5b, 0x3b, 0xf4, 0xd7, 0x0d, 0xd6, 0x8d, 0x3b, 0x07, 0xeb, 0x17, 0x50, 0x5a,
0xcc, 0xd4, 0xe4, 0x5c, 0x2c, 0x63, 0x18, 0xa7, 0x03, 0x35, 0xd6, 0x5f, 0x00, 0xca, 0x1a, 0x2a,
0x03, 0x32, 0x3f, 0x3f, 0x94, 0xbb, 0xcf, 0x8f, 0x87, 0x50, 0xef, 0xcf, 0x2e, 0xe3, 0x41, 0xe4,
0x5d, 0xd2, 0x0e, 0xf3, 0x07, 0xc6, 0x07, 0x1a, 0xb0, 0x38, 0xed, 0xd2, 0xff, 0xaa, 0x50, 0x9c,
0xa3, 0xe8, 0x10, 0x76, 0xbd, 0x60, 0x10, 0x4e, 0x52, 0xa3, 0x03, 0xea, 0x73, 0xbb, 0x93, 0x79,
0xb4, 0x93, 0x8a, 0x5a, 0x89, 0xc4, 0x1c, 0x72, 0xfe, 0x92, 0x93, 0x92, 0x9f, 0x4b, 0xf8, 0x59,
0x1f, 0x13, 0x7e, 0x03, 0xb4, 0xb9, 0x7e, 0x7e, 0xc0, 0xcf, 0x83, 0x82, 0xab, 0x29, 0xce, 0x8d,
0x49, 0x98, 0x73, 0xcd, 0x29, 0x53, 0x4d, 0x98, 0x29, 0x2e, 0x99, 0x5f, 0x42, 0x99, 0xf7, 0x43,
0xcc, 0xdc, 0xc9, 0x94, 0x04, 0xb1, 0xe8, 0x0b, 0x15, 0x97, 0xe6, 0x98, 0x15, 0xa3, 0xef, 0x00,
0x28, 0xf7, 0x8f, 0xb0, 0x9b, 0x29, 0x15, 0x2d, 0x51, 0x3d, 0xfe, 0x3c, 0x53, 0x18, 0xf3, 0x00,
0x1c, 0x8a, 0x7f, 0x9d, 0x9b, 0x29, 0xc5, 0x45, 0x9a, 0xfe, 0x44, 0xdf, 0x43, 0x65, 0x14, 0x46,
0x1f, 0xdd, 0x68, 0x48, 0x04, 0x28, 0x8f, 0x8d, 0xec, 0x94, 0x3c, 0x4d, 0xe4, 0x62, 0x79, 0xe7,
0x1e, 0x2e, 0x8f, 0x32, 0xdf, 0xe8, 0x15, 0xa0, 0x74, 0xbd, 0xe8, 0xf2, 0x44, 0x49, 0x41, 0x28,
0xd9, 0xbf, 0xad, 0x84, 0x1f, 0xd2, 0xa9, 0x22, 0x6d, 0xb4, 0x82, 0xa1, 0xdf, 0x41, 0x39, 0xa6,
0x8c, 0xf9, 0x54, 0xaa, 0x29, 0x0a, 0x35, 0x7b, 0x4b, 0x37, 0x20, 0x2e, 0x4e, 0x35, 0x94, 0xe2,
0xc5, 0x27, 0x3a, 0x81, 0x6d, 0xdf, 0x0b, 0xae, 0xb3, 0x66, 0x80, 0x58, 0x5f, 0xcb, 0xac, 0xef,
0x7a, 0xc1, 0x75, 0xd6, 0x86, 0x8a, 0x9f, 0x05, 0xf4, 0xdf, 0x43, 0x71, 0x1e, 0x25, 0x54, 0x82,
0xad, 0x0b, 0xeb, 0x95, 0x65, 0xbf, 0xb1, 0xb4, 0x7b, 0xa8, 0x00, 0x6a, 0xdf, 0xb0, 0xda, 0x9a,
0xc2, 0x61, 0x6c, 0xb4, 0x0c, 0xf3, 0xb5, 0xa1, 0xe5, 0xf8, 0xc7, 0xa9, 0x8d, 0xdf, 0x34, 0x71,
0x5b, 0xdb, 0x38, 0xd9, 0x82, 0xbc, 0xd8, 0x57, 0xff, 0x97, 0x02, 0x05, 0x91, 0xc1, 0x60, 0x14,
0xa2, 0x5f, 0xc0, 0xbc, 0xb8, 0xc4, 0xe1, 0xc6, 0x07, 0xae, 0xa8, 0xba, 0x0a, 0x9e, 0x17, 0x8c,
0x23, 0x71, 0x4e, 0x9e, 0x97, 0xc6, 0x9c, 0x9c, 0x4b, 0xc8, 0xa9, 0x60, 0x4e, 0x7e, 0x9a, 0xd1,
0xbc, 0x74, 0xe4, 0xa8, 0x78, 0x3b, 0x15, 0xa4, 0x27, 0xec, 0xd3, 0x8c, 0xe2, 0xa5, 0x93, 0x58,
0xc5, 0xdb, 0xa9, 0x40, 0x72, 0xf5, 0xdf, 0x40, 0x39, 0x9b, 0x73, 0xf4, 0x04, 0x54, 0x2f, 0x18,
0x85, 0xb2, 0x11, 0x77, 0x57, 0x8a, 0x8b, 0x3b, 0x89, 0x05, 0x41, 0x47, 0xa0, 0xad, 0xe6, 0x59,
0xaf, 0x40, 0x29, 0x93, 0x34, 0xfd, 0xdf, 0x0a, 0x54, 0x96, 0x92, 0xf0, 0x93, 0xb5, 0xa3, 0xef,
0xa0, 0xfc, 0xd1, 0x8b, 0x28, 0xc9, 0x8e, 0xff, 0xea, 0x71, 0x7d, 0x79, 0xfc, 0xa7, 0xff, 0xb7,
0xc2, 0x21, 0xc5, 0x25, 0xce, 0x97, 0x00, 0xfa, 0x03, 0x54, 0xe5, 0x4a, 0x32, 0xa4, 0xcc, 0xf5,
0x7c, 0x11, 0xaa, 0xea, 0x52, 0x79, 0x48, 0x6e, 0x5b, 0xc8, 0x71, 0x65, 0x94, 0xfd, 0x44, 0x5f,
0x2f, 0x14, 0xc4, 0x2c, 0xf2, 0x82, 0x2b, 0x11, 0xbf, 0xe2, 0x9c, 0xd6, 0x17, 0xe0, 0xd3, 0x7f,
0x2a, 0x50, 0xce, 0x5e, 0x2c, 0x51, 0x05, 0x8a, 0xa6, 0x45, 0x4e, 0xbb, 0xe6, 0xcb, 0x8e, 0xa3,
0xdd, 0xe3, 0x9f, 0xfd, 0x8b, 0x56, 0xcb, 0x30, 0xda, 0x06, 0x2f, 0x27, 0x04, 0xd5, 0xd3, 0xa6,
0xd9, 0x35, 0xda, 0xc4, 0x31, 0xcf, 0x0d, 0xfb, 0xc2, 0xd1, 0x72, 0x68, 0x17, 0xb6, 0x25, 0x66,
0xd9, 0x04, 0xdb, 0x17, 0x8e, 0xa1, 0x6d, 0x20, 0x0d, 0xca, 0x12, 0x34, 0x30, 0xb6, 0xb1, 0xa6,
0xa2, 0xaf, 0xe0, 0x40, 0x22, 0xa6, 0xd5, 0xb2, 0x31, 0x36, 0x5a, 0x0e, 0xe9, 0x35, 0xdf, 0x9d,
0x1b, 0x96, 0x43, 0xda, 0x86, 0xd3, 0x34, 0xbb, 0x7d, 0x2d, 0x8f, 0xbe, 0x80, 0xfd, 0x39, 0xab,
0x7f, 0x71, 0x7a, 0x6a, 0xb6, 0x4c, 0x4e, 0x38, 0x69, 0x76, 0x9b, 0x56, 0xcb, 0xd0, 0x36, 0x9f,
0xfe, 0x45, 0x85, 0xca, 0x92, 0xe3, 0xcb, 0x95, 0x5f, 0x81, 0xa2, 0x65, 0x4b, 0x7d, 0x9a, 0xc2,
0xcd, 0xb0, 0x2d, 0xd3, 0xb6, 0x48, 0xdb, 0x68, 0xd9, 0x6d, 0xde, 0x03, 0x9f, 0xc1, 0x4e, 0xd7,
0xb4, 0x5e, 0x11, 0xcb, 0x76, 0x88, 0xd1, 0x35, 0x5f, 0x9a, 0x27, 0x5d, 0x6e, 0xef, 0x7d, 0xd0,
0x6c, 0x8b, 0xb4, 0x3a, 0x4d, 0xd3, 0x9a, 0xbb, 0xa6, 0x72, 0x94, 0x5f, 0x85, 0x89, 0xf1, 0x96,
0x47, 0xa0, 0x4f, 0xce, 0x9b, 0x6f, 0xb5, 0x3c, 0xaa, 0xc1, 0xfd, 0xf5, 0xc6, 0xa1, 0x3d, 0x40,
0xdc, 0xb9, 0xf3, 0x5e, 0xd7, 0x70, 0x0c, 0x92, 0xf6, 0xda, 0x16, 0x0f, 0x91, 0xd0, 0xd3, 0x6c,
0xb7, 0x49, 0xe2, 0x9e, 0x56, 0xe0, 0x96, 0x48, 0x46, 0x9f, 0xb4, 0xcd, 0x7e, 0xf3, 0x84, 0xc3,
0x45, 0xbe, 0xa7, 0x69, 0xbd, 0xb6, 0xcd, 0x96, 0x41, 0x5a, 0x5c, 0x2d, 0x47, 0x81, 0x93, 0x53,
0xf4, 0xc2, 0x6a, 0x1b, 0xb8, 0xd7, 0x34, 0xdb, 0x5a, 0x09, 0xed, 0xc3, 0x83, 0x14, 0x36, 0xde,
0xf6, 0x4c, 0xfc, 0x8e, 0x38, 0xb6, 0x4d, 0xfa, 0xb6, 0x6d, 0x69, 0xe5, 0xac, 0x26, 0xee, 0xad,
0xdd, 0x33, 0x2c, 0xad, 0x82, 0x1e, 0xc0, 0xee, 0x79, 0xaf, 0x47, 0x52, 0x49, 0xea, 0x6c, 0x95,
0xd3, 0x9b, 0xed, 0x36, 0x36, 0xfa, 0x7d, 0x72, 0x6e, 0xf6, 0xcf, 0x9b, 0x4e, 0xab, 0xa3, 0x6d,
0x73, 0x97, 0xfa, 0x86, 0x43, 0x1c, 0xdb, 0x69, 0x76, 0x17, 0xb8, 0xc6, 0x0d, 0x5a, 0xe0, 0x7c,
0xd3, 0xae, 0xfd, 0x46, 0xdb, 0xe1, 0x01, 0xe7, 0xb0, 0xfd, 0x5a, 0x9a, 0x88, 0xb8, 0xef, 0x32,
0x3d, 0xe9, 0x9e, 0xda, 0x2e, 0x07, 0x4d, 0xeb, 0x75, 0xb3, 0x6b, 0xb6, 0xc9, 0x2b, 0xe3, 0x9d,
0x38, 0xab, 0xee, 0x73, 0x30, 0xb1, 0x8c, 0xf4, 0xb0, 0xfd, 0x92, 0x1b, 0xa2, 0x7d, 0xc6, 0x2b,
0xae, 0x65, 0xe2, 0xd6, 0x45, 0xb7, 0x89, 0x65, 0x71, 0xed, 0x1d, 0xff, 0x75, 0x13, 0x36, 0xc5,
0x64, 0x8d, 0x50, 0x87, 0x37, 0xec, 0xfc, 0x9d, 0x89, 0x1e, 0x7d, 0xf2, 0xfd, 0x59, 0xaf, 0xad,
0x7f, 0x4e, 0xcd, 0xe2, 0xe7, 0x0a, 0x3a, 0x83, 0x72, 0xf6, 0x15, 0x87, 0xb2, 0x63, 0x69, 0xcd,
0xf3, 0xee, 0x93, 0xba, 0x5e, 0x81, 0x66, 0xc4, 0xcc, 0x9b, 0xf0, 0x97, 0x9a, 0x7c, 0xf4, 0xa0,
0x7a, 0x86, 0xbf, 0xf2, 0x92, 0xaa, 0xef, 0xaf, 0x95, 0xc9, 0xab, 0x45, 0x37, 0x71, 0x51, 0x3e,
0x3b, 0x6e, 0xb9, 0xb8, 0xfc, 0xd6, 0xa9, 0x7f, 0x7e, 0x97, 0x58, 0x6a, 0x1b, 0xc2, 0xee, 0x9a,
0x97, 0x04, 0xfa, 0x3a, 0x6b, 0xc1, 0x9d, 0xef, 0x90, 0xfa, 0xe3, 0x1f, 0xa3, 0x2d, 0x76, 0x59,
0xf3, 0xe4, 0x58, 0xda, 0xe5, 0xee, 0x07, 0xcb, 0xd2, 0x2e, 0x9f, 0x7a, 0xb9, 0xbc, 0x07, 0x6d,
0xf5, 0x86, 0x8a, 0xf4, 0xd5, 0xb5, 0xb7, 0xaf, 0xca, 0xf5, 0x9f, 0x7f, 0x92, 0x23, 0x95, 0x9b,
0x00, 0x8b, 0x7b, 0x1e, 0x7a, 0x98, 0x59, 0x72, 0xeb, 0x9e, 0x5a, 0x7f, 0x74, 0x87, 0x54, 0xaa,
0x72, 0x60, 0x77, 0xcd, 0xc5, 0x6f, 0x29, 0x1a, 0x77, 0x5f, 0x0c, 0xeb, 0xf7, 0xd7, 0xdd, 0x8f,
0x9e, 0x2b, 0x27, 0xdf, 0xfe, 0xf1, 0xe8, 0xca, 0x63, 0xe3, 0xd9, 0xe5, 0xe1, 0x20, 0x9c, 0x1c,
0xf9, 0xde, 0xd5, 0x98, 0x05, 0x5e, 0x70, 0x15, 0x50, 0xf6, 0x31, 0x8c, 0xae, 0x8f, 0xfc, 0x60,
0x78, 0x24, 0x86, 0xcd, 0xd1, 0x7c, 0xf9, 0xe5, 0xa6, 0xf8, 0x5b, 0xdd, 0x2f, 0xff, 0x1f, 0x00,
0x00, 0xff, 0xff, 0xe9, 0x0c, 0xc3, 0x27, 0xdb, 0x13, 0x00, 0x00,
// 2150 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xdd, 0x72, 0xdb, 0xb8,
0x15, 0x0e, 0x6d, 0xca, 0x96, 0x8e, 0x7e, 0x4c, 0x43, 0x59, 0x47, 0x95, 0x93, 0x5d, 0x2d, 0xbb,
0x9b, 0x68, 0xd2, 0xac, 0x9d, 0x75, 0x3b, 0x6d, 0xa6, 0xed, 0x6e, 0x47, 0x96, 0xe8, 0x88, 0x8e,
0x4c, 0x6a, 0x21, 0x3a, 0x3f, 0xcd, 0x05, 0x86, 0x96, 0x20, 0x8b, 0x35, 0x45, 0xaa, 0x24, 0x94,
0x8c, 0x2f, 0x3b, 0xbd, 0xeb, 0x8b, 0xf4, 0xae, 0x4f, 0xd0, 0x77, 0xe9, 0x6d, 0x9f, 0xa0, 0xd3,
0xcb, 0x1d, 0x80, 0xa0, 0x44, 0xd9, 0x72, 0x76, 0x6f, 0x12, 0xf1, 0x3b, 0x1f, 0x0e, 0xce, 0x39,
0xf8, 0x80, 0x03, 0x18, 0xf6, 0xa2, 0x70, 0xce, 0x68, 0x14, 0xcd, 0x86, 0x87, 0xc9, 0xaf, 0x83,
0x59, 0x14, 0xb2, 0x10, 0x15, 0x16, 0x78, 0xbd, 0x10, 0xcd, 0x86, 0x09, 0xaa, 0xff, 0x3f, 0x07,
0x68, 0x40, 0x83, 0x51, 0xdf, 0xbd, 0x9e, 0xd2, 0x80, 0x61, 0xfa, 0xd7, 0x39, 0x8d, 0x19, 0x42,
0xa0, 0x8e, 0x68, 0xcc, 0x6a, 0x4a, 0x43, 0x69, 0x96, 0xb0, 0xf8, 0x8d, 0x34, 0xd8, 0x74, 0xa7,
0xac, 0xb6, 0xd1, 0x50, 0x9a, 0x9b, 0x98, 0xff, 0x44, 0xbf, 0x80, 0xbc, 0x3b, 0x65, 0x64, 0x1a,
0xbb, 0xac, 0x56, 0x12, 0xf0, 0xb6, 0x3b, 0x65, 0x67, 0xb1, 0xcb, 0xd0, 0x97, 0x50, 0x9a, 0x25,
0x2e, 0xc9, 0xc4, 0x8d, 0x27, 0xb5, 0x4d, 0xe1, 0xa8, 0x28, 0xb1, 0xae, 0x1b, 0x4f, 0x50, 0x13,
0xb4, 0xb1, 0x17, 0xb8, 0x3e, 0x19, 0xfa, 0xec, 0x03, 0x19, 0x51, 0x9f, 0xb9, 0x35, 0xb5, 0xa1,
0x34, 0x73, 0xb8, 0x22, 0xf0, 0xb6, 0xcf, 0x3e, 0x74, 0x38, 0x8a, 0x9e, 0xc0, 0x4e, 0xea, 0x2c,
0x4a, 0x02, 0xac, 0xe5, 0x1a, 0x4a, 0xb3, 0x80, 0x2b, 0xb3, 0xd5, 0xb0, 0x9f, 0xc0, 0x0e, 0xf3,
0xa6, 0x34, 0x9c, 0x33, 0x12, 0xd3, 0x61, 0x18, 0x8c, 0xe2, 0xda, 0x56, 0xe2, 0x51, 0xc2, 0x83,
0x04, 0x45, 0x3a, 0x94, 0xc7, 0x94, 0x12, 0xdf, 0x9b, 0x7a, 0x8c, 0xf0, 0xf0, 0xb7, 0x45, 0xf8,
0xc5, 0x31, 0xa5, 0x3d, 0x8e, 0x0d, 0x5c, 0x86, 0xbe, 0x82, 0xca, 0x92, 0x23, 0x72, 0x2c, 0x0b,
0x52, 0x29, 0x25, 0x89, 0x44, 0x9f, 0x81, 0x16, 0xce, 0xd9, 0x65, 0xe8, 0x05, 0x97, 0x64, 0x38,
0x71, 0x03, 0xe2, 0x8d, 0x6a, 0xf9, 0x86, 0xd2, 0x54, 0x8f, 0x37, 0x9e, 0x2b, 0xb8, 0x92, 0xda,
0xda, 0x13, 0x37, 0x30, 0x47, 0xe8, 0x31, 0xec, 0xf8, 0x6e, 0xcc, 0xc8, 0x24, 0x9c, 0x91, 0xd9,
0xfc, 0xe2, 0x8a, 0x5e, 0xd7, 0x2a, 0xa2, 0x32, 0x65, 0x0e, 0x77, 0xc3, 0x59, 0x5f, 0x80, 0xe8,
0x11, 0x80, 0xa8, 0x8a, 0x98, 0xbc, 0x56, 0x10, 0x39, 0x14, 0x38, 0x22, 0x26, 0x46, 0xdf, 0x42,
0x51, 0xac, 0x26, 0x99, 0x78, 0x01, 0x8b, 0x6b, 0xd0, 0xd8, 0x6c, 0x16, 0x8f, 0xb4, 0x03, 0x3f,
0xe0, 0x0b, 0x8b, 0xb9, 0xa5, 0xeb, 0x05, 0x0c, 0x43, 0x94, 0xfe, 0x8c, 0xd1, 0x08, 0xaa, 0x7c,
0x15, 0xc9, 0x70, 0x1e, 0xb3, 0x70, 0x4a, 0x22, 0x3a, 0x0c, 0xa3, 0x51, 0x5c, 0x2b, 0x8a, 0xa1,
0xbf, 0x39, 0x58, 0x88, 0xe3, 0xe0, 0xb6, 0x1a, 0x0e, 0x3a, 0x34, 0x66, 0x6d, 0x31, 0x0e, 0x27,
0xc3, 0x8c, 0x80, 0x45, 0xd7, 0x78, 0x77, 0x74, 0x13, 0x47, 0xcf, 0x00, 0xb9, 0xbe, 0x1f, 0x7e,
0x24, 0x31, 0xf5, 0xc7, 0x44, 0xae, 0x4e, 0x6d, 0xa7, 0xa1, 0x34, 0xf3, 0x58, 0x13, 0x96, 0x01,
0xf5, 0xc7, 0xd2, 0x3d, 0xfa, 0x2d, 0x94, 0x45, 0x4c, 0x63, 0xea, 0xb2, 0x79, 0x44, 0xe3, 0x9a,
0xd6, 0xd8, 0x6c, 0x56, 0x8e, 0x76, 0x65, 0x22, 0x27, 0x09, 0x7c, 0xec, 0x31, 0x5c, 0xe2, 0x3c,
0xf9, 0x1d, 0xd7, 0x3b, 0xb0, 0xb7, 0x3e, 0x24, 0xae, 0x51, 0x5e, 0x53, 0x2e, 0x5b, 0x15, 0xf3,
0x9f, 0xe8, 0x3e, 0xe4, 0x3e, 0xb8, 0xfe, 0x9c, 0x0a, 0xdd, 0x96, 0x70, 0xf2, 0xf1, 0xfb, 0x8d,
0x17, 0x8a, 0xfe, 0x02, 0xaa, 0x4e, 0xe4, 0x0e, 0xaf, 0x6e, 0x48, 0xff, 0xa6, 0x72, 0x95, 0x5b,
0xca, 0xd5, 0xff, 0xa1, 0x40, 0x59, 0x8e, 0x1a, 0x30, 0x97, 0xcd, 0x63, 0xf4, 0x0d, 0xe4, 0x62,
0xe6, 0x32, 0x2a, 0xd8, 0x95, 0xa3, 0x07, 0x99, 0x7a, 0x66, 0x88, 0x14, 0x27, 0x2c, 0x54, 0x87,
0xfc, 0x2c, 0xa2, 0xde, 0xd4, 0xbd, 0x4c, 0xe3, 0x5a, 0x7c, 0xa3, 0x26, 0xe4, 0x26, 0xcc, 0x1f,
0xc6, 0x35, 0x55, 0x2c, 0x0d, 0x92, 0xc5, 0xe8, 0x3a, 0xbd, 0x76, 0x8b, 0x31, 0x3a, 0x9d, 0x31,
0x9c, 0x10, 0x4e, 0xd5, 0xfc, 0xa6, 0xa6, 0xea, 0xdf, 0xc3, 0x8e, 0x58, 0xf1, 0x13, 0x4a, 0x3f,
0xb5, 0x7b, 0x1f, 0x00, 0xdf, 0x9b, 0x42, 0xeb, 0xc9, 0x0e, 0xde, 0x72, 0xa7, 0x5c, 0xe6, 0xfa,
0x08, 0xb4, 0xe5, 0xf8, 0x78, 0x16, 0x06, 0x31, 0x8f, 0x41, 0xe3, 0x09, 0x70, 0x4d, 0xf3, 0x2d,
0x20, 0xc4, 0xaf, 0x88, 0x51, 0x15, 0x89, 0x9f, 0x50, 0x2a, 0xe4, 0xff, 0x38, 0xd9, 0x71, 0xc4,
0x0f, 0x87, 0x57, 0x7c, 0x0f, 0xbb, 0xd7, 0xd2, 0x7d, 0x99, 0xc3, 0xbd, 0x70, 0x78, 0xd5, 0xe1,
0xa0, 0xfe, 0x3e, 0x39, 0x66, 0x9c, 0x50, 0xcc, 0xf5, 0xf3, 0x6b, 0x8d, 0x74, 0xc8, 0x89, 0x5a,
0x0a, 0xb7, 0xc5, 0xa3, 0x52, 0x56, 0xe4, 0x38, 0x31, 0xe9, 0xef, 0xa1, 0xba, 0xe2, 0x5c, 0x66,
0x91, 0xad, 0xb2, 0x72, 0xab, 0xca, 0xdb, 0x63, 0xd7, 0xf3, 0xe7, 0x51, 0xea, 0xb8, 0x92, 0x8a,
0x2e, 0x41, 0x71, 0x6a, 0xd6, 0x1f, 0x42, 0x1d, 0xd3, 0x98, 0xb2, 0x33, 0x2f, 0x8e, 0xbd, 0x30,
0x68, 0x87, 0x01, 0x8b, 0x42, 0x5f, 0x66, 0xa0, 0x3f, 0x82, 0xfd, 0xb5, 0xd6, 0x24, 0x04, 0x3e,
0xf8, 0x87, 0x39, 0x8d, 0xae, 0xd7, 0x0f, 0xfe, 0x01, 0xf6, 0xd7, 0x5a, 0x65, 0xfc, 0xcf, 0x20,
0x37, 0x73, 0xbd, 0x28, 0xae, 0x6d, 0x08, 0x25, 0xec, 0xad, 0x88, 0xca, 0x8b, 0xba, 0x5e, 0xcc,
0xc2, 0xe8, 0x1a, 0x27, 0xa4, 0x53, 0x35, 0xaf, 0x68, 0x1b, 0x5c, 0x9a, 0xc5, 0x8c, 0x11, 0xed,
0x43, 0x21, 0x08, 0x47, 0x94, 0x8c, 0xa3, 0x70, 0x9a, 0x16, 0x81, 0x03, 0x27, 0x51, 0x38, 0xe5,
0x9a, 0x10, 0x46, 0x16, 0x4a, 0x15, 0x6e, 0xf1, 0x4f, 0x27, 0x44, 0xdf, 0xc0, 0xf6, 0x24, 0x71,
0x20, 0x0e, 0xc6, 0xe2, 0x51, 0xf5, 0xc6, 0xdc, 0x1d, 0x97, 0xb9, 0x38, 0xe5, 0x24, 0x42, 0x3c,
0x55, 0xf3, 0xaa, 0x96, 0x3b, 0x55, 0xf3, 0x39, 0x6d, 0xeb, 0x54, 0xcd, 0x6f, 0x69, 0xdb, 0xfa,
0x7f, 0x15, 0xc8, 0xa7, 0x6c, 0x1e, 0x09, 0x2f, 0x29, 0xe1, 0xba, 0x90, 0x62, 0xca, 0x73, 0xc0,
0xf1, 0xa6, 0x14, 0x35, 0xa0, 0x24, 0x8c, 0xab, 0x12, 0x05, 0x8e, 0xb5, 0x84, 0x4c, 0xc5, 0x89,
0x9d, 0x32, 0x84, 0x1e, 0x55, 0x79, 0x62, 0x27, 0x94, 0xb4, 0xe9, 0xc4, 0xf3, 0xe1, 0x90, 0xc6,
0x71, 0x32, 0x4b, 0x2e, 0xa1, 0x48, 0x4c, 0x4c, 0xf4, 0x18, 0x76, 0x52, 0x4a, 0x3a, 0xd7, 0x56,
0xa2, 0x57, 0x09, 0xcb, 0xe9, 0x9a, 0xa0, 0x65, 0x79, 0xd3, 0x65, 0x8f, 0xa8, 0x2c, 0x89, 0x7c,
0x52, 0xb9, 0x0b, 0xff, 0x02, 0x0f, 0xc4, 0x52, 0xf6, 0xa3, 0xf0, 0xc2, 0xbd, 0xf0, 0x7c, 0x8f,
0x5d, 0xa7, 0x22, 0xe7, 0x89, 0x47, 0xe1, 0x94, 0xf0, 0xda, 0xa6, 0x4b, 0xc0, 0x01, 0x2b, 0x1c,
0x51, 0xbe, 0x04, 0x2c, 0x4c, 0x4c, 0x72, 0x09, 0x58, 0x28, 0x0c, 0xd9, 0xde, 0xba, 0xb9, 0xd2,
0x5b, 0xf5, 0x2b, 0xa8, 0xdd, 0x9e, 0x4b, 0x6a, 0xa6, 0x01, 0xc5, 0xd9, 0x12, 0x16, 0xd3, 0x29,
0x38, 0x0b, 0x65, 0xd7, 0x76, 0xe3, 0xa7, 0xd7, 0x56, 0xff, 0xa7, 0x02, 0xbb, 0xc7, 0x73, 0xcf,
0x1f, 0xad, 0x6c, 0xdc, 0x6c, 0x74, 0xca, 0x6a, 0xe7, 0x5f, 0xd7, 0xd6, 0x37, 0xd6, 0xb6, 0xf5,
0x75, 0xad, 0x73, 0xf3, 0xce, 0xd6, 0xf9, 0x05, 0x14, 0x97, 0x5d, 0x33, 0x39, 0x1d, 0x4b, 0x18,
0x26, 0x69, 0xcb, 0x8c, 0xf5, 0x17, 0x80, 0xb2, 0x81, 0xca, 0x82, 0x2c, 0xce, 0x0f, 0xe5, 0xee,
0xf3, 0xe3, 0x21, 0xd4, 0x07, 0xf3, 0x8b, 0x78, 0x18, 0x79, 0x17, 0xb4, 0xcb, 0xfc, 0xa1, 0xf1,
0x81, 0x06, 0x2c, 0x4e, 0x77, 0xe9, 0xff, 0x54, 0x28, 0x2c, 0x50, 0x74, 0x00, 0x55, 0x2f, 0x18,
0x86, 0xd3, 0x34, 0xe8, 0x80, 0xfa, 0x3c, 0xee, 0xa4, 0xe3, 0xec, 0xa6, 0xa6, 0x76, 0x62, 0x31,
0x47, 0x9c, 0xbf, 0x92, 0xa4, 0xe4, 0x6f, 0x24, 0xfc, 0x6c, 0x8e, 0x09, 0xbf, 0x09, 0xda, 0xc2,
0x3f, 0x3f, 0xe6, 0x17, 0x45, 0xc1, 0x95, 0x14, 0xe7, 0xc1, 0x24, 0xcc, 0x85, 0xe7, 0x94, 0xa9,
0x26, 0xcc, 0x14, 0x97, 0xcc, 0x2f, 0xa1, 0xc4, 0xf7, 0x43, 0xcc, 0xdc, 0xe9, 0x8c, 0x04, 0xb1,
0xd8, 0x17, 0x2a, 0x2e, 0x2e, 0x30, 0x2b, 0x46, 0xdf, 0x01, 0x50, 0x9e, 0x1f, 0x61, 0xd7, 0x33,
0x2a, 0xb6, 0x44, 0xe5, 0xe8, 0xf3, 0x8c, 0x30, 0x16, 0x05, 0x38, 0x10, 0xff, 0x3a, 0xd7, 0x33,
0x8a, 0x0b, 0x34, 0xfd, 0x89, 0xbe, 0x87, 0xf2, 0x38, 0x8c, 0x3e, 0xba, 0xd1, 0x88, 0x08, 0x50,
0x1e, 0x1b, 0xd9, 0x3e, 0x78, 0x92, 0xd8, 0xc5, 0xf0, 0xee, 0x3d, 0x5c, 0x1a, 0x67, 0xbe, 0xd1,
0x2b, 0x40, 0xe9, 0x78, 0xb1, 0xcb, 0x13, 0x27, 0x79, 0xe1, 0x64, 0xff, 0xb6, 0x13, 0x7e, 0x48,
0xa7, 0x8e, 0xb4, 0xf1, 0x0d, 0x0c, 0xfd, 0x01, 0x4a, 0x31, 0x65, 0xcc, 0xa7, 0xd2, 0x4d, 0x41,
0xb8, 0xd9, 0x5b, 0xb9, 0xe3, 0x70, 0x73, 0xea, 0xa1, 0x18, 0x2f, 0x3f, 0xd1, 0x31, 0xec, 0xf8,
0x5e, 0x70, 0x95, 0x0d, 0x03, 0xc4, 0xf8, 0x5a, 0x66, 0x7c, 0xcf, 0x0b, 0xae, 0xb2, 0x31, 0x94,
0xfd, 0x2c, 0xa0, 0xff, 0x11, 0x0a, 0x8b, 0x2a, 0xa1, 0x22, 0x6c, 0x9f, 0x5b, 0xaf, 0x2c, 0xfb,
0x8d, 0xa5, 0xdd, 0x43, 0x79, 0x50, 0x07, 0x86, 0xd5, 0xd1, 0x14, 0x0e, 0x63, 0xa3, 0x6d, 0x98,
0xaf, 0x0d, 0x6d, 0x83, 0x7f, 0x9c, 0xd8, 0xf8, 0x4d, 0x0b, 0x77, 0xb4, 0xcd, 0xe3, 0x6d, 0xc8,
0x89, 0x79, 0xf5, 0x7f, 0x2b, 0x90, 0x17, 0x2b, 0x18, 0x8c, 0x43, 0xf4, 0x2b, 0x58, 0x88, 0x4b,
0x1c, 0x6e, 0xbc, 0xe1, 0x0a, 0xd5, 0x95, 0xf1, 0x42, 0x30, 0x8e, 0xc4, 0x39, 0x79, 0x21, 0x8d,
0x05, 0x79, 0x23, 0x21, 0xa7, 0x86, 0x05, 0xf9, 0x69, 0xc6, 0xf3, 0xca, 0x91, 0xa3, 0xe2, 0x9d,
0xd4, 0x90, 0x9e, 0xb0, 0x4f, 0x33, 0x8e, 0x57, 0x4e, 0x62, 0x15, 0xef, 0xa4, 0x06, 0xc9, 0xd5,
0x7f, 0x07, 0xa5, 0xec, 0x9a, 0xa3, 0x27, 0xa0, 0x7a, 0xc1, 0x38, 0x94, 0x1b, 0xb1, 0x7a, 0x43,
0x5c, 0x3c, 0x49, 0x2c, 0x08, 0x3a, 0x02, 0xed, 0xe6, 0x3a, 0xeb, 0x65, 0x28, 0x66, 0x16, 0x4d,
0xff, 0x8f, 0x02, 0xe5, 0x95, 0x45, 0xf8, 0xd9, 0xde, 0xd1, 0x77, 0x50, 0xfa, 0xe8, 0x45, 0x94,
0x64, 0xdb, 0x7f, 0xe5, 0xa8, 0xbe, 0xda, 0xfe, 0xd3, 0xff, 0xdb, 0xe1, 0x88, 0xe2, 0x22, 0xe7,
0x4b, 0x00, 0xfd, 0x09, 0x2a, 0x72, 0x24, 0x19, 0x51, 0xe6, 0x7a, 0xbe, 0x28, 0x55, 0x65, 0x45,
0x1e, 0x92, 0xdb, 0x11, 0x76, 0x5c, 0x1e, 0x67, 0x3f, 0xd1, 0xd7, 0x4b, 0x07, 0x31, 0x8b, 0xbc,
0xe0, 0x52, 0xd4, 0xaf, 0xb0, 0xa0, 0x0d, 0x04, 0xf8, 0xf4, 0x5f, 0x0a, 0x94, 0xb2, 0x57, 0x47,
0x54, 0x86, 0x82, 0x69, 0x91, 0x93, 0x9e, 0xf9, 0xb2, 0xeb, 0x68, 0xf7, 0xf8, 0xe7, 0xe0, 0xbc,
0xdd, 0x36, 0x8c, 0x8e, 0xc1, 0xe5, 0x84, 0xa0, 0x72, 0xd2, 0x32, 0x7b, 0x46, 0x87, 0x38, 0xe6,
0x99, 0x61, 0x9f, 0x3b, 0xda, 0x06, 0xaa, 0xc2, 0x8e, 0xc4, 0x2c, 0x9b, 0x60, 0xfb, 0xdc, 0x31,
0xb4, 0x4d, 0xa4, 0x41, 0x49, 0x82, 0x06, 0xc6, 0x36, 0xd6, 0x54, 0xf4, 0x15, 0x34, 0x24, 0x62,
0x5a, 0x6d, 0x1b, 0x63, 0xa3, 0xed, 0x90, 0x7e, 0xeb, 0xdd, 0x99, 0x61, 0x39, 0xa4, 0x63, 0x38,
0x2d, 0xb3, 0x37, 0xd0, 0x72, 0xe8, 0x0b, 0xd8, 0x5f, 0xb0, 0x06, 0xe7, 0x27, 0x27, 0x66, 0xdb,
0xe4, 0x84, 0xe3, 0x56, 0xaf, 0x65, 0xb5, 0x0d, 0x6d, 0xeb, 0xe9, 0xdf, 0x54, 0x28, 0xaf, 0x24,
0xbe, 0xaa, 0xfc, 0x32, 0x14, 0x2c, 0x5b, 0xfa, 0xd3, 0x14, 0x1e, 0x86, 0x6d, 0x99, 0xb6, 0x45,
0x3a, 0x46, 0xdb, 0xee, 0xf0, 0x3d, 0xf0, 0x19, 0xec, 0xf6, 0x4c, 0xeb, 0x15, 0xb1, 0x6c, 0x87,
0x18, 0x3d, 0xf3, 0xa5, 0x79, 0xdc, 0xe3, 0xf1, 0xde, 0x07, 0xcd, 0xb6, 0x48, 0xbb, 0xdb, 0x32,
0xad, 0x45, 0x6a, 0x2a, 0x47, 0xf9, 0x85, 0x98, 0x18, 0x6f, 0x79, 0x05, 0x06, 0xe4, 0xac, 0xf5,
0x56, 0xcb, 0xa1, 0x1a, 0xdc, 0x5f, 0x1f, 0x1c, 0xda, 0x03, 0xc4, 0x93, 0x3b, 0xeb, 0xf7, 0x0c,
0xc7, 0x20, 0xe9, 0x5e, 0xdb, 0xe6, 0x25, 0x12, 0x7e, 0x5a, 0x9d, 0x0e, 0x49, 0xd2, 0xd3, 0xf2,
0x3c, 0x12, 0xc9, 0x18, 0x90, 0x8e, 0x39, 0x68, 0x1d, 0x73, 0xb8, 0xc0, 0xe7, 0x34, 0xad, 0xd7,
0xb6, 0xd9, 0x36, 0x48, 0x9b, 0xbb, 0xe5, 0x28, 0x70, 0x72, 0x8a, 0x9e, 0x5b, 0x1d, 0x03, 0xf7,
0x5b, 0x66, 0x47, 0x2b, 0xa2, 0x7d, 0x78, 0x90, 0xc2, 0xc6, 0xdb, 0xbe, 0x89, 0xdf, 0x11, 0xc7,
0xb6, 0xc9, 0xc0, 0xb6, 0x2d, 0xad, 0x94, 0xf5, 0xc4, 0xb3, 0xb5, 0xfb, 0x86, 0xa5, 0x95, 0xd1,
0x03, 0xa8, 0x9e, 0xf5, 0xfb, 0x24, 0xb5, 0xa4, 0xc9, 0x56, 0x38, 0xbd, 0xd5, 0xe9, 0x60, 0x63,
0x30, 0x20, 0x67, 0xe6, 0xe0, 0xac, 0xe5, 0xb4, 0xbb, 0xda, 0x0e, 0x4f, 0x69, 0x60, 0x38, 0xc4,
0xb1, 0x9d, 0x56, 0x6f, 0x89, 0x6b, 0x3c, 0xa0, 0x25, 0xce, 0x27, 0xed, 0xd9, 0x6f, 0xb4, 0x5d,
0x5e, 0x70, 0x0e, 0xdb, 0xaf, 0x65, 0x88, 0x88, 0xe7, 0x2e, 0x97, 0x27, 0x9d, 0x53, 0xab, 0x72,
0xd0, 0xb4, 0x5e, 0xb7, 0x7a, 0x66, 0x87, 0xbc, 0x32, 0xde, 0x89, 0xb3, 0xea, 0x3e, 0x07, 0x93,
0xc8, 0x48, 0x1f, 0xdb, 0x2f, 0x79, 0x20, 0xda, 0x67, 0x5c, 0x71, 0x6d, 0x13, 0xb7, 0xcf, 0x7b,
0x2d, 0x2c, 0xc5, 0xb5, 0x77, 0xf4, 0xf7, 0x2d, 0xd8, 0x12, 0x9d, 0x35, 0x42, 0x5d, 0xbe, 0x61,
0x17, 0x2f, 0x49, 0xf4, 0xe8, 0x93, 0x2f, 0xcc, 0x7a, 0x6d, 0xfd, 0x83, 0x69, 0x1e, 0x3f, 0x57,
0xd0, 0x29, 0x94, 0xb2, 0xef, 0x34, 0x94, 0x6d, 0x4b, 0x6b, 0x1e, 0x70, 0x9f, 0xf4, 0xf5, 0x0a,
0x34, 0x23, 0x66, 0xde, 0x94, 0xbf, 0xc5, 0xe4, 0xa3, 0x07, 0xd5, 0x33, 0xfc, 0x1b, 0x2f, 0xa9,
0xfa, 0xfe, 0x5a, 0x9b, 0xbc, 0x5a, 0xf4, 0x92, 0x14, 0xe5, 0xb3, 0xe3, 0x56, 0x8a, 0xab, 0x6f,
0x9d, 0xfa, 0xe7, 0x77, 0x99, 0xa5, 0xb7, 0x11, 0x54, 0xd7, 0xbc, 0x24, 0xd0, 0xd7, 0xd9, 0x08,
0xee, 0x7c, 0x87, 0xd4, 0x1f, 0xff, 0x14, 0x6d, 0x39, 0xcb, 0x9a, 0x27, 0xc7, 0xca, 0x2c, 0x77,
0x3f, 0x58, 0x56, 0x66, 0xf9, 0xd4, 0xcb, 0xe5, 0x3d, 0x68, 0x37, 0x6f, 0xa8, 0x48, 0xbf, 0x39,
0xf6, 0xf6, 0x55, 0xb9, 0xfe, 0xcb, 0x4f, 0x72, 0xa4, 0x73, 0x13, 0x60, 0x79, 0xcf, 0x43, 0x0f,
0x33, 0x43, 0x6e, 0xdd, 0x53, 0xeb, 0x8f, 0xee, 0xb0, 0x4a, 0x57, 0x0e, 0x54, 0xd7, 0x5c, 0xfc,
0x56, 0xaa, 0x71, 0xf7, 0xc5, 0xb0, 0x7e, 0x7f, 0xdd, 0xfd, 0xe8, 0xb9, 0x72, 0xfc, 0xed, 0x9f,
0x0f, 0x2f, 0x3d, 0x36, 0x99, 0x5f, 0x1c, 0x0c, 0xc3, 0xe9, 0xa1, 0xef, 0x5d, 0x4e, 0x58, 0xe0,
0x05, 0x97, 0x01, 0x65, 0x1f, 0xc3, 0xe8, 0xea, 0xd0, 0x0f, 0x46, 0x87, 0xa2, 0xd9, 0x1c, 0x2e,
0x86, 0x5f, 0x6c, 0x89, 0xbf, 0xc6, 0xfd, 0xfa, 0xc7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x84,
0xd2, 0x59, 0xbd, 0x13, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.

View File

@ -169,13 +169,10 @@ message PaymentStatus {
*/
bytes preimage = 2;
/**
The taken route when state is SUCCEEDED.
*/
lnrpc.Route route = 3;
reserved 3;
/**
The HTLCs made in attempt to settle the payment [EXPERIMENTAL].
The HTLCs made in attempt to settle the payment.
*/
repeated lnrpc.HTLCAttempt htlcs = 4;
}

View File

@ -650,6 +650,7 @@ func (r *RouterBackend) extractIntentFromSendRequest(
)
payIntent.DestFeatures = payReq.Features
payIntent.PaymentAddr = payReq.PaymentAddr
payIntent.PaymentRequest = []byte(rpcPayReq.PaymentRequest)
} else {
// Otherwise, If the payment request field was not specified
// (and a custom route wasn't specified), construct the payment

View File

@ -1,5 +1,3 @@
// +build routerrpc
package routerrpc
import (
@ -487,35 +485,6 @@ func (s *Server) trackPayment(paymentHash lntypes.Hash,
status.State = state
}
// Extract the last route from the given list of HTLCs. This
// will populate the legacy route field for backwards
// compatibility.
//
// NOTE: For now there will be at most one HTLC, this code
// should be revisted or the field removed when multiple HTLCs
// are permitted.
var legacyRoute *route.Route
for _, htlc := range result.HTLCs {
switch {
case htlc.Settle != nil:
legacyRoute = &htlc.Route
// Only display the route for failed payments if we got
// an incorrect payment details error, so that it can be
// used for probing or fee estimation.
case htlc.Failure != nil && result.FailureReason ==
channeldb.FailureReasonPaymentDetails:
legacyRoute = &htlc.Route
}
}
if legacyRoute != nil {
status.Route, err = router.MarshallRoute(legacyRoute)
if err != nil {
return err
}
}
// Marshal our list of HTLCs that have been tried for this
// payment.
htlcs := make([]*lnrpc.HTLCAttempt, 0, len(result.HTLCs))

View File

@ -0,0 +1,40 @@
package routerrpc
import (
"time"
"github.com/btcsuite/btcutil"
)
// RoutingConfig contains the configurable parameters that control routing.
type RoutingConfig struct {
// MinRouteProbability is the minimum required route success probability
// to attempt the payment.
MinRouteProbability float64 `long:"minrtprob" description:"Minimum required route success probability to attempt the payment"`
// AprioriHopProbability is the assumed success probability of a hop in
// a route when no other information is available.
AprioriHopProbability float64 `long:"apriorihopprob" description:"Assumed success probability of a hop in a route when no other information is available."`
// AprioriWeight is a value in the range [0, 1] that defines to what
// extent historical results should be extrapolated to untried
// connections. Setting it to one will completely ignore historical
// results and always assume the configured a priori probability for
// untried connections. A value of zero will ignore the a priori
// probability completely and only base the probability on historical
// results, unless there are none available.
AprioriWeight float64 `long:"aprioriweight" description:"Weight of the a priori probability in success probability estimation. Valid values are in [0, 1]."`
// PenaltyHalfLife defines after how much time a penalized node or
// channel is back at 50% probability.
PenaltyHalfLife time.Duration `long:"penaltyhalflife" description:"Defines the duration after which a penalized node or channel is back at 50% probability"`
// AttemptCost is the virtual cost in path finding weight units of
// executing a payment attempt that fails. It is used to trade off
// potentially better routes against their probability of succeeding.
AttemptCost btcutil.Amount `long:"attemptcost" description:"The (virtual) cost in sats of a failed payment attempt"`
// MaxMcHistory defines the maximum number of payment results that
// are held on disk by mission control.
MaxMcHistory int `long:"maxmchistory" description:"the maximum number of payment results that are held on disk by mission control"`
}

View File

@ -1,5 +1,3 @@
// +build routerrpc
package routerrpc
import (

View File

@ -11878,749 +11878,749 @@ func init() {
func init() { proto.RegisterFile("rpc.proto", fileDescriptor_77a6da22d6a3feb1) }
var fileDescriptor_77a6da22d6a3feb1 = []byte{
// 11862 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7d, 0x6b, 0x6f, 0x24, 0x49,
0x72, 0xd8, 0xf4, 0x8b, 0xdd, 0x1d, 0xfd, 0x60, 0x33, 0xf9, 0xea, 0xe1, 0xcc, 0xec, 0xcc, 0xd6,
0xee, 0xed, 0xce, 0xce, 0xde, 0x71, 0x66, 0xe7, 0x6e, 0xf6, 0xee, 0x76, 0xad, 0xd3, 0x35, 0xc9,
0xe6, 0xb0, 0x6f, 0xf8, 0xda, 0xea, 0xe6, 0xae, 0xe6, 0xf4, 0xa8, 0x2b, 0x76, 0x27, 0xc9, 0xd2,
0x74, 0x57, 0xf5, 0x56, 0x55, 0xf3, 0x71, 0x87, 0xf5, 0x07, 0xc3, 0x16, 0x0c, 0xc3, 0x0f, 0x08,
0xb6, 0x0c, 0x58, 0xb6, 0x60, 0xc3, 0x82, 0x61, 0x18, 0x06, 0x04, 0x01, 0x27, 0x7f, 0x30, 0xe0,
0xef, 0x82, 0x01, 0x1b, 0x86, 0x21, 0xf9, 0x8b, 0x21, 0x08, 0x30, 0x6c, 0xcb, 0x1f, 0x0c, 0x18,
0x02, 0xfc, 0x07, 0x8c, 0x8c, 0xc8, 0xac, 0xca, 0xea, 0x2e, 0xce, 0xcc, 0xde, 0xad, 0xef, 0x0b,
0xd9, 0x15, 0x19, 0xf9, 0x8e, 0x8c, 0x8c, 0xc8, 0x88, 0xc8, 0x84, 0xb2, 0x3f, 0xee, 0xaf, 0x8f,
0x7d, 0x2f, 0xf4, 0x58, 0x61, 0xe8, 0xfa, 0xe3, 0xfe, 0xda, 0xed, 0x53, 0xcf, 0x3b, 0x1d, 0xf2,
0x87, 0xf6, 0xd8, 0x79, 0x68, 0xbb, 0xae, 0x17, 0xda, 0xa1, 0xe3, 0xb9, 0x01, 0x21, 0x19, 0x3f,
0x82, 0xfa, 0x53, 0xee, 0x76, 0x39, 0x1f, 0x98, 0xfc, 0xf3, 0x09, 0x0f, 0x42, 0xf6, 0x3e, 0x2c,
0xd8, 0xfc, 0xc7, 0x9c, 0x0f, 0xac, 0xb1, 0x1d, 0x04, 0xe3, 0x33, 0xdf, 0x0e, 0x78, 0x33, 0x73,
0x2f, 0x73, 0xbf, 0x6a, 0x36, 0x28, 0xe1, 0x30, 0x82, 0xb3, 0x37, 0xa1, 0x1a, 0x08, 0x54, 0xee,
0x86, 0xbe, 0x37, 0xbe, 0x6a, 0x66, 0x11, 0xaf, 0x22, 0x60, 0x6d, 0x02, 0x19, 0x43, 0x98, 0x8f,
0x6a, 0x08, 0xc6, 0x9e, 0x1b, 0x70, 0xf6, 0x08, 0x96, 0xfa, 0xce, 0xf8, 0x8c, 0xfb, 0x16, 0x66,
0x1e, 0xb9, 0x7c, 0xe4, 0xb9, 0x4e, 0xbf, 0x99, 0xb9, 0x97, 0xbb, 0x5f, 0x36, 0x19, 0xa5, 0x89,
0x1c, 0x7b, 0x32, 0x85, 0xbd, 0x0b, 0xf3, 0xdc, 0x25, 0x38, 0x1f, 0x60, 0x2e, 0x59, 0x55, 0x3d,
0x06, 0x8b, 0x0c, 0xc6, 0xdf, 0xcc, 0xc2, 0x42, 0xc7, 0x75, 0xc2, 0xcf, 0xec, 0xe1, 0x90, 0x87,
0xaa, 0x4f, 0xef, 0xc2, 0xfc, 0x05, 0x02, 0xb0, 0x4f, 0x17, 0x9e, 0x3f, 0x90, 0x3d, 0xaa, 0x13,
0xf8, 0x50, 0x42, 0xaf, 0x6d, 0x59, 0xf6, 0xda, 0x96, 0xa5, 0x0e, 0x57, 0xee, 0x9a, 0xe1, 0x7a,
0x17, 0xe6, 0x7d, 0xde, 0xf7, 0xce, 0xb9, 0x7f, 0x65, 0x5d, 0x38, 0xee, 0xc0, 0xbb, 0x68, 0xe6,
0xef, 0x65, 0xee, 0x17, 0xcc, 0xba, 0x02, 0x7f, 0x86, 0x50, 0xb6, 0x01, 0xf3, 0xfd, 0x33, 0xdb,
0x75, 0xf9, 0xd0, 0x3a, 0xb6, 0xfb, 0x2f, 0x26, 0xe3, 0xa0, 0x59, 0xb8, 0x97, 0xb9, 0x5f, 0x79,
0x7c, 0x73, 0x1d, 0x67, 0x75, 0x7d, 0xf3, 0xcc, 0x76, 0x37, 0x30, 0xa5, 0xeb, 0xda, 0xe3, 0xe0,
0xcc, 0x0b, 0xcd, 0xba, 0xcc, 0x41, 0xe0, 0xc0, 0x58, 0x02, 0xa6, 0x8f, 0x04, 0x8d, 0xbd, 0xf1,
0xaf, 0x33, 0xb0, 0x78, 0xe4, 0x0e, 0xbd, 0xfe, 0x8b, 0x9f, 0x71, 0x88, 0x52, 0xfa, 0x90, 0x7d,
0xdd, 0x3e, 0xe4, 0xbe, 0x6c, 0x1f, 0x56, 0x60, 0x29, 0xd9, 0x58, 0xd9, 0x0b, 0x0e, 0xcb, 0x22,
0xf7, 0x29, 0x57, 0xcd, 0x52, 0xdd, 0x78, 0x0f, 0x1a, 0xfd, 0x89, 0xef, 0x73, 0x77, 0xa6, 0x1f,
0xf3, 0x12, 0x1e, 0x75, 0xe4, 0x4d, 0xa8, 0xba, 0xfc, 0x22, 0x46, 0x93, 0xb4, 0xeb, 0xf2, 0x0b,
0x85, 0x62, 0x34, 0x61, 0x65, 0xba, 0x1a, 0xd9, 0x80, 0xbf, 0xc8, 0x40, 0xfe, 0x28, 0xbc, 0xf4,
0xd8, 0x13, 0xa8, 0xda, 0x83, 0x81, 0xcf, 0x83, 0xc0, 0x0a, 0xaf, 0xc6, 0xb4, 0x52, 0xea, 0x8f,
0x99, 0xec, 0x62, 0x8b, 0x92, 0x7a, 0x57, 0x63, 0x6e, 0x56, 0xec, 0xf8, 0x83, 0x35, 0xa1, 0x28,
0x3f, 0xb1, 0xde, 0xb2, 0xa9, 0x3e, 0xd9, 0x1d, 0x00, 0x7b, 0xe4, 0x4d, 0xdc, 0xd0, 0x0a, 0xec,
0x10, 0x47, 0x2c, 0x67, 0x96, 0x09, 0xd2, 0xb5, 0x43, 0x76, 0x0b, 0xca, 0xe3, 0x17, 0x56, 0xd0,
0xf7, 0x9d, 0x71, 0x88, 0xc4, 0x53, 0x36, 0x4b, 0xe3, 0x17, 0x5d, 0xfc, 0x66, 0xef, 0x43, 0xc9,
0x9b, 0x84, 0x63, 0xcf, 0x71, 0x43, 0x49, 0x2f, 0xf3, 0xb2, 0x21, 0x07, 0x93, 0xf0, 0x50, 0x80,
0xcd, 0x08, 0x81, 0xbd, 0x0d, 0xb5, 0xbe, 0xe7, 0x9e, 0x38, 0xfe, 0x88, 0x38, 0x42, 0x73, 0x0e,
0xeb, 0x4a, 0x02, 0x8d, 0x3f, 0xcc, 0x42, 0xa5, 0xe7, 0xdb, 0x6e, 0x60, 0xf7, 0x05, 0x80, 0xad,
0x42, 0x31, 0xbc, 0xb4, 0xce, 0xec, 0xe0, 0x0c, 0xbb, 0x5a, 0x36, 0xe7, 0xc2, 0xcb, 0x1d, 0x3b,
0x38, 0x63, 0x2b, 0x30, 0x47, 0xad, 0xc4, 0x0e, 0xe5, 0x4c, 0xf9, 0x25, 0x16, 0x88, 0x3b, 0x19,
0x59, 0xc9, 0xaa, 0x72, 0x48, 0x31, 0x0d, 0x77, 0x32, 0xda, 0xd4, 0xe1, 0xa2, 0xf3, 0xc7, 0x62,
0xba, 0xa9, 0x02, 0xea, 0x5e, 0x19, 0x21, 0x58, 0xc7, 0x9b, 0x50, 0x95, 0xc9, 0xdc, 0x39, 0x3d,
0xa3, 0x3e, 0x16, 0xcc, 0x0a, 0x21, 0x20, 0x48, 0x94, 0x10, 0x3a, 0x23, 0x6e, 0x05, 0xa1, 0x3d,
0x1a, 0xcb, 0x2e, 0x95, 0x05, 0xa4, 0x2b, 0x00, 0x98, 0xec, 0x85, 0xf6, 0xd0, 0x3a, 0xe1, 0x3c,
0x68, 0x16, 0x65, 0xb2, 0x80, 0x6c, 0x73, 0x1e, 0xb0, 0xaf, 0x41, 0x7d, 0xc0, 0x83, 0xd0, 0x92,
0x93, 0xc1, 0x83, 0x66, 0x09, 0x57, 0x7e, 0x4d, 0x40, 0x5b, 0x0a, 0xc8, 0x6e, 0x03, 0xf8, 0xf6,
0x85, 0x25, 0x06, 0x82, 0x5f, 0x36, 0xcb, 0x34, 0x0b, 0xbe, 0x7d, 0xd1, 0xbb, 0xdc, 0xe1, 0x97,
0x82, 0x6a, 0x9e, 0xf2, 0x50, 0x1b, 0xb4, 0x40, 0x52, 0xa7, 0xb1, 0x0b, 0x4c, 0x03, 0x6f, 0xf1,
0xd0, 0x76, 0x86, 0x01, 0xfb, 0x10, 0xaa, 0xa1, 0x86, 0x8c, 0x6c, 0xb0, 0x12, 0x91, 0x90, 0x96,
0xc1, 0x4c, 0xe0, 0x19, 0x67, 0x50, 0xda, 0xe6, 0x7c, 0xd7, 0x19, 0x39, 0x21, 0x5b, 0x81, 0xc2,
0x89, 0x73, 0xc9, 0x89, 0xd8, 0x73, 0x3b, 0x37, 0x4c, 0xfa, 0x64, 0x77, 0x01, 0xf0, 0x87, 0x35,
0x8a, 0xa8, 0x69, 0xe7, 0x86, 0x59, 0x46, 0xd8, 0x5e, 0x60, 0x87, 0x6c, 0x0d, 0x8a, 0x63, 0xee,
0xf7, 0xb9, 0x9a, 0xb7, 0x9d, 0x1b, 0xa6, 0x02, 0x6c, 0x14, 0xa1, 0x30, 0x14, 0xa5, 0x1b, 0x7f,
0x5c, 0x80, 0x4a, 0x97, 0xbb, 0xd1, 0x2a, 0x63, 0x90, 0x17, 0x03, 0x22, 0x57, 0x16, 0xfe, 0x66,
0x6f, 0x41, 0x05, 0x87, 0x2e, 0x08, 0x7d, 0xc7, 0x3d, 0x25, 0xaa, 0xde, 0xc8, 0x36, 0x33, 0x26,
0x08, 0x70, 0x17, 0xa1, 0xac, 0x01, 0x39, 0x7b, 0xa4, 0xa8, 0x5a, 0xfc, 0x64, 0x37, 0xa1, 0x64,
0x8f, 0x42, 0x6a, 0x5e, 0x15, 0xc1, 0x45, 0x7b, 0x14, 0x62, 0xd3, 0xde, 0x84, 0xea, 0xd8, 0xbe,
0x1a, 0x89, 0xb5, 0x1c, 0x91, 0x43, 0xd5, 0xac, 0x48, 0x18, 0x12, 0xc4, 0x63, 0x58, 0xd4, 0x51,
0x54, 0xe5, 0x85, 0xa8, 0xf2, 0x05, 0x0d, 0x5b, 0xb6, 0xe1, 0x5d, 0x98, 0x57, 0x79, 0x7c, 0xea,
0x0f, 0x92, 0x49, 0xd9, 0xac, 0x4b, 0xb0, 0xea, 0xe5, 0x7d, 0x68, 0x9c, 0x38, 0xae, 0x3d, 0xb4,
0xfa, 0xc3, 0xf0, 0xdc, 0x1a, 0xf0, 0x61, 0x68, 0x23, 0xc5, 0x14, 0xcc, 0x3a, 0xc2, 0x37, 0x87,
0xe1, 0xf9, 0x96, 0x80, 0xb2, 0xaf, 0x43, 0xf9, 0x84, 0x73, 0x0b, 0x07, 0xab, 0x59, 0x4a, 0x2c,
0x3c, 0x35, 0x43, 0x66, 0xe9, 0x44, 0xcd, 0xd5, 0xd7, 0xa1, 0xe1, 0x4d, 0xc2, 0x53, 0xcf, 0x71,
0x4f, 0x2d, 0xc1, 0xef, 0x2c, 0x67, 0x80, 0x34, 0x94, 0xdf, 0xc8, 0x3e, 0xca, 0x98, 0x75, 0x95,
0x26, 0x38, 0x4f, 0x67, 0xc0, 0xde, 0x81, 0xf9, 0xa1, 0x1d, 0x84, 0xd6, 0x99, 0x37, 0xb6, 0xc6,
0x93, 0xe3, 0x17, 0xfc, 0xaa, 0x59, 0xc3, 0x81, 0xa8, 0x09, 0xf0, 0x8e, 0x37, 0x3e, 0x44, 0xa0,
0xa0, 0x6c, 0x6c, 0x27, 0x35, 0x02, 0xee, 0x65, 0xee, 0xd7, 0xcc, 0xb2, 0x80, 0x50, 0xa5, 0xcf,
0x61, 0x11, 0xa7, 0xa7, 0x3f, 0x09, 0x42, 0x6f, 0x64, 0x09, 0x5e, 0xed, 0x0f, 0x82, 0x66, 0x05,
0x69, 0xed, 0x3d, 0xd9, 0x58, 0x6d, 0x8e, 0xd7, 0xb7, 0x78, 0x10, 0x6e, 0x22, 0xb2, 0x49, 0xb8,
0x62, 0x43, 0xbf, 0x32, 0x17, 0x06, 0xd3, 0x70, 0xf6, 0x75, 0x60, 0xf6, 0x70, 0xe8, 0x5d, 0x58,
0x01, 0x1f, 0x9e, 0x58, 0x72, 0x10, 0x9b, 0xf5, 0x7b, 0x99, 0xfb, 0x25, 0xb3, 0x81, 0x29, 0x5d,
0x3e, 0x3c, 0x39, 0x24, 0x38, 0xfb, 0x10, 0x70, 0x31, 0x59, 0x27, 0xdc, 0x0e, 0x27, 0x3e, 0x0f,
0x9a, 0xf3, 0xf7, 0x72, 0xf7, 0xeb, 0x8f, 0x17, 0xa2, 0xf1, 0x42, 0xf0, 0x86, 0x13, 0x9a, 0x55,
0x81, 0x27, 0xbf, 0x83, 0xb5, 0x2d, 0x58, 0x49, 0x6f, 0x92, 0x20, 0x2a, 0x31, 0x2a, 0x82, 0x18,
0xf3, 0xa6, 0xf8, 0xc9, 0x96, 0xa0, 0x70, 0x6e, 0x0f, 0x27, 0x5c, 0xf2, 0x74, 0xfa, 0xf8, 0x28,
0xfb, 0x9d, 0x8c, 0xf1, 0x47, 0x19, 0xa8, 0x52, 0x2f, 0xa5, 0x2c, 0xf2, 0x16, 0xd4, 0x14, 0x35,
0x70, 0xdf, 0xf7, 0x7c, 0xc9, 0xd5, 0x14, 0xe5, 0xb5, 0x05, 0x4c, 0xec, 0x2a, 0x0a, 0x69, 0xec,
0x73, 0x67, 0x64, 0x9f, 0xaa, 0xa2, 0x15, 0x29, 0x1d, 0x4a, 0x30, 0xfb, 0x20, 0x2e, 0xcf, 0xf7,
0x26, 0x21, 0x97, 0x7b, 0x5e, 0x55, 0x76, 0xcf, 0x14, 0xb0, 0xa8, 0x74, 0xfc, 0x7a, 0x0d, 0x3a,
0x37, 0x7e, 0x27, 0x03, 0x4c, 0x34, 0xbb, 0xe7, 0x51, 0x01, 0x92, 0x42, 0xa7, 0x73, 0x66, 0x5e,
0x7b, 0x85, 0x64, 0x5f, 0xb6, 0x42, 0x0c, 0x28, 0x50, 0xdb, 0xf3, 0x29, 0x6d, 0xa7, 0xa4, 0x1f,
0xe4, 0x4b, 0xb9, 0x46, 0xde, 0xf8, 0xaf, 0x39, 0x58, 0xda, 0xa4, 0x2d, 0xbb, 0xd5, 0xef, 0xf3,
0x71, 0xb4, 0x76, 0xee, 0x42, 0xc5, 0xf5, 0x06, 0x5c, 0x51, 0x2c, 0x35, 0x0c, 0x04, 0x48, 0x23,
0xd7, 0x33, 0xdb, 0x71, 0xa9, 0xe1, 0x34, 0x98, 0x65, 0x84, 0x60, 0xb3, 0xdf, 0x81, 0xf9, 0x31,
0x77, 0x07, 0xfa, 0x12, 0x21, 0xa1, 0xaa, 0x26, 0xc1, 0x72, 0x75, 0xdc, 0x85, 0xca, 0xc9, 0x84,
0xf0, 0x04, 0x63, 0xc9, 0x23, 0x0d, 0x80, 0x04, 0xb5, 0x88, 0xbf, 0x8c, 0x27, 0xc1, 0x19, 0xa6,
0x16, 0x30, 0xb5, 0x28, 0xbe, 0x45, 0xd2, 0x1d, 0x80, 0xc1, 0x24, 0x08, 0xe5, 0x8a, 0x99, 0xc3,
0xc4, 0xb2, 0x80, 0xd0, 0x8a, 0xf9, 0x06, 0x2c, 0x8e, 0xec, 0x4b, 0x0b, 0x69, 0xc7, 0x72, 0x5c,
0xeb, 0x64, 0x88, 0x7b, 0x4e, 0x11, 0xf1, 0x1a, 0x23, 0xfb, 0xf2, 0x53, 0x91, 0xd2, 0x71, 0xb7,
0x11, 0x2e, 0xd8, 0x8a, 0x12, 0x77, 0x7c, 0x1e, 0x70, 0xff, 0x9c, 0x23, 0x27, 0xc8, 0x47, 0x32,
0x8d, 0x49, 0x50, 0xd1, 0xa2, 0x91, 0xe8, 0x77, 0x38, 0xec, 0xd3, 0xb2, 0x37, 0x8b, 0x23, 0xc7,
0xdd, 0x09, 0x87, 0x7d, 0xb1, 0xaf, 0x08, 0x3e, 0x32, 0xe6, 0xbe, 0xf5, 0xe2, 0x02, 0xd7, 0x70,
0x1e, 0xf9, 0xc6, 0x21, 0xf7, 0x9f, 0x5d, 0x88, 0xad, 0xbf, 0x1f, 0x20, 0x23, 0xb2, 0xaf, 0x9a,
0x15, 0x5c, 0xe0, 0xa5, 0x7e, 0x20, 0x58, 0x90, 0x7d, 0x25, 0x16, 0xa1, 0x68, 0xad, 0x8d, 0xb3,
0xc0, 0x07, 0x58, 0x7c, 0x80, 0x1c, 0xb5, 0x86, 0x8d, 0x6d, 0xc9, 0x04, 0x51, 0x4f, 0x20, 0xa8,
0x5e, 0x35, 0xf6, 0x64, 0x68, 0x9f, 0x06, 0xc8, 0x52, 0x6a, 0x66, 0x55, 0x02, 0xb7, 0x05, 0xcc,
0xf8, 0x8c, 0x84, 0x2c, 0x6d, 0x6e, 0xe5, 0x9a, 0x11, 0x5b, 0x3d, 0x42, 0x70, 0x5e, 0x4b, 0xa6,
0xfc, 0x4a, 0x9b, 0xb4, 0x6c, 0xca, 0xa4, 0x19, 0xbf, 0x97, 0x81, 0xaa, 0x2c, 0x19, 0x85, 0x12,
0xb6, 0x0e, 0x4c, 0xcd, 0x62, 0x78, 0xe9, 0x0c, 0xac, 0xe3, 0xab, 0x90, 0x07, 0x44, 0x34, 0x3b,
0x37, 0xcc, 0x86, 0x4c, 0xeb, 0x5d, 0x3a, 0x83, 0x0d, 0x91, 0xc2, 0x1e, 0x40, 0x23, 0x81, 0x1f,
0x84, 0x3e, 0x51, 0xf4, 0xce, 0x0d, 0xb3, 0xae, 0x61, 0x77, 0x43, 0x5f, 0xac, 0x11, 0x21, 0xf2,
0x4c, 0x42, 0xcb, 0x71, 0x07, 0xfc, 0x12, 0xc9, 0xa8, 0x66, 0x56, 0x08, 0xd6, 0x11, 0xa0, 0x8d,
0x3a, 0x54, 0xf5, 0xe2, 0x8c, 0x53, 0x28, 0x29, 0x79, 0x09, 0x05, 0x86, 0xa9, 0x26, 0x99, 0xe5,
0x30, 0x6a, 0xc9, 0x4d, 0x28, 0x25, 0x5b, 0x60, 0x16, 0xc3, 0xd7, 0xae, 0xd8, 0xf8, 0x1e, 0x34,
0x76, 0x05, 0xf1, 0xb8, 0x82, 0x58, 0xa5, 0xfc, 0xb7, 0x02, 0x73, 0xda, 0xa2, 0x29, 0x9b, 0xf2,
0x4b, 0xec, 0xb9, 0x67, 0x5e, 0x10, 0xca, 0x5a, 0xf0, 0xb7, 0xf1, 0xc7, 0x19, 0x60, 0xed, 0x20,
0x74, 0x46, 0x76, 0xc8, 0xb7, 0x79, 0xc4, 0x16, 0x0e, 0xa0, 0x2a, 0x4a, 0xeb, 0x79, 0x2d, 0x12,
0xc8, 0x48, 0xa0, 0x78, 0x5f, 0x2e, 0xe3, 0xd9, 0x0c, 0xeb, 0x3a, 0x36, 0xb1, 0xf9, 0x44, 0x01,
0x62, 0x95, 0x85, 0xb6, 0x7f, 0xca, 0x43, 0x14, 0xe3, 0xa4, 0xbc, 0x0f, 0x04, 0x12, 0x02, 0xdc,
0xda, 0x2f, 0xc3, 0xc2, 0x4c, 0x19, 0x3a, 0x5f, 0x2e, 0xa7, 0xf0, 0xe5, 0x9c, 0xce, 0x97, 0x2d,
0x58, 0x4c, 0xb4, 0x4b, 0x52, 0xda, 0x2a, 0x14, 0xc5, 0x82, 0x10, 0xc2, 0x41, 0x86, 0xa4, 0xca,
0x13, 0xce, 0x85, 0x18, 0xfc, 0x10, 0x96, 0x4e, 0x38, 0xf7, 0xed, 0x10, 0x13, 0x71, 0xc5, 0x88,
0x19, 0x92, 0x05, 0x2f, 0xc8, 0xb4, 0xae, 0x1d, 0x1e, 0x72, 0x5f, 0xcc, 0x94, 0xf1, 0xdf, 0x33,
0x30, 0x2f, 0x38, 0xe8, 0x9e, 0xed, 0x5e, 0xa9, 0x71, 0xda, 0x4d, 0x1d, 0xa7, 0xfb, 0xda, 0x66,
0xa8, 0x61, 0x7f, 0xd9, 0x41, 0xca, 0x4d, 0x0f, 0x12, 0xbb, 0x07, 0xd5, 0x44, 0x5b, 0x0b, 0xd8,
0x56, 0x08, 0xa2, 0x46, 0xfe, 0xfc, 0xc3, 0xf8, 0x0e, 0x34, 0xe2, 0x66, 0xcb, 0x31, 0x64, 0x90,
0x17, 0x24, 0x29, 0x0b, 0xc0, 0xdf, 0xc6, 0x3f, 0xc9, 0x10, 0xe2, 0xa6, 0xe7, 0x44, 0xd2, 0xa9,
0x40, 0x14, 0x72, 0xaf, 0x42, 0x14, 0xbf, 0xaf, 0x95, 0xea, 0x7f, 0xfe, 0xce, 0x8a, 0xa5, 0x13,
0x70, 0x77, 0x60, 0xd9, 0xc3, 0x21, 0x32, 0xdf, 0x92, 0x59, 0x14, 0xdf, 0xad, 0xe1, 0xd0, 0x78,
0x17, 0x16, 0xb4, 0xd6, 0xbd, 0xa4, 0x1f, 0xfb, 0xc0, 0x76, 0x9d, 0x20, 0x3c, 0x72, 0x83, 0xb1,
0x26, 0xb8, 0xdd, 0x82, 0xb2, 0xe0, 0xb0, 0xa2, 0x65, 0xb4, 0x64, 0x0b, 0xa6, 0x60, 0xb9, 0xa2,
0x5d, 0x01, 0x26, 0xda, 0x97, 0x32, 0x31, 0x2b, 0x13, 0xed, 0x4b, 0x4c, 0x34, 0xbe, 0x03, 0x8b,
0x89, 0xf2, 0x64, 0xd5, 0x6f, 0x42, 0x61, 0x12, 0x5e, 0x7a, 0x4a, 0x34, 0xaf, 0x48, 0x0a, 0x11,
0x0a, 0xa0, 0x49, 0x29, 0xc6, 0xc7, 0xb0, 0xb0, 0xcf, 0x2f, 0xe4, 0x22, 0x56, 0x0d, 0x79, 0x07,
0xf2, 0xaf, 0x50, 0x0a, 0x31, 0xdd, 0x58, 0x07, 0xa6, 0x67, 0x96, 0xb5, 0x6a, 0x3a, 0x62, 0x26,
0xa1, 0x23, 0x1a, 0xef, 0x00, 0xeb, 0x3a, 0xa7, 0xee, 0x1e, 0x0f, 0x02, 0xfb, 0x34, 0x5a, 0xf6,
0x0d, 0xc8, 0x8d, 0x82, 0x53, 0xc9, 0xa3, 0xc4, 0x4f, 0xe3, 0x9b, 0xb0, 0x98, 0xc0, 0x93, 0x05,
0xdf, 0x86, 0x72, 0xe0, 0x9c, 0xba, 0x28, 0x58, 0xc9, 0xa2, 0x63, 0x80, 0xb1, 0x0d, 0x4b, 0x9f,
0x72, 0xdf, 0x39, 0xb9, 0x7a, 0x55, 0xf1, 0xc9, 0x72, 0xb2, 0xd3, 0xe5, 0xb4, 0x61, 0x79, 0xaa,
0x1c, 0x59, 0x3d, 0x91, 0xaf, 0x9c, 0xc9, 0x92, 0x49, 0x1f, 0x1a, 0xdf, 0xcb, 0xea, 0x7c, 0xcf,
0x38, 0x02, 0xb6, 0xe9, 0xb9, 0x2e, 0xef, 0x87, 0x87, 0x9c, 0xfb, 0xf1, 0x29, 0x55, 0x4c, 0xab,
0x95, 0xc7, 0xab, 0x72, 0x64, 0xa7, 0x99, 0xa9, 0x24, 0x62, 0x06, 0xf9, 0x31, 0xf7, 0x47, 0x58,
0x70, 0xc9, 0xc4, 0xdf, 0xc6, 0x32, 0x2c, 0x26, 0x8a, 0x95, 0x7a, 0xfd, 0x23, 0x58, 0xde, 0x72,
0x82, 0xfe, 0x6c, 0x85, 0xab, 0x50, 0x1c, 0x4f, 0x8e, 0xad, 0x24, 0x5f, 0x7e, 0xc6, 0xaf, 0x84,
0xb6, 0x37, 0x9d, 0x43, 0x96, 0xf5, 0xd7, 0x33, 0x90, 0xdf, 0xe9, 0xed, 0x6e, 0xb2, 0x35, 0x28,
0x39, 0x6e, 0xdf, 0x1b, 0x09, 0xc1, 0x8b, 0xfa, 0x1c, 0x7d, 0x5f, 0xbb, 0xc0, 0x6e, 0x41, 0x19,
0xe5, 0x35, 0xa1, 0xda, 0x4a, 0xd1, 0xa7, 0x24, 0x00, 0xbb, 0x5e, 0xff, 0x85, 0xd0, 0xa9, 0xf9,
0xe5, 0xd8, 0xf1, 0x51, 0x6b, 0x56, 0xca, 0x70, 0x9e, 0xf6, 0xfa, 0x38, 0x81, 0x34, 0x62, 0xe3,
0xdf, 0x96, 0xa0, 0x28, 0x77, 0x5b, 0xda, 0xb9, 0x43, 0xe7, 0x9c, 0xc7, 0x3b, 0xb7, 0xf8, 0x12,
0xf2, 0x80, 0xcf, 0x47, 0x5e, 0x18, 0x09, 0x6c, 0x34, 0x07, 0x55, 0x02, 0x4a, 0x91, 0x4d, 0x13,
0x1a, 0xe8, 0x88, 0x21, 0x47, 0x48, 0x7d, 0x7d, 0x2b, 0xbf, 0x05, 0x45, 0xb5, 0xf7, 0xe7, 0x23,
0x9d, 0x66, 0xae, 0x4f, 0xd2, 0xda, 0x1a, 0x94, 0xfa, 0xf6, 0xd8, 0xee, 0x3b, 0xe1, 0x95, 0x64,
0x08, 0xd1, 0xb7, 0x28, 0x7d, 0xe8, 0xf5, 0xed, 0xa1, 0x75, 0x6c, 0x0f, 0x6d, 0xb7, 0xcf, 0xa5,
0xee, 0x5e, 0x45, 0xe0, 0x06, 0xc1, 0x84, 0x7e, 0x2e, 0xdb, 0xa9, 0xb0, 0x48, 0x85, 0x97, 0xad,
0x57, 0x68, 0x42, 0xb8, 0xf4, 0x46, 0x23, 0x47, 0x68, 0x19, 0x24, 0x86, 0xe5, 0xcc, 0x32, 0x41,
0xb6, 0x39, 0xf6, 0x56, 0x26, 0x5f, 0xd0, 0xd0, 0x95, 0xa9, 0x2a, 0x02, 0x7e, 0x46, 0x07, 0x09,
0xb3, 0xb2, 0x58, 0x4e, 0x93, 0xc5, 0xde, 0x87, 0x85, 0x89, 0x1b, 0xf0, 0x30, 0x1c, 0xf2, 0x41,
0xd4, 0x96, 0x0a, 0x22, 0x35, 0xa2, 0x04, 0xd5, 0x9c, 0x75, 0x58, 0xa4, 0x43, 0x87, 0xc0, 0x0e,
0xbd, 0xe0, 0xcc, 0x09, 0xac, 0x40, 0x68, 0x48, 0xa4, 0xee, 0x2e, 0x60, 0x52, 0x57, 0xa6, 0x74,
0x49, 0x45, 0x5a, 0x9d, 0xc2, 0xf7, 0x79, 0x9f, 0x3b, 0xe7, 0x7c, 0x80, 0x72, 0x5a, 0xce, 0x5c,
0x4e, 0xe4, 0x31, 0x65, 0x22, 0x0a, 0xdd, 0x93, 0x91, 0x35, 0x19, 0x0f, 0x6c, 0x21, 0xac, 0xd4,
0x49, 0x18, 0x76, 0x27, 0xa3, 0x23, 0x82, 0xb0, 0x47, 0xa0, 0x24, 0x31, 0x29, 0x1f, 0xce, 0x27,
0xf8, 0x99, 0x20, 0x56, 0xb3, 0x2a, 0x31, 0x48, 0x50, 0x4c, 0xc8, 0x9c, 0x8d, 0x29, 0x99, 0xb3,
0x09, 0xc5, 0xb1, 0xef, 0x9c, 0xdb, 0x21, 0x6f, 0x2e, 0x10, 0x03, 0x97, 0x9f, 0x82, 0x33, 0x38,
0xae, 0x13, 0x3a, 0x76, 0xe8, 0xf9, 0x4d, 0x86, 0x69, 0x31, 0x80, 0x3d, 0x80, 0x05, 0xa4, 0x91,
0x20, 0xb4, 0xc3, 0x49, 0x20, 0x25, 0xd0, 0x45, 0x24, 0x26, 0x94, 0xa1, 0xbb, 0x08, 0x47, 0x21,
0x94, 0x7d, 0x13, 0x56, 0x88, 0x2c, 0x30, 0x87, 0x94, 0xac, 0x51, 0x20, 0x58, 0xc2, 0xa1, 0x58,
0xc4, 0x54, 0x41, 0xdf, 0x52, 0xbe, 0x16, 0xd2, 0xc1, 0x13, 0x58, 0x95, 0x64, 0x32, 0x93, 0x6b,
0x19, 0x73, 0x2d, 0x51, 0xf2, 0x54, 0xb6, 0x75, 0x58, 0x10, 0x4d, 0x72, 0xfa, 0x96, 0xcc, 0x2d,
0x56, 0xc2, 0x8a, 0x68, 0x3d, 0x6a, 0x4a, 0xf3, 0x94, 0x68, 0x62, 0xda, 0x33, 0x7e, 0xc5, 0xbe,
0x07, 0xf3, 0x44, 0x32, 0xa8, 0x5e, 0x21, 0xa7, 0x5f, 0x43, 0x4e, 0xbf, 0xac, 0x4e, 0x38, 0xa3,
0x54, 0x64, 0xf6, 0xf5, 0x7e, 0xe2, 0x5b, 0x2c, 0x87, 0xa1, 0x73, 0xc2, 0x43, 0x67, 0xc4, 0x9b,
0xab, 0x44, 0x60, 0xea, 0x5b, 0xac, 0xd4, 0xc9, 0x18, 0x53, 0x9a, 0xc4, 0x17, 0xe8, 0x0b, 0x69,
0x77, 0xe8, 0x05, 0x5c, 0x1d, 0x51, 0x35, 0x6f, 0xca, 0x45, 0x28, 0x80, 0x4a, 0x86, 0x14, 0x82,
0x38, 0x29, 0x3d, 0xd1, 0x41, 0xe2, 0x2d, 0x24, 0x86, 0x1a, 0xe9, 0x3e, 0xea, 0x30, 0x51, 0xec,
0xe2, 0x67, 0xf6, 0x85, 0xe2, 0x20, 0xb7, 0x71, 0x7e, 0x41, 0x80, 0x24, 0xef, 0xf8, 0x69, 0x86,
0x36, 0x44, 0xc9, 0x3f, 0x02, 0x4d, 0xbd, 0x23, 0xce, 0x61, 0x79, 0xee, 0xf0, 0x4a, 0x32, 0x13,
0x20, 0xd0, 0x81, 0x3b, 0xc4, 0xd5, 0xec, 0xb8, 0x3a, 0x0a, 0xf1, 0xde, 0xaa, 0x02, 0x22, 0xd2,
0x5d, 0xa8, 0x8c, 0x27, 0xc7, 0x43, 0xa7, 0x4f, 0x28, 0x39, 0x2a, 0x85, 0x40, 0x88, 0x20, 0xf4,
0x5b, 0xa2, 0x28, 0xc2, 0xc8, 0x23, 0x46, 0x45, 0xc2, 0x10, 0x05, 0x79, 0x3b, 0xf7, 0x91, 0x9d,
0x54, 0x4d, 0xfc, 0x6d, 0x6c, 0xc0, 0x52, 0xb2, 0xd1, 0x72, 0xe3, 0x79, 0x00, 0x25, 0xc9, 0xab,
0xd4, 0xc1, 0x47, 0x5d, 0x3b, 0x8a, 0x16, 0x2a, 0x5a, 0x94, 0x6e, 0xfc, 0xd6, 0x1c, 0x2c, 0x4a,
0xe8, 0xa6, 0x18, 0xda, 0xee, 0x64, 0x34, 0xb2, 0xfd, 0x14, 0x26, 0x98, 0x79, 0x39, 0x13, 0xcc,
0xce, 0x30, 0xc1, 0xa4, 0xe6, 0x4b, 0x3c, 0x34, 0xa9, 0xf9, 0x8a, 0xb9, 0x24, 0x65, 0x44, 0x3f,
0x07, 0xad, 0x49, 0x70, 0x8f, 0xce, 0x5b, 0x67, 0x58, 0x76, 0x21, 0x85, 0x65, 0xeb, 0x0c, 0x77,
0x6e, 0x8a, 0xe1, 0xbe, 0x09, 0x44, 0x34, 0x6a, 0xf6, 0x8b, 0xa4, 0x9f, 0x20, 0x4c, 0x1e, 0xa6,
0xbe, 0x0b, 0xf3, 0xd3, 0x3c, 0x8e, 0x98, 0x69, 0x3d, 0x85, 0xc3, 0x39, 0x23, 0x8e, 0xbb, 0x95,
0x86, 0x5c, 0x96, 0x1c, 0xce, 0x19, 0xf1, 0x5d, 0x4c, 0x51, 0xf8, 0x6d, 0x00, 0xaa, 0x1b, 0x17,
0x0d, 0xe0, 0xa2, 0x79, 0x27, 0x39, 0x17, 0xfa, 0xa8, 0xaf, 0x8b, 0x8f, 0x89, 0xcf, 0x71, 0x15,
0x95, 0x31, 0x27, 0x2e, 0xa0, 0x67, 0x50, 0xf7, 0xc6, 0xdc, 0xb5, 0x62, 0x5e, 0x53, 0xc1, 0xa2,
0xde, 0x7e, 0x49, 0x51, 0x1d, 0x85, 0x6b, 0xd6, 0x44, 0xde, 0xe8, 0x93, 0xed, 0xd1, 0xc0, 0x73,
0xad, 0xb4, 0xea, 0x97, 0x28, 0xad, 0x8e, 0x99, 0xa3, 0x6f, 0xe3, 0x6f, 0x65, 0xa0, 0xa2, 0x35,
0x9b, 0x2d, 0xc3, 0xc2, 0xe6, 0xc1, 0xc1, 0x61, 0xdb, 0x6c, 0xf5, 0x3a, 0x9f, 0xb6, 0xad, 0xcd,
0xdd, 0x83, 0x6e, 0xbb, 0x71, 0x43, 0x80, 0x77, 0x0f, 0x36, 0x5b, 0xbb, 0xd6, 0xf6, 0x81, 0xb9,
0xa9, 0xc0, 0x19, 0xb6, 0x02, 0xcc, 0x6c, 0xef, 0x1d, 0xf4, 0xda, 0x09, 0x78, 0x96, 0x35, 0xa0,
0xba, 0x61, 0xb6, 0x5b, 0x9b, 0x3b, 0x12, 0x92, 0x63, 0x4b, 0xd0, 0xd8, 0x3e, 0xda, 0xdf, 0xea,
0xec, 0x3f, 0xb5, 0x36, 0x5b, 0xfb, 0x9b, 0xed, 0xdd, 0xf6, 0x56, 0x23, 0xcf, 0x6a, 0x50, 0x6e,
0x6d, 0xb4, 0xf6, 0xb7, 0x0e, 0xf6, 0xdb, 0x5b, 0x8d, 0x82, 0xf1, 0x5d, 0x28, 0xc7, 0x1d, 0xad,
0x40, 0xf1, 0x68, 0xff, 0xd9, 0xfe, 0xc1, 0x67, 0xfb, 0x8d, 0x1b, 0xac, 0x0c, 0x05, 0xac, 0xbf,
0x91, 0x61, 0x00, 0x73, 0x54, 0x67, 0x23, 0xcb, 0x4a, 0x90, 0xdf, 0x38, 0xe8, 0xed, 0x34, 0x72,
0xc6, 0x9f, 0x67, 0x60, 0x19, 0xbb, 0x3c, 0x98, 0x66, 0x02, 0xf7, 0xa0, 0xd2, 0xf7, 0xbc, 0xb1,
0xd0, 0xb4, 0x62, 0x89, 0x42, 0x07, 0x89, 0x05, 0x4e, 0xcc, 0xfb, 0xc4, 0xf3, 0xfb, 0x5c, 0xf2,
0x00, 0x40, 0xd0, 0xb6, 0x80, 0x08, 0x1a, 0x94, 0x44, 0x4c, 0x18, 0xc4, 0x02, 0x2a, 0x04, 0x23,
0x94, 0x15, 0x98, 0x3b, 0xf6, 0xb9, 0xdd, 0x3f, 0x93, 0xab, 0x5f, 0x7e, 0xb1, 0xf7, 0xe2, 0x33,
0x80, 0xbe, 0xa0, 0xa9, 0x21, 0x1f, 0xe0, 0x12, 0x28, 0x99, 0xf3, 0x12, 0xbe, 0x29, 0xc1, 0x62,
0x37, 0xb2, 0x8f, 0x6d, 0x77, 0xe0, 0xb9, 0x7c, 0x20, 0x55, 0x8d, 0x18, 0x60, 0x1c, 0xc2, 0xca,
0x74, 0xff, 0x24, 0xbf, 0xf8, 0x50, 0xe3, 0x17, 0x24, 0xf9, 0xaf, 0x5d, 0x4f, 0x0a, 0x1a, 0xef,
0xf8, 0x3b, 0x79, 0xc8, 0x0b, 0x49, 0xf0, 0x5a, 0xa1, 0x51, 0x17, 0xed, 0x73, 0x33, 0xe6, 0x1f,
0x3c, 0x6a, 0x20, 0x11, 0x81, 0xce, 0xb3, 0xca, 0x08, 0x41, 0xd1, 0x20, 0x4a, 0xf6, 0x79, 0xff,
0x5c, 0x1e, 0x68, 0x51, 0xb2, 0xc9, 0xfb, 0xe7, 0xa8, 0x53, 0xd9, 0x21, 0xe5, 0xa5, 0xf5, 0x5e,
0x0c, 0xec, 0x10, 0x73, 0xca, 0x24, 0xcc, 0x57, 0x8c, 0x92, 0x30, 0x57, 0x13, 0x8a, 0x8e, 0x7b,
0xec, 0x4d, 0xdc, 0x01, 0x2e, 0xef, 0x92, 0xa9, 0x3e, 0xd1, 0xda, 0x84, 0x9c, 0x48, 0x6c, 0x44,
0xb4, 0x9a, 0x4b, 0x02, 0xd0, 0x13, 0x5b, 0xd1, 0x07, 0x50, 0x0e, 0xae, 0xdc, 0xbe, 0xbe, 0x86,
0x97, 0xe4, 0xf8, 0x88, 0xde, 0xaf, 0x77, 0xaf, 0xdc, 0x3e, 0xae, 0xd8, 0x52, 0x20, 0x7f, 0xb1,
0x27, 0x50, 0x8a, 0xce, 0x7d, 0x89, 0x03, 0xdf, 0xd4, 0x73, 0xa8, 0xc3, 0x5e, 0x52, 0xaf, 0x23,
0x54, 0xf6, 0x10, 0xe6, 0xf0, 0x70, 0x36, 0x68, 0x56, 0x31, 0x93, 0x92, 0xf7, 0x45, 0x33, 0xd0,
0xd0, 0xc3, 0x07, 0x78, 0x50, 0x6b, 0x4a, 0xb4, 0xb5, 0x67, 0x50, 0x4b, 0x94, 0xa5, 0x2b, 0xd1,
0x35, 0x52, 0xa2, 0xdf, 0xd6, 0x95, 0xe8, 0x78, 0x27, 0x90, 0xd9, 0x74, 0xa5, 0xfa, 0x97, 0xa1,
0xa4, 0xba, 0x22, 0xd6, 0x9f, 0x5c, 0x3b, 0x56, 0xf7, 0xf9, 0xfe, 0x66, 0xe3, 0x06, 0x9b, 0x87,
0x4a, 0x6b, 0x13, 0x97, 0x34, 0x02, 0x32, 0x02, 0xe5, 0xb0, 0xd5, 0xed, 0x46, 0x90, 0xac, 0xb1,
0x0d, 0x8d, 0xe9, 0x96, 0x0a, 0x9a, 0x0c, 0x15, 0x4c, 0x1e, 0x5d, 0xc7, 0x00, 0xa1, 0x22, 0xd1,
0x69, 0x34, 0xc9, 0xe1, 0xf4, 0x61, 0x3c, 0x81, 0x86, 0xd8, 0xd7, 0xc4, 0x50, 0x05, 0xda, 0x11,
0xf0, 0x50, 0xc8, 0x76, 0xfa, 0xf1, 0x75, 0xc9, 0xac, 0x10, 0x0c, 0xab, 0x32, 0x3e, 0x84, 0x05,
0x2d, 0x5b, 0xac, 0xd2, 0x8a, 0xbd, 0x72, 0x5a, 0xa5, 0x45, 0x05, 0x86, 0x52, 0x8c, 0x55, 0x58,
0x16, 0x9f, 0xed, 0x73, 0xee, 0x86, 0xdd, 0xc9, 0x31, 0xd9, 0x1c, 0x1d, 0xcf, 0x15, 0x8a, 0x4d,
0x39, 0x4a, 0xb9, 0x9e, 0xc8, 0xd7, 0xa5, 0xf6, 0x9b, 0x45, 0xd2, 0x58, 0xd3, 0x6a, 0xc0, 0x8c,
0xeb, 0xf8, 0x37, 0xa1, 0x05, 0x97, 0x23, 0x90, 0x18, 0xd6, 0xc3, 0x76, 0xdb, 0xb4, 0x0e, 0xf6,
0x77, 0x3b, 0xfb, 0x82, 0x51, 0x8a, 0x61, 0x45, 0xc0, 0xf6, 0x36, 0x42, 0x32, 0x46, 0x03, 0xea,
0x4f, 0x79, 0xd8, 0x71, 0x4f, 0x3c, 0x65, 0x5f, 0xfb, 0x8b, 0x02, 0xcc, 0x47, 0xa0, 0x58, 0x8b,
0x3e, 0xe7, 0x7e, 0xe0, 0x78, 0x2e, 0x0a, 0xc4, 0x65, 0x53, 0x7d, 0x8a, 0xdd, 0xcd, 0x19, 0x70,
0x37, 0x74, 0xc2, 0x2b, 0x2b, 0x71, 0xe4, 0x56, 0x57, 0x60, 0xb9, 0x8b, 0x2e, 0x41, 0xc1, 0x1e,
0x3a, 0xb6, 0x32, 0xd5, 0xd2, 0x87, 0x80, 0xf6, 0xbd, 0xa1, 0xe7, 0xa3, 0xec, 0x5b, 0x36, 0xe9,
0x83, 0x3d, 0x82, 0x25, 0x21, 0x83, 0xeb, 0xe7, 0xa0, 0xc8, 0x3f, 0xe8, 0xf4, 0x8f, 0xb9, 0x93,
0xd1, 0x61, 0x7c, 0x16, 0x2a, 0x52, 0xc4, 0xde, 0x29, 0x72, 0x48, 0x61, 0x29, 0xca, 0x40, 0xea,
0xdc, 0x82, 0x3b, 0x19, 0xb5, 0x30, 0x25, 0xc2, 0x7f, 0x0c, 0xcb, 0x02, 0x3f, 0x12, 0xaf, 0xa2,
0x1c, 0xf3, 0x98, 0x43, 0x14, 0xd6, 0x91, 0x69, 0x51, 0x9e, 0x5b, 0x50, 0xa6, 0x56, 0x89, 0x19,
0x2f, 0x90, 0x18, 0x8f, 0x4d, 0xe1, 0x7e, 0x30, 0x63, 0x55, 0x9d, 0x23, 0x41, 0x60, 0xca, 0xaa,
0xaa, 0xd9, 0x65, 0x4b, 0xd3, 0x76, 0xd9, 0xc7, 0xb0, 0x7c, 0x2c, 0x48, 0xf0, 0x8c, 0xdb, 0x03,
0xee, 0x5b, 0x31, 0x61, 0x93, 0xba, 0xb2, 0x28, 0x12, 0x77, 0x30, 0x2d, 0x5a, 0x07, 0x42, 0xce,
0x11, 0x6c, 0x81, 0x0f, 0xac, 0xd0, 0xb3, 0x50, 0xfc, 0x41, 0x06, 0x53, 0x32, 0x6b, 0x04, 0xee,
0x79, 0x9b, 0x02, 0x98, 0xc4, 0x3b, 0xf5, 0xed, 0xf1, 0x99, 0x54, 0x28, 0x22, 0xbc, 0xa7, 0x02,
0xc8, 0x6e, 0x43, 0x51, 0x90, 0xbc, 0xcb, 0xc9, 0xf8, 0x45, 0x22, 0xbb, 0x02, 0xb1, 0xb7, 0x61,
0x0e, 0xeb, 0x08, 0x9a, 0x0d, 0xa4, 0xf7, 0x6a, 0xcc, 0xc8, 0x1d, 0xd7, 0x94, 0x69, 0x42, 0x98,
0x9c, 0xf8, 0x0e, 0x71, 0x99, 0xb2, 0x89, 0xbf, 0xd9, 0xf7, 0x35, 0x96, 0xb5, 0x88, 0x79, 0x95,
0x3c, 0x30, 0x45, 0x69, 0xd7, 0x71, 0xaf, 0xaf, 0x94, 0x19, 0xfd, 0x20, 0x5f, 0xaa, 0x34, 0xaa,
0xc6, 0xb7, 0xa1, 0x40, 0xa3, 0x23, 0x88, 0x10, 0xc7, 0x2e, 0x23, 0x89, 0x10, 0xa1, 0x4d, 0x28,
0xba, 0x3c, 0xbc, 0xf0, 0xfc, 0x17, 0xea, 0x50, 0x5a, 0x7e, 0x1a, 0x3f, 0xc6, 0xd3, 0x94, 0xc8,
0xe2, 0x4e, 0x8a, 0xa1, 0x20, 0x0f, 0x9a, 0xde, 0xe0, 0xcc, 0x96, 0x07, 0x3c, 0x25, 0x04, 0x74,
0xcf, 0xec, 0x19, 0xf2, 0xc8, 0xce, 0x1a, 0xdd, 0xdf, 0x86, 0xba, 0xb2, 0xf1, 0x07, 0xd6, 0x90,
0x9f, 0x84, 0x92, 0xdc, 0xab, 0xd2, 0xc0, 0x1f, 0xec, 0xf2, 0x93, 0xd0, 0xd8, 0x83, 0x05, 0x49,
0x90, 0x07, 0x63, 0xae, 0xaa, 0xfe, 0x4e, 0x9a, 0x3c, 0x5d, 0x79, 0xbc, 0x98, 0xdc, 0x68, 0xc9,
0x77, 0x21, 0x21, 0x64, 0x1b, 0x9f, 0x00, 0xd3, 0xb7, 0x61, 0x59, 0x9e, 0x94, 0x6a, 0xd5, 0x59,
0xbe, 0x32, 0x89, 0x45, 0xb2, 0xb3, 0x33, 0x10, 0xa3, 0x13, 0x4c, 0xfa, 0x7d, 0xe5, 0x7b, 0x51,
0x32, 0xd5, 0xa7, 0xf1, 0x27, 0x19, 0x58, 0xc4, 0xc2, 0x94, 0x3e, 0x20, 0x99, 0xec, 0xcf, 0xdc,
0x48, 0x31, 0x3f, 0xba, 0xec, 0x43, 0x1f, 0x5f, 0xfe, 0xf4, 0x34, 0x3f, 0x73, 0x7a, 0xfa, 0x1e,
0x34, 0x06, 0x7c, 0xe8, 0xa0, 0x1b, 0x8e, 0x12, 0x25, 0x48, 0x03, 0x98, 0x57, 0x70, 0xa9, 0x0d,
0x1a, 0xff, 0x30, 0x03, 0x0b, 0x24, 0xa9, 0xa0, 0x5e, 0x2d, 0x07, 0xea, 0x63, 0xa5, 0x48, 0x4a,
0x56, 0x25, 0xfb, 0x14, 0xef, 0xe0, 0x08, 0x25, 0xe4, 0x9d, 0x1b, 0x52, 0xc1, 0x94, 0x50, 0xf6,
0x11, 0xea, 0x30, 0xae, 0x85, 0xc0, 0x14, 0xb7, 0x9e, 0xe4, 0xa4, 0xec, 0xdc, 0x40, 0x05, 0xc7,
0x45, 0xd0, 0x46, 0x49, 0x68, 0xb6, 0x02, 0x6c, 0x6c, 0x43, 0x2d, 0x51, 0x4d, 0xe2, 0x88, 0xb7,
0x4a, 0x47, 0xbc, 0x33, 0x66, 0x94, 0xec, 0xac, 0x19, 0xe5, 0x0a, 0x16, 0x4d, 0x6e, 0x0f, 0xae,
0xb6, 0x3d, 0xff, 0x30, 0x38, 0x0e, 0xb7, 0x49, 0xfc, 0x13, 0xfc, 0x3d, 0xb2, 0x0d, 0x26, 0xce,
0x51, 0x95, 0x89, 0x48, 0xa9, 0xcb, 0x5f, 0x83, 0x7a, 0x6c, 0x44, 0xd4, 0xce, 0xe2, 0x6a, 0x91,
0x1d, 0x11, 0x8f, 0xe4, 0x84, 0xaa, 0x19, 0x1c, 0x87, 0xf2, 0x34, 0x0e, 0x7f, 0x1b, 0x7f, 0x23,
0x0f, 0x4c, 0x50, 0xf3, 0x14, 0xc1, 0x4c, 0x99, 0x3f, 0xb3, 0x33, 0xe6, 0xcf, 0x47, 0xc0, 0x34,
0x04, 0x65, 0x95, 0xcd, 0x45, 0x56, 0xd9, 0x46, 0x8c, 0x2b, 0x8d, 0xb2, 0x8f, 0x60, 0x49, 0xca,
0xd2, 0xc9, 0xa6, 0x12, 0x69, 0x30, 0x12, 0xaa, 0x13, 0xed, 0x55, 0xa6, 0x4f, 0xa1, 0xfe, 0xd3,
0x69, 0x1b, 0x9a, 0x3e, 0x95, 0xe2, 0xaf, 0x11, 0xe0, 0xdc, 0x2b, 0x09, 0xb0, 0x38, 0x43, 0x80,
0xda, 0xe1, 0x4f, 0x29, 0x79, 0xf8, 0x63, 0x40, 0x4d, 0x19, 0x38, 0xc9, 0xaf, 0x83, 0x04, 0xc7,
0x8a, 0xb4, 0x72, 0xa2, 0x6f, 0xc7, 0x7d, 0x68, 0xa8, 0x13, 0x9a, 0xe8, 0x78, 0x89, 0x7c, 0x16,
0xe4, 0x01, 0xdf, 0xa6, 0x3a, 0x64, 0x4a, 0x1c, 0xe6, 0x57, 0xa6, 0x0e, 0xf3, 0xdf, 0x87, 0x85,
0x40, 0xd0, 0xaf, 0x35, 0x71, 0xa5, 0x83, 0x11, 0x1f, 0xa0, 0xd6, 0x56, 0x32, 0x1b, 0x98, 0x70,
0x14, 0xc3, 0x67, 0x8f, 0x4e, 0x6a, 0x29, 0x47, 0x27, 0x4f, 0x62, 0x5b, 0x60, 0x70, 0xe6, 0x8c,
0x50, 0x66, 0x88, 0x9d, 0x71, 0xe4, 0x00, 0x77, 0xcf, 0x9c, 0x91, 0xa9, 0x0c, 0xcf, 0xe2, 0xc3,
0xf8, 0xbf, 0x19, 0x68, 0x08, 0x3a, 0x48, 0x2c, 0xb1, 0xef, 0x02, 0x32, 0x83, 0xd7, 0x5c, 0x61,
0x15, 0x81, 0xab, 0x16, 0xd8, 0xb7, 0x01, 0x57, 0x8c, 0x25, 0x54, 0x54, 0xb9, 0xbe, 0x9a, 0xc9,
0xf5, 0x15, 0xf3, 0xd0, 0x9d, 0x1b, 0xa4, 0x7b, 0x08, 0x08, 0xfb, 0x2e, 0x94, 0x05, 0x61, 0x22,
0x95, 0x48, 0x1f, 0x30, 0x25, 0x79, 0xa5, 0xac, 0x11, 0x91, 0x75, 0x2c, 0x3f, 0xd3, 0xcc, 0xb7,
0xf9, 0x14, 0xf3, 0xad, 0xb6, 0x80, 0x77, 0x00, 0x9e, 0xf1, 0xab, 0x5d, 0xaf, 0x8f, 0x7a, 0xe5,
0x1d, 0x00, 0x41, 0xcb, 0x27, 0xf6, 0xc8, 0x91, 0x67, 0x42, 0x05, 0xb3, 0xfc, 0x82, 0x5f, 0x6d,
0x23, 0x40, 0x4c, 0xa4, 0x48, 0x8e, 0x57, 0x71, 0xc1, 0x2c, 0xbd, 0xe0, 0x57, 0xb4, 0x84, 0x2d,
0xa8, 0x3d, 0xe3, 0x57, 0x5b, 0x9c, 0x84, 0x4c, 0xcf, 0x17, 0x44, 0xe4, 0xdb, 0x17, 0x42, 0xaa,
0x4c, 0x98, 0x5e, 0x2b, 0xbe, 0x7d, 0xf1, 0x8c, 0x5f, 0x29, 0x33, 0x70, 0x51, 0xa4, 0x0f, 0xbd,
0xbe, 0xdc, 0x37, 0x95, 0x13, 0x49, 0xdc, 0x28, 0x73, 0xee, 0x05, 0xfe, 0x36, 0xfe, 0x32, 0x03,
0x35, 0xd1, 0x7e, 0x64, 0xcb, 0x62, 0xca, 0x94, 0x2f, 0x52, 0x26, 0xf6, 0x45, 0x7a, 0x2c, 0xb9,
0x1a, 0xf1, 0xf8, 0xec, 0xf5, 0x3c, 0x1e, 0xe7, 0x86, 0x18, 0xfc, 0x07, 0x50, 0xa6, 0x65, 0x29,
0xd6, 0x79, 0x2e, 0x31, 0xc1, 0x89, 0x0e, 0x99, 0x25, 0x44, 0x7b, 0x46, 0xae, 0x0f, 0xda, 0xf9,
0x22, 0x0d, 0x71, 0xd9, 0x8f, 0x4e, 0x15, 0x53, 0xa6, 0xa1, 0x70, 0x8d, 0xeb, 0x83, 0x7e, 0x78,
0x37, 0x37, 0x73, 0x78, 0x77, 0x00, 0x25, 0x31, 0xd5, 0xd8, 0xd9, 0x94, 0x42, 0x33, 0x69, 0x85,
0x0a, 0x49, 0xc0, 0x16, 0x9b, 0x82, 0x60, 0x74, 0x59, 0x29, 0x09, 0xd8, 0x01, 0x3f, 0x44, 0x66,
0x97, 0x81, 0x8a, 0xb6, 0x02, 0xf0, 0xfc, 0x33, 0x1a, 0x2f, 0x5a, 0x2e, 0x49, 0x12, 0x4f, 0x0c,
0xf8, 0xce, 0x0d, 0xb3, 0xd6, 0x4f, 0xcc, 0xc0, 0xba, 0xa4, 0x55, 0xcc, 0x99, 0x4d, 0xb8, 0x4d,
0xa9, 0x86, 0x2b, 0x02, 0x15, 0xbf, 0x37, 0xe6, 0x20, 0x2f, 0x50, 0x8d, 0x8f, 0x61, 0x41, 0x6b,
0x06, 0xa9, 0xf9, 0xaf, 0xdb, 0x43, 0xe3, 0xd7, 0xa2, 0xcc, 0xa2, 0x0e, 0xb2, 0x50, 0x29, 0x37,
0x12, 0x3e, 0xa0, 0x8e, 0x4b, 0x77, 0x15, 0x02, 0x09, 0xb4, 0xd7, 0x76, 0x6d, 0xf8, 0x0d, 0x58,
0xd4, 0x4a, 0xdf, 0x76, 0x5c, 0x7b, 0xe8, 0xfc, 0x18, 0x37, 0xfc, 0xc0, 0x39, 0x75, 0xa7, 0xca,
0x27, 0xd0, 0x97, 0x2a, 0xff, 0x1f, 0x65, 0x61, 0x49, 0x56, 0x80, 0x8e, 0x81, 0x8e, 0x90, 0xe2,
0xf6, 0x82, 0x53, 0xf6, 0x5d, 0xa8, 0x89, 0xb1, 0xb1, 0x7c, 0x7e, 0xea, 0x04, 0x21, 0x57, 0x96,
0xb1, 0x14, 0xc6, 0x25, 0x36, 0x73, 0x81, 0x6a, 0x4a, 0x4c, 0xf6, 0x31, 0x54, 0x30, 0x2b, 0x1d,
0xa3, 0xc8, 0x89, 0x68, 0xce, 0x66, 0xa4, 0x81, 0xde, 0xb9, 0x61, 0x42, 0x10, 0x0f, 0xfb, 0xc7,
0x50, 0xc1, 0x39, 0x3c, 0xc7, 0x81, 0x9c, 0x62, 0x55, 0x33, 0x03, 0x2d, 0x32, 0x8f, 0xe3, 0x61,
0x6f, 0x41, 0x8d, 0x98, 0x95, 0x1c, 0x27, 0xe9, 0x70, 0xb4, 0x36, 0x9b, 0x5d, 0x8d, 0xa4, 0x68,
0xfc, 0x58, 0xfb, 0xde, 0x28, 0x43, 0x31, 0xf4, 0x9d, 0xd3, 0x53, 0xee, 0x1b, 0x2b, 0xd1, 0xd0,
0x08, 0x2e, 0xcc, 0xbb, 0x21, 0x1f, 0x0b, 0xd9, 0xdc, 0xf8, 0x0f, 0x19, 0xa8, 0x48, 0xbe, 0xfa,
0x33, 0x9b, 0xe3, 0xd6, 0x34, 0xcf, 0x5a, 0x3a, 0xb1, 0x89, 0x1d, 0x69, 0xdf, 0x85, 0xf9, 0x91,
0x90, 0xd3, 0x85, 0x1e, 0x99, 0xb0, 0xc5, 0xd5, 0x15, 0x58, 0x8a, 0xc9, 0xeb, 0xb0, 0x88, 0x52,
0x73, 0x60, 0x85, 0xce, 0xd0, 0x52, 0x89, 0xd2, 0x8b, 0x75, 0x81, 0x92, 0x7a, 0xce, 0x70, 0x4f,
0x26, 0x08, 0xe1, 0x31, 0x08, 0xed, 0x53, 0x2e, 0xd7, 0x36, 0x7d, 0x18, 0x4d, 0x58, 0x99, 0x52,
0x21, 0x95, 0xfa, 0xfb, 0xbf, 0x17, 0x60, 0x75, 0x26, 0x49, 0xaa, 0xc1, 0x91, 0x0d, 0x6a, 0xe8,
0x8c, 0x8e, 0xbd, 0xe8, 0x84, 0x36, 0xa3, 0xd9, 0xa0, 0x76, 0x45, 0x8a, 0x3a, 0xa1, 0xe5, 0xb0,
0xac, 0x08, 0x12, 0x8f, 0x58, 0x23, 0x2d, 0x33, 0x8b, 0x3a, 0xd0, 0x07, 0xc9, 0x4d, 0x6c, 0xba,
0x3a, 0x05, 0xd7, 0x45, 0xa3, 0xc5, 0xf1, 0x0c, 0x2c, 0x60, 0xbf, 0x09, 0xcd, 0x88, 0xee, 0xa5,
0xd8, 0xae, 0xa9, 0xcc, 0xa2, 0xa6, 0xaf, 0xbf, 0xa2, 0xa6, 0xc4, 0xd9, 0x1d, 0xca, 0x4e, 0x2b,
0x6a, 0xc9, 0x50, 0x81, 0x51, 0x5d, 0xe7, 0xf0, 0x86, 0xaa, 0x0b, 0xc5, 0xf0, 0xd9, 0x1a, 0xf3,
0xaf, 0xd5, 0x37, 0x3c, 0x97, 0x4c, 0x54, 0x6b, 0xde, 0x92, 0x05, 0x47, 0x49, 0x7a, 0xbd, 0x67,
0xb0, 0x72, 0x61, 0x3b, 0xa1, 0xea, 0xa3, 0xa6, 0xb1, 0x17, 0xb0, 0xbe, 0xc7, 0xaf, 0xa8, 0xef,
0x33, 0xca, 0x9c, 0x50, 0x4c, 0x96, 0x2e, 0x66, 0x81, 0xc1, 0xda, 0xdf, 0xcb, 0x41, 0x3d, 0x59,
0x8a, 0x60, 0x2c, 0x72, 0xb3, 0x51, 0xf2, 0xa6, 0x14, 0x82, 0xa5, 0xf5, 0x60, 0x9f, 0xe4, 0xcc,
0x59, 0xbb, 0x46, 0x36, 0xc5, 0xae, 0xa1, 0x9b, 0x13, 0x72, 0xaf, 0xb2, 0xdf, 0xe6, 0x5f, 0xcb,
0x7e, 0x5b, 0x48, 0xb3, 0xdf, 0x5e, 0x6f, 0xf4, 0x9b, 0xfb, 0x99, 0x8c, 0x7e, 0xc5, 0x97, 0x18,
0xfd, 0x12, 0xa6, 0xca, 0xd2, 0xb4, 0xa9, 0x32, 0xc5, 0xc4, 0x57, 0xfe, 0x12, 0x26, 0xbe, 0xb5,
0xbf, 0xcc, 0x00, 0x9b, 0x5d, 0x0b, 0xec, 0x29, 0x19, 0x88, 0x5c, 0x3e, 0x94, 0x7c, 0xfa, 0x1b,
0xaf, 0xb7, 0x9e, 0xd4, 0xf4, 0xab, 0xdc, 0xec, 0x21, 0x2c, 0xea, 0x9e, 0xf5, 0xba, 0x8e, 0x5e,
0x33, 0x99, 0x9e, 0x14, 0x9f, 0xe4, 0x68, 0xa6, 0xf1, 0xfc, 0x2b, 0x4d, 0xe3, 0x85, 0x57, 0x9a,
0xc6, 0xe7, 0x92, 0xa6, 0xf1, 0xb5, 0xff, 0x9c, 0x81, 0xc5, 0x14, 0x92, 0xfd, 0xea, 0xfa, 0x2c,
0x28, 0x2d, 0xc1, 0xc4, 0xb2, 0x92, 0xd2, 0x74, 0xfe, 0xb5, 0x0b, 0x95, 0x78, 0x2a, 0x54, 0xe4,
0xc9, 0x83, 0x57, 0xf1, 0x92, 0x38, 0x87, 0xa9, 0x67, 0x5f, 0xfb, 0xfd, 0x2c, 0x54, 0xb4, 0x44,
0x31, 0x8a, 0x44, 0xa0, 0x9a, 0x47, 0x12, 0xc9, 0x81, 0x78, 0xc2, 0x70, 0x17, 0xa4, 0x09, 0x83,
0xd2, 0x69, 0x29, 0x49, 0xa1, 0x0f, 0x11, 0xd6, 0x61, 0x51, 0x19, 0xef, 0x78, 0xec, 0x78, 0x28,
0x77, 0x96, 0x05, 0x69, 0xc2, 0xe3, 0x91, 0x1f, 0x23, 0x7b, 0xa8, 0x94, 0xbf, 0x78, 0xee, 0x90,
0xb0, 0xc9, 0x3e, 0xb0, 0x40, 0xcb, 0x41, 0x4d, 0xa2, 0xa0, 0xea, 0x0f, 0x60, 0x59, 0x2d, 0x86,
0x64, 0x0e, 0x32, 0x19, 0x30, 0xb9, 0x14, 0xf4, 0x2c, 0xdf, 0x87, 0x3b, 0x53, 0x6d, 0x9a, 0xca,
0x4a, 0x1e, 0xb2, 0x37, 0x13, 0xad, 0xd3, 0x4b, 0x58, 0xfb, 0x09, 0xd4, 0x12, 0x6c, 0xf1, 0xab,
0x9b, 0xf2, 0xe9, 0x53, 0x1d, 0x1a, 0x51, 0xfd, 0x54, 0x67, 0xed, 0xff, 0xe4, 0x80, 0xcd, 0x72,
0xe6, 0x5f, 0x64, 0x13, 0x66, 0x09, 0x33, 0x97, 0x42, 0x98, 0xff, 0xdf, 0xa4, 0x85, 0xf7, 0x61,
0x41, 0x46, 0x60, 0x69, 0x16, 0x58, 0x5a, 0x9c, 0x8d, 0x28, 0x41, 0xb5, 0xe2, 0xdb, 0xd3, 0x9e,
0x20, 0xa5, 0x44, 0xd0, 0x89, 0x26, 0x2e, 0x4d, 0x39, 0x84, 0x1c, 0xc1, 0x9c, 0xed, 0xf6, 0xcf,
0x3c, 0x5f, 0xf2, 0xc1, 0x5f, 0xfa, 0xd2, 0x9b, 0xe5, 0x7a, 0x0b, 0xf3, 0xa3, 0x8c, 0x66, 0xca,
0xc2, 0x8c, 0x0f, 0xa0, 0xa2, 0x81, 0xd1, 0x2a, 0xd9, 0xd9, 0xdb, 0x38, 0x68, 0xdc, 0x60, 0x35,
0x28, 0x9b, 0xed, 0xcd, 0x83, 0x4f, 0xdb, 0x66, 0x7b, 0xab, 0x91, 0x61, 0x25, 0xc8, 0xef, 0x1e,
0x74, 0x7b, 0x8d, 0xac, 0xb1, 0x06, 0x4d, 0x59, 0xe2, 0xac, 0x85, 0xe2, 0x77, 0xf2, 0xd1, 0xe1,
0x20, 0x26, 0x4a, 0x85, 0xfc, 0x9b, 0x50, 0xd5, 0x85, 0x19, 0x49, 0x11, 0x53, 0x4e, 0x00, 0x42,
0x15, 0xf7, 0x34, 0x5e, 0xbd, 0x09, 0x64, 0xda, 0x1d, 0x44, 0xd9, 0xb2, 0x09, 0x29, 0x35, 0xc5,
0x16, 0x88, 0xaa, 0x4e, 0x82, 0x0c, 0xff, 0x0a, 0xd4, 0x93, 0xc7, 0xf5, 0x92, 0x23, 0xa5, 0xa9,
0x97, 0x22, 0x77, 0xe2, 0xfc, 0x9e, 0x7d, 0x1f, 0x1a, 0xd3, 0xc7, 0xfd, 0x52, 0x54, 0xbe, 0x26,
0xff, 0xbc, 0x93, 0xb4, 0x00, 0xb0, 0x1d, 0x58, 0x4a, 0x13, 0xe7, 0x90, 0x3e, 0xae, 0x3f, 0x92,
0x60, 0xb3, 0x22, 0x1b, 0xfb, 0x8e, 0xb4, 0xea, 0x14, 0xd2, 0x6c, 0xe3, 0xda, 0x60, 0xaf, 0xd3,
0x3f, 0xcd, 0xbe, 0x73, 0x0e, 0x10, 0xc3, 0x58, 0x03, 0xaa, 0x07, 0x87, 0xed, 0x7d, 0x6b, 0x73,
0xa7, 0xb5, 0xbf, 0xdf, 0xde, 0x6d, 0xdc, 0x60, 0x0c, 0xea, 0x68, 0xd4, 0xde, 0x8a, 0x60, 0x19,
0x01, 0x93, 0xd6, 0x35, 0x05, 0xcb, 0xb2, 0x25, 0x68, 0x74, 0xf6, 0xa7, 0xa0, 0x39, 0xd6, 0x84,
0xa5, 0xc3, 0x36, 0xd9, 0xc1, 0x13, 0xe5, 0xe6, 0x85, 0x8a, 0x20, 0xbb, 0x2b, 0x54, 0x04, 0x8a,
0x24, 0x94, 0xeb, 0x40, 0x49, 0xce, 0xbf, 0x9b, 0x81, 0xe5, 0xa9, 0x84, 0x38, 0x3e, 0x84, 0xe4,
0xe6, 0xa4, 0xc4, 0x5c, 0x45, 0xa0, 0x5a, 0x4d, 0xef, 0xc3, 0x42, 0x74, 0xcc, 0x34, 0xb5, 0x2b,
0x35, 0xa2, 0x04, 0x85, 0xfc, 0x10, 0x16, 0xb5, 0xd3, 0xaa, 0x29, 0x5e, 0xc1, 0xb4, 0x24, 0x99,
0xc1, 0x58, 0x8d, 0xfc, 0xf0, 0xa7, 0x5a, 0x3d, 0xa0, 0xf0, 0x44, 0x3d, 0x21, 0x36, 0x7a, 0x25,
0xdb, 0xab, 0x3e, 0xd9, 0xa3, 0x29, 0x42, 0x48, 0xb6, 0x56, 0x9f, 0x70, 0x55, 0xfd, 0x1f, 0xcc,
0x01, 0xfb, 0x64, 0xc2, 0xfd, 0x2b, 0x8c, 0xff, 0x08, 0x5e, 0xe5, 0x10, 0xa9, 0xce, 0x55, 0xb2,
0xaf, 0x15, 0xe3, 0x95, 0x16, 0x63, 0x95, 0x7f, 0x75, 0x8c, 0x55, 0xe1, 0x55, 0x31, 0x56, 0x6f,
0x41, 0xcd, 0x39, 0x75, 0x3d, 0xc1, 0x0a, 0x85, 0xdc, 0x1b, 0x34, 0xe7, 0xee, 0xe5, 0xee, 0x57,
0xcd, 0xaa, 0x04, 0x0a, 0xa9, 0x37, 0x60, 0x1f, 0xc7, 0x48, 0x7c, 0x70, 0x8a, 0xf1, 0x80, 0x3a,
0x13, 0x6c, 0x0f, 0x4e, 0xb9, 0x3c, 0x46, 0x42, 0xbd, 0x42, 0x65, 0x16, 0xf0, 0x80, 0xbd, 0x0d,
0xf5, 0xc0, 0x9b, 0x08, 0x35, 0x42, 0x0d, 0x03, 0x99, 0xc5, 0xaa, 0x04, 0x3d, 0x54, 0x36, 0xd0,
0xc5, 0x49, 0xc0, 0xad, 0x91, 0x13, 0x04, 0x42, 0x3c, 0xeb, 0x7b, 0x6e, 0xe8, 0x7b, 0x43, 0x69,
0xe9, 0x5a, 0x98, 0x04, 0x7c, 0x8f, 0x52, 0x36, 0x29, 0x81, 0x7d, 0x2b, 0x6e, 0xd2, 0xd8, 0x76,
0xfc, 0xa0, 0x09, 0xd8, 0x24, 0xd5, 0x53, 0x94, 0xd6, 0x6d, 0xc7, 0x8f, 0xda, 0x22, 0x3e, 0x82,
0xa9, 0xd8, 0xaf, 0xca, 0x74, 0xec, 0xd7, 0x8f, 0xd2, 0x63, 0xbf, 0x6a, 0x58, 0xf4, 0x23, 0x59,
0xf4, 0xec, 0x14, 0x7f, 0xa9, 0x10, 0xb0, 0xd9, 0x90, 0xb6, 0xfa, 0x97, 0x09, 0x69, 0x9b, 0x4f,
0x0b, 0x69, 0xfb, 0x00, 0x2a, 0x18, 0x6c, 0x64, 0x9d, 0x39, 0x42, 0x86, 0x23, 0xcb, 0x5d, 0x43,
0x8f, 0x46, 0xda, 0x71, 0xdc, 0xd0, 0x04, 0x5f, 0xfd, 0x0c, 0x66, 0xa3, 0xcb, 0x16, 0x7e, 0x81,
0xd1, 0x65, 0x32, 0x28, 0x6a, 0x1d, 0x4a, 0x6a, 0x9e, 0x18, 0x83, 0xfc, 0x89, 0xef, 0x8d, 0x94,
0x45, 0x43, 0xfc, 0x66, 0x75, 0xc8, 0x86, 0x9e, 0xcc, 0x9c, 0x0d, 0x3d, 0xe3, 0xd7, 0xa1, 0xa2,
0x91, 0x1a, 0x7b, 0x93, 0x4e, 0x21, 0x85, 0x26, 0x26, 0x65, 0x4b, 0x1a, 0xc5, 0xb2, 0x84, 0x76,
0x06, 0x82, 0xdf, 0x0c, 0x1c, 0x9f, 0x63, 0x1c, 0xa8, 0xe5, 0xf3, 0x73, 0xee, 0x07, 0xca, 0xc2,
0xd4, 0x88, 0x12, 0x4c, 0x82, 0x1b, 0xbf, 0x01, 0x8b, 0x89, 0xb9, 0x95, 0x2c, 0xe2, 0x6d, 0x98,
0xc3, 0x71, 0x53, 0x1e, 0x00, 0xc9, 0x28, 0x2f, 0x99, 0x86, 0x01, 0xfe, 0x64, 0x1c, 0xb3, 0xc6,
0xbe, 0x77, 0x8c, 0x95, 0x64, 0xcc, 0x8a, 0x84, 0x1d, 0xfa, 0xde, 0xb1, 0xf1, 0x67, 0x39, 0xc8,
0xed, 0x78, 0x63, 0xdd, 0xe9, 0x2d, 0x33, 0xe3, 0xf4, 0x26, 0xd5, 0x4b, 0x2b, 0x52, 0x1f, 0xa5,
0xcc, 0x8e, 0x66, 0x21, 0xa5, 0x42, 0xde, 0x87, 0xba, 0xe0, 0x13, 0xa1, 0x27, 0xf4, 0xf3, 0x0b,
0xdb, 0x27, 0x81, 0x38, 0x47, 0x8b, 0xcf, 0x1e, 0x85, 0x3d, 0x6f, 0x9b, 0xe0, 0x6c, 0x09, 0x72,
0x91, 0xfa, 0x82, 0xc9, 0xe2, 0x93, 0xad, 0xc0, 0x1c, 0x7a, 0x3f, 0x5f, 0x49, 0x13, 0xb7, 0xfc,
0x62, 0xdf, 0x80, 0xc5, 0x64, 0xb9, 0xc4, 0x8a, 0xa4, 0x6c, 0xa4, 0x17, 0x8c, 0x3c, 0xe9, 0x26,
0x08, 0x3e, 0x42, 0x38, 0xd2, 0x53, 0xe6, 0x84, 0x73, 0x4c, 0xd2, 0x98, 0x5e, 0x29, 0xc1, 0xf4,
0xee, 0x42, 0x25, 0x1c, 0x9e, 0x5b, 0x63, 0xfb, 0x6a, 0xe8, 0xd9, 0x03, 0xb9, 0xbe, 0x21, 0x1c,
0x9e, 0x1f, 0x12, 0x84, 0x3d, 0x04, 0x18, 0x8d, 0xc7, 0x72, 0xed, 0xa1, 0xa9, 0x23, 0x26, 0xe5,
0xbd, 0xc3, 0x43, 0x22, 0x39, 0xb3, 0x3c, 0x1a, 0x8f, 0xe9, 0x27, 0xdb, 0x82, 0x7a, 0x6a, 0xac,
0xe6, 0x1d, 0xe5, 0xac, 0xeb, 0x8d, 0xd7, 0x53, 0x16, 0x67, 0xad, 0xaf, 0xc3, 0xd6, 0xbe, 0x0f,
0xec, 0xe7, 0x8c, 0x98, 0xec, 0x41, 0x39, 0x6a, 0x9f, 0x1e, 0x70, 0x88, 0xee, 0xf7, 0x95, 0x44,
0xc0, 0x61, 0x6b, 0x30, 0xf0, 0x05, 0x5f, 0xa4, 0x0d, 0x33, 0x62, 0xf9, 0xa0, 0xed, 0x98, 0x2d,
0xe2, 0xfb, 0xc6, 0x7f, 0xcb, 0x40, 0x81, 0xa2, 0x1f, 0xdf, 0x81, 0x79, 0xc2, 0x8f, 0x1c, 0x08,
0xa5, 0x61, 0x9c, 0xf6, 0xdd, 0x9e, 0xf4, 0x1d, 0x14, 0xcb, 0x42, 0x8b, 0xdc, 0xce, 0x46, 0x33,
0xaf, 0x45, 0x6f, 0xdf, 0x85, 0x72, 0x54, 0xb5, 0x46, 0x3a, 0x25, 0x55, 0x33, 0x7b, 0x03, 0xf2,
0x67, 0xde, 0x58, 0x9d, 0xf3, 0x40, 0x3c, 0x92, 0x26, 0xc2, 0xe3, 0xb6, 0x88, 0x3a, 0xa8, 0xf1,
0xf2, 0x7c, 0x22, 0xaa, 0x04, 0xc9, 0x60, 0xb6, 0x8f, 0x73, 0x29, 0x7d, 0x3c, 0x82, 0x79, 0xc1,
0x07, 0x34, 0x07, 0x95, 0xeb, 0x37, 0xcd, 0xf7, 0x84, 0x84, 0xd7, 0x1f, 0x4e, 0x06, 0x5c, 0x3f,
0x69, 0x43, 0x6f, 0x36, 0x09, 0x57, 0x92, 0xb5, 0xf1, 0x07, 0x19, 0xe2, 0x2f, 0xa2, 0x5c, 0x76,
0x1f, 0xf2, 0x62, 0x7f, 0x9b, 0x3a, 0x77, 0x8f, 0xe2, 0x20, 0x04, 0x9e, 0x89, 0x18, 0x78, 0xdd,
0xc1, 0x64, 0x94, 0x2c, 0xbd, 0x66, 0x56, 0xdc, 0xc9, 0x28, 0x3a, 0xa8, 0xfa, 0x9a, 0xea, 0xd6,
0xd4, 0x21, 0x0f, 0xf5, 0x3e, 0x5a, 0xa6, 0xeb, 0x9a, 0x5b, 0x5c, 0x3e, 0xb1, 0x63, 0x2a, 0x29,
0x70, 0x70, 0xca, 0x35, 0x77, 0xb8, 0x3f, 0xca, 0x42, 0x2d, 0xd1, 0x22, 0xf4, 0x0b, 0x14, 0x1b,
0x00, 0x99, 0x91, 0xe4, 0x7c, 0x83, 0x00, 0x49, 0x41, 0x5d, 0x1b, 0xa7, 0x6c, 0x62, 0x9c, 0x22,
0x57, 0x9c, 0x9c, 0xee, 0x8a, 0xf3, 0x08, 0xca, 0x71, 0xc4, 0x7e, 0xb2, 0x49, 0xa2, 0x3e, 0x15,
0x0d, 0x12, 0x23, 0xc5, 0xce, 0x3b, 0x05, 0xdd, 0x79, 0xe7, 0x7b, 0x9a, 0xaf, 0xc7, 0x1c, 0x16,
0x63, 0xa4, 0x8d, 0xe8, 0x2f, 0xc4, 0xd3, 0xc3, 0xf8, 0x18, 0x2a, 0x5a, 0xe3, 0x75, 0x9f, 0x8e,
0x4c, 0xc2, 0xa7, 0x23, 0x8a, 0xdb, 0xca, 0xc6, 0x71, 0x5b, 0xc6, 0x6f, 0x65, 0xa1, 0x26, 0xd6,
0x97, 0xe3, 0x9e, 0x1e, 0x7a, 0x43, 0xa7, 0x8f, 0x66, 0xa5, 0x68, 0x85, 0x49, 0x41, 0x4b, 0xad,
0x33, 0xb9, 0xc4, 0x48, 0xce, 0xd2, 0xc3, 0x53, 0x89, 0x49, 0x47, 0xe1, 0xa9, 0x06, 0xd4, 0x04,
0x63, 0x44, 0x03, 0x51, 0x7c, 0x9f, 0x80, 0x59, 0x39, 0xe1, 0x7c, 0xc3, 0x0e, 0x88, 0x43, 0x7e,
0x03, 0x16, 0x05, 0x0e, 0x46, 0xe6, 0x8d, 0x9c, 0xe1, 0xd0, 0x21, 0x4c, 0x3a, 0x68, 0x6a, 0x9c,
0x70, 0x6e, 0xda, 0x21, 0xdf, 0x13, 0x09, 0xf2, 0xfa, 0x81, 0xd2, 0xc0, 0x09, 0xec, 0xe3, 0xd8,
0x7b, 0x33, 0xfa, 0x46, 0x3b, 0xb2, 0x7d, 0xa9, 0xd9, 0x91, 0xe9, 0x00, 0xa2, 0x32, 0xb2, 0x2f,
0x23, 0x3b, 0xf2, 0x14, 0x25, 0x15, 0xa7, 0x29, 0xc9, 0xf8, 0x77, 0x59, 0xa8, 0x68, 0x64, 0xf9,
0x3a, 0xbb, 0xeb, 0x9d, 0x19, 0x33, 0x60, 0x59, 0xb7, 0xf8, 0xbd, 0x95, 0xac, 0x12, 0x3d, 0x5d,
0xe8, 0xa2, 0x03, 0x8d, 0x80, 0x6f, 0x41, 0x59, 0xac, 0xba, 0x0f, 0xf0, 0xc0, 0x55, 0x5e, 0xd3,
0x81, 0x80, 0xc3, 0xc9, 0xb1, 0x4a, 0x7c, 0x8c, 0x89, 0x85, 0x38, 0xf1, 0xb1, 0x48, 0x7c, 0x99,
0xcb, 0xf6, 0xb7, 0xa1, 0x2a, 0x4b, 0xc5, 0x39, 0xc5, 0xee, 0xc6, 0xab, 0x3e, 0x31, 0xdf, 0x66,
0x85, 0xaa, 0xa3, 0xc9, 0x97, 0x19, 0x1f, 0xab, 0x8c, 0xa5, 0x57, 0x65, 0x7c, 0x4c, 0x1f, 0xc6,
0x76, 0xe4, 0x05, 0x8f, 0x5e, 0x56, 0x8a, 0x8f, 0x3d, 0x84, 0x45, 0xc5, 0xae, 0x26, 0xae, 0xed,
0xba, 0xde, 0xc4, 0xed, 0x73, 0x15, 0xd0, 0xc5, 0x64, 0xd2, 0x51, 0x9c, 0x62, 0x0c, 0xa2, 0x88,
0x5f, 0xf2, 0xd6, 0x7a, 0x00, 0x05, 0x92, 0xcb, 0x49, 0xf8, 0x48, 0x67, 0x5c, 0x84, 0xc2, 0xee,
0x43, 0x81, 0xc4, 0xf3, 0xec, 0xb5, 0xcc, 0x86, 0x10, 0x8c, 0x16, 0x30, 0x91, 0x71, 0x8f, 0x87,
0xbe, 0xd3, 0x0f, 0xe2, 0x58, 0xb1, 0x82, 0xd0, 0x3f, 0xa9, 0xae, 0xf8, 0xe4, 0x36, 0xc6, 0x44,
0x1d, 0x95, 0x70, 0xc4, 0xc6, 0xb4, 0x98, 0x28, 0x43, 0x8a, 0x4b, 0x43, 0x58, 0x39, 0xe6, 0xe1,
0x05, 0xe7, 0xae, 0x2b, 0x84, 0xa1, 0x3e, 0x77, 0x43, 0xdf, 0x1e, 0x8a, 0x49, 0xa2, 0x1e, 0x3c,
0x99, 0x29, 0x35, 0x3e, 0x03, 0xd9, 0x88, 0x33, 0x6e, 0x46, 0xf9, 0x88, 0x77, 0x2c, 0x1f, 0xa7,
0xa5, 0xad, 0xfd, 0x1a, 0xac, 0x5d, 0x9f, 0x29, 0x25, 0x22, 0xf4, 0x7e, 0x92, 0xab, 0x44, 0x56,
0xbf, 0xa1, 0x67, 0x87, 0xd4, 0x1a, 0x9d, 0xb3, 0xec, 0x43, 0x45, 0x4b, 0x89, 0xf7, 0xfe, 0x0c,
0x0a, 0x77, 0xf4, 0x21, 0x76, 0x24, 0xd7, 0xf3, 0x47, 0x68, 0x65, 0x1b, 0x58, 0x71, 0xe9, 0x19,
0x73, 0x3e, 0x86, 0x63, 0x08, 0xbc, 0xb1, 0x0e, 0xf3, 0x28, 0xd9, 0x6b, 0x1b, 0xdd, 0xcb, 0x84,
0x41, 0x63, 0x09, 0xd8, 0x3e, 0xf1, 0x2e, 0xdd, 0x79, 0xf3, 0xbf, 0xe4, 0xa0, 0xa2, 0x81, 0xc5,
0x6e, 0x84, 0xee, 0x7e, 0xd6, 0xc0, 0xb1, 0x47, 0x5c, 0x99, 0x34, 0x6b, 0x66, 0x0d, 0xa1, 0x5b,
0x12, 0x28, 0xf6, 0x62, 0xfb, 0xfc, 0xd4, 0xf2, 0x26, 0xa1, 0x35, 0xe0, 0xa7, 0x3e, 0x57, 0xad,
0xac, 0xda, 0xe7, 0xa7, 0x07, 0x93, 0x70, 0x0b, 0x61, 0x02, 0x4b, 0xf0, 0x12, 0x0d, 0x4b, 0x7a,
0xa8, 0x8d, 0xec, 0xcb, 0x18, 0x4b, 0xba, 0x49, 0x12, 0x65, 0xe6, 0x23, 0x37, 0x49, 0xd2, 0x16,
0xa7, 0x37, 0xd0, 0xc2, 0xec, 0x06, 0xfa, 0x2d, 0x58, 0xa1, 0x0d, 0x54, 0xb2, 0x66, 0x6b, 0x6a,
0x25, 0x2f, 0x61, 0xaa, 0xec, 0xa4, 0x26, 0xf6, 0x36, 0x44, 0x0f, 0x14, 0x5b, 0x0a, 0x9c, 0x1f,
0x13, 0x23, 0xcb, 0x98, 0xa2, 0x67, 0xb2, 0xf0, 0xae, 0xf3, 0x63, 0x2e, 0x30, 0xd1, 0x17, 0x46,
0xc7, 0x94, 0x01, 0x19, 0x23, 0xc7, 0x9d, 0xc6, 0xb4, 0x2f, 0x93, 0x98, 0x65, 0x89, 0x69, 0x5f,
0xea, 0x98, 0x4f, 0x60, 0x75, 0xc4, 0x07, 0x8e, 0x9d, 0x2c, 0xd6, 0x8a, 0x05, 0xb7, 0x25, 0x4a,
0xd6, 0xf2, 0x74, 0x49, 0x71, 0x17, 0xa3, 0xf1, 0x63, 0x6f, 0x74, 0xec, 0x90, 0xcc, 0x42, 0xde,
0x39, 0x79, 0xb3, 0xee, 0x4e, 0x46, 0x3f, 0x44, 0xb0, 0xc8, 0x12, 0x18, 0x35, 0xa8, 0x74, 0x43,
0x6f, 0xac, 0xa6, 0xb9, 0x0e, 0x55, 0xfa, 0x94, 0x51, 0x92, 0xb7, 0xe0, 0x26, 0xb2, 0x84, 0x9e,
0x37, 0xf6, 0x86, 0xde, 0xe9, 0x55, 0xe2, 0x1c, 0xef, 0x3f, 0x66, 0x60, 0x31, 0x91, 0x2a, 0xd9,
0xeb, 0xb7, 0x88, 0x9f, 0x45, 0xa1, 0x6e, 0xb4, 0x06, 0x17, 0xb4, 0x35, 0x48, 0x88, 0xc4, 0xcc,
0x54, 0xf8, 0x5b, 0x2b, 0xbe, 0xa2, 0x41, 0x65, 0x24, 0x96, 0xd2, 0x9c, 0x65, 0x29, 0x32, 0xbf,
0xba, 0xbc, 0x41, 0x15, 0xf1, 0x4b, 0x32, 0x68, 0x66, 0x20, 0xbb, 0x9c, 0x4b, 0x86, 0x05, 0xe8,
0x67, 0x7e, 0xaa, 0x05, 0xf1, 0x41, 0x60, 0x60, 0xfc, 0xf3, 0x0c, 0x40, 0xdc, 0x3a, 0x0c, 0x4c,
0x88, 0xe4, 0x16, 0xba, 0xfd, 0x4c, 0x93, 0x51, 0xde, 0x84, 0x6a, 0xe4, 0x9f, 0x1c, 0x4b, 0x42,
0x15, 0x05, 0x13, 0xe2, 0xd0, 0xbb, 0x30, 0x7f, 0x3a, 0xf4, 0x8e, 0x51, 0x62, 0x95, 0x72, 0x0b,
0x79, 0xa7, 0xd5, 0x09, 0xac, 0xa4, 0x91, 0x58, 0x6e, 0xca, 0xa7, 0xba, 0x30, 0xeb, 0x52, 0x90,
0xf1, 0xdb, 0xd9, 0xc8, 0x51, 0x33, 0x1e, 0x89, 0x97, 0xab, 0x77, 0x3f, 0x8b, 0xe7, 0xcc, 0xcb,
0x8c, 0x89, 0x1f, 0x43, 0xdd, 0xa7, 0x4d, 0x49, 0xed, 0x58, 0xf9, 0x97, 0xec, 0x58, 0x35, 0x3f,
0x21, 0xe9, 0xbc, 0x07, 0x0d, 0x7b, 0x70, 0xce, 0xfd, 0xd0, 0xc1, 0xd3, 0x7a, 0x94, 0x8f, 0xa5,
0x6b, 0xa4, 0x06, 0x47, 0x41, 0xf4, 0x5d, 0x98, 0x97, 0x91, 0xbb, 0x11, 0xa6, 0xbc, 0x0b, 0x28,
0x06, 0x0b, 0x44, 0xe3, 0x5f, 0x2a, 0xcf, 0xd0, 0xe4, 0xec, 0xbe, 0x7c, 0x54, 0xf4, 0x1e, 0x66,
0x67, 0xcd, 0xa5, 0x92, 0x90, 0xa4, 0x11, 0x40, 0xf2, 0x23, 0x02, 0x4a, 0x13, 0x40, 0x72, 0x58,
0xf3, 0xaf, 0x33, 0xac, 0xc6, 0x7f, 0xca, 0x40, 0x71, 0xc7, 0x1b, 0xef, 0x38, 0xe4, 0x9a, 0x8f,
0xcb, 0x24, 0xb2, 0x51, 0xcd, 0x89, 0x4f, 0x74, 0xf3, 0x79, 0x49, 0x80, 0x5a, 0xaa, 0x98, 0x57,
0x4b, 0x8a, 0x79, 0xdf, 0x83, 0x5b, 0x68, 0x02, 0xf4, 0xbd, 0xb1, 0xe7, 0x8b, 0xa5, 0x6a, 0x0f,
0x49, 0xdc, 0xf3, 0xdc, 0xf0, 0x4c, 0xf1, 0xce, 0x9b, 0x27, 0x9c, 0x1f, 0x6a, 0x18, 0x7b, 0x11,
0x02, 0x86, 0x80, 0x0e, 0xc3, 0x73, 0x8b, 0x34, 0x74, 0x29, 0x8f, 0x12, 0x47, 0x9d, 0x17, 0x09,
0x6d, 0x84, 0xa3, 0x44, 0x6a, 0x7c, 0x07, 0xca, 0xd1, 0x61, 0x0f, 0x7b, 0x1f, 0xca, 0x67, 0xde,
0x58, 0x9e, 0x08, 0x65, 0x12, 0x41, 0x7c, 0xb2, 0xd7, 0x66, 0xe9, 0x8c, 0x7e, 0x04, 0xc6, 0x9f,
0x15, 0xa1, 0xd8, 0x71, 0xcf, 0x3d, 0xa7, 0x8f, 0xbe, 0xa5, 0x23, 0x3e, 0xf2, 0xd4, 0xf5, 0x01,
0xe2, 0x37, 0x7a, 0x62, 0xc5, 0x37, 0xfa, 0xe4, 0xa4, 0x27, 0x56, 0x74, 0x97, 0xcf, 0x32, 0xcc,
0xf9, 0xfa, 0x95, 0x3c, 0x05, 0x1f, 0xbd, 0xdd, 0xa3, 0xfd, 0xb2, 0xa0, 0x5d, 0xbf, 0x20, 0xca,
0xa2, 0xab, 0x62, 0x70, 0xc8, 0x28, 0x9c, 0xb3, 0x8c, 0x10, 0x1c, 0xb0, 0xdb, 0x50, 0x94, 0x31,
0x73, 0x14, 0x81, 0x44, 0xee, 0xe9, 0x12, 0x84, 0xd4, 0xe0, 0x73, 0x32, 0xe1, 0x46, 0x82, 0x6c,
0xce, 0xac, 0x2a, 0xe0, 0x96, 0xa0, 0xb5, 0xbb, 0x50, 0x21, 0x7c, 0x42, 0x29, 0x49, 0x97, 0x4c,
0x04, 0x21, 0x42, 0xca, 0xcd, 0x56, 0xe5, 0xd4, 0x9b, 0xad, 0xd0, 0x79, 0x38, 0xe2, 0xb2, 0xd4,
0x45, 0xa0, 0xfb, 0x8c, 0x34, 0xb8, 0xba, 0xd6, 0x4d, 0x9e, 0xa9, 0x50, 0x74, 0xb3, 0x3a, 0x53,
0x79, 0x0b, 0x6a, 0x27, 0xf6, 0x70, 0x78, 0x6c, 0xf7, 0x5f, 0xd0, 0x51, 0x40, 0x95, 0x4e, 0x3f,
0x15, 0x10, 0xcf, 0x02, 0xee, 0x42, 0x45, 0x9b, 0x65, 0xf4, 0xb7, 0xcc, 0x9b, 0x10, 0xcf, 0xef,
0xf4, 0x09, 0x5f, 0xfd, 0x35, 0x4e, 0xf8, 0x34, 0xbf, 0xd3, 0xf9, 0xa4, 0xdf, 0xe9, 0x2d, 0xe4,
0xa6, 0xd2, 0xc1, 0xb0, 0x41, 0x97, 0xe7, 0xd8, 0x83, 0x01, 0x3a, 0x18, 0xd2, 0x4d, 0x95, 0x38,
0x78, 0x94, 0xbe, 0x40, 0xba, 0x04, 0xc1, 0x08, 0xe5, 0x0e, 0x1d, 0x53, 0x8f, 0x6d, 0x67, 0x80,
0x21, 0x06, 0x74, 0x7a, 0x50, 0xb4, 0x47, 0xe1, 0xa1, 0xed, 0x0c, 0xd8, 0x3d, 0xa8, 0xaa, 0x64,
0xdc, 0x1d, 0x17, 0x69, 0xfc, 0x65, 0xb2, 0xd8, 0x13, 0x0d, 0xa8, 0x45, 0x18, 0xa3, 0x38, 0x44,
0xb9, 0x22, 0x51, 0x90, 0x0e, 0x3e, 0x40, 0x9f, 0x9e, 0x90, 0x63, 0x20, 0x72, 0xfd, 0xf1, 0x2d,
0xd9, 0x57, 0x49, 0xa5, 0xea, 0x3f, 0x19, 0xc7, 0x08, 0x53, 0x08, 0x77, 0x64, 0xa3, 0x5b, 0x49,
0xc8, 0xbf, 0x12, 0x15, 0x6d, 0x74, 0x84, 0xc0, 0xbe, 0xa3, 0xe9, 0xaf, 0x4d, 0x44, 0xbe, 0x3d,
0x55, 0xfe, 0x75, 0x11, 0x56, 0x77, 0x00, 0x9c, 0x40, 0xec, 0x32, 0x01, 0x77, 0x07, 0x18, 0x53,
0x5c, 0x32, 0xcb, 0x4e, 0xf0, 0x8c, 0x00, 0x5f, 0xad, 0x62, 0xdb, 0x82, 0xaa, 0xde, 0x4d, 0x56,
0x82, 0xfc, 0xc1, 0x61, 0x7b, 0xbf, 0x71, 0x83, 0x55, 0xa0, 0xd8, 0x6d, 0xf7, 0x7a, 0xbb, 0x68,
0xe9, 0xab, 0x42, 0x29, 0x0a, 0x68, 0xcc, 0x8a, 0xaf, 0xd6, 0xe6, 0x66, 0xfb, 0xb0, 0xd7, 0xde,
0x6a, 0xe4, 0x7e, 0x90, 0x2f, 0x65, 0x1b, 0x39, 0xe3, 0xcf, 0x73, 0x50, 0xd1, 0x46, 0xe1, 0xe5,
0xcc, 0xf8, 0x0e, 0x00, 0x6a, 0x92, 0xb1, 0xff, 0x69, 0xde, 0x2c, 0x0b, 0x08, 0x4d, 0xbe, 0x6e,
0xa3, 0xc8, 0xd1, 0xad, 0x4c, 0xca, 0x46, 0xf1, 0x16, 0xd4, 0xe8, 0x82, 0x23, 0xdd, 0x5e, 0x5b,
0x30, 0xab, 0x04, 0x94, 0xac, 0x1a, 0x23, 0xa2, 0x11, 0x09, 0x63, 0xe5, 0xe4, 0x75, 0x27, 0x04,
0xc2, 0x68, 0x39, 0x0c, 0x75, 0x0c, 0xbc, 0xe1, 0x39, 0x27, 0x0c, 0x92, 0x08, 0x2b, 0x12, 0xd6,
0x93, 0xb1, 0xdd, 0x92, 0x1f, 0x6a, 0x21, 0xb9, 0x05, 0xb3, 0x4a, 0x40, 0x59, 0xd1, 0x37, 0x14,
0x01, 0x95, 0x90, 0x80, 0x56, 0x67, 0xa9, 0x21, 0x41, 0x3c, 0xbb, 0x33, 0xc7, 0x88, 0x65, 0x24,
0x8c, 0xaf, 0xcd, 0xe6, 0x7b, 0xf5, 0x71, 0x22, 0x7b, 0x1f, 0xd8, 0x68, 0x3c, 0xb6, 0x52, 0x0e,
0xf8, 0xf2, 0xe6, 0xfc, 0x68, 0x3c, 0xee, 0x69, 0xe7, 0x5f, 0x5f, 0xc1, 0xd9, 0xe3, 0xe7, 0xc0,
0x5a, 0x62, 0x01, 0x63, 0x13, 0x23, 0x55, 0x2c, 0x66, 0xcb, 0x19, 0x9d, 0x2d, 0xa7, 0x70, 0xbf,
0x6c, 0x2a, 0xf7, 0x7b, 0x19, 0x9f, 0x30, 0xb6, 0xa1, 0x72, 0xa8, 0x5d, 0x9f, 0x76, 0x4f, 0xec,
0x10, 0xea, 0xe2, 0x34, 0xda, 0x3b, 0xe8, 0x4c, 0xd1, 0x97, 0xf7, 0xa5, 0x69, 0xad, 0xc9, 0x6a,
0xad, 0x31, 0xfe, 0x59, 0x86, 0xae, 0xa6, 0x89, 0x1a, 0x1f, 0xdf, 0xd8, 0xa6, 0xcc, 0x6f, 0x71,
0xe4, 0x7c, 0x45, 0x99, 0xdd, 0x64, 0xd0, 0x3b, 0x36, 0xcd, 0xf2, 0x4e, 0x4e, 0x02, 0xae, 0x7c,
0x3c, 0x2a, 0x08, 0x3b, 0x40, 0x90, 0x12, 0xbe, 0x85, 0x84, 0xef, 0x50, 0xf9, 0x81, 0x74, 0xec,
0x10, 0xc2, 0xf7, 0x9e, 0x7d, 0x29, 0x6b, 0x0d, 0x84, 0x08, 0x22, 0xed, 0x03, 0x2a, 0xf2, 0x35,
0xfa, 0x36, 0xfe, 0xb1, 0x0c, 0xee, 0x9f, 0x1e, 0xdf, 0x07, 0x50, 0x8a, 0x4a, 0x4d, 0xee, 0xb0,
0x0a, 0x33, 0x4a, 0x17, 0xfb, 0x38, 0x1e, 0x86, 0x24, 0x5a, 0x4c, 0x8b, 0x0b, 0x6d, 0x3c, 0x1d,
0xad, 0xd5, 0x5f, 0x07, 0x76, 0xe2, 0xf8, 0xd3, 0xc8, 0xb4, 0xd8, 0x1a, 0x98, 0xa2, 0x61, 0x1b,
0x47, 0xb0, 0xa8, 0xb8, 0x84, 0xa6, 0x11, 0x24, 0x27, 0x2f, 0xf3, 0x0a, 0x26, 0x9f, 0x9d, 0x61,
0xf2, 0xc6, 0x4f, 0xf3, 0x50, 0x54, 0x57, 0x11, 0xa6, 0x5d, 0x9f, 0x57, 0x4e, 0x5e, 0x9f, 0xd7,
0x4c, 0x5c, 0xb5, 0x84, 0x53, 0x2f, 0xf7, 0xfb, 0x77, 0xa7, 0xb7, 0x6c, 0xcd, 0x56, 0x91, 0xd8,
0xb6, 0x57, 0x20, 0x3f, 0xb6, 0xc3, 0x33, 0x3c, 0x97, 0x24, 0xe2, 0xc1, 0x6f, 0x65, 0xc3, 0x28,
0x24, 0x6d, 0x18, 0x69, 0x57, 0x0d, 0x92, 0x48, 0x3a, 0x73, 0xd5, 0xe0, 0x2d, 0x20, 0xf9, 0x42,
0x73, 0x71, 0x2b, 0x21, 0x40, 0xec, 0x45, 0x49, 0x71, 0xa4, 0x34, 0x2d, 0x8e, 0xbc, 0xb6, 0xa8,
0xf0, 0x2d, 0x98, 0xa3, 0x6b, 0x3a, 0x64, 0x84, 0xaf, 0xda, 0x50, 0xe4, 0x18, 0xaa, 0xff, 0x14,
0xf7, 0x60, 0x4a, 0x5c, 0xfd, 0xde, 0xae, 0x4a, 0xe2, 0xde, 0x2e, 0xdd, 0xb6, 0x52, 0x4d, 0xda,
0x56, 0xee, 0x43, 0x23, 0x1a, 0x50, 0x3c, 0xa9, 0x74, 0x03, 0x19, 0x3f, 0x58, 0x57, 0x70, 0xc1,
0x25, 0xf7, 0x83, 0x78, 0x43, 0xac, 0x27, 0x36, 0x44, 0xc1, 0xc3, 0x5a, 0x61, 0xc8, 0x47, 0xe3,
0x50, 0x6e, 0x88, 0x18, 0x61, 0xa4, 0x37, 0x30, 0x19, 0xfb, 0x5e, 0x83, 0x72, 0x67, 0xdf, 0xda,
0xde, 0xed, 0x3c, 0xdd, 0xe9, 0x35, 0x32, 0xe2, 0xb3, 0x7b, 0xb4, 0xb9, 0xd9, 0x6e, 0x6f, 0xe1,
0x8e, 0x03, 0x30, 0xb7, 0xdd, 0xea, 0x88, 0xdd, 0x27, 0x67, 0xfc, 0x6e, 0x16, 0x2a, 0x5a, 0xf1,
0xec, 0x49, 0x34, 0x2a, 0x74, 0xb5, 0xd3, 0x9d, 0xd9, 0x26, 0xac, 0x2b, 0x56, 0xac, 0x0d, 0x4b,
0x74, 0xb1, 0x62, 0xf6, 0xda, 0x8b, 0x15, 0xd9, 0x3b, 0x30, 0x6f, 0x53, 0x09, 0xd1, 0x28, 0xc8,
0x53, 0x78, 0x09, 0x96, 0x83, 0x80, 0x8e, 0x9d, 0xf1, 0x7e, 0x22, 0xf0, 0xf2, 0xca, 0x97, 0x32,
0xda, 0x52, 0x70, 0xb0, 0x8a, 0x27, 0xb6, 0x33, 0x9c, 0xf8, 0x5c, 0x5a, 0xcd, 0xa3, 0x9d, 0x99,
0xa0, 0xa6, 0x4a, 0x36, 0x3e, 0x04, 0x88, 0xdb, 0x9c, 0x1c, 0x9c, 0x1b, 0xc9, 0xc1, 0xc9, 0x68,
0x83, 0x93, 0x35, 0xb6, 0x88, 0x8d, 0xc8, 0x81, 0x8e, 0x8e, 0xdd, 0xbe, 0x01, 0xea, 0x20, 0xd0,
0x42, 0xf7, 0xea, 0xf1, 0x90, 0x87, 0xea, 0x96, 0x80, 0x05, 0x99, 0xd2, 0x89, 0x12, 0xd4, 0xa5,
0x1d, 0x71, 0x29, 0x31, 0x37, 0x92, 0x24, 0x39, 0xcd, 0x8d, 0x24, 0xaa, 0x19, 0xa5, 0x1b, 0x6b,
0xd0, 0xdc, 0xe2, 0xa2, 0xb4, 0xd6, 0x70, 0x38, 0xd5, 0x1c, 0xe3, 0x16, 0xdc, 0x4c, 0x49, 0x93,
0x87, 0x10, 0x9f, 0xc0, 0x72, 0x8b, 0x2e, 0x04, 0xf8, 0xaa, 0x22, 0xff, 0x8c, 0x26, 0xac, 0x4c,
0x17, 0x29, 0x2b, 0xdb, 0x86, 0x85, 0x2d, 0x7e, 0x3c, 0x39, 0xdd, 0xe5, 0xe7, 0x71, 0x45, 0x0c,
0xf2, 0xc1, 0x99, 0x77, 0x21, 0xc7, 0x07, 0x7f, 0xa3, 0x97, 0xa1, 0xc0, 0xb1, 0x82, 0x31, 0xef,
0xab, 0x83, 0x68, 0x84, 0x74, 0xc7, 0xbc, 0x6f, 0x3c, 0x01, 0xa6, 0x97, 0x23, 0xc7, 0x4b, 0x68,
0x09, 0x93, 0x63, 0x2b, 0xb8, 0x0a, 0x42, 0x3e, 0x52, 0x11, 0x6f, 0x10, 0x4c, 0x8e, 0xbb, 0x04,
0x31, 0xde, 0x85, 0xea, 0xa1, 0x7d, 0x65, 0xf2, 0xcf, 0x65, 0x60, 0xd9, 0x2a, 0x14, 0xc7, 0xf6,
0x95, 0x60, 0x03, 0x91, 0x4d, 0x0a, 0x93, 0x8d, 0x3f, 0xcc, 0xc3, 0x1c, 0x61, 0xb2, 0x7b, 0x74,
0xb9, 0xaf, 0xe3, 0xe2, 0x32, 0x54, 0x8c, 0x52, 0x03, 0xcd, 0xf0, 0xd2, 0xec, 0x2c, 0x2f, 0x95,
0x07, 0x68, 0xea, 0x52, 0x23, 0x65, 0x3d, 0x70, 0x27, 0x23, 0x75, 0x93, 0x51, 0x32, 0x2a, 0x3e,
0x1f, 0x5f, 0xde, 0x4c, 0x21, 0xc3, 0x49, 0xfb, 0x6e, 0xac, 0x8b, 0x50, 0xeb, 0xd4, 0x16, 0x21,
0xd9, 0xa5, 0x0e, 0x4a, 0x55, 0x78, 0x8a, 0x2a, 0x5a, 0x32, 0xa9, 0xf0, 0xcc, 0x28, 0x36, 0xa5,
0x57, 0x2b, 0x36, 0x74, 0xb2, 0xf6, 0x12, 0xc5, 0x06, 0x5e, 0x43, 0xb1, 0x79, 0x0d, 0xdb, 0xea,
0x4d, 0x28, 0xe1, 0xbe, 0xaf, 0x71, 0x4f, 0xb1, 0xdf, 0x0b, 0xee, 0xf9, 0x6d, 0x4d, 0xf4, 0x27,
0xc7, 0x8e, 0x5b, 0xf1, 0x32, 0x31, 0xf9, 0xe7, 0xbf, 0x18, 0x9b, 0xd5, 0x73, 0x28, 0x4a, 0xa8,
0x20, 0x68, 0xd7, 0x1e, 0xa9, 0x7b, 0xe1, 0xf0, 0xb7, 0x18, 0x36, 0xbc, 0xcc, 0xea, 0xf3, 0x89,
0xe3, 0xf3, 0x81, 0xba, 0xf0, 0xc7, 0xc1, 0x35, 0x2a, 0x20, 0xa2, 0x83, 0x42, 0x0d, 0x71, 0xbd,
0x0b, 0x57, 0x5e, 0xf7, 0x51, 0x74, 0x82, 0x67, 0xe2, 0xd3, 0x60, 0xd0, 0xc0, 0x9b, 0x21, 0xc7,
0x9e, 0xaf, 0x36, 0x27, 0xe3, 0xa7, 0x19, 0x68, 0xc8, 0xd5, 0x15, 0xa5, 0xe9, 0x5a, 0x40, 0xe1,
0x3a, 0x3f, 0x84, 0x97, 0x5f, 0xdf, 0x63, 0x40, 0x0d, 0x0f, 0x3f, 0xa2, 0x9d, 0x8a, 0x0e, 0x6f,
0x2a, 0x02, 0xb8, 0x2d, 0x77, 0xab, 0x37, 0xa0, 0xa2, 0x7c, 0xa0, 0x47, 0xce, 0x50, 0xdd, 0xd3,
0x4e, 0x4e, 0xd0, 0x7b, 0xce, 0x50, 0x6d, 0x74, 0xbe, 0x2d, 0xa3, 0x77, 0x33, 0xb8, 0xd1, 0x99,
0x76, 0xc8, 0x8d, 0x7f, 0x93, 0x81, 0x05, 0xad, 0x2b, 0x72, 0xdd, 0x7e, 0x04, 0xd5, 0xe8, 0x4a,
0x56, 0x1e, 0x49, 0x5e, 0xab, 0x49, 0x46, 0x13, 0x67, 0xab, 0xf4, 0x23, 0x48, 0x20, 0x1a, 0x33,
0xb0, 0xaf, 0xc8, 0x51, 0x77, 0x32, 0x52, 0xca, 0xcd, 0xc0, 0xbe, 0xda, 0xe6, 0xbc, 0x3b, 0x19,
0x09, 0xd5, 0xf5, 0x82, 0xf3, 0x17, 0x11, 0x02, 0xc9, 0x5c, 0x20, 0x60, 0x12, 0xc3, 0x80, 0xda,
0xc8, 0x73, 0xc3, 0xb3, 0x08, 0x45, 0x4a, 0x9d, 0x08, 0x24, 0x1c, 0xe3, 0x4f, 0xb3, 0xb0, 0x48,
0x47, 0x6c, 0xf2, 0x68, 0x53, 0xb2, 0xae, 0x26, 0xcc, 0xd1, 0x69, 0x23, 0x31, 0xaf, 0x9d, 0x1b,
0xa6, 0xfc, 0x66, 0xdf, 0x7a, 0xcd, 0x63, 0x41, 0x15, 0x20, 0x7c, 0xcd, 0xf0, 0xe7, 0x66, 0x87,
0xff, 0xfa, 0xe1, 0x4d, 0x33, 0x74, 0x16, 0xd2, 0x0c, 0x9d, 0xaf, 0x63, 0x5e, 0x9c, 0x09, 0x65,
0x2d, 0x4a, 0x1c, 0x2d, 0x94, 0xf5, 0x09, 0xac, 0x26, 0x70, 0x90, 0x5b, 0x3b, 0x27, 0x0e, 0x57,
0xb7, 0xa9, 0x2c, 0x69, 0xd8, 0x5d, 0x95, 0xb6, 0x51, 0x84, 0x42, 0xd0, 0xf7, 0xc6, 0xdc, 0x58,
0x81, 0xa5, 0xe4, 0xa8, 0xca, 0x6d, 0xe2, 0xf7, 0x32, 0xd0, 0x94, 0x6e, 0x29, 0x8e, 0x7b, 0xba,
0xe3, 0x04, 0xa1, 0xe7, 0x47, 0x57, 0x97, 0xde, 0x01, 0x08, 0x42, 0xdb, 0x97, 0xda, 0xa6, 0xbc,
0x3f, 0x04, 0x21, 0xa8, 0x49, 0xde, 0x84, 0x12, 0x77, 0x07, 0x94, 0x48, 0xd4, 0x50, 0xe4, 0xee,
0x40, 0xe9, 0xa1, 0x33, 0xf2, 0x77, 0x2d, 0xa9, 0x5e, 0xc8, 0x70, 0x7e, 0x31, 0x3a, 0xfc, 0x1c,
0x37, 0xde, 0x7c, 0x14, 0xce, 0xbf, 0x67, 0x5f, 0xa2, 0x93, 0x67, 0x60, 0xfc, 0x83, 0x2c, 0xcc,
0xc7, 0xed, 0xa3, 0xbb, 0x40, 0x5e, 0x7e, 0xab, 0xc9, 0x3d, 0x49, 0x0e, 0x8e, 0x90, 0xdf, 0xb5,
0x83, 0xc7, 0x12, 0x2d, 0xce, 0x8e, 0xcb, 0x0c, 0xa8, 0x28, 0x0c, 0x6f, 0x12, 0x6a, 0x37, 0x08,
0x96, 0x09, 0xe5, 0x60, 0x12, 0x0a, 0x85, 0x4b, 0x68, 0x9e, 0x8e, 0x2b, 0x55, 0x9e, 0x82, 0x3d,
0x0a, 0x3b, 0xf8, 0x30, 0x81, 0x00, 0x8b, 0x6c, 0x34, 0x91, 0x02, 0x4b, 0xe0, 0x37, 0x48, 0xce,
0xa6, 0x99, 0x43, 0x19, 0x5b, 0x17, 0x42, 0xe9, 0x8e, 0xe6, 0x48, 0x08, 0x7d, 0x03, 0x2a, 0x54,
0x78, 0x1c, 0xb9, 0x9c, 0x37, 0xcb, 0x58, 0x03, 0xa6, 0xcb, 0x43, 0x20, 0x6f, 0x92, 0x50, 0x7d,
0x81, 0xaa, 0x42, 0xaf, 0x8f, 0xbf, 0x9d, 0x81, 0x9b, 0x29, 0xd3, 0x26, 0x57, 0xf9, 0x26, 0x2c,
0x9c, 0x44, 0x89, 0x6a, 0x74, 0x69, 0xa9, 0xaf, 0x28, 0xb6, 0x9a, 0x1c, 0x53, 0xb3, 0x71, 0x92,
0x04, 0xc4, 0x4a, 0x17, 0xcd, 0x60, 0x22, 0x2e, 0x1e, 0x95, 0x2e, 0x9a, 0x46, 0xd2, 0x77, 0x0e,
0x61, 0xad, 0x7d, 0x29, 0x38, 0xc6, 0xa6, 0xfe, 0xb2, 0x86, 0x22, 0xa3, 0xe4, 0x01, 0x73, 0xe6,
0xb5, 0x0e, 0x98, 0x07, 0x14, 0x48, 0x1b, 0x95, 0xf5, 0xb3, 0x14, 0x82, 0x1b, 0xa8, 0xc8, 0x43,
0x2f, 0x83, 0xa8, 0x00, 0xf9, 0x7e, 0xf4, 0x22, 0x88, 0x11, 0xc0, 0xfc, 0xde, 0x64, 0x18, 0x3a,
0xf1, 0x23, 0x21, 0xec, 0x5b, 0x32, 0x0f, 0xd6, 0xa3, 0x46, 0x2d, 0xb5, 0x22, 0x88, 0x2a, 0xc2,
0xc1, 0x1a, 0x89, 0x82, 0xac, 0xd9, 0xfa, 0xe6, 0x47, 0xc9, 0x1a, 0x8c, 0x9b, 0xb0, 0x1a, 0x7f,
0xd1, 0xb0, 0xa9, 0xad, 0xe6, 0x9f, 0x66, 0xc8, 0xa3, 0x3c, 0xf9, 0x60, 0x09, 0x6b, 0xc3, 0x62,
0xe0, 0xb8, 0xa7, 0x43, 0xae, 0x17, 0x1f, 0xc8, 0x41, 0x58, 0x4e, 0xb6, 0x4d, 0x3e, 0x6a, 0x62,
0x2e, 0x50, 0x8e, 0xb8, 0xb4, 0x80, 0x6d, 0x5c, 0xd7, 0xc8, 0x98, 0x2c, 0xa6, 0x46, 0x63, 0xb6,
0xf1, 0x1d, 0xa8, 0x27, 0x2b, 0x62, 0xdf, 0x96, 0xf1, 0xe7, 0x71, 0xab, 0x72, 0x53, 0xc1, 0xb9,
0x31, 0x41, 0x54, 0xe2, 0xb1, 0x0f, 0x8c, 0xbf, 0x9b, 0x81, 0xa6, 0xc9, 0x05, 0xe5, 0x6a, 0xad,
0x54, 0x34, 0xf3, 0xd1, 0x4c, 0xa9, 0xd7, 0xf7, 0x55, 0x85, 0xb5, 0xab, 0x16, 0x7d, 0xfd, 0xda,
0xc9, 0xd8, 0xb9, 0x31, 0xd3, 0xa3, 0x8d, 0x12, 0xcc, 0x11, 0x8a, 0xb1, 0x0a, 0xcb, 0xb2, 0x3d,
0xaa, 0x2d, 0xb1, 0xf5, 0x30, 0x51, 0x63, 0xc2, 0x7a, 0xb8, 0x06, 0x4d, 0x0a, 0x34, 0xd5, 0x3b,
0x21, 0x33, 0x6e, 0x01, 0xdb, 0xb3, 0xfb, 0xb6, 0xef, 0x79, 0xee, 0x21, 0xf7, 0xa5, 0x7f, 0x2e,
0x4a, 0x98, 0x68, 0x5c, 0x53, 0xa2, 0x30, 0x7d, 0xa9, 0x7b, 0x53, 0x3d, 0x57, 0xb9, 0x23, 0xd1,
0x97, 0x61, 0xc2, 0xe2, 0x86, 0xfd, 0x82, 0xab, 0x92, 0xd4, 0x10, 0x7d, 0x0c, 0x95, 0x71, 0x54,
0xa8, 0x1a, 0x77, 0x75, 0x3f, 0xc6, 0x6c, 0xb5, 0xa6, 0x8e, 0x6d, 0x3c, 0x86, 0xa5, 0x64, 0x99,
0x92, 0x75, 0xac, 0x41, 0x69, 0x24, 0x61, 0xb2, 0x75, 0xd1, 0xb7, 0xf1, 0x3b, 0x25, 0x28, 0x4a,
0x7d, 0x8e, 0xad, 0x43, 0xbe, 0xaf, 0x5c, 0xc2, 0xe2, 0x6b, 0x97, 0x64, 0xaa, 0xfa, 0xbf, 0x89,
0x8e, 0x61, 0x02, 0x8f, 0x7d, 0x0c, 0xf5, 0xa4, 0x55, 0x74, 0x2a, 0x8c, 0x3d, 0x69, 0xce, 0xac,
0xf5, 0xa7, 0xec, 0x5f, 0xe5, 0x78, 0x73, 0x24, 0x99, 0xa1, 0x74, 0xa6, 0xed, 0x9e, 0x9e, 0x2b,
0xe4, 0xed, 0xe0, 0xcc, 0xb6, 0x1e, 0x3f, 0xf9, 0x50, 0xc6, 0xb1, 0x57, 0x10, 0xd8, 0x3d, 0xb3,
0x1f, 0x3f, 0xf9, 0x70, 0x5a, 0x92, 0x96, 0x51, 0xec, 0x9a, 0x24, 0xbd, 0x04, 0x05, 0xba, 0x20,
0x94, 0x7c, 0x7b, 0xe8, 0x83, 0x3d, 0x82, 0x25, 0xa9, 0xb6, 0x5a, 0xd2, 0x0b, 0x9b, 0xb8, 0x60,
0x89, 0x02, 0xdf, 0x64, 0x5a, 0x17, 0x93, 0xe8, 0x6c, 0x68, 0x05, 0xe6, 0xce, 0xe2, 0xdb, 0x5e,
0x6b, 0xa6, 0xfc, 0x32, 0xfe, 0xb4, 0x00, 0x15, 0x6d, 0x50, 0x58, 0x15, 0x4a, 0x66, 0xbb, 0xdb,
0x36, 0x3f, 0x6d, 0x6f, 0x35, 0x6e, 0xb0, 0xfb, 0xf0, 0x76, 0x67, 0x7f, 0xf3, 0xc0, 0x34, 0xdb,
0x9b, 0x3d, 0xeb, 0xc0, 0xb4, 0xd4, 0xe5, 0x5f, 0x87, 0xad, 0xe7, 0x7b, 0xed, 0xfd, 0x9e, 0xb5,
0xd5, 0xee, 0xb5, 0x3a, 0xbb, 0xdd, 0x46, 0x86, 0xdd, 0x86, 0x66, 0x8c, 0xa9, 0x92, 0x5b, 0x7b,
0x07, 0x47, 0xfb, 0xbd, 0x46, 0x96, 0xdd, 0x85, 0x5b, 0xdb, 0x9d, 0xfd, 0xd6, 0xae, 0x15, 0xe3,
0x6c, 0xee, 0xf6, 0x3e, 0xb5, 0xda, 0xbf, 0x72, 0xd8, 0x31, 0x9f, 0x37, 0x72, 0x69, 0x08, 0x42,
0x19, 0x57, 0x25, 0xe4, 0xd9, 0x4d, 0x58, 0x26, 0x04, 0xca, 0x62, 0xf5, 0x0e, 0x0e, 0xac, 0xee,
0xc1, 0xc1, 0x7e, 0xa3, 0xc0, 0x16, 0xa0, 0xd6, 0xd9, 0xff, 0xb4, 0xb5, 0xdb, 0xd9, 0xb2, 0xcc,
0x76, 0x6b, 0x77, 0xaf, 0x31, 0xc7, 0x16, 0x61, 0x7e, 0x1a, 0xaf, 0x28, 0x8a, 0x50, 0x78, 0x07,
0xfb, 0x9d, 0x83, 0x7d, 0xeb, 0xd3, 0xb6, 0xd9, 0xed, 0x1c, 0xec, 0x37, 0x4a, 0x6c, 0x05, 0x58,
0x32, 0x69, 0x67, 0xaf, 0xb5, 0xd9, 0x28, 0xb3, 0x65, 0x58, 0x48, 0xc2, 0x9f, 0xb5, 0x9f, 0x37,
0x80, 0x35, 0x61, 0x89, 0x1a, 0x66, 0x6d, 0xb4, 0x77, 0x0f, 0x3e, 0xb3, 0xf6, 0x3a, 0xfb, 0x9d,
0xbd, 0xa3, 0xbd, 0x46, 0x05, 0xaf, 0x23, 0x6c, 0xb7, 0xad, 0xce, 0x7e, 0xf7, 0x68, 0x7b, 0xbb,
0xb3, 0xd9, 0x69, 0xef, 0xf7, 0x1a, 0x55, 0xaa, 0x39, 0xad, 0xe3, 0x35, 0x91, 0x41, 0x86, 0x6a,
0x58, 0x5b, 0x9d, 0x6e, 0x6b, 0x63, 0xb7, 0xbd, 0xd5, 0xa8, 0xb3, 0x3b, 0x70, 0xb3, 0xd7, 0xde,
0x3b, 0x3c, 0x30, 0x5b, 0xe6, 0x73, 0x15, 0xca, 0x61, 0x6d, 0xb7, 0x3a, 0xbb, 0x47, 0x66, 0xbb,
0x31, 0xcf, 0xde, 0x84, 0x3b, 0x66, 0xfb, 0x93, 0xa3, 0x8e, 0xd9, 0xde, 0xb2, 0xf6, 0x0f, 0xb6,
0xda, 0xd6, 0x76, 0xbb, 0xd5, 0x3b, 0x32, 0xdb, 0xd6, 0x5e, 0xa7, 0xdb, 0xed, 0xec, 0x3f, 0x6d,
0x34, 0xd8, 0xdb, 0x70, 0x2f, 0x42, 0x89, 0x0a, 0x98, 0xc2, 0x5a, 0x10, 0xfd, 0x53, 0x53, 0xba,
0xdf, 0xfe, 0x95, 0x9e, 0x75, 0xd8, 0x6e, 0x9b, 0x0d, 0xc6, 0xd6, 0x60, 0x25, 0xae, 0x9e, 0x2a,
0x90, 0x75, 0x2f, 0x8a, 0xb4, 0xc3, 0xb6, 0xb9, 0xd7, 0xda, 0x17, 0x13, 0x9c, 0x48, 0x5b, 0x12,
0xcd, 0x8e, 0xd3, 0xa6, 0x9b, 0xbd, 0xcc, 0x18, 0xd4, 0xb5, 0x59, 0xd9, 0x6e, 0x99, 0x8d, 0x15,
0x36, 0x0f, 0x95, 0xbd, 0xc3, 0x43, 0xab, 0xd7, 0xd9, 0x6b, 0x1f, 0x1c, 0xf5, 0x1a, 0xab, 0x6c,
0x19, 0x1a, 0x9d, 0xfd, 0x5e, 0xdb, 0x14, 0x73, 0xad, 0xb2, 0xfe, 0xcf, 0x22, 0x5b, 0x82, 0x79,
0xd5, 0x52, 0x05, 0xfd, 0x8b, 0x22, 0x5b, 0x05, 0x76, 0xb4, 0x6f, 0xb6, 0x5b, 0x5b, 0x62, 0xe0,
0xa2, 0x84, 0xff, 0x55, 0x94, 0x16, 0x92, 0x9f, 0xe6, 0xa2, 0xcd, 0x3a, 0x76, 0x39, 0x48, 0xde,
0xfd, 0x5d, 0xd5, 0xee, 0xec, 0x7e, 0xd5, 0xab, 0x1c, 0x9a, 0x6a, 0x95, 0x9b, 0x51, 0xad, 0x66,
0x74, 0xf7, 0x9a, 0x2e, 0xfb, 0xbd, 0x05, 0xb5, 0x11, 0xdd, 0x03, 0x2e, 0xef, 0xfb, 0x05, 0xe9,
0x7f, 0x43, 0x40, 0xba, 0xec, 0x77, 0xe6, 0x59, 0x8a, 0xc2, 0xec, 0xb3, 0x14, 0x69, 0xf2, 0xfd,
0x5c, 0x9a, 0x7c, 0xff, 0x00, 0x16, 0x88, 0x35, 0x39, 0xae, 0x33, 0x52, 0x5a, 0x33, 0x49, 0x81,
0xf3, 0xc8, 0xa2, 0x08, 0xae, 0xd4, 0x09, 0xa5, 0x72, 0x48, 0x16, 0x52, 0x94, 0xda, 0x46, 0x42,
0xd3, 0x20, 0xce, 0x11, 0x69, 0x1a, 0x51, 0x0d, 0xf6, 0x65, 0x5c, 0x43, 0x45, 0xab, 0x81, 0xe0,
0x58, 0xc3, 0x03, 0x58, 0xe0, 0x97, 0xa1, 0x6f, 0x5b, 0xde, 0xd8, 0xfe, 0x7c, 0x82, 0x26, 0x5c,
0x1b, 0x75, 0xf8, 0xaa, 0x39, 0x8f, 0x09, 0x07, 0x08, 0xdf, 0xb2, 0x43, 0xfb, 0xc1, 0x17, 0x50,
0xd1, 0xee, 0x88, 0x67, 0xab, 0xb0, 0xf8, 0x59, 0xa7, 0xb7, 0xdf, 0xee, 0x76, 0xad, 0xc3, 0xa3,
0x8d, 0x67, 0xed, 0xe7, 0xd6, 0x4e, 0xab, 0xbb, 0xd3, 0xb8, 0x21, 0x16, 0xed, 0x7e, 0xbb, 0xdb,
0x6b, 0x6f, 0x25, 0xe0, 0x19, 0xf6, 0x06, 0xac, 0x1d, 0xed, 0x1f, 0x75, 0xdb, 0x5b, 0x56, 0x5a,
0xbe, 0xac, 0xa0, 0x52, 0x99, 0x9e, 0x92, 0x3d, 0xf7, 0xe0, 0x37, 0xa0, 0x9e, 0x8c, 0x6a, 0x66,
0x00, 0x73, 0xbb, 0xed, 0xa7, 0xad, 0xcd, 0xe7, 0x74, 0x61, 0x69, 0xb7, 0xd7, 0xea, 0x75, 0x36,
0x2d, 0x79, 0x41, 0xa9, 0xe0, 0x08, 0x19, 0x56, 0x81, 0x62, 0x6b, 0x7f, 0x73, 0xe7, 0xc0, 0xec,
0x36, 0xb2, 0xec, 0x36, 0xac, 0x2a, 0x5a, 0xdd, 0x3c, 0xd8, 0xdb, 0xeb, 0xf4, 0x90, 0x19, 0xf6,
0x9e, 0x1f, 0x0a, 0xd2, 0x7c, 0xf0, 0x5d, 0xa8, 0x27, 0x7d, 0xef, 0x92, 0xa7, 0xb2, 0x6b, 0xb0,
0xb2, 0xd1, 0xee, 0x7d, 0xd6, 0x6e, 0xef, 0x63, 0xd3, 0x37, 0xdb, 0xfb, 0x3d, 0xb3, 0xb5, 0xdb,
0xe9, 0x3d, 0x6f, 0x64, 0x1e, 0x7c, 0x0c, 0x8d, 0x69, 0x43, 0x57, 0xc2, 0x32, 0xf8, 0x32, 0x13,
0xe2, 0x83, 0x7f, 0x91, 0x03, 0x88, 0x03, 0x40, 0x04, 0x0f, 0xdb, 0x6a, 0xf5, 0x5a, 0xbb, 0x07,
0x62, 0x7c, 0xcc, 0x83, 0x9e, 0x60, 0x4d, 0x66, 0xfb, 0x93, 0xc6, 0x8d, 0xd4, 0x94, 0x83, 0xc3,
0x5e, 0x23, 0x23, 0xa6, 0xa2, 0xb3, 0xdf, 0xe9, 0x75, 0x5a, 0xbb, 0x96, 0x79, 0x70, 0xd4, 0xd9,
0x7f, 0x4a, 0x57, 0x3c, 0x22, 0xfb, 0x3e, 0x3a, 0xdc, 0x36, 0x0f, 0xf6, 0x7b, 0x56, 0x77, 0xe7,
0xa8, 0xb7, 0x85, 0x17, 0x44, 0x6e, 0x9a, 0x9d, 0x43, 0x2a, 0x33, 0xff, 0x32, 0x04, 0x51, 0x74,
0x41, 0x4c, 0xe6, 0xd3, 0x83, 0x6e, 0xb7, 0x73, 0x68, 0x7d, 0x72, 0xd4, 0x36, 0x3b, 0xed, 0x2e,
0x66, 0x9c, 0x4b, 0x81, 0x0b, 0xfc, 0xa2, 0x60, 0xfa, 0xbd, 0xdd, 0x4f, 0x25, 0x57, 0x16, 0xa8,
0xa5, 0x24, 0x48, 0x60, 0x95, 0xc5, 0x60, 0x0a, 0xb6, 0x96, 0x52, 0x32, 0x5c, 0x93, 0x26, 0xf2,
0x55, 0x04, 0xc3, 0x9e, 0x99, 0x65, 0xcc, 0x56, 0x4d, 0x4f, 0x12, 0xb9, 0x90, 0x97, 0x47, 0x3b,
0xdf, 0xd6, 0x96, 0x89, 0x19, 0xea, 0x33, 0x50, 0x81, 0x3b, 0x2f, 0x26, 0x4a, 0xf0, 0x3d, 0x81,
0xd2, 0x50, 0x1f, 0x22, 0x65, 0xe1, 0xf1, 0x6f, 0xe7, 0xa0, 0x4e, 0xc1, 0x78, 0xf4, 0xf6, 0x1f,
0xf7, 0xd9, 0x1e, 0x14, 0xe5, 0x23, 0x92, 0x6c, 0x39, 0xba, 0x7d, 0x4f, 0x7f, 0xb6, 0x72, 0x6d,
0x65, 0x1a, 0x2c, 0xe5, 0xbc, 0xc5, 0xbf, 0xf6, 0x27, 0xff, 0xe3, 0xef, 0x67, 0x6b, 0xac, 0xf2,
0xf0, 0xfc, 0x83, 0x87, 0xa7, 0xdc, 0x0d, 0x44, 0x19, 0xbf, 0x06, 0x10, 0x3f, 0x8d, 0xc8, 0x9a,
0x91, 0x75, 0x6b, 0xea, 0xdd, 0xc8, 0xb5, 0x9b, 0x29, 0x29, 0xb2, 0xdc, 0x9b, 0x58, 0xee, 0xa2,
0x51, 0x17, 0xe5, 0x3a, 0xae, 0x13, 0xd2, 0x33, 0x89, 0x1f, 0x65, 0x1e, 0xb0, 0x01, 0x54, 0xf5,
0x47, 0x0b, 0x99, 0x12, 0xc1, 0x52, 0x9e, 0x5d, 0x5c, 0xbb, 0x95, 0x9a, 0xa6, 0x84, 0x5b, 0xac,
0x63, 0xd9, 0x68, 0x88, 0x3a, 0x26, 0x88, 0x11, 0xd7, 0x32, 0x24, 0x71, 0x3f, 0x7e, 0x9b, 0x90,
0xdd, 0xd6, 0x04, 0xb6, 0x99, 0x97, 0x11, 0xd7, 0xee, 0x5c, 0x93, 0x2a, 0xeb, 0xba, 0x83, 0x75,
0xad, 0x1a, 0x4c, 0xd4, 0xd5, 0x47, 0x1c, 0xf5, 0x32, 0xe2, 0x47, 0x99, 0x07, 0x8f, 0xff, 0xfd,
0x7b, 0x50, 0x8e, 0x9c, 0x73, 0xd9, 0x6f, 0x42, 0x2d, 0x11, 0x2d, 0xc9, 0x54, 0x37, 0xd2, 0x82,
0x2b, 0xd7, 0x6e, 0xa7, 0x27, 0xca, 0x8a, 0xdf, 0xc0, 0x8a, 0x9b, 0x6c, 0x45, 0x54, 0x2c, 0xa3,
0x11, 0x1f, 0x62, 0x74, 0x33, 0xdd, 0x65, 0xf8, 0x42, 0x53, 0x6b, 0xa8, 0xb2, 0xdb, 0xd3, 0xaa,
0x46, 0xa2, 0xb6, 0x3b, 0xd7, 0xa4, 0xca, 0xea, 0x6e, 0x63, 0x75, 0x2b, 0x6c, 0x49, 0xaf, 0x4e,
0xf9, 0x74, 0x32, 0x8e, 0xf7, 0x87, 0xea, 0x4f, 0xf7, 0xb1, 0x3b, 0xf1, 0x6d, 0x8f, 0x29, 0x4f,
0xfa, 0x45, 0x24, 0x32, 0xfb, 0xae, 0x9f, 0xd1, 0xc4, 0xaa, 0x18, 0xc3, 0xe9, 0xd3, 0x5f, 0xee,
0x63, 0xc7, 0x50, 0xd1, 0x5e, 0xbb, 0x61, 0x37, 0xaf, 0x7d, 0x99, 0x67, 0x6d, 0x2d, 0x2d, 0x29,
0xad, 0x2b, 0x7a, 0xf9, 0x0f, 0x4f, 0x38, 0x67, 0xbf, 0x0a, 0xe5, 0xe8, 0x0d, 0x15, 0xb6, 0xaa,
0xbd, 0x69, 0xa3, 0xbf, 0xf9, 0xb2, 0xd6, 0x9c, 0x4d, 0x48, 0x23, 0x3e, 0xbd, 0x74, 0x41, 0x7c,
0x9f, 0x41, 0x45, 0x7b, 0x27, 0x25, 0xea, 0xc0, 0xec, 0x5b, 0x2c, 0x51, 0x07, 0x52, 0x9e, 0x55,
0x31, 0x16, 0xb0, 0x8a, 0x0a, 0x2b, 0x23, 0x7d, 0x87, 0x97, 0x5e, 0xc0, 0x76, 0x61, 0x59, 0xaa,
0x70, 0xc7, 0xfc, 0xcb, 0x4c, 0x43, 0xca, 0x6b, 0x89, 0x8f, 0x32, 0xec, 0x63, 0x28, 0xa9, 0xe7,
0x70, 0xd8, 0x4a, 0xfa, 0xb3, 0x3e, 0x6b, 0xab, 0x33, 0x70, 0xa9, 0x6f, 0x3d, 0x07, 0x88, 0x1f,
0x65, 0x89, 0x98, 0xc4, 0xcc, 0x23, 0x2f, 0x11, 0x05, 0xcc, 0xbe, 0xe0, 0x62, 0xac, 0x60, 0x07,
0x1b, 0x0c, 0x99, 0x84, 0xcb, 0x2f, 0xd4, 0x25, 0xcf, 0x3f, 0x82, 0x8a, 0xf6, 0x2e, 0x4b, 0x34,
0x7c, 0xb3, 0x6f, 0xba, 0x44, 0xc3, 0x97, 0xf2, 0x8c, 0x8b, 0xb1, 0x86, 0xa5, 0x2f, 0x19, 0xf3,
0xa2, 0x74, 0x21, 0xc3, 0x49, 0x59, 0x4a, 0x4c, 0xd0, 0x19, 0xd4, 0x12, 0x8f, 0xaf, 0x44, 0x2b,
0x34, 0xed, 0x69, 0x97, 0x68, 0x85, 0xa6, 0xbe, 0xd7, 0xa2, 0xe8, 0xcc, 0x58, 0x10, 0xf5, 0xd0,
0x3d, 0x4f, 0x5a, 0x4d, 0x3f, 0x84, 0x8a, 0xf6, 0x90, 0x4a, 0xd4, 0x97, 0xd9, 0x37, 0x5b, 0xa2,
0xbe, 0xa4, 0xbd, 0xbb, 0xb2, 0x84, 0x75, 0xd4, 0x0d, 0x24, 0x05, 0xbc, 0xa6, 0x56, 0x94, 0xfd,
0x9b, 0x50, 0x4f, 0xbe, 0xad, 0x12, 0xad, 0xfd, 0xd4, 0x47, 0x5a, 0xa2, 0xb5, 0x7f, 0xcd, 0x83,
0x2c, 0x92, 0xa4, 0x1f, 0x2c, 0x46, 0x95, 0x3c, 0xfc, 0x89, 0x0c, 0x33, 0xfa, 0x82, 0x7d, 0x22,
0x18, 0x9c, 0xbc, 0x25, 0x99, 0xad, 0x6a, 0x54, 0xab, 0x5f, 0xb7, 0x1c, 0xad, 0x97, 0x99, 0x0b,
0x95, 0x93, 0xc4, 0x8c, 0x85, 0xb3, 0xa7, 0xb0, 0x18, 0x11, 0x73, 0x74, 0xed, 0x71, 0x10, 0xf5,
0x21, 0xf5, 0x72, 0xe5, 0xb5, 0xc6, 0x74, 0xea, 0xa3, 0x0c, 0x6d, 0x7f, 0x78, 0xd9, 0xac, 0xb6,
0xfd, 0xe9, 0x37, 0x1f, 0x6b, 0xdb, 0x5f, 0xe2, 0x4e, 0xda, 0xe9, 0xed, 0x2f, 0x74, 0x44, 0x19,
0x2e, 0xcc, 0x4f, 0x5f, 0x42, 0x7c, 0xe7, 0xba, 0x6b, 0x1c, 0xa8, 0xf8, 0x37, 0x5e, 0x7e, 0xcb,
0x43, 0x92, 0x15, 0x29, 0x6e, 0xfa, 0x50, 0x7a, 0xb5, 0xb0, 0x5f, 0x87, 0xaa, 0xfe, 0x1e, 0x03,
0xd3, 0x79, 0xc2, 0x74, 0x4d, 0xb7, 0x52, 0xd3, 0x92, 0x54, 0xc2, 0xaa, 0x7a, 0x35, 0xec, 0x53,
0x58, 0x89, 0x86, 0x59, 0xbf, 0x87, 0x20, 0x60, 0x77, 0x53, 0x6e, 0x27, 0x48, 0x0c, 0xf6, 0xcd,
0x6b, 0xaf, 0x2f, 0x78, 0x94, 0x11, 0xd4, 0x97, 0xbc, 0x18, 0x3e, 0xde, 0x79, 0xd2, 0xee, 0xc3,
0x8f, 0x77, 0x9e, 0xd4, 0xdb, 0xe4, 0x15, 0xf5, 0xb1, 0xc5, 0xc4, 0x18, 0x91, 0xbf, 0x2f, 0xfb,
0x21, 0xcc, 0x6b, 0x97, 0x2c, 0x74, 0xaf, 0xdc, 0x7e, 0xb4, 0x92, 0x66, 0xaf, 0x17, 0x5d, 0x4b,
0x3b, 0xf4, 0x34, 0x56, 0xb1, 0xfc, 0x05, 0x23, 0x31, 0x38, 0x62, 0x15, 0x6d, 0x42, 0x45, 0xbf,
0xc0, 0xe1, 0x25, 0xe5, 0xae, 0x6a, 0x49, 0xfa, 0x4d, 0x96, 0x8f, 0x32, 0x6c, 0x17, 0x1a, 0xd3,
0x97, 0xab, 0x45, 0x3c, 0x25, 0xed, 0x42, 0xba, 0xb5, 0xa9, 0xc4, 0xc4, 0x95, 0x6c, 0xec, 0x90,
0x22, 0x46, 0xa2, 0xa7, 0x05, 0x3d, 0x7f, 0x7a, 0x57, 0x4f, 0x3e, 0x39, 0x18, 0x95, 0x96, 0xf6,
0xd8, 0xe4, 0xfd, 0xcc, 0xa3, 0x0c, 0xfb, 0xdd, 0x0c, 0x54, 0x13, 0xd7, 0x0d, 0x25, 0x7c, 0xf2,
0xa7, 0xfa, 0xd9, 0xd4, 0xd3, 0xf4, 0x8e, 0x1a, 0x26, 0x0e, 0xe2, 0xee, 0x83, 0x1f, 0x24, 0x26,
0xe9, 0x27, 0x09, 0x9b, 0xe1, 0xfa, 0xf4, 0xdb, 0x83, 0x5f, 0x4c, 0x23, 0xe8, 0x17, 0xd6, 0x7e,
0xf1, 0x28, 0xc3, 0xfe, 0x55, 0x06, 0xea, 0x49, 0x67, 0x80, 0xa8, 0xbb, 0xa9, 0x6e, 0x07, 0x11,
0x29, 0x5d, 0xe3, 0x41, 0xf0, 0x43, 0x6c, 0x65, 0xef, 0x81, 0x99, 0x68, 0xa5, 0x7c, 0xd2, 0xe0,
0xe7, 0x6b, 0x2d, 0xfb, 0x88, 0x9e, 0xfa, 0x55, 0x3e, 0x52, 0x6c, 0xf6, 0x69, 0xd8, 0x88, 0xfc,
0xf4, 0x87, 0x54, 0x71, 0x12, 0x7e, 0x44, 0x6f, 0xec, 0x29, 0x97, 0x1b, 0x41, 0xc5, 0xaf, 0x9b,
0xdf, 0x78, 0x1b, 0xfb, 0xf4, 0x86, 0x71, 0x33, 0xd1, 0xa7, 0x69, 0xc1, 0xa3, 0x45, 0xad, 0x93,
0xef, 0xa0, 0xc6, 0x3b, 0xe7, 0xcc, 0xdb, 0xa8, 0xd7, 0x37, 0x72, 0x44, 0x8d, 0x94, 0xe8, 0x89,
0xa5, 0xf6, 0x9a, 0xc5, 0x18, 0x0f, 0xb0, 0xad, 0x6f, 0x1b, 0x77, 0xaf, 0x6d, 0xeb, 0x43, 0x34,
0xec, 0x8b, 0x16, 0x1f, 0x02, 0xc4, 0x3e, 0x8c, 0x6c, 0xca, 0x93, 0x2e, 0x62, 0x40, 0xb3, 0x6e,
0x8e, 0xc9, 0xf5, 0xac, 0x1c, 0xee, 0x44, 0x89, 0xbf, 0x4a, 0xec, 0x34, 0xf2, 0xf1, 0xd3, 0xa5,
0xaf, 0xa4, 0xbb, 0x61, 0x42, 0xfa, 0x9a, 0x2e, 0x3f, 0xc1, 0x4c, 0x23, 0x87, 0xbe, 0x23, 0xa8,
0xed, 0x7a, 0xde, 0x8b, 0xc9, 0x38, 0xf2, 0x9b, 0x4f, 0x7a, 0xdb, 0xec, 0xd8, 0xc1, 0xd9, 0xda,
0x54, 0x2f, 0x8c, 0x7b, 0x58, 0xd4, 0x1a, 0x6b, 0x6a, 0x45, 0x3d, 0xfc, 0x49, 0xec, 0x38, 0xf9,
0x05, 0xb3, 0x61, 0x21, 0xe2, 0xd1, 0xb1, 0x73, 0x62, 0xb2, 0x98, 0x04, 0x67, 0x9e, 0xae, 0x22,
0xa1, 0x26, 0xa8, 0xd6, 0x3e, 0x0c, 0x54, 0x99, 0x8f, 0x32, 0xec, 0x10, 0xaa, 0x5b, 0xbc, 0x8f,
0x17, 0x2f, 0xa0, 0xcf, 0xca, 0x62, 0xc2, 0xff, 0x81, 0x9c, 0x5d, 0xd6, 0x6a, 0x09, 0x60, 0x72,
0xdf, 0x1a, 0xdb, 0x57, 0x3e, 0xff, 0xfc, 0xe1, 0x4f, 0xa4, 0x37, 0xcc, 0x17, 0x6a, 0xdf, 0x52,
0xde, 0x42, 0x89, 0x7d, 0x6b, 0xca, 0xbd, 0x28, 0xb1, 0x6f, 0xcd, 0xb8, 0x17, 0x25, 0x86, 0x5a,
0x79, 0x2b, 0xb1, 0x21, 0x2c, 0xcc, 0x78, 0x24, 0x45, 0x5b, 0xd6, 0x75, 0x7e, 0x4c, 0x6b, 0xf7,
0xae, 0x47, 0x48, 0xd6, 0xf6, 0x20, 0x59, 0x5b, 0x17, 0x6a, 0x74, 0x1b, 0xed, 0x31, 0xa7, 0x10,
0xcc, 0xa9, 0xfb, 0x8b, 0xf4, 0xf8, 0xce, 0xe9, 0x0d, 0x06, 0xd3, 0x92, 0x12, 0x0e, 0x06, 0xe1,
0xb1, 0x13, 0x7c, 0x82, 0x41, 0x8b, 0x79, 0x8c, 0x88, 0x71, 0x36, 0x0e, 0x33, 0x22, 0xc6, 0x94,
0x10, 0x49, 0xa5, 0x7e, 0xb2, 0xe5, 0xa8, 0xec, 0x87, 0xae, 0x37, 0xe0, 0x23, 0x59, 0xea, 0xaf,
0x42, 0xe5, 0x29, 0x0f, 0x55, 0x90, 0x61, 0x24, 0xcb, 0x4f, 0x45, 0x1d, 0xae, 0xa5, 0x84, 0x86,
0x26, 0x69, 0x93, 0x4a, 0xe6, 0x83, 0x53, 0x4e, 0x4c, 0xd0, 0x72, 0x06, 0x5f, 0xb0, 0x5f, 0xc1,
0xc2, 0xa3, 0x90, 0xfa, 0x15, 0xad, 0x99, 0x7a, 0xe1, 0xf3, 0x53, 0xf0, 0xb4, 0x92, 0x45, 0x9b,
0x35, 0x99, 0xd2, 0x85, 0x8a, 0x76, 0xf5, 0x46, 0x34, 0x36, 0xb3, 0x57, 0xad, 0x44, 0x63, 0x93,
0x72, 0x53, 0x87, 0x71, 0x1f, 0xeb, 0x31, 0xd8, 0xbd, 0xb8, 0x1e, 0xba, 0x9d, 0x23, 0xae, 0xe9,
0xe1, 0x4f, 0xec, 0x51, 0xf8, 0x05, 0xfb, 0x8c, 0xa6, 0x43, 0x0b, 0xa2, 0x8c, 0x95, 0x93, 0xe9,
0x78, 0xcb, 0x68, 0xb0, 0xb4, 0xa4, 0xa4, 0xc2, 0x42, 0x55, 0xa1, 0xc4, 0xf8, 0x04, 0xa0, 0x1b,
0x7a, 0xe3, 0x2d, 0x9b, 0x8f, 0x3c, 0x37, 0xe6, 0xe9, 0x71, 0x58, 0x5f, 0xcc, 0x27, 0xb5, 0xd8,
0x3e, 0xf6, 0x99, 0xa6, 0xcd, 0x25, 0xc2, 0x7f, 0x15, 0x11, 0x5f, 0x1b, 0xf9, 0x17, 0x0d, 0x48,
0x4a, 0xf4, 0xdf, 0xa3, 0x0c, 0x6b, 0x01, 0xc4, 0xae, 0x6f, 0x91, 0x6e, 0x36, 0xe3, 0x55, 0x17,
0xb1, 0xd7, 0x14, 0x3f, 0xb9, 0x43, 0x28, 0xc7, 0x3e, 0x43, 0xab, 0xf1, 0x4d, 0x42, 0x09, 0x0f,
0xa3, 0x48, 0x52, 0x98, 0xf1, 0xd7, 0x31, 0x1a, 0x38, 0x54, 0xc0, 0x4a, 0x62, 0xa8, 0x4e, 0x38,
0x0f, 0x98, 0x03, 0x8b, 0xd4, 0xc0, 0x48, 0x2c, 0xc3, 0x70, 0xb4, 0xe8, 0xe1, 0x93, 0x59, 0xd7,
0x99, 0x88, 0x6b, 0xa4, 0x3a, 0x80, 0x24, 0x8e, 0x98, 0x04, 0xb5, 0x52, 0x28, 0x9c, 0xd8, 0x02,
0x46, 0xb0, 0x30, 0xe3, 0x63, 0x10, 0xb1, 0x8e, 0xeb, 0x9c, 0x46, 0x22, 0xd6, 0x71, 0xad, 0x7b,
0x82, 0xb1, 0x8c, 0x55, 0xce, 0x1b, 0x80, 0x2a, 0xe5, 0x85, 0x13, 0xf6, 0xcf, 0x44, 0x75, 0xbf,
0x9f, 0x81, 0xc5, 0x14, 0x2f, 0x02, 0xf6, 0xa6, 0x3a, 0x9d, 0xb8, 0xd6, 0xc3, 0x60, 0x2d, 0xd5,
0xda, 0x6c, 0x74, 0xb1, 0x9e, 0x3d, 0xf6, 0x2c, 0xb1, 0x81, 0x92, 0xb1, 0x57, 0xae, 0xcc, 0x97,
0x0a, 0x2f, 0xa9, 0x92, 0xcb, 0xe7, 0xb0, 0x4a, 0x0d, 0x69, 0x0d, 0x87, 0x53, 0x96, 0xf0, 0x37,
0xb4, 0x56, 0xa4, 0x58, 0xf7, 0x13, 0x7a, 0x40, 0xd2, 0xc2, 0x7f, 0x8d, 0xd8, 0x4e, 0x4d, 0x65,
0x13, 0x68, 0x4c, 0x5b, 0x98, 0xd9, 0xf5, 0x65, 0xad, 0xdd, 0x4d, 0xe8, 0xd9, 0x29, 0x56, 0xe9,
0xaf, 0x61, 0x65, 0x77, 0x8d, 0xb5, 0xb4, 0x71, 0x21, 0xd5, 0x5b, 0xcc, 0xc7, 0x5f, 0x8d, 0xcc,
0xe1, 0x53, 0xfd, 0xbc, 0x1b, 0x5d, 0xf5, 0x9e, 0x6e, 0xbc, 0x8f, 0x34, 0xfd, 0x74, 0x6b, 0xfa,
0x3b, 0x58, 0xfd, 0x3d, 0xe3, 0x56, 0x5a, 0xf5, 0x3e, 0x65, 0x21, 0x9d, 0x7f, 0x75, 0x7a, 0x5d,
0xab, 0x16, 0xdc, 0x4b, 0x9b, 0xef, 0x6b, 0x75, 0xae, 0xa9, 0xb1, 0xbe, 0x81, 0x32, 0x64, 0x55,
0x37, 0x7f, 0x47, 0xcb, 0x27, 0xc5, 0xce, 0x1e, 0x2d, 0x9f, 0x34, 0x7b, 0x79, 0x52, 0x7e, 0x52,
0x96, 0xf2, 0x8f, 0x32, 0x0f, 0x36, 0xde, 0xfd, 0xe1, 0xd7, 0x4e, 0x9d, 0xf0, 0x6c, 0x72, 0xbc,
0xde, 0xf7, 0x46, 0x0f, 0x87, 0xea, 0x54, 0x53, 0xc6, 0x6c, 0x3f, 0x1c, 0xba, 0x83, 0x87, 0x58,
0xec, 0xf1, 0xdc, 0xd8, 0xf7, 0x42, 0xef, 0x9b, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x21,
0x23, 0x29, 0x55, 0x89, 0x00, 0x00,
// 11870 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0xbd, 0xeb, 0x6f, 0x24, 0x49,
0x72, 0x18, 0x3e, 0xfd, 0x62, 0x77, 0x47, 0x3f, 0xd8, 0x4c, 0xbe, 0x7a, 0x38, 0x33, 0x3b, 0xb3,
0xb5, 0x7b, 0xbb, 0xb3, 0xb3, 0x77, 0x9c, 0xd9, 0xb9, 0x9b, 0xbd, 0xbb, 0xdd, 0x9f, 0x4e, 0xd7,
0x24, 0x9b, 0xc3, 0xbe, 0xe1, 0x6b, 0xab, 0x9b, 0xbb, 0x9a, 0xd3, 0xa3, 0xae, 0xd8, 0x9d, 0x24,
0x4b, 0xd3, 0x5d, 0xd5, 0x5b, 0x55, 0xcd, 0xc7, 0x1d, 0xf6, 0xf7, 0xc1, 0xb0, 0x05, 0xc1, 0xf0,
0x03, 0x82, 0x2d, 0x03, 0x96, 0x2d, 0xd8, 0xb0, 0x60, 0x18, 0x86, 0x01, 0x41, 0xc0, 0xc9, 0x1f,
0x0c, 0xf8, 0xbb, 0xbe, 0xf8, 0x01, 0x43, 0xf2, 0x17, 0x43, 0x10, 0x60, 0xd8, 0x96, 0x3f, 0x18,
0x30, 0x04, 0xf8, 0x1f, 0x30, 0x32, 0x22, 0xb3, 0x2a, 0xab, 0xbb, 0x38, 0x33, 0x7b, 0xb7, 0xbe,
0x2f, 0x64, 0x57, 0x64, 0xe4, 0x3b, 0x32, 0x32, 0x22, 0x23, 0x22, 0x13, 0xca, 0xfe, 0xb8, 0xbf,
0x3e, 0xf6, 0xbd, 0xd0, 0x63, 0x85, 0xa1, 0xeb, 0x8f, 0xfb, 0x6b, 0xb7, 0x4f, 0x3d, 0xef, 0x74,
0xc8, 0x1f, 0xda, 0x63, 0xe7, 0xa1, 0xed, 0xba, 0x5e, 0x68, 0x87, 0x8e, 0xe7, 0x06, 0x84, 0x64,
0xfc, 0x08, 0xea, 0x4f, 0xb9, 0xdb, 0xe5, 0x7c, 0x60, 0xf2, 0xcf, 0x27, 0x3c, 0x08, 0xd9, 0xfb,
0xb0, 0x60, 0xf3, 0x1f, 0x73, 0x3e, 0xb0, 0xc6, 0x76, 0x10, 0x8c, 0xcf, 0x7c, 0x3b, 0xe0, 0xcd,
0xcc, 0xbd, 0xcc, 0xfd, 0xaa, 0xd9, 0xa0, 0x84, 0xc3, 0x08, 0xce, 0xde, 0x84, 0x6a, 0x20, 0x50,
0xb9, 0x1b, 0xfa, 0xde, 0xf8, 0xaa, 0x99, 0x45, 0xbc, 0x8a, 0x80, 0xb5, 0x09, 0x64, 0x0c, 0x61,
0x3e, 0xaa, 0x21, 0x18, 0x7b, 0x6e, 0xc0, 0xd9, 0x23, 0x58, 0xea, 0x3b, 0xe3, 0x33, 0xee, 0x5b,
0x98, 0x79, 0xe4, 0xf2, 0x91, 0xe7, 0x3a, 0xfd, 0x66, 0xe6, 0x5e, 0xee, 0x7e, 0xd9, 0x64, 0x94,
0x26, 0x72, 0xec, 0xc9, 0x14, 0xf6, 0x2e, 0xcc, 0x73, 0x97, 0xe0, 0x7c, 0x80, 0xb9, 0x64, 0x55,
0xf5, 0x18, 0x2c, 0x32, 0x18, 0xbf, 0x9d, 0x85, 0x85, 0x8e, 0xeb, 0x84, 0x9f, 0xd9, 0xc3, 0x21,
0x0f, 0x55, 0x9f, 0xde, 0x85, 0xf9, 0x0b, 0x04, 0x60, 0x9f, 0x2e, 0x3c, 0x7f, 0x20, 0x7b, 0x54,
0x27, 0xf0, 0xa1, 0x84, 0x5e, 0xdb, 0xb2, 0xec, 0xb5, 0x2d, 0x4b, 0x1d, 0xae, 0xdc, 0x35, 0xc3,
0xf5, 0x2e, 0xcc, 0xfb, 0xbc, 0xef, 0x9d, 0x73, 0xff, 0xca, 0xba, 0x70, 0xdc, 0x81, 0x77, 0xd1,
0xcc, 0xdf, 0xcb, 0xdc, 0x2f, 0x98, 0x75, 0x05, 0xfe, 0x0c, 0xa1, 0x6c, 0x03, 0xe6, 0xfb, 0x67,
0xb6, 0xeb, 0xf2, 0xa1, 0x75, 0x6c, 0xf7, 0x5f, 0x4c, 0xc6, 0x41, 0xb3, 0x70, 0x2f, 0x73, 0xbf,
0xf2, 0xf8, 0xe6, 0x3a, 0xce, 0xea, 0xfa, 0xe6, 0x99, 0xed, 0x6e, 0x60, 0x4a, 0xd7, 0xb5, 0xc7,
0xc1, 0x99, 0x17, 0x9a, 0x75, 0x99, 0x83, 0xc0, 0x81, 0xb1, 0x04, 0x4c, 0x1f, 0x09, 0x1a, 0x7b,
0xe3, 0x5f, 0x65, 0x60, 0xf1, 0xc8, 0x1d, 0x7a, 0xfd, 0x17, 0x3f, 0xe3, 0x10, 0xa5, 0xf4, 0x21,
0xfb, 0xba, 0x7d, 0xc8, 0x7d, 0xd9, 0x3e, 0xac, 0xc0, 0x52, 0xb2, 0xb1, 0xb2, 0x17, 0x1c, 0x96,
0x45, 0xee, 0x53, 0xae, 0x9a, 0xa5, 0xba, 0xf1, 0x1e, 0x34, 0xfa, 0x13, 0xdf, 0xe7, 0xee, 0x4c,
0x3f, 0xe6, 0x25, 0x3c, 0xea, 0xc8, 0x9b, 0x50, 0x75, 0xf9, 0x45, 0x8c, 0x26, 0x69, 0xd7, 0xe5,
0x17, 0x0a, 0xc5, 0x68, 0xc2, 0xca, 0x74, 0x35, 0xb2, 0x01, 0x7f, 0x99, 0x81, 0xfc, 0x51, 0x78,
0xe9, 0xb1, 0x27, 0x50, 0xb5, 0x07, 0x03, 0x9f, 0x07, 0x81, 0x15, 0x5e, 0x8d, 0x69, 0xa5, 0xd4,
0x1f, 0x33, 0xd9, 0xc5, 0x16, 0x25, 0xf5, 0xae, 0xc6, 0xdc, 0xac, 0xd8, 0xf1, 0x07, 0x6b, 0x42,
0x51, 0x7e, 0x62, 0xbd, 0x65, 0x53, 0x7d, 0xb2, 0x3b, 0x00, 0xf6, 0xc8, 0x9b, 0xb8, 0xa1, 0x15,
0xd8, 0x21, 0x8e, 0x58, 0xce, 0x2c, 0x13, 0xa4, 0x6b, 0x87, 0xec, 0x16, 0x94, 0xc7, 0x2f, 0xac,
0xa0, 0xef, 0x3b, 0xe3, 0x10, 0x89, 0xa7, 0x6c, 0x96, 0xc6, 0x2f, 0xba, 0xf8, 0xcd, 0xde, 0x87,
0x92, 0x37, 0x09, 0xc7, 0x9e, 0xe3, 0x86, 0x92, 0x5e, 0xe6, 0x65, 0x43, 0x0e, 0x26, 0xe1, 0xa1,
0x00, 0x9b, 0x11, 0x02, 0x7b, 0x1b, 0x6a, 0x7d, 0xcf, 0x3d, 0x71, 0xfc, 0x11, 0x71, 0x84, 0xe6,
0x1c, 0xd6, 0x95, 0x04, 0x1a, 0x7f, 0x94, 0x85, 0x4a, 0xcf, 0xb7, 0xdd, 0xc0, 0xee, 0x0b, 0x00,
0x5b, 0x85, 0x62, 0x78, 0x69, 0x9d, 0xd9, 0xc1, 0x19, 0x76, 0xb5, 0x6c, 0xce, 0x85, 0x97, 0x3b,
0x76, 0x70, 0xc6, 0x56, 0x60, 0x8e, 0x5a, 0x89, 0x1d, 0xca, 0x99, 0xf2, 0x4b, 0x2c, 0x10, 0x77,
0x32, 0xb2, 0x92, 0x55, 0xe5, 0x90, 0x62, 0x1a, 0xee, 0x64, 0xb4, 0xa9, 0xc3, 0x45, 0xe7, 0x8f,
0xc5, 0x74, 0x53, 0x05, 0xd4, 0xbd, 0x32, 0x42, 0xb0, 0x8e, 0x37, 0xa1, 0x2a, 0x93, 0xb9, 0x73,
0x7a, 0x46, 0x7d, 0x2c, 0x98, 0x15, 0x42, 0x40, 0x90, 0x28, 0x21, 0x74, 0x46, 0xdc, 0x0a, 0x42,
0x7b, 0x34, 0x96, 0x5d, 0x2a, 0x0b, 0x48, 0x57, 0x00, 0x30, 0xd9, 0x0b, 0xed, 0xa1, 0x75, 0xc2,
0x79, 0xd0, 0x2c, 0xca, 0x64, 0x01, 0xd9, 0xe6, 0x3c, 0x60, 0x5f, 0x83, 0xfa, 0x80, 0x07, 0xa1,
0x25, 0x27, 0x83, 0x07, 0xcd, 0x12, 0xae, 0xfc, 0x9a, 0x80, 0xb6, 0x14, 0x90, 0xdd, 0x06, 0xf0,
0xed, 0x0b, 0x4b, 0x0c, 0x04, 0xbf, 0x6c, 0x96, 0x69, 0x16, 0x7c, 0xfb, 0xa2, 0x77, 0xb9, 0xc3,
0x2f, 0x05, 0xd5, 0x3c, 0xe5, 0xa1, 0x36, 0x68, 0x81, 0xa4, 0x4e, 0x63, 0x17, 0x98, 0x06, 0xde,
0xe2, 0xa1, 0xed, 0x0c, 0x03, 0xf6, 0x21, 0x54, 0x43, 0x0d, 0x19, 0xd9, 0x60, 0x25, 0x22, 0x21,
0x2d, 0x83, 0x99, 0xc0, 0x33, 0xce, 0xa0, 0xb4, 0xcd, 0xf9, 0xae, 0x33, 0x72, 0x42, 0xb6, 0x02,
0x85, 0x13, 0xe7, 0x92, 0x13, 0xb1, 0xe7, 0x76, 0x6e, 0x98, 0xf4, 0xc9, 0xee, 0x02, 0xe0, 0x0f,
0x6b, 0x14, 0x51, 0xd3, 0xce, 0x0d, 0xb3, 0x8c, 0xb0, 0xbd, 0xc0, 0x0e, 0xd9, 0x1a, 0x14, 0xc7,
0xdc, 0xef, 0x73, 0x35, 0x6f, 0x3b, 0x37, 0x4c, 0x05, 0xd8, 0x28, 0x42, 0x61, 0x28, 0x4a, 0x37,
0xfe, 0xa4, 0x00, 0x95, 0x2e, 0x77, 0xa3, 0x55, 0xc6, 0x20, 0x2f, 0x06, 0x44, 0xae, 0x2c, 0xfc,
0xcd, 0xde, 0x82, 0x0a, 0x0e, 0x5d, 0x10, 0xfa, 0x8e, 0x7b, 0x4a, 0x54, 0xbd, 0x91, 0x6d, 0x66,
0x4c, 0x10, 0xe0, 0x2e, 0x42, 0x59, 0x03, 0x72, 0xf6, 0x48, 0x51, 0xb5, 0xf8, 0xc9, 0x6e, 0x42,
0xc9, 0x1e, 0x85, 0xd4, 0xbc, 0x2a, 0x82, 0x8b, 0xf6, 0x28, 0xc4, 0xa6, 0xbd, 0x09, 0xd5, 0xb1,
0x7d, 0x35, 0x12, 0x6b, 0x39, 0x22, 0x87, 0xaa, 0x59, 0x91, 0x30, 0x24, 0x88, 0xc7, 0xb0, 0xa8,
0xa3, 0xa8, 0xca, 0x0b, 0x51, 0xe5, 0x0b, 0x1a, 0xb6, 0x6c, 0xc3, 0xbb, 0x30, 0xaf, 0xf2, 0xf8,
0xd4, 0x1f, 0x24, 0x93, 0xb2, 0x59, 0x97, 0x60, 0xd5, 0xcb, 0xfb, 0xd0, 0x38, 0x71, 0x5c, 0x7b,
0x68, 0xf5, 0x87, 0xe1, 0xb9, 0x35, 0xe0, 0xc3, 0xd0, 0x46, 0x8a, 0x29, 0x98, 0x75, 0x84, 0x6f,
0x0e, 0xc3, 0xf3, 0x2d, 0x01, 0x65, 0x5f, 0x87, 0xf2, 0x09, 0xe7, 0x16, 0x0e, 0x56, 0xb3, 0x94,
0x58, 0x78, 0x6a, 0x86, 0xcc, 0xd2, 0x89, 0x9a, 0xab, 0xaf, 0x43, 0xc3, 0x9b, 0x84, 0xa7, 0x9e,
0xe3, 0x9e, 0x5a, 0x82, 0xdf, 0x59, 0xce, 0x00, 0x69, 0x28, 0xbf, 0x91, 0x7d, 0x94, 0x31, 0xeb,
0x2a, 0x4d, 0x70, 0x9e, 0xce, 0x80, 0xbd, 0x03, 0xf3, 0x43, 0x3b, 0x08, 0xad, 0x33, 0x6f, 0x6c,
0x8d, 0x27, 0xc7, 0x2f, 0xf8, 0x55, 0xb3, 0x86, 0x03, 0x51, 0x13, 0xe0, 0x1d, 0x6f, 0x7c, 0x88,
0x40, 0x41, 0xd9, 0xd8, 0x4e, 0x6a, 0x04, 0xdc, 0xcb, 0xdc, 0xaf, 0x99, 0x65, 0x01, 0xa1, 0x4a,
0x9f, 0xc3, 0x22, 0x4e, 0x4f, 0x7f, 0x12, 0x84, 0xde, 0xc8, 0x12, 0xbc, 0xda, 0x1f, 0x04, 0xcd,
0x0a, 0xd2, 0xda, 0x7b, 0xb2, 0xb1, 0xda, 0x1c, 0xaf, 0x6f, 0xf1, 0x20, 0xdc, 0x44, 0x64, 0x93,
0x70, 0xc5, 0x86, 0x7e, 0x65, 0x2e, 0x0c, 0xa6, 0xe1, 0xec, 0xeb, 0xc0, 0xec, 0xe1, 0xd0, 0xbb,
0xb0, 0x02, 0x3e, 0x3c, 0xb1, 0xe4, 0x20, 0x36, 0xeb, 0xf7, 0x32, 0xf7, 0x4b, 0x66, 0x03, 0x53,
0xba, 0x7c, 0x78, 0x72, 0x48, 0x70, 0xf6, 0x21, 0xe0, 0x62, 0xb2, 0x4e, 0xb8, 0x1d, 0x4e, 0x7c,
0x1e, 0x34, 0xe7, 0xef, 0xe5, 0xee, 0xd7, 0x1f, 0x2f, 0x44, 0xe3, 0x85, 0xe0, 0x0d, 0x27, 0x34,
0xab, 0x02, 0x4f, 0x7e, 0x07, 0x6b, 0x5b, 0xb0, 0x92, 0xde, 0x24, 0x41, 0x54, 0x62, 0x54, 0x04,
0x31, 0xe6, 0x4d, 0xf1, 0x93, 0x2d, 0x41, 0xe1, 0xdc, 0x1e, 0x4e, 0xb8, 0xe4, 0xe9, 0xf4, 0xf1,
0x51, 0xf6, 0x3b, 0x19, 0xe3, 0x8f, 0x33, 0x50, 0xa5, 0x5e, 0x4a, 0x59, 0xe4, 0x2d, 0xa8, 0x29,
0x6a, 0xe0, 0xbe, 0xef, 0xf9, 0x92, 0xab, 0x29, 0xca, 0x6b, 0x0b, 0x98, 0xd8, 0x55, 0x14, 0xd2,
0xd8, 0xe7, 0xce, 0xc8, 0x3e, 0x55, 0x45, 0x2b, 0x52, 0x3a, 0x94, 0x60, 0xf6, 0x41, 0x5c, 0x9e,
0xef, 0x4d, 0x42, 0x2e, 0xf7, 0xbc, 0xaa, 0xec, 0x9e, 0x29, 0x60, 0x51, 0xe9, 0xf8, 0xf5, 0x1a,
0x74, 0x6e, 0xfc, 0x6e, 0x06, 0x98, 0x68, 0x76, 0xcf, 0xa3, 0x02, 0x24, 0x85, 0x4e, 0xe7, 0xcc,
0xbc, 0xf6, 0x0a, 0xc9, 0xbe, 0x6c, 0x85, 0x18, 0x50, 0xa0, 0xb6, 0xe7, 0x53, 0xda, 0x4e, 0x49,
0x3f, 0xc8, 0x97, 0x72, 0x8d, 0xbc, 0xf1, 0x5f, 0x72, 0xb0, 0xb4, 0x49, 0x5b, 0x76, 0xab, 0xdf,
0xe7, 0xe3, 0x68, 0xed, 0xdc, 0x85, 0x8a, 0xeb, 0x0d, 0xb8, 0xa2, 0x58, 0x6a, 0x18, 0x08, 0x90,
0x46, 0xae, 0x67, 0xb6, 0xe3, 0x52, 0xc3, 0x69, 0x30, 0xcb, 0x08, 0xc1, 0x66, 0xbf, 0x03, 0xf3,
0x63, 0xee, 0x0e, 0xf4, 0x25, 0x42, 0x42, 0x55, 0x4d, 0x82, 0xe5, 0xea, 0xb8, 0x0b, 0x95, 0x93,
0x09, 0xe1, 0x09, 0xc6, 0x92, 0x47, 0x1a, 0x00, 0x09, 0x6a, 0x11, 0x7f, 0x19, 0x4f, 0x82, 0x33,
0x4c, 0x2d, 0x60, 0x6a, 0x51, 0x7c, 0x8b, 0xa4, 0x3b, 0x00, 0x83, 0x49, 0x10, 0xca, 0x15, 0x33,
0x87, 0x89, 0x65, 0x01, 0xa1, 0x15, 0xf3, 0x0d, 0x58, 0x1c, 0xd9, 0x97, 0x16, 0xd2, 0x8e, 0xe5,
0xb8, 0xd6, 0xc9, 0x10, 0xf7, 0x9c, 0x22, 0xe2, 0x35, 0x46, 0xf6, 0xe5, 0xa7, 0x22, 0xa5, 0xe3,
0x6e, 0x23, 0x5c, 0xb0, 0x15, 0x25, 0xee, 0xf8, 0x3c, 0xe0, 0xfe, 0x39, 0x47, 0x4e, 0x90, 0x8f,
0x64, 0x1a, 0x93, 0xa0, 0xa2, 0x45, 0x23, 0xd1, 0xef, 0x70, 0xd8, 0xa7, 0x65, 0x6f, 0x16, 0x47,
0x8e, 0xbb, 0x13, 0x0e, 0xfb, 0x62, 0x5f, 0x11, 0x7c, 0x64, 0xcc, 0x7d, 0xeb, 0xc5, 0x05, 0xae,
0xe1, 0x3c, 0xf2, 0x8d, 0x43, 0xee, 0x3f, 0xbb, 0x10, 0x5b, 0x7f, 0x3f, 0x40, 0x46, 0x64, 0x5f,
0x35, 0x2b, 0xb8, 0xc0, 0x4b, 0xfd, 0x40, 0xb0, 0x20, 0xfb, 0x4a, 0x2c, 0x42, 0xd1, 0x5a, 0x1b,
0x67, 0x81, 0x0f, 0xb0, 0xf8, 0x00, 0x39, 0x6a, 0x0d, 0x1b, 0xdb, 0x92, 0x09, 0xa2, 0x9e, 0x40,
0x50, 0xbd, 0x6a, 0xec, 0xc9, 0xd0, 0x3e, 0x0d, 0x90, 0xa5, 0xd4, 0xcc, 0xaa, 0x04, 0x6e, 0x0b,
0x98, 0xf1, 0x19, 0x09, 0x59, 0xda, 0xdc, 0xca, 0x35, 0x23, 0xb6, 0x7a, 0x84, 0xe0, 0xbc, 0x96,
0x4c, 0xf9, 0x95, 0x36, 0x69, 0xd9, 0x94, 0x49, 0x33, 0x7e, 0x3f, 0x03, 0x55, 0x59, 0x32, 0x0a,
0x25, 0x6c, 0x1d, 0x98, 0x9a, 0xc5, 0xf0, 0xd2, 0x19, 0x58, 0xc7, 0x57, 0x21, 0x0f, 0x88, 0x68,
0x76, 0x6e, 0x98, 0x0d, 0x99, 0xd6, 0xbb, 0x74, 0x06, 0x1b, 0x22, 0x85, 0x3d, 0x80, 0x46, 0x02,
0x3f, 0x08, 0x7d, 0xa2, 0xe8, 0x9d, 0x1b, 0x66, 0x5d, 0xc3, 0xee, 0x86, 0xbe, 0x58, 0x23, 0x42,
0xe4, 0x99, 0x84, 0x96, 0xe3, 0x0e, 0xf8, 0x25, 0x92, 0x51, 0xcd, 0xac, 0x10, 0xac, 0x23, 0x40,
0x1b, 0x75, 0xa8, 0xea, 0xc5, 0x19, 0xa7, 0x50, 0x52, 0xf2, 0x12, 0x0a, 0x0c, 0x53, 0x4d, 0x32,
0xcb, 0x61, 0xd4, 0x92, 0x9b, 0x50, 0x4a, 0xb6, 0xc0, 0x2c, 0x86, 0xaf, 0x5d, 0xb1, 0xf1, 0x3d,
0x68, 0xec, 0x0a, 0xe2, 0x71, 0x05, 0xb1, 0x4a, 0xf9, 0x6f, 0x05, 0xe6, 0xb4, 0x45, 0x53, 0x36,
0xe5, 0x97, 0xd8, 0x73, 0xcf, 0xbc, 0x20, 0x94, 0xb5, 0xe0, 0x6f, 0xe3, 0x4f, 0x32, 0xc0, 0xda,
0x41, 0xe8, 0x8c, 0xec, 0x90, 0x6f, 0xf3, 0x88, 0x2d, 0x1c, 0x40, 0x55, 0x94, 0xd6, 0xf3, 0x5a,
0x24, 0x90, 0x91, 0x40, 0xf1, 0xbe, 0x5c, 0xc6, 0xb3, 0x19, 0xd6, 0x75, 0x6c, 0x62, 0xf3, 0x89,
0x02, 0xc4, 0x2a, 0x0b, 0x6d, 0xff, 0x94, 0x87, 0x28, 0xc6, 0x49, 0x79, 0x1f, 0x08, 0x24, 0x04,
0xb8, 0xb5, 0x5f, 0x86, 0x85, 0x99, 0x32, 0x74, 0xbe, 0x5c, 0x4e, 0xe1, 0xcb, 0x39, 0x9d, 0x2f,
0x5b, 0xb0, 0x98, 0x68, 0x97, 0xa4, 0xb4, 0x55, 0x28, 0x8a, 0x05, 0x21, 0x84, 0x83, 0x0c, 0x49,
0x95, 0x27, 0x9c, 0x0b, 0x31, 0xf8, 0x21, 0x2c, 0x9d, 0x70, 0xee, 0xdb, 0x21, 0x26, 0xe2, 0x8a,
0x11, 0x33, 0x24, 0x0b, 0x5e, 0x90, 0x69, 0x5d, 0x3b, 0x3c, 0xe4, 0xbe, 0x98, 0x29, 0xe3, 0xbf,
0x65, 0x60, 0x5e, 0x70, 0xd0, 0x3d, 0xdb, 0xbd, 0x52, 0xe3, 0xb4, 0x9b, 0x3a, 0x4e, 0xf7, 0xb5,
0xcd, 0x50, 0xc3, 0xfe, 0xb2, 0x83, 0x94, 0x9b, 0x1e, 0x24, 0x76, 0x0f, 0xaa, 0x89, 0xb6, 0x16,
0xb0, 0xad, 0x10, 0x44, 0x8d, 0xfc, 0xf9, 0x87, 0xf1, 0x1d, 0x68, 0xc4, 0xcd, 0x96, 0x63, 0xc8,
0x20, 0x2f, 0x48, 0x52, 0x16, 0x80, 0xbf, 0x8d, 0x7f, 0x9c, 0x21, 0xc4, 0x4d, 0xcf, 0x89, 0xa4,
0x53, 0x81, 0x28, 0xe4, 0x5e, 0x85, 0x28, 0x7e, 0x5f, 0x2b, 0xd5, 0xff, 0xfc, 0x9d, 0x15, 0x4b,
0x27, 0xe0, 0xee, 0xc0, 0xb2, 0x87, 0x43, 0x64, 0xbe, 0x25, 0xb3, 0x28, 0xbe, 0x5b, 0xc3, 0xa1,
0xf1, 0x2e, 0x2c, 0x68, 0xad, 0x7b, 0x49, 0x3f, 0xf6, 0x81, 0xed, 0x3a, 0x41, 0x78, 0xe4, 0x06,
0x63, 0x4d, 0x70, 0xbb, 0x05, 0x65, 0xc1, 0x61, 0x45, 0xcb, 0x68, 0xc9, 0x16, 0x4c, 0xc1, 0x72,
0x45, 0xbb, 0x02, 0x4c, 0xb4, 0x2f, 0x65, 0x62, 0x56, 0x26, 0xda, 0x97, 0x98, 0x68, 0x7c, 0x07,
0x16, 0x13, 0xe5, 0xc9, 0xaa, 0xdf, 0x84, 0xc2, 0x24, 0xbc, 0xf4, 0x94, 0x68, 0x5e, 0x91, 0x14,
0x22, 0x14, 0x40, 0x93, 0x52, 0x8c, 0x8f, 0x61, 0x61, 0x9f, 0x5f, 0xc8, 0x45, 0xac, 0x1a, 0xf2,
0x0e, 0xe4, 0x5f, 0xa1, 0x14, 0x62, 0xba, 0xb1, 0x0e, 0x4c, 0xcf, 0x2c, 0x6b, 0xd5, 0x74, 0xc4,
0x4c, 0x42, 0x47, 0x34, 0xde, 0x01, 0xd6, 0x75, 0x4e, 0xdd, 0x3d, 0x1e, 0x04, 0xf6, 0x69, 0xb4,
0xec, 0x1b, 0x90, 0x1b, 0x05, 0xa7, 0x92, 0x47, 0x89, 0x9f, 0xc6, 0x37, 0x61, 0x31, 0x81, 0x27,
0x0b, 0xbe, 0x0d, 0xe5, 0xc0, 0x39, 0x75, 0x51, 0xb0, 0x92, 0x45, 0xc7, 0x00, 0x63, 0x1b, 0x96,
0x3e, 0xe5, 0xbe, 0x73, 0x72, 0xf5, 0xaa, 0xe2, 0x93, 0xe5, 0x64, 0xa7, 0xcb, 0x69, 0xc3, 0xf2,
0x54, 0x39, 0xb2, 0x7a, 0x22, 0x5f, 0x39, 0x93, 0x25, 0x93, 0x3e, 0x34, 0xbe, 0x97, 0xd5, 0xf9,
0x9e, 0x71, 0x04, 0x6c, 0xd3, 0x73, 0x5d, 0xde, 0x0f, 0x0f, 0x39, 0xf7, 0xe3, 0x53, 0xaa, 0x98,
0x56, 0x2b, 0x8f, 0x57, 0xe5, 0xc8, 0x4e, 0x33, 0x53, 0x49, 0xc4, 0x0c, 0xf2, 0x63, 0xee, 0x8f,
0xb0, 0xe0, 0x92, 0x89, 0xbf, 0x8d, 0x65, 0x58, 0x4c, 0x14, 0x2b, 0xf5, 0xfa, 0x47, 0xb0, 0xbc,
0xe5, 0x04, 0xfd, 0xd9, 0x0a, 0x57, 0xa1, 0x38, 0x9e, 0x1c, 0x5b, 0x49, 0xbe, 0xfc, 0x8c, 0x5f,
0x09, 0x6d, 0x6f, 0x3a, 0x87, 0x2c, 0xeb, 0xaf, 0x67, 0x20, 0xbf, 0xd3, 0xdb, 0xdd, 0x64, 0x6b,
0x50, 0x72, 0xdc, 0xbe, 0x37, 0x12, 0x82, 0x17, 0xf5, 0x39, 0xfa, 0xbe, 0x76, 0x81, 0xdd, 0x82,
0x32, 0xca, 0x6b, 0x42, 0xb5, 0x95, 0xa2, 0x4f, 0x49, 0x00, 0x76, 0xbd, 0xfe, 0x0b, 0xa1, 0x53,
0xf3, 0xcb, 0xb1, 0xe3, 0xa3, 0xd6, 0xac, 0x94, 0xe1, 0x3c, 0xed, 0xf5, 0x71, 0x02, 0x69, 0xc4,
0xc6, 0xbf, 0x29, 0x41, 0x51, 0xee, 0xb6, 0xb4, 0x73, 0x87, 0xce, 0x39, 0x8f, 0x77, 0x6e, 0xf1,
0x25, 0xe4, 0x01, 0x9f, 0x8f, 0xbc, 0x30, 0x12, 0xd8, 0x68, 0x0e, 0xaa, 0x04, 0x94, 0x22, 0x9b,
0x26, 0x34, 0xd0, 0x11, 0x43, 0x8e, 0x90, 0xfa, 0xfa, 0x56, 0x7e, 0x0b, 0x8a, 0x6a, 0xef, 0xcf,
0x47, 0x3a, 0xcd, 0x5c, 0x9f, 0xa4, 0xb5, 0x35, 0x28, 0xf5, 0xed, 0xb1, 0xdd, 0x77, 0xc2, 0x2b,
0xc9, 0x10, 0xa2, 0x6f, 0x51, 0xfa, 0xd0, 0xeb, 0xdb, 0x43, 0xeb, 0xd8, 0x1e, 0xda, 0x6e, 0x9f,
0x4b, 0xdd, 0xbd, 0x8a, 0xc0, 0x0d, 0x82, 0x09, 0xfd, 0x5c, 0xb6, 0x53, 0x61, 0x91, 0x0a, 0x2f,
0x5b, 0xaf, 0xd0, 0x84, 0x70, 0xe9, 0x8d, 0x46, 0x8e, 0xd0, 0x32, 0x48, 0x0c, 0xcb, 0x99, 0x65,
0x82, 0x6c, 0x73, 0xec, 0xad, 0x4c, 0xbe, 0xa0, 0xa1, 0x2b, 0x53, 0x55, 0x04, 0xfc, 0x8c, 0x0e,
0x12, 0x66, 0x65, 0xb1, 0x9c, 0x26, 0x8b, 0xbd, 0x0f, 0x0b, 0x13, 0x37, 0xe0, 0x61, 0x38, 0xe4,
0x83, 0xa8, 0x2d, 0x15, 0x44, 0x6a, 0x44, 0x09, 0xaa, 0x39, 0xeb, 0xb0, 0x48, 0x87, 0x0e, 0x81,
0x1d, 0x7a, 0xc1, 0x99, 0x13, 0x58, 0x81, 0xd0, 0x90, 0x48, 0xdd, 0x5d, 0xc0, 0xa4, 0xae, 0x4c,
0xe9, 0x92, 0x8a, 0xb4, 0x3a, 0x85, 0xef, 0xf3, 0x3e, 0x77, 0xce, 0xf9, 0x00, 0xe5, 0xb4, 0x9c,
0xb9, 0x9c, 0xc8, 0x63, 0xca, 0x44, 0x14, 0xba, 0x27, 0x23, 0x6b, 0x32, 0x1e, 0xd8, 0x42, 0x58,
0xa9, 0x93, 0x30, 0xec, 0x4e, 0x46, 0x47, 0x04, 0x61, 0x8f, 0x40, 0x49, 0x62, 0x52, 0x3e, 0x9c,
0x4f, 0xf0, 0x33, 0x41, 0xac, 0x66, 0x55, 0x62, 0x90, 0xa0, 0x98, 0x90, 0x39, 0x1b, 0x53, 0x32,
0x67, 0x13, 0x8a, 0x63, 0xdf, 0x39, 0xb7, 0x43, 0xde, 0x5c, 0x20, 0x06, 0x2e, 0x3f, 0x05, 0x67,
0x70, 0x5c, 0x27, 0x74, 0xec, 0xd0, 0xf3, 0x9b, 0x0c, 0xd3, 0x62, 0x00, 0x7b, 0x00, 0x0b, 0x48,
0x23, 0x41, 0x68, 0x87, 0x93, 0x40, 0x4a, 0xa0, 0x8b, 0x48, 0x4c, 0x28, 0x43, 0x77, 0x11, 0x8e,
0x42, 0x28, 0xfb, 0x26, 0xac, 0x10, 0x59, 0x60, 0x0e, 0x29, 0x59, 0xa3, 0x40, 0xb0, 0x84, 0x43,
0xb1, 0x88, 0xa9, 0x82, 0xbe, 0xa5, 0x7c, 0x2d, 0xa4, 0x83, 0x27, 0xb0, 0x2a, 0xc9, 0x64, 0x26,
0xd7, 0x32, 0xe6, 0x5a, 0xa2, 0xe4, 0xa9, 0x6c, 0xeb, 0xb0, 0x20, 0x9a, 0xe4, 0xf4, 0x2d, 0x99,
0x5b, 0xac, 0x84, 0x15, 0xd1, 0x7a, 0xd4, 0x94, 0xe6, 0x29, 0xd1, 0xc4, 0xb4, 0x67, 0xfc, 0x8a,
0x7d, 0x0f, 0xe6, 0x89, 0x64, 0x50, 0xbd, 0x42, 0x4e, 0xbf, 0x86, 0x9c, 0x7e, 0x59, 0x9d, 0x70,
0x46, 0xa9, 0xc8, 0xec, 0xeb, 0xfd, 0xc4, 0xb7, 0x58, 0x0e, 0x43, 0xe7, 0x84, 0x87, 0xce, 0x88,
0x37, 0x57, 0x89, 0xc0, 0xd4, 0xb7, 0x58, 0xa9, 0x93, 0x31, 0xa6, 0x34, 0x89, 0x2f, 0xd0, 0x17,
0xd2, 0xee, 0xd0, 0x0b, 0xb8, 0x3a, 0xa2, 0x6a, 0xde, 0x94, 0x8b, 0x50, 0x00, 0x95, 0x0c, 0x29,
0x04, 0x71, 0x52, 0x7a, 0xa2, 0x83, 0xc4, 0x5b, 0x48, 0x0c, 0x35, 0xd2, 0x7d, 0xd4, 0x61, 0xa2,
0xd8, 0xc5, 0xcf, 0xec, 0x0b, 0xc5, 0x41, 0x6e, 0xe3, 0xfc, 0x82, 0x00, 0x49, 0xde, 0xf1, 0xd3,
0x0c, 0x6d, 0x88, 0x92, 0x7f, 0x04, 0x9a, 0x7a, 0x47, 0x9c, 0xc3, 0xf2, 0xdc, 0xe1, 0x95, 0x64,
0x26, 0x40, 0xa0, 0x03, 0x77, 0x88, 0xab, 0xd9, 0x71, 0x75, 0x14, 0xe2, 0xbd, 0x55, 0x05, 0x44,
0xa4, 0xbb, 0x50, 0x19, 0x4f, 0x8e, 0x87, 0x4e, 0x9f, 0x50, 0x72, 0x54, 0x0a, 0x81, 0x10, 0x41,
0xe8, 0xb7, 0x44, 0x51, 0x84, 0x91, 0x47, 0x8c, 0x8a, 0x84, 0x21, 0x0a, 0xf2, 0x76, 0xee, 0x23,
0x3b, 0xa9, 0x9a, 0xf8, 0xdb, 0xd8, 0x80, 0xa5, 0x64, 0xa3, 0xe5, 0xc6, 0xf3, 0x00, 0x4a, 0x92,
0x57, 0xa9, 0x83, 0x8f, 0xba, 0x76, 0x14, 0x2d, 0x54, 0xb4, 0x28, 0xdd, 0xf8, 0xad, 0x39, 0x58,
0x94, 0xd0, 0x4d, 0x31, 0xb4, 0xdd, 0xc9, 0x68, 0x64, 0xfb, 0x29, 0x4c, 0x30, 0xf3, 0x72, 0x26,
0x98, 0x9d, 0x61, 0x82, 0x49, 0xcd, 0x97, 0x78, 0x68, 0x52, 0xf3, 0x15, 0x73, 0x49, 0xca, 0x88,
0x7e, 0x0e, 0x5a, 0x93, 0xe0, 0x1e, 0x9d, 0xb7, 0xce, 0xb0, 0xec, 0x42, 0x0a, 0xcb, 0xd6, 0x19,
0xee, 0xdc, 0x14, 0xc3, 0x7d, 0x13, 0x88, 0x68, 0xd4, 0xec, 0x17, 0x49, 0x3f, 0x41, 0x98, 0x3c,
0x4c, 0x7d, 0x17, 0xe6, 0xa7, 0x79, 0x1c, 0x31, 0xd3, 0x7a, 0x0a, 0x87, 0x73, 0x46, 0x1c, 0x77,
0x2b, 0x0d, 0xb9, 0x2c, 0x39, 0x9c, 0x33, 0xe2, 0xbb, 0x98, 0xa2, 0xf0, 0xdb, 0x00, 0x54, 0x37,
0x2e, 0x1a, 0xc0, 0x45, 0xf3, 0x4e, 0x72, 0x2e, 0xf4, 0x51, 0x5f, 0x17, 0x1f, 0x13, 0x9f, 0xe3,
0x2a, 0x2a, 0x63, 0x4e, 0x5c, 0x40, 0xcf, 0xa0, 0xee, 0x8d, 0xb9, 0x6b, 0xc5, 0xbc, 0xa6, 0x82,
0x45, 0xbd, 0xfd, 0x92, 0xa2, 0x3a, 0x0a, 0xd7, 0xac, 0x89, 0xbc, 0xd1, 0x27, 0xdb, 0xa3, 0x81,
0xe7, 0x5a, 0x69, 0xd5, 0x2f, 0x51, 0x5a, 0x1d, 0x33, 0x47, 0xdf, 0xc6, 0xdf, 0xcc, 0x40, 0x45,
0x6b, 0x36, 0x5b, 0x86, 0x85, 0xcd, 0x83, 0x83, 0xc3, 0xb6, 0xd9, 0xea, 0x75, 0x3e, 0x6d, 0x5b,
0x9b, 0xbb, 0x07, 0xdd, 0x76, 0xe3, 0x86, 0x00, 0xef, 0x1e, 0x6c, 0xb6, 0x76, 0xad, 0xed, 0x03,
0x73, 0x53, 0x81, 0x33, 0x6c, 0x05, 0x98, 0xd9, 0xde, 0x3b, 0xe8, 0xb5, 0x13, 0xf0, 0x2c, 0x6b,
0x40, 0x75, 0xc3, 0x6c, 0xb7, 0x36, 0x77, 0x24, 0x24, 0xc7, 0x96, 0xa0, 0xb1, 0x7d, 0xb4, 0xbf,
0xd5, 0xd9, 0x7f, 0x6a, 0x6d, 0xb6, 0xf6, 0x37, 0xdb, 0xbb, 0xed, 0xad, 0x46, 0x9e, 0xd5, 0xa0,
0xdc, 0xda, 0x68, 0xed, 0x6f, 0x1d, 0xec, 0xb7, 0xb7, 0x1a, 0x05, 0xe3, 0xbb, 0x50, 0x8e, 0x3b,
0x5a, 0x81, 0xe2, 0xd1, 0xfe, 0xb3, 0xfd, 0x83, 0xcf, 0xf6, 0x1b, 0x37, 0x58, 0x19, 0x0a, 0x58,
0x7f, 0x23, 0xc3, 0x00, 0xe6, 0xa8, 0xce, 0x46, 0x96, 0x95, 0x20, 0xbf, 0x71, 0xd0, 0xdb, 0x69,
0xe4, 0x8c, 0xbf, 0xc8, 0xc0, 0x32, 0x76, 0x79, 0x30, 0xcd, 0x04, 0xee, 0x41, 0xa5, 0xef, 0x79,
0x63, 0xa1, 0x69, 0xc5, 0x12, 0x85, 0x0e, 0x12, 0x0b, 0x9c, 0x98, 0xf7, 0x89, 0xe7, 0xf7, 0xb9,
0xe4, 0x01, 0x80, 0xa0, 0x6d, 0x01, 0x11, 0x34, 0x28, 0x89, 0x98, 0x30, 0x88, 0x05, 0x54, 0x08,
0x46, 0x28, 0x2b, 0x30, 0x77, 0xec, 0x73, 0xbb, 0x7f, 0x26, 0x57, 0xbf, 0xfc, 0x62, 0xef, 0xc5,
0x67, 0x00, 0x7d, 0x41, 0x53, 0x43, 0x3e, 0xc0, 0x25, 0x50, 0x32, 0xe7, 0x25, 0x7c, 0x53, 0x82,
0xc5, 0x6e, 0x64, 0x1f, 0xdb, 0xee, 0xc0, 0x73, 0xf9, 0x40, 0xaa, 0x1a, 0x31, 0xc0, 0x38, 0x84,
0x95, 0xe9, 0xfe, 0x49, 0x7e, 0xf1, 0xa1, 0xc6, 0x2f, 0x48, 0xf2, 0x5f, 0xbb, 0x9e, 0x14, 0x34,
0xde, 0xf1, 0xb7, 0xf3, 0x90, 0x17, 0x92, 0xe0, 0xb5, 0x42, 0xa3, 0x2e, 0xda, 0xe7, 0x66, 0xcc,
0x3f, 0x78, 0xd4, 0x40, 0x22, 0x02, 0x9d, 0x67, 0x95, 0x11, 0x82, 0xa2, 0x41, 0x94, 0xec, 0xf3,
0xfe, 0xb9, 0x3c, 0xd0, 0xa2, 0x64, 0x93, 0xf7, 0xcf, 0x51, 0xa7, 0xb2, 0x43, 0xca, 0x4b, 0xeb,
0xbd, 0x18, 0xd8, 0x21, 0xe6, 0x94, 0x49, 0x98, 0xaf, 0x18, 0x25, 0x61, 0xae, 0x26, 0x14, 0x1d,
0xf7, 0xd8, 0x9b, 0xb8, 0x03, 0x5c, 0xde, 0x25, 0x53, 0x7d, 0xa2, 0xb5, 0x09, 0x39, 0x91, 0xd8,
0x88, 0x68, 0x35, 0x97, 0x04, 0xa0, 0x27, 0xb6, 0xa2, 0x0f, 0xa0, 0x1c, 0x5c, 0xb9, 0x7d, 0x7d,
0x0d, 0x2f, 0xc9, 0xf1, 0x11, 0xbd, 0x5f, 0xef, 0x5e, 0xb9, 0x7d, 0x5c, 0xb1, 0xa5, 0x40, 0xfe,
0x62, 0x4f, 0xa0, 0x14, 0x9d, 0xfb, 0x12, 0x07, 0xbe, 0xa9, 0xe7, 0x50, 0x87, 0xbd, 0xa4, 0x5e,
0x47, 0xa8, 0xec, 0x21, 0xcc, 0xe1, 0xe1, 0x6c, 0xd0, 0xac, 0x62, 0x26, 0x25, 0xef, 0x8b, 0x66,
0xa0, 0xa1, 0x87, 0x0f, 0xf0, 0xa0, 0xd6, 0x94, 0x68, 0x6b, 0xcf, 0xa0, 0x96, 0x28, 0x4b, 0x57,
0xa2, 0x6b, 0xa4, 0x44, 0xbf, 0xad, 0x2b, 0xd1, 0xf1, 0x4e, 0x20, 0xb3, 0xe9, 0x4a, 0xf5, 0x2f,
0x43, 0x49, 0x75, 0x45, 0xac, 0x3f, 0xb9, 0x76, 0xac, 0xee, 0xf3, 0xfd, 0xcd, 0xc6, 0x0d, 0x36,
0x0f, 0x95, 0xd6, 0x26, 0x2e, 0x69, 0x04, 0x64, 0x04, 0xca, 0x61, 0xab, 0xdb, 0x8d, 0x20, 0x59,
0x63, 0x1b, 0x1a, 0xd3, 0x2d, 0x15, 0x34, 0x19, 0x2a, 0x98, 0x3c, 0xba, 0x8e, 0x01, 0x42, 0x45,
0xa2, 0xd3, 0x68, 0x92, 0xc3, 0xe9, 0xc3, 0x78, 0x02, 0x0d, 0xb1, 0xaf, 0x89, 0xa1, 0x0a, 0xb4,
0x23, 0xe0, 0xa1, 0x90, 0xed, 0xf4, 0xe3, 0xeb, 0x92, 0x59, 0x21, 0x18, 0x56, 0x65, 0x7c, 0x08,
0x0b, 0x5a, 0xb6, 0x58, 0xa5, 0x15, 0x7b, 0xe5, 0xb4, 0x4a, 0x8b, 0x0a, 0x0c, 0xa5, 0x18, 0xab,
0xb0, 0x2c, 0x3e, 0xdb, 0xe7, 0xdc, 0x0d, 0xbb, 0x93, 0x63, 0xb2, 0x39, 0x3a, 0x9e, 0x2b, 0x14,
0x9b, 0x72, 0x94, 0x72, 0x3d, 0x91, 0xaf, 0x4b, 0xed, 0x37, 0x8b, 0xa4, 0xb1, 0xa6, 0xd5, 0x80,
0x19, 0xd7, 0xf1, 0x6f, 0x42, 0x0b, 0x2e, 0x47, 0x20, 0x31, 0xac, 0x87, 0xed, 0xb6, 0x69, 0x1d,
0xec, 0xef, 0x76, 0xf6, 0x05, 0xa3, 0x14, 0xc3, 0x8a, 0x80, 0xed, 0x6d, 0x84, 0x64, 0x8c, 0x06,
0xd4, 0x9f, 0xf2, 0xb0, 0xe3, 0x9e, 0x78, 0xca, 0xbe, 0xf6, 0x97, 0x05, 0x98, 0x8f, 0x40, 0xb1,
0x16, 0x7d, 0xce, 0xfd, 0xc0, 0xf1, 0x5c, 0x14, 0x88, 0xcb, 0xa6, 0xfa, 0x14, 0xbb, 0x9b, 0x33,
0xe0, 0x6e, 0xe8, 0x84, 0x57, 0x56, 0xe2, 0xc8, 0xad, 0xae, 0xc0, 0x72, 0x17, 0x5d, 0x82, 0x82,
0x3d, 0x74, 0x6c, 0x65, 0xaa, 0xa5, 0x0f, 0x01, 0xed, 0x7b, 0x43, 0xcf, 0x47, 0xd9, 0xb7, 0x6c,
0xd2, 0x07, 0x7b, 0x04, 0x4b, 0x42, 0x06, 0xd7, 0xcf, 0x41, 0x91, 0x7f, 0xd0, 0xe9, 0x1f, 0x73,
0x27, 0xa3, 0xc3, 0xf8, 0x2c, 0x54, 0xa4, 0x88, 0xbd, 0x53, 0xe4, 0x90, 0xc2, 0x52, 0x94, 0x81,
0xd4, 0xb9, 0x05, 0x77, 0x32, 0x6a, 0x61, 0x4a, 0x84, 0xff, 0x18, 0x96, 0x05, 0x7e, 0x24, 0x5e,
0x45, 0x39, 0xe6, 0x31, 0x87, 0x28, 0xac, 0x23, 0xd3, 0xa2, 0x3c, 0xb7, 0xa0, 0x4c, 0xad, 0x12,
0x33, 0x5e, 0x20, 0x31, 0x1e, 0x9b, 0xc2, 0xfd, 0x60, 0xc6, 0xaa, 0x3a, 0x47, 0x82, 0xc0, 0x94,
0x55, 0x55, 0xb3, 0xcb, 0x96, 0xa6, 0xed, 0xb2, 0x8f, 0x61, 0xf9, 0x58, 0x90, 0xe0, 0x19, 0xb7,
0x07, 0xdc, 0xb7, 0x62, 0xc2, 0x26, 0x75, 0x65, 0x51, 0x24, 0xee, 0x60, 0x5a, 0xb4, 0x0e, 0x84,
0x9c, 0x23, 0xd8, 0x02, 0x1f, 0x58, 0xa1, 0x67, 0xa1, 0xf8, 0x83, 0x0c, 0xa6, 0x64, 0xd6, 0x08,
0xdc, 0xf3, 0x36, 0x05, 0x30, 0x89, 0x77, 0xea, 0xdb, 0xe3, 0x33, 0xa9, 0x50, 0x44, 0x78, 0x4f,
0x05, 0x90, 0xdd, 0x86, 0xa2, 0x20, 0x79, 0x97, 0x93, 0xf1, 0x8b, 0x44, 0x76, 0x05, 0x62, 0x6f,
0xc3, 0x1c, 0xd6, 0x11, 0x34, 0x1b, 0x48, 0xef, 0xd5, 0x98, 0x91, 0x3b, 0xae, 0x29, 0xd3, 0x84,
0x30, 0x39, 0xf1, 0x1d, 0xe2, 0x32, 0x65, 0x13, 0x7f, 0xb3, 0xef, 0x6b, 0x2c, 0x6b, 0x11, 0xf3,
0x2a, 0x79, 0x60, 0x8a, 0xd2, 0xae, 0xe3, 0x5e, 0x5f, 0x29, 0x33, 0xfa, 0x41, 0xbe, 0x54, 0x69,
0x54, 0x8d, 0x6f, 0x43, 0x81, 0x46, 0x47, 0x10, 0x21, 0x8e, 0x5d, 0x46, 0x12, 0x21, 0x42, 0x9b,
0x50, 0x74, 0x79, 0x78, 0xe1, 0xf9, 0x2f, 0xd4, 0xa1, 0xb4, 0xfc, 0x34, 0x7e, 0x8c, 0xa7, 0x29,
0x91, 0xc5, 0x9d, 0x14, 0x43, 0x41, 0x1e, 0x34, 0xbd, 0xc1, 0x99, 0x2d, 0x0f, 0x78, 0x4a, 0x08,
0xe8, 0x9e, 0xd9, 0x33, 0xe4, 0x91, 0x9d, 0x35, 0xba, 0xbf, 0x0d, 0x75, 0x65, 0xe3, 0x0f, 0xac,
0x21, 0x3f, 0x09, 0x25, 0xb9, 0x57, 0xa5, 0x81, 0x3f, 0xd8, 0xe5, 0x27, 0xa1, 0xb1, 0x07, 0x0b,
0x92, 0x20, 0x0f, 0xc6, 0x5c, 0x55, 0xfd, 0x9d, 0x34, 0x79, 0xba, 0xf2, 0x78, 0x31, 0xb9, 0xd1,
0x92, 0xef, 0x42, 0x42, 0xc8, 0x36, 0x3e, 0x01, 0xa6, 0x6f, 0xc3, 0xb2, 0x3c, 0x29, 0xd5, 0xaa,
0xb3, 0x7c, 0x65, 0x12, 0x8b, 0x64, 0x67, 0x67, 0x20, 0x46, 0x27, 0x98, 0xf4, 0xfb, 0xca, 0xf7,
0xa2, 0x64, 0xaa, 0x4f, 0xe3, 0x4f, 0x33, 0xb0, 0x88, 0x85, 0x29, 0x7d, 0x40, 0x32, 0xd9, 0x9f,
0xb9, 0x91, 0x62, 0x7e, 0x74, 0xd9, 0x87, 0x3e, 0xbe, 0xfc, 0xe9, 0x69, 0x7e, 0xe6, 0xf4, 0xf4,
0x3d, 0x68, 0x0c, 0xf8, 0xd0, 0x41, 0x37, 0x1c, 0x25, 0x4a, 0x90, 0x06, 0x30, 0xaf, 0xe0, 0x52,
0x1b, 0x34, 0xfe, 0x41, 0x06, 0x16, 0x48, 0x52, 0x41, 0xbd, 0x5a, 0x0e, 0xd4, 0xc7, 0x4a, 0x91,
0x94, 0xac, 0x4a, 0xf6, 0x29, 0xde, 0xc1, 0x11, 0x4a, 0xc8, 0x3b, 0x37, 0xa4, 0x82, 0x29, 0xa1,
0xec, 0x23, 0xd4, 0x61, 0x5c, 0x0b, 0x81, 0x29, 0x6e, 0x3d, 0xc9, 0x49, 0xd9, 0xb9, 0x81, 0x0a,
0x8e, 0x8b, 0xa0, 0x8d, 0x92, 0xd0, 0x6c, 0x05, 0xd8, 0xd8, 0x86, 0x5a, 0xa2, 0x9a, 0xc4, 0x11,
0x6f, 0x95, 0x8e, 0x78, 0x67, 0xcc, 0x28, 0xd9, 0x59, 0x33, 0xca, 0x15, 0x2c, 0x9a, 0xdc, 0x1e,
0x5c, 0x6d, 0x7b, 0xfe, 0x61, 0x70, 0x1c, 0x6e, 0x93, 0xf8, 0x27, 0xf8, 0x7b, 0x64, 0x1b, 0x4c,
0x9c, 0xa3, 0x2a, 0x13, 0x91, 0x52, 0x97, 0xbf, 0x06, 0xf5, 0xd8, 0x88, 0xa8, 0x9d, 0xc5, 0xd5,
0x22, 0x3b, 0x22, 0x1e, 0xc9, 0x09, 0x55, 0x33, 0x38, 0x0e, 0xe5, 0x69, 0x1c, 0xfe, 0x36, 0xfe,
0x46, 0x1e, 0x98, 0xa0, 0xe6, 0x29, 0x82, 0x99, 0x32, 0x7f, 0x66, 0x67, 0xcc, 0x9f, 0x8f, 0x80,
0x69, 0x08, 0xca, 0x2a, 0x9b, 0x8b, 0xac, 0xb2, 0x8d, 0x18, 0x57, 0x1a, 0x65, 0x1f, 0xc1, 0x92,
0x94, 0xa5, 0x93, 0x4d, 0x25, 0xd2, 0x60, 0x24, 0x54, 0x27, 0xda, 0xab, 0x4c, 0x9f, 0x42, 0xfd,
0xa7, 0xd3, 0x36, 0x34, 0x7d, 0x2a, 0xc5, 0x5f, 0x23, 0xc0, 0xb9, 0x57, 0x12, 0x60, 0x71, 0x86,
0x00, 0xb5, 0xc3, 0x9f, 0x52, 0xf2, 0xf0, 0xc7, 0x80, 0x9a, 0x32, 0x70, 0x92, 0x5f, 0x07, 0x09,
0x8e, 0x15, 0x69, 0xe5, 0x44, 0xdf, 0x8e, 0xfb, 0xd0, 0x50, 0x27, 0x34, 0xd1, 0xf1, 0x12, 0xf9,
0x2c, 0xc8, 0x03, 0xbe, 0x4d, 0x75, 0xc8, 0x94, 0x38, 0xcc, 0xaf, 0x4c, 0x1d, 0xe6, 0xbf, 0x0f,
0x0b, 0x81, 0xa0, 0x5f, 0x6b, 0xe2, 0x4a, 0x07, 0x23, 0x3e, 0x40, 0xad, 0xad, 0x64, 0x36, 0x30,
0xe1, 0x28, 0x86, 0xcf, 0x1e, 0x9d, 0xd4, 0x52, 0x8e, 0x4e, 0x9e, 0xc4, 0xb6, 0xc0, 0xe0, 0xcc,
0x19, 0xa1, 0xcc, 0x10, 0x3b, 0xe3, 0xc8, 0x01, 0xee, 0x9e, 0x39, 0x23, 0x53, 0x19, 0x9e, 0xc5,
0x87, 0xf1, 0x7f, 0x32, 0xd0, 0x10, 0x74, 0x90, 0x58, 0x62, 0xdf, 0x05, 0x64, 0x06, 0xaf, 0xb9,
0xc2, 0x2a, 0x02, 0x57, 0x2d, 0xb0, 0x6f, 0x03, 0xae, 0x18, 0x4b, 0xa8, 0xa8, 0x72, 0x7d, 0x35,
0x93, 0xeb, 0x2b, 0xe6, 0xa1, 0x3b, 0x37, 0x48, 0xf7, 0x10, 0x10, 0xf6, 0x5d, 0x28, 0x0b, 0xc2,
0x44, 0x2a, 0x91, 0x3e, 0x60, 0x4a, 0xf2, 0x4a, 0x59, 0x23, 0x22, 0xeb, 0x58, 0x7e, 0xa6, 0x99,
0x6f, 0xf3, 0x29, 0xe6, 0x5b, 0x6d, 0x01, 0xef, 0x00, 0x3c, 0xe3, 0x57, 0xbb, 0x5e, 0x1f, 0xf5,
0xca, 0x3b, 0x00, 0x82, 0x96, 0x4f, 0xec, 0x91, 0x23, 0xcf, 0x84, 0x0a, 0x66, 0xf9, 0x05, 0xbf,
0xda, 0x46, 0x80, 0x98, 0x48, 0x91, 0x1c, 0xaf, 0xe2, 0x82, 0x59, 0x7a, 0xc1, 0xaf, 0x68, 0x09,
0x5b, 0x50, 0x7b, 0xc6, 0xaf, 0xb6, 0x38, 0x09, 0x99, 0x9e, 0x2f, 0x88, 0xc8, 0xb7, 0x2f, 0x84,
0x54, 0x99, 0x30, 0xbd, 0x56, 0x7c, 0xfb, 0xe2, 0x19, 0xbf, 0x52, 0x66, 0xe0, 0xa2, 0x48, 0x1f,
0x7a, 0x7d, 0xb9, 0x6f, 0x2a, 0x27, 0x92, 0xb8, 0x51, 0xe6, 0xdc, 0x0b, 0xfc, 0x6d, 0xfc, 0x55,
0x06, 0x6a, 0xa2, 0xfd, 0xc8, 0x96, 0xc5, 0x94, 0x29, 0x5f, 0xa4, 0x4c, 0xec, 0x8b, 0xf4, 0x58,
0x72, 0x35, 0xe2, 0xf1, 0xd9, 0xeb, 0x79, 0x3c, 0xce, 0x0d, 0x31, 0xf8, 0x0f, 0xa0, 0x4c, 0xcb,
0x52, 0xac, 0xf3, 0x5c, 0x62, 0x82, 0x13, 0x1d, 0x32, 0x4b, 0x88, 0xf6, 0x8c, 0x5c, 0x1f, 0xb4,
0xf3, 0x45, 0x1a, 0xe2, 0xb2, 0x1f, 0x9d, 0x2a, 0xa6, 0x4c, 0x43, 0xe1, 0x1a, 0xd7, 0x07, 0xfd,
0xf0, 0x6e, 0x6e, 0xe6, 0xf0, 0xee, 0x00, 0x4a, 0x62, 0xaa, 0xb1, 0xb3, 0x29, 0x85, 0x66, 0xd2,
0x0a, 0x15, 0x92, 0x80, 0x2d, 0x36, 0x05, 0xc1, 0xe8, 0xb2, 0x52, 0x12, 0xb0, 0x03, 0x7e, 0x88,
0xcc, 0x2e, 0x03, 0x15, 0x6d, 0x05, 0xe0, 0xf9, 0x67, 0x34, 0x5e, 0xb4, 0x5c, 0x92, 0x24, 0x9e,
0x18, 0xf0, 0x9d, 0x1b, 0x66, 0xad, 0x9f, 0x98, 0x81, 0x75, 0x49, 0xab, 0x98, 0x33, 0x9b, 0x70,
0x9b, 0x52, 0x0d, 0x57, 0x04, 0x2a, 0x7e, 0x6f, 0xcc, 0x41, 0x5e, 0xa0, 0x1a, 0x1f, 0xc3, 0x82,
0xd6, 0x0c, 0x52, 0xf3, 0x5f, 0xb7, 0x87, 0xc6, 0xaf, 0x45, 0x99, 0x45, 0x1d, 0x64, 0xa1, 0x52,
0x6e, 0x24, 0x7c, 0x40, 0x1d, 0x97, 0xee, 0x2a, 0x04, 0x12, 0x68, 0xaf, 0xed, 0xda, 0xf0, 0x1b,
0xb0, 0xa8, 0x95, 0xbe, 0xed, 0xb8, 0xf6, 0xd0, 0xf9, 0x31, 0x6e, 0xf8, 0x81, 0x73, 0xea, 0x4e,
0x95, 0x4f, 0xa0, 0x2f, 0x55, 0xfe, 0x3f, 0xcc, 0xc2, 0x92, 0xac, 0x00, 0x1d, 0x03, 0x1d, 0x21,
0xc5, 0xed, 0x05, 0xa7, 0xec, 0xbb, 0x50, 0x13, 0x63, 0x63, 0xf9, 0xfc, 0xd4, 0x09, 0x42, 0xae,
0x2c, 0x63, 0x29, 0x8c, 0x4b, 0x6c, 0xe6, 0x02, 0xd5, 0x94, 0x98, 0xec, 0x63, 0xa8, 0x60, 0x56,
0x3a, 0x46, 0x91, 0x13, 0xd1, 0x9c, 0xcd, 0x48, 0x03, 0xbd, 0x73, 0xc3, 0x84, 0x20, 0x1e, 0xf6,
0x8f, 0xa1, 0x82, 0x73, 0x78, 0x8e, 0x03, 0x39, 0xc5, 0xaa, 0x66, 0x06, 0x5a, 0x64, 0x1e, 0xc7,
0xc3, 0xde, 0x82, 0x1a, 0x31, 0x2b, 0x39, 0x4e, 0xd2, 0xe1, 0x68, 0x6d, 0x36, 0xbb, 0x1a, 0x49,
0xd1, 0xf8, 0xb1, 0xf6, 0xbd, 0x51, 0x86, 0x62, 0xe8, 0x3b, 0xa7, 0xa7, 0xdc, 0x37, 0x56, 0xa2,
0xa1, 0x11, 0x5c, 0x98, 0x77, 0x43, 0x3e, 0x16, 0xb2, 0xb9, 0xf1, 0xef, 0x32, 0x50, 0x91, 0x7c,
0xf5, 0x67, 0x36, 0xc7, 0xad, 0x69, 0x9e, 0xb5, 0x74, 0x62, 0x13, 0x3b, 0xd2, 0xbe, 0x0b, 0xf3,
0x23, 0x21, 0xa7, 0x0b, 0x3d, 0x32, 0x61, 0x8b, 0xab, 0x2b, 0xb0, 0x14, 0x93, 0xd7, 0x61, 0x11,
0xa5, 0xe6, 0xc0, 0x0a, 0x9d, 0xa1, 0xa5, 0x12, 0xa5, 0x17, 0xeb, 0x02, 0x25, 0xf5, 0x9c, 0xe1,
0x9e, 0x4c, 0x10, 0xc2, 0x63, 0x10, 0xda, 0xa7, 0x5c, 0xae, 0x6d, 0xfa, 0x30, 0x9a, 0xb0, 0x32,
0xa5, 0x42, 0x2a, 0xf5, 0xf7, 0x7f, 0x2d, 0xc0, 0xea, 0x4c, 0x92, 0x54, 0x83, 0x23, 0x1b, 0xd4,
0xd0, 0x19, 0x1d, 0x7b, 0xd1, 0x09, 0x6d, 0x46, 0xb3, 0x41, 0xed, 0x8a, 0x14, 0x75, 0x42, 0xcb,
0x61, 0x59, 0x11, 0x24, 0x1e, 0xb1, 0x46, 0x5a, 0x66, 0x16, 0x75, 0xa0, 0x0f, 0x92, 0x9b, 0xd8,
0x74, 0x75, 0x0a, 0xae, 0x8b, 0x46, 0x8b, 0xe3, 0x19, 0x58, 0xc0, 0x7e, 0x13, 0x9a, 0x11, 0xdd,
0x4b, 0xb1, 0x5d, 0x53, 0x99, 0x45, 0x4d, 0x5f, 0x7f, 0x45, 0x4d, 0x89, 0xb3, 0x3b, 0x94, 0x9d,
0x56, 0xd4, 0x92, 0xa1, 0x02, 0xa3, 0xba, 0xce, 0xe1, 0x0d, 0x55, 0x17, 0x8a, 0xe1, 0xb3, 0x35,
0xe6, 0x5f, 0xab, 0x6f, 0x78, 0x2e, 0x99, 0xa8, 0xd6, 0xbc, 0x25, 0x0b, 0x8e, 0x92, 0xf4, 0x7a,
0xcf, 0x60, 0xe5, 0xc2, 0x76, 0x42, 0xd5, 0x47, 0x4d, 0x63, 0x2f, 0x60, 0x7d, 0x8f, 0x5f, 0x51,
0xdf, 0x67, 0x94, 0x39, 0xa1, 0x98, 0x2c, 0x5d, 0xcc, 0x02, 0x83, 0xb5, 0xbf, 0x9b, 0x83, 0x7a,
0xb2, 0x14, 0xc1, 0x58, 0xe4, 0x66, 0xa3, 0xe4, 0x4d, 0x29, 0x04, 0x4b, 0xeb, 0xc1, 0x3e, 0xc9,
0x99, 0xb3, 0x76, 0x8d, 0x6c, 0x8a, 0x5d, 0x43, 0x37, 0x27, 0xe4, 0x5e, 0x65, 0xbf, 0xcd, 0xbf,
0x96, 0xfd, 0xb6, 0x90, 0x66, 0xbf, 0xbd, 0xde, 0xe8, 0x37, 0xf7, 0x33, 0x19, 0xfd, 0x8a, 0x2f,
0x31, 0xfa, 0x25, 0x4c, 0x95, 0xa5, 0x69, 0x53, 0x65, 0x8a, 0x89, 0xaf, 0xfc, 0x25, 0x4c, 0x7c,
0x6b, 0x7f, 0x95, 0x01, 0x36, 0xbb, 0x16, 0xd8, 0x53, 0x32, 0x10, 0xb9, 0x7c, 0x28, 0xf9, 0xf4,
0x37, 0x5e, 0x6f, 0x3d, 0xa9, 0xe9, 0x57, 0xb9, 0xd9, 0x43, 0x58, 0xd4, 0x3d, 0xeb, 0x75, 0x1d,
0xbd, 0x66, 0x32, 0x3d, 0x29, 0x3e, 0xc9, 0xd1, 0x4c, 0xe3, 0xf9, 0x57, 0x9a, 0xc6, 0x0b, 0xaf,
0x34, 0x8d, 0xcf, 0x25, 0x4d, 0xe3, 0x6b, 0xff, 0x29, 0x03, 0x8b, 0x29, 0x24, 0xfb, 0xd5, 0xf5,
0x59, 0x50, 0x5a, 0x82, 0x89, 0x65, 0x25, 0xa5, 0xe9, 0xfc, 0x6b, 0x17, 0x2a, 0xf1, 0x54, 0xa8,
0xc8, 0x93, 0x07, 0xaf, 0xe2, 0x25, 0x71, 0x0e, 0x53, 0xcf, 0xbe, 0xf6, 0x07, 0x59, 0xa8, 0x68,
0x89, 0x62, 0x14, 0x89, 0x40, 0x35, 0x8f, 0x24, 0x92, 0x03, 0xf1, 0x84, 0xe1, 0x2e, 0x48, 0x13,
0x06, 0xa5, 0xd3, 0x52, 0x92, 0x42, 0x1f, 0x22, 0xac, 0xc3, 0xa2, 0x32, 0xde, 0xf1, 0xd8, 0xf1,
0x50, 0xee, 0x2c, 0x0b, 0xd2, 0x84, 0xc7, 0x23, 0x3f, 0x46, 0xf6, 0x50, 0x29, 0x7f, 0xf1, 0xdc,
0x21, 0x61, 0x93, 0x7d, 0x60, 0x81, 0x96, 0x83, 0x9a, 0x44, 0x41, 0xd5, 0x1f, 0xc0, 0xb2, 0x5a,
0x0c, 0xc9, 0x1c, 0x64, 0x32, 0x60, 0x72, 0x29, 0xe8, 0x59, 0xbe, 0x0f, 0x77, 0xa6, 0xda, 0x34,
0x95, 0x95, 0x3c, 0x64, 0x6f, 0x26, 0x5a, 0xa7, 0x97, 0xb0, 0xf6, 0x13, 0xa8, 0x25, 0xd8, 0xe2,
0x57, 0x37, 0xe5, 0xd3, 0xa7, 0x3a, 0x34, 0xa2, 0xfa, 0xa9, 0xce, 0xda, 0xff, 0xce, 0x01, 0x9b,
0xe5, 0xcc, 0xbf, 0xc8, 0x26, 0xcc, 0x12, 0x66, 0x2e, 0x85, 0x30, 0xff, 0x9f, 0x49, 0x0b, 0xef,
0xc3, 0x82, 0x8c, 0xc0, 0xd2, 0x2c, 0xb0, 0xb4, 0x38, 0x1b, 0x51, 0x82, 0x6a, 0xc5, 0xb7, 0xa7,
0x3d, 0x41, 0x4a, 0x89, 0xa0, 0x13, 0x4d, 0x5c, 0x9a, 0x72, 0x08, 0x39, 0x82, 0x39, 0xdb, 0xed,
0x9f, 0x79, 0xbe, 0xe4, 0x83, 0xbf, 0xf4, 0xa5, 0x37, 0xcb, 0xf5, 0x16, 0xe6, 0x47, 0x19, 0xcd,
0x94, 0x85, 0x19, 0x1f, 0x40, 0x45, 0x03, 0xa3, 0x55, 0xb2, 0xb3, 0xb7, 0x71, 0xd0, 0xb8, 0xc1,
0x6a, 0x50, 0x36, 0xdb, 0x9b, 0x07, 0x9f, 0xb6, 0xcd, 0xf6, 0x56, 0x23, 0xc3, 0x4a, 0x90, 0xdf,
0x3d, 0xe8, 0xf6, 0x1a, 0x59, 0x63, 0x0d, 0x9a, 0xb2, 0xc4, 0x59, 0x0b, 0xc5, 0xef, 0xe6, 0xa3,
0xc3, 0x41, 0x4c, 0x94, 0x0a, 0xf9, 0x37, 0xa1, 0xaa, 0x0b, 0x33, 0x92, 0x22, 0xa6, 0x9c, 0x00,
0x84, 0x2a, 0xee, 0x69, 0xbc, 0x7a, 0x13, 0xc8, 0xb4, 0x3b, 0x88, 0xb2, 0x65, 0x13, 0x52, 0x6a,
0x8a, 0x2d, 0x10, 0x55, 0x9d, 0x04, 0x19, 0xfe, 0x7f, 0x50, 0x4f, 0x1e, 0xd7, 0x4b, 0x8e, 0x94,
0xa6, 0x5e, 0x8a, 0xdc, 0x89, 0xf3, 0x7b, 0xf6, 0x7d, 0x68, 0x4c, 0x1f, 0xf7, 0x4b, 0x51, 0xf9,
0x9a, 0xfc, 0xf3, 0x4e, 0xd2, 0x02, 0xc0, 0x76, 0x60, 0x29, 0x4d, 0x9c, 0x43, 0xfa, 0xb8, 0xfe,
0x48, 0x82, 0xcd, 0x8a, 0x6c, 0xec, 0x3b, 0xd2, 0xaa, 0x53, 0x48, 0xb3, 0x8d, 0x6b, 0x83, 0xbd,
0x4e, 0xff, 0x34, 0xfb, 0xce, 0x39, 0x40, 0x0c, 0x63, 0x0d, 0xa8, 0x1e, 0x1c, 0xb6, 0xf7, 0xad,
0xcd, 0x9d, 0xd6, 0xfe, 0x7e, 0x7b, 0xb7, 0x71, 0x83, 0x31, 0xa8, 0xa3, 0x51, 0x7b, 0x2b, 0x82,
0x65, 0x04, 0x4c, 0x5a, 0xd7, 0x14, 0x2c, 0xcb, 0x96, 0xa0, 0xd1, 0xd9, 0x9f, 0x82, 0xe6, 0x58,
0x13, 0x96, 0x0e, 0xdb, 0x64, 0x07, 0x4f, 0x94, 0x9b, 0x17, 0x2a, 0x82, 0xec, 0xae, 0x50, 0x11,
0x28, 0x92, 0x50, 0xae, 0x03, 0x25, 0x39, 0xff, 0x5e, 0x06, 0x96, 0xa7, 0x12, 0xe2, 0xf8, 0x10,
0x92, 0x9b, 0x93, 0x12, 0x73, 0x15, 0x81, 0x6a, 0x35, 0xbd, 0x0f, 0x0b, 0xd1, 0x31, 0xd3, 0xd4,
0xae, 0xd4, 0x88, 0x12, 0x14, 0xf2, 0x43, 0x58, 0xd4, 0x4e, 0xab, 0xa6, 0x78, 0x05, 0xd3, 0x92,
0x64, 0x06, 0x63, 0x35, 0xf2, 0xc3, 0x9f, 0x6a, 0xf5, 0x80, 0xc2, 0x13, 0xf5, 0x84, 0xd8, 0xe8,
0x95, 0x6c, 0xaf, 0xfa, 0x64, 0x8f, 0xa6, 0x08, 0x21, 0xd9, 0x5a, 0x7d, 0xc2, 0x55, 0xf5, 0x7f,
0x38, 0x07, 0xec, 0x93, 0x09, 0xf7, 0xaf, 0x30, 0xfe, 0x23, 0x78, 0x95, 0x43, 0xa4, 0x3a, 0x57,
0xc9, 0xbe, 0x56, 0x8c, 0x57, 0x5a, 0x8c, 0x55, 0xfe, 0xd5, 0x31, 0x56, 0x85, 0x57, 0xc5, 0x58,
0xbd, 0x05, 0x35, 0xe7, 0xd4, 0xf5, 0x04, 0x2b, 0x14, 0x72, 0x6f, 0xd0, 0x9c, 0xbb, 0x97, 0xbb,
0x5f, 0x35, 0xab, 0x12, 0x28, 0xa4, 0xde, 0x80, 0x7d, 0x1c, 0x23, 0xf1, 0xc1, 0x29, 0xc6, 0x03,
0xea, 0x4c, 0xb0, 0x3d, 0x38, 0xe5, 0xf2, 0x18, 0x09, 0xf5, 0x0a, 0x95, 0x59, 0xc0, 0x03, 0xf6,
0x36, 0xd4, 0x03, 0x6f, 0x22, 0xd4, 0x08, 0x35, 0x0c, 0x64, 0x16, 0xab, 0x12, 0xf4, 0x50, 0xd9,
0x40, 0x17, 0x27, 0x01, 0xb7, 0x46, 0x4e, 0x10, 0x08, 0xf1, 0xac, 0xef, 0xb9, 0xa1, 0xef, 0x0d,
0xa5, 0xa5, 0x6b, 0x61, 0x12, 0xf0, 0x3d, 0x4a, 0xd9, 0xa4, 0x04, 0xf6, 0xad, 0xb8, 0x49, 0x63,
0xdb, 0xf1, 0x83, 0x26, 0x60, 0x93, 0x54, 0x4f, 0x51, 0x5a, 0xb7, 0x1d, 0x3f, 0x6a, 0x8b, 0xf8,
0x08, 0xa6, 0x62, 0xbf, 0x2a, 0xd3, 0xb1, 0x5f, 0x3f, 0x4a, 0x8f, 0xfd, 0xaa, 0x61, 0xd1, 0x8f,
0x64, 0xd1, 0xb3, 0x53, 0xfc, 0xa5, 0x42, 0xc0, 0x66, 0x43, 0xda, 0xea, 0x5f, 0x26, 0xa4, 0x6d,
0x3e, 0x2d, 0xa4, 0xed, 0x03, 0xa8, 0x60, 0xb0, 0x91, 0x75, 0xe6, 0x08, 0x19, 0x8e, 0x2c, 0x77,
0x0d, 0x3d, 0x1a, 0x69, 0xc7, 0x71, 0x43, 0x13, 0x7c, 0xf5, 0x33, 0x98, 0x8d, 0x2e, 0x5b, 0xf8,
0x05, 0x46, 0x97, 0xc9, 0xa0, 0xa8, 0x75, 0x28, 0xa9, 0x79, 0x62, 0x0c, 0xf2, 0x27, 0xbe, 0x37,
0x52, 0x16, 0x0d, 0xf1, 0x9b, 0xd5, 0x21, 0x1b, 0x7a, 0x32, 0x73, 0x36, 0xf4, 0x8c, 0x5f, 0x87,
0x8a, 0x46, 0x6a, 0xec, 0x4d, 0x3a, 0x85, 0x14, 0x9a, 0x98, 0x94, 0x2d, 0x69, 0x14, 0xcb, 0x12,
0xda, 0x19, 0x08, 0x7e, 0x33, 0x70, 0x7c, 0x8e, 0x71, 0xa0, 0x96, 0xcf, 0xcf, 0xb9, 0x1f, 0x28,
0x0b, 0x53, 0x23, 0x4a, 0x30, 0x09, 0x6e, 0xfc, 0x06, 0x2c, 0x26, 0xe6, 0x56, 0xb2, 0x88, 0xb7,
0x61, 0x0e, 0xc7, 0x4d, 0x79, 0x00, 0x24, 0xa3, 0xbc, 0x64, 0x1a, 0x06, 0xf8, 0x93, 0x71, 0xcc,
0x1a, 0xfb, 0xde, 0x31, 0x56, 0x92, 0x31, 0x2b, 0x12, 0x76, 0xe8, 0x7b, 0xc7, 0xc6, 0x9f, 0xe7,
0x20, 0xb7, 0xe3, 0x8d, 0x75, 0xa7, 0xb7, 0xcc, 0x8c, 0xd3, 0x9b, 0x54, 0x2f, 0xad, 0x48, 0x7d,
0x94, 0x32, 0x3b, 0x9a, 0x85, 0x94, 0x0a, 0x79, 0x1f, 0xea, 0x82, 0x4f, 0x84, 0x9e, 0xd0, 0xcf,
0x2f, 0x6c, 0x9f, 0x04, 0xe2, 0x1c, 0x2d, 0x3e, 0x7b, 0x14, 0xf6, 0xbc, 0x6d, 0x82, 0xb3, 0x25,
0xc8, 0x45, 0xea, 0x0b, 0x26, 0x8b, 0x4f, 0xb6, 0x02, 0x73, 0xe8, 0xfd, 0x7c, 0x25, 0x4d, 0xdc,
0xf2, 0x8b, 0x7d, 0x03, 0x16, 0x93, 0xe5, 0x12, 0x2b, 0x92, 0xb2, 0x91, 0x5e, 0x30, 0xf2, 0xa4,
0x9b, 0x20, 0xf8, 0x08, 0xe1, 0x48, 0x4f, 0x99, 0x13, 0xce, 0x31, 0x49, 0x63, 0x7a, 0xa5, 0x04,
0xd3, 0xbb, 0x0b, 0x95, 0x70, 0x78, 0x6e, 0x8d, 0xed, 0xab, 0xa1, 0x67, 0x0f, 0xe4, 0xfa, 0x86,
0x70, 0x78, 0x7e, 0x48, 0x10, 0xf6, 0x10, 0x60, 0x34, 0x1e, 0xcb, 0xb5, 0x87, 0xa6, 0x8e, 0x98,
0x94, 0xf7, 0x0e, 0x0f, 0x89, 0xe4, 0xcc, 0xf2, 0x68, 0x3c, 0xa6, 0x9f, 0x6c, 0x0b, 0xea, 0xa9,
0xb1, 0x9a, 0x77, 0x94, 0xb3, 0xae, 0x37, 0x5e, 0x4f, 0x59, 0x9c, 0xb5, 0xbe, 0x0e, 0x5b, 0xfb,
0x3e, 0xb0, 0x9f, 0x33, 0x62, 0xb2, 0x07, 0xe5, 0xa8, 0x7d, 0x7a, 0xc0, 0x21, 0xba, 0xdf, 0x57,
0x12, 0x01, 0x87, 0xad, 0xc1, 0xc0, 0x17, 0x7c, 0x91, 0x36, 0xcc, 0x88, 0xe5, 0x83, 0xb6, 0x63,
0xb6, 0x88, 0xef, 0x1b, 0xff, 0x35, 0x03, 0x05, 0x8a, 0x7e, 0x7c, 0x07, 0xe6, 0x09, 0x3f, 0x72,
0x20, 0x94, 0x86, 0x71, 0xda, 0x77, 0x7b, 0xd2, 0x77, 0x50, 0x2c, 0x0b, 0x2d, 0x72, 0x3b, 0x1b,
0xcd, 0xbc, 0x16, 0xbd, 0x7d, 0x17, 0xca, 0x51, 0xd5, 0x1a, 0xe9, 0x94, 0x54, 0xcd, 0xec, 0x0d,
0xc8, 0x9f, 0x79, 0x63, 0x75, 0xce, 0x03, 0xf1, 0x48, 0x9a, 0x08, 0x8f, 0xdb, 0x22, 0xea, 0xa0,
0xc6, 0xcb, 0xf3, 0x89, 0xa8, 0x12, 0x24, 0x83, 0xd9, 0x3e, 0xce, 0xa5, 0xf4, 0xf1, 0x08, 0xe6,
0x05, 0x1f, 0xd0, 0x1c, 0x54, 0xae, 0xdf, 0x34, 0xdf, 0x13, 0x12, 0x5e, 0x7f, 0x38, 0x19, 0x70,
0xfd, 0xa4, 0x0d, 0xbd, 0xd9, 0x24, 0x5c, 0x49, 0xd6, 0xc6, 0x1f, 0x66, 0x88, 0xbf, 0x88, 0x72,
0xd9, 0x7d, 0xc8, 0x8b, 0xfd, 0x6d, 0xea, 0xdc, 0x3d, 0x8a, 0x83, 0x10, 0x78, 0x26, 0x62, 0xe0,
0x75, 0x07, 0x93, 0x51, 0xb2, 0xf4, 0x9a, 0x59, 0x71, 0x27, 0xa3, 0xe8, 0xa0, 0xea, 0x6b, 0xaa,
0x5b, 0x53, 0x87, 0x3c, 0xd4, 0xfb, 0x68, 0x99, 0xae, 0x6b, 0x6e, 0x71, 0xf9, 0xc4, 0x8e, 0xa9,
0xa4, 0xc0, 0xc1, 0x29, 0xd7, 0xdc, 0xe1, 0xfe, 0x38, 0x0b, 0xb5, 0x44, 0x8b, 0xd0, 0x2f, 0x50,
0x6c, 0x00, 0x64, 0x46, 0x92, 0xf3, 0x0d, 0x02, 0x24, 0x05, 0x75, 0x6d, 0x9c, 0xb2, 0x89, 0x71,
0x8a, 0x5c, 0x71, 0x72, 0xba, 0x2b, 0xce, 0x23, 0x28, 0xc7, 0x11, 0xfb, 0xc9, 0x26, 0x89, 0xfa,
0x54, 0x34, 0x48, 0x8c, 0x14, 0x3b, 0xef, 0x14, 0x74, 0xe7, 0x9d, 0xef, 0x69, 0xbe, 0x1e, 0x73,
0x58, 0x8c, 0x91, 0x36, 0xa2, 0xbf, 0x10, 0x4f, 0x0f, 0xe3, 0x63, 0xa8, 0x68, 0x8d, 0xd7, 0x7d,
0x3a, 0x32, 0x09, 0x9f, 0x8e, 0x28, 0x6e, 0x2b, 0x1b, 0xc7, 0x6d, 0x19, 0xbf, 0x95, 0x85, 0x9a,
0x58, 0x5f, 0x8e, 0x7b, 0x7a, 0xe8, 0x0d, 0x9d, 0x3e, 0x9a, 0x95, 0xa2, 0x15, 0x26, 0x05, 0x2d,
0xb5, 0xce, 0xe4, 0x12, 0x23, 0x39, 0x4b, 0x0f, 0x4f, 0x25, 0x26, 0x1d, 0x85, 0xa7, 0x1a, 0x50,
0x13, 0x8c, 0x11, 0x0d, 0x44, 0xf1, 0x7d, 0x02, 0x66, 0xe5, 0x84, 0xf3, 0x0d, 0x3b, 0x20, 0x0e,
0xf9, 0x0d, 0x58, 0x14, 0x38, 0x18, 0x99, 0x37, 0x72, 0x86, 0x43, 0x87, 0x30, 0xe9, 0xa0, 0xa9,
0x71, 0xc2, 0xb9, 0x69, 0x87, 0x7c, 0x4f, 0x24, 0xc8, 0xeb, 0x07, 0x4a, 0x03, 0x27, 0xb0, 0x8f,
0x63, 0xef, 0xcd, 0xe8, 0x1b, 0xed, 0xc8, 0xf6, 0xa5, 0x66, 0x47, 0xa6, 0x03, 0x88, 0xca, 0xc8,
0xbe, 0x8c, 0xec, 0xc8, 0x53, 0x94, 0x54, 0x9c, 0xa6, 0x24, 0xe3, 0xdf, 0x66, 0xa1, 0xa2, 0x91,
0xe5, 0xeb, 0xec, 0xae, 0x77, 0x66, 0xcc, 0x80, 0x65, 0xdd, 0xe2, 0xf7, 0x56, 0xb2, 0x4a, 0xf4,
0x74, 0xa1, 0x8b, 0x0e, 0x34, 0x02, 0xbe, 0x05, 0x65, 0xb1, 0xea, 0x3e, 0xc0, 0x03, 0x57, 0x79,
0x4d, 0x07, 0x02, 0x0e, 0x27, 0xc7, 0x2a, 0xf1, 0x31, 0x26, 0x16, 0xe2, 0xc4, 0xc7, 0x22, 0xf1,
0x65, 0x2e, 0xdb, 0xdf, 0x86, 0xaa, 0x2c, 0x15, 0xe7, 0x14, 0xbb, 0x1b, 0xaf, 0xfa, 0xc4, 0x7c,
0x9b, 0x15, 0xaa, 0x8e, 0x26, 0x5f, 0x66, 0x7c, 0xac, 0x32, 0x96, 0x5e, 0x95, 0xf1, 0x31, 0x7d,
0x18, 0xdb, 0x91, 0x17, 0x3c, 0x7a, 0x59, 0x29, 0x3e, 0xf6, 0x10, 0x16, 0x15, 0xbb, 0x9a, 0xb8,
0xb6, 0xeb, 0x7a, 0x13, 0xb7, 0xcf, 0x55, 0x40, 0x17, 0x93, 0x49, 0x47, 0x71, 0x8a, 0x31, 0x88,
0x22, 0x7e, 0xc9, 0x5b, 0xeb, 0x01, 0x14, 0x48, 0x2e, 0x27, 0xe1, 0x23, 0x9d, 0x71, 0x11, 0x0a,
0xbb, 0x0f, 0x05, 0x12, 0xcf, 0xb3, 0xd7, 0x32, 0x1b, 0x42, 0x30, 0x5a, 0xc0, 0x44, 0xc6, 0x3d,
0x1e, 0xfa, 0x4e, 0x3f, 0x88, 0x63, 0xc5, 0x0a, 0x42, 0xff, 0xa4, 0xba, 0xe2, 0x93, 0xdb, 0x18,
0x13, 0x75, 0x54, 0xc2, 0x11, 0x1b, 0xd3, 0x62, 0xa2, 0x0c, 0x29, 0x2e, 0x0d, 0x61, 0xe5, 0x98,
0x87, 0x17, 0x9c, 0xbb, 0xae, 0x10, 0x86, 0xfa, 0xdc, 0x0d, 0x7d, 0x7b, 0x28, 0x26, 0x89, 0x7a,
0xf0, 0x64, 0xa6, 0xd4, 0xf8, 0x0c, 0x64, 0x23, 0xce, 0xb8, 0x19, 0xe5, 0x23, 0xde, 0xb1, 0x7c,
0x9c, 0x96, 0xb6, 0xf6, 0x6b, 0xb0, 0x76, 0x7d, 0xa6, 0x94, 0x88, 0xd0, 0xfb, 0x49, 0xae, 0x12,
0x59, 0xfd, 0x86, 0x9e, 0x1d, 0x52, 0x6b, 0x74, 0xce, 0xb2, 0x0f, 0x15, 0x2d, 0x25, 0xde, 0xfb,
0x33, 0x28, 0xdc, 0xd1, 0x87, 0xd8, 0x91, 0x5c, 0xcf, 0x1f, 0xa1, 0x95, 0x6d, 0x60, 0xc5, 0xa5,
0x67, 0xcc, 0xf9, 0x18, 0x8e, 0x21, 0xf0, 0xc6, 0x3a, 0xcc, 0xa3, 0x64, 0xaf, 0x6d, 0x74, 0x2f,
0x13, 0x06, 0x8d, 0x25, 0x60, 0xfb, 0xc4, 0xbb, 0x74, 0xe7, 0xcd, 0xff, 0x9c, 0x83, 0x8a, 0x06,
0x16, 0xbb, 0x11, 0xba, 0xfb, 0x59, 0x03, 0xc7, 0x1e, 0x71, 0x65, 0xd2, 0xac, 0x99, 0x35, 0x84,
0x6e, 0x49, 0xa0, 0xd8, 0x8b, 0xed, 0xf3, 0x53, 0xcb, 0x9b, 0x84, 0xd6, 0x80, 0x9f, 0xfa, 0x5c,
0xb5, 0xb2, 0x6a, 0x9f, 0x9f, 0x1e, 0x4c, 0xc2, 0x2d, 0x84, 0x09, 0x2c, 0xc1, 0x4b, 0x34, 0x2c,
0xe9, 0xa1, 0x36, 0xb2, 0x2f, 0x63, 0x2c, 0xe9, 0x26, 0x49, 0x94, 0x99, 0x8f, 0xdc, 0x24, 0x49,
0x5b, 0x9c, 0xde, 0x40, 0x0b, 0xb3, 0x1b, 0xe8, 0xb7, 0x60, 0x85, 0x36, 0x50, 0xc9, 0x9a, 0xad,
0xa9, 0x95, 0xbc, 0x84, 0xa9, 0xb2, 0x93, 0x9a, 0xd8, 0xdb, 0x10, 0x3d, 0x50, 0x6c, 0x29, 0x70,
0x7e, 0x4c, 0x8c, 0x2c, 0x63, 0x8a, 0x9e, 0xc9, 0xc2, 0xbb, 0xce, 0x8f, 0xb9, 0xc0, 0x44, 0x5f,
0x18, 0x1d, 0x53, 0x06, 0x64, 0x8c, 0x1c, 0x77, 0x1a, 0xd3, 0xbe, 0x4c, 0x62, 0x96, 0x25, 0xa6,
0x7d, 0xa9, 0x63, 0x3e, 0x81, 0xd5, 0x11, 0x1f, 0x38, 0x76, 0xb2, 0x58, 0x2b, 0x16, 0xdc, 0x96,
0x28, 0x59, 0xcb, 0xd3, 0x25, 0xc5, 0x5d, 0x8c, 0xc6, 0x8f, 0xbd, 0xd1, 0xb1, 0x43, 0x32, 0x0b,
0x79, 0xe7, 0xe4, 0xcd, 0xba, 0x3b, 0x19, 0xfd, 0x10, 0xc1, 0x22, 0x4b, 0x60, 0xd4, 0xa0, 0xd2,
0x0d, 0xbd, 0xb1, 0x9a, 0xe6, 0x3a, 0x54, 0xe9, 0x53, 0x46, 0x49, 0xde, 0x82, 0x9b, 0xc8, 0x12,
0x7a, 0xde, 0xd8, 0x1b, 0x7a, 0xa7, 0x57, 0x89, 0x73, 0xbc, 0x7f, 0x9f, 0x81, 0xc5, 0x44, 0xaa,
0x64, 0xaf, 0xdf, 0x22, 0x7e, 0x16, 0x85, 0xba, 0xd1, 0x1a, 0x5c, 0xd0, 0xd6, 0x20, 0x21, 0x12,
0x33, 0x53, 0xe1, 0x6f, 0xad, 0xf8, 0x8a, 0x06, 0x95, 0x91, 0x58, 0x4a, 0x73, 0x96, 0xa5, 0xc8,
0xfc, 0xea, 0xf2, 0x06, 0x55, 0xc4, 0x2f, 0xc9, 0xa0, 0x99, 0x81, 0xec, 0x72, 0x2e, 0x19, 0x16,
0xa0, 0x9f, 0xf9, 0xa9, 0x16, 0xc4, 0x07, 0x81, 0x81, 0xf1, 0xcf, 0x32, 0x00, 0x71, 0xeb, 0x30,
0x30, 0x21, 0x92, 0x5b, 0xe8, 0xf6, 0x33, 0x4d, 0x46, 0x79, 0x13, 0xaa, 0x91, 0x7f, 0x72, 0x2c,
0x09, 0x55, 0x14, 0x4c, 0x88, 0x43, 0xef, 0xc2, 0xfc, 0xe9, 0xd0, 0x3b, 0x46, 0x89, 0x55, 0xca,
0x2d, 0xe4, 0x9d, 0x56, 0x27, 0xb0, 0x92, 0x46, 0x62, 0xb9, 0x29, 0x9f, 0xea, 0xc2, 0xac, 0x4b,
0x41, 0xc6, 0xef, 0x64, 0x23, 0x47, 0xcd, 0x78, 0x24, 0x5e, 0xae, 0xde, 0xfd, 0x2c, 0x9e, 0x33,
0x2f, 0x33, 0x26, 0x7e, 0x0c, 0x75, 0x9f, 0x36, 0x25, 0xb5, 0x63, 0xe5, 0x5f, 0xb2, 0x63, 0xd5,
0xfc, 0x84, 0xa4, 0xf3, 0x1e, 0x34, 0xec, 0xc1, 0x39, 0xf7, 0x43, 0x07, 0x4f, 0xeb, 0x51, 0x3e,
0x96, 0xae, 0x91, 0x1a, 0x1c, 0x05, 0xd1, 0x77, 0x61, 0x5e, 0x46, 0xee, 0x46, 0x98, 0xf2, 0x2e,
0xa0, 0x18, 0x2c, 0x10, 0x8d, 0x7f, 0xa1, 0x3c, 0x43, 0x93, 0xb3, 0xfb, 0xf2, 0x51, 0xd1, 0x7b,
0x98, 0x9d, 0x35, 0x97, 0x4a, 0x42, 0x92, 0x46, 0x00, 0xc9, 0x8f, 0x08, 0x28, 0x4d, 0x00, 0xc9,
0x61, 0xcd, 0xbf, 0xce, 0xb0, 0x1a, 0xff, 0x31, 0x03, 0xc5, 0x1d, 0x6f, 0xbc, 0xe3, 0x90, 0x6b,
0x3e, 0x2e, 0x93, 0xc8, 0x46, 0x35, 0x27, 0x3e, 0xd1, 0xcd, 0xe7, 0x25, 0x01, 0x6a, 0xa9, 0x62,
0x5e, 0x2d, 0x29, 0xe6, 0x7d, 0x0f, 0x6e, 0xa1, 0x09, 0xd0, 0xf7, 0xc6, 0x9e, 0x2f, 0x96, 0xaa,
0x3d, 0x24, 0x71, 0xcf, 0x73, 0xc3, 0x33, 0xc5, 0x3b, 0x6f, 0x9e, 0x70, 0x7e, 0xa8, 0x61, 0xec,
0x45, 0x08, 0x18, 0x02, 0x3a, 0x0c, 0xcf, 0x2d, 0xd2, 0xd0, 0xa5, 0x3c, 0x4a, 0x1c, 0x75, 0x5e,
0x24, 0xb4, 0x11, 0x8e, 0x12, 0xa9, 0xf1, 0x1d, 0x28, 0x47, 0x87, 0x3d, 0xec, 0x7d, 0x28, 0x9f,
0x79, 0x63, 0x79, 0x22, 0x94, 0x49, 0x04, 0xf1, 0xc9, 0x5e, 0x9b, 0xa5, 0x33, 0xfa, 0x11, 0x18,
0x7f, 0x5e, 0x84, 0x62, 0xc7, 0x3d, 0xf7, 0x9c, 0x3e, 0xfa, 0x96, 0x8e, 0xf8, 0xc8, 0x53, 0xd7,
0x07, 0x88, 0xdf, 0xe8, 0x89, 0x15, 0xdf, 0xe8, 0x93, 0x93, 0x9e, 0x58, 0xd1, 0x5d, 0x3e, 0xcb,
0x30, 0xe7, 0xeb, 0x57, 0xf2, 0x14, 0x7c, 0xf4, 0x76, 0x8f, 0xf6, 0xcb, 0x82, 0x76, 0xfd, 0x82,
0x28, 0x8b, 0xae, 0x8a, 0xc1, 0x21, 0xa3, 0x70, 0xce, 0x32, 0x42, 0x70, 0xc0, 0x6e, 0x43, 0x51,
0xc6, 0xcc, 0x51, 0x04, 0x12, 0xb9, 0xa7, 0x4b, 0x10, 0x52, 0x83, 0xcf, 0xc9, 0x84, 0x1b, 0x09,
0xb2, 0x39, 0xb3, 0xaa, 0x80, 0x5b, 0x82, 0xd6, 0xee, 0x42, 0x85, 0xf0, 0x09, 0xa5, 0x24, 0x5d,
0x32, 0x11, 0x84, 0x08, 0x29, 0x37, 0x5b, 0x95, 0x53, 0x6f, 0xb6, 0x42, 0xe7, 0xe1, 0x88, 0xcb,
0x52, 0x17, 0x81, 0xee, 0x33, 0xd2, 0xe0, 0xea, 0x5a, 0x37, 0x79, 0xa6, 0x42, 0xd1, 0xcd, 0xea,
0x4c, 0xe5, 0x2d, 0xa8, 0x9d, 0xd8, 0xc3, 0xe1, 0xb1, 0xdd, 0x7f, 0x41, 0x47, 0x01, 0x55, 0x3a,
0xfd, 0x54, 0x40, 0x3c, 0x0b, 0xb8, 0x0b, 0x15, 0x6d, 0x96, 0xd1, 0xdf, 0x32, 0x6f, 0x42, 0x3c,
0xbf, 0xd3, 0x27, 0x7c, 0xf5, 0xd7, 0x38, 0xe1, 0xd3, 0xfc, 0x4e, 0xe7, 0x93, 0x7e, 0xa7, 0xb7,
0x90, 0x9b, 0x4a, 0x07, 0xc3, 0x06, 0x5d, 0x9e, 0x63, 0x0f, 0x06, 0xe8, 0x60, 0x48, 0x37, 0x55,
0xe2, 0xe0, 0x51, 0xfa, 0x02, 0xe9, 0x12, 0x04, 0x23, 0x94, 0x3b, 0x74, 0x4c, 0x3d, 0xb6, 0x9d,
0x01, 0x86, 0x18, 0xd0, 0xe9, 0x41, 0xd1, 0x1e, 0x85, 0x87, 0xb6, 0x33, 0x60, 0xf7, 0xa0, 0xaa,
0x92, 0x71, 0x77, 0x5c, 0xa4, 0xf1, 0x97, 0xc9, 0x62, 0x4f, 0x34, 0xa0, 0x16, 0x61, 0x8c, 0xe2,
0x10, 0xe5, 0x8a, 0x44, 0x41, 0x3a, 0xf8, 0x00, 0x7d, 0x7a, 0x42, 0x8e, 0x81, 0xc8, 0xf5, 0xc7,
0xb7, 0x64, 0x5f, 0x25, 0x95, 0xaa, 0xff, 0x64, 0x1c, 0x23, 0x4c, 0x21, 0xdc, 0x91, 0x8d, 0x6e,
0x25, 0x21, 0xff, 0x4a, 0x54, 0xb4, 0xd1, 0x11, 0x02, 0xfb, 0x8e, 0xa6, 0xbf, 0x36, 0x11, 0xf9,
0xf6, 0x54, 0xf9, 0xd7, 0x45, 0x58, 0xdd, 0x01, 0x70, 0x02, 0xb1, 0xcb, 0x04, 0xdc, 0x1d, 0x60,
0x4c, 0x71, 0xc9, 0x2c, 0x3b, 0xc1, 0x33, 0x02, 0x7c, 0xb5, 0x8a, 0x6d, 0x0b, 0xaa, 0x7a, 0x37,
0x59, 0x09, 0xf2, 0x07, 0x87, 0xed, 0xfd, 0xc6, 0x0d, 0x56, 0x81, 0x62, 0xb7, 0xdd, 0xeb, 0xed,
0xa2, 0xa5, 0xaf, 0x0a, 0xa5, 0x28, 0xa0, 0x31, 0x2b, 0xbe, 0x5a, 0x9b, 0x9b, 0xed, 0xc3, 0x5e,
0x7b, 0xab, 0x91, 0xfb, 0x41, 0xbe, 0x94, 0x6d, 0xe4, 0x8c, 0xbf, 0xc8, 0x41, 0x45, 0x1b, 0x85,
0x97, 0x33, 0xe3, 0x3b, 0x00, 0xa8, 0x49, 0xc6, 0xfe, 0xa7, 0x79, 0xb3, 0x2c, 0x20, 0x34, 0xf9,
0xba, 0x8d, 0x22, 0x47, 0xb7, 0x32, 0x29, 0x1b, 0xc5, 0x5b, 0x50, 0xa3, 0x0b, 0x8e, 0x74, 0x7b,
0x6d, 0xc1, 0xac, 0x12, 0x50, 0xb2, 0x6a, 0x8c, 0x88, 0x46, 0x24, 0x8c, 0x95, 0x93, 0xd7, 0x9d,
0x10, 0x08, 0xa3, 0xe5, 0x30, 0xd4, 0x31, 0xf0, 0x86, 0xe7, 0x9c, 0x30, 0x48, 0x22, 0xac, 0x48,
0x58, 0x4f, 0xc6, 0x76, 0x4b, 0x7e, 0xa8, 0x85, 0xe4, 0x16, 0xcc, 0x2a, 0x01, 0x65, 0x45, 0xdf,
0x50, 0x04, 0x54, 0x42, 0x02, 0x5a, 0x9d, 0xa5, 0x86, 0x04, 0xf1, 0xec, 0xce, 0x1c, 0x23, 0x96,
0x91, 0x30, 0xbe, 0x36, 0x9b, 0xef, 0xd5, 0xc7, 0x89, 0xec, 0x7d, 0x60, 0xa3, 0xf1, 0xd8, 0x4a,
0x39, 0xe0, 0xcb, 0x9b, 0xf3, 0xa3, 0xf1, 0xb8, 0xa7, 0x9d, 0x7f, 0x7d, 0x05, 0x67, 0x8f, 0x9f,
0x03, 0x6b, 0x89, 0x05, 0x8c, 0x4d, 0x8c, 0x54, 0xb1, 0x98, 0x2d, 0x67, 0x74, 0xb6, 0x9c, 0xc2,
0xfd, 0xb2, 0xa9, 0xdc, 0xef, 0x65, 0x7c, 0xc2, 0xd8, 0x86, 0xca, 0xa1, 0x76, 0x7d, 0xda, 0x3d,
0xb1, 0x43, 0xa8, 0x8b, 0xd3, 0x68, 0xef, 0xa0, 0x33, 0x45, 0x5f, 0xde, 0x97, 0xa6, 0xb5, 0x26,
0xab, 0xb5, 0xc6, 0xf8, 0xa7, 0x19, 0xba, 0x9a, 0x26, 0x6a, 0x7c, 0x7c, 0x63, 0x9b, 0x32, 0xbf,
0xc5, 0x91, 0xf3, 0x15, 0x65, 0x76, 0x93, 0x41, 0xef, 0xd8, 0x34, 0xcb, 0x3b, 0x39, 0x09, 0xb8,
0xf2, 0xf1, 0xa8, 0x20, 0xec, 0x00, 0x41, 0x4a, 0xf8, 0x16, 0x12, 0xbe, 0x43, 0xe5, 0x07, 0xd2,
0xb1, 0x43, 0x08, 0xdf, 0x7b, 0xf6, 0xa5, 0xac, 0x35, 0x10, 0x22, 0x88, 0xb4, 0x0f, 0xa8, 0xc8,
0xd7, 0xe8, 0xdb, 0xf8, 0x47, 0x32, 0xb8, 0x7f, 0x7a, 0x7c, 0x1f, 0x40, 0x29, 0x2a, 0x35, 0xb9,
0xc3, 0x2a, 0xcc, 0x28, 0x5d, 0xec, 0xe3, 0x78, 0x18, 0x92, 0x68, 0x31, 0x2d, 0x2e, 0xb4, 0xf1,
0x74, 0xb4, 0x56, 0x7f, 0x1d, 0xd8, 0x89, 0xe3, 0x4f, 0x23, 0xd3, 0x62, 0x6b, 0x60, 0x8a, 0x86,
0x6d, 0x1c, 0xc1, 0xa2, 0xe2, 0x12, 0x9a, 0x46, 0x90, 0x9c, 0xbc, 0xcc, 0x2b, 0x98, 0x7c, 0x76,
0x86, 0xc9, 0x1b, 0x3f, 0xcd, 0x43, 0x51, 0x5d, 0x45, 0x98, 0x76, 0x7d, 0x5e, 0x39, 0x79, 0x7d,
0x5e, 0x33, 0x71, 0xd5, 0x12, 0x4e, 0xbd, 0xdc, 0xef, 0xdf, 0x9d, 0xde, 0xb2, 0x35, 0x5b, 0x45,
0x62, 0xdb, 0x5e, 0x81, 0xfc, 0xd8, 0x0e, 0xcf, 0xf0, 0x5c, 0x92, 0x88, 0x07, 0xbf, 0x95, 0x0d,
0xa3, 0x90, 0xb4, 0x61, 0xa4, 0x5d, 0x35, 0x48, 0x22, 0xe9, 0xcc, 0x55, 0x83, 0xb7, 0x80, 0xe4,
0x0b, 0xcd, 0xc5, 0xad, 0x84, 0x00, 0xb1, 0x17, 0x25, 0xc5, 0x91, 0xd2, 0xb4, 0x38, 0xf2, 0xda,
0xa2, 0xc2, 0xb7, 0x60, 0x8e, 0xae, 0xe9, 0x90, 0x11, 0xbe, 0x6a, 0x43, 0x91, 0x63, 0xa8, 0xfe,
0x53, 0xdc, 0x83, 0x29, 0x71, 0xf5, 0x7b, 0xbb, 0x2a, 0x89, 0x7b, 0xbb, 0x74, 0xdb, 0x4a, 0x35,
0x69, 0x5b, 0xb9, 0x0f, 0x8d, 0x68, 0x40, 0xf1, 0xa4, 0xd2, 0x0d, 0x64, 0xfc, 0x60, 0x5d, 0xc1,
0x05, 0x97, 0xdc, 0x0f, 0xe2, 0x0d, 0xb1, 0x9e, 0xd8, 0x10, 0x05, 0x0f, 0x6b, 0x85, 0x21, 0x1f,
0x8d, 0x43, 0xb9, 0x21, 0x62, 0x84, 0x91, 0xde, 0xc0, 0x64, 0xec, 0x7b, 0x0d, 0xca, 0x9d, 0x7d,
0x6b, 0x7b, 0xb7, 0xf3, 0x74, 0xa7, 0xd7, 0xc8, 0x88, 0xcf, 0xee, 0xd1, 0xe6, 0x66, 0xbb, 0xbd,
0x85, 0x3b, 0x0e, 0xc0, 0xdc, 0x76, 0xab, 0x23, 0x76, 0x9f, 0x9c, 0xf1, 0x7b, 0x59, 0xa8, 0x68,
0xc5, 0xb3, 0x27, 0xd1, 0xa8, 0xd0, 0xd5, 0x4e, 0x77, 0x66, 0x9b, 0xb0, 0xae, 0x58, 0xb1, 0x36,
0x2c, 0xd1, 0xc5, 0x8a, 0xd9, 0x6b, 0x2f, 0x56, 0x64, 0xef, 0xc0, 0xbc, 0x4d, 0x25, 0x44, 0xa3,
0x20, 0x4f, 0xe1, 0x25, 0x58, 0x0e, 0x02, 0x3a, 0x76, 0xc6, 0xfb, 0x89, 0xc0, 0xcb, 0x2b, 0x5f,
0xca, 0x68, 0x4b, 0xc1, 0xc1, 0x2a, 0x9e, 0xd8, 0xce, 0x70, 0xe2, 0x73, 0x69, 0x35, 0x8f, 0x76,
0x66, 0x82, 0x9a, 0x2a, 0xd9, 0xf8, 0x10, 0x20, 0x6e, 0x73, 0x72, 0x70, 0x6e, 0x24, 0x07, 0x27,
0xa3, 0x0d, 0x4e, 0xd6, 0xd8, 0x22, 0x36, 0x22, 0x07, 0x3a, 0x3a, 0x76, 0xfb, 0x06, 0xa8, 0x83,
0x40, 0x0b, 0xdd, 0xab, 0xc7, 0x43, 0x1e, 0xaa, 0x5b, 0x02, 0x16, 0x64, 0x4a, 0x27, 0x4a, 0x50,
0x97, 0x76, 0xc4, 0xa5, 0xc4, 0xdc, 0x48, 0x92, 0xe4, 0x34, 0x37, 0x92, 0xa8, 0x66, 0x94, 0x6e,
0xac, 0x41, 0x73, 0x8b, 0x8b, 0xd2, 0x5a, 0xc3, 0xe1, 0x54, 0x73, 0x8c, 0x5b, 0x70, 0x33, 0x25,
0x4d, 0x1e, 0x42, 0x7c, 0x02, 0xcb, 0x2d, 0xba, 0x10, 0xe0, 0xab, 0x8a, 0xfc, 0x33, 0x9a, 0xb0,
0x32, 0x5d, 0xa4, 0xac, 0x6c, 0x1b, 0x16, 0xb6, 0xf8, 0xf1, 0xe4, 0x74, 0x97, 0x9f, 0xc7, 0x15,
0x31, 0xc8, 0x07, 0x67, 0xde, 0x85, 0x1c, 0x1f, 0xfc, 0x8d, 0x5e, 0x86, 0x02, 0xc7, 0x0a, 0xc6,
0xbc, 0xaf, 0x0e, 0xa2, 0x11, 0xd2, 0x1d, 0xf3, 0xbe, 0xf1, 0x04, 0x98, 0x5e, 0x8e, 0x1c, 0x2f,
0xa1, 0x25, 0x4c, 0x8e, 0xad, 0xe0, 0x2a, 0x08, 0xf9, 0x48, 0x45, 0xbc, 0x41, 0x30, 0x39, 0xee,
0x12, 0xc4, 0x78, 0x17, 0xaa, 0x87, 0xf6, 0x95, 0xc9, 0x3f, 0x97, 0x81, 0x65, 0xab, 0x50, 0x1c,
0xdb, 0x57, 0x82, 0x0d, 0x44, 0x36, 0x29, 0x4c, 0x36, 0xfe, 0x28, 0x0f, 0x73, 0x84, 0xc9, 0xee,
0xd1, 0xe5, 0xbe, 0x8e, 0x8b, 0xcb, 0x50, 0x31, 0x4a, 0x0d, 0x34, 0xc3, 0x4b, 0xb3, 0xb3, 0xbc,
0x54, 0x1e, 0xa0, 0xa9, 0x4b, 0x8d, 0x94, 0xf5, 0xc0, 0x9d, 0x8c, 0xd4, 0x4d, 0x46, 0xc9, 0xa8,
0xf8, 0x7c, 0x7c, 0x79, 0x33, 0x85, 0x0c, 0x27, 0xed, 0xbb, 0xb1, 0x2e, 0x42, 0xad, 0x53, 0x5b,
0x84, 0x64, 0x97, 0x3a, 0x28, 0x55, 0xe1, 0x29, 0xaa, 0x68, 0xc9, 0xa4, 0xc2, 0x33, 0xa3, 0xd8,
0x94, 0x5e, 0xad, 0xd8, 0xd0, 0xc9, 0xda, 0x4b, 0x14, 0x1b, 0x78, 0x0d, 0xc5, 0xe6, 0x35, 0x6c,
0xab, 0x37, 0xa1, 0x84, 0xfb, 0xbe, 0xc6, 0x3d, 0xc5, 0x7e, 0x2f, 0xb8, 0xe7, 0xb7, 0x35, 0xd1,
0x9f, 0x1c, 0x3b, 0x6e, 0xc5, 0xcb, 0xc4, 0xe4, 0x9f, 0xff, 0x62, 0x6c, 0x56, 0xcf, 0xa1, 0x28,
0xa1, 0x82, 0xa0, 0x5d, 0x7b, 0xa4, 0xee, 0x85, 0xc3, 0xdf, 0x62, 0xd8, 0xf0, 0x32, 0xab, 0xcf,
0x27, 0x8e, 0xcf, 0x07, 0xea, 0xc2, 0x1f, 0x07, 0xd7, 0xa8, 0x80, 0x88, 0x0e, 0x0a, 0x35, 0xc4,
0xf5, 0x2e, 0x5c, 0x79, 0xdd, 0x47, 0xd1, 0x09, 0x9e, 0x89, 0x4f, 0x83, 0x41, 0x03, 0x6f, 0x86,
0x1c, 0x7b, 0xbe, 0xda, 0x9c, 0x8c, 0x9f, 0x66, 0xa0, 0x21, 0x57, 0x57, 0x94, 0xa6, 0x6b, 0x01,
0x85, 0xeb, 0xfc, 0x10, 0x5e, 0x7e, 0x7d, 0x8f, 0x01, 0x35, 0x3c, 0xfc, 0x88, 0x76, 0x2a, 0x3a,
0xbc, 0xa9, 0x08, 0xe0, 0xb6, 0xdc, 0xad, 0xde, 0x80, 0x8a, 0xf2, 0x81, 0x1e, 0x39, 0x43, 0x75,
0x4f, 0x3b, 0x39, 0x41, 0xef, 0x39, 0x43, 0xb5, 0xd1, 0xf9, 0xb6, 0x8c, 0xde, 0xcd, 0xe0, 0x46,
0x67, 0xda, 0x21, 0x37, 0xfe, 0x75, 0x06, 0x16, 0xb4, 0xae, 0xc8, 0x75, 0xfb, 0x11, 0x54, 0xa3,
0x2b, 0x59, 0x79, 0x24, 0x79, 0xad, 0x26, 0x19, 0x4d, 0x9c, 0xad, 0xd2, 0x8f, 0x20, 0x81, 0x68,
0xcc, 0xc0, 0xbe, 0x22, 0x47, 0xdd, 0xc9, 0x48, 0x29, 0x37, 0x03, 0xfb, 0x6a, 0x9b, 0xf3, 0xee,
0x64, 0x24, 0x54, 0xd7, 0x0b, 0xce, 0x5f, 0x44, 0x08, 0x24, 0x73, 0x81, 0x80, 0x49, 0x0c, 0x03,
0x6a, 0x23, 0xcf, 0x0d, 0xcf, 0x22, 0x14, 0x29, 0x75, 0x22, 0x90, 0x70, 0x8c, 0x3f, 0xcb, 0xc2,
0x22, 0x1d, 0xb1, 0xc9, 0xa3, 0x4d, 0xc9, 0xba, 0x9a, 0x30, 0x47, 0xa7, 0x8d, 0xc4, 0xbc, 0x76,
0x6e, 0x98, 0xf2, 0x9b, 0x7d, 0xeb, 0x35, 0x8f, 0x05, 0x55, 0x80, 0xf0, 0x35, 0xc3, 0x9f, 0x9b,
0x1d, 0xfe, 0xeb, 0x87, 0x37, 0xcd, 0xd0, 0x59, 0x48, 0x33, 0x74, 0xbe, 0x8e, 0x79, 0x71, 0x26,
0x94, 0xb5, 0x28, 0x71, 0xb4, 0x50, 0xd6, 0x27, 0xb0, 0x9a, 0xc0, 0x41, 0x6e, 0xed, 0x9c, 0x38,
0x5c, 0xdd, 0xa6, 0xb2, 0xa4, 0x61, 0x77, 0x55, 0xda, 0x46, 0x11, 0x0a, 0x41, 0xdf, 0x1b, 0x73,
0x63, 0x05, 0x96, 0x92, 0xa3, 0x2a, 0xb7, 0x89, 0xdf, 0xcf, 0x40, 0x53, 0xba, 0xa5, 0x38, 0xee,
0xe9, 0x8e, 0x13, 0x84, 0x9e, 0x1f, 0x5d, 0x5d, 0x7a, 0x07, 0x20, 0x08, 0x6d, 0x5f, 0x6a, 0x9b,
0xf2, 0xfe, 0x10, 0x84, 0xa0, 0x26, 0x79, 0x13, 0x4a, 0xdc, 0x1d, 0x50, 0x22, 0x51, 0x43, 0x91,
0xbb, 0x03, 0xa5, 0x87, 0xce, 0xc8, 0xdf, 0xb5, 0xa4, 0x7a, 0x21, 0xc3, 0xf9, 0xc5, 0xe8, 0xf0,
0x73, 0xdc, 0x78, 0xf3, 0x51, 0x38, 0xff, 0x9e, 0x7d, 0x89, 0x4e, 0x9e, 0x81, 0xf1, 0xf7, 0xb3,
0x30, 0x1f, 0xb7, 0x8f, 0xee, 0x02, 0x79, 0xf9, 0xad, 0x26, 0xf7, 0x24, 0x39, 0x38, 0x42, 0x7e,
0xd7, 0x0e, 0x1e, 0x4b, 0xb4, 0x38, 0x3b, 0x2e, 0x33, 0xa0, 0xa2, 0x30, 0xbc, 0x49, 0xa8, 0xdd,
0x20, 0x58, 0x26, 0x94, 0x83, 0x49, 0x28, 0x14, 0x2e, 0xa1, 0x79, 0x3a, 0xae, 0x54, 0x79, 0x0a,
0xf6, 0x28, 0xec, 0xe0, 0xc3, 0x04, 0x02, 0x2c, 0xb2, 0xd1, 0x44, 0x0a, 0x2c, 0x81, 0xdf, 0x20,
0x39, 0x9b, 0x66, 0x0e, 0x65, 0x6c, 0x5d, 0x08, 0xa5, 0x3b, 0x9a, 0x23, 0x21, 0xf4, 0x0d, 0xa8,
0x50, 0xe1, 0x71, 0xe4, 0x72, 0xde, 0x2c, 0x63, 0x0d, 0x98, 0x2e, 0x0f, 0x81, 0xbc, 0x49, 0x42,
0xf5, 0x05, 0xaa, 0x0a, 0xbd, 0x3e, 0xfe, 0x56, 0x06, 0x6e, 0xa6, 0x4c, 0x9b, 0x5c, 0xe5, 0x9b,
0xb0, 0x70, 0x12, 0x25, 0xaa, 0xd1, 0xa5, 0xa5, 0xbe, 0xa2, 0xd8, 0x6a, 0x72, 0x4c, 0xcd, 0xc6,
0x49, 0x12, 0x10, 0x2b, 0x5d, 0x34, 0x83, 0x89, 0xb8, 0x78, 0x54, 0xba, 0x68, 0x1a, 0x49, 0xdf,
0x39, 0x84, 0xb5, 0xf6, 0xa5, 0xe0, 0x18, 0x9b, 0xfa, 0xcb, 0x1a, 0x8a, 0x8c, 0x92, 0x07, 0xcc,
0x99, 0xd7, 0x3a, 0x60, 0x1e, 0x50, 0x20, 0x6d, 0x54, 0xd6, 0xcf, 0x52, 0x08, 0x6e, 0xa0, 0x22,
0x0f, 0xbd, 0x0c, 0xa2, 0x02, 0xe4, 0xfb, 0xd1, 0x8b, 0x20, 0x46, 0x00, 0xf3, 0x7b, 0x93, 0x61,
0xe8, 0xc4, 0x8f, 0x84, 0xb0, 0x6f, 0xc9, 0x3c, 0x58, 0x8f, 0x1a, 0xb5, 0xd4, 0x8a, 0x20, 0xaa,
0x08, 0x07, 0x6b, 0x24, 0x0a, 0xb2, 0x66, 0xeb, 0x9b, 0x1f, 0x25, 0x6b, 0x30, 0x6e, 0xc2, 0x6a,
0xfc, 0x45, 0xc3, 0xa6, 0xb6, 0x9a, 0x7f, 0x92, 0x21, 0x8f, 0xf2, 0xe4, 0x83, 0x25, 0xac, 0x0d,
0x8b, 0x81, 0xe3, 0x9e, 0x0e, 0xb9, 0x5e, 0x7c, 0x20, 0x07, 0x61, 0x39, 0xd9, 0x36, 0xf9, 0xa8,
0x89, 0xb9, 0x40, 0x39, 0xe2, 0xd2, 0x02, 0xb6, 0x71, 0x5d, 0x23, 0x63, 0xb2, 0x98, 0x1a, 0x8d,
0xd9, 0xc6, 0x77, 0xa0, 0x9e, 0xac, 0x88, 0x7d, 0x5b, 0xc6, 0x9f, 0xc7, 0xad, 0xca, 0x4d, 0x05,
0xe7, 0xc6, 0x04, 0x51, 0x89, 0xc7, 0x3e, 0x30, 0xfe, 0x4e, 0x06, 0x9a, 0x26, 0x17, 0x94, 0xab,
0xb5, 0x52, 0xd1, 0xcc, 0x47, 0x33, 0xa5, 0x5e, 0xdf, 0x57, 0x15, 0xd6, 0xae, 0x5a, 0xf4, 0xf5,
0x6b, 0x27, 0x63, 0xe7, 0xc6, 0x4c, 0x8f, 0x36, 0x4a, 0x30, 0x47, 0x28, 0xc6, 0x2a, 0x2c, 0xcb,
0xf6, 0xa8, 0xb6, 0xc4, 0xd6, 0xc3, 0x44, 0x8d, 0x09, 0xeb, 0xe1, 0x1a, 0x34, 0x29, 0xd0, 0x54,
0xef, 0x84, 0xcc, 0xb8, 0x05, 0x6c, 0xcf, 0xee, 0xdb, 0xbe, 0xe7, 0xb9, 0x87, 0xdc, 0x97, 0xfe,
0xb9, 0x28, 0x61, 0xa2, 0x71, 0x4d, 0x89, 0xc2, 0xf4, 0xa5, 0xee, 0x4d, 0xf5, 0x5c, 0xe5, 0x8e,
0x44, 0x5f, 0x86, 0x09, 0x8b, 0x1b, 0xf6, 0x0b, 0xae, 0x4a, 0x52, 0x43, 0xf4, 0x31, 0x54, 0xc6,
0x51, 0xa1, 0x6a, 0xdc, 0xd5, 0xfd, 0x18, 0xb3, 0xd5, 0x9a, 0x3a, 0xb6, 0xf1, 0x18, 0x96, 0x92,
0x65, 0x4a, 0xd6, 0xb1, 0x06, 0xa5, 0x91, 0x84, 0xc9, 0xd6, 0x45, 0xdf, 0xc6, 0xef, 0x96, 0xa0,
0x28, 0xf5, 0x39, 0xb6, 0x0e, 0xf9, 0xbe, 0x72, 0x09, 0x8b, 0xaf, 0x5d, 0x92, 0xa9, 0xea, 0xff,
0x26, 0x3a, 0x86, 0x09, 0x3c, 0xf6, 0x31, 0xd4, 0x93, 0x56, 0xd1, 0xa9, 0x30, 0xf6, 0xa4, 0x39,
0xb3, 0xd6, 0x9f, 0xb2, 0x7f, 0x95, 0xe3, 0xcd, 0x91, 0x64, 0x86, 0xd2, 0x99, 0xb6, 0x7b, 0x7a,
0xae, 0x90, 0xb7, 0x83, 0x33, 0xdb, 0x7a, 0xfc, 0xe4, 0x43, 0x19, 0xc7, 0x5e, 0x41, 0x60, 0xf7,
0xcc, 0x7e, 0xfc, 0xe4, 0xc3, 0x69, 0x49, 0x5a, 0x46, 0xb1, 0x6b, 0x92, 0xf4, 0x12, 0x14, 0xe8,
0x82, 0x50, 0xf2, 0xed, 0xa1, 0x0f, 0xf6, 0x08, 0x96, 0xa4, 0xda, 0x6a, 0x49, 0x2f, 0x6c, 0xe2,
0x82, 0x25, 0x0a, 0x7c, 0x93, 0x69, 0x5d, 0x4c, 0xa2, 0xb3, 0xa1, 0x15, 0x98, 0x3b, 0x8b, 0x6f,
0x7b, 0xad, 0x99, 0xf2, 0xcb, 0xf8, 0xb3, 0x02, 0x54, 0xb4, 0x41, 0x61, 0x55, 0x28, 0x99, 0xed,
0x6e, 0xdb, 0xfc, 0xb4, 0xbd, 0xd5, 0xb8, 0xc1, 0xee, 0xc3, 0xdb, 0x9d, 0xfd, 0xcd, 0x03, 0xd3,
0x6c, 0x6f, 0xf6, 0xac, 0x03, 0xd3, 0x52, 0x97, 0x7f, 0x1d, 0xb6, 0x9e, 0xef, 0xb5, 0xf7, 0x7b,
0xd6, 0x56, 0xbb, 0xd7, 0xea, 0xec, 0x76, 0x1b, 0x19, 0x76, 0x1b, 0x9a, 0x31, 0xa6, 0x4a, 0x6e,
0xed, 0x1d, 0x1c, 0xed, 0xf7, 0x1a, 0x59, 0x76, 0x17, 0x6e, 0x6d, 0x77, 0xf6, 0x5b, 0xbb, 0x56,
0x8c, 0xb3, 0xb9, 0xdb, 0xfb, 0xd4, 0x6a, 0xff, 0xca, 0x61, 0xc7, 0x7c, 0xde, 0xc8, 0xa5, 0x21,
0x08, 0x65, 0x5c, 0x95, 0x90, 0x67, 0x37, 0x61, 0x99, 0x10, 0x28, 0x8b, 0xd5, 0x3b, 0x38, 0xb0,
0xba, 0x07, 0x07, 0xfb, 0x8d, 0x02, 0x5b, 0x80, 0x5a, 0x67, 0xff, 0xd3, 0xd6, 0x6e, 0x67, 0xcb,
0x32, 0xdb, 0xad, 0xdd, 0xbd, 0xc6, 0x1c, 0x5b, 0x84, 0xf9, 0x69, 0xbc, 0xa2, 0x28, 0x42, 0xe1,
0x1d, 0xec, 0x77, 0x0e, 0xf6, 0xad, 0x4f, 0xdb, 0x66, 0xb7, 0x73, 0xb0, 0xdf, 0x28, 0xb1, 0x15,
0x60, 0xc9, 0xa4, 0x9d, 0xbd, 0xd6, 0x66, 0xa3, 0xcc, 0x96, 0x61, 0x21, 0x09, 0x7f, 0xd6, 0x7e,
0xde, 0x00, 0xd6, 0x84, 0x25, 0x6a, 0x98, 0xb5, 0xd1, 0xde, 0x3d, 0xf8, 0xcc, 0xda, 0xeb, 0xec,
0x77, 0xf6, 0x8e, 0xf6, 0x1a, 0x15, 0xbc, 0x8e, 0xb0, 0xdd, 0xb6, 0x3a, 0xfb, 0xdd, 0xa3, 0xed,
0xed, 0xce, 0x66, 0xa7, 0xbd, 0xdf, 0x6b, 0x54, 0xa9, 0xe6, 0xb4, 0x8e, 0xd7, 0x44, 0x06, 0x19,
0xaa, 0x61, 0x6d, 0x75, 0xba, 0xad, 0x8d, 0xdd, 0xf6, 0x56, 0xa3, 0xce, 0xee, 0xc0, 0xcd, 0x5e,
0x7b, 0xef, 0xf0, 0xc0, 0x6c, 0x99, 0xcf, 0x55, 0x28, 0x87, 0xb5, 0xdd, 0xea, 0xec, 0x1e, 0x99,
0xed, 0xc6, 0x3c, 0x7b, 0x13, 0xee, 0x98, 0xed, 0x4f, 0x8e, 0x3a, 0x66, 0x7b, 0xcb, 0xda, 0x3f,
0xd8, 0x6a, 0x5b, 0xdb, 0xed, 0x56, 0xef, 0xc8, 0x6c, 0x5b, 0x7b, 0x9d, 0x6e, 0xb7, 0xb3, 0xff,
0xb4, 0xd1, 0x60, 0x6f, 0xc3, 0xbd, 0x08, 0x25, 0x2a, 0x60, 0x0a, 0x6b, 0x41, 0xf4, 0x4f, 0x4d,
0xe9, 0x7e, 0xfb, 0x57, 0x7a, 0xd6, 0x61, 0xbb, 0x6d, 0x36, 0x18, 0x5b, 0x83, 0x95, 0xb8, 0x7a,
0xaa, 0x40, 0xd6, 0xbd, 0x28, 0xd2, 0x0e, 0xdb, 0xe6, 0x5e, 0x6b, 0x5f, 0x4c, 0x70, 0x22, 0x6d,
0x49, 0x34, 0x3b, 0x4e, 0x9b, 0x6e, 0xf6, 0x32, 0x63, 0x50, 0xd7, 0x66, 0x65, 0xbb, 0x65, 0x36,
0x56, 0xd8, 0x3c, 0x54, 0xf6, 0x0e, 0x0f, 0xad, 0x5e, 0x67, 0xaf, 0x7d, 0x70, 0xd4, 0x6b, 0xac,
0xb2, 0x65, 0x68, 0x74, 0xf6, 0x7b, 0x6d, 0x53, 0xcc, 0xb5, 0xca, 0xfa, 0x3f, 0x8a, 0x6c, 0x09,
0xe6, 0x55, 0x4b, 0x15, 0xf4, 0x2f, 0x8b, 0x6c, 0x15, 0xd8, 0xd1, 0xbe, 0xd9, 0x6e, 0x6d, 0x89,
0x81, 0x8b, 0x12, 0xfe, 0x67, 0x51, 0x5a, 0x48, 0x7e, 0x9a, 0x8b, 0x36, 0xeb, 0xd8, 0xe5, 0x20,
0x79, 0xf7, 0x77, 0x55, 0xbb, 0xb3, 0xfb, 0x55, 0xaf, 0x72, 0x68, 0xaa, 0x55, 0x6e, 0x46, 0xb5,
0x9a, 0xd1, 0xdd, 0x6b, 0xba, 0xec, 0xf7, 0x16, 0xd4, 0x46, 0x74, 0x0f, 0xb8, 0xbc, 0xef, 0x17,
0xa4, 0xff, 0x0d, 0x01, 0xe9, 0xb2, 0xdf, 0x99, 0x67, 0x29, 0x0a, 0xb3, 0xcf, 0x52, 0xa4, 0xc9,
0xf7, 0x73, 0x69, 0xf2, 0xfd, 0x03, 0x58, 0x20, 0xd6, 0xe4, 0xb8, 0xce, 0x48, 0x69, 0xcd, 0x24,
0x05, 0xce, 0x23, 0x8b, 0x22, 0xb8, 0x52, 0x27, 0x94, 0xca, 0x21, 0x59, 0x48, 0x51, 0x6a, 0x1b,
0x09, 0x4d, 0x83, 0x38, 0x47, 0xa4, 0x69, 0x44, 0x35, 0xd8, 0x97, 0x71, 0x0d, 0x15, 0xad, 0x06,
0x82, 0x63, 0x0d, 0x0f, 0x60, 0x81, 0x5f, 0x86, 0xbe, 0x6d, 0x79, 0x63, 0xfb, 0xf3, 0x09, 0x9a,
0x70, 0x6d, 0xd4, 0xe1, 0xab, 0xe6, 0x3c, 0x26, 0x1c, 0x20, 0x7c, 0xcb, 0x0e, 0xed, 0x07, 0x5f,
0x40, 0x45, 0xbb, 0x23, 0x9e, 0xad, 0xc2, 0xe2, 0x67, 0x9d, 0xde, 0x7e, 0xbb, 0xdb, 0xb5, 0x0e,
0x8f, 0x36, 0x9e, 0xb5, 0x9f, 0x5b, 0x3b, 0xad, 0xee, 0x4e, 0xe3, 0x86, 0x58, 0xb4, 0xfb, 0xed,
0x6e, 0xaf, 0xbd, 0x95, 0x80, 0x67, 0xd8, 0x1b, 0xb0, 0x76, 0xb4, 0x7f, 0xd4, 0x6d, 0x6f, 0x59,
0x69, 0xf9, 0xb2, 0x82, 0x4a, 0x65, 0x7a, 0x4a, 0xf6, 0xdc, 0x83, 0xdf, 0x80, 0x7a, 0x32, 0xaa,
0x99, 0x01, 0xcc, 0xed, 0xb6, 0x9f, 0xb6, 0x36, 0x9f, 0xd3, 0x85, 0xa5, 0xdd, 0x5e, 0xab, 0xd7,
0xd9, 0xb4, 0xe4, 0x05, 0xa5, 0x82, 0x23, 0x64, 0x58, 0x05, 0x8a, 0xad, 0xfd, 0xcd, 0x9d, 0x03,
0xb3, 0xdb, 0xc8, 0xb2, 0xdb, 0xb0, 0xaa, 0x68, 0x75, 0xf3, 0x60, 0x6f, 0xaf, 0xd3, 0x43, 0x66,
0xd8, 0x7b, 0x7e, 0x28, 0x48, 0xf3, 0xc1, 0x77, 0xa1, 0x9e, 0xf4, 0xbd, 0x4b, 0x9e, 0xca, 0xae,
0xc1, 0xca, 0x46, 0xbb, 0xf7, 0x59, 0xbb, 0xbd, 0x8f, 0x4d, 0xdf, 0x6c, 0xef, 0xf7, 0xcc, 0xd6,
0x6e, 0xa7, 0xf7, 0xbc, 0x91, 0x79, 0xf0, 0x31, 0x34, 0xa6, 0x0d, 0x5d, 0x09, 0xcb, 0xe0, 0xcb,
0x4c, 0x88, 0x0f, 0xfe, 0x79, 0x0e, 0x20, 0x0e, 0x00, 0x11, 0x3c, 0x6c, 0xab, 0xd5, 0x6b, 0xed,
0x1e, 0x88, 0xf1, 0x31, 0x0f, 0x7a, 0x82, 0x35, 0x99, 0xed, 0x4f, 0x1a, 0x37, 0x52, 0x53, 0x0e,
0x0e, 0x7b, 0x8d, 0x8c, 0x98, 0x8a, 0xce, 0x7e, 0xa7, 0xd7, 0x69, 0xed, 0x5a, 0xe6, 0xc1, 0x51,
0x67, 0xff, 0x29, 0x5d, 0xf1, 0x88, 0xec, 0xfb, 0xe8, 0x70, 0xdb, 0x3c, 0xd8, 0xef, 0x59, 0xdd,
0x9d, 0xa3, 0xde, 0x16, 0x5e, 0x10, 0xb9, 0x69, 0x76, 0x0e, 0xa9, 0xcc, 0xfc, 0xcb, 0x10, 0x44,
0xd1, 0x05, 0x31, 0x99, 0x4f, 0x0f, 0xba, 0xdd, 0xce, 0xa1, 0xf5, 0xc9, 0x51, 0xdb, 0xec, 0xb4,
0xbb, 0x98, 0x71, 0x2e, 0x05, 0x2e, 0xf0, 0x8b, 0x82, 0xe9, 0xf7, 0x76, 0x3f, 0x95, 0x5c, 0x59,
0xa0, 0x96, 0x92, 0x20, 0x81, 0x55, 0x16, 0x83, 0x29, 0xd8, 0x5a, 0x4a, 0xc9, 0x70, 0x4d, 0x9a,
0xc8, 0x57, 0x11, 0x0c, 0x7b, 0x66, 0x96, 0x31, 0x5b, 0x35, 0x3d, 0x49, 0xe4, 0x42, 0x5e, 0x1e,
0xed, 0x7c, 0x5b, 0x5b, 0x26, 0x66, 0xa8, 0xcf, 0x40, 0x05, 0xee, 0xbc, 0x98, 0x28, 0xc1, 0xf7,
0x04, 0x4a, 0x43, 0x7d, 0x88, 0x94, 0x85, 0xc7, 0xbf, 0x93, 0x83, 0x3a, 0x05, 0xe3, 0xd1, 0xdb,
0x7f, 0xdc, 0x67, 0x7b, 0x50, 0x94, 0x8f, 0x48, 0xb2, 0xe5, 0xe8, 0xf6, 0x3d, 0xfd, 0xd9, 0xca,
0xb5, 0x95, 0x69, 0xb0, 0x94, 0xf3, 0x16, 0xff, 0xda, 0x9f, 0xfe, 0xf7, 0xbf, 0x97, 0xad, 0xb1,
0xca, 0xc3, 0xf3, 0x0f, 0x1e, 0x9e, 0x72, 0x37, 0x10, 0x65, 0xfc, 0x1a, 0x40, 0xfc, 0x34, 0x22,
0x6b, 0x46, 0xd6, 0xad, 0xa9, 0x77, 0x23, 0xd7, 0x6e, 0xa6, 0xa4, 0xc8, 0x72, 0x6f, 0x62, 0xb9,
0x8b, 0x46, 0x5d, 0x94, 0xeb, 0xb8, 0x4e, 0x48, 0xcf, 0x24, 0x7e, 0x94, 0x79, 0xc0, 0x06, 0x50,
0xd5, 0x1f, 0x2d, 0x64, 0x4a, 0x04, 0x4b, 0x79, 0x76, 0x71, 0xed, 0x56, 0x6a, 0x9a, 0x12, 0x6e,
0xb1, 0x8e, 0x65, 0xa3, 0x21, 0xea, 0x98, 0x20, 0x46, 0x5c, 0xcb, 0x90, 0xc4, 0xfd, 0xf8, 0x6d,
0x42, 0x76, 0x5b, 0x13, 0xd8, 0x66, 0x5e, 0x46, 0x5c, 0xbb, 0x73, 0x4d, 0xaa, 0xac, 0xeb, 0x0e,
0xd6, 0xb5, 0x6a, 0x30, 0x51, 0x57, 0x1f, 0x71, 0xd4, 0xcb, 0x88, 0x1f, 0x65, 0x1e, 0x3c, 0xfe,
0x0f, 0xef, 0x41, 0x39, 0x72, 0xce, 0x65, 0xbf, 0x09, 0xb5, 0x44, 0xb4, 0x24, 0x53, 0xdd, 0x48,
0x0b, 0xae, 0x5c, 0xbb, 0x9d, 0x9e, 0x28, 0x2b, 0x7e, 0x03, 0x2b, 0x6e, 0xb2, 0x15, 0x51, 0xb1,
0x8c, 0x46, 0x7c, 0x88, 0xd1, 0xcd, 0x74, 0x97, 0xe1, 0x0b, 0x4d, 0xad, 0xa1, 0xca, 0x6e, 0x4f,
0xab, 0x1a, 0x89, 0xda, 0xee, 0x5c, 0x93, 0x2a, 0xab, 0xbb, 0x8d, 0xd5, 0xad, 0xb0, 0x25, 0xbd,
0x3a, 0xe5, 0xd3, 0xc9, 0x38, 0xde, 0x1f, 0xaa, 0x3f, 0xdd, 0xc7, 0xee, 0xc4, 0xb7, 0x3d, 0xa6,
0x3c, 0xe9, 0x17, 0x91, 0xc8, 0xec, 0xbb, 0x7e, 0x46, 0x13, 0xab, 0x62, 0x0c, 0xa7, 0x4f, 0x7f,
0xb9, 0x8f, 0x1d, 0x43, 0x45, 0x7b, 0xed, 0x86, 0xdd, 0xbc, 0xf6, 0x65, 0x9e, 0xb5, 0xb5, 0xb4,
0xa4, 0xb4, 0xae, 0xe8, 0xe5, 0x3f, 0x3c, 0xe1, 0x9c, 0xfd, 0x2a, 0x94, 0xa3, 0x37, 0x54, 0xd8,
0xaa, 0xf6, 0xa6, 0x8d, 0xfe, 0xe6, 0xcb, 0x5a, 0x73, 0x36, 0x21, 0x8d, 0xf8, 0xf4, 0xd2, 0x05,
0xf1, 0x7d, 0x06, 0x15, 0xed, 0x9d, 0x94, 0xa8, 0x03, 0xb3, 0x6f, 0xb1, 0x44, 0x1d, 0x48, 0x79,
0x56, 0xc5, 0x58, 0xc0, 0x2a, 0x2a, 0xac, 0x8c, 0xf4, 0x1d, 0x5e, 0x7a, 0x01, 0xdb, 0x85, 0x65,
0xa9, 0xc2, 0x1d, 0xf3, 0x2f, 0x33, 0x0d, 0x29, 0xaf, 0x25, 0x3e, 0xca, 0xb0, 0x8f, 0xa1, 0xa4,
0x9e, 0xc3, 0x61, 0x2b, 0xe9, 0xcf, 0xfa, 0xac, 0xad, 0xce, 0xc0, 0xa5, 0xbe, 0xf5, 0x1c, 0x20,
0x7e, 0x94, 0x25, 0x62, 0x12, 0x33, 0x8f, 0xbc, 0x44, 0x14, 0x30, 0xfb, 0x82, 0x8b, 0xb1, 0x82,
0x1d, 0x6c, 0x30, 0x64, 0x12, 0x2e, 0xbf, 0x50, 0x97, 0x3c, 0xff, 0x08, 0x2a, 0xda, 0xbb, 0x2c,
0xd1, 0xf0, 0xcd, 0xbe, 0xe9, 0x12, 0x0d, 0x5f, 0xca, 0x33, 0x2e, 0xc6, 0x1a, 0x96, 0xbe, 0x64,
0xcc, 0x8b, 0xd2, 0x85, 0x0c, 0x27, 0x65, 0x29, 0x31, 0x41, 0x67, 0x50, 0x4b, 0x3c, 0xbe, 0x12,
0xad, 0xd0, 0xb4, 0xa7, 0x5d, 0xa2, 0x15, 0x9a, 0xfa, 0x5e, 0x8b, 0xa2, 0x33, 0x63, 0x41, 0xd4,
0x43, 0xf7, 0x3c, 0x69, 0x35, 0xfd, 0x10, 0x2a, 0xda, 0x43, 0x2a, 0x51, 0x5f, 0x66, 0xdf, 0x6c,
0x89, 0xfa, 0x92, 0xf6, 0xee, 0xca, 0x12, 0xd6, 0x51, 0x37, 0x90, 0x14, 0xf0, 0x9a, 0x5a, 0x51,
0xf6, 0x6f, 0x42, 0x3d, 0xf9, 0xb6, 0x4a, 0xb4, 0xf6, 0x53, 0x1f, 0x69, 0x89, 0xd6, 0xfe, 0x35,
0x0f, 0xb2, 0x48, 0x92, 0x7e, 0xb0, 0x18, 0x55, 0xf2, 0xf0, 0x27, 0x32, 0xcc, 0xe8, 0x0b, 0xf6,
0x89, 0x60, 0x70, 0xf2, 0x96, 0x64, 0xb6, 0xaa, 0x51, 0xad, 0x7e, 0xdd, 0x72, 0xb4, 0x5e, 0x66,
0x2e, 0x54, 0x4e, 0x12, 0x33, 0x16, 0xce, 0x9e, 0xc2, 0x62, 0x44, 0xcc, 0xd1, 0xb5, 0xc7, 0x41,
0xd4, 0x87, 0xd4, 0xcb, 0x95, 0xd7, 0x1a, 0xd3, 0xa9, 0x8f, 0x32, 0xb4, 0xfd, 0xe1, 0x65, 0xb3,
0xda, 0xf6, 0xa7, 0xdf, 0x7c, 0xac, 0x6d, 0x7f, 0x89, 0x3b, 0x69, 0xa7, 0xb7, 0xbf, 0xd0, 0x11,
0x65, 0xb8, 0x30, 0x3f, 0x7d, 0x09, 0xf1, 0x9d, 0xeb, 0xae, 0x71, 0xa0, 0xe2, 0xdf, 0x78, 0xf9,
0x2d, 0x0f, 0x49, 0x56, 0xa4, 0xb8, 0xe9, 0x43, 0xe9, 0xd5, 0xc2, 0x7e, 0x1d, 0xaa, 0xfa, 0x7b,
0x0c, 0x4c, 0xe7, 0x09, 0xd3, 0x35, 0xdd, 0x4a, 0x4d, 0x4b, 0x52, 0x09, 0xab, 0xea, 0xd5, 0xb0,
0x4f, 0x61, 0x25, 0x1a, 0x66, 0xfd, 0x1e, 0x82, 0x80, 0xdd, 0x4d, 0xb9, 0x9d, 0x20, 0x31, 0xd8,
0x37, 0xaf, 0xbd, 0xbe, 0xe0, 0x51, 0x46, 0x50, 0x5f, 0xf2, 0x62, 0xf8, 0x78, 0xe7, 0x49, 0xbb,
0x0f, 0x3f, 0xde, 0x79, 0x52, 0x6f, 0x93, 0x57, 0xd4, 0xc7, 0x16, 0x13, 0x63, 0x44, 0xfe, 0xbe,
0xec, 0x87, 0x30, 0xaf, 0x5d, 0xb2, 0xd0, 0xbd, 0x72, 0xfb, 0xd1, 0x4a, 0x9a, 0xbd, 0x5e, 0x74,
0x2d, 0xed, 0xd0, 0xd3, 0x58, 0xc5, 0xf2, 0x17, 0x8c, 0xc4, 0xe0, 0x88, 0x55, 0xb4, 0x09, 0x15,
0xfd, 0x02, 0x87, 0x97, 0x94, 0xbb, 0xaa, 0x25, 0xe9, 0x37, 0x59, 0x3e, 0xca, 0xb0, 0x5d, 0x68,
0x4c, 0x5f, 0xae, 0x16, 0xf1, 0x94, 0xb4, 0x0b, 0xe9, 0xd6, 0xa6, 0x12, 0x13, 0x57, 0xb2, 0xb1,
0x43, 0x8a, 0x18, 0x89, 0x9e, 0x16, 0xf4, 0xfc, 0xe9, 0x5d, 0x3d, 0xf9, 0xe4, 0x60, 0x54, 0x5a,
0xda, 0x63, 0x93, 0xf7, 0x33, 0x8f, 0x32, 0xec, 0xf7, 0x32, 0x50, 0x4d, 0x5c, 0x37, 0x94, 0xf0,
0xc9, 0x9f, 0xea, 0x67, 0x53, 0x4f, 0xd3, 0x3b, 0x6a, 0x98, 0x38, 0x88, 0xbb, 0x0f, 0x7e, 0x90,
0x98, 0xa4, 0x9f, 0x24, 0x6c, 0x86, 0xeb, 0xd3, 0x6f, 0x0f, 0x7e, 0x31, 0x8d, 0xa0, 0x5f, 0x58,
0xfb, 0xc5, 0xa3, 0x0c, 0xfb, 0x97, 0x19, 0xa8, 0x27, 0x9d, 0x01, 0xa2, 0xee, 0xa6, 0xba, 0x1d,
0x44, 0xa4, 0x74, 0x8d, 0x07, 0xc1, 0x0f, 0xb1, 0x95, 0xbd, 0x07, 0x66, 0xa2, 0x95, 0xf2, 0x49,
0x83, 0x9f, 0xaf, 0xb5, 0xec, 0x97, 0xe9, 0xa9, 0x5f, 0xe5, 0x23, 0xc5, 0x66, 0x9f, 0x86, 0x8d,
0xc8, 0x4f, 0x7f, 0x48, 0xd5, 0xc8, 0xfd, 0x76, 0x36, 0x83, 0x33, 0xf1, 0x23, 0x7a, 0x68, 0x4f,
0xf9, 0xdd, 0x08, 0x52, 0x7e, 0xed, 0x42, 0xde, 0xc6, 0x8e, 0xbd, 0x61, 0xdc, 0x4c, 0x74, 0x6c,
0x5a, 0xfa, 0x68, 0x51, 0x13, 0xe5, 0x63, 0xa8, 0xf1, 0xf6, 0x39, 0xf3, 0x40, 0x6a, 0x6a, 0x25,
0xd8, 0xc8, 0x11, 0x35, 0x52, 0xa2, 0x27, 0xd6, 0xdb, 0x6b, 0x16, 0x63, 0x3c, 0xc0, 0xb6, 0xbe,
0x6d, 0xdc, 0xbd, 0xb6, 0xad, 0x0f, 0xd1, 0xba, 0x2f, 0x5a, 0x7c, 0x08, 0x10, 0x3b, 0x32, 0xb2,
0x29, 0x77, 0xba, 0x88, 0x0b, 0xcd, 0xfa, 0x3a, 0x26, 0x17, 0xb5, 0xf2, 0xba, 0x13, 0x25, 0xfe,
0x2a, 0xf1, 0xd4, 0xc8, 0xd1, 0x4f, 0x17, 0xc1, 0x92, 0x3e, 0x87, 0x09, 0x11, 0x6c, 0xba, 0xfc,
0x04, 0x47, 0x8d, 0xbc, 0xfa, 0x8e, 0xa0, 0xb6, 0xeb, 0x79, 0x2f, 0x26, 0xe3, 0xc8, 0x79, 0x3e,
0xe9, 0x72, 0xb3, 0x63, 0x07, 0x67, 0x6b, 0x53, 0xbd, 0x30, 0xee, 0x61, 0x51, 0x6b, 0xac, 0xa9,
0x15, 0xf5, 0xf0, 0x27, 0xb1, 0xf7, 0xe4, 0x17, 0xcc, 0x86, 0x85, 0x88, 0x51, 0xc7, 0x1e, 0x8a,
0xc9, 0x62, 0x12, 0xec, 0x79, 0xba, 0x8a, 0x84, 0xae, 0xa0, 0x5a, 0xfb, 0x30, 0x50, 0x65, 0x3e,
0xca, 0xb0, 0x43, 0xa8, 0x6e, 0xf1, 0x3e, 0xde, 0xbe, 0x80, 0x8e, 0x2b, 0x8b, 0x09, 0x27, 0x08,
0xf2, 0x78, 0x59, 0xab, 0x25, 0x80, 0xc9, 0xcd, 0x6b, 0x6c, 0x5f, 0xf9, 0xfc, 0xf3, 0x87, 0x3f,
0x91, 0x2e, 0x31, 0x5f, 0xa8, 0xcd, 0x4b, 0xb9, 0x0c, 0x25, 0x36, 0xaf, 0x29, 0x1f, 0xa3, 0xc4,
0xe6, 0x35, 0xe3, 0x63, 0x94, 0x18, 0x6a, 0xe5, 0xb2, 0xc4, 0x86, 0xb0, 0x30, 0xe3, 0x96, 0x14,
0xed, 0x5b, 0xd7, 0x39, 0x33, 0xad, 0xdd, 0xbb, 0x1e, 0x21, 0x59, 0xdb, 0x83, 0x64, 0x6d, 0x5d,
0xa8, 0xd1, 0x95, 0xb4, 0xc7, 0x9c, 0xe2, 0x30, 0xa7, 0x2e, 0x31, 0xd2, 0x83, 0x3c, 0xa7, 0x77,
0x19, 0x4c, 0x4b, 0x8a, 0x39, 0x18, 0x89, 0xc7, 0x4e, 0xf0, 0x1d, 0x06, 0x2d, 0xf0, 0x31, 0x22,
0xc6, 0xd9, 0x60, 0xcc, 0x88, 0x18, 0x53, 0xe2, 0x24, 0x95, 0x0e, 0xca, 0x96, 0xa3, 0xb2, 0x1f,
0xba, 0xde, 0x80, 0x8f, 0x64, 0xa9, 0xbf, 0x0a, 0x95, 0xa7, 0x3c, 0x54, 0x91, 0x86, 0x91, 0x40,
0x3f, 0x15, 0x7a, 0xb8, 0x96, 0x12, 0x1f, 0x9a, 0xa4, 0x4d, 0x2a, 0x99, 0x0f, 0x4e, 0x39, 0x71,
0x42, 0xcb, 0x19, 0x7c, 0xc1, 0x7e, 0x05, 0x0b, 0x8f, 0xe2, 0xea, 0x57, 0xb4, 0x66, 0xea, 0x85,
0xcf, 0x4f, 0xc1, 0xd3, 0x4a, 0x16, 0x6d, 0xd6, 0x04, 0x4b, 0x17, 0x2a, 0xda, 0xfd, 0x1b, 0xd1,
0xd8, 0xcc, 0xde, 0xb7, 0x12, 0x8d, 0x4d, 0xca, 0x75, 0x1d, 0xc6, 0x7d, 0xac, 0xc7, 0x60, 0xf7,
0xe2, 0x7a, 0xe8, 0x8a, 0x8e, 0xb8, 0xa6, 0x87, 0x3f, 0xb1, 0x47, 0xe1, 0x17, 0xec, 0x33, 0x9a,
0x0e, 0x2d, 0x92, 0x32, 0xd6, 0x50, 0xa6, 0x83, 0x2e, 0xa3, 0xc1, 0xd2, 0x92, 0x92, 0x5a, 0x0b,
0x55, 0x85, 0x62, 0xe3, 0x13, 0x80, 0x6e, 0xe8, 0x8d, 0xb7, 0x6c, 0x3e, 0xf2, 0xdc, 0x98, 0xa7,
0xc7, 0xb1, 0x7d, 0x31, 0x9f, 0xd4, 0x02, 0xfc, 0xd8, 0x67, 0x9a, 0x4a, 0x97, 0x88, 0x01, 0x56,
0x44, 0x7c, 0x6d, 0xf8, 0x5f, 0x34, 0x20, 0x29, 0x21, 0x80, 0x8f, 0x32, 0xac, 0x05, 0x10, 0xfb,
0xbf, 0x45, 0x0a, 0xda, 0x8c, 0x6b, 0x5d, 0xc4, 0x5e, 0x53, 0x9c, 0xe5, 0x0e, 0xa1, 0x1c, 0x3b,
0x0e, 0xad, 0xc6, 0xd7, 0x09, 0x25, 0xdc, 0x8c, 0x22, 0x71, 0x61, 0xc6, 0x69, 0xc7, 0x68, 0xe0,
0x50, 0x01, 0x2b, 0x89, 0xa1, 0x3a, 0xe1, 0x3c, 0x60, 0x0e, 0x2c, 0x52, 0x03, 0x23, 0xd9, 0x0c,
0x63, 0xd2, 0xa2, 0xd7, 0x4f, 0x66, 0xfd, 0x67, 0x22, 0xae, 0x91, 0xea, 0x05, 0x92, 0x38, 0x67,
0x12, 0xd4, 0x4a, 0xf1, 0x70, 0x62, 0x0b, 0x18, 0xc1, 0xc2, 0x8c, 0xa3, 0x41, 0xc4, 0x3a, 0xae,
0xf3, 0x1c, 0x89, 0x58, 0xc7, 0xb5, 0x3e, 0x0a, 0xc6, 0x32, 0x56, 0x39, 0x6f, 0x00, 0xea, 0x95,
0x17, 0x4e, 0xd8, 0x3f, 0x13, 0xd5, 0xfd, 0x41, 0x06, 0x16, 0x53, 0x5c, 0x09, 0xd8, 0x9b, 0xea,
0x88, 0xe2, 0x5a, 0x37, 0x83, 0xb5, 0x54, 0x93, 0xb3, 0xd1, 0xc5, 0x7a, 0xf6, 0xd8, 0xb3, 0xc4,
0x06, 0x4a, 0x16, 0x5f, 0xb9, 0x32, 0x5f, 0x2a, 0xc1, 0xa4, 0x8a, 0x2f, 0x9f, 0xc3, 0x2a, 0x35,
0xa4, 0x35, 0x1c, 0x4e, 0x99, 0xc3, 0xdf, 0xd0, 0x5a, 0x91, 0x62, 0xe2, 0x4f, 0x28, 0x03, 0x49,
0x33, 0xff, 0x35, 0xb2, 0x3b, 0x35, 0x95, 0x4d, 0xa0, 0x31, 0x6d, 0x66, 0x66, 0xd7, 0x97, 0xb5,
0x76, 0x37, 0xa1, 0x6c, 0xa7, 0x98, 0xa6, 0xbf, 0x86, 0x95, 0xdd, 0x35, 0xd6, 0xd2, 0xc6, 0x85,
0xf4, 0x6f, 0x31, 0x1f, 0xff, 0x7f, 0x64, 0x13, 0x9f, 0xea, 0xe7, 0xdd, 0xe8, 0xbe, 0xf7, 0x74,
0x0b, 0x7e, 0xa4, 0xee, 0xa7, 0x9b, 0xd4, 0xdf, 0xc1, 0xea, 0xef, 0x19, 0xb7, 0xd2, 0xaa, 0xf7,
0x29, 0x0b, 0x29, 0xfe, 0xab, 0xd3, 0xeb, 0x5a, 0xb5, 0xe0, 0x5e, 0xda, 0x7c, 0x5f, 0xab, 0x78,
0x4d, 0x8d, 0xf5, 0x0d, 0x94, 0x21, 0xab, 0xba, 0x0d, 0x3c, 0x5a, 0x3e, 0x29, 0xc6, 0xf6, 0x68,
0xf9, 0xa4, 0x19, 0xcd, 0x93, 0xf2, 0x93, 0x32, 0x97, 0x7f, 0x94, 0x79, 0xb0, 0xf1, 0xee, 0x0f,
0xbf, 0x76, 0xea, 0x84, 0x67, 0x93, 0xe3, 0xf5, 0xbe, 0x37, 0x7a, 0x38, 0x54, 0x47, 0x9b, 0x32,
0x70, 0xfb, 0xe1, 0xd0, 0x1d, 0x3c, 0xc4, 0x62, 0x8f, 0xe7, 0xc6, 0xbe, 0x17, 0x7a, 0xdf, 0xfc,
0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xb1, 0xa4, 0x40, 0x5a, 0x89, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -12999,10 +12999,11 @@ type LightningClient interface {
//when in debug builds of lnd.
AbandonChannel(ctx context.Context, in *AbandonChannelRequest, opts ...grpc.CallOption) (*AbandonChannelResponse, error)
//* lncli: `sendpayment`
//SendPayment dispatches a bi-directional streaming RPC for sending payments
//through the Lightning Network. A single RPC invocation creates a persistent
//bi-directional stream allowing clients to rapidly send payments through the
//Lightning Network with a single persistent connection.
//Deprecated, use routerrpc.SendPayment. SendPayment dispatches a
//bi-directional streaming RPC for sending payments through the Lightning
//Network. A single RPC invocation creates a persistent bi-directional
//stream allowing clients to rapidly send payments through the Lightning
//Network with a single persistent connection.
SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error)
//*
//SendPaymentSync is the synchronous non-streaming version of SendPayment.
@ -13553,6 +13554,7 @@ func (c *lightningClient) AbandonChannel(ctx context.Context, in *AbandonChannel
return out, nil
}
// Deprecated: Do not use.
func (c *lightningClient) SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error) {
stream, err := c.cc.NewStream(ctx, &_Lightning_serviceDesc.Streams[6], "/lnrpc.Lightning/SendPayment", opts...)
if err != nil {
@ -14074,10 +14076,11 @@ type LightningServer interface {
//when in debug builds of lnd.
AbandonChannel(context.Context, *AbandonChannelRequest) (*AbandonChannelResponse, error)
//* lncli: `sendpayment`
//SendPayment dispatches a bi-directional streaming RPC for sending payments
//through the Lightning Network. A single RPC invocation creates a persistent
//bi-directional stream allowing clients to rapidly send payments through the
//Lightning Network with a single persistent connection.
//Deprecated, use routerrpc.SendPayment. SendPayment dispatches a
//bi-directional streaming RPC for sending payments through the Lightning
//Network. A single RPC invocation creates a persistent bi-directional
//stream allowing clients to rapidly send payments through the Lightning
//Network with a single persistent connection.
SendPayment(Lightning_SendPaymentServer) error
//*
//SendPaymentSync is the synchronous non-streaming version of SendPayment.

View File

@ -503,12 +503,15 @@ service Lightning {
}
/** lncli: `sendpayment`
SendPayment dispatches a bi-directional streaming RPC for sending payments
through the Lightning Network. A single RPC invocation creates a persistent
bi-directional stream allowing clients to rapidly send payments through the
Lightning Network with a single persistent connection.
Deprecated, use routerrpc.SendPayment. SendPayment dispatches a
bi-directional streaming RPC for sending payments through the Lightning
Network. A single RPC invocation creates a persistent bi-directional
stream allowing clients to rapidly send payments through the Lightning
Network with a single persistent connection.
*/
rpc SendPayment (stream SendRequest) returns (stream SendResponse);
rpc SendPayment (stream SendRequest) returns (stream SendResponse) {
option deprecated = true;
}
/**
SendPaymentSync is the synchronous non-streaming version of SendPayment.

View File

@ -61,6 +61,6 @@ backend = btcd
endif
# Construct the integration test command with the added build flags.
ITEST_TAGS := $(DEV_TAGS) rpctest chainrpc walletrpc signrpc invoicesrpc autopilotrpc routerrpc watchtowerrpc $(backend)
ITEST_TAGS := $(DEV_TAGS) rpctest chainrpc walletrpc signrpc invoicesrpc autopilotrpc watchtowerrpc $(backend)
ITEST := rm lntest/itest/*.log; date; $(GOTEST) -v ./lntest/itest -tags="$(ITEST_TAGS)" $(TEST_FLAGS) -logoutput -goroutinedump

View File

@ -53,14 +53,14 @@ Similar to lnd, subservers can be conditionally compiled with the build by
setting the tags argument:
```
make ios tags="routerrpc"
make ios
```
To support subservers that have APIs with name conflicts, pass the "prefix"
flag. This will add the subserver name as a prefix to each method name:
```
make ios tags="routerrpc" prefix=1
make ios prefix=1
```
### API docs

View File

@ -219,21 +219,9 @@ func (s *subRPCServerConfigs) PopulateDependencies(cc *chainControl,
reflect.ValueOf(genInvoiceFeatures),
)
// RouterRPC isn't conditionally compiled and doesn't need to be
// populated using reflection.
case *routerrpc.Config:
subCfgValue := extractReflectValue(subCfg)
subCfgValue.FieldByName("NetworkDir").Set(
reflect.ValueOf(networkDir),
)
subCfgValue.FieldByName("MacService").Set(
reflect.ValueOf(macService),
)
subCfgValue.FieldByName("Router").Set(
reflect.ValueOf(chanRouter),
)
subCfgValue.FieldByName("RouterBackend").Set(
reflect.ValueOf(routerBackend),
)
case *watchtowerrpc.Config:
subCfgValue := extractReflectValue(subCfg)
@ -266,6 +254,12 @@ func (s *subRPCServerConfigs) PopulateDependencies(cc *chainControl,
}
}
// Populate routerrpc dependencies.
s.RouterRPC.NetworkDir = networkDir
s.RouterRPC.MacService = macService
s.RouterRPC.Router = chanRouter
s.RouterRPC.RouterBackend = routerBackend
return nil
}