github.com/kisexp/xdchain@v0.0.0-20211206025815-490d6b732aa7/permission/v2/bind/permission_impl.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package bind
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/kisexp/xdchain"
    11  	"github.com/kisexp/xdchain/accounts/abi"
    12  	"github.com/kisexp/xdchain/accounts/abi/bind"
    13  	"github.com/kisexp/xdchain/common"
    14  	"github.com/kisexp/xdchain/core/types"
    15  	"github.com/kisexp/xdchain/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = bind.Bind
    24  	_ = common.Big1
    25  	_ = types.BloomLookup
    26  	_ = event.NewSubscription
    27  )
    28  
    29  // PermImplABI is the input ABI used to generate the binding from.
    30  const PermImplABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_action\",\"type\":\"uint256\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"updateAccountStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_access\",\"type\":\"uint256\"},{\"name\":\"_voter\",\"type\":\"bool\"},{\"name\":\"_admin\",\"type\":\"bool\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"addNewRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nwAdminOrg\",\"type\":\"string\"},{\"name\":\"_nwAdminRole\",\"type\":\"string\"},{\"name\":\"_oAdminRole\",\"type\":\"string\"}],\"name\":\"setPolicy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"startBlacklistedAccountRecovery\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_action\",\"type\":\"uint256\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"updateOrgStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"assignAdminRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"updateNetworkBootStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"}],\"name\":\"connectionAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveBlacklistedAccountRecovery\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNetworkBootStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addAdminAccount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"removeRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pOrgId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"addSubOrg\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"validateAccount\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"}],\"name\":\"addAdminNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveAdminRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"assignAccountRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_target\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_gasPrice\",\"type\":\"uint256\"},{\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"transactionAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"isOrgAdmin\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveBlacklistedNodeRecovery\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_breadth\",\"type\":\"uint256\"},{\"name\":\"_depth\",\"type\":\"uint256\"}],\"name\":\"init\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_action\",\"type\":\"uint256\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveOrgStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_action\",\"type\":\"uint256\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"updateNodeStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getPolicyDetails\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isNetworkAdmin\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"startBlacklistedNodeRecovery\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"addOrg\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"addNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"getPendingOp\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nwAdminOrg\",\"type\":\"string\"},{\"name\":\"_nwAdminRole\",\"type\":\"string\"},{\"name\":\"_oAdminRole\",\"type\":\"string\"},{\"name\":\"_networkBootStatus\",\"type\":\"bool\"}],\"name\":\"setMigrationPolicy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveOrg\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_permUpgradable\",\"type\":\"address\"},{\"name\":\"_orgManager\",\"type\":\"address\"},{\"name\":\"_rolesManager\",\"type\":\"address\"},{\"name\":\"_accountManager\",\"type\":\"address\"},{\"name\":\"_voterManager\",\"type\":\"address\"},{\"name\":\"_nodeManager\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_networkBootStatus\",\"type\":\"bool\"}],\"name\":\"PermissionsInitialized\",\"type\":\"event\"}]"
    31  
    32  var PermImplParsedABI, _ = abi.JSON(strings.NewReader(PermImplABI))
    33  
    34  // PermImplBin is the compiled bytecode used for deploying new contracts.
    35  var PermImplBin = "0x60806040526003600955600a805460ff191690553480156200002057600080fd5b5060405160c08062008587833981018060405260c08110156200004257600080fd5b508051602082015160408301516060840151608085015160a090950151600580546001600160a01b039687166001600160a01b03199182161790915560048054958716958216959095179094556001805493861693851693909317909255600080549185169184169190911790556002805494841694831694909417909355600380549290931691161790556184a980620000de6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063888430411161010f578063cc9ba6fa116100a2578063ecad01d511610071578063ecad01d5146117db578063f346a3a7146119a5578063f5ad584a14611b11578063f75f0a0614611c21576101e5565b8063cc9ba6fa146112c4578063d1aa0c2014611418578063d621d9571461143e578063e91b0e1914611608576101e5565b8063a042bf40116100de578063a042bf4014610e8b578063a5843f0814611055578063b554656414611078578063b9b7fe6c146110f5576101e5565b80638884304114610b7a5780638baa819114610bf9578063936421d514610d3d5780639bd3810114610dd7576101e5565b806345a59e5b116101875780635ca5adbe116101565780635ca5adbe146107b957806368a61273146108805780636b568d76146109fc5780638683c7fe14610ab0576101e5565b806345a59e5b1461064a5780634b20f45f1461070c5780634cbfa82e1461078b5780634fe57e7a14610793576101e5565b80631c249912116101c35780631c2499121461045e5780633cf5f33b146104dd578063404bf3eb1461055a57806344478e791461062e576101e5565b806304e81f1e146101ea5780631b04c276146102735780631b61022014610350575b600080fd5b6102716004803603608081101561020057600080fd5b810190602081018135600160201b81111561021a57600080fd5b82018360208201111561022c57600080fd5b803590602001918460018302840111600160201b8311171561024d57600080fd5b91935091506001600160a01b03813581169160208101359160409091013516611df4565b005b610271600480360360c081101561028957600080fd5b810190602081018135600160201b8111156102a357600080fd5b8201836020820111156102b557600080fd5b803590602001918460018302840111600160201b831117156102d657600080fd5b919390929091602081019035600160201b8111156102f357600080fd5b82018360208201111561030557600080fd5b803590602001918460018302840111600160201b8311171561032657600080fd5b919350915080359060208101351515906040810135151590606001356001600160a01b0316612047565b6102716004803603606081101561036657600080fd5b810190602081018135600160201b81111561038057600080fd5b82018360208201111561039257600080fd5b803590602001918460018302840111600160201b831117156103b357600080fd5b919390929091602081019035600160201b8111156103d057600080fd5b8201836020820111156103e257600080fd5b803590602001918460018302840111600160201b8311171561040357600080fd5b919390929091602081019035600160201b81111561042057600080fd5b82018360208201111561043257600080fd5b803590602001918460018302840111600160201b8311171561045357600080fd5b509092509050612309565b6102716004803603606081101561047457600080fd5b810190602081018135600160201b81111561048e57600080fd5b8201836020820111156104a057600080fd5b803590602001918460018302840111600160201b831117156104c157600080fd5b91935091506001600160a01b0381358116916020013516612448565b610271600480360360608110156104f357600080fd5b810190602081018135600160201b81111561050d57600080fd5b82018360208201111561051f57600080fd5b803590602001918460018302840111600160201b8311171561054057600080fd5b9193509150803590602001356001600160a01b0316612747565b6102716004803603608081101561057057600080fd5b810190602081018135600160201b81111561058a57600080fd5b82018360208201111561059c57600080fd5b803590602001918460018302840111600160201b831117156105bd57600080fd5b919390926001600160a01b0383351692604081019060200135600160201b8111156105e757600080fd5b8201836020820111156105f957600080fd5b803590602001918460018302840111600160201b8311171561061a57600080fd5b9193509150356001600160a01b0316612a4f565b610636612e0e565b604080519115158252519081900360200190f35b6106366004803603606081101561066057600080fd5b810190602081018135600160201b81111561067a57600080fd5b82018360208201111561068c57600080fd5b803590602001918460018302840111600160201b831117156106ad57600080fd5b919390929091602081019035600160201b8111156106ca57600080fd5b8201836020820111156106dc57600080fd5b803590602001918460018302840111600160201b831117156106fd57600080fd5b91935091503561ffff16612f6c565b6102716004803603606081101561072257600080fd5b810190602081018135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91935091506001600160a01b0381358116916020013516613070565b6106366132b9565b610271600480360360208110156107a957600080fd5b50356001600160a01b03166132c3565b610271600480360360608110156107cf57600080fd5b810190602081018135600160201b8111156107e957600080fd5b8201836020820111156107fb57600080fd5b803590602001918460018302840111600160201b8311171561081c57600080fd5b919390929091602081019035600160201b81111561083957600080fd5b82018360208201111561084b57600080fd5b803590602001918460018302840111600160201b8311171561086c57600080fd5b9193509150356001600160a01b03166135e4565b610271600480360360e081101561089657600080fd5b810190602081018135600160201b8111156108b057600080fd5b8201836020820111156108c257600080fd5b803590602001918460018302840111600160201b831117156108e357600080fd5b919390929091602081019035600160201b81111561090057600080fd5b82018360208201111561091257600080fd5b803590602001918460018302840111600160201b8311171561093357600080fd5b919390929091602081019035600160201b81111561095057600080fd5b82018360208201111561096257600080fd5b803590602001918460018302840111600160201b8311171561098357600080fd5b919390929091602081019035600160201b8111156109a057600080fd5b8201836020820111156109b257600080fd5b803590602001918460018302840111600160201b831117156109d357600080fd5b9193509150803561ffff90811691602081013590911690604001356001600160a01b0316613aa6565b61063660048036036040811015610a1257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a3c57600080fd5b820183602082011115610a4e57600080fd5b803590602001918460018302840111600160201b83111715610a6f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613ef1945050505050565b61027160048036036080811015610ac657600080fd5b810190602081018135600160201b811115610ae057600080fd5b820183602082011115610af257600080fd5b803590602001918460018302840111600160201b83111715610b1357600080fd5b919390929091602081019035600160201b811115610b3057600080fd5b820183602082011115610b4257600080fd5b803590602001918460018302840111600160201b83111715610b6357600080fd5b919350915061ffff81358116916020013516613fdf565b61027160048036036060811015610b9057600080fd5b810190602081018135600160201b811115610baa57600080fd5b820183602082011115610bbc57600080fd5b803590602001918460018302840111600160201b83111715610bdd57600080fd5b91935091506001600160a01b0381358116916020013516614228565b61027160048036036080811015610c0f57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610c3957600080fd5b820183602082011115610c4b57600080fd5b803590602001918460018302840111600160201b83111715610c6c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610cbe57600080fd5b820183602082011115610cd057600080fd5b803590602001918460018302840111600160201b83111715610cf157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b0316915061467d9050565b610636600480360360c0811015610d5357600080fd5b6001600160a01b0382358116926020810135909116916040820135916060810135916080820135919081019060c0810160a0820135600160201b811115610d9957600080fd5b820183602082011115610dab57600080fd5b803590602001918460018302840111600160201b83111715610dcc57600080fd5b509092509050614b8b565b61063660048036036040811015610ded57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610e1757600080fd5b820183602082011115610e2957600080fd5b803590602001918460018302840111600160201b83111715610e4a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550615059945050505050565b610271600480360360c0811015610ea157600080fd5b810190602081018135600160201b811115610ebb57600080fd5b820183602082011115610ecd57600080fd5b803590602001918460018302840111600160201b83111715610eee57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610f4057600080fd5b820183602082011115610f5257600080fd5b803590602001918460018302840111600160201b83111715610f7357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610fc557600080fd5b820183602082011115610fd757600080fd5b803590602001918460018302840111600160201b83111715610ff857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813561ffff908116935060208301351691604001356001600160a01b03169050615411565b6102716004803603604081101561106b57600080fd5b508035906020013561577d565b6102716004803603606081101561108e57600080fd5b810190602081018135600160201b8111156110a857600080fd5b8201836020820111156110ba57600080fd5b803590602001918460018302840111600160201b831117156110db57600080fd5b9193509150803590602001356001600160a01b0316615c4c565b610271600480360360e081101561110b57600080fd5b810190602081018135600160201b81111561112557600080fd5b82018360208201111561113757600080fd5b803590602001918460018302840111600160201b8311171561115857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156111aa57600080fd5b8201836020820111156111bc57600080fd5b803590602001918460018302840111600160201b831117156111dd57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561122f57600080fd5b82018360208201111561124157600080fd5b803590602001918460018302840111600160201b8311171561126257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813561ffff90811693506020830135169160408101359150606001356001600160a01b0316615fa5565b6112cc61619f565b604080518215156060820152608080825286519082015285519091829160208084019284019160a08501918a019080838360005b83811015611318578181015183820152602001611300565b50505050905090810190601f1680156113455780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b83811015611378578181015183820152602001611360565b50505050905090810190601f1680156113a55780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b838110156113d85781810151838201526020016113c0565b50505050905090810190601f1680156114055780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b6106366004803603602081101561142e57600080fd5b50356001600160a01b0316616372565b610271600480360360c081101561145457600080fd5b810190602081018135600160201b81111561146e57600080fd5b82018360208201111561148057600080fd5b803590602001918460018302840111600160201b831117156114a157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156114f357600080fd5b82018360208201111561150557600080fd5b803590602001918460018302840111600160201b8311171561152657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561157857600080fd5b82018360208201111561158a57600080fd5b803590602001918460018302840111600160201b831117156115ab57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813561ffff908116935060208301351691604001356001600160a01b03169050616576565b610271600480360360e081101561161e57600080fd5b810190602081018135600160201b81111561163857600080fd5b82018360208201111561164a57600080fd5b803590602001918460018302840111600160201b8311171561166b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156116bd57600080fd5b8201836020820111156116cf57600080fd5b803590602001918460018302840111600160201b831117156116f057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561174257600080fd5b82018360208201111561175457600080fd5b803590602001918460018302840111600160201b8311171561177557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505061ffff833581169450602084013516926001600160a01b036040820135811693506060909101351690506169fb565b610271600480360360c08110156117f157600080fd5b810190602081018135600160201b81111561180b57600080fd5b82018360208201111561181d57600080fd5b803590602001918460018302840111600160201b8311171561183e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561189057600080fd5b8201836020820111156118a257600080fd5b803590602001918460018302840111600160201b831117156118c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561191557600080fd5b82018360208201111561192757600080fd5b803590602001918460018302840111600160201b8311171561194857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813561ffff908116935060208301351691604001356001600160a01b0316905061713d565b611a13600480360360208110156119bb57600080fd5b810190602081018135600160201b8111156119d557600080fd5b8201836020820111156119e757600080fd5b803590602001918460018302840111600160201b83111715611a0857600080fd5b5090925090506173e7565b604051808060200180602001856001600160a01b03166001600160a01b03168152602001848152602001838103835287818151815260200191508051906020019080838360005b83811015611a72578181015183820152602001611a5a565b50505050905090810190601f168015611a9f5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015611ad2578181015183820152602001611aba565b50505050905090810190601f168015611aff5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61027160048036036080811015611b2757600080fd5b810190602081018135600160201b811115611b4157600080fd5b820183602082011115611b5357600080fd5b803590602001918460018302840111600160201b83111715611b7457600080fd5b919390929091602081019035600160201b811115611b9157600080fd5b820183602082011115611ba357600080fd5b803590602001918460018302840111600160201b83111715611bc457600080fd5b919390929091602081019035600160201b811115611be157600080fd5b820183602082011115611bf357600080fd5b803590602001918460018302840111600160201b83111715611c1457600080fd5b919350915035151561754f565b610271600480360360e0811015611c3757600080fd5b810190602081018135600160201b811115611c5157600080fd5b820183602082011115611c6357600080fd5b803590602001918460018302840111600160201b83111715611c8457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115611cd657600080fd5b820183602082011115611ce857600080fd5b803590602001918460018302840111600160201b83111715611d0957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115611d5b57600080fd5b820183602082011115611d6d57600080fd5b803590602001918460018302840111600160201b83111715611d8e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505061ffff833581169450602084013516926001600160a01b0360408201358116935060609091013516905061763e565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4257600080fd5b505afa158015611e56573d6000803e3d6000fd5b505050506040513d6020811015611e6c57600080fd5b50516001600160a01b03163314611eb757604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b8085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611efb9250849150839050615059565b1515600114611f3e57604051600160e51b62461bcd02815260040180806020018281038252602281526020018061845c6022913960400191505060405180910390fd5b8360011480611f4d5750836002145b80611f585750836003145b1515611f9857604051600160e51b62461bcd0281526004018080602001828103825260258152602001806183e96025913960400191505060405180910390fd5b600054604051600160e11b63425bd4250281526001600160a01b03878116602483015260448201879052606060048301908152606483018a90529216916384b7a84a918a918a918a918a918190608401868680828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561202657600080fd5b505af115801561203a573d6000803e3d6000fd5b5050505050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561209557600080fd5b505afa1580156120a9573d6000803e3d6000fd5b505050506040513d60208110156120bf57600080fd5b50516001600160a01b0316331461210a57604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061214c9250839150617d129050565b15156001146121935760408051600160e51b62461bcd02815260206004820152601a60248201526000805160206183a9833981519152604482015290519081900360640190fd5b8187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121d79250849150839050615059565b151560011461221a57604051600160e51b62461bcd02815260040180806020018281038252602281526020018061845c6022913960400191505060405180910390fd5b600154604051600160e01b637b713579028152604481018990528715156064820152861515608482015260a06004820190815260a482018d90526001600160a01b0390921691637b713579918e918e918e918e918e918e918e91908190602481019060c4018a8a80828437600083820152601f01601f191690910184810383528881526020019050888880828437600081840152601f19601f8201169050808301925050509950505050505050505050600060405180830381600087803b1580156122e457600080fd5b505af11580156122f8573d6000803e3d6000fd5b505050505050505050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561235757600080fd5b505afa15801561236b573d6000803e3d6000fd5b505050506040513d602081101561238157600080fd5b50516001600160a01b031633146123cc57604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b600a5460009060ff16156124185760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206183c9833981519152604482015290519081900360640190fd5b6124246006888861831a565b506124316007868661831a565b5061243e6008848461831a565b5050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561249657600080fd5b505afa1580156124aa573d6000803e3d6000fd5b505050506040513d60208110156124c057600080fd5b50516001600160a01b0316331461250b57604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b8061251581616372565b151560011461255857604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b600054604051600160e11b63425bd4250281526001600160a01b03858116602483015260046044830181905260608382019081526064840189905291909316926384b7a84a928992899289929091908190608401868680828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156125ea57600080fd5b505af11580156125fe573d6000803e3d6000fd5b505060028054604051600160e01b63e98ac22d0281526001600160a01b03888116606483015260066084830181905260a060048401908152815460001960018216156101000201169590950460a4840181905291909316955063e98ac22d945091928a928a928a928692909182916024820191604481019160c490910190869080156126cb5780601f106126a0576101008083540402835291602001916126cb565b820191906000526020600020905b8154815290600101906020018083116126ae57829003601f168201915b50508481038352878152602001888880828437600081840152601f19601f82011690508083019250505084810382526000815260200160200198505050505050505050600060405180830381600087803b15801561272857600080fd5b505af115801561273c573d6000803e3d6000fd5b505050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561279557600080fd5b505afa1580156127a9573d6000803e3d6000fd5b505050506040513d60208110156127bf57600080fd5b50516001600160a01b0316331461280a57604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b8061281481616372565b151560011461285757604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b6004805460408051600160e01b630cc2749302815260248101879052928301908152604483018790526000926001600160a01b0390921691630cc27493918991899189918190606401858580828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156128dd57600080fd5b505af11580156128f1573d6000803e3d6000fd5b505050506040513d602081101561290757600080fd5b505160028054604051600160e01b63e98ac22d0281526000606482018190526084820185905260a0600483019081526006805460001960018216156101000201169590950460a484018190529596506001600160a01b039093169463e98ac22d94938c938c939289929182916024820191604481019160c4909101908a9080156129d25780601f106129a7576101008083540402835291602001916129d2565b820191906000526020600020905b8154815290600101906020018083116129b557829003601f168201915b50508481038352878152602001888880828437600081840152601f19601f82011690508083019250505084810382526000815260200160200198505050505050505050600060405180830381600087803b158015612a2f57600080fd5b505af1158015612a43573d6000803e3d6000fd5b50505050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a9d57600080fd5b505afa158015612ab1573d6000803e3d6000fd5b505050506040513d6020811015612ac757600080fd5b50516001600160a01b03163314612b1257604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b549250839150617e019050565b1515600114612ba55760408051600160e51b62461bcd0281526020600482015260126024820152600160721b711bdc99c8191bd95cc81b9bdd08195e1a5cdd02604482015290519081900360640190fd5b81612baf81616372565b1515600114612bf257604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b600054604051600160e01b63e3483a9d0281526001600160a01b0388811660048301908152600160648401819052608060248501908152608485018d9052929094169363e3483a9d938b938e938e938d938d9391929190604481019060a401888880828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b158015612cb557600080fd5b505af1158015612cc9573d6000803e3d6000fd5b505060028054604051600160e01b63e98ac22d0281526001600160a01b038b8116606483015260046084830181905260a08382019081526006805460001960018216156101000201169690960460a4850181905292909416965063e98ac22d95508e938e938e9382916024810191604482019160c401908a908015612d8f5780601f10612d6457610100808354040283529160200191612d8f565b820191906000526020600020905b815481529060010190602001808311612d7257829003601f168201915b50508481038352878152602001888880828437600081840152601f19601f82011690508083019250505084810382526000815260200160200198505050505050505050600060405180830381600087803b158015612dec57600080fd5b505af1158015612e00573d6000803e3d6000fd5b505050505050505050505050565b60055460408051600160e21b63395c945702815290516000926001600160a01b03169163e572515c916004808301926020929190829003018186803b158015612e5657600080fd5b505afa158015612e6a573d6000803e3d6000fd5b505050506040513d6020811015612e8057600080fd5b50516001600160a01b03163314612ecb57604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b600a5460009060ff1615612f175760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206183c9833981519152604482015290519081900360640190fd5b600a805460ff1916600117908190556040805160ff9290921615158252517f04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf9181900360200190a1600a5460ff1691505b5090565b600a5460009060ff161515612f8357506001613067565b600354604051600160e01b6345a59e5b02815261ffff84166044820152606060048201908152606482018890526001600160a01b03909216916345a59e5b91899189918991899189919081906024810190608401888880828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f82011690508083019250505097505050505050505060206040518083038186803b15801561303857600080fd5b505afa15801561304c573d6000803e3d6000fd5b505050506040513d602081101561306257600080fd5b505190505b95945050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130be57600080fd5b505afa1580156130d2573d6000803e3d6000fd5b505050506040513d60208110156130e857600080fd5b50516001600160a01b0316331461313357604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b8061313d81616372565b151560011461318057604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261321a939092909183018282801561320d5780601f106131e25761010080835404028352916020019161320d565b820191906000526020600020905b8154815290600101906020018083116131f057829003601f168201915b5050505050836006617ec6565b156132b257600054604051600160e11b63425bd4250281526001600160a01b0385811660248301526005604483018190526060600484019081526064840189905291909316926384b7a84a928992899289929091908190608401868680828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561272857600080fd5b5050505050565b600a5460ff165b90565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561331157600080fd5b505afa158015613325573d6000803e3d6000fd5b505050506040513d602081101561333b57600080fd5b50516001600160a01b0316331461338657604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b600a5460009060ff16156133d25760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206183c9833981519152604482015290519081900360640190fd5b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261346c939092909183018282801561345f5780601f106134345761010080835404028352916020019161345f565b820191906000526020600020905b81548152906001019060200180831161344257829003601f168201915b5050505050836001617fc0565b600054604051600160e01b63e3483a9d0281526001600160a01b038481166004830190815260026064840181905260806024850190815260068054600019600182161561010002011683900460848701819052949096169563e3483a9d95899591946007949390929091604481019160a490910190879080156135305780601f1061350557610100808354040283529160200191613530565b820191906000526020600020905b81548152906001019060200180831161351357829003601f168201915b50508381038252855460026000196101006001841615020190911604808252602090910190869080156135a45780601f10613579576101008083540402835291602001916135a4565b820191906000526020600020905b81548152906001019060200180831161358757829003601f168201915b50509650505050505050600060405180830381600087803b1580156135c857600080fd5b505af11580156135dc573d6000803e3d6000fd5b505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561363257600080fd5b505afa158015613646573d6000803e3d6000fd5b505050506040513d602081101561365c57600080fd5b50516001600160a01b031633146136a757604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136e99250839150617d129050565b15156001146137305760408051600160e51b62461bcd02815260206004820152601a60248201526000805160206183a9833981519152604482015290519081900360640190fd5b8184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506137749250849150839050615059565b15156001146137b757604051600160e51b62461bcd02815260040180806020018281038252602281526020018061845c6022913960400191505060405180910390fd5b604080516020808201908152600780546002600019610100600184161502019091160493830184905292909182916060909101908490801561383a5780601f1061380f5761010080835404028352916020019161383a565b820191906000526020600020905b81548152906001019060200180831161381d57829003601f168201915b50509250505060405160208183030381529060405280519060200120888860405160200180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405160208183030381529060405280519060200120141580156139a7575060408051602080820190815260088054600260001961010060018416150201909116049383018490529290918291606090910190849080156139355780601f1061390a57610100808354040283529160200191613935565b820191906000526020600020905b81548152906001019060200180831161391857829003601f168201915b50509250505060405160208183030381529060405280519060200120888860405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012014155b15156139fd5760408051600160e51b62461bcd02815260206004820152601d60248201527f61646d696e20726f6c65732063616e6e6f742062652072656d6f766564000000604482015290519081900360640190fd5b60015460408051600160e11b63531a180902815260048101918252604481018a90526001600160a01b039092169163a6343012918b918b918b918b919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015612dec57600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015613af457600080fd5b505afa158015613b08573d6000803e3d6000fd5b505050506040513d6020811015613b1e57600080fd5b50516001600160a01b03163314613b6957604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613bab9250839150617e019050565b1515600114613bfc5760408051600160e51b62461bcd0281526020600482015260126024820152600160721b711bdc99c8191bd95cc81b9bdd08195e1a5cdd02604482015290519081900360640190fd5b818c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c409250849150839050615059565b1515600114613c8357604051600160e51b62461bcd02815260040180806020018281038252602281526020018061845c6022913960400191505060405180910390fd5b600460009054906101000a90046001600160a01b03166001600160a01b0316631f9534808f8f8f8f6040518563ffffffff1660e01b81526004018080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015613d3657600080fd5b505af1158015613d4a573d6000803e3d6000fd5b5050505060608e8e8e8e60405160200180858580828437600160f91b6017029201918252506001018383808284376040805191909301818103601f19018252909252509550508d1593506122f89250505057600354604051600160e01b634c57331102815261ffff808a1660448301528816606482015260a06004820190815260a482018d90526001600160a01b0390921691634c573311918e918e918e918e918e918e918a919081906024810190608481019060c4018b8b80828437600083820152601f01601f1916909101858103845289815260200190508989808284376000838201819052601f909101601f191690920186810384528751815287516020918201939189019250908190849084905b83811015613e74578181015183820152602001613e5c565b50505050905090810190601f168015613ea15780820380516001836020036101000a031916815260200191505b509a5050505050505050505050600060405180830381600087803b158015613ec857600080fd5b505af1158015613edc573d6000803e3d6000fd5b50505050505050505050505050505050505050565b6000805460408051600160e11b6335ab46bb0281526001600160a01b0386811660048301908152602483019384528651604484015286519190941693636b568d76938893889360649091019060208501908083838c5b83811015613f5f578181015183820152602001613f47565b50505050905090810190601f168015613f8c5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015613faa57600080fd5b505afa158015613fbe573d6000803e3d6000fd5b505050506040513d6020811015613fd457600080fd5b505190505b92915050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561402d57600080fd5b505afa158015614041573d6000803e3d6000fd5b505050506040513d602081101561405757600080fd5b50516001600160a01b031633146140a257604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b600a5460009060ff16156140ee5760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206183c9833981519152604482015290519081900360640190fd5b600354604051600160e01b634530abe102815261ffff80861660448301528416606482015260a06004820190815260a482018990526001600160a01b0390921691634530abe1918a918a918a918a918a918a916006919081906024810190608481019060c4018b8b80828437600083820152601f01601f191690910185810384528981526020019050898980828437600083820152601f01601f1916909101858103835286546002600019610100600184161502019091160480825260209091019150869080156142005780601f106141d557610100808354040283529160200191614200565b820191906000526020600020905b8154815290600101906020018083116141e357829003601f168201915b50509a5050505050505050505050600060405180830381600087803b15801561202657600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561427657600080fd5b505afa15801561428a573d6000803e3d6000fd5b505050506040513d60208110156142a057600080fd5b50516001600160a01b031633146142eb57604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b806142f581616372565b151560011461433857604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b60068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526143d293909290918301828280156143c55780601f1061439a576101008083540402835291602001916143c5565b820191906000526020600020905b8154815290600101906020018083116143a857829003601f168201915b5050505050836004617ec6565b156132b25760008054604051600160e01b631d09dc930281526020600482019081526024820188905283926001600160a01b031691631d09dc93918a918a91908190604401848480828437600081840152601f19601f82011690508083019250505093505050506040805180830381600087803b15801561445257600080fd5b505af1158015614466573d6000803e3d6000fd5b505050506040513d604081101561447c57600080fd5b5080516020909101519092509050811561452a5760068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261452a939092909183018282801561451d5780601f106144f25761010080835404028352916020019161451d565b820191906000526020600020905b81548152906001019060200180831161450057829003601f168201915b5050505050826000617fc0565b6000805460408051600160e01b63c214e5e50281526001600160a01b03898116602483015260048201928352604482018b90529092169163c214e5e5918b918b918b918190606401858580828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b1580156145af57600080fd5b505af11580156145c3573d6000803e3d6000fd5b505050506040513d60208110156145d957600080fd5b50519050801561243e5760068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261243e93909290918301828280156146705780601f1061464557610100808354040283529160200191614670565b820191906000526020600020905b81548152906001019060200180831161465357829003601f168201915b5050505050876001617fc0565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156146cb57600080fd5b505afa1580156146df573d6000803e3d6000fd5b505050506040513d60208110156146f557600080fd5b50516001600160a01b0316331461474057604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b808361474c8282615059565b151560011461478f57604051600160e51b62461bcd02815260040180806020018281038252602281526020018061845c6022913960400191505060405180910390fd5b8461479981617d12565b15156001146147e05760408051600160e51b62461bcd02815260206004820152601a60248201526000805160206183a9833981519152604482015290519081900360640190fd5b6147ea8787613ef1565b15156001146148435760408051600160e51b62461bcd02815260206004820152601d60248201527f6f7065726174696f6e2063616e6e6f7420626520706572666f726d6564000000604482015290519081900360640190fd5b61484d8587618156565b15156001146148a65760408051600160e51b62461bcd02815260206004820152601460248201527f726f6c6520646f6573206e6f7420657869737473000000000000000000000000604482015290519081900360640190fd5b6001546000906001600160a01b031663be322e5487896148c581618171565b6040518463ffffffff1660e01b815260040180806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015614919578181015183820152602001614901565b50505050905090810190601f1680156149465780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b83811015614979578181015183820152602001614961565b50505050905090810190601f1680156149a65780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b838110156149d95781810151838201526020016149c1565b50505050905090810190601f168015614a065780820380516001836020036101000a031916815260200191505b50965050505050505060206040518083038186803b158015614a2757600080fd5b505afa158015614a3b573d6000803e3d6000fd5b505050506040513d6020811015614a5157600080fd5b505160008054604051600160e21b63050e95810281526001600160a01b038c81166004830190815285151560648401526080602484019081528d5160848501528d51969750919093169463143a5604948e948e948e948a9492939092604483019260a401916020890191908190849084905b83811015614adb578181015183820152602001614ac3565b50505050905090810190601f168015614b085780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015614b3b578181015183820152602001614b23565b50505050905090810190601f168015614b685780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b158015612dec57600080fd5b600a5460009060ff161515614ba25750600161504e565b60005460408051600160e11b637ea7d02d0281526001600160a01b038b811660048301529151919092169163fd4fa05a916024808301926020929190829003018186803b158015614bf257600080fd5b505afa158015614c06573d6000803e3d6000fd5b505050506040513d6020811015614c1c57600080fd5b50516002141561504a576000805460408051600160e01b636acee5fd0281526001600160a01b038c81166004830152915160609485949390931692636acee5fd9260248082019391829003018186803b158015614c7857600080fd5b505afa158015614c8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015614cb557600080fd5b810190808051600160201b811115614ccc57600080fd5b82016020810184811115614cdf57600080fd5b8151600160201b811182820187101715614cf857600080fd5b50509291906020018051600160201b811115614d1357600080fd5b82016020810184811115614d2657600080fd5b8151600160201b811182820187101715614d3f57600080fd5b5050929190505050915091506060614d5683618171565b60048054604051600160e01b633fd62ae702815260209281018381528751602483015287519495506001600160a01b0390921693633fd62ae793889392839260449091019185019080838360005b83811015614dbc578181015183820152602001614da4565b50505050905090810190601f168015614de95780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015614e0657600080fd5b505afa158015614e1a573d6000803e3d6000fd5b505050506040513d6020811015614e3057600080fd5b50511561504657614e408b616372565b80614e505750614e508b84615059565b15614e61576001935050505061504e565b60016001600160a01b038b161515614e7b57506002614e85565b8515614e85575060035b600154604051600160e11b6368fbbc33028152606481018390526080600482019081528551608483015285516001600160a01b039093169263d1f778669287928992889288929182916024810191604482019160a4019060208a019080838360005b83811015614eff578181015183820152602001614ee7565b50505050905090810190601f168015614f2c5780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b83811015614f5f578181015183820152602001614f47565b50505050905090810190601f168015614f8c5780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b83811015614fbf578181015183820152602001614fa7565b50505050905090810190601f168015614fec5780820380516001836020036101000a031916815260200191505b5097505050505050505060206040518083038186803b15801561500e57600080fd5b505afa158015615022573d6000803e3d6000fd5b505050506040513d602081101561503857600080fd5b5051945061504e9350505050565b5050505b5060005b979650505050505050565b600080546001600160a01b031663e8b42bf4848461507681618171565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156150de5781810151838201526020016150c6565b50505050905090810190601f16801561510b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561513e578181015183820152602001615126565b50505050905090810190601f16801561516b5780820380516001836020036101000a031916815260200191505b509550505050505060206040518083038186803b15801561518b57600080fd5b505afa15801561519f573d6000803e3d6000fd5b505050506040513d60208110156151b557600080fd5b5051156151c457506001613fd9565b6001546000805460408051600160e01b6381d66b230281526001600160a01b03888116600483015291519482169463be322e549493909216926381d66b2392602480840193829003018186803b15801561521d57600080fd5b505afa158015615231573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561525a57600080fd5b810190808051600160201b81111561527157600080fd5b8201602081018481111561528457600080fd5b8151600160201b81118282018710171561529d57600080fd5b5050929190505050846152af86618171565b6040518463ffffffff1660e01b815260040180806020018060200180602001848103845287818151815260200191508051906020019080838360005b838110156153035781810151838201526020016152eb565b50505050905090810190601f1680156153305780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b8381101561536357818101518382015260200161534b565b50505050905090810190601f1680156153905780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b838110156153c35781810151838201526020016153ab565b50505050905090810190601f1680156153f05780820380516001836020036101000a031916815260200191505b50965050505050505060206040518083038186803b158015613faa57600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561545f57600080fd5b505afa158015615473573d6000803e3d6000fd5b505050506040513d602081101561548957600080fd5b50516001600160a01b031633146154d457604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b806154de81616372565b151560011461552157604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b60068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526155bb93909290918301828280156155ae5780601f10615583576101008083540402835291602001916155ae565b820191906000526020600020905b81548152906001019060200180831161559157829003601f168201915b5050505050836005617ec6565b1561577457600360009054906101000a90046001600160a01b03166001600160a01b03166337d50b27878787878c60056040518763ffffffff1660e01b81526004018080602001806020018761ffff1661ffff1681526020018661ffff1661ffff1681526020018060200185815260200184810384528a818151815260200191508051906020019080838360005b83811015615661578181015183820152602001615649565b50505050905090810190601f16801561568e5780820380516001836020036101000a031916815260200191505b5084810383528951815289516020918201918b019080838360005b838110156156c15781810151838201526020016156a9565b50505050905090810190601f1680156156ee5780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b83811015615721578181015183820152602001615709565b50505050905090810190601f16801561574e5780820380516001836020036101000a031916815260200191505b509950505050505050505050600060405180830381600087803b15801561202657600080fd5b50505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156157cb57600080fd5b505afa1580156157df573d6000803e3d6000fd5b505050506040513d60208110156157f557600080fd5b50516001600160a01b0316331461584057604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b600a5460009060ff161561588c5760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206183c9833981519152604482015290519081900360640190fd5b60048054604051600160e01b639e58eb9f028152602481018690526044810185905260609281019283526006805460026000196001831615610100020190911604606483018190526001600160a01b0390931693639e58eb9f93919288928892918291608490910190869080156159445780601f1061591957610100808354040283529160200191615944565b820191906000526020600020905b81548152906001019060200180831161592757829003601f168201915b5050945050505050600060405180830381600087803b15801561596657600080fd5b505af115801561597a573d6000803e3d6000fd5b505060018054600954604051600160e01b637b71357902815260448101829052606481018490526084810184905260a0600482019081526007805460026000198289161561010002019091160460a484018190526001600160a01b039095169750637b71357996509460069490928392918291602481019160c49091019089908015615a475780601f10615a1c57610100808354040283529160200191615a47565b820191906000526020600020905b815481529060010190602001808311615a2a57829003601f168201915b5050838103825287546002600019610100600184161502019091160480825260209091019088908015615abb5780601f10615a9057610100808354040283529160200191615abb565b820191906000526020600020905b815481529060010190602001808311615a9e57829003601f168201915b5050975050505050505050600060405180830381600087803b158015615ae057600080fd5b505af1158015615af4573d6000803e3d6000fd5b505060005460408051600160e01b63cef7f6af028152600481019182526007805460026000196001831615610100020190911604604483018190526001600160a01b03909416955063cef7f6af94509260089291829160248201916064019086908015615ba25780601f10615b7757610100808354040283529160200191615ba2565b820191906000526020600020905b815481529060010190602001808311615b8557829003601f168201915b5050838103825284546002600019610100600184161502019091160480825260209091019085908015615c165780601f10615beb57610100808354040283529160200191615c16565b820191906000526020600020905b815481529060010190602001808311615bf957829003601f168201915b5050945050505050600060405180830381600087803b158015615c3857600080fd5b505af1158015615774573d6000803e3d6000fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015615c9a57600080fd5b505afa158015615cae573d6000803e3d6000fd5b505050506040513d6020811015615cc457600080fd5b50516001600160a01b03163314615d0f57604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b80615d1981616372565b1515600114615d5c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b8260011480615d6b5750826002145b1515615dc15760408051600160e51b62461bcd02815260206004820152601560248201527f4f7065726174696f6e206e6f7420616c6c6f7765640000000000000000000000604482015290519081900360640190fd5b6000808460011415615dd95750600290506003615dea565b8460021415615dea57506003905060055b615e2b87878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508592506182ad915050565b1515600114615e845760408051600160e51b62461bcd02815260206004820152601560248201527f6f7065726174696f6e206e6f7420616c6c6f7765640000000000000000000000604482015290519081900360640190fd5b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152615f1d9390929091830182828015615f115780601f10615ee657610100808354040283529160200191615f11565b820191906000526020600020905b815481529060010190602001808311615ef457829003601f168201915b50505050508584617ec6565b15615774576004805460408051600160e01b6314f775f902815260248101899052928301908152604483018990526001600160a01b03909116916314f775f9918a918a918a918190606401858580828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b15801561202657600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015615ff357600080fd5b505afa158015616007573d6000803e3d6000fd5b505050506040513d602081101561601d57600080fd5b50516001600160a01b0316331461606857604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b6160728188615059565b15156001146160b557604051600160e51b62461bcd02815260040180806020018281038252602281526020018061845c6022913960400191505060405180910390fd5b81600114806160c45750816002145b806160cf5750816003145b151561610f57604051600160e51b62461bcd0281526004018080602001828103825260258152602001806183e96025913960400191505060405180910390fd5b600354604051600160e01b6337d50b2702815261ffff80871660448301528516606482015260a4810184905260c060048201908152885160c483015288516001600160a01b03909316926337d50b27928a928a928a928a928f928b9282916024820191608481019160e49091019060208c0190808383600083811015615661578181015183820152602001615649565b600a5460068054604080516020601f6002600019600187161561010002019095169490940493840181900481028201810190925282815260609485948594600094919360079360089360ff9091169286918301828280156162415780601f1061621657610100808354040283529160200191616241565b820191906000526020600020905b81548152906001019060200180831161622457829003601f168201915b5050865460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959950889450925084019050828280156162cf5780601f106162a4576101008083540402835291602001916162cf565b820191906000526020600020905b8154815290600101906020018083116162b257829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529598508794509250840190508282801561635d5780601f106163325761010080835404028352916020019161635d565b820191906000526020600020905b81548152906001019060200180831161634057829003601f168201915b50505050509150935093509350935090919293565b604080516020808201908152600780546002600019610100600184161502019091160493830184905260009390928291606090910190849080156163f75780601f106163cc576101008083540402835291602001916163f7565b820191906000526020600020905b8154815290600101906020018083116163da57829003601f168201915b505060408051601f19818403018152828252805160209091012060008054600160e01b6381d66b230285526001600160a01b038a8116600487015293519297509290921694506381d66b239350602480840193829003018186803b15801561645e57600080fd5b505afa158015616472573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561649b57600080fd5b810190808051600160201b8111156164b257600080fd5b820160208101848111156164c557600080fd5b8151600160201b8111828201871017156164de57600080fd5b50509291905050506040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561652657818101518382015260200161650e565b50505050905090810190601f1680156165535780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120149050919050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156165c457600080fd5b505afa1580156165d8573d6000803e3d6000fd5b505050506040513d60208110156165ee57600080fd5b50516001600160a01b0316331461663957604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b8061664381616372565b151560011461668657604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b600360009054906101000a90046001600160a01b03166001600160a01b03166337d50b27878787878c60046040518763ffffffff1660e01b81526004018080602001806020018761ffff1661ffff1681526020018661ffff1661ffff1681526020018060200185815260200184810384528a818151815260200191508051906020019080838360005b8381101561672757818101518382015260200161670f565b50505050905090810190601f1680156167545780820380516001836020036101000a031916815260200191505b5084810383528951815289516020918201918b019080838360005b8381101561678757818101518382015260200161676f565b50505050905090810190601f1680156167b45780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b838110156167e75781810151838201526020016167cf565b50505050905090810190601f1680156168145780820380516001836020036101000a031916815260200191505b509950505050505050505050600060405180830381600087803b15801561683a57600080fd5b505af115801561684e573d6000803e3d6000fd5b505060028054604051600160e01b63e98ac22d02815260006064820181905260056084830181905260a0600484019081526006805460001960018216156101000201169690960460a485018190526001600160a01b03909516975063e98ac22d96508e948e9482916024820191604481019160c4909101908a9080156169155780601f106168ea57610100808354040283529160200191616915565b820191906000526020600020905b8154815290600101906020018083116168f857829003601f168201915b505084810383528851815288516020918201918a019080838360005b83811015616949578181015183820152602001616931565b50505050905090810190601f1680156169765780820380516001836020036101000a031916815260200191505b50848103825287518152875160209182019189019080838360005b838110156169a9578181015183820152602001616991565b50505050905090810190601f1680156169d65780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561202657600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015616a4957600080fd5b505afa158015616a5d573d6000803e3d6000fd5b505050506040513d6020811015616a7357600080fd5b50516001600160a01b03163314616abe57604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b600a5460ff161515600114616b0b5760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206183c9833981519152604482015290519081900360640190fd5b616b1481616372565b1515600114616b5757604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b60028054604051600160e01b63e98ac22d0281526001600160a01b03858116606483015260016084830181905260a06004840190815260068054600019818516156101000201169690960460a48501819052929094169463e98ac22d9490938d938d938a939092909182916024810191604482019160c401908a908015616c1f5780601f10616bf457610100808354040283529160200191616c1f565b820191906000526020600020905b815481529060010190602001808311616c0257829003601f168201915b505084810383528851815288516020918201918a019080838360005b83811015616c53578181015183820152602001616c3b565b50505050905090810190601f168015616c805780820380516001836020036101000a031916815260200191505b50848103825287518152875160209182019189019080838360005b83811015616cb3578181015183820152602001616c9b565b50505050905090810190601f168015616ce05780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015616d0557600080fd5b505af1158015616d19573d6000803e3d6000fd5b505060048054604051600160e01b63f9953de502815260209281018381528c5160248301528c516001600160a01b03909316955063f9953de594508c93909283926044019185019080838360005b83811015616d7f578181015183820152602001616d67565b50505050905090810190601f168015616dac5780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b158015616dcb57600080fd5b505af1158015616ddf573d6000803e3d6000fd5b5050600354604051600160e01b63549583df02815261ffff80891660448301528716606482015260a0600482019081528a5160a48301528a516001600160a01b03909316945063549583df93508a928a928a928a928f9282916024820191608481019160c49091019060208b019080838360005b83811015616e6b578181015183820152602001616e53565b50505050905090810190601f168015616e985780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b83811015616ecb578181015183820152602001616eb3565b50505050905090810190601f168015616ef85780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b83811015616f2b578181015183820152602001616f13565b50505050905090810190601f168015616f585780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015616f7d57600080fd5b505af1158015616f91573d6000803e3d6000fd5b50505050616f9f8288613ef1565b1515600114616ff85760408051600160e51b62461bcd02815260206004820152601d60248201527f4f7065726174696f6e2063616e6e6f7420626520706572666f726d6564000000604482015290519081900360640190fd5b60008054604051600160e01b63e3483a9d0281526001600160a01b03858116600483019081526001606484018190526080602485019081528d5160848601528d51939095169563e3483a9d9589958f9560089593604483019260a4019160208901918190849084905b83811015617079578181015183820152602001617061565b50505050905090810190601f1680156170a65780820380516001836020036101000a031916815260200191505b508381038252855460026000196101006001841615020190911604808252602090910190869080156171195780601f106170ee57610100808354040283529160200191617119565b820191906000526020600020905b8154815290600101906020018083116170fc57829003601f168201915b50509650505050505050600060405180830381600087803b15801561202657600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561718b57600080fd5b505afa15801561719f573d6000803e3d6000fd5b505050506040513d60208110156171b557600080fd5b50516001600160a01b0316331461720057604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b8561720a81617d12565b15156001146172515760408051600160e51b62461bcd02815260206004820152601a60248201526000805160206183a9833981519152604482015290519081900360640190fd5b61725b8288615059565b151560011461729e57604051600160e51b62461bcd02815260040180806020018281038252602281526020018061845c6022913960400191505060405180910390fd5b600354604051600160e01b634c57331102815261ffff80871660448301528516606482015260a060048201908152885160a483015288516001600160a01b0390931692634c573311928a928a928a928a928f92909182916024820191608481019160c49091019060208b019080838360005b83811015617328578181015183820152602001617310565b50505050905090810190601f1680156173555780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b83811015617388578181015183820152602001617370565b50505050905090810190601f1680156173b55780820380516001836020036101000a031916815260200191505b5084810382528551815285516020918201918701908083836000838110156169a9578181015183820152602001616991565b600254604051600160e21b62539ab302815260206004820190815260248201849052606092839260009283926001600160a01b03169163014e6acc9189918991908190604401848480828437600081840152601f19601f820116905080830192505050935050505060006040518083038186803b15801561746757600080fd5b505afa15801561747b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260808110156174a457600080fd5b810190808051600160201b8111156174bb57600080fd5b820160208101848111156174ce57600080fd5b8151600160201b8111828201871017156174e757600080fd5b50509291906020018051600160201b81111561750257600080fd5b8201602081018481111561751557600080fd5b8151600160201b81118282018710171561752e57600080fd5b50506020820151604090920151949b909a5090985092965091945050505050565b6005546001600160a01b031633146175b15760408051600160e51b62461bcd02815260206004820152600e60248201527f696e76616c69642063616c6c6572000000000000000000000000000000000000604482015290519081900360640190fd5b600a5460009060ff16156175fd5760408051600160e51b62461bcd02815260206004820152601d60248201526000805160206183c9833981519152604482015290519081900360640190fd5b6176096006898961831a565b506176166007878761831a565b506176236008858561831a565b5050600a805460ff1916911515919091179055505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561768c57600080fd5b505afa1580156176a0573d6000803e3d6000fd5b505050506040513d60208110156176b657600080fd5b50516001600160a01b0316331461770157604051600160e51b62461bcd02815260040180806020018281038252602881526020018061840e6028913960400191505060405180910390fd5b61770a81616372565b151560011461774d57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806184366026913960400191505060405180910390fd5b6177588760016182ad565b15156001146177b15760408051600160e51b62461bcd02815260206004820152601260248201527f4e6f7468696e6720746f20617070726f76650000000000000000000000000000604482015290519081900360640190fd5b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261784b939092909183018282801561783e5780601f106178135761010080835404028352916020019161783e565b820191906000526020600020905b81548152906001019060200180831161782157829003601f168201915b5050505050826001617ec6565b156157745760048054604051600160e11b637181418b02815260209281018381528a5160248301528a516001600160a01b039093169363e3028316938c9383926044909101919085019080838360005b838110156178b357818101518382015260200161789b565b50505050905090810190601f1680156178e05780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b1580156178ff57600080fd5b505af1158015617913573d6000803e3d6000fd5b505060018054600954604051600160e01b637b71357902815260448101829052606481018490526084810184905260a0600482019081526008805460026000198289161561010002019091160460a484018190526001600160a01b039095169750637b7135799650948e9490928392918291602481019160c490910190899080156179df5780601f106179b4576101008083540402835291602001916179df565b820191906000526020600020905b8154815290600101906020018083116179c257829003601f168201915b5050838103825287518152875160209182019189019080838360005b83811015617a135781810151838201526020016179fb565b50505050905090810190601f168015617a405780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b158015617a6457600080fd5b505af1158015617a78573d6000803e3d6000fd5b5050600354604051600160e21b633e0b822b02815261ffff80891660448301528716606482015260a0600482019081528a5160a48301528a516001600160a01b03909316945063f82e08ac93508a928a928a928a928f9282916024820191608481019160c49091019060208b019080838360005b83811015617b04578181015183820152602001617aec565b50505050905090810190601f168015617b315780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b83811015617b64578181015183820152602001617b4c565b50505050905090810190601f168015617b915780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b83811015617bc4578181015183820152602001617bac565b50505050905090810190601f168015617bf15780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015617c1657600080fd5b505af1158015617c2a573d6000803e3d6000fd5b50506000805460408051600160e01b63c214e5e50281526001600160a01b038881166024830152600482019283528d5160448301528d519316955063c214e5e594508c9388938392606401916020870191908190849084905b83811015617c9b578181015183820152602001617c83565b50505050905090810190601f168015617cc85780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015617ce857600080fd5b505af1158015617cfc573d6000803e3d6000fd5b505050506040513d602081101561273c57600080fd5b6004805460408051600160e01b638c8642df0281526002602482018190529381019182528451604482015284516000946001600160a01b0390941693638c8642df93879391929091829160649091019060208601908083838c5b83811015617d84578181015183820152602001617d6c565b50505050905090810190601f168015617db15780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015617dcf57600080fd5b505afa158015617de3573d6000803e3d6000fd5b505050506040513d6020811015617df957600080fd5b505192915050565b600480546040517fffe40d1d00000000000000000000000000000000000000000000000000000000815260209281018381528451602483015284516000946001600160a01b039094169363ffe40d1d9387939283926044909201918501908083838b5b83811015617e7c578181015183820152602001617e64565b50505050905090810190601f168015617ea95780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015617dcf57600080fd5b600254604051600160e21b632c084e190281526001600160a01b03848116602483015260448201849052606060048301908152865160648401528651600094929092169263b02138649288928892889282916084019060208701908083838d5b83811015617f3e578181015183820152602001617f26565b50505050905090810190601f168015617f6b5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015617f8c57600080fd5b505af1158015617fa0573d6000803e3d6000fd5b505050506040513d6020811015617fb657600080fd5b5051949350505050565b801561809a5760025460408051600160e01b635607395b0281526001600160a01b03858116602483015260048201928352865160448301528651931692635607395b9287928792829160640190602086019080838360005b83811015618030578181015183820152602001618018565b50505050905090810190601f16801561805d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561807d57600080fd5b505af1158015618091573d6000803e3d6000fd5b50505050618151565b60025460408051600160e11b632ce5eb7f0281526001600160a01b038581166024830152600482019283528651604483015286519316926359cbd6fe9287928792829160640190602086019080838360005b838110156181045781810151838201526020016180ec565b50505050905090810190601f1680156181315780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015615c3857600080fd5b505050565b6001546000906001600160a01b031663abf5739f84846152af815b60048054604051600160e11b630bbe46c502815260209281018381528451602483015284516060946001600160a01b039094169363177c8d8a93879392839260449092019185019080838360005b838110156181d75781810151838201526020016181bf565b50505050905090810190601f1680156182045780820380516001836020036101000a031916815260200191505b509250505060006040518083038186803b15801561822157600080fd5b505afa158015618235573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561825e57600080fd5b810190808051600160201b81111561827557600080fd5b8201602081018481111561828857600080fd5b8151600160201b8111828201871017156182a157600080fd5b50909695505050505050565b6004805460408051600160e01b638c8642df028152602481018590529283019081528451604484015284516000936001600160a01b0390931692638c8642df9287928792829160649091019060208601908083838c83811015613f5f578181015183820152602001613f47565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061835b5782800160ff19823516178555618388565b82800160010185558215618388579182015b8281111561838857823582559160200191906001019061836d565b50612f68926132c09250905b80821115612f68576000815560010161839456fe6f7267206e6f7420696e20617070726f76656420737461747573000000000000496e636f7272656374206e6574776f726b20626f6f7420737461747573000000696e76616c696420616374696f6e2e206f7065726174696f6e206e6f7420616c6c6f77656463616e2062652063616c6c656420627920696e7465726661636520636f6e7472616374206f6e6c796163636f756e74206973206e6f742061206e6574776f726b2061646d696e206163636f756e746163636f756e74206973206e6f742061206f72672061646d696e206163636f756e74a165627a7a72305820076e128f2df9e9b08b731798802e430db87855f1ea7dd2b592784c23ef6897aa0029"
    36  
    37  // DeployPermImpl deploys a new Ethereum contract, binding an instance of PermImpl to it.
    38  func DeployPermImpl(auth *bind.TransactOpts, backend bind.ContractBackend, _permUpgradable common.Address, _orgManager common.Address, _rolesManager common.Address, _accountManager common.Address, _voterManager common.Address, _nodeManager common.Address) (common.Address, *types.Transaction, *PermImpl, error) {
    39  	parsed, err := abi.JSON(strings.NewReader(PermImplABI))
    40  	if err != nil {
    41  		return common.Address{}, nil, nil, err
    42  	}
    43  
    44  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PermImplBin), backend, _permUpgradable, _orgManager, _rolesManager, _accountManager, _voterManager, _nodeManager)
    45  	if err != nil {
    46  		return common.Address{}, nil, nil, err
    47  	}
    48  	return address, tx, &PermImpl{PermImplCaller: PermImplCaller{contract: contract}, PermImplTransactor: PermImplTransactor{contract: contract}, PermImplFilterer: PermImplFilterer{contract: contract}}, nil
    49  }
    50  
    51  // PermImpl is an auto generated Go binding around an Ethereum contract.
    52  type PermImpl struct {
    53  	PermImplCaller     // Read-only binding to the contract
    54  	PermImplTransactor // Write-only binding to the contract
    55  	PermImplFilterer   // Log filterer for contract events
    56  }
    57  
    58  // PermImplCaller is an auto generated read-only Go binding around an Ethereum contract.
    59  type PermImplCaller struct {
    60  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    61  }
    62  
    63  // PermImplTransactor is an auto generated write-only Go binding around an Ethereum contract.
    64  type PermImplTransactor struct {
    65  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    66  }
    67  
    68  // PermImplFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    69  type PermImplFilterer struct {
    70  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    71  }
    72  
    73  // PermImplSession is an auto generated Go binding around an Ethereum contract,
    74  // with pre-set call and transact options.
    75  type PermImplSession struct {
    76  	Contract     *PermImpl         // Generic contract binding to set the session for
    77  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    78  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    79  }
    80  
    81  // PermImplCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    82  // with pre-set call options.
    83  type PermImplCallerSession struct {
    84  	Contract *PermImplCaller // Generic contract caller binding to set the session for
    85  	CallOpts bind.CallOpts   // Call options to use throughout this session
    86  }
    87  
    88  // PermImplTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    89  // with pre-set transact options.
    90  type PermImplTransactorSession struct {
    91  	Contract     *PermImplTransactor // Generic contract transactor binding to set the session for
    92  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
    93  }
    94  
    95  // PermImplRaw is an auto generated low-level Go binding around an Ethereum contract.
    96  type PermImplRaw struct {
    97  	Contract *PermImpl // Generic contract binding to access the raw methods on
    98  }
    99  
   100  // PermImplCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   101  type PermImplCallerRaw struct {
   102  	Contract *PermImplCaller // Generic read-only contract binding to access the raw methods on
   103  }
   104  
   105  // PermImplTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   106  type PermImplTransactorRaw struct {
   107  	Contract *PermImplTransactor // Generic write-only contract binding to access the raw methods on
   108  }
   109  
   110  // NewPermImpl creates a new instance of PermImpl, bound to a specific deployed contract.
   111  func NewPermImpl(address common.Address, backend bind.ContractBackend) (*PermImpl, error) {
   112  	contract, err := bindPermImpl(address, backend, backend, backend)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return &PermImpl{PermImplCaller: PermImplCaller{contract: contract}, PermImplTransactor: PermImplTransactor{contract: contract}, PermImplFilterer: PermImplFilterer{contract: contract}}, nil
   117  }
   118  
   119  // NewPermImplCaller creates a new read-only instance of PermImpl, bound to a specific deployed contract.
   120  func NewPermImplCaller(address common.Address, caller bind.ContractCaller) (*PermImplCaller, error) {
   121  	contract, err := bindPermImpl(address, caller, nil, nil)
   122  	if err != nil {
   123  		return nil, err
   124  	}
   125  	return &PermImplCaller{contract: contract}, nil
   126  }
   127  
   128  // NewPermImplTransactor creates a new write-only instance of PermImpl, bound to a specific deployed contract.
   129  func NewPermImplTransactor(address common.Address, transactor bind.ContractTransactor) (*PermImplTransactor, error) {
   130  	contract, err := bindPermImpl(address, nil, transactor, nil)
   131  	if err != nil {
   132  		return nil, err
   133  	}
   134  	return &PermImplTransactor{contract: contract}, nil
   135  }
   136  
   137  // NewPermImplFilterer creates a new log filterer instance of PermImpl, bound to a specific deployed contract.
   138  func NewPermImplFilterer(address common.Address, filterer bind.ContractFilterer) (*PermImplFilterer, error) {
   139  	contract, err := bindPermImpl(address, nil, nil, filterer)
   140  	if err != nil {
   141  		return nil, err
   142  	}
   143  	return &PermImplFilterer{contract: contract}, nil
   144  }
   145  
   146  // bindPermImpl binds a generic wrapper to an already deployed contract.
   147  func bindPermImpl(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   148  	parsed, err := abi.JSON(strings.NewReader(PermImplABI))
   149  	if err != nil {
   150  		return nil, err
   151  	}
   152  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   153  }
   154  
   155  // Call invokes the (constant) contract method with params as input values and
   156  // sets the output to result. The result type might be a single field for simple
   157  // returns, a slice of interfaces for anonymous returns and a struct for named
   158  // returns.
   159  func (_PermImpl *PermImplRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   160  	return _PermImpl.Contract.PermImplCaller.contract.Call(opts, result, method, params...)
   161  }
   162  
   163  // Transfer initiates a plain transaction to move funds to the contract, calling
   164  // its default method if one is available.
   165  func (_PermImpl *PermImplRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   166  	return _PermImpl.Contract.PermImplTransactor.contract.Transfer(opts)
   167  }
   168  
   169  // Transact invokes the (paid) contract method with params as input values.
   170  func (_PermImpl *PermImplRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   171  	return _PermImpl.Contract.PermImplTransactor.contract.Transact(opts, method, params...)
   172  }
   173  
   174  // Call invokes the (constant) contract method with params as input values and
   175  // sets the output to result. The result type might be a single field for simple
   176  // returns, a slice of interfaces for anonymous returns and a struct for named
   177  // returns.
   178  func (_PermImpl *PermImplCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   179  	return _PermImpl.Contract.contract.Call(opts, result, method, params...)
   180  }
   181  
   182  // Transfer initiates a plain transaction to move funds to the contract, calling
   183  // its default method if one is available.
   184  func (_PermImpl *PermImplTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   185  	return _PermImpl.Contract.contract.Transfer(opts)
   186  }
   187  
   188  // Transact invokes the (paid) contract method with params as input values.
   189  func (_PermImpl *PermImplTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   190  	return _PermImpl.Contract.contract.Transact(opts, method, params...)
   191  }
   192  
   193  // ConnectionAllowed is a free data retrieval call binding the contract method 0x45a59e5b.
   194  //
   195  // Solidity: function connectionAllowed(string _enodeId, string _ip, uint16 _port) view returns(bool)
   196  func (_PermImpl *PermImplCaller) ConnectionAllowed(opts *bind.CallOpts, _enodeId string, _ip string, _port uint16) (bool, error) {
   197  	var out []interface{}
   198  	err := _PermImpl.contract.Call(opts, &out, "connectionAllowed", _enodeId, _ip, _port)
   199  
   200  	if err != nil {
   201  		return *new(bool), err
   202  	}
   203  
   204  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   205  
   206  	return out0, err
   207  
   208  }
   209  
   210  // ConnectionAllowed is a free data retrieval call binding the contract method 0x45a59e5b.
   211  //
   212  // Solidity: function connectionAllowed(string _enodeId, string _ip, uint16 _port) view returns(bool)
   213  func (_PermImpl *PermImplSession) ConnectionAllowed(_enodeId string, _ip string, _port uint16) (bool, error) {
   214  	return _PermImpl.Contract.ConnectionAllowed(&_PermImpl.CallOpts, _enodeId, _ip, _port)
   215  }
   216  
   217  // ConnectionAllowed is a free data retrieval call binding the contract method 0x45a59e5b.
   218  //
   219  // Solidity: function connectionAllowed(string _enodeId, string _ip, uint16 _port) view returns(bool)
   220  func (_PermImpl *PermImplCallerSession) ConnectionAllowed(_enodeId string, _ip string, _port uint16) (bool, error) {
   221  	return _PermImpl.Contract.ConnectionAllowed(&_PermImpl.CallOpts, _enodeId, _ip, _port)
   222  }
   223  
   224  // GetNetworkBootStatus is a free data retrieval call binding the contract method 0x4cbfa82e.
   225  //
   226  // Solidity: function getNetworkBootStatus() view returns(bool)
   227  func (_PermImpl *PermImplCaller) GetNetworkBootStatus(opts *bind.CallOpts) (bool, error) {
   228  	var out []interface{}
   229  	err := _PermImpl.contract.Call(opts, &out, "getNetworkBootStatus")
   230  
   231  	if err != nil {
   232  		return *new(bool), err
   233  	}
   234  
   235  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   236  
   237  	return out0, err
   238  
   239  }
   240  
   241  // GetNetworkBootStatus is a free data retrieval call binding the contract method 0x4cbfa82e.
   242  //
   243  // Solidity: function getNetworkBootStatus() view returns(bool)
   244  func (_PermImpl *PermImplSession) GetNetworkBootStatus() (bool, error) {
   245  	return _PermImpl.Contract.GetNetworkBootStatus(&_PermImpl.CallOpts)
   246  }
   247  
   248  // GetNetworkBootStatus is a free data retrieval call binding the contract method 0x4cbfa82e.
   249  //
   250  // Solidity: function getNetworkBootStatus() view returns(bool)
   251  func (_PermImpl *PermImplCallerSession) GetNetworkBootStatus() (bool, error) {
   252  	return _PermImpl.Contract.GetNetworkBootStatus(&_PermImpl.CallOpts)
   253  }
   254  
   255  // GetPendingOp is a free data retrieval call binding the contract method 0xf346a3a7.
   256  //
   257  // Solidity: function getPendingOp(string _orgId) view returns(string, string, address, uint256)
   258  func (_PermImpl *PermImplCaller) GetPendingOp(opts *bind.CallOpts, _orgId string) (string, string, common.Address, *big.Int, error) {
   259  	var out []interface{}
   260  	err := _PermImpl.contract.Call(opts, &out, "getPendingOp", _orgId)
   261  
   262  	if err != nil {
   263  		return *new(string), *new(string), *new(common.Address), *new(*big.Int), err
   264  	}
   265  
   266  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   267  	out1 := *abi.ConvertType(out[1], new(string)).(*string)
   268  	out2 := *abi.ConvertType(out[2], new(common.Address)).(*common.Address)
   269  	out3 := *abi.ConvertType(out[3], new(*big.Int)).(**big.Int)
   270  
   271  	return out0, out1, out2, out3, err
   272  
   273  }
   274  
   275  // GetPendingOp is a free data retrieval call binding the contract method 0xf346a3a7.
   276  //
   277  // Solidity: function getPendingOp(string _orgId) view returns(string, string, address, uint256)
   278  func (_PermImpl *PermImplSession) GetPendingOp(_orgId string) (string, string, common.Address, *big.Int, error) {
   279  	return _PermImpl.Contract.GetPendingOp(&_PermImpl.CallOpts, _orgId)
   280  }
   281  
   282  // GetPendingOp is a free data retrieval call binding the contract method 0xf346a3a7.
   283  //
   284  // Solidity: function getPendingOp(string _orgId) view returns(string, string, address, uint256)
   285  func (_PermImpl *PermImplCallerSession) GetPendingOp(_orgId string) (string, string, common.Address, *big.Int, error) {
   286  	return _PermImpl.Contract.GetPendingOp(&_PermImpl.CallOpts, _orgId)
   287  }
   288  
   289  // GetPolicyDetails is a free data retrieval call binding the contract method 0xcc9ba6fa.
   290  //
   291  // Solidity: function getPolicyDetails() view returns(string, string, string, bool)
   292  func (_PermImpl *PermImplCaller) GetPolicyDetails(opts *bind.CallOpts) (string, string, string, bool, error) {
   293  	var out []interface{}
   294  	err := _PermImpl.contract.Call(opts, &out, "getPolicyDetails")
   295  
   296  	if err != nil {
   297  		return *new(string), *new(string), *new(string), *new(bool), err
   298  	}
   299  
   300  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   301  	out1 := *abi.ConvertType(out[1], new(string)).(*string)
   302  	out2 := *abi.ConvertType(out[2], new(string)).(*string)
   303  	out3 := *abi.ConvertType(out[3], new(bool)).(*bool)
   304  
   305  	return out0, out1, out2, out3, err
   306  
   307  }
   308  
   309  // GetPolicyDetails is a free data retrieval call binding the contract method 0xcc9ba6fa.
   310  //
   311  // Solidity: function getPolicyDetails() view returns(string, string, string, bool)
   312  func (_PermImpl *PermImplSession) GetPolicyDetails() (string, string, string, bool, error) {
   313  	return _PermImpl.Contract.GetPolicyDetails(&_PermImpl.CallOpts)
   314  }
   315  
   316  // GetPolicyDetails is a free data retrieval call binding the contract method 0xcc9ba6fa.
   317  //
   318  // Solidity: function getPolicyDetails() view returns(string, string, string, bool)
   319  func (_PermImpl *PermImplCallerSession) GetPolicyDetails() (string, string, string, bool, error) {
   320  	return _PermImpl.Contract.GetPolicyDetails(&_PermImpl.CallOpts)
   321  }
   322  
   323  // IsNetworkAdmin is a free data retrieval call binding the contract method 0xd1aa0c20.
   324  //
   325  // Solidity: function isNetworkAdmin(address _account) view returns(bool)
   326  func (_PermImpl *PermImplCaller) IsNetworkAdmin(opts *bind.CallOpts, _account common.Address) (bool, error) {
   327  	var out []interface{}
   328  	err := _PermImpl.contract.Call(opts, &out, "isNetworkAdmin", _account)
   329  
   330  	if err != nil {
   331  		return *new(bool), err
   332  	}
   333  
   334  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   335  
   336  	return out0, err
   337  
   338  }
   339  
   340  // IsNetworkAdmin is a free data retrieval call binding the contract method 0xd1aa0c20.
   341  //
   342  // Solidity: function isNetworkAdmin(address _account) view returns(bool)
   343  func (_PermImpl *PermImplSession) IsNetworkAdmin(_account common.Address) (bool, error) {
   344  	return _PermImpl.Contract.IsNetworkAdmin(&_PermImpl.CallOpts, _account)
   345  }
   346  
   347  // IsNetworkAdmin is a free data retrieval call binding the contract method 0xd1aa0c20.
   348  //
   349  // Solidity: function isNetworkAdmin(address _account) view returns(bool)
   350  func (_PermImpl *PermImplCallerSession) IsNetworkAdmin(_account common.Address) (bool, error) {
   351  	return _PermImpl.Contract.IsNetworkAdmin(&_PermImpl.CallOpts, _account)
   352  }
   353  
   354  // IsOrgAdmin is a free data retrieval call binding the contract method 0x9bd38101.
   355  //
   356  // Solidity: function isOrgAdmin(address _account, string _orgId) view returns(bool)
   357  func (_PermImpl *PermImplCaller) IsOrgAdmin(opts *bind.CallOpts, _account common.Address, _orgId string) (bool, error) {
   358  	var out []interface{}
   359  	err := _PermImpl.contract.Call(opts, &out, "isOrgAdmin", _account, _orgId)
   360  
   361  	if err != nil {
   362  		return *new(bool), err
   363  	}
   364  
   365  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   366  
   367  	return out0, err
   368  
   369  }
   370  
   371  // IsOrgAdmin is a free data retrieval call binding the contract method 0x9bd38101.
   372  //
   373  // Solidity: function isOrgAdmin(address _account, string _orgId) view returns(bool)
   374  func (_PermImpl *PermImplSession) IsOrgAdmin(_account common.Address, _orgId string) (bool, error) {
   375  	return _PermImpl.Contract.IsOrgAdmin(&_PermImpl.CallOpts, _account, _orgId)
   376  }
   377  
   378  // IsOrgAdmin is a free data retrieval call binding the contract method 0x9bd38101.
   379  //
   380  // Solidity: function isOrgAdmin(address _account, string _orgId) view returns(bool)
   381  func (_PermImpl *PermImplCallerSession) IsOrgAdmin(_account common.Address, _orgId string) (bool, error) {
   382  	return _PermImpl.Contract.IsOrgAdmin(&_PermImpl.CallOpts, _account, _orgId)
   383  }
   384  
   385  // TransactionAllowed is a free data retrieval call binding the contract method 0x936421d5.
   386  //
   387  // Solidity: function transactionAllowed(address _sender, address _target, uint256 _value, uint256 _gasPrice, uint256 _gasLimit, bytes _payload) view returns(bool)
   388  func (_PermImpl *PermImplCaller) TransactionAllowed(opts *bind.CallOpts, _sender common.Address, _target common.Address, _value *big.Int, _gasPrice *big.Int, _gasLimit *big.Int, _payload []byte) (bool, error) {
   389  	var out []interface{}
   390  	err := _PermImpl.contract.Call(opts, &out, "transactionAllowed", _sender, _target, _value, _gasPrice, _gasLimit, _payload)
   391  
   392  	if err != nil {
   393  		return *new(bool), err
   394  	}
   395  
   396  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   397  
   398  	return out0, err
   399  
   400  }
   401  
   402  // TransactionAllowed is a free data retrieval call binding the contract method 0x936421d5.
   403  //
   404  // Solidity: function transactionAllowed(address _sender, address _target, uint256 _value, uint256 _gasPrice, uint256 _gasLimit, bytes _payload) view returns(bool)
   405  func (_PermImpl *PermImplSession) TransactionAllowed(_sender common.Address, _target common.Address, _value *big.Int, _gasPrice *big.Int, _gasLimit *big.Int, _payload []byte) (bool, error) {
   406  	return _PermImpl.Contract.TransactionAllowed(&_PermImpl.CallOpts, _sender, _target, _value, _gasPrice, _gasLimit, _payload)
   407  }
   408  
   409  // TransactionAllowed is a free data retrieval call binding the contract method 0x936421d5.
   410  //
   411  // Solidity: function transactionAllowed(address _sender, address _target, uint256 _value, uint256 _gasPrice, uint256 _gasLimit, bytes _payload) view returns(bool)
   412  func (_PermImpl *PermImplCallerSession) TransactionAllowed(_sender common.Address, _target common.Address, _value *big.Int, _gasPrice *big.Int, _gasLimit *big.Int, _payload []byte) (bool, error) {
   413  	return _PermImpl.Contract.TransactionAllowed(&_PermImpl.CallOpts, _sender, _target, _value, _gasPrice, _gasLimit, _payload)
   414  }
   415  
   416  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   417  //
   418  // Solidity: function validateAccount(address _account, string _orgId) view returns(bool)
   419  func (_PermImpl *PermImplCaller) ValidateAccount(opts *bind.CallOpts, _account common.Address, _orgId string) (bool, error) {
   420  	var out []interface{}
   421  	err := _PermImpl.contract.Call(opts, &out, "validateAccount", _account, _orgId)
   422  
   423  	if err != nil {
   424  		return *new(bool), err
   425  	}
   426  
   427  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   428  
   429  	return out0, err
   430  
   431  }
   432  
   433  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   434  //
   435  // Solidity: function validateAccount(address _account, string _orgId) view returns(bool)
   436  func (_PermImpl *PermImplSession) ValidateAccount(_account common.Address, _orgId string) (bool, error) {
   437  	return _PermImpl.Contract.ValidateAccount(&_PermImpl.CallOpts, _account, _orgId)
   438  }
   439  
   440  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   441  //
   442  // Solidity: function validateAccount(address _account, string _orgId) view returns(bool)
   443  func (_PermImpl *PermImplCallerSession) ValidateAccount(_account common.Address, _orgId string) (bool, error) {
   444  	return _PermImpl.Contract.ValidateAccount(&_PermImpl.CallOpts, _account, _orgId)
   445  }
   446  
   447  // AddAdminAccount is a paid mutator transaction binding the contract method 0x4fe57e7a.
   448  //
   449  // Solidity: function addAdminAccount(address _account) returns()
   450  func (_PermImpl *PermImplTransactor) AddAdminAccount(opts *bind.TransactOpts, _account common.Address) (*types.Transaction, error) {
   451  	return _PermImpl.contract.Transact(opts, "addAdminAccount", _account)
   452  }
   453  
   454  // AddAdminAccount is a paid mutator transaction binding the contract method 0x4fe57e7a.
   455  //
   456  // Solidity: function addAdminAccount(address _account) returns()
   457  func (_PermImpl *PermImplSession) AddAdminAccount(_account common.Address) (*types.Transaction, error) {
   458  	return _PermImpl.Contract.AddAdminAccount(&_PermImpl.TransactOpts, _account)
   459  }
   460  
   461  // AddAdminAccount is a paid mutator transaction binding the contract method 0x4fe57e7a.
   462  //
   463  // Solidity: function addAdminAccount(address _account) returns()
   464  func (_PermImpl *PermImplTransactorSession) AddAdminAccount(_account common.Address) (*types.Transaction, error) {
   465  	return _PermImpl.Contract.AddAdminAccount(&_PermImpl.TransactOpts, _account)
   466  }
   467  
   468  // AddAdminNode is a paid mutator transaction binding the contract method 0x8683c7fe.
   469  //
   470  // Solidity: function addAdminNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport) returns()
   471  func (_PermImpl *PermImplTransactor) AddAdminNode(opts *bind.TransactOpts, _enodeId string, _ip string, _port uint16, _raftport uint16) (*types.Transaction, error) {
   472  	return _PermImpl.contract.Transact(opts, "addAdminNode", _enodeId, _ip, _port, _raftport)
   473  }
   474  
   475  // AddAdminNode is a paid mutator transaction binding the contract method 0x8683c7fe.
   476  //
   477  // Solidity: function addAdminNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport) returns()
   478  func (_PermImpl *PermImplSession) AddAdminNode(_enodeId string, _ip string, _port uint16, _raftport uint16) (*types.Transaction, error) {
   479  	return _PermImpl.Contract.AddAdminNode(&_PermImpl.TransactOpts, _enodeId, _ip, _port, _raftport)
   480  }
   481  
   482  // AddAdminNode is a paid mutator transaction binding the contract method 0x8683c7fe.
   483  //
   484  // Solidity: function addAdminNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport) returns()
   485  func (_PermImpl *PermImplTransactorSession) AddAdminNode(_enodeId string, _ip string, _port uint16, _raftport uint16) (*types.Transaction, error) {
   486  	return _PermImpl.Contract.AddAdminNode(&_PermImpl.TransactOpts, _enodeId, _ip, _port, _raftport)
   487  }
   488  
   489  // AddNewRole is a paid mutator transaction binding the contract method 0x1b04c276.
   490  //
   491  // Solidity: function addNewRole(string _roleId, string _orgId, uint256 _access, bool _voter, bool _admin, address _caller) returns()
   492  func (_PermImpl *PermImplTransactor) AddNewRole(opts *bind.TransactOpts, _roleId string, _orgId string, _access *big.Int, _voter bool, _admin bool, _caller common.Address) (*types.Transaction, error) {
   493  	return _PermImpl.contract.Transact(opts, "addNewRole", _roleId, _orgId, _access, _voter, _admin, _caller)
   494  }
   495  
   496  // AddNewRole is a paid mutator transaction binding the contract method 0x1b04c276.
   497  //
   498  // Solidity: function addNewRole(string _roleId, string _orgId, uint256 _access, bool _voter, bool _admin, address _caller) returns()
   499  func (_PermImpl *PermImplSession) AddNewRole(_roleId string, _orgId string, _access *big.Int, _voter bool, _admin bool, _caller common.Address) (*types.Transaction, error) {
   500  	return _PermImpl.Contract.AddNewRole(&_PermImpl.TransactOpts, _roleId, _orgId, _access, _voter, _admin, _caller)
   501  }
   502  
   503  // AddNewRole is a paid mutator transaction binding the contract method 0x1b04c276.
   504  //
   505  // Solidity: function addNewRole(string _roleId, string _orgId, uint256 _access, bool _voter, bool _admin, address _caller) returns()
   506  func (_PermImpl *PermImplTransactorSession) AddNewRole(_roleId string, _orgId string, _access *big.Int, _voter bool, _admin bool, _caller common.Address) (*types.Transaction, error) {
   507  	return _PermImpl.Contract.AddNewRole(&_PermImpl.TransactOpts, _roleId, _orgId, _access, _voter, _admin, _caller)
   508  }
   509  
   510  // AddNode is a paid mutator transaction binding the contract method 0xecad01d5.
   511  //
   512  // Solidity: function addNode(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   513  func (_PermImpl *PermImplTransactor) AddNode(opts *bind.TransactOpts, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   514  	return _PermImpl.contract.Transact(opts, "addNode", _orgId, _enodeId, _ip, _port, _raftport, _caller)
   515  }
   516  
   517  // AddNode is a paid mutator transaction binding the contract method 0xecad01d5.
   518  //
   519  // Solidity: function addNode(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   520  func (_PermImpl *PermImplSession) AddNode(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   521  	return _PermImpl.Contract.AddNode(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   522  }
   523  
   524  // AddNode is a paid mutator transaction binding the contract method 0xecad01d5.
   525  //
   526  // Solidity: function addNode(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   527  func (_PermImpl *PermImplTransactorSession) AddNode(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   528  	return _PermImpl.Contract.AddNode(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   529  }
   530  
   531  // AddOrg is a paid mutator transaction binding the contract method 0xe91b0e19.
   532  //
   533  // Solidity: function addOrg(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _account, address _caller) returns()
   534  func (_PermImpl *PermImplTransactor) AddOrg(opts *bind.TransactOpts, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   535  	return _PermImpl.contract.Transact(opts, "addOrg", _orgId, _enodeId, _ip, _port, _raftport, _account, _caller)
   536  }
   537  
   538  // AddOrg is a paid mutator transaction binding the contract method 0xe91b0e19.
   539  //
   540  // Solidity: function addOrg(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _account, address _caller) returns()
   541  func (_PermImpl *PermImplSession) AddOrg(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   542  	return _PermImpl.Contract.AddOrg(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _account, _caller)
   543  }
   544  
   545  // AddOrg is a paid mutator transaction binding the contract method 0xe91b0e19.
   546  //
   547  // Solidity: function addOrg(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _account, address _caller) returns()
   548  func (_PermImpl *PermImplTransactorSession) AddOrg(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   549  	return _PermImpl.Contract.AddOrg(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _account, _caller)
   550  }
   551  
   552  // AddSubOrg is a paid mutator transaction binding the contract method 0x68a61273.
   553  //
   554  // Solidity: function addSubOrg(string _pOrgId, string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   555  func (_PermImpl *PermImplTransactor) AddSubOrg(opts *bind.TransactOpts, _pOrgId string, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   556  	return _PermImpl.contract.Transact(opts, "addSubOrg", _pOrgId, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   557  }
   558  
   559  // AddSubOrg is a paid mutator transaction binding the contract method 0x68a61273.
   560  //
   561  // Solidity: function addSubOrg(string _pOrgId, string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   562  func (_PermImpl *PermImplSession) AddSubOrg(_pOrgId string, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   563  	return _PermImpl.Contract.AddSubOrg(&_PermImpl.TransactOpts, _pOrgId, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   564  }
   565  
   566  // AddSubOrg is a paid mutator transaction binding the contract method 0x68a61273.
   567  //
   568  // Solidity: function addSubOrg(string _pOrgId, string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   569  func (_PermImpl *PermImplTransactorSession) AddSubOrg(_pOrgId string, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   570  	return _PermImpl.Contract.AddSubOrg(&_PermImpl.TransactOpts, _pOrgId, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   571  }
   572  
   573  // ApproveAdminRole is a paid mutator transaction binding the contract method 0x88843041.
   574  //
   575  // Solidity: function approveAdminRole(string _orgId, address _account, address _caller) returns()
   576  func (_PermImpl *PermImplTransactor) ApproveAdminRole(opts *bind.TransactOpts, _orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   577  	return _PermImpl.contract.Transact(opts, "approveAdminRole", _orgId, _account, _caller)
   578  }
   579  
   580  // ApproveAdminRole is a paid mutator transaction binding the contract method 0x88843041.
   581  //
   582  // Solidity: function approveAdminRole(string _orgId, address _account, address _caller) returns()
   583  func (_PermImpl *PermImplSession) ApproveAdminRole(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   584  	return _PermImpl.Contract.ApproveAdminRole(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   585  }
   586  
   587  // ApproveAdminRole is a paid mutator transaction binding the contract method 0x88843041.
   588  //
   589  // Solidity: function approveAdminRole(string _orgId, address _account, address _caller) returns()
   590  func (_PermImpl *PermImplTransactorSession) ApproveAdminRole(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   591  	return _PermImpl.Contract.ApproveAdminRole(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   592  }
   593  
   594  // ApproveBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x4b20f45f.
   595  //
   596  // Solidity: function approveBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   597  func (_PermImpl *PermImplTransactor) ApproveBlacklistedAccountRecovery(opts *bind.TransactOpts, _orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   598  	return _PermImpl.contract.Transact(opts, "approveBlacklistedAccountRecovery", _orgId, _account, _caller)
   599  }
   600  
   601  // ApproveBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x4b20f45f.
   602  //
   603  // Solidity: function approveBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   604  func (_PermImpl *PermImplSession) ApproveBlacklistedAccountRecovery(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   605  	return _PermImpl.Contract.ApproveBlacklistedAccountRecovery(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   606  }
   607  
   608  // ApproveBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x4b20f45f.
   609  //
   610  // Solidity: function approveBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   611  func (_PermImpl *PermImplTransactorSession) ApproveBlacklistedAccountRecovery(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   612  	return _PermImpl.Contract.ApproveBlacklistedAccountRecovery(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   613  }
   614  
   615  // ApproveBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xa042bf40.
   616  //
   617  // Solidity: function approveBlacklistedNodeRecovery(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   618  func (_PermImpl *PermImplTransactor) ApproveBlacklistedNodeRecovery(opts *bind.TransactOpts, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   619  	return _PermImpl.contract.Transact(opts, "approveBlacklistedNodeRecovery", _orgId, _enodeId, _ip, _port, _raftport, _caller)
   620  }
   621  
   622  // ApproveBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xa042bf40.
   623  //
   624  // Solidity: function approveBlacklistedNodeRecovery(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   625  func (_PermImpl *PermImplSession) ApproveBlacklistedNodeRecovery(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   626  	return _PermImpl.Contract.ApproveBlacklistedNodeRecovery(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   627  }
   628  
   629  // ApproveBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xa042bf40.
   630  //
   631  // Solidity: function approveBlacklistedNodeRecovery(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   632  func (_PermImpl *PermImplTransactorSession) ApproveBlacklistedNodeRecovery(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   633  	return _PermImpl.Contract.ApproveBlacklistedNodeRecovery(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   634  }
   635  
   636  // ApproveOrg is a paid mutator transaction binding the contract method 0xf75f0a06.
   637  //
   638  // Solidity: function approveOrg(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _account, address _caller) returns()
   639  func (_PermImpl *PermImplTransactor) ApproveOrg(opts *bind.TransactOpts, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   640  	return _PermImpl.contract.Transact(opts, "approveOrg", _orgId, _enodeId, _ip, _port, _raftport, _account, _caller)
   641  }
   642  
   643  // ApproveOrg is a paid mutator transaction binding the contract method 0xf75f0a06.
   644  //
   645  // Solidity: function approveOrg(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _account, address _caller) returns()
   646  func (_PermImpl *PermImplSession) ApproveOrg(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   647  	return _PermImpl.Contract.ApproveOrg(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _account, _caller)
   648  }
   649  
   650  // ApproveOrg is a paid mutator transaction binding the contract method 0xf75f0a06.
   651  //
   652  // Solidity: function approveOrg(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _account, address _caller) returns()
   653  func (_PermImpl *PermImplTransactorSession) ApproveOrg(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   654  	return _PermImpl.Contract.ApproveOrg(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _account, _caller)
   655  }
   656  
   657  // ApproveOrgStatus is a paid mutator transaction binding the contract method 0xb5546564.
   658  //
   659  // Solidity: function approveOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   660  func (_PermImpl *PermImplTransactor) ApproveOrgStatus(opts *bind.TransactOpts, _orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   661  	return _PermImpl.contract.Transact(opts, "approveOrgStatus", _orgId, _action, _caller)
   662  }
   663  
   664  // ApproveOrgStatus is a paid mutator transaction binding the contract method 0xb5546564.
   665  //
   666  // Solidity: function approveOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   667  func (_PermImpl *PermImplSession) ApproveOrgStatus(_orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   668  	return _PermImpl.Contract.ApproveOrgStatus(&_PermImpl.TransactOpts, _orgId, _action, _caller)
   669  }
   670  
   671  // ApproveOrgStatus is a paid mutator transaction binding the contract method 0xb5546564.
   672  //
   673  // Solidity: function approveOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   674  func (_PermImpl *PermImplTransactorSession) ApproveOrgStatus(_orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   675  	return _PermImpl.Contract.ApproveOrgStatus(&_PermImpl.TransactOpts, _orgId, _action, _caller)
   676  }
   677  
   678  // AssignAccountRole is a paid mutator transaction binding the contract method 0x8baa8191.
   679  //
   680  // Solidity: function assignAccountRole(address _account, string _orgId, string _roleId, address _caller) returns()
   681  func (_PermImpl *PermImplTransactor) AssignAccountRole(opts *bind.TransactOpts, _account common.Address, _orgId string, _roleId string, _caller common.Address) (*types.Transaction, error) {
   682  	return _PermImpl.contract.Transact(opts, "assignAccountRole", _account, _orgId, _roleId, _caller)
   683  }
   684  
   685  // AssignAccountRole is a paid mutator transaction binding the contract method 0x8baa8191.
   686  //
   687  // Solidity: function assignAccountRole(address _account, string _orgId, string _roleId, address _caller) returns()
   688  func (_PermImpl *PermImplSession) AssignAccountRole(_account common.Address, _orgId string, _roleId string, _caller common.Address) (*types.Transaction, error) {
   689  	return _PermImpl.Contract.AssignAccountRole(&_PermImpl.TransactOpts, _account, _orgId, _roleId, _caller)
   690  }
   691  
   692  // AssignAccountRole is a paid mutator transaction binding the contract method 0x8baa8191.
   693  //
   694  // Solidity: function assignAccountRole(address _account, string _orgId, string _roleId, address _caller) returns()
   695  func (_PermImpl *PermImplTransactorSession) AssignAccountRole(_account common.Address, _orgId string, _roleId string, _caller common.Address) (*types.Transaction, error) {
   696  	return _PermImpl.Contract.AssignAccountRole(&_PermImpl.TransactOpts, _account, _orgId, _roleId, _caller)
   697  }
   698  
   699  // AssignAdminRole is a paid mutator transaction binding the contract method 0x404bf3eb.
   700  //
   701  // Solidity: function assignAdminRole(string _orgId, address _account, string _roleId, address _caller) returns()
   702  func (_PermImpl *PermImplTransactor) AssignAdminRole(opts *bind.TransactOpts, _orgId string, _account common.Address, _roleId string, _caller common.Address) (*types.Transaction, error) {
   703  	return _PermImpl.contract.Transact(opts, "assignAdminRole", _orgId, _account, _roleId, _caller)
   704  }
   705  
   706  // AssignAdminRole is a paid mutator transaction binding the contract method 0x404bf3eb.
   707  //
   708  // Solidity: function assignAdminRole(string _orgId, address _account, string _roleId, address _caller) returns()
   709  func (_PermImpl *PermImplSession) AssignAdminRole(_orgId string, _account common.Address, _roleId string, _caller common.Address) (*types.Transaction, error) {
   710  	return _PermImpl.Contract.AssignAdminRole(&_PermImpl.TransactOpts, _orgId, _account, _roleId, _caller)
   711  }
   712  
   713  // AssignAdminRole is a paid mutator transaction binding the contract method 0x404bf3eb.
   714  //
   715  // Solidity: function assignAdminRole(string _orgId, address _account, string _roleId, address _caller) returns()
   716  func (_PermImpl *PermImplTransactorSession) AssignAdminRole(_orgId string, _account common.Address, _roleId string, _caller common.Address) (*types.Transaction, error) {
   717  	return _PermImpl.Contract.AssignAdminRole(&_PermImpl.TransactOpts, _orgId, _account, _roleId, _caller)
   718  }
   719  
   720  // Init is a paid mutator transaction binding the contract method 0xa5843f08.
   721  //
   722  // Solidity: function init(uint256 _breadth, uint256 _depth) returns()
   723  func (_PermImpl *PermImplTransactor) Init(opts *bind.TransactOpts, _breadth *big.Int, _depth *big.Int) (*types.Transaction, error) {
   724  	return _PermImpl.contract.Transact(opts, "init", _breadth, _depth)
   725  }
   726  
   727  // Init is a paid mutator transaction binding the contract method 0xa5843f08.
   728  //
   729  // Solidity: function init(uint256 _breadth, uint256 _depth) returns()
   730  func (_PermImpl *PermImplSession) Init(_breadth *big.Int, _depth *big.Int) (*types.Transaction, error) {
   731  	return _PermImpl.Contract.Init(&_PermImpl.TransactOpts, _breadth, _depth)
   732  }
   733  
   734  // Init is a paid mutator transaction binding the contract method 0xa5843f08.
   735  //
   736  // Solidity: function init(uint256 _breadth, uint256 _depth) returns()
   737  func (_PermImpl *PermImplTransactorSession) Init(_breadth *big.Int, _depth *big.Int) (*types.Transaction, error) {
   738  	return _PermImpl.Contract.Init(&_PermImpl.TransactOpts, _breadth, _depth)
   739  }
   740  
   741  // RemoveRole is a paid mutator transaction binding the contract method 0x5ca5adbe.
   742  //
   743  // Solidity: function removeRole(string _roleId, string _orgId, address _caller) returns()
   744  func (_PermImpl *PermImplTransactor) RemoveRole(opts *bind.TransactOpts, _roleId string, _orgId string, _caller common.Address) (*types.Transaction, error) {
   745  	return _PermImpl.contract.Transact(opts, "removeRole", _roleId, _orgId, _caller)
   746  }
   747  
   748  // RemoveRole is a paid mutator transaction binding the contract method 0x5ca5adbe.
   749  //
   750  // Solidity: function removeRole(string _roleId, string _orgId, address _caller) returns()
   751  func (_PermImpl *PermImplSession) RemoveRole(_roleId string, _orgId string, _caller common.Address) (*types.Transaction, error) {
   752  	return _PermImpl.Contract.RemoveRole(&_PermImpl.TransactOpts, _roleId, _orgId, _caller)
   753  }
   754  
   755  // RemoveRole is a paid mutator transaction binding the contract method 0x5ca5adbe.
   756  //
   757  // Solidity: function removeRole(string _roleId, string _orgId, address _caller) returns()
   758  func (_PermImpl *PermImplTransactorSession) RemoveRole(_roleId string, _orgId string, _caller common.Address) (*types.Transaction, error) {
   759  	return _PermImpl.Contract.RemoveRole(&_PermImpl.TransactOpts, _roleId, _orgId, _caller)
   760  }
   761  
   762  // SetMigrationPolicy is a paid mutator transaction binding the contract method 0xf5ad584a.
   763  //
   764  // Solidity: function setMigrationPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole, bool _networkBootStatus) returns()
   765  func (_PermImpl *PermImplTransactor) SetMigrationPolicy(opts *bind.TransactOpts, _nwAdminOrg string, _nwAdminRole string, _oAdminRole string, _networkBootStatus bool) (*types.Transaction, error) {
   766  	return _PermImpl.contract.Transact(opts, "setMigrationPolicy", _nwAdminOrg, _nwAdminRole, _oAdminRole, _networkBootStatus)
   767  }
   768  
   769  // SetMigrationPolicy is a paid mutator transaction binding the contract method 0xf5ad584a.
   770  //
   771  // Solidity: function setMigrationPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole, bool _networkBootStatus) returns()
   772  func (_PermImpl *PermImplSession) SetMigrationPolicy(_nwAdminOrg string, _nwAdminRole string, _oAdminRole string, _networkBootStatus bool) (*types.Transaction, error) {
   773  	return _PermImpl.Contract.SetMigrationPolicy(&_PermImpl.TransactOpts, _nwAdminOrg, _nwAdminRole, _oAdminRole, _networkBootStatus)
   774  }
   775  
   776  // SetMigrationPolicy is a paid mutator transaction binding the contract method 0xf5ad584a.
   777  //
   778  // Solidity: function setMigrationPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole, bool _networkBootStatus) returns()
   779  func (_PermImpl *PermImplTransactorSession) SetMigrationPolicy(_nwAdminOrg string, _nwAdminRole string, _oAdminRole string, _networkBootStatus bool) (*types.Transaction, error) {
   780  	return _PermImpl.Contract.SetMigrationPolicy(&_PermImpl.TransactOpts, _nwAdminOrg, _nwAdminRole, _oAdminRole, _networkBootStatus)
   781  }
   782  
   783  // SetPolicy is a paid mutator transaction binding the contract method 0x1b610220.
   784  //
   785  // Solidity: function setPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole) returns()
   786  func (_PermImpl *PermImplTransactor) SetPolicy(opts *bind.TransactOpts, _nwAdminOrg string, _nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   787  	return _PermImpl.contract.Transact(opts, "setPolicy", _nwAdminOrg, _nwAdminRole, _oAdminRole)
   788  }
   789  
   790  // SetPolicy is a paid mutator transaction binding the contract method 0x1b610220.
   791  //
   792  // Solidity: function setPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole) returns()
   793  func (_PermImpl *PermImplSession) SetPolicy(_nwAdminOrg string, _nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   794  	return _PermImpl.Contract.SetPolicy(&_PermImpl.TransactOpts, _nwAdminOrg, _nwAdminRole, _oAdminRole)
   795  }
   796  
   797  // SetPolicy is a paid mutator transaction binding the contract method 0x1b610220.
   798  //
   799  // Solidity: function setPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole) returns()
   800  func (_PermImpl *PermImplTransactorSession) SetPolicy(_nwAdminOrg string, _nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   801  	return _PermImpl.Contract.SetPolicy(&_PermImpl.TransactOpts, _nwAdminOrg, _nwAdminRole, _oAdminRole)
   802  }
   803  
   804  // StartBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x1c249912.
   805  //
   806  // Solidity: function startBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   807  func (_PermImpl *PermImplTransactor) StartBlacklistedAccountRecovery(opts *bind.TransactOpts, _orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   808  	return _PermImpl.contract.Transact(opts, "startBlacklistedAccountRecovery", _orgId, _account, _caller)
   809  }
   810  
   811  // StartBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x1c249912.
   812  //
   813  // Solidity: function startBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   814  func (_PermImpl *PermImplSession) StartBlacklistedAccountRecovery(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   815  	return _PermImpl.Contract.StartBlacklistedAccountRecovery(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   816  }
   817  
   818  // StartBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x1c249912.
   819  //
   820  // Solidity: function startBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   821  func (_PermImpl *PermImplTransactorSession) StartBlacklistedAccountRecovery(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   822  	return _PermImpl.Contract.StartBlacklistedAccountRecovery(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   823  }
   824  
   825  // StartBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xd621d957.
   826  //
   827  // Solidity: function startBlacklistedNodeRecovery(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   828  func (_PermImpl *PermImplTransactor) StartBlacklistedNodeRecovery(opts *bind.TransactOpts, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   829  	return _PermImpl.contract.Transact(opts, "startBlacklistedNodeRecovery", _orgId, _enodeId, _ip, _port, _raftport, _caller)
   830  }
   831  
   832  // StartBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xd621d957.
   833  //
   834  // Solidity: function startBlacklistedNodeRecovery(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   835  func (_PermImpl *PermImplSession) StartBlacklistedNodeRecovery(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   836  	return _PermImpl.Contract.StartBlacklistedNodeRecovery(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   837  }
   838  
   839  // StartBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xd621d957.
   840  //
   841  // Solidity: function startBlacklistedNodeRecovery(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, address _caller) returns()
   842  func (_PermImpl *PermImplTransactorSession) StartBlacklistedNodeRecovery(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _caller common.Address) (*types.Transaction, error) {
   843  	return _PermImpl.Contract.StartBlacklistedNodeRecovery(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _caller)
   844  }
   845  
   846  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x04e81f1e.
   847  //
   848  // Solidity: function updateAccountStatus(string _orgId, address _account, uint256 _action, address _caller) returns()
   849  func (_PermImpl *PermImplTransactor) UpdateAccountStatus(opts *bind.TransactOpts, _orgId string, _account common.Address, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   850  	return _PermImpl.contract.Transact(opts, "updateAccountStatus", _orgId, _account, _action, _caller)
   851  }
   852  
   853  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x04e81f1e.
   854  //
   855  // Solidity: function updateAccountStatus(string _orgId, address _account, uint256 _action, address _caller) returns()
   856  func (_PermImpl *PermImplSession) UpdateAccountStatus(_orgId string, _account common.Address, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   857  	return _PermImpl.Contract.UpdateAccountStatus(&_PermImpl.TransactOpts, _orgId, _account, _action, _caller)
   858  }
   859  
   860  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x04e81f1e.
   861  //
   862  // Solidity: function updateAccountStatus(string _orgId, address _account, uint256 _action, address _caller) returns()
   863  func (_PermImpl *PermImplTransactorSession) UpdateAccountStatus(_orgId string, _account common.Address, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   864  	return _PermImpl.Contract.UpdateAccountStatus(&_PermImpl.TransactOpts, _orgId, _account, _action, _caller)
   865  }
   866  
   867  // UpdateNetworkBootStatus is a paid mutator transaction binding the contract method 0x44478e79.
   868  //
   869  // Solidity: function updateNetworkBootStatus() returns(bool)
   870  func (_PermImpl *PermImplTransactor) UpdateNetworkBootStatus(opts *bind.TransactOpts) (*types.Transaction, error) {
   871  	return _PermImpl.contract.Transact(opts, "updateNetworkBootStatus")
   872  }
   873  
   874  // UpdateNetworkBootStatus is a paid mutator transaction binding the contract method 0x44478e79.
   875  //
   876  // Solidity: function updateNetworkBootStatus() returns(bool)
   877  func (_PermImpl *PermImplSession) UpdateNetworkBootStatus() (*types.Transaction, error) {
   878  	return _PermImpl.Contract.UpdateNetworkBootStatus(&_PermImpl.TransactOpts)
   879  }
   880  
   881  // UpdateNetworkBootStatus is a paid mutator transaction binding the contract method 0x44478e79.
   882  //
   883  // Solidity: function updateNetworkBootStatus() returns(bool)
   884  func (_PermImpl *PermImplTransactorSession) UpdateNetworkBootStatus() (*types.Transaction, error) {
   885  	return _PermImpl.Contract.UpdateNetworkBootStatus(&_PermImpl.TransactOpts)
   886  }
   887  
   888  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0xb9b7fe6c.
   889  //
   890  // Solidity: function updateNodeStatus(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _action, address _caller) returns()
   891  func (_PermImpl *PermImplTransactor) UpdateNodeStatus(opts *bind.TransactOpts, _orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   892  	return _PermImpl.contract.Transact(opts, "updateNodeStatus", _orgId, _enodeId, _ip, _port, _raftport, _action, _caller)
   893  }
   894  
   895  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0xb9b7fe6c.
   896  //
   897  // Solidity: function updateNodeStatus(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _action, address _caller) returns()
   898  func (_PermImpl *PermImplSession) UpdateNodeStatus(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   899  	return _PermImpl.Contract.UpdateNodeStatus(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _action, _caller)
   900  }
   901  
   902  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0xb9b7fe6c.
   903  //
   904  // Solidity: function updateNodeStatus(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _action, address _caller) returns()
   905  func (_PermImpl *PermImplTransactorSession) UpdateNodeStatus(_orgId string, _enodeId string, _ip string, _port uint16, _raftport uint16, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   906  	return _PermImpl.Contract.UpdateNodeStatus(&_PermImpl.TransactOpts, _orgId, _enodeId, _ip, _port, _raftport, _action, _caller)
   907  }
   908  
   909  // UpdateOrgStatus is a paid mutator transaction binding the contract method 0x3cf5f33b.
   910  //
   911  // Solidity: function updateOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   912  func (_PermImpl *PermImplTransactor) UpdateOrgStatus(opts *bind.TransactOpts, _orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   913  	return _PermImpl.contract.Transact(opts, "updateOrgStatus", _orgId, _action, _caller)
   914  }
   915  
   916  // UpdateOrgStatus is a paid mutator transaction binding the contract method 0x3cf5f33b.
   917  //
   918  // Solidity: function updateOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   919  func (_PermImpl *PermImplSession) UpdateOrgStatus(_orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   920  	return _PermImpl.Contract.UpdateOrgStatus(&_PermImpl.TransactOpts, _orgId, _action, _caller)
   921  }
   922  
   923  // UpdateOrgStatus is a paid mutator transaction binding the contract method 0x3cf5f33b.
   924  //
   925  // Solidity: function updateOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   926  func (_PermImpl *PermImplTransactorSession) UpdateOrgStatus(_orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   927  	return _PermImpl.Contract.UpdateOrgStatus(&_PermImpl.TransactOpts, _orgId, _action, _caller)
   928  }
   929  
   930  // PermImplPermissionsInitializedIterator is returned from FilterPermissionsInitialized and is used to iterate over the raw logs and unpacked data for PermissionsInitialized events raised by the PermImpl contract.
   931  type PermImplPermissionsInitializedIterator struct {
   932  	Event *PermImplPermissionsInitialized // Event containing the contract specifics and raw log
   933  
   934  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   935  	event    string              // Event name to use for unpacking event data
   936  
   937  	logs chan types.Log        // Log channel receiving the found contract events
   938  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   939  	done bool                  // Whether the subscription completed delivering logs
   940  	fail error                 // Occurred error to stop iteration
   941  }
   942  
   943  // Next advances the iterator to the subsequent event, returning whether there
   944  // are any more events found. In case of a retrieval or parsing error, false is
   945  // returned and Error() can be queried for the exact failure.
   946  func (it *PermImplPermissionsInitializedIterator) Next() bool {
   947  	// If the iterator failed, stop iterating
   948  	if it.fail != nil {
   949  		return false
   950  	}
   951  	// If the iterator completed, deliver directly whatever's available
   952  	if it.done {
   953  		select {
   954  		case log := <-it.logs:
   955  			it.Event = new(PermImplPermissionsInitialized)
   956  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   957  				it.fail = err
   958  				return false
   959  			}
   960  			it.Event.Raw = log
   961  			return true
   962  
   963  		default:
   964  			return false
   965  		}
   966  	}
   967  	// Iterator still in progress, wait for either a data or an error event
   968  	select {
   969  	case log := <-it.logs:
   970  		it.Event = new(PermImplPermissionsInitialized)
   971  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   972  			it.fail = err
   973  			return false
   974  		}
   975  		it.Event.Raw = log
   976  		return true
   977  
   978  	case err := <-it.sub.Err():
   979  		it.done = true
   980  		it.fail = err
   981  		return it.Next()
   982  	}
   983  }
   984  
   985  // Error returns any retrieval or parsing error occurred during filtering.
   986  func (it *PermImplPermissionsInitializedIterator) Error() error {
   987  	return it.fail
   988  }
   989  
   990  // Close terminates the iteration process, releasing any pending underlying
   991  // resources.
   992  func (it *PermImplPermissionsInitializedIterator) Close() error {
   993  	it.sub.Unsubscribe()
   994  	return nil
   995  }
   996  
   997  // PermImplPermissionsInitialized represents a PermissionsInitialized event raised by the PermImpl contract.
   998  type PermImplPermissionsInitialized struct {
   999  	NetworkBootStatus bool
  1000  	Raw               types.Log // Blockchain specific contextual infos
  1001  }
  1002  
  1003  // FilterPermissionsInitialized is a free log retrieval operation binding the contract event 0x04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf.
  1004  //
  1005  // Solidity: event PermissionsInitialized(bool _networkBootStatus)
  1006  func (_PermImpl *PermImplFilterer) FilterPermissionsInitialized(opts *bind.FilterOpts) (*PermImplPermissionsInitializedIterator, error) {
  1007  
  1008  	logs, sub, err := _PermImpl.contract.FilterLogs(opts, "PermissionsInitialized")
  1009  	if err != nil {
  1010  		return nil, err
  1011  	}
  1012  	return &PermImplPermissionsInitializedIterator{contract: _PermImpl.contract, event: "PermissionsInitialized", logs: logs, sub: sub}, nil
  1013  }
  1014  
  1015  var PermissionsInitializedTopicHash = "0x04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf"
  1016  
  1017  // WatchPermissionsInitialized is a free log subscription operation binding the contract event 0x04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf.
  1018  //
  1019  // Solidity: event PermissionsInitialized(bool _networkBootStatus)
  1020  func (_PermImpl *PermImplFilterer) WatchPermissionsInitialized(opts *bind.WatchOpts, sink chan<- *PermImplPermissionsInitialized) (event.Subscription, error) {
  1021  
  1022  	logs, sub, err := _PermImpl.contract.WatchLogs(opts, "PermissionsInitialized")
  1023  	if err != nil {
  1024  		return nil, err
  1025  	}
  1026  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1027  		defer sub.Unsubscribe()
  1028  		for {
  1029  			select {
  1030  			case log := <-logs:
  1031  				// New log arrived, parse the event and forward to the user
  1032  				event := new(PermImplPermissionsInitialized)
  1033  				if err := _PermImpl.contract.UnpackLog(event, "PermissionsInitialized", log); err != nil {
  1034  					return err
  1035  				}
  1036  				event.Raw = log
  1037  
  1038  				select {
  1039  				case sink <- event:
  1040  				case err := <-sub.Err():
  1041  					return err
  1042  				case <-quit:
  1043  					return nil
  1044  				}
  1045  			case err := <-sub.Err():
  1046  				return err
  1047  			case <-quit:
  1048  				return nil
  1049  			}
  1050  		}
  1051  	}), nil
  1052  }
  1053  
  1054  // ParsePermissionsInitialized is a log parse operation binding the contract event 0x04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf.
  1055  //
  1056  // Solidity: event PermissionsInitialized(bool _networkBootStatus)
  1057  func (_PermImpl *PermImplFilterer) ParsePermissionsInitialized(log types.Log) (*PermImplPermissionsInitialized, error) {
  1058  	event := new(PermImplPermissionsInitialized)
  1059  	if err := _PermImpl.contract.UnpackLog(event, "PermissionsInitialized", log); err != nil {
  1060  		return nil, err
  1061  	}
  1062  	return event, nil
  1063  }