github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/accounts/usbwallet/internal/trezor/messages.pb.go (about)

     1  
     2  //此源码被清华学神尹成大魔王专业翻译分析并修改
     3  //尹成QQ77025077
     4  //尹成微信18510341407
     5  //尹成所在QQ群721929980
     6  //尹成邮箱 yinc13@mails.tsinghua.edu.cn
     7  //尹成毕业于清华大学,微软区块链领域全球最有价值专家
     8  //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
     9  //由Protoc Gen Go生成的代码。不要编辑。
    10  //来源:messages.proto
    11  
    12  package trezor
    13  
    14  import proto "github.com/golang/protobuf/proto"
    15  import fmt "fmt"
    16  import math "math"
    17  
    18  //引用导入以禁止错误(如果未使用)。
    19  var _ = proto.Marshal
    20  var _ = fmt.Errorf
    21  var _ = math.Inf
    22  
    23  //*
    24  //trezor线标识符(uint)和protobuf消息之间的映射
    25  type MessageType int32
    26  
    27  const (
    28  	MessageType_MessageType_Initialize               MessageType = 0
    29  	MessageType_MessageType_Ping                     MessageType = 1
    30  	MessageType_MessageType_Success                  MessageType = 2
    31  	MessageType_MessageType_Failure                  MessageType = 3
    32  	MessageType_MessageType_ChangePin                MessageType = 4
    33  	MessageType_MessageType_WipeDevice               MessageType = 5
    34  	MessageType_MessageType_FirmwareErase            MessageType = 6
    35  	MessageType_MessageType_FirmwareUpload           MessageType = 7
    36  	MessageType_MessageType_FirmwareRequest          MessageType = 8
    37  	MessageType_MessageType_GetEntropy               MessageType = 9
    38  	MessageType_MessageType_Entropy                  MessageType = 10
    39  	MessageType_MessageType_GetPublicKey             MessageType = 11
    40  	MessageType_MessageType_PublicKey                MessageType = 12
    41  	MessageType_MessageType_LoadDevice               MessageType = 13
    42  	MessageType_MessageType_ResetDevice              MessageType = 14
    43  	MessageType_MessageType_SignTx                   MessageType = 15
    44  	MessageType_MessageType_SimpleSignTx             MessageType = 16
    45  	MessageType_MessageType_Features                 MessageType = 17
    46  	MessageType_MessageType_PinMatrixRequest         MessageType = 18
    47  	MessageType_MessageType_PinMatrixAck             MessageType = 19
    48  	MessageType_MessageType_Cancel                   MessageType = 20
    49  	MessageType_MessageType_TxRequest                MessageType = 21
    50  	MessageType_MessageType_TxAck                    MessageType = 22
    51  	MessageType_MessageType_CipherKeyValue           MessageType = 23
    52  	MessageType_MessageType_ClearSession             MessageType = 24
    53  	MessageType_MessageType_ApplySettings            MessageType = 25
    54  	MessageType_MessageType_ButtonRequest            MessageType = 26
    55  	MessageType_MessageType_ButtonAck                MessageType = 27
    56  	MessageType_MessageType_ApplyFlags               MessageType = 28
    57  	MessageType_MessageType_GetAddress               MessageType = 29
    58  	MessageType_MessageType_Address                  MessageType = 30
    59  	MessageType_MessageType_SelfTest                 MessageType = 32
    60  	MessageType_MessageType_BackupDevice             MessageType = 34
    61  	MessageType_MessageType_EntropyRequest           MessageType = 35
    62  	MessageType_MessageType_EntropyAck               MessageType = 36
    63  	MessageType_MessageType_SignMessage              MessageType = 38
    64  	MessageType_MessageType_VerifyMessage            MessageType = 39
    65  	MessageType_MessageType_MessageSignature         MessageType = 40
    66  	MessageType_MessageType_PassphraseRequest        MessageType = 41
    67  	MessageType_MessageType_PassphraseAck            MessageType = 42
    68  	MessageType_MessageType_EstimateTxSize           MessageType = 43
    69  	MessageType_MessageType_TxSize                   MessageType = 44
    70  	MessageType_MessageType_RecoveryDevice           MessageType = 45
    71  	MessageType_MessageType_WordRequest              MessageType = 46
    72  	MessageType_MessageType_WordAck                  MessageType = 47
    73  	MessageType_MessageType_CipheredKeyValue         MessageType = 48
    74  	MessageType_MessageType_EncryptMessage           MessageType = 49
    75  	MessageType_MessageType_EncryptedMessage         MessageType = 50
    76  	MessageType_MessageType_DecryptMessage           MessageType = 51
    77  	MessageType_MessageType_DecryptedMessage         MessageType = 52
    78  	MessageType_MessageType_SignIdentity             MessageType = 53
    79  	MessageType_MessageType_SignedIdentity           MessageType = 54
    80  	MessageType_MessageType_GetFeatures              MessageType = 55
    81  	MessageType_MessageType_EthereumGetAddress       MessageType = 56
    82  	MessageType_MessageType_EthereumAddress          MessageType = 57
    83  	MessageType_MessageType_EthereumSignTx           MessageType = 58
    84  	MessageType_MessageType_EthereumTxRequest        MessageType = 59
    85  	MessageType_MessageType_EthereumTxAck            MessageType = 60
    86  	MessageType_MessageType_GetECDHSessionKey        MessageType = 61
    87  	MessageType_MessageType_ECDHSessionKey           MessageType = 62
    88  	MessageType_MessageType_SetU2FCounter            MessageType = 63
    89  	MessageType_MessageType_EthereumSignMessage      MessageType = 64
    90  	MessageType_MessageType_EthereumVerifyMessage    MessageType = 65
    91  	MessageType_MessageType_EthereumMessageSignature MessageType = 66
    92  	MessageType_MessageType_DebugLinkDecision        MessageType = 100
    93  	MessageType_MessageType_DebugLinkGetState        MessageType = 101
    94  	MessageType_MessageType_DebugLinkState           MessageType = 102
    95  	MessageType_MessageType_DebugLinkStop            MessageType = 103
    96  	MessageType_MessageType_DebugLinkLog             MessageType = 104
    97  	MessageType_MessageType_DebugLinkMemoryRead      MessageType = 110
    98  	MessageType_MessageType_DebugLinkMemory          MessageType = 111
    99  	MessageType_MessageType_DebugLinkMemoryWrite     MessageType = 112
   100  	MessageType_MessageType_DebugLinkFlashErase      MessageType = 113
   101  )
   102  
   103  var MessageType_name = map[int32]string{
   104  	0:   "MessageType_Initialize",
   105  	1:   "MessageType_Ping",
   106  	2:   "MessageType_Success",
   107  	3:   "MessageType_Failure",
   108  	4:   "MessageType_ChangePin",
   109  	5:   "MessageType_WipeDevice",
   110  	6:   "MessageType_FirmwareErase",
   111  	7:   "MessageType_FirmwareUpload",
   112  	8:   "MessageType_FirmwareRequest",
   113  	9:   "MessageType_GetEntropy",
   114  	10:  "MessageType_Entropy",
   115  	11:  "MessageType_GetPublicKey",
   116  	12:  "MessageType_PublicKey",
   117  	13:  "MessageType_LoadDevice",
   118  	14:  "MessageType_ResetDevice",
   119  	15:  "MessageType_SignTx",
   120  	16:  "MessageType_SimpleSignTx",
   121  	17:  "MessageType_Features",
   122  	18:  "MessageType_PinMatrixRequest",
   123  	19:  "MessageType_PinMatrixAck",
   124  	20:  "MessageType_Cancel",
   125  	21:  "MessageType_TxRequest",
   126  	22:  "MessageType_TxAck",
   127  	23:  "MessageType_CipherKeyValue",
   128  	24:  "MessageType_ClearSession",
   129  	25:  "MessageType_ApplySettings",
   130  	26:  "MessageType_ButtonRequest",
   131  	27:  "MessageType_ButtonAck",
   132  	28:  "MessageType_ApplyFlags",
   133  	29:  "MessageType_GetAddress",
   134  	30:  "MessageType_Address",
   135  	32:  "MessageType_SelfTest",
   136  	34:  "MessageType_BackupDevice",
   137  	35:  "MessageType_EntropyRequest",
   138  	36:  "MessageType_EntropyAck",
   139  	38:  "MessageType_SignMessage",
   140  	39:  "MessageType_VerifyMessage",
   141  	40:  "MessageType_MessageSignature",
   142  	41:  "MessageType_PassphraseRequest",
   143  	42:  "MessageType_PassphraseAck",
   144  	43:  "MessageType_EstimateTxSize",
   145  	44:  "MessageType_TxSize",
   146  	45:  "MessageType_RecoveryDevice",
   147  	46:  "MessageType_WordRequest",
   148  	47:  "MessageType_WordAck",
   149  	48:  "MessageType_CipheredKeyValue",
   150  	49:  "MessageType_EncryptMessage",
   151  	50:  "MessageType_EncryptedMessage",
   152  	51:  "MessageType_DecryptMessage",
   153  	52:  "MessageType_DecryptedMessage",
   154  	53:  "MessageType_SignIdentity",
   155  	54:  "MessageType_SignedIdentity",
   156  	55:  "MessageType_GetFeatures",
   157  	56:  "MessageType_EthereumGetAddress",
   158  	57:  "MessageType_EthereumAddress",
   159  	58:  "MessageType_EthereumSignTx",
   160  	59:  "MessageType_EthereumTxRequest",
   161  	60:  "MessageType_EthereumTxAck",
   162  	61:  "MessageType_GetECDHSessionKey",
   163  	62:  "MessageType_ECDHSessionKey",
   164  	63:  "MessageType_SetU2FCounter",
   165  	64:  "MessageType_EthereumSignMessage",
   166  	65:  "MessageType_EthereumVerifyMessage",
   167  	66:  "MessageType_EthereumMessageSignature",
   168  	100: "MessageType_DebugLinkDecision",
   169  	101: "MessageType_DebugLinkGetState",
   170  	102: "MessageType_DebugLinkState",
   171  	103: "MessageType_DebugLinkStop",
   172  	104: "MessageType_DebugLinkLog",
   173  	110: "MessageType_DebugLinkMemoryRead",
   174  	111: "MessageType_DebugLinkMemory",
   175  	112: "MessageType_DebugLinkMemoryWrite",
   176  	113: "MessageType_DebugLinkFlashErase",
   177  }
   178  var MessageType_value = map[string]int32{
   179  	"MessageType_Initialize":               0,
   180  	"MessageType_Ping":                     1,
   181  	"MessageType_Success":                  2,
   182  	"MessageType_Failure":                  3,
   183  	"MessageType_ChangePin":                4,
   184  	"MessageType_WipeDevice":               5,
   185  	"MessageType_FirmwareErase":            6,
   186  	"MessageType_FirmwareUpload":           7,
   187  	"MessageType_FirmwareRequest":          8,
   188  	"MessageType_GetEntropy":               9,
   189  	"MessageType_Entropy":                  10,
   190  	"MessageType_GetPublicKey":             11,
   191  	"MessageType_PublicKey":                12,
   192  	"MessageType_LoadDevice":               13,
   193  	"MessageType_ResetDevice":              14,
   194  	"MessageType_SignTx":                   15,
   195  	"MessageType_SimpleSignTx":             16,
   196  	"MessageType_Features":                 17,
   197  	"MessageType_PinMatrixRequest":         18,
   198  	"MessageType_PinMatrixAck":             19,
   199  	"MessageType_Cancel":                   20,
   200  	"MessageType_TxRequest":                21,
   201  	"MessageType_TxAck":                    22,
   202  	"MessageType_CipherKeyValue":           23,
   203  	"MessageType_ClearSession":             24,
   204  	"MessageType_ApplySettings":            25,
   205  	"MessageType_ButtonRequest":            26,
   206  	"MessageType_ButtonAck":                27,
   207  	"MessageType_ApplyFlags":               28,
   208  	"MessageType_GetAddress":               29,
   209  	"MessageType_Address":                  30,
   210  	"MessageType_SelfTest":                 32,
   211  	"MessageType_BackupDevice":             34,
   212  	"MessageType_EntropyRequest":           35,
   213  	"MessageType_EntropyAck":               36,
   214  	"MessageType_SignMessage":              38,
   215  	"MessageType_VerifyMessage":            39,
   216  	"MessageType_MessageSignature":         40,
   217  	"MessageType_PassphraseRequest":        41,
   218  	"MessageType_PassphraseAck":            42,
   219  	"MessageType_EstimateTxSize":           43,
   220  	"MessageType_TxSize":                   44,
   221  	"MessageType_RecoveryDevice":           45,
   222  	"MessageType_WordRequest":              46,
   223  	"MessageType_WordAck":                  47,
   224  	"MessageType_CipheredKeyValue":         48,
   225  	"MessageType_EncryptMessage":           49,
   226  	"MessageType_EncryptedMessage":         50,
   227  	"MessageType_DecryptMessage":           51,
   228  	"MessageType_DecryptedMessage":         52,
   229  	"MessageType_SignIdentity":             53,
   230  	"MessageType_SignedIdentity":           54,
   231  	"MessageType_GetFeatures":              55,
   232  	"MessageType_EthereumGetAddress":       56,
   233  	"MessageType_EthereumAddress":          57,
   234  	"MessageType_EthereumSignTx":           58,
   235  	"MessageType_EthereumTxRequest":        59,
   236  	"MessageType_EthereumTxAck":            60,
   237  	"MessageType_GetECDHSessionKey":        61,
   238  	"MessageType_ECDHSessionKey":           62,
   239  	"MessageType_SetU2FCounter":            63,
   240  	"MessageType_EthereumSignMessage":      64,
   241  	"MessageType_EthereumVerifyMessage":    65,
   242  	"MessageType_EthereumMessageSignature": 66,
   243  	"MessageType_DebugLinkDecision":        100,
   244  	"MessageType_DebugLinkGetState":        101,
   245  	"MessageType_DebugLinkState":           102,
   246  	"MessageType_DebugLinkStop":            103,
   247  	"MessageType_DebugLinkLog":             104,
   248  	"MessageType_DebugLinkMemoryRead":      110,
   249  	"MessageType_DebugLinkMemory":          111,
   250  	"MessageType_DebugLinkMemoryWrite":     112,
   251  	"MessageType_DebugLinkFlashErase":      113,
   252  }
   253  
   254  func (x MessageType) Enum() *MessageType {
   255  	p := new(MessageType)
   256  	*p = x
   257  	return p
   258  }
   259  func (x MessageType) String() string {
   260  	return proto.EnumName(MessageType_name, int32(x))
   261  }
   262  func (x *MessageType) UnmarshalJSON(data []byte) error {
   263  	value, err := proto.UnmarshalJSONEnum(MessageType_value, data, "MessageType")
   264  	if err != nil {
   265  		return err
   266  	}
   267  	*x = MessageType(value)
   268  	return nil
   269  }
   270  func (MessageType) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
   271  
   272  //*
   273  //请求:将设备重置为默认状态并询问设备详细信息
   274  //下一个特征
   275  type Initialize struct {
   276  	XXX_unrecognized []byte `json:"-"`
   277  }
   278  
   279  func (m *Initialize) Reset()                    { *m = Initialize{} }
   280  func (m *Initialize) String() string            { return proto.CompactTextString(m) }
   281  func (*Initialize) ProtoMessage()               {}
   282  func (*Initialize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
   283  
   284  //*
   285  //请求:询问设备详细信息(无设备重置)
   286  //下一个特征
   287  type GetFeatures struct {
   288  	XXX_unrecognized []byte `json:"-"`
   289  }
   290  
   291  func (m *GetFeatures) Reset()                    { *m = GetFeatures{} }
   292  func (m *GetFeatures) String() string            { return proto.CompactTextString(m) }
   293  func (*GetFeatures) ProtoMessage()               {}
   294  func (*GetFeatures) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
   295  
   296  //*
   297  //响应:报告有关设备的各种信息
   298  //@prev初始化
   299  //@上一个获取功能
   300  type Features struct {
   301  	Vendor               *string     `protobuf:"bytes,1,opt,name=vendor" json:"vendor,omitempty"`
   302  	MajorVersion         *uint32     `protobuf:"varint,2,opt,name=major_version,json=majorVersion" json:"major_version,omitempty"`
   303  	MinorVersion         *uint32     `protobuf:"varint,3,opt,name=minor_version,json=minorVersion" json:"minor_version,omitempty"`
   304  	PatchVersion         *uint32     `protobuf:"varint,4,opt,name=patch_version,json=patchVersion" json:"patch_version,omitempty"`
   305  	BootloaderMode       *bool       `protobuf:"varint,5,opt,name=bootloader_mode,json=bootloaderMode" json:"bootloader_mode,omitempty"`
   306  	DeviceId             *string     `protobuf:"bytes,6,opt,name=device_id,json=deviceId" json:"device_id,omitempty"`
   307  	PinProtection        *bool       `protobuf:"varint,7,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
   308  	PassphraseProtection *bool       `protobuf:"varint,8,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
   309  	Language             *string     `protobuf:"bytes,9,opt,name=language" json:"language,omitempty"`
   310  	Label                *string     `protobuf:"bytes,10,opt,name=label" json:"label,omitempty"`
   311  	Coins                []*CoinType `protobuf:"bytes,11,rep,name=coins" json:"coins,omitempty"`
   312  	Initialized          *bool       `protobuf:"varint,12,opt,name=initialized" json:"initialized,omitempty"`
   313  	Revision             []byte      `protobuf:"bytes,13,opt,name=revision" json:"revision,omitempty"`
   314  	BootloaderHash       []byte      `protobuf:"bytes,14,opt,name=bootloader_hash,json=bootloaderHash" json:"bootloader_hash,omitempty"`
   315  	Imported             *bool       `protobuf:"varint,15,opt,name=imported" json:"imported,omitempty"`
   316  	PinCached            *bool       `protobuf:"varint,16,opt,name=pin_cached,json=pinCached" json:"pin_cached,omitempty"`
   317  	PassphraseCached     *bool       `protobuf:"varint,17,opt,name=passphrase_cached,json=passphraseCached" json:"passphrase_cached,omitempty"`
   318  	FirmwarePresent      *bool       `protobuf:"varint,18,opt,name=firmware_present,json=firmwarePresent" json:"firmware_present,omitempty"`
   319  	NeedsBackup          *bool       `protobuf:"varint,19,opt,name=needs_backup,json=needsBackup" json:"needs_backup,omitempty"`
   320  	Flags                *uint32     `protobuf:"varint,20,opt,name=flags" json:"flags,omitempty"`
   321  	XXX_unrecognized     []byte      `json:"-"`
   322  }
   323  
   324  func (m *Features) Reset()                    { *m = Features{} }
   325  func (m *Features) String() string            { return proto.CompactTextString(m) }
   326  func (*Features) ProtoMessage()               {}
   327  func (*Features) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
   328  
   329  func (m *Features) GetVendor() string {
   330  	if m != nil && m.Vendor != nil {
   331  		return *m.Vendor
   332  	}
   333  	return ""
   334  }
   335  
   336  func (m *Features) GetMajorVersion() uint32 {
   337  	if m != nil && m.MajorVersion != nil {
   338  		return *m.MajorVersion
   339  	}
   340  	return 0
   341  }
   342  
   343  func (m *Features) GetMinorVersion() uint32 {
   344  	if m != nil && m.MinorVersion != nil {
   345  		return *m.MinorVersion
   346  	}
   347  	return 0
   348  }
   349  
   350  func (m *Features) GetPatchVersion() uint32 {
   351  	if m != nil && m.PatchVersion != nil {
   352  		return *m.PatchVersion
   353  	}
   354  	return 0
   355  }
   356  
   357  func (m *Features) GetBootloaderMode() bool {
   358  	if m != nil && m.BootloaderMode != nil {
   359  		return *m.BootloaderMode
   360  	}
   361  	return false
   362  }
   363  
   364  func (m *Features) GetDeviceId() string {
   365  	if m != nil && m.DeviceId != nil {
   366  		return *m.DeviceId
   367  	}
   368  	return ""
   369  }
   370  
   371  func (m *Features) GetPinProtection() bool {
   372  	if m != nil && m.PinProtection != nil {
   373  		return *m.PinProtection
   374  	}
   375  	return false
   376  }
   377  
   378  func (m *Features) GetPassphraseProtection() bool {
   379  	if m != nil && m.PassphraseProtection != nil {
   380  		return *m.PassphraseProtection
   381  	}
   382  	return false
   383  }
   384  
   385  func (m *Features) GetLanguage() string {
   386  	if m != nil && m.Language != nil {
   387  		return *m.Language
   388  	}
   389  	return ""
   390  }
   391  
   392  func (m *Features) GetLabel() string {
   393  	if m != nil && m.Label != nil {
   394  		return *m.Label
   395  	}
   396  	return ""
   397  }
   398  
   399  func (m *Features) GetCoins() []*CoinType {
   400  	if m != nil {
   401  		return m.Coins
   402  	}
   403  	return nil
   404  }
   405  
   406  func (m *Features) GetInitialized() bool {
   407  	if m != nil && m.Initialized != nil {
   408  		return *m.Initialized
   409  	}
   410  	return false
   411  }
   412  
   413  func (m *Features) GetRevision() []byte {
   414  	if m != nil {
   415  		return m.Revision
   416  	}
   417  	return nil
   418  }
   419  
   420  func (m *Features) GetBootloaderHash() []byte {
   421  	if m != nil {
   422  		return m.BootloaderHash
   423  	}
   424  	return nil
   425  }
   426  
   427  func (m *Features) GetImported() bool {
   428  	if m != nil && m.Imported != nil {
   429  		return *m.Imported
   430  	}
   431  	return false
   432  }
   433  
   434  func (m *Features) GetPinCached() bool {
   435  	if m != nil && m.PinCached != nil {
   436  		return *m.PinCached
   437  	}
   438  	return false
   439  }
   440  
   441  func (m *Features) GetPassphraseCached() bool {
   442  	if m != nil && m.PassphraseCached != nil {
   443  		return *m.PassphraseCached
   444  	}
   445  	return false
   446  }
   447  
   448  func (m *Features) GetFirmwarePresent() bool {
   449  	if m != nil && m.FirmwarePresent != nil {
   450  		return *m.FirmwarePresent
   451  	}
   452  	return false
   453  }
   454  
   455  func (m *Features) GetNeedsBackup() bool {
   456  	if m != nil && m.NeedsBackup != nil {
   457  		return *m.NeedsBackup
   458  	}
   459  	return false
   460  }
   461  
   462  func (m *Features) GetFlags() uint32 {
   463  	if m != nil && m.Flags != nil {
   464  		return *m.Flags
   465  	}
   466  	return 0
   467  }
   468  
   469  //*
   470  //请求:清除会话(删除缓存的pin、密码短语等)。
   471  //下一个成功
   472  type ClearSession struct {
   473  	XXX_unrecognized []byte `json:"-"`
   474  }
   475  
   476  func (m *ClearSession) Reset()                    { *m = ClearSession{} }
   477  func (m *ClearSession) String() string            { return proto.CompactTextString(m) }
   478  func (*ClearSession) ProtoMessage()               {}
   479  func (*ClearSession) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
   480  
   481  //*
   482  //请求:更改设备的语言和/或标签
   483  //下一个成功
   484  //下一次失败
   485  //@下一步按钮请求
   486  //@下一个PinMatrixRequest
   487  type ApplySettings struct {
   488  	Language         *string `protobuf:"bytes,1,opt,name=language" json:"language,omitempty"`
   489  	Label            *string `protobuf:"bytes,2,opt,name=label" json:"label,omitempty"`
   490  	UsePassphrase    *bool   `protobuf:"varint,3,opt,name=use_passphrase,json=usePassphrase" json:"use_passphrase,omitempty"`
   491  	Homescreen       []byte  `protobuf:"bytes,4,opt,name=homescreen" json:"homescreen,omitempty"`
   492  	XXX_unrecognized []byte  `json:"-"`
   493  }
   494  
   495  func (m *ApplySettings) Reset()                    { *m = ApplySettings{} }
   496  func (m *ApplySettings) String() string            { return proto.CompactTextString(m) }
   497  func (*ApplySettings) ProtoMessage()               {}
   498  func (*ApplySettings) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
   499  
   500  func (m *ApplySettings) GetLanguage() string {
   501  	if m != nil && m.Language != nil {
   502  		return *m.Language
   503  	}
   504  	return ""
   505  }
   506  
   507  func (m *ApplySettings) GetLabel() string {
   508  	if m != nil && m.Label != nil {
   509  		return *m.Label
   510  	}
   511  	return ""
   512  }
   513  
   514  func (m *ApplySettings) GetUsePassphrase() bool {
   515  	if m != nil && m.UsePassphrase != nil {
   516  		return *m.UsePassphrase
   517  	}
   518  	return false
   519  }
   520  
   521  func (m *ApplySettings) GetHomescreen() []byte {
   522  	if m != nil {
   523  		return m.Homescreen
   524  	}
   525  	return nil
   526  }
   527  
   528  //*
   529  //请求:设置设备的标志
   530  //下一个成功
   531  //下一次失败
   532  type ApplyFlags struct {
   533  	Flags            *uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
   534  	XXX_unrecognized []byte  `json:"-"`
   535  }
   536  
   537  func (m *ApplyFlags) Reset()                    { *m = ApplyFlags{} }
   538  func (m *ApplyFlags) String() string            { return proto.CompactTextString(m) }
   539  func (*ApplyFlags) ProtoMessage()               {}
   540  func (*ApplyFlags) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
   541  
   542  func (m *ApplyFlags) GetFlags() uint32 {
   543  	if m != nil && m.Flags != nil {
   544  		return *m.Flags
   545  	}
   546  	return 0
   547  }
   548  
   549  //*
   550  //请求:启动用于设置/更改/删除PIN的工作流
   551  //@下一步按钮请求
   552  //@下一个PinMatrixRequest
   553  type ChangePin struct {
   554  	Remove           *bool  `protobuf:"varint,1,opt,name=remove" json:"remove,omitempty"`
   555  	XXX_unrecognized []byte `json:"-"`
   556  }
   557  
   558  func (m *ChangePin) Reset()                    { *m = ChangePin{} }
   559  func (m *ChangePin) String() string            { return proto.CompactTextString(m) }
   560  func (*ChangePin) ProtoMessage()               {}
   561  func (*ChangePin) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
   562  
   563  func (m *ChangePin) GetRemove() bool {
   564  	if m != nil && m.Remove != nil {
   565  		return *m.Remove
   566  	}
   567  	return false
   568  }
   569  
   570  //*
   571  //请求:测试设备是否处于活动状态,设备发送成功响应的消息。
   572  //下一个成功
   573  type Ping struct {
   574  	Message              *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
   575  	ButtonProtection     *bool   `protobuf:"varint,2,opt,name=button_protection,json=buttonProtection" json:"button_protection,omitempty"`
   576  	PinProtection        *bool   `protobuf:"varint,3,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
   577  	PassphraseProtection *bool   `protobuf:"varint,4,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
   578  	XXX_unrecognized     []byte  `json:"-"`
   579  }
   580  
   581  func (m *Ping) Reset()                    { *m = Ping{} }
   582  func (m *Ping) String() string            { return proto.CompactTextString(m) }
   583  func (*Ping) ProtoMessage()               {}
   584  func (*Ping) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }
   585  
   586  func (m *Ping) GetMessage() string {
   587  	if m != nil && m.Message != nil {
   588  		return *m.Message
   589  	}
   590  	return ""
   591  }
   592  
   593  func (m *Ping) GetButtonProtection() bool {
   594  	if m != nil && m.ButtonProtection != nil {
   595  		return *m.ButtonProtection
   596  	}
   597  	return false
   598  }
   599  
   600  func (m *Ping) GetPinProtection() bool {
   601  	if m != nil && m.PinProtection != nil {
   602  		return *m.PinProtection
   603  	}
   604  	return false
   605  }
   606  
   607  func (m *Ping) GetPassphraseProtection() bool {
   608  	if m != nil && m.PassphraseProtection != nil {
   609  		return *m.PassphraseProtection
   610  	}
   611  	return false
   612  }
   613  
   614  //*
   615  //响应:上一个请求成功
   616  type Success struct {
   617  	Message          *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
   618  	XXX_unrecognized []byte  `json:"-"`
   619  }
   620  
   621  func (m *Success) Reset()                    { *m = Success{} }
   622  func (m *Success) String() string            { return proto.CompactTextString(m) }
   623  func (*Success) ProtoMessage()               {}
   624  func (*Success) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} }
   625  
   626  func (m *Success) GetMessage() string {
   627  	if m != nil && m.Message != nil {
   628  		return *m.Message
   629  	}
   630  	return ""
   631  }
   632  
   633  //*
   634  //响应:上一个请求失败
   635  type Failure struct {
   636  	Code             *FailureType `protobuf:"varint,1,opt,name=code,enum=FailureType" json:"code,omitempty"`
   637  	Message          *string      `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
   638  	XXX_unrecognized []byte       `json:"-"`
   639  }
   640  
   641  func (m *Failure) Reset()                    { *m = Failure{} }
   642  func (m *Failure) String() string            { return proto.CompactTextString(m) }
   643  func (*Failure) ProtoMessage()               {}
   644  func (*Failure) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} }
   645  
   646  func (m *Failure) GetCode() FailureType {
   647  	if m != nil && m.Code != nil {
   648  		return *m.Code
   649  	}
   650  	return FailureType_Failure_UnexpectedMessage
   651  }
   652  
   653  func (m *Failure) GetMessage() string {
   654  	if m != nil && m.Message != nil {
   655  		return *m.Message
   656  	}
   657  	return ""
   658  }
   659  
   660  //*
   661  //响应:设备正在等待按下硬件按钮。
   662  //下一钮
   663  //下次取消
   664  type ButtonRequest struct {
   665  	Code             *ButtonRequestType `protobuf:"varint,1,opt,name=code,enum=ButtonRequestType" json:"code,omitempty"`
   666  	Data             *string            `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
   667  	XXX_unrecognized []byte             `json:"-"`
   668  }
   669  
   670  func (m *ButtonRequest) Reset()                    { *m = ButtonRequest{} }
   671  func (m *ButtonRequest) String() string            { return proto.CompactTextString(m) }
   672  func (*ButtonRequest) ProtoMessage()               {}
   673  func (*ButtonRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} }
   674  
   675  func (m *ButtonRequest) GetCode() ButtonRequestType {
   676  	if m != nil && m.Code != nil {
   677  		return *m.Code
   678  	}
   679  	return ButtonRequestType_ButtonRequest_Other
   680  }
   681  
   682  func (m *ButtonRequest) GetData() string {
   683  	if m != nil && m.Data != nil {
   684  		return *m.Data
   685  	}
   686  	return ""
   687  }
   688  
   689  //*
   690  //请求:计算机同意等待硬件按钮按下
   691  //@prev按钮请求
   692  type ButtonAck struct {
   693  	XXX_unrecognized []byte `json:"-"`
   694  }
   695  
   696  func (m *ButtonAck) Reset()                    { *m = ButtonAck{} }
   697  func (m *ButtonAck) String() string            { return proto.CompactTextString(m) }
   698  func (*ButtonAck) ProtoMessage()               {}
   699  func (*ButtonAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} }
   700  
   701  //*
   702  //回答:设备要求计算机显示管脚矩阵,并等待使用此矩阵方案编码的管脚。
   703  //@下一个Pinmatrixack
   704  //下次取消
   705  type PinMatrixRequest struct {
   706  	Type             *PinMatrixRequestType `protobuf:"varint,1,opt,name=type,enum=PinMatrixRequestType" json:"type,omitempty"`
   707  	XXX_unrecognized []byte                `json:"-"`
   708  }
   709  
   710  func (m *PinMatrixRequest) Reset()                    { *m = PinMatrixRequest{} }
   711  func (m *PinMatrixRequest) String() string            { return proto.CompactTextString(m) }
   712  func (*PinMatrixRequest) ProtoMessage()               {}
   713  func (*PinMatrixRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{12} }
   714  
   715  func (m *PinMatrixRequest) GetType() PinMatrixRequestType {
   716  	if m != nil && m.Type != nil {
   717  		return *m.Type
   718  	}
   719  	return PinMatrixRequestType_PinMatrixRequestType_Current
   720  }
   721  
   722  //*
   723  //请求:计算机用编码的PIN响应
   724  //@上一个PinMatrixRequest
   725  type PinMatrixAck struct {
   726  	Pin              *string `protobuf:"bytes,1,req,name=pin" json:"pin,omitempty"`
   727  	XXX_unrecognized []byte  `json:"-"`
   728  }
   729  
   730  func (m *PinMatrixAck) Reset()                    { *m = PinMatrixAck{} }
   731  func (m *PinMatrixAck) String() string            { return proto.CompactTextString(m) }
   732  func (*PinMatrixAck) ProtoMessage()               {}
   733  func (*PinMatrixAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{13} }
   734  
   735  func (m *PinMatrixAck) GetPin() string {
   736  	if m != nil && m.Pin != nil {
   737  		return *m.Pin
   738  	}
   739  	return ""
   740  }
   741  
   742  //*
   743  //请求:中止上次需要用户交互的操作
   744  //@prev按钮请求
   745  //@上一个PinMatrixRequest
   746  //@prev密码请求
   747  type Cancel struct {
   748  	XXX_unrecognized []byte `json:"-"`
   749  }
   750  
   751  func (m *Cancel) Reset()                    { *m = Cancel{} }
   752  func (m *Cancel) String() string            { return proto.CompactTextString(m) }
   753  func (*Cancel) ProtoMessage()               {}
   754  func (*Cancel) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{14} }
   755  
   756  //*
   757  //响应:设备等待加密密码短语
   758  //@下一个密码检查
   759  //下次取消
   760  type PassphraseRequest struct {
   761  	XXX_unrecognized []byte `json:"-"`
   762  }
   763  
   764  func (m *PassphraseRequest) Reset()                    { *m = PassphraseRequest{} }
   765  func (m *PassphraseRequest) String() string            { return proto.CompactTextString(m) }
   766  func (*PassphraseRequest) ProtoMessage()               {}
   767  func (*PassphraseRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{15} }
   768  
   769  //*
   770  //请求:返回密码短语
   771  //@prev密码请求
   772  type PassphraseAck struct {
   773  	Passphrase       *string `protobuf:"bytes,1,req,name=passphrase" json:"passphrase,omitempty"`
   774  	XXX_unrecognized []byte  `json:"-"`
   775  }
   776  
   777  func (m *PassphraseAck) Reset()                    { *m = PassphraseAck{} }
   778  func (m *PassphraseAck) String() string            { return proto.CompactTextString(m) }
   779  func (*PassphraseAck) ProtoMessage()               {}
   780  func (*PassphraseAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{16} }
   781  
   782  func (m *PassphraseAck) GetPassphrase() string {
   783  	if m != nil && m.Passphrase != nil {
   784  		return *m.Passphrase
   785  	}
   786  	return ""
   787  }
   788  
   789  //*
   790  //请求:请求硬件RNG生成的随机数据样本。可用于测试。
   791  //@下一步按钮请求
   792  //@下一个熵
   793  //下一次失败
   794  type GetEntropy struct {
   795  	Size             *uint32 `protobuf:"varint,1,req,name=size" json:"size,omitempty"`
   796  	XXX_unrecognized []byte  `json:"-"`
   797  }
   798  
   799  func (m *GetEntropy) Reset()                    { *m = GetEntropy{} }
   800  func (m *GetEntropy) String() string            { return proto.CompactTextString(m) }
   801  func (*GetEntropy) ProtoMessage()               {}
   802  func (*GetEntropy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{17} }
   803  
   804  func (m *GetEntropy) GetSize() uint32 {
   805  	if m != nil && m.Size != nil {
   806  		return *m.Size
   807  	}
   808  	return 0
   809  }
   810  
   811  //*
   812  //响应:用内部RNG生成的随机数据回复
   813  //@prev get熵
   814  type Entropy struct {
   815  	Entropy          []byte `protobuf:"bytes,1,req,name=entropy" json:"entropy,omitempty"`
   816  	XXX_unrecognized []byte `json:"-"`
   817  }
   818  
   819  func (m *Entropy) Reset()                    { *m = Entropy{} }
   820  func (m *Entropy) String() string            { return proto.CompactTextString(m) }
   821  func (*Entropy) ProtoMessage()               {}
   822  func (*Entropy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{18} }
   823  
   824  func (m *Entropy) GetEntropy() []byte {
   825  	if m != nil {
   826  		return m.Entropy
   827  	}
   828  	return nil
   829  }
   830  
   831  //*
   832  //请求:请求设备提供与地址路径相对应的公钥
   833  //@下一个密码请求
   834  //下一个公钥
   835  //下一次失败
   836  type GetPublicKey struct {
   837  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
   838  	EcdsaCurveName   *string  `protobuf:"bytes,2,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
   839  	ShowDisplay      *bool    `protobuf:"varint,3,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
   840  	CoinName         *string  `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
   841  	XXX_unrecognized []byte   `json:"-"`
   842  }
   843  
   844  func (m *GetPublicKey) Reset()                    { *m = GetPublicKey{} }
   845  func (m *GetPublicKey) String() string            { return proto.CompactTextString(m) }
   846  func (*GetPublicKey) ProtoMessage()               {}
   847  func (*GetPublicKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{19} }
   848  
   849  const Default_GetPublicKey_CoinName string = "Bitcoin"
   850  
   851  func (m *GetPublicKey) GetAddressN() []uint32 {
   852  	if m != nil {
   853  		return m.AddressN
   854  	}
   855  	return nil
   856  }
   857  
   858  func (m *GetPublicKey) GetEcdsaCurveName() string {
   859  	if m != nil && m.EcdsaCurveName != nil {
   860  		return *m.EcdsaCurveName
   861  	}
   862  	return ""
   863  }
   864  
   865  func (m *GetPublicKey) GetShowDisplay() bool {
   866  	if m != nil && m.ShowDisplay != nil {
   867  		return *m.ShowDisplay
   868  	}
   869  	return false
   870  }
   871  
   872  func (m *GetPublicKey) GetCoinName() string {
   873  	if m != nil && m.CoinName != nil {
   874  		return *m.CoinName
   875  	}
   876  	return Default_GetPublicKey_CoinName
   877  }
   878  
   879  //*
   880  //响应:包含从设备专用种子派生的公钥
   881  //@prev获取公共密钥
   882  type PublicKey struct {
   883  	Node             *HDNodeType `protobuf:"bytes,1,req,name=node" json:"node,omitempty"`
   884  	Xpub             *string     `protobuf:"bytes,2,opt,name=xpub" json:"xpub,omitempty"`
   885  	XXX_unrecognized []byte      `json:"-"`
   886  }
   887  
   888  func (m *PublicKey) Reset()                    { *m = PublicKey{} }
   889  func (m *PublicKey) String() string            { return proto.CompactTextString(m) }
   890  func (*PublicKey) ProtoMessage()               {}
   891  func (*PublicKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{20} }
   892  
   893  func (m *PublicKey) GetNode() *HDNodeType {
   894  	if m != nil {
   895  		return m.Node
   896  	}
   897  	return nil
   898  }
   899  
   900  func (m *PublicKey) GetXpub() string {
   901  	if m != nil && m.Xpub != nil {
   902  		return *m.Xpub
   903  	}
   904  	return ""
   905  }
   906  
   907  //*
   908  //请求:向设备询问与地址路径相对应的地址
   909  //@下一个密码请求
   910  //下一个地址
   911  //下一次失败
   912  type GetAddress struct {
   913  	AddressN         []uint32                  `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
   914  	CoinName         *string                   `protobuf:"bytes,2,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
   915  	ShowDisplay      *bool                     `protobuf:"varint,3,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
   916  	Multisig         *MultisigRedeemScriptType `protobuf:"bytes,4,opt,name=multisig" json:"multisig,omitempty"`
   917  	ScriptType       *InputScriptType          `protobuf:"varint,5,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"`
   918  	XXX_unrecognized []byte                    `json:"-"`
   919  }
   920  
   921  func (m *GetAddress) Reset()                    { *m = GetAddress{} }
   922  func (m *GetAddress) String() string            { return proto.CompactTextString(m) }
   923  func (*GetAddress) ProtoMessage()               {}
   924  func (*GetAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{21} }
   925  
   926  const Default_GetAddress_CoinName string = "Bitcoin"
   927  const Default_GetAddress_ScriptType InputScriptType = InputScriptType_SPENDADDRESS
   928  
   929  func (m *GetAddress) GetAddressN() []uint32 {
   930  	if m != nil {
   931  		return m.AddressN
   932  	}
   933  	return nil
   934  }
   935  
   936  func (m *GetAddress) GetCoinName() string {
   937  	if m != nil && m.CoinName != nil {
   938  		return *m.CoinName
   939  	}
   940  	return Default_GetAddress_CoinName
   941  }
   942  
   943  func (m *GetAddress) GetShowDisplay() bool {
   944  	if m != nil && m.ShowDisplay != nil {
   945  		return *m.ShowDisplay
   946  	}
   947  	return false
   948  }
   949  
   950  func (m *GetAddress) GetMultisig() *MultisigRedeemScriptType {
   951  	if m != nil {
   952  		return m.Multisig
   953  	}
   954  	return nil
   955  }
   956  
   957  func (m *GetAddress) GetScriptType() InputScriptType {
   958  	if m != nil && m.ScriptType != nil {
   959  		return *m.ScriptType
   960  	}
   961  	return Default_GetAddress_ScriptType
   962  }
   963  
   964  //*
   965  //请求:向设备询问与地址路径对应的以太坊地址
   966  //@下一个密码请求
   967  //@下一个Ethereumaddress
   968  //下一次失败
   969  type EthereumGetAddress struct {
   970  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
   971  	ShowDisplay      *bool    `protobuf:"varint,2,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
   972  	XXX_unrecognized []byte   `json:"-"`
   973  }
   974  
   975  func (m *EthereumGetAddress) Reset()                    { *m = EthereumGetAddress{} }
   976  func (m *EthereumGetAddress) String() string            { return proto.CompactTextString(m) }
   977  func (*EthereumGetAddress) ProtoMessage()               {}
   978  func (*EthereumGetAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{22} }
   979  
   980  func (m *EthereumGetAddress) GetAddressN() []uint32 {
   981  	if m != nil {
   982  		return m.AddressN
   983  	}
   984  	return nil
   985  }
   986  
   987  func (m *EthereumGetAddress) GetShowDisplay() bool {
   988  	if m != nil && m.ShowDisplay != nil {
   989  		return *m.ShowDisplay
   990  	}
   991  	return false
   992  }
   993  
   994  //*
   995  //响应:包含从设备专用种子派生的地址
   996  //@prev获取地址
   997  type Address struct {
   998  	Address          *string `protobuf:"bytes,1,req,name=address" json:"address,omitempty"`
   999  	XXX_unrecognized []byte  `json:"-"`
  1000  }
  1001  
  1002  func (m *Address) Reset()                    { *m = Address{} }
  1003  func (m *Address) String() string            { return proto.CompactTextString(m) }
  1004  func (*Address) ProtoMessage()               {}
  1005  func (*Address) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{23} }
  1006  
  1007  func (m *Address) GetAddress() string {
  1008  	if m != nil && m.Address != nil {
  1009  		return *m.Address
  1010  	}
  1011  	return ""
  1012  }
  1013  
  1014  //*
  1015  //响应:包含从设备专用种子派生的以太坊地址
  1016  //@prev以太坊详细地址
  1017  type EthereumAddress struct {
  1018  	Address          []byte `protobuf:"bytes,1,req,name=address" json:"address,omitempty"`
  1019  	XXX_unrecognized []byte `json:"-"`
  1020  }
  1021  
  1022  func (m *EthereumAddress) Reset()                    { *m = EthereumAddress{} }
  1023  func (m *EthereumAddress) String() string            { return proto.CompactTextString(m) }
  1024  func (*EthereumAddress) ProtoMessage()               {}
  1025  func (*EthereumAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{24} }
  1026  
  1027  func (m *EthereumAddress) GetAddress() []byte {
  1028  	if m != nil {
  1029  		return m.Address
  1030  	}
  1031  	return nil
  1032  }
  1033  
  1034  //*
  1035  //请求:请求设备擦除所有敏感数据和设置
  1036  //@下一步按钮请求
  1037  type WipeDevice struct {
  1038  	XXX_unrecognized []byte `json:"-"`
  1039  }
  1040  
  1041  func (m *WipeDevice) Reset()                    { *m = WipeDevice{} }
  1042  func (m *WipeDevice) String() string            { return proto.CompactTextString(m) }
  1043  func (*WipeDevice) ProtoMessage()               {}
  1044  func (*WipeDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{25} }
  1045  
  1046  //*
  1047  //请求:从计算机加载种子和相关的内部设置
  1048  //@下一步按钮请求
  1049  //下一个成功
  1050  //下一次失败
  1051  type LoadDevice struct {
  1052  	Mnemonic             *string     `protobuf:"bytes,1,opt,name=mnemonic" json:"mnemonic,omitempty"`
  1053  	Node                 *HDNodeType `protobuf:"bytes,2,opt,name=node" json:"node,omitempty"`
  1054  	Pin                  *string     `protobuf:"bytes,3,opt,name=pin" json:"pin,omitempty"`
  1055  	PassphraseProtection *bool       `protobuf:"varint,4,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
  1056  	Language             *string     `protobuf:"bytes,5,opt,name=language,def=english" json:"language,omitempty"`
  1057  	Label                *string     `protobuf:"bytes,6,opt,name=label" json:"label,omitempty"`
  1058  	SkipChecksum         *bool       `protobuf:"varint,7,opt,name=skip_checksum,json=skipChecksum" json:"skip_checksum,omitempty"`
  1059  	U2FCounter           *uint32     `protobuf:"varint,8,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
  1060  	XXX_unrecognized     []byte      `json:"-"`
  1061  }
  1062  
  1063  func (m *LoadDevice) Reset()                    { *m = LoadDevice{} }
  1064  func (m *LoadDevice) String() string            { return proto.CompactTextString(m) }
  1065  func (*LoadDevice) ProtoMessage()               {}
  1066  func (*LoadDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{26} }
  1067  
  1068  const Default_LoadDevice_Language string = "english"
  1069  
  1070  func (m *LoadDevice) GetMnemonic() string {
  1071  	if m != nil && m.Mnemonic != nil {
  1072  		return *m.Mnemonic
  1073  	}
  1074  	return ""
  1075  }
  1076  
  1077  func (m *LoadDevice) GetNode() *HDNodeType {
  1078  	if m != nil {
  1079  		return m.Node
  1080  	}
  1081  	return nil
  1082  }
  1083  
  1084  func (m *LoadDevice) GetPin() string {
  1085  	if m != nil && m.Pin != nil {
  1086  		return *m.Pin
  1087  	}
  1088  	return ""
  1089  }
  1090  
  1091  func (m *LoadDevice) GetPassphraseProtection() bool {
  1092  	if m != nil && m.PassphraseProtection != nil {
  1093  		return *m.PassphraseProtection
  1094  	}
  1095  	return false
  1096  }
  1097  
  1098  func (m *LoadDevice) GetLanguage() string {
  1099  	if m != nil && m.Language != nil {
  1100  		return *m.Language
  1101  	}
  1102  	return Default_LoadDevice_Language
  1103  }
  1104  
  1105  func (m *LoadDevice) GetLabel() string {
  1106  	if m != nil && m.Label != nil {
  1107  		return *m.Label
  1108  	}
  1109  	return ""
  1110  }
  1111  
  1112  func (m *LoadDevice) GetSkipChecksum() bool {
  1113  	if m != nil && m.SkipChecksum != nil {
  1114  		return *m.SkipChecksum
  1115  	}
  1116  	return false
  1117  }
  1118  
  1119  func (m *LoadDevice) GetU2FCounter() uint32 {
  1120  	if m != nil && m.U2FCounter != nil {
  1121  		return *m.U2FCounter
  1122  	}
  1123  	return 0
  1124  }
  1125  
  1126  //*
  1127  //请求:要求设备进行涉及用户交互的初始化
  1128  //@下一项请求
  1129  //下一次失败
  1130  type ResetDevice struct {
  1131  	DisplayRandom        *bool   `protobuf:"varint,1,opt,name=display_random,json=displayRandom" json:"display_random,omitempty"`
  1132  	Strength             *uint32 `protobuf:"varint,2,opt,name=strength,def=256" json:"strength,omitempty"`
  1133  	PassphraseProtection *bool   `protobuf:"varint,3,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
  1134  	PinProtection        *bool   `protobuf:"varint,4,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
  1135  	Language             *string `protobuf:"bytes,5,opt,name=language,def=english" json:"language,omitempty"`
  1136  	Label                *string `protobuf:"bytes,6,opt,name=label" json:"label,omitempty"`
  1137  	U2FCounter           *uint32 `protobuf:"varint,7,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
  1138  	SkipBackup           *bool   `protobuf:"varint,8,opt,name=skip_backup,json=skipBackup" json:"skip_backup,omitempty"`
  1139  	XXX_unrecognized     []byte  `json:"-"`
  1140  }
  1141  
  1142  func (m *ResetDevice) Reset()                    { *m = ResetDevice{} }
  1143  func (m *ResetDevice) String() string            { return proto.CompactTextString(m) }
  1144  func (*ResetDevice) ProtoMessage()               {}
  1145  func (*ResetDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{27} }
  1146  
  1147  const Default_ResetDevice_Strength uint32 = 256
  1148  const Default_ResetDevice_Language string = "english"
  1149  
  1150  func (m *ResetDevice) GetDisplayRandom() bool {
  1151  	if m != nil && m.DisplayRandom != nil {
  1152  		return *m.DisplayRandom
  1153  	}
  1154  	return false
  1155  }
  1156  
  1157  func (m *ResetDevice) GetStrength() uint32 {
  1158  	if m != nil && m.Strength != nil {
  1159  		return *m.Strength
  1160  	}
  1161  	return Default_ResetDevice_Strength
  1162  }
  1163  
  1164  func (m *ResetDevice) GetPassphraseProtection() bool {
  1165  	if m != nil && m.PassphraseProtection != nil {
  1166  		return *m.PassphraseProtection
  1167  	}
  1168  	return false
  1169  }
  1170  
  1171  func (m *ResetDevice) GetPinProtection() bool {
  1172  	if m != nil && m.PinProtection != nil {
  1173  		return *m.PinProtection
  1174  	}
  1175  	return false
  1176  }
  1177  
  1178  func (m *ResetDevice) GetLanguage() string {
  1179  	if m != nil && m.Language != nil {
  1180  		return *m.Language
  1181  	}
  1182  	return Default_ResetDevice_Language
  1183  }
  1184  
  1185  func (m *ResetDevice) GetLabel() string {
  1186  	if m != nil && m.Label != nil {
  1187  		return *m.Label
  1188  	}
  1189  	return ""
  1190  }
  1191  
  1192  func (m *ResetDevice) GetU2FCounter() uint32 {
  1193  	if m != nil && m.U2FCounter != nil {
  1194  		return *m.U2FCounter
  1195  	}
  1196  	return 0
  1197  }
  1198  
  1199  func (m *ResetDevice) GetSkipBackup() bool {
  1200  	if m != nil && m.SkipBackup != nil {
  1201  		return *m.SkipBackup
  1202  	}
  1203  	return false
  1204  }
  1205  
  1206  //*
  1207  //请求:如果未使用resetdevice备份设备种子,请执行备份
  1208  //@下一步按钮请求
  1209  type BackupDevice struct {
  1210  	XXX_unrecognized []byte `json:"-"`
  1211  }
  1212  
  1213  func (m *BackupDevice) Reset()                    { *m = BackupDevice{} }
  1214  func (m *BackupDevice) String() string            { return proto.CompactTextString(m) }
  1215  func (*BackupDevice) ProtoMessage()               {}
  1216  func (*BackupDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{28} }
  1217  
  1218  //*
  1219  //回答:要求主机提供额外的熵
  1220  //@上一个重置设备
  1221  //@下一个entropack
  1222  type EntropyRequest struct {
  1223  	XXX_unrecognized []byte `json:"-"`
  1224  }
  1225  
  1226  func (m *EntropyRequest) Reset()                    { *m = EntropyRequest{} }
  1227  func (m *EntropyRequest) String() string            { return proto.CompactTextString(m) }
  1228  func (*EntropyRequest) ProtoMessage()               {}
  1229  func (*EntropyRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{29} }
  1230  
  1231  //*
  1232  //请求:为种子生成函数提供额外的熵
  1233  //@prev entropy请求
  1234  //@下一步按钮请求
  1235  type EntropyAck struct {
  1236  	Entropy          []byte `protobuf:"bytes,1,opt,name=entropy" json:"entropy,omitempty"`
  1237  	XXX_unrecognized []byte `json:"-"`
  1238  }
  1239  
  1240  func (m *EntropyAck) Reset()                    { *m = EntropyAck{} }
  1241  func (m *EntropyAck) String() string            { return proto.CompactTextString(m) }
  1242  func (*EntropyAck) ProtoMessage()               {}
  1243  func (*EntropyAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{30} }
  1244  
  1245  func (m *EntropyAck) GetEntropy() []byte {
  1246  	if m != nil {
  1247  		return m.Entropy
  1248  	}
  1249  	return nil
  1250  }
  1251  
  1252  //*
  1253  //请求:启动恢复工作流,要求用户输入特定的助记词
  1254  //用于安全恢复设备,即使在不受信任的计算机上。
  1255  //@下一个字请求
  1256  type RecoveryDevice struct {
  1257  	WordCount            *uint32 `protobuf:"varint,1,opt,name=word_count,json=wordCount" json:"word_count,omitempty"`
  1258  	PassphraseProtection *bool   `protobuf:"varint,2,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
  1259  	PinProtection        *bool   `protobuf:"varint,3,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
  1260  	Language             *string `protobuf:"bytes,4,opt,name=language,def=english" json:"language,omitempty"`
  1261  	Label                *string `protobuf:"bytes,5,opt,name=label" json:"label,omitempty"`
  1262  	EnforceWordlist      *bool   `protobuf:"varint,6,opt,name=enforce_wordlist,json=enforceWordlist" json:"enforce_wordlist,omitempty"`
  1263  //7为未使用的回收方法保留
  1264  	Type             *uint32 `protobuf:"varint,8,opt,name=type" json:"type,omitempty"`
  1265  	U2FCounter       *uint32 `protobuf:"varint,9,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
  1266  	DryRun           *bool   `protobuf:"varint,10,opt,name=dry_run,json=dryRun" json:"dry_run,omitempty"`
  1267  	XXX_unrecognized []byte  `json:"-"`
  1268  }
  1269  
  1270  func (m *RecoveryDevice) Reset()                    { *m = RecoveryDevice{} }
  1271  func (m *RecoveryDevice) String() string            { return proto.CompactTextString(m) }
  1272  func (*RecoveryDevice) ProtoMessage()               {}
  1273  func (*RecoveryDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{31} }
  1274  
  1275  const Default_RecoveryDevice_Language string = "english"
  1276  
  1277  func (m *RecoveryDevice) GetWordCount() uint32 {
  1278  	if m != nil && m.WordCount != nil {
  1279  		return *m.WordCount
  1280  	}
  1281  	return 0
  1282  }
  1283  
  1284  func (m *RecoveryDevice) GetPassphraseProtection() bool {
  1285  	if m != nil && m.PassphraseProtection != nil {
  1286  		return *m.PassphraseProtection
  1287  	}
  1288  	return false
  1289  }
  1290  
  1291  func (m *RecoveryDevice) GetPinProtection() bool {
  1292  	if m != nil && m.PinProtection != nil {
  1293  		return *m.PinProtection
  1294  	}
  1295  	return false
  1296  }
  1297  
  1298  func (m *RecoveryDevice) GetLanguage() string {
  1299  	if m != nil && m.Language != nil {
  1300  		return *m.Language
  1301  	}
  1302  	return Default_RecoveryDevice_Language
  1303  }
  1304  
  1305  func (m *RecoveryDevice) GetLabel() string {
  1306  	if m != nil && m.Label != nil {
  1307  		return *m.Label
  1308  	}
  1309  	return ""
  1310  }
  1311  
  1312  func (m *RecoveryDevice) GetEnforceWordlist() bool {
  1313  	if m != nil && m.EnforceWordlist != nil {
  1314  		return *m.EnforceWordlist
  1315  	}
  1316  	return false
  1317  }
  1318  
  1319  func (m *RecoveryDevice) GetType() uint32 {
  1320  	if m != nil && m.Type != nil {
  1321  		return *m.Type
  1322  	}
  1323  	return 0
  1324  }
  1325  
  1326  func (m *RecoveryDevice) GetU2FCounter() uint32 {
  1327  	if m != nil && m.U2FCounter != nil {
  1328  		return *m.U2FCounter
  1329  	}
  1330  	return 0
  1331  }
  1332  
  1333  func (m *RecoveryDevice) GetDryRun() bool {
  1334  	if m != nil && m.DryRun != nil {
  1335  		return *m.DryRun
  1336  	}
  1337  	return false
  1338  }
  1339  
  1340  //*
  1341  //响应:设备正在等待用户输入助记符的单词
  1342  //它的位置只显示在设备的内部显示器上。
  1343  //@预防恢复设备
  1344  //
  1345  type WordRequest struct {
  1346  	Type             *WordRequestType `protobuf:"varint,1,opt,name=type,enum=WordRequestType" json:"type,omitempty"`
  1347  	XXX_unrecognized []byte           `json:"-"`
  1348  }
  1349  
  1350  func (m *WordRequest) Reset()                    { *m = WordRequest{} }
  1351  func (m *WordRequest) String() string            { return proto.CompactTextString(m) }
  1352  func (*WordRequest) ProtoMessage()               {}
  1353  func (*WordRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{32} }
  1354  
  1355  func (m *WordRequest) GetType() WordRequestType {
  1356  	if m != nil && m.Type != nil {
  1357  		return *m.Type
  1358  	}
  1359  	return WordRequestType_WordRequestType_Plain
  1360  }
  1361  
  1362  //*
  1363  //请求:计算机用助记符中的单词答复
  1364  //@上一个字请求
  1365  //@下一个字请求
  1366  //下一个成功
  1367  //下一次失败
  1368  type WordAck struct {
  1369  	Word             *string `protobuf:"bytes,1,req,name=word" json:"word,omitempty"`
  1370  	XXX_unrecognized []byte  `json:"-"`
  1371  }
  1372  
  1373  func (m *WordAck) Reset()                    { *m = WordAck{} }
  1374  func (m *WordAck) String() string            { return proto.CompactTextString(m) }
  1375  func (*WordAck) ProtoMessage()               {}
  1376  func (*WordAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{33} }
  1377  
  1378  func (m *WordAck) GetWord() string {
  1379  	if m != nil && m.Word != nil {
  1380  		return *m.Word
  1381  	}
  1382  	return ""
  1383  }
  1384  
  1385  //*
  1386  //请求:要求设备签署消息
  1387  //@下一个消息签名
  1388  //下一次失败
  1389  type SignMessage struct {
  1390  	AddressN         []uint32         `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  1391  	Message          []byte           `protobuf:"bytes,2,req,name=message" json:"message,omitempty"`
  1392  	CoinName         *string          `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1393  	ScriptType       *InputScriptType `protobuf:"varint,4,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"`
  1394  	XXX_unrecognized []byte           `json:"-"`
  1395  }
  1396  
  1397  func (m *SignMessage) Reset()                    { *m = SignMessage{} }
  1398  func (m *SignMessage) String() string            { return proto.CompactTextString(m) }
  1399  func (*SignMessage) ProtoMessage()               {}
  1400  func (*SignMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{34} }
  1401  
  1402  const Default_SignMessage_CoinName string = "Bitcoin"
  1403  const Default_SignMessage_ScriptType InputScriptType = InputScriptType_SPENDADDRESS
  1404  
  1405  func (m *SignMessage) GetAddressN() []uint32 {
  1406  	if m != nil {
  1407  		return m.AddressN
  1408  	}
  1409  	return nil
  1410  }
  1411  
  1412  func (m *SignMessage) GetMessage() []byte {
  1413  	if m != nil {
  1414  		return m.Message
  1415  	}
  1416  	return nil
  1417  }
  1418  
  1419  func (m *SignMessage) GetCoinName() string {
  1420  	if m != nil && m.CoinName != nil {
  1421  		return *m.CoinName
  1422  	}
  1423  	return Default_SignMessage_CoinName
  1424  }
  1425  
  1426  func (m *SignMessage) GetScriptType() InputScriptType {
  1427  	if m != nil && m.ScriptType != nil {
  1428  		return *m.ScriptType
  1429  	}
  1430  	return Default_SignMessage_ScriptType
  1431  }
  1432  
  1433  //*
  1434  //请求:请求设备验证消息
  1435  //下一个成功
  1436  //下一次失败
  1437  type VerifyMessage struct {
  1438  	Address          *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  1439  	Signature        []byte  `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
  1440  	Message          []byte  `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
  1441  	CoinName         *string `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1442  	XXX_unrecognized []byte  `json:"-"`
  1443  }
  1444  
  1445  func (m *VerifyMessage) Reset()                    { *m = VerifyMessage{} }
  1446  func (m *VerifyMessage) String() string            { return proto.CompactTextString(m) }
  1447  func (*VerifyMessage) ProtoMessage()               {}
  1448  func (*VerifyMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{35} }
  1449  
  1450  const Default_VerifyMessage_CoinName string = "Bitcoin"
  1451  
  1452  func (m *VerifyMessage) GetAddress() string {
  1453  	if m != nil && m.Address != nil {
  1454  		return *m.Address
  1455  	}
  1456  	return ""
  1457  }
  1458  
  1459  func (m *VerifyMessage) GetSignature() []byte {
  1460  	if m != nil {
  1461  		return m.Signature
  1462  	}
  1463  	return nil
  1464  }
  1465  
  1466  func (m *VerifyMessage) GetMessage() []byte {
  1467  	if m != nil {
  1468  		return m.Message
  1469  	}
  1470  	return nil
  1471  }
  1472  
  1473  func (m *VerifyMessage) GetCoinName() string {
  1474  	if m != nil && m.CoinName != nil {
  1475  		return *m.CoinName
  1476  	}
  1477  	return Default_VerifyMessage_CoinName
  1478  }
  1479  
  1480  //*
  1481  //响应:签名消息
  1482  //@上一条标志消息
  1483  type MessageSignature struct {
  1484  	Address          *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  1485  	Signature        []byte  `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
  1486  	XXX_unrecognized []byte  `json:"-"`
  1487  }
  1488  
  1489  func (m *MessageSignature) Reset()                    { *m = MessageSignature{} }
  1490  func (m *MessageSignature) String() string            { return proto.CompactTextString(m) }
  1491  func (*MessageSignature) ProtoMessage()               {}
  1492  func (*MessageSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{36} }
  1493  
  1494  func (m *MessageSignature) GetAddress() string {
  1495  	if m != nil && m.Address != nil {
  1496  		return *m.Address
  1497  	}
  1498  	return ""
  1499  }
  1500  
  1501  func (m *MessageSignature) GetSignature() []byte {
  1502  	if m != nil {
  1503  		return m.Signature
  1504  	}
  1505  	return nil
  1506  }
  1507  
  1508  //*
  1509  //请求:要求设备加密消息
  1510  //@下一个加密邮件
  1511  //下一次失败
  1512  type EncryptMessage struct {
  1513  	Pubkey           []byte   `protobuf:"bytes,1,opt,name=pubkey" json:"pubkey,omitempty"`
  1514  	Message          []byte   `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
  1515  	DisplayOnly      *bool    `protobuf:"varint,3,opt,name=display_only,json=displayOnly" json:"display_only,omitempty"`
  1516  	AddressN         []uint32 `protobuf:"varint,4,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  1517  	CoinName         *string  `protobuf:"bytes,5,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1518  	XXX_unrecognized []byte   `json:"-"`
  1519  }
  1520  
  1521  func (m *EncryptMessage) Reset()                    { *m = EncryptMessage{} }
  1522  func (m *EncryptMessage) String() string            { return proto.CompactTextString(m) }
  1523  func (*EncryptMessage) ProtoMessage()               {}
  1524  func (*EncryptMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{37} }
  1525  
  1526  const Default_EncryptMessage_CoinName string = "Bitcoin"
  1527  
  1528  func (m *EncryptMessage) GetPubkey() []byte {
  1529  	if m != nil {
  1530  		return m.Pubkey
  1531  	}
  1532  	return nil
  1533  }
  1534  
  1535  func (m *EncryptMessage) GetMessage() []byte {
  1536  	if m != nil {
  1537  		return m.Message
  1538  	}
  1539  	return nil
  1540  }
  1541  
  1542  func (m *EncryptMessage) GetDisplayOnly() bool {
  1543  	if m != nil && m.DisplayOnly != nil {
  1544  		return *m.DisplayOnly
  1545  	}
  1546  	return false
  1547  }
  1548  
  1549  func (m *EncryptMessage) GetAddressN() []uint32 {
  1550  	if m != nil {
  1551  		return m.AddressN
  1552  	}
  1553  	return nil
  1554  }
  1555  
  1556  func (m *EncryptMessage) GetCoinName() string {
  1557  	if m != nil && m.CoinName != nil {
  1558  		return *m.CoinName
  1559  	}
  1560  	return Default_EncryptMessage_CoinName
  1561  }
  1562  
  1563  //*
  1564  //响应:加密邮件
  1565  //@prev加密消息
  1566  type EncryptedMessage struct {
  1567  	Nonce            []byte `protobuf:"bytes,1,opt,name=nonce" json:"nonce,omitempty"`
  1568  	Message          []byte `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
  1569  	Hmac             []byte `protobuf:"bytes,3,opt,name=hmac" json:"hmac,omitempty"`
  1570  	XXX_unrecognized []byte `json:"-"`
  1571  }
  1572  
  1573  func (m *EncryptedMessage) Reset()                    { *m = EncryptedMessage{} }
  1574  func (m *EncryptedMessage) String() string            { return proto.CompactTextString(m) }
  1575  func (*EncryptedMessage) ProtoMessage()               {}
  1576  func (*EncryptedMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{38} }
  1577  
  1578  func (m *EncryptedMessage) GetNonce() []byte {
  1579  	if m != nil {
  1580  		return m.Nonce
  1581  	}
  1582  	return nil
  1583  }
  1584  
  1585  func (m *EncryptedMessage) GetMessage() []byte {
  1586  	if m != nil {
  1587  		return m.Message
  1588  	}
  1589  	return nil
  1590  }
  1591  
  1592  func (m *EncryptedMessage) GetHmac() []byte {
  1593  	if m != nil {
  1594  		return m.Hmac
  1595  	}
  1596  	return nil
  1597  }
  1598  
  1599  //*
  1600  //请求:要求设备解密消息
  1601  //下一个成功
  1602  //下一次失败
  1603  type DecryptMessage struct {
  1604  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  1605  	Nonce            []byte   `protobuf:"bytes,2,opt,name=nonce" json:"nonce,omitempty"`
  1606  	Message          []byte   `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
  1607  	Hmac             []byte   `protobuf:"bytes,4,opt,name=hmac" json:"hmac,omitempty"`
  1608  	XXX_unrecognized []byte   `json:"-"`
  1609  }
  1610  
  1611  func (m *DecryptMessage) Reset()                    { *m = DecryptMessage{} }
  1612  func (m *DecryptMessage) String() string            { return proto.CompactTextString(m) }
  1613  func (*DecryptMessage) ProtoMessage()               {}
  1614  func (*DecryptMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{39} }
  1615  
  1616  func (m *DecryptMessage) GetAddressN() []uint32 {
  1617  	if m != nil {
  1618  		return m.AddressN
  1619  	}
  1620  	return nil
  1621  }
  1622  
  1623  func (m *DecryptMessage) GetNonce() []byte {
  1624  	if m != nil {
  1625  		return m.Nonce
  1626  	}
  1627  	return nil
  1628  }
  1629  
  1630  func (m *DecryptMessage) GetMessage() []byte {
  1631  	if m != nil {
  1632  		return m.Message
  1633  	}
  1634  	return nil
  1635  }
  1636  
  1637  func (m *DecryptMessage) GetHmac() []byte {
  1638  	if m != nil {
  1639  		return m.Hmac
  1640  	}
  1641  	return nil
  1642  }
  1643  
  1644  //*
  1645  //响应:解密的消息
  1646  //@prev解密邮件
  1647  type DecryptedMessage struct {
  1648  	Message          []byte  `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
  1649  	Address          *string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
  1650  	XXX_unrecognized []byte  `json:"-"`
  1651  }
  1652  
  1653  func (m *DecryptedMessage) Reset()                    { *m = DecryptedMessage{} }
  1654  func (m *DecryptedMessage) String() string            { return proto.CompactTextString(m) }
  1655  func (*DecryptedMessage) ProtoMessage()               {}
  1656  func (*DecryptedMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{40} }
  1657  
  1658  func (m *DecryptedMessage) GetMessage() []byte {
  1659  	if m != nil {
  1660  		return m.Message
  1661  	}
  1662  	return nil
  1663  }
  1664  
  1665  func (m *DecryptedMessage) GetAddress() string {
  1666  	if m != nil && m.Address != nil {
  1667  		return *m.Address
  1668  	}
  1669  	return ""
  1670  }
  1671  
  1672  //*
  1673  //请求:要求设备加密或解密给定密钥的值
  1674  //@下一个密码键值
  1675  //下一次失败
  1676  type CipherKeyValue struct {
  1677  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  1678  	Key              *string  `protobuf:"bytes,2,opt,name=key" json:"key,omitempty"`
  1679  	Value            []byte   `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
  1680  	Encrypt          *bool    `protobuf:"varint,4,opt,name=encrypt" json:"encrypt,omitempty"`
  1681  	AskOnEncrypt     *bool    `protobuf:"varint,5,opt,name=ask_on_encrypt,json=askOnEncrypt" json:"ask_on_encrypt,omitempty"`
  1682  	AskOnDecrypt     *bool    `protobuf:"varint,6,opt,name=ask_on_decrypt,json=askOnDecrypt" json:"ask_on_decrypt,omitempty"`
  1683  	Iv               []byte   `protobuf:"bytes,7,opt,name=iv" json:"iv,omitempty"`
  1684  	XXX_unrecognized []byte   `json:"-"`
  1685  }
  1686  
  1687  func (m *CipherKeyValue) Reset()                    { *m = CipherKeyValue{} }
  1688  func (m *CipherKeyValue) String() string            { return proto.CompactTextString(m) }
  1689  func (*CipherKeyValue) ProtoMessage()               {}
  1690  func (*CipherKeyValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{41} }
  1691  
  1692  func (m *CipherKeyValue) GetAddressN() []uint32 {
  1693  	if m != nil {
  1694  		return m.AddressN
  1695  	}
  1696  	return nil
  1697  }
  1698  
  1699  func (m *CipherKeyValue) GetKey() string {
  1700  	if m != nil && m.Key != nil {
  1701  		return *m.Key
  1702  	}
  1703  	return ""
  1704  }
  1705  
  1706  func (m *CipherKeyValue) GetValue() []byte {
  1707  	if m != nil {
  1708  		return m.Value
  1709  	}
  1710  	return nil
  1711  }
  1712  
  1713  func (m *CipherKeyValue) GetEncrypt() bool {
  1714  	if m != nil && m.Encrypt != nil {
  1715  		return *m.Encrypt
  1716  	}
  1717  	return false
  1718  }
  1719  
  1720  func (m *CipherKeyValue) GetAskOnEncrypt() bool {
  1721  	if m != nil && m.AskOnEncrypt != nil {
  1722  		return *m.AskOnEncrypt
  1723  	}
  1724  	return false
  1725  }
  1726  
  1727  func (m *CipherKeyValue) GetAskOnDecrypt() bool {
  1728  	if m != nil && m.AskOnDecrypt != nil {
  1729  		return *m.AskOnDecrypt
  1730  	}
  1731  	return false
  1732  }
  1733  
  1734  func (m *CipherKeyValue) GetIv() []byte {
  1735  	if m != nil {
  1736  		return m.Iv
  1737  	}
  1738  	return nil
  1739  }
  1740  
  1741  //*
  1742  //响应:返回加密/解密值
  1743  //@上一个密码键值
  1744  type CipheredKeyValue struct {
  1745  	Value            []byte `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
  1746  	XXX_unrecognized []byte `json:"-"`
  1747  }
  1748  
  1749  func (m *CipheredKeyValue) Reset()                    { *m = CipheredKeyValue{} }
  1750  func (m *CipheredKeyValue) String() string            { return proto.CompactTextString(m) }
  1751  func (*CipheredKeyValue) ProtoMessage()               {}
  1752  func (*CipheredKeyValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{42} }
  1753  
  1754  func (m *CipheredKeyValue) GetValue() []byte {
  1755  	if m != nil {
  1756  		return m.Value
  1757  	}
  1758  	return nil
  1759  }
  1760  
  1761  //*
  1762  //请求:事务的估计大小
  1763  //它的行为与signtx完全相同,这意味着它可以使用txrequest请求
  1764  //此调用是非阻塞的(除了可能的密码请求以解锁种子)
  1765  //“下一个TXSIZE”
  1766  //下一次失败
  1767  type EstimateTxSize struct {
  1768  	OutputsCount     *uint32 `protobuf:"varint,1,req,name=outputs_count,json=outputsCount" json:"outputs_count,omitempty"`
  1769  	InputsCount      *uint32 `protobuf:"varint,2,req,name=inputs_count,json=inputsCount" json:"inputs_count,omitempty"`
  1770  	CoinName         *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1771  	XXX_unrecognized []byte  `json:"-"`
  1772  }
  1773  
  1774  func (m *EstimateTxSize) Reset()                    { *m = EstimateTxSize{} }
  1775  func (m *EstimateTxSize) String() string            { return proto.CompactTextString(m) }
  1776  func (*EstimateTxSize) ProtoMessage()               {}
  1777  func (*EstimateTxSize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{43} }
  1778  
  1779  const Default_EstimateTxSize_CoinName string = "Bitcoin"
  1780  
  1781  func (m *EstimateTxSize) GetOutputsCount() uint32 {
  1782  	if m != nil && m.OutputsCount != nil {
  1783  		return *m.OutputsCount
  1784  	}
  1785  	return 0
  1786  }
  1787  
  1788  func (m *EstimateTxSize) GetInputsCount() uint32 {
  1789  	if m != nil && m.InputsCount != nil {
  1790  		return *m.InputsCount
  1791  	}
  1792  	return 0
  1793  }
  1794  
  1795  func (m *EstimateTxSize) GetCoinName() string {
  1796  	if m != nil && m.CoinName != nil {
  1797  		return *m.CoinName
  1798  	}
  1799  	return Default_EstimateTxSize_CoinName
  1800  }
  1801  
  1802  //*
  1803  //响应:事务的估计大小
  1804  //@上一个估计X大小
  1805  type TxSize struct {
  1806  	TxSize           *uint32 `protobuf:"varint,1,opt,name=tx_size,json=txSize" json:"tx_size,omitempty"`
  1807  	XXX_unrecognized []byte  `json:"-"`
  1808  }
  1809  
  1810  func (m *TxSize) Reset()                    { *m = TxSize{} }
  1811  func (m *TxSize) String() string            { return proto.CompactTextString(m) }
  1812  func (*TxSize) ProtoMessage()               {}
  1813  func (*TxSize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{44} }
  1814  
  1815  func (m *TxSize) GetTxSize() uint32 {
  1816  	if m != nil && m.TxSize != nil {
  1817  		return *m.TxSize
  1818  	}
  1819  	return 0
  1820  }
  1821  
  1822  //*
  1823  //请求:请求设备签署事务
  1824  //@下一个密码请求
  1825  //@下一个PinMatrixRequest
  1826  //下一个TXT请求
  1827  //下一次失败
  1828  type SignTx struct {
  1829  	OutputsCount     *uint32 `protobuf:"varint,1,req,name=outputs_count,json=outputsCount" json:"outputs_count,omitempty"`
  1830  	InputsCount      *uint32 `protobuf:"varint,2,req,name=inputs_count,json=inputsCount" json:"inputs_count,omitempty"`
  1831  	CoinName         *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1832  	Version          *uint32 `protobuf:"varint,4,opt,name=version,def=1" json:"version,omitempty"`
  1833  	LockTime         *uint32 `protobuf:"varint,5,opt,name=lock_time,json=lockTime,def=0" json:"lock_time,omitempty"`
  1834  	XXX_unrecognized []byte  `json:"-"`
  1835  }
  1836  
  1837  func (m *SignTx) Reset()                    { *m = SignTx{} }
  1838  func (m *SignTx) String() string            { return proto.CompactTextString(m) }
  1839  func (*SignTx) ProtoMessage()               {}
  1840  func (*SignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{45} }
  1841  
  1842  const Default_SignTx_CoinName string = "Bitcoin"
  1843  const Default_SignTx_Version uint32 = 1
  1844  const Default_SignTx_LockTime uint32 = 0
  1845  
  1846  func (m *SignTx) GetOutputsCount() uint32 {
  1847  	if m != nil && m.OutputsCount != nil {
  1848  		return *m.OutputsCount
  1849  	}
  1850  	return 0
  1851  }
  1852  
  1853  func (m *SignTx) GetInputsCount() uint32 {
  1854  	if m != nil && m.InputsCount != nil {
  1855  		return *m.InputsCount
  1856  	}
  1857  	return 0
  1858  }
  1859  
  1860  func (m *SignTx) GetCoinName() string {
  1861  	if m != nil && m.CoinName != nil {
  1862  		return *m.CoinName
  1863  	}
  1864  	return Default_SignTx_CoinName
  1865  }
  1866  
  1867  func (m *SignTx) GetVersion() uint32 {
  1868  	if m != nil && m.Version != nil {
  1869  		return *m.Version
  1870  	}
  1871  	return Default_SignTx_Version
  1872  }
  1873  
  1874  func (m *SignTx) GetLockTime() uint32 {
  1875  	if m != nil && m.LockTime != nil {
  1876  		return *m.LockTime
  1877  	}
  1878  	return Default_SignTx_LockTime
  1879  }
  1880  
  1881  //*
  1882  //请求:简化事务签名
  1883  //此方法不支持流式处理,因此在输入和输出数量上存在硬件限制。
  1884  //如果成功,将使用txrequest消息返回结果。
  1885  //@下一个密码请求
  1886  //@下一个PinMatrixRequest
  1887  //下一个TXT请求
  1888  //下一次失败
  1889  type SimpleSignTx struct {
  1890  	Inputs           []*TxInputType     `protobuf:"bytes,1,rep,name=inputs" json:"inputs,omitempty"`
  1891  	Outputs          []*TxOutputType    `protobuf:"bytes,2,rep,name=outputs" json:"outputs,omitempty"`
  1892  	Transactions     []*TransactionType `protobuf:"bytes,3,rep,name=transactions" json:"transactions,omitempty"`
  1893  	CoinName         *string            `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1894  	Version          *uint32            `protobuf:"varint,5,opt,name=version,def=1" json:"version,omitempty"`
  1895  	LockTime         *uint32            `protobuf:"varint,6,opt,name=lock_time,json=lockTime,def=0" json:"lock_time,omitempty"`
  1896  	XXX_unrecognized []byte             `json:"-"`
  1897  }
  1898  
  1899  func (m *SimpleSignTx) Reset()                    { *m = SimpleSignTx{} }
  1900  func (m *SimpleSignTx) String() string            { return proto.CompactTextString(m) }
  1901  func (*SimpleSignTx) ProtoMessage()               {}
  1902  func (*SimpleSignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{46} }
  1903  
  1904  const Default_SimpleSignTx_CoinName string = "Bitcoin"
  1905  const Default_SimpleSignTx_Version uint32 = 1
  1906  const Default_SimpleSignTx_LockTime uint32 = 0
  1907  
  1908  func (m *SimpleSignTx) GetInputs() []*TxInputType {
  1909  	if m != nil {
  1910  		return m.Inputs
  1911  	}
  1912  	return nil
  1913  }
  1914  
  1915  func (m *SimpleSignTx) GetOutputs() []*TxOutputType {
  1916  	if m != nil {
  1917  		return m.Outputs
  1918  	}
  1919  	return nil
  1920  }
  1921  
  1922  func (m *SimpleSignTx) GetTransactions() []*TransactionType {
  1923  	if m != nil {
  1924  		return m.Transactions
  1925  	}
  1926  	return nil
  1927  }
  1928  
  1929  func (m *SimpleSignTx) GetCoinName() string {
  1930  	if m != nil && m.CoinName != nil {
  1931  		return *m.CoinName
  1932  	}
  1933  	return Default_SimpleSignTx_CoinName
  1934  }
  1935  
  1936  func (m *SimpleSignTx) GetVersion() uint32 {
  1937  	if m != nil && m.Version != nil {
  1938  		return *m.Version
  1939  	}
  1940  	return Default_SimpleSignTx_Version
  1941  }
  1942  
  1943  func (m *SimpleSignTx) GetLockTime() uint32 {
  1944  	if m != nil && m.LockTime != nil {
  1945  		return *m.LockTime
  1946  	}
  1947  	return Default_SimpleSignTx_LockTime
  1948  }
  1949  
  1950  //*
  1951  //响应:设备请求签署事务的信息或返回最后一个结果
  1952  //如果设置了请求_索引,则设备等待txack消息(根据请求_类型填写字段)
  1953  //如果设置了签名索引,“签名”包含签名索引输入的签名输入
  1954  //预兆信号
  1955  //@上一个simplesigntx
  1956  //普雷克
  1957  type TxRequest struct {
  1958  	RequestType      *RequestType             `protobuf:"varint,1,opt,name=request_type,json=requestType,enum=RequestType" json:"request_type,omitempty"`
  1959  	Details          *TxRequestDetailsType    `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"`
  1960  	Serialized       *TxRequestSerializedType `protobuf:"bytes,3,opt,name=serialized" json:"serialized,omitempty"`
  1961  	XXX_unrecognized []byte                   `json:"-"`
  1962  }
  1963  
  1964  func (m *TxRequest) Reset()                    { *m = TxRequest{} }
  1965  func (m *TxRequest) String() string            { return proto.CompactTextString(m) }
  1966  func (*TxRequest) ProtoMessage()               {}
  1967  func (*TxRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{47} }
  1968  
  1969  func (m *TxRequest) GetRequestType() RequestType {
  1970  	if m != nil && m.RequestType != nil {
  1971  		return *m.RequestType
  1972  	}
  1973  	return RequestType_TXINPUT
  1974  }
  1975  
  1976  func (m *TxRequest) GetDetails() *TxRequestDetailsType {
  1977  	if m != nil {
  1978  		return m.Details
  1979  	}
  1980  	return nil
  1981  }
  1982  
  1983  func (m *TxRequest) GetSerialized() *TxRequestSerializedType {
  1984  	if m != nil {
  1985  		return m.Serialized
  1986  	}
  1987  	return nil
  1988  }
  1989  
  1990  //*
  1991  //请求:报告的事务数据
  1992  //@前置请求
  1993  //下一个TXT请求
  1994  type TxAck struct {
  1995  	Tx               *TransactionType `protobuf:"bytes,1,opt,name=tx" json:"tx,omitempty"`
  1996  	XXX_unrecognized []byte           `json:"-"`
  1997  }
  1998  
  1999  func (m *TxAck) Reset()                    { *m = TxAck{} }
  2000  func (m *TxAck) String() string            { return proto.CompactTextString(m) }
  2001  func (*TxAck) ProtoMessage()               {}
  2002  func (*TxAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{48} }
  2003  
  2004  func (m *TxAck) GetTx() *TransactionType {
  2005  	if m != nil {
  2006  		return m.Tx
  2007  	}
  2008  	return nil
  2009  }
  2010  
  2011  //*
  2012  //请求:请求设备签署事务
  2013  //从协议的角度来看,所有字段都是可选的。如果缺少,则每个字段默认为值“0”。
  2014  //注意:第一个最多1024字节的数据必须作为此消息的一部分进行传输。
  2015  //@下一个密码请求
  2016  //@下一个PinMatrixRequest
  2017  //@下一个以太坊MtxRequest
  2018  //下一次失败
  2019  type EthereumSignTx struct {
  2020  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  2021  	Nonce            []byte   `protobuf:"bytes,2,opt,name=nonce" json:"nonce,omitempty"`
  2022  	GasPrice         []byte   `protobuf:"bytes,3,opt,name=gas_price,json=gasPrice" json:"gas_price,omitempty"`
  2023  	GasLimit         []byte   `protobuf:"bytes,4,opt,name=gas_limit,json=gasLimit" json:"gas_limit,omitempty"`
  2024  	To               []byte   `protobuf:"bytes,5,opt,name=to" json:"to,omitempty"`
  2025  	Value            []byte   `protobuf:"bytes,6,opt,name=value" json:"value,omitempty"`
  2026  	DataInitialChunk []byte   `protobuf:"bytes,7,opt,name=data_initial_chunk,json=dataInitialChunk" json:"data_initial_chunk,omitempty"`
  2027  	DataLength       *uint32  `protobuf:"varint,8,opt,name=data_length,json=dataLength" json:"data_length,omitempty"`
  2028  	ChainId          *uint32  `protobuf:"varint,9,opt,name=chain_id,json=chainId" json:"chain_id,omitempty"`
  2029  	XXX_unrecognized []byte   `json:"-"`
  2030  }
  2031  
  2032  func (m *EthereumSignTx) Reset()                    { *m = EthereumSignTx{} }
  2033  func (m *EthereumSignTx) String() string            { return proto.CompactTextString(m) }
  2034  func (*EthereumSignTx) ProtoMessage()               {}
  2035  func (*EthereumSignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{49} }
  2036  
  2037  func (m *EthereumSignTx) GetAddressN() []uint32 {
  2038  	if m != nil {
  2039  		return m.AddressN
  2040  	}
  2041  	return nil
  2042  }
  2043  
  2044  func (m *EthereumSignTx) GetNonce() []byte {
  2045  	if m != nil {
  2046  		return m.Nonce
  2047  	}
  2048  	return nil
  2049  }
  2050  
  2051  func (m *EthereumSignTx) GetGasPrice() []byte {
  2052  	if m != nil {
  2053  		return m.GasPrice
  2054  	}
  2055  	return nil
  2056  }
  2057  
  2058  func (m *EthereumSignTx) GetGasLimit() []byte {
  2059  	if m != nil {
  2060  		return m.GasLimit
  2061  	}
  2062  	return nil
  2063  }
  2064  
  2065  func (m *EthereumSignTx) GetTo() []byte {
  2066  	if m != nil {
  2067  		return m.To
  2068  	}
  2069  	return nil
  2070  }
  2071  
  2072  func (m *EthereumSignTx) GetValue() []byte {
  2073  	if m != nil {
  2074  		return m.Value
  2075  	}
  2076  	return nil
  2077  }
  2078  
  2079  func (m *EthereumSignTx) GetDataInitialChunk() []byte {
  2080  	if m != nil {
  2081  		return m.DataInitialChunk
  2082  	}
  2083  	return nil
  2084  }
  2085  
  2086  func (m *EthereumSignTx) GetDataLength() uint32 {
  2087  	if m != nil && m.DataLength != nil {
  2088  		return *m.DataLength
  2089  	}
  2090  	return 0
  2091  }
  2092  
  2093  func (m *EthereumSignTx) GetChainId() uint32 {
  2094  	if m != nil && m.ChainId != nil {
  2095  		return *m.ChainId
  2096  	}
  2097  	return 0
  2098  }
  2099  
  2100  //*
  2101  //响应:设备从事务负载请求更多数据,或返回签名。
  2102  //如果设置了数据长度,设备将等待更多字节的有效负载。
  2103  //否则,签名字段包含计算出的事务签名。所有三个字段都将显示。
  2104  //@prev以太坊GNTX
  2105  //@下一个以太坊
  2106  type EthereumTxRequest struct {
  2107  	DataLength       *uint32 `protobuf:"varint,1,opt,name=data_length,json=dataLength" json:"data_length,omitempty"`
  2108  	SignatureV       *uint32 `protobuf:"varint,2,opt,name=signature_v,json=signatureV" json:"signature_v,omitempty"`
  2109  	SignatureR       []byte  `protobuf:"bytes,3,opt,name=signature_r,json=signatureR" json:"signature_r,omitempty"`
  2110  	SignatureS       []byte  `protobuf:"bytes,4,opt,name=signature_s,json=signatureS" json:"signature_s,omitempty"`
  2111  	XXX_unrecognized []byte  `json:"-"`
  2112  }
  2113  
  2114  func (m *EthereumTxRequest) Reset()                    { *m = EthereumTxRequest{} }
  2115  func (m *EthereumTxRequest) String() string            { return proto.CompactTextString(m) }
  2116  func (*EthereumTxRequest) ProtoMessage()               {}
  2117  func (*EthereumTxRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{50} }
  2118  
  2119  func (m *EthereumTxRequest) GetDataLength() uint32 {
  2120  	if m != nil && m.DataLength != nil {
  2121  		return *m.DataLength
  2122  	}
  2123  	return 0
  2124  }
  2125  
  2126  func (m *EthereumTxRequest) GetSignatureV() uint32 {
  2127  	if m != nil && m.SignatureV != nil {
  2128  		return *m.SignatureV
  2129  	}
  2130  	return 0
  2131  }
  2132  
  2133  func (m *EthereumTxRequest) GetSignatureR() []byte {
  2134  	if m != nil {
  2135  		return m.SignatureR
  2136  	}
  2137  	return nil
  2138  }
  2139  
  2140  func (m *EthereumTxRequest) GetSignatureS() []byte {
  2141  	if m != nil {
  2142  		return m.SignatureS
  2143  	}
  2144  	return nil
  2145  }
  2146  
  2147  //*
  2148  //请求:事务有效负载数据。
  2149  //@上一个以太坊请求
  2150  //@下一个以太坊MtxRequest
  2151  type EthereumTxAck struct {
  2152  	DataChunk        []byte `protobuf:"bytes,1,opt,name=data_chunk,json=dataChunk" json:"data_chunk,omitempty"`
  2153  	XXX_unrecognized []byte `json:"-"`
  2154  }
  2155  
  2156  func (m *EthereumTxAck) Reset()                    { *m = EthereumTxAck{} }
  2157  func (m *EthereumTxAck) String() string            { return proto.CompactTextString(m) }
  2158  func (*EthereumTxAck) ProtoMessage()               {}
  2159  func (*EthereumTxAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{51} }
  2160  
  2161  func (m *EthereumTxAck) GetDataChunk() []byte {
  2162  	if m != nil {
  2163  		return m.DataChunk
  2164  	}
  2165  	return nil
  2166  }
  2167  
  2168  //*
  2169  //请求:要求设备签署消息
  2170  //@下一个以太坊推荐签名
  2171  //下一次失败
  2172  type EthereumSignMessage struct {
  2173  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  2174  	Message          []byte   `protobuf:"bytes,2,req,name=message" json:"message,omitempty"`
  2175  	XXX_unrecognized []byte   `json:"-"`
  2176  }
  2177  
  2178  func (m *EthereumSignMessage) Reset()                    { *m = EthereumSignMessage{} }
  2179  func (m *EthereumSignMessage) String() string            { return proto.CompactTextString(m) }
  2180  func (*EthereumSignMessage) ProtoMessage()               {}
  2181  func (*EthereumSignMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{52} }
  2182  
  2183  func (m *EthereumSignMessage) GetAddressN() []uint32 {
  2184  	if m != nil {
  2185  		return m.AddressN
  2186  	}
  2187  	return nil
  2188  }
  2189  
  2190  func (m *EthereumSignMessage) GetMessage() []byte {
  2191  	if m != nil {
  2192  		return m.Message
  2193  	}
  2194  	return nil
  2195  }
  2196  
  2197  //*
  2198  //请求:请求设备验证消息
  2199  //下一个成功
  2200  //下一次失败
  2201  type EthereumVerifyMessage struct {
  2202  	Address          []byte `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  2203  	Signature        []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
  2204  	Message          []byte `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
  2205  	XXX_unrecognized []byte `json:"-"`
  2206  }
  2207  
  2208  func (m *EthereumVerifyMessage) Reset()                    { *m = EthereumVerifyMessage{} }
  2209  func (m *EthereumVerifyMessage) String() string            { return proto.CompactTextString(m) }
  2210  func (*EthereumVerifyMessage) ProtoMessage()               {}
  2211  func (*EthereumVerifyMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{53} }
  2212  
  2213  func (m *EthereumVerifyMessage) GetAddress() []byte {
  2214  	if m != nil {
  2215  		return m.Address
  2216  	}
  2217  	return nil
  2218  }
  2219  
  2220  func (m *EthereumVerifyMessage) GetSignature() []byte {
  2221  	if m != nil {
  2222  		return m.Signature
  2223  	}
  2224  	return nil
  2225  }
  2226  
  2227  func (m *EthereumVerifyMessage) GetMessage() []byte {
  2228  	if m != nil {
  2229  		return m.Message
  2230  	}
  2231  	return nil
  2232  }
  2233  
  2234  //*
  2235  //响应:签名消息
  2236  //@prev以太坊消息
  2237  type EthereumMessageSignature struct {
  2238  	Address          []byte `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  2239  	Signature        []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
  2240  	XXX_unrecognized []byte `json:"-"`
  2241  }
  2242  
  2243  func (m *EthereumMessageSignature) Reset()                    { *m = EthereumMessageSignature{} }
  2244  func (m *EthereumMessageSignature) String() string            { return proto.CompactTextString(m) }
  2245  func (*EthereumMessageSignature) ProtoMessage()               {}
  2246  func (*EthereumMessageSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{54} }
  2247  
  2248  func (m *EthereumMessageSignature) GetAddress() []byte {
  2249  	if m != nil {
  2250  		return m.Address
  2251  	}
  2252  	return nil
  2253  }
  2254  
  2255  func (m *EthereumMessageSignature) GetSignature() []byte {
  2256  	if m != nil {
  2257  		return m.Signature
  2258  	}
  2259  	return nil
  2260  }
  2261  
  2262  //*
  2263  //请求:请求设备签名身份
  2264  //@下一个签名的实体
  2265  //下一次失败
  2266  type SignIdentity struct {
  2267  	Identity         *IdentityType `protobuf:"bytes,1,opt,name=identity" json:"identity,omitempty"`
  2268  	ChallengeHidden  []byte        `protobuf:"bytes,2,opt,name=challenge_hidden,json=challengeHidden" json:"challenge_hidden,omitempty"`
  2269  	ChallengeVisual  *string       `protobuf:"bytes,3,opt,name=challenge_visual,json=challengeVisual" json:"challenge_visual,omitempty"`
  2270  	EcdsaCurveName   *string       `protobuf:"bytes,4,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
  2271  	XXX_unrecognized []byte        `json:"-"`
  2272  }
  2273  
  2274  func (m *SignIdentity) Reset()                    { *m = SignIdentity{} }
  2275  func (m *SignIdentity) String() string            { return proto.CompactTextString(m) }
  2276  func (*SignIdentity) ProtoMessage()               {}
  2277  func (*SignIdentity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{55} }
  2278  
  2279  func (m *SignIdentity) GetIdentity() *IdentityType {
  2280  	if m != nil {
  2281  		return m.Identity
  2282  	}
  2283  	return nil
  2284  }
  2285  
  2286  func (m *SignIdentity) GetChallengeHidden() []byte {
  2287  	if m != nil {
  2288  		return m.ChallengeHidden
  2289  	}
  2290  	return nil
  2291  }
  2292  
  2293  func (m *SignIdentity) GetChallengeVisual() string {
  2294  	if m != nil && m.ChallengeVisual != nil {
  2295  		return *m.ChallengeVisual
  2296  	}
  2297  	return ""
  2298  }
  2299  
  2300  func (m *SignIdentity) GetEcdsaCurveName() string {
  2301  	if m != nil && m.EcdsaCurveName != nil {
  2302  		return *m.EcdsaCurveName
  2303  	}
  2304  	return ""
  2305  }
  2306  
  2307  //*
  2308  //响应:设备提供签名标识
  2309  //@上一个签名标识
  2310  type SignedIdentity struct {
  2311  	Address          *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  2312  	PublicKey        []byte  `protobuf:"bytes,2,opt,name=public_key,json=publicKey" json:"public_key,omitempty"`
  2313  	Signature        []byte  `protobuf:"bytes,3,opt,name=signature" json:"signature,omitempty"`
  2314  	XXX_unrecognized []byte  `json:"-"`
  2315  }
  2316  
  2317  func (m *SignedIdentity) Reset()                    { *m = SignedIdentity{} }
  2318  func (m *SignedIdentity) String() string            { return proto.CompactTextString(m) }
  2319  func (*SignedIdentity) ProtoMessage()               {}
  2320  func (*SignedIdentity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{56} }
  2321  
  2322  func (m *SignedIdentity) GetAddress() string {
  2323  	if m != nil && m.Address != nil {
  2324  		return *m.Address
  2325  	}
  2326  	return ""
  2327  }
  2328  
  2329  func (m *SignedIdentity) GetPublicKey() []byte {
  2330  	if m != nil {
  2331  		return m.PublicKey
  2332  	}
  2333  	return nil
  2334  }
  2335  
  2336  func (m *SignedIdentity) GetSignature() []byte {
  2337  	if m != nil {
  2338  		return m.Signature
  2339  	}
  2340  	return nil
  2341  }
  2342  
  2343  //*
  2344  //请求:请求设备生成ECDH会话密钥
  2345  //@下一个ecdhsessionkey
  2346  //下一次失败
  2347  type GetECDHSessionKey struct {
  2348  	Identity         *IdentityType `protobuf:"bytes,1,opt,name=identity" json:"identity,omitempty"`
  2349  	PeerPublicKey    []byte        `protobuf:"bytes,2,opt,name=peer_public_key,json=peerPublicKey" json:"peer_public_key,omitempty"`
  2350  	EcdsaCurveName   *string       `protobuf:"bytes,3,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
  2351  	XXX_unrecognized []byte        `json:"-"`
  2352  }
  2353  
  2354  func (m *GetECDHSessionKey) Reset()                    { *m = GetECDHSessionKey{} }
  2355  func (m *GetECDHSessionKey) String() string            { return proto.CompactTextString(m) }
  2356  func (*GetECDHSessionKey) ProtoMessage()               {}
  2357  func (*GetECDHSessionKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{57} }
  2358  
  2359  func (m *GetECDHSessionKey) GetIdentity() *IdentityType {
  2360  	if m != nil {
  2361  		return m.Identity
  2362  	}
  2363  	return nil
  2364  }
  2365  
  2366  func (m *GetECDHSessionKey) GetPeerPublicKey() []byte {
  2367  	if m != nil {
  2368  		return m.PeerPublicKey
  2369  	}
  2370  	return nil
  2371  }
  2372  
  2373  func (m *GetECDHSessionKey) GetEcdsaCurveName() string {
  2374  	if m != nil && m.EcdsaCurveName != nil {
  2375  		return *m.EcdsaCurveName
  2376  	}
  2377  	return ""
  2378  }
  2379  
  2380  //*
  2381  //响应:设备提供ECDH会话密钥
  2382  //@prev getecdhsessionkey
  2383  type ECDHSessionKey struct {
  2384  	SessionKey       []byte `protobuf:"bytes,1,opt,name=session_key,json=sessionKey" json:"session_key,omitempty"`
  2385  	XXX_unrecognized []byte `json:"-"`
  2386  }
  2387  
  2388  func (m *ECDHSessionKey) Reset()                    { *m = ECDHSessionKey{} }
  2389  func (m *ECDHSessionKey) String() string            { return proto.CompactTextString(m) }
  2390  func (*ECDHSessionKey) ProtoMessage()               {}
  2391  func (*ECDHSessionKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{58} }
  2392  
  2393  func (m *ECDHSessionKey) GetSessionKey() []byte {
  2394  	if m != nil {
  2395  		return m.SessionKey
  2396  	}
  2397  	return nil
  2398  }
  2399  
  2400  //*
  2401  //请求:设置U2F计数器
  2402  //下一个成功
  2403  type SetU2FCounter struct {
  2404  	U2FCounter       *uint32 `protobuf:"varint,1,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
  2405  	XXX_unrecognized []byte  `json:"-"`
  2406  }
  2407  
  2408  func (m *SetU2FCounter) Reset()                    { *m = SetU2FCounter{} }
  2409  func (m *SetU2FCounter) String() string            { return proto.CompactTextString(m) }
  2410  func (*SetU2FCounter) ProtoMessage()               {}
  2411  func (*SetU2FCounter) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{59} }
  2412  
  2413  func (m *SetU2FCounter) GetU2FCounter() uint32 {
  2414  	if m != nil && m.U2FCounter != nil {
  2415  		return *m.U2FCounter
  2416  	}
  2417  	return 0
  2418  }
  2419  
  2420  //*
  2421  //请求:要求设备删除其固件(以便可以通过firmwareupload进行更换)
  2422  //下一个成功
  2423  //@下一个固件请求
  2424  //下一次失败
  2425  type FirmwareErase struct {
  2426  	Length           *uint32 `protobuf:"varint,1,opt,name=length" json:"length,omitempty"`
  2427  	XXX_unrecognized []byte  `json:"-"`
  2428  }
  2429  
  2430  func (m *FirmwareErase) Reset()                    { *m = FirmwareErase{} }
  2431  func (m *FirmwareErase) String() string            { return proto.CompactTextString(m) }
  2432  func (*FirmwareErase) ProtoMessage()               {}
  2433  func (*FirmwareErase) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{60} }
  2434  
  2435  func (m *FirmwareErase) GetLength() uint32 {
  2436  	if m != nil && m.Length != nil {
  2437  		return *m.Length
  2438  	}
  2439  	return 0
  2440  }
  2441  
  2442  //*
  2443  //响应:请求固件块
  2444  //@下一个firmwareupload
  2445  type FirmwareRequest struct {
  2446  	Offset           *uint32 `protobuf:"varint,1,opt,name=offset" json:"offset,omitempty"`
  2447  	Length           *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"`
  2448  	XXX_unrecognized []byte  `json:"-"`
  2449  }
  2450  
  2451  func (m *FirmwareRequest) Reset()                    { *m = FirmwareRequest{} }
  2452  func (m *FirmwareRequest) String() string            { return proto.CompactTextString(m) }
  2453  func (*FirmwareRequest) ProtoMessage()               {}
  2454  func (*FirmwareRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{61} }
  2455  
  2456  func (m *FirmwareRequest) GetOffset() uint32 {
  2457  	if m != nil && m.Offset != nil {
  2458  		return *m.Offset
  2459  	}
  2460  	return 0
  2461  }
  2462  
  2463  func (m *FirmwareRequest) GetLength() uint32 {
  2464  	if m != nil && m.Length != nil {
  2465  		return *m.Length
  2466  	}
  2467  	return 0
  2468  }
  2469  
  2470  //*
  2471  //请求:以二进制形式向设备发送固件
  2472  //下一个成功
  2473  //下一次失败
  2474  type FirmwareUpload struct {
  2475  	Payload          []byte `protobuf:"bytes,1,req,name=payload" json:"payload,omitempty"`
  2476  	Hash             []byte `protobuf:"bytes,2,opt,name=hash" json:"hash,omitempty"`
  2477  	XXX_unrecognized []byte `json:"-"`
  2478  }
  2479  
  2480  func (m *FirmwareUpload) Reset()                    { *m = FirmwareUpload{} }
  2481  func (m *FirmwareUpload) String() string            { return proto.CompactTextString(m) }
  2482  func (*FirmwareUpload) ProtoMessage()               {}
  2483  func (*FirmwareUpload) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{62} }
  2484  
  2485  func (m *FirmwareUpload) GetPayload() []byte {
  2486  	if m != nil {
  2487  		return m.Payload
  2488  	}
  2489  	return nil
  2490  }
  2491  
  2492  func (m *FirmwareUpload) GetHash() []byte {
  2493  	if m != nil {
  2494  		return m.Hash
  2495  	}
  2496  	return nil
  2497  }
  2498  
  2499  //*
  2500  //请求:执行设备自检
  2501  //下一个成功
  2502  //下一次失败
  2503  type SelfTest struct {
  2504  	Payload          []byte `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"`
  2505  	XXX_unrecognized []byte `json:"-"`
  2506  }
  2507  
  2508  func (m *SelfTest) Reset()                    { *m = SelfTest{} }
  2509  func (m *SelfTest) String() string            { return proto.CompactTextString(m) }
  2510  func (*SelfTest) ProtoMessage()               {}
  2511  func (*SelfTest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{63} }
  2512  
  2513  func (m *SelfTest) GetPayload() []byte {
  2514  	if m != nil {
  2515  		return m.Payload
  2516  	}
  2517  	return nil
  2518  }
  2519  
  2520  //*
  2521  //请求:“按下”设备上的按钮
  2522  //下一个成功
  2523  type DebugLinkDecision struct {
  2524  	YesNo            *bool  `protobuf:"varint,1,req,name=yes_no,json=yesNo" json:"yes_no,omitempty"`
  2525  	XXX_unrecognized []byte `json:"-"`
  2526  }
  2527  
  2528  func (m *DebugLinkDecision) Reset()                    { *m = DebugLinkDecision{} }
  2529  func (m *DebugLinkDecision) String() string            { return proto.CompactTextString(m) }
  2530  func (*DebugLinkDecision) ProtoMessage()               {}
  2531  func (*DebugLinkDecision) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{64} }
  2532  
  2533  func (m *DebugLinkDecision) GetYesNo() bool {
  2534  	if m != nil && m.YesNo != nil {
  2535  		return *m.YesNo
  2536  	}
  2537  	return false
  2538  }
  2539  
  2540  //*
  2541  //请求:计算机请求设备状态
  2542  //@下一个debuglinkstate
  2543  type DebugLinkGetState struct {
  2544  	XXX_unrecognized []byte `json:"-"`
  2545  }
  2546  
  2547  func (m *DebugLinkGetState) Reset()                    { *m = DebugLinkGetState{} }
  2548  func (m *DebugLinkGetState) String() string            { return proto.CompactTextString(m) }
  2549  func (*DebugLinkGetState) ProtoMessage()               {}
  2550  func (*DebugLinkGetState) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{65} }
  2551  
  2552  //*
  2553  //响应:设备当前状态
  2554  //@prev调试获取状态
  2555  type DebugLinkState struct {
  2556  	Layout               []byte      `protobuf:"bytes,1,opt,name=layout" json:"layout,omitempty"`
  2557  	Pin                  *string     `protobuf:"bytes,2,opt,name=pin" json:"pin,omitempty"`
  2558  	Matrix               *string     `protobuf:"bytes,3,opt,name=matrix" json:"matrix,omitempty"`
  2559  	Mnemonic             *string     `protobuf:"bytes,4,opt,name=mnemonic" json:"mnemonic,omitempty"`
  2560  	Node                 *HDNodeType `protobuf:"bytes,5,opt,name=node" json:"node,omitempty"`
  2561  	PassphraseProtection *bool       `protobuf:"varint,6,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
  2562  	ResetWord            *string     `protobuf:"bytes,7,opt,name=reset_word,json=resetWord" json:"reset_word,omitempty"`
  2563  	ResetEntropy         []byte      `protobuf:"bytes,8,opt,name=reset_entropy,json=resetEntropy" json:"reset_entropy,omitempty"`
  2564  	RecoveryFakeWord     *string     `protobuf:"bytes,9,opt,name=recovery_fake_word,json=recoveryFakeWord" json:"recovery_fake_word,omitempty"`
  2565  	RecoveryWordPos      *uint32     `protobuf:"varint,10,opt,name=recovery_word_pos,json=recoveryWordPos" json:"recovery_word_pos,omitempty"`
  2566  	XXX_unrecognized     []byte      `json:"-"`
  2567  }
  2568  
  2569  func (m *DebugLinkState) Reset()                    { *m = DebugLinkState{} }
  2570  func (m *DebugLinkState) String() string            { return proto.CompactTextString(m) }
  2571  func (*DebugLinkState) ProtoMessage()               {}
  2572  func (*DebugLinkState) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{66} }
  2573  
  2574  func (m *DebugLinkState) GetLayout() []byte {
  2575  	if m != nil {
  2576  		return m.Layout
  2577  	}
  2578  	return nil
  2579  }
  2580  
  2581  func (m *DebugLinkState) GetPin() string {
  2582  	if m != nil && m.Pin != nil {
  2583  		return *m.Pin
  2584  	}
  2585  	return ""
  2586  }
  2587  
  2588  func (m *DebugLinkState) GetMatrix() string {
  2589  	if m != nil && m.Matrix != nil {
  2590  		return *m.Matrix
  2591  	}
  2592  	return ""
  2593  }
  2594  
  2595  func (m *DebugLinkState) GetMnemonic() string {
  2596  	if m != nil && m.Mnemonic != nil {
  2597  		return *m.Mnemonic
  2598  	}
  2599  	return ""
  2600  }
  2601  
  2602  func (m *DebugLinkState) GetNode() *HDNodeType {
  2603  	if m != nil {
  2604  		return m.Node
  2605  	}
  2606  	return nil
  2607  }
  2608  
  2609  func (m *DebugLinkState) GetPassphraseProtection() bool {
  2610  	if m != nil && m.PassphraseProtection != nil {
  2611  		return *m.PassphraseProtection
  2612  	}
  2613  	return false
  2614  }
  2615  
  2616  func (m *DebugLinkState) GetResetWord() string {
  2617  	if m != nil && m.ResetWord != nil {
  2618  		return *m.ResetWord
  2619  	}
  2620  	return ""
  2621  }
  2622  
  2623  func (m *DebugLinkState) GetResetEntropy() []byte {
  2624  	if m != nil {
  2625  		return m.ResetEntropy
  2626  	}
  2627  	return nil
  2628  }
  2629  
  2630  func (m *DebugLinkState) GetRecoveryFakeWord() string {
  2631  	if m != nil && m.RecoveryFakeWord != nil {
  2632  		return *m.RecoveryFakeWord
  2633  	}
  2634  	return ""
  2635  }
  2636  
  2637  func (m *DebugLinkState) GetRecoveryWordPos() uint32 {
  2638  	if m != nil && m.RecoveryWordPos != nil {
  2639  		return *m.RecoveryWordPos
  2640  	}
  2641  	return 0
  2642  }
  2643  
  2644  //*
  2645  //
  2646  type DebugLinkStop struct {
  2647  	XXX_unrecognized []byte `json:"-"`
  2648  }
  2649  
  2650  func (m *DebugLinkStop) Reset()                    { *m = DebugLinkStop{} }
  2651  func (m *DebugLinkStop) String() string            { return proto.CompactTextString(m) }
  2652  func (*DebugLinkStop) ProtoMessage()               {}
  2653  func (*DebugLinkStop) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{67} }
  2654  
  2655  //*
  2656  //响应:设备希望主机记录事件
  2657  type DebugLinkLog struct {
  2658  	Level            *uint32 `protobuf:"varint,1,opt,name=level" json:"level,omitempty"`
  2659  	Bucket           *string `protobuf:"bytes,2,opt,name=bucket" json:"bucket,omitempty"`
  2660  	Text             *string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"`
  2661  	XXX_unrecognized []byte  `json:"-"`
  2662  }
  2663  
  2664  func (m *DebugLinkLog) Reset()                    { *m = DebugLinkLog{} }
  2665  func (m *DebugLinkLog) String() string            { return proto.CompactTextString(m) }
  2666  func (*DebugLinkLog) ProtoMessage()               {}
  2667  func (*DebugLinkLog) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{68} }
  2668  
  2669  func (m *DebugLinkLog) GetLevel() uint32 {
  2670  	if m != nil && m.Level != nil {
  2671  		return *m.Level
  2672  	}
  2673  	return 0
  2674  }
  2675  
  2676  func (m *DebugLinkLog) GetBucket() string {
  2677  	if m != nil && m.Bucket != nil {
  2678  		return *m.Bucket
  2679  	}
  2680  	return ""
  2681  }
  2682  
  2683  func (m *DebugLinkLog) GetText() string {
  2684  	if m != nil && m.Text != nil {
  2685  		return *m.Text
  2686  	}
  2687  	return ""
  2688  }
  2689  
  2690  //*
  2691  //请求:从设备读取内存
  2692  //@下一个debuglinkmemory
  2693  type DebugLinkMemoryRead struct {
  2694  	Address          *uint32 `protobuf:"varint,1,opt,name=address" json:"address,omitempty"`
  2695  	Length           *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"`
  2696  	XXX_unrecognized []byte  `json:"-"`
  2697  }
  2698  
  2699  func (m *DebugLinkMemoryRead) Reset()                    { *m = DebugLinkMemoryRead{} }
  2700  func (m *DebugLinkMemoryRead) String() string            { return proto.CompactTextString(m) }
  2701  func (*DebugLinkMemoryRead) ProtoMessage()               {}
  2702  func (*DebugLinkMemoryRead) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{69} }
  2703  
  2704  func (m *DebugLinkMemoryRead) GetAddress() uint32 {
  2705  	if m != nil && m.Address != nil {
  2706  		return *m.Address
  2707  	}
  2708  	return 0
  2709  }
  2710  
  2711  func (m *DebugLinkMemoryRead) GetLength() uint32 {
  2712  	if m != nil && m.Length != nil {
  2713  		return *m.Length
  2714  	}
  2715  	return 0
  2716  }
  2717  
  2718  //*
  2719  //响应:设备将内存发送回
  2720  //@prev debuglinkmemoryread(上一个debuglinkmemoryread)
  2721  type DebugLinkMemory struct {
  2722  	Memory           []byte `protobuf:"bytes,1,opt,name=memory" json:"memory,omitempty"`
  2723  	XXX_unrecognized []byte `json:"-"`
  2724  }
  2725  
  2726  func (m *DebugLinkMemory) Reset()                    { *m = DebugLinkMemory{} }
  2727  func (m *DebugLinkMemory) String() string            { return proto.CompactTextString(m) }
  2728  func (*DebugLinkMemory) ProtoMessage()               {}
  2729  func (*DebugLinkMemory) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{70} }
  2730  
  2731  func (m *DebugLinkMemory) GetMemory() []byte {
  2732  	if m != nil {
  2733  		return m.Memory
  2734  	}
  2735  	return nil
  2736  }
  2737  
  2738  //*
  2739  //请求:将内存写入设备。
  2740  //警告:写入错误位置可能会导致设备无法修复地损坏。
  2741  type DebugLinkMemoryWrite struct {
  2742  	Address          *uint32 `protobuf:"varint,1,opt,name=address" json:"address,omitempty"`
  2743  	Memory           []byte  `protobuf:"bytes,2,opt,name=memory" json:"memory,omitempty"`
  2744  	Flash            *bool   `protobuf:"varint,3,opt,name=flash" json:"flash,omitempty"`
  2745  	XXX_unrecognized []byte  `json:"-"`
  2746  }
  2747  
  2748  func (m *DebugLinkMemoryWrite) Reset()                    { *m = DebugLinkMemoryWrite{} }
  2749  func (m *DebugLinkMemoryWrite) String() string            { return proto.CompactTextString(m) }
  2750  func (*DebugLinkMemoryWrite) ProtoMessage()               {}
  2751  func (*DebugLinkMemoryWrite) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{71} }
  2752  
  2753  func (m *DebugLinkMemoryWrite) GetAddress() uint32 {
  2754  	if m != nil && m.Address != nil {
  2755  		return *m.Address
  2756  	}
  2757  	return 0
  2758  }
  2759  
  2760  func (m *DebugLinkMemoryWrite) GetMemory() []byte {
  2761  	if m != nil {
  2762  		return m.Memory
  2763  	}
  2764  	return nil
  2765  }
  2766  
  2767  func (m *DebugLinkMemoryWrite) GetFlash() bool {
  2768  	if m != nil && m.Flash != nil {
  2769  		return *m.Flash
  2770  	}
  2771  	return false
  2772  }
  2773  
  2774  //*
  2775  //请求:清除设备上的闪存块
  2776  //警告:写入错误位置可能会导致设备无法修复地损坏。
  2777  type DebugLinkFlashErase struct {
  2778  	Sector           *uint32 `protobuf:"varint,1,opt,name=sector" json:"sector,omitempty"`
  2779  	XXX_unrecognized []byte  `json:"-"`
  2780  }
  2781  
  2782  func (m *DebugLinkFlashErase) Reset()                    { *m = DebugLinkFlashErase{} }
  2783  func (m *DebugLinkFlashErase) String() string            { return proto.CompactTextString(m) }
  2784  func (*DebugLinkFlashErase) ProtoMessage()               {}
  2785  func (*DebugLinkFlashErase) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{72} }
  2786  
  2787  func (m *DebugLinkFlashErase) GetSector() uint32 {
  2788  	if m != nil && m.Sector != nil {
  2789  		return *m.Sector
  2790  	}
  2791  	return 0
  2792  }
  2793  
  2794  func init() {
  2795  	proto.RegisterType((*Initialize)(nil), "Initialize")
  2796  	proto.RegisterType((*GetFeatures)(nil), "GetFeatures")
  2797  	proto.RegisterType((*Features)(nil), "Features")
  2798  	proto.RegisterType((*ClearSession)(nil), "ClearSession")
  2799  	proto.RegisterType((*ApplySettings)(nil), "ApplySettings")
  2800  	proto.RegisterType((*ApplyFlags)(nil), "ApplyFlags")
  2801  	proto.RegisterType((*ChangePin)(nil), "ChangePin")
  2802  	proto.RegisterType((*Ping)(nil), "Ping")
  2803  	proto.RegisterType((*Success)(nil), "Success")
  2804  	proto.RegisterType((*Failure)(nil), "Failure")
  2805  	proto.RegisterType((*ButtonRequest)(nil), "ButtonRequest")
  2806  	proto.RegisterType((*ButtonAck)(nil), "ButtonAck")
  2807  	proto.RegisterType((*PinMatrixRequest)(nil), "PinMatrixRequest")
  2808  	proto.RegisterType((*PinMatrixAck)(nil), "PinMatrixAck")
  2809  	proto.RegisterType((*Cancel)(nil), "Cancel")
  2810  	proto.RegisterType((*PassphraseRequest)(nil), "PassphraseRequest")
  2811  	proto.RegisterType((*PassphraseAck)(nil), "PassphraseAck")
  2812  	proto.RegisterType((*GetEntropy)(nil), "GetEntropy")
  2813  	proto.RegisterType((*Entropy)(nil), "Entropy")
  2814  	proto.RegisterType((*GetPublicKey)(nil), "GetPublicKey")
  2815  	proto.RegisterType((*PublicKey)(nil), "PublicKey")
  2816  	proto.RegisterType((*GetAddress)(nil), "GetAddress")
  2817  	proto.RegisterType((*EthereumGetAddress)(nil), "EthereumGetAddress")
  2818  	proto.RegisterType((*Address)(nil), "Address")
  2819  	proto.RegisterType((*EthereumAddress)(nil), "EthereumAddress")
  2820  	proto.RegisterType((*WipeDevice)(nil), "WipeDevice")
  2821  	proto.RegisterType((*LoadDevice)(nil), "LoadDevice")
  2822  	proto.RegisterType((*ResetDevice)(nil), "ResetDevice")
  2823  	proto.RegisterType((*BackupDevice)(nil), "BackupDevice")
  2824  	proto.RegisterType((*EntropyRequest)(nil), "EntropyRequest")
  2825  	proto.RegisterType((*EntropyAck)(nil), "EntropyAck")
  2826  	proto.RegisterType((*RecoveryDevice)(nil), "RecoveryDevice")
  2827  	proto.RegisterType((*WordRequest)(nil), "WordRequest")
  2828  	proto.RegisterType((*WordAck)(nil), "WordAck")
  2829  	proto.RegisterType((*SignMessage)(nil), "SignMessage")
  2830  	proto.RegisterType((*VerifyMessage)(nil), "VerifyMessage")
  2831  	proto.RegisterType((*MessageSignature)(nil), "MessageSignature")
  2832  	proto.RegisterType((*EncryptMessage)(nil), "EncryptMessage")
  2833  	proto.RegisterType((*EncryptedMessage)(nil), "EncryptedMessage")
  2834  	proto.RegisterType((*DecryptMessage)(nil), "DecryptMessage")
  2835  	proto.RegisterType((*DecryptedMessage)(nil), "DecryptedMessage")
  2836  	proto.RegisterType((*CipherKeyValue)(nil), "CipherKeyValue")
  2837  	proto.RegisterType((*CipheredKeyValue)(nil), "CipheredKeyValue")
  2838  	proto.RegisterType((*EstimateTxSize)(nil), "EstimateTxSize")
  2839  	proto.RegisterType((*TxSize)(nil), "TxSize")
  2840  	proto.RegisterType((*SignTx)(nil), "SignTx")
  2841  	proto.RegisterType((*SimpleSignTx)(nil), "SimpleSignTx")
  2842  	proto.RegisterType((*TxRequest)(nil), "TxRequest")
  2843  	proto.RegisterType((*TxAck)(nil), "TxAck")
  2844  	proto.RegisterType((*EthereumSignTx)(nil), "EthereumSignTx")
  2845  	proto.RegisterType((*EthereumTxRequest)(nil), "EthereumTxRequest")
  2846  	proto.RegisterType((*EthereumTxAck)(nil), "EthereumTxAck")
  2847  	proto.RegisterType((*EthereumSignMessage)(nil), "EthereumSignMessage")
  2848  	proto.RegisterType((*EthereumVerifyMessage)(nil), "EthereumVerifyMessage")
  2849  	proto.RegisterType((*EthereumMessageSignature)(nil), "EthereumMessageSignature")
  2850  	proto.RegisterType((*SignIdentity)(nil), "SignIdentity")
  2851  	proto.RegisterType((*SignedIdentity)(nil), "SignedIdentity")
  2852  	proto.RegisterType((*GetECDHSessionKey)(nil), "GetECDHSessionKey")
  2853  	proto.RegisterType((*ECDHSessionKey)(nil), "ECDHSessionKey")
  2854  	proto.RegisterType((*SetU2FCounter)(nil), "SetU2FCounter")
  2855  	proto.RegisterType((*FirmwareErase)(nil), "FirmwareErase")
  2856  	proto.RegisterType((*FirmwareRequest)(nil), "FirmwareRequest")
  2857  	proto.RegisterType((*FirmwareUpload)(nil), "FirmwareUpload")
  2858  	proto.RegisterType((*SelfTest)(nil), "SelfTest")
  2859  	proto.RegisterType((*DebugLinkDecision)(nil), "DebugLinkDecision")
  2860  	proto.RegisterType((*DebugLinkGetState)(nil), "DebugLinkGetState")
  2861  	proto.RegisterType((*DebugLinkState)(nil), "DebugLinkState")
  2862  	proto.RegisterType((*DebugLinkStop)(nil), "DebugLinkStop")
  2863  	proto.RegisterType((*DebugLinkLog)(nil), "DebugLinkLog")
  2864  	proto.RegisterType((*DebugLinkMemoryRead)(nil), "DebugLinkMemoryRead")
  2865  	proto.RegisterType((*DebugLinkMemory)(nil), "DebugLinkMemory")
  2866  	proto.RegisterType((*DebugLinkMemoryWrite)(nil), "DebugLinkMemoryWrite")
  2867  	proto.RegisterType((*DebugLinkFlashErase)(nil), "DebugLinkFlashErase")
  2868  	proto.RegisterEnum("MessageType", MessageType_name, MessageType_value)
  2869  }
  2870  
  2871  func init() { proto.RegisterFile("messages.proto", fileDescriptor1) }
  2872  
  2873  var fileDescriptor1 = []byte{
  2874  //gzip文件描述符或协议的3424字节
  2875  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xcb, 0x6f, 0xdc, 0x46,
  2876  	0x9a, 0x5f, 0x76, 0xb7, 0xfa, 0xf1, 0x35, 0xbb, 0x55, 0xa2, 0x2d, 0xbb, 0x2d, 0x5b, 0xb6, 0x4c,
  2877  	0xc9, 0xb6, 0x64, 0x27, 0xed, 0x44, 0x79, 0x6c, 0xd6, 0xbb, 0x79, 0xc8, 0x7a, 0xd8, 0xde, 0xd8,
  2878  	0x8e, 0xc0, 0x56, 0x9c, 0xdb, 0x12, 0x14, 0x59, 0xea, 0xae, 0x55, 0x37, 0xc9, 0xf0, 0xa1, 0xa8,
  2879  	0x7d, 0xd8, 0xeb, 0xee, 0x65, 0x81, 0xec, 0x69, 0x73, 0x1a, 0xe4, 0x36, 0x19, 0x04, 0x18, 0x0c,
  2880  	0x30, 0x18, 0x60, 0x72, 0x9a, 0x3f, 0x60, 0xfe, 0x8b, 0x39, 0xce, 0x1f, 0x30, 0xe7, 0x41, 0x3d,
  2881  	0x48, 0x16, 0x29, 0xb6, 0x6c, 0x27, 0xc0, 0x5c, 0x04, 0xd6, 0x57, 0xbf, 0xfe, 0xea, 0x7b, 0xd5,
  2882  	0x57, 0x5f, 0x7d, 0x25, 0xe8, 0x4e, 0x70, 0x18, 0x5a, 0x43, 0x1c, 0xf6, 0xfd, 0xc0, 0x8b, 0xbc,
  2883  	0xa5, 0x76, 0x34, 0xf5, 0x93, 0x81, 0xae, 0x02, 0x3c, 0x71, 0x49, 0x44, 0xac, 0x31, 0x79, 0x89,
  2884  	0xf5, 0x0e, 0xb4, 0x1f, 0xe1, 0x68, 0x0f, 0x5b, 0x51, 0x1c, 0xe0, 0x50, 0xff, 0x69, 0x0e, 0x9a,
  2885  	0xc9, 0x40, 0xbb, 0x04, 0xf5, 0x13, 0xec, 0x3a, 0x5e, 0xd0, 0x53, 0x56, 0x94, 0xf5, 0x96, 0x21,
  2886  	0x46, 0xda, 0x2a, 0x74, 0x26, 0xd6, 0x7f, 0x7a, 0x81, 0x79, 0x82, 0x83, 0x90, 0x78, 0x6e, 0xaf,
  2887  	0xb2, 0xa2, 0xac, 0x77, 0x0c, 0x95, 0x11, 0x5f, 0x70, 0x1a, 0x03, 0x11, 0x57, 0x02, 0x55, 0x05,
  2888  	0x88, 0x12, 0x25, 0x90, 0x6f, 0x45, 0xf6, 0x28, 0x05, 0xd5, 0x38, 0x88, 0x11, 0x13, 0xd0, 0x1d,
  2889  	0x98, 0x3f, 0xf4, 0xbc, 0x68, 0xec, 0x59, 0x0e, 0x0e, 0xcc, 0x89, 0xe7, 0xe0, 0xde, 0xdc, 0x8a,
  2890  	0xb2, 0xde, 0x34, 0xba, 0x19, 0xf9, 0x99, 0xe7, 0x60, 0xed, 0x2a, 0xb4, 0x1c, 0x7c, 0x42, 0x6c,
  2891  	0x6c, 0x12, 0xa7, 0x57, 0x67, 0x22, 0x37, 0x39, 0xe1, 0x89, 0xa3, 0xdd, 0x82, 0xae, 0x4f, 0x5c,
  2892  	0x93, 0xda, 0x00, 0xdb, 0x11, 0x5d, 0xab, 0xc1, 0x98, 0x74, 0x7c, 0xe2, 0xee, 0xa7, 0x44, 0xed,
  2893  	0x3d, 0x58, 0xf4, 0xad, 0x30, 0xf4, 0x47, 0x81, 0x15, 0x62, 0x19, 0xdd, 0x64, 0xe8, 0x8b, 0xd9,
  2894  	0xa4, 0xf4, 0xa3, 0x25, 0x68, 0x8e, 0x2d, 0x77, 0x18, 0x5b, 0x43, 0xdc, 0x6b, 0xf1, 0x75, 0x93,
  2895  	0xb1, 0x76, 0x11, 0xe6, 0xc6, 0xd6, 0x21, 0x1e, 0xf7, 0x80, 0x4d, 0xf0, 0x81, 0x76, 0x03, 0xe6,
  2896  	0x6c, 0x8f, 0xb8, 0x61, 0xaf, 0xbd, 0x52, 0x5d, 0x6f, 0x6f, 0xb6, 0xfa, 0xdb, 0x1e, 0x71, 0x0f,
  2897  	0xa6, 0x3e, 0x36, 0x38, 0x5d, 0x5b, 0x81, 0x36, 0x49, 0xbd, 0xe4, 0xf4, 0x54, 0xb6, 0xba, 0x4c,
  2898  	0xa2, 0x8b, 0x06, 0xf8, 0x84, 0x30, 0xb3, 0x75, 0x56, 0x94, 0x75, 0xd5, 0x48, 0xc7, 0x05, 0x93,
  2899  	0x8d, 0xac, 0x70, 0xd4, 0xeb, 0x32, 0x88, 0x64, 0xb2, 0xc7, 0x56, 0x38, 0xa2, 0x4c, 0xc8, 0xc4,
  2900  	0xf7, 0x82, 0x08, 0x3b, 0xbd, 0x79, 0xb6, 0x46, 0x3a, 0xd6, 0x96, 0x01, 0xa8, 0xc5, 0x6c, 0xcb,
  2901  	0x1e, 0x61, 0xa7, 0x87, 0xd8, 0x6c, 0xcb, 0x27, 0xee, 0x36, 0x23, 0x68, 0xf7, 0x60, 0x41, 0xb2,
  2902  	0x94, 0x40, 0x2d, 0x30, 0x14, 0xca, 0x26, 0x04, 0x78, 0x03, 0xd0, 0x11, 0x09, 0x26, 0xdf, 0x58,
  2903  	0x01, 0x35, 0x2a, 0x0e, 0xb1, 0x1b, 0xf5, 0x34, 0x86, 0x9d, 0x4f, 0xe8, 0xfb, 0x9c, 0xac, 0xdd,
  2904  	0x04, 0xd5, 0xc5, 0xd8, 0x09, 0xcd, 0x43, 0xcb, 0x3e, 0x8e, 0xfd, 0xde, 0x05, 0xae, 0x3a, 0xa3,
  2905  	0x3d, 0x64, 0x24, 0x6a, 0xd3, 0xa3, 0xb1, 0x35, 0x0c, 0x7b, 0x17, 0x59, 0xb8, 0xf0, 0x81, 0xde,
  2906  	0x05, 0x75, 0x7b, 0x8c, 0xad, 0x60, 0x80, 0x43, 0x6a, 0x04, 0xfd, 0x7f, 0x14, 0xe8, 0x6c, 0xf9,
  2907  	0xfe, 0x78, 0x3a, 0xc0, 0x51, 0x44, 0xdc, 0x61, 0x98, 0xf3, 0x93, 0x32, 0xcb, 0x4f, 0x15, 0xd9,
  2908  	0x4f, 0xb7, 0xa0, 0x1b, 0xd3, 0x38, 0x48, 0xf5, 0x61, 0x61, 0xdc, 0x34, 0x3a, 0x71, 0x88, 0xf7,
  2909  	0x53, 0xa2, 0x76, 0x1d, 0x60, 0xe4, 0x4d, 0x70, 0x68, 0x07, 0x18, 0xf3, 0x20, 0x56, 0x0d, 0x89,
  2910  	0xa2, 0xeb, 0x00, 0x4c, 0x92, 0x3d, 0x2a, 0x68, 0x26, 0xbe, 0x22, 0x8b, 0xbf, 0x0a, 0xad, 0xed,
  2911  	0x91, 0xe5, 0x0e, 0xf1, 0x3e, 0x71, 0xe9, 0xd6, 0x0b, 0xf0, 0xc4, 0x3b, 0xe1, 0x72, 0x36, 0x0d,
  2912  	0x31, 0xd2, 0x7f, 0xa3, 0x40, 0x6d, 0x9f, 0xb8, 0x43, 0xad, 0x07, 0x0d, 0xb1, 0xc9, 0x85, 0x26,
  2913  	0xc9, 0x90, 0xfa, 0xe5, 0x30, 0x8e, 0x22, 0x2f, 0x17, 0xeb, 0x15, 0xee, 0x17, 0x3e, 0x21, 0x45,
  2914  	0xee, 0xd9, 0x5d, 0x51, 0x7d, 0xa3, 0x5d, 0x51, 0x9b, 0xbd, 0x2b, 0xf4, 0x55, 0x68, 0x0c, 0x62,
  2915  	0xdb, 0xc6, 0x61, 0x38, 0x5b, 0x5a, 0x7d, 0x17, 0x1a, 0x7b, 0x16, 0x19, 0xc7, 0x01, 0xd6, 0x56,
  2916  	0xa0, 0x66, 0xd3, 0xcd, 0x4d, 0x11, 0xdd, 0x4d, 0xb5, 0x2f, 0xe8, 0x6c, 0x57, 0xb0, 0x19, 0x99,
  2917  	0x4d, 0x25, 0xcf, 0xe6, 0x73, 0xe8, 0x3c, 0x64, 0xba, 0x19, 0xf8, 0xeb, 0x18, 0x87, 0x91, 0x76,
  2918  	0x3b, 0xc7, 0x4c, 0xeb, 0xe7, 0x66, 0x25, 0x96, 0x1a, 0xd4, 0x1c, 0x2b, 0xb2, 0x04, 0x3f, 0xf6,
  2919  	0xad, 0xb7, 0xa1, 0xc5, 0xe1, 0x5b, 0xf6, 0xb1, 0xfe, 0x31, 0xa0, 0x7d, 0xe2, 0x3e, 0xb3, 0xa2,
  2920  	0x80, 0x9c, 0x26, 0xcc, 0x37, 0xa0, 0x46, 0x33, 0xaa, 0x60, 0xbe, 0xd8, 0x2f, 0x02, 0x38, 0x7f,
  2921  	0x0a, 0xd1, 0x57, 0x40, 0x4d, 0x67, 0xb7, 0xec, 0x63, 0x0d, 0x41, 0xd5, 0x27, 0x6e, 0x4f, 0x59,
  2922  	0xa9, 0xac, 0xb7, 0x0c, 0xfa, 0xa9, 0x37, 0xa1, 0xbe, 0x6d, 0xb9, 0x36, 0x1e, 0xeb, 0x17, 0x60,
  2923  	0x21, 0x8b, 0x29, 0xc1, 0x4a, 0xbf, 0x0f, 0x9d, 0x8c, 0x48, 0x39, 0x5c, 0x07, 0x90, 0xc2, 0x91,
  2924  	0x33, 0x92, 0x28, 0xfa, 0x0a, 0xc0, 0x23, 0x1c, 0xed, 0xba, 0x51, 0xe0, 0xf9, 0x53, 0xaa, 0x5f,
  2925  	0x48, 0x5e, 0x72, 0x5c, 0xc7, 0x60, 0xdf, 0xd4, 0x31, 0xc9, 0x74, 0x0f, 0x1a, 0x98, 0x7f, 0x32,
  2926  	0x84, 0x6a, 0x24, 0x43, 0xfd, 0x57, 0x0a, 0xa8, 0x8f, 0x70, 0xb4, 0x1f, 0x1f, 0x8e, 0x89, 0xfd,
  2927  	0x39, 0x9e, 0xd2, 0xec, 0x6a, 0x39, 0x4e, 0x80, 0xc3, 0xd0, 0xa4, 0xf2, 0x57, 0xd7, 0x3b, 0x46,
  2928  	0x53, 0x10, 0x9e, 0x6b, 0xeb, 0x80, 0xb0, 0xed, 0x84, 0x96, 0x69, 0xc7, 0xc1, 0x09, 0x36, 0x5d,
  2929  	0x6b, 0x92, 0xb8, 0xa8, 0xcb, 0xe8, 0xdb, 0x94, 0xfc, 0xdc, 0x9a, 0x60, 0xba, 0xbd, 0xc3, 0x91,
  2930  	0xf7, 0x8d, 0xe9, 0x90, 0xd0, 0x1f, 0x5b, 0x53, 0x11, 0x6f, 0x6d, 0x4a, 0xdb, 0xe1, 0x24, 0x6d,
  2931  	0x0d, 0x5a, 0x34, 0x09, 0x72, 0x2e, 0x34, 0xc2, 0x5a, 0x0f, 0x1a, 0x0f, 0x49, 0x44, 0x69, 0x46,
  2932  	0x93, 0xfe, 0xa5, 0x8c, 0xf4, 0xcf, 0xa0, 0x95, 0x09, 0x77, 0x03, 0x6a, 0x2e, 0x77, 0x77, 0x65,
  2933  	0xbd, 0xbd, 0xd9, 0xee, 0x3f, 0xde, 0x79, 0xee, 0x39, 0x22, 0x74, 0x5c, 0xe1, 0xe7, 0x53, 0x3f,
  2934  	0x3e, 0x4c, 0xfc, 0x4c, 0xbf, 0xf5, 0xbf, 0x2a, 0xcc, 0x54, 0x5b, 0x5c, 0x89, 0xf3, 0x15, 0xcc,
  2935  	0xc9, 0x54, 0x99, 0x21, 0xd3, 0xeb, 0x28, 0xf7, 0x01, 0x34, 0x27, 0xf1, 0x38, 0x22, 0x21, 0x19,
  2936  	0x32, 0xdd, 0xda, 0x9b, 0x57, 0xfa, 0xcf, 0x04, 0xc1, 0xc0, 0x0e, 0xc6, 0x93, 0x81, 0x1d, 0x10,
  2937  	0x9f, 0xc7, 0x50, 0x0a, 0xd5, 0x3e, 0x85, 0x76, 0xc8, 0xe8, 0x26, 0x8b, 0xbc, 0x39, 0x16, 0x79,
  2938  	0xa8, 0xff, 0xc4, 0xf5, 0xe3, 0x28, 0xfb, 0xc1, 0x03, 0x75, 0xb0, 0xbf, 0xfb, 0x7c, 0x67, 0x6b,
  2939  	0x67, 0xc7, 0xd8, 0x1d, 0x0c, 0x0c, 0x08, 0xd3, 0x19, 0xfd, 0x00, 0xb4, 0xdd, 0x68, 0x84, 0x03,
  2940  	0x1c, 0x4f, 0x5e, 0x57, 0xe7, 0xa2, 0x36, 0x95, 0x33, 0xda, 0xd0, 0x50, 0x4a, 0x58, 0xf5, 0xa0,
  2941  	0x21, 0x7e, 0x29, 0x82, 0x32, 0x19, 0xea, 0xf7, 0x60, 0x3e, 0x59, 0x7a, 0x06, 0x58, 0xcd, 0xc0,
  2942  	0x2a, 0xc0, 0x57, 0xc4, 0xc7, 0x3b, 0xec, 0xdc, 0xd6, 0xff, 0xaf, 0x02, 0xf0, 0xd4, 0xb3, 0x1c,
  2943  	0x3e, 0xa4, 0x09, 0x7c, 0xe2, 0xe2, 0x89, 0xe7, 0x12, 0x3b, 0x49, 0xe0, 0xc9, 0x38, 0x0d, 0x81,
  2944  	0x0a, 0x33, 0x6a, 0x49, 0x08, 0x88, 0xad, 0x57, 0x65, 0xbf, 0xa3, 0x9f, 0x3f, 0x2b, 0xad, 0x69,
  2945  	0xab, 0xd2, 0x21, 0x32, 0xc7, 0x03, 0x01, 0xbb, 0xc3, 0x31, 0x09, 0x47, 0x65, 0xa7, 0x49, 0x5d,
  2946  	0x3e, 0x4d, 0x56, 0xa1, 0x13, 0x1e, 0x13, 0xdf, 0xb4, 0x47, 0xd8, 0x3e, 0x0e, 0xe3, 0x89, 0x28,
  2947  	0x41, 0x54, 0x4a, 0xdc, 0x16, 0x34, 0xed, 0x06, 0xb4, 0xe3, 0xcd, 0x23, 0xd3, 0xf6, 0x62, 0x37,
  2948  	0xc2, 0x01, 0xab, 0x3b, 0x3a, 0x06, 0xc4, 0x9b, 0x47, 0xdb, 0x9c, 0xa2, 0xff, 0xb6, 0x02, 0x6d,
  2949  	0x03, 0x87, 0x38, 0x12, 0x46, 0xb9, 0x05, 0x5d, 0xe1, 0x21, 0x33, 0xb0, 0x5c, 0xc7, 0x9b, 0x88,
  2950  	0x33, 0xa3, 0x23, 0xa8, 0x06, 0x23, 0x6a, 0x37, 0xa0, 0x19, 0x46, 0x01, 0x76, 0x87, 0xd1, 0x88,
  2951  	0x17, 0x6c, 0x0f, 0xaa, 0x9b, 0x1f, 0x7c, 0x68, 0xa4, 0xc4, 0xd9, 0xd6, 0xa8, 0x9e, 0x63, 0x8d,
  2952  	0xb3, 0x07, 0x48, 0xad, 0xec, 0x00, 0xf9, 0x05, 0x46, 0x2b, 0xd8, 0xa3, 0x51, 0xb4, 0x07, 0x05,
  2953  	0x30, 0xab, 0x8a, 0x7a, 0x81, 0x17, 0x6a, 0x40, 0x49, 0xbc, 0x5c, 0xa0, 0x85, 0x01, 0xff, 0x12,
  2954  	0x41, 0x85, 0xa0, 0x2b, 0xf2, 0x5f, 0x92, 0x64, 0x6f, 0x03, 0x08, 0x0a, 0xcd, 0xb0, 0xb9, 0xa4,
  2955  	0xa8, 0xc8, 0x49, 0xf1, 0x4f, 0x15, 0xe8, 0x1a, 0xd8, 0xf6, 0x4e, 0x70, 0x30, 0x15, 0xd6, 0x5f,
  2956  	0x06, 0xf8, 0xc6, 0x0b, 0x1c, 0x2e, 0x9f, 0x38, 0xd1, 0x5b, 0x94, 0xc2, 0xc4, 0x9b, 0x6d, 0xd4,
  2957  	0xca, 0x1b, 0x19, 0xb5, 0xfa, 0x2a, 0xa3, 0xd6, 0x5e, 0x69, 0xd4, 0x39, 0xd9, 0xa8, 0x1b, 0x80,
  2958  	0xb0, 0x7b, 0xe4, 0x05, 0x36, 0x36, 0xa9, 0xac, 0x63, 0x12, 0x46, 0xcc, 0xea, 0x4d, 0x63, 0x5e,
  2959  	0xd0, 0xbf, 0x12, 0x64, 0x9a, 0x39, 0x59, 0xca, 0xe1, 0x81, 0xc8, 0xbe, 0x8b, 0x3e, 0x69, 0x9d,
  2960  	0xf1, 0xc9, 0x65, 0x68, 0x38, 0xc1, 0xd4, 0x0c, 0x62, 0x97, 0xd5, 0xbd, 0x4d, 0xa3, 0xee, 0x04,
  2961  	0x53, 0x23, 0x76, 0xf5, 0xf7, 0xa0, 0x4d, 0x39, 0x27, 0x27, 0xe9, 0x5a, 0xee, 0x24, 0x45, 0x7d,
  2962  	0x69, 0x4e, 0x3a, 0x44, 0x97, 0xa1, 0x41, 0x27, 0xa8, 0x6f, 0x34, 0xa8, 0x51, 0x81, 0x45, 0x8a,
  2963  	0x61, 0xdf, 0xfa, 0x8f, 0x0a, 0xb4, 0x07, 0x64, 0xe8, 0x3e, 0x13, 0x15, 0xd0, 0xb9, 0x49, 0x2d,
  2964  	0x57, 0x43, 0xb0, 0xcc, 0x93, 0x14, 0x4e, 0xb9, 0x14, 0x5f, 0x9d, 0x95, 0xe2, 0x0b, 0x89, 0xb8,
  2965  	0xf6, 0xc6, 0x89, 0xf8, 0xbf, 0x15, 0xe8, 0xbc, 0xc0, 0x01, 0x39, 0x9a, 0x26, 0xf2, 0xe6, 0x92,
  2966  	0xa1, 0x22, 0x65, 0x4e, 0xed, 0x1a, 0xb4, 0x42, 0x32, 0x74, 0xd9, 0x7d, 0x8c, 0x45, 0x8c, 0x6a,
  2967  	0x64, 0x04, 0x59, 0x95, 0x2a, 0x8f, 0xd3, 0x52, 0x55, 0x66, 0x9e, 0xa0, 0xff, 0x0e, 0x48, 0x88,
  2968  	0x30, 0x90, 0x79, 0xfe, 0x1c, 0x59, 0xf4, 0x1f, 0x14, 0xba, 0xa9, 0xec, 0x60, 0xea, 0x47, 0x89,
  2969  	0x5a, 0x97, 0xa0, 0xee, 0xc7, 0x87, 0xc7, 0x38, 0xd9, 0x45, 0x62, 0x54, 0xac, 0xe2, 0x24, 0xb1,
  2970  	0x6f, 0x82, 0x9a, 0x64, 0x32, 0xcf, 0x1d, 0xa7, 0xc7, 0xa7, 0xa0, 0x7d, 0xe1, 0x8e, 0x0b, 0x55,
  2971  	0x48, 0xed, 0xbc, 0x43, 0x7a, 0x6e, 0x96, 0xda, 0x2f, 0x00, 0x09, 0x49, 0xb1, 0x93, 0xc8, 0x7a,
  2972  	0x11, 0xe6, 0x5c, 0xcf, 0xb5, 0xb1, 0x10, 0x95, 0x0f, 0xce, 0x91, 0x54, 0x83, 0xda, 0x68, 0x62,
  2973  	0xd9, 0xc2, 0xee, 0xec, 0x5b, 0xff, 0x1a, 0xba, 0x3b, 0x38, 0x67, 0x81, 0x73, 0x03, 0x31, 0x5d,
  2974  	0xb2, 0x32, 0x63, 0xc9, 0x6a, 0xf9, 0x92, 0x35, 0x69, 0xc9, 0x3d, 0x40, 0x62, 0xc9, 0x4c, 0x95,
  2975  	0x42, 0xad, 0x2d, 0x71, 0x90, 0x7c, 0x5b, 0xc9, 0xf9, 0x56, 0xff, 0xb3, 0x02, 0xdd, 0x6d, 0xe2,
  2976  	0x8f, 0x70, 0xf0, 0x39, 0x9e, 0xbe, 0xb0, 0xc6, 0xf1, 0x2b, 0x64, 0x47, 0x50, 0xa5, 0x7e, 0xe5,
  2977  	0x5c, 0xe8, 0x27, 0xd5, 0xe6, 0x84, 0xfe, 0x4e, 0x48, 0xcd, 0x07, 0x3c, 0x93, 0x32, 0xf9, 0xc4,
  2978  	0xb1, 0x90, 0x0c, 0xb5, 0x35, 0xe8, 0x5a, 0xe1, 0xb1, 0xe9, 0xb9, 0x66, 0x02, 0xe0, 0x77, 0x7a,
  2979  	0xd5, 0x0a, 0x8f, 0xbf, 0x70, 0x77, 0xcf, 0xa0, 0x1c, 0xae, 0xa6, 0x48, 0x52, 0x1c, 0x25, 0x54,
  2980  	0xd7, 0xba, 0x50, 0x21, 0x27, 0xec, 0x60, 0x50, 0x8d, 0x0a, 0x39, 0xd1, 0xd7, 0x01, 0x71, 0x65,
  2981  	0xb0, 0x93, 0xaa, 0x93, 0xca, 0xa7, 0x48, 0xf2, 0xe9, 0xff, 0x05, 0xdd, 0xdd, 0x30, 0x22, 0x13,
  2982  	0x2b, 0xc2, 0x07, 0xa7, 0x03, 0xf2, 0x12, 0xd3, 0x23, 0xda, 0x8b, 0x23, 0x3f, 0x8e, 0xc2, 0x34,
  2983  	0xa3, 0xd3, 0xc2, 0x59, 0x15, 0x44, 0x9e, 0xd4, 0x6f, 0x82, 0x4a, 0x5c, 0x09, 0x53, 0x61, 0x98,
  2984  	0x36, 0xa7, 0x71, 0xc8, 0x6b, 0x25, 0x13, 0xfd, 0x26, 0xd4, 0xc5, 0xba, 0x97, 0xa1, 0x11, 0x9d,
  2985  	0x9a, 0xa2, 0x54, 0xa7, 0xd9, 0xb4, 0x1e, 0xb1, 0x09, 0xfd, 0xf7, 0x0a, 0xd4, 0xe9, 0xf6, 0x3c,
  2986  	0x38, 0xfd, 0xc7, 0xca, 0xa6, 0x5d, 0x85, 0x46, 0xae, 0x2b, 0xf3, 0x40, 0x79, 0xd7, 0x48, 0x28,
  2987  	0xda, 0x75, 0x68, 0x8d, 0x3d, 0xfb, 0xd8, 0x8c, 0x88, 0xd8, 0x69, 0x9d, 0x07, 0xca, 0x3b, 0x46,
  2988  	0x93, 0xd2, 0x0e, 0xc8, 0x04, 0xeb, 0x7f, 0x53, 0x40, 0x1d, 0x90, 0x89, 0x3f, 0xc6, 0x42, 0xf6,
  2989  	0x35, 0xa8, 0x73, 0x11, 0x58, 0x2c, 0xb5, 0x37, 0xd5, 0xfe, 0xc1, 0x29, 0xcb, 0x99, 0x2c, 0xcd,
  2990  	0x8b, 0x39, 0xed, 0x0e, 0x34, 0x84, 0x32, 0xbd, 0x0a, 0x83, 0x75, 0xfa, 0x07, 0xa7, 0x5f, 0x30,
  2991  	0x0a, 0xc3, 0x25, 0xb3, 0xda, 0xfb, 0xa0, 0x46, 0x81, 0xe5, 0x86, 0x16, 0x3b, 0x09, 0xc3, 0x5e,
  2992  	0x95, 0xa1, 0x51, 0xff, 0x20, 0x23, 0xb2, 0x1f, 0xe4, 0x50, 0xaf, 0x97, 0x16, 0x65, 0xc5, 0xe7,
  2993  	0xce, 0x57, 0xbc, 0x7e, 0x56, 0xf1, 0x5f, 0x2b, 0xd0, 0x3a, 0x48, 0x2f, 0x8a, 0xf7, 0x41, 0x0d,
  2994  	0xf8, 0xa7, 0x29, 0x1d, 0x73, 0x6a, 0x5f, 0x3e, 0xe2, 0xda, 0x41, 0x36, 0xd0, 0xee, 0x43, 0xc3,
  2995  	0xc1, 0x91, 0x45, 0xc6, 0xa1, 0xa8, 0x63, 0x17, 0xfb, 0x29, 0xb7, 0x1d, 0x3e, 0xc1, 0x0d, 0x21,
  2996  	0x50, 0xda, 0x47, 0x00, 0x21, 0x0e, 0x92, 0x36, 0x51, 0x95, 0xfd, 0xa6, 0x97, 0xfd, 0x66, 0x90,
  2997  	0xce, 0xb1, 0x9f, 0x49, 0x58, 0x7d, 0x03, 0xe6, 0x0e, 0xd8, 0x95, 0x74, 0x05, 0x2a, 0xd1, 0x29,
  2998  	0x13, 0xad, 0xcc, 0x82, 0x95, 0xe8, 0x54, 0xff, 0xdf, 0x0a, 0x74, 0x93, 0x0a, 0x5e, 0xf8, 0xf3,
  2999  	0x67, 0xa4, 0xb6, 0xab, 0xd0, 0x1a, 0x5a, 0xa1, 0xe9, 0x07, 0xc4, 0x4e, 0xd2, 0x44, 0x73, 0x68,
  3000  	0x85, 0xfb, 0x74, 0x9c, 0x4c, 0x8e, 0xc9, 0x84, 0x44, 0x22, 0xc5, 0xd1, 0xc9, 0xa7, 0x74, 0x4c,
  3001  	0x37, 0x78, 0xe4, 0x31, 0x67, 0xa8, 0x46, 0x25, 0xf2, 0xb2, 0xcd, 0x5c, 0x97, 0x93, 0xcd, 0x5b,
  3002  	0xa0, 0xd1, 0xeb, 0xbb, 0x29, 0x9a, 0x64, 0xa6, 0x3d, 0x8a, 0xdd, 0x63, 0x91, 0x16, 0x10, 0x9d,
  3003  	0x11, 0x6d, 0xcf, 0x6d, 0x4a, 0xa7, 0x25, 0x0c, 0x43, 0x8f, 0x79, 0x45, 0x2c, 0xca, 0x6c, 0x4a,
  3004  	0x7a, 0xca, 0xcb, 0xe1, 0x2b, 0xd0, 0xb4, 0x47, 0x16, 0x71, 0x4d, 0xe2, 0x88, 0x02, 0xa7, 0xc1,
  3005  	0xc6, 0x4f, 0x1c, 0xfd, 0xff, 0x15, 0x58, 0x48, 0xec, 0x91, 0x39, 0xbb, 0xc0, 0x51, 0x39, 0xc3,
  3006  	0x91, 0x16, 0xaa, 0xc9, 0x81, 0x69, 0x9e, 0x88, 0xae, 0x29, 0xa4, 0xa4, 0x17, 0x79, 0x40, 0x20,
  3007  	0x6c, 0x94, 0x01, 0x8c, 0x3c, 0x20, 0x4c, 0x1a, 0x4d, 0x29, 0x69, 0xa0, 0xf7, 0xa1, 0x93, 0x09,
  3008  	0x46, 0x9d, 0xbb, 0x0c, 0x4c, 0x02, 0x61, 0x0c, 0x9e, 0xfc, 0x5a, 0x94, 0xc2, 0xac, 0xa0, 0x3f,
  3009  	0x85, 0x0b, 0xb2, 0x63, 0x7f, 0x59, 0x05, 0xa5, 0x13, 0x58, 0x4c, 0xb8, 0x9d, 0x5b, 0xe1, 0xa8,
  3010  	0xbf, 0xb8, 0xc2, 0xd1, 0x0d, 0xe8, 0x25, 0x4b, 0xbd, 0xaa, 0x86, 0x79, 0xdd, 0xd5, 0xf4, 0x9f,
  3011  	0x58, 0xd2, 0x1a, 0xba, 0x4f, 0x1c, 0xec, 0x46, 0x24, 0x9a, 0x6a, 0x1b, 0xd0, 0x24, 0xe2, 0x5b,
  3012  	0xec, 0x8f, 0x4e, 0x3f, 0x99, 0xe4, 0xf7, 0x73, 0x92, 0x41, 0x91, 0x3d, 0xb2, 0xc6, 0xd4, 0xf7,
  3013  	0xd8, 0x1c, 0x11, 0xc7, 0xc1, 0xae, 0x58, 0x60, 0x3e, 0xa5, 0x3f, 0x66, 0xe4, 0x3c, 0xf4, 0x84,
  3014  	0x84, 0xb1, 0x35, 0x16, 0x97, 0xd2, 0x0c, 0xfa, 0x82, 0x91, 0x4b, 0xdb, 0x2a, 0xb5, 0xb2, 0xb6,
  3015  	0x8a, 0x3e, 0x84, 0x2e, 0x15, 0x1d, 0x3b, 0xa9, 0xf0, 0xb3, 0x2b, 0xb9, 0x65, 0x00, 0x9f, 0x75,
  3016  	0x4e, 0xcc, 0xe4, 0x10, 0x57, 0x8d, 0x96, 0x9f, 0xf6, 0x52, 0x72, 0x46, 0xaa, 0x16, 0x8d, 0xf4,
  3017  	0xad, 0x02, 0x0b, 0x8f, 0x70, 0xb4, 0xbb, 0xbd, 0xf3, 0x58, 0x34, 0x5a, 0xe9, 0x6f, 0xde, 0xc0,
  3018  	0x52, 0xb7, 0x61, 0xde, 0xc7, 0x38, 0x30, 0xcf, 0x88, 0xd0, 0xa1, 0xe4, 0xac, 0xa5, 0x53, 0xa6,
  3019  	0x7b, 0xb5, 0x54, 0xf7, 0x77, 0xa1, 0x5b, 0x10, 0x87, 0xee, 0x13, 0x3e, 0x32, 0xb3, 0xfa, 0x13,
  3020  	0xc2, 0x14, 0xa0, 0xbf, 0x03, 0x9d, 0x01, 0x8e, 0xbe, 0xdc, 0xdc, 0x93, 0x2e, 0x91, 0xf2, 0x8d,
  3021  	0x46, 0x39, 0x73, 0xeb, 0xbe, 0x03, 0x9d, 0x3d, 0xd1, 0xa9, 0xde, 0x65, 0x3d, 0xdf, 0x4b, 0x50,
  3022  	0xcf, 0xed, 0x74, 0x31, 0xd2, 0xb7, 0x60, 0x3e, 0x01, 0x26, 0x99, 0xe1, 0x12, 0xd4, 0xbd, 0xa3,
  3023  	0xa3, 0x10, 0x27, 0xf7, 0x43, 0x31, 0x92, 0x58, 0x54, 0x72, 0x2c, 0x3e, 0x81, 0x6e, 0xc2, 0xe2,
  3024  	0x4b, 0x7f, 0xec, 0x59, 0x0e, 0x75, 0xa6, 0x6f, 0x4d, 0xe9, 0x67, 0xd2, 0x2f, 0x11, 0x43, 0x56,
  3025  	0x16, 0x5a, 0xe1, 0x48, 0xd8, 0x90, 0x7d, 0xeb, 0x6b, 0xd0, 0x1c, 0xe0, 0xf1, 0xd1, 0x01, 0x5d,
  3026  	0x3b, 0xf7, 0x4b, 0x45, 0xfa, 0xa5, 0x7e, 0x17, 0x16, 0x76, 0xf0, 0x61, 0x3c, 0x7c, 0x4a, 0xdc,
  3027  	0xe3, 0x1d, 0x6c, 0xf3, 0x97, 0x83, 0x45, 0xa8, 0x4f, 0x71, 0x68, 0xba, 0x1e, 0x5b, 0xa7, 0x69,
  3028  	0xcc, 0x4d, 0x71, 0xf8, 0xdc, 0xd3, 0x2f, 0x48, 0xd8, 0x47, 0x38, 0x1a, 0x44, 0x56, 0x84, 0xf5,
  3029  	0xbf, 0x54, 0x68, 0xc5, 0x2b, 0xa8, 0x8c, 0xc4, 0x34, 0xb2, 0xa6, 0x5e, 0x1c, 0x25, 0x35, 0x3f,
  3030  	0x1f, 0x25, 0xbd, 0x97, 0x4a, 0xd6, 0x7b, 0xb9, 0x04, 0xf5, 0x09, 0xeb, 0x8a, 0x0a, 0xa7, 0x8a,
  3031  	0x51, 0xae, 0xc5, 0x53, 0x9b, 0xd1, 0xe2, 0x99, 0x9b, 0xd5, 0xe2, 0x99, 0x79, 0xdb, 0xae, 0x9f,
  3032  	0x73, 0xdb, 0x5e, 0x06, 0x08, 0x70, 0x88, 0x23, 0x76, 0x13, 0x66, 0xe7, 0x45, 0xcb, 0x68, 0x31,
  3033  	0x0a, 0xbd, 0x74, 0xd2, 0xaa, 0x8b, 0x4f, 0x27, 0x3d, 0x81, 0x26, 0xd3, 0x4c, 0x65, 0xc4, 0xa4,
  3034  	0x8f, 0xfa, 0x16, 0x68, 0x81, 0xe8, 0x0b, 0x98, 0x47, 0xd6, 0x31, 0xbf, 0x55, 0x8b, 0xb7, 0x20,
  3035  	0x94, 0xcc, 0xec, 0x59, 0xc7, 0xec, 0x5a, 0xad, 0xdd, 0x85, 0x85, 0x14, 0xcd, 0x9a, 0x07, 0xbe,
  3036  	0x17, 0xb2, 0x7b, 0x72, 0xc7, 0x98, 0x4f, 0x26, 0x28, 0x70, 0xdf, 0x0b, 0xf5, 0x79, 0xe8, 0x48,
  3037  	0x36, 0xf6, 0x7c, 0x7d, 0x1f, 0xd4, 0x94, 0xf0, 0xd4, 0x1b, 0xb2, 0x0b, 0x3e, 0x3e, 0xc1, 0xe3,
  3038  	0xe4, 0x35, 0x81, 0x0d, 0xa8, 0x79, 0x0f, 0x63, 0xfb, 0x18, 0x47, 0xc2, 0xe6, 0x62, 0xc4, 0x6e,
  3039  	0xf3, 0xf8, 0x34, 0x12, 0x46, 0x67, 0xdf, 0xfa, 0x23, 0xb8, 0x90, 0x72, 0x7c, 0x86, 0x27, 0x5e,
  3040  	0x30, 0x35, 0x30, 0x8f, 0x39, 0x39, 0x81, 0x74, 0xb2, 0x04, 0x32, 0x2b, 0x6e, 0x37, 0x60, 0xbe,
  3041  	0xc0, 0x88, 0xb9, 0x99, 0x7d, 0x25, 0x01, 0xc1, 0x47, 0xfa, 0x7f, 0xc0, 0xc5, 0x02, 0xf4, 0xab,
  3042  	0x80, 0x44, 0xf8, 0xfc, 0x45, 0x05, 0xa7, 0x8a, 0xcc, 0x49, 0xbc, 0xa6, 0x84, 0x23, 0x71, 0x5b,
  3043  	0xe4, 0x03, 0xfd, 0x6d, 0x49, 0xa7, 0x3d, 0x4a, 0x49, 0x37, 0x6d, 0x88, 0xed, 0xc8, 0x4b, 0x76,
  3044  	0xb8, 0x18, 0xdd, 0xfd, 0x71, 0x11, 0xda, 0xe2, 0x1c, 0x61, 0x75, 0xd8, 0x0a, 0x5c, 0x92, 0x86,
  3045  	0x66, 0xf6, 0x60, 0x8a, 0xfe, 0x69, 0xa9, 0xf6, 0xed, 0x1f, 0x7a, 0x8a, 0xb6, 0x94, 0x5e, 0x9e,
  3046  	0x19, 0x62, 0x9f, 0xb8, 0x43, 0xa4, 0x88, 0xb9, 0x65, 0xb8, 0x20, 0xcf, 0x89, 0x57, 0x10, 0x54,
  3047  	0x59, 0xaa, 0x7d, 0x57, 0x32, 0x2d, 0xde, 0x39, 0x50, 0x55, 0x4c, 0xdf, 0x80, 0x45, 0x79, 0x3a,
  3048  	0x7d, 0x14, 0x42, 0x35, 0xc1, 0xbe, 0x20, 0x5c, 0xd6, 0x2e, 0x45, 0x73, 0x02, 0x71, 0x07, 0xae,
  3049  	0xe4, 0x56, 0x90, 0x13, 0x17, 0xaa, 0x2f, 0x35, 0x29, 0xe8, 0x8f, 0x14, 0xb8, 0x0e, 0x4b, 0x65,
  3050  	0x40, 0x9e, 0x75, 0x50, 0x43, 0x42, 0x6e, 0xc0, 0xd5, 0x32, 0xa4, 0x48, 0x71, 0xa8, 0xb9, 0xd4,
  3051  	0xfc, 0x2e, 0x81, 0x16, 0xe4, 0xcb, 0x5e, 0x23, 0x50, 0xab, 0xdc, 0x40, 0xc9, 0x34, 0x08, 0x0b,
  3052  	0xe8, 0xd0, 0x2b, 0x30, 0x48, 0x8f, 0x05, 0xd4, 0x16, 0x2c, 0x0a, 0x56, 0xca, 0x00, 0xaa, 0x60,
  3053  	0x52, 0x90, 0x22, 0xeb, 0x22, 0xa3, 0x8e, 0x60, 0x71, 0x13, 0x2e, 0xcb, 0x08, 0xa9, 0xa7, 0x8a,
  3054  	0xba, 0x02, 0x72, 0x0d, 0xb4, 0x9c, 0x27, 0x59, 0xf1, 0x8b, 0xe6, 0xc5, 0xec, 0x5a, 0x5e, 0x4e,
  3055  	0xf9, 0xc2, 0x83, 0xd0, 0x52, 0x9d, 0x62, 0x9a, 0x8a, 0x76, 0x1d, 0x2e, 0xe6, 0x2c, 0x27, 0x9e,
  3056  	0xd7, 0xd1, 0x82, 0x10, 0xf4, 0x36, 0x5c, 0x2b, 0x44, 0x52, 0xee, 0x31, 0x09, 0x69, 0x29, 0xae,
  3057  	0x57, 0x8a, 0xdb, 0xb2, 0x8f, 0xd1, 0x05, 0xee, 0xa9, 0xdf, 0x95, 0xc8, 0xcc, 0x1f, 0x97, 0xd0,
  3058  	0xc5, 0x72, 0xbb, 0xa5, 0xe5, 0x2b, 0x5a, 0x14, 0xcb, 0x5c, 0x85, 0x85, 0x3c, 0x80, 0xf2, 0xbf,
  3059  	0x94, 0x6a, 0x9c, 0x8b, 0x97, 0x7c, 0xcf, 0x00, 0x5d, 0x16, 0xa8, 0x82, 0xff, 0xe4, 0x57, 0x59,
  3060  	0xd4, 0x13, 0x98, 0xd5, 0x7c, 0x88, 0xe6, 0x1e, 0x6a, 0xd1, 0x95, 0x72, 0x50, 0xee, 0x11, 0x0f,
  3061  	0x2d, 0x09, 0x81, 0x57, 0xf3, 0x1a, 0xa5, 0x4f, 0x77, 0xe8, 0xaa, 0x64, 0x94, 0x42, 0x34, 0x64,
  3062  	0xaf, 0xb1, 0xe8, 0x5a, 0xf9, 0xae, 0xca, 0x1e, 0x49, 0xd0, 0x72, 0x79, 0xd4, 0x26, 0xd3, 0xd7,
  3063  	0xd3, 0xa8, 0xcd, 0xf9, 0x39, 0x39, 0x81, 0xd1, 0x8a, 0xb4, 0x8b, 0x0a, 0x96, 0x91, 0xdb, 0xd2,
  3064  	0x48, 0x2f, 0xb7, 0x71, 0xbe, 0x55, 0x8d, 0x56, 0xcb, 0xc3, 0x3b, 0x6b, 0x5f, 0xa3, 0xb5, 0xf2,
  3065  	0xf0, 0x96, 0xea, 0x7b, 0x74, 0xbb, 0xdc, 0xbe, 0xb9, 0xa2, 0x1d, 0xdd, 0x11, 0xa0, 0x42, 0x7c,
  3066  	0x16, 0xcb, 0x6d, 0xb4, 0x2e, 0x24, 0xba, 0x03, 0xcb, 0xb9, 0xf8, 0x2c, 0x3e, 0x65, 0xa2, 0x8d,
  3067  	0x14, 0x78, 0xa5, 0x1c, 0x48, 0xa5, 0xbf, 0x2b, 0x39, 0xed, 0x76, 0xc1, 0x12, 0xb9, 0x56, 0x0d,
  3068  	0xba, 0x27, 0xed, 0x30, 0x2d, 0x1f, 0xb2, 0x6c, 0xfe, 0xad, 0xa5, 0xfa, 0x77, 0x7c, 0xbe, 0x60,
  3069  	0xd1, 0x7c, 0x07, 0x1f, 0xbd, 0x5d, 0x6e, 0x2f, 0xa9, 0x15, 0x8d, 0xfa, 0xe5, 0x99, 0x5b, 0x34,
  3070  	0xa5, 0xd1, 0xfd, 0x72, 0x4b, 0x15, 0x9b, 0x50, 0xe8, 0x9d, 0x74, 0x27, 0x17, 0x3c, 0x2c, 0x77,
  3071  	0x0d, 0xd1, 0xbb, 0xa9, 0x5e, 0xeb, 0x79, 0x7e, 0xc5, 0xae, 0x25, 0xda, 0x4c, 0x35, 0x2c, 0x70,
  3072  	0xcc, 0xf7, 0x21, 0xd1, 0x7b, 0xb3, 0x38, 0x16, 0x9b, 0x87, 0xe8, 0xfd, 0x94, 0xa3, 0x5e, 0xcc,
  3073  	0x6d, 0xd9, 0xbd, 0x08, 0x7d, 0x50, 0x1e, 0xa9, 0xf9, 0x0b, 0x08, 0xfa, 0x50, 0x68, 0x5b, 0xb0,
  3074  	0xab, 0xf4, 0xef, 0x46, 0xe8, 0x9f, 0x05, 0xa3, 0x75, 0xb8, 0x9e, 0x53, 0xf4, 0xcc, 0x43, 0x25,
  3075  	0xfa, 0x48, 0x20, 0x6f, 0xe5, 0x8f, 0xa1, 0xc2, 0xbb, 0x22, 0xfa, 0x17, 0xb1, 0x66, 0x71, 0x0f,
  3076  	0xe5, 0x9a, 0x17, 0xe8, 0x41, 0x7a, 0x4c, 0x2e, 0x97, 0xa1, 0xb2, 0x9c, 0xf8, 0xaf, 0x69, 0x8a,
  3077  	0xb9, 0x52, 0x0e, 0xa4, 0xde, 0xff, 0xb7, 0x72, 0x6e, 0x67, 0x2e, 0x49, 0xe8, 0xe3, 0x19, 0x1b,
  3078  	0x3c, 0x8f, 0xfa, 0xa4, 0x7c, 0xcd, 0xdc, 0x75, 0x05, 0x7d, 0x2a, 0x58, 0x6d, 0xc0, 0x8d, 0x59,
  3079  	0x7a, 0x26, 0x2e, 0xfd, 0x4c, 0x40, 0xef, 0xc1, 0xcd, 0x32, 0x68, 0x7e, 0xcf, 0x6f, 0x09, 0x70,
  3080  	0x1f, 0xd6, 0xca, 0xc0, 0x67, 0xf6, 0xfe, 0x43, 0x21, 0xec, 0xbd, 0xbc, 0xee, 0x67, 0xee, 0x15,
  3081  	0xc8, 0x59, 0x6a, 0x7e, 0x9f, 0x6c, 0xeb, 0x3b, 0x33, 0xc0, 0xc9, 0xc5, 0x02, 0xe1, 0xa5, 0xda,
  3082  	0xf7, 0x25, 0x86, 0xca, 0xdf, 0x35, 0xd0, 0xd1, 0x52, 0xed, 0x87, 0x12, 0x43, 0xe5, 0xaa, 0x65,
  3083  	0x34, 0x14, 0xac, 0x0a, 0xe1, 0x2c, 0x57, 0xd0, 0x68, 0x24, 0x18, 0x15, 0x8c, 0x59, 0x52, 0x13,
  3084  	0x23, 0x57, 0xb0, 0x2b, 0x84, 0x61, 0x01, 0x8a, 0x3c, 0xc1, 0xf1, 0x2e, 0xac, 0x9c, 0x03, 0x63,
  3085  	0x15, 0x2f, 0xf2, 0x05, 0xcb, 0x59, 0xab, 0x67, 0xd5, 0x2b, 0xfa, 0x9a, 0x43, 0x1f, 0xbe, 0x0f,
  3086  	0xab, 0xb6, 0x37, 0xe9, 0x87, 0x56, 0xe4, 0x85, 0x23, 0x32, 0xb6, 0x0e, 0xc3, 0x7e, 0x14, 0xe0,
  3087  	0x97, 0x5e, 0xd0, 0x1f, 0x93, 0x43, 0xfe, 0x6f, 0x7e, 0x87, 0xf1, 0xd1, 0xc3, 0xce, 0x01, 0x23,
  3088  	0x0a, 0xae, 0x7f, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x2a, 0xe4, 0xc0, 0x85, 0x16, 0x28, 0x00, 0x00,
  3089  }