ERC-20
Real Estate
Overview
Max Total Supply
10,000,000,000 SLD
Holders
834 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SLD
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-05 */ // File contracts/erc20/ERC20.sol // SPDX-License-Identifier: MIT pragma solidity 0.8.1; abstract contract ERC20 { uint256 private _totalSupply; mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; event Transfer(address indexed from, address indexed to, uint256 amount); event Approval( address indexed owner, address indexed spender, uint256 amount ); /* * Internal Functions for ERC20 standard logics */ function _transfer(address from, address to, uint256 amount) internal returns (bool success) { _balances[from] = _balances[from] - amount; _balances[to] = _balances[to] + amount; emit Transfer(from, to, amount); success = true; } function _approve(address owner, address spender, uint256 amount) internal returns (bool success) { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); success = true; } function _mint(address recipient, uint256 amount) internal returns (bool success) { _totalSupply = _totalSupply + amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(address(0), recipient, amount); success = true; } function _burn(address burned, uint256 amount) internal returns (bool success) { _balances[burned] = _balances[burned] - amount; _totalSupply = _totalSupply - amount; emit Transfer(burned, address(0), amount); success = true; } /* * public view functions to view common data */ function totalSupply() external view returns (uint256 total) { total = _totalSupply; } function balanceOf(address owner) external view returns (uint256 balance) { balance = _balances[owner]; } function allowance(address owner, address spender) external view returns (uint256 remaining) { remaining = _allowances[owner][spender]; } /* * External view Function Interface to implement on final contract */ function name() virtual external view returns (string memory tokenName); function symbol() virtual external view returns (string memory tokenSymbol); function decimals() virtual external view returns (uint8 tokenDecimals); /* * External Function Interface to implement on final contract */ function transfer(address to, uint256 amount) virtual external returns (bool success); function transferFrom(address from, address to, uint256 amount) virtual external returns (bool success); function approve(address spender, uint256 amount) virtual external returns (bool success); } // File contracts/library/Ownable.sol abstract contract Ownable { address internal _owner; event OwnershipTransferred( address indexed currentOwner, address indexed newOwner ); constructor() { _owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } modifier onlyOwner() { require( msg.sender == _owner, "Ownable : Function called by unauthorized user." ); _; } function owner() external view returns (address ownerAddress) { ownerAddress = _owner; } function transferOwnership(address newOwner) public onlyOwner returns (bool success) { require(newOwner != address(0), "Ownable/transferOwnership : cannot transfer ownership to zero address"); success = _transferOwnership(newOwner); } function renounceOwnership() external onlyOwner returns (bool success) { success = _transferOwnership(address(0)); } function _transferOwnership(address newOwner) internal returns (bool success) { emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; success = true; } } // File contracts/erc20/ERC20Lockable.sol abstract contract ERC20Lockable is ERC20, Ownable { struct LockInfo { uint256 amount; uint256 due; } mapping(address => LockInfo[]) internal _locks; mapping(address => uint256) internal _totalLocked; event Lock(address indexed from, uint256 amount, uint256 due); event Unlock(address indexed from, uint256 amount); modifier checkLock(address from, uint256 amount) { require(_balances[from] >= _totalLocked[from] + amount, "ERC20Lockable/Cannot send more than unlocked amount"); _; } function _lock(address from, uint256 amount, uint256 due) internal returns (bool success) { require(due > block.timestamp, "ERC20Lockable/lock : Cannot set due to past"); require( _balances[from] >= amount + _totalLocked[from], "ERC20Lockable/lock : locked total should be smaller than balance" ); _totalLocked[from] = _totalLocked[from] + amount; _locks[from].push(LockInfo(amount, due)); emit Lock(from, amount, due); success = true; } function _unlock(address from, uint256 index) internal returns (bool success) { LockInfo storage lockinfo = _locks[from][index]; _totalLocked[from] = _totalLocked[from] - lockinfo.amount; emit Unlock(from, lockinfo.amount); _locks[from][index] = _locks[from][_locks[from].length - 1]; _locks[from].pop(); success = true; } function lock(address from, uint256 amount, uint256 due) external onlyOwner returns(bool success){ success = _lock(from, amount, due); } function unlock(address from, uint256 idx) external returns(bool success){ require(_locks[from][idx].due < block.timestamp,"ERC20Lockable/unlock: cannot unlock before due"); _unlock(from, idx); success = true; } function unlockAll(address from) external returns (bool success) { for(uint256 i = 1; i <= _locks[from].length;i++){ //i++; if(_locks[from][i-1].due < block.timestamp){ if(_unlock(from, i-1)){ i--; } } } success = true; } function releaseLock(address from) external onlyOwner returns (bool success) { for(uint256 i = 0; i < _locks[from].length;){ i++; if(_unlock(from, i-1)){ i--; } } success = true; } function transferWithLockUp(address recipient, uint256 amount, uint256 due) external onlyOwner returns (bool success) { require( recipient != address(0), "ERC20Lockable/transferWithLockUp : Cannot send to zero address" ); _transfer(msg.sender, recipient, amount); _lock(recipient, amount, due); success = true; } function lockInfo(address locked, uint256 index) external view returns (uint256 amount, uint256 due) { LockInfo memory lockinfo = _locks[locked][index]; amount = lockinfo.amount; due = lockinfo.due; } function totalLocked(address locked) external view returns(uint256 amount, uint256 length){ amount = _totalLocked[locked]; length = _locks[locked].length; } } // File contracts/library/Pausable.sol contract Pausable is Ownable { bool internal _paused; event Paused(); event Unpaused(); modifier whenPaused() { require(_paused, "Paused : This function can only be called when paused"); _; } modifier whenNotPaused() { require(!_paused, "Paused : This function can only be called when not paused"); _; } function pause() external onlyOwner whenNotPaused returns (bool success) { _paused = true; emit Paused(); success = true; } function unPause() external onlyOwner whenPaused returns (bool success) { _paused = false; emit Unpaused(); success = true; } function paused() external view returns (bool) { return _paused; } } // File contracts/erc20/ERC20Burnable.sol abstract contract ERC20Burnable is ERC20, Pausable { event Burn(address indexed burned, uint256 amount); function burn(uint256 amount) external whenNotPaused returns (bool success) { success = _burn(msg.sender, amount); emit Burn(msg.sender, amount); success = true; } function burnFrom(address burned, uint256 amount) external whenNotPaused returns (bool success) { _burn(burned, amount); emit Burn(burned, amount); success = _approve( burned, msg.sender, _allowances[burned][msg.sender] - amount ); } } // File contracts/library/Freezable.sol contract Freezable is Ownable { mapping(address => bool) private _frozen; event Freeze(address indexed target); event Unfreeze(address indexed target); modifier whenNotFrozen(address target) { require(!_frozen[target], "Freezable : target is frozen"); _; } function freeze(address target) external onlyOwner returns (bool success) { _frozen[target] = true; emit Freeze(target); success = true; } function unFreeze(address target) external onlyOwner returns (bool success) { _frozen[target] = false; emit Unfreeze(target); success = true; } function isFrozen(address target) external view returns (bool frozen) { return _frozen[target]; } } // File contracts/SLD.sol contract SLD is ERC20Lockable, ERC20Burnable, Freezable { string constant private _name = "Sector of Land"; string constant private _symbol = "SLD"; uint8 constant private _decimals = 18; uint256 constant private _initial_supply = 10_000_000_000; constructor(address _owner) Ownable() { _mint(_owner, _initial_supply * (10**uint256(_decimals))); _transferOwnership(_owner); } function transfer(address to, uint256 amount) override external whenNotFrozen(msg.sender) whenNotPaused checkLock(msg.sender, amount) returns (bool success) { require( to != address(0), "SLD/transfer : Should not send to zero address" ); _transfer(msg.sender, to, amount); success = true; } function transferFrom(address from, address to, uint256 amount) override external whenNotFrozen(from) whenNotPaused checkLock(from, amount) returns (bool success) { require( to != address(0), "SLD/transferFrom : Should not send to zero address" ); _transfer(from, to, amount); _approve( from, msg.sender, _allowances[from][msg.sender] - amount ); success = true; } function approve(address spender, uint256 amount) override external returns (bool success) { require( spender != address(0), "SLD/approve : Should not approve zero address" ); _approve(msg.sender, spender, amount); success = true; } function name() override external pure returns (string memory tokenName) { tokenName = _name; } function symbol() override external pure returns (string memory tokenSymbol) { tokenSymbol = _symbol; } function decimals() override external pure returns (uint8 tokenDecimals) { tokenDecimals = _decimals; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burned","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"due","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"currentOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"burned","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"tokenDecimals","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"freeze","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"isFrozen","outputs":[{"internalType":"bool","name":"frozen","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"due","type":"uint256"}],"name":"lock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"locked","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"lockInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"due","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"ownerAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"releaseLock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"locked","type":"address"}],"name":"totalLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"due","type":"uint256"}],"name":"transferWithLockUp","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"unFreeze","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unPause","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"unlockAll","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620039b5380380620039b583398181016040528101906200003791906200031c565b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36200010981601260ff16600a620000eb91906200042e565b6402540be400620000fd91906200056b565b6200012360201b60201c565b506200011b816200023d60201b60201c565b505062000660565b60008160005462000135919062000376565b60008190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000188919062000376565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200022b919062000359565b60405180910390a36001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600081519050620003168162000646565b92915050565b6000602082840312156200032f57600080fd5b60006200033f8482850162000305565b91505092915050565b620003538162000600565b82525050565b600060208201905062000370600083018462000348565b92915050565b6000620003838262000600565b9150620003908362000600565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003c857620003c76200060a565b5b828201905092915050565b6000808291508390505b60018511156200042557808604811115620003fd57620003fc6200060a565b5b60018516156200040d5780820291505b80810290506200041d8562000639565b9450620003dd565b94509492505050565b60006200043b8262000600565b9150620004488362000600565b9250620004777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200047f565b905092915050565b60008262000491576001905062000564565b81620004a1576000905062000564565b8160018114620004ba5760028114620004c557620004fb565b600191505062000564565b60ff841115620004da57620004d96200060a565b5b8360020a915084821115620004f457620004f36200060a565b5b5062000564565b5060208310610133831016604e8410600b8410161715620005355782820a9050838111156200052f576200052e6200060a565b5b62000564565b620005448484846001620003d3565b925090508184048111156200055e576200055d6200060a565b5b81810290505b9392505050565b6000620005788262000600565b9150620005858362000600565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620005c157620005c06200060a565b5b828202905092915050565b6000620005d982620005e0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6200065181620005cc565b81146200065d57600080fd5b50565b61334580620006706000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638456cb59116100f9578063d1c4691611610097578063e2ab691d11610071578063e2ab691d14610570578063e5839836146105a0578063f2fde38b146105d0578063f7b188a514610600576101a9565b8063d1c46916146104df578063d8fb93371461050f578063dd62ed3e14610540576101a9565b806395d89b41116100d357806395d89b4114610430578063a9059cbb1461044e578063b2520a7c1461047e578063c4f3a853146104af576101a9565b80638456cb59146103c45780638d1fdf2f146103e25780638da5cb5b14610412576101a9565b806342966c6811610166578063715018a611610140578063715018a61461031657806379cc6790146103345780637eee288d1461036457806383cfab4214610394576101a9565b806342966c68146102985780635c975abb146102c857806370a08231146102e6576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc57806323b872dd1461021a578063313ce5671461024a57806338b8209214610268575b600080fd5b6101b661061e565b6040516101c39190612adc565b60405180910390f35b6101e660048036038101906101e191906127b6565b61065b565b6040516101f39190612ac1565b60405180910390f35b6102046106e2565b6040516102119190612c9e565b60405180910390f35b610234600480360381019061022f9190612767565b6106eb565b6040516102419190612ac1565b60405180910390f35b6102526109b6565b60405161025f9190612ce2565b60405180910390f35b610282600480360381019061027d91906127f2565b6109bf565b60405161028f9190612ac1565b60405180910390f35b6102b260048036038101906102ad9190612841565b610ae4565b6040516102bf9190612ac1565b60405180910390f35b6102d0610b99565b6040516102dd9190612ac1565b60405180910390f35b61030060048036038101906102fb9190612702565b610bb0565b60405161030d9190612c9e565b60405180910390f35b61031e610bf9565b60405161032b9190612ac1565b60405180910390f35b61034e600480360381019061034991906127b6565b610c9a565b60405161035b9190612ac1565b60405180910390f35b61037e600480360381019061037991906127b6565b610ddf565b60405161038b9190612ac1565b60405180910390f35b6103ae60048036038101906103a99190612702565b610ec0565b6040516103bb9190612ac1565b60405180910390f35b6103cc610ff6565b6040516103d99190612ac1565b60405180910390f35b6103fc60048036038101906103f79190612702565b611126565b6040516104099190612ac1565b60405180910390f35b61041a61125c565b6040516104279190612aa6565b60405180910390f35b610438611286565b6040516104459190612adc565b60405180910390f35b610468600480360381019061046391906127b6565b6112c3565b6040516104759190612ac1565b60405180910390f35b610498600480360381019061049391906127b6565b6114fa565b6040516104a6929190612cb9565b60405180910390f35b6104c960048036038101906104c49190612702565b6115bb565b6040516104d69190612ac1565b60405180910390f35b6104f960048036038101906104f49190612702565b6116f0565b6040516105069190612ac1565b60405180910390f35b61052960048036038101906105249190612702565b611816565b604051610537929190612cb9565b60405180910390f35b61055a6004803603810190610555919061272b565b6118a5565b6040516105679190612c9e565b60405180910390f35b61058a600480360381019061058591906127f2565b61192c565b6040516105979190612ac1565b60405180910390f35b6105ba60048036038101906105b59190612702565b6119d2565b6040516105c79190612ac1565b60405180910390f35b6105ea60048036038101906105e59190612702565b611a28565b6040516105f79190612ac1565b60405180910390f35b610608611b3a565b6040516106159190612ac1565b60405180910390f35b60606040518060400160405280600e81526020017f536563746f72206f66204c616e64000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c390612c1e565b60405180910390fd5b6106d7338484611c69565b506001905092915050565b60008054905090565b600083600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077290612c3e565b60405180910390fd5b600660009054906101000a900460ff16156107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290612b9e565b60405180910390fd5b848380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108189190612d19565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089090612bfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090612bde565b60405180910390fd5b610914878787611d5c565b506109a7873387600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109a29190612d6f565b611c69565b50600193505050509392505050565b60006012905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890612bbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab890612afe565b60405180910390fd5b610acc338585611d5c565b50610ad8848484611eea565b50600190509392505050565b6000600660009054906101000a900460ff1615610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d90612b9e565b60405180910390fd5b610b403383612176565b90503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca583604051610b889190612c9e565b60405180910390a260019050919050565b6000600660009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612bbe565b60405180910390fd5b610c95600061228a565b905090565b6000600660009054906101000a900460ff1615610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612b9e565b60405180910390fd5b610cf68383612176565b508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca583604051610d3d9190612c9e565b60405180910390a2610dd7833384600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dd29190612d6f565b611c69565b905092915050565b600042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610e59577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015410610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290612b7e565b60405180910390fd5b610eb58383612352565b506001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4990612bbe565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90612bbe565b60405180910390fd5b600660009054906101000a900460ff16156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612b9e565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a16001905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111af90612bbe565b60405180910390fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f534c440000000000000000000000000000000000000000000000000000000000815250905090565b600033600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612c3e565b60405180910390fd5b600660009054906101000a900460ff16156113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612b9e565b60405180910390fd5b338380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f09190612d19565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146890612bfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890612b5e565b60405180910390fd5b6114ec338787611d5c565b506001935050505092915050565b6000806000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110611576577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b600080600190505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081116116e65742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001836116599190612d6f565b81548110611690577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015410156116d3576116be836001836116b99190612d6f565b612352565b156116d25780806116ce90612e2b565b9150505b5b80806116de90612e55565b9150506115c3565b5060019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177990612bbe565b60405180910390fd5b60005b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561180c5780806117da90612e55565b9150506117f3836001836117ee9190612d6f565b612352565b1561180757808061180390612e2b565b9150505b611785565b5060019050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b590612bbe565b60405180910390fd5b6119c9848484611eea565b90509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab190612bbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2190612c7e565b60405180910390fd5b611b338261228a565b9050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612bbe565b60405180910390fd5b600660009054906101000a900460ff16611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1290612c5e565b60405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693360405160405180910390a16001905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611d499190612c9e565b60405180910390a3600190509392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da99190612d6f565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e379190612d19565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed79190612c9e565b60405180910390a3600190509392505050565b6000428211611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2590612b3e565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f799190612d19565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff190612b1e565b60405180910390fd5b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120459190612d19565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280858152602001848152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051612163929190612cb9565b60405180910390a2600190509392505050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c39190612d6f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000546122149190612d6f565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122789190612c9e565b60405180910390a36001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106123cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020190508060000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242b9190612d6f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f182600001546040516124b89190612c9e565b60405180910390a2600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061254e9190612d6f565b81548110612585577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061260a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016000820154816000015560018201548160010155905050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806126a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b6000813590506126e7816132e1565b92915050565b6000813590506126fc816132f8565b92915050565b60006020828403121561271457600080fd5b6000612722848285016126d8565b91505092915050565b6000806040838503121561273e57600080fd5b600061274c858286016126d8565b925050602061275d858286016126d8565b9150509250929050565b60008060006060848603121561277c57600080fd5b600061278a868287016126d8565b935050602061279b868287016126d8565b92505060406127ac868287016126ed565b9150509250925092565b600080604083850312156127c957600080fd5b60006127d7858286016126d8565b92505060206127e8858286016126ed565b9150509250929050565b60008060006060848603121561280757600080fd5b6000612815868287016126d8565b9350506020612826868287016126ed565b9250506040612837868287016126ed565b9150509250925092565b60006020828403121561285357600080fd5b6000612861848285016126ed565b91505092915050565b61287381612da3565b82525050565b61288281612db5565b82525050565b600061289382612cfd565b61289d8185612d08565b93506128ad818560208601612df8565b6128b681612ecd565b840191505092915050565b60006128ce603e83612d08565b91506128d982612ede565b604082019050919050565b60006128f1604083612d08565b91506128fc82612f2d565b604082019050919050565b6000612914602b83612d08565b915061291f82612f7c565b604082019050919050565b6000612937602e83612d08565b915061294282612fcb565b604082019050919050565b600061295a602e83612d08565b91506129658261301a565b604082019050919050565b600061297d603983612d08565b915061298882613069565b604082019050919050565b60006129a0602f83612d08565b91506129ab826130b8565b604082019050919050565b60006129c3603283612d08565b91506129ce82613107565b604082019050919050565b60006129e6603383612d08565b91506129f182613156565b604082019050919050565b6000612a09602d83612d08565b9150612a14826131a5565b604082019050919050565b6000612a2c601c83612d08565b9150612a37826131f4565b602082019050919050565b6000612a4f603583612d08565b9150612a5a8261321d565b604082019050919050565b6000612a72604583612d08565b9150612a7d8261326c565b606082019050919050565b612a9181612de1565b82525050565b612aa081612deb565b82525050565b6000602082019050612abb600083018461286a565b92915050565b6000602082019050612ad66000830184612879565b92915050565b60006020820190508181036000830152612af68184612888565b905092915050565b60006020820190508181036000830152612b17816128c1565b9050919050565b60006020820190508181036000830152612b37816128e4565b9050919050565b60006020820190508181036000830152612b5781612907565b9050919050565b60006020820190508181036000830152612b778161292a565b9050919050565b60006020820190508181036000830152612b978161294d565b9050919050565b60006020820190508181036000830152612bb781612970565b9050919050565b60006020820190508181036000830152612bd781612993565b9050919050565b60006020820190508181036000830152612bf7816129b6565b9050919050565b60006020820190508181036000830152612c17816129d9565b9050919050565b60006020820190508181036000830152612c37816129fc565b9050919050565b60006020820190508181036000830152612c5781612a1f565b9050919050565b60006020820190508181036000830152612c7781612a42565b9050919050565b60006020820190508181036000830152612c9781612a65565b9050919050565b6000602082019050612cb36000830184612a88565b92915050565b6000604082019050612cce6000830185612a88565b612cdb6020830184612a88565b9392505050565b6000602082019050612cf76000830184612a97565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612d2482612de1565b9150612d2f83612de1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d6457612d63612e9e565b5b828201905092915050565b6000612d7a82612de1565b9150612d8583612de1565b925082821015612d9857612d97612e9e565b5b828203905092915050565b6000612dae82612dc1565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612e16578082015181840152602081019050612dfb565b83811115612e25576000848401525b50505050565b6000612e3682612de1565b91506000821415612e4a57612e49612e9e565b5b600182039050919050565b6000612e6082612de1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612e9357612e92612e9e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f45524332304c6f636b61626c652f7472616e73666572576974684c6f636b557060008201527f203a2043616e6e6f742073656e6420746f207a65726f20616464726573730000602082015250565b7f45524332304c6f636b61626c652f6c6f636b203a206c6f636b656420746f746160008201527f6c2073686f756c6420626520736d616c6c6572207468616e2062616c616e6365602082015250565b7f45524332304c6f636b61626c652f6c6f636b203a2043616e6e6f74207365742060008201527f64756520746f2070617374000000000000000000000000000000000000000000602082015250565b7f534c442f7472616e73666572203a2053686f756c64206e6f742073656e64207460008201527f6f207a65726f2061646472657373000000000000000000000000000000000000602082015250565b7f45524332304c6f636b61626c652f756e6c6f636b3a2063616e6e6f7420756e6c60008201527f6f636b206265666f726520647565000000000000000000000000000000000000602082015250565b7f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008201527f62652063616c6c6564207768656e206e6f742070617573656400000000000000602082015250565b7f4f776e61626c65203a2046756e6374696f6e2063616c6c656420627920756e6160008201527f7574686f72697a656420757365722e0000000000000000000000000000000000602082015250565b7f534c442f7472616e7366657246726f6d203a2053686f756c64206e6f7420736560008201527f6e6420746f207a65726f20616464726573730000000000000000000000000000602082015250565b7f45524332304c6f636b61626c652f43616e6e6f742073656e64206d6f7265207460008201527f68616e20756e6c6f636b656420616d6f756e7400000000000000000000000000602082015250565b7f534c442f617070726f7665203a2053686f756c64206e6f7420617070726f766560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b7f467265657a61626c65203a207461726765742069732066726f7a656e00000000600082015250565b7f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008201527f62652063616c6c6564207768656e207061757365640000000000000000000000602082015250565b7f4f776e61626c652f7472616e736665724f776e657273686970203a2063616e6e60008201527f6f74207472616e73666572206f776e65727368697020746f207a65726f20616460208201527f6472657373000000000000000000000000000000000000000000000000000000604082015250565b6132ea81612da3565b81146132f557600080fd5b50565b61330181612de1565b811461330c57600080fd5b5056fea264697066735822122050980bbdc762bb24b45d7730cd56cd5b21f03fb1fd5ce8951a74f8212475aea864736f6c63430008010033000000000000000000000000712d3744b2f8b225ff1ecac15c441c976a5c7081
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80638456cb59116100f9578063d1c4691611610097578063e2ab691d11610071578063e2ab691d14610570578063e5839836146105a0578063f2fde38b146105d0578063f7b188a514610600576101a9565b8063d1c46916146104df578063d8fb93371461050f578063dd62ed3e14610540576101a9565b806395d89b41116100d357806395d89b4114610430578063a9059cbb1461044e578063b2520a7c1461047e578063c4f3a853146104af576101a9565b80638456cb59146103c45780638d1fdf2f146103e25780638da5cb5b14610412576101a9565b806342966c6811610166578063715018a611610140578063715018a61461031657806379cc6790146103345780637eee288d1461036457806383cfab4214610394576101a9565b806342966c68146102985780635c975abb146102c857806370a08231146102e6576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc57806323b872dd1461021a578063313ce5671461024a57806338b8209214610268575b600080fd5b6101b661061e565b6040516101c39190612adc565b60405180910390f35b6101e660048036038101906101e191906127b6565b61065b565b6040516101f39190612ac1565b60405180910390f35b6102046106e2565b6040516102119190612c9e565b60405180910390f35b610234600480360381019061022f9190612767565b6106eb565b6040516102419190612ac1565b60405180910390f35b6102526109b6565b60405161025f9190612ce2565b60405180910390f35b610282600480360381019061027d91906127f2565b6109bf565b60405161028f9190612ac1565b60405180910390f35b6102b260048036038101906102ad9190612841565b610ae4565b6040516102bf9190612ac1565b60405180910390f35b6102d0610b99565b6040516102dd9190612ac1565b60405180910390f35b61030060048036038101906102fb9190612702565b610bb0565b60405161030d9190612c9e565b60405180910390f35b61031e610bf9565b60405161032b9190612ac1565b60405180910390f35b61034e600480360381019061034991906127b6565b610c9a565b60405161035b9190612ac1565b60405180910390f35b61037e600480360381019061037991906127b6565b610ddf565b60405161038b9190612ac1565b60405180910390f35b6103ae60048036038101906103a99190612702565b610ec0565b6040516103bb9190612ac1565b60405180910390f35b6103cc610ff6565b6040516103d99190612ac1565b60405180910390f35b6103fc60048036038101906103f79190612702565b611126565b6040516104099190612ac1565b60405180910390f35b61041a61125c565b6040516104279190612aa6565b60405180910390f35b610438611286565b6040516104459190612adc565b60405180910390f35b610468600480360381019061046391906127b6565b6112c3565b6040516104759190612ac1565b60405180910390f35b610498600480360381019061049391906127b6565b6114fa565b6040516104a6929190612cb9565b60405180910390f35b6104c960048036038101906104c49190612702565b6115bb565b6040516104d69190612ac1565b60405180910390f35b6104f960048036038101906104f49190612702565b6116f0565b6040516105069190612ac1565b60405180910390f35b61052960048036038101906105249190612702565b611816565b604051610537929190612cb9565b60405180910390f35b61055a6004803603810190610555919061272b565b6118a5565b6040516105679190612c9e565b60405180910390f35b61058a600480360381019061058591906127f2565b61192c565b6040516105979190612ac1565b60405180910390f35b6105ba60048036038101906105b59190612702565b6119d2565b6040516105c79190612ac1565b60405180910390f35b6105ea60048036038101906105e59190612702565b611a28565b6040516105f79190612ac1565b60405180910390f35b610608611b3a565b6040516106159190612ac1565b60405180910390f35b60606040518060400160405280600e81526020017f536563746f72206f66204c616e64000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c390612c1e565b60405180910390fd5b6106d7338484611c69565b506001905092915050565b60008054905090565b600083600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077290612c3e565b60405180910390fd5b600660009054906101000a900460ff16156107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290612b9e565b60405180910390fd5b848380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108189190612d19565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089090612bfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090612bde565b60405180910390fd5b610914878787611d5c565b506109a7873387600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109a29190612d6f565b611c69565b50600193505050509392505050565b60006012905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890612bbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab890612afe565b60405180910390fd5b610acc338585611d5c565b50610ad8848484611eea565b50600190509392505050565b6000600660009054906101000a900460ff1615610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d90612b9e565b60405180910390fd5b610b403383612176565b90503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca583604051610b889190612c9e565b60405180910390a260019050919050565b6000600660009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612bbe565b60405180910390fd5b610c95600061228a565b905090565b6000600660009054906101000a900460ff1615610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612b9e565b60405180910390fd5b610cf68383612176565b508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca583604051610d3d9190612c9e565b60405180910390a2610dd7833384600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dd29190612d6f565b611c69565b905092915050565b600042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610e59577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015410610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290612b7e565b60405180910390fd5b610eb58383612352565b506001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4990612bbe565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90612bbe565b60405180910390fd5b600660009054906101000a900460ff16156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612b9e565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a16001905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111af90612bbe565b60405180910390fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f534c440000000000000000000000000000000000000000000000000000000000815250905090565b600033600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612c3e565b60405180910390fd5b600660009054906101000a900460ff16156113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612b9e565b60405180910390fd5b338380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f09190612d19565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146890612bfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890612b5e565b60405180910390fd5b6114ec338787611d5c565b506001935050505092915050565b6000806000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110611576577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b600080600190505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081116116e65742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001836116599190612d6f565b81548110611690577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015410156116d3576116be836001836116b99190612d6f565b612352565b156116d25780806116ce90612e2b565b9150505b5b80806116de90612e55565b9150506115c3565b5060019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177990612bbe565b60405180910390fd5b60005b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561180c5780806117da90612e55565b9150506117f3836001836117ee9190612d6f565b612352565b1561180757808061180390612e2b565b9150505b611785565b5060019050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b590612bbe565b60405180910390fd5b6119c9848484611eea565b90509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab190612bbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2190612c7e565b60405180910390fd5b611b338261228a565b9050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612bbe565b60405180910390fd5b600660009054906101000a900460ff16611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1290612c5e565b60405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693360405160405180910390a16001905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611d499190612c9e565b60405180910390a3600190509392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da99190612d6f565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e379190612d19565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed79190612c9e565b60405180910390a3600190509392505050565b6000428211611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2590612b3e565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f799190612d19565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff190612b1e565b60405180910390fd5b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120459190612d19565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280858152602001848152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051612163929190612cb9565b60405180910390a2600190509392505050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c39190612d6f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000546122149190612d6f565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122789190612c9e565b60405180910390a36001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106123cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020190508060000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242b9190612d6f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f182600001546040516124b89190612c9e565b60405180910390a2600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061254e9190612d6f565b81548110612585577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061260a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016000820154816000015560018201548160010155905050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806126a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b6000813590506126e7816132e1565b92915050565b6000813590506126fc816132f8565b92915050565b60006020828403121561271457600080fd5b6000612722848285016126d8565b91505092915050565b6000806040838503121561273e57600080fd5b600061274c858286016126d8565b925050602061275d858286016126d8565b9150509250929050565b60008060006060848603121561277c57600080fd5b600061278a868287016126d8565b935050602061279b868287016126d8565b92505060406127ac868287016126ed565b9150509250925092565b600080604083850312156127c957600080fd5b60006127d7858286016126d8565b92505060206127e8858286016126ed565b9150509250929050565b60008060006060848603121561280757600080fd5b6000612815868287016126d8565b9350506020612826868287016126ed565b9250506040612837868287016126ed565b9150509250925092565b60006020828403121561285357600080fd5b6000612861848285016126ed565b91505092915050565b61287381612da3565b82525050565b61288281612db5565b82525050565b600061289382612cfd565b61289d8185612d08565b93506128ad818560208601612df8565b6128b681612ecd565b840191505092915050565b60006128ce603e83612d08565b91506128d982612ede565b604082019050919050565b60006128f1604083612d08565b91506128fc82612f2d565b604082019050919050565b6000612914602b83612d08565b915061291f82612f7c565b604082019050919050565b6000612937602e83612d08565b915061294282612fcb565b604082019050919050565b600061295a602e83612d08565b91506129658261301a565b604082019050919050565b600061297d603983612d08565b915061298882613069565b604082019050919050565b60006129a0602f83612d08565b91506129ab826130b8565b604082019050919050565b60006129c3603283612d08565b91506129ce82613107565b604082019050919050565b60006129e6603383612d08565b91506129f182613156565b604082019050919050565b6000612a09602d83612d08565b9150612a14826131a5565b604082019050919050565b6000612a2c601c83612d08565b9150612a37826131f4565b602082019050919050565b6000612a4f603583612d08565b9150612a5a8261321d565b604082019050919050565b6000612a72604583612d08565b9150612a7d8261326c565b606082019050919050565b612a9181612de1565b82525050565b612aa081612deb565b82525050565b6000602082019050612abb600083018461286a565b92915050565b6000602082019050612ad66000830184612879565b92915050565b60006020820190508181036000830152612af68184612888565b905092915050565b60006020820190508181036000830152612b17816128c1565b9050919050565b60006020820190508181036000830152612b37816128e4565b9050919050565b60006020820190508181036000830152612b5781612907565b9050919050565b60006020820190508181036000830152612b778161292a565b9050919050565b60006020820190508181036000830152612b978161294d565b9050919050565b60006020820190508181036000830152612bb781612970565b9050919050565b60006020820190508181036000830152612bd781612993565b9050919050565b60006020820190508181036000830152612bf7816129b6565b9050919050565b60006020820190508181036000830152612c17816129d9565b9050919050565b60006020820190508181036000830152612c37816129fc565b9050919050565b60006020820190508181036000830152612c5781612a1f565b9050919050565b60006020820190508181036000830152612c7781612a42565b9050919050565b60006020820190508181036000830152612c9781612a65565b9050919050565b6000602082019050612cb36000830184612a88565b92915050565b6000604082019050612cce6000830185612a88565b612cdb6020830184612a88565b9392505050565b6000602082019050612cf76000830184612a97565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612d2482612de1565b9150612d2f83612de1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d6457612d63612e9e565b5b828201905092915050565b6000612d7a82612de1565b9150612d8583612de1565b925082821015612d9857612d97612e9e565b5b828203905092915050565b6000612dae82612dc1565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612e16578082015181840152602081019050612dfb565b83811115612e25576000848401525b50505050565b6000612e3682612de1565b91506000821415612e4a57612e49612e9e565b5b600182039050919050565b6000612e6082612de1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612e9357612e92612e9e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f45524332304c6f636b61626c652f7472616e73666572576974684c6f636b557060008201527f203a2043616e6e6f742073656e6420746f207a65726f20616464726573730000602082015250565b7f45524332304c6f636b61626c652f6c6f636b203a206c6f636b656420746f746160008201527f6c2073686f756c6420626520736d616c6c6572207468616e2062616c616e6365602082015250565b7f45524332304c6f636b61626c652f6c6f636b203a2043616e6e6f74207365742060008201527f64756520746f2070617374000000000000000000000000000000000000000000602082015250565b7f534c442f7472616e73666572203a2053686f756c64206e6f742073656e64207460008201527f6f207a65726f2061646472657373000000000000000000000000000000000000602082015250565b7f45524332304c6f636b61626c652f756e6c6f636b3a2063616e6e6f7420756e6c60008201527f6f636b206265666f726520647565000000000000000000000000000000000000602082015250565b7f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008201527f62652063616c6c6564207768656e206e6f742070617573656400000000000000602082015250565b7f4f776e61626c65203a2046756e6374696f6e2063616c6c656420627920756e6160008201527f7574686f72697a656420757365722e0000000000000000000000000000000000602082015250565b7f534c442f7472616e7366657246726f6d203a2053686f756c64206e6f7420736560008201527f6e6420746f207a65726f20616464726573730000000000000000000000000000602082015250565b7f45524332304c6f636b61626c652f43616e6e6f742073656e64206d6f7265207460008201527f68616e20756e6c6f636b656420616d6f756e7400000000000000000000000000602082015250565b7f534c442f617070726f7665203a2053686f756c64206e6f7420617070726f766560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b7f467265657a61626c65203a207461726765742069732066726f7a656e00000000600082015250565b7f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008201527f62652063616c6c6564207768656e207061757365640000000000000000000000602082015250565b7f4f776e61626c652f7472616e736665724f776e657273686970203a2063616e6e60008201527f6f74207472616e73666572206f776e65727368697020746f207a65726f20616460208201527f6472657373000000000000000000000000000000000000000000000000000000604082015250565b6132ea81612da3565b81146132f557600080fd5b50565b61330181612de1565b811461330c57600080fd5b5056fea264697066735822122050980bbdc762bb24b45d7730cd56cd5b21f03fb1fd5ce8951a74f8212475aea864736f6c63430008010033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000712d3744b2f8b225ff1ecac15c441c976a5c7081
-----Decoded View---------------
Arg [0] : _owner (address): 0x712d3744b2f8b225Ff1eCAC15C441c976A5C7081
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000712d3744b2f8b225ff1ecac15c441c976a5c7081
Deployed Bytecode Sourcemap
10298:2129:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12065:109;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11726:331;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1797:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11171:547;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12307:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6908:408;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8781:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8530:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1903:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3934:130;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9016:345;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6006:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9902:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8202:155;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9724:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3527:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12182:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10747:416;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7324:252;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6257:347;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6612:288;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7584:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2030:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5834:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10117:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3637:289;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8365:157;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12065:109;12113:23;12161:5;;;;;;;;;;;;;;;;;12149:17;;12065:109;:::o;11726:331::-;11830:12;11901:1;11882:21;;:7;:21;;;;11860:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;11987:37;11996:10;12008:7;12017:6;11987:8;:37::i;:::-;;12045:4;12035:14;;11726:331;;;;:::o;1797:100::-;1843:13;1877:12;;1869:20;;1797:100;:::o;11171:547::-;11374:12;11294:4;9648:7;:15;9656:6;9648:15;;;;;;;;;;;;;;;;;;;;;;;;;9647:16;9639:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;8105:7:::1;;;;;;;;;;;8104:8;8096:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11342:4:::2;11348:6;4801;4780:12;:18;4793:4;4780:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;4761:9;:15;4771:4;4761:15;;;;;;;;;;;;;;;;:46;;4753:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11440:1:::3;11426:16;;:2;:16;;;;11404:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;11531:27;11541:4;11547:2;11551:6;11531:9;:27::i;:::-;;11569:116;11592:4;11611:10;11668:6;11636:11;:17;11648:4;11636:17;;;;;;;;;;;;;;;:29;11654:10;11636:29;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;11569:8;:116::i;:::-;;11706:4;11696:14;;8185:1:::2;;11171:547:::0;;;;;;:::o;12307:117::-;12359:19;10513:2;12391:25;;12307:117;:::o;6908:408::-;7027:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;7100:1:::1;7079:23;;:9;:23;;;;7057:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;7203:40;7213:10;7225:9;7236:6;7203:9;:40::i;:::-;;7254:29;7260:9;7271:6;7279:3;7254:5;:29::i;:::-;;7304:4;7294:14;;6908:408:::0;;;;;:::o;8781:227::-;8870:12;8105:7;;;;;;;;;;;8104:8;8096:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8910:25:::1;8916:10;8928:6;8910:5;:25::i;:::-;8900:35;;8956:10;8951:24;;;8968:6;8951:24;;;;;;:::i;:::-;;;;;;;;8996:4;8986:14;;8781:227:::0;;;:::o;8530:80::-;8571:4;8595:7;;;;;;;;;;;8588:14;;8530:80;:::o;1903:119::-;1960:15;1998:9;:16;2008:5;1998:16;;;;;;;;;;;;;;;;1988:26;;1903:119;;;:::o;3934:130::-;3991:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;4026:30:::1;4053:1;4026:18;:30::i;:::-;4016:40;;3934:130:::0;:::o;9016:345::-;9125:12;8105:7;;;;;;;;;;;8104:8;8096:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9155:21:::1;9161:6;9169;9155:5;:21::i;:::-;;9197:6;9192:20;;;9205:6;9192:20;;;;;;:::i;:::-;;;;;;;;9233:120;9256:6;9277:10;9336:6;9302:11;:19;9314:6;9302:19;;;;;;;;;;;;;;;:31;9322:10;9302:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;9233:8;:120::i;:::-;9223:130;;9016:345:::0;;;;:::o;6006:243::-;6066:12;6122:15;6098:6;:12;6105:4;6098:12;;;;;;;;;;;;;;;6111:3;6098:17;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;:39;6090:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;6198:18;6206:4;6212:3;6198:7;:18::i;:::-;;6237:4;6227:14;;6006:243;;;;:::o;9902:207::-;9991:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;10039:5:::1;10021:7;:15;10029:6;10021:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10069:6;10060:16;;;;;;;;;;;;10097:4;10087:14;;9902:207:::0;;;:::o;8202:155::-;8261:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;8105:7:::1;;;;;;;;;;;8104:8;8096:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8296:4:::2;8286:7;;:14;;;;;;;;;;;;;;;;;;8316:8;;;;;;;;;;8345:4;8335:14;;8202:155:::0;:::o;9724:170::-;9784:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;9827:4:::1;9809:7;:15;9817:6;9809:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;9854:6;9847:14;;;;;;;;;;;;9882:4;9872:14;;9724:170:::0;;;:::o;3527:102::-;3567:20;3615:6;;;;;;;;;;;3600:21;;3527:102;:::o;12182:117::-;12232:25;12284:7;;;;;;;;;;;;;;;;;12270:21;;12182:117;:::o;10747:416::-;10944:12;10852:10;9648:7;:15;9656:6;9648:15;;;;;;;;;;;;;;;;;;;;;;;;;9647:16;9639:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;8105:7:::1;;;;;;;;;;;8104:8;8096:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;10906:10:::2;10918:6;4801;4780:12;:18;4793:4;4780:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;4761:9;:15;4771:4;4761:15;;;;;;;;;;;;;;;;:46;;4753:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11010:1:::3;10996:16;;:2;:16;;;;10974:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;11097:33;11107:10;11119:2;11123:6;11097:9;:33::i;:::-;;11151:4;11141:14;;8185:1:::2;;10747:416:::0;;;;;:::o;7324:252::-;7411:14;7427:11;7456:24;7483:6;:14;7490:6;7483:14;;;;;;;;;;;;;;;7498:5;7483:21;;;;;;;;;;;;;;;;;;;;;;;;;;7456:48;;;;;;;;;;;;;;;;;;;;;;;;;;;7524:8;:15;;;7515:24;;7556:8;:12;;;7550:18;;7324:252;;;;;;:::o;6257:347::-;6308:12;6337:9;6349:1;6337:13;;6333:239;6357:6;:12;6364:4;6357:12;;;;;;;;;;;;;;;:19;;;;6352:1;:24;6333:239;;6443:15;6419:6;:12;6426:4;6419:12;;;;;;;;;;;;;;;6434:1;6432;:3;;;;:::i;:::-;6419:17;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;:39;6416:145;;;6481:18;6489:4;6497:1;6495;:3;;;;:::i;:::-;6481:7;:18::i;:::-;6478:68;;;6523:3;;;;;:::i;:::-;;;;6478:68;6416:145;6377:3;;;;;:::i;:::-;;;;6333:239;;;;6592:4;6582:14;;6257:347;;;:::o;6612:288::-;6690:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;6724:9:::1;6720:148;6743:6;:12;6750:4;6743:12;;;;;;;;;;;;;;;:19;;;;6739:1;:23;6720:148;;;6779:3;;;;;:::i;:::-;;;;6800:18;6808:4;6816:1;6814;:3;;;;:::i;:::-;6800:7;:18::i;:::-;6797:60;;;6838:3;;;;;:::i;:::-;;;;6797:60;6720:148;;;;6888:4;6878:14;;6612:288:::0;;;:::o;7584:179::-;7643:14;7659;7694:12;:20;7707:6;7694:20;;;;;;;;;;;;;;;;7685:29;;7734:6;:14;7741:6;7734:14;;;;;;;;;;;;;;;:21;;;;7725:30;;7584:179;;;:::o;2030:183::-;2131:17;2178:11;:18;2190:5;2178:18;;;;;;;;;;;;;;;:27;2197:7;2178:27;;;;;;;;;;;;;;;;2166:39;;2030:183;;;;:::o;5834:164::-;5933:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;5966:24:::1;5972:4;5978:6;5986:3;5966:5;:24::i;:::-;5956:34;;5834:164:::0;;;;;:::o;10117:143::-;10201:11;10237:7;:15;10245:6;10237:15;;;;;;;;;;;;;;;;;;;;;;;;;10230:22;;10117:143;;;:::o;3637:289::-;3735:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;3793:1:::1;3773:22;;:8;:22;;;;3765:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;3890:28;3909:8;3890:18;:28::i;:::-;3880:38;;3637:289:::0;;;:::o;8365:157::-;8423:12;3418:6;;;;;;;;;;;3404:20;;:10;:20;;;3382:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;7967:7:::1;;;;;;;;;;;7959:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8458:5:::2;8448:7;;:15;;;;;;;;;;;;;;;;;;8479:10;;;;;;;;;;8510:4;8500:14;;8365:157:::0;:::o;865:249::-;967:12;1027:6;997:11;:18;1009:5;997:18;;;;;;;;;;;;;;;:27;1016:7;997:27;;;;;;;;;;;;;;;:36;;;;1065:7;1049:32;;1058:5;1049:32;;;1074:6;1049:32;;;;;;:::i;:::-;;;;;;;;1102:4;1092:14;;865:249;;;;;:::o;564:293::-;661:12;727:6;709:9;:15;719:4;709:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;691:9;:15;701:4;691:15;;;;;;;;;;;;;;;:42;;;;776:6;760:9;:13;770:2;760:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;744:9;:13;754:2;744:13;;;;;;;;;;;;;;;:38;;;;813:2;798:26;;807:4;798:26;;;817:6;798:26;;;;;;:::i;:::-;;;;;;;;845:4;835:14;;564:293;;;;;:::o;4891:546::-;4977:12;5021:15;5015:3;:21;5007:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;5145:12;:18;5158:4;5145:18;;;;;;;;;;;;;;;;5136:6;:27;;;;:::i;:::-;5117:9;:15;5127:4;5117:15;;;;;;;;;;;;;;;;:46;;5095:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;5308:6;5287:12;:18;5300:4;5287:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;5266:12;:18;5279:4;5266:18;;;;;;;;;;;;;;;:48;;;;5325:6;:12;5332:4;5325:12;;;;;;;;;;;;;;;5343:21;;;;;;;;5352:6;5343:21;;;;5360:3;5343:21;;;5325:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5386:4;5381:23;;;5392:6;5400:3;5381:23;;;;;;;:::i;:::-;;;;;;;;5425:4;5415:14;;4891:546;;;;;:::o;1433:291::-;1516:12;1586:6;1566:9;:17;1576:6;1566:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;1546:9;:17;1556:6;1546:17;;;;;;;;;;;;;;;:46;;;;1633:6;1618:12;;:21;;;;:::i;:::-;1603:12;:36;;;;1680:1;1655:36;;1664:6;1655:36;;;1684:6;1655:36;;;;;;:::i;:::-;;;;;;;;1712:4;1702:14;;1433:291;;;;:::o;4072:193::-;4136:12;4195:8;4166:38;;4187:6;;;;;;;;;;;4166:38;;;;;;;;;;;;4224:8;4215:6;;:17;;;;;;;;;;;;;;;;;;4253:4;4243:14;;4072:193;;;:::o;5445:381::-;5509:12;5534:25;5562:6;:12;5569:4;5562:12;;;;;;;;;;;;;;;5575:5;5562:19;;;;;;;;;;;;;;;;;;;;;;;;;;5534:47;;5634:8;:15;;;5613:12;:18;5626:4;5613:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;5592:12;:18;5605:4;5592:18;;;;;;;;;;;;;;;:57;;;;5672:4;5665:29;;;5678:8;:15;;;5665:29;;;;;;:::i;:::-;;;;;;;;5727:6;:12;5734:4;5727:12;;;;;;;;;;;;;;;5762:1;5740:6;:12;5747:4;5740:12;;;;;;;;;;;;;;;:19;;;;:23;;;;:::i;:::-;5727:37;;;;;;;;;;;;;;;;;;;;;;;;;;5705:6;:12;5712:4;5705:12;;;;;;;;;;;;;;;5718:5;5705:19;;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;;5775:6;:12;5782:4;5775:12;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5814:4;5804:14;;5445:381;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:552::-;;;;2091:2;2079:9;2070:7;2066:23;2062:32;2059:2;;;2107:1;2104;2097:12;2059:2;2150:1;2175:53;2220:7;2211:6;2200:9;2196:22;2175:53;:::i;:::-;2165:63;;2121:117;2277:2;2303:53;2348:7;2339:6;2328:9;2324:22;2303:53;:::i;:::-;2293:63;;2248:118;2405:2;2431:53;2476:7;2467:6;2456:9;2452:22;2431:53;:::i;:::-;2421:63;;2376:118;2049:452;;;;;:::o;2507:262::-;;2615:2;2603:9;2594:7;2590:23;2586:32;2583:2;;;2631:1;2628;2621:12;2583:2;2674:1;2699:53;2744:7;2735:6;2724:9;2720:22;2699:53;:::i;:::-;2689:63;;2645:117;2573:196;;;;:::o;2775:118::-;2862:24;2880:5;2862:24;:::i;:::-;2857:3;2850:37;2840:53;;:::o;2899:109::-;2980:21;2995:5;2980:21;:::i;:::-;2975:3;2968:34;2958:50;;:::o;3014:364::-;;3130:39;3163:5;3130:39;:::i;:::-;3185:71;3249:6;3244:3;3185:71;:::i;:::-;3178:78;;3265:52;3310:6;3305:3;3298:4;3291:5;3287:16;3265:52;:::i;:::-;3342:29;3364:6;3342:29;:::i;:::-;3337:3;3333:39;3326:46;;3106:272;;;;;:::o;3384:366::-;;3547:67;3611:2;3606:3;3547:67;:::i;:::-;3540:74;;3623:93;3712:3;3623:93;:::i;:::-;3741:2;3736:3;3732:12;3725:19;;3530:220;;;:::o;3756:366::-;;3919:67;3983:2;3978:3;3919:67;:::i;:::-;3912:74;;3995:93;4084:3;3995:93;:::i;:::-;4113:2;4108:3;4104:12;4097:19;;3902:220;;;:::o;4128:366::-;;4291:67;4355:2;4350:3;4291:67;:::i;:::-;4284:74;;4367:93;4456:3;4367:93;:::i;:::-;4485:2;4480:3;4476:12;4469:19;;4274:220;;;:::o;4500:366::-;;4663:67;4727:2;4722:3;4663:67;:::i;:::-;4656:74;;4739:93;4828:3;4739:93;:::i;:::-;4857:2;4852:3;4848:12;4841:19;;4646:220;;;:::o;4872:366::-;;5035:67;5099:2;5094:3;5035:67;:::i;:::-;5028:74;;5111:93;5200:3;5111:93;:::i;:::-;5229:2;5224:3;5220:12;5213:19;;5018:220;;;:::o;5244:366::-;;5407:67;5471:2;5466:3;5407:67;:::i;:::-;5400:74;;5483:93;5572:3;5483:93;:::i;:::-;5601:2;5596:3;5592:12;5585:19;;5390:220;;;:::o;5616:366::-;;5779:67;5843:2;5838:3;5779:67;:::i;:::-;5772:74;;5855:93;5944:3;5855:93;:::i;:::-;5973:2;5968:3;5964:12;5957:19;;5762:220;;;:::o;5988:366::-;;6151:67;6215:2;6210:3;6151:67;:::i;:::-;6144:74;;6227:93;6316:3;6227:93;:::i;:::-;6345:2;6340:3;6336:12;6329:19;;6134:220;;;:::o;6360:366::-;;6523:67;6587:2;6582:3;6523:67;:::i;:::-;6516:74;;6599:93;6688:3;6599:93;:::i;:::-;6717:2;6712:3;6708:12;6701:19;;6506:220;;;:::o;6732:366::-;;6895:67;6959:2;6954:3;6895:67;:::i;:::-;6888:74;;6971:93;7060:3;6971:93;:::i;:::-;7089:2;7084:3;7080:12;7073:19;;6878:220;;;:::o;7104:366::-;;7267:67;7331:2;7326:3;7267:67;:::i;:::-;7260:74;;7343:93;7432:3;7343:93;:::i;:::-;7461:2;7456:3;7452:12;7445:19;;7250:220;;;:::o;7476:366::-;;7639:67;7703:2;7698:3;7639:67;:::i;:::-;7632:74;;7715:93;7804:3;7715:93;:::i;:::-;7833:2;7828:3;7824:12;7817:19;;7622:220;;;:::o;7848:366::-;;8011:67;8075:2;8070:3;8011:67;:::i;:::-;8004:74;;8087:93;8176:3;8087:93;:::i;:::-;8205:2;8200:3;8196:12;8189:19;;7994:220;;;:::o;8220:118::-;8307:24;8325:5;8307:24;:::i;:::-;8302:3;8295:37;8285:53;;:::o;8344:112::-;8427:22;8443:5;8427:22;:::i;:::-;8422:3;8415:35;8405:51;;:::o;8462:222::-;;8593:2;8582:9;8578:18;8570:26;;8606:71;8674:1;8663:9;8659:17;8650:6;8606:71;:::i;:::-;8560:124;;;;:::o;8690:210::-;;8815:2;8804:9;8800:18;8792:26;;8828:65;8890:1;8879:9;8875:17;8866:6;8828:65;:::i;:::-;8782:118;;;;:::o;8906:313::-;;9057:2;9046:9;9042:18;9034:26;;9106:9;9100:4;9096:20;9092:1;9081:9;9077:17;9070:47;9134:78;9207:4;9198:6;9134:78;:::i;:::-;9126:86;;9024:195;;;;:::o;9225:419::-;;9429:2;9418:9;9414:18;9406:26;;9478:9;9472:4;9468:20;9464:1;9453:9;9449:17;9442:47;9506:131;9632:4;9506:131;:::i;:::-;9498:139;;9396:248;;;:::o;9650:419::-;;9854:2;9843:9;9839:18;9831:26;;9903:9;9897:4;9893:20;9889:1;9878:9;9874:17;9867:47;9931:131;10057:4;9931:131;:::i;:::-;9923:139;;9821:248;;;:::o;10075:419::-;;10279:2;10268:9;10264:18;10256:26;;10328:9;10322:4;10318:20;10314:1;10303:9;10299:17;10292:47;10356:131;10482:4;10356:131;:::i;:::-;10348:139;;10246:248;;;:::o;10500:419::-;;10704:2;10693:9;10689:18;10681:26;;10753:9;10747:4;10743:20;10739:1;10728:9;10724:17;10717:47;10781:131;10907:4;10781:131;:::i;:::-;10773:139;;10671:248;;;:::o;10925:419::-;;11129:2;11118:9;11114:18;11106:26;;11178:9;11172:4;11168:20;11164:1;11153:9;11149:17;11142:47;11206:131;11332:4;11206:131;:::i;:::-;11198:139;;11096:248;;;:::o;11350:419::-;;11554:2;11543:9;11539:18;11531:26;;11603:9;11597:4;11593:20;11589:1;11578:9;11574:17;11567:47;11631:131;11757:4;11631:131;:::i;:::-;11623:139;;11521:248;;;:::o;11775:419::-;;11979:2;11968:9;11964:18;11956:26;;12028:9;12022:4;12018:20;12014:1;12003:9;11999:17;11992:47;12056:131;12182:4;12056:131;:::i;:::-;12048:139;;11946:248;;;:::o;12200:419::-;;12404:2;12393:9;12389:18;12381:26;;12453:9;12447:4;12443:20;12439:1;12428:9;12424:17;12417:47;12481:131;12607:4;12481:131;:::i;:::-;12473:139;;12371:248;;;:::o;12625:419::-;;12829:2;12818:9;12814:18;12806:26;;12878:9;12872:4;12868:20;12864:1;12853:9;12849:17;12842:47;12906:131;13032:4;12906:131;:::i;:::-;12898:139;;12796:248;;;:::o;13050:419::-;;13254:2;13243:9;13239:18;13231:26;;13303:9;13297:4;13293:20;13289:1;13278:9;13274:17;13267:47;13331:131;13457:4;13331:131;:::i;:::-;13323:139;;13221:248;;;:::o;13475:419::-;;13679:2;13668:9;13664:18;13656:26;;13728:9;13722:4;13718:20;13714:1;13703:9;13699:17;13692:47;13756:131;13882:4;13756:131;:::i;:::-;13748:139;;13646:248;;;:::o;13900:419::-;;14104:2;14093:9;14089:18;14081:26;;14153:9;14147:4;14143:20;14139:1;14128:9;14124:17;14117:47;14181:131;14307:4;14181:131;:::i;:::-;14173:139;;14071:248;;;:::o;14325:419::-;;14529:2;14518:9;14514:18;14506:26;;14578:9;14572:4;14568:20;14564:1;14553:9;14549:17;14542:47;14606:131;14732:4;14606:131;:::i;:::-;14598:139;;14496:248;;;:::o;14750:222::-;;14881:2;14870:9;14866:18;14858:26;;14894:71;14962:1;14951:9;14947:17;14938:6;14894:71;:::i;:::-;14848:124;;;;:::o;14978:332::-;;15137:2;15126:9;15122:18;15114:26;;15150:71;15218:1;15207:9;15203:17;15194:6;15150:71;:::i;:::-;15231:72;15299:2;15288:9;15284:18;15275:6;15231:72;:::i;:::-;15104:206;;;;;:::o;15316:214::-;;15443:2;15432:9;15428:18;15420:26;;15456:67;15520:1;15509:9;15505:17;15496:6;15456:67;:::i;:::-;15410:120;;;;:::o;15536:99::-;;15622:5;15616:12;15606:22;;15595:40;;;:::o;15641:169::-;;15759:6;15754:3;15747:19;15799:4;15794:3;15790:14;15775:29;;15737:73;;;;:::o;15816:305::-;;15875:20;15893:1;15875:20;:::i;:::-;15870:25;;15909:20;15927:1;15909:20;:::i;:::-;15904:25;;16063:1;15995:66;15991:74;15988:1;15985:81;15982:2;;;16069:18;;:::i;:::-;15982:2;16113:1;16110;16106:9;16099:16;;15860:261;;;;:::o;16127:191::-;;16187:20;16205:1;16187:20;:::i;:::-;16182:25;;16221:20;16239:1;16221:20;:::i;:::-;16216:25;;16260:1;16257;16254:8;16251:2;;;16265:18;;:::i;:::-;16251:2;16310:1;16307;16303:9;16295:17;;16172:146;;;;:::o;16324:96::-;;16390:24;16408:5;16390:24;:::i;:::-;16379:35;;16369:51;;;:::o;16426:90::-;;16503:5;16496:13;16489:21;16478:32;;16468:48;;;:::o;16522:126::-;;16599:42;16592:5;16588:54;16577:65;;16567:81;;;:::o;16654:77::-;;16720:5;16709:16;;16699:32;;;:::o;16737:86::-;;16812:4;16805:5;16801:16;16790:27;;16780:43;;;:::o;16829:307::-;16897:1;16907:113;16921:6;16918:1;16915:13;16907:113;;;17006:1;17001:3;16997:11;16991:18;16987:1;16982:3;16978:11;16971:39;16943:2;16940:1;16936:10;16931:15;;16907:113;;;17038:6;17035:1;17032:13;17029:2;;;17118:1;17109:6;17104:3;17100:16;17093:27;17029:2;16878:258;;;;:::o;17142:171::-;;17204:24;17222:5;17204:24;:::i;:::-;17195:33;;17250:4;17243:5;17240:15;17237:2;;;17258:18;;:::i;:::-;17237:2;17305:1;17298:5;17294:13;17287:20;;17185:128;;;:::o;17319:233::-;;17381:24;17399:5;17381:24;:::i;:::-;17372:33;;17427:66;17420:5;17417:77;17414:2;;;17497:18;;:::i;:::-;17414:2;17544:1;17537:5;17533:13;17526:20;;17362:190;;;:::o;17558:180::-;17606:77;17603:1;17596:88;17703:4;17700:1;17693:15;17727:4;17724:1;17717:15;17744:102;;17836:2;17832:7;17827:2;17820:5;17816:14;17812:28;17802:38;;17792:54;;;:::o;17852:249::-;17992:34;17988:1;17980:6;17976:14;17969:58;18061:32;18056:2;18048:6;18044:15;18037:57;17958:143;:::o;18107:251::-;18247:34;18243:1;18235:6;18231:14;18224:58;18316:34;18311:2;18303:6;18299:15;18292:59;18213:145;:::o;18364:230::-;18504:34;18500:1;18492:6;18488:14;18481:58;18573:13;18568:2;18560:6;18556:15;18549:38;18470:124;:::o;18600:233::-;18740:34;18736:1;18728:6;18724:14;18717:58;18809:16;18804:2;18796:6;18792:15;18785:41;18706:127;:::o;18839:233::-;18979:34;18975:1;18967:6;18963:14;18956:58;19048:16;19043:2;19035:6;19031:15;19024:41;18945:127;:::o;19078:244::-;19218:34;19214:1;19206:6;19202:14;19195:58;19287:27;19282:2;19274:6;19270:15;19263:52;19184:138;:::o;19328:234::-;19468:34;19464:1;19456:6;19452:14;19445:58;19537:17;19532:2;19524:6;19520:15;19513:42;19434:128;:::o;19568:237::-;19708:34;19704:1;19696:6;19692:14;19685:58;19777:20;19772:2;19764:6;19760:15;19753:45;19674:131;:::o;19811:238::-;19951:34;19947:1;19939:6;19935:14;19928:58;20020:21;20015:2;20007:6;20003:15;19996:46;19917:132;:::o;20055:232::-;20195:34;20191:1;20183:6;20179:14;20172:58;20264:15;20259:2;20251:6;20247:15;20240:40;20161:126;:::o;20293:178::-;20433:30;20429:1;20421:6;20417:14;20410:54;20399:72;:::o;20477:240::-;20617:34;20613:1;20605:6;20601:14;20594:58;20686:23;20681:2;20673:6;20669:15;20662:48;20583:134;:::o;20723:293::-;20863:34;20859:1;20851:6;20847:14;20840:58;20932:34;20927:2;20919:6;20915:15;20908:59;21001:7;20996:2;20988:6;20984:15;20977:32;20829:187;:::o;21022:122::-;21095:24;21113:5;21095:24;:::i;:::-;21088:5;21085:35;21075:2;;21134:1;21131;21124:12;21075:2;21065:79;:::o;21150:122::-;21223:24;21241:5;21223:24;:::i;:::-;21216:5;21213:35;21203:2;;21262:1;21259;21252:12;21203:2;21193:79;:::o
Swarm Source
ipfs://50980bbdc762bb24b45d7730cd56cd5b21f03fb1fd5ce8951a74f8212475aea8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.