ETH Price: $2,190.15 (-1.12%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

2 Internal Transactions found.

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x60806040180286122023-08-30 16:30:11956 days ago1693413011
0xF507733f...e5826A9cD
 Contract Creation0 ETH
0x60a06040180286122023-08-30 16:30:11956 days ago1693413011  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

FixedStrikeOptionTeller

Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled
Yes with 100000 runs
Other Settings
london EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"guardian_","type":"address"},{"internalType":"contract Authority","name":"authority_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CreateFail","type":"error"},{"inputs":[{"internalType":"contract FixedStrikeOptionToken","name":"optionToken","type":"address"}],"name":"Teller_AlreadyReclaimed","type":"error"},{"inputs":[],"name":"Teller_InvalidAmount","type":"error"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes","name":"value","type":"bytes"}],"name":"Teller_InvalidParams","type":"error"},{"inputs":[],"name":"Teller_NotAuthorized","type":"error"},{"inputs":[{"internalType":"uint48","name":"eligible","type":"uint48"}],"name":"Teller_NotEligible","type":"error"},{"inputs":[{"internalType":"uint48","name":"expiry","type":"uint48"}],"name":"Teller_NotExpired","type":"error"},{"inputs":[{"internalType":"uint48","name":"expiry","type":"uint48"}],"name":"Teller_OptionExpired","type":"error"},{"inputs":[],"name":"Teller_PriceOutOfBounds","type":"error"},{"inputs":[{"internalType":"bytes32","name":"optionHash","type":"bytes32"}],"name":"Teller_TokenDoesNotExist","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"Teller_UnsupportedToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract FixedStrikeOptionToken","name":"optionToken","type":"address"},{"indexed":true,"internalType":"contract ERC20","name":"payoutToken","type":"address"},{"indexed":false,"internalType":"contract ERC20","name":"quoteToken","type":"address"},{"indexed":false,"internalType":"uint48","name":"eligible","type":"uint48"},{"indexed":true,"internalType":"uint48","name":"expiry","type":"uint48"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"bool","name":"call","type":"bool"},{"indexed":false,"internalType":"uint256","name":"strikePrice","type":"uint256"}],"name":"OptionTokenCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payout","type":"uint256"}],"name":"WroteOption","type":"event"},{"inputs":[],"name":"FEE_DECIMALS","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20[]","name":"tokens_","type":"address[]"},{"internalType":"address","name":"to_","type":"address"}],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract FixedStrikeOptionToken","name":"","type":"address"}],"name":"collateralClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract FixedStrikeOptionToken","name":"optionToken_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"payoutToken_","type":"address"},{"internalType":"contract ERC20","name":"quoteToken_","type":"address"},{"internalType":"uint48","name":"eligible_","type":"uint48"},{"internalType":"uint48","name":"expiry_","type":"uint48"},{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"bool","name":"call_","type":"bool"},{"internalType":"uint256","name":"strikePrice_","type":"uint256"}],"name":"deploy","outputs":[{"internalType":"contract FixedStrikeOptionToken","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract FixedStrikeOptionToken","name":"optionToken_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"exercise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract FixedStrikeOptionToken","name":"optionToken_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"exerciseCost","outputs":[{"internalType":"contract ERC20","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"name":"fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"payoutToken_","type":"address"},{"internalType":"contract ERC20","name":"quoteToken_","type":"address"},{"internalType":"uint48","name":"eligible_","type":"uint48"},{"internalType":"uint48","name":"expiry_","type":"uint48"},{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"bool","name":"call_","type":"bool"},{"internalType":"uint256","name":"strikePrice_","type":"uint256"}],"name":"getOptionToken","outputs":[{"internalType":"contract FixedStrikeOptionToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"payoutToken_","type":"address"},{"internalType":"contract ERC20","name":"quoteToken_","type":"address"},{"internalType":"uint48","name":"eligible_","type":"uint48"},{"internalType":"uint48","name":"expiry_","type":"uint48"},{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"bool","name":"call_","type":"bool"},{"internalType":"uint256","name":"strikePrice_","type":"uint256"}],"name":"getOptionTokenHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"minOptionDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"optionTokenImplementation","outputs":[{"internalType":"contract FixedStrikeOptionToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"optionTokens","outputs":[{"internalType":"contract FixedStrikeOptionToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFee","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract FixedStrikeOptionToken","name":"optionToken_","type":"address"}],"name":"reclaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"duration_","type":"uint48"}],"name":"setMinOptionDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"fee_","type":"uint48"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
60a060405260016002553480156200001657600080fd5b5060405162005cad38038062005cad83398101604081905262000039916200014f565b600080546001600160a01b03199081166001600160a01b0385811691821784556001805490931690851617909155604051849284929133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a35050600380546001600160601b03191668015180000000000000179055604051620000f59062000128565b604051809103906000f08015801562000112573d6000803e3d6000fd5b506001600160a01b0316608052506200018e9050565b6112798062004a3483390190565b6001600160a01b03811681146200014c57600080fd5b50565b600080604083850312156200016357600080fd5b8251620001708162000136565b6020840151909250620001838162000136565b809150509250929050565b608051614883620001b160003960008181610360015261294b01526148836000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80639f93ce27116100d8578063bf7e214f1161008c578063f2fde38b11610066578063f2fde38b146103bf578063faaebd21146103d2578063fc772c8b146103f257600080fd5b8063bf7e214f14610382578063ccf288c6146103a2578063dd068ec1146103ac57600080fd5b8063b11c414a116100bd578063b11c414a14610309578063b1e5552914610348578063bf4181541461035b57600080fd5b80639f93ce27146102d6578063b0e21e8a146102f757600080fd5b806370e952611161012f5780638da5cb5b116101145780638da5cb5b1461026d57806391e9fbaf1461028d5780639b52d085146102c357600080fd5b806370e95261146102275780637a9e5e4b1461025a57600080fd5b80632872146e116101605780632872146e146101c95780632f6fa94e1461020157806337b90ac71461021457600080fd5b80630d3865f21461017c5780630ecaea73146101b4575b600080fd5b600354610198906601000000000000900465ffffffffffff1681565b60405165ffffffffffff90911681526020015b60405180910390f35b6101c76101c23660046137d8565b610405565b005b6101dc6101d7366004613836565b610a28565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ab565b6101c761020f366004613941565b61104c565b6101c7610222366004613a05565b6111fc565b61024a610235366004613a22565b60066020526000908152604090205460ff1681565b60405190151581526020016101ab565b6101c7610268366004613a22565b611320565b6000546101dc9073ffffffffffffffffffffffffffffffffffffffff1681565b6101dc61029b366004613a3f565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101dc6102d1366004613836565b61147d565b6102e96102e4366004613836565b6115da565b6040519081526020016101ab565b6003546101989065ffffffffffff1681565b61031c6103173660046137d8565b6116d2565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101ab565b6101c7610356366004613a05565b611837565b6101dc7f000000000000000000000000000000000000000000000000000000000000000081565b6001546101dc9073ffffffffffffffffffffffffffffffffffffffff1681565b610198620186a081565b6101c76103ba3660046137d8565b611950565b6101c76103cd366004613a22565b612125565b6102e96103e0366004613a22565b60046020526000908152604090205481565b6101c7610400366004613a22565b612229565b600254600114610476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e43590000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600280819055506000806000806000806000808973ffffffffffffffffffffffffffffffffffffffff16632e6262596040518163ffffffff1660e01b815260040161010060405180830381865afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f99190613a69565b97509750975097509750975097509750600061051a8888888888888861147d565b90508073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614610599576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c16600482015260240161046d565b428565ffffffffffff16116105e4576040517f6971ee8900000000000000000000000000000000000000000000000000000000815265ffffffffffff8616600482015260240161046d565b8215610794576040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b9190613b0c565b905061069f73ffffffffffffffffffffffffffffffffffffffff8a1633308e612618565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190613b0c565b905061073c8c83613b54565b81101561078d576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b16600482015260240161046d565b5050610990565b60006107ad836107a58c600a613c8c565b8d91906127b4565b9050806000036107e9576040517f4ee4e14600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa158015610856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087a9190613b0c565b905061089e73ffffffffffffffffffffffffffffffffffffffff8a16333085612618565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa15801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092f9190613b0c565b905061093b8383613b54565b81101561098c576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b16600482015260240161046d565b5050505b6040517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018b905273ffffffffffffffffffffffffffffffffffffffff8216906340c10f1990604401600060405180830381600087803b1580156109fe57600080fd5b505af1158015610a12573d6000803e3d6000fd5b5050600160025550505050505050505050505050565b6000600254600114610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e435900000000000000000000000000000000000000000000604482015260640161046d565b6002805565ffffffffffff8616600003610aae574295505b610abb6201518087613cca565b610ac89062015180613cef565b9550610ad76201518086613cca565b610ae49062015180613cef565b9450610af36201518042613d1d565b610b009062015180613cef565b65ffffffffffff168665ffffffffffff161015610bac576040517fffffffffffff000000000000000000000000000000000000000000000000000060d088901b1660208201526002906026015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f234e256100000000000000000000000000000000000000000000000000000000825261046d9291600401613dab565b8465ffffffffffff168665ffffffffffff161180610bee57506003546601000000000000900465ffffffffffff16610be48787613dcc565b65ffffffffffff16105b15610c2d576040517fffffffffffff000000000000000000000000000000000000000000000000000060d087901b166020820152600390602601610b4d565b73ffffffffffffffffffffffffffffffffffffffff88161580610c65575073ffffffffffffffffffffffffffffffffffffffff88163b155b15610ca4576040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b166020820152600090603401610b4d565b73ffffffffffffffffffffffffffffffffffffffff87161580610cdc575073ffffffffffffffffffffffffffffffffffffffff87163b155b15610d1b576040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606089901b166020820152600190603401610b4d565b73ffffffffffffffffffffffffffffffffffffffff8416610d70576040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152600490603401610b4d565b60008773ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de19190613df3565b90506000610def8483612813565b9050831580610e165750610e04600283613e0e565b610e0d90613e30565b60000b8160000b125b15610e3057600684604051602001610b4d91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608d811b82166020808501919091528d821b831660348501527fffffffffffff000000000000000000000000000000000000000000000000000060d08e811b821660488701528d901b16604e850152908a901b909116605483015287151560f81b60688301526069808301889052835180840390910181526089909201909252805191012060009060008181526005602052604090205490915073ffffffffffffffffffffffffffffffffffffffff168061103857610f1a8c8c8c8c8c8c8c612852565b90508073ffffffffffffffffffffffffffffffffffffffff166389ccfe896040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f6457600080fd5b505af1158015610f78573d6000803e3d6000fd5b50505060008381526005602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925583519081528f82169281019290925265ffffffffffff8e8116938301939093528a15156060830152608082018a90528b81169350918c16918f16907f495098420a9826864ebc9c22dc93036e4cd362259e53ff335611beda46c59b7d9060a00160405180910390a45b60016002559b9a5050505050505050505050565b6002546001146110b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e435900000000000000000000000000000000000000000000604482015260640161046d565b600280556110ea337fffffffff0000000000000000000000000000000000000000000000000000000060003516612971565b611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161046d565b815160005b818110156111f157600084828151811061117157611171613e6e565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff81166000908152600490925260409091205490915080156111de5773ffffffffffffffffffffffffffffffffffffffff82166000818152600460205260408120556111de908683612a82565b5050806111ea90613e9d565b9050611155565b505060016002555050565b61122a336000357fffffffff0000000000000000000000000000000000000000000000000000000016612971565b611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161046d565b6201518065ffffffffffff821610156112dd576040517fffffffffffff000000000000000000000000000000000000000000000000000060d083901b166020820152600090602601610b4d565b6003805465ffffffffffff9092166601000000000000027fffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633148061140357506001546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201526000357fffffffff0000000000000000000000000000000000000000000000000000000016604482015273ffffffffffffffffffffffffffffffffffffffff9091169063b700961390606401602060405180830381865afa1580156113df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114039190613ed5565b61140c57600080fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b60008061148d6201518088613cca565b61149a9062015180613cef565b905060006114ab6201518088613cca565b6114b89062015180613cef565b604080517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608e811b82166020808501919091528e821b831660348501527fffffffffffff000000000000000000000000000000000000000000000000000060d089811b8216604887015287901b16604e850152908b901b909116605483015288151560f81b60688301526069808301899052835180840390910181526089909201909252805191012090915060009060008181526005602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16806115cb576040517f3733cad60000000000000000000000000000000000000000000000000000000081526004810183905260240161046d565b9b9a5050505050505050505050565b6000806115ea6201518088613cca565b6115f79062015180613cef565b905060006116086201518088613cca565b6116159062015180613cef565b604080517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608e811b82166020808501919091528e821b831660348501527fffffffffffff000000000000000000000000000000000000000000000000000060d089811b8216604887015287901b16604e850152908b901b909116605483015288151560f81b6068830152606980830189905283518084039091018152608990920190925280519101209091505b9a9950505050505050505050565b6000806000806000806000806000808b73ffffffffffffffffffffffffffffffffffffffff16632e6262596040518163ffffffff1660e01b815260040161010060405180830381865afa15801561172d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117519190613a69565b9750975097509750975097509750975060006117728888888888888861147d565b90508073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16146117f1576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e16600482015260240161046d565b8215611821578661180f836118078c600a613c8c565b8f91906127b4565b9a509a50505050505050505050611830565b50959850899750505050505050505b9250929050565b611865336000357fffffffff0000000000000000000000000000000000000000000000000000000016612971565b6118cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161046d565b6113888165ffffffffffff161115611917576040517fffffffffffff000000000000000000000000000000000000000000000000000060d083901b166020820152600090602601610b4d565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b6002546001146119bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e435900000000000000000000000000000000000000000000604482015260640161046d565b600280819055506000806000806000806000808973ffffffffffffffffffffffffffffffffffffffff16632e6262596040518163ffffffff1660e01b815260040161010060405180830381865afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f9190613a69565b975097509750975097509750975097506000611a608888888888888861147d565b90508073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614611adf576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c16600482015260240161046d565b8565ffffffffffff164265ffffffffffff161015611b33576040517fd6c4b4f100000000000000000000000000000000000000000000000000000000815265ffffffffffff8716600482015260240161046d565b8465ffffffffffff164265ffffffffffff1610611b86576040517f6971ee8900000000000000000000000000000000000000000000000000000000815265ffffffffffff8616600482015260240161046d565b6000611b97836107a58c600a613c8c565b90503373ffffffffffffffffffffffffffffffffffffffff86161461203f578315611dfa57600354600090620186a090611bd99065ffffffffffff1684613ef2565b611be39190613d1d565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260046020526040812080549293508392909190611c1d908490613b54565b90915550506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa158015611c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb39190613b0c565b9050611cd773ffffffffffffffffffffffffffffffffffffffff8b16333086612618565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8c16906370a0823190602401602060405180830381865afa158015611d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d689190613b0c565b9050611d748483613b54565b811015611dc5576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c16600482015260240161046d565b50611df4905086611dd68385613f2f565b73ffffffffffffffffffffffffffffffffffffffff8c169190612a82565b5061203f565b600354600090620186a090611e179065ffffffffffff168e613ef2565b611e219190613d1d565b73ffffffffffffffffffffffffffffffffffffffff8b16600090815260046020526040812080549293508392909190611e5b908490613b54565b90915550506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8c16906370a0823190602401602060405180830381865afa158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef19190613b0c565b9050611f2033308f8e73ffffffffffffffffffffffffffffffffffffffff16612618909392919063ffffffff16565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8d16906370a0823190602401602060405180830381865afa158015611f8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb19190613b0c565b9050611fbd8e83613b54565b81101561200e576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d16600482015260240161046d565b5061203d90508661201f838f613f2f565b73ffffffffffffffffffffffffffffffffffffffff8d169190612a82565b505b6040517f9dc29fac000000000000000000000000000000000000000000000000000000008152336004820152602481018c905273ffffffffffffffffffffffffffffffffffffffff831690639dc29fac90604401600060405180830381600087803b1580156120ad57600080fd5b505af11580156120c1573d6000803e3d6000fd5b5050505083156120f1576120ec73ffffffffffffffffffffffffffffffffffffffff8a16338d612a82565b612112565b61211273ffffffffffffffffffffffffffffffffffffffff89163383612a82565b5050600160025550505050505050505050565b612153336000357fffffffff0000000000000000000000000000000000000000000000000000000016612971565b6121b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161046d565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600254600114612295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e435900000000000000000000000000000000000000000000604482015260640161046d565b600280819055506000806000806000806000808873ffffffffffffffffffffffffffffffffffffffff16632e6262596040518163ffffffff1660e01b815260040161010060405180830381865afa1580156122f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123189190613a69565b9750975097509750975097509750975060006123398888888888888861147d565b90508073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16146123b8576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b16600482015260240161046d565b8465ffffffffffff164265ffffffffffff16101561240c576040517fe49820a000000000000000000000000000000000000000000000000000000000815265ffffffffffff8616600482015260240161046d565b3373ffffffffffffffffffffffffffffffffffffffff85161461245b576040517fe0d7559000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604090205460ff16156124d3576040517f3fa0ac7e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015260240161046d565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260066020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580517f18160ddd00000000000000000000000000000000000000000000000000000000815290519293926318160ddd926004808401939192918290030181865afa158015612576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259a9190613b0c565b905083156125c8576125c373ffffffffffffffffffffffffffffffffffffffff8a168683612a82565b612606565b60006125e1846125d98d600a613c8c565b8491906127b4565b905061260473ffffffffffffffffffffffffffffffffffffffff8a168783612a82565b505b50506001600255505050505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916126b79190613f46565b6000604051808303816000865af19150503d80600081146126f4576040519150601f19603f3d011682016040523d82523d6000602084013e6126f9565b606091505b50915091508180156127235750805115806127235750808060200190518101906127239190613ed5565b8015612746575060008673ffffffffffffffffffffffffffffffffffffffff163b115b6127ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c4544000000000000000000000000604482015260640161046d565b505050505050565b60006127c1848484612c15565b9050600082806127d3576127d3613c9b565b848609111561280c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811061280857600080fd5b6001015b9392505050565b6000805b600a841061283e5761282a600a85613d1d565b93508061283681613f62565b915050612817565b6128488382613f81565b9150505b92915050565b600080600061286c8a8a8965ffffffffffff168888612ce1565b915091506116c482828c73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e49190613df3565b8d8d8d8d8d8d308e6040516020016129069b9a99989796959493929190613fe3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169061323d565b60015460009073ffffffffffffffffffffffffffffffffffffffff168015801590612a5557506040517fb700961300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301523060248301527fffffffff000000000000000000000000000000000000000000000000000000008516604483015282169063b700961390606401602060405180830381865afa158015612a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a559190613ed5565b80612848575060005473ffffffffffffffffffffffffffffffffffffffff85811691161491505092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790529151600092839290871691612b199190613f46565b6000604051808303816000865af19150503d8060008114612b56576040519150601f19603f3d011682016040523d82523d6000602084013e612b5b565b606091505b5091509150818015612b85575080511580612b85575080806020019051810190612b859190613ed5565b8015612ba8575060008573ffffffffffffffffffffffffffffffffffffffff163b115b612c0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c45440000000000000000000000000000000000604482015260640161046d565b5050505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003612c6c5760008411612c6157600080fd5b50829004905061280c565b808411612c7857600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000806060808083612cf6620151808a613d1d565b90506000612d078262010bd9614134565b612d149062253d8c614134565b9050600062023ab1612d278360046141a8565b612d319190614264565b90506004612d428262023ab16141a8565b612d4d906003614134565b612d579190614264565b612d6190836142cc565b9150600062164b09612d74846001614134565b612d8090610fa06141a8565b612d8a9190614264565b90506004612d9a826105b56141a8565b612da49190614264565b612dae90846142cc565b612db990601f614134565b9250600061098f612dcb8560506141a8565b612dd59190614264565b905060006050612de78361098f6141a8565b612df19190614264565b612dfb90866142cc565b9050612e08600b83614264565b9450612e1585600c6141a8565b612e20836002614134565b612e2a91906142cc565b91508483612e396031876142cc565b612e449060646141a8565b612e4e9190614134565b612e589190614134565b9250612e6e612e6961271085614340565b613443565b9850600a8210612e8657612e8182613443565b612eaf565b612e8f82613443565b604051602001612e9f9190614354565b6040516020818303038152906040525b9750600a8110612ec757612ec281613443565b612ef0565b612ed081613443565b604051602001612ee09190614354565b6040516020818303038152906040525b96505050505050506060808b73ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612f46573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612f8c9190810190614399565b9050600581511115612fe257612fa181614442565b6040517fffffffffff000000000000000000000000000000000000000000000000000000909116602082015260250160405160208183030381529060405290505b60008b73ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561302f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526130759190810190614399565b90506005815111156130cb5761308a81614442565b6040517fffffffffff000000000000000000000000000000000000000000000000000000909116602082015260250160405160208183030381529060405290505b81816040516020016130de929190614492565b60405160208183030381529060405292505060008961311d577f500000000000000000000000000000000000000000000000000000000000000061313f565b7f43000000000000000000000000000000000000000000000000000000000000005b905060006131bb8a8e73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b69190613df3565b6135a3565b905060008483838a8a8a6040516020016131da969594939291906144ea565b6040516020818303038152906040526131f2906145bd565b905060008489898960405160200161320d9493929190614602565b604051602081830303815290604052613225906145bd565b919a5090985050505050505050509550959350505050565b80516040517f3d610000000000000000000000000000000000000000000000000000000000008152603a820160f081811b6002848101919091527f80600b3d3981f30000000000000000000000000000000000000000000000000060048501527f363d3d3761000000000000000000000000000000000000000000000000000000600b8501528401901b601083018190527f603836393d3d3d366100000000000000000000000000000000000000000000006012840152601b8301527f013d730000000000000000000000000000000000000000000000000000000000601d830152606085901b6020808401919091527f5af43d82803e903d91603657fd5bf3000000000000000000000000000000000060348401526000939260458401929186019084604382015b602082106133a357835181526020938401937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019101613366565b83517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208490036101000a0119908116825260f088901b91830191825286846000f0985073ffffffffffffffffffffffffffffffffffffffff8916613435576040517febfef18800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505092915050565b60608160000361348657505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156134b0578061349a81613e9d565b91506134a99050600a83613d1d565b915061348a565b60008167ffffffffffffffff8111156134cb576134cb6138c3565b6040519080825280601f01601f1916602001820160405280156134f5576020820181803683370190505b509050815b851561359a5761350b600182613f2f565b9050600061351a600a88613d1d565b61352590600a613ef2565b61352f9088613f2f565b61353a9060306146b1565b905060008160f81b90508084848151811061355757613557613e6e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350613591600a89613d1d565b975050506134fa565b50949350505050565b606060006135b18484612813565b9050606060008260000b12156136015760006135cc83613e30565b60ff1690506135da81613443565b6040516020016135ea91906146d6565b604051602081830303815290604052915050613631565b60ff821661360e81613443565b60405160200161361e919061471b565b6040516020818303038152906040529150505b600061363d8386614753565b9050600060038260ff161061365c576136576003836147b4565b61365f565b60005b61366a90600a613c8c565b6136749088613d1d565b9050600061368182613443565b8051909150600082818361369757613697613e6e565b016020908101516040517fff00000000000000000000000000000000000000000000000000000000000000909116918101919091527f2e000000000000000000000000000000000000000000000000000000000000006021820152602201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060015b82811015613781578184828151811061374357613743613e6e565b602001015160f81c60f81b60405160200161375f9291906147d7565b60405160208183030381529060405291508061377a90613e9d565b9050613728565b50808660405160200161379592919061481e565b60405160208183030381529060405297505050505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff811681146137d557600080fd5b50565b600080604083850312156137eb57600080fd5b82356137f6816137b3565b946020939093013593505050565b65ffffffffffff811681146137d557600080fd5b8035613823816137b3565b919050565b80151581146137d557600080fd5b600080600080600080600060e0888a03121561385157600080fd5b873561385c816137b3565b9650602088013561386c816137b3565b9550604088013561387c81613804565b9450606088013561388c81613804565b9350608088013561389c816137b3565b925060a08801356138ac81613828565b8092505060c0880135905092959891949750929550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613939576139396138c3565b604052919050565b6000806040838503121561395457600080fd5b823567ffffffffffffffff8082111561396c57600080fd5b818501915085601f83011261398057600080fd5b8135602082821115613994576139946138c3565b8160051b92506139a58184016138f2565b82815292840181019281810190898511156139bf57600080fd5b948201945b848610156139e957853593506139d9846137b3565b83825294820194908201906139c4565b96506139f89050878201613818565b9450505050509250929050565b600060208284031215613a1757600080fd5b813561280c81613804565b600060208284031215613a3457600080fd5b813561280c816137b3565b600060208284031215613a5157600080fd5b5035919050565b805160ff8116811461382357600080fd5b600080600080600080600080610100898b031215613a8657600080fd5b613a8f89613a58565b97506020890151613a9f816137b3565b60408a0151909750613ab0816137b3565b60608a0151909650613ac181613804565b60808a0151909550613ad281613804565b60a08a0151909450613ae3816137b3565b60c08a0151909350613af481613828565b8092505060e089015190509295985092959890939650565b600060208284031215613b1e57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613b6757613b67613b25565b500190565b600181815b80851115613bc557817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115613bab57613bab613b25565b80851615613bb857918102915b93841c9390800290613b71565b509250929050565b600082613bdc5750600161284c565b81613be95750600061284c565b8160018114613bff5760028114613c0957613c25565b600191505061284c565b60ff841115613c1a57613c1a613b25565b50506001821b61284c565b5060208310610133831016604e8410600b8410161715613c48575081810a61284c565b613c528383613b6c565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115613c8457613c84613b25565b029392505050565b600061280c60ff841683613bcd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600065ffffffffffff80841680613ce357613ce3613c9b565b92169190910492915050565b600065ffffffffffff80831681851681830481118215151615613d1457613d14613b25565b02949350505050565b600082613d2c57613d2c613c9b565b500490565b60005b83811015613d4c578181015183820152602001613d34565b83811115613d5b576000848401525b50505050565b60008151808452613d79816020860160208601613d31565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b828152604060208201526000613dc46040830184613d61565b949350505050565b600065ffffffffffff83811690831681811015613deb57613deb613b25565b039392505050565b600060208284031215613e0557600080fd5b61280c82613a58565b600060ff831680613e2157613e21613c9b565b8060ff84160491505092915050565b60008160000b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808103613e6557613e65613b25565b60000392915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ece57613ece613b25565b5060010190565b600060208284031215613ee757600080fd5b815161280c81613828565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f2a57613f2a613b25565b500290565b600082821015613f4157613f41613b25565b500390565b60008251613f58818460208701613d31565b9190910192915050565b60008160000b607f8103613f7857613f78613b25565b60010192915050565b60008160000b8360000b60008112817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001831281151615613fc457613fc4613b25565b81607f018313811615613fd957613fd9613b25565b5090039392505050565b8b81528a60208201527fff000000000000000000000000000000000000000000000000000000000000008a60f81b1660408201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008960601b166041820152614073605582018960601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b60007fffffffffffff0000000000000000000000000000000000000000000000000000808960d01b166069840152808860d01b16606f840152506140de607583018760601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b84151560f81b608983015261411a608a83018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b50609e81019190915260be019a9950505050505050505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561416e5761416e613b25565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156141a2576141a2613b25565b50500190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156141e9576141e9613b25565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561422457614224613b25565b6000871292508782058712848416161561424057614240613b25565b8785058712818416161561425657614256613b25565b505050929093029392505050565b60008261427357614273613c9b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156142c7576142c7613b25565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561430657614306613b25565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01831381161561433a5761433a613b25565b50500390565b60008261434f5761434f613c9b565b500690565b7f300000000000000000000000000000000000000000000000000000000000000081526000825161438c816001850160208701613d31565b9190910160010192915050565b6000602082840312156143ab57600080fd5b815167ffffffffffffffff808211156143c357600080fd5b818401915084601f8301126143d757600080fd5b8151818111156143e9576143e96138c3565b61441a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016138f2565b915080825285602082850101111561443157600080fd5b61359a816020840160208601613d31565b6000815160208301517fffffffffff0000000000000000000000000000000000000000000000000000008082169350600583101561448a5780818460050360031b1b83161693505b505050919050565b600083516144a4818460208801613d31565b7f2f0000000000000000000000000000000000000000000000000000000000000090830190815283516144de816001840160208801613d31565b01600101949350505050565b600087516144fc818460208c01613d31565b80830190507f20000000000000000000000000000000000000000000000000000000000000008082527fff00000000000000000000000000000000000000000000000000000000000000891660018301528060028301528751614566816003850160208c01613d31565b60039201918201528551614581816004840160208a01613d31565b8551910190614597816004840160208901613d31565b84519101906145ad816004840160208801613d31565b0160040198975050505050505050565b805160208083015191908110156145fc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b7f6f0000000000000000000000000000000000000000000000000000000000000081526000855161463a816001850160208a01613d31565b7f2d000000000000000000000000000000000000000000000000000000000000006001918401918201528551614677816002840160208a01613d31565b855191019061468d816002840160208901613d31565b84519101906146a3816002840160208801613d31565b016002019695505050505050565b600060ff821660ff84168060ff038211156146ce576146ce613b25565b019392505050565b7f652d00000000000000000000000000000000000000000000000000000000000081526000825161470e816002850160208701613d31565b9190910160020192915050565b7f652b00000000000000000000000000000000000000000000000000000000000081526000825161470e816002850160208701613d31565b60008160000b8360000b6000821282607f0382138115161561477757614777613b25565b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800382128116156147ab576147ab613b25565b50019392505050565b600060ff821660ff8416808210156147ce576147ce613b25565b90039392505050565b600083516147e9818460208801613d31565b7fff00000000000000000000000000000000000000000000000000000000000000939093169190920190815260010192915050565b60008351614830818460208801613d31565b835190830190614844818360208801613d31565b0194935050505056fea264697066735822122001df85e9ffa31ae8f1bcfdbb120369fe8c76538b7f6be2c8180228560f89fc5f64736f6c634300080f0033608060405234801561001057600080fd5b50611259806100206000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80637ecebe00116100f9578063a9059cbb11610097578063d832d92f11610071578063d832d92f14610407578063dd62ed3e14610426578063e184c9be14610451578063f7260d3e1461045957600080fd5b8063a9059cbb146103d9578063ad8f5008146103ec578063d505accf146103f457600080fd5b8063999b93af116100d3578063999b93af146103a25780639a8a0592146103aa5780639dc29fac146103b3578063a457c2d7146103c657600080fd5b80637ecebe001461037257806389ccfe891461039257806395d89b411461039a57600080fd5b8063313ce5671161016657806340c10f191161014057806340c10f191461030857806357edab4e1461031d57806363bd1d4a1461034a57806370a082311461035257600080fd5b8063313ce567146102d35780633644e515146102ed57806339509351146102f557600080fd5b806323b872dd116101a257806323b872dd1461022157806328b5e32b146102345780632e6262591461023c57806330adf81f146102ac57600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d1610461565b6040516101de9190610ffb565b60405180910390f35b6101fa6101f5366004611097565b610493565b60405190151581526020016101de565b61021360005481565b6040519081526020016101de565b6101fa61022f3660046110c1565b61050c565b6101fa610650565b610244610661565b6040805160ff99909916895273ffffffffffffffffffffffffffffffffffffffff97881660208a01529587169588019590955265ffffffffffff9384166060880152919092166080860152921660a084015290151560c083015260e0820152610100016101de565b6102137f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6102db6106c5565b60405160ff90911681526020016101de565b6102136106d1565b6101fa610303366004611097565b6106eb565b61031b610316366004611097565b610796565b005b610325610810565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101de565b61032561081c565b6102136103603660046110fd565b60016020526000908152604090205481565b6102136103803660046110fd565b60036020526000908152604090205481565b61031b610828565b6101d16108a9565b6103256108b5565b61021360045481565b61031b6103c1366004611097565b6108c1565b6101fa6103d4366004611097565b610937565b6101fa6103e7366004611097565b610979565b6102136109fe565b61031b61040236600461111f565b610a0a565b61040f610d36565b60405165ffffffffffff90911681526020016101de565b610213610434366004611192565b600260209081526000928352604080842090915290825290205481565b61040f610d42565b610325610d4e565b606061046d6000610d5a565b60405160200161047f91815260200190565b604051602081830303815290604052905090565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104fb9086815260200190565b60405180910390a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105a05761056e83826111f4565b73ffffffffffffffffffffffffffffffffffffffff861660009081526002602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020526040812080548592906105d59084906111f4565b909155505073ffffffffffffffffffffffffffffffffffffffff808516600081815260016020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061063d9087815260200190565b60405180910390a3506001949350505050565b600061065c6089610d9a565b905090565b6000806000806000806000806106756106c5565b61067d61081c565b6106856108b5565b61068d610d36565b610695610d42565b61069d610d4e565b6106a5610650565b6106ad6109fe565b969f959e50939c50919a509850965094509092509050565b600061065c6040610d9a565b600060045446146106e45761065c610ddd565b5060055490565b33600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281208054839190839061072d90849061120b565b909155505033600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8816808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016104fb565b61079e610810565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610802576040517f7f491bd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61080c8282610e72565b5050565b600061065c608a610eea565b600061065c6041610eea565b6004544603610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f444f4d41494e5f534550415241544f525f414c52454144595f5550444154454460448201526064015b60405180910390fd5b466004556108a4610ddd565b600555565b606061046d6020610d5a565b600061065c6055610eea565b6108c9610810565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092d576040517f7f491bd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61080c8282610f2d565b33600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281208054839190839061072d9084906111f4565b3360009081526001602052604081208054839190839061099a9084906111f4565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600081815260016020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104fb9086815260200190565b600061065c609e610d5a565b42841015610a74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161088f565b6000610a7e6106d1565b73ffffffffffffffffffffffffffffffffffffffff89811660008181526003602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938c166060840152608083018b905260a083019390935260c08083018a90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610bdd573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590610c5857508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610cbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161088f565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526002602090815260408083208b8516808552908352928190208a905551898152919350918a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b600061065c6069610fb8565b600061065c606f610fb8565b600061065c6075610eea565b600080610d8f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe368181013560f01c90030190565b929092013592915050565b600080610dcf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe368181013560f01c90030190565b929092013560f81c92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610e08610461565b80516020918201206040805192830193909352918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600080828254610e83919061120b565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b600080610f1f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe368181013560f01c90030190565b929092013560601c92915050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081208054839290610f629084906111f4565b909155505060008054829003815560405182815273ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ede565b600080610fed7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe368181013560f01c90030190565b929092013560d01c92915050565b600060208083528351808285015260005b818110156110285785810183015185820160400152820161100c565b8181111561103a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461109257600080fd5b919050565b600080604083850312156110aa57600080fd5b6110b38361106e565b946020939093013593505050565b6000806000606084860312156110d657600080fd5b6110df8461106e565b92506110ed6020850161106e565b9150604084013590509250925092565b60006020828403121561110f57600080fd5b6111188261106e565b9392505050565b600080600080600080600060e0888a03121561113a57600080fd5b6111438861106e565b96506111516020890161106e565b95506040880135945060608801359350608088013560ff8116811461117557600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156111a557600080fd5b6111ae8361106e565b91506111bc6020840161106e565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611206576112066111c5565b500390565b6000821982111561121e5761121e6111c5565b50019056fea2646970667358221220e40b33f78e3d59fd32b47aa5218ab90058a17529f2622d621a80684b6bebe60a64736f6c634300080f0033000000000000000000000000007f3ed580c754a9495881b066e9fc98e406c2140000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101775760003560e01c80639f93ce27116100d8578063bf7e214f1161008c578063f2fde38b11610066578063f2fde38b146103bf578063faaebd21146103d2578063fc772c8b146103f257600080fd5b8063bf7e214f14610382578063ccf288c6146103a2578063dd068ec1146103ac57600080fd5b8063b11c414a116100bd578063b11c414a14610309578063b1e5552914610348578063bf4181541461035b57600080fd5b80639f93ce27146102d6578063b0e21e8a146102f757600080fd5b806370e952611161012f5780638da5cb5b116101145780638da5cb5b1461026d57806391e9fbaf1461028d5780639b52d085146102c357600080fd5b806370e95261146102275780637a9e5e4b1461025a57600080fd5b80632872146e116101605780632872146e146101c95780632f6fa94e1461020157806337b90ac71461021457600080fd5b80630d3865f21461017c5780630ecaea73146101b4575b600080fd5b600354610198906601000000000000900465ffffffffffff1681565b60405165ffffffffffff90911681526020015b60405180910390f35b6101c76101c23660046137d8565b610405565b005b6101dc6101d7366004613836565b610a28565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ab565b6101c761020f366004613941565b61104c565b6101c7610222366004613a05565b6111fc565b61024a610235366004613a22565b60066020526000908152604090205460ff1681565b60405190151581526020016101ab565b6101c7610268366004613a22565b611320565b6000546101dc9073ffffffffffffffffffffffffffffffffffffffff1681565b6101dc61029b366004613a3f565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101dc6102d1366004613836565b61147d565b6102e96102e4366004613836565b6115da565b6040519081526020016101ab565b6003546101989065ffffffffffff1681565b61031c6103173660046137d8565b6116d2565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101ab565b6101c7610356366004613a05565b611837565b6101dc7f00000000000000000000000059796c4ef3b588caa5898658f73aee80b6ba795681565b6001546101dc9073ffffffffffffffffffffffffffffffffffffffff1681565b610198620186a081565b6101c76103ba3660046137d8565b611950565b6101c76103cd366004613a22565b612125565b6102e96103e0366004613a22565b60046020526000908152604090205481565b6101c7610400366004613a22565b612229565b600254600114610476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e43590000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600280819055506000806000806000806000808973ffffffffffffffffffffffffffffffffffffffff16632e6262596040518163ffffffff1660e01b815260040161010060405180830381865afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f99190613a69565b97509750975097509750975097509750600061051a8888888888888861147d565b90508073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614610599576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c16600482015260240161046d565b428565ffffffffffff16116105e4576040517f6971ee8900000000000000000000000000000000000000000000000000000000815265ffffffffffff8616600482015260240161046d565b8215610794576040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b9190613b0c565b905061069f73ffffffffffffffffffffffffffffffffffffffff8a1633308e612618565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190613b0c565b905061073c8c83613b54565b81101561078d576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b16600482015260240161046d565b5050610990565b60006107ad836107a58c600a613c8c565b8d91906127b4565b9050806000036107e9576040517f4ee4e14600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa158015610856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087a9190613b0c565b905061089e73ffffffffffffffffffffffffffffffffffffffff8a16333085612618565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa15801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092f9190613b0c565b905061093b8383613b54565b81101561098c576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b16600482015260240161046d565b5050505b6040517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018b905273ffffffffffffffffffffffffffffffffffffffff8216906340c10f1990604401600060405180830381600087803b1580156109fe57600080fd5b505af1158015610a12573d6000803e3d6000fd5b5050600160025550505050505050505050505050565b6000600254600114610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e435900000000000000000000000000000000000000000000604482015260640161046d565b6002805565ffffffffffff8616600003610aae574295505b610abb6201518087613cca565b610ac89062015180613cef565b9550610ad76201518086613cca565b610ae49062015180613cef565b9450610af36201518042613d1d565b610b009062015180613cef565b65ffffffffffff168665ffffffffffff161015610bac576040517fffffffffffff000000000000000000000000000000000000000000000000000060d088901b1660208201526002906026015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f234e256100000000000000000000000000000000000000000000000000000000825261046d9291600401613dab565b8465ffffffffffff168665ffffffffffff161180610bee57506003546601000000000000900465ffffffffffff16610be48787613dcc565b65ffffffffffff16105b15610c2d576040517fffffffffffff000000000000000000000000000000000000000000000000000060d087901b166020820152600390602601610b4d565b73ffffffffffffffffffffffffffffffffffffffff88161580610c65575073ffffffffffffffffffffffffffffffffffffffff88163b155b15610ca4576040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b166020820152600090603401610b4d565b73ffffffffffffffffffffffffffffffffffffffff87161580610cdc575073ffffffffffffffffffffffffffffffffffffffff87163b155b15610d1b576040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606089901b166020820152600190603401610b4d565b73ffffffffffffffffffffffffffffffffffffffff8416610d70576040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b166020820152600490603401610b4d565b60008773ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de19190613df3565b90506000610def8483612813565b9050831580610e165750610e04600283613e0e565b610e0d90613e30565b60000b8160000b125b15610e3057600684604051602001610b4d91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608d811b82166020808501919091528d821b831660348501527fffffffffffff000000000000000000000000000000000000000000000000000060d08e811b821660488701528d901b16604e850152908a901b909116605483015287151560f81b60688301526069808301889052835180840390910181526089909201909252805191012060009060008181526005602052604090205490915073ffffffffffffffffffffffffffffffffffffffff168061103857610f1a8c8c8c8c8c8c8c612852565b90508073ffffffffffffffffffffffffffffffffffffffff166389ccfe896040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f6457600080fd5b505af1158015610f78573d6000803e3d6000fd5b50505060008381526005602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925583519081528f82169281019290925265ffffffffffff8e8116938301939093528a15156060830152608082018a90528b81169350918c16918f16907f495098420a9826864ebc9c22dc93036e4cd362259e53ff335611beda46c59b7d9060a00160405180910390a45b60016002559b9a5050505050505050505050565b6002546001146110b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e435900000000000000000000000000000000000000000000604482015260640161046d565b600280556110ea337fffffffff0000000000000000000000000000000000000000000000000000000060003516612971565b611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161046d565b815160005b818110156111f157600084828151811061117157611171613e6e565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff81166000908152600490925260409091205490915080156111de5773ffffffffffffffffffffffffffffffffffffffff82166000818152600460205260408120556111de908683612a82565b5050806111ea90613e9d565b9050611155565b505060016002555050565b61122a336000357fffffffff0000000000000000000000000000000000000000000000000000000016612971565b611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161046d565b6201518065ffffffffffff821610156112dd576040517fffffffffffff000000000000000000000000000000000000000000000000000060d083901b166020820152600090602601610b4d565b6003805465ffffffffffff9092166601000000000000027fffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633148061140357506001546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201526000357fffffffff0000000000000000000000000000000000000000000000000000000016604482015273ffffffffffffffffffffffffffffffffffffffff9091169063b700961390606401602060405180830381865afa1580156113df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114039190613ed5565b61140c57600080fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b60008061148d6201518088613cca565b61149a9062015180613cef565b905060006114ab6201518088613cca565b6114b89062015180613cef565b604080517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608e811b82166020808501919091528e821b831660348501527fffffffffffff000000000000000000000000000000000000000000000000000060d089811b8216604887015287901b16604e850152908b901b909116605483015288151560f81b60688301526069808301899052835180840390910181526089909201909252805191012090915060009060008181526005602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16806115cb576040517f3733cad60000000000000000000000000000000000000000000000000000000081526004810183905260240161046d565b9b9a5050505050505050505050565b6000806115ea6201518088613cca565b6115f79062015180613cef565b905060006116086201518088613cca565b6116159062015180613cef565b604080517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608e811b82166020808501919091528e821b831660348501527fffffffffffff000000000000000000000000000000000000000000000000000060d089811b8216604887015287901b16604e850152908b901b909116605483015288151560f81b6068830152606980830189905283518084039091018152608990920190925280519101209091505b9a9950505050505050505050565b6000806000806000806000806000808b73ffffffffffffffffffffffffffffffffffffffff16632e6262596040518163ffffffff1660e01b815260040161010060405180830381865afa15801561172d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117519190613a69565b9750975097509750975097509750975060006117728888888888888861147d565b90508073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16146117f1576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e16600482015260240161046d565b8215611821578661180f836118078c600a613c8c565b8f91906127b4565b9a509a50505050505050505050611830565b50959850899750505050505050505b9250929050565b611865336000357fffffffff0000000000000000000000000000000000000000000000000000000016612971565b6118cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161046d565b6113888165ffffffffffff161115611917576040517fffffffffffff000000000000000000000000000000000000000000000000000060d083901b166020820152600090602601610b4d565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b6002546001146119bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e435900000000000000000000000000000000000000000000604482015260640161046d565b600280819055506000806000806000806000808973ffffffffffffffffffffffffffffffffffffffff16632e6262596040518163ffffffff1660e01b815260040161010060405180830381865afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f9190613a69565b975097509750975097509750975097506000611a608888888888888861147d565b90508073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614611adf576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c16600482015260240161046d565b8565ffffffffffff164265ffffffffffff161015611b33576040517fd6c4b4f100000000000000000000000000000000000000000000000000000000815265ffffffffffff8716600482015260240161046d565b8465ffffffffffff164265ffffffffffff1610611b86576040517f6971ee8900000000000000000000000000000000000000000000000000000000815265ffffffffffff8616600482015260240161046d565b6000611b97836107a58c600a613c8c565b90503373ffffffffffffffffffffffffffffffffffffffff86161461203f578315611dfa57600354600090620186a090611bd99065ffffffffffff1684613ef2565b611be39190613d1d565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260046020526040812080549293508392909190611c1d908490613b54565b90915550506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8b16906370a0823190602401602060405180830381865afa158015611c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb39190613b0c565b9050611cd773ffffffffffffffffffffffffffffffffffffffff8b16333086612618565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8c16906370a0823190602401602060405180830381865afa158015611d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d689190613b0c565b9050611d748483613b54565b811015611dc5576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c16600482015260240161046d565b50611df4905086611dd68385613f2f565b73ffffffffffffffffffffffffffffffffffffffff8c169190612a82565b5061203f565b600354600090620186a090611e179065ffffffffffff168e613ef2565b611e219190613d1d565b73ffffffffffffffffffffffffffffffffffffffff8b16600090815260046020526040812080549293508392909190611e5b908490613b54565b90915550506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8c16906370a0823190602401602060405180830381865afa158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef19190613b0c565b9050611f2033308f8e73ffffffffffffffffffffffffffffffffffffffff16612618909392919063ffffffff16565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8d16906370a0823190602401602060405180830381865afa158015611f8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb19190613b0c565b9050611fbd8e83613b54565b81101561200e576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d16600482015260240161046d565b5061203d90508661201f838f613f2f565b73ffffffffffffffffffffffffffffffffffffffff8d169190612a82565b505b6040517f9dc29fac000000000000000000000000000000000000000000000000000000008152336004820152602481018c905273ffffffffffffffffffffffffffffffffffffffff831690639dc29fac90604401600060405180830381600087803b1580156120ad57600080fd5b505af11580156120c1573d6000803e3d6000fd5b5050505083156120f1576120ec73ffffffffffffffffffffffffffffffffffffffff8a16338d612a82565b612112565b61211273ffffffffffffffffffffffffffffffffffffffff89163383612a82565b5050600160025550505050505050505050565b612153336000357fffffffff0000000000000000000000000000000000000000000000000000000016612971565b6121b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161046d565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600254600114612295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e435900000000000000000000000000000000000000000000604482015260640161046d565b600280819055506000806000806000806000808873ffffffffffffffffffffffffffffffffffffffff16632e6262596040518163ffffffff1660e01b815260040161010060405180830381865afa1580156122f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123189190613a69565b9750975097509750975097509750975060006123398888888888888861147d565b90508073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16146123b8576040517fada310a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b16600482015260240161046d565b8465ffffffffffff164265ffffffffffff16101561240c576040517fe49820a000000000000000000000000000000000000000000000000000000000815265ffffffffffff8616600482015260240161046d565b3373ffffffffffffffffffffffffffffffffffffffff85161461245b576040517fe0d7559000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604090205460ff16156124d3576040517f3fa0ac7e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015260240161046d565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260066020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580517f18160ddd00000000000000000000000000000000000000000000000000000000815290519293926318160ddd926004808401939192918290030181865afa158015612576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259a9190613b0c565b905083156125c8576125c373ffffffffffffffffffffffffffffffffffffffff8a168683612a82565b612606565b60006125e1846125d98d600a613c8c565b8491906127b4565b905061260473ffffffffffffffffffffffffffffffffffffffff8a168783612a82565b505b50506001600255505050505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916126b79190613f46565b6000604051808303816000865af19150503d80600081146126f4576040519150601f19603f3d011682016040523d82523d6000602084013e6126f9565b606091505b50915091508180156127235750805115806127235750808060200190518101906127239190613ed5565b8015612746575060008673ffffffffffffffffffffffffffffffffffffffff163b115b6127ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c4544000000000000000000000000604482015260640161046d565b505050505050565b60006127c1848484612c15565b9050600082806127d3576127d3613c9b565b848609111561280c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811061280857600080fd5b6001015b9392505050565b6000805b600a841061283e5761282a600a85613d1d565b93508061283681613f62565b915050612817565b6128488382613f81565b9150505b92915050565b600080600061286c8a8a8965ffffffffffff168888612ce1565b915091506116c482828c73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e49190613df3565b8d8d8d8d8d8d308e6040516020016129069b9a99989796959493929190613fe3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000059796c4ef3b588caa5898658f73aee80b6ba7956169061323d565b60015460009073ffffffffffffffffffffffffffffffffffffffff168015801590612a5557506040517fb700961300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301523060248301527fffffffff000000000000000000000000000000000000000000000000000000008516604483015282169063b700961390606401602060405180830381865afa158015612a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a559190613ed5565b80612848575060005473ffffffffffffffffffffffffffffffffffffffff85811691161491505092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790529151600092839290871691612b199190613f46565b6000604051808303816000865af19150503d8060008114612b56576040519150601f19603f3d011682016040523d82523d6000602084013e612b5b565b606091505b5091509150818015612b85575080511580612b85575080806020019051810190612b859190613ed5565b8015612ba8575060008573ffffffffffffffffffffffffffffffffffffffff163b115b612c0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c45440000000000000000000000000000000000604482015260640161046d565b5050505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003612c6c5760008411612c6157600080fd5b50829004905061280c565b808411612c7857600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000806060808083612cf6620151808a613d1d565b90506000612d078262010bd9614134565b612d149062253d8c614134565b9050600062023ab1612d278360046141a8565b612d319190614264565b90506004612d428262023ab16141a8565b612d4d906003614134565b612d579190614264565b612d6190836142cc565b9150600062164b09612d74846001614134565b612d8090610fa06141a8565b612d8a9190614264565b90506004612d9a826105b56141a8565b612da49190614264565b612dae90846142cc565b612db990601f614134565b9250600061098f612dcb8560506141a8565b612dd59190614264565b905060006050612de78361098f6141a8565b612df19190614264565b612dfb90866142cc565b9050612e08600b83614264565b9450612e1585600c6141a8565b612e20836002614134565b612e2a91906142cc565b91508483612e396031876142cc565b612e449060646141a8565b612e4e9190614134565b612e589190614134565b9250612e6e612e6961271085614340565b613443565b9850600a8210612e8657612e8182613443565b612eaf565b612e8f82613443565b604051602001612e9f9190614354565b6040516020818303038152906040525b9750600a8110612ec757612ec281613443565b612ef0565b612ed081613443565b604051602001612ee09190614354565b6040516020818303038152906040525b96505050505050506060808b73ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612f46573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612f8c9190810190614399565b9050600581511115612fe257612fa181614442565b6040517fffffffffff000000000000000000000000000000000000000000000000000000909116602082015260250160405160208183030381529060405290505b60008b73ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561302f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526130759190810190614399565b90506005815111156130cb5761308a81614442565b6040517fffffffffff000000000000000000000000000000000000000000000000000000909116602082015260250160405160208183030381529060405290505b81816040516020016130de929190614492565b60405160208183030381529060405292505060008961311d577f500000000000000000000000000000000000000000000000000000000000000061313f565b7f43000000000000000000000000000000000000000000000000000000000000005b905060006131bb8a8e73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b69190613df3565b6135a3565b905060008483838a8a8a6040516020016131da969594939291906144ea565b6040516020818303038152906040526131f2906145bd565b905060008489898960405160200161320d9493929190614602565b604051602081830303815290604052613225906145bd565b919a5090985050505050505050509550959350505050565b80516040517f3d610000000000000000000000000000000000000000000000000000000000008152603a820160f081811b6002848101919091527f80600b3d3981f30000000000000000000000000000000000000000000000000060048501527f363d3d3761000000000000000000000000000000000000000000000000000000600b8501528401901b601083018190527f603836393d3d3d366100000000000000000000000000000000000000000000006012840152601b8301527f013d730000000000000000000000000000000000000000000000000000000000601d830152606085901b6020808401919091527f5af43d82803e903d91603657fd5bf3000000000000000000000000000000000060348401526000939260458401929186019084604382015b602082106133a357835181526020938401937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019101613366565b83517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208490036101000a0119908116825260f088901b91830191825286846000f0985073ffffffffffffffffffffffffffffffffffffffff8916613435576040517febfef18800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505092915050565b60608160000361348657505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156134b0578061349a81613e9d565b91506134a99050600a83613d1d565b915061348a565b60008167ffffffffffffffff8111156134cb576134cb6138c3565b6040519080825280601f01601f1916602001820160405280156134f5576020820181803683370190505b509050815b851561359a5761350b600182613f2f565b9050600061351a600a88613d1d565b61352590600a613ef2565b61352f9088613f2f565b61353a9060306146b1565b905060008160f81b90508084848151811061355757613557613e6e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350613591600a89613d1d565b975050506134fa565b50949350505050565b606060006135b18484612813565b9050606060008260000b12156136015760006135cc83613e30565b60ff1690506135da81613443565b6040516020016135ea91906146d6565b604051602081830303815290604052915050613631565b60ff821661360e81613443565b60405160200161361e919061471b565b6040516020818303038152906040529150505b600061363d8386614753565b9050600060038260ff161061365c576136576003836147b4565b61365f565b60005b61366a90600a613c8c565b6136749088613d1d565b9050600061368182613443565b8051909150600082818361369757613697613e6e565b016020908101516040517fff00000000000000000000000000000000000000000000000000000000000000909116918101919091527f2e000000000000000000000000000000000000000000000000000000000000006021820152602201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060015b82811015613781578184828151811061374357613743613e6e565b602001015160f81c60f81b60405160200161375f9291906147d7565b60405160208183030381529060405291508061377a90613e9d565b9050613728565b50808660405160200161379592919061481e565b60405160208183030381529060405297505050505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff811681146137d557600080fd5b50565b600080604083850312156137eb57600080fd5b82356137f6816137b3565b946020939093013593505050565b65ffffffffffff811681146137d557600080fd5b8035613823816137b3565b919050565b80151581146137d557600080fd5b600080600080600080600060e0888a03121561385157600080fd5b873561385c816137b3565b9650602088013561386c816137b3565b9550604088013561387c81613804565b9450606088013561388c81613804565b9350608088013561389c816137b3565b925060a08801356138ac81613828565b8092505060c0880135905092959891949750929550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613939576139396138c3565b604052919050565b6000806040838503121561395457600080fd5b823567ffffffffffffffff8082111561396c57600080fd5b818501915085601f83011261398057600080fd5b8135602082821115613994576139946138c3565b8160051b92506139a58184016138f2565b82815292840181019281810190898511156139bf57600080fd5b948201945b848610156139e957853593506139d9846137b3565b83825294820194908201906139c4565b96506139f89050878201613818565b9450505050509250929050565b600060208284031215613a1757600080fd5b813561280c81613804565b600060208284031215613a3457600080fd5b813561280c816137b3565b600060208284031215613a5157600080fd5b5035919050565b805160ff8116811461382357600080fd5b600080600080600080600080610100898b031215613a8657600080fd5b613a8f89613a58565b97506020890151613a9f816137b3565b60408a0151909750613ab0816137b3565b60608a0151909650613ac181613804565b60808a0151909550613ad281613804565b60a08a0151909450613ae3816137b3565b60c08a0151909350613af481613828565b8092505060e089015190509295985092959890939650565b600060208284031215613b1e57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613b6757613b67613b25565b500190565b600181815b80851115613bc557817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115613bab57613bab613b25565b80851615613bb857918102915b93841c9390800290613b71565b509250929050565b600082613bdc5750600161284c565b81613be95750600061284c565b8160018114613bff5760028114613c0957613c25565b600191505061284c565b60ff841115613c1a57613c1a613b25565b50506001821b61284c565b5060208310610133831016604e8410600b8410161715613c48575081810a61284c565b613c528383613b6c565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115613c8457613c84613b25565b029392505050565b600061280c60ff841683613bcd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600065ffffffffffff80841680613ce357613ce3613c9b565b92169190910492915050565b600065ffffffffffff80831681851681830481118215151615613d1457613d14613b25565b02949350505050565b600082613d2c57613d2c613c9b565b500490565b60005b83811015613d4c578181015183820152602001613d34565b83811115613d5b576000848401525b50505050565b60008151808452613d79816020860160208601613d31565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b828152604060208201526000613dc46040830184613d61565b949350505050565b600065ffffffffffff83811690831681811015613deb57613deb613b25565b039392505050565b600060208284031215613e0557600080fd5b61280c82613a58565b600060ff831680613e2157613e21613c9b565b8060ff84160491505092915050565b60008160000b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808103613e6557613e65613b25565b60000392915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ece57613ece613b25565b5060010190565b600060208284031215613ee757600080fd5b815161280c81613828565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f2a57613f2a613b25565b500290565b600082821015613f4157613f41613b25565b500390565b60008251613f58818460208701613d31565b9190910192915050565b60008160000b607f8103613f7857613f78613b25565b60010192915050565b60008160000b8360000b60008112817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001831281151615613fc457613fc4613b25565b81607f018313811615613fd957613fd9613b25565b5090039392505050565b8b81528a60208201527fff000000000000000000000000000000000000000000000000000000000000008a60f81b1660408201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008960601b166041820152614073605582018960601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b60007fffffffffffff0000000000000000000000000000000000000000000000000000808960d01b166069840152808860d01b16606f840152506140de607583018760601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b84151560f81b608983015261411a608a83018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b50609e81019190915260be019a9950505050505050505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561416e5761416e613b25565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156141a2576141a2613b25565b50500190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156141e9576141e9613b25565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561422457614224613b25565b6000871292508782058712848416161561424057614240613b25565b8785058712818416161561425657614256613b25565b505050929093029392505050565b60008261427357614273613c9b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156142c7576142c7613b25565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561430657614306613b25565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01831381161561433a5761433a613b25565b50500390565b60008261434f5761434f613c9b565b500690565b7f300000000000000000000000000000000000000000000000000000000000000081526000825161438c816001850160208701613d31565b9190910160010192915050565b6000602082840312156143ab57600080fd5b815167ffffffffffffffff808211156143c357600080fd5b818401915084601f8301126143d757600080fd5b8151818111156143e9576143e96138c3565b61441a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016138f2565b915080825285602082850101111561443157600080fd5b61359a816020840160208601613d31565b6000815160208301517fffffffffff0000000000000000000000000000000000000000000000000000008082169350600583101561448a5780818460050360031b1b83161693505b505050919050565b600083516144a4818460208801613d31565b7f2f0000000000000000000000000000000000000000000000000000000000000090830190815283516144de816001840160208801613d31565b01600101949350505050565b600087516144fc818460208c01613d31565b80830190507f20000000000000000000000000000000000000000000000000000000000000008082527fff00000000000000000000000000000000000000000000000000000000000000891660018301528060028301528751614566816003850160208c01613d31565b60039201918201528551614581816004840160208a01613d31565b8551910190614597816004840160208901613d31565b84519101906145ad816004840160208801613d31565b0160040198975050505050505050565b805160208083015191908110156145fc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b7f6f0000000000000000000000000000000000000000000000000000000000000081526000855161463a816001850160208a01613d31565b7f2d000000000000000000000000000000000000000000000000000000000000006001918401918201528551614677816002840160208a01613d31565b855191019061468d816002840160208901613d31565b84519101906146a3816002840160208801613d31565b016002019695505050505050565b600060ff821660ff84168060ff038211156146ce576146ce613b25565b019392505050565b7f652d00000000000000000000000000000000000000000000000000000000000081526000825161470e816002850160208701613d31565b9190910160020192915050565b7f652b00000000000000000000000000000000000000000000000000000000000081526000825161470e816002850160208701613d31565b60008160000b8360000b6000821282607f0382138115161561477757614777613b25565b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800382128116156147ab576147ab613b25565b50019392505050565b600060ff821660ff8416808210156147ce576147ce613b25565b90039392505050565b600083516147e9818460208801613d31565b7fff00000000000000000000000000000000000000000000000000000000000000939093169190920190815260010192915050565b60008351614830818460208801613d31565b835190830190614844818360208801613d31565b0194935050505056fea264697066735822122001df85e9ffa31ae8f1bcfdbb120369fe8c76538b7f6be2c8180228560f89fc5f64736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000007f3ed580c754a9495881b066e9fc98e406c2140000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : guardian_ (address): 0x007F3eD580c754A9495881b066e9FC98e406c214
Arg [1] : authority_ (address): 0x0000000000000000000000000000000000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000007f3ed580c754a9495881b066e9fc98e406c214
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000

🤖 Code Reader Beta

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.