diff --git a/go.mod b/go.mod index 3f8191287507f37ec18ef8492e12cc6d1f93d3bb..1ee3e6a4c658f0d806ad403adf0cef1bf025c118 100644 --- a/go.mod +++ b/go.mod @@ -26,12 +26,12 @@ require ( github.com/go-sql-driver/mysql v1.4.1 // indirect github.com/gobuffalo/packr v1.30.1 github.com/gofrs/uuid v0.0.0-20190510204422-abfe1881e60e - github.com/golang/protobuf v1.3.3 + github.com/golang/protobuf v1.3.4 github.com/gorilla/handlers v1.4.2 github.com/gorilla/mux v1.7.4 github.com/gorilla/websocket v1.4.1 github.com/grpc-ecosystem/grpc-gateway v1.13.0 - github.com/heroiclabs/nakama-common v1.3.0 + github.com/heroiclabs/nakama-common v1.3.1 github.com/jackc/fake v0.0.0-20150926172116-812a484cc733 // indirect github.com/jackc/pgx v3.5.0+incompatible github.com/jmhodges/levigo v1.0.0 // indirect @@ -55,11 +55,11 @@ require ( go.uber.org/multierr v1.1.0 // indirect go.uber.org/zap v1.10.0 golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d - golang.org/x/net v0.0.0-20200226051749-491c5fce7268 // indirect + golang.org/x/net v0.0.0-20200226121028-0de0cce0169b // indirect golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae // indirect google.golang.org/api v0.10.0 // indirect google.golang.org/appengine v1.6.2 // indirect - google.golang.org/genproto v0.0.0-20200225123651-fc8f55426688 + google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c google.golang.org/grpc v1.27.1 gopkg.in/gorp.v1 v1.7.2 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0-20190411184413-94d9e492cc53 diff --git a/go.sum b/go.sum index 72c5c6e363ee8b11aba5d513cb647f6d8c5afad6..044dc7563dd87dc9fac6d3b9fd6e856c3bc56dc7 100644 --- a/go.sum +++ b/go.sum @@ -108,6 +108,8 @@ github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -141,8 +143,8 @@ github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heroiclabs/nakama-common v1.3.0 h1:YjhVIFxt6HEcHeMVcACBQ0pwrG9Ts9LRxo88h9/uWO0= -github.com/heroiclabs/nakama-common v1.3.0/go.mod h1:e8eLcnHLZnElf9yvJqrLGTbvnxXQJRLVGebx/5zRXc4= +github.com/heroiclabs/nakama-common v1.3.1 h1:M2pBuJtvh1QLjXZtHuwTGpRTfGgpNWDGF2y6SOgl9t4= +github.com/heroiclabs/nakama-common v1.3.1/go.mod h1:0lw1qUs5FhJlox1WsEPdODRsdvfZ7Q1c/2jxkbeL++M= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= @@ -296,8 +298,8 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226051749-491c5fce7268 h1:fnuNgko6vrkrxuKfTMd+0eOz50ziv+Wi+t38KUT3j+E= -golang.org/x/net v0.0.0-20200226051749-491c5fce7268/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= @@ -369,11 +371,9 @@ google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190905072037-92dd089d5514 h1:oFSK4421fpCKRrpzIpybyBVWyht05NegY9+L/3TLAZs= -google.golang.org/genproto v0.0.0-20190905072037-92dd089d5514/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20200225123651-fc8f55426688 h1:1+0Z5cgv1eDXJD9z2tdQF9PSSQnJXwism490hJydMRI= -google.golang.org/genproto v0.0.0-20200225123651-fc8f55426688/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c h1:xFOdgVPpeowWAH0MJ5i0XMp+3yWiWamMtN/kx9xThIQ= +google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1 h1:j6XxA85m/6txkUCHvzlV5f+HBNl/1r5cZ2A/3IEFOO8= diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go index 1ded05bbe71bf85a095f53f05b66fbed05a44e18..d371d56974b5f6c9accf45d30342c8319cbef387 100644 --- a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go @@ -1376,8 +1376,8 @@ type FileOptions struct { // determining the namespace. PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` // Use this option to change the namespace of php generated metadata classes. - // Default is empty. When this option is empty, the proto file name will be used - // for determining the namespace. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"` // Use this option to change the package of ruby generated classes. Default // is empty. When this option is not set, the package name will be used for @@ -1627,7 +1627,7 @@ type MessageOptions struct { // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementions still need to work as + // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. // // NOTE: Do not set the option in .proto files. Always use the maps syntax @@ -2377,7 +2377,7 @@ type SourceCodeInfo struct { // beginning of the "extend" block and is shared by all extensions within // the block. // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines + // does not mean that it is a descendant. For example, a "group" defines // both a type and a field in a single declaration. Thus, the locations // corresponding to the type and field and their components will overlap. // - Code which tries to interpret locations should probably be designed to @@ -2718,7 +2718,9 @@ func init() { proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation") } -func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor_e5baabe45344a177) } +func init() { + proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor_e5baabe45344a177) +} var fileDescriptor_e5baabe45344a177 = []byte{ // 2589 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto index ed08fcbc5429c346ab7f4e7d13f6da5cba1bfde5..a2102d7aa9960460194b61bde7c5e2e870f13166 100644 --- a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto @@ -40,6 +40,7 @@ syntax = "proto2"; package google.protobuf; + option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor"; option java_package = "com.google.protobuf"; option java_outer_classname = "DescriptorProtos"; @@ -59,8 +60,8 @@ message FileDescriptorSet { // Describes a complete .proto file. message FileDescriptorProto { - optional string name = 1; // file name, relative to root of source tree - optional string package = 2; // e.g. "foo", "foo.bar", etc. + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. // Names of files imported by this file. repeated string dependency = 3; @@ -100,8 +101,8 @@ message DescriptorProto { repeated EnumDescriptorProto enum_type = 4; message ExtensionRange { - optional int32 start = 1; - optional int32 end = 2; + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. optional ExtensionRangeOptions options = 3; } @@ -115,8 +116,8 @@ message DescriptorProto { // fields or extension ranges in the same message. Reserved ranges may // not overlap. message ReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Exclusive. + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. } repeated ReservedRange reserved_range = 9; // Reserved field names, which may not be used by fields in the same message. @@ -137,42 +138,42 @@ message FieldDescriptorProto { enum Type { // 0 is reserved for errors. // Order is weird for historical reasons. - TYPE_DOUBLE = 1; - TYPE_FLOAT = 2; + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if // negative values are likely. - TYPE_INT64 = 3; - TYPE_UINT64 = 4; + TYPE_INT64 = 3; + TYPE_UINT64 = 4; // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if // negative values are likely. - TYPE_INT32 = 5; - TYPE_FIXED64 = 6; - TYPE_FIXED32 = 7; - TYPE_BOOL = 8; - TYPE_STRING = 9; + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; // Tag-delimited aggregate. // Group type is deprecated and not supported in proto3. However, Proto3 // implementations should still be able to parse the group wire format and // treat group fields as unknown fields. - TYPE_GROUP = 10; - TYPE_MESSAGE = 11; // Length-delimited aggregate. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. // New in version 2. - TYPE_BYTES = 12; - TYPE_UINT32 = 13; - TYPE_ENUM = 14; - TYPE_SFIXED32 = 15; - TYPE_SFIXED64 = 16; - TYPE_SINT32 = 17; // Uses ZigZag encoding. - TYPE_SINT64 = 18; // Uses ZigZag encoding. - }; + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + } enum Label { // 0 is reserved for errors - LABEL_OPTIONAL = 1; - LABEL_REQUIRED = 2; - LABEL_REPEATED = 3; - }; + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + } optional string name = 1; optional int32 number = 3; @@ -234,8 +235,8 @@ message EnumDescriptorProto { // is inclusive such that it can appropriately represent the entire int32 // domain. message EnumReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Inclusive. + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. } // Range of reserved numeric values. Reserved numeric values may not be used @@ -276,9 +277,9 @@ message MethodDescriptorProto { optional MethodOptions options = 4; // Identifies if client streams multiple client messages - optional bool client_streaming = 5 [default=false]; + optional bool client_streaming = 5 [default = false]; // Identifies if server streams multiple server messages - optional bool server_streaming = 6 [default=false]; + optional bool server_streaming = 6 [default = false]; } @@ -314,7 +315,6 @@ message MethodDescriptorProto { // If this turns out to be popular, a web service will be set up // to automatically assign option numbers. - message FileOptions { // Sets the Java package where classes generated from this .proto will be @@ -337,7 +337,7 @@ message FileOptions { // named by java_outer_classname. However, the outer class will still be // generated to contain the file's getDescriptor() method as well as any // top-level extensions defined in the file. - optional bool java_multiple_files = 10 [default=false]; + optional bool java_multiple_files = 10 [default = false]; // This option does nothing. optional bool java_generate_equals_and_hash = 20 [deprecated=true]; @@ -348,17 +348,17 @@ message FileOptions { // Message reflection will do the same. // However, an extension field still accepts non-UTF-8 byte sequences. // This option has no effect on when used with the lite runtime. - optional bool java_string_check_utf8 = 27 [default=false]; + optional bool java_string_check_utf8 = 27 [default = false]; // Generated classes can be optimized for speed or code size. enum OptimizeMode { - SPEED = 1; // Generate complete code for parsing, serialization, - // etc. - CODE_SIZE = 2; // Use ReflectionOps to implement these methods. - LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. } - optional OptimizeMode optimize_for = 9 [default=SPEED]; + optional OptimizeMode optimize_for = 9 [default = SPEED]; // Sets the Go package where structs generated from this .proto will be // placed. If omitted, the Go package will be derived from the following: @@ -369,6 +369,7 @@ message FileOptions { + // Should generic services be generated in each language? "Generic" services // are not specific to any particular RPC system. They are generated by the // main code generators in each language (without additional plugins). @@ -379,20 +380,20 @@ message FileOptions { // that generate code specific to your particular RPC system. Therefore, // these default to false. Old code which depends on generic services should // explicitly set them to true. - optional bool cc_generic_services = 16 [default=false]; - optional bool java_generic_services = 17 [default=false]; - optional bool py_generic_services = 18 [default=false]; - optional bool php_generic_services = 42 [default=false]; + optional bool cc_generic_services = 16 [default = false]; + optional bool java_generic_services = 17 [default = false]; + optional bool py_generic_services = 18 [default = false]; + optional bool php_generic_services = 42 [default = false]; // Is this file deprecated? // Depending on the target platform, this can emit Deprecated annotations // for everything in the file, or it will be completely ignored; in the very // least, this is a formalization for deprecating files. - optional bool deprecated = 23 [default=false]; + optional bool deprecated = 23 [default = false]; // Enables the use of arenas for the proto messages in this file. This applies // only to generated classes for C++. - optional bool cc_enable_arenas = 31 [default=false]; + optional bool cc_enable_arenas = 31 [default = false]; // Sets the objective c class prefix which is prepended to all objective c @@ -417,10 +418,9 @@ message FileOptions { // determining the namespace. optional string php_namespace = 41; - // Use this option to change the namespace of php generated metadata classes. - // Default is empty. When this option is empty, the proto file name will be used - // for determining the namespace. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. optional string php_metadata_namespace = 44; // Use this option to change the package of ruby generated classes. Default @@ -428,6 +428,7 @@ message FileOptions { // determining the ruby package. optional string ruby_package = 45; + // The parser stores options it doesn't recognize here. // See the documentation for the "Options" section above. repeated UninterpretedOption uninterpreted_option = 999; @@ -458,18 +459,18 @@ message MessageOptions { // // Because this is an option, the above two restrictions are not enforced by // the protocol compiler. - optional bool message_set_wire_format = 1 [default=false]; + optional bool message_set_wire_format = 1 [default = false]; // Disables the generation of the standard "descriptor()" accessor, which can // conflict with a field of the same name. This is meant to make migration // from proto1 easier; new code should avoid fields named "descriptor". - optional bool no_standard_descriptor_accessor = 2 [default=false]; + optional bool no_standard_descriptor_accessor = 2 [default = false]; // Is this message deprecated? // Depending on the target platform, this can emit Deprecated annotations // for the message, or it will be completely ignored; in the very least, // this is a formalization for deprecating messages. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; // Whether the message is an automatically generated map entry type for the // maps field. @@ -486,7 +487,7 @@ message MessageOptions { // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementions still need to work as + // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. // // NOTE: Do not set the option in .proto files. Always use the maps syntax @@ -497,6 +498,7 @@ message MessageOptions { reserved 8; // javalite_serializable reserved 9; // javanano_as_lite + // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -576,16 +578,16 @@ message FieldOptions { // implementation must either *always* check its required fields, or *never* // check its required fields, regardless of whether or not the message has // been parsed. - optional bool lazy = 5 [default=false]; + optional bool lazy = 5 [default = false]; // Is this field deprecated? // Depending on the target platform, this can emit Deprecated annotations // for accessors, or it will be completely ignored; in the very least, this // is a formalization for deprecating fields. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; // For Google-internal migration only. Do not use. - optional bool weak = 10 [default=false]; + optional bool weak = 10 [default = false]; // The parser stores options it doesn't recognize here. See above. @@ -615,7 +617,7 @@ message EnumOptions { // Depending on the target platform, this can emit Deprecated annotations // for the enum, or it will be completely ignored; in the very least, this // is a formalization for deprecating enums. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; reserved 5; // javanano_as_lite @@ -631,7 +633,7 @@ message EnumValueOptions { // Depending on the target platform, this can emit Deprecated annotations // for the enum value, or it will be completely ignored; in the very least, // this is a formalization for deprecating enum values. - optional bool deprecated = 1 [default=false]; + optional bool deprecated = 1 [default = false]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -651,7 +653,7 @@ message ServiceOptions { // Depending on the target platform, this can emit Deprecated annotations // for the service, or it will be completely ignored; in the very least, // this is a formalization for deprecating services. - optional bool deprecated = 33 [default=false]; + optional bool deprecated = 33 [default = false]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -671,18 +673,18 @@ message MethodOptions { // Depending on the target platform, this can emit Deprecated annotations // for the method, or it will be completely ignored; in the very least, // this is a formalization for deprecating methods. - optional bool deprecated = 33 [default=false]; + optional bool deprecated = 33 [default = false]; // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, // or neither? HTTP based RPC implementation may choose GET verb for safe // methods, and PUT verb for idempotent methods instead of the default POST. enum IdempotencyLevel { IDEMPOTENCY_UNKNOWN = 0; - NO_SIDE_EFFECTS = 1; // implies idempotent - IDEMPOTENT = 2; // idempotent, but may have side effects + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects } - optional IdempotencyLevel idempotency_level = - 34 [default=IDEMPOTENCY_UNKNOWN]; + optional IdempotencyLevel idempotency_level = 34 + [default = IDEMPOTENCY_UNKNOWN]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -763,7 +765,7 @@ message SourceCodeInfo { // beginning of the "extend" block and is shared by all extensions within // the block. // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines + // does not mean that it is a descendant. For example, a "group" defines // both a type and a field in a single declaration. Thus, the locations // corresponding to the type and field and their components will overlap. // - Code which tries to interpret locations should probably be designed to @@ -794,14 +796,14 @@ message SourceCodeInfo { // [ 4, 3, 2, 7 ] // this path refers to the whole field declaration (from the beginning // of the label to the terminating semicolon). - repeated int32 path = 1 [packed=true]; + repeated int32 path = 1 [packed = true]; // Always has exactly three or four elements: start line, start column, // end line (optional, otherwise assumed same as start line), end column. // These are packed into a single field for efficiency. Note that line // and column numbers are zero-based -- typically you will want to add // 1 to each before displaying to a user. - repeated int32 span = 2 [packed=true]; + repeated int32 span = 2 [packed = true]; // If this SourceCodeInfo represents a complete declaration, these are any // comments appearing before and after the declaration which appear to be @@ -866,7 +868,7 @@ message GeneratedCodeInfo { message Annotation { // Identifies the element in the original source .proto file. This field // is formatted the same as SourceCodeInfo.Location.path. - repeated int32 path = 1 [packed=true]; + repeated int32 path = 1 [packed = true]; // Identifies the filesystem path to the original source .proto. optional string source_file = 2; diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go index 78ee5233495f7aa011e05f592b30c5a609a600bd..7b0ad1ad86cd00d1a90e068e3b144d2260e24032 100644 --- a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go @@ -102,7 +102,8 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // type Any struct { // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. The last segment of the URL's path must represent + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent // the fully qualified name of the type (as in // `path/google.protobuf.Duration`). The name should be in a canonical form // (e.g., leading "." is not accepted). @@ -181,7 +182,9 @@ func init() { proto.RegisterType((*Any)(nil), "google.protobuf.Any") } -func init() { proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_b53526c13ae22eb4) } +func init() { + proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_b53526c13ae22eb4) +} var fileDescriptor_b53526c13ae22eb4 = []byte{ // 185 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.proto b/vendor/github.com/golang/protobuf/ptypes/any/any.proto index 49329425583def762cb0e27432ce8463f41bc27f..c9be85416736c6bfb51e8f386535de45076ecdba 100644 --- a/vendor/github.com/golang/protobuf/ptypes/any/any.proto +++ b/vendor/github.com/golang/protobuf/ptypes/any/any.proto @@ -121,7 +121,8 @@ option objc_class_prefix = "GPB"; // message Any { // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. The last segment of the URL's path must represent + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent // the fully qualified name of the type (as in // `path/google.protobuf.Duration`). The name should be in a canonical form // (e.g., leading "." is not accepted). diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go index 0d681ee21a0682063ae5a0e9dcb599e8934098c7..58b0786990d17051d38c61c9228b1be5e8df3c3d 100644 --- a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go @@ -41,7 +41,7 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // if (duration.seconds < 0 && duration.nanos > 0) { // duration.seconds += 1; // duration.nanos -= 1000000000; -// } else if (durations.seconds > 0 && duration.nanos < 0) { +// } else if (duration.seconds > 0 && duration.nanos < 0) { // duration.seconds -= 1; // duration.nanos += 1000000000; // } @@ -142,7 +142,9 @@ func init() { proto.RegisterType((*Duration)(nil), "google.protobuf.Duration") } -func init() { proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_23597b2ebd7ac6c5) } +func init() { + proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_23597b2ebd7ac6c5) +} var fileDescriptor_23597b2ebd7ac6c5 = []byte{ // 190 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto index 975fce41aae054aa4c20c1481db60d1333d6e7b6..99cb102c353fa02e87e7945cac72159464c4193b 100644 --- a/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto +++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.proto @@ -61,7 +61,7 @@ option objc_class_prefix = "GPB"; // if (duration.seconds < 0 && duration.nanos > 0) { // duration.seconds += 1; // duration.nanos -= 1000000000; -// } else if (durations.seconds > 0 && duration.nanos < 0) { +// } else if (duration.seconds > 0 && duration.nanos < 0) { // duration.seconds -= 1; // duration.nanos += 1000000000; // } @@ -101,7 +101,6 @@ option objc_class_prefix = "GPB"; // // message Duration { - // Signed seconds of the span of time. Must be from -315,576,000,000 // to +315,576,000,000 inclusive. Note: these bounds are computed from: // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years diff --git a/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go b/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go index b4eb03eccf730380f7d9632369d3ba8a5ea1b55e..6bd9f67480a4d453a6fea597a779a0ca8d706c3c 100644 --- a/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go @@ -66,7 +66,9 @@ func init() { proto.RegisterType((*Empty)(nil), "google.protobuf.Empty") } -func init() { proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_900544acb223d5b8) } +func init() { + proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_900544acb223d5b8) +} var fileDescriptor_900544acb223d5b8 = []byte{ // 148 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go b/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go index 33daa73dd289a679b3e59438885274b564cd99b5..d82d6176b514b796b9ccccec5a942844a51d8d02 100644 --- a/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/struct/struct.pb.go @@ -302,7 +302,9 @@ func init() { proto.RegisterType((*ListValue)(nil), "google.protobuf.ListValue") } -func init() { proto.RegisterFile("google/protobuf/struct.proto", fileDescriptor_df322afd6c9fb402) } +func init() { + proto.RegisterFile("google/protobuf/struct.proto", fileDescriptor_df322afd6c9fb402) +} var fileDescriptor_df322afd6c9fb402 = []byte{ // 417 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto b/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto index 7d7808e7fbb697a71795e0ce6b955f04c75639a7..ed990e31d9590ef824a9300d8b79bb6f6909801f 100644 --- a/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto +++ b/vendor/github.com/golang/protobuf/ptypes/struct/struct.proto @@ -40,7 +40,6 @@ option java_outer_classname = "StructProto"; option java_multiple_files = true; option objc_class_prefix = "GPB"; - // `Struct` represents a structured data value, consisting of fields // which map to dynamically typed values. In some languages, `Struct` // might be supported by a native representation. For example, in diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go index 31cd846de99170eda9a84abd8bf5b69864863c41..7a3b1e40e291c04f858eccb6f9704fe236877c76 100644 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go @@ -20,17 +20,19 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package -// A Timestamp represents a point in time independent of any time zone -// or calendar, represented as seconds and fractions of seconds at -// nanosecond resolution in UTC Epoch time. It is encoded using the -// Proleptic Gregorian Calendar which extends the Gregorian calendar -// backwards to year one. It is encoded assuming all minutes are 60 -// seconds long, i.e. leap seconds are "smeared" so that no leap second -// table is needed for interpretation. Range is from -// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. -// By restricting to that range, we ensure that we can convert to -// and from RFC 3339 date strings. -// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. // // # Examples // @@ -91,12 +93,14 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // 01:30 UTC on January 15, 2017. // // In JavaScript, one can convert a Date object to this format using the -// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) // method. In Python, a standard `datetime.datetime` object can be converted -// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) -// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one -// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( -// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. // // @@ -160,7 +164,9 @@ func init() { proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp") } -func init() { proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) } +func init() { + proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) +} var fileDescriptor_292007bbfe81227e = []byte{ // 191 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto index eafb3fa03a67a7a8046e7ca485bee71b26035da6..cd357864a9e47d775604ef2566eb8a4aac7436ba 100644 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto @@ -40,17 +40,19 @@ option java_outer_classname = "TimestampProto"; option java_multiple_files = true; option objc_class_prefix = "GPB"; -// A Timestamp represents a point in time independent of any time zone -// or calendar, represented as seconds and fractions of seconds at -// nanosecond resolution in UTC Epoch time. It is encoded using the -// Proleptic Gregorian Calendar which extends the Gregorian calendar -// backwards to year one. It is encoded assuming all minutes are 60 -// seconds long, i.e. leap seconds are "smeared" so that no leap second -// table is needed for interpretation. Range is from -// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. -// By restricting to that range, we ensure that we can convert to -// and from RFC 3339 date strings. -// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. // // # Examples // @@ -111,17 +113,18 @@ option objc_class_prefix = "GPB"; // 01:30 UTC on January 15, 2017. // // In JavaScript, one can convert a Date object to this format using the -// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) // method. In Python, a standard `datetime.datetime` object can be converted -// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) -// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one -// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( -// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. // // message Timestamp { - // Represents seconds of UTC time since Unix epoch // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to // 9999-12-31T23:59:59Z inclusive. diff --git a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go index add19a1adb03829aeecfa03d53667b8f27885d4d..968ff318d1612a55b40d0e934b565904d543c22b 100644 --- a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go +++ b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go @@ -437,7 +437,9 @@ func init() { proto.RegisterType((*BytesValue)(nil), "google.protobuf.BytesValue") } -func init() { proto.RegisterFile("google/protobuf/wrappers.proto", fileDescriptor_5377b62bda767935) } +func init() { + proto.RegisterFile("google/protobuf/wrappers.proto", fileDescriptor_5377b62bda767935) +} var fileDescriptor_5377b62bda767935 = []byte{ // 259 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto index 01947639ac4e4aa266184d3c2f5537ee73901427..9ee41e384ac7dca4b41d5cbb1ab0ac163c6dec0a 100644 --- a/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto +++ b/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.proto @@ -32,6 +32,11 @@ // for embedding primitives in the `google.protobuf.Any` type and for places // where we need to distinguish between the absence of a primitive // typed field and its default value. +// +// These wrappers have no meaningful use within repeated fields as they lack +// the ability to detect presence on individual elements. +// These wrappers have no meaningful use within a map or a oneof since +// individual entries of a map or fields of a oneof can already detect presence. syntax = "proto3"; diff --git a/vendor/github.com/heroiclabs/nakama-common/api/api.pb.go b/vendor/github.com/heroiclabs/nakama-common/api/api.pb.go index ad885083ce43ca4a6e2a4f5d04b522bb5ae62004..30e6386ad324e1f65fd0cf3d670ba8a76cbbbfb3 100644 --- a/vendor/github.com/heroiclabs/nakama-common/api/api.pb.go +++ b/vendor/github.com/heroiclabs/nakama-common/api/api.pb.go @@ -55,7 +55,7 @@ func (x Friend_State) String() string { } func (Friend_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{29, 0} + return fileDescriptor_1b40cafcd4234784, []int{31, 0} } // The group role status. @@ -91,7 +91,7 @@ func (x GroupUserList_GroupUser_State) String() string { } func (GroupUserList_GroupUser_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{34, 0, 0} + return fileDescriptor_1b40cafcd4234784, []int{36, 0, 0} } // The group role status. @@ -127,7 +127,7 @@ func (x UserGroupList_UserGroup_State) String() string { } func (UserGroupList_UserGroup_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{76, 0, 0} + return fileDescriptor_1b40cafcd4234784, []int{78, 0, 0} } // A user with additional account details. Always the current user. @@ -425,6 +425,56 @@ func (m *AccountFacebook) GetVars() map[string]string { return nil } +// Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink. +type AccountFacebookInstantGame struct { + // The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration) + SignedPlayerInfo string `protobuf:"bytes,1,opt,name=signed_player_info,json=signedPlayerInfo,proto3" json:"signed_player_info,omitempty"` + // Extra information that will be bundled in the session token. + Vars map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountFacebookInstantGame) Reset() { *m = AccountFacebookInstantGame{} } +func (m *AccountFacebookInstantGame) String() string { return proto.CompactTextString(m) } +func (*AccountFacebookInstantGame) ProtoMessage() {} +func (*AccountFacebookInstantGame) Descriptor() ([]byte, []int) { + return fileDescriptor_1b40cafcd4234784, []int{5} +} + +func (m *AccountFacebookInstantGame) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountFacebookInstantGame.Unmarshal(m, b) +} +func (m *AccountFacebookInstantGame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountFacebookInstantGame.Marshal(b, m, deterministic) +} +func (m *AccountFacebookInstantGame) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountFacebookInstantGame.Merge(m, src) +} +func (m *AccountFacebookInstantGame) XXX_Size() int { + return xxx_messageInfo_AccountFacebookInstantGame.Size(m) +} +func (m *AccountFacebookInstantGame) XXX_DiscardUnknown() { + xxx_messageInfo_AccountFacebookInstantGame.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountFacebookInstantGame proto.InternalMessageInfo + +func (m *AccountFacebookInstantGame) GetSignedPlayerInfo() string { + if m != nil { + return m.SignedPlayerInfo + } + return "" +} + +func (m *AccountFacebookInstantGame) GetVars() map[string]string { + if m != nil { + return m.Vars + } + return nil +} + // Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. type AccountGameCenter struct { // Player ID (generated by GameCenter). @@ -450,7 +500,7 @@ func (m *AccountGameCenter) Reset() { *m = AccountGameCenter{} } func (m *AccountGameCenter) String() string { return proto.CompactTextString(m) } func (*AccountGameCenter) ProtoMessage() {} func (*AccountGameCenter) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{5} + return fileDescriptor_1b40cafcd4234784, []int{6} } func (m *AccountGameCenter) XXX_Unmarshal(b []byte) error { @@ -535,7 +585,7 @@ func (m *AccountGoogle) Reset() { *m = AccountGoogle{} } func (m *AccountGoogle) String() string { return proto.CompactTextString(m) } func (*AccountGoogle) ProtoMessage() {} func (*AccountGoogle) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{6} + return fileDescriptor_1b40cafcd4234784, []int{7} } func (m *AccountGoogle) XXX_Unmarshal(b []byte) error { @@ -585,7 +635,7 @@ func (m *AccountSteam) Reset() { *m = AccountSteam{} } func (m *AccountSteam) String() string { return proto.CompactTextString(m) } func (*AccountSteam) ProtoMessage() {} func (*AccountSteam) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{7} + return fileDescriptor_1b40cafcd4234784, []int{8} } func (m *AccountSteam) XXX_Unmarshal(b []byte) error { @@ -635,7 +685,7 @@ func (m *AddFriendsRequest) Reset() { *m = AddFriendsRequest{} } func (m *AddFriendsRequest) String() string { return proto.CompactTextString(m) } func (*AddFriendsRequest) ProtoMessage() {} func (*AddFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{8} + return fileDescriptor_1b40cafcd4234784, []int{9} } func (m *AddFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -685,7 +735,7 @@ func (m *AddGroupUsersRequest) Reset() { *m = AddGroupUsersRequest{} } func (m *AddGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*AddGroupUsersRequest) ProtoMessage() {} func (*AddGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{9} + return fileDescriptor_1b40cafcd4234784, []int{10} } func (m *AddGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -737,7 +787,7 @@ func (m *AuthenticateCustomRequest) Reset() { *m = AuthenticateCustomReq func (m *AuthenticateCustomRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateCustomRequest) ProtoMessage() {} func (*AuthenticateCustomRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{10} + return fileDescriptor_1b40cafcd4234784, []int{11} } func (m *AuthenticateCustomRequest) XXX_Unmarshal(b []byte) error { @@ -796,7 +846,7 @@ func (m *AuthenticateDeviceRequest) Reset() { *m = AuthenticateDeviceReq func (m *AuthenticateDeviceRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateDeviceRequest) ProtoMessage() {} func (*AuthenticateDeviceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{11} + return fileDescriptor_1b40cafcd4234784, []int{12} } func (m *AuthenticateDeviceRequest) XXX_Unmarshal(b []byte) error { @@ -855,7 +905,7 @@ func (m *AuthenticateEmailRequest) Reset() { *m = AuthenticateEmailReque func (m *AuthenticateEmailRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateEmailRequest) ProtoMessage() {} func (*AuthenticateEmailRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{12} + return fileDescriptor_1b40cafcd4234784, []int{13} } func (m *AuthenticateEmailRequest) XXX_Unmarshal(b []byte) error { @@ -916,7 +966,7 @@ func (m *AuthenticateFacebookRequest) Reset() { *m = AuthenticateFaceboo func (m *AuthenticateFacebookRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateFacebookRequest) ProtoMessage() {} func (*AuthenticateFacebookRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{13} + return fileDescriptor_1b40cafcd4234784, []int{14} } func (m *AuthenticateFacebookRequest) XXX_Unmarshal(b []byte) error { @@ -965,6 +1015,67 @@ func (m *AuthenticateFacebookRequest) GetSync() *wrappers.BoolValue { return nil } +// Authenticate against the server with Facebook Instant Game token. +type AuthenticateFacebookInstantGameRequest struct { + // The Facebook Instant Game account details. + Account *AccountFacebookInstantGame `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + // Register the account if the user does not already exist. + Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"` + // Set the username on the account at register. Must be unique. + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AuthenticateFacebookInstantGameRequest) Reset() { + *m = AuthenticateFacebookInstantGameRequest{} +} +func (m *AuthenticateFacebookInstantGameRequest) String() string { return proto.CompactTextString(m) } +func (*AuthenticateFacebookInstantGameRequest) ProtoMessage() {} +func (*AuthenticateFacebookInstantGameRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1b40cafcd4234784, []int{15} +} + +func (m *AuthenticateFacebookInstantGameRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AuthenticateFacebookInstantGameRequest.Unmarshal(m, b) +} +func (m *AuthenticateFacebookInstantGameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AuthenticateFacebookInstantGameRequest.Marshal(b, m, deterministic) +} +func (m *AuthenticateFacebookInstantGameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthenticateFacebookInstantGameRequest.Merge(m, src) +} +func (m *AuthenticateFacebookInstantGameRequest) XXX_Size() int { + return xxx_messageInfo_AuthenticateFacebookInstantGameRequest.Size(m) +} +func (m *AuthenticateFacebookInstantGameRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AuthenticateFacebookInstantGameRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthenticateFacebookInstantGameRequest proto.InternalMessageInfo + +func (m *AuthenticateFacebookInstantGameRequest) GetAccount() *AccountFacebookInstantGame { + if m != nil { + return m.Account + } + return nil +} + +func (m *AuthenticateFacebookInstantGameRequest) GetCreate() *wrappers.BoolValue { + if m != nil { + return m.Create + } + return nil +} + +func (m *AuthenticateFacebookInstantGameRequest) GetUsername() string { + if m != nil { + return m.Username + } + return "" +} + // Authenticate against the server with Apple's Game Center. type AuthenticateGameCenterRequest struct { // The Game Center account details. @@ -982,7 +1093,7 @@ func (m *AuthenticateGameCenterRequest) Reset() { *m = AuthenticateGameC func (m *AuthenticateGameCenterRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateGameCenterRequest) ProtoMessage() {} func (*AuthenticateGameCenterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{14} + return fileDescriptor_1b40cafcd4234784, []int{16} } func (m *AuthenticateGameCenterRequest) XXX_Unmarshal(b []byte) error { @@ -1041,7 +1152,7 @@ func (m *AuthenticateGoogleRequest) Reset() { *m = AuthenticateGoogleReq func (m *AuthenticateGoogleRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateGoogleRequest) ProtoMessage() {} func (*AuthenticateGoogleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{15} + return fileDescriptor_1b40cafcd4234784, []int{17} } func (m *AuthenticateGoogleRequest) XXX_Unmarshal(b []byte) error { @@ -1100,7 +1211,7 @@ func (m *AuthenticateSteamRequest) Reset() { *m = AuthenticateSteamReque func (m *AuthenticateSteamRequest) String() string { return proto.CompactTextString(m) } func (*AuthenticateSteamRequest) ProtoMessage() {} func (*AuthenticateSteamRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{16} + return fileDescriptor_1b40cafcd4234784, []int{18} } func (m *AuthenticateSteamRequest) XXX_Unmarshal(b []byte) error { @@ -1157,7 +1268,7 @@ func (m *BanGroupUsersRequest) Reset() { *m = BanGroupUsersRequest{} } func (m *BanGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*BanGroupUsersRequest) ProtoMessage() {} func (*BanGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{17} + return fileDescriptor_1b40cafcd4234784, []int{19} } func (m *BanGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -1207,7 +1318,7 @@ func (m *BlockFriendsRequest) Reset() { *m = BlockFriendsRequest{} } func (m *BlockFriendsRequest) String() string { return proto.CompactTextString(m) } func (*BlockFriendsRequest) ProtoMessage() {} func (*BlockFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{18} + return fileDescriptor_1b40cafcd4234784, []int{20} } func (m *BlockFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -1279,7 +1390,7 @@ func (m *ChannelMessage) Reset() { *m = ChannelMessage{} } func (m *ChannelMessage) String() string { return proto.CompactTextString(m) } func (*ChannelMessage) ProtoMessage() {} func (*ChannelMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{19} + return fileDescriptor_1b40cafcd4234784, []int{21} } func (m *ChannelMessage) XXX_Unmarshal(b []byte) error { @@ -1408,7 +1519,7 @@ func (m *ChannelMessageList) Reset() { *m = ChannelMessageList{} } func (m *ChannelMessageList) String() string { return proto.CompactTextString(m) } func (*ChannelMessageList) ProtoMessage() {} func (*ChannelMessageList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{20} + return fileDescriptor_1b40cafcd4234784, []int{22} } func (m *ChannelMessageList) XXX_Unmarshal(b []byte) error { @@ -1473,7 +1584,7 @@ func (m *CreateGroupRequest) Reset() { *m = CreateGroupRequest{} } func (m *CreateGroupRequest) String() string { return proto.CompactTextString(m) } func (*CreateGroupRequest) ProtoMessage() {} func (*CreateGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{21} + return fileDescriptor_1b40cafcd4234784, []int{23} } func (m *CreateGroupRequest) XXX_Unmarshal(b []byte) error { @@ -1551,7 +1662,7 @@ func (m *DeleteFriendsRequest) Reset() { *m = DeleteFriendsRequest{} } func (m *DeleteFriendsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteFriendsRequest) ProtoMessage() {} func (*DeleteFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{22} + return fileDescriptor_1b40cafcd4234784, []int{24} } func (m *DeleteFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -1599,7 +1710,7 @@ func (m *DeleteGroupRequest) Reset() { *m = DeleteGroupRequest{} } func (m *DeleteGroupRequest) String() string { return proto.CompactTextString(m) } func (*DeleteGroupRequest) ProtoMessage() {} func (*DeleteGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{23} + return fileDescriptor_1b40cafcd4234784, []int{25} } func (m *DeleteGroupRequest) XXX_Unmarshal(b []byte) error { @@ -1640,7 +1751,7 @@ func (m *DeleteLeaderboardRecordRequest) Reset() { *m = DeleteLeaderboar func (m *DeleteLeaderboardRecordRequest) String() string { return proto.CompactTextString(m) } func (*DeleteLeaderboardRecordRequest) ProtoMessage() {} func (*DeleteLeaderboardRecordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{24} + return fileDescriptor_1b40cafcd4234784, []int{26} } func (m *DeleteLeaderboardRecordRequest) XXX_Unmarshal(b []byte) error { @@ -1681,7 +1792,7 @@ func (m *DeleteNotificationsRequest) Reset() { *m = DeleteNotificationsR func (m *DeleteNotificationsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteNotificationsRequest) ProtoMessage() {} func (*DeleteNotificationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{25} + return fileDescriptor_1b40cafcd4234784, []int{27} } func (m *DeleteNotificationsRequest) XXX_Unmarshal(b []byte) error { @@ -1726,7 +1837,7 @@ func (m *DeleteStorageObjectId) Reset() { *m = DeleteStorageObjectId{} } func (m *DeleteStorageObjectId) String() string { return proto.CompactTextString(m) } func (*DeleteStorageObjectId) ProtoMessage() {} func (*DeleteStorageObjectId) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{26} + return fileDescriptor_1b40cafcd4234784, []int{28} } func (m *DeleteStorageObjectId) XXX_Unmarshal(b []byte) error { @@ -1781,7 +1892,7 @@ func (m *DeleteStorageObjectsRequest) Reset() { *m = DeleteStorageObject func (m *DeleteStorageObjectsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteStorageObjectsRequest) ProtoMessage() {} func (*DeleteStorageObjectsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{27} + return fileDescriptor_1b40cafcd4234784, []int{29} } func (m *DeleteStorageObjectsRequest) XXX_Unmarshal(b []byte) error { @@ -1828,7 +1939,7 @@ func (m *Event) Reset() { *m = Event{} } func (m *Event) String() string { return proto.CompactTextString(m) } func (*Event) ProtoMessage() {} func (*Event) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{28} + return fileDescriptor_1b40cafcd4234784, []int{30} } func (m *Event) XXX_Unmarshal(b []byte) error { @@ -1892,7 +2003,7 @@ func (m *Friend) Reset() { *m = Friend{} } func (m *Friend) String() string { return proto.CompactTextString(m) } func (*Friend) ProtoMessage() {} func (*Friend) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{29} + return fileDescriptor_1b40cafcd4234784, []int{31} } func (m *Friend) XXX_Unmarshal(b []byte) error { @@ -1942,7 +2053,7 @@ func (m *FriendList) Reset() { *m = FriendList{} } func (m *FriendList) String() string { return proto.CompactTextString(m) } func (*FriendList) ProtoMessage() {} func (*FriendList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{30} + return fileDescriptor_1b40cafcd4234784, []int{32} } func (m *FriendList) XXX_Unmarshal(b []byte) error { @@ -1994,7 +2105,7 @@ func (m *GetUsersRequest) Reset() { *m = GetUsersRequest{} } func (m *GetUsersRequest) String() string { return proto.CompactTextString(m) } func (*GetUsersRequest) ProtoMessage() {} func (*GetUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{31} + return fileDescriptor_1b40cafcd4234784, []int{33} } func (m *GetUsersRequest) XXX_Unmarshal(b []byte) error { @@ -2071,7 +2182,7 @@ func (m *Group) Reset() { *m = Group{} } func (m *Group) String() string { return proto.CompactTextString(m) } func (*Group) ProtoMessage() {} func (*Group) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{32} + return fileDescriptor_1b40cafcd4234784, []int{34} } func (m *Group) XXX_Unmarshal(b []byte) error { @@ -2191,7 +2302,7 @@ func (m *GroupList) Reset() { *m = GroupList{} } func (m *GroupList) String() string { return proto.CompactTextString(m) } func (*GroupList) ProtoMessage() {} func (*GroupList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{33} + return fileDescriptor_1b40cafcd4234784, []int{35} } func (m *GroupList) XXX_Unmarshal(b []byte) error { @@ -2241,7 +2352,7 @@ func (m *GroupUserList) Reset() { *m = GroupUserList{} } func (m *GroupUserList) String() string { return proto.CompactTextString(m) } func (*GroupUserList) ProtoMessage() {} func (*GroupUserList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{34} + return fileDescriptor_1b40cafcd4234784, []int{36} } func (m *GroupUserList) XXX_Unmarshal(b []byte) error { @@ -2291,7 +2402,7 @@ func (m *GroupUserList_GroupUser) Reset() { *m = GroupUserList_GroupUser func (m *GroupUserList_GroupUser) String() string { return proto.CompactTextString(m) } func (*GroupUserList_GroupUser) ProtoMessage() {} func (*GroupUserList_GroupUser) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{34, 0} + return fileDescriptor_1b40cafcd4234784, []int{36, 0} } func (m *GroupUserList_GroupUser) XXX_Unmarshal(b []byte) error { @@ -2341,7 +2452,7 @@ func (m *ImportFacebookFriendsRequest) Reset() { *m = ImportFacebookFrie func (m *ImportFacebookFriendsRequest) String() string { return proto.CompactTextString(m) } func (*ImportFacebookFriendsRequest) ProtoMessage() {} func (*ImportFacebookFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{35} + return fileDescriptor_1b40cafcd4234784, []int{37} } func (m *ImportFacebookFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -2389,7 +2500,7 @@ func (m *JoinGroupRequest) Reset() { *m = JoinGroupRequest{} } func (m *JoinGroupRequest) String() string { return proto.CompactTextString(m) } func (*JoinGroupRequest) ProtoMessage() {} func (*JoinGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{36} + return fileDescriptor_1b40cafcd4234784, []int{38} } func (m *JoinGroupRequest) XXX_Unmarshal(b []byte) error { @@ -2430,7 +2541,7 @@ func (m *JoinTournamentRequest) Reset() { *m = JoinTournamentRequest{} } func (m *JoinTournamentRequest) String() string { return proto.CompactTextString(m) } func (*JoinTournamentRequest) ProtoMessage() {} func (*JoinTournamentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{37} + return fileDescriptor_1b40cafcd4234784, []int{39} } func (m *JoinTournamentRequest) XXX_Unmarshal(b []byte) error { @@ -2473,7 +2584,7 @@ func (m *KickGroupUsersRequest) Reset() { *m = KickGroupUsersRequest{} } func (m *KickGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*KickGroupUsersRequest) ProtoMessage() {} func (*KickGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{38} + return fileDescriptor_1b40cafcd4234784, []int{40} } func (m *KickGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -2543,7 +2654,7 @@ func (m *LeaderboardRecord) Reset() { *m = LeaderboardRecord{} } func (m *LeaderboardRecord) String() string { return proto.CompactTextString(m) } func (*LeaderboardRecord) ProtoMessage() {} func (*LeaderboardRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{39} + return fileDescriptor_1b40cafcd4234784, []int{41} } func (m *LeaderboardRecord) XXX_Unmarshal(b []byte) error { @@ -2667,7 +2778,7 @@ func (m *LeaderboardRecordList) Reset() { *m = LeaderboardRecordList{} } func (m *LeaderboardRecordList) String() string { return proto.CompactTextString(m) } func (*LeaderboardRecordList) ProtoMessage() {} func (*LeaderboardRecordList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{40} + return fileDescriptor_1b40cafcd4234784, []int{42} } func (m *LeaderboardRecordList) XXX_Unmarshal(b []byte) error { @@ -2729,7 +2840,7 @@ func (m *LeaveGroupRequest) Reset() { *m = LeaveGroupRequest{} } func (m *LeaveGroupRequest) String() string { return proto.CompactTextString(m) } func (*LeaveGroupRequest) ProtoMessage() {} func (*LeaveGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{41} + return fileDescriptor_1b40cafcd4234784, []int{43} } func (m *LeaveGroupRequest) XXX_Unmarshal(b []byte) error { @@ -2772,7 +2883,7 @@ func (m *LinkFacebookRequest) Reset() { *m = LinkFacebookRequest{} } func (m *LinkFacebookRequest) String() string { return proto.CompactTextString(m) } func (*LinkFacebookRequest) ProtoMessage() {} func (*LinkFacebookRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{42} + return fileDescriptor_1b40cafcd4234784, []int{44} } func (m *LinkFacebookRequest) XXX_Unmarshal(b []byte) error { @@ -2826,7 +2937,7 @@ func (m *ListChannelMessagesRequest) Reset() { *m = ListChannelMessagesR func (m *ListChannelMessagesRequest) String() string { return proto.CompactTextString(m) } func (*ListChannelMessagesRequest) ProtoMessage() {} func (*ListChannelMessagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{43} + return fileDescriptor_1b40cafcd4234784, []int{45} } func (m *ListChannelMessagesRequest) XXX_Unmarshal(b []byte) error { @@ -2892,7 +3003,7 @@ func (m *ListFriendsRequest) Reset() { *m = ListFriendsRequest{} } func (m *ListFriendsRequest) String() string { return proto.CompactTextString(m) } func (*ListFriendsRequest) ProtoMessage() {} func (*ListFriendsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{44} + return fileDescriptor_1b40cafcd4234784, []int{46} } func (m *ListFriendsRequest) XXX_Unmarshal(b []byte) error { @@ -2951,7 +3062,7 @@ func (m *ListGroupsRequest) Reset() { *m = ListGroupsRequest{} } func (m *ListGroupsRequest) String() string { return proto.CompactTextString(m) } func (*ListGroupsRequest) ProtoMessage() {} func (*ListGroupsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{45} + return fileDescriptor_1b40cafcd4234784, []int{47} } func (m *ListGroupsRequest) XXX_Unmarshal(b []byte) error { @@ -3012,7 +3123,7 @@ func (m *ListGroupUsersRequest) Reset() { *m = ListGroupUsersRequest{} } func (m *ListGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*ListGroupUsersRequest) ProtoMessage() {} func (*ListGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{46} + return fileDescriptor_1b40cafcd4234784, []int{48} } func (m *ListGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -3082,7 +3193,7 @@ func (m *ListLeaderboardRecordsAroundOwnerRequest) Reset() { func (m *ListLeaderboardRecordsAroundOwnerRequest) String() string { return proto.CompactTextString(m) } func (*ListLeaderboardRecordsAroundOwnerRequest) ProtoMessage() {} func (*ListLeaderboardRecordsAroundOwnerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{47} + return fileDescriptor_1b40cafcd4234784, []int{49} } func (m *ListLeaderboardRecordsAroundOwnerRequest) XXX_Unmarshal(b []byte) error { @@ -3152,7 +3263,7 @@ func (m *ListLeaderboardRecordsRequest) Reset() { *m = ListLeaderboardRe func (m *ListLeaderboardRecordsRequest) String() string { return proto.CompactTextString(m) } func (*ListLeaderboardRecordsRequest) ProtoMessage() {} func (*ListLeaderboardRecordsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{48} + return fileDescriptor_1b40cafcd4234784, []int{50} } func (m *ListLeaderboardRecordsRequest) XXX_Unmarshal(b []byte) error { @@ -3231,7 +3342,7 @@ func (m *ListMatchesRequest) Reset() { *m = ListMatchesRequest{} } func (m *ListMatchesRequest) String() string { return proto.CompactTextString(m) } func (*ListMatchesRequest) ProtoMessage() {} func (*ListMatchesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{49} + return fileDescriptor_1b40cafcd4234784, []int{51} } func (m *ListMatchesRequest) XXX_Unmarshal(b []byte) error { @@ -3309,7 +3420,7 @@ func (m *ListNotificationsRequest) Reset() { *m = ListNotificationsReque func (m *ListNotificationsRequest) String() string { return proto.CompactTextString(m) } func (*ListNotificationsRequest) ProtoMessage() {} func (*ListNotificationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{50} + return fileDescriptor_1b40cafcd4234784, []int{52} } func (m *ListNotificationsRequest) XXX_Unmarshal(b []byte) error { @@ -3363,7 +3474,7 @@ func (m *ListStorageObjectsRequest) Reset() { *m = ListStorageObjectsReq func (m *ListStorageObjectsRequest) String() string { return proto.CompactTextString(m) } func (*ListStorageObjectsRequest) ProtoMessage() {} func (*ListStorageObjectsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{51} + return fileDescriptor_1b40cafcd4234784, []int{53} } func (m *ListStorageObjectsRequest) XXX_Unmarshal(b []byte) error { @@ -3433,7 +3544,7 @@ func (m *ListTournamentRecordsAroundOwnerRequest) Reset() { func (m *ListTournamentRecordsAroundOwnerRequest) String() string { return proto.CompactTextString(m) } func (*ListTournamentRecordsAroundOwnerRequest) ProtoMessage() {} func (*ListTournamentRecordsAroundOwnerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{52} + return fileDescriptor_1b40cafcd4234784, []int{54} } func (m *ListTournamentRecordsAroundOwnerRequest) XXX_Unmarshal(b []byte) error { @@ -3503,7 +3614,7 @@ func (m *ListTournamentRecordsRequest) Reset() { *m = ListTournamentReco func (m *ListTournamentRecordsRequest) String() string { return proto.CompactTextString(m) } func (*ListTournamentRecordsRequest) ProtoMessage() {} func (*ListTournamentRecordsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{53} + return fileDescriptor_1b40cafcd4234784, []int{55} } func (m *ListTournamentRecordsRequest) XXX_Unmarshal(b []byte) error { @@ -3582,7 +3693,7 @@ func (m *ListTournamentsRequest) Reset() { *m = ListTournamentsRequest{} func (m *ListTournamentsRequest) String() string { return proto.CompactTextString(m) } func (*ListTournamentsRequest) ProtoMessage() {} func (*ListTournamentsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{54} + return fileDescriptor_1b40cafcd4234784, []int{56} } func (m *ListTournamentsRequest) XXX_Unmarshal(b []byte) error { @@ -3664,7 +3775,7 @@ func (m *ListUserGroupsRequest) Reset() { *m = ListUserGroupsRequest{} } func (m *ListUserGroupsRequest) String() string { return proto.CompactTextString(m) } func (*ListUserGroupsRequest) ProtoMessage() {} func (*ListUserGroupsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{55} + return fileDescriptor_1b40cafcd4234784, []int{57} } func (m *ListUserGroupsRequest) XXX_Unmarshal(b []byte) error { @@ -3732,7 +3843,7 @@ func (m *Match) Reset() { *m = Match{} } func (m *Match) String() string { return proto.CompactTextString(m) } func (*Match) ProtoMessage() {} func (*Match) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{56} + return fileDescriptor_1b40cafcd4234784, []int{58} } func (m *Match) XXX_Unmarshal(b []byte) error { @@ -3794,7 +3905,7 @@ func (m *MatchList) Reset() { *m = MatchList{} } func (m *MatchList) String() string { return proto.CompactTextString(m) } func (*MatchList) ProtoMessage() {} func (*MatchList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{57} + return fileDescriptor_1b40cafcd4234784, []int{59} } func (m *MatchList) XXX_Unmarshal(b []byte) error { @@ -3847,7 +3958,7 @@ func (m *Notification) Reset() { *m = Notification{} } func (m *Notification) String() string { return proto.CompactTextString(m) } func (*Notification) ProtoMessage() {} func (*Notification) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{58} + return fileDescriptor_1b40cafcd4234784, []int{60} } func (m *Notification) XXX_Unmarshal(b []byte) error { @@ -3932,7 +4043,7 @@ func (m *NotificationList) Reset() { *m = NotificationList{} } func (m *NotificationList) String() string { return proto.CompactTextString(m) } func (*NotificationList) ProtoMessage() {} func (*NotificationList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{59} + return fileDescriptor_1b40cafcd4234784, []int{61} } func (m *NotificationList) XXX_Unmarshal(b []byte) error { @@ -3982,7 +4093,7 @@ func (m *PromoteGroupUsersRequest) Reset() { *m = PromoteGroupUsersReque func (m *PromoteGroupUsersRequest) String() string { return proto.CompactTextString(m) } func (*PromoteGroupUsersRequest) ProtoMessage() {} func (*PromoteGroupUsersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{60} + return fileDescriptor_1b40cafcd4234784, []int{62} } func (m *PromoteGroupUsersRequest) XXX_Unmarshal(b []byte) error { @@ -4034,7 +4145,7 @@ func (m *ReadStorageObjectId) Reset() { *m = ReadStorageObjectId{} } func (m *ReadStorageObjectId) String() string { return proto.CompactTextString(m) } func (*ReadStorageObjectId) ProtoMessage() {} func (*ReadStorageObjectId) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{61} + return fileDescriptor_1b40cafcd4234784, []int{63} } func (m *ReadStorageObjectId) XXX_Unmarshal(b []byte) error { @@ -4089,7 +4200,7 @@ func (m *ReadStorageObjectsRequest) Reset() { *m = ReadStorageObjectsReq func (m *ReadStorageObjectsRequest) String() string { return proto.CompactTextString(m) } func (*ReadStorageObjectsRequest) ProtoMessage() {} func (*ReadStorageObjectsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{62} + return fileDescriptor_1b40cafcd4234784, []int{64} } func (m *ReadStorageObjectsRequest) XXX_Unmarshal(b []byte) error { @@ -4134,7 +4245,7 @@ func (m *Rpc) Reset() { *m = Rpc{} } func (m *Rpc) String() string { return proto.CompactTextString(m) } func (*Rpc) ProtoMessage() {} func (*Rpc) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{63} + return fileDescriptor_1b40cafcd4234784, []int{65} } func (m *Rpc) XXX_Unmarshal(b []byte) error { @@ -4191,7 +4302,7 @@ func (m *Session) Reset() { *m = Session{} } func (m *Session) String() string { return proto.CompactTextString(m) } func (*Session) ProtoMessage() {} func (*Session) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{64} + return fileDescriptor_1b40cafcd4234784, []int{66} } func (m *Session) XXX_Unmarshal(b []byte) error { @@ -4255,7 +4366,7 @@ func (m *StorageObject) Reset() { *m = StorageObject{} } func (m *StorageObject) String() string { return proto.CompactTextString(m) } func (*StorageObject) ProtoMessage() {} func (*StorageObject) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{65} + return fileDescriptor_1b40cafcd4234784, []int{67} } func (m *StorageObject) XXX_Unmarshal(b []byte) error { @@ -4358,7 +4469,7 @@ func (m *StorageObjectAck) Reset() { *m = StorageObjectAck{} } func (m *StorageObjectAck) String() string { return proto.CompactTextString(m) } func (*StorageObjectAck) ProtoMessage() {} func (*StorageObjectAck) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{66} + return fileDescriptor_1b40cafcd4234784, []int{68} } func (m *StorageObjectAck) XXX_Unmarshal(b []byte) error { @@ -4420,7 +4531,7 @@ func (m *StorageObjectAcks) Reset() { *m = StorageObjectAcks{} } func (m *StorageObjectAcks) String() string { return proto.CompactTextString(m) } func (*StorageObjectAcks) ProtoMessage() {} func (*StorageObjectAcks) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{67} + return fileDescriptor_1b40cafcd4234784, []int{69} } func (m *StorageObjectAcks) XXX_Unmarshal(b []byte) error { @@ -4461,7 +4572,7 @@ func (m *StorageObjects) Reset() { *m = StorageObjects{} } func (m *StorageObjects) String() string { return proto.CompactTextString(m) } func (*StorageObjects) ProtoMessage() {} func (*StorageObjects) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{68} + return fileDescriptor_1b40cafcd4234784, []int{70} } func (m *StorageObjects) XXX_Unmarshal(b []byte) error { @@ -4504,7 +4615,7 @@ func (m *StorageObjectList) Reset() { *m = StorageObjectList{} } func (m *StorageObjectList) String() string { return proto.CompactTextString(m) } func (*StorageObjectList) ProtoMessage() {} func (*StorageObjectList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{69} + return fileDescriptor_1b40cafcd4234784, []int{71} } func (m *StorageObjectList) XXX_Unmarshal(b []byte) error { @@ -4584,7 +4695,7 @@ func (m *Tournament) Reset() { *m = Tournament{} } func (m *Tournament) String() string { return proto.CompactTextString(m) } func (*Tournament) ProtoMessage() {} func (*Tournament) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{70} + return fileDescriptor_1b40cafcd4234784, []int{72} } func (m *Tournament) XXX_Unmarshal(b []byte) error { @@ -4739,7 +4850,7 @@ func (m *TournamentList) Reset() { *m = TournamentList{} } func (m *TournamentList) String() string { return proto.CompactTextString(m) } func (*TournamentList) ProtoMessage() {} func (*TournamentList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{71} + return fileDescriptor_1b40cafcd4234784, []int{73} } func (m *TournamentList) XXX_Unmarshal(b []byte) error { @@ -4793,7 +4904,7 @@ func (m *TournamentRecordList) Reset() { *m = TournamentRecordList{} } func (m *TournamentRecordList) String() string { return proto.CompactTextString(m) } func (*TournamentRecordList) ProtoMessage() {} func (*TournamentRecordList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{72} + return fileDescriptor_1b40cafcd4234784, []int{74} } func (m *TournamentRecordList) XXX_Unmarshal(b []byte) error { @@ -4865,7 +4976,7 @@ func (m *UpdateAccountRequest) Reset() { *m = UpdateAccountRequest{} } func (m *UpdateAccountRequest) String() string { return proto.CompactTextString(m) } func (*UpdateAccountRequest) ProtoMessage() {} func (*UpdateAccountRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{73} + return fileDescriptor_1b40cafcd4234784, []int{75} } func (m *UpdateAccountRequest) XXX_Unmarshal(b []byte) error { @@ -4951,7 +5062,7 @@ func (m *UpdateGroupRequest) Reset() { *m = UpdateGroupRequest{} } func (m *UpdateGroupRequest) String() string { return proto.CompactTextString(m) } func (*UpdateGroupRequest) ProtoMessage() {} func (*UpdateGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{74} + return fileDescriptor_1b40cafcd4234784, []int{76} } func (m *UpdateGroupRequest) XXX_Unmarshal(b []byte) error { @@ -5047,17 +5158,19 @@ type User struct { // The UNIX time when the user was created. CreateTime *timestamp.Timestamp `protobuf:"bytes,15,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // The UNIX time when the user was last updated. - UpdateTime *timestamp.Timestamp `protobuf:"bytes,16,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UpdateTime *timestamp.Timestamp `protobuf:"bytes,16,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The Facebook Instant Game id in the user's account. + FacebookInstantGameId string `protobuf:"bytes,17,opt,name=facebook_instant_game_id,json=facebookInstantGameId,proto3" json:"facebook_instant_game_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *User) Reset() { *m = User{} } func (m *User) String() string { return proto.CompactTextString(m) } func (*User) ProtoMessage() {} func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{75} + return fileDescriptor_1b40cafcd4234784, []int{77} } func (m *User) XXX_Unmarshal(b []byte) error { @@ -5190,6 +5303,13 @@ func (m *User) GetUpdateTime() *timestamp.Timestamp { return nil } +func (m *User) GetFacebookInstantGameId() string { + if m != nil { + return m.FacebookInstantGameId + } + return "" +} + // A list of groups belonging to a user, along with the user's role in each group. type UserGroupList struct { // Group-role pairs for a user. @@ -5205,7 +5325,7 @@ func (m *UserGroupList) Reset() { *m = UserGroupList{} } func (m *UserGroupList) String() string { return proto.CompactTextString(m) } func (*UserGroupList) ProtoMessage() {} func (*UserGroupList) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{76} + return fileDescriptor_1b40cafcd4234784, []int{78} } func (m *UserGroupList) XXX_Unmarshal(b []byte) error { @@ -5255,7 +5375,7 @@ func (m *UserGroupList_UserGroup) Reset() { *m = UserGroupList_UserGroup func (m *UserGroupList_UserGroup) String() string { return proto.CompactTextString(m) } func (*UserGroupList_UserGroup) ProtoMessage() {} func (*UserGroupList_UserGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{76, 0} + return fileDescriptor_1b40cafcd4234784, []int{78, 0} } func (m *UserGroupList_UserGroup) XXX_Unmarshal(b []byte) error { @@ -5303,7 +5423,7 @@ func (m *Users) Reset() { *m = Users{} } func (m *Users) String() string { return proto.CompactTextString(m) } func (*Users) ProtoMessage() {} func (*Users) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{77} + return fileDescriptor_1b40cafcd4234784, []int{79} } func (m *Users) XXX_Unmarshal(b []byte) error { @@ -5346,7 +5466,7 @@ func (m *WriteLeaderboardRecordRequest) Reset() { *m = WriteLeaderboardR func (m *WriteLeaderboardRecordRequest) String() string { return proto.CompactTextString(m) } func (*WriteLeaderboardRecordRequest) ProtoMessage() {} func (*WriteLeaderboardRecordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{78} + return fileDescriptor_1b40cafcd4234784, []int{80} } func (m *WriteLeaderboardRecordRequest) XXX_Unmarshal(b []byte) error { @@ -5402,7 +5522,7 @@ func (m *WriteLeaderboardRecordRequest_LeaderboardRecordWrite) String() string { } func (*WriteLeaderboardRecordRequest_LeaderboardRecordWrite) ProtoMessage() {} func (*WriteLeaderboardRecordRequest_LeaderboardRecordWrite) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{78, 0} + return fileDescriptor_1b40cafcd4234784, []int{80, 0} } func (m *WriteLeaderboardRecordRequest_LeaderboardRecordWrite) XXX_Unmarshal(b []byte) error { @@ -5467,7 +5587,7 @@ func (m *WriteStorageObject) Reset() { *m = WriteStorageObject{} } func (m *WriteStorageObject) String() string { return proto.CompactTextString(m) } func (*WriteStorageObject) ProtoMessage() {} func (*WriteStorageObject) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{79} + return fileDescriptor_1b40cafcd4234784, []int{81} } func (m *WriteStorageObject) XXX_Unmarshal(b []byte) error { @@ -5543,7 +5663,7 @@ func (m *WriteStorageObjectsRequest) Reset() { *m = WriteStorageObjectsR func (m *WriteStorageObjectsRequest) String() string { return proto.CompactTextString(m) } func (*WriteStorageObjectsRequest) ProtoMessage() {} func (*WriteStorageObjectsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{80} + return fileDescriptor_1b40cafcd4234784, []int{82} } func (m *WriteStorageObjectsRequest) XXX_Unmarshal(b []byte) error { @@ -5586,7 +5706,7 @@ func (m *WriteTournamentRecordRequest) Reset() { *m = WriteTournamentRec func (m *WriteTournamentRecordRequest) String() string { return proto.CompactTextString(m) } func (*WriteTournamentRecordRequest) ProtoMessage() {} func (*WriteTournamentRecordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{81} + return fileDescriptor_1b40cafcd4234784, []int{83} } func (m *WriteTournamentRecordRequest) XXX_Unmarshal(b []byte) error { @@ -5642,7 +5762,7 @@ func (m *WriteTournamentRecordRequest_TournamentRecordWrite) String() string { } func (*WriteTournamentRecordRequest_TournamentRecordWrite) ProtoMessage() {} func (*WriteTournamentRecordRequest_TournamentRecordWrite) Descriptor() ([]byte, []int) { - return fileDescriptor_1b40cafcd4234784, []int{81, 0} + return fileDescriptor_1b40cafcd4234784, []int{83, 0} } func (m *WriteTournamentRecordRequest_TournamentRecordWrite) XXX_Unmarshal(b []byte) error { @@ -5697,6 +5817,8 @@ func init() { proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountEmail.VarsEntry") proto.RegisterType((*AccountFacebook)(nil), "nakama.api.AccountFacebook") proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountFacebook.VarsEntry") + proto.RegisterType((*AccountFacebookInstantGame)(nil), "nakama.api.AccountFacebookInstantGame") + proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountFacebookInstantGame.VarsEntry") proto.RegisterType((*AccountGameCenter)(nil), "nakama.api.AccountGameCenter") proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountGameCenter.VarsEntry") proto.RegisterType((*AccountGoogle)(nil), "nakama.api.AccountGoogle") @@ -5709,6 +5831,7 @@ func init() { proto.RegisterType((*AuthenticateDeviceRequest)(nil), "nakama.api.AuthenticateDeviceRequest") proto.RegisterType((*AuthenticateEmailRequest)(nil), "nakama.api.AuthenticateEmailRequest") proto.RegisterType((*AuthenticateFacebookRequest)(nil), "nakama.api.AuthenticateFacebookRequest") + proto.RegisterType((*AuthenticateFacebookInstantGameRequest)(nil), "nakama.api.AuthenticateFacebookInstantGameRequest") proto.RegisterType((*AuthenticateGameCenterRequest)(nil), "nakama.api.AuthenticateGameCenterRequest") proto.RegisterType((*AuthenticateGoogleRequest)(nil), "nakama.api.AuthenticateGoogleRequest") proto.RegisterType((*AuthenticateSteamRequest)(nil), "nakama.api.AuthenticateSteamRequest") @@ -5784,233 +5907,241 @@ func init() { proto.RegisterType((*WriteTournamentRecordRequest_TournamentRecordWrite)(nil), "nakama.api.WriteTournamentRecordRequest.TournamentRecordWrite") } -func init() { proto.RegisterFile("api/api.proto", fileDescriptor_1b40cafcd4234784) } +func init() { + proto.RegisterFile("api/api.proto", fileDescriptor_1b40cafcd4234784) +} var fileDescriptor_1b40cafcd4234784 = []byte{ - // 3590 bytes of a gzipped FileDescriptorProto + // 3689 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3b, 0x4b, 0x8c, 0x1b, 0xc7, - 0x95, 0x6e, 0xfe, 0xf9, 0x48, 0xce, 0x70, 0x4a, 0x9f, 0xe5, 0x50, 0x1a, 0x7d, 0x5a, 0xf6, 0x4a, - 0x86, 0x77, 0x29, 0x7b, 0x64, 0x4b, 0xb2, 0xb5, 0x96, 0x35, 0x1f, 0x4a, 0xa0, 0x25, 0x8d, 0xb4, - 0x3d, 0x92, 0x76, 0xb1, 0x7b, 0xa0, 0x6b, 0xba, 0x4b, 0xa3, 0xde, 0x21, 0xbb, 0xe9, 0xee, 0xe6, - 0x7c, 0x8c, 0x0d, 0x10, 0x04, 0x01, 0x92, 0x53, 0x90, 0x18, 0x48, 0x82, 0x20, 0x40, 0x12, 0xe4, - 0x10, 0xd8, 0x39, 0x04, 0xc9, 0x21, 0xb7, 0xdc, 0x9d, 0x73, 0x10, 0x07, 0xb9, 0x25, 0x41, 0x4e, - 0x01, 0x72, 0xcb, 0x31, 0x97, 0xa0, 0x5e, 0x55, 0x7f, 0x49, 0xce, 0x90, 0x33, 0x94, 0x6d, 0xe4, - 0x32, 0x60, 0xbd, 0x7a, 0xaf, 0xea, 0xd5, 0xab, 0xf7, 0xab, 0xf7, 0x7a, 0xa0, 0x42, 0x7b, 0xe6, - 0x65, 0xda, 0x33, 0x1b, 0x3d, 0xc7, 0xf6, 0x6c, 0x02, 0x16, 0xdd, 0xa2, 0x5d, 0xda, 0xa0, 0x3d, - 0xb3, 0x7e, 0x76, 0xd3, 0xb6, 0x37, 0x3b, 0xec, 0x32, 0xce, 0x6c, 0xf4, 0x9f, 0x5e, 0xf6, 0xcc, - 0x2e, 0x73, 0x3d, 0xda, 0xed, 0x09, 0xe4, 0xfa, 0x99, 0x24, 0xc2, 0x8e, 0x43, 0x7b, 0x3d, 0xe6, - 0xb8, 0x62, 0x5e, 0xfd, 0xab, 0x02, 0xf9, 0x25, 0x5d, 0xb7, 0xfb, 0x96, 0x47, 0x5e, 0x84, 0x4c, - 0xdf, 0x65, 0x4e, 0x4d, 0x39, 0xa7, 0x5c, 0x2a, 0x2d, 0x56, 0x1b, 0xe1, 0x3e, 0x8d, 0xc7, 0x2e, - 0x73, 0x34, 0x9c, 0x25, 0x27, 0x21, 0xb7, 0x43, 0x3b, 0x1d, 0xe6, 0xd5, 0x52, 0xe7, 0x94, 0x4b, - 0x45, 0x4d, 0x8e, 0xc8, 0x71, 0xc8, 0xb2, 0x2e, 0x35, 0x3b, 0xb5, 0x34, 0x82, 0xc5, 0x80, 0x5c, - 0x81, 0xbc, 0xc1, 0xb6, 0x4d, 0x9d, 0xb9, 0xb5, 0xcc, 0xb9, 0xf4, 0xa5, 0xd2, 0xe2, 0x7c, 0x74, - 0x59, 0xb9, 0xf3, 0x2a, 0x62, 0x68, 0x3e, 0x26, 0x39, 0x05, 0x45, 0xbd, 0xef, 0x7a, 0x76, 0xb7, - 0x6d, 0x1a, 0xb5, 0x2c, 0x2e, 0x57, 0x10, 0x80, 0x96, 0x41, 0x6e, 0x40, 0x69, 0x9b, 0x39, 0xe6, - 0xd3, 0xbd, 0x36, 0x3f, 0x6b, 0x2d, 0x87, 0xcc, 0xd6, 0x1b, 0xe2, 0x9c, 0x0d, 0xff, 0x9c, 0x8d, - 0x47, 0xbe, 0x20, 0x34, 0x10, 0xe8, 0x1c, 0xa0, 0x7e, 0x4b, 0x81, 0x8a, 0xdc, 0x74, 0x05, 0x17, - 0x24, 0x33, 0x90, 0x32, 0x0d, 0x3c, 0x72, 0x51, 0x4b, 0x99, 0x06, 0xb9, 0x06, 0x99, 0x6d, 0xea, - 0xb8, 0xb5, 0x14, 0x72, 0x7b, 0x61, 0x08, 0xb7, 0x82, 0xb0, 0xf1, 0x84, 0x3a, 0x6e, 0xd3, 0xf2, - 0x9c, 0x3d, 0x0d, 0x09, 0xea, 0xd7, 0xa0, 0x18, 0x80, 0x48, 0x15, 0xd2, 0x5b, 0x6c, 0x4f, 0x2e, - 0xcb, 0x7f, 0x72, 0xf1, 0x6c, 0xd3, 0x4e, 0x9f, 0x49, 0xa9, 0x89, 0xc1, 0x5b, 0xa9, 0xeb, 0x4a, - 0x94, 0x27, 0x21, 0x88, 0x43, 0xf0, 0x24, 0x08, 0xa7, 0xc7, 0xd3, 0x2f, 0x14, 0x28, 0xcb, 0xa5, - 0x9b, 0x78, 0x8f, 0xc1, 0xed, 0x2a, 0xd1, 0xdb, 0xad, 0x43, 0xa1, 0x47, 0x5d, 0x77, 0xc7, 0x76, - 0x0c, 0xb9, 0x46, 0x30, 0x26, 0x57, 0x25, 0xd3, 0x69, 0x64, 0x5a, 0x1d, 0xc2, 0x34, 0xae, 0x3c, - 0x3d, 0x9e, 0xbf, 0xaf, 0xc0, 0xac, 0x5c, 0xf9, 0x36, 0xd5, 0xd9, 0x86, 0x6d, 0x6f, 0x71, 0x6c, - 0xcf, 0xde, 0x62, 0x96, 0xcf, 0x36, 0x0e, 0xc8, 0x9b, 0x31, 0x79, 0xbe, 0x34, 0x84, 0x35, 0x7f, - 0x81, 0xe9, 0x71, 0xf7, 0xeb, 0x14, 0xcc, 0xc9, 0xc5, 0xef, 0xd0, 0x2e, 0x5b, 0x61, 0x96, 0xc7, - 0x1c, 0xae, 0xe9, 0xbd, 0x0e, 0xdd, 0x63, 0x4e, 0x3b, 0xb8, 0xf0, 0x82, 0x00, 0xb4, 0x0c, 0x3e, - 0xb9, 0xd1, 0xb7, 0x8c, 0x0e, 0xe3, 0x93, 0x52, 0xbc, 0x02, 0xd0, 0x32, 0xc8, 0x2b, 0x30, 0x17, - 0xd8, 0x7a, 0xdb, 0x65, 0xba, 0x6d, 0x19, 0x2e, 0x9a, 0x5e, 0x5a, 0xab, 0x06, 0x13, 0xeb, 0x02, - 0x4e, 0x08, 0x64, 0x5c, 0xda, 0xf1, 0x6a, 0x19, 0x5c, 0x04, 0x7f, 0x93, 0xd3, 0x50, 0x74, 0xcd, - 0x4d, 0x8b, 0x7a, 0x7d, 0x87, 0x49, 0x23, 0x0b, 0x01, 0xe4, 0x45, 0x98, 0xe9, 0xf5, 0x37, 0x3a, - 0xa6, 0xde, 0xde, 0x62, 0x7b, 0xed, 0xbe, 0xd3, 0x41, 0x43, 0x2b, 0x6a, 0x65, 0x01, 0xbd, 0xcb, - 0xf6, 0x1e, 0x3b, 0x1d, 0x72, 0x43, 0x0a, 0x32, 0x8f, 0x82, 0xbc, 0x38, 0x44, 0x90, 0xe1, 0x59, - 0xa7, 0x27, 0xca, 0xef, 0x86, 0x06, 0x73, 0x07, 0xad, 0x7e, 0xc4, 0x35, 0x1f, 0x6c, 0x36, 0x82, - 0x7c, 0x7a, 0x9c, 0x7d, 0x3b, 0x34, 0x9b, 0x75, 0x8f, 0xd1, 0xee, 0x08, 0xc6, 0xae, 0xc6, 0x18, - 0x1b, 0x66, 0x1a, 0x48, 0x3d, 0x3d, 0xbe, 0x56, 0x60, 0x6e, 0xc9, 0x30, 0x6e, 0x3b, 0x26, 0xb3, - 0x0c, 0x57, 0x63, 0xef, 0xf7, 0x99, 0xeb, 0xf1, 0x05, 0x4c, 0xc3, 0xad, 0x29, 0xe7, 0xd2, 0x7c, - 0x01, 0xd3, 0x70, 0xb9, 0x4a, 0x70, 0x17, 0x6f, 0xd1, 0x2e, 0x13, 0xcc, 0x15, 0xb5, 0x10, 0xa0, - 0xde, 0x83, 0xe3, 0x4b, 0x86, 0x71, 0xc7, 0xb1, 0xfb, 0x3d, 0x1e, 0x0e, 0x82, 0x75, 0xe6, 0xa1, - 0xb0, 0xc9, 0x81, 0xa1, 0x0a, 0xe7, 0x71, 0xdc, 0x32, 0xf8, 0x14, 0xa7, 0x6f, 0xf3, 0x7d, 0xc4, - 0x7a, 0x79, 0x3e, 0x6e, 0x19, 0xae, 0xfa, 0x23, 0x05, 0xe6, 0x97, 0xfa, 0xde, 0x33, 0x66, 0x79, - 0xa6, 0x4e, 0x3d, 0x26, 0xbc, 0xaa, 0xbf, 0xe6, 0x15, 0xc8, 0x53, 0x21, 0x09, 0x19, 0x8d, 0xe6, - 0x47, 0x3a, 0x62, 0xcd, 0xc7, 0x24, 0x8b, 0x90, 0xd3, 0x1d, 0x46, 0x3d, 0x21, 0x80, 0x61, 0x41, - 0x61, 0xd9, 0xb6, 0x3b, 0x4f, 0xb8, 0x54, 0x34, 0x89, 0xc9, 0x3d, 0x98, 0x7f, 0x42, 0x19, 0xb8, - 0x82, 0xf1, 0x00, 0x8b, 0x32, 0x4c, 0x4d, 0xc2, 0xa2, 0x1f, 0xd9, 0x9e, 0x17, 0x8b, 0x3f, 0x50, - 0xa0, 0x16, 0x65, 0x11, 0x5d, 0xaa, 0xcf, 0xe1, 0x62, 0x92, 0xc3, 0xda, 0x28, 0x27, 0xfc, 0xfc, - 0x18, 0xfc, 0xad, 0x02, 0xa7, 0xa2, 0x0c, 0xfa, 0x8e, 0xd5, 0xe7, 0xf1, 0x8d, 0x24, 0x8f, 0xa7, - 0xf6, 0xf1, 0xc6, 0xcf, 0x8d, 0x4d, 0xd2, 0x80, 0x8c, 0xbb, 0x67, 0xe9, 0xe8, 0x20, 0xf7, 0x5f, - 0x0d, 0xf1, 0xd4, 0x8f, 0x14, 0x58, 0x88, 0x1e, 0x2b, 0x74, 0x73, 0xfe, 0xc1, 0xae, 0x25, 0x0f, - 0xb6, 0xb0, 0xaf, 0x77, 0xfc, 0xec, 0xb4, 0x58, 0xf8, 0xbc, 0x89, 0xb4, 0x58, 0x92, 0x7c, 0x66, - 0x5a, 0x8c, 0xde, 0x6f, 0x22, 0x2d, 0x16, 0x14, 0xcf, 0x8d, 0xc1, 0x7b, 0x70, 0x7c, 0x99, 0x5a, - 0xd3, 0x72, 0x7d, 0x4d, 0x38, 0xb6, 0xdc, 0xb1, 0xf5, 0xad, 0x23, 0xfa, 0xe3, 0x2f, 0x67, 0x60, - 0x66, 0xe5, 0x19, 0xb5, 0x2c, 0xd6, 0xb9, 0xcf, 0x5c, 0x97, 0x6e, 0x32, 0xb2, 0x00, 0xa0, 0x0b, - 0x48, 0xc8, 0x51, 0x51, 0x42, 0x5a, 0x06, 0x9f, 0xee, 0x0a, 0xcc, 0x30, 0xa3, 0x28, 0x4a, 0x48, - 0xcb, 0x20, 0x97, 0x21, 0xa3, 0xdb, 0x86, 0x38, 0x3d, 0x37, 0xc4, 0xa4, 0xcc, 0x5a, 0x96, 0x77, - 0x65, 0x51, 0x5a, 0x01, 0x47, 0xe4, 0x09, 0x8a, 0xcb, 0x2c, 0x43, 0x64, 0x2f, 0x22, 0xb7, 0x28, - 0x08, 0x40, 0xcb, 0x88, 0xc9, 0x33, 0x9b, 0x30, 0xb7, 0x1a, 0xe4, 0x75, 0xdb, 0xf2, 0x98, 0xe5, - 0xc9, 0xb4, 0xc2, 0x1f, 0xf2, 0xec, 0x5e, 0xdc, 0x87, 0xc8, 0xee, 0xf3, 0x07, 0x67, 0xf7, 0x02, - 0x9d, 0x03, 0x38, 0x71, 0xbf, 0x67, 0x04, 0xc4, 0x85, 0x83, 0x89, 0x05, 0x3a, 0x12, 0xbf, 0x05, - 0xc0, 0xdf, 0x45, 0xa6, 0x8b, 0x6c, 0x15, 0x0f, 0xd4, 0x9b, 0x08, 0x36, 0x17, 0x84, 0x63, 0xdb, - 0xdd, 0x36, 0x1e, 0x16, 0xc4, 0x61, 0x39, 0x60, 0x8d, 0x1f, 0x36, 0xaa, 0x24, 0xa5, 0xb8, 0x92, - 0x9c, 0x81, 0x92, 0x54, 0x92, 0xb6, 0x6d, 0xb1, 0x5a, 0x59, 0xdc, 0x88, 0xd0, 0x93, 0x07, 0x16, - 0x8b, 0xce, 0x7b, 0x3b, 0x76, 0xad, 0x12, 0x9d, 0x7f, 0xb4, 0x63, 0xab, 0xdf, 0x50, 0x80, 0xc4, - 0x55, 0xe0, 0x9e, 0xe9, 0x7a, 0xe4, 0x2a, 0x14, 0xe4, 0xad, 0x0a, 0x75, 0xe2, 0x07, 0x89, 0xd8, - 0x4c, 0x9c, 0x42, 0x0b, 0x70, 0xc9, 0x59, 0x28, 0x59, 0x6c, 0xd7, 0x6b, 0xeb, 0x7d, 0xc7, 0xb5, - 0x1d, 0xa9, 0x20, 0xc0, 0x41, 0x2b, 0x08, 0xe1, 0x08, 0x3d, 0x87, 0x6d, 0xfb, 0x08, 0xc2, 0x4c, - 0x80, 0x83, 0x04, 0x82, 0xfa, 0x4b, 0xce, 0x10, 0x5e, 0x08, 0x1a, 0x8b, 0xaf, 0xda, 0x04, 0x32, - 0x28, 0x1a, 0xa1, 0x91, 0xf8, 0x9b, 0x9c, 0x83, 0x92, 0xc1, 0x5c, 0xdd, 0x31, 0x7b, 0x9e, 0x69, - 0x5b, 0x72, 0xb3, 0x28, 0x88, 0x0b, 0xae, 0x43, 0xad, 0xcd, 0xb6, 0x47, 0x37, 0xe5, 0x56, 0x79, - 0x3e, 0x7e, 0x44, 0x37, 0xb9, 0x26, 0xd3, 0x6d, 0xea, 0x51, 0x07, 0x53, 0x53, 0xa1, 0x7a, 0x45, - 0x01, 0xe1, 0x79, 0x29, 0x81, 0x8c, 0xdd, 0x63, 0x16, 0xea, 0x5d, 0x41, 0xc3, 0xdf, 0xfc, 0x8e, - 0xba, 0x74, 0xb7, 0x2d, 0x3c, 0x09, 0xd7, 0xba, 0xac, 0x56, 0xe8, 0xd2, 0xdd, 0x15, 0x3e, 0x56, - 0x6f, 0xc3, 0xf1, 0x55, 0xd6, 0x61, 0x1e, 0x3b, 0xa2, 0x4d, 0x5e, 0x06, 0x22, 0xd6, 0x89, 0x1d, - 0x7f, 0xb4, 0x9b, 0x50, 0xef, 0xc0, 0x19, 0x41, 0x70, 0x8f, 0x51, 0x83, 0x39, 0x1b, 0x36, 0x75, - 0x0c, 0x8d, 0xe9, 0x36, 0xff, 0x2b, 0x88, 0x5f, 0x82, 0x99, 0x4e, 0x38, 0x17, 0x2e, 0x51, 0x89, - 0x40, 0x5b, 0x86, 0xda, 0x80, 0xba, 0x58, 0x68, 0xcd, 0xf6, 0xcc, 0xa7, 0xdc, 0x8d, 0x9a, 0xb6, - 0x35, 0xfa, 0x1c, 0xaa, 0x0e, 0x27, 0x04, 0xfe, 0xba, 0x67, 0x3b, 0x74, 0x93, 0x3d, 0xd8, 0xf8, - 0x3f, 0xa6, 0x7b, 0xa8, 0x93, 0xa0, 0xdb, 0x9d, 0x0e, 0xd3, 0xf1, 0x5a, 0xc4, 0x5e, 0x11, 0x88, - 0x9f, 0x77, 0xa6, 0xc2, 0xbc, 0xb3, 0x06, 0xf9, 0x6d, 0x6e, 0x0b, 0xb6, 0xe5, 0x5f, 0x93, 0x1c, - 0xaa, 0x6d, 0x38, 0x35, 0x64, 0x93, 0x80, 0xab, 0x5b, 0x00, 0x36, 0x42, 0xda, 0x3e, 0x73, 0xa5, - 0xc5, 0xf3, 0x51, 0x4d, 0x1d, 0xca, 0xa1, 0x56, 0xb4, 0xe5, 0x2f, 0x57, 0xfd, 0x9b, 0x02, 0xd9, - 0xe6, 0x36, 0x37, 0xc1, 0x61, 0x2a, 0xb6, 0x04, 0xd0, 0x73, 0xec, 0x1e, 0x73, 0x3c, 0x93, 0xf9, - 0xd9, 0x76, 0x6c, 0x7d, 0x24, 0x6d, 0x3c, 0x0c, 0x70, 0x44, 0xb2, 0x1d, 0x21, 0x22, 0xd7, 0xa1, - 0x18, 0xbc, 0xa6, 0xa4, 0x63, 0xdc, 0xcf, 0xa1, 0x84, 0xc8, 0xdc, 0xff, 0xb1, 0x5d, 0x8f, 0x2b, - 0x86, 0x50, 0xd0, 0x82, 0x16, 0x8c, 0xeb, 0x6f, 0xc3, 0x6c, 0x62, 0xd3, 0x89, 0xd2, 0xf9, 0x8f, - 0x15, 0xc8, 0x09, 0x45, 0x1d, 0xb3, 0x66, 0xf3, 0x1a, 0x64, 0x5d, 0x2f, 0x0c, 0x87, 0xfb, 0xba, - 0x76, 0x81, 0xa9, 0xde, 0x86, 0xec, 0x3a, 0xff, 0x41, 0x00, 0x72, 0xb7, 0xb5, 0x56, 0x73, 0x6d, - 0xb5, 0xfa, 0x02, 0x99, 0x85, 0x52, 0x6b, 0xed, 0x49, 0xeb, 0x51, 0xb3, 0xbd, 0xde, 0x5c, 0x7b, - 0x54, 0x55, 0xc8, 0x31, 0x98, 0x95, 0x00, 0xad, 0xb9, 0xd2, 0x6c, 0x3d, 0x69, 0xae, 0x56, 0x53, - 0xa4, 0x04, 0xf9, 0xe5, 0x7b, 0x0f, 0x56, 0xee, 0x36, 0x57, 0xab, 0x69, 0x55, 0x03, 0x10, 0xac, - 0xa2, 0x67, 0xfa, 0x37, 0xc8, 0x3f, 0x15, 0x16, 0x26, 0xaf, 0x9b, 0x44, 0x39, 0x16, 0x88, 0x9a, - 0x8f, 0x42, 0x4e, 0x42, 0x2e, 0xe6, 0x8a, 0xe4, 0x48, 0x35, 0x60, 0xf6, 0x0e, 0xf3, 0x62, 0x91, - 0x78, 0x42, 0x43, 0x25, 0xe7, 0xa1, 0xfc, 0x54, 0x66, 0x95, 0xa8, 0x7c, 0x69, 0x44, 0x28, 0xf9, - 0x30, 0xae, 0x5b, 0x1f, 0xa5, 0x21, 0x8b, 0x66, 0x3c, 0x50, 0x8f, 0xe1, 0x61, 0x96, 0x3b, 0x39, - 0xdb, 0x89, 0xc4, 0x51, 0x09, 0x69, 0x19, 0x81, 0x2a, 0xa6, 0x47, 0x7b, 0xbb, 0xcc, 0xfe, 0xde, - 0x2e, 0x1b, 0xf7, 0x76, 0x75, 0xee, 0xcf, 0x3d, 0x6a, 0x50, 0x8f, 0xca, 0x78, 0x19, 0x8c, 0x13, - 0x9e, 0x30, 0x9f, 0xf4, 0x84, 0x0d, 0xe9, 0x09, 0x0b, 0x07, 0x27, 0xb6, 0xe8, 0x25, 0x17, 0x00, - 0x98, 0xb1, 0xc9, 0xa4, 0x9b, 0x2c, 0xa2, 0x9b, 0x2c, 0x72, 0x08, 0xfa, 0xc9, 0xb8, 0x13, 0x85, - 0xb8, 0x13, 0x4d, 0xc6, 0xee, 0xd2, 0x51, 0x62, 0x77, 0x79, 0x92, 0xd8, 0xad, 0xae, 0x41, 0x11, - 0x6f, 0x0a, 0x75, 0xec, 0x65, 0xc8, 0xa1, 0x77, 0xf5, 0x55, 0x6c, 0x2e, 0xaa, 0x62, 0xc2, 0x2f, - 0x4b, 0x84, 0x91, 0x0a, 0xf6, 0x9d, 0x14, 0x54, 0x82, 0x6c, 0x0f, 0x17, 0x5d, 0x85, 0x92, 0x70, - 0xe1, 0x5c, 0x85, 0xfc, 0x95, 0x2f, 0x0c, 0xac, 0xec, 0xe3, 0x87, 0x23, 0x0d, 0x36, 0x83, 0xb4, - 0x71, 0xd4, 0x7e, 0xf5, 0x9f, 0x28, 0xf2, 0x00, 0x1c, 0xed, 0xf9, 0xd9, 0xf4, 0x2d, 0xdf, 0xa6, - 0x67, 0x00, 0xd6, 0x1f, 0x3f, 0x6c, 0x6a, 0x4b, 0xab, 0xf7, 0x5b, 0x6b, 0xd5, 0x17, 0x48, 0x11, - 0xb2, 0xe2, 0xa7, 0xc2, 0xcd, 0xfd, 0x7e, 0xf3, 0xfe, 0x72, 0x53, 0xab, 0xa6, 0x48, 0x15, 0xca, - 0xef, 0x3e, 0x68, 0xad, 0xb5, 0xb5, 0xe6, 0x7f, 0x3e, 0x6e, 0xae, 0x3f, 0xaa, 0xa6, 0xd5, 0xaf, - 0x29, 0x70, 0xba, 0xd5, 0xed, 0xd9, 0x4e, 0xf0, 0x26, 0x4b, 0x04, 0xcc, 0x43, 0xbe, 0xe7, 0x5e, - 0x85, 0xac, 0xc3, 0x5c, 0x59, 0x53, 0xde, 0x5f, 0x4f, 0x05, 0xa2, 0xfa, 0xef, 0x50, 0x7d, 0xd7, - 0x36, 0xad, 0x71, 0xe3, 0xec, 0x7f, 0xc0, 0x09, 0x8e, 0xfe, 0xc8, 0xee, 0xa3, 0x03, 0xb0, 0x3c, - 0x9f, 0xe6, 0x02, 0x54, 0xbc, 0x00, 0x18, 0x12, 0x96, 0x43, 0x60, 0xcb, 0x50, 0xef, 0xc3, 0x89, - 0xbb, 0xa6, 0xbe, 0x35, 0xad, 0x07, 0xc0, 0x5f, 0xd2, 0x30, 0x37, 0x10, 0xef, 0xc7, 0x0c, 0xf4, - 0x7c, 0x5d, 0x7b, 0xc7, 0x62, 0x11, 0xd7, 0x93, 0xc7, 0x71, 0xcb, 0x20, 0xd7, 0x13, 0x4f, 0x98, - 0xd2, 0xe2, 0xe9, 0x01, 0x41, 0xae, 0x7b, 0x8e, 0x69, 0x6d, 0x0a, 0x51, 0x86, 0x09, 0xf9, 0x71, - 0xc8, 0xba, 0xba, 0xed, 0x30, 0x74, 0x4c, 0x69, 0x4d, 0x0c, 0xb8, 0xdf, 0x71, 0xfb, 0x1b, 0x62, - 0x22, 0x8b, 0x13, 0xc1, 0x98, 0x7b, 0x02, 0xab, 0xdf, 0x6d, 0x8b, 0x49, 0x99, 0x4e, 0x59, 0xfd, - 0xee, 0xba, 0x4f, 0x18, 0x38, 0xac, 0x7c, 0xc2, 0x61, 0x25, 0xbc, 0x44, 0xe1, 0x28, 0x5e, 0xa2, - 0x38, 0x51, 0x86, 0x7f, 0x03, 0x4a, 0x6c, 0xb7, 0x67, 0x3a, 0xb2, 0x73, 0x00, 0x07, 0x13, 0x0b, - 0x74, 0x24, 0x26, 0x90, 0x71, 0xa8, 0xb5, 0x85, 0x5e, 0x2d, 0xad, 0xe1, 0x6f, 0xa2, 0x42, 0x85, - 0x7b, 0xc3, 0x50, 0x0e, 0xdc, 0x6b, 0x55, 0xb4, 0x52, 0x97, 0xee, 0xae, 0x49, 0x51, 0xa8, 0xbf, - 0x53, 0xe0, 0xc4, 0xc0, 0x5d, 0xa3, 0x4b, 0xb9, 0x06, 0x79, 0x07, 0x47, 0xbe, 0x3b, 0x89, 0x55, - 0x08, 0x06, 0xf3, 0x41, 0x1f, 0x9b, 0x2c, 0x43, 0x45, 0x68, 0x80, 0x4f, 0x9e, 0x1a, 0x87, 0xbc, - 0x8c, 0x34, 0x9a, 0x5c, 0x23, 0x91, 0xea, 0xa7, 0x0f, 0x4a, 0xf5, 0x33, 0x03, 0xa9, 0x7e, 0x03, - 0x75, 0x78, 0x7b, 0xec, 0x4c, 0xf7, 0xff, 0xe1, 0xd8, 0x3d, 0xd3, 0xda, 0x9a, 0x52, 0x01, 0x68, - 0xd2, 0x82, 0xcd, 0xaf, 0x14, 0xa8, 0x73, 0xa9, 0xc7, 0xdf, 0x3e, 0x81, 0x1d, 0x1f, 0xf0, 0x70, - 0x7e, 0x0d, 0xb2, 0x1d, 0xb3, 0x6b, 0x7a, 0x63, 0xf9, 0x5a, 0xc4, 0x24, 0xaf, 0x43, 0xfe, 0xa9, - 0xed, 0xec, 0x50, 0xc7, 0x18, 0x99, 0x36, 0x86, 0x3c, 0xfa, 0xa8, 0x91, 0x00, 0x91, 0x89, 0x05, - 0xa4, 0x0f, 0x15, 0x20, 0x9c, 0xfd, 0x84, 0xb7, 0x0d, 0xf8, 0x52, 0xc6, 0xe6, 0x6b, 0xf2, 0xb0, - 0x11, 0x61, 0x2a, 0x1d, 0x63, 0xca, 0x81, 0x39, 0xce, 0x13, 0x2a, 0x80, 0xbb, 0xdf, 0x53, 0x6f, - 0x44, 0xd8, 0x0b, 0xd9, 0x4f, 0x8f, 0xcb, 0xbe, 0xfa, 0x73, 0x6e, 0x4e, 0xfe, 0xa6, 0xe3, 0xba, - 0xe2, 0x43, 0x5c, 0x5f, 0x20, 0xa6, 0xf4, 0x21, 0xc4, 0x14, 0xbf, 0xbb, 0x4f, 0x15, 0xb8, 0xc4, - 0x59, 0x1e, 0x30, 0x49, 0x77, 0xc9, 0xb1, 0xfb, 0x96, 0xf1, 0x40, 0xd8, 0xe5, 0x24, 0xaf, 0x3d, - 0xb2, 0x18, 0x3f, 0xd1, 0xa0, 0x9b, 0x7f, 0x3c, 0x78, 0xa4, 0x68, 0xe0, 0x48, 0xc7, 0x03, 0xc7, - 0x15, 0xc8, 0x09, 0x57, 0x27, 0xed, 0x69, 0xe8, 0x71, 0xaf, 0xbe, 0x2e, 0x0b, 0x66, 0x02, 0x55, - 0xfd, 0xb3, 0x02, 0x0b, 0xc3, 0xcf, 0x35, 0xe1, 0x61, 0x4e, 0x41, 0xd1, 0x67, 0xcc, 0x0f, 0x95, - 0x05, 0xc9, 0x99, 0x7b, 0x08, 0x1d, 0x19, 0x75, 0x11, 0x91, 0x53, 0x66, 0xc7, 0x3f, 0xe5, 0x9f, - 0x52, 0xc2, 0xf2, 0xee, 0x53, 0x4f, 0x7f, 0xc6, 0x8e, 0x62, 0x79, 0xb7, 0xa0, 0x42, 0xfb, 0xde, - 0x33, 0xdb, 0x31, 0x3d, 0xea, 0x99, 0xdb, 0xe3, 0xd4, 0x26, 0xe3, 0x04, 0x78, 0xeb, 0x74, 0x83, - 0x75, 0xc6, 0x0a, 0xee, 0x02, 0x15, 0x6b, 0x41, 0xa6, 0xd5, 0x76, 0xcd, 0x0f, 0xd8, 0x7e, 0x97, - 0xeb, 0xf3, 0x9a, 0xef, 0x9a, 0xd6, 0xba, 0xf9, 0x01, 0x43, 0x3a, 0xba, 0x2b, 0xe8, 0xb2, 0xe3, - 0xd0, 0xd1, 0x5d, 0xa4, 0x5b, 0x84, 0xec, 0xfb, 0x7d, 0xe6, 0xec, 0xc9, 0xc6, 0xfc, 0x01, 0x3c, - 0x22, 0xaa, 0xba, 0x0b, 0x35, 0x2e, 0xe2, 0xa1, 0x95, 0x8b, 0x43, 0x08, 0xfa, 0x65, 0xa8, 0xea, - 0x54, 0x7f, 0xc6, 0xe8, 0x46, 0x87, 0xc5, 0x6b, 0x59, 0xb3, 0x01, 0x5c, 0x06, 0xb1, 0x1f, 0x2a, - 0x30, 0xcf, 0xb7, 0x1e, 0x5e, 0x9f, 0xf8, 0x17, 0xc8, 0xcb, 0x14, 0x4e, 0x2a, 0x6e, 0x4e, 0x64, - 0x70, 0x89, 0x1a, 0x49, 0x6a, 0xa0, 0x46, 0x32, 0x3d, 0xa5, 0x55, 0x7f, 0xa3, 0xc0, 0x45, 0xce, - 0x61, 0x34, 0x73, 0x1d, 0xe5, 0x3c, 0xc6, 0xc9, 0x65, 0xbf, 0x10, 0xae, 0xe3, 0x8f, 0x0a, 0x9c, - 0x1e, 0x7a, 0xa8, 0x89, 0x4e, 0xf2, 0x85, 0xf6, 0x1b, 0x7f, 0x48, 0xc1, 0xc9, 0xf8, 0x11, 0x83, - 0xc3, 0xad, 0xc0, 0x8c, 0x4e, 0x3d, 0xb6, 0x69, 0x3b, 0x7b, 0x6d, 0xd7, 0xa3, 0x8e, 0xaf, 0xdb, - 0xfb, 0x5f, 0x45, 0xc5, 0xa7, 0x59, 0xe7, 0x24, 0xe4, 0x1d, 0x28, 0x07, 0x8b, 0x30, 0xcb, 0x18, - 0xeb, 0x36, 0x4b, 0x3e, 0x45, 0xd3, 0x32, 0xc8, 0x0d, 0x00, 0xdc, 0x5c, 0x24, 0xc3, 0xe9, 0x31, - 0xc8, 0x8b, 0x88, 0x8f, 0xd9, 0xf0, 0x35, 0x28, 0x30, 0xcb, 0x10, 0xa4, 0x99, 0x31, 0x48, 0xf3, - 0xcc, 0x32, 0x90, 0x30, 0xb8, 0x96, 0xdc, 0x21, 0xae, 0xa5, 0x10, 0xb3, 0x8c, 0x9f, 0xc9, 0x54, - 0x80, 0x67, 0x01, 0xf1, 0x1c, 0x64, 0xa4, 0xdd, 0x7e, 0xbe, 0x89, 0xc0, 0x37, 0x15, 0xc8, 0x62, - 0x18, 0xe1, 0xf6, 0xd4, 0xe5, 0x3f, 0x22, 0xb9, 0x0a, 0x8e, 0x5b, 0x06, 0x79, 0x71, 0x58, 0x94, - 0x28, 0x4c, 0x23, 0x12, 0x10, 0xc8, 0x04, 0x51, 0x20, 0xab, 0xe1, 0x6f, 0xf5, 0x3a, 0x14, 0x91, - 0x23, 0x7c, 0x90, 0xbc, 0x02, 0x82, 0x0b, 0x36, 0xb4, 0x72, 0x82, 0x78, 0x9a, 0x8f, 0xc1, 0x4d, - 0xb8, 0x1c, 0x75, 0xd8, 0x03, 0x45, 0xb2, 0x1a, 0xe4, 0xdd, 0x3e, 0xfa, 0x53, 0xff, 0x99, 0x2a, - 0x87, 0xd1, 0xee, 0x4f, 0x3a, 0xde, 0xfd, 0x21, 0xb2, 0x03, 0x25, 0x59, 0x1c, 0x6c, 0x32, 0x65, - 0x13, 0x4d, 0xa6, 0xc4, 0x63, 0x32, 0x37, 0xd1, 0x63, 0xf2, 0x4c, 0xac, 0xe3, 0x93, 0x47, 0x39, - 0x47, 0x20, 0xea, 0x97, 0xa0, 0x1a, 0x3d, 0x21, 0xca, 0xe8, 0x26, 0x54, 0xac, 0x68, 0x98, 0x92, - 0x92, 0x8a, 0xf5, 0x24, 0xa3, 0x44, 0x5a, 0x1c, 0x7d, 0x92, 0xd8, 0xf4, 0x10, 0x6a, 0x0f, 0x1d, - 0xbb, 0x6b, 0xcb, 0x66, 0xc2, 0x14, 0xea, 0x0e, 0xef, 0xc1, 0x31, 0x8d, 0x51, 0xe3, 0xe8, 0x15, - 0xff, 0x88, 0x81, 0xa5, 0xa3, 0x06, 0xa6, 0xfe, 0x2f, 0xcc, 0x0f, 0xec, 0x10, 0x30, 0x7d, 0x73, - 0x48, 0xb9, 0xff, 0x6c, 0x54, 0x70, 0x43, 0x98, 0x8b, 0x16, 0xfb, 0xdf, 0x85, 0xb4, 0xd6, 0xd3, - 0x87, 0x29, 0x5a, 0x8f, 0xee, 0x75, 0x6c, 0x1a, 0xd4, 0x43, 0xe4, 0x90, 0x8b, 0xe2, 0x99, 0xe7, - 0xf5, 0xda, 0x9c, 0x7b, 0xa9, 0x69, 0x7c, 0x7c, 0x97, 0xed, 0xa9, 0x6f, 0x42, 0x7e, 0x9d, 0xb9, - 0x2e, 0x3f, 0x1e, 0x57, 0x47, 0x54, 0x0a, 0xb1, 0x68, 0x41, 0xf3, 0x87, 0xe1, 0xd7, 0x3b, 0xa9, - 0xc8, 0xd7, 0x3b, 0xea, 0xef, 0x53, 0x50, 0x89, 0x71, 0x39, 0x45, 0x01, 0x86, 0x45, 0xff, 0x4c, - 0xa4, 0xe8, 0x1f, 0xed, 0xb0, 0x64, 0x63, 0x1d, 0x16, 0x72, 0x11, 0x66, 0x7b, 0xcc, 0xe9, 0x9a, - 0x78, 0x94, 0xb6, 0xc3, 0xa8, 0x21, 0x8b, 0x31, 0x33, 0x21, 0x98, 0x8b, 0x95, 0x2b, 0x5e, 0x04, - 0x71, 0xc7, 0x31, 0x3d, 0xd1, 0x5d, 0xcd, 0x6a, 0x91, 0x05, 0xfe, 0x8b, 0x83, 0x3f, 0xbf, 0x0a, - 0x8d, 0xba, 0x03, 0xd5, 0x98, 0x64, 0x97, 0xf4, 0xad, 0x69, 0xf6, 0xa3, 0xa2, 0x62, 0xcf, 0xc4, - 0xf4, 0xb6, 0x09, 0x73, 0xc9, 0x8d, 0x5d, 0xf2, 0x2a, 0x64, 0xa8, 0xbe, 0xe5, 0x6b, 0xea, 0xe9, - 0xa8, 0xa6, 0x26, 0x91, 0x35, 0xc4, 0x54, 0x9b, 0x30, 0x13, 0x57, 0x7d, 0x72, 0x05, 0xf2, 0x42, - 0x81, 0xfd, 0x65, 0xe6, 0x47, 0x2e, 0xa3, 0xf9, 0x98, 0xea, 0x7b, 0x09, 0x6e, 0xd0, 0xf3, 0x1c, - 0x66, 0xa5, 0x91, 0x05, 0xee, 0x4f, 0x32, 0x00, 0x61, 0x66, 0x32, 0x60, 0x52, 0x5c, 0xf1, 0x4d, - 0xaf, 0x13, 0xb4, 0x9e, 0x70, 0x90, 0xec, 0x61, 0xa4, 0x07, 0x7b, 0x18, 0x75, 0x28, 0xf8, 0x29, - 0x06, 0x0a, 0xb8, 0xa2, 0x05, 0x63, 0xb2, 0x00, 0xe0, 0xda, 0x8e, 0xd7, 0xb6, 0x1d, 0x83, 0x39, - 0xa8, 0xc6, 0x15, 0xad, 0xc8, 0x21, 0x0f, 0x38, 0x20, 0x88, 0x4e, 0x39, 0x9c, 0xc0, 0xdf, 0x22, - 0x4c, 0xca, 0x37, 0x48, 0x1e, 0xe1, 0xc1, 0x33, 0x63, 0xa0, 0xf4, 0x56, 0x18, 0x28, 0xbd, 0xe1, - 0x67, 0xc4, 0xd4, 0x6a, 0xe3, 0xf7, 0x35, 0xa8, 0x88, 0x05, 0xce, 0x8e, 0xd5, 0xc4, 0x2f, 0x2f, - 0x17, 0x00, 0x78, 0x06, 0x43, 0x75, 0x0c, 0xb2, 0x20, 0xd8, 0x61, 0x96, 0xb1, 0x84, 0x00, 0x3e, - 0x8d, 0xf5, 0x31, 0x51, 0x95, 0x2e, 0x89, 0x69, 0x0e, 0xd1, 0x38, 0x20, 0x56, 0xe0, 0x2c, 0xef, - 0x5f, 0xe0, 0xac, 0x4c, 0x64, 0x3e, 0x6f, 0xc6, 0xb2, 0xb2, 0x99, 0x83, 0x1b, 0x8e, 0x61, 0x4e, - 0xf6, 0x46, 0x24, 0x27, 0x9b, 0x3d, 0x90, 0x30, 0xc8, 0xc8, 0xea, 0x50, 0x30, 0xfa, 0x0e, 0x86, - 0xa7, 0x5a, 0x55, 0xdc, 0x99, 0x3f, 0x26, 0xe7, 0xa1, 0x2c, 0xb8, 0x91, 0x62, 0x9a, 0x13, 0x42, - 0x46, 0x98, 0x10, 0x94, 0xba, 0x01, 0x33, 0xa1, 0x22, 0xa1, 0xa2, 0x5e, 0x87, 0x52, 0x98, 0xa6, - 0xfb, 0xca, 0x7a, 0x32, 0xaa, 0xac, 0x91, 0xb4, 0x3f, 0x8a, 0x3a, 0x52, 0x5b, 0x3f, 0x55, 0xe0, - 0x78, 0xf2, 0xa9, 0xf0, 0xcf, 0x50, 0x42, 0xfd, 0x7b, 0x0a, 0x8e, 0x3f, 0x46, 0xef, 0x27, 0xeb, - 0x9c, 0x7e, 0xa4, 0x8c, 0x16, 0xf2, 0x95, 0x89, 0x0a, 0xf9, 0xef, 0x40, 0xd9, 0x30, 0xdd, 0x5e, - 0x87, 0xee, 0x89, 0x8f, 0x51, 0x52, 0x63, 0x50, 0x97, 0x24, 0x05, 0x7e, 0xad, 0x72, 0x23, 0xd6, - 0x4f, 0x1c, 0x27, 0xbd, 0x8c, 0x74, 0x1b, 0xaf, 0x45, 0x7a, 0x98, 0x99, 0x31, 0x48, 0x83, 0x0e, - 0xe7, 0x75, 0x28, 0x74, 0x6c, 0x91, 0x23, 0xc9, 0x47, 0xd6, 0x01, 0x07, 0xf6, 0xb1, 0x39, 0x25, - 0xd7, 0xf8, 0x0f, 0x6c, 0x8b, 0x8d, 0x55, 0x72, 0x08, 0xb0, 0xd5, 0x4f, 0x52, 0x40, 0x84, 0xf4, - 0xc7, 0x2c, 0x61, 0xf3, 0x80, 0x30, 0xb6, 0x50, 0x45, 0xe5, 0xf3, 0xe6, 0xa0, 0xcb, 0x3c, 0xf8, - 0x36, 0x22, 0x0e, 0xf5, 0xd0, 0x02, 0x8d, 0x5f, 0x63, 0x76, 0xb2, 0x6b, 0xf4, 0x9b, 0xc6, 0xb9, - 0xf1, 0x9a, 0xc6, 0xea, 0x87, 0x19, 0xc8, 0x60, 0xe7, 0x32, 0x19, 0x47, 0xa2, 0xdf, 0x80, 0xa5, - 0x12, 0xdf, 0x80, 0x9d, 0x4f, 0x68, 0xaa, 0x1f, 0x4e, 0x22, 0xba, 0x78, 0xc0, 0x57, 0x3e, 0xfb, - 0x77, 0xcc, 0x03, 0x7d, 0x92, 0x1d, 0xf3, 0x40, 0x63, 0xea, 0x11, 0x8d, 0x91, 0xcd, 0x29, 0x7f, - 0x1c, 0xf3, 0xeb, 0x85, 0x84, 0x5f, 0x3f, 0x0b, 0xa5, 0xc8, 0x27, 0x03, 0x18, 0x50, 0x8a, 0x1a, - 0x84, 0x5f, 0x0c, 0xf0, 0x78, 0x23, 0x24, 0xc5, 0xa7, 0xe5, 0x57, 0x60, 0x02, 0xd0, 0x32, 0xc8, - 0x05, 0xa8, 0x6c, 0xd2, 0x2e, 0xd3, 0x31, 0x1a, 0x85, 0x9f, 0x82, 0x95, 0x43, 0xa0, 0xc8, 0xdd, - 0x5d, 0x8f, 0x51, 0xfc, 0xbf, 0x97, 0xb2, 0x7c, 0x34, 0xf1, 0x71, 0x0b, 0x3b, 0x03, 0xb6, 0xd5, - 0x31, 0x2d, 0x11, 0x50, 0x0a, 0x9a, 0x1c, 0x25, 0x1a, 0xf6, 0x33, 0xc9, 0x86, 0x7d, 0x22, 0x18, - 0xcd, 0x1e, 0x25, 0x97, 0xab, 0x4e, 0x94, 0xcb, 0x7d, 0x2f, 0x05, 0x95, 0xe0, 0x69, 0xee, 0xf7, - 0xd0, 0x31, 0xfb, 0x8a, 0x75, 0xe7, 0x2f, 0x24, 0xdb, 0xdb, 0x01, 0x7e, 0x38, 0xd2, 0xa0, 0x1f, - 0xbc, 0xf1, 0x47, 0xf6, 0xd0, 0x3f, 0x56, 0xa0, 0x18, 0x50, 0x90, 0x8b, 0x90, 0xc5, 0x6d, 0xa4, - 0xfb, 0x1c, 0xf2, 0x0d, 0x80, 0x98, 0xff, 0x7c, 0xda, 0xe8, 0x97, 0x21, 0x2b, 0x3e, 0x08, 0xf8, - 0x57, 0xc8, 0x46, 0x3f, 0x28, 0x18, 0xec, 0xf5, 0x8b, 0x69, 0xf5, 0xeb, 0x29, 0x58, 0xc0, 0xe4, - 0xfc, 0x88, 0x9f, 0x89, 0x91, 0xff, 0x86, 0x9c, 0x08, 0x79, 0xf2, 0xbc, 0xb7, 0xa2, 0x3b, 0xee, - 0xbb, 0xc3, 0x60, 0x3c, 0x44, 0x74, 0x4d, 0xae, 0x57, 0x7f, 0x0a, 0x27, 0x87, 0x63, 0x84, 0xcd, - 0x65, 0x65, 0x54, 0x73, 0x39, 0x95, 0x68, 0x2e, 0x47, 0xcd, 0x30, 0x1d, 0x37, 0x43, 0xf5, 0xab, - 0x29, 0x20, 0xb8, 0xee, 0x51, 0xdf, 0x60, 0xc1, 0x53, 0x2b, 0x3d, 0xe2, 0xa9, 0x95, 0x89, 0x3f, - 0x1e, 0x56, 0x07, 0x9f, 0x5a, 0x63, 0x14, 0xc6, 0x93, 0xef, 0xb0, 0xdb, 0x43, 0xde, 0x61, 0x63, - 0xd4, 0xc2, 0x92, 0x8f, 0x34, 0xf5, 0x09, 0xd4, 0x07, 0xa5, 0xe0, 0x86, 0x09, 0x44, 0xe2, 0xb1, - 0x70, 0x66, 0xe0, 0x9e, 0x47, 0xbc, 0x3d, 0xbe, 0x92, 0x82, 0xd3, 0x38, 0x9f, 0x4c, 0xb8, 0x26, - 0x2a, 0xcd, 0x3e, 0x49, 0xa8, 0xd9, 0xcd, 0x81, 0xed, 0x47, 0x2c, 0xdf, 0x48, 0xc2, 0xe3, 0x4a, - 0xc6, 0xe0, 0xc4, 0x50, 0x84, 0xe9, 0xea, 0xd8, 0xf2, 0xdb, 0x30, 0xaf, 0xdb, 0xdd, 0xc6, 0x33, - 0xe6, 0xd8, 0xa6, 0xde, 0xa1, 0x1b, 0x6e, 0x84, 0xfd, 0xe5, 0xe2, 0x1a, 0xfe, 0x5e, 0xea, 0x99, - 0x0f, 0x95, 0xff, 0x49, 0xd3, 0x9e, 0xf9, 0xe3, 0x54, 0x66, 0xed, 0xee, 0xc3, 0xe5, 0x9f, 0xa6, - 0x72, 0x62, 0x66, 0x23, 0x87, 0x37, 0x78, 0xe5, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x69, 0x3b, - 0xc1, 0xc8, 0xb9, 0x39, 0x00, 0x00, + 0xb1, 0x1e, 0xfe, 0x59, 0x5c, 0xee, 0x72, 0x5b, 0x9f, 0xc7, 0xa5, 0xb4, 0xfa, 0x8c, 0x6c, 0x4b, + 0x86, 0xfd, 0x28, 0x7b, 0x65, 0x4b, 0xb2, 0xf5, 0x2c, 0x6b, 0x3f, 0x94, 0x40, 0x4b, 0x5a, 0xe9, + 0xcd, 0x4a, 0x7a, 0x0f, 0xef, 0x1d, 0xe8, 0xde, 0x99, 0xde, 0xd5, 0xbc, 0x25, 0x67, 0xe8, 0x99, + 0xe1, 0x7e, 0x8c, 0xf7, 0x80, 0x87, 0x20, 0x40, 0x72, 0x0a, 0x92, 0x00, 0x49, 0x10, 0x04, 0x48, + 0x82, 0x1c, 0x02, 0x3b, 0x87, 0x20, 0x39, 0xe4, 0x12, 0xe4, 0xee, 0x04, 0xb9, 0x05, 0x71, 0x90, + 0x5b, 0x12, 0xe4, 0x14, 0x20, 0xb7, 0x1c, 0x73, 0x09, 0xba, 0xba, 0xe7, 0x4b, 0x72, 0x97, 0xdc, + 0xa5, 0x6c, 0x23, 0x97, 0x05, 0xbb, 0xba, 0xaa, 0xa7, 0xaa, 0xba, 0xba, 0xaa, 0xba, 0xaa, 0x17, + 0xca, 0xb4, 0x6b, 0x5e, 0xa6, 0x5d, 0xb3, 0xde, 0x75, 0x6c, 0xcf, 0x26, 0x60, 0xd1, 0x2d, 0xda, + 0xa1, 0x75, 0xda, 0x35, 0x6b, 0x67, 0x37, 0x6d, 0x7b, 0xb3, 0xcd, 0x2e, 0xe3, 0xcc, 0x7a, 0x6f, + 0xe3, 0xb2, 0x67, 0x76, 0x98, 0xeb, 0xd1, 0x4e, 0x57, 0x20, 0xd7, 0xce, 0x24, 0x11, 0x76, 0x1c, + 0xda, 0xed, 0x32, 0xc7, 0x15, 0xf3, 0xea, 0x5f, 0x15, 0xc8, 0x2f, 0xea, 0xba, 0xdd, 0xb3, 0x3c, + 0xf2, 0x3c, 0x64, 0x7a, 0x2e, 0x73, 0xaa, 0xca, 0x39, 0xe5, 0x52, 0x69, 0xa1, 0x52, 0x0f, 0xbf, + 0x53, 0x7f, 0xec, 0x32, 0x47, 0xc3, 0x59, 0x72, 0x12, 0x72, 0x3b, 0xb4, 0xdd, 0x66, 0x5e, 0x35, + 0x75, 0x4e, 0xb9, 0x54, 0xd4, 0xe4, 0x88, 0x1c, 0x87, 0x2c, 0xeb, 0x50, 0xb3, 0x5d, 0x4d, 0x23, + 0x58, 0x0c, 0xc8, 0x15, 0xc8, 0x1b, 0x6c, 0xdb, 0xd4, 0x99, 0x5b, 0xcd, 0x9c, 0x4b, 0x5f, 0x2a, + 0x2d, 0xcc, 0x45, 0x97, 0x95, 0x5f, 0x5e, 0x41, 0x0c, 0xcd, 0xc7, 0x24, 0xa7, 0xa0, 0xa8, 0xf7, + 0x5c, 0xcf, 0xee, 0xb4, 0x4c, 0xa3, 0x9a, 0xc5, 0xe5, 0x0a, 0x02, 0xd0, 0x34, 0xc8, 0x0d, 0x28, + 0x6d, 0x33, 0xc7, 0xdc, 0xd8, 0x6b, 0x71, 0x59, 0xab, 0x39, 0x64, 0xb6, 0x56, 0x17, 0x72, 0xd6, + 0x7d, 0x39, 0xeb, 0x8f, 0x7c, 0x45, 0x68, 0x20, 0xd0, 0x39, 0x40, 0xfd, 0x9a, 0x02, 0x65, 0xf9, + 0xd1, 0x65, 0x5c, 0x90, 0x4c, 0x43, 0xca, 0x34, 0x50, 0xe4, 0xa2, 0x96, 0x32, 0x0d, 0x72, 0x0d, + 0x32, 0xdb, 0xd4, 0x71, 0xab, 0x29, 0xe4, 0xf6, 0xc2, 0x00, 0x6e, 0x05, 0x61, 0xfd, 0x09, 0x75, + 0xdc, 0x86, 0xe5, 0x39, 0x7b, 0x1a, 0x12, 0xd4, 0xae, 0x41, 0x31, 0x00, 0x91, 0x0a, 0xa4, 0xb7, + 0xd8, 0x9e, 0x5c, 0x96, 0xff, 0xe4, 0xea, 0xd9, 0xa6, 0xed, 0x1e, 0x93, 0x5a, 0x13, 0x83, 0xb7, + 0x52, 0xd7, 0x95, 0x28, 0x4f, 0x42, 0x11, 0x87, 0xe0, 0x49, 0x10, 0x4e, 0x8e, 0xa7, 0x9f, 0x2a, + 0x30, 0x25, 0x97, 0x6e, 0xe0, 0x3e, 0x06, 0xbb, 0xab, 0x44, 0x77, 0xb7, 0x06, 0x85, 0x2e, 0x75, + 0xdd, 0x1d, 0xdb, 0x31, 0xe4, 0x1a, 0xc1, 0x98, 0x5c, 0x95, 0x4c, 0xa7, 0x91, 0x69, 0x75, 0x00, + 0xd3, 0xb8, 0xf2, 0xe4, 0x78, 0xfe, 0x8e, 0x02, 0x33, 0x72, 0xe5, 0xdb, 0x54, 0x67, 0xeb, 0xb6, + 0xbd, 0xc5, 0xb1, 0x3d, 0x7b, 0x8b, 0x59, 0x3e, 0xdb, 0x38, 0x20, 0x6f, 0xc6, 0xf4, 0xf9, 0xc2, + 0x00, 0xd6, 0xfc, 0x05, 0x26, 0xc7, 0xdd, 0xaf, 0x14, 0xa8, 0x25, 0x16, 0x6f, 0x5a, 0xae, 0x47, + 0x2d, 0xef, 0x0e, 0xed, 0x30, 0xf2, 0x0a, 0x10, 0xd7, 0xdc, 0xb4, 0x98, 0xd1, 0xea, 0xb6, 0xe9, + 0x1e, 0x73, 0x5a, 0xa6, 0xb5, 0x61, 0xcb, 0x95, 0x2b, 0x62, 0xe6, 0x21, 0x4e, 0x34, 0xad, 0x0d, + 0x9b, 0xac, 0xc4, 0x04, 0x78, 0x75, 0x1f, 0x01, 0x22, 0xdf, 0x98, 0x9c, 0x2c, 0xbf, 0x4c, 0xc1, + 0xac, 0xfc, 0x0e, 0x5f, 0x78, 0x99, 0x59, 0x1e, 0x73, 0xf8, 0xa9, 0xf5, 0x79, 0xf7, 0x8d, 0xb7, + 0x20, 0x00, 0x4d, 0x83, 0x4f, 0xae, 0xf7, 0x2c, 0xa3, 0xcd, 0xf8, 0xa4, 0x34, 0x15, 0x01, 0x68, + 0x1a, 0xe4, 0x65, 0x98, 0x0d, 0xfc, 0x56, 0xcb, 0x65, 0xba, 0x6d, 0x19, 0x2e, 0xba, 0x91, 0xb4, + 0x56, 0x09, 0x26, 0xd6, 0x04, 0x9c, 0x10, 0xc8, 0xb8, 0xb4, 0xed, 0x55, 0x33, 0xb8, 0x08, 0xfe, + 0x26, 0xa7, 0xa1, 0xc8, 0x75, 0x44, 0xbd, 0x9e, 0xc3, 0xa4, 0xc3, 0x08, 0x01, 0xe4, 0x79, 0x98, + 0xee, 0xf6, 0xd6, 0xdb, 0xa6, 0xde, 0xda, 0x62, 0x7b, 0xad, 0x9e, 0xd3, 0x46, 0xa7, 0x51, 0xd4, + 0xa6, 0x04, 0xf4, 0x2e, 0xdb, 0x7b, 0xec, 0xb4, 0xc9, 0x0d, 0xa9, 0xd3, 0x3c, 0xea, 0xf4, 0xe2, + 0x00, 0x9d, 0x86, 0xb2, 0x4e, 0x4e, 0x95, 0xdf, 0x0a, 0x0f, 0xff, 0x1d, 0xf4, 0x60, 0x43, 0x4c, + 0xf6, 0x60, 0x17, 0x20, 0xc8, 0x27, 0xc7, 0xd9, 0x37, 0x42, 0x17, 0xb0, 0xe6, 0x31, 0xda, 0x19, + 0xc2, 0xd8, 0xd5, 0x18, 0x63, 0x83, 0x8e, 0x39, 0x52, 0x4f, 0x8e, 0xaf, 0x65, 0x98, 0x5d, 0x34, + 0x8c, 0xdb, 0x8e, 0xc9, 0x2c, 0xc3, 0xd5, 0xd8, 0xfb, 0x3d, 0xe6, 0x7a, 0x7c, 0x01, 0xd3, 0x70, + 0xab, 0xca, 0xb9, 0x34, 0x5f, 0xc0, 0x34, 0x5c, 0x6e, 0x12, 0x3c, 0x5c, 0x59, 0xb4, 0xc3, 0x04, + 0x73, 0x45, 0x2d, 0x04, 0xa8, 0xf7, 0xe0, 0xf8, 0xa2, 0x61, 0xdc, 0x71, 0xec, 0x5e, 0x97, 0x87, + 0xb6, 0x60, 0x9d, 0x39, 0x28, 0x6c, 0x72, 0x60, 0x68, 0xc2, 0x79, 0x1c, 0x37, 0x0d, 0x3e, 0xc5, + 0xe9, 0x5b, 0xfc, 0x3b, 0x62, 0xbd, 0x3c, 0x1f, 0x37, 0x0d, 0x57, 0xfd, 0xbe, 0x02, 0x73, 0x8b, + 0x3d, 0xef, 0x29, 0xb3, 0x3c, 0x53, 0xa7, 0x1e, 0x13, 0x11, 0xc2, 0x5f, 0xf3, 0x0a, 0xe4, 0xa9, + 0xd0, 0x84, 0x8c, 0xac, 0x73, 0x43, 0x83, 0x8a, 0xe6, 0x63, 0x92, 0x05, 0xc8, 0xe9, 0x0e, 0xa3, + 0x9e, 0x50, 0xc0, 0xa0, 0x00, 0xb7, 0x64, 0xdb, 0xed, 0x27, 0x5c, 0x2b, 0x9a, 0xc4, 0xe4, 0xde, + 0xd8, 0x97, 0x50, 0x06, 0xe1, 0x60, 0xdc, 0xc7, 0xa2, 0x0c, 0xb9, 0xe3, 0xb0, 0xe8, 0x47, 0xe9, + 0x67, 0xc5, 0xe2, 0x77, 0x15, 0xa8, 0x46, 0x59, 0xc4, 0xf0, 0xe0, 0x73, 0xb8, 0x90, 0xe4, 0xb0, + 0x3a, 0x2c, 0xa0, 0x3c, 0x3b, 0x06, 0x7f, 0xab, 0xc0, 0xa9, 0x28, 0x83, 0xbe, 0x8f, 0xf5, 0x79, + 0x7c, 0x23, 0xc9, 0xe3, 0xa9, 0x7d, 0x1c, 0xf3, 0x33, 0x63, 0x93, 0xd4, 0x21, 0xe3, 0xee, 0x59, + 0x3a, 0x3a, 0xc8, 0xfd, 0x57, 0x43, 0x3c, 0xf5, 0xe7, 0x0a, 0xbc, 0x38, 0x48, 0xac, 0x48, 0xe8, + 0xf0, 0x25, 0xbc, 0x95, 0x94, 0xf0, 0xc5, 0xd1, 0x42, 0xcf, 0xb3, 0xdb, 0x93, 0x0f, 0x15, 0x98, + 0x8f, 0x32, 0x1f, 0xfa, 0x68, 0x9f, 0xe7, 0x6b, 0x49, 0x9e, 0xe7, 0xf7, 0x75, 0xed, 0x9f, 0xde, + 0x11, 0x14, 0x0e, 0x7b, 0xac, 0x23, 0x28, 0x49, 0x3e, 0xb5, 0x23, 0x88, 0xae, 0x7b, 0xac, 0x23, + 0x28, 0x28, 0x9e, 0x19, 0x83, 0xf7, 0xe0, 0xf8, 0x12, 0xb5, 0x26, 0xe5, 0xb7, 0x1b, 0x70, 0x6c, + 0xa9, 0x6d, 0xeb, 0x5b, 0x47, 0x0c, 0x26, 0xff, 0x9f, 0x81, 0xe9, 0xe5, 0xa7, 0xd4, 0xb2, 0x58, + 0xfb, 0x3e, 0x73, 0x5d, 0xba, 0xc9, 0xc8, 0x3c, 0x80, 0x2e, 0x20, 0x21, 0x47, 0x45, 0x09, 0x69, + 0x1a, 0x7c, 0xba, 0x23, 0x30, 0xc3, 0x74, 0xa8, 0x28, 0x21, 0x4d, 0x83, 0x5c, 0x86, 0x8c, 0x6e, + 0x1b, 0x42, 0x7a, 0xee, 0x45, 0x92, 0x3a, 0x6b, 0x5a, 0xde, 0x95, 0x05, 0x79, 0x84, 0x39, 0x22, + 0xcf, 0xae, 0x5c, 0x66, 0x19, 0x22, 0xf5, 0x12, 0x89, 0x51, 0x41, 0x00, 0x9a, 0x46, 0x4c, 0x9f, + 0xd9, 0x84, 0xaf, 0xa8, 0x42, 0x5e, 0xb7, 0x2d, 0x8f, 0x59, 0x9e, 0xcc, 0x89, 0xfc, 0x21, 0xbf, + 0x66, 0x89, 0xfd, 0x10, 0xd7, 0xac, 0xfc, 0xc1, 0xd7, 0x2c, 0x81, 0xce, 0x01, 0x9c, 0xb8, 0xd7, + 0x35, 0x02, 0xe2, 0xc2, 0xc1, 0xc4, 0x02, 0x1d, 0x89, 0xdf, 0x02, 0xe0, 0x17, 0x54, 0xd3, 0x45, + 0xb6, 0x8a, 0x07, 0xda, 0x4d, 0x04, 0x9b, 0x2b, 0xc2, 0xb1, 0xed, 0x4e, 0x0b, 0x85, 0x05, 0x21, + 0x2c, 0x07, 0xac, 0x72, 0x61, 0xa3, 0x46, 0x52, 0x8a, 0x1b, 0xc9, 0x19, 0x28, 0x49, 0x23, 0x69, + 0xd9, 0x16, 0xab, 0x4e, 0x89, 0x1d, 0x11, 0x76, 0xf2, 0xc0, 0x62, 0xd1, 0x79, 0x6f, 0xc7, 0xae, + 0x96, 0xa3, 0xf3, 0x8f, 0x76, 0x6c, 0xf5, 0x2b, 0x0a, 0x90, 0xb8, 0x09, 0xdc, 0x33, 0x5d, 0x8f, + 0x5c, 0x85, 0x82, 0xdc, 0x55, 0x61, 0x4e, 0x5c, 0x90, 0xc8, 0x99, 0x89, 0x53, 0x68, 0x01, 0x2e, + 0x39, 0x0b, 0x25, 0x8b, 0xed, 0x7a, 0x2d, 0xbd, 0xe7, 0xb8, 0xb6, 0x23, 0x0d, 0x04, 0x38, 0x68, + 0x19, 0x21, 0x1c, 0xa1, 0xeb, 0xb0, 0x6d, 0x1f, 0x41, 0x1c, 0x13, 0xe0, 0x20, 0x81, 0xa0, 0xfe, + 0x8c, 0x33, 0x84, 0x1b, 0x82, 0x87, 0xc5, 0x37, 0x6d, 0x02, 0x19, 0x54, 0x8d, 0xb0, 0x48, 0xfc, + 0x4d, 0xce, 0x41, 0xc9, 0x60, 0xae, 0xee, 0x98, 0x5d, 0xcf, 0xb4, 0x2d, 0xf9, 0xb1, 0x28, 0x88, + 0x2b, 0xae, 0x4d, 0xad, 0xcd, 0x96, 0x47, 0x37, 0xe5, 0xa7, 0xf2, 0x7c, 0xfc, 0x88, 0x6e, 0x72, + 0x4b, 0xa6, 0xdb, 0xd4, 0xa3, 0x0e, 0xe6, 0xd5, 0xc2, 0xf4, 0x8a, 0x02, 0xc2, 0x93, 0x6a, 0x02, + 0x19, 0xbb, 0xcb, 0x2c, 0xb4, 0xbb, 0x82, 0x86, 0xbf, 0xf9, 0x1e, 0x75, 0xe8, 0x6e, 0x4b, 0x78, + 0x12, 0x6e, 0x75, 0x59, 0xad, 0xd0, 0xa1, 0xbb, 0xcb, 0x7c, 0xac, 0xde, 0x86, 0xe3, 0x2b, 0xac, + 0xcd, 0x3c, 0x76, 0xc4, 0x33, 0x79, 0x19, 0x88, 0x58, 0x27, 0x26, 0xfe, 0x70, 0x37, 0xa1, 0xde, + 0x81, 0x33, 0x82, 0xe0, 0x1e, 0xa3, 0x06, 0x73, 0xd6, 0x6d, 0xea, 0x18, 0x1a, 0xd3, 0x6d, 0xfe, + 0x57, 0x10, 0xbf, 0x00, 0xd3, 0xed, 0x70, 0x2e, 0x5c, 0xa2, 0x1c, 0x81, 0x36, 0x0d, 0xb5, 0x0e, + 0x35, 0xb1, 0xd0, 0xaa, 0xed, 0x99, 0x1b, 0xdc, 0x8d, 0x9a, 0xb6, 0x35, 0x5c, 0x0e, 0x55, 0x87, + 0x13, 0x02, 0x7f, 0xcd, 0xb3, 0x1d, 0xba, 0xc9, 0x1e, 0xac, 0xff, 0x0f, 0xd3, 0x3d, 0xb4, 0x49, + 0xd0, 0xed, 0x76, 0x9b, 0xe9, 0xb8, 0x2d, 0xe2, 0x5b, 0x11, 0x88, 0x9f, 0x34, 0xa7, 0xc2, 0xa4, + 0xb9, 0x0a, 0xf9, 0x6d, 0x7e, 0x16, 0x6c, 0xcb, 0xdf, 0x26, 0x39, 0x54, 0x5b, 0x70, 0x6a, 0xc0, + 0x47, 0xdc, 0x30, 0xae, 0x83, 0x8d, 0x90, 0x96, 0xcf, 0x5c, 0x69, 0xe1, 0x7c, 0xd4, 0x52, 0x07, + 0x72, 0xa8, 0x15, 0x6d, 0xf9, 0xcb, 0x55, 0xff, 0xa6, 0x40, 0xb6, 0xb1, 0xcd, 0x8f, 0xe0, 0x20, + 0x13, 0x5b, 0x04, 0xe8, 0x3a, 0x76, 0x97, 0x39, 0x9e, 0xc9, 0xfc, 0xab, 0x42, 0x6c, 0x7d, 0x24, + 0xad, 0x3f, 0x0c, 0x70, 0xc4, 0x4d, 0x21, 0x42, 0x44, 0xae, 0x43, 0x31, 0xb8, 0x0a, 0x4a, 0xc7, + 0xb8, 0x9f, 0x43, 0x09, 0x91, 0xb9, 0xff, 0x63, 0xbb, 0x1e, 0x37, 0x0c, 0x61, 0xa0, 0x05, 0x2d, + 0x18, 0xd7, 0xde, 0x86, 0x99, 0xc4, 0x47, 0xc7, 0xba, 0x8b, 0x7c, 0xa4, 0x40, 0x4e, 0x18, 0xea, + 0x88, 0xc5, 0xb3, 0xd7, 0x20, 0xeb, 0x7a, 0x61, 0x38, 0xdc, 0xd7, 0xb5, 0x0b, 0x4c, 0xf5, 0x36, + 0x64, 0xd7, 0xf8, 0x0f, 0x02, 0x90, 0xbb, 0xad, 0x35, 0x1b, 0xab, 0x2b, 0x95, 0xe7, 0xc8, 0x0c, + 0x94, 0x9a, 0xab, 0x4f, 0x9a, 0x8f, 0x1a, 0xad, 0xb5, 0xc6, 0xea, 0xa3, 0x8a, 0x42, 0x8e, 0xc1, + 0x8c, 0x04, 0x68, 0x8d, 0xe5, 0x46, 0xf3, 0x49, 0x63, 0xa5, 0x92, 0x22, 0x25, 0xc8, 0x2f, 0xdd, + 0x7b, 0xb0, 0x7c, 0xb7, 0xb1, 0x52, 0x49, 0xab, 0x1a, 0x80, 0x60, 0x15, 0x3d, 0xd3, 0x2b, 0x90, + 0xdf, 0x10, 0x27, 0x4c, 0x6e, 0x37, 0x89, 0x72, 0x2c, 0x10, 0x35, 0x1f, 0x85, 0x9c, 0x84, 0x5c, + 0xcc, 0x15, 0xc9, 0x91, 0x6a, 0xc0, 0xcc, 0x1d, 0xe6, 0xc5, 0x22, 0xf1, 0x98, 0x07, 0x95, 0x9c, + 0x87, 0xa9, 0x0d, 0x99, 0x30, 0xa2, 0xf1, 0xa5, 0x11, 0xa1, 0xe4, 0xc3, 0xb8, 0x6d, 0x7d, 0x98, + 0x86, 0x2c, 0x1e, 0xe3, 0xbe, 0xc2, 0x18, 0x0f, 0xb3, 0xdc, 0xc9, 0xd9, 0x4e, 0x24, 0x8e, 0x4a, + 0x48, 0xd3, 0x08, 0x4c, 0x31, 0x3d, 0xdc, 0xdb, 0x65, 0xf6, 0xf7, 0x76, 0xd9, 0xb8, 0xb7, 0xab, + 0x71, 0x7f, 0xee, 0x51, 0x83, 0x7a, 0x54, 0xc6, 0xcb, 0x60, 0x9c, 0xf0, 0x84, 0xf9, 0xa4, 0x27, + 0xac, 0x4b, 0x4f, 0x58, 0x38, 0x38, 0x2b, 0x47, 0x2f, 0x39, 0x0f, 0xc0, 0x8c, 0x4d, 0x26, 0xdd, + 0x64, 0x11, 0xdd, 0x64, 0x91, 0x43, 0xd0, 0x4f, 0xc6, 0x9d, 0x28, 0xc4, 0x9d, 0x68, 0x32, 0x76, + 0x97, 0x8e, 0x12, 0xbb, 0xa7, 0xc6, 0x89, 0xdd, 0xea, 0x2a, 0x14, 0x71, 0xa7, 0xd0, 0xc6, 0x5e, + 0x82, 0x1c, 0x7a, 0x57, 0xdf, 0xc4, 0x66, 0xa3, 0x26, 0x26, 0xfc, 0xb2, 0x44, 0x18, 0x6a, 0x60, + 0xdf, 0x4c, 0x41, 0x39, 0xc8, 0xf6, 0x70, 0xd1, 0x15, 0x28, 0x09, 0x17, 0xce, 0x4d, 0xc8, 0x5f, + 0xf9, 0x42, 0xdf, 0xca, 0x3e, 0x7e, 0x38, 0xd2, 0x60, 0x33, 0x48, 0x1b, 0x87, 0x7d, 0xaf, 0xf6, + 0x43, 0x45, 0x0a, 0xc0, 0xd1, 0x9e, 0xdd, 0x99, 0xbe, 0xe5, 0x9f, 0xe9, 0x69, 0x80, 0xb5, 0xc7, + 0x0f, 0x1b, 0xda, 0xe2, 0xca, 0xfd, 0xe6, 0x6a, 0xe5, 0x39, 0x52, 0x84, 0xac, 0xf8, 0xa9, 0xf0, + 0xe3, 0x7e, 0xbf, 0x71, 0x7f, 0xa9, 0xa1, 0x55, 0x52, 0xa4, 0x02, 0x53, 0xef, 0x3e, 0x68, 0xae, + 0xb6, 0xb4, 0xc6, 0xbf, 0x3f, 0x6e, 0xac, 0x3d, 0xaa, 0xa4, 0xd5, 0x2f, 0x29, 0x70, 0xba, 0xd9, + 0xe9, 0xda, 0x4e, 0x70, 0xdd, 0x4a, 0x04, 0xcc, 0x43, 0x5e, 0x46, 0x5f, 0x85, 0xac, 0xc3, 0x5c, + 0x59, 0xdc, 0xdf, 0xdf, 0x4e, 0x05, 0xa2, 0xfa, 0xaf, 0x50, 0x79, 0xd7, 0x36, 0xad, 0x51, 0xe3, + 0xec, 0xbf, 0xc1, 0x09, 0x8e, 0xfe, 0xc8, 0xee, 0xa1, 0x03, 0xb0, 0x3c, 0x9f, 0xe6, 0x02, 0x94, + 0xbd, 0x00, 0x18, 0x12, 0x4e, 0x85, 0xc0, 0xa6, 0xa1, 0xde, 0x87, 0x13, 0x77, 0x4d, 0x7d, 0x6b, + 0x52, 0x17, 0x80, 0xbf, 0xa4, 0x61, 0xb6, 0x2f, 0xde, 0x8f, 0x18, 0xe8, 0xf9, 0xba, 0xf6, 0x8e, + 0xc5, 0x22, 0xae, 0x27, 0x8f, 0xe3, 0xa6, 0x41, 0xae, 0x27, 0xae, 0x30, 0xa5, 0x85, 0xd3, 0x7d, + 0x8a, 0x5c, 0xf3, 0x1c, 0xd3, 0xda, 0x14, 0xaa, 0x0c, 0x13, 0xf2, 0xe3, 0x90, 0x75, 0x75, 0xdb, + 0x61, 0xe8, 0x98, 0xd2, 0x9a, 0x18, 0x70, 0xbf, 0xe3, 0xf6, 0xd6, 0xc5, 0x44, 0x16, 0x27, 0x82, + 0x31, 0xf7, 0x04, 0x56, 0xaf, 0xd3, 0x12, 0x93, 0x32, 0x9d, 0xb2, 0x7a, 0x9d, 0x35, 0x9f, 0x30, + 0x70, 0x58, 0xf9, 0x84, 0xc3, 0x4a, 0x78, 0x89, 0xc2, 0x51, 0xbc, 0x44, 0x71, 0xac, 0x0c, 0xff, + 0x06, 0x94, 0xd8, 0x6e, 0xd7, 0x74, 0x64, 0x0b, 0x07, 0x0e, 0x26, 0x16, 0xe8, 0x48, 0x4c, 0x20, + 0xe3, 0x50, 0x6b, 0x0b, 0xbd, 0x5a, 0x5a, 0xc3, 0xdf, 0x44, 0x85, 0x32, 0xf7, 0x86, 0xa1, 0x1e, + 0xb8, 0xd7, 0x2a, 0x6b, 0xa5, 0x0e, 0xdd, 0x5d, 0x95, 0xaa, 0x50, 0x7f, 0xa7, 0xc0, 0x89, 0xbe, + 0xbd, 0x46, 0x97, 0x72, 0x0d, 0xf2, 0x0e, 0x8e, 0x7c, 0x77, 0x12, 0xab, 0x10, 0xf4, 0xe7, 0x83, + 0x3e, 0x36, 0x59, 0x82, 0xb2, 0xb0, 0x00, 0x9f, 0x3c, 0x35, 0x0a, 0xf9, 0x14, 0xd2, 0x68, 0x72, + 0x8d, 0x44, 0xaa, 0x9f, 0x3e, 0x28, 0xd5, 0xcf, 0xf4, 0xa5, 0xfa, 0x75, 0xb4, 0xe1, 0xed, 0x91, + 0x33, 0xdd, 0xff, 0x85, 0x63, 0xf7, 0x4c, 0x6b, 0x6b, 0x42, 0xd5, 0xab, 0x71, 0xab, 0x4d, 0xbf, + 0x50, 0xa0, 0xc6, 0xb5, 0x1e, 0xbf, 0xfb, 0x04, 0xe7, 0xf8, 0x80, 0x8b, 0xf3, 0x6b, 0x90, 0x6d, + 0x9b, 0x1d, 0xd3, 0x1b, 0xc9, 0xd7, 0x22, 0x26, 0x79, 0x1d, 0xf2, 0x1b, 0xb6, 0xb3, 0x43, 0x1d, + 0x63, 0x68, 0xda, 0x18, 0xf2, 0xe8, 0xa3, 0x46, 0x02, 0x44, 0x26, 0x16, 0x90, 0xbe, 0xae, 0x00, + 0xe1, 0xec, 0x27, 0xbc, 0x6d, 0xc0, 0x97, 0x32, 0x32, 0x5f, 0xe3, 0x87, 0x8d, 0x08, 0x53, 0xe9, + 0x18, 0x53, 0x0e, 0xcc, 0x72, 0x9e, 0xd0, 0x00, 0xdc, 0xfd, 0xae, 0x7a, 0x43, 0xc2, 0x5e, 0xc8, + 0x7e, 0x7a, 0x54, 0xf6, 0xd5, 0x9f, 0xf0, 0xe3, 0xe4, 0x7f, 0x74, 0x54, 0x57, 0x7c, 0x88, 0xed, + 0x0b, 0xd4, 0x94, 0x3e, 0x84, 0x9a, 0xe2, 0x7b, 0xf7, 0x89, 0x02, 0x97, 0x38, 0xcb, 0x7d, 0x47, + 0xd2, 0x5d, 0x74, 0xec, 0x9e, 0x65, 0x3c, 0x10, 0xe7, 0x72, 0x9c, 0xdb, 0x1e, 0x59, 0x88, 0x4b, + 0xd4, 0xef, 0xe6, 0x1f, 0xf7, 0x8b, 0x14, 0x0d, 0x1c, 0xe9, 0x78, 0xe0, 0xb8, 0x02, 0x39, 0xe1, + 0xea, 0xe4, 0x79, 0x1a, 0x28, 0xee, 0xd5, 0xd7, 0x65, 0xc1, 0x4c, 0xa0, 0xaa, 0x7f, 0x56, 0x60, + 0x7e, 0xb0, 0x5c, 0x63, 0x0a, 0x73, 0x0a, 0x8a, 0x3e, 0x63, 0x7e, 0xa8, 0x2c, 0x48, 0xce, 0xdc, + 0x43, 0xd8, 0xc8, 0xb0, 0x8d, 0x88, 0x48, 0x99, 0x1d, 0x5d, 0xca, 0x3f, 0xa5, 0xc4, 0xc9, 0xbb, + 0x4f, 0x3d, 0xfd, 0x29, 0x3b, 0xca, 0xc9, 0xbb, 0x05, 0x65, 0xda, 0xf3, 0x9e, 0xda, 0x8e, 0xe9, + 0x51, 0xcf, 0xdc, 0x1e, 0xa5, 0x36, 0x19, 0x27, 0xc0, 0x5d, 0xa7, 0xeb, 0xac, 0x3d, 0x52, 0x70, + 0x17, 0xa8, 0x58, 0x0b, 0x32, 0xad, 0x96, 0x6b, 0x7e, 0xc0, 0xf6, 0xdb, 0x5c, 0x9f, 0xd7, 0x7c, + 0xc7, 0xb4, 0xd6, 0xcc, 0x0f, 0x18, 0xd2, 0xd1, 0x5d, 0x41, 0x97, 0x1d, 0x85, 0x8e, 0xee, 0x22, + 0xdd, 0x02, 0x64, 0xdf, 0xef, 0x31, 0x67, 0x4f, 0xbe, 0x90, 0x38, 0x80, 0x47, 0x44, 0x55, 0x77, + 0xa1, 0xca, 0x55, 0x3c, 0xb0, 0x72, 0x71, 0x08, 0x45, 0xbf, 0x04, 0x15, 0x9d, 0xea, 0x4f, 0x19, + 0x5d, 0x6f, 0xb3, 0x78, 0x2d, 0x6b, 0x26, 0x80, 0xcb, 0x20, 0xf6, 0x3d, 0x05, 0xe6, 0xf8, 0xa7, + 0x07, 0xd7, 0x27, 0xfe, 0x05, 0xf2, 0x32, 0x85, 0x93, 0x86, 0x9b, 0x13, 0x19, 0x5c, 0xa2, 0x46, + 0x92, 0xea, 0xab, 0x91, 0x4c, 0xce, 0x68, 0xd5, 0xdf, 0x28, 0x70, 0x91, 0x73, 0x18, 0xcd, 0x5c, + 0x87, 0x39, 0x8f, 0x51, 0x72, 0xd9, 0xcf, 0x85, 0xeb, 0xf8, 0xa3, 0x02, 0xa7, 0x07, 0x0a, 0x35, + 0x96, 0x24, 0x9f, 0x6b, 0xbf, 0xf1, 0x87, 0x14, 0x9c, 0x8c, 0x8b, 0x18, 0x08, 0xb7, 0x0c, 0xd3, + 0x3a, 0xf5, 0xd8, 0xa6, 0xed, 0xec, 0xb5, 0x5c, 0x8f, 0x3a, 0xbe, 0x6d, 0xef, 0xbf, 0x15, 0x65, + 0x9f, 0x66, 0x8d, 0x93, 0x90, 0x77, 0x60, 0x2a, 0x58, 0x84, 0x59, 0xc6, 0x48, 0xbb, 0x59, 0xf2, + 0x29, 0x1a, 0x96, 0x41, 0x6e, 0x00, 0xe0, 0xc7, 0x45, 0x32, 0x9c, 0x1e, 0x81, 0xbc, 0x88, 0xf8, + 0x98, 0x0d, 0x5f, 0x83, 0x02, 0xb3, 0x0c, 0x41, 0x9a, 0x19, 0x81, 0x34, 0xcf, 0x2c, 0x03, 0x09, + 0x83, 0x6d, 0xc9, 0x1d, 0x62, 0x5b, 0x0a, 0xb1, 0x93, 0xf1, 0x63, 0x99, 0x0a, 0xf0, 0x2c, 0x20, + 0x9e, 0x83, 0x0c, 0x3d, 0xb7, 0x9f, 0x6d, 0x22, 0xf0, 0x55, 0x05, 0xb2, 0x18, 0x46, 0xf8, 0x79, + 0xea, 0xf0, 0x1f, 0x91, 0x5c, 0x05, 0xc7, 0x4d, 0x83, 0x3c, 0x3f, 0x28, 0x4a, 0x14, 0x26, 0x11, + 0x09, 0x08, 0x64, 0x82, 0x28, 0x90, 0xd5, 0xf0, 0xb7, 0x7a, 0x1d, 0x8a, 0xc8, 0x11, 0x5e, 0x48, + 0x5e, 0x06, 0xc1, 0x05, 0x1b, 0x58, 0x39, 0x41, 0x3c, 0xcd, 0xc7, 0xe0, 0x47, 0x78, 0x2a, 0xea, + 0xb0, 0xfb, 0x8a, 0x64, 0x55, 0xc8, 0xbb, 0x3d, 0xf4, 0xa7, 0xfe, 0x35, 0x55, 0x0e, 0xa3, 0xdd, + 0x9f, 0x74, 0xbc, 0xfb, 0x43, 0x64, 0x07, 0x4a, 0xb2, 0xd8, 0xdf, 0x64, 0xca, 0x26, 0x9a, 0x4c, + 0x89, 0xcb, 0x64, 0x6e, 0xac, 0xcb, 0xe4, 0x99, 0x58, 0xc7, 0x27, 0x8f, 0x7a, 0x8e, 0x40, 0xd4, + 0xff, 0x83, 0x4a, 0x54, 0x42, 0xd4, 0xd1, 0x4d, 0x28, 0x5b, 0xd1, 0x30, 0x25, 0x35, 0x15, 0xeb, + 0x49, 0x46, 0x89, 0xb4, 0x38, 0xfa, 0x38, 0xb1, 0xe9, 0x21, 0x54, 0x1f, 0x3a, 0x76, 0xc7, 0x96, + 0xcd, 0x84, 0x09, 0xd4, 0x1d, 0xde, 0x83, 0x63, 0x1a, 0xa3, 0xc6, 0xd1, 0x2b, 0xfe, 0x91, 0x03, + 0x96, 0x8e, 0x1e, 0x30, 0xf5, 0xbf, 0x61, 0xae, 0xef, 0x0b, 0x01, 0xd3, 0x37, 0x07, 0x94, 0xfb, + 0xcf, 0x46, 0x15, 0x37, 0x80, 0xb9, 0x68, 0xb1, 0xff, 0x5d, 0x48, 0x6b, 0x5d, 0x7d, 0x90, 0xa1, + 0x75, 0xe9, 0x5e, 0xdb, 0xa6, 0x41, 0x3d, 0x44, 0x0e, 0xb9, 0x2a, 0x9e, 0x7a, 0x5e, 0xb7, 0xc5, + 0xb9, 0x97, 0x96, 0xc6, 0xc7, 0x77, 0xd9, 0x9e, 0xfa, 0x26, 0xe4, 0xd7, 0x98, 0xeb, 0x72, 0xf1, + 0xb8, 0x39, 0xa2, 0x51, 0x88, 0x45, 0x0b, 0x9a, 0x3f, 0x0c, 0x9f, 0x1e, 0xa5, 0x22, 0x4f, 0x8f, + 0xd4, 0xdf, 0xa7, 0xa0, 0x1c, 0xe3, 0x72, 0x82, 0x0a, 0x0c, 0x8b, 0xfe, 0x99, 0x48, 0xd1, 0x3f, + 0xda, 0x61, 0xc9, 0xc6, 0x3a, 0x2c, 0xe4, 0x22, 0xcc, 0x74, 0x99, 0xd3, 0x31, 0x51, 0x94, 0x96, + 0xc3, 0xa8, 0x21, 0x8b, 0x31, 0xd3, 0x21, 0x98, 0xab, 0x95, 0x1b, 0x5e, 0x04, 0x71, 0xc7, 0x31, + 0x3d, 0xd1, 0x5d, 0xcd, 0x6a, 0x91, 0x05, 0xfe, 0x83, 0x83, 0x3f, 0xbb, 0x0a, 0x8d, 0xba, 0x03, + 0x95, 0x98, 0x66, 0x17, 0xf5, 0xad, 0x49, 0xf6, 0xa3, 0xa2, 0x6a, 0xcf, 0xc4, 0xec, 0xb6, 0x01, + 0xb3, 0xc9, 0x0f, 0xbb, 0xe4, 0x55, 0xc8, 0x50, 0x7d, 0xcb, 0xb7, 0xd4, 0xd3, 0x51, 0x4b, 0x4d, + 0x22, 0x6b, 0x88, 0xa9, 0x36, 0x60, 0x3a, 0x6e, 0xfa, 0xe4, 0x0a, 0xe4, 0x85, 0x01, 0xfb, 0xcb, + 0xcc, 0x0d, 0x5d, 0x46, 0xf3, 0x31, 0xd5, 0xf7, 0x12, 0xdc, 0xa0, 0xe7, 0x39, 0xcc, 0x4a, 0x43, + 0x0b, 0xdc, 0x1f, 0x67, 0x00, 0xc2, 0xcc, 0xa4, 0xef, 0x48, 0x71, 0xc3, 0x37, 0xbd, 0x76, 0xd0, + 0x7a, 0xc2, 0x41, 0xb2, 0x87, 0x91, 0xee, 0xef, 0x61, 0xd4, 0xa0, 0xe0, 0xa7, 0x18, 0xa8, 0xe0, + 0xb2, 0x16, 0x8c, 0xc9, 0x3c, 0x80, 0x6b, 0x3b, 0x5e, 0xcb, 0x76, 0x0c, 0xe6, 0xa0, 0x19, 0x97, + 0xb5, 0x22, 0x87, 0x3c, 0xe0, 0x80, 0x20, 0x3a, 0xe5, 0x70, 0x02, 0x7f, 0x8b, 0x30, 0x29, 0xef, + 0x20, 0x79, 0x84, 0x07, 0xd7, 0x8c, 0xbe, 0xd2, 0x5b, 0xa1, 0xaf, 0xf4, 0x86, 0xef, 0xb9, 0xa9, + 0xd5, 0xc2, 0xf7, 0x35, 0x68, 0x88, 0x05, 0xce, 0x8e, 0xd5, 0xc0, 0x67, 0xa3, 0xf3, 0x00, 0x3c, + 0x83, 0xa1, 0x3a, 0x06, 0x59, 0x10, 0xec, 0x30, 0xcb, 0x58, 0x44, 0x00, 0x9f, 0xc6, 0xfa, 0x98, + 0xa8, 0x4a, 0x97, 0xc4, 0x34, 0x87, 0x68, 0x1c, 0x10, 0x2b, 0x70, 0x4e, 0xed, 0x5f, 0xe0, 0x2c, + 0x8f, 0x75, 0x7c, 0xde, 0x8c, 0x65, 0x65, 0xd3, 0x07, 0x37, 0x1c, 0xc3, 0x9c, 0xec, 0x8d, 0x48, + 0x4e, 0x36, 0x73, 0x20, 0x61, 0x90, 0x91, 0xd5, 0xa0, 0x60, 0xf4, 0x1c, 0x0c, 0x4f, 0xd5, 0x8a, + 0xd8, 0x33, 0x7f, 0x4c, 0xce, 0xc3, 0x94, 0xe0, 0x46, 0xaa, 0x69, 0x56, 0x28, 0x19, 0x61, 0x42, + 0x51, 0xea, 0x3a, 0x4c, 0x87, 0x86, 0x84, 0x86, 0x7a, 0x1d, 0x4a, 0x61, 0x9a, 0xee, 0x1b, 0xeb, + 0xc9, 0xa8, 0xb1, 0x46, 0xd2, 0xfe, 0x28, 0xea, 0x50, 0x6b, 0xfd, 0x44, 0x81, 0xe3, 0xc9, 0xab, + 0xc2, 0x3f, 0x43, 0x09, 0xf5, 0xef, 0x29, 0x38, 0xfe, 0x18, 0xbd, 0x9f, 0xac, 0x73, 0xfa, 0x91, + 0x32, 0x5a, 0xc8, 0x57, 0xc6, 0x2a, 0xe4, 0xbf, 0x03, 0x53, 0x86, 0xe9, 0x76, 0xdb, 0x74, 0x4f, + 0x3c, 0x46, 0x49, 0x8d, 0x40, 0x5d, 0x92, 0x14, 0xf8, 0x5a, 0xe5, 0x46, 0xac, 0x9f, 0x38, 0x4a, + 0x7a, 0x19, 0xe9, 0x36, 0x5e, 0x8b, 0xf4, 0x30, 0x33, 0x23, 0x90, 0x06, 0x1d, 0xce, 0xeb, 0x50, + 0x68, 0xdb, 0x22, 0x47, 0x92, 0x97, 0xac, 0x03, 0x04, 0xf6, 0xb1, 0x39, 0x25, 0xb7, 0xf8, 0x0f, + 0x6c, 0x8b, 0x8d, 0x54, 0x72, 0x08, 0xb0, 0xd5, 0x8f, 0x53, 0x40, 0x84, 0xf6, 0x47, 0x2c, 0x61, + 0xf3, 0x80, 0x30, 0xb2, 0x52, 0x45, 0xe5, 0xf3, 0x66, 0xbf, 0xcb, 0x3c, 0x78, 0x37, 0x22, 0x0e, + 0xf5, 0xd0, 0x0a, 0x8d, 0x6f, 0x63, 0x76, 0xbc, 0x6d, 0xf4, 0x9b, 0xc6, 0xb9, 0xd1, 0x9a, 0xc6, + 0xea, 0xaf, 0x33, 0x90, 0xc1, 0xce, 0x65, 0x32, 0x8e, 0x44, 0xdf, 0x80, 0xa5, 0x12, 0x6f, 0xc0, + 0xce, 0x27, 0x2c, 0xd5, 0x0f, 0x27, 0x11, 0x5b, 0x3c, 0xe0, 0x95, 0xcf, 0xfe, 0x1d, 0xf3, 0xc0, + 0x9e, 0x64, 0xc7, 0x3c, 0xb0, 0x98, 0x5a, 0xc4, 0x62, 0x64, 0x73, 0xca, 0x1f, 0xc7, 0xfc, 0x7a, + 0x21, 0xe1, 0xd7, 0xcf, 0x42, 0x29, 0xf2, 0x64, 0x00, 0x03, 0x4a, 0x51, 0x83, 0xf0, 0xc5, 0x00, + 0x8f, 0x37, 0x42, 0x53, 0x7c, 0x5a, 0xbe, 0x02, 0x13, 0x80, 0xa6, 0x41, 0x2e, 0x40, 0x79, 0x93, + 0x76, 0x98, 0x8e, 0xd1, 0x28, 0x7c, 0x0a, 0x36, 0x15, 0x02, 0x45, 0xee, 0xee, 0x7a, 0x8c, 0xe2, + 0x3f, 0x20, 0x4d, 0xc9, 0x4b, 0x13, 0x1f, 0x37, 0xb1, 0x33, 0x60, 0x5b, 0x6d, 0xd3, 0x12, 0x01, + 0xa5, 0xa0, 0xc9, 0x51, 0xa2, 0x61, 0x3f, 0x9d, 0x6c, 0xd8, 0x27, 0x82, 0xd1, 0xcc, 0x51, 0x72, + 0xb9, 0xca, 0x58, 0xdd, 0xb6, 0x6b, 0x50, 0x0d, 0xd5, 0x25, 0xde, 0xe4, 0xb6, 0xb8, 0xb0, 0x5c, + 0xb6, 0x59, 0x94, 0xed, 0xc4, 0x46, 0xff, 0x93, 0xdd, 0xa6, 0xa1, 0x7e, 0x3b, 0x05, 0xe5, 0xe0, + 0x4e, 0xef, 0x37, 0xdf, 0x31, 0x6d, 0x8b, 0xb5, 0xf5, 0x2f, 0x24, 0xfb, 0xe2, 0x01, 0x7e, 0x38, + 0xd2, 0xa0, 0x17, 0x14, 0x07, 0x86, 0x36, 0xdf, 0x3f, 0x52, 0xa0, 0x18, 0x50, 0x90, 0x8b, 0x90, + 0xc5, 0xcf, 0x48, 0xbf, 0x3b, 0xe0, 0xf1, 0x80, 0x98, 0xff, 0x6c, 0xfa, 0xef, 0x97, 0x21, 0x2b, + 0x5e, 0x12, 0xbc, 0x08, 0xd9, 0xe8, 0x4b, 0x84, 0xfe, 0x47, 0x02, 0x62, 0x5a, 0xfd, 0x72, 0x0a, + 0xe6, 0x31, 0xab, 0x3f, 0xe2, 0xfb, 0x32, 0xf2, 0x9f, 0x90, 0x13, 0xb1, 0x52, 0xca, 0x7b, 0x2b, + 0xfa, 0xc5, 0x7d, 0xbf, 0xd0, 0x1f, 0x48, 0x11, 0x5d, 0x93, 0xeb, 0xd5, 0x36, 0xe0, 0xe4, 0x60, + 0x8c, 0xb0, 0x2b, 0xad, 0x0c, 0xeb, 0x4a, 0xa7, 0x12, 0x5d, 0xe9, 0xe8, 0xf9, 0x4d, 0xc7, 0xcf, + 0xaf, 0xfa, 0xc5, 0x14, 0x10, 0x5c, 0xf7, 0xa8, 0x97, 0xb7, 0xe0, 0x8e, 0x96, 0x1e, 0x72, 0x47, + 0xcb, 0xc4, 0x6f, 0x1d, 0x2b, 0xfd, 0x77, 0xb4, 0x11, 0x2a, 0xea, 0xc9, 0x0b, 0xdc, 0xed, 0x01, + 0x17, 0xb8, 0x11, 0x8a, 0x68, 0xc9, 0xdb, 0x9d, 0xfa, 0x04, 0x6a, 0xfd, 0x5a, 0x70, 0xc3, 0xcc, + 0x23, 0x71, 0xcb, 0x38, 0xd3, 0xb7, 0xcf, 0x43, 0x2e, 0x2d, 0x5f, 0x48, 0xc1, 0x69, 0x9c, 0x4f, + 0x66, 0x6a, 0x63, 0xd5, 0x74, 0x9f, 0x24, 0xcc, 0xec, 0x66, 0xdf, 0xe7, 0x87, 0x2c, 0x5f, 0x4f, + 0xc2, 0xe3, 0x46, 0xc6, 0xe0, 0xc4, 0x40, 0x84, 0xc9, 0xda, 0xd8, 0xd2, 0xdb, 0x30, 0xa7, 0xdb, + 0x9d, 0xfa, 0x53, 0xe6, 0xd8, 0xa6, 0xde, 0xa6, 0xeb, 0x6e, 0x84, 0xfd, 0xa5, 0xe2, 0x2a, 0xfe, + 0x5e, 0xec, 0x9a, 0x0f, 0x95, 0xff, 0x4a, 0xd3, 0xae, 0xf9, 0x83, 0x54, 0x66, 0xf5, 0xee, 0xc3, + 0xa5, 0x1f, 0xa5, 0x72, 0x62, 0x66, 0x3d, 0x87, 0x3b, 0x78, 0xe5, 0x1f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x7f, 0x43, 0xaa, 0xd0, 0x7b, 0x3b, 0x00, 0x00, } diff --git a/vendor/github.com/heroiclabs/nakama-common/api/api.proto b/vendor/github.com/heroiclabs/nakama-common/api/api.proto index 4b3f7d8e60e42686aa2a38046337b6eccfcb1000..60aba63d4424e84f51c5d2637bd38a019e64824a 100644 --- a/vendor/github.com/heroiclabs/nakama-common/api/api.proto +++ b/vendor/github.com/heroiclabs/nakama-common/api/api.proto @@ -82,6 +82,14 @@ message AccountFacebook { map vars = 2; } +// Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink. +message AccountFacebookInstantGame { + // The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration) + string signed_player_info = 1; + // Extra information that will be bundled in the session token. + map vars = 2; +} + // Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. message AccountGameCenter { // https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign @@ -176,6 +184,16 @@ message AuthenticateFacebookRequest { google.protobuf.BoolValue sync = 4; } +// Authenticate against the server with Facebook Instant Game token. +message AuthenticateFacebookInstantGameRequest { + // The Facebook Instant Game account details. + AccountFacebookInstantGame account = 1; + // Register the account if the user does not already exist. + google.protobuf.BoolValue create = 2; + // Set the username on the account at register. Must be unique. + string username = 3; +} + // Authenticate against the server with Apple's Game Center. message AuthenticateGameCenterRequest { // The Game Center account details. @@ -940,6 +958,8 @@ message User { google.protobuf.Timestamp create_time = 15; // The UNIX time when the user was last updated. google.protobuf.Timestamp update_time = 16; + // The Facebook Instant Game id in the user's account. + string facebook_instant_game_id = 17; } // A list of groups belonging to a user, along with the user's role in each group. diff --git a/vendor/github.com/heroiclabs/nakama-common/rtapi/realtime.pb.go b/vendor/github.com/heroiclabs/nakama-common/rtapi/realtime.pb.go index 2ea7c462ddd9ac81eec68634b750d23c16e39003..0c90e6751b73bff5da169bcdb25c77d8059da786 100644 --- a/vendor/github.com/heroiclabs/nakama-common/rtapi/realtime.pb.go +++ b/vendor/github.com/heroiclabs/nakama-common/rtapi/realtime.pb.go @@ -2732,7 +2732,9 @@ func init() { proto.RegisterType((*UserPresence)(nil), "nakama.realtime.UserPresence") } -func init() { proto.RegisterFile("rtapi/realtime.proto", fileDescriptor_0163624496220f8c) } +func init() { + proto.RegisterFile("rtapi/realtime.proto", fileDescriptor_0163624496220f8c) +} var fileDescriptor_0163624496220f8c = []byte{ // 2320 bytes of a gzipped FileDescriptorProto diff --git a/vendor/github.com/heroiclabs/nakama-common/runtime/runtime.go b/vendor/github.com/heroiclabs/nakama-common/runtime/runtime.go index 46fb2642ca50b8e01123ea29b300f4f9b446359d..fa0ca153d8a1d90664ef50ea51a3353e39014f87 100644 --- a/vendor/github.com/heroiclabs/nakama-common/runtime/runtime.go +++ b/vendor/github.com/heroiclabs/nakama-common/runtime/runtime.go @@ -19,7 +19,7 @@ The game server includes support to develop native code in Go with the plugin pa It's used to enable compiled shared objects to be loaded by the game server at startup. The Go runtime support can be used to develop authoritative multiplayer match handlers, -RPC functions, hook into messages processed by the server, and extend the server withany other custom logic. +RPC functions, hook into messages processed by the server, and extend the server with any other custom logic. It offers the same capabilities as the Lua runtime support but has the advantage that any package from the Go ecosystem can be used. Here's the smallest example of a Go module written with the server runtime. @@ -345,6 +345,12 @@ type Initializer interface { // RegisterAfterAuthenticateFacebook can be used to perform after successful authentication checks. RegisterAfterAuthenticateFacebook(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, out *api.Session, in *api.AuthenticateFacebookRequest) error) error + // RegisterBeforeAuthenticateFacebookInstantGame can be used to perform pre-authentication checks. + RegisterBeforeAuthenticateFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AuthenticateFacebookInstantGameRequest) (*api.AuthenticateFacebookInstantGameRequest, error)) error + + // RegisterAfterAuthenticateFacebookInstantGame can be used to perform after successful authentication checks. + RegisterAfterAuthenticateFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, out *api.Session, in *api.AuthenticateFacebookInstantGameRequest) error) error + // RegisterBeforeAuthenticateGameCenter can be used to perform pre-authentication checks. RegisterBeforeAuthenticateGameCenter(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AuthenticateGameCenterRequest) (*api.AuthenticateGameCenterRequest, error)) error @@ -519,6 +525,12 @@ type Initializer interface { // RegisterAfterLinkFacebook can be used to perform additional logic after linking Facebook to an account. RegisterAfterLinkFacebook(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.LinkFacebookRequest) error) error + // RegisterBeforeLinkFacebookInstantGame can be used to perform additional logic before linking Facebook Instant Game profile to an account. + RegisterBeforeLinkFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebookInstantGame) (*api.AccountFacebookInstantGame, error)) error + + // RegisterAfterLinkFacebookInstantGame can be used to perform additional logic after linking Facebook Instant Game profile to an account. + RegisterAfterLinkFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebookInstantGame) error) error + // RegisterBeforeLinkGameCenter can be used to perform additional logic before linking GameCenter to an account. RegisterBeforeLinkGameCenter(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountGameCenter) (*api.AccountGameCenter, error)) error @@ -633,6 +645,12 @@ type Initializer interface { // RegisterAfterUnlinkFacebook can be used to perform additional logic after Facebook is unlinked from an account. RegisterAfterUnlinkFacebook(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebook) error) error + // RegisterBeforeUnlinkFacebookInstantGame can be used to perform additional logic before Facebook Instant Game profile is unlinked from an account. + RegisterBeforeUnlinkFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebookInstantGame) (*api.AccountFacebookInstantGame, error)) error + + // RegisterAfterUnlinkFacebookInstantGame can be used to perform additional logic after Facebook Instant Game profile is unlinked from an account. + RegisterAfterUnlinkFacebookInstantGame(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountFacebookInstantGame) error) error + // RegisterBeforeUnlinkGameCenter can be used to perform additional logic before GameCenter is unlinked from an account. RegisterBeforeUnlinkGameCenter(fn func(ctx context.Context, logger Logger, db *sql.DB, nk NakamaModule, in *api.AccountGameCenter) (*api.AccountGameCenter, error)) error @@ -773,6 +791,7 @@ type NakamaModule interface { AuthenticateDevice(ctx context.Context, id, username string, create bool) (string, string, bool, error) AuthenticateEmail(ctx context.Context, email, password, username string, create bool) (string, string, bool, error) AuthenticateFacebook(ctx context.Context, token string, importFriends bool, username string, create bool) (string, string, bool, error) + AuthenticateFacebookInstantGame(ctx context.Context, appSecret string, signedPlayerInfo string, username string, create bool) (string, string, bool, error) AuthenticateGameCenter(ctx context.Context, playerID, bundleID string, timestamp int64, salt, signature, publicKeyUrl, username string, create bool) (string, string, bool, error) AuthenticateGoogle(ctx context.Context, token, username string, create bool) (string, string, bool, error) AuthenticateSteam(ctx context.Context, token, username string, create bool) (string, string, bool, error) diff --git a/vendor/modules.txt b/vendor/modules.txt index ba14c9dc73754482b941b20c921582dcad10da5a..d5681970b7597e20aa3cf77411c4fcf1472e0a71 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -119,7 +119,7 @@ github.com/gobuffalo/packr github.com/gofrs/uuid # github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 github.com/golang/groupcache/lru -# github.com/golang/protobuf v1.3.3 +# github.com/golang/protobuf v1.3.4 github.com/golang/protobuf/descriptor github.com/golang/protobuf/jsonpb github.com/golang/protobuf/proto @@ -153,7 +153,7 @@ github.com/grpc-ecosystem/grpc-gateway/internal github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options github.com/grpc-ecosystem/grpc-gateway/runtime github.com/grpc-ecosystem/grpc-gateway/utilities -# github.com/heroiclabs/nakama-common v1.3.0 +# github.com/heroiclabs/nakama-common v1.3.1 github.com/heroiclabs/nakama-common/api github.com/heroiclabs/nakama-common/rtapi github.com/heroiclabs/nakama-common/runtime @@ -251,7 +251,7 @@ go.uber.org/zap/zapcore golang.org/x/crypto/bcrypt golang.org/x/crypto/blowfish golang.org/x/crypto/pbkdf2 -# golang.org/x/net v0.0.0-20200226051749-491c5fce7268 +# golang.org/x/net v0.0.0-20200226121028-0de0cce0169b golang.org/x/net/context golang.org/x/net/context/ctxhttp golang.org/x/net/http/httpguts @@ -308,7 +308,7 @@ google.golang.org/appengine/internal/socket google.golang.org/appengine/internal/urlfetch google.golang.org/appengine/socket google.golang.org/appengine/urlfetch -# google.golang.org/genproto v0.0.0-20200225123651-fc8f55426688 +# google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c google.golang.org/genproto/googleapis/api google.golang.org/genproto/googleapis/api/annotations google.golang.org/genproto/googleapis/api/distribution