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
6e5bf601
Commit
6e5bf601
authored
Jan 27, 2021
by
madengji
Committed by
vipwzw
Sep 18, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
all circuit pass
parent
d5900775
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
251 additions
and
224 deletions
+251
-224
input
plugin/dapp/mix/cmd/gnark/circuit/authorize/input
+1
-0
mix.go
plugin/dapp/mix/commands/mix.go
+45
-0
mix.go
plugin/dapp/mix/executor/mix.go
+1
-1
transfer.go
plugin/dapp/mix/executor/transfer.go
+5
-8
transfer_test.go
plugin/dapp/mix/executor/transfer_test.go
+12
-12
withdraw.go
plugin/dapp/mix/executor/withdraw.go
+1
-1
mix.proto
plugin/dapp/mix/proto/mix.proto
+0
-1
mix.go
plugin/dapp/mix/types/mix.go
+7
-1
mix.pb.go
plugin/dapp/mix/types/mix.pb.go
+164
-174
mixbizdb.go
plugin/dapp/mix/wallet/mixbizdb.go
+4
-5
mixbizpolicy.go
plugin/dapp/mix/wallet/mixbizpolicy.go
+1
-0
proof.go
plugin/dapp/mix/wallet/proof.go
+10
-21
No files found.
plugin/dapp/mix/cmd/gnark/circuit/authorize/input
View file @
6e5bf601
...
...
@@ -11,6 +11,7 @@ secret, authorizePriKey,17822967620457187568904804290291537271142779717280482398
secret, spendFlag,1
secret, noteRandom,2824204835
secret, noteHash,3649361563603415612447884923592927672484439983354650489908367088830561161361
secret, path1,19561523370160677851616596032513161448778901506614020103852017946679781620105
secret, path2,13898857070666440684265042188056372750257678232709763835292910585848522658637
secret, path3,15019169196974879571470243100379529757970866395477207575033769902587972032431
...
...
plugin/dapp/mix/commands/mix.go
View file @
6e5bf601
...
...
@@ -5,7 +5,10 @@
package
commands
import
(
"encoding/hex"
"encoding/json"
"fmt"
"os"
"strings"
"github.com/33cn/chain33/rpc/jsonclient"
...
...
@@ -829,6 +832,7 @@ func SecretCmd() *cobra.Command {
Short
:
"note secret cmd"
,
}
cmd
.
AddCommand
(
EncodeSecretDataCmd
())
cmd
.
AddCommand
(
DecodeSecretDataCmd
())
cmd
.
AddCommand
(
EncryptSecretDataCmd
())
cmd
.
AddCommand
(
DecryptSecretDataCmd
())
...
...
@@ -878,6 +882,47 @@ func encodeSecret(cmd *cobra.Command, args []string) {
ctx
.
Run
()
}
// EncodeSecretDataCmd get para chain status by height
func
DecodeSecretDataCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"decode"
,
Short
:
"decode secret data"
,
Run
:
decodeSecret
,
}
decodeSecretCmdFlags
(
cmd
)
return
cmd
}
func
decodeSecretCmdFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"data"
,
"d"
,
""
,
"receiver data"
)
cmd
.
MarkFlagRequired
(
"data"
)
}
func
decodeSecret
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
//rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
data
,
_
:=
cmd
.
Flags
()
.
GetString
(
"data"
)
var
secret
mixTy
.
DHSecret
d
,
err
:=
hex
.
DecodeString
(
data
)
if
err
!=
nil
{
fmt
.
Println
(
"decode string fail"
)
return
}
err
=
types
.
Decode
(
d
,
&
secret
)
if
err
!=
nil
{
fmt
.
Println
(
"decode data fail"
)
return
}
rst
,
err
:=
json
.
MarshalIndent
(
secret
,
""
,
" "
)
if
err
!=
nil
{
fmt
.
Fprintln
(
os
.
Stderr
,
err
)
return
}
fmt
.
Println
(
string
(
rst
))
}
// ShowAccountPrivacyInfo get para chain status by height
func
EncryptSecretDataCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
...
...
plugin/dapp/mix/executor/mix.go
View file @
6e5bf601
...
...
@@ -63,7 +63,7 @@ func (m *Mix) CheckTx(tx *types.Transaction, index int) error {
// mix隐私交易,只私对私需要特殊签名验证
return
m
.
DriverBase
.
CheckTx
(
tx
,
index
)
}
_
,
_
,
err
:=
MixTransferInfoVerify
(
m
.
Get
API
()
.
GetConfig
(),
m
.
Get
StateDB
(),
action
.
GetTransfer
())
_
,
_
,
err
:=
MixTransferInfoVerify
(
m
.
GetStateDB
(),
action
.
GetTransfer
())
if
err
!=
nil
{
mlog
.
Error
(
"checkTx"
,
"err"
,
err
,
"txhash"
,
common
.
ToHex
(
tx
.
Hash
()))
return
err
...
...
plugin/dapp/mix/executor/transfer.go
View file @
6e5bf601
...
...
@@ -7,8 +7,6 @@ package executor
import
(
"encoding/hex"
"encoding/json"
"fmt"
"github.com/33cn/chain33/types"
mixTy
"github.com/33cn/plugin/plugin/dapp/mix/types"
"github.com/consensys/gurvy/bn256/twistededwards"
...
...
@@ -72,7 +70,7 @@ func transferOutputVerify(db dbm.KV, proof *mixTy.ZkProofInfo) (*mixTy.TransferO
}
func
VerifyCommitValues
(
inputs
[]
*
mixTy
.
TransferInputPublicInput
,
outputs
[]
*
mixTy
.
TransferOutputPublicInput
,
minFee
int64
)
bool
{
func
VerifyCommitValues
(
inputs
[]
*
mixTy
.
TransferInputPublicInput
,
outputs
[]
*
mixTy
.
TransferOutputPublicInput
)
bool
{
var
inputPoints
,
outputPoints
[]
*
twistededwards
.
Point
for
_
,
in
:=
range
inputs
{
var
p
twistededwards
.
Point
...
...
@@ -90,7 +88,7 @@ func VerifyCommitValues(inputs []*mixTy.TransferInputPublicInput, outputs []*mix
//out value add fee
//对于平行链来说, 隐私交易需要一个公共账户扣主链的手续费,隐私交易只需要扣平行链执行器内的费用即可
//由于平行链的隐私交易没有实际扣平行链mix合约的手续费,平行链Mix合约会有手续费留下,平行链隐私可以考虑手续费为0
outputPoints
=
append
(
outputPoints
,
mixTy
.
MulCurvePointG
(
uint64
(
mi
n
Fee
)))
outputPoints
=
append
(
outputPoints
,
mixTy
.
MulCurvePointG
(
uint64
(
mi
xTy
.
Privacy2PrivacyTx
Fee
)))
//sum input and output
sumInput
:=
inputPoints
[
0
]
...
...
@@ -108,7 +106,7 @@ func VerifyCommitValues(inputs []*mixTy.TransferInputPublicInput, outputs []*mix
return
false
}
func
MixTransferInfoVerify
(
cfg
*
types
.
Chain33Config
,
db
dbm
.
KV
,
transfer
*
mixTy
.
MixTransferAction
)
([]
*
mixTy
.
TransferInputPublicInput
,
[]
*
mixTy
.
TransferOutputPublicInput
,
error
)
{
func
MixTransferInfoVerify
(
db
dbm
.
KV
,
transfer
*
mixTy
.
MixTransferAction
)
([]
*
mixTy
.
TransferInputPublicInput
,
[]
*
mixTy
.
TransferOutputPublicInput
,
error
)
{
var
inputs
[]
*
mixTy
.
TransferInputPublicInput
var
outputs
[]
*
mixTy
.
TransferOutputPublicInput
...
...
@@ -129,8 +127,7 @@ func MixTransferInfoVerify(cfg *types.Chain33Config, db dbm.KV, transfer *mixTy.
}
outputs
=
append
(
outputs
,
change
)
minTxFee
:=
types
.
Conf
(
cfg
,
"config.wallet"
)
.
GInt
(
"minFee"
)
if
!
VerifyCommitValues
(
inputs
,
outputs
,
minTxFee
)
{
if
!
VerifyCommitValues
(
inputs
,
outputs
)
{
return
nil
,
nil
,
errors
.
Wrap
(
mixTy
.
ErrSpendInOutValueNotMatch
,
"verifyValue"
)
}
...
...
@@ -143,7 +140,7 @@ func MixTransferInfoVerify(cfg *types.Chain33Config, db dbm.KV, transfer *mixTy.
3. add nullifier to pool
*/
func
(
a
*
action
)
Transfer
(
transfer
*
mixTy
.
MixTransferAction
)
(
*
types
.
Receipt
,
error
)
{
inputs
,
outputs
,
err
:=
MixTransferInfoVerify
(
a
.
api
.
GetConfig
(),
a
.
db
,
transfer
)
inputs
,
outputs
,
err
:=
MixTransferInfoVerify
(
a
.
db
,
transfer
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"Transfer.MixTransferInfoVerify"
)
}
...
...
plugin/dapp/mix/executor/transfer_test.go
View file @
6e5bf601
...
...
@@ -51,21 +51,21 @@ func TestVerifyCommitValuesBasePoint(t *testing.T) {
t
.
Log
(
"p3.x"
,
p3
.
X
.
String
())
t
.
Log
(
"p3.y"
,
p3
.
Y
.
String
())
input1
:=
&
mixTy
.
TransferInputPublicInput
{
AmountX
:
p1
.
X
.
String
(),
AmountY
:
p1
.
Y
.
String
(),
Shield
AmountX
:
p1
.
X
.
String
(),
Shield
AmountY
:
p1
.
Y
.
String
(),
}
var
inputs
[]
*
mixTy
.
TransferInputPublicInput
inputs
=
append
(
inputs
,
input1
)
output1
:=
&
mixTy
.
TransferOutputPublicInput
{
AmountX
:
p2
.
X
.
String
(),
AmountY
:
p2
.
Y
.
String
(),
Shield
AmountX
:
p2
.
X
.
String
(),
Shield
AmountY
:
p2
.
Y
.
String
(),
}
output2
:=
&
mixTy
.
TransferOutputPublicInput
{
AmountX
:
p3
.
X
.
String
(),
AmountY
:
p3
.
Y
.
String
(),
Shield
AmountX
:
p3
.
X
.
String
(),
Shield
AmountY
:
p3
.
Y
.
String
(),
}
var
outputs
[]
*
mixTy
.
TransferOutputPublicInput
...
...
@@ -107,21 +107,21 @@ func TestVerifyCommitValuesBaseAddHPoint(t *testing.T) {
p3
.
Add
(
&
p3
,
&
r3
)
input1
:=
&
mixTy
.
TransferInputPublicInput
{
AmountX
:
p1
.
X
.
String
(),
AmountY
:
p1
.
Y
.
String
(),
Shield
AmountX
:
p1
.
X
.
String
(),
Shield
AmountY
:
p1
.
Y
.
String
(),
}
var
inputs
[]
*
mixTy
.
TransferInputPublicInput
inputs
=
append
(
inputs
,
input1
)
output1
:=
&
mixTy
.
TransferOutputPublicInput
{
AmountX
:
p2
.
X
.
String
(),
AmountY
:
p2
.
Y
.
String
(),
Shield
AmountX
:
p2
.
X
.
String
(),
Shield
AmountY
:
p2
.
Y
.
String
(),
}
output2
:=
&
mixTy
.
TransferOutputPublicInput
{
AmountX
:
p3
.
X
.
String
(),
AmountY
:
p3
.
Y
.
String
(),
Shield
AmountX
:
p3
.
X
.
String
(),
Shield
AmountY
:
p3
.
Y
.
String
(),
}
var
outputs
[]
*
mixTy
.
TransferOutputPublicInput
...
...
plugin/dapp/mix/executor/withdraw.go
View file @
6e5bf601
...
...
@@ -93,7 +93,7 @@ func (a *action) Withdraw(withdraw *mixTy.MixWithdrawAction) (*types.Receipt, er
}
if
sumValue
!=
withdraw
.
Amount
{
return
nil
,
mixTy
.
ErrInputParaNotMatch
return
nil
,
errors
.
Wrapf
(
mixTy
.
ErrInputParaNotMatch
,
"amount:input=%d,proof sum=%d"
,
withdraw
.
Amount
,
sumValue
)
}
//withdraw value
...
...
plugin/dapp/mix/proto/mix.proto
View file @
6e5bf601
...
...
@@ -151,7 +151,6 @@ message TransferOutputPublicInput {
string
shieldAmountX
=
2
;
string
shieldAmountY
=
3
;
DHSecretGroup
dhSecrets
=
4
;
}
message
AuthorizePublicInput
{
...
...
plugin/dapp/mix/types/mix.go
View file @
6e5bf601
...
...
@@ -4,7 +4,10 @@
package
types
import
"github.com/33cn/chain33/common/log/log15"
import
(
"github.com/33cn/chain33/common/log/log15"
"github.com/33cn/chain33/types"
)
var
tlog
=
log15
.
New
(
"module"
,
MixX
)
...
...
@@ -45,3 +48,6 @@ const (
PointHX
=
"10190477835300927557649934238820360529458681672073866116232821892325659279502"
PointHY
=
"7969140283216448215269095418467361784159407896899334866715345504515077887397"
)
//mix transfer tx fee
const
Privacy2PrivacyTxFee
=
types
.
Coin
plugin/dapp/mix/types/mix.pb.go
View file @
6e5bf601
...
...
@@ -6,13 +6,12 @@ package types
import
(
context
"context"
fmt
"fmt"
math
"math"
types
"github.com/33cn/chain33/types"
proto
"github.com/golang/protobuf/proto"
grpc
"google.golang.org/grpc"
codes
"google.golang.org/grpc/codes"
status
"google.golang.org/grpc/status"
math
"math"
)
// Reference imports to suppress errors if they are not otherwise used.
...
...
@@ -1131,13 +1130,12 @@ func (m *TransferInputPublicInput) GetNullifierHash() string {
}
type
TransferOutputPublicInput
struct
{
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
ShieldAmountX
string
`protobuf:"bytes,2,opt,name=shieldAmountX,proto3" json:"shieldAmountX,omitempty"`
ShieldAmountY
string
`protobuf:"bytes,3,opt,name=shieldAmountY,proto3" json:"shieldAmountY,omitempty"`
DhSecrets
*
DHSecretGroup
`protobuf:"bytes,4,opt,name=dhSecrets,proto3" json:"dhSecrets,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
ShieldAmountX
string
`protobuf:"bytes,2,opt,name=shieldAmountX,proto3" json:"shieldAmountX,omitempty"`
ShieldAmountY
string
`protobuf:"bytes,3,opt,name=shieldAmountY,proto3" json:"shieldAmountY,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
TransferOutputPublicInput
)
Reset
()
{
*
m
=
TransferOutputPublicInput
{}
}
...
...
@@ -1186,13 +1184,6 @@ func (m *TransferOutputPublicInput) GetShieldAmountY() string {
return
""
}
func
(
m
*
TransferOutputPublicInput
)
GetDhSecrets
()
*
DHSecretGroup
{
if
m
!=
nil
{
return
m
.
DhSecrets
}
return
nil
}
type
AuthorizePublicInput
struct
{
TreeRootHash
string
`protobuf:"bytes,1,opt,name=treeRootHash,proto3" json:"treeRootHash,omitempty"`
AuthorizePubKey
string
`protobuf:"bytes,2,opt,name=authorizePubKey,proto3" json:"authorizePubKey,omitempty"`
...
...
@@ -3657,165 +3648,164 @@ func init() {
}
var
fileDescriptor_5c21d519a9be369a
=
[]
byte
{
// 25
15
bytes of a gzipped FileDescriptorProto
// 25
04
bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xec
,
0x59
,
0xcd
,
0x6e
,
0x1b
,
0xc9
,
0x11
,
0xd6
,
0xf0
,
0x57
,
0x2c
,
0x91
,
0x12
,
0xd5
,
0xf6
,
0x6a
,
0x69
,
0x21
,
0xeb
,
0x28
,
0xbd
,
0x5e
,
0xaf
,
0x22
,
0x07
,
0xda
,
0x0d
,
0xed
,
0x38
,
0xc9
,
0x21
,
0xbb
,
0x60
,
0x4c
,
0xca
,
0xe4
,
0xda
,
0xa2
,
0x88
,
0x26
,
0xfd
,
0x1b
,
0x24
,
0xc0
,
0x98
,
0x6c
,
0x89
,
0x03
,
0x93
,
0x9c
,
0xf1
,
0xcc
,
0x50
,
0xa6
,
0x72
,
0xca
,
0x21
,
0xc0
,
0x1e
,
0x82
,
0x9c
,
0x82
,
0x5c
,
0x03
,
0xe4
,
0x94
,
0x3c
,
0xc0
,
0x22
,
0x01
,
0xf2
,
0x0c
,
0x39
,
0xe6
,
0x01
,
0x02
,
0xe4
,
0x90
,
0x6b
,
0x1e
,
0x21
,
0xe8
,
0xbf
,
0x99
,
0xee
,
0x21
,
0xa9
,
0x1f
,
0x67
,
0x73
,
0xdb
,
0x1b
,
0xab
,
0xe6
,
0xeb
,
0xee
,
0xaa
,
0xaf
,
0xaa
,
0xab
,
0xab
,
0x9b
,
0x50
,
0x18
,
0x3b
,
0xb3
,
0x7d
,
0xcf
,
0x77
,
0x43
,
0x17
,
0x65
,
0xc3
,
0x33
,
0x8f
,
0x06
,
0xdb
,
0xc5
,
0xbe
,
0x3b
,
0x1e
,
0xbb
,
0x13
,
0xa1
,
0xdc
,
0xde
,
0x0c
,
0x7d
,
0x7b
,
0x12
,
0xd8
,
0xfd
,
0xd0
,
0x51
,
0x2a
,
0xfc
,
0x05
,
0xac
,
0xbd
,
0x7c
,
0xfd
,
0x94
,
0xfa
,
0xce
,
0xf1
,
0xd9
,
0x23
,
0x7a
,
0x86
,
0x3e
,
0x82
,
0x0c
,
0x1b
,
0x58
,
0xb1
,
0x76
,
0xac
,
0xdd
,
0xf5
,
0xea
,
0xe6
,
0x3e
,
0x9f
,
0x65
,
0x5f
,
0x7c
,
0xef
,
0x9d
,
0x79
,
0x94
,
0xf0
,
0xcf
,
0xe8
,
0x3a
,
0x64
,
0x4f
,
0xed
,
0xd1
,
0x94
,
0x56
,
0x52
,
0x3b
,
0xd6
,
0x6e
,
0x81
,
0x08
,
0x01
,
0xdf
,
0x87
,
0xa2
,
0x36
,
0x57
,
0x80
,
0x6e
,
0x43
,
0x66
,
0x60
,
0x87
,
0x76
,
0xc5
,
0xda
,
0x49
,
0xef
,
0xae
,
0x55
,
0x91
,
0x9c
,
0x4c
,
0x83
,
0x10
,
0xfe
,
0x1d
,
0x7f
,
0x07
,
0xd6
,
0x6a
,
0xd3
,
0x70
,
0xd8
,
0x99
,
0xbe
,
0xe2
,
0xc3
,
0x90
,
0x36
,
0xac
,
0x20
,
0x21
,
0x2e
,
0x40
,
0xc7
,
0x3e
,
0x1b
,
0xd3
,
0x49
,
0xc8
,
0xac
,
0x44
,
0x90
,
0xb1
,
0x07
,
0x03
,
0x9f
,
0x5b
,
0x59
,
0x20
,
0xfc
,
0x37
,
0xda
,
0x81
,
0x35
,
0x9f
,
0xf6
,
0xa9
,
0x73
,
0x4a
,
0xfd
,
0x47
,
0xf4
,
0x4c
,
0x1a
,
0xa6
,
0xab
,
0xd0
,
0x1d
,
0x28
,
0x04
,
0xb4
,
0xef
,
0x53
,
0x36
,
0x45
,
0x25
,
0xbd
,
0x63
,
0xed
,
0xae
,
0x55
,
0x4b
,
0xd2
,
0x26
,
0xb1
,
0x34
,
0x89
,
0xbf
,
0xe3
,
0xff
,
0x58
,
0xb0
,
0x71
,
0xe8
,
0xcc
,
0x1e
,
0xb8
,
0x93
,
0x63
,
0xe7
,
0xa4
,
0xc6
,
0x19
,
0x43
,
0xb7
,
0x20
,
0xd5
,
0x3b
,
0x93
,
0xd4
,
0x5c
,
0x97
,
0x23
,
0x23
,
0x0c
,
0x67
,
0x27
,
0xd5
,
0x63
,
0xcb
,
0xe4
,
0x04
,
0x9e
,
0xdb
,
0xb0
,
0x5e
,
0xbd
,
0x96
,
0x44
,
0xd6
,
0xfa
,
0x21
,
0x91
,
0x10
,
0x54
,
0x85
,
0xc2
,
0xa9
,
0x62
,
0x43
,
0xda
,
0xb4
,
0x80
,
0xa7
,
0xe6
,
0x0a
,
0x89
,
0x61
,
0xa8
,
0x02
,
0x39
,
0x9b
,
0xd1
,
0xf5
,
0xba
,
0x92
,
0x61
,
0x4e
,
0x36
,
0x57
,
0x88
,
0x94
,
0xd1
,
0x5d
,
0x00
,
0x2f
,
0x62
,
0xa9
,
0x92
,
0xe5
,
0xd3
,
0xa9
,
0x18
,
0xc6
,
0xf4
,
0x35
,
0x57
,
0x88
,
0x06
,
0xfb
,
0x69
,
0x5e
,
0xc6
,
0x12
,
0x3f
,
0x80
,
0xd5
,
0x7a
,
0xb3
,
0xcb
,
0x19
,
0x40
,
0xdf
,
0x86
,
0x34
,
0xf5
,
0x5e
,
0x73
,
0x5f
,
0xe7
,
0x58
,
0x62
,
0x5f
,
0xd0
,
0x16
,
0xe4
,
0x04
,
0x59
,
0xdc
,
0xea
,
0x02
,
0x91
,
0x12
,
0xa6
,
0x50
,
0x52
,
0x93
,
0x3c
,
0xf4
,
0xdd
,
0xa9
,
0x87
,
0xb6
,
0x61
,
0x55
,
0x05
,
0x41
,
0xc6
,
0x2b
,
0x92
,
0xc5
,
0xb7
,
0x70
,
0xea
,
0x4f
,
0xa8
,
0x2f
,
0x03
,
0x16
,
0xc9
,
0xe8
,
0x5b
,
0x50
,
0x60
,
0x5e
,
0xb9
,
0xbe
,
0xf3
,
0x4b
,
0x2a
,
0xd7
,
0x88
,
0x15
,
0x78
,
0xca
,
0xd2
,
0xb6
,
0xe3
,
0xbb
,
0xee
,
0x71
,
0x6b
,
0x72
,
0xec
,
0xb2
,
0x7c
,
0xf4
,
0x98
,
0x20
,
0x57
,
0x10
,
0x02
,
0x4b
,
0x09
,
0x6f
,
0xfa
,
0x6a
,
0xe4
,
0xf4
,
0x5b
,
0x13
,
0x6f
,
0x1a
,
0xaa
,
0x94
,
0xd0
,
0x54
,
0x68
,
0x1f
,
0xf2
,
0xc2
,
0xee
,
0x40
,
0x92
,
0xaf
,
0xc2
,
0x6a
,
0xf8
,
0x40
,
0x14
,
0x08
,
0xf7
,
0xa0
,
0x7c
,
0xe8
,
0xcc
,
0xea
,
0xd4
,
0x73
,
0x03
,
0x27
,
0x94
,
0x21
,
0xdc
,
0x82
,
0x9c
,
0x3d
,
0x76
,
0xa7
,
0x93
,
0x90
,
0x2f
,
0x9e
,
0x21
,
0x52
,
0x42
,
0xbb
,
0xca
,
0xa6
,
0x54
,
0x22
,
0xac
,
0x91
,
0xd9
,
0xd2
,
0x4e
,
0xfc
,
0x7b
,
0x0b
,
0x36
,
0x0f
,
0x9d
,
0x59
,
0x8f
,
0x6d
,
0xce
,
0x63
,
0xea
,
0xcb
,
0x79
,
0x77
,
0x21
,
0xeb
,
0x70
,
0xbb
,
0xad
,
0xe5
,
0xe3
,
0x39
,
0x00
,
0xed
,
0x41
,
0xce
,
0x9d
,
0x86
,
0xca
,
0xc5
,
0xc5
,
0x50
,
0x89
,
0x60
,
0xd8
,
0xfe
,
0xd0
,
0x9e
,
0x9c
,
0xd0
,
0xb9
,
0x6c
,
0xd3
,
0xb0
,
0x02
,
0x81
,
0xfb
,
0xdc
,
0xac
,
0x67
,
0x4e
,
0x38
,
0x1c
,
0xf8
,
0xf6
,
0xdb
,
0x0b
,
0xdc
,
0xbd
,
0x0f
,
0xc5
,
0xc0
,
0xa3
,
0x93
,
0xc1
,
0x03
,
0x77
,
0x3c
,
0x76
,
0xc2
,
0xa0
,
0x92
,
0x4a
,
0x6c
,
0xfa
,
0x78
,
0x7a
,
0x03
,
0x87
,
0xbf
,
0x00
,
0x74
,
0xe8
,
0xcc
,
0x6a
,
0x2a
,
0xb2
,
0x72
,
0x95
,
0x7b
,
0xb0
,
0xc6
,
0x82
,
0xad
,
0x26
,
0xb3
,
0x96
,
0x4e
,
0xa6
,
0xc3
,
0xf0
,
0x5f
,
0x52
,
0x50
,
0x60
,
0x93
,
0x89
,
0x39
,
0xd6
,
0x21
,
0x15
,
0x8a
,
0xed
,
0x9a
,
0x25
,
0xa9
,
0xf0
,
0x0c
,
0x7d
,
0x0a
,
0xb9
,
0x3e
,
0xdf
,
0x80
,
0x92
,
0xa6
,
0xad
,
0x05
,
0x1b
,
0xd3
,
0x71
,
0x27
,
0x6c
,
0x3f
,
0x09
,
0x1c
,
0xba
,
0x0b
,
0xf9
,
0x81
,
0x88
,
0xb5
,
0x64
,
0xeb
,
0xfd
,
0x78
,
0x88
,
0x91
,
0x04
,
0xcd
,
0x15
,
0xa2
,
0x90
,
0xe8
,
0x3e
,
0xac
,
0xbe
,
0x95
,
0x94
,
0xf1
,
0x0d
,
0xba
,
0x56
,
0xad
,
0xc4
,
0xa3
,
0x4c
,
0x32
,
0x9b
,
0x2b
,
0x24
,
0xc2
,
0xb2
,
0x71
,
0xa1
,
0xcc
,
0x00
,
0xb9
,
0x75
,
0xb5
,
0x71
,
0x66
,
0x6e
,
0xb0
,
0x71
,
0x0a
,
0x8b
,
0x7e
,
0xac
,
0x6f
,
0x94
,
0x1c
,
0x1f
,
0x78
,
0x23
,
0x1e
,
0x98
,
0x20
,
0x96
,
0x55
,
0x92
,
0x08
,
0x1d
,
0x6f
,
0xfd
,
0x26
,
0x20
,
0xe9
,
0x4f
,
0x47
,
0xdb
,
0x1d
,
0xdb
,
0xb0
,
0x3a
,
0x71
,
0x43
,
0xda
,
0xb4
,
0x83
,
0xa1
,
0xda
,
0xba
,
0x4a
,
0xd6
,
0xd2
,
0x40
,
0x6c
,
0x2b
,
0x29
,
0xe1
,
0x3f
,
0x59
,
0x70
,
0x4d
,
0x39
,
0xa9
,
0xcf
,
0x85
,
0xa1
,
0x18
,
0xfa
,
0x94
,
0x12
,
0xd7
,
0x0d
,
0xb5
,
0xf9
,
0x0c
,
0x1d
,
0xba
,
0x05
,
0xa5
,
0xc9
,
0x74
,
0x34
,
0x72
,
0x8e
,
0x1d
,
0xea
,
0x73
,
0x90
,
0x98
,
0xda
,
0x54
,
0xa2
,
0x7d
,
0x40
,
0x91
,
0x07
,
0x5d
,
0x96
,
0x49
,
0x1c
,
0x2a
,
0x2a
,
0xc4
,
0x82
,
0x2f
,
0x9a
,
0xa5
,
0x19
,
0xc3
,
0xd2
,
0x7f
,
0x5a
,
0x50
,
0x51
,
0xb4
,
0x72
,
0x1b
,
0xdf
,
0xc1
,
0xdc
,
0x60
,
0xe8
,
0xd0
,
0xd1
,
0xa0
,
0xc6
,
0x27
,
0x7c
,
0xae
,
0xcc
,
0x35
,
0x94
,
0x49
,
0xd4
,
0x0b
,
0x69
,
0xa9
,
0xa9
,
0x5c
,
0xe2
,
0x54
,
0x66
,
0xa9
,
0x53
,
0x73
,
0x54
,
0x65
,
0x17
,
0x50
,
0x85
,
0xff
,
0x6a
,
0xc1
,
0x0d
,
0xe5
,
0xe2
,
0x11
,
0xdf
,
0xff
,
0x97
,
0x0d
,
0xef
,
0xd7
,
0xe9
,
0x5b
,
0x15
,
0x0a
,
0x83
,
0x61
,
0x57
,
0x96
,
0xd9
,
0xcc
,
0x39
,
0x65
,
0x36
,
0x86
,
0xe1
,
0xbf
,
0x59
,
0x70
,
0x3d
,
0x4a
,
0xdd
,
0xab
,
0x06
,
0x66
,
0x17
,
0x36
,
0x6c
,
0x6d
,
0x6c
,
0xdc
,
0x0e
,
0x24
,
0xd5
,
0xcc
,
0x81
,
0x48
,
0xa5
,
0xa5
,
0x91
,
0xa9
,
0xbc
,
0x6a
,
0x70
,
0xf0
,
0x0e
,
0x40
,
0x63
,
0xe6
,
0x04
,
0xe1
,
0x53
,
0xb6
,
0xb7
,
0xb4
,
0x76
,
0xc6
,
0xda
,
0x5d
,
0x95
,
0xed
,
0xcc
,
0x6d
,
0x28
,
0x8b
,
0x9a
,
0xd5
,
0xf3
,
0x29
,
0x7d
,
0x4c
,
0xed
,
0x53
,
0x6a
,
0xb6
,
0x3d
,
0x45
,
0x89
,
0xfb
,
0x08
,
0x36
,
0x62
,
0x1c
,
0xf3
,
0x6f
,
0x31
,
0xec
,
0x8f
,
0x96
,
0x8e
,
0xeb
,
0xf8
,
0xee
,
0x29
,
0xe5
,
0x67
,
0xab
,
0x49
,
0x52
,
0x24
,
0xb3
,
0x6f
,
0xfc
,
0xe4
,
0xe9
,
0xd2
,
0x90
,
0xd7
,
0xe9
,
0x02
,
0x89
,
0x64
,
0x74
,
0x13
,
0xc0
,
0x13
,
0xd5
,
0x75
,
0x40
,
0x67
,
0x9c
,
0x8f
,
0x12
,
0xd1
,
0x34
,
0xec
,
0x5c
,
0x9e
,
0x4c
,
0xc7
,
0xc2
,
0x66
,
0xce
,
0x41
,
0x89
,
0xc4
,
0x0a
,
0x54
,
0x81
,
0xfc
,
0x90
,
0x8e
,
0x3c
,
0xea
,
0x07
,
0x95
,
0xec
,
0x4e
,
0x7a
,
0xb7
,
0x44
,
0x94
,
0x88
,
0x1b
,
0xb0
,
0xc6
,
0x8c
,
0xe3
,
0x45
,
0x9b
,
0xbe
,
0xb9
,
0xc8
,
0xbc
,
0x11
,
0xb5
,
0x8f
,
0xb5
,
0x12
,
0x10
,
0xc9
,
0xf8
,
0x16
,
0x14
,
0x39
,
0x67
,
0x4e
,
0x10
,
0x12
,
0x1a
,
0x78
,
0xec
,
0xe4
,
0x67
,
0x14
,
0x04
,
0xb2
,
0x5b
,
0x14
,
0x02
,
0x7e
,
0x09
,
0xeb
,
0x71
,
0xbf
,
0xd3
,
0xb1
,
0x1d
,
0x1f
,
0xdd
,
0x86
,
0x75
,
0xd5
,
0x76
,
0xc8
,
0x94
,
0x10
,
0xab
,
0x26
,
0xb4
,
0xac
,
0x67
,
0xe0
,
0xc7
,
0x53
,
0xc7
,
0x77
,
0xb4
,
0x36
,
0x52
,
0x53
,
0xe1
,
0x5b
,
0x90
,
0x93
,
0xd8
,
0x22
,
0x58
,
0xcf
,
0xe5
,
0x34
,
0xd6
,
0x73
,
0x26
,
0xbd
,
0x90
,
0x78
,
0xeb
,
0x05
,
0xfe
,
0x00
,
0xf2
,
0x1d
,
0xdf
,
0x39
,
0x95
,
0xdd
,
0x6a
,
0x94
,
0x00
,
0x71
,
0x3f
,
0x8b
,
0xba
,
0x43
,
0xdb
,
0xa7
,
0x5d
,
0xd5
,
0x70
,
0x72
,
0x23
,
0x77
,
0x21
,
0xef
,
0x89
,
0x41
,
0xf2
,
0xd0
,
0x5f
,
0x57
,
0x9d
,
0x97
,
0xd0
,
0x12
,
0xf5
,
0x19
,
0x7d
,
0xa2
,
0xba
,
0x5d
,
0x67
,
0x72
,
0xd2
,
0x79
,
0x2d
,
0x0f
,
0xb4
,
0x44
,
0x9f
,
0xa6
,
0x23
,
0xf0
,
0x6f
,
0x2d
,
0xd8
,
0xac
,
0xf5
,
0xfb
,
0x6c
,
0x47
,
0xb2
,
0xc9
,
0xec
,
0x3e
,
0x6f
,
0x25
,
0x7f
,
0x60
,
0x34
,
0x8c
,
0x62
,
0xcd
,
0xf7
,
0xe6
,
0x1a
,
0x46
,
0x66
,
0x9b
,
0xde
,
0x32
,
0xa2
,
0x1a
,
0xac
,
0x07
,
0x86
,
0xf5
,
0xd2
,
0x00
,
0x75
,
0xee
,
0xcc
,
0xbb
,
0x46
,
0x12
,
0x03
,
0xf0
,
0xcf
,
0x60
,
0xf3
,
0x99
,
0x3d
,
0x1a
,
0xd1
,
0xb0
,
0x36
,
0x18
,
0xf8
,
0xd2
,
0x22
,
0x54
,
0x15
,
0xfe
,
0xdb
,
0x7d
,
0x65
,
0x8b
,
0x3a
,
0x01
,
0xe7
,
0x2c
,
0x27
,
0x0a
,
0x18
,
0xdd
,
0x05
,
0x52
,
0xf1
,
0x5d
,
0x80
,
0x55
,
0x0f
,
0x10
,
0x4b
,
0xd5
,
0xed
,
0xd0
,
0xbe
,
0x74
,
0xec
,
0x31
,
0x14
,
0x45
,
0xfb
,
0x69
,
0x14
,
0x0d
,
0x43
,
0xb7
,
0xa8
,
0xb6
,
0xa4
,
0x17
,
0xd7
,
0x96
,
0x25
,
0xe7
,
0x0e
,
0xdb
,
0x60
,
0xac
,
0xcc
,
0x12
,
0x7b
,
0x32
,
0x70
,
0xc7
,
0xb2
,
0x6e
,
0x6b
,
0x1a
,
0xfc
,
0x12
,
0x36
,
0x1b
,
0x93
,
0xbe
,
0x3b
,
0xa0
,
0x03
,
0xcd
,
0x85
,
0x0a
,
0xe4
,
0xa9
,
0x50
,
0x4a
,
0xdb
,
0x95
,
0x88
,
0xee
,
0x40
,
0xde
,
0xb7
,
0xdf
,
0x32
,
0x90
,
0x0c
,
0x82
,
0x6a
,
0xf8
,
0xe3
,
0xd1
,
0x44
,
0x21
,
0xf0
,
0x2f
,
0xf8
,
0xdc
,
0xfe
,
0x99
,
0x17
,
0x6a
,
0x73
,
0xc7
,
0xad
,
0xbc
,
0xa5
,
0xb7
,
0xf2
,
0xe8
,
0xfb
,
0x50
,
0x14
,
0x28
,
0x8d
,
0x8e
,
0xb9
,
0x24
,
0x33
,
0x20
,
0xf8
,
0x57
,
0x16
,
0x6c
,
0xd6
,
0xe9
,
0x65
,
0x17
,
0xa8
,
0x46
,
0x0b
,
0xc4
,
0x9b
,
0x6d
,
0x3e
,
0xe7
,
0x0d
,
0x8c
,
0xba
,
0x98
,
0xa4
,
0x97
,
0x5d
,
0x4c
,
0xf0
,
0xef
,
0x2c
,
0xd8
,
0x50
,
0xbd
,
0x0c
,
0xab
,
0x5a
,
0xac
,
0xd8
,
0xf0
,
0xc0
,
0x8a
,
0x50
,
0xd7
,
0xe2
,
0x7b
,
0xa3
,
0xa1
,
0x63
,
0x61
,
0x11
,
0x81
,
0xae
,
0xc5
,
0xd9
,
0xa4
,
0x69
,
0x8c
,
0xa3
,
0x82
,
0x43
,
0x92
,
0x47
,
0x05
,
0x47
,
0x99
,
0x41
,
0x8f
,
0xba
,
0x63
,
0xfc
,
0xa5
,
0x05
,
0x65
,
0xd3
,
0xaa
,
0xc0
,
0x3b
,
0xf7
,
0x00
,
0xfe
,
0xd8
,
0xbc
,
0x3d
,
0x2c
,
0x08
,
0xaa
,
0xbc
,
0xe4
,
0x5c
,
0xf5
,
0x0a
,
0xf3
,
0xa5
,
0x05
,
0x25
,
0x7e
,
0x4a
,
0xd8
,
0xe1
,
0x90
,
0x9b
,
0x72
,
0xa9
,
0x23
,
0x75
,
0x9b
,
0x35
,
0xa7
,
0x62
,
0x90
,
0x3a
,
0x31
,
0x94
,
0xac
,
0xd7
,
0xfc
,
0xb4
,
0x51
,
0xf3
,
0xd9
,
0x59
,
0x71
,
0x6a
,
0x8f
,
0x9c
,
0x01
,
0x1f
,
0x96
,
0xe1
,
0xdf
,
0x62
,
0x05
,
0xde
,
0x87
,
0x72
,
0xd4
,
0x29
,
0xaa
,
0x48
,
0x9d
,
0x43
,
0x09
,
0xfe
,
0x7b
,
0x0a
,
0x36
,
0x13
,
0x03
,
0x02
,
0x0f
,
0x7d
,
0xd7
,
0x48
,
0xae
,
0x85
,
0x4c
,
0xa9
,
0x7c
,
0xfb
,
0xff
,
0xf4
,
0x97
,
0xba
,
0xc9
,
0x99
,
0x44
,
0x14
,
0xb1
,
0xbc
,
0x14
,
0xc9
,
0x5c
,
0x96
,
0xbb
,
0xdd
,
0xd0
,
0x31
,
0x92
,
0xb8
,
0x7c
,
0x30
,
0xb2
,
0x4f
,
0x78
,
0xff
,
0x5e
,
0x22
,
0xb1
,
0xc2
,
0x48
,
0x3b
,
0x8e
,
0xc8
,
0x73
,
0x84
,
0xa9
,
0x64
,
0x2d
,
0x56
,
0x28
,
0x4e
,
0x7e
,
0xf7
,
0xb8
,
0xb2
,
0x6a
,
0xa4
,
0x81
,
0x11
,
0x6b
,
0x12
,
0xc3
,
0xf0
,
0x01
,
0x14
,
0xf9
,
0xab
,
0xcb
,
0x25
,
0xa8
,
0xe7
,
0xe1
,
0x77
,
0x09
,
0xdf
,
0x0c
,
0x9c
,
0xb4
,
0x12
,
0x89
,
0x64
,
0xfc
,
0x55
,
0x0a
,
0x4a
,
0xda
,
0x44
,
0x81
,
0x17
,
0xe7
,
0xae
,
0x75
,
0x41
,
0xee
,
0xde
,
0x04
,
0xb0
,
0xa3
,
0x87
,
0x1f
,
0xb5
,
0xe7
,
0x62
,
0x0d
,
0x3b
,
0x8c
,
0xb9
,
0x24
,
0xd9
,
0x13
,
0x31
,
0xd0
,
0x55
,
0xcc
,
0x30
,
0x26
,
0xea
,
0xe4
,
0x2b
,
0x79
,
0x49
,
0x20
,
0xb3
,
0x97
,
0x0a
,
0x64
,
0x2e
,
0x41
,
0x80
,
0x11
,
0xa4
,
0x7c
,
0x32
,
0x48
,
0xef
,
0x42
,
0xff
,
0x1f
,
0x2c
,
0x28
,
0xab
,
0xde
,
0xfc
,
0x52
,
0x31
,
0xd8
,
0x82
,
0x5c
,
0xe8
,
0x6a
,
0xc5
,
0x49
,
0x4a
,
0x8c
,
0xc4
,
0xd0
,
0x65
,
0x01
,
0xd0
,
0xaa
,
0x92
,
0xa6
,
0x49
,
0x14
,
0xb6
,
0xcc
,
0x5c
,
0x61
,
0x8b
,
0x4b
,
0x56
,
0xd6
,
0x28
,
0x59
,
0x7b
,
0x50
,
0xec
,
0x6a
,
0x7d
,
0xfc
,
0xb9
,
0xdd
,
0xce
,
0x9f
,
0xd3
,
0x80
,
0xcc
,
0xbb
,
0x14
,
0x8f
,
0xef
,
0xa5
,
0x13
,
0xe1
,
0x9b
,
0x9d
,
0xa9
,
0xa5
,
0x06
,
0xfa
,
0x21
,
0x14
,
0xf5
,
0x1b
,
0x54
,
0xa5
,
0xc0
,
0x87
,
0x5d
,
0x8b
,
0x9a
,
0xab
,
0xf8
,
0x13
,
0x31
,
0x80
,
0xcc
,
0x29
,
0x11
,
0x3c
,
0xd9
,
0x5c
,
0x80
,
0x70
,
0x4a
,
0xd7
,
0xe1
,
0x7f
,
0x5b
,
0x70
,
0x2d
,
0x71
,
0x27
,
0xbc
,
0x5a
,
0xac
,
0x74
,
0x56
,
0x53
,
0x09
,
0x56
,
0xaf
,
0x78
,
0x18
,
0xcd
,
0x79
,
0x9a
,
0x79
,
0x57
,
0x4f
,
0xb3
,
0x0b
,
0x3c
,
0xfd
,
0x87
,
0x05
,
0x9b
,
0x89
,
0x1d
,
0x16
,
0x78
,
0xe8
,
0x73
,
0x28
,
0x85
,
0x7a
,
0xa6
,
0x4a
,
0x7f
,
0x6f
,
0x44
,
0x41
,
0x49
,
0x66
,
0x31
,
0x31
,
0xf1
,
0xe8
,
0x33
,
0x28
,
0x86
,
0xb6
,
0x7f
,
0x42
,
0xc3
,
0x23
,
0xfd
,
0xcd
,
0x6d
,
0x3b
,
0x31
,
0x5e
,
0xa3
,
0x96
,
0x18
,
0x78
,
0x36
,
0x5e
,
0xbc
,
0xaf
,
0xc9
,
0xf1
,
0xe9
,
0x8b
,
0xc7
,
0xeb
,
0x78
,
0xfc
,
0xeb
,
0x14
,
0x6c
,
0x18
,
0xcc
,
0x04
,
0xc9
,
0x9e
,
0xd2
,
0x4a
,
0xf6
,
0x94
,
0xac
,
0x03
,
0x56
,
0x4e
,
0x48
,
0x8c
,
0x88
,
0x5c
,
0x42
,
0xcb
,
0x68
,
0x15
,
0x6b
,
0x49
,
0x94
,
0xd8
,
0x5b
,
0x86
,
0x0e
,
0x7d
,
0x0c
,
0x19
,
0x36
,
0xf3
,
0x79
,
0xb1
,
0xe2
,
0x00
,
0xf4
,
0xc9
,
0xdc
,
0x83
,
0xd6
,
0x42
,
0x70
,
0xfc
,
0x92
,
0x75
,
0x27
,
0x7a
,
0x9b
,
0xcc
,
0x2d
,
0x87
,
0xab
,
0xc7
,
0xc9
,
0xdf
,
0xa4
,
0x60
,
0x43
,
0xdc
,
0x20
,
0xf8
,
0xbd
,
0x94
,
0x3f
,
0x03
,
0x9f
,
0x57
,
0x3e
,
0xf9
,
0xbd
,
0x55
,
0x56
,
0x13
,
0xe9
,
0x7d
,
0xac
,
0xb8
,
0x72
,
0x69
,
0xb9
,
0x09
,
0xe0
,
0x04
,
0x44
,
0xbd
,
0x5d
,
0x67
,
0xf8
,
0xd5
,
0x5e
,
0xd3
,
0xb0
,
0x9e
,
0xc8
,
0x16
,
0x77
,
0x16
,
0x99
,
0x9a
,
0x4a
,
0xe4
,
0xfd
,
0x4a
,
0x68
,
0x87
,
0xd3
,
0x80
,
0x3b
,
0x19
,
0xff
,
0xc7
,
0xd2
,
0x76
,
0x43
,
0xda
,
0xe5
,
0x1f
,
0x88
,
0x04
,
0x68
,
0xad
,
0x4d
,
0xfe
,
0x82
,
0xd6
,
0x06
,
0x3f
,
0x53
,
0x64
,
0xd4
,
0x5f
,
0x1d
,
0x3a
,
0x82
,
0x8c
,
0x3d
,
0xc8
,
0x38
,
0x93
,
0x63
,
0x57
,
0xe6
,
0xb7
,
0x7a
,
0xec
,
0x4c
,
0x50
,
0x46
,
0x38
,
0x86
,
0x99
,
0x1b
,
0xce
,
0xc4
,
0x8d
,
0x5f
,
0x50
,
0xa3
,
0x44
,
0xfc
,
0x2f
,
0x4b
,
0x5d
,
0xd4
,
0xf8
,
0xbc
,
0x03
,
0x3a
,
0xbb
,
0xe8
,
0x9c
,
0xfa
,
0x7a
,
0x89
,
0x5e
,
0x4e
,
0xe4
,
0x96
,
0x41
,
0x64
,
0x36
,
0x62
,
0xed
,
0x3a
,
0x64
,
0x05
,
0x3e
,
0xcf
,
0xd5
,
0x42
,
0x60
,
0x56
,
0x0d
,
0x1c
,
0x9f
,
0x8a
,
0x3f
,
0x66
,
0x56
,
0xf9
,
0x97
,
0x58
,
0x81
,
0x3f
,
0x37
,
0x72
,
0x89
,
0xd7
,
0x89
,
0xef
,
0x41
,
0x96
,
0xb9
,
0xa4
,
0xde
,
0x9e
,
0x97
,
0xf1
,
0x27
,
0x40
,
0xf8
,
0x36
,
0xac
,
0x8b
,
0x2f
,
0x84
,
0xbe
,
0x61
,
0xa7
,
0x2a
,
0x37
,
0x83
,
0xdd
,
0x45
,
0xa3
,
0x87
,
0x09
,
0x2e
,
0x60
,
0x02
,
0x5b
,
0x02
,
0xd7
,
0x98
,
0xd8
,
0xaf
,
0x46
,
0x54
,
0x5e
,
0x68
,
0xd9
,
0x16
,
0x5e
,
0xf4
,
0x9f
,
0x16
,
0x82
,
0x8c
,
0x13
,
0x1c
,
0x3d
,
0xe2
,
0x2c
,
0xae
,
0x12
,
0xfe
,
0x1b
,
0x95
,
0x21
,
0x3d
,
0x0e
,
0x4e
,
0x24
,
0x63
,
0xec
,
0x27
,
0x6e
,
0xc3
,
0xfb
,
0x8b
,
0xe6
,
0x64
,
0x4e
,
0xdc
,
0x85
,
0xac
,
0x4f
,
0x03
,
0x4f
,
0x39
,
0xf1
,
0x81
,
0xe1
,
0x44
,
0xd2
,
0x04
,
0x22
,
0xb0
,
0xb8
,
0x0d
,
0xf0
,
0xd8
,
0xed
,
0xdb
,
0xa3
,
0x43
,
0x67
,
0xd6
,
0x9b
,
0x31
,
0x1b
,
0x86
,
0x71
,
0x98
,
0xf9
,
0x6f
,
0x46
,
0xfd
,
0x90
,
0x3a
,
0x27
,
0x43
,
0x51
,
0xfc
,
0xd2
,
0x44
,
0x4a
,
0xcc
,
0x67
,
0x27
,
0x7a
,
0x36
,
0x4a
,
0x13
,
0x21
,
0xb0
,
0x4e
,
0xa7
,
0xc8
,
0xe7
,
0x12
,
0x8f
,
0x36
,
0x6f
,
0xf4
,
0x6c
,
0xb3
,
0x8c
,
0x6c
,
0x8b
,
0x16
,
0x4b
,
0x2d
,
0x5c
,
0x2c
,
0xbd
,
0x78
,
0xb1
,
0x8c
,
0xb6
,
0x58
,
0x1c
,
0xfd
,
0xec
,
0xd2
,
0xe8
,
0xe7
,
0x92
,
0xd1
,
0xbf
,
0x07
,
0x25
,
0xcd
,
0xbe
,
0xc0
,
0x43
,
0x1f
,
0x42
,
0x3a
,
0x9c
,
0x29
,
0xd2
,
0xd4
,
0xae
,
0x8b
,
0x39
,
0x21
,
0xec
,
0x2b
,
0x3e
,
0x84
,
0x4d
,
0xc9
,
0x1d
,
0x0b
,
0x38
,
0xa1
,
0xc1
,
0x74
,
0xf4
,
0xbf
,
0x44
,
0xb1
,
0x05
,
0xd7
,
0x08
,
0x7d
,
0x33
,
0x97
,
0x16
,
0x55
,
0xc8
,
0xfb
,
0x7c
,
0x6a
,
0x65
,
0x4e
,
0x45
,
0xbb
,
0x1e
,
0x1b
,
0x6b
,
0x13
,
0x05
,
0xdc
,
0xfb
,
0x39
,
0x40
,
0xfc
,
0x8f
,
0x2d
,
0x5a
,
0x83
,
0x7c
,
0xbd
,
0xd1
,
0x39
,
0xea
,
0xb6
,
0x7a
,
0xe5
,
0x15
,
0x54
,
0x84
,
0xd5
,
0x67
,
0xad
,
0x5e
,
0xb3
,
0x4e
,
0x6a
,
0xcf
,
0xca
,
0x16
,
0xda
,
0x84
,
0x52
,
0x8f
,
0xd4
,
0xda
,
0xdd
,
0x83
,
0x06
,
0x69
,
0xb5
,
0x3b
,
0x4f
,
0x7a
,
0xe5
,
0x14
,
0x42
,
0xb0
,
0xae
,
0x54
,
0x47
,
0x4f
,
0x7a
,
0x4c
,
0x97
,
0x46
,
0x25
,
0x28
,
0xd4
,
0x9e
,
0xf4
,
0x9a
,
0x47
,
0xa4
,
0xf5
,
0xb2
,
0x51
,
0xce
,
0xec
,
0xd5
,
0x38
,
0x5d
,
0xf1
,
0xbf
,
0x9e
,
0xec
,
0x7b
,
0xf4
,
0x57
,
0x65
,
0x79
,
0x05
,
0xad
,
0x03
,
0xc4
,
0x7f
,
0xe7
,
0x8a
,
0x55
,
0xe4
,
0x5b
,
0x92
,
0x54
,
0xa5
,
0xf6
,
0x3e
,
0xe4
,
0x19
,
0x11
,
0xfd
,
0xeb
,
0x82
,
0xf2
,
0x90
,
0xae
,
0x0d
,
0x06
,
0xe5
,
0x15
,
0x04
,
0x90
,
0xab
,
0xd3
,
0x11
,
0x0d
,
0x69
,
0xd9
,
0xda
,
0xfb
,
0x11
,
0x40
,
0x5c
,
0x14
,
0x51
,
0x01
,
0xb2
,
0x4f
,
0xda
,
0xf5
,
0xc6
,
0x41
,
0x79
,
0x85
,
0xfd
,
0x7c
,
0x5a
,
0x7b
,
0xdc
,
0xaa
,
0x97
,
0x2d
,
0x86
,
0x3f
,
0x20
,
0x47
,
0x2f
,
0x1b
,
0xed
,
0x72
,
0x0a
,
0xad
,
0x42
,
0xe6
,
0x49
,
0xb7
,
0x51
,
0x2f
,
0xa7
,
0xf7
,
0x7e
,
0x02
,
0xef
,
0x1d
,
0x3a
,
0x33
,
0xb5
,
0x21
,
0x83
,
0xbe
,
0x3d
,
0x91
,
0x93
,
0xac
,
0x42
,
0xa6
,
0x55
,
0x7f
,
0xdc
,
0x10
,
0x44
,
0x74
,
0x1f
,
0xd4
,
0xda
,
0xed
,
0x56
,
0xfb
,
0x61
,
0xd9
,
0x62
,
0xd2
,
0x41
,
0xab
,
0xdd
,
0xea
,
0x36
,
0x1b
,
0xf5
,
0x72
,
0xaa
,
0xfa
,
0x95
,
0x05
,
0x30
,
0x76
,
0x66
,
0xea
,
0x55
,
0xea
,
0x1e
,
0x6c
,
0x3c
,
0x4c
,
0xcc
,
0xa3
,
0x1e
,
0x1e
,
0x08
,
0x7d
,
0xd3
,
0x76
,
0x46
,
0xdb
,
0xe5
,
0x58
,
0xec
,
0x86
,
0xbe
,
0x33
,
0x39
,
0xc1
,
0x2b
,
0xe8
,
0x53
,
0x58
,
0x13
,
0x43
,
0x98
,
0x0f
,
0x97
,
0x1a
,
0xf1
,
0x19
,
0x94
,
0x8c
,
0xf0
,
0xa3
,
0x8d
,
0x18
,
0xc4
,
0x6b
,
0xca
,
0xf6
,
0x76
,
0xac
,
0x48
,
0x26
,
0x0a
,
0x5e
,
0x79
,
0x95
,
0xe3
,
0xff
,
0xe8
,
0xdf
,
0xfd
,
0x6f
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0x55
,
0xb5
,
0x08
,
0xed
,
0x06
,
0x20
,
0x00
,
0x00
,
0xf1
,
0xd7
,
0xf0
,
0x53
,
0x2c
,
0x91
,
0x12
,
0xd9
,
0xf6
,
0x6a
,
0xb9
,
0xc2
,
0x7f
,
0xfd
,
0x57
,
0x7a
,
0xbd
,
0x5e
,
0x45
,
0x0e
,
0xb4
,
0x1b
,
0xda
,
0x71
,
0x92
,
0x43
,
0x76
,
0xc1
,
0x98
,
0x94
,
0xc9
,
0xb5
,
0x45
,
0x11
,
0x4d
,
0xfa
,
0x33
,
0x48
,
0x80
,
0x31
,
0xd9
,
0x12
,
0x07
,
0x26
,
0x39
,
0xe3
,
0x99
,
0xa1
,
0x4c
,
0xe5
,
0x14
,
0x20
,
0x01
,
0xf6
,
0x10
,
0xe4
,
0x14
,
0xe4
,
0x1a
,
0x20
,
0xa7
,
0xe4
,
0x01
,
0x16
,
0x39
,
0xe4
,
0x19
,
0x72
,
0xcc
,
0x03
,
0x04
,
0xc8
,
0x21
,
0xd7
,
0x3c
,
0x42
,
0xd0
,
0x5f
,
0x33
,
0xdd
,
0x43
,
0xd2
,
0x92
,
0x9c
,
0xcd
,
0x2d
,
0xb7
,
0xa9
,
0xea
,
0x5f
,
0x77
,
0x57
,
0xfd
,
0xaa
,
0xba
,
0xbb
,
0xba
,
0x07
,
0x0a
,
0x13
,
0x67
,
0x7e
,
0xe0
,
0xf9
,
0x6e
,
0xe8
,
0xa2
,
0x6c
,
0x78
,
0xee
,
0xd1
,
0x60
,
0xa7
,
0x38
,
0x70
,
0x27
,
0x13
,
0x77
,
0x2a
,
0x94
,
0x3b
,
0x95
,
0xd0
,
0xb7
,
0xa7
,
0x81
,
0x3d
,
0x08
,
0x1d
,
0xa5
,
0xc2
,
0x5f
,
0xc2
,
0xc6
,
0x8b
,
0x57
,
0x4f
,
0xa8
,
0xef
,
0x9c
,
0x9c
,
0x3f
,
0xa4
,
0xe7
,
0xe8
,
0x63
,
0xc8
,
0xb0
,
0x8e
,
0x55
,
0x6b
,
0xd7
,
0xda
,
0xdb
,
0xac
,
0x55
,
0x0e
,
0xf8
,
0x28
,
0x07
,
0xa2
,
0xbd
,
0x7f
,
0xee
,
0x51
,
0xc2
,
0x9b
,
0xd1
,
0x75
,
0xc8
,
0x9e
,
0xd9
,
0xe3
,
0x19
,
0xad
,
0xa6
,
0x76
,
0xad
,
0xbd
,
0x02
,
0x11
,
0x02
,
0xbe
,
0x07
,
0x45
,
0x6d
,
0xac
,
0x00
,
0xdd
,
0x82
,
0xcc
,
0xd0
,
0x0e
,
0xed
,
0xaa
,
0xb5
,
0x9b
,
0xde
,
0xdb
,
0xa8
,
0x21
,
0x39
,
0x98
,
0x06
,
0x21
,
0xbc
,
0x1d
,
0x7f
,
0x0b
,
0x36
,
0xea
,
0xb3
,
0x70
,
0xd4
,
0x9d
,
0xbd
,
0xe4
,
0xdd
,
0x90
,
0xd6
,
0xad
,
0x20
,
0x21
,
0x2e
,
0x40
,
0xd7
,
0x3e
,
0x9f
,
0xd0
,
0x69
,
0xc8
,
0xac
,
0x44
,
0x90
,
0xb1
,
0x87
,
0x43
,
0x9f
,
0x5b
,
0x59
,
0x20
,
0xfc
,
0x1b
,
0xed
,
0xc2
,
0x86
,
0x4f
,
0x07
,
0xd4
,
0x39
,
0xa3
,
0xfe
,
0x43
,
0x7a
,
0x2e
,
0x0d
,
0xd3
,
0x55
,
0xe8
,
0x36
,
0x14
,
0x02
,
0x3a
,
0xf0
,
0x29
,
0x1b
,
0xa2
,
0x9a
,
0xde
,
0xb5
,
0xf6
,
0x36
,
0x6a
,
0x25
,
0x69
,
0x93
,
0x98
,
0x9a
,
0xc4
,
0xed
,
0xf8
,
0x5f
,
0x16
,
0x6c
,
0x1d
,
0x39
,
0xf3
,
0xfb
,
0xee
,
0xf4
,
0xc4
,
0x39
,
0xad
,
0x73
,
0xc6
,
0xd0
,
0x4d
,
0x48
,
0xf5
,
0xcf
,
0x25
,
0x35
,
0xd7
,
0x65
,
0xcf
,
0x08
,
0xc3
,
0xd9
,
0x49
,
0xf5
,
0xd9
,
0x34
,
0x39
,
0x81
,
0xe7
,
0x36
,
0x6c
,
0xd6
,
0xae
,
0x25
,
0x91
,
0xf5
,
0x41
,
0x48
,
0x24
,
0x04
,
0xd5
,
0xa0
,
0x70
,
0xa6
,
0xd8
,
0x90
,
0x36
,
0x2d
,
0xe1
,
0xa9
,
0xb5
,
0x46
,
0x62
,
0x18
,
0xaa
,
0x42
,
0xce
,
0x66
,
0x74
,
0xbd
,
0xaa
,
0x66
,
0x98
,
0x93
,
0xad
,
0x35
,
0x22
,
0x65
,
0x74
,
0x07
,
0xc0
,
0x8b
,
0x58
,
0xaa
,
0x66
,
0xf9
,
0x70
,
0x2a
,
0x86
,
0x31
,
0x7d
,
0xad
,
0x35
,
0xa2
,
0xc1
,
0x7e
,
0x9c
,
0x97
,
0xb1
,
0xc4
,
0xf7
,
0x61
,
0xbd
,
0xd1
,
0xea
,
0x71
,
0x06
,
0xd0
,
0xff
,
0x43
,
0x9a
,
0x7a
,
0xaf
,
0xb8
,
0xaf
,
0x0b
,
0x2c
,
0xb1
,
0x16
,
0xb4
,
0x0d
,
0x39
,
0x41
,
0x16
,
0xb7
,
0xba
,
0x40
,
0xa4
,
0x84
,
0x29
,
0x94
,
0xd4
,
0x20
,
0x0f
,
0x7c
,
0x77
,
0xe6
,
0xa1
,
0x1d
,
0x58
,
0x57
,
0x41
,
0x90
,
0xf1
,
0x8a
,
0x64
,
0xd1
,
0x16
,
0xce
,
0xfc
,
0x29
,
0xf5
,
0x65
,
0xc0
,
0x22
,
0x19
,
0xfd
,
0x1f
,
0x14
,
0x98
,
0x57
,
0xae
,
0xef
,
0xfc
,
0x9c
,
0xca
,
0x39
,
0x62
,
0x05
,
0x9e
,
0xb1
,
0xb4
,
0xed
,
0xfa
,
0xae
,
0x7b
,
0xd2
,
0x9e
,
0x9e
,
0xb8
,
0x2c
,
0x1f
,
0x3d
,
0x26
,
0xc8
,
0x19
,
0x84
,
0xc0
,
0x52
,
0xc2
,
0x9b
,
0xbd
,
0x1c
,
0x3b
,
0x83
,
0xf6
,
0xd4
,
0x9b
,
0x85
,
0x2a
,
0x25
,
0x34
,
0x15
,
0x3a
,
0x80
,
0xbc
,
0xb0
,
0x3b
,
0x90
,
0xe4
,
0xab
,
0xb0
,
0x1a
,
0x3e
,
0x10
,
0x05
,
0xc2
,
0x7d
,
0x28
,
0x1f
,
0x39
,
0xf3
,
0x06
,
0xf5
,
0xdc
,
0xc0
,
0x09
,
0x65
,
0x08
,
0xb7
,
0x21
,
0x67
,
0x4f
,
0xdc
,
0xd9
,
0x34
,
0xe4
,
0x93
,
0x67
,
0x88
,
0x94
,
0xd0
,
0x9e
,
0xb2
,
0x29
,
0x95
,
0x08
,
0x6b
,
0x64
,
0xb6
,
0xb4
,
0x13
,
0xff
,
0xce
,
0x82
,
0xca
,
0x91
,
0x33
,
0xef
,
0xb3
,
0xc5
,
0x79
,
0x42
,
0x7d
,
0x39
,
0xee
,
0x1e
,
0x64
,
0x1d
,
0x6e
,
0xb7
,
0xb5
,
0xba
,
0x3f
,
0x07
,
0xa0
,
0x7d
,
0xc8
,
0xb9
,
0xb3
,
0x50
,
0xb9
,
0xb8
,
0x1c
,
0x2a
,
0x11
,
0x0c
,
0x3b
,
0x18
,
0xd9
,
0xd3
,
0x53
,
0xba
,
0x90
,
0x6d
,
0x1a
,
0x56
,
0x20
,
0xf0
,
0x80
,
0x9b
,
0xf5
,
0xd4
,
0x09
,
0x47
,
0x43
,
0xdf
,
0x7e
,
0x73
,
0x81
,
0xbb
,
0xf7
,
0xa0
,
0x18
,
0x78
,
0x74
,
0x3a
,
0xbc
,
0xef
,
0x4e
,
0x26
,
0x4e
,
0x18
,
0x54
,
0x53
,
0x89
,
0x45
,
0x1f
,
0x0f
,
0x6f
,
0xe0
,
0xf0
,
0x97
,
0x80
,
0x8e
,
0x9c
,
0x79
,
0x5d
,
0x45
,
0x56
,
0xce
,
0x72
,
0x17
,
0x36
,
0x58
,
0xb0
,
0xd5
,
0x60
,
0xd6
,
0xca
,
0xc1
,
0x74
,
0x18
,
0xfe
,
0x73
,
0x0a
,
0x0a
,
0x6c
,
0x30
,
0x31
,
0xc6
,
0x26
,
0xa4
,
0x42
,
0xb1
,
0x5c
,
0xb3
,
0x24
,
0x15
,
0x9e
,
0xa3
,
0xcf
,
0x20
,
0x37
,
0xe0
,
0x0b
,
0x50
,
0xd2
,
0xb4
,
0xbd
,
0x64
,
0x61
,
0x3a
,
0xee
,
0x94
,
0xad
,
0x27
,
0x81
,
0x43
,
0x77
,
0x20
,
0x3f
,
0x14
,
0xb1
,
0x96
,
0x6c
,
0xbd
,
0x1f
,
0x77
,
0x31
,
0x92
,
0xa0
,
0xb5
,
0x46
,
0x14
,
0x12
,
0xdd
,
0x83
,
0xf5
,
0x37
,
0x92
,
0x32
,
0xbe
,
0x40
,
0x37
,
0x6a
,
0xd5
,
0xb8
,
0x97
,
0x49
,
0x66
,
0x6b
,
0x8d
,
0x44
,
0x58
,
0xd6
,
0x2f
,
0x94
,
0x19
,
0x20
,
0x97
,
0xae
,
0xd6
,
0xcf
,
0xcc
,
0x0d
,
0xd6
,
0x4f
,
0x61
,
0xd1
,
0x0f
,
0xf5
,
0x85
,
0x92
,
0xe3
,
0x1d
,
0x3f
,
0x88
,
0x3b
,
0x26
,
0x88
,
0x65
,
0x3b
,
0x49
,
0x84
,
0x8e
,
0x97
,
0x7e
,
0x0b
,
0x90
,
0xf4
,
0xa7
,
0xab
,
0xad
,
0x8e
,
0x1d
,
0x58
,
0x9f
,
0xba
,
0x21
,
0x6d
,
0xd9
,
0xc1
,
0x48
,
0x2d
,
0x5d
,
0x25
,
0x6b
,
0x69
,
0x20
,
0x96
,
0x95
,
0x94
,
0xf0
,
0x1f
,
0x2d
,
0xb8
,
0xa6
,
0x9c
,
0xd4
,
0xc7
,
0xc2
,
0x50
,
0x0c
,
0x7d
,
0x4a
,
0x89
,
0xeb
,
0x86
,
0xda
,
0x78
,
0x86
,
0x0e
,
0xdd
,
0x84
,
0xd2
,
0x74
,
0x36
,
0x1e
,
0x3b
,
0x27
,
0x0e
,
0xf5
,
0x39
,
0x48
,
0x0c
,
0x6d
,
0x2a
,
0xd1
,
0x01
,
0xa0
,
0xc8
,
0x83
,
0x1e
,
0xcb
,
0x24
,
0x0e
,
0x15
,
0x3b
,
0xc4
,
0x92
,
0x16
,
0xcd
,
0xd2
,
0x8c
,
0x61
,
0xe9
,
0xdf
,
0x2d
,
0xa8
,
0x2a
,
0x5a
,
0xb9
,
0x8d
,
0xef
,
0x60
,
0x6e
,
0x30
,
0x72
,
0xe8
,
0x78
,
0x58
,
0xe7
,
0x03
,
0x3e
,
0x53
,
0xe6
,
0x1a
,
0xca
,
0x24
,
0xea
,
0xb9
,
0xb4
,
0xd4
,
0x54
,
0xae
,
0x70
,
0x2a
,
0xb3
,
0xd2
,
0xa9
,
0x05
,
0xaa
,
0xb2
,
0x4b
,
0xa8
,
0xc2
,
0xbf
,
0xb4
,
0xe0
,
0x03
,
0xe5
,
0xe2
,
0x31
,
0x5f
,
0xff
,
0x97
,
0x0d
,
0xef
,
0x37
,
0xe8
,
0x1b
,
0xfe
,
0x8b
,
0x05
,
0xd7
,
0xa3
,
0x34
,
0xbc
,
0x2a
,
0xc9
,
0x7b
,
0xb0
,
0x65
,
0x6b
,
0x7d
,
0xe3
,
0xa3
,
0x3d
,
0xa9
,
0x66
,
0xc6
,
0x44
,
0x2a
,
0x2d
,
0x25
,
0x4c
,
0xe5
,
0x55
,
0x89
,
0xc6
,
0xbb
,
0x00
,
0xcd
,
0xb9
,
0x13
,
0x84
,
0x4f
,
0xd8
,
0x3a
,
0xd1
,
0x4a
,
0x13
,
0x6b
,
0x6f
,
0x5d
,
0x96
,
0x26
,
0xb7
,
0xa0
,
0x2c
,
0xf6
,
0x9f
,
0xbe
,
0x4f
,
0xe9
,
0x23
,
0x6a
,
0x9f
,
0x51
,
0xb3
,
0x84
,
0x29
,
0x4a
,
0xdc
,
0xc7
,
0xb0
,
0x15
,
0xe3
,
0x98
,
0x7f
,
0xcb
,
0x61
,
0x7f
,
0xb0
,
0x74
,
0x5c
,
0xd7
,
0x77
,
0xcf
,
0x28
,
0x3f
,
0x27
,
0x4d
,
0x92
,
0x22
,
0x99
,
0xb5
,
0xf1
,
0x53
,
0xa4
,
0x47
,
0x43
,
0xbe
,
0xe7
,
0x16
,
0x48
,
0x24
,
0xa3
,
0x1b
,
0x00
,
0x9e
,
0xd8
,
0x29
,
0x87
,
0x74
,
0xce
,
0xf9
,
0x28
,
0x11
,
0x4d
,
0xc3
,
0xce
,
0xd8
,
0xe9
,
0x6c
,
0x22
,
0x6c
,
0xe6
,
0x1c
,
0x94
,
0x48
,
0xac
,
0x40
,
0x55
,
0xc8
,
0x8f
,
0xe8
,
0xd8
,
0xa3
,
0x7e
,
0x50
,
0xcd
,
0xee
,
0xa6
,
0xf7
,
0x4a
,
0x44
,
0x89
,
0xb8
,
0x09
,
0x1b
,
0xcc
,
0x38
,
0xbe
,
0x01
,
0xd3
,
0xd7
,
0x17
,
0x99
,
0x37
,
0xa6
,
0xf6
,
0x89
,
0xb6
,
0x9c
,
0x23
,
0x19
,
0xdf
,
0x84
,
0x22
,
0xe7
,
0xcc
,
0x09
,
0x42
,
0x42
,
0x03
,
0x8f
,
0x9d
,
0xe2
,
0x8c
,
0x82
,
0x40
,
0x56
,
0x7e
,
0x42
,
0xc0
,
0x2f
,
0x60
,
0x33
,
0xae
,
0x5d
,
0xba
,
0xb6
,
0xe3
,
0xa3
,
0x5b
,
0xb0
,
0xa9
,
0x4a
,
0x08
,
0x99
,
0x12
,
0x62
,
0xd6
,
0x84
,
0x96
,
0x9d
,
0xff
,
0xfc
,
0xa8
,
0xe9
,
0xfa
,
0x8e
,
0x56
,
0x12
,
0x6a
,
0x2a
,
0x7c
,
0x13
,
0x72
,
0x12
,
0x5b
,
0x04
,
0xeb
,
0x99
,
0x1c
,
0xc6
,
0x7a
,
0xc6
,
0xa4
,
0xe7
,
0x12
,
0x6f
,
0x3d
,
0xc7
,
0x1f
,
0x42
,
0xbe
,
0xeb
,
0x3b
,
0x67
,
0xb2
,
0xf2
,
0x8c
,
0x12
,
0x20
,
0xae
,
0x4d
,
0x51
,
0x6f
,
0x64
,
0xfb
,
0xb4
,
0xa7
,
0x8a
,
0x47
,
0x6e
,
0xe4
,
0x1e
,
0xe4
,
0x3d
,
0xd1
,
0x49
,
0x1e
,
0xe0
,
0x9b
,
0xaa
,
0x8a
,
0x12
,
0x5a
,
0xa2
,
0x9a
,
0xd1
,
0xa7
,
0xaa
,
0x72
,
0x75
,
0xa6
,
0xa7
,
0xdd
,
0x57
,
0xf2
,
0x70
,
0x4a
,
0xd4
,
0x5c
,
0x3a
,
0x02
,
0xff
,
0xc6
,
0x82
,
0x4a
,
0x7d
,
0x30
,
0x60
,
0xab
,
0x8b
,
0x0d
,
0x66
,
0x0f
,
0x78
,
0x59
,
0xf8
,
0x3d
,
0xa3
,
0xf8
,
0x13
,
0x73
,
0xbe
,
0xb7
,
0x50
,
0xfc
,
0x31
,
0xdb
,
0xf4
,
0xf2
,
0x0f
,
0xd5
,
0x61
,
0x33
,
0x30
,
0xac
,
0x97
,
0x06
,
0xa8
,
0x33
,
0x64
,
0xd1
,
0x35
,
0x92
,
0xe8
,
0x80
,
0x7f
,
0x02
,
0x95
,
0xa7
,
0xf6
,
0x78
,
0x4c
,
0xc3
,
0xfa
,
0x70
,
0xe8
,
0x4b
,
0x8b
,
0x50
,
0x4d
,
0xf8
,
0x6f
,
0x0f
,
0x94
,
0x2d
,
0xea
,
0x34
,
0x5b
,
0xb0
,
0x9c
,
0x28
,
0x60
,
0x54
,
0xd7
,
0xa7
,
0xe2
,
0xba
,
0x9e
,
0xed
,
0x1e
,
0x20
,
0xa6
,
0x6a
,
0xd8
,
0xa1
,
0x7d
,
0xe9
,
0xd8
,
0x63
,
0x28
,
0x8a
,
0x52
,
0xd2
,
0xd8
,
0x34
,
0x0c
,
0xdd
,
0xb2
,
0xbd
,
0x25
,
0xbd
,
0x7c
,
0x6f
,
0x59
,
0x71
,
0x86
,
0xb0
,
0x05
,
0xc6
,
0xb6
,
0x4c
,
0x62
,
0x4f
,
0x87
,
0xee
,
0x44
,
0xee
,
0xc1
,
0x9a
,
0x06
,
0xbf
,
0x80
,
0x4a
,
0x73
,
0x3a
,
0x70
,
0x87
,
0x74
,
0xa8
,
0xb9
,
0x50
,
0x85
,
0x3c
,
0x15
,
0x4a
,
0x69
,
0xbb
,
0x12
,
0xd1
,
0x6d
,
0xc8
,
0xfb
,
0xf6
,
0x1b
,
0x06
,
0x92
,
0x41
,
0x50
,
0xc5
,
0x7b
,
0xdc
,
0x9b
,
0x28
,
0x04
,
0xfe
,
0x19
,
0x1f
,
0xdb
,
0x3f
,
0xf7
,
0x42
,
0x6d
,
0xec
,
0xb8
,
0x2c
,
0xb7
,
0xf4
,
0xb2
,
0x1c
,
0x7d
,
0x17
,
0x8a
,
0x02
,
0xa5
,
0xd1
,
0xb1
,
0x90
,
0x64
,
0x06
,
0x04
,
0xff
,
0xc2
,
0x82
,
0x4a
,
0x83
,
0x5e
,
0x76
,
0x82
,
0x5a
,
0x34
,
0x41
,
0xbc
,
0xd8
,
0x16
,
0x73
,
0xde
,
0xc0
,
0xa8
,
0x4b
,
0x46
,
0x7a
,
0xd5
,
0x25
,
0x03
,
0xff
,
0xd6
,
0x82
,
0x2d
,
0x55
,
0x97
,
0xb0
,
0x5d
,
0x8b
,
0x6d
,
0x36
,
0x3c
,
0xb0
,
0x22
,
0xd4
,
0xf5
,
0xf8
,
0x0e
,
0x68
,
0xe8
,
0x58
,
0x58
,
0x44
,
0xa0
,
0xeb
,
0x71
,
0x36
,
0x69
,
0x1a
,
0xe3
,
0xa8
,
0xe0
,
0x90
,
0xe4
,
0x51
,
0xc1
,
0x51
,
0x66
,
0xd0
,
0xa3
,
0x4a
,
0x17
,
0x7f
,
0x65
,
0x41
,
0xd9
,
0xb4
,
0x2a
,
0xf0
,
0xde
,
0x7a
,
0x98
,
0x7e
,
0x62
,
0xde
,
0x04
,
0x96
,
0x04
,
0x55
,
0x5e
,
0x58
,
0xae
,
0x7a
,
0x1d
,
0xf9
,
0xca
,
0x82
,
0x12
,
0x3f
,
0x25
,
0xec
,
0x70
,
0xc4
,
0x4d
,
0xb9
,
0xd4
,
0x91
,
0xba
,
0xc3
,
0x0a
,
0x4d
,
0xd1
,
0x49
,
0x9d
,
0x18
,
0x4a
,
0xd6
,
0xf7
,
0xfc
,
0xb4
,
0xb1
,
0xe7
,
0xb3
,
0xb3
,
0xe2
,
0xcc
,
0x1e
,
0x3b
,
0x43
,
0xde
,
0x2d
,
0xc3
,
0xdb
,
0x62
,
0x05
,
0x3e
,
0x80
,
0x72
,
0x54
,
0xf5
,
0xa9
,
0x48
,
0xbd
,
0x85
,
0x12
,
0xfc
,
0xd7
,
0x14
,
0x54
,
0x12
,
0x1d
,
0x02
,
0x0f
,
0x7d
,
0xdb
,
0x48
,
0xae
,
0xa5
,
0x4c
,
0xa9
,
0x7c
,
0xfb
,
0xef
,
0xd4
,
0x8a
,
0xba
,
0xc9
,
0x99
,
0x44
,
0x14
,
0xb1
,
0xbc
,
0xe0
,
0xc8
,
0x5c
,
0x96
,
0xab
,
0xdd
,
0xd0
,
0x31
,
0x92
,
0xb8
,
0x7c
,
0x38
,
0xb6
,
0x4f
,
0x79
,
0x2d
,
0x5e
,
0x22
,
0xb1
,
0xc2
,
0x48
,
0x3b
,
0x8e
,
0xc8
,
0x73
,
0x84
,
0xa9
,
0x44
,
0x35
,
0x28
,
0x84
,
0xe2
,
0xe4
,
0x77
,
0x4f
,
0xaa
,
0xeb
,
0x46
,
0x1a
,
0x18
,
0xb1
,
0x26
,
0x31
,
0x0c
,
0x1f
,
0x42
,
0x91
,
0xbf
,
0xa0
,
0x5c
,
0x82
,
0x7a
,
0x1e
,
0x7e
,
0x97
,
0xf0
,
0xc5
,
0xc0
,
0x49
,
0x2b
,
0x91
,
0x48
,
0xc6
,
0x5f
,
0xa7
,
0xa0
,
0xa4
,
0x0d
,
0x14
,
0x78
,
0x71
,
0xee
,
0x5a
,
0x17
,
0xe4
,
0xee
,
0x0d
,
0x00
,
0x3b
,
0x7a
,
0xc4
,
0x51
,
0x6b
,
0x2e
,
0xd6
,
0xb0
,
0xc3
,
0x98
,
0x4b
,
0x92
,
0x3d
,
0x11
,
0x03
,
0x5d
,
0xc5
,
0x0c
,
0x63
,
0xa2
,
0x4e
,
0xbe
,
0x92
,
0x57
,
0x04
,
0x32
,
0x7b
,
0xa9
,
0x40
,
0xe6
,
0x12
,
0x04
,
0x18
,
0x41
,
0xca
,
0x27
,
0x83
,
0xf4
,
0x2e
,
0xf4
,
0xff
,
0xde
,
0x82
,
0xb2
,
0xaa
,
0xb3
,
0x2f
,
0x15
,
0x83
,
0x6d
,
0xc8
,
0x85
,
0xae
,
0xb6
,
0x39
,
0x49
,
0x89
,
0x91
,
0x18
,
0xba
,
0x2c
,
0x00
,
0xda
,
0xae
,
0xa4
,
0x69
,
0x12
,
0x1b
,
0x5b
,
0x66
,
0x61
,
0x63
,
0x8b
,
0xb7
,
0xac
,
0xac
,
0xb1
,
0x65
,
0xed
,
0x43
,
0xb1
,
0xa7
,
0xd5
,
0xe4
,
0x6f
,
0xad
,
0x76
,
0xfe
,
0x94
,
0x06
,
0x64
,
0xde
,
0x8b
,
0x78
,
0x7c
,
0x2f
,
0x9d
,
0x08
,
0xff
,
0x5b
,
0x99
,
0x5a
,
0x6a
,
0xa0
,
0xef
,
0x43
,
0x51
,
0xbf
,
0x0d
,
0x55
,
0x0b
,
0xbc
,
0xdb
,
0xb5
,
0xa8
,
0xb8
,
0x8a
,
0x9b
,
0x88
,
0x01
,
0x64
,
0x4e
,
0x89
,
0xe0
,
0xc9
,
0xe2
,
0x02
,
0x84
,
0x53
,
0xba
,
0x0e
,
0xff
,
0xd3
,
0x82
,
0x6b
,
0x89
,
0xfb
,
0xdd
,
0xd5
,
0x62
,
0xa5
,
0xb3
,
0x9a
,
0x4a
,
0xb0
,
0x7a
,
0xc5
,
0xc3
,
0x68
,
0xc1
,
0xd3
,
0xcc
,
0xbb
,
0x7a
,
0x9a
,
0x5d
,
0xe2
,
0xe9
,
0xdf
,
0x2c
,
0xa8
,
0x24
,
0x56
,
0x58
,
0xe0
,
0xa1
,
0x2f
,
0xa0
,
0x14
,
0xea
,
0x99
,
0x2a
,
0xfd
,
0xfd
,
0x20
,
0x0a
,
0x4a
,
0x32
,
0x8b
,
0x89
,
0x89
,
0x47
,
0x9f
,
0x43
,
0x31
,
0xb4
,
0xfd
,
0x53
,
0x1a
,
0x1e
,
0xeb
,
0xef
,
0x67
,
0x3b
,
0x89
,
0xfe
,
0x1a
,
0xb5
,
0xc4
,
0xc0
,
0xb3
,
0xfe
,
0xe2
,
0xad
,
0x4c
,
0xf6
,
0x4f
,
0x5f
,
0xdc
,
0x5f
,
0xc7
,
0xe3
,
0x5f
,
0xa5
,
0x60
,
0xcb
,
0x60
,
0x26
,
0x48
,
0xd6
,
0x94
,
0x56
,
0xb2
,
0xa6
,
0x64
,
0x15
,
0xb0
,
0x72
,
0x42
,
0x62
,
0x44
,
0xe4
,
0x12
,
0x5a
,
0x46
,
0xab
,
0x98
,
0x4b
,
0xa2
,
0xc4
,
0xda
,
0x32
,
0x74
,
0xe8
,
0x13
,
0xc8
,
0xb0
,
0x91
,
0xdf
,
0x16
,
0x2b
,
0x0e
,
0x40
,
0x9f
,
0x2e
,
0x3c
,
0x4e
,
0x2d
,
0x05
,
0xc7
,
0xaf
,
0x52
,
0xb7
,
0xa3
,
0x77
,
0xc6
,
0xdc
,
0x6a
,
0xb8
,
0x7a
,
0x68
,
0xfc
,
0x75
,
0x0a
,
0xb6
,
0xc4
,
0x0d
,
0x82
,
0xdf
,
0x4b
,
0xf9
,
0x93
,
0xee
,
0xdb
,
0xb6
,
0x4f
,
0x7e
,
0x6f
,
0x95
,
0xbb
,
0x89
,
0xf4
,
0x3e
,
0x56
,
0x5c
,
0x79
,
0x6b
,
0xb9
,
0x01
,
0xe0
,
0x04
,
0x44
,
0xbd
,
0x43
,
0x67
,
0xf8
,
0xd5
,
0x5e
,
0xd3
,
0xb0
,
0x9a
,
0xc8
,
0x16
,
0x77
,
0x16
,
0x99
,
0x9a
,
0x4a
,
0xe4
,
0xf5
,
0x4a
,
0x68
,
0x87
,
0xb3
,
0x80
,
0x3b
,
0x19
,
0xff
,
0x2f
,
0xe9
,
0xb8
,
0x21
,
0xed
,
0xf1
,
0x06
,
0x22
,
0x01
,
0x5a
,
0x69
,
0x93
,
0xbf
,
0xa0
,
0xb4
,
0xc1
,
0x4f
,
0x15
,
0x19
,
0x8d
,
0x97
,
0x47
,
0x8e
,
0x20
,
0x63
,
0x1f
,
0x32
,
0xce
,
0xf4
,
0xc4
,
0x95
,
0xf9
,
0xad
,
0x1e
,
0x2e
,
0x13
,
0x94
,
0x11
,
0x8e
,
0x61
,
0xe6
,
0x86
,
0x73
,
0x71
,
0xe3
,
0x17
,
0xd4
,
0x28
,
0x11
,
0xff
,
0xc3
,
0x52
,
0x17
,
0x35
,
0x3e
,
0xee
,
0x90
,
0xce
,
0x2f
,
0x3a
,
0xa7
,
0xbe
,
0x59
,
0xa2
,
0x57
,
0x13
,
0xb9
,
0x6d
,
0x10
,
0x99
,
0x8d
,
0x58
,
0xbb
,
0x0e
,
0x59
,
0x81
,
0xcf
,
0x73
,
0xb5
,
0x10
,
0x98
,
0x55
,
0x43
,
0xc7
,
0xa7
,
0xe2
,
0x27
,
0xcb
,
0x3a
,
0x6f
,
0x89
,
0x15
,
0xf8
,
0x0b
,
0x23
,
0x97
,
0xf8
,
0x3e
,
0xf1
,
0x1d
,
0xc8
,
0x32
,
0x97
,
0xd4
,
0x3b
,
0xf2
,
0x2a
,
0xfe
,
0x04
,
0x08
,
0xdf
,
0x82
,
0x4d
,
0xd1
,
0x42
,
0xe8
,
0x6b
,
0x76
,
0xaa
,
0x72
,
0x33
,
0xd8
,
0x5d
,
0x34
,
0x7a
,
0x98
,
0xe0
,
0x02
,
0x26
,
0xb0
,
0x2d
,
0x70
,
0xcd
,
0xa9
,
0xfd
,
0x72
,
0x4c
,
0xe5
,
0x85
,
0x96
,
0x2d
,
0xe1
,
0x65
,
0xff
,
0xa7
,
0x10
,
0x64
,
0x9c
,
0xe0
,
0xf8
,
0x21
,
0x67
,
0x71
,
0x9d
,
0xf0
,
0x6f
,
0x54
,
0x86
,
0xf4
,
0x24
,
0x38
,
0x95
,
0x8c
,
0xb1
,
0x4f
,
0xdc
,
0x81
,
0xf7
,
0x97
,
0x8d
,
0xc9
,
0x9c
,
0xb8
,
0x03
,
0x59
,
0x9f
,
0x06
,
0x9e
,
0x72
,
0xe2
,
0x43
,
0xc3
,
0x89
,
0xa4
,
0x09
,
0x44
,
0x60
,
0x71
,
0x07
,
0xe0
,
0x91
,
0x3b
,
0xb0
,
0xc7
,
0x47
,
0xce
,
0xbc
,
0x3f
,
0x67
,
0x36
,
0x8c
,
0xe2
,
0x30
,
0xf3
,
0x6f
,
0x46
,
0xfd
,
0x88
,
0x3a
,
0xa7
,
0x23
,
0xb1
,
0xf9
,
0xa5
,
0x89
,
0x94
,
0x98
,
0xcf
,
0x4e
,
0xf4
,
0x6c
,
0x94
,
0x26
,
0x42
,
0x60
,
0x95
,
0x4e
,
0x91
,
0x8f
,
0x25
,
0x1e
,
0x6d
,
0x5e
,
0xeb
,
0xd9
,
0x66
,
0x19
,
0xd9
,
0x16
,
0x4d
,
0x96
,
0x5a
,
0x3a
,
0x59
,
0x7a
,
0xf9
,
0x64
,
0x19
,
0x6d
,
0xb2
,
0x38
,
0xfa
,
0xd9
,
0x95
,
0xd1
,
0xcf
,
0x25
,
0xa3
,
0x7f
,
0x17
,
0x4a
,
0x9a
,
0x7d
,
0x81
,
0x87
,
0x3e
,
0x82
,
0x74
,
0x38
,
0x57
,
0xa4
,
0xa9
,
0x55
,
0x17
,
0x73
,
0x42
,
0x58
,
0x2b
,
0x3e
,
0x82
,
0x8a
,
0xe4
,
0x8e
,
0x05
,
0x9c
,
0xd0
,
0x60
,
0x36
,
0xfe
,
0x4f
,
0xa2
,
0xd8
,
0x86
,
0x6b
,
0x84
,
0xbe
,
0x5e
,
0x48
,
0x8b
,
0x1a
,
0xe4
,
0x7d
,
0x3e
,
0xb4
,
0x32
,
0xa7
,
0xaa
,
0x5d
,
0x8f
,
0x8d
,
0xb9
,
0x89
,
0x02
,
0xee
,
0xff
,
0x14
,
0x20
,
0xfe
,
0xfb
,
0x8a
,
0x36
,
0x20
,
0xdf
,
0x68
,
0x76
,
0x8f
,
0x7b
,
0xed
,
0x7e
,
0x79
,
0x0d
,
0x15
,
0x61
,
0xfd
,
0x69
,
0xbb
,
0xdf
,
0x6a
,
0x90
,
0xfa
,
0xd3
,
0xb2
,
0x85
,
0x2a
,
0x50
,
0xea
,
0x93
,
0x7a
,
0xa7
,
0x77
,
0xd8
,
0x24
,
0xed
,
0x4e
,
0xf7
,
0x71
,
0xbf
,
0x9c
,
0x42
,
0x08
,
0x36
,
0x95
,
0xea
,
0xf8
,
0x71
,
0x9f
,
0xe9
,
0xd2
,
0xa8
,
0x04
,
0x85
,
0xfa
,
0xe3
,
0x7e
,
0xeb
,
0x98
,
0xb4
,
0x5f
,
0x34
,
0xcb
,
0x99
,
0xfd
,
0x3a
,
0xa7
,
0x2b
,
0xfe
,
0x83
,
0xc9
,
0xda
,
0xa3
,
0xdf
,
0x8e
,
0xe5
,
0x35
,
0xb4
,
0x09
,
0x10
,
0xff
,
0x9a
,
0x15
,
0xb3
,
0xc8
,
0xb7
,
0x24
,
0xa9
,
0x4a
,
0xed
,
0x7f
,
0xc4
,
0x33
,
0x22
,
0xfa
,
0x83
,
0x82
,
0xf2
,
0x90
,
0xae
,
0x0f
,
0x87
,
0xe5
,
0x35
,
0x04
,
0x90
,
0x6b
,
0xd0
,
0x31
,
0x0d
,
0x69
,
0xd9
,
0xda
,
0xff
,
0x01
,
0x40
,
0xbc
,
0x29
,
0xa2
,
0x02
,
0x64
,
0x1f
,
0x77
,
0x1a
,
0xcd
,
0xc3
,
0xf2
,
0x1a
,
0xfb
,
0x7c
,
0x52
,
0x7f
,
0xd4
,
0x6e
,
0x94
,
0x2d
,
0x86
,
0x3f
,
0x24
,
0xc7
,
0x2f
,
0x9a
,
0x9d
,
0x72
,
0x0a
,
0xad
,
0x43
,
0xe6
,
0x71
,
0xaf
,
0xd9
,
0x28
,
0xa7
,
0xf7
,
0x7f
,
0x04
,
0xef
,
0x1d
,
0x39
,
0x73
,
0xb5
,
0x20
,
0x83
,
0x81
,
0x3d
,
0x95
,
0x83
,
0xac
,
0x43
,
0xa6
,
0xdd
,
0x78
,
0xd4
,
0x14
,
0x44
,
0xf4
,
0xee
,
0xd7
,
0x3b
,
0x9d
,
0x76
,
0xe7
,
0x41
,
0xd9
,
0x62
,
0xd2
,
0x61
,
0xbb
,
0xd3
,
0xee
,
0xb5
,
0x9a
,
0x8d
,
0x72
,
0xaa
,
0xf6
,
0xb5
,
0x05
,
0x30
,
0x71
,
0xe6
,
0xea
,
0x55
,
0xea
,
0x2e
,
0x6c
,
0x3d
,
0x48
,
0x8c
,
0xa3
,
0x1e
,
0x1e
,
0x08
,
0x7d
,
0xdd
,
0x71
,
0xc6
,
0x3b
,
0xe5
,
0x58
,
0xec
,
0x85
,
0xbe
,
0x33
,
0x3d
,
0xc5
,
0x6b
,
0xe8
,
0x33
,
0xd8
,
0x10
,
0x5d
,
0x98
,
0x0f
,
0x97
,
0xea
,
0xf1
,
0x39
,
0x94
,
0x8c
,
0xf0
,
0xa3
,
0xad
,
0x18
,
0xc4
,
0xf7
,
0x94
,
0x9d
,
0x9d
,
0x58
,
0x91
,
0x4c
,
0x14
,
0xbc
,
0xf6
,
0x32
,
0xc7
,
0xff
,
0xce
,
0xdf
,
0xf9
,
0x77
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0x53
,
0x45
,
0xb1
,
0xbd
,
0xd2
,
0x1f
,
0x00
,
0x00
,
}
// Reference imports to suppress errors if they are not otherwise used.
...
...
plugin/dapp/mix/wallet/mixbizdb.go
View file @
6e5bf601
...
...
@@ -118,7 +118,7 @@ func (p *mixPolicy) processTransfer(transfer *mixTy.MixTransferAction, heightInd
return
}
outInput
:=
data
.
(
*
mixTy
.
TransferOutputPublicInput
)
p
.
processSecretGroup
(
outInput
.
NoteHash
,
outInput
.
Dh
Secrets
,
heightIndex
,
table
)
p
.
processSecretGroup
(
outInput
.
NoteHash
,
transfer
.
Output
.
Secrets
,
heightIndex
,
table
)
//change
data
,
err
=
mixTy
.
DecodePubInput
(
mixTy
.
VerifyType_TRANSFEROUTPUT
,
transfer
.
Change
.
PublicInput
)
...
...
@@ -127,7 +127,7 @@ func (p *mixPolicy) processTransfer(transfer *mixTy.MixTransferAction, heightInd
return
}
changeInput
:=
data
.
(
*
mixTy
.
TransferOutputPublicInput
)
p
.
processSecretGroup
(
changeInput
.
NoteHash
,
changeInput
.
Dh
Secrets
,
heightIndex
,
table
)
p
.
processSecretGroup
(
changeInput
.
NoteHash
,
transfer
.
Change
.
Secrets
,
heightIndex
,
table
)
}
...
...
@@ -327,18 +327,17 @@ func (p *mixPolicy) decodeSecret(noteHash string, secretData string, privacyKeys
}
decryptData
,
err
:=
decryptData
(
key
.
Privacy
.
ShareSecretKey
.
PrivKey
,
tempPubKey
,
cryptData
)
if
err
!=
nil
{
bizlog
.
Info
(
"processSecret.decryptData
"
,
"decrypt for notehash"
,
noteHash
,
"secret"
,
secretData
,
"addr"
,
key
.
Addr
,
"err"
,
err
)
bizlog
.
Debug
(
"processSecret.decryptData fail
"
,
"decrypt for notehash"
,
noteHash
,
"secret"
,
secretData
,
"addr"
,
key
.
Addr
,
"err"
,
err
)
continue
}
var
rawData
mixTy
.
SecretData
err
=
types
.
Decode
(
decryptData
,
&
rawData
)
if
err
!=
nil
{
bizlog
.
Info
(
"processSecret.decode rawData
"
,
"addr"
,
key
.
Addr
,
"err"
,
err
)
bizlog
.
Debug
(
"processSecret.decode rawData fail
"
,
"addr"
,
key
.
Addr
,
"err"
,
err
)
continue
}
bizlog
.
Info
(
"processSecret.decode rawData OK"
,
"notehash"
,
noteHash
,
"addr"
,
key
.
Addr
)
if
rawData
.
ReceiverPubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
||
rawData
.
ReturnPubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
||
rawData
.
AuthorizePubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
...
...
plugin/dapp/mix/wallet/mixbizpolicy.go
View file @
6e5bf601
...
...
@@ -176,6 +176,7 @@ func (policy *mixPolicy) SignTransaction(key crypto.PrivKey, req *types.ReqSignR
func
(
policy
*
mixPolicy
)
signatureTx
(
tx
*
types
.
Transaction
,
transfer
*
mixTy
.
MixTransferAction
)
error
{
cfg
:=
policy
.
getWalletOperate
()
.
GetAPI
()
.
GetConfig
()
mixSignData
:=
types
.
Encode
(
transfer
)
tx
.
Fee
=
mixTy
.
Privacy2PrivacyTxFee
tx
.
Signature
=
&
types
.
Signature
{
Ty
:
MixSignID
,
Signature
:
common
.
BytesToHash
(
mixSignData
)
.
Bytes
(),
...
...
plugin/dapp/mix/wallet/proof.go
View file @
6e5bf601
...
...
@@ -214,7 +214,7 @@ func (policy *mixPolicy) withdrawProof(req *mixTy.WithdrawProofReq) (*mixTy.With
if
note
.
IsReturner
{
resp
.
SpendFlag
=
0
}
if
len
(
resp
.
AuthorizeSpendHash
)
>
0
{
if
len
(
resp
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
resp
.
AuthorizeFlag
=
1
}
...
...
@@ -225,16 +225,11 @@ func (policy *mixPolicy) withdrawProof(req *mixTy.WithdrawProofReq) (*mixTy.With
}
resp
.
SpendPrivKey
=
privacyKey
.
Privacy
.
PaymentKey
.
SpendPriKey
//get tree path
path
,
err
:=
policy
.
getPath
Proof
(
note
.
NoteHash
)
treeProof
,
err
:=
policy
.
getTree
Proof
(
note
.
NoteHash
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"get tree proof for noteHash=%s"
,
note
.
NoteHash
)
}
resp
.
TreeProof
.
TreePath
=
path
.
ProofSet
[
1
:
]
resp
.
TreeProof
.
Helpers
=
path
.
Helpers
for
i
:=
0
;
i
<
len
(
resp
.
TreeProof
.
TreePath
);
i
++
{
resp
.
TreeProof
.
ValidPath
=
append
(
resp
.
TreeProof
.
ValidPath
,
1
)
return
nil
,
errors
.
Wrapf
(
err
,
"getTreeProof for hash=%s"
,
note
.
NoteHash
)
}
resp
.
TreeProof
.
TreeRootHash
=
path
.
RootHash
resp
.
TreeProof
=
treeProof
return
&
resp
,
nil
...
...
@@ -274,16 +269,11 @@ func (policy *mixPolicy) authProof(req *mixTy.AuthProofReq) (*mixTy.AuthProofRes
}
//get tree path
path
,
err
:=
policy
.
getPath
Proof
(
note
.
NoteHash
)
treeProof
,
err
:=
policy
.
getTree
Proof
(
note
.
NoteHash
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"get tree proof for noteHash=%s"
,
note
.
NoteHash
)
}
resp
.
TreeProof
.
TreePath
=
path
.
ProofSet
[
1
:
]
resp
.
TreeProof
.
Helpers
=
path
.
Helpers
for
i
:=
0
;
i
<
len
(
resp
.
TreeProof
.
TreePath
);
i
++
{
resp
.
TreeProof
.
ValidPath
=
append
(
resp
.
TreeProof
.
ValidPath
,
1
)
return
nil
,
errors
.
Wrapf
(
err
,
"getTreeProof for hash=%s"
,
note
.
NoteHash
)
}
resp
.
TreeProof
.
TreeRootHash
=
path
.
RootHash
resp
.
TreeProof
=
treeProof
return
&
resp
,
nil
...
...
@@ -412,8 +402,6 @@ func (policy *mixPolicy) transferProof(req *mixTy.TransferProofReq) (*mixTy.Tran
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"input part parseUint=%s"
,
inputPart
.
Proof
.
Amount
)
}
//还要扣除手续费
minTxFee
:=
uint64
(
policy
.
walletOperate
.
GetConfig
()
.
MinFee
)
//output toAddr part
reqTransfer
:=
&
mixTy
.
DepositProofReq
{
...
...
@@ -428,11 +416,12 @@ func (policy *mixPolicy) transferProof(req *mixTy.TransferProofReq) (*mixTy.Tran
}
bizlog
.
Info
(
"transferProof deposit to receiver succ"
,
"notehash"
,
req
.
NoteHash
)
//还要扣除手续费
//output 找零 part,如果找零为0也需要设置,否则只有一个输入一个输出,H部分的随机数要相等,就能推测出转账值来
//在transfer output 部分特殊处理,如果amount是0的值则不加进tree
reqChange
:=
&
mixTy
.
DepositProofReq
{
ReceiverAddr
:
note
.
Account
,
Amount
:
noteAmount
-
req
.
Amount
-
minTxFee
,
Amount
:
noteAmount
-
req
.
Amount
-
uint64
(
mixTy
.
Privacy2PrivacyTxFee
)
,
}
depositChange
,
err
:=
policy
.
depositProof
(
reqChange
)
if
err
!=
nil
{
...
...
@@ -440,7 +429,7 @@ func (policy *mixPolicy) transferProof(req *mixTy.TransferProofReq) (*mixTy.Tran
}
bizlog
.
Info
(
"transferProof deposit to change succ"
,
"notehash"
,
req
.
NoteHash
)
commitValue
,
err
:=
getCommitValue
(
noteAmount
,
req
.
Amount
,
minTxFee
)
commitValue
,
err
:=
getCommitValue
(
noteAmount
,
req
.
Amount
,
uint64
(
mixTy
.
Privacy2PrivacyTxFee
)
)
if
err
!=
nil
{
return
nil
,
err
...
...
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