Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify.
View contract in Sourcify repository
- Contract name:
- Management
- Optimization enabled
- false
- Compiler version
- v0.5.17+commit.d19bba13
- EVM Version
- istanbul
- Verified at
- 2026-06-14T19:18:20.905483Z
Management.sol
// File: @openzeppelin/contracts/GSN/Context.sol
pragma solidity ^0.5.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
constructor () internal { }
// solhint-disable-previous-line no-empty-blocks
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
// File: @openzeppelin/contracts/ownership/Ownable.sol
pragma solidity ^0.5.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isOwner() public view returns (bool) {
return _msgSender() == _owner;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
// File: contracts/managment/Constants.sol
pragma solidity 0.5.17;
contract Constants {
// Permissions bit constants
uint256 public constant CAN_MINT_TOKENS = 0;
uint256 public constant CAN_BURN_TOKENS = 1;
uint256 public constant CAN_UPDATE_STATE = 2;
uint256 public constant CAN_LOCK_TOKENS = 3;
uint256 public constant CAN_UPDATE_PRICE = 4;
uint256 public constant CAN_INTERACT_WITH_ALLOCATOR = 5;
uint256 public constant CAN_SET_ALLOCATOR_MAX_SUPPLY = 6;
uint256 public constant CAN_PAUSE_TOKENS = 7;
uint256 public constant ECLIUDED_ADDRESSES = 8;
uint256 public constant WHITELISTED = 9;
uint256 public constant SIGNERS = 10;
uint256 public constant EXTERNAL_CONTRIBUTORS = 11;
uint256 public constant CAN_SEE_BALANCE = 12;
uint256 public constant CAN_CANCEL_TRANSACTION = 13;
uint256 public constant CAN_ALLOCATE_REFERRAL_TOKENS = 14;
uint256 public constant CAN_SET_REFERRAL_MAX_SUPPLY = 15;
uint256 public constant MANUAL_TOKENS_ALLOCATION = 16;
uint256 public constant CAN_SET_WHITELISTED = 17;
// Contract Registry keys
uint256 public constant CONTRACT_TOKEN = 1;
uint256 public constant CONTRACT_PRICING = 2;
uint256 public constant CONTRACT_CROWDSALE = 3;
uint256 public constant CONTRACT_ALLOCATOR = 4;
uint256 public constant CONTRACT_AGENT = 5;
uint256 public constant CONTRACT_FORWARDER = 6;
uint256 public constant CONTRACT_REFERRAL = 7;
uint256 public constant CONTRACT_STATS = 8;
uint256 public constant CONTRACT_LOCKUP = 9;
uint256 public constant YEAR_IN_SECONDS = 31556952;
uint256 public constant SIX_MONTHS = 15778476;
uint256 public constant MONTH_IN_SECONDS = 2629746;
string public constant ERROR_ACCESS_DENIED = "ERROR_ACCESS_DENIED";
string public constant ERROR_WRONG_AMOUNT = "ERROR_WRONG_AMOUNT";
string public constant ERROR_NO_CONTRACT = "ERROR_NO_CONTRACT";
string public constant ERROR_NOT_AVAILABLE = "ERROR_NOT_AVAILABLE";
}
// File: contracts/managment/Management.sol
pragma solidity 0.5.17;
contract Management is Ownable, Constants {
// Contract Registry
mapping (uint256 => address payable) public contractRegistry;
// Permissions
mapping (address => mapping(uint256 => bool)) public permissions;
event PermissionsSet(
address subject,
uint256 permission,
bool value
);
event ContractRegistered(
uint256 key,
address source,
address target
);
function setPermission(
address _address,
uint256 _permission,
bool _value
)
public
onlyOwner
{
permissions[_address][_permission] = _value;
emit PermissionsSet(_address, _permission, _value);
}
function registerContract(
uint256 _key,
address payable _target
)
public
onlyOwner
{
contractRegistry[_key] = _target;
emit ContractRegistered(_key, address(0), _target);
}
function setWhitelisted(
address _address,
bool _value
)
public
{
require(
permissions[msg.sender][CAN_SET_WHITELISTED] == true,
ERROR_ACCESS_DENIED
);
permissions[_address][WHITELISTED] = _value;
emit PermissionsSet(_address, WHITELISTED, _value);
}
}
Compiler Settings
{"remappings":[],"optimizer":{"runs":200,"enabled":false},"libraries":{},"evmVersion":"istanbul","compilationTarget":{"Management.sol":"Management"}}
Contract ABI
[{"type":"event","name":"ContractRegistered","inputs":[{"type":"uint256","name":"key","internalType":"uint256","indexed":false},{"type":"address","name":"source","internalType":"address","indexed":false},{"type":"address","name":"target","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"PermissionsSet","inputs":[{"type":"address","name":"subject","internalType":"address","indexed":false},{"type":"uint256","name":"permission","internalType":"uint256","indexed":false},{"type":"bool","name":"value","internalType":"bool","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_ALLOCATE_REFERRAL_TOKENS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_BURN_TOKENS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_CANCEL_TRANSACTION","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_INTERACT_WITH_ALLOCATOR","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_LOCK_TOKENS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_MINT_TOKENS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_PAUSE_TOKENS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_SEE_BALANCE","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_SET_ALLOCATOR_MAX_SUPPLY","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_SET_REFERRAL_MAX_SUPPLY","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_SET_WHITELISTED","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_UPDATE_PRICE","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CAN_UPDATE_STATE","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_AGENT","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_ALLOCATOR","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_CROWDSALE","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_FORWARDER","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_LOCKUP","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_PRICING","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_REFERRAL","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_STATS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"CONTRACT_TOKEN","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"ECLIUDED_ADDRESSES","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"ERROR_ACCESS_DENIED","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"ERROR_NOT_AVAILABLE","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"ERROR_NO_CONTRACT","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"ERROR_WRONG_AMOUNT","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"EXTERNAL_CONTRIBUTORS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"MANUAL_TOKENS_ALLOCATION","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"MONTH_IN_SECONDS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SIGNERS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SIX_MONTHS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"WHITELISTED","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"YEAR_IN_SECONDS","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":"","internalType":"address payable"}],"name":"contractRegistry","inputs":[{"type":"uint256","name":"","internalType":"uint256"}],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isOwner","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"permissions","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"uint256","name":"","internalType":"uint256"}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"registerContract","inputs":[{"type":"uint256","name":"_key","internalType":"uint256"},{"type":"address","name":"_target","internalType":"address payable"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"renounceOwnership","inputs":[],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"setPermission","inputs":[{"type":"address","name":"_address","internalType":"address"},{"type":"uint256","name":"_permission","internalType":"uint256"},{"type":"bool","name":"_value","internalType":"bool"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"setWhitelisted","inputs":[{"type":"address","name":"_address","internalType":"address"},{"type":"bool","name":"_value","internalType":"bool"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}],"constant":false}]
Contract Creation Code
0x608060405260006100146100b760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100bf565b600033905090565b61154a806100ce6000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c8063985eb07111610151578063c89c9166116100c3578063eedd93ad11610087578063eedd93ad14610915578063f2fde38b14610933578063f38bbf6d14610977578063f4ad3869146109c5578063fb4a45cf146109e3578063fc1e7c6314610a6657610269565b8063c89c9166146107d2578063d3a8388f146107f0578063d7d98dff1461080e578063e5e2003c1461082c578063e9d79b0e146108af57610269565b8063ba579c7411610115578063ba579c741461067d578063bbb998dc1461069b578063bdc89f22146106b9578063c010fff7146106d7578063c0e6249c14610731578063c7b9fbea146107b457610269565b8063985eb07114610597578063a4f54d1c146105b5578063ad925449146105d3578063b110205a146105f1578063b3733cae1461065f57610269565b806368fc8751116101ea57806379327b42116101ae57806379327b421461041c5780637a05dfb81461043a5780638b52100d146104bd5780638da5cb5b146104db5780638f32d59b146105255780639281aa0b1461054757610269565b806368fc87511461039a5780636c01e7ff146103b8578063715018a6146103d65780637171225c146103e05780637847ea53146103fe57610269565b806330e49a471161023157806330e49a47146103045780635538640e146103225780635e16ea85146103405780635e3501b91461035e5780635e4912ac1461037c57610269565b8063011ae3211461026e5780630b71f1161461028c5780630c2b54e1146102aa578063174896b7146102c85780631d246d4c146102e6575b600080fd5b610276610a84565b6040518082815260200191505060405180910390f35b610294610a89565b6040518082815260200191505060405180910390f35b6102b2610a8e565b6040518082815260200191505060405180910390f35b6102d0610a93565b6040518082815260200191505060405180910390f35b6102ee610a98565b6040518082815260200191505060405180910390f35b61030c610a9d565b6040518082815260200191505060405180910390f35b61032a610aa2565b6040518082815260200191505060405180910390f35b610348610aa7565b6040518082815260200191505060405180910390f35b610366610aac565b6040518082815260200191505060405180910390f35b610384610ab1565b6040518082815260200191505060405180910390f35b6103a2610ab6565b6040518082815260200191505060405180910390f35b6103c0610abb565b6040518082815260200191505060405180910390f35b6103de610ac0565b005b6103e8610bf9565b6040518082815260200191505060405180910390f35b610406610c00565b6040518082815260200191505060405180910390f35b610424610c08565b6040518082815260200191505060405180910390f35b610442610c0d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610482578082015181840152602081019050610467565b50505050905090810190601f1680156104af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104c5610c46565b6040518082815260200191505060405180910390f35b6104e3610c4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61052d610c74565b604051808215151515815260200191505060405180910390f35b6105956004803603604081101561055d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610cd2565b005b61059f610efa565b6040518082815260200191505060405180910390f35b6105bd610eff565b6040518082815260200191505060405180910390f35b6105db610f04565b6040518082815260200191505060405180910390f35b61061d6004803603602081101561060757600080fd5b8101908080359060200190929190505050610f09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610667610f3c565b6040518082815260200191505060405180910390f35b610685610f41565b6040518082815260200191505060405180910390f35b6106a3610f48565b6040518082815260200191505060405180910390f35b6106c1610f4d565b6040518082815260200191505060405180910390f35b61072f600480360360608110156106ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610f52565b005b6107396110b0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077957808201518184015260208101905061075e565b50505050905090810190601f1680156107a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107bc6110e9565b6040518082815260200191505060405180910390f35b6107da6110ee565b6040518082815260200191505060405180910390f35b6107f86110f3565b6040518082815260200191505060405180910390f35b6108166110f8565b6040518082815260200191505060405180910390f35b6108346110fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610874578082015181840152602081019050610859565b50505050905090810190601f1680156108a15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108fb600480360360408110156108c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611136565b604051808215151515815260200191505060405180910390f35b61091d611165565b6040518082815260200191505060405180910390f35b6109756004803603602081101561094957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116a565b005b6109c36004803603604081101561098d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f0565b005b6109cd611360565b6040518082815260200191505060405180910390f35b6109eb611365565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a2b578082015181840152602081019050610a10565b50505050905090810190601f168015610a585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a6e61139e565b6040518082815260200191505060405180910390f35b600181565b600981565b600281565b600381565b600881565b600f81565b600b81565b600581565b600c81565b600081565b601081565b600781565b610ac8610c74565b610b3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6228207281565b6301e1855881565b600281565b6040518060400160405280601381526020017f4552524f525f4e4f545f415641494c41424c450000000000000000000000000081525081565b600e81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cb66113a3565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60011515600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006011815260200190815260200160002060009054906101000a900460ff161515146040518060400160405280601381526020017f4552524f525f4143434553535f44454e4945440000000000000000000000000081525090610e14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dd9578082015181840152602081019050610dbe565b50505050905090810190601f168015610e065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006009815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd5e85a1dc2aa9eb0ea893e6344bc5d2b1ec234ed9dc3986b1e5be8a6b577274782600983604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a15050565b600681565b600481565b600d81565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600881565b62f0c2ac81565b600681565b600381565b610f5a610c74565b610fcc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd5e85a1dc2aa9eb0ea893e6344bc5d2b1ec234ed9dc3986b1e5be8a6b5772747838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a1505050565b6040518060400160405280601281526020017f4552524f525f57524f4e475f414d4f554e54000000000000000000000000000081525081565b600781565b600581565b600a81565b601181565b6040518060400160405280601181526020017f4552524f525f4e4f5f434f4e545241435400000000000000000000000000000081525081565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481565b611172610c74565b6111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6111ed816113ab565b50565b6111f8610c74565b61126a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbbe86a5e2b6965d13a096e459a11eadb7af3f1674f73557e3cb99a89f745760f82600083604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15050565b600181565b6040518060400160405280601381526020017f4552524f525f4143434553535f44454e4945440000000000000000000000000081525081565b600981565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a7231582095935596a15b79a9ed0e54e4984fb138673073c528508e584ece731f3e23079464736f6c63430005110032
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106102695760003560e01c8063985eb07111610151578063c89c9166116100c3578063eedd93ad11610087578063eedd93ad14610915578063f2fde38b14610933578063f38bbf6d14610977578063f4ad3869146109c5578063fb4a45cf146109e3578063fc1e7c6314610a6657610269565b8063c89c9166146107d2578063d3a8388f146107f0578063d7d98dff1461080e578063e5e2003c1461082c578063e9d79b0e146108af57610269565b8063ba579c7411610115578063ba579c741461067d578063bbb998dc1461069b578063bdc89f22146106b9578063c010fff7146106d7578063c0e6249c14610731578063c7b9fbea146107b457610269565b8063985eb07114610597578063a4f54d1c146105b5578063ad925449146105d3578063b110205a146105f1578063b3733cae1461065f57610269565b806368fc8751116101ea57806379327b42116101ae57806379327b421461041c5780637a05dfb81461043a5780638b52100d146104bd5780638da5cb5b146104db5780638f32d59b146105255780639281aa0b1461054757610269565b806368fc87511461039a5780636c01e7ff146103b8578063715018a6146103d65780637171225c146103e05780637847ea53146103fe57610269565b806330e49a471161023157806330e49a47146103045780635538640e146103225780635e16ea85146103405780635e3501b91461035e5780635e4912ac1461037c57610269565b8063011ae3211461026e5780630b71f1161461028c5780630c2b54e1146102aa578063174896b7146102c85780631d246d4c146102e6575b600080fd5b610276610a84565b6040518082815260200191505060405180910390f35b610294610a89565b6040518082815260200191505060405180910390f35b6102b2610a8e565b6040518082815260200191505060405180910390f35b6102d0610a93565b6040518082815260200191505060405180910390f35b6102ee610a98565b6040518082815260200191505060405180910390f35b61030c610a9d565b6040518082815260200191505060405180910390f35b61032a610aa2565b6040518082815260200191505060405180910390f35b610348610aa7565b6040518082815260200191505060405180910390f35b610366610aac565b6040518082815260200191505060405180910390f35b610384610ab1565b6040518082815260200191505060405180910390f35b6103a2610ab6565b6040518082815260200191505060405180910390f35b6103c0610abb565b6040518082815260200191505060405180910390f35b6103de610ac0565b005b6103e8610bf9565b6040518082815260200191505060405180910390f35b610406610c00565b6040518082815260200191505060405180910390f35b610424610c08565b6040518082815260200191505060405180910390f35b610442610c0d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610482578082015181840152602081019050610467565b50505050905090810190601f1680156104af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104c5610c46565b6040518082815260200191505060405180910390f35b6104e3610c4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61052d610c74565b604051808215151515815260200191505060405180910390f35b6105956004803603604081101561055d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610cd2565b005b61059f610efa565b6040518082815260200191505060405180910390f35b6105bd610eff565b6040518082815260200191505060405180910390f35b6105db610f04565b6040518082815260200191505060405180910390f35b61061d6004803603602081101561060757600080fd5b8101908080359060200190929190505050610f09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610667610f3c565b6040518082815260200191505060405180910390f35b610685610f41565b6040518082815260200191505060405180910390f35b6106a3610f48565b6040518082815260200191505060405180910390f35b6106c1610f4d565b6040518082815260200191505060405180910390f35b61072f600480360360608110156106ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610f52565b005b6107396110b0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077957808201518184015260208101905061075e565b50505050905090810190601f1680156107a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107bc6110e9565b6040518082815260200191505060405180910390f35b6107da6110ee565b6040518082815260200191505060405180910390f35b6107f86110f3565b6040518082815260200191505060405180910390f35b6108166110f8565b6040518082815260200191505060405180910390f35b6108346110fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610874578082015181840152602081019050610859565b50505050905090810190601f1680156108a15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108fb600480360360408110156108c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611136565b604051808215151515815260200191505060405180910390f35b61091d611165565b6040518082815260200191505060405180910390f35b6109756004803603602081101561094957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116a565b005b6109c36004803603604081101561098d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f0565b005b6109cd611360565b6040518082815260200191505060405180910390f35b6109eb611365565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a2b578082015181840152602081019050610a10565b50505050905090810190601f168015610a585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a6e61139e565b6040518082815260200191505060405180910390f35b600181565b600981565b600281565b600381565b600881565b600f81565b600b81565b600581565b600c81565b600081565b601081565b600781565b610ac8610c74565b610b3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6228207281565b6301e1855881565b600281565b6040518060400160405280601381526020017f4552524f525f4e4f545f415641494c41424c450000000000000000000000000081525081565b600e81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cb66113a3565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60011515600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006011815260200190815260200160002060009054906101000a900460ff161515146040518060400160405280601381526020017f4552524f525f4143434553535f44454e4945440000000000000000000000000081525090610e14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dd9578082015181840152602081019050610dbe565b50505050905090810190601f168015610e065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006009815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd5e85a1dc2aa9eb0ea893e6344bc5d2b1ec234ed9dc3986b1e5be8a6b577274782600983604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a15050565b600681565b600481565b600d81565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600881565b62f0c2ac81565b600681565b600381565b610f5a610c74565b610fcc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd5e85a1dc2aa9eb0ea893e6344bc5d2b1ec234ed9dc3986b1e5be8a6b5772747838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a1505050565b6040518060400160405280601281526020017f4552524f525f57524f4e475f414d4f554e54000000000000000000000000000081525081565b600781565b600581565b600a81565b601181565b6040518060400160405280601181526020017f4552524f525f4e4f5f434f4e545241435400000000000000000000000000000081525081565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481565b611172610c74565b6111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6111ed816113ab565b50565b6111f8610c74565b61126a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbbe86a5e2b6965d13a096e459a11eadb7af3f1674f73557e3cb99a89f745760f82600083604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15050565b600181565b6040518060400160405280601381526020017f4552524f525f4143434553535f44454e4945440000000000000000000000000081525081565b600981565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114f06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a7231582095935596a15b79a9ed0e54e4984fb138673073c528508e584ece731f3e23079464736f6c63430005110032