Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
4a9c662c
Commit
4a9c662c
authored
Dec 17, 2018
by
张振华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor
parent
96391f7b
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
249 additions
and
85 deletions
+249
-85
game.go
plugin/dapp/guess/commands/game.go
+33
-0
guess.proto
plugin/dapp/guess/proto/guess.proto
+7
-0
jrpc.go
plugin/dapp/guess/rpc/jrpc.go
+14
-0
rpc.go
plugin/dapp/guess/rpc/rpc.go
+26
-0
guess.pb.go
plugin/dapp/guess/types/guess.pb.go
+169
-85
No files found.
plugin/dapp/guess/commands/game.go
View file @
4a9c662c
...
@@ -26,6 +26,7 @@ func GuessCmd() *cobra.Command {
...
@@ -26,6 +26,7 @@ func GuessCmd() *cobra.Command {
GuessAbortRawTxCmd
(),
GuessAbortRawTxCmd
(),
GuessQueryRawTxCmd
(),
GuessQueryRawTxCmd
(),
GuessPublishRawTxCmd
(),
GuessPublishRawTxCmd
(),
GuessStopBetRawTxCmd
(),
)
)
return
cmd
return
cmd
...
@@ -145,6 +146,38 @@ func guessBet(cmd *cobra.Command, args []string) {
...
@@ -145,6 +146,38 @@ func guessBet(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
ctx
.
RunWithoutMarshal
()
}
}
func
GuessStopBetRawTxCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"stop bet"
,
Short
:
"stop bet for a guess game"
,
Run
:
guessStopBet
,
}
addGuessStopBetFlags
(
cmd
)
return
cmd
}
func
addGuessStopBetFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"gameId"
,
"g"
,
""
,
"game ID"
)
cmd
.
MarkFlagRequired
(
"gameId"
)
cmd
.
Flags
()
.
Float64P
(
"fee"
,
"f"
,
0.01
,
"tx fee"
)
}
func
guessStopBet
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
gameId
,
_
:=
cmd
.
Flags
()
.
GetString
(
"gameId"
)
fee
,
_
:=
cmd
.
Flags
()
.
GetFloat64
(
"fee"
)
params
:=
&
pkt
.
GuessStopBetTxReq
{
GameId
:
gameId
,
Fee
:
int64
(
fee
*
float64
(
1e8
)),
}
var
res
string
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"guess.GuessStopBetTx"
,
params
,
&
res
)
ctx
.
RunWithoutMarshal
()
}
func
GuessAbortRawTxCmd
()
*
cobra
.
Command
{
func
GuessAbortRawTxCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"abort"
,
Use
:
"abort"
,
...
...
plugin/dapp/guess/proto/guess.proto
View file @
4a9c662c
...
@@ -174,6 +174,11 @@ message GuessBetTxReq {
...
@@ -174,6 +174,11 @@ message GuessBetTxReq {
int64
fee
=
4
;
int64
fee
=
4
;
}
}
message
GuessStopBetTxReq
{
string
gameId
=
1
;
int64
fee
=
2
;
}
message
GuessAbortTxReq
{
message
GuessAbortTxReq
{
string
gameId
=
1
;
string
gameId
=
1
;
int64
fee
=
2
;
int64
fee
=
2
;
...
@@ -208,6 +213,8 @@ service guess {
...
@@ -208,6 +213,8 @@ service guess {
rpc
GuessStart
(
GuessGameStart
)
returns
(
UnsignTx
)
{}
rpc
GuessStart
(
GuessGameStart
)
returns
(
UnsignTx
)
{}
//游戏下注
//游戏下注
rpc
GuessBet
(
GuessGameBet
)
returns
(
UnsignTx
)
{}
rpc
GuessBet
(
GuessGameBet
)
returns
(
UnsignTx
)
{}
//游戏终止下注
rpc
GuessStopBet
(
GuessGameStopBet
)
returns
(
UnsignTx
)
{}
//游戏异常终止
//游戏异常终止
rpc
GuessAbort
(
GuessGameAbort
)
returns
(
UnsignTx
)
{}
rpc
GuessAbort
(
GuessGameAbort
)
returns
(
UnsignTx
)
{}
//游戏结束
//游戏结束
...
...
plugin/dapp/guess/rpc/jrpc.go
View file @
4a9c662c
...
@@ -39,6 +39,20 @@ func (c *Jrpc) GuessBetTx(parm *pb.GuessBetTxReq, result *interface{}) error {
...
@@ -39,6 +39,20 @@ func (c *Jrpc) GuessBetTx(parm *pb.GuessBetTxReq, result *interface{}) error {
return
nil
return
nil
}
}
func
(
c
*
Jrpc
)
GuessStopBetTx
(
parm
*
pb
.
GuessStopBetTxReq
,
result
*
interface
{})
error
{
if
parm
==
nil
{
return
types
.
ErrInvalidParam
}
reply
,
err
:=
c
.
cli
.
GuessStopBet
(
context
.
Background
(),
parm
)
if
err
!=
nil
{
return
err
}
*
result
=
hex
.
EncodeToString
(
reply
.
Data
)
return
nil
}
func
(
c
*
Jrpc
)
GuessAbortTx
(
parm
*
pb
.
GuessAbortTxReq
,
result
*
interface
{})
error
{
func
(
c
*
Jrpc
)
GuessAbortTx
(
parm
*
pb
.
GuessAbortTxReq
,
result
*
interface
{})
error
{
if
parm
==
nil
{
if
parm
==
nil
{
return
types
.
ErrInvalidParam
return
types
.
ErrInvalidParam
...
...
plugin/dapp/guess/rpc/rpc.go
View file @
4a9c662c
...
@@ -75,6 +75,32 @@ func (c *channelClient) GuessBet(ctx context.Context, parm *pb.GuessBetTxReq) (*
...
@@ -75,6 +75,32 @@ func (c *channelClient) GuessBet(ctx context.Context, parm *pb.GuessBetTxReq) (*
return
&
types
.
UnsignTx
{
Data
:
data
},
nil
return
&
types
.
UnsignTx
{
Data
:
data
},
nil
}
}
func
(
c
*
channelClient
)
GuessStopBet
(
ctx
context
.
Context
,
parm
*
pb
.
GuessStopBetTxReq
)
(
*
types
.
UnsignTx
,
error
)
{
v
:=
&
pb
.
GuessGameStopBet
{
GameId
:
parm
.
GameId
,
}
val
:=
&
pb
.
GuessGameAction
{
Ty
:
pb
.
GuessGameActionStopBet
,
Value
:
&
pb
.
GuessGameAction_StopBet
{
v
},
}
name
:=
types
.
ExecName
(
pb
.
GuessX
)
tx
:=
&
types
.
Transaction
{
Execer
:
[]
byte
(
types
.
ExecName
(
pb
.
GuessX
)),
Payload
:
types
.
Encode
(
val
),
Fee
:
parm
.
Fee
,
To
:
address
.
ExecAddress
(
name
),
}
tx
,
err
:=
types
.
FormatTx
(
name
,
tx
)
if
err
!=
nil
{
return
nil
,
err
}
data
:=
types
.
Encode
(
tx
)
return
&
types
.
UnsignTx
{
Data
:
data
},
nil
}
func
(
c
*
channelClient
)
GuessAbort
(
ctx
context
.
Context
,
parm
*
pb
.
GuessAbortTxReq
)
(
*
types
.
UnsignTx
,
error
)
{
func
(
c
*
channelClient
)
GuessAbort
(
ctx
context
.
Context
,
parm
*
pb
.
GuessAbortTxReq
)
(
*
types
.
UnsignTx
,
error
)
{
v
:=
&
pb
.
GuessGameAbort
{
v
:=
&
pb
.
GuessGameAbort
{
GameId
:
parm
.
GameId
,
GameId
:
parm
.
GameId
,
...
...
plugin/dapp/guess/types/guess.pb.go
View file @
4a9c662c
...
@@ -1635,6 +1635,53 @@ func (m *GuessBetTxReq) GetFee() int64 {
...
@@ -1635,6 +1635,53 @@ func (m *GuessBetTxReq) GetFee() int64 {
return
0
return
0
}
}
type
GuessStopBetTxReq
struct
{
GameId
string
`protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
Fee
int64
`protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
GuessStopBetTxReq
)
Reset
()
{
*
m
=
GuessStopBetTxReq
{}
}
func
(
m
*
GuessStopBetTxReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
GuessStopBetTxReq
)
ProtoMessage
()
{}
func
(
*
GuessStopBetTxReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
19
}
}
func
(
m
*
GuessStopBetTxReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_GuessStopBetTxReq
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
GuessStopBetTxReq
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_GuessStopBetTxReq
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
GuessStopBetTxReq
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_GuessStopBetTxReq
.
Merge
(
m
,
src
)
}
func
(
m
*
GuessStopBetTxReq
)
XXX_Size
()
int
{
return
xxx_messageInfo_GuessStopBetTxReq
.
Size
(
m
)
}
func
(
m
*
GuessStopBetTxReq
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_GuessStopBetTxReq
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_GuessStopBetTxReq
proto
.
InternalMessageInfo
func
(
m
*
GuessStopBetTxReq
)
GetGameId
()
string
{
if
m
!=
nil
{
return
m
.
GameId
}
return
""
}
func
(
m
*
GuessStopBetTxReq
)
GetFee
()
int64
{
if
m
!=
nil
{
return
m
.
Fee
}
return
0
}
type
GuessAbortTxReq
struct
{
type
GuessAbortTxReq
struct
{
GameId
string
`protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
GameId
string
`protobuf:"bytes,1,opt,name=gameId,proto3" json:"gameId,omitempty"`
Fee
int64
`protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
Fee
int64
`protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"`
...
@@ -1647,7 +1694,7 @@ func (m *GuessAbortTxReq) Reset() { *m = GuessAbortTxReq{} }
...
@@ -1647,7 +1694,7 @@ func (m *GuessAbortTxReq) Reset() { *m = GuessAbortTxReq{} }
func
(
m
*
GuessAbortTxReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
GuessAbortTxReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
GuessAbortTxReq
)
ProtoMessage
()
{}
func
(
*
GuessAbortTxReq
)
ProtoMessage
()
{}
func
(
*
GuessAbortTxReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
GuessAbortTxReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
19
}
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
20
}
}
}
func
(
m
*
GuessAbortTxReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
GuessAbortTxReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1695,7 +1742,7 @@ func (m *GuessPublishTxReq) Reset() { *m = GuessPublishTxReq{} }
...
@@ -1695,7 +1742,7 @@ func (m *GuessPublishTxReq) Reset() { *m = GuessPublishTxReq{} }
func
(
m
*
GuessPublishTxReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
GuessPublishTxReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
GuessPublishTxReq
)
ProtoMessage
()
{}
func
(
*
GuessPublishTxReq
)
ProtoMessage
()
{}
func
(
*
GuessPublishTxReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
GuessPublishTxReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
2
0
}
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
2
1
}
}
}
func
(
m
*
GuessPublishTxReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
GuessPublishTxReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1751,7 +1798,7 @@ func (m *GuessGameRecord) Reset() { *m = GuessGameRecord{} }
...
@@ -1751,7 +1798,7 @@ func (m *GuessGameRecord) Reset() { *m = GuessGameRecord{} }
func
(
m
*
GuessGameRecord
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
GuessGameRecord
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
GuessGameRecord
)
ProtoMessage
()
{}
func
(
*
GuessGameRecord
)
ProtoMessage
()
{}
func
(
*
GuessGameRecord
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
GuessGameRecord
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
2
1
}
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
2
2
}
}
}
func
(
m
*
GuessGameRecord
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
GuessGameRecord
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1805,7 +1852,7 @@ func (m *GuessGameIndexRecord) Reset() { *m = GuessGameIndexRecord{} }
...
@@ -1805,7 +1852,7 @@ func (m *GuessGameIndexRecord) Reset() { *m = GuessGameIndexRecord{} }
func
(
m
*
GuessGameIndexRecord
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
GuessGameIndexRecord
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
GuessGameIndexRecord
)
ProtoMessage
()
{}
func
(
*
GuessGameIndexRecord
)
ProtoMessage
()
{}
func
(
*
GuessGameIndexRecord
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
GuessGameIndexRecord
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
2
2
}
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
2
3
}
}
}
func
(
m
*
GuessGameIndexRecord
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
GuessGameIndexRecord
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1851,7 +1898,7 @@ func (m *GuessGameRecords) Reset() { *m = GuessGameRecords{} }
...
@@ -1851,7 +1898,7 @@ func (m *GuessGameRecords) Reset() { *m = GuessGameRecords{} }
func
(
m
*
GuessGameRecords
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
GuessGameRecords
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
GuessGameRecords
)
ProtoMessage
()
{}
func
(
*
GuessGameRecords
)
ProtoMessage
()
{}
func
(
*
GuessGameRecords
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
GuessGameRecords
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
2
3
}
return
fileDescriptor_7574406c5d3430e8
,
[]
int
{
2
4
}
}
}
func
(
m
*
GuessGameRecords
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
GuessGameRecords
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1899,6 +1946,7 @@ func init() {
...
@@ -1899,6 +1946,7 @@ func init() {
proto
.
RegisterType
((
*
ReceiptGuessGame
)(
nil
),
"types.ReceiptGuessGame"
)
proto
.
RegisterType
((
*
ReceiptGuessGame
)(
nil
),
"types.ReceiptGuessGame"
)
proto
.
RegisterType
((
*
GuessStartTxReq
)(
nil
),
"types.GuessStartTxReq"
)
proto
.
RegisterType
((
*
GuessStartTxReq
)(
nil
),
"types.GuessStartTxReq"
)
proto
.
RegisterType
((
*
GuessBetTxReq
)(
nil
),
"types.GuessBetTxReq"
)
proto
.
RegisterType
((
*
GuessBetTxReq
)(
nil
),
"types.GuessBetTxReq"
)
proto
.
RegisterType
((
*
GuessStopBetTxReq
)(
nil
),
"types.GuessStopBetTxReq"
)
proto
.
RegisterType
((
*
GuessAbortTxReq
)(
nil
),
"types.GuessAbortTxReq"
)
proto
.
RegisterType
((
*
GuessAbortTxReq
)(
nil
),
"types.GuessAbortTxReq"
)
proto
.
RegisterType
((
*
GuessPublishTxReq
)(
nil
),
"types.GuessPublishTxReq"
)
proto
.
RegisterType
((
*
GuessPublishTxReq
)(
nil
),
"types.GuessPublishTxReq"
)
proto
.
RegisterType
((
*
GuessGameRecord
)(
nil
),
"types.GuessGameRecord"
)
proto
.
RegisterType
((
*
GuessGameRecord
)(
nil
),
"types.GuessGameRecord"
)
...
@@ -1909,86 +1957,87 @@ func init() {
...
@@ -1909,86 +1957,87 @@ func init() {
func
init
()
{
proto
.
RegisterFile
(
"guess.proto"
,
fileDescriptor_7574406c5d3430e8
)
}
func
init
()
{
proto
.
RegisterFile
(
"guess.proto"
,
fileDescriptor_7574406c5d3430e8
)
}
var
fileDescriptor_7574406c5d3430e8
=
[]
byte
{
var
fileDescriptor_7574406c5d3430e8
=
[]
byte
{
// 1255 bytes of a gzipped FileDescriptorProto
// 1268 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xac
,
0x58
,
0xcd
,
0x6e
,
0xdb
,
0xc6
,
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xac
,
0x58
,
0xcd
,
0x6e
,
0xdb
,
0x46
,
0x13
,
0xb7
,
0x48
,
0x51
,
0x1f
,
0x23
,
0xd9
,
0x96
,
0xd7
,
0x8e
,
0xc3
,
0xbf
,
0x61
,
0xfc
,
0xa1
,
0x12
,
0x10
,
0xb6
,
0x48
,
0x51
,
0x3f
,
0x23
,
0xd9
,
0x56
,
0xd6
,
0x89
,
0xc3
,
0x1a
,
0x46
,
0xa1
,
0x12
,
0x41
,
0x41
,
0x2a
,
0x14
,
0x88
,
0x5b
,
0x28
,
0x40
,
0x51
,
0xa4
,
0xe8
,
0xc1
,
0x6a
,
0x90
,
0xd8
,
0x97
,
0x36
,
0x2a
,
0x14
,
0x88
,
0x5b
,
0x28
,
0x40
,
0x51
,
0xa4
,
0xc8
,
0xc1
,
0x6a
,
0x90
,
0xd8
,
0x97
,
0x36
,
0xa5
,
0xa5
,
0x1d
,
0xa4
,
0x57
,
0x4a
,
0x5a
,
0xcb
,
0x04
,
0x24
,
0x92
,
0x21
,
0x57
,
0x86
,
0x74
,
0xef
,
0xb5
,
0x1d
,
0xa4
,
0x57
,
0x4a
,
0x5a
,
0xcb
,
0x04
,
0x24
,
0x92
,
0x21
,
0x57
,
0x86
,
0x74
,
0xef
,
0xb5
,
0x4f
,
0x6f
,
0xd1
,
0x43
,
0x6f
,
0xed
,
0x73
,
0xf4
,
0x45
,
0xfa
,
0x1a
,
0xc5
,
0xcc
,
0x2e
,
0xc5
,
0x25
,
0x45
,
0xd1
,
0x1e
,
0x7a
,
0x6b
,
0x9f
,
0xa3
,
0x4f
,
0x55
,
0xcc
,
0xec
,
0x52
,
0x5c
,
0x52
,
0x94
,
0x25
,
0x17
,
0x59
,
0x4a
,
0xd1
,
0x1b
,
0xe7
,
0x63
,
0x67
,
0x66
,
0x67
,
0x67
,
0x7e
,
0x33
,
0x12
,
0xb4
,
0x26
,
0x73
,
0xbd
,
0x69
,
0x7e
,
0x76
,
0x66
,
0x76
,
0x76
,
0xe6
,
0x9b
,
0xa1
,
0xa0
,
0x35
,
0x99
,
0xf3
,
0x24
,
0x39
,
0x9e
,
0x24
,
0x17
,
0x51
,
0x1c
,
0x8a
,
0x90
,
0x59
,
0x62
,
0x19
,
0xf1
,
0xe4
,
0xec
,
0x48
,
0xc4
,
0x5e
,
0x8b
,
0xe2
,
0x50
,
0x84
,
0xcc
,
0x12
,
0xcb
,
0x88
,
0x27
,
0x27
,
0x8f
,
0x44
,
0xec
,
0x05
,
0x89
,
0x37
,
0x90
,
0x78
,
0x23
,
0xe1
,
0x87
,
0x81
,
0x94
,
0x38
,
0x7f
,
0xd6
,
0xa0
,
0xf9
,
0x16
,
0x35
,
0xdf
,
0x7a
,
0x12
,
0x7e
,
0x18
,
0x48
,
0x89
,
0xf3
,
0x77
,
0x0d
,
0x9a
,
0xef
,
0x50
,
0xf3
,
0x9d
,
0x37
,
0xe3
,
0xec
,
0x33
,
0xce
,
0x4e
,
0xa1
,
0x36
,
0xf1
,
0x66
,
0xfc
,
0x7a
,
0x6c
,
0x57
,
0xba
,
0x95
,
0x5e
,
0xd3
,
0x55
,
0x18
,
0x6a
,
0x13
,
0x6f
,
0xc6
,
0x2f
,
0xc7
,
0x76
,
0xa5
,
0x5b
,
0xe9
,
0x35
,
0x5d
,
0x45
,
0x21
,
0x3f
,
0x14
,
0xf2
,
0x13
,
0xe1
,
0x89
,
0x79
,
0x62
,
0x1b
,
0xdd
,
0x4a
,
0xcf
,
0x72
,
0x15
,
0xc5
,
0xce
,
0xa1
,
0x11
,
0x9e
,
0x98
,
0x27
,
0xb6
,
0xd1
,
0xad
,
0xf4
,
0x2c
,
0x57
,
0x51
,
0xec
,
0x14
,
0x9a
,
0x51
,
0xcc
,
0x19
,
0xc5
,
0xfc
,
0x46
,
0x8a
,
0x4c
,
0x12
,
0x65
,
0x0c
,
0x94
,
0x26
,
0xc2
,
0x8b
,
0xc5
,
0xad
,
0x3f
,
0xaf
,
0xa4
,
0xc8
,
0x24
,
0x51
,
0xc6
,
0x40
,
0x69
,
0x22
,
0xbc
,
0x58
,
0x5c
,
0xfb
,
0x33
,
0x6e
,
0x57
,
0xe3
,
0x76
,
0xb5
,
0x5b
,
0xe9
,
0x99
,
0x6e
,
0xc6
,
0x60
,
0x5d
,
0x68
,
0x11
,
0x71
,
0xc5
,
0xfd
,
0xc9
,
0xbb
,
0x95
,
0x9e
,
0xe9
,
0x66
,
0x0c
,
0xd6
,
0x85
,
0x16
,
0x11
,
0x17
,
0xdc
,
0x9f
,
0xdc
,
0x0a
,
0xdb
,
0xbd
,
0xb0
,
0x2d
,
0x92
,
0xeb
,
0xac
,
0x95
,
0xc6
,
0xed
,
0xe2
,
0xca
,
0x4b
,
0xee
,
0xed
,
0x1a
,
0x85
,
0x22
,
0xb9
,
0xce
,
0x5a
,
0x69
,
0x5c
,
0x2f
,
0x2e
,
0xbc
,
0xe4
,
0xd6
,
0xae
,
0x51
,
0x48
,
0x3a
,
0x8b
,
0xa4
,
0xb3
,
0xd8
,
0x09
,
0x58
,
0x22
,
0x8c
,
0xfc
,
0x91
,
0x5d
,
0x27
,
0x99
,
0x24
,
0xd8
,
0x19
,
0x34
,
0x3d
,
0x06
,
0x4b
,
0x84
,
0x91
,
0x3f
,
0xb2
,
0xeb
,
0x24
,
0x93
,
0x04
,
0x3b
,
0x81
,
0xc6
,
0xc8
,
0x13
,
0x46
,
0x9e
,
0xe0
,
0x93
,
0x30
,
0x5e
,
0xda
,
0x0d
,
0x12
,
0xac
,
0x68
,
0x66
,
0x43
,
0x3d
,
0x8c
,
0xf0
,
0x7c
,
0x12
,
0xc6
,
0x4b
,
0xbb
,
0x41
,
0x82
,
0x15
,
0xcd
,
0x6c
,
0xa8
,
0x87
,
0x11
,
0xde
,
0x3f
,
0xb1
,
0xfe
,
0x89
,
0xdd
,
0x24
,
0x51
,
0x4a
,
0x32
,
0x07
,
0xda
,
0x33
,
0x6f
,
0x31
,
0xe0
,
0x69
,
0x40
,
0x40
,
0x9b
,
0x24
,
0x4a
,
0x49
,
0xe6
,
0x40
,
0x7b
,
0xe6
,
0x2d
,
0x06
,
0x3c
,
0x0d
,
0x08
,
0x28
,
0xa0
,
0x1c
,
0x01
,
0xe5
,
0x78
,
0xec
,
0x39
,
0x1c
,
0x48
,
0x3a
,
0xf9
,
0x31
,
0xe0
,
0x74
,
0xad
,
0x16
,
0x69
,
0x15
,
0x8f
,
0x3d
,
0x87
,
0x03
,
0x49
,
0x27
,
0x3f
,
0x05
,
0x9c
,
0xae
,
0xd5
,
0x22
,
0xad
,
0x02
,
0x97
,
0x3d
,
0xb8
,
0xec
,
0x19
,
0xec
,
0x2b
,
0xce
,
0x0f
,
0xf3
,
0xd9
,
0x90
,
0xc7
,
0x76
,
0x9b
,
0xd4
,
0xf2
,
0x4c
,
0x83
,
0x7d
,
0xc5
,
0xf9
,
0x71
,
0x3e
,
0x1b
,
0xf2
,
0xd8
,
0x6e
,
0x93
,
0x5a
,
0x9e
,
0x89
,
0x1e
,
0xc7
,
0xf4
,
0x38
,
0xe6
,
0x0f
,
0x6f
,
0x38
,
0x7f
,
0xe3
,
0x8d
,
0x44
,
0x18
,
0xdb
,
0xfb
,
0xd2
,
0xa3
,
0xce
,
0xfc
,
0xee
,
0x2d
,
0xe7
,
0x6f
,
0xbd
,
0x91
,
0x08
,
0x63
,
0x7b
,
0x5f
,
0x7a
,
0xd4
,
0x79
,
0xec
,
0x73
,
0x63
,
0xff
,
0x07
,
0x90
,
0xf4
,
0xe5
,
0x78
,
0x1c
,
0xdb
,
0x07
,
0x14
,
0xb2
,
0xc6
,
0x41
,
0x4f
,
0xd1
,
0x00
,
0x49
,
0x9f
,
0x8f
,
0xc7
,
0xb1
,
0x7d
,
0x40
,
0x21
,
0x6b
,
0x1c
,
0xf4
,
0x14
,
0x4d
,
0x3d
,
0x91
,
0xd4
,
0x13
,
0x99
,
0x91
,
0x43
,
0xe9
,
0x29
,
0xc7
,
0xc4
,
0x4c
,
0x2a
,
0x06
,
0x99
,
0xe9
,
0xc8
,
0x4c
,
0x19
,
0x39
,
0x94
,
0x9e
,
0x72
,
0x4c
,
0xcc
,
0xa4
,
0x62
,
0x90
,
0x99
,
0x8e
,
0xcc
,
0xa4
,
0xc6
,
0xc2
,
0x6a
,
0x2c
,
0x8c
,
0x85
,
0x2f
,
0x22
,
0x3f
,
0xe6
,
0xea
,
0xf6
,
0x47
,
0x32
,
0x16
,
0x9d
,
0x87
,
0xef
,
0x58
,
0xf8
,
0x22
,
0xf2
,
0x63
,
0xae
,
0x6e
,
0xff
,
0x48
,
0xc6
,
0xa2
,
0xf3
,
0xf0
,
0x3d
,
0xbd
,
0xf1
,
0xe9
,
0x8d
,
0x67
,
0x7e
,
0x40
,
0x36
,
0x18
,
0xd9
,
0xc8
,
0x18
,
0x18
,
0xe9
,
0x30
,
0xbb
,
0xf0
,
0x31
,
0xcc
,
0x0f
,
0xc8
,
0x06
,
0x23
,
0x1b
,
0x19
,
0x03
,
0x23
,
0x1d
,
0x66
,
0x17
,
0x3e
,
0xa2
,
0xf3
,
0x1a
,
0x9d
,
0xd7
,
0x38
,
0xac
,
0x07
,
0x56
,
0x34
,
0xf5
,
0x96
,
0x89
,
0x7d
,
0xd2
,
0x35
,
0x7b
,
0xad
,
0x3e
,
0x87
,
0xf5
,
0xc0
,
0x8a
,
0xa6
,
0xde
,
0x32
,
0xb1
,
0x1f
,
0x77
,
0xcd
,
0x5e
,
0xab
,
0xcf
,
0xce
,
0xa8
,
0xbb
,
0xa0
,
0x9a
,
0xbc
,
0xa0
,
0xe2
,
0x7b
,
0x37
,
0xf5
,
0x96
,
0x3c
,
0x76
,
0xa5
,
0x02
,
0x56
,
0x5b
,
0x26
,
0xcf
,
0xa8
,
0xf8
,
0xde
,
0x4f
,
0xbd
,
0x25
,
0x8f
,
0x5d
,
0xa9
,
0x80
,
0xd5
,
0x16
,
0xf3
,
0x64
,
0xcc
,
0x93
,
0xf9
,
0x54
,
0xd8
,
0x4f
,
0x64
,
0x15
,
0x4a
,
0x8a
,
0xbd
,
0x80
,
0xfa
,
0x90
,
0x0b
,
0x2c
,
0x3e
,
0x15
,
0xf6
,
0x13
,
0x59
,
0x85
,
0x92
,
0x62
,
0x2f
,
0xa0
,
0x3e
,
0xe4
,
0x02
,
0x8b
,
0xcb
,
0x3e
,
0x2e
,
0xfb
,
0xb4
,
0x5b
,
0xe9
,
0xb5
,
0xfa
,
0xc7
,
0xba
,
0x8d
,
0x81
,
0x14
,
0xb9
,
0xa9
,
0x0e
,
0x16
,
0xee
,
0x56
,
0x7a
,
0xad
,
0xfe
,
0x91
,
0x6e
,
0x63
,
0x20
,
0x45
,
0x6e
,
0xaa
,
0x83
,
0xc5
,
0xe1
,
0x07
,
0x87
,
0x1f
,
0x8c
,
0xf9
,
0xc2
,
0x7e
,
0x4a
,
0xb1
,
0x48
,
0x02
,
0x8b
,
0x23
,
0x8a
,
0xf9
,
0x35
,
0x09
,
0x63
,
0xbe
,
0xb0
,
0x9f
,
0x52
,
0x2c
,
0x92
,
0xc0
,
0xe2
,
0x88
,
0x62
,
0x7e
,
0x49
,
0x02
,
0x9b
,
0x04
,
0x6c
,
0x12
,
0xac
,
0x68
,
0x4c
,
0xe6
,
0x38
,
0xf6
,
0x1f
,
0x78
,
0x30
,
0x58
,
0x5e
,
0xe2
,
0xbd
,
0xec
,
0x2b
,
0x1a
,
0x93
,
0x39
,
0x8e
,
0xfd
,
0x3b
,
0x1e
,
0x0c
,
0x96
,
0xe7
,
0x78
,
0x2f
,
0xfb
,
0xb3
,
0x6e
,
0xff
,
0x75
,
0x2b
,
0xbd
,
0x86
,
0x9b
,
0x67
,
0x3a
,
0xaf
,
0xa1
,
0xa5
,
0x05
,
0xcd
,
0x18
,
0x54
,
0x3d
,
0xa5
,
0xd7
,
0x70
,
0xf3
,
0x4c
,
0xe7
,
0x0d
,
0xb4
,
0xb4
,
0xa0
,
0x19
,
0x83
,
0xaa
,
0x87
,
0x09
,
0x91
,
0x4c
,
0x88
,
0xec
,
0x18
,
0xfa
,
0x66
,
0x9f
,
0x81
,
0x39
,
0xe4
,
0x82
,
0x9a
,
0xa5
,
0xd5
,
0x3f
,
0x2c
,
0x1d
,
0x43
,
0xbf
,
0xd9
,
0x17
,
0x60
,
0x0e
,
0xb9
,
0xa0
,
0x66
,
0x69
,
0xf5
,
0x0f
,
0x0b
,
0x51
,
0xba
,
0x44
,
0xe9
,
0xa2
,
0xcc
,
0xf9
,
0xbd
,
0x02
,
0x8d
,
0x94
,
0x83
,
0x37
,
0x96
,
0x65
,
0x98
,
0xf6
,
0x9d
,
0x28
,
0x73
,
0xfe
,
0xac
,
0x40
,
0x23
,
0xe5
,
0xe0
,
0x8d
,
0x65
,
0x19
,
0xa6
,
0x7d
,
0x27
,
0xa9
,
0x42
,
0xa4
,
0x0a
,
0x39
,
0x35
,
0xd6
,
0x72
,
0x7a
,
0x06
,
0x0d
,
0x3f
,
0xf9
,
0xe0
,
0x07
,
0x01
,
0x8f
,
0xa9
,
0x4e
,
0x8d
,
0xb5
,
0x9c
,
0x9e
,
0x40
,
0xc3
,
0x4f
,
0x3e
,
0xfa
,
0x41
,
0xc0
,
0x63
,
0x6a
,
0xbf
,
0x86
,
0xfd
,
0x1a
,
0xee
,
0x8a
,
0x46
,
0x9b
,
0x51
,
0x1c
,
0xde
,
0xf9
,
0x42
,
0xb5
,
0x9e
,
0xa2
,
0xb2
,
0xb4
,
0xbb
,
0xa2
,
0xd1
,
0x66
,
0x14
,
0x87
,
0x37
,
0xbe
,
0x50
,
0xad
,
0xa7
,
0xa8
,
0x2c
,
0x2d
,
0xd6
,
0xa6
,
0x58
,
0x9b
,
0xd2
,
0x52
,
0xcb
,
0xa7
,
0xc5
,
0xf9
,
0xb5
,
0x02
,
0x6d
,
0x3d
,
0xc5
,
0x98
,
0x27
,
0x11
,
0xb4
,
0xd4
,
0xf2
,
0x69
,
0x71
,
0x7e
,
0xab
,
0x40
,
0x5b
,
0x4f
,
0x31
,
0xe6
,
0x49
,
0x84
,
0xc2
,
0x9b
,
0x0a
,
0x6f
,
0x3a
,
0xe0
,
0xd4
,
0xca
,
0x09
,
0x45
,
0x6d
,
0xba
,
0x79
,
0x26
,
0xeb
,
0xc1
,
0x61
,
0xca
,
0x0e
,
0x38
,
0xb5
,
0x72
,
0x42
,
0x51
,
0x9b
,
0x6e
,
0x9e
,
0xc9
,
0x7a
,
0x70
,
0x98
,
0x32
,
0xf2
,
0x37
,
0xc8
,
0xdf
,
0xa0
,
0xc8
,
0x66
,
0x2f
,
0xc0
,
0xf2
,
0x05
,
0x9f
,
0x21
,
0x84
,
0x60
,
0x69
,
0x3c
,
0x2d
,
0x28
,
0xb2
,
0xd9
,
0x0b
,
0xb0
,
0x7c
,
0xc1
,
0x67
,
0x08
,
0x21
,
0x58
,
0x1a
,
0x4f
,
0x4b
,
0x9e
,
0xf5
,
0x79
,
0xd6
,
0x6b
,
0xc1
,
0x67
,
0xae
,
0xd4
,
0x72
,
0xee
,
0xa1
,
0x53
,
0x14
,
0xfd
,
0xeb
,
0x0c
,
0x9e
,
0x52
,
0xf0
,
0x99
,
0x2b
,
0xb5
,
0x9c
,
0x5b
,
0xe8
,
0x14
,
0x45
,
0xff
,
0x39
,
0x83
,
0xa7
,
0xd0
,
0x44
,
0x43
,
0x13
,
0x29
,
0x79
,
0x0d
,
0x53
,
0x62
,
0xd4
,
0x8a
,
0xe1
,
0xfc
,
0x65
,
0xc0
,
0xe1
,
0x0a
,
0x1d
,
0x4a
,
0x5e
,
0xc3
,
0x94
,
0x18
,
0xb5
,
0x62
,
0x38
,
0xff
,
0x18
,
0x70
,
0xb8
,
0x42
,
0xc7
,
0x73
,
0xc2
,
0x2f
,
0x09
,
0x37
,
0x31
,
0x58
,
0x82
,
0x20
,
0x72
,
0xd4
,
0xea
,
0x3f
,
0xd1
,
0x83
,
0x45
,
0xb5
,
0x1b
,
0x4d
,
0x0c
,
0x96
,
0x20
,
0x88
,
0x1c
,
0xb5
,
0xfa
,
0x4f
,
0xf4
,
0x60
,
0x51
,
0xed
,
0x8a
,
0x10
,
0x6c
,
0x42
,
0xb0
,
0x3d
,
0x57
,
0x6a
,
0xb1
,
0xcf
,
0xf5
,
0x52
,
0x38
,
0x2e
,
0x2a
,
0x23
,
0xb4
,
0xec
,
0x51
,
0xcf
,
0x95
,
0x5a
,
0xec
,
0x4b
,
0xbd
,
0x14
,
0x8e
,
0x8a
,
0xca
,
0x08
,
0x2d
,
0x7b
,
0x54
,
0x10
,
0xec
,
0x41
,
0xb0
,
0x97
,
0x50
,
0x4f
,
0x44
,
0x18
,
0x0d
,
0xb8
,
0xa0
,
0x38
,
0x0a
,
0x69
,
0x90
,
0x96
,
0x49
,
0x25
,
0xd4
,
0x13
,
0x11
,
0x46
,
0x03
,
0x2e
,
0x28
,
0x8e
,
0x42
,
0x1a
,
0xa4
,
0x65
,
0x12
,
0x5f
,
0xec
,
0x7c
,
0xb5
,
0xe7
,
0xa6
,
0x9a
,
0x18
,
0x8c
,
0x37
,
0x0c
,
0x63
,
0xf9
,
0xc6
,
0x25
,
0xc1
,
0x5c
,
0xa2
,
0xb9
,
0xa9
,
0x26
,
0x06
,
0xe3
,
0x0d
,
0xc3
,
0x58
,
0xbe
,
0x71
,
0x49
,
0x30
,
0xe7
,
0x28
,
0xc4
,
0x60
,
0x10
,
0x83
,
0x21
,
0x2d
,
0xf4
,
0x11
,
0xcd
,
0x87
,
0x53
,
0x3f
,
0xb9
,
0xa7
,
0xd7
,
0x2f
,
0xf1
,
0xf1
,
0x48
,
0x0b
,
0x7d
,
0x44
,
0xf3
,
0xe1
,
0xd4
,
0x4f
,
0x6e
,
0xe9
,
0xf5
,
0x4b
,
0x7c
,
0xbc
,
0x97
,
0x62
,
0x4e
,
0x8a
,
0xd1
,
0x87
,
0xd2
,
0x44
,
0x1f
,
0x1f
,
0xe7
,
0x3c
,
0x5e
,
0x52
,
0x5d
,
0x94
,
0xf8
,
0xf8
,
0xf4
,
0xa1
,
0x34
,
0xd1
,
0xc7
,
0xa7
,
0x39
,
0x8f
,
0x97
,
0x54
,
0x17
,
0x25
,
0x3e
,
0x7e
,
0x46
,
0x21
,
0x09
,
0x85
,
0xe8
,
0x83
,
0xb4
,
0xd8
,
0x01
,
0x18
,
0x62
,
0x49
,
0x80
,
0x6c
,
0xb9
,
0x86
,
0x58
,
0x0e
,
0xfa
,
0x20
,
0x2d
,
0x76
,
0x00
,
0x86
,
0x58
,
0x12
,
0x20
,
0x5b
,
0xae
,
0x21
,
0x96
,
0x83
,
0x3a
,
0x58
,
0xea
,
0x60
,
0x3d
,
0x78
,
0xd3
,
0x39
,
0x77
,
0x7e
,
0x33
,
0xe1
,
0x20
,
0x9f
,
0xa5
,
0x0c
,
0xbf
,
0x2b
,
0x77
,
0xde
,
0x74
,
0xce
,
0x9d
,
0x3f
,
0x4c
,
0x38
,
0xc8
,
0x67
,
0x29
,
0xc3
,
0xef
,
0x8a
,
0x8e
,
0xdf
,
0x3a
,
0x7e
,
0x6b
,
0x18
,
0x6d
,
0xe4
,
0x31
,
0x5a
,
0x47
,
0x76
,
0xb3
,
0x80
,
0xec
,
0x45
,
0xfc
,
0xae
,
0x1a
,
0x46
,
0x1b
,
0x79
,
0x8c
,
0xd6
,
0x91
,
0xdd
,
0x2c
,
0x20
,
0x7b
,
0x11
,
0xbf
,
0xab
,
0x3b
,
0xe1
,
0xee
,
0x84
,
0xdf
,
0xd6
,
0x6e
,
0xf8
,
0x5d
,
0xdb
,
0x05
,
0xbf
,
0xeb
,
0x5b
,
0xf1
,
0xbb
,
0xb1
,
0x1d
,
0xb7
,
0xb5
,
0x1b
,
0x7e
,
0xd7
,
0x76
,
0xc1
,
0xef
,
0xfa
,
0x56
,
0xfc
,
0x6e
,
0x6c
,
0xc7
,
0xef
,
0xe6
,
0xbf
,
0x9b
,
0x3b
,
0xe0
,
0x37
,
0x6c
,
0xc7
,
0xef
,
0x56
,
0x09
,
0x7e
,
0xaf
,
0xc1
,
0x5b
,
0xbb
,
0x0c
,
0x0e
,
0xf8
,
0x0d
,
0xdb
,
0xf1
,
0xbb
,
0x55
,
0x82
,
0xdf
,
0x6b
,
0xf0
,
0xd6
,
0x2e
,
0x83
,
0xb7
,
0x5f
,
0xde
,
0x7e
,
0x56
,
0xcd
,
0xae
,
0xca
,
0xf3
,
0xb1
,
0x9d
,
0x40
,
0x75
,
0x9c
,
0x91
,
0xeb
,
0x38
,
0x9b
,
0x54
,
0xb3
,
0xab
,
0xf2
,
0xbc
,
0x6f
,
0x27
,
0x50
,
0x1d
,
0x67
,
0xe4
,
0x3a
,
0xce
,
0x26
,
0x94
,
0xc6
,
0x50
,
0x1a
,
0x73
,
0xa4
,
0xfa
,
0x29
,
0x25
,
0x9d
,
0x2f
,
0x54
,
0xdf
,
0x6a
,
0xb5
,
0xbc
,
0xc9
,
0xba
,
0x1c
,
0xa9
,
0x7e
,
0x4a
,
0x49
,
0xe7
,
0x2b
,
0xd5
,
0xb7
,
0x5a
,
0x2d
,
0x6f
,
0xb2
,
0xee
,
0xf4
,
0xb4
,
0xd3
,
0xd3
,
0x6a
,
0x85
,
0x8a
,
0x78
,
0xa3
,
0xe6
,
0x40
,
0xb3
,
0xaa
,
0xaa
,
0xf7
,
0xb1
,
0x98
,
0xd5
,
0x5a
,
0xa1
,
0x22
,
0xde
,
0xa8
,
0x39
,
0xd0
,
0xac
,
0xaa
,
0xea
,
0xbd
,
0x2f
,
0x66
,
0x35
,
0x59
,
0x0c
,
0x64
,
0x31
,
0xf4
,
0xc9
,
0xe2
,
0x7c
,
0xa3
,
0x79
,
0xa3
,
0x72
,
0xde
,
0x68
,
0x41
,
0x56
,
0x37
,
0x9e
,
0x7d
,
0xb2
,
0x38
,
0xdf
,
0x69
,
0xde
,
0xa8
,
0x9c
,
0x37
,
0x5a
,
0x90
,
0xd5
,
0x8d
,
0xa7
,
0xf7
,
0xb1
,
0xde
,
0xc7
,
0xea
,
0x46
,
0x18
,
0x67
,
0x74
,
0x62
,
0x75
,
0xfe
,
0x3a
,
0xb8
,
0x0b
,
0x37
,
0x1e
,
0x4f
,
0xba
,
0x11
,
0xc6
,
0x19
,
0x9d
,
0x58
,
0x9d
,
0xbf
,
0x0c
,
0x6e
,
0xc2
,
0x8d
,
0xc7
,
0xd3
,
0x61
,
0x61
,
0x87
,
0x85
,
0xa1
,
0x0d
,
0x8b
,
0x6c
,
0xb9
,
0x32
,
0x73
,
0xcb
,
0xd5
,
0x0a
,
0xa8
,
0xab
,
0x3a
,
0x50
,
0x68
,
0xc3
,
0x22
,
0x5b
,
0xae
,
0xcc
,
0xdc
,
0x72
,
0xb5
,
0x02
,
0xea
,
0xaa
,
0x0e
,
0xd4
,
0xb9
,
0x21
,
0xe7
,
0x86
,
0xb0
,
0x55
,
0x1c
,
0xc2
,
0x7a
,
0x83
,
0xd4
,
0xf2
,
0x0d
,
0xe2
,
0xbc
,
0x02
,
0xe6
,
0xf2
,
0x6c
,
0x15
,
0x87
,
0xb0
,
0xde
,
0x20
,
0xb5
,
0x7c
,
0x83
,
0x38
,
0xaf
,
0x80
,
0xb9
,
0x3c
,
0x9a
,
0x16
,
0x68
,
0x5a
,
0x88
,
0xf4
,
0x19
,
0x54
,
0x31
,
0x36
,
0x85
,
0x66
,
0x9d
,
0x62
,
0x73
,
0xbb
,
0x24
,
0x75
,
0x22
,
0x7d
,
0x06
,
0x55
,
0x8c
,
0x4d
,
0xa1
,
0x59
,
0xa7
,
0xd8
,
0xdc
,
0x2e
,
0x49
,
0x9d
,
0xaf
,
0xe1
,
0xbe
,
0x84
,
0xe3
,
0xf5
,
0x5b
,
0x26
,
0xf8
,
0xd6
,
0xf2
,
0x62
,
0x38
,
0x02
,
0x4c
,
0xec
,
0x54
,
0x45
,
0x68
,
0xfd
,
0x96
,
0x09
,
0xbe
,
0xb5
,
0xbc
,
0x18
,
0x8e
,
0x00
,
0x13
,
0x3b
,
0x55
,
0x91
,
0xce
,
0x6b
,
0x3a
,
0xdf
,
0xc1
,
0xf1
,
0xba
,
0xb3
,
0x84
,
0x3d
,
0x07
,
0x0b
,
0x35
,
0xa4
,
0x7a
,
0x99
,
0x3b
,
0x29
,
0x38
,
0x5a
,
0x77
,
0x96
,
0xb0
,
0xe7
,
0x60
,
0xa1
,
0x86
,
0x54
,
0x2f
,
0x73
,
0x27
,
0xc5
,
0xce
,
0xaf
,
0x76
,
0x7e
,
0x31
,
0xa0
,
0xe3
,
0xf2
,
0x11
,
0xf7
,
0x23
,
0xb1
,
0x7d
,
0x3b
,
0xcd
,
0x6d
,
0xa1
,
0x46
,
0x06
,
0x74
,
0x5c
,
0x3e
,
0xe2
,
0x7e
,
0x24
,
0xb6
,
0x6f
,
0xa7
,
0xb9
,
0x2d
,
0xd4
,
0x28
,
0x6e
,
0xa1
,
0x71
,
0x0b
,
0xdd
,
0x94
,
0xde
,
0xf4
,
0x29
,
0xaa
,
0xda
,
0x53
,
0x6c
,
0x4d
,
0xee
,
0xa6
,
0x19
,
0x99
,
0x9b
,
0xd2
,
0x9b
,
0x3e
,
0x45
,
0x55
,
0x7b
,
0x8a
,
0xad
,
0xc9
,
0xdd
,
0x34
,
0x23
,
0xb3
,
0xc7
,
0xaa
,
0x3d
,
0x56
,
0xbd
,
0x30
,
0x55
,
0x37
,
0x6e
,
0xa2
,
0x0e
,
0xb4
,
0x65
,
0x24
,
0xdf
,
0xdf
,
0x7b
,
0xc1
,
0x17
,
0xa6
,
0xea
,
0xc6
,
0x4d
,
0xd4
,
0x81
,
0xb6
,
0x8c
,
0xe4
,
0x87
,
0x5b
,
0x2f
,
0x98
,
0x70
,
0x6a
,
0x84
,
0x53
,
0xe3
,
0x37
,
0xdc
,
0x1c
,
0xcf
,
0xf9
,
0xc3
,
0x54
,
0xf3
,
0xe7
,
0x46
,
0x2e
,
0xbd
,
0x2e
,
0xfc
,
0x86
,
0x9b
,
0xe3
,
0x39
,
0x7f
,
0x99
,
0x6a
,
0xfe
,
0x5c
,
0xc9
,
0xa5
,
0xd7
,
0xe5
,
0x9f
,
0xfe
,
0xff
,
0xf8
,
0x9f
,
0x62
,
0xe6
,
0x39
,
0x34
,
0x67
,
0xde
,
0x22
,
0x07
,
0x98
,
0x19
,
0x63
,
0x0d
,
0x51
,
0x57
,
0xcc
,
0x3c
,
0x85
,
0xe6
,
0xcc
,
0x5b
,
0xe4
,
0x00
,
0x33
,
0x63
,
0xac
,
0x21
,
0xaa
,
0xb5
,
0x13
,
0xad
,
0x9d
,
0x10
,
0xb5
,
0xb6
,
0x1b
,
0xa2
,
0xd6
,
0x77
,
0x41
,
0xd4
,
0xc6
,
0x56
,
0x44
,
0x6d
,
0x6e
,
0xa2
,
0xd6
,
0x76
,
0x43
,
0xd4
,
0xfa
,
0x2e
,
0x88
,
0xda
,
0xd8
,
0x8a
,
0xa8
,
0xcd
,
0xed
,
0x88
,
0x0a
,
0x47
,
0x54
,
0xd8
,
0x01
,
0x51
,
0x5b
,
0xdb
,
0x11
,
0xb5
,
0x5d
,
0x82
,
0xa8
,
0x1d
,
0x30
,
0xef
,
0x38
,
0x3b
,
0x20
,
0x6a
,
0x6b
,
0x3b
,
0xa2
,
0xb6
,
0x4b
,
0x10
,
0xb5
,
0x03
,
0xe6
,
0x0d
,
0xe7
,
0x6a
,
0x71
,
0x57
,
0x8b
,
0x3b
,
0x7e
,
0x3a
,
0x1c
,
0xf6
,
0xd3
,
0xdd
,
0x44
,
0x3e
,
0xd7
,
0xa7
,
0xc2
,
0x27
,
0x83
,
0xc7
,
0x9f
,
0x0e
,
0x87
,
0xfd
,
0x74
,
0x37
,
0x91
,
0xcf
,
0xf5
,
0x50
,
0xf8
,
0x64
,
0x50
,
0x45
,
0xbc
,
0x2a
,
0xe2
,
0xa5
,
0xc2
,
0x4e
,
0xfa
,
0x4e
,
0xdd
,
0x54
,
0x33
,
0x37
,
0xdf
,
0xaa
,
0xba
,
0x20
,
0x68
,
0x54
,
0xd8
,
0x49
,
0xbf
,
0x53
,
0x37
,
0xd5
,
0xcc
,
0xcd
,
0x6b
,
0x78
,
0xa4
,
0xea
,
0x82
,
0x60
,
0xf4
,
0x7c
,
0xdc
,
0x91
,
0x3a
,
0x6c
,
0x64
,
0x87
,
0xdf
,
0xc3
,
0x91
,
0x5c
,
0x60
,
0x25
,
0x5a
,
0x6e
,
0x8d
,
0x7e
,
0x57
,
0xea
,
0xb8
,
0x91
,
0x1d
,
0xff
,
0x5e
,
0x95
,
0x15
,
0x21
,
0xeb
,
0x43
,
0x0f
,
0x7f
,
0x50
,
0xb3
,
0x0c
,
0x32
,
0x53
,
0xb3
,
0x66
,
0x66
,
0xf6
,
0x83
,
0xb6
,
0x2b
,
0xb9
,
0x7c
,
0x14
,
0xc6
,
0xe3
,
0xbe
,
0x15
,
0xd8
,
0x6e
,
0xbd
,
0x66
,
0x19
,
0xe2
,
0xa6
,
0x66
,
0xcd
,
0xcc
,
0xec
,
0x47
,
0x6d
,
0xd5
,
0x4f
,
0xfe
,
0x3d
,
0xb9
,
0xea
,
0x22
,
0x53
,
0xeb
,
0x22
,
0xe7
,
0x35
,
0x9c
,
0x68
,
0x30
,
0x32
,
0xe6
,
0x72
,
0xf9
,
0x28
,
0x8c
,
0xc7
,
0x0f
,
0xfe
,
0x1c
,
0x5d
,
0x35
,
0xa1
,
0xa9
,
0x35
,
0xa1
,
0xf3
,
0x06
,
0x8b
,
0x2d
,
0xd6
,
0x57
,
0x56
,
0x8c
,
0xbc
,
0x95
,
0x4e
,
0x21
,
0xbc
,
0x84
,
0x7d
,
0x05
,
0xf5
,
0x58
,
0x1e
,
0x6b
,
0x28
,
0x34
,
0xe6
,
0x8b
,
0x2d
,
0xd6
,
0x57
,
0x56
,
0x8c
,
0xbc
,
0x95
,
0x4e
,
0x21
,
0xbc
,
0x7e
,
0x2a
,
0x40
,
0x3a
,
0x5d
,
0x03
,
0x24
,
0x12
,
0xbb
,
0xa9
,
0x5a
,
0xff
,
0xef
,
0x0a
,
0x58
,
0xf4
,
0x84
,
0x7d
,
0x03
,
0xf5
,
0x58
,
0xfe
,
0x54
,
0x78
,
0x76
,
0xbc
,
0x86
,
0x67
,
0x24
,
0x76
,
0x53
,
0xb5
,
0xcb
,
0x9a
,
0x7d
,
0x0d
,
0x90
,
0xb5
,
0x26
,
0x2b
,
0x5f
,
0x03
,
0xcf
,
0xd2
,
0xdd
,
0xff
,
0x7d
,
0x90
,
0xfe
,
0xef
,
0x06
,
0x58
,
0xf4
,
0x61
,
0xce
,
0xbe
,
0x05
,
0xc8
,
0x3a
,
0x9b
,
0x95
,
0x6f
,
0x91
,
0x27
,
0xf8
,
0x93
,
0xe0
,
0x76
,
0xe1
,
0xec
,
0xb1
,
0xbe
,
0xb6
,
0xf7
,
0x97
,
0xed
,
0x83
,
0x65
,
0x67
,
0x52
,
0xe9
,
0xa7
,
0xc3
,
0x87
,
0x20
,
0xf1
,
0x27
,
0xc1
,
0xf5
,
0xc2
,
0xd9
,
0x63
,
0x7d
,
0xed
,
0xb3
,
0xa1
,
0x5f
,
0x72
,
0x12
,
0x96
,
0x6f
,
0x79
,
0x65
,
0xe7
,
0x5e
,
0xa9
,
0x59
,
0x9e
,
0xce
,
0xc5
,
0x4d
,
0xeb
,
0x6c
,
0x9d
,
0x2c
,
0x3b
,
0xf3
,
0x4a
,
0x8d
,
0xf4
,
0x74
,
0xe8
,
0x6e
,
0xda
,
0x2c
,
0xcb
,
0xce
,
0xa6
,
0x5e
,
0xc9
,
0xd9
,
0x61
,
0x8d
,
0xfe
,
0x20
,
0x78
,
0xf9
,
0x4f
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0xea
,
0x71
,
0xca
,
0x21
,
0x5c
,
0xbe
,
0x60
,
0xde
,
0xe7
,
0x33
,
0x1d
,
0xc9
,
0x9b
,
0x36
,
0xcd
,
0x92
,
0xb3
,
0x5a
,
0x62
,
0xc5
,
0x49
,
0x10
,
0x00
,
0x00
,
0xc3
,
0x1a
,
0xfd
,
0x37
,
0xf1
,
0xf2
,
0xdf
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0xaf
,
0x4b
,
0x73
,
0xb4
,
0xc4
,
0x10
,
0x00
,
0x00
,
}
}
// Reference imports to suppress errors if they are not otherwise used.
// Reference imports to suppress errors if they are not otherwise used.
...
@@ -2007,6 +2056,8 @@ type GuessClient interface {
...
@@ -2007,6 +2056,8 @@ type GuessClient interface {
GuessStart
(
ctx
context
.
Context
,
in
*
GuessGameStart
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
GuessStart
(
ctx
context
.
Context
,
in
*
GuessGameStart
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
//游戏下注
//游戏下注
GuessBet
(
ctx
context
.
Context
,
in
*
GuessGameBet
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
GuessBet
(
ctx
context
.
Context
,
in
*
GuessGameBet
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
//游戏终止下注
GuessStopBet
(
ctx
context
.
Context
,
in
*
GuessGameStopBet
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
//游戏异常终止
//游戏异常终止
GuessAbort
(
ctx
context
.
Context
,
in
*
GuessGameAbort
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
GuessAbort
(
ctx
context
.
Context
,
in
*
GuessGameAbort
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
//游戏结束
//游戏结束
...
@@ -2039,6 +2090,15 @@ func (c *guessClient) GuessBet(ctx context.Context, in *GuessGameBet, opts ...gr
...
@@ -2039,6 +2090,15 @@ func (c *guessClient) GuessBet(ctx context.Context, in *GuessGameBet, opts ...gr
return
out
,
nil
return
out
,
nil
}
}
func
(
c
*
guessClient
)
GuessStopBet
(
ctx
context
.
Context
,
in
*
GuessGameStopBet
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
{
out
:=
new
(
types
.
UnsignTx
)
err
:=
c
.
cc
.
Invoke
(
ctx
,
"/types.guess/GuessStopBet"
,
in
,
out
,
opts
...
)
if
err
!=
nil
{
return
nil
,
err
}
return
out
,
nil
}
func
(
c
*
guessClient
)
GuessAbort
(
ctx
context
.
Context
,
in
*
GuessGameAbort
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
{
func
(
c
*
guessClient
)
GuessAbort
(
ctx
context
.
Context
,
in
*
GuessGameAbort
,
opts
...
grpc
.
CallOption
)
(
*
types
.
UnsignTx
,
error
)
{
out
:=
new
(
types
.
UnsignTx
)
out
:=
new
(
types
.
UnsignTx
)
err
:=
c
.
cc
.
Invoke
(
ctx
,
"/types.guess/GuessAbort"
,
in
,
out
,
opts
...
)
err
:=
c
.
cc
.
Invoke
(
ctx
,
"/types.guess/GuessAbort"
,
in
,
out
,
opts
...
)
...
@@ -2063,6 +2123,8 @@ type GuessServer interface {
...
@@ -2063,6 +2123,8 @@ type GuessServer interface {
GuessStart
(
context
.
Context
,
*
GuessGameStart
)
(
*
types
.
UnsignTx
,
error
)
GuessStart
(
context
.
Context
,
*
GuessGameStart
)
(
*
types
.
UnsignTx
,
error
)
//游戏下注
//游戏下注
GuessBet
(
context
.
Context
,
*
GuessGameBet
)
(
*
types
.
UnsignTx
,
error
)
GuessBet
(
context
.
Context
,
*
GuessGameBet
)
(
*
types
.
UnsignTx
,
error
)
//游戏终止下注
GuessStopBet
(
context
.
Context
,
*
GuessGameStopBet
)
(
*
types
.
UnsignTx
,
error
)
//游戏异常终止
//游戏异常终止
GuessAbort
(
context
.
Context
,
*
GuessGameAbort
)
(
*
types
.
UnsignTx
,
error
)
GuessAbort
(
context
.
Context
,
*
GuessGameAbort
)
(
*
types
.
UnsignTx
,
error
)
//游戏结束
//游戏结束
...
@@ -2109,6 +2171,24 @@ func _Guess_GuessBet_Handler(srv interface{}, ctx context.Context, dec func(inte
...
@@ -2109,6 +2171,24 @@ func _Guess_GuessBet_Handler(srv interface{}, ctx context.Context, dec func(inte
return
interceptor
(
ctx
,
in
,
info
,
handler
)
return
interceptor
(
ctx
,
in
,
info
,
handler
)
}
}
func
_Guess_GuessStopBet_Handler
(
srv
interface
{},
ctx
context
.
Context
,
dec
func
(
interface
{})
error
,
interceptor
grpc
.
UnaryServerInterceptor
)
(
interface
{},
error
)
{
in
:=
new
(
GuessGameStopBet
)
if
err
:=
dec
(
in
);
err
!=
nil
{
return
nil
,
err
}
if
interceptor
==
nil
{
return
srv
.
(
GuessServer
)
.
GuessStopBet
(
ctx
,
in
)
}
info
:=
&
grpc
.
UnaryServerInfo
{
Server
:
srv
,
FullMethod
:
"/types.guess/GuessStopBet"
,
}
handler
:=
func
(
ctx
context
.
Context
,
req
interface
{})
(
interface
{},
error
)
{
return
srv
.
(
GuessServer
)
.
GuessStopBet
(
ctx
,
req
.
(
*
GuessGameStopBet
))
}
return
interceptor
(
ctx
,
in
,
info
,
handler
)
}
func
_Guess_GuessAbort_Handler
(
srv
interface
{},
ctx
context
.
Context
,
dec
func
(
interface
{})
error
,
interceptor
grpc
.
UnaryServerInterceptor
)
(
interface
{},
error
)
{
func
_Guess_GuessAbort_Handler
(
srv
interface
{},
ctx
context
.
Context
,
dec
func
(
interface
{})
error
,
interceptor
grpc
.
UnaryServerInterceptor
)
(
interface
{},
error
)
{
in
:=
new
(
GuessGameAbort
)
in
:=
new
(
GuessGameAbort
)
if
err
:=
dec
(
in
);
err
!=
nil
{
if
err
:=
dec
(
in
);
err
!=
nil
{
...
@@ -2158,6 +2238,10 @@ var _Guess_serviceDesc = grpc.ServiceDesc{
...
@@ -2158,6 +2238,10 @@ var _Guess_serviceDesc = grpc.ServiceDesc{
Handler
:
_Guess_GuessBet_Handler
,
Handler
:
_Guess_GuessBet_Handler
,
},
},
{
{
MethodName
:
"GuessStopBet"
,
Handler
:
_Guess_GuessStopBet_Handler
,
},
{
MethodName
:
"GuessAbort"
,
MethodName
:
"GuessAbort"
,
Handler
:
_Guess_GuessAbort_Handler
,
Handler
:
_Guess_GuessAbort_Handler
,
},
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment