Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Initialize | 10148104 | 1670 days ago | IN | 0 ETH | 0.00608694 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Nexus
Compiler Version
v0.5.16+commit.9c3226ce
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion, GNU GPLv3 license, Audited
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at Etherscan.io on 2020-05-28 */ pragma solidity 0.5.16; /** * @title INexus * @dev Basic interface for interacting with the Nexus i.e. SystemKernel */ interface INexus { function governor() external view returns (address); function getModule(bytes32 key) external view returns (address); function proposeModule(bytes32 _key, address _addr) external; function cancelProposedModule(bytes32 _key) external; function acceptProposedModule(bytes32 _key) external; function acceptProposedModules(bytes32[] calldata _keys) external; function requestLockModule(bytes32 _key) external; function cancelLockModule(bytes32 _key) external; function lockModule(bytes32 _key) external; } /** * @title Governable * @author Stability Labs Pty. Ltd. * @notice Simple contract implementing an Ownable pattern. * @dev Derives from OpenZeppelin 2.3.0 Ownable.sol * Modified to have custom name and features */ contract Governable { event GovernorChanged(address indexed previousGovernor, address indexed newGovernor); address private _governor; /** * @dev Initializes the contract setting the deployer as the initial Governor. */ constructor () internal { _governor = msg.sender; emit GovernorChanged(address(0), _governor); } /** * @dev Returns the address of the current Governor. */ function governor() public view returns (address) { return _governor; } /** * @dev Throws if called by any account other than the Governor. */ modifier onlyGovernor() { require(isGovernor(), "GOV: caller is not the Governor"); _; } /** * @dev Returns true if the caller is the current Governor. */ function isGovernor() public view returns (bool) { return msg.sender == _governor; } /** * @dev Transfers Governance of the contract to a new account (`newGovernor`). * Can only be called by the current Governor. * @param _newGovernor Address of the new Governor */ function changeGovernor(address _newGovernor) external onlyGovernor { _changeGovernor(_newGovernor); } /** * @dev Change Governance of the contract to a new account (`newGovernor`). * @param _newGovernor Address of the new Governor */ function _changeGovernor(address _newGovernor) internal { require(_newGovernor != address(0), "GOV: new Governor is address(0)"); emit GovernorChanged(_governor, _newGovernor); _governor = _newGovernor; } } /** * @title ClaimableGovernor * @author Stability Labs Pty. Ltd. * @notice 2 way handshake for Governance transfer */ contract ClaimableGovernor is Governable { event GovernorChangeClaimed(address indexed proposedGovernor); event GovernorChangeCancelled(address indexed governor, address indexed proposed); event GovernorChangeRequested(address indexed governor, address indexed proposed); address public proposedGovernor = address(0); /** * @dev Throws if called by any account other than the Proposed Governor. */ modifier onlyProposedGovernor() { require(msg.sender == proposedGovernor, "Sender is not proposed governor"); _; } constructor(address _governorAddr) public { _changeGovernor(_governorAddr); } //@override function changeGovernor(address) external onlyGovernor { revert("Direct change not allowed"); } /** * @dev Current Governor request to proposes a new Governor * @param _proposedGovernor Address of the proposed Governor */ function requestGovernorChange(address _proposedGovernor) public onlyGovernor { require(_proposedGovernor != address(0), "Proposed governor is address(0)"); require(proposedGovernor == address(0), "Proposed governor already set"); proposedGovernor = _proposedGovernor; emit GovernorChangeRequested(governor(), _proposedGovernor); } /** * @dev Current Governor cancel Governor change request */ function cancelGovernorChange() public onlyGovernor { require(proposedGovernor != address(0), "Proposed Governor not set"); emit GovernorChangeCancelled(governor(), proposedGovernor); proposedGovernor = address(0); } /** * @dev Proposed Governor can claim governance ownership */ function claimGovernorChange() public onlyProposedGovernor { _changeGovernor(proposedGovernor); emit GovernorChangeClaimed(proposedGovernor); proposedGovernor = address(0); } } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @title DelayedClaimableGovernor * @author Stability Labs Pty. Ltd. * @notice Current Governor can initiate governance change request. * After a defined delay, proposed Governor can claim governance * ownership. */ contract DelayedClaimableGovernor is ClaimableGovernor { using SafeMath for uint256; uint256 public delay = 0; uint256 public requestTime = 0; /** * @dev Initializes the contract with given delay * @param _governorAddr Initial governor * @param _delay Delay in seconds for 2 way handshake */ constructor(address _governorAddr, uint256 _delay) public ClaimableGovernor(_governorAddr) { require(_delay > 0, "Delay must be greater than zero"); delay = _delay; } //@override /** * @dev Requests change of governor and logs request time * @param _proposedGovernor Address of the new governor */ function requestGovernorChange(address _proposedGovernor) public onlyGovernor { requestTime = now; super.requestGovernorChange(_proposedGovernor); } //@override /** * @dev Cancels an outstanding governor change request by resetting request time */ function cancelGovernorChange() public onlyGovernor { requestTime = 0; super.cancelGovernorChange(); } //@override /** * @dev Proposed governor claims new position, callable after time elapsed */ function claimGovernorChange() public onlyProposedGovernor { require(now >= (requestTime.add(delay)), "Delay not over"); super.claimGovernorChange(); requestTime = 0; } } /** * @title Nexus * @author Stability Labs Pty. Ltd. * @notice This is the system address kernel, it also facilitates the changing of governor * @dev The Nexus is mStable's Kernel, and allows the publishing and propagating * of new system Modules. Other Modules will read from the Nexus */ contract Nexus is INexus, DelayedClaimableGovernor { event ModuleProposed(bytes32 indexed key, address addr, uint256 timestamp); event ModuleAdded(bytes32 indexed key, address addr, bool isLocked); event ModuleCancelled(bytes32 indexed key); event ModuleLockRequested(bytes32 indexed key, uint256 timestamp); event ModuleLockEnabled(bytes32 indexed key); event ModuleLockCancelled(bytes32 indexed key); /** @dev Struct to store information about current modules */ struct Module { address addr; // Module address bool isLocked; // Module lock status } /** @dev Struct to store information about proposed modules */ struct Proposal { address newAddress; // Proposed Module address uint256 timestamp; // Timestamp when module upgrade was proposed } // 1 week delayed upgrade period uint256 public constant UPGRADE_DELAY = 1 weeks; // Module-key => Module mapping(bytes32 => Module) public modules; // Module-address => Module-key mapping(address => bytes32) private addressToModule; // Module-key => Proposal mapping(bytes32 => Proposal) public proposedModules; // Module-key => Timestamp when lock was proposed mapping(bytes32 => uint256) public proposedLockModules; // Init flag to allow add modules at the time of deplyment without delay bool public initialized = false; /** * @dev Modifier allows functions calls only when contract is not initialized. */ modifier whenNotInitialized() { require(!initialized, "Nexus is already initialized"); _; } /** * @dev Initialises the Nexus and adds the core data to the Kernel (itself and governor) * @param _governorAddr Governor address */ constructor(address _governorAddr) public DelayedClaimableGovernor(_governorAddr, UPGRADE_DELAY) {} /** * @dev Adds multiple new modules to the system to initialize the * Nexus contract with default modules. This should be called first * after deploying Nexus contract. * @param _keys Keys of the new modules in bytes32 form * @param _addresses Contract addresses of the new modules * @param _isLocked IsLocked flag for the new modules * @param _governorAddr New Governor address * @return bool Success of publishing new Modules */ function initialize( bytes32[] calldata _keys, address[] calldata _addresses, bool[] calldata _isLocked, address _governorAddr ) external onlyGovernor whenNotInitialized returns (bool) { uint256 len = _keys.length; require(len > 0, "No keys provided"); require(len == _addresses.length, "Insufficient address data"); require(len == _isLocked.length, "Insufficient locked statuses"); for(uint256 i = 0 ; i < len; i++) { _publishModule(_keys[i], _addresses[i], _isLocked[i]); } if(_governorAddr != governor()) _changeGovernor(_governorAddr); initialized = true; return true; } /*************************************** MODULE ADDING ****************************************/ /** * @dev Propose a new or update existing module * @param _key Key of the module * @param _addr Address of the module */ function proposeModule(bytes32 _key, address _addr) external onlyGovernor { require(_key != bytes32(0x0), "Key must not be zero"); require(_addr != address(0), "Module address must not be 0"); require(!modules[_key].isLocked, "Module must be unlocked"); require(modules[_key].addr != _addr, "Module already has same address"); Proposal storage p = proposedModules[_key]; require(p.timestamp == 0, "Module already proposed"); p.newAddress = _addr; p.timestamp = now; emit ModuleProposed(_key, _addr, now); } /** * @dev Cancel a proposed module request * @param _key Key of the module */ function cancelProposedModule(bytes32 _key) external onlyGovernor { uint256 timestamp = proposedModules[_key].timestamp; require(timestamp > 0, "Proposed module not found"); delete proposedModules[_key]; emit ModuleCancelled(_key); } /** * @dev Accept and publish an already proposed module * @param _key Key of the module */ function acceptProposedModule(bytes32 _key) external onlyGovernor { _acceptProposedModule(_key); } /** * @dev Accept and publish already proposed modules * @param _keys Keys array of the modules */ function acceptProposedModules(bytes32[] calldata _keys) external onlyGovernor { uint256 len = _keys.length; require(len > 0, "Keys array empty"); for(uint256 i = 0 ; i < len; i++) { _acceptProposedModule(_keys[i]); } } /** * @dev Accept a proposed module * @param _key Key of the module */ function _acceptProposedModule(bytes32 _key) internal { Proposal memory p = proposedModules[_key]; require(_isDelayOver(p.timestamp), "Module upgrade delay not over"); delete proposedModules[_key]; _publishModule(_key, p.newAddress, false); } /** * @dev Internal func to publish a module to kernel * @param _key Key of the new module in bytes32 form * @param _addr Contract address of the new module * @param _isLocked Flag to lock a module */ function _publishModule(bytes32 _key, address _addr, bool _isLocked) internal { require(addressToModule[_addr] == bytes32(0x0), "Modules must have unique addr"); require(!modules[_key].isLocked, "Module must be unlocked"); // Old no longer points to a moduleAddress address oldModuleAddr = modules[_key].addr; if(oldModuleAddr != address(0x0)) { addressToModule[oldModuleAddr] = bytes32(0x0); } modules[_key].addr = _addr; modules[_key].isLocked = _isLocked; addressToModule[_addr] = _key; emit ModuleAdded(_key, _addr, _isLocked); } /*************************************** MODULE LOCKING ****************************************/ /** * @dev Request to lock an existing module * @param _key Key of the module */ function requestLockModule(bytes32 _key) external onlyGovernor { require(moduleExists(_key), "Module must exist"); require(!modules[_key].isLocked, "Module must be unlocked"); require(proposedLockModules[_key] == 0, "Lock already proposed"); proposedLockModules[_key] = now; emit ModuleLockRequested(_key, now); } /** * @dev Cancel a lock module request * @param _key Key of the module */ function cancelLockModule(bytes32 _key) external onlyGovernor { require(proposedLockModules[_key] > 0, "Module lock request not found"); delete proposedLockModules[_key]; emit ModuleLockCancelled(_key); } /** * @dev Permanently lock a module to its current settings * @param _key Bytes32 key of the module */ function lockModule(bytes32 _key) external onlyGovernor { require(_isDelayOver(proposedLockModules[_key]), "Delay not over"); modules[_key].isLocked = true; delete proposedLockModules[_key]; emit ModuleLockEnabled(_key); } /*************************************** HELPERS & GETTERS ****************************************/ /** * @dev Checks if a module exists * @param _key Key of the module * @return Returns 'true' when a module exists, otherwise 'false' */ function moduleExists(bytes32 _key) public view returns (bool) { if(_key != 0 && modules[_key].addr != address(0)) return true; return false; } /** * @dev Get the module address * @param _key Key of the module * @return Return the address of the module */ function getModule(bytes32 _key) external view returns (address addr) { addr = modules[_key].addr; } /** * @dev Checks if upgrade delay over * @param _timestamp Timestamp to check * @return Return 'true' when delay is over, otherwise 'false' */ function _isDelayOver(uint256 _timestamp) private view returns (bool) { if(_timestamp > 0 && now >= _timestamp.add(UPGRADE_DELAY)) return true; return false; } }
Contract Security Audit
- Consensys Diligence - August 10th, 2020 - Security Audit Report
[{"inputs":[{"internalType":"address","name":"_governorAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"governor","type":"address"},{"indexed":true,"internalType":"address","name":"proposed","type":"address"}],"name":"GovernorChangeCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposedGovernor","type":"address"}],"name":"GovernorChangeClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"governor","type":"address"},{"indexed":true,"internalType":"address","name":"proposed","type":"address"}],"name":"GovernorChangeRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousGovernor","type":"address"},{"indexed":true,"internalType":"address","name":"newGovernor","type":"address"}],"name":"GovernorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"isLocked","type":"bool"}],"name":"ModuleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"ModuleCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"ModuleLockCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"ModuleLockEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ModuleLockRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ModuleProposed","type":"event"},{"constant":true,"inputs":[],"name":"UPGRADE_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"acceptProposedModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"_keys","type":"bytes32[]"}],"name":"acceptProposedModules","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cancelGovernorChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"cancelLockModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"cancelProposedModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"changeGovernor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimGovernorChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getModule","outputs":[{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"_keys","type":"bytes32[]"},{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bool[]","name":"_isLocked","type":"bool[]"},{"internalType":"address","name":"_governorAddr","type":"address"}],"name":"initialize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isGovernor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"lockModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"moduleExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"modules","outputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"isLocked","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"address","name":"_addr","type":"address"}],"name":"proposeModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"proposedGovernor","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposedLockModules","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposedModules","outputs":[{"internalType":"address","name":"newAddress","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_proposedGovernor","type":"address"}],"name":"requestGovernorChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"requestLockModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"requestTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600180546001600160a01b0319169055600060028190556003556008805460ff1916905534801561003457600080fd5b5060405162001ba238038062001ba28339818101604052602081101561005957600080fd5b5051600080546001600160a01b0319163317808255604051839262093a809284926001600160a01b0391909116919060008051602062001b82833981519152908290a36100ae816001600160e01b0361010f16565b5060008111610104576040805162461bcd60e51b815260206004820152601f60248201527f44656c6179206d7573742062652067726561746572207468616e207a65726f00604482015290519081900360640190fd5b600255506101b49050565b6001600160a01b03811661016a576040805162461bcd60e51b815260206004820152601f60248201527f474f563a206e657720476f7665726e6f72206973206164647265737328302900604482015290519081900360640190fd5b600080546040516001600160a01b038085169392169160008051602062001b8283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6119be80620001c46000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806385acd641116100c3578063b0b6cc1a1161007c578063b0b6cc1a1461049e578063c7af3352146104de578063d7e0842a146104e6578063d7fd0e7714610503578063e4c0aaf41461050b578063efa2f3a21461053157610158565b806385acd6411461042f5780638a11a3701461044c5780638c33c19c1461045457806394ccb1371461045c57806397f5fea614610479578063ad339d7a1461049657610158565b8063381042c811610115578063381042c81461023d57806347fe8b1d146103545780636921ea411461035c5780636a42b8f8146103ca5780636a89934b146103d25780636d4e19911461041257610158565b8063099c47bc1461015d57806309ea14aa146101855780630c340a24146101b1578063158ef93e146101d5578063165ed306146101f157806328066b8614610220575b600080fd5b6101836004803603602081101561017357600080fd5b50356001600160a01b031661054e565b005b6101836004803603604081101561019b57600080fd5b50803590602001356001600160a01b03166105a5565b6101b961082d565b604080516001600160a01b039092168252519081900360200190f35b6101dd61083c565b604080519115158252519081900360200190f35b61020e6004803603602081101561020757600080fd5b5035610845565b60408051918252519081900360200190f35b6101836004803603602081101561023657600080fd5b5035610857565b6101dd6004803603608081101561025357600080fd5b810190602081018135600160201b81111561026d57600080fd5b82018360208201111561027f57600080fd5b803590602001918460208302840111600160201b831117156102a057600080fd5b919390929091602081019035600160201b8111156102bd57600080fd5b8201836020820111156102cf57600080fd5b803590602001918460208302840111600160201b831117156102f057600080fd5b919390929091602081019035600160201b81111561030d57600080fd5b82018360208201111561031f57600080fd5b803590602001918460208302840111600160201b8311171561034057600080fd5b9193509150356001600160a01b03166108a7565b61020e610adc565b6101836004803603602081101561037257600080fd5b810190602081018135600160201b81111561038c57600080fd5b82018360208201111561039e57600080fd5b803590602001918460208302840111600160201b831117156103bf57600080fd5b509092509050610ae3565b61020e610ba4565b6103ef600480360360208110156103e857600080fd5b5035610baa565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6101836004803603602081101561042857600080fd5b5035610bcf565b6101b96004803603602081101561044557600080fd5b5035610cc6565b6101b9610ce1565b610183610cf0565b6101dd6004803603602081101561047257600080fd5b5035610d46565b6101836004803603602081101561048f57600080fd5b5035610d83565b610183610f22565b6104bb600480360360208110156104b457600080fd5b5035610fea565b604080516001600160a01b03909316835290151560208301528051918290030190f35b6101dd611011565b610183600480360360208110156104fc57600080fd5b5035611022565b61020e61111a565b6101836004803603602081101561052157600080fd5b50356001600160a01b0316611120565b6101836004803603602081101561054757600080fd5b50356111b4565b610556611011565b610595576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b426003556105a281611296565b50565b6105ad611011565b6105ec576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b81610635576040805162461bcd60e51b81526020600482015260146024820152734b6579206d757374206e6f74206265207a65726f60601b604482015290519081900360640190fd5b6001600160a01b038116610690576040805162461bcd60e51b815260206004820152601c60248201527f4d6f64756c652061646472657373206d757374206e6f74206265203000000000604482015290519081900360640190fd5b600082815260046020526040902054600160a01b900460ff16156106f5576040805162461bcd60e51b8152602060048201526017602482015276135bd91d5b19481b5d5cdd081899481d5b9b1bd8dad959604a1b604482015290519081900360640190fd5b6000828152600460205260409020546001600160a01b0382811691161415610764576040805162461bcd60e51b815260206004820152601f60248201527f4d6f64756c6520616c7265616479206861732073616d65206164647265737300604482015290519081900360640190fd5b60008281526006602052604090206001810154156107c9576040805162461bcd60e51b815260206004820152601760248201527f4d6f64756c6520616c72656164792070726f706f736564000000000000000000604482015290519081900360640190fd5b80546001600160a01b0319166001600160a01b03831690811782554260018301819055604080519283526020830191909152805185927fa5917e6bf5563219e2772cffe6989d6f2ef8235ab280ab88f8c37479562e58a392908290030190a2505050565b6000546001600160a01b031690565b60085460ff1681565b60076020526000908152604090205481565b61085f611011565b61089e576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6105a2816113f4565b60006108b1611011565b6108f0576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b60085460ff1615610948576040805162461bcd60e51b815260206004820152601c60248201527f4e6578757320697320616c726561647920696e697469616c697a656400000000604482015290519081900360640190fd5b868061098e576040805162461bcd60e51b815260206004820152601060248201526f139bc81ad95e5cc81c1c9bdd9a59195960821b604482015290519081900360640190fd5b8086146109e2576040805162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742061646472657373206461746100000000000000604482015290519081900360640190fd5b808414610a36576040805162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e74206c6f636b656420737461747573657300000000604482015290519081900360640190fd5b60005b81811015610a9557610a8d8a8a83818110610a5057fe5b90506020020135898984818110610a6357fe5b905060200201356001600160a01b0316888885818110610a7f57fe5b9050602002013515156114bc565b600101610a39565b50610a9e61082d565b6001600160a01b0316836001600160a01b031614610abf57610abf83611651565b50506008805460ff19166001908117909155979650505050505050565b62093a8081565b610aeb611011565b610b2a576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b8080610b70576040805162461bcd60e51b815260206004820152601060248201526f4b65797320617272617920656d70747960801b604482015290519081900360640190fd5b60005b81811015610b9e57610b96848483818110610b8a57fe5b905060200201356113f4565b600101610b73565b50505050565b60025481565b600660205260009081526040902080546001909101546001600160a01b039091169082565b610bd7611011565b610c16576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b600081815260076020526040902054610c2e90611707565b610c70576040805162461bcd60e51b815260206004820152600e60248201526d2232b630bc903737ba1037bb32b960911b604482015290519081900360640190fd5b6000818152600460209081526040808320805460ff60a01b1916600160a01b17905560079091528082208290555182917f097d0a4360ac95150faf267a7b4a999756a69238c2c7023cac729d81f0b733a391a250565b6000908152600460205260409020546001600160a01b031690565b6001546001600160a01b031681565b610cf8611011565b610d37576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6000600355610d44611734565b565b60008115801590610d6d57506000828152600460205260409020546001600160a01b031615155b15610d7a57506001610d7e565b5060005b919050565b610d8b611011565b610dca576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b610dd381610d46565b610e18576040805162461bcd60e51b8152602060048201526011602482015270135bd91d5b19481b5d5cdd08195e1a5cdd607a1b604482015290519081900360640190fd5b600081815260046020526040902054600160a01b900460ff1615610e7d576040805162461bcd60e51b8152602060048201526017602482015276135bd91d5b19481b5d5cdd081899481d5b9b1bd8dad959604a1b604482015290519081900360640190fd5b60008181526007602052604090205415610ed6576040805162461bcd60e51b8152602060048201526015602482015274131bd8dac8185b1c9958591e481c1c9bdc1bdcd959605a1b604482015290519081900360640190fd5b60008181526007602090815260409182902042908190558251908152915183927f57456e8dc47899fbd8a75be3129514a3e4cca602e26b766d4bbb821975c4375892908290030190a250565b6001546001600160a01b03163314610f81576040805162461bcd60e51b815260206004820152601f60248201527f53656e646572206973206e6f742070726f706f73656420676f7665726e6f7200604482015290519081900360640190fd5b600254600354610f969163ffffffff61183316565b421015610fdb576040805162461bcd60e51b815260206004820152600e60248201526d2232b630bc903737ba1037bb32b960911b604482015290519081900360640190fd5b610fe3611894565b6000600355565b6004602052600090815260409020546001600160a01b03811690600160a01b900460ff1682565b6000546001600160a01b0316331490565b61102a611011565b611069576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b600081815260066020526040902060010154806110cd576040805162461bcd60e51b815260206004820152601960248201527f50726f706f736564206d6f64756c65206e6f7420666f756e6400000000000000604482015290519081900360640190fd5b60008281526006602052604080822080546001600160a01b03191681556001018290555183917f4dd889c845f5a942b8304764283938168000b8f4903940690beb685ca2fc16cc91a25050565b60035481565b611128611011565b611167576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601960248201527f446972656374206368616e6765206e6f7420616c6c6f77656400000000000000604482015290519081900360640190fd5b6111bc611011565b6111fb576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b60008181526007602052604090205461125b576040805162461bcd60e51b815260206004820152601d60248201527f4d6f64756c65206c6f636b2072657175657374206e6f7420666f756e64000000604482015290519081900360640190fd5b6000818152600760205260408082208290555182917f3d670309414f84151711e0ac2795a2b1686580ad9faca995492166a486255db391a250565b61129e611011565b6112dd576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6001600160a01b038116611338576040805162461bcd60e51b815260206004820152601f60248201527f50726f706f73656420676f7665726e6f72206973206164647265737328302900604482015290519081900360640190fd5b6001546001600160a01b031615611396576040805162461bcd60e51b815260206004820152601d60248201527f50726f706f73656420676f7665726e6f7220616c726561647920736574000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383169081179091556113bc61082d565b6001600160a01b03167fa48c163cc46eb28aba8bdb525da18f15a83020cc18f439c933d79ea3ad9b50bb60405160405180910390a350565b6113fc611952565b50600081815260066020908152604091829020825180840190935280546001600160a01b031683526001015490820181905261143790611707565b611488576040805162461bcd60e51b815260206004820152601d60248201527f4d6f64756c6520757067726164652064656c6179206e6f74206f766572000000604482015290519081900360640190fd5b600082815260066020526040812080546001600160a01b031916815560010181905581516114b8918491906114bc565b5050565b6001600160a01b03821660009081526005602052604090205415611527576040805162461bcd60e51b815260206004820152601d60248201527f4d6f64756c6573206d757374206861766520756e697175652061646472000000604482015290519081900360640190fd5b600083815260046020526040902054600160a01b900460ff161561158c576040805162461bcd60e51b8152602060048201526017602482015276135bd91d5b19481b5d5cdd081899481d5b9b1bd8dad959604a1b604482015290519081900360640190fd5b6000838152600460205260409020546001600160a01b031680156115c4576001600160a01b0381166000908152600560205260408120555b60008481526004602090815260408083208054861515600160a01b810260ff60a01b196001600160a01b038b166001600160a01b0319909416841716179092558085526005845293829020889055815193845291830191909152805186927f7bf901a62d0edd068a4e74518eb8241133713d384171c7d0a3b7f6eb5c04095d92908290030190a250505050565b6001600160a01b0381166116ac576040805162461bcd60e51b815260206004820152601f60248201527f474f563a206e657720476f7665726e6f72206973206164647265737328302900604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8491a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008082118015610d6d57506117268262093a8063ffffffff61183316565b4210610d7a57506001610d7e565b61173c611011565b61177b576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6001546001600160a01b03166117d8576040805162461bcd60e51b815260206004820152601960248201527f50726f706f73656420476f7665726e6f72206e6f742073657400000000000000604482015290519081900360640190fd5b6001546001600160a01b03166117ec61082d565b6001600160a01b03167f2f7bb10f75b8694ea78291d7ca4c9f2a75bc45f0f97046164ad3ee984bdf4bba60405160405180910390a3600180546001600160a01b0319169055565b60008282018381101561188d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001546001600160a01b031633146118f3576040805162461bcd60e51b815260206004820152601f60248201527f53656e646572206973206e6f742070726f706f73656420676f7665726e6f7200604482015290519081900360640190fd5b600154611908906001600160a01b0316611651565b6001546040516001600160a01b03909116907f0ad714cb5607f3b529b5d3292190925ae992a77b291e39ec09c390d4787896ba90600090a2600180546001600160a01b0319169055565b60408051808201909152600080825260208201529056fe474f563a2063616c6c6572206973206e6f742074686520476f7665726e6f7200a265627a7a723158207086f7e9d76bb328fe79dc25bc590a966d779a27870e3eec7f942a4930b7f35864736f6c63430005100032de4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8400000000000000000000000019f12c947d25ff8a3b748829d8001ca09a28d46d
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c806385acd641116100c3578063b0b6cc1a1161007c578063b0b6cc1a1461049e578063c7af3352146104de578063d7e0842a146104e6578063d7fd0e7714610503578063e4c0aaf41461050b578063efa2f3a21461053157610158565b806385acd6411461042f5780638a11a3701461044c5780638c33c19c1461045457806394ccb1371461045c57806397f5fea614610479578063ad339d7a1461049657610158565b8063381042c811610115578063381042c81461023d57806347fe8b1d146103545780636921ea411461035c5780636a42b8f8146103ca5780636a89934b146103d25780636d4e19911461041257610158565b8063099c47bc1461015d57806309ea14aa146101855780630c340a24146101b1578063158ef93e146101d5578063165ed306146101f157806328066b8614610220575b600080fd5b6101836004803603602081101561017357600080fd5b50356001600160a01b031661054e565b005b6101836004803603604081101561019b57600080fd5b50803590602001356001600160a01b03166105a5565b6101b961082d565b604080516001600160a01b039092168252519081900360200190f35b6101dd61083c565b604080519115158252519081900360200190f35b61020e6004803603602081101561020757600080fd5b5035610845565b60408051918252519081900360200190f35b6101836004803603602081101561023657600080fd5b5035610857565b6101dd6004803603608081101561025357600080fd5b810190602081018135600160201b81111561026d57600080fd5b82018360208201111561027f57600080fd5b803590602001918460208302840111600160201b831117156102a057600080fd5b919390929091602081019035600160201b8111156102bd57600080fd5b8201836020820111156102cf57600080fd5b803590602001918460208302840111600160201b831117156102f057600080fd5b919390929091602081019035600160201b81111561030d57600080fd5b82018360208201111561031f57600080fd5b803590602001918460208302840111600160201b8311171561034057600080fd5b9193509150356001600160a01b03166108a7565b61020e610adc565b6101836004803603602081101561037257600080fd5b810190602081018135600160201b81111561038c57600080fd5b82018360208201111561039e57600080fd5b803590602001918460208302840111600160201b831117156103bf57600080fd5b509092509050610ae3565b61020e610ba4565b6103ef600480360360208110156103e857600080fd5b5035610baa565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6101836004803603602081101561042857600080fd5b5035610bcf565b6101b96004803603602081101561044557600080fd5b5035610cc6565b6101b9610ce1565b610183610cf0565b6101dd6004803603602081101561047257600080fd5b5035610d46565b6101836004803603602081101561048f57600080fd5b5035610d83565b610183610f22565b6104bb600480360360208110156104b457600080fd5b5035610fea565b604080516001600160a01b03909316835290151560208301528051918290030190f35b6101dd611011565b610183600480360360208110156104fc57600080fd5b5035611022565b61020e61111a565b6101836004803603602081101561052157600080fd5b50356001600160a01b0316611120565b6101836004803603602081101561054757600080fd5b50356111b4565b610556611011565b610595576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b426003556105a281611296565b50565b6105ad611011565b6105ec576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b81610635576040805162461bcd60e51b81526020600482015260146024820152734b6579206d757374206e6f74206265207a65726f60601b604482015290519081900360640190fd5b6001600160a01b038116610690576040805162461bcd60e51b815260206004820152601c60248201527f4d6f64756c652061646472657373206d757374206e6f74206265203000000000604482015290519081900360640190fd5b600082815260046020526040902054600160a01b900460ff16156106f5576040805162461bcd60e51b8152602060048201526017602482015276135bd91d5b19481b5d5cdd081899481d5b9b1bd8dad959604a1b604482015290519081900360640190fd5b6000828152600460205260409020546001600160a01b0382811691161415610764576040805162461bcd60e51b815260206004820152601f60248201527f4d6f64756c6520616c7265616479206861732073616d65206164647265737300604482015290519081900360640190fd5b60008281526006602052604090206001810154156107c9576040805162461bcd60e51b815260206004820152601760248201527f4d6f64756c6520616c72656164792070726f706f736564000000000000000000604482015290519081900360640190fd5b80546001600160a01b0319166001600160a01b03831690811782554260018301819055604080519283526020830191909152805185927fa5917e6bf5563219e2772cffe6989d6f2ef8235ab280ab88f8c37479562e58a392908290030190a2505050565b6000546001600160a01b031690565b60085460ff1681565b60076020526000908152604090205481565b61085f611011565b61089e576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6105a2816113f4565b60006108b1611011565b6108f0576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b60085460ff1615610948576040805162461bcd60e51b815260206004820152601c60248201527f4e6578757320697320616c726561647920696e697469616c697a656400000000604482015290519081900360640190fd5b868061098e576040805162461bcd60e51b815260206004820152601060248201526f139bc81ad95e5cc81c1c9bdd9a59195960821b604482015290519081900360640190fd5b8086146109e2576040805162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742061646472657373206461746100000000000000604482015290519081900360640190fd5b808414610a36576040805162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e74206c6f636b656420737461747573657300000000604482015290519081900360640190fd5b60005b81811015610a9557610a8d8a8a83818110610a5057fe5b90506020020135898984818110610a6357fe5b905060200201356001600160a01b0316888885818110610a7f57fe5b9050602002013515156114bc565b600101610a39565b50610a9e61082d565b6001600160a01b0316836001600160a01b031614610abf57610abf83611651565b50506008805460ff19166001908117909155979650505050505050565b62093a8081565b610aeb611011565b610b2a576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b8080610b70576040805162461bcd60e51b815260206004820152601060248201526f4b65797320617272617920656d70747960801b604482015290519081900360640190fd5b60005b81811015610b9e57610b96848483818110610b8a57fe5b905060200201356113f4565b600101610b73565b50505050565b60025481565b600660205260009081526040902080546001909101546001600160a01b039091169082565b610bd7611011565b610c16576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b600081815260076020526040902054610c2e90611707565b610c70576040805162461bcd60e51b815260206004820152600e60248201526d2232b630bc903737ba1037bb32b960911b604482015290519081900360640190fd5b6000818152600460209081526040808320805460ff60a01b1916600160a01b17905560079091528082208290555182917f097d0a4360ac95150faf267a7b4a999756a69238c2c7023cac729d81f0b733a391a250565b6000908152600460205260409020546001600160a01b031690565b6001546001600160a01b031681565b610cf8611011565b610d37576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6000600355610d44611734565b565b60008115801590610d6d57506000828152600460205260409020546001600160a01b031615155b15610d7a57506001610d7e565b5060005b919050565b610d8b611011565b610dca576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b610dd381610d46565b610e18576040805162461bcd60e51b8152602060048201526011602482015270135bd91d5b19481b5d5cdd08195e1a5cdd607a1b604482015290519081900360640190fd5b600081815260046020526040902054600160a01b900460ff1615610e7d576040805162461bcd60e51b8152602060048201526017602482015276135bd91d5b19481b5d5cdd081899481d5b9b1bd8dad959604a1b604482015290519081900360640190fd5b60008181526007602052604090205415610ed6576040805162461bcd60e51b8152602060048201526015602482015274131bd8dac8185b1c9958591e481c1c9bdc1bdcd959605a1b604482015290519081900360640190fd5b60008181526007602090815260409182902042908190558251908152915183927f57456e8dc47899fbd8a75be3129514a3e4cca602e26b766d4bbb821975c4375892908290030190a250565b6001546001600160a01b03163314610f81576040805162461bcd60e51b815260206004820152601f60248201527f53656e646572206973206e6f742070726f706f73656420676f7665726e6f7200604482015290519081900360640190fd5b600254600354610f969163ffffffff61183316565b421015610fdb576040805162461bcd60e51b815260206004820152600e60248201526d2232b630bc903737ba1037bb32b960911b604482015290519081900360640190fd5b610fe3611894565b6000600355565b6004602052600090815260409020546001600160a01b03811690600160a01b900460ff1682565b6000546001600160a01b0316331490565b61102a611011565b611069576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b600081815260066020526040902060010154806110cd576040805162461bcd60e51b815260206004820152601960248201527f50726f706f736564206d6f64756c65206e6f7420666f756e6400000000000000604482015290519081900360640190fd5b60008281526006602052604080822080546001600160a01b03191681556001018290555183917f4dd889c845f5a942b8304764283938168000b8f4903940690beb685ca2fc16cc91a25050565b60035481565b611128611011565b611167576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601960248201527f446972656374206368616e6765206e6f7420616c6c6f77656400000000000000604482015290519081900360640190fd5b6111bc611011565b6111fb576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b60008181526007602052604090205461125b576040805162461bcd60e51b815260206004820152601d60248201527f4d6f64756c65206c6f636b2072657175657374206e6f7420666f756e64000000604482015290519081900360640190fd5b6000818152600760205260408082208290555182917f3d670309414f84151711e0ac2795a2b1686580ad9faca995492166a486255db391a250565b61129e611011565b6112dd576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6001600160a01b038116611338576040805162461bcd60e51b815260206004820152601f60248201527f50726f706f73656420676f7665726e6f72206973206164647265737328302900604482015290519081900360640190fd5b6001546001600160a01b031615611396576040805162461bcd60e51b815260206004820152601d60248201527f50726f706f73656420676f7665726e6f7220616c726561647920736574000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383169081179091556113bc61082d565b6001600160a01b03167fa48c163cc46eb28aba8bdb525da18f15a83020cc18f439c933d79ea3ad9b50bb60405160405180910390a350565b6113fc611952565b50600081815260066020908152604091829020825180840190935280546001600160a01b031683526001015490820181905261143790611707565b611488576040805162461bcd60e51b815260206004820152601d60248201527f4d6f64756c6520757067726164652064656c6179206e6f74206f766572000000604482015290519081900360640190fd5b600082815260066020526040812080546001600160a01b031916815560010181905581516114b8918491906114bc565b5050565b6001600160a01b03821660009081526005602052604090205415611527576040805162461bcd60e51b815260206004820152601d60248201527f4d6f64756c6573206d757374206861766520756e697175652061646472000000604482015290519081900360640190fd5b600083815260046020526040902054600160a01b900460ff161561158c576040805162461bcd60e51b8152602060048201526017602482015276135bd91d5b19481b5d5cdd081899481d5b9b1bd8dad959604a1b604482015290519081900360640190fd5b6000838152600460205260409020546001600160a01b031680156115c4576001600160a01b0381166000908152600560205260408120555b60008481526004602090815260408083208054861515600160a01b810260ff60a01b196001600160a01b038b166001600160a01b0319909416841716179092558085526005845293829020889055815193845291830191909152805186927f7bf901a62d0edd068a4e74518eb8241133713d384171c7d0a3b7f6eb5c04095d92908290030190a250505050565b6001600160a01b0381166116ac576040805162461bcd60e51b815260206004820152601f60248201527f474f563a206e657720476f7665726e6f72206973206164647265737328302900604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8491a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008082118015610d6d57506117268262093a8063ffffffff61183316565b4210610d7a57506001610d7e565b61173c611011565b61177b576040805162461bcd60e51b815260206004820152601f602482015260008051602061196a833981519152604482015290519081900360640190fd5b6001546001600160a01b03166117d8576040805162461bcd60e51b815260206004820152601960248201527f50726f706f73656420476f7665726e6f72206e6f742073657400000000000000604482015290519081900360640190fd5b6001546001600160a01b03166117ec61082d565b6001600160a01b03167f2f7bb10f75b8694ea78291d7ca4c9f2a75bc45f0f97046164ad3ee984bdf4bba60405160405180910390a3600180546001600160a01b0319169055565b60008282018381101561188d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001546001600160a01b031633146118f3576040805162461bcd60e51b815260206004820152601f60248201527f53656e646572206973206e6f742070726f706f73656420676f7665726e6f7200604482015290519081900360640190fd5b600154611908906001600160a01b0316611651565b6001546040516001600160a01b03909116907f0ad714cb5607f3b529b5d3292190925ae992a77b291e39ec09c390d4787896ba90600090a2600180546001600160a01b0319169055565b60408051808201909152600080825260208201529056fe474f563a2063616c6c6572206973206e6f742074686520476f7665726e6f7200a265627a7a723158207086f7e9d76bb328fe79dc25bc590a966d779a27870e3eec7f942a4930b7f35864736f6c63430005100032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000019f12c947d25ff8a3b748829d8001ca09a28d46d
-----Decoded View---------------
Arg [0] : _governorAddr (address): 0x19F12C947D25Ff8a3b748829D8001cA09a28D46d
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000019f12c947d25ff8a3b748829d8001ca09a28d46d
Deployed Bytecode Sourcemap
11761:9106:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11761:9106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10685:171;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10685:171:0;-1:-1:-1;;;;;10685:171:0;;:::i;:::-;;15304:617;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15304:617:0;;;;;;-1:-1:-1;;;;;15304:617:0;;:::i;1415:85::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1415:85:0;;;;;;;;;;;;;;13180:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;13039:54;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13039:54:0;;:::i;:::-;;;;;;;;;;;;;;;;16453:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16453:135:0;;:::i;14256:761::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;14256:761:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;14256:761:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14256:761:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14256:761:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;14256:761:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14256:761:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14256:761:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;14256:761:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14256:761:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14256:761:0;;-1:-1:-1;14256:761:0;-1:-1:-1;14256:761:0;-1:-1:-1;;;;;14256:761:0;;:::i;12667:47::-;;;:::i;16718:298::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16718:298:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;16718:298:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16718:298:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;16718:298:0;;-1:-1:-1;16718:298:0;-1:-1:-1;16718:298:0;:::i;10055:24::-;;;:::i;12926:51::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12926:51:0;;:::i;:::-;;;;-1:-1:-1;;;;;12926:51:0;;;;;;;;;;;;;;;;;;;;;19426:288;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19426:288:0;;:::i;20358:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20358:114:0;;:::i;3064:44::-;;;:::i;10985:125::-;;;:::i;20024:179::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20024:179:0;;:::i;18536:388::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18536:388:0;;:::i;11233:200::-;;;:::i;12752:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12752:41:0;;:::i;:::-;;;;-1:-1:-1;;;;;12752:41:0;;;;;;;;;;;;;;;;;;;;;1798:98;;;:::i;16031:299::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16031:299:0;;:::i;10086:30::-;;;:::i;3475:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3475:109:0;-1:-1:-1;;;;;3475:109:0;;:::i;19030:261::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19030:261:0;;:::i;10685:171::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;10788:3;10774:11;:17;10802:46;10830:17;10802:27;:46::i;:::-;10685:171;:::o;15304:617::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;15420:20;15412:53;;;;;-1:-1:-1;;;15412:53:0;;;;;;;;;;;;-1:-1:-1;;;15412:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15484:19:0;;15476:60;;;;;-1:-1:-1;;;15476:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15556:13;;;;:7;:13;;;;;:22;-1:-1:-1;;;15556:22:0;;;;15555:23;15547:59;;;;;-1:-1:-1;;;15547:59:0;;;;;;;;;;;;-1:-1:-1;;;15547:59:0;;;;;;;;;;;;;;;15625:13;;;;:7;:13;;;;;:18;-1:-1:-1;;;;;15625:27:0;;;:18;;:27;;15617:71;;;;;-1:-1:-1;;;15617:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15699:18;15720:21;;;:15;:21;;;;;15760:11;;;;:16;15752:52;;;;;-1:-1:-1;;;15752:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15817:20;;-1:-1:-1;;;;;;15817:20:0;-1:-1:-1;;;;;15817:20:0;;;;;;;15862:3;-1:-1:-1;15848:11:0;;:17;;;15881:32;;;;;;;;;;;;;;;15896:4;;15881:32;;;;;;;;;1698:1;15304:617;;:::o;1415:85::-;1456:7;1483:9;-1:-1:-1;;;;;1483:9:0;1415:85;:::o;13180:31::-;;;;;;:::o;13039:54::-;;;;;;;;;;;;;:::o;16453:135::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;16553:27;16575:4;16553:21;:27::i;14256:761::-;14512:4;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;13372:11;;;;13371:12;13363:53;;;;;-1:-1:-1;;;13363:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14548:5;14579:7;14571:36;;;;;-1:-1:-1;;;14571:36:0;;;;;;;;;;;;-1:-1:-1;;;14571:36:0;;;;;;;;;;;;;;;14626:24;;;14618:62;;;;;-1:-1:-1;;;14618:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14699:23;;;14691:64;;;;;-1:-1:-1;;;14691:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14772:9;14768:114;14792:3;14788:1;:7;14768:114;;;14817:53;14832:5;;14838:1;14832:8;;;;;;;;;;;;;14842:10;;14853:1;14842:13;;;;;;;;;;;;;-1:-1:-1;;;;;14842:13:0;14857:9;;14867:1;14857:12;;;;;;;;;;;;;;;14817:14;:53::i;:::-;14797:3;;14768:114;;;;14914:10;:8;:10::i;:::-;-1:-1:-1;;;;;14897:27:0;:13;-1:-1:-1;;;;;14897:27:0;;14894:62;;14926:30;14942:13;14926:15;:30::i;:::-;-1:-1:-1;;14969:11:0;:18;;-1:-1:-1;;14969:18:0;14983:4;14969:18;;;;;;14256:761;;;;;;;;;:::o;12667:47::-;12707:7;12667:47;:::o;16718:298::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;16845:5;16876:7;16868:36;;;;;-1:-1:-1;;;16868:36:0;;;;;;;;;;;;-1:-1:-1;;;16868:36:0;;;;;;;;;;;;;;;16921:9;16917:92;16941:3;16937:1;:7;16917:92;;;16966:31;16988:5;;16994:1;16988:8;;;;;;;;;;;;;16966:21;:31::i;:::-;16946:3;;16917:92;;;;1698:1;16718:298;;:::o;10055:24::-;;;;:::o;12926:51::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12926:51:0;;;;;:::o;19426:288::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;19537:25;;;;:19;:25;;;;;;19524:39;;:12;:39::i;:::-;19516:66;;;;;-1:-1:-1;;;19516:66:0;;;;;;;;;;;;-1:-1:-1;;;19516:66:0;;;;;;;;;;;;;;;19595:13;;;;:7;:13;;;;;;;;:29;;-1:-1:-1;;;;19595:29:0;-1:-1:-1;;;19595:29:0;;;19642:19;:25;;;;;;19635:32;;;19683:23;19603:4;;19683:23;;;19426:288;:::o;20358:114::-;20414:12;20446:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;20446:18:0;;20358:114::o;3064:44::-;;;-1:-1:-1;;;;;3064:44:0;;:::o;10985:125::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;11062:1;11048:11;:15;11074:28;:26;:28::i;:::-;10985:125::o;20024:179::-;20081:4;20101:9;;;;;:45;;-1:-1:-1;20144:1:0;20114:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;20114:18:0;:32;;20101:45;20098:74;;;-1:-1:-1;20168:4:0;20161:11;;20098:74;-1:-1:-1;20190:5:0;20024:179;;;;:::o;18536:388::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;18641:18;18654:4;18641:12;:18::i;:::-;18633:48;;;;;-1:-1:-1;;;18633:48:0;;;;;;;;;;;;-1:-1:-1;;;18633:48:0;;;;;;;;;;;;;;;18701:13;;;;:7;:13;;;;;:22;-1:-1:-1;;;18701:22:0;;;;18700:23;18692:59;;;;;-1:-1:-1;;;18692:59:0;;;;;;;;;;;;-1:-1:-1;;;18692:59:0;;;;;;;;;;;;;;;18770:25;;;;:19;:25;;;;;;:30;18762:64;;;;;-1:-1:-1;;;18762:64:0;;;;;;;;;;;;-1:-1:-1;;;18762:64:0;;;;;;;;;;;;;;;18839:25;;;;:19;:25;;;;;;;;;18867:3;18839:31;;;;18886:30;;;;;;;18859:4;;18886:30;;;;;;;;;18536:388;:::o;11233:200::-;3279:16;;-1:-1:-1;;;;;3279:16:0;3265:10;:30;3257:74;;;;;-1:-1:-1;;;3257:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11335:5;;11319:11;;:22;;;:15;:22;:::i;:::-;11311:3;:31;;11303:58;;;;;-1:-1:-1;;;11303:58:0;;;;;;;;;;;;-1:-1:-1;;;11303:58:0;;;;;;;;;;;;;;;11372:27;:25;:27::i;:::-;11424:1;11410:11;:15;11233:200::o;12752:41::-;;;;;;;;;;;;-1:-1:-1;;;;;12752:41:0;;;-1:-1:-1;;;12752:41:0;;;;;:::o;1798:98::-;1841:4;1879:9;-1:-1:-1;;;;;1879:9:0;1865:10;:23;;1798:98::o;16031:299::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;16131:17;16151:21;;;:15;:21;;;;;:31;;;16201:13;16193:51;;;;;-1:-1:-1;;;16193:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16264:21;;;;:15;:21;;;;;;16257:28;;-1:-1:-1;;;;;;16257:28:0;;;;;;;;16301:21;16280:4;;16301:21;;;1698:1;16031:299;:::o;10086:30::-;;;;:::o;3475:109::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;3541:35;;;-1:-1:-1;;;3541:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;19030:261;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;19162:1;19134:25;;;:19;:25;;;;;;19126:71;;;;;-1:-1:-1;;;19126:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19217:25;;;;:19;:25;;;;;;19210:32;;;19258:25;19237:4;;19258:25;;;19030:261;:::o;3741:374::-;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3838:31:0;;3830:75;;;;;-1:-1:-1;;;3830:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3924:16;;-1:-1:-1;;;;;3924:16:0;:30;3916:72;;;;;-1:-1:-1;;;3916:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4001:16;:36;;-1:-1:-1;;;;;;4001:36:0;-1:-1:-1;;;;;4001:36:0;;;;;;;;4077:10;:8;:10::i;:::-;-1:-1:-1;;;;;4053:54:0;;;;;;;;;;;3741:374;:::o;17118:285::-;17183:17;;:::i;:::-;-1:-1:-1;17203:21:0;;;;:15;:21;;;;;;;;;17183:41;;;;;;;;;;-1:-1:-1;;;;;17183:41:0;;;;;;;;;;;;17243:25;;:12;:25::i;:::-;17235:67;;;;;-1:-1:-1;;;17235:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17322:21;;;;:15;:21;;;;;17315:28;;-1:-1:-1;;;;;;17315:28:0;;;;;;;;17375:12;;17354:41;;17338:4;;17375:12;17354:14;:41::i;:::-;17118:285;;:::o;17656:641::-;-1:-1:-1;;;;;17753:22:0;;17787:3;17753:22;;;:15;:22;;;;;;:38;17745:80;;;;;-1:-1:-1;;;17745:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17845:13;;;;:7;:13;;;;;:22;-1:-1:-1;;;17845:22:0;;;;17844:23;17836:59;;;;;-1:-1:-1;;;17836:59:0;;;;;;;;;;;;-1:-1:-1;;;17836:59:0;;;;;;;;;;;;;;;17958:21;17982:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;17982:18:0;18014:29;;18011:106;;-1:-1:-1;;;;;18060:30:0;;18101:3;18060:30;;;:15;:30;;;;;:45;18011:106;18127:13;;;;:7;:13;;;;;;;;:26;;18164:34;;;-1:-1:-1;;;18164:34:0;;-1:-1:-1;;;;;;;;;18127:26:0;;-1:-1:-1;;;;;;18127:26:0;;;;;18164:34;;;;;18209:22;;;:15;:22;;;;;;:29;;;18254:35;;;;;;;;;;;;;;18135:4;;18254:35;;;;;;;;;17656:641;;;;:::o;2393:236::-;-1:-1:-1;;;;;2468:26:0;;2460:70;;;;;-1:-1:-1;;;2460:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2562:9;;;2546:40;;-1:-1:-1;;;;;2546:40:0;;;;2562:9;;;2546:40;;;2597:9;:24;;-1:-1:-1;;;;;;2597:24:0;-1:-1:-1;;;;;2597:24:0;;;;;;;;;;2393:236::o;20669:195::-;20733:4;20766:1;20753:10;:14;:54;;;;-1:-1:-1;20778:29:0;:10;12707:7;20778:29;:14;:29;:::i;:::-;20771:3;:36;20750:83;;-1:-1:-1;20829:4:0;20822:11;;4202:250;1639:12;:10;:12::i;:::-;1631:56;;;;;-1:-1:-1;;;1631:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1631:56:0;;;;;;;;;;;;;;;4273:16;;-1:-1:-1;;;;;4273:16:0;4265:68;;;;;-1:-1:-1;;;4265:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4387:16;;-1:-1:-1;;;;;4387:16:0;4375:10;:8;:10::i;:::-;-1:-1:-1;;;;;4351:53:0;;;;;;;;;;;4415:16;:29;;-1:-1:-1;;;;;;4415:29:0;;;4202:250::o;5104:181::-;5162:7;5194:5;;;5218:6;;;;5210:46;;;;;-1:-1:-1;;;5210:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5276:1;5104:181;-1:-1:-1;;;5104:181:0:o;4540:206::-;3279:16;;-1:-1:-1;;;;;3279:16:0;3265:10;:30;3257:74;;;;;-1:-1:-1;;;3257:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4626:16;;4610:33;;-1:-1:-1;;;;;4626:16:0;4610:15;:33::i;:::-;4681:16;;4659:39;;-1:-1:-1;;;;;4681:16:0;;;;4659:39;;4681:16;;4659:39;4709:16;:29;;-1:-1:-1;;;;;;4709:29:0;;;4540:206::o;11761:9106::-;;;;;;;;;;-1:-1:-1;11761:9106:0;;;;;;;;:::o
Swarm Source
bzzr://7086f7e9d76bb328fe79dc25bc590a966d779a27870e3eec7f942a4930b7f358
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.