0 txs
3 calls
constructor
constructor()
functions
allPairRewards
viewfunction allPairRewards(uint256 _amount, uint256 _offset, uint256 id) view returns (tuple[] rewards)
getAllNFT
viewfunction getAllNFT(uint256 _amounts, uint256 _offset) view returns (tuple[] _veNFT)
getNFTFromAddress
viewfunction getNFTFromAddress(address _user) view returns (tuple[] venft)
getNFTFromId
viewfunction getNFTFromId(uint256 id) view returns (tuple)
getVotesFromAddress
viewfunction getVotesFromAddress(address _user) view returns (tuple votesResult)
MAX_PAIRS
viewfunction MAX_PAIRS() view returns (uint256)
MAX_RESULTS
viewfunction MAX_RESULTS() view returns (uint256)
multiPairReward
viewfunction multiPairReward(uint256 id, address[] _pairs) view returns (tuple[] rewards)
multiPairRewardTimestamp
viewfunction multiPairRewardTimestamp(uint256 id, address[] _pairs, uint48 ts) view returns (tuple[] rewards)
owner
viewfunction owner() view returns (address)
pairAPI
viewfunction pairAPI() view returns (address)
pairFactory
viewfunction pairFactory() view returns (address)
rewardDisitributor
viewfunction rewardDisitributor() view returns (address)
singlePairReward
viewfunction singlePairReward(uint256 id, address _pair) view returns (tuple[] _reward)
underlyingToken
viewfunction underlyingToken() view returns (address)
ve
viewfunction ve() view returns (address)
voter
viewfunction voter() view returns (address)
initialize
nonpayablefunction initialize(address _voter, address _rewarddistro, address _pairApi, address _factory)
setOwner
nonpayablefunction setOwner(address _owner)
setPairAPI
nonpayablefunction setPairAPI(address _pairApi)
setPairFactory
nonpayablefunction setPairFactory(address _pairFactory)
setRewardDistro
nonpayablefunction setRewardDistro(address _rewarddistro)
setVoter
nonpayablefunction setVoter(address _voter)
events
Initialized
event Initialized(uint8 version)
Owner
event Owner(address oldOwner, address newOwner)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613c13806100206000396000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c80637964bac9116100c3578063b7d5df901161007c578063b7d5df90146102f7578063d432419d1461030a578063d5ecfe631461031d578063dca0815914610330578063e14f870d14610343578063f8c8765e1461035657600080fd5b80637964bac9146102835780637980b43f146102965780638da5cb5b146102b65780638f4723e3146102c9578063996cf233146102dc578063ad95468f146102e457600080fd5b80632495a599116101155780632495a599146101e45780632af6e3be146101f757806346c96aac146102175780634bc2a657146102305780635e558e901461024357806374c73d681461026357600080fd5b8062e0f783146101515780630c8067361461017a57806313af40351461019157806315d05356146101a65780631f850716146101d1575b600080fd5b61016461015f366004613031565b610369565b60405161017191906130bd565b60405180910390f35b6101836103e881565b604051908152602001610171565b6101a461019f3660046131a8565b61037e565b005b6003546101b9906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b6002546101b9906001600160a01b031681565b6001546101b9906001600160a01b031681565b61020a6102053660046131a8565b610465565b604051610171919061332b565b6000546101b9906201000090046001600160a01b031681565b6101a461023e3660046131a8565b6105f9565b61025661025136600461338d565b61063a565b60405161017191906133a6565b6102766102713660046134b0565b6106ba565b6040516101719190613515565b6101a46102913660046131a8565b6107b1565b6102a96102a43660046131a8565b6107ea565b604051610171919061363c565b6006546101b9906001600160a01b031681565b6102766102d7366004613693565b610d0e565b610183601e81565b6102766102f23660046136d9565b610dd4565b6004546101b9906001600160a01b031681565b61020a610318366004613705565b610f5c565b6101a461032b3660046131a8565b6110ca565b6101a461033e3660046131a8565b611344565b6005546101b9906001600160a01b031681565b6101a4610364366004613727565b61137d565b6060610375838361172c565b90505b92915050565b6006546001600160a01b031633146103c95760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b60448201526064015b60405180910390fd5b6001600160a01b03811661040a5760405162461bcd60e51b81526020600482015260086024820152673d32b937a0b2323960c11b60448201526064016103c0565b600680546001600160a01b0319166001600160a01b0383169081179091556040805133815260208101929092527fc53ee02035d465398c0648e0bca1462281006a266ec38c7192bce1c24e0b64a3910160405180910390a150565b6002546040516370a0823160e01b81526001600160a01b0383811660048301526060926000928392839216906370a0823190602401602060405180830381865afa1580156104b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104db9190613783565b9050806001600160401b038111156104f5576104f56133b9565b60405190808252806020026020018201604052801561052e57816020015b61051b612ed6565b8152602001906001900390816105135790505b5093505b808310156105f157600254604051632f745c5960e01b81526001600160a01b0387811660048301526024820186905290911690632f745c5990604401602060405180830381865afa15801561058b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105af9190613783565b915081156105df576105c18286611f79565b8484815181106105d3576105d361379c565b60200260200101819052505b826105e9816137c8565b935050610532565b505050919050565b6006546001600160a01b0316331461061057600080fd5b600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b610642612ed6565b6002546040516331a9108f60e11b8152600481018490526103789184916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b591906137f1565b611f79565b8151606090806001600160401b038111156106d7576106d76133b9565b60405190808252806020026020018201604052801561071757816020015b6040805160208101909152606081528152602001906001900390816106f55790505b50915060005b818110156107a8576000604051806060016040528088815260200187848151811061074a5761074a61379c565b60200260200101516001600160a01b031681526020018665ffffffffffff16815250905061077781612660565b8483815181106107895761078961379c565b60209081029190910101515250806107a0816137c8565b91505061071d565b50509392505050565b6006546001600160a01b031633146107c857600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6108256040518060c0016040528060001515815260200160008152602001600081526020016000815260200160008152602001606081525090565b600080546040516346d7552d60e11b81526001600160a01b0385811660048301526201000090920490911690638daeaa5a90602401602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190613783565b90506000816001600160401b038111156108b7576108b76133b9565b6040519080825280602002602001820160405280156108fc57816020015b60408051808201909152600080825260208201528152602001906001900390816108d55790505b509050600080805b84831015610a8257600054604051633123d6bd60e21b81526001600160a01b03898116600483015260248201869052620100009092049091169063c48f5af490604401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906137f1565b90506001600160a01b03811615610a8257600054604051636568dc8360e11b81526001600160a01b0389811660048301528381166024830152620100009092049091169063cad1b90690604401602060405180830381865afa1580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190613783565b915080848481518110610a2b57610a2b61379c565b6020026020010151600001906001600160a01b031690816001600160a01b03168152505081848481518110610a6257610a6261379c565b602090810291909101810151015282610a7a816137c8565b935050610904565b60008060029054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afa9190613783565b6002546040516309ab24eb60e41b81526001600160a01b038b81166004830152929350911690639ab24eb090602401602060405180830381865afa158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6a9190613783565b6020880152600254604051630748d63560e31b81526001600160a01b038a811660048301526024820184905290911690633a46b1a890604401602060405180830381865afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be49190613783565b60408801526002546001600160a01b0316633a46b1a889610c08620151808561380e565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c759190613783565b6060880152600054604051639a61df8960e01b81526001600160a01b038a811660048301526201000090920490911690639a61df8990602401602060405180830381865afa158015610ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cef9190613783565b6080880181905260a08801959095529390931085525092949350505050565b8051606090806001600160401b03811115610d2b57610d2b6133b9565b604051908082528060200260200182016040528015610d6b57816020015b604080516020810190915260608152815260200190600190039081610d495790505b50915060005b81811015610dcc57610d9c85858381518110610d8f57610d8f61379c565b602002602001015161172c565b838281518110610dae57610dae61379c565b60209081029190910101515280610dc4816137c8565b915050610d71565b505092915050565b60408051601e8082526103e08201909252606091816020015b604080516020810190915260608152815260200190600190039081610ded5790505090506000600560009054906101000a90046001600160a01b03166001600160a01b031663574f2ba36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190613783565b90508360005b610e9a878761380e565b821015610f525782821015610f5257600554604051631e3dd18b60e01b8152600481018490526001600160a01b0390911690631e3dd18b90602401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1691906137f1565b9050610f22858261172c565b848381518110610f3457610f3461379c565b60209081029190910101515281610f4a816137c8565b925050610e90565b5050509392505050565b60606103e8831115610fa05760405162461bcd60e51b815260206004820152600d60248201526c746f6f206d616e79206e66747360981b60448201526064016103c0565b826001600160401b03811115610fb857610fb86133b9565b604051908082528060200260200182016040528015610ff157816020015b610fde612ed6565b815260200190600190039081610fd65790505b5090508160005b611002858561380e565b821015610dcc576002546040516331a9108f60e11b8152600481018490526001600160a01b0390911690636352211e90602401602060405180830381865afa158015611052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107691906137f1565b90506001600160a01b038116156110b8576110918282611f79565b8361109c8685613826565b815181106110ac576110ac61379c565b60200260200101819052505b816110c2816137c8565b925050610ff8565b6006546001600160a01b031633146110e157600080fd5b600380546001600160a01b0319166001600160a01b038381169190911790915560005460408051630fc2838b60e11b815290516201000090920490921691631f8507169160048083019260209291908290030181865afa158015611149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116d91906137f1565b6001600160a01b0316600360009054906101000a90046001600160a01b03166001600160a01b031663dfe050316040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ed91906137f1565b6001600160a01b03161461122c5760405162461bcd60e51b81526020600482015260066024820152657665213d766560d01b60448201526064016103c0565b600360009054906101000a90046001600160a01b03166001600160a01b031663dfe050316040518163ffffffff1660e01b8152600401602060405180830381865afa15801561127f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a391906137f1565b600280546001600160a01b0319166001600160a01b0392909216918217905560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa1580156112fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132191906137f1565b600180546001600160a01b0319166001600160a01b039290921691909117905550565b6006546001600160a01b0316331461135b57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff161580801561139d5750600054600160ff909116105b806113b75750303b1580156113b7575060005460ff166001145b61141a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103c0565b6000805460ff19166001179055801561143d576000805461ff0019166101001790555b60068054336001600160a01b0319918216179091556004805482166001600160a01b038681169190911782556000805462010000600160b01b031916620100008a841681029190911791829055600380549095168984161790945560408051630fc2838b60e11b815290519490910490911692631f850716928281019260209291908290030181865afa1580156114d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fc91906137f1565b6001600160a01b0316600360009054906101000a90046001600160a01b03166001600160a01b031663dfe050316040518163ffffffff1660e01b8152600401602060405180830381865afa158015611558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157c91906137f1565b6001600160a01b0316146115bb5760405162461bcd60e51b81526020600482015260066024820152657665213d766560d01b60448201526064016103c0565b600360009054906101000a90046001600160a01b03166001600160a01b031663dfe050316040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163291906137f1565b600280546001600160a01b0319166001600160a01b0392909216918217905560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa15801561168c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b091906137f1565b600180546001600160a01b03199081166001600160a01b0393841617909155600580549091169184169190911790558015611725576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60606001600160a01b03821615610378576004805460405163e6a4390560e01b81526001600160a01b0385811693820193909352600060248201819052929091169063e6a4390590604401600060405180830381865afa158015611794573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117bc91908101906138b0565b61026081015190915060006001600160a01b0382161561183d57816001600160a01b031663e68863966040518163ffffffff1660e01b8152600401602060405180830381865afa158015611814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118389190613783565b611840565b60005b9050600061184f82600261380e565b6001600160401b03811115611866576118666133b9565b60405190808252806020026020018201604052801561189f57816020015b61188c612f75565b8152602001906001900390816118845790505b506000805460405163b9a09fd560e01b81526001600160a01b038a81166004830152939850919262010000909104169063b9a09fd590602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906137f1565b90506001600160a01b038116611933575050505050610378565b61024085015160c08601516040516338e7023f60e21b81526000926001600160a01b03169163e39c08fc9161197e918d916004019182526001600160a01b0316602082015260400190565b602060405180830381865afa15801561199b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bf9190613783565b6102408701516101608801516040516338e7023f60e21b8152600481018d90526001600160a01b03918216602482015292935060009291169063e39c08fc90604401602060405180830381865afa158015611a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a429190613783565b90508115611ba2576040518061010001604052808b81526020018381526020018860c001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac89190613ad8565b60ff1681526020018a6001600160a01b031681526020018860c001516001600160a01b031681526020018861024001516001600160a01b0316815260200160006001600160a01b031681526020018860c001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611b58573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b809190810190613afb565b81525088600081518110611b9657611b9661379c565b60200260200101819052505b8015611d03576040518061010001604052808b81526020018281526020018861016001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c279190613ad8565b60ff1681526020018a6001600160a01b031681526020018861016001516001600160a01b031681526020018861024001516001600160a01b0316815260200160006001600160a01b031681526020018861016001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611cb9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ce19190810190613afb565b81525088600181518110611cf757611cf761379c565b60200260200101819052505b6001600160a01b038616611d1d5750505050505050610378565b6000805b86821015611f6a57604051637bb7bed160e01b8152600481018390526001600160a01b03891690637bb7bed190602401602060405180830381865afa158015611d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9291906137f1565b6040516338e7023f60e21b8152600481018e90526001600160a01b0380831660248301529192509089169063e39c08fc90604401602060405180830381865afa158015611de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e079190613783565b95506040518061010001604052808d8152602001878152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e839190613ad8565b60ff1681526020018c6001600160a01b03168152602001826001600160a01b0316815260200160006001600160a01b03168152602001896001600160a01b03168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611f06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f2e9190810190613afb565b90528a611f3c84600261380e565b81518110611f4c57611f4c61379c565b60200260200101819052508180611f62906137c8565b925050611d21565b50505050505050505092915050565b611f81612ed6565b6001600160a01b0382161561037857600080546040516346d7552d60e11b81526001600160a01b0385811660048301526201000090920490911690638daeaa5a90602401602060405180830381865afa158015611fe2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120069190613783565b90506000816001600160401b03811115612022576120226133b9565b60405190808252806020026020018201604052801561206757816020015b60408051808201909152600080825260208201528152602001906001900390816120405790505b509050612072612fe1565b600254604051636318523760e01b8152600481018890526001600160a01b0390911690636318523790602401608060405180830381865afa1580156120bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120df9190613b2f565b9050600080805b8583101561226457600054604051633123d6bd60e21b81526001600160a01b038a8116600483015260248201869052620100009092049091169063c48f5af490604401602060405180830381865afa158015612146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216a91906137f1565b90506001600160a01b0381161561226457600054604051636568dc8360e11b81526001600160a01b038a811660048301528381166024830152620100009092049091169063cad1b90690604401602060405180830381865afa1580156121d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f89190613783565b91508085848151811061220d5761220d61379c565b6020026020010151600001906001600160a01b031690816001600160a01b031681525050818584815181106122445761224461379c565b60209081029190910181015101528261225c816137c8565b9350506120e6565b606087018990526001600160a01b03888116610140890152600254604051630acec27b60e21b8152600481018c905265ffffffffffff42166024820152911690632b3b09ec90604401602060405180830381865afa1580156122ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ee91906137f1565b6001600160a01b039081166101608901526002546040805163313ce56760e01b81529051919092169163313ce5679160048083019260209291908290030181865afa158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190613ad8565b60ff16875283516001600160801b031660808801526002546040516339f890b560e21b8152600481018b90526001600160a01b039091169063e7e242d490602401602060405180830381865afa1580156123c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e79190613783565b60a088015260035460405163d1d58b2560e01b8152600481018b90526001600160a01b039091169063d1d58b2590602401602060405180830381865afa158015612435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124599190613783565b60c088015260408481015160e08901526000549051639a61df8960e01b81526001600160a01b038a811660048301526201000090920490911690639a61df8990602401602060405180830381865afa1580156124b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124dd9190613783565b610100880152610120870185905260025460408051637e062a3560e11b815290516001600160a01b039092169163fc0c546a916004808201926020929091908290030181865afa158015612535573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255991906137f1565b6001600160a01b03166101808801819052604080516395d89b4160e01b815290516395d89b41916004808201926000929091908290030181865afa1580156125a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125cd9190810190613afb565b876101a001819052508661018001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263d9190613ad8565b60ff166101c0880152505060006020860181905260408601525050505092915050565b60208101516060906001600160a01b031661267a57919050565b60048054602084015160405163e6a4390560e01b81526001600160a01b03918216938101939093526000602484018190529291169063e6a4390590604401600060405180830381865afa1580156126d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126fd91908101906138b0565b61026081015190915060006001600160a01b0382161561277e57816001600160a01b031663e68863966040518163ffffffff1660e01b8152600401602060405180830381865afa158015612755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127799190613783565b612781565b60005b9050600061279082600261380e565b6001600160401b038111156127a7576127a76133b9565b6040519080825280602002602001820160405280156127e057816020015b6127cd612f75565b8152602001906001900390816127c55790505b5060008054602089015160405163b9a09fd560e01b81526001600160a01b0391821660048201529398509192620100009091049091169063b9a09fd590602401602060405180830381865afa15801561283d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286191906137f1565b90506001600160a01b03811661287b575050505050919050565b60008561024001516001600160a01b0316631a8300278760c001518a600001518b604001516040518463ffffffff1660e01b81526004016128be93929190613b9e565b602060405180830381865afa1580156128db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ff9190613783565b905060008661024001516001600160a01b0316631a8300278861016001518b600001518c604001516040518463ffffffff1660e01b815260040161294593929190613b9e565b602060405180830381865afa158015612962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129869190613783565b90508115612aee576040518061010001604052808a6000015181526020018381526020018860c001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a109190613ad8565b60ff1681526020018a602001516001600160a01b031681526020018860c001516001600160a01b031681526020018861024001516001600160a01b0316815260200160006001600160a01b031681526020018860c001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612aa4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612acc9190810190613afb565b81525088600081518110612ae257612ae261379c565b60200260200101819052505b8015612c57576040518061010001604052808a6000015181526020018281526020018861016001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b779190613ad8565b60ff1681526020018a602001516001600160a01b031681526020018861016001516001600160a01b031681526020018861024001516001600160a01b0316815260200160006001600160a01b031681526020018861016001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612c0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c359190810190613afb565b81525088600181518110612c4b57612c4b61379c565b60200260200101819052505b6001600160a01b038616612c715750505050505050919050565b6000805b86821015612ec857604051637bb7bed160e01b8152600481018390526001600160a01b03891690637bb7bed190602401602060405180830381865afa158015612cc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce691906137f1565b8b516040808e01519051631a83002760e01b81529293506001600160a01b038b1692631a83002792612d1c928692600401613b9e565b602060405180830381865afa158015612d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5d9190613783565b95506040518061010001604052808c600001518152602001878152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ddd9190613ad8565b60ff1681526020018c602001516001600160a01b03168152602001826001600160a01b0316815260200160006001600160a01b03168152602001896001600160a01b03168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612e64573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e8c9190810190613afb565b90528a612e9a84600261380e565b81518110612eaa57612eaa61379c565b60200260200101819052508180612ec0906137c8565b925050612c75565b505050505050505050919050565b604051806101e00160405280600060ff168152602001600015158152602001600081526020016000815260200160006001600160801b03168152602001600081526020016000815260200160008152602001600081526020016060815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160608152602001600081525090565b6040518061010001604052806000815260200160008152602001600060ff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001606081525090565b60405180608001604052806000815260200160008152602001600081526020016000600281111561301457613014613bc7565b905290565b6001600160a01b038116811461302e57600080fd5b50565b6000806040838503121561304457600080fd5b82359150602083013561305681613019565b809150509250929050565b60005b8381101561307c578181015183820152602001613064565b8381111561308b576000848401525b50505050565b600081518084526130a9816020860160208601613061565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561319a57888303603f1901855281518051845287810151888501528681015160ff16878501526060808201516001600160a01b0316908501526080808201516101009190613140828801826001600160a01b03169052565b505060a0828101516001600160a01b03811687830152505060c0828101516001600160a01b03811687830152505060e09182015191850181905261318685820183613091565b9689019694505050908601906001016130e4565b509098975050505050505050565b6000602082840312156131ba57600080fd5b81356131c581613019565b9392505050565b600081518084526020808501945080840160005b8381101561321057815180516001600160a01b0316885283015183880152604090960195908201906001016131e0565b509495945050505050565b805160ff16825260006101e0602083015161323a602086018215159052565b506040830151604085015260608301516060850152608083015161326960808601826001600160801b03169052565b5060a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015182828701526132ac838701826131cc565b92505050610140808401516132cb828701826001600160a01b03169052565b5050610160838101516001600160a01b038116868301525050610180838101516001600160a01b0381168683015250506101a080840151858303828701526133138382613091565b6101c095860151969095019590955250919392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561338057603f1988860301845261336e85835161321b565b94509285019290850190600101613352565b5092979650505050505050565b60006020828403121561339f57600080fd5b5035919050565b602081526000610375602083018461321b565b634e487b7160e01b600052604160045260246000fd5b60405161038081016001600160401b03811182821017156133f2576133f26133b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613420576134206133b9565b604052919050565b600082601f83011261343957600080fd5b813560206001600160401b03821115613454576134546133b9565b8160051b6134638282016133f8565b928352848101820192828101908785111561347d57600080fd5b83870192505b848310156134a557823561349681613019565b82529183019190830190613483565b979650505050505050565b6000806000606084860312156134c557600080fd5b8335925060208401356001600160401b038111156134e257600080fd5b6134ee86828701613428565b925050604084013565ffffffffffff8116811461350a57600080fd5b809150509250925092565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561319a57603f1989840381018652825151888552805189860181905290890190600581901b86018901908987019060005b8181101561362557888403860183528451805185528d8101518e8601528c81015160ff168d8601526060808201516001600160a01b03169086015260808082015161010091906135cb828901826001600160a01b03169052565b505060a0828101516001600160a01b03811688830152505060c0828101516001600160a01b03811688830152505060e09182015191860181905261361186820183613091565b968f019695505050918c0191600101613571565b50505096890196945050509086019060010161353c565b60208152815115156020820152602082015160408201526040820151606082015260608201516080820152608082015160a0820152600060a083015160c08084015261368b60e08401826131cc565b949350505050565b600080604083850312156136a657600080fd5b8235915060208301356001600160401b038111156136c357600080fd5b6136cf85828601613428565b9150509250929050565b6000806000606084860312156136ee57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561371857600080fd5b50508035926020909101359150565b6000806000806080858703121561373d57600080fd5b843561374881613019565b9350602085013561375881613019565b9250604085013561376881613019565b9150606085013561377881613019565b939692955090935050565b60006020828403121561379557600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016137da576137da6137b2565b5060010190565b80516137ec81613019565b919050565b60006020828403121561380357600080fd5b81516131c581613019565b60008219821115613821576138216137b2565b500190565b600082821015613838576138386137b2565b500390565b600082601f83011261384e57600080fd5b81516001600160401b03811115613867576138676133b9565b61387a601f8201601f19166020016133f8565b81815284602083860101111561388f57600080fd5b61368b826020830160208701613061565b805180151581146137ec57600080fd5b6000602082840312156138c257600080fd5b81516001600160401b03808211156138d957600080fd5b9083019061038082860312156138ee57600080fd5b6138f66133cf565b6138ff836137e1565b815260208301518281111561391357600080fd5b61391f8782860161383d565b60208301525060408301518281111561393757600080fd5b6139438782860161383d565b6040830152506060830151606082015261395f608084016138a0565b608082015260a083015160a082015261397a60c084016137e1565b60c082015260e08301518281111561399157600080fd5b61399d8782860161383d565b60e0830152506101008381015190820152610120808401519082015261014080840151908201526101606139d28185016137e1565b9082015261018083810151838111156139ea57600080fd5b6139f68882870161383d565b91830191909152506101a083810151908201526101c080840151908201526101e080840151908201526102009150613a2f8284016137e1565b82820152610220915081830151828201526102409150613a508284016137e1565b828201526102609150613a648284016137e1565b82820152610280915081830151828201526102a09150613a858284016137e1565b918101919091526102c082810151908201526102e0808301519082015261030080830151908201526103208083015190820152610340808301519082015261036091820151918101919091529392505050565b600060208284031215613aea57600080fd5b815160ff811681146131c557600080fd5b600060208284031215613b0d57600080fd5b81516001600160401b03811115613b2357600080fd5b61368b8482850161383d565b600060808284031215613b4157600080fd5b604051608081018181106001600160401b0382111715613b6357613b636133b9565b8060405250825181526020830151602082015260408301516040820152606083015160038110613b9257600080fd5b60608201529392505050565b6001600160a01b03939093168352602083019190915265ffffffffffff16604082015260600190565b634e487b7160e01b600052602160045260246000fdfea264697066735822122095e3971e5f919479392043b5817c8be76f4782f473c5701d7305e174726b99ca64736f6c634300080d0033